diff options
1234 files changed, 19217 insertions, 6830 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..95105a3731 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.py diff=python diff --git a/.travis.yml b/.travis.yml index c9d442ee8e..f276c3ba34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -102,20 +102,11 @@ jobs: os: linux language: python env: [ TEST_SUITE=build, 'SPEC=mpich' ] - - python: '3.8' - stage: 'docker build' - os: linux - language: python - env: TEST_SUITE=docker - allow_failures: - - env: TEST_SUITE=docker stages: - 'style checks' - 'unit tests + documentation' - 'build tests' - - name: 'docker build' - if: type = push AND branch IN (develop, master) #============================================================================= @@ -159,7 +150,6 @@ cache: pip: true ccache: true directories: - - ~/.mirror - ~/.ccache # Work around Travis's lack of support for Python on OSX @@ -200,9 +190,6 @@ before_script: #============================================================================= # Building #============================================================================= -services: - - docker - script: - share/spack/qa/run-$TEST_SUITE-tests diff --git a/lib/spack/docs/build_systems.rst b/lib/spack/docs/build_systems.rst index 93b8e5c7a8..cdb12a8d91 100644 --- a/lib/spack/docs/build_systems.rst +++ b/lib/spack/docs/build_systems.rst @@ -56,6 +56,7 @@ on these ideas for each distinct build system that Spack supports: :maxdepth: 1 :caption: Other + build_systems/bundlepackage build_systems/cudapackage build_systems/intelpackage build_systems/custompackage diff --git a/lib/spack/docs/build_systems/bundlepackage.rst b/lib/spack/docs/build_systems/bundlepackage.rst new file mode 100644 index 0000000000..5f61b71351 --- /dev/null +++ b/lib/spack/docs/build_systems/bundlepackage.rst @@ -0,0 +1,52 @@ +.. Copyright 2013-2019 Lawrence Livermore National Security, LLC and other + Spack Project Developers. See the top-level COPYRIGHT file for details. + + SPDX-License-Identifier: (Apache-2.0 OR MIT) + +.. _bundlepackage: + +------------- +BundlePackage +------------- + +``BundlePackage`` represents a set of packages that are expected to work well +together, such as a collection of commonly used software libraries. The +associated software is specified as bundle dependencies. + + +^^^^^^^^ +Creation +^^^^^^^^ + +Be sure to specify the ``bundle`` template if you are using ``spack create`` +to generate a package from the template. For example, use the following +command to create a bundle package whose class name will be ``Mybundle``: + +.. code-block:: console + + $ spack create --template bundle --name mybundle + + + +^^^^^^ +Phases +^^^^^^ + +The ``BundlePackage`` base class does not provide any phases by default +since the bundle does not represent a build system. + + +^^^ +URL +^^^ + +The ``url`` property does not have meaning since there is no package-specific +code to fetch. + + +^^^^^^^ +Version +^^^^^^^ + +At least one ``version`` must be specified in order for the package to +build. diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py index e5305a9317..06b993efb5 100644 --- a/lib/spack/docs/conf.py +++ b/lib/spack/docs/conf.py @@ -176,7 +176,25 @@ exclude_patterns = ['_build', '_spack_root', '.spack-env'] #show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +# 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 + +class SpackStyle(DefaultStyle): + styles = DefaultStyle.styles.copy() + background_color = "#f4f4f8" + styles[Generic.Output] = "#355" + 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) +dist._ep_map = {'pygments.styles': {'plugin1': ep}} +pkg_resources.working_set.add(dist) + +pygments_style = 'spack' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] diff --git a/lib/spack/docs/contribution_guide.rst b/lib/spack/docs/contribution_guide.rst index 73f25c6f03..17e37eb92b 100644 --- a/lib/spack/docs/contribution_guide.rst +++ b/lib/spack/docs/contribution_guide.rst @@ -223,8 +223,7 @@ documentation. In order to prevent things like broken links and missing imports, we added documentation tests that build the documentation and fail if there are any warning or error messages. -Building the documentation requires several dependencies, all of which can be -installed with Spack: +Building the documentation requires several dependencies: * sphinx * sphinxcontrib-programoutput @@ -234,11 +233,18 @@ installed with Spack: * mercurial * subversion +All of these can be installed with Spack, e.g. + +.. code-block:: console + + $ spack install py-sphinx py-sphinxcontrib-programoutput py-sphinx-rtd-theme graphviz git mercurial subversion + .. warning:: Sphinx has `several required dependencies <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/py-sphinx/package.py>`_. - If you installed ``py-sphinx`` with Spack, make sure to add all of these - dependencies to your ``PYTHONPATH``. The easiest way to do this is to run: + If you're using a ``python`` from Spack and you installed + ``py-sphinx`` and friends, you need to make them available to your + ``python``. The easiest way to do this is to run: .. code-block:: console @@ -246,8 +252,10 @@ installed with Spack: $ spack activate py-sphinx-rtd-theme $ spack activate py-sphinxcontrib-programoutput - so that all of the dependencies are symlinked to a central location. - If you see an error message like: + so that all of the dependencies are symlinked into that Python's + tree. Alternatively, you could arrange for their library + directories to be added to PYTHONPATH. If you see an error message + like: .. code-block:: console diff --git a/lib/spack/docs/extensions.rst b/lib/spack/docs/extensions.rst index 8f4c54b435..18b4e4b41c 100644 --- a/lib/spack/docs/extensions.rst +++ b/lib/spack/docs/extensions.rst @@ -9,12 +9,6 @@ Custom Extensions ================= -.. warning:: - - The support for extending Spack with custom commands is still experimental. - Users should expect APIs or prescribed directory structures to - change at any time. - *Spack extensions* permit you to extend Spack capabilities by deploying your own custom commands or logic in an arbitrary location on your filesystem. This might be extremely useful e.g. to develop and maintain a command whose purpose is diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst index 7f3a34b62b..4d316b3bfa 100644 --- a/lib/spack/docs/getting_started.rst +++ b/lib/spack/docs/getting_started.rst @@ -97,7 +97,7 @@ Check Installation With Spack installed, you should be able to run some basic Spack commands. For example: -.. command-output:: spack spec netcdf +.. command-output:: spack spec netcdf-c ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst index 7fc9d09e2d..f3b9295f61 100644 --- a/lib/spack/docs/packaging_guide.rst +++ b/lib/spack/docs/packaging_guide.rst @@ -553,6 +553,34 @@ version. This is useful for packages that have an easy to extrapolate URL, but keep changing their URL format every few releases. With this method, you only need to specify the ``url`` when the URL changes. +""""""""""""""""""""""" +Mirrors of the main URL +""""""""""""""""""""""" + +Spack supports listing mirrors of the main URL in a package by defining +the ``urls`` attribute: + +.. code-block:: python + + class Foo(Package): + + urls = [ + 'http://example.com/foo-1.0.tar.gz', + 'http://mirror.com/foo-1.0.tar.gz' + ] + +instead of just a single ``url``. This attribute is a list of possible URLs that +will be tried in order when fetching packages. Notice that either one of ``url`` +or ``urls`` can be present in a package, but not both at the same time. + +A well-known case of packages that can be fetched from multiple mirrors is that +of GNU. For that, Spack goes a step further and defines a mixin class that +takes care of all of the plumbing and requires packagers to just define a proper +``gnu_mirror_path`` attribute: + +.. literalinclude:: _spack_root/var/spack/repos/builtin/packages/autoconf/package.py + :lines: 9-18 + ^^^^^^^^^^^^^^^^^^^^^^^^ Skipping the expand step ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1479,8 +1507,8 @@ that the same package with different patches applied will have different hash identifiers. To ensure that the hashing scheme is consistent, you must use a ``sha256`` checksum for the patch. Patches will be fetched from their URLs, checked, and applied to your source code. You can use -the ``spack sha256`` command to generate a checksum for a patch file or -URL. +the GNU utils ``sha256sum`` or the macOS ``shasum -a 256`` commands to +generate a checksum for a patch file. Spack can also handle compressed patches. If you use these, Spack needs a little more help. Specifically, it needs *two* checksums: the diff --git a/lib/spack/docs/requirements.txt b/lib/spack/docs/requirements.txt index 190b018a0b..f5c50b0199 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==2.0.1 -sphinxcontrib-programoutput==0.14 -sphinx-rtd-theme==0.4.3 +sphinx +sphinxcontrib-programoutput +sphinx-rtd-theme python-levenshtein diff --git a/lib/spack/llnl/util/argparsewriter.py b/lib/spack/llnl/util/argparsewriter.py index 16bb570a77..a942f511f2 100644 --- a/lib/spack/llnl/util/argparsewriter.py +++ b/lib/spack/llnl/util/argparsewriter.py @@ -10,9 +10,10 @@ import errno import sys -class ArgparseWriter(object): +class ArgparseWriter(argparse.HelpFormatter): """Analyzes an argparse ArgumentParser for easy generation of help.""" def __init__(self, out=sys.stdout): + super(ArgparseWriter, self).__init__(out) self.level = 0 self.out = out @@ -48,7 +49,7 @@ class ArgparseWriter(object): def action_group(function, actions): for action in actions: arg = fmt._format_action_invocation(action) - help = action.help if action.help else '' + help = self._expand_help(action) if action.help else '' function(arg, re.sub('\n', ' ', help)) if root: diff --git a/lib/spack/llnl/util/cpu/detect.py b/lib/spack/llnl/util/cpu/detect.py index c89f67c852..76465037bf 100644 --- a/lib/spack/llnl/util/cpu/detect.py +++ b/lib/spack/llnl/util/cpu/detect.py @@ -13,6 +13,7 @@ import warnings import six from .microarchitecture import generic_microarchitecture, targets +from .schema import targets_json #: Mapping from operating systems to chain of commands #: to obtain a dictionary of raw info on the current cpu @@ -108,21 +109,37 @@ def sysctl_info_dict(): 'model': sysctl('-n', 'machdep.cpu.model'), 'model name': sysctl('-n', 'machdep.cpu.brand_string') } + return info - # Super hacky way to deal with slight representation differences - # Would be better to somehow consider these "identical" - if 'sse4.1' in info['flags']: - info['flags'] += ' sse4_1' - if 'sse4.2' in info['flags']: - info['flags'] += ' sse4_2' - if 'avx1.0' in info['flags']: - info['flags'] += ' avx' - if 'clfsopt' in info['flags']: - info['flags'] += ' clflushopt' - if 'xsave' in info['flags']: - info['flags'] += ' xsavec xsaveopt' - return info +def adjust_raw_flags(info): + """Adjust the flags detected on the system to homogenize + slightly different representations. + """ + # Flags detected on Darwin turned to their linux counterpart + flags = info.get('flags', []) + d2l = targets_json['conversions']['darwin_flags'] + for darwin_flag, linux_flag in d2l.items(): + if darwin_flag in flags: + info['flags'] += ' ' + linux_flag + + +def adjust_raw_vendor(info): + """Adjust the vendor field to make it human readable""" + if 'CPU implementer' not in info: + return + + # Mapping numeric codes to vendor (ARM). This list is a merge from + # different sources: + # + # https://github.com/karelzak/util-linux/blob/master/sys-utils/lscpu-arm.c + # https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile + # https://github.com/gcc-mirror/gcc/blob/master/gcc/config/aarch64/aarch64-cores.def + # https://patchwork.kernel.org/patch/10524949/ + arm_vendors = targets_json['conversions']['arm_vendors'] + arm_code = info['CPU implementer'] + if arm_code in arm_vendors: + info['CPU implementer'] = arm_vendors[arm_code] def raw_info_dictionary(): @@ -139,6 +156,8 @@ def raw_info_dictionary(): warnings.warn(str(e)) if info: + adjust_raw_flags(info) + adjust_raw_vendor(info) break return info @@ -223,3 +242,15 @@ def compatibility_check_for_x86_64(info, target): return (target == arch_root or arch_root in target.ancestors) \ and (target.vendor == vendor or target.vendor == 'generic') \ and target.features.issubset(features) + + +@compatibility_check(architecture_family='aarch64') +def compatibility_check_for_aarch64(info, target): + basename = 'aarch64' + features = set(info.get('Features', '').split()) + vendor = info.get('CPU implementer', 'generic') + + arch_root = targets[basename] + return (target == arch_root or arch_root in target.ancestors) \ + and (target.vendor == vendor or target.vendor == 'generic') \ + and target.features.issubset(features) diff --git a/lib/spack/llnl/util/cpu/microarchitectures.json b/lib/spack/llnl/util/cpu/microarchitectures.json index bb3b4db21a..55b40d65ae 100644 --- a/lib/spack/llnl/util/cpu/microarchitectures.json +++ b/lib/spack/llnl/util/cpu/microarchitectures.json @@ -64,13 +64,13 @@ "clang": [ { "versions": "0.0.0-apple:", - "family": "x86-64", - "flags": "-march={family}" + "name": "x86-64", + "flags": "-march={name}" }, { "versions": ":", - "family": "x86-64", - "flags": "-march={family} -mcpu=generic" + "name": "x86-64", + "flags": "-march={name} -mtune=generic" } ], "intel": { @@ -96,8 +96,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -122,8 +121,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -157,8 +155,7 @@ ], "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -188,8 +185,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -227,8 +223,7 @@ ], "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": [ { @@ -274,8 +269,7 @@ ], "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": [ { @@ -326,8 +320,7 @@ ], "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": [ { @@ -373,8 +366,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "18.0:", @@ -416,8 +408,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "18.0:", @@ -463,8 +454,7 @@ "clang": { "versions": "3.9:", "name": "knl", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "18.0:", @@ -515,8 +505,7 @@ "clang": { "versions": "3.9:", "name": "skylake-avx512", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "18.0:", @@ -568,8 +557,7 @@ }, "clang": { "versions": "3.9:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "18.0:", @@ -609,7 +597,7 @@ "avx512bw", "avx512dq", "avx512cd", - "avx512vnni" + "avx512_vnni" ], "compilers": { "gcc": { @@ -618,8 +606,7 @@ }, "clang": { "versions": "8.0:", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "19.0:", @@ -685,13 +672,11 @@ { "versions": "7.0:", "name": "icelake-client", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, { "versions": "6.0:6.9", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" } ], "intel": { @@ -723,8 +708,7 @@ "clang": { "versions": "3.9:", "name": "amdfam10", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -761,8 +745,7 @@ "clang": { "versions": "3.9:", "name": "bdver1", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -803,8 +786,7 @@ "clang": { "versions": "3.9:", "name": "bdver2", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -846,8 +828,7 @@ "clang": { "versions": "3.9:", "name": "bdver3", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -892,8 +873,7 @@ "clang": { "versions": "3.9:", "name": "bdver4", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -942,8 +922,7 @@ "clang": { "versions": "4.0:", "name": "znver1", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -993,8 +972,7 @@ "clang": { "versions": "9.0:", "name": "znver2", - "family": "x86-64", - "flags": "-march={family} -mcpu={name}" + "flags": "-march={name} -mtune={name}" }, "intel": { "versions": "16.0:", @@ -1016,8 +994,7 @@ }, "clang": { "versions": ":", - "family": "ppc64", - "flags": "-march={family} -mcpu=generic" + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1033,9 +1010,7 @@ }, "clang": { "versions": "3.9:", - "family": "ppc64", - "name": "pwr7", - "flags": "-march={family} -mcpu={name}" + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1058,9 +1033,7 @@ ], "clang": { "versions": "3.9:", - "family": "ppc64", - "name": "pwr8", - "flags": "-march={family} -mcpu={name}" + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1076,9 +1049,7 @@ }, "clang": { "versions": "3.9:", - "family": "ppc64", - "name": "pwr9", - "flags": "-march={family} -mcpu={name}" + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1094,8 +1065,7 @@ }, "clang": { "versions": ":", - "family": "ppc64le", - "flags": "-march={family} -mcpu=generic" + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1121,8 +1091,8 @@ "clang": { "versions": "3.9:", "family": "ppc64le", - "name": "pwr8", - "flags": "-march={family} -mcpu={name}" + "name": "power8", + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1140,8 +1110,8 @@ "clang": { "versions": "3.9:", "family": "ppc64le", - "name": "pwr9", - "flags": "-march={family} -mcpu={name}" + "name": "power9", + "flags": "-mcpu={name} -mtune={name}" } } }, @@ -1156,11 +1126,113 @@ }, "clang": { "versions": ":", - "family": "aarch64", - "flags": "-march={family} -mcpu=generic" + "flags": "-march=armv8-a -mtune=generic" } } }, + "thunderx2": { + "from": "aarch64", + "vendor": "Cavium", + "features": [ + "fp", + "asimd", + "evtstrm", + "aes", + "pmull", + "sha1", + "sha2", + "crc32", + "atomics", + "cpuid", + "asimdrdm" + ], + "compilers": { + "gcc": [ + { + "versions": "4.8:4.8.9", + "flags": "-march=armv8-a" + }, + { + "versions": "4.9:5.9", + "flags": "-march=armv8-a+crc+crypto" + }, + { + "versions": "6:6.9", + "flags": "-march=armv8.1-a+crc+crypto" + }, + { + "versions": "7:", + "flags": "-mcpu=thunderx2t99" + } + ], + "clang": [ + { + "versions": "3.9:4.9", + "flags": "-march=armv8.1-a+crc+crypto" + }, + { + "versions": "5:", + "flags": "-mcpu=thunderx2t99" + } + ] + } + }, + "a64fx": { + "from": "aarch64", + "vendor": "Fujitsu", + "features": [ + "fp", + "asimd", + "evtstrm", + "aes", + "pmull", + "sha1", + "sha2", + "crc32", + "atomics", + "cpuid", + "asimdrdm", + "fphp", + "asimdhp", + "fcma", + "dcpop", + "sve" + ], + "compilers": { + "gcc": [ + { + "versions": "4.8:4.8.9", + "flags": "-march=armv8-a" + }, + { + "versions": "4.9:5.9", + "flags": "-march=armv8-a+crc+crypto" + }, + { + "versions": "6:6.9", + "flags": "-march=armv8.1-a+crc+crypto" + }, + { + "versions": "7:7.9", + "flags": "-march=armv8.2a+crc+crypto+fp16" + }, + { + "versions": "8:", + "flags": "-march=armv8.2a+crc+aes+sha2+fp16+sve -msve-vector-bits=512" + } + ], + "clang": [ + { + "versions": "3.9:4.9", + "flags": "-march=armv8.2-a+crc+crypto+fp16" + }, + { + "versions": "5:", + "flags": "-march=armv8.2-a+crc+crypto+fp16+sve" + } + ] + } + }, "arm": { "from": null, "vendor": "generic", @@ -1244,5 +1316,34 @@ "aarch64" ] } + }, + "conversions": { + "description": "Conversions that map some platform specific values to canonical values", + "arm_vendors": { + "0x41": "ARM", + "0x42": "Broadcom", + "0x43": "Cavium", + "0x44": "DEC", + "0x46": "Fujitsu", + "0x48": "HiSilicon", + "0x49": "Infineon Technologies AG", + "0x4d": "Motorola", + "0x4e": "Nvidia", + "0x50": "APM", + "0x51": "Qualcomm", + "0x53": "Samsung", + "0x56": "Marvell", + "0x61": "Apple", + "0x66": "Faraday", + "0x68": "HXT", + "0x69": "Intel" + }, + "darwin_flags": { + "sse4.1": "sse4_1", + "sse4.2": "sse4_2", + "avx1.0": "avx", + "clfsopt": "clflushopt", + "xsave": "xsavec xsaveopt" + } } } diff --git a/lib/spack/llnl/util/cpu/schema.py b/lib/spack/llnl/util/cpu/schema.py index d13d014c01..cc15cb64ba 100644 --- a/lib/spack/llnl/util/cpu/schema.py +++ b/lib/spack/llnl/util/cpu/schema.py @@ -72,7 +72,21 @@ properties = { 'additionalProperties': False } }, - + }, + 'conversions': { + 'type': 'object', + 'properties': { + 'description': { + 'type': 'string' + }, + 'arm_vendors': { + 'type': 'object', + }, + 'darwin_flags': { + 'type': 'object' + } + }, + 'additionalProperties': False } } diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index f6c8d161d7..e9dd88ffdb 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -1154,7 +1154,9 @@ class HeaderList(FileList): # Make sure to only match complete words, otherwise path components such # as "xinclude" will cause false matches. - include_regex = re.compile(r'(.*)(\binclude\b)(.*)') + # Avoid matching paths such as <prefix>/include/something/detail/include, + # e.g. in the CUDA Toolkit which ships internal libc++ headers. + include_regex = re.compile(r'(.*?)(\binclude\b)(.*)') def __init__(self, files): super(HeaderList, self).__init__(files) diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py index 7552795cd2..494563b0cb 100644 --- a/lib/spack/spack/architecture.py +++ b/lib/spack/spack/architecture.py @@ -69,6 +69,7 @@ from llnl.util.lang import memoized, list_modules, key_ordering import spack.compiler import spack.paths import spack.error as serr +import spack.util.executable import spack.version from spack.util.naming import mod_to_class from spack.util.spack_yaml import syaml_dict @@ -214,7 +215,11 @@ class Target(object): import spack.spec if isinstance(compiler, spack.spec.CompilerSpec): compiler = spack.compilers.compilers_for_spec(compiler).pop() - compiler_version = compiler.cc_version(compiler.cc) + try: + compiler_version = compiler.cc_version(compiler.cc) + 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/binary_distribution.py b/lib/spack/spack/binary_distribution.py index 3b10cca180..6d9d45e12a 100644 --- a/lib/spack/spack/binary_distribution.py +++ b/lib/spack/spack/binary_distribution.py @@ -272,7 +272,7 @@ def generate_package_index(cache_prefix): Creates (or replaces) the "index.html" page at the location given in cache_prefix. This page contains a link for each binary package (*.yaml) - and signing key (*.key) under cache_prefix. + and public key (*.key) under cache_prefix. """ tmpdir = tempfile.mkdtemp() try: @@ -679,7 +679,7 @@ def get_specs(force=False): return _cached_specs if not spack.mirror.MirrorCollection(): - tty.warn("No Spack mirrors are currently configured") + tty.debug("No Spack mirrors are currently configured") return {} urls = set() diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py index b75807fd06..79c16114f9 100644 --- a/lib/spack/spack/build_systems/cuda.py +++ b/lib/spack/spack/build_systems/cuda.py @@ -61,12 +61,13 @@ class CudaPackage(PackageBase): 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.1.243' + arch_platform) + conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89' + arch_platform) conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27' + arch_platform) conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5' + arch_platform) conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8' + arch_platform) conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1' + arch_platform) conflicts('%pgi@:16', when='+cuda ^cuda@9.2.88:10' + arch_platform) + conflicts('%pgi@:17', when='+cuda ^cuda@10.2.89' + arch_platform) conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5' + arch_platform) conflicts('%clang@:3.7,4:', when='+cuda ^cuda@8.0:9.0' + arch_platform) @@ -74,6 +75,10 @@ class CudaPackage(PackageBase): 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.0:', when='+cuda ^cuda@10.2.89' + arch_platform) # x86_64 vs. ppc64le differ according to NVidia docs # Linux ppc64le compiler conflicts from Table from the docs below: @@ -95,6 +100,8 @@ class CudaPackage(PackageBase): 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) # 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 @@ -107,12 +114,12 @@ class CudaPackage(PackageBase): 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.0:', when='+cuda ^cuda@:10.2.89') # XL is mostly relevant for ppc64le Linux conflicts('%xl@:12,14:', when='+cuda ^cuda@:9.1') conflicts('%xl@:12,14:15,17:', when='+cuda ^cuda@9.2') - conflicts('%xl@17:', when='+cuda ^cuda@10.0.130') + conflicts('%xl@17:', when='+cuda ^cuda@10.0.130:10.2.89') # Mac OS X # platform = ' platform=darwin' diff --git a/lib/spack/spack/build_systems/gnu.py b/lib/spack/spack/build_systems/gnu.py new file mode 100644 index 0000000000..0fe6f5f780 --- /dev/null +++ b/lib/spack/spack/build_systems/gnu.py @@ -0,0 +1,37 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import os.path + +import spack.package + + +class GNUMirrorPackage(spack.package.PackageBase): + """Mixin that takes care of setting url and mirrors for GNU packages.""" + #: Path of the package in a GNU mirror + gnu_mirror_path = None + + #: List of GNU mirrors used by Spack + base_mirrors = [ + 'https://ftp.gnu.org/gnu', + 'https://ftpmirror.gnu.org/', + # Fall back to http if https didn't work (for instance because + # Spack is bootstrapping curl) + 'http://ftpmirror.gnu.org/' + ] + + @property + def urls(self): + self._ensure_gnu_mirror_path_is_set_or_raise() + return [ + os.path.join(m, self.gnu_mirror_path) for m in self.base_mirrors + ] + + def _ensure_gnu_mirror_path_is_set_or_raise(self): + if self.gnu_mirror_path is None: + cls_name = type(self).__name__ + msg = ('{0} must define a `gnu_mirror_path` attribute' + ' [none defined]') + raise AttributeError(msg.format(cls_name)) diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py index 858b4e37fb..0ec81f3537 100644 --- a/lib/spack/spack/build_systems/intel.py +++ b/lib/spack/spack/build_systems/intel.py @@ -89,7 +89,7 @@ class IntelPackage(PackageBase): 2. :py:meth:`~.IntelPackage.install` They both have sensible defaults and for many packages the - only thing necessary will be to override setup_environment + only thing necessary will be to override setup_run_environment to set the appropriate environment variables. """ #: Phases of an Intel package @@ -455,9 +455,7 @@ class IntelPackage(PackageBase): break if not matching_dirs: - # No match -- this *will* happen during pre-build call to - # setup_environment() when the destination dir is still empty. - # Return a sensible value anyway. + # No match -- return a sensible value anyway. d = unversioned_dirname debug_print(d) @@ -786,7 +784,8 @@ class IntelPackage(PackageBase): debug_print(mkl_libs) if len(mkl_libs) < 3: - raise_lib_error('Cannot locate core MKL libraries:', mkl_libnames) + raise_lib_error('Cannot locate core MKL libraries:', mkl_libnames, + 'in:', self.component_lib_dir('mkl')) # The Intel MKL link line advisor recommends these system libraries system_libs = find_system_libraries( @@ -888,15 +887,15 @@ class IntelPackage(PackageBase): # debug_print("wrapper_vars =", wrapper_vars) return wrapper_vars - def mpi_setup_dependent_environment( - self, spack_env, run_env, dependent_spec, compilers_of_client={}): - '''Unified back-end for setup_dependent_environment() of Intel packages - that provide 'mpi'. + def mpi_setup_dependent_build_environment( + self, env, dependent_spec, compilers_of_client={}): + '''Unified back-end for setup_dependent_build_environment() of + Intel packages that provide 'mpi'. Parameters: - spack_env, run_env, dependent_spec: same as in - setup_dependent_environment(). + env, dependent_spec: same as in + setup_dependent_build_environment(). compilers_of_client (dict): Conveys spack_cc, spack_cxx, etc., from the scope of dependent packages; constructed in caller. @@ -938,12 +937,12 @@ class IntelPackage(PackageBase): # Ensure that the directory containing the compiler wrappers is in the # PATH. Spack packages add `prefix.bin` to their dependents' paths, # but because of the intel directory hierarchy that is insufficient. - spack_env.prepend_path('PATH', os.path.dirname(wrapper_vars['MPICC'])) + env.prepend_path('PATH', os.path.dirname(wrapper_vars['MPICC'])) for key, value in wrapper_vars.items(): - spack_env.set(key, value) + env.set(key, value) - debug_print("adding to spack_env:", wrapper_vars) + debug_print("adding to build env:", wrapper_vars) # --------------------------------------------------------------------- # General support for child packages @@ -994,7 +993,7 @@ class IntelPackage(PackageBase): debug_print(result) return result - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Adds environment variables to the generated module file. These environment variables come from running: @@ -1004,24 +1003,7 @@ class IntelPackage(PackageBase): $ source parallel_studio_xe_2017/bin/psxevars.sh intel64 [and likewise for MKL, MPI, and other components] """ - # https://spack.readthedocs.io/en/latest/spack.html#spack.package.PackageBase.setup_environment - # - # spack_env -> Applied when dependent is built within Spack. - # Not used here. - # run_env -> Applied to the modulefile of dependent. - # - # NOTE: Spack runs setup_environment twice, once pre-build to set up - # the build environment, and once post-installation to determine - # the environment variables needed at run-time to add to the module - # file. The script we need to source is only present post-installation, - # so check for its existence before sourcing. - # TODO: At some point we should split setup_environment into - # setup_build_environment and setup_run_environment to get around - # this problem. f = self.file_to_source - if not f or not os.path.isfile(f): - return - tty.debug("sourcing " + f) # All Intel packages expect at least the architecture as argument. @@ -1033,15 +1015,9 @@ class IntelPackage(PackageBase): # if sys.platform == 'darwin': # args = () - run_env.extend(EnvironmentModifications.from_sourcing_file(f, *args)) + env.extend(EnvironmentModifications.from_sourcing_file(f, *args)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - # https://spack.readthedocs.io/en/latest/spack.html#spack.package.PackageBase.setup_dependent_environment - # - # spack_env -> Applied when dependent is built within Spack. - # run_env -> Applied to the modulefile of dependent. - # Not used here. - # + def setup_dependent_build_environment(self, env, dependent_spec): # NB: This function is overwritten by 'mpi' provider packages: # # var/spack/repos/builtin/packages/intel-mpi/package.py @@ -1051,18 +1027,20 @@ class IntelPackage(PackageBase): # dictionary kwarg compilers_of_client{} present and populated. # Handle everything in a callback version. - self._setup_dependent_env_callback(spack_env, run_env, dependent_spec) + self._setup_dependent_env_callback(env, dependent_spec) def _setup_dependent_env_callback( - self, spack_env, run_env, dependent_spec, compilers_of_client={}): - # Expected to be called from a client's setup_dependent_environment(), + self, env, dependent_spec, compilers_of_client={}): + # Expected to be called from a client's + # setup_dependent_build_environment(), # with args extended to convey the client's compilers as needed. if '+mkl' in self.spec or self.provides('mkl'): # Spack's env philosophy demands that we replicate some of the # settings normally handled by file_to_source ... # - # TODO: Why is setup_environment() [which uses file_to_source()] + # TODO: Why is setup_run_environment() + # [which uses file_to_source()] # not called as a matter of course upon entering the current # function? (guarding against multiple calls notwithstanding) # @@ -1072,16 +1050,16 @@ class IntelPackage(PackageBase): 'SPACK_COMPILER_EXTRA_RPATHS': self.component_lib_dir('mkl'), } - spack_env.set('MKLROOT', env_mods['MKLROOT']) - spack_env.append_path('SPACK_COMPILER_EXTRA_RPATHS', - env_mods['SPACK_COMPILER_EXTRA_RPATHS']) + env.set('MKLROOT', env_mods['MKLROOT']) + env.append_path('SPACK_COMPILER_EXTRA_RPATHS', + env_mods['SPACK_COMPILER_EXTRA_RPATHS']) - debug_print("adding/modifying spack_env:", env_mods) + debug_print("adding/modifying build env:", env_mods) if '+mpi' in self.spec or self.provides('mpi'): if compilers_of_client: - self.mpi_setup_dependent_environment( - spack_env, run_env, dependent_spec, compilers_of_client) + self.mpi_setup_dependent_build_environment( + env, dependent_spec, compilers_of_client) # We could forego this nonce function and inline its code here, # but (a) it sisters mpi_compiler_wrappers() [needed twice] # which performs dizzyingly similar but necessarily different diff --git a/lib/spack/spack/build_systems/octave.py b/lib/spack/spack/build_systems/octave.py index 677e623bd6..5535cd4d9f 100644 --- a/lib/spack/spack/build_systems/octave.py +++ b/lib/spack/spack/build_systems/octave.py @@ -29,12 +29,11 @@ class OctavePackage(PackageBase): extends('octave') depends_on('octave', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): - """Set up the compile and runtime environments for a package.""" + def setup_build_environment(self, env): # octave does not like those environment variables to be set: - spack_env.unset('CC') - spack_env.unset('CXX') - spack_env.unset('FC') + env.unset('CC') + env.unset('CXX') + env.unset('FC') def install(self, spec, prefix): """Install the package from the archive file""" diff --git a/lib/spack/spack/cmd/__init__.py b/lib/spack/spack/cmd/__init__.py index 0d2e92940b..87526e32d9 100644 --- a/lib/spack/spack/cmd/__init__.py +++ b/lib/spack/spack/cmd/__init__.py @@ -212,6 +212,9 @@ def disambiguate_spec(spec, env, local=False, installed=True): def gray_hash(spec, length): + if not length: + # default to maximum hash length + length = 32 h = spec.dag_hash(length) if spec.concrete else '-' * length return colorize('@K{%s}' % h) diff --git a/lib/spack/spack/cmd/buildcache.py b/lib/spack/spack/cmd/buildcache.py index ee09a33f39..112949c338 100644 --- a/lib/spack/spack/cmd/buildcache.py +++ b/lib/spack/spack/cmd/buildcache.py @@ -416,11 +416,9 @@ def listspecs(args): """list binary packages available from mirrors""" specs = bindist.get_specs(args.force) if args.packages: - pkgs = set(args.packages) - specs = [s for s in specs for p in pkgs if s.satisfies(p)] - display_specs(specs, args, all_headers=True) - else: - display_specs(specs, args, all_headers=True) + constraints = set(args.packages) + specs = [s for s in specs if any(s.satisfies(c) for c in constraints)] + display_specs(specs, args, all_headers=True) def getkeys(args): diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py index 2518dfef9f..d8407651b6 100644 --- a/lib/spack/spack/cmd/checksum.py +++ b/lib/spack/spack/cmd/checksum.py @@ -61,3 +61,4 @@ def checksum(parser, args): print() print(version_lines) + print() diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index ee0fb3a347..a64d12539b 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -246,6 +246,7 @@ class PythonPackageTemplate(PackageTemplate): dependencies = """\ # FIXME: Add dependencies if required. + # depends_on('python@2.X:2.Y,3.Z:', type=('build', 'run')) # depends_on('py-setuptools', type='build') # depends_on('py-foo', type=('build', 'run'))""" @@ -426,7 +427,8 @@ def setup_parser(subparser): '-n', '--name', help="name of the package to create") subparser.add_argument( - '-t', '--template', metavar='TEMPLATE', choices=templates.keys(), + '-t', '--template', metavar='TEMPLATE', + choices=sorted(templates.keys()), help="build system template to use. options: %(choices)s") subparser.add_argument( '-r', '--repo', @@ -458,7 +460,7 @@ class BuildSystemGuesser: the contents of its archive or the URL it was downloaded from.""" # Most octave extensions are hosted on Octave-Forge: - # http://octave.sourceforge.net/index.html + # https://octave.sourceforge.net/index.html # They all have the same base URL. if url is not None and 'downloads.sourceforge.net/octave/' in url: self.build_system = 'octave' @@ -571,7 +573,7 @@ def get_url(args): """ # Default URL - url = 'http://www.example.com/example-1.2.3.tar.gz' + url = 'https://www.example.com/example-1.2.3.tar.gz' if args.url: # Use a user-supplied URL if one is present diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py index 37cfcd30d5..65946e2a4c 100644 --- a/lib/spack/spack/cmd/find.py +++ b/lib/spack/spack/cmd/find.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from __future__ import print_function +import copy import llnl.util.tty as tty import llnl.util.tty.color as color @@ -166,11 +167,16 @@ def display_env(env, args, decorator): else: tty.msg('Root specs') + # Root specs cannot be displayed with prefixes, since those are not + # set for abstract specs. Same for hashes + root_args = copy.copy(args) + root_args.paths = False + # Roots are displayed with variants, etc. so that we can see # specifically what the user asked for. cmd.display_specs( env.user_specs, - args, + root_args, decorator=lambda s, f: color.colorize('@*{%s}' % f), namespace=True, show_flags=True, diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py index ab012eaead..f39522ff59 100644 --- a/lib/spack/spack/cmd/install.py +++ b/lib/spack/spack/cmd/install.py @@ -72,7 +72,7 @@ the dependencies""" subparser.add_argument( '-u', '--until', type=str, dest='until', default=None, help="phase to stop after when installing (default None)") - arguments.add_common_arguments(subparser, ['jobs', 'install_status']) + arguments.add_common_arguments(subparser, ['jobs']) subparser.add_argument( '--overwrite', action='store_true', help="reinstall an existing spec, even if it has dependents") @@ -151,38 +151,62 @@ packages. If neither are chosen, don't run tests for any packages.""" help="filename for the log file. if not passed a default will be used" ) subparser.add_argument( + '--help-cdash', + action='store_true', + help="Show usage instructions for CDash reporting" + ) + add_cdash_args(subparser, False) + arguments.add_common_arguments(subparser, ['yes_to_all']) + + +def add_cdash_args(subparser, add_help): + cdash_help = {} + if add_help: + cdash_help['upload-url'] = "CDash URL where reports will be uploaded" + cdash_help['build'] = """The name of the build that will be reported to CDash. +Defaults to spec of the package to install.""" + cdash_help['site'] = """The site name that will be reported to CDash. +Defaults to current system hostname.""" + cdash_help['track'] = """Results will be reported to this group on CDash. +Defaults to Experimental.""" + cdash_help['buildstamp'] = """Instead of letting the CDash reporter prepare the +buildstamp which, when combined with build name, site and project, +uniquely identifies the build, provide this argument to identify +the build yourself. Format: %%Y%%m%%d-%%H%%M-[cdash-track]""" + else: + cdash_help['upload-url'] = argparse.SUPPRESS + cdash_help['build'] = argparse.SUPPRESS + cdash_help['site'] = argparse.SUPPRESS + cdash_help['track'] = argparse.SUPPRESS + cdash_help['buildstamp'] = argparse.SUPPRESS + + subparser.add_argument( '--cdash-upload-url', default=None, - help="CDash URL where reports will be uploaded" + help=cdash_help['upload-url'] ) subparser.add_argument( '--cdash-build', default=None, - help="""The name of the build that will be reported to CDash. -Defaults to spec of the package to install.""" + help=cdash_help['build'] ) subparser.add_argument( '--cdash-site', default=None, - help="""The site name that will be reported to CDash. -Defaults to current system hostname.""" + help=cdash_help['site'] ) + cdash_subgroup = subparser.add_mutually_exclusive_group() cdash_subgroup.add_argument( '--cdash-track', default='Experimental', - help="""Results will be reported to this group on CDash. -Defaults to Experimental.""" + help=cdash_help['track'] ) cdash_subgroup.add_argument( '--cdash-buildstamp', default=None, - help="""Instead of letting the CDash reporter prepare the -buildstamp which, when combined with build name, site and project, -uniquely identifies the build, provide this argument to identify -the build yourself. Format: %%Y%%m%%d-%%H%%M-[cdash-track]""" + help=cdash_help['buildstamp'] ) - arguments.add_common_arguments(subparser, ['yes_to_all']) def default_log_file(spec): @@ -221,6 +245,12 @@ def install_spec(cli_args, kwargs, abstract_spec, spec): def install(parser, args, **kwargs): + if args.help_cdash: + parser = argparse.ArgumentParser() + add_cdash_args(parser, True) + parser.print_help() + return + if not args.package and not args.specfiles: # if there are no args but an active environment or spack.yaml file # then install the packages from it. diff --git a/lib/spack/spack/cmd/url.py b/lib/spack/spack/cmd/url.py index a24fcc575c..0c105c65c3 100644 --- a/lib/spack/spack/cmd/url.py +++ b/lib/spack/spack/cmd/url.py @@ -135,7 +135,7 @@ def url_list(args): # Gather set of URLs from all packages for pkg in spack.repo.path.all_packages(): - url = getattr(pkg.__class__, 'url', None) + url = getattr(pkg, 'url', None) urls = url_list_parsing(args, urls, url, pkg) for params in pkg.versions.values(): @@ -174,7 +174,7 @@ def url_summary(args): for pkg in spack.repo.path.all_packages(): urls = set() - url = getattr(pkg.__class__, 'url', None) + url = getattr(pkg, 'url', None) if url: urls.add(url) @@ -434,23 +434,10 @@ def name_parsed_correctly(pkg, name): Returns: bool: True if the name was correctly parsed, else False """ - pkg_name = pkg.name + pkg_name = remove_prefix(pkg.name) name = simplify_name(name) - # After determining a name, `spack create` determines a build system. - # Some build systems prepend a special string to the front of the name. - # Since this can't be guessed from the URL, it would be unfair to say - # that these names are incorrectly parsed, so we remove them. - if pkg_name.startswith('r-'): - pkg_name = pkg_name[2:] - elif pkg_name.startswith('py-'): - pkg_name = pkg_name[3:] - elif pkg_name.startswith('perl-'): - pkg_name = pkg_name[5:] - elif pkg_name.startswith('octave-'): - pkg_name = pkg_name[7:] - return name == pkg_name @@ -475,8 +462,32 @@ def version_parsed_correctly(pkg, version): return False +def remove_prefix(pkg_name): + """Remove build system prefix ('py-', 'perl-', etc.) from a package name. + + After determining a name, `spack create` determines a build system. + Some build systems prepend a special string to the front of the name. + Since this can't be guessed from the URL, it would be unfair to say + that these names are incorrectly parsed, so we remove them. + + Args: + pkg_name (str): the name of the package + + Returns: + str: the name of the package with any build system prefix removed + """ + prefixes = [ + 'r-', 'py-', 'tcl-', 'lua-', 'perl-', 'ruby-', 'llvm-', + 'intel-', 'votca-', 'octave-', 'gtkorvo-' + ] + + prefix = next((p for p in prefixes if pkg_name.startswith(p)), '') + + return pkg_name[len(prefix):] + + def remove_separators(version): - """Removes separator characters ('.', '_', and '-') from a version. + """Remove separator characters ('.', '_', and '-') from a version. A version like 1.2.3 may be displayed as 1_2_3 in the URL. Make sure 1.2.3, 1-2-3, 1_2_3, and 123 are considered equal. diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py index f2b62dc3f9..1a6b33af0c 100644 --- a/lib/spack/spack/compiler.py +++ b/lib/spack/spack/compiler.py @@ -32,7 +32,7 @@ def _verify_executables(*paths): @llnl.util.lang.memoized -def get_compiler_version_output(compiler_path, version_arg): +def get_compiler_version_output(compiler_path, version_arg, ignore_errors=()): """Invokes the compiler at a given path passing a single version argument and returns the output. @@ -41,7 +41,8 @@ def get_compiler_version_output(compiler_path, version_arg): version_arg (str): the argument used to extract version information """ compiler = spack.util.executable.Executable(compiler_path) - output = compiler(version_arg, output=str, error=str) + output = compiler( + version_arg, output=str, error=str, ignore_errors=ignore_errors) return output @@ -199,6 +200,9 @@ class Compiler(object): #: Compiler argument that produces version information version_argument = '-dumpversion' + #: Return values to ignore when invoking the compiler to get its version + ignore_version_errors = () + #: Regex used to extract version from compiler's output version_regex = '(.*)' @@ -412,7 +416,8 @@ class Compiler(object): @classmethod def default_version(cls, cc): """Override just this to override all compiler version functions.""" - output = get_compiler_version_output(cc, cls.version_argument) + output = get_compiler_version_output( + cc, cls.version_argument, tuple(cls.ignore_version_errors)) return cls.extract_version_from_output(output) @classmethod diff --git a/lib/spack/spack/compilers/pgi.py b/lib/spack/spack/compilers/pgi.py index 90560f7c63..2798210bca 100644 --- a/lib/spack/spack/compilers/pgi.py +++ b/lib/spack/spack/compilers/pgi.py @@ -30,6 +30,7 @@ class Pgi(Compiler): PrgEnv_compiler = 'pgi' version_argument = '-V' + ignore_version_errors = [2] # `pgcc -V` on PowerPC annoyingly returns 2 version_regex = r'pg[^ ]* ([0-9.]+)-[0-9]+ (LLVM )?[^ ]+ target on ' @classmethod diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py index bf9af075ce..b0d17877dc 100644 --- a/lib/spack/spack/environment.py +++ b/lib/spack/spack/environment.py @@ -825,7 +825,10 @@ class Environment(object): raise SpackEnvironmentError( 'cannot add anonymous specs to an environment!') elif not spack.repo.path.exists(spec.name): - raise SpackEnvironmentError('no such package: %s' % spec.name) + virtuals = spack.repo.path.provider_index.providers.keys() + if spec.name not in virtuals: + msg = 'no such package: %s' % spec.name + raise SpackEnvironmentError(msg) list_to_change = self.spec_lists[list_name] existing = str(spec) in list_to_change.yaml_list diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py index 5a57703d27..f1ea0d35b6 100644 --- a/lib/spack/spack/fetch_strategy.py +++ b/lib/spack/spack/fetch_strategy.py @@ -22,33 +22,30 @@ in order to build it. They need to define the following methods: * archive() Archive a source directory, e.g. for creating a mirror. """ +import copy +import functools import os import os.path -import sys import re import shutil -import copy +import sys import xml.etree.ElementTree -from functools import wraps -from six import string_types, with_metaclass -import six.moves.urllib.parse as urllib_parse import llnl.util.tty as tty -from llnl.util.filesystem import ( - working_dir, mkdirp, temp_rename, temp_cwd, get_single_file) - +import six +import six.moves.urllib.parse as urllib_parse import spack.config import spack.error import spack.util.crypto as crypto import spack.util.pattern as pattern -import spack.util.web as web_util 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) +from spack.util.compression import decompressor_for, extension from spack.util.executable import which from spack.util.string import comma_and, quote from spack.version import Version, ver -from spack.util.compression import decompressor_for, extension - #: List of all fetch strategies, created by FetchStrategy metaclass. all_strategies = [] @@ -69,7 +66,7 @@ def _needs_stage(fun): """Many methods on fetch strategies require a stage to be set using set_stage(). This decorator adds a check for self.stage.""" - @wraps(fun) + @functools.wraps(fun) def wrapper(self, *args, **kwargs): if not self.stage: raise NoStageError(fun) @@ -85,18 +82,14 @@ def _ensure_one_stage_entry(stage_path): return os.path.join(stage_path, stage_entries[0]) -class FSMeta(type): - """This metaclass registers all fetch strategies in a list.""" - def __init__(cls, name, bases, dict): - type.__init__(cls, name, bases, dict) - if cls.enabled: - all_strategies.append(cls) +def fetcher(cls): + """Decorator used to register fetch strategies.""" + all_strategies.append(cls) + return cls -class FetchStrategy(with_metaclass(FSMeta, object)): +class FetchStrategy(object): """Superclass of all fetch strategies.""" - enabled = False # Non-abstract subclasses should be enabled. - #: 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. @@ -113,16 +106,7 @@ class FetchStrategy(with_metaclass(FSMeta, object)): self.stage = None # Enable or disable caching for this strategy based on # 'no_cache' option from version directive. - self._cache_enabled = not kwargs.pop('no_cache', False) - - def set_stage(self, stage): - """This is called by Stage before any of the fetching - methods are called on the stage.""" - self.stage = stage - - @property - def cache_enabled(self): - return self._cache_enabled + self.cache_enabled = not kwargs.pop('no_cache', False) # Subclasses need to implement these methods def fetch(self): @@ -186,13 +170,18 @@ class FetchStrategy(with_metaclass(FSMeta, object)): def __str__(self): # Should be human readable URL. return "FetchStrategy.__str___" - # This method is used to match fetch strategies to version() - # arguments in packages. @classmethod def matches(cls, args): + """Predicate that matches fetch strategies to arguments of + the version directive. + + Args: + args: arguments of the version directive + """ return cls.url_attr in args +@fetcher class BundleFetchStrategy(FetchStrategy): """ Fetch strategy associated with bundle, or no-code, packages. @@ -204,9 +193,6 @@ class BundleFetchStrategy(FetchStrategy): TODO: Remove this class by refactoring resource handling and the link between composite stages and composite fetch strategies (see #11981). """ - #: This is a concrete fetch strategy for no-code packages. - enabled = True - #: There is no associated URL keyword in ``version()`` for no-code #: packages but this property is required for some strategy-related #: functions (e.g., check_pkg_attributes). @@ -225,6 +211,9 @@ class BundleFetchStrategy(FetchStrategy): """BundlePackages don't have a source id.""" return '' + def mirror_id(self): + """BundlePackages don't have a mirror id.""" + @pattern.composite(interface=FetchStrategy) class FetchStrategyComposite(object): @@ -233,7 +222,6 @@ class FetchStrategyComposite(object): Implements the GoF composite pattern. """ matches = FetchStrategy.matches - set_stage = FetchStrategy.set_stage def source_id(self): component_ids = tuple(i.source_id() for i in self) @@ -241,13 +229,13 @@ class FetchStrategyComposite(object): return component_ids +@fetcher class URLFetchStrategy(FetchStrategy): + """URLFetchStrategy pulls source code from a URL for an archive, check the + archive against a checksum, and decompresses the archive. + + The destination for the resulting file(s) is the standard stage path. """ - FetchStrategy that pulls source code from a URL for an archive, check the - archive against a checksum, and decompresses the archive. The destination - for the resulting file(s) is the standard stage source path. - """ - enabled = True url_attr = 'url' # these are checksum types. The generic 'checksum' is deprecated for @@ -259,6 +247,7 @@ class URLFetchStrategy(FetchStrategy): # Prefer values in kwargs to the positionals. self.url = kwargs.get('url', url) + self.mirrors = kwargs.get('mirrors', []) # digest can be set as the first argument, or from an explicit # kwarg by the hash name. @@ -294,20 +283,36 @@ class URLFetchStrategy(FetchStrategy): return os.path.sep.join( ['archive', self.digest[:2], self.digest]) + @property + def candidate_urls(self): + return [self.url] + (self.mirrors or []) + @_needs_stage def fetch(self): if self.archive_file: tty.msg("Already downloaded %s" % self.archive_file) return + for url in self.candidate_urls: + try: + partial_file, save_file = self._fetch_from_url(url) + if save_file: + os.rename(partial_file, save_file) + break + except FetchError as e: + tty.msg(str(e)) + pass + + if not self.archive_file: + raise FailedDownloadError(self.url) + + def _fetch_from_url(self, url): save_file = None partial_file = None if self.stage.save_filename: save_file = self.stage.save_filename partial_file = self.stage.save_filename + '.part' - - tty.msg("Fetching %s" % self.url) - + tty.msg("Fetching %s" % url) if partial_file: save_args = ['-C', '-', # continue partial downloads @@ -321,7 +326,9 @@ class URLFetchStrategy(FetchStrategy): '-D', '-', # print out HTML headers '-L', # resolve 3xx redirects - self.url, + # Timeout if can't establish a connection after 10 sec. + '--connect-timeout', '10', + url, ] if not spack.config.get('config:verify_ssl'): @@ -377,12 +384,7 @@ class URLFetchStrategy(FetchStrategy): flags=re.IGNORECASE) if content_types and 'text/html' in content_types[-1]: warn_content_type_mismatch(self.archive_file or "the archive") - - if save_file: - os.rename(partial_file, save_file) - - if not self.archive_file: - raise FailedDownloadError(self.url) + return partial_file, save_file @property @_needs_stage @@ -392,7 +394,7 @@ class URLFetchStrategy(FetchStrategy): @property def cachable(self): - return self._cache_enabled and bool(self.digest) + return self.cache_enabled and bool(self.digest) @_needs_stage def expand(self): @@ -519,6 +521,7 @@ class URLFetchStrategy(FetchStrategy): return "[no url]" +@fetcher class CacheURLFetchStrategy(URLFetchStrategy): """The resource associated with a cache URL may be out of date.""" @@ -594,7 +597,7 @@ class VCSFetchStrategy(FetchStrategy): patterns = kwargs.get('exclude', None) if patterns is not None: - if isinstance(patterns, string_types): + if isinstance(patterns, six.string_types): patterns = [patterns] for p in patterns: tar.add_default_arg('--exclude=%s' % p) @@ -618,6 +621,7 @@ class VCSFetchStrategy(FetchStrategy): return "%s<%s>" % (self.__class__, self.url) +@fetcher class GoFetchStrategy(VCSFetchStrategy): """Fetch strategy that employs the `go get` infrastructure. @@ -631,7 +635,6 @@ class GoFetchStrategy(VCSFetchStrategy): The fetched source will be moved to the standard stage sourcepath directory during the expand step. """ - enabled = True url_attr = 'go' def __init__(self, **kwargs): @@ -688,6 +691,7 @@ class GoFetchStrategy(VCSFetchStrategy): return "[go] %s" % self.url +@fetcher class GitFetchStrategy(VCSFetchStrategy): """ @@ -709,7 +713,6 @@ class GitFetchStrategy(VCSFetchStrategy): Repositories are cloned into the standard stage source path directory. """ - enabled = True url_attr = 'git' optional_attrs = ['tag', 'branch', 'commit', 'submodules', 'get_full_repo'] @@ -743,7 +746,7 @@ class GitFetchStrategy(VCSFetchStrategy): @property def cachable(self): - return self._cache_enabled and bool(self.commit or self.tag) + return self.cache_enabled and bool(self.commit or self.tag) def source_id(self): return self.commit or self.tag @@ -889,6 +892,7 @@ class GitFetchStrategy(VCSFetchStrategy): return '[git] {0}'.format(self._repo_info()) +@fetcher class SvnFetchStrategy(VCSFetchStrategy): """Fetch strategy that gets source code from a subversion repository. @@ -903,7 +907,6 @@ class SvnFetchStrategy(VCSFetchStrategy): Repositories are checked out into the standard stage source path directory. """ - enabled = True url_attr = 'svn' optional_attrs = ['revision'] @@ -926,7 +929,7 @@ class SvnFetchStrategy(VCSFetchStrategy): @property def cachable(self): - return self._cache_enabled and bool(self.revision) + return self.cache_enabled and bool(self.revision) def source_id(self): return self.revision @@ -988,6 +991,7 @@ class SvnFetchStrategy(VCSFetchStrategy): return "[svn] %s" % self.url +@fetcher class HgFetchStrategy(VCSFetchStrategy): """ @@ -1010,7 +1014,6 @@ class HgFetchStrategy(VCSFetchStrategy): Repositories are cloned into the standard stage source path directory. """ - enabled = True url_attr = 'hg' optional_attrs = ['revision'] @@ -1040,7 +1043,7 @@ class HgFetchStrategy(VCSFetchStrategy): @property def cachable(self): - return self._cache_enabled and bool(self.revision) + return self.cache_enabled and bool(self.revision) def source_id(self): return self.revision @@ -1105,9 +1108,9 @@ class HgFetchStrategy(VCSFetchStrategy): return "[hg] %s" % self.url +@fetcher class S3FetchStrategy(URLFetchStrategy): """FetchStrategy that pulls from an S3 bucket.""" - enabled = True url_attr = 's3' def __init__(self, *args, **kwargs): @@ -1139,7 +1142,7 @@ class S3FetchStrategy(URLFetchStrategy): with open(basename, 'wb') as f: shutil.copyfileobj(stream, f) - content_type = headers['Content-type'] + content_type = web_util.get_header(headers, 'Content-type') if content_type == 'text/html': warn_content_type_mismatch(self.archive_file or "the archive") @@ -1241,10 +1244,15 @@ def _from_merged_attrs(fetcher, pkg, version): """Create a fetcher from merged package and version attributes.""" if fetcher.url_attr == 'url': url = pkg.url_for_version(version) + # TODO: refactor this logic into its own method or function + # TODO: to avoid duplication + mirrors = [spack.url.substitute_version(u, version) + for u in getattr(pkg, 'urls', [])] + attrs = {fetcher.url_attr: url, 'mirrors': mirrors} else: url = getattr(pkg, fetcher.url_attr) + attrs = {fetcher.url_attr: url} - attrs = {fetcher.url_attr: url} attrs.update(pkg.versions[version]) return fetcher(**attrs) @@ -1308,7 +1316,9 @@ def from_url_scheme(url, *args, **kwargs): { 'file': 'url', 'http': 'url', - 'https': 'url' + 'https': 'url', + 'ftp': 'url', + 'ftps': 'url', }) scheme = parsed_url.scheme diff --git a/lib/spack/spack/mirror.py b/lib/spack/spack/mirror.py index da9b20472a..ceb53801ce 100644 --- a/lib/spack/spack/mirror.py +++ b/lib/spack/spack/mirror.py @@ -21,6 +21,8 @@ import six import ruamel.yaml.error as yaml_error +from ordereddict_backport import OrderedDict + try: from collections.abc import Mapping except ImportError: @@ -166,7 +168,7 @@ class MirrorCollection(Mapping): """A mapping of mirror names to mirrors.""" def __init__(self, mirrors=None, scope=None): - self._mirrors = dict( + self._mirrors = OrderedDict( (name, Mirror.from_dict(mirror, name)) for name, mirror in ( mirrors.items() if mirrors is not None else @@ -178,6 +180,7 @@ class MirrorCollection(Mapping): def to_yaml(self, stream=None): return syaml.dump(self.to_dict(True), stream) + # TODO: this isn't called anywhere @staticmethod def from_yaml(stream, name=None): try: diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 26335ed2ff..f48f296548 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -510,8 +510,8 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): maintainers = [] #: List of attributes to be excluded from a package's hash. - metadata_attrs = ['homepage', 'url', 'list_url', 'extendable', 'parallel', - 'make_jobs'] + metadata_attrs = ['homepage', 'url', 'urls', 'list_url', 'extendable', + 'parallel', 'make_jobs'] def __init__(self, spec): # this determines how the package should be built. @@ -524,6 +524,12 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): # a binary cache. self.installed_from_binary_cache = False + # Ensure that only one of these two attributes are present + if getattr(self, 'url', None) and getattr(self, 'urls', None): + msg = "a package can have either a 'url' or a 'urls' attribute" + 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 @@ -556,16 +562,19 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): @classmethod def possible_dependencies( cls, transitive=True, expand_virtuals=True, deptype='all', - visited=None): + visited=None, missing=None): """Return dict of possible dependencies of this package. Args: - transitive (bool): return all transitive dependencies if True, - only direct dependencies if False. - expand_virtuals (bool): expand virtual dependencies into all - possible implementations. - deptype (str or tuple): dependency types to consider - visited (set): set of names of dependencies visited so far. + transitive (bool, optional): return all transitive dependencies if + True, only direct dependencies if False (default True).. + expand_virtuals (bool, optional): 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 + far, mapped to their immediate dependencies' names. + missing (dict, optional): dict to populate with packages and their + *missing* dependencies. Returns: (dict): dictionary mapping dependency names to *their* @@ -576,7 +585,12 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): *immediate* dependencies. If ``expand_virtuals`` is ``False``, virtual package names wil be inserted as keys mapped to empty sets of dependencies. Virtuals, if not expanded, are treated as - though they have no immediate dependencies + though they have no immediate dependencies. + + Missing dependencies by default are ignored, but if a + missing dict is provided, it will be populated with package names + mapped to any dependencies they have that are in no + repositories. This is only populated if transitive is True. Note: the returned dict *includes* the package itself. @@ -586,6 +600,9 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): if visited is None: visited = {cls.name: set()} + if missing is None: + missing = {cls.name: set()} + for name, conditions in cls.dependencies.items(): # check whether this dependency could be of the type asked for types = [dep.type for cond, dep in conditions.items()] @@ -609,12 +626,24 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): # recursively traverse dependencies for dep_name in dep_names: - if dep_name not in visited: - visited.setdefault(dep_name, set()) - if transitive: - dep_cls = spack.repo.path.get_pkg_class(dep_name) - dep_cls.possible_dependencies( - transitive, expand_virtuals, deptype, visited) + if dep_name in visited: + continue + + visited.setdefault(dep_name, set()) + + # skip the rest if not transitive + if not transitive: + continue + + try: + dep_cls = spack.repo.path.get_pkg_class(dep_name) + except spack.repo.UnknownPackageError: + # log unknown packages + missing.setdefault(cls.name, set()).add(dep_name) + continue + + dep_cls.possible_dependencies( + transitive, expand_virtuals, deptype, visited, missing) return visited @@ -727,7 +756,9 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): return version_urls[version] # If no specific URL, use the default, class-level URL - default_url = getattr(self, 'url', None) + url = getattr(self, 'url', None) + urls = getattr(self, 'urls', [None]) + default_url = url or urls.pop(0) # if no exact match AND no class-level default, use the nearest URL if not default_url: @@ -1509,6 +1540,7 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)): ) if not compilers: dep = spack.compilers.pkg_spec_for_compiler(self.spec.compiler) + dep.architecture = self.spec.architecture # concrete CompilerSpec has less info than concrete Spec # concretize as Spec to add that information dep.concretize() @@ -2662,6 +2694,35 @@ def dump_packages(spec, path): spack.repo.path.dump_provenance(node, dest_pkg_dir) +def possible_dependencies(*pkg_or_spec, **kwargs): + """Get the possible dependencies of a number of packages. + + See ``PackageBase.possible_dependencies`` for details. + """ + transitive = kwargs.get('transitive', True) + expand_virtuals = kwargs.get('expand_virtuals', True) + deptype = kwargs.get('deptype', 'all') + missing = kwargs.get('missing') + + packages = [] + for pos in pkg_or_spec: + if isinstance(pos, PackageMeta): + pkg = pos + elif isinstance(pos, spack.spec.Spec): + pkg = pos.package + else: + pkg = spack.spec.Spec(pos).package + + packages.append(pkg) + + visited = {} + for pkg in packages: + pkg.possible_dependencies( + transitive, expand_virtuals, deptype, visited, missing) + + return visited + + def print_pkg(message): """Outputs a message with a package icon.""" from llnl.util.tty.color import cwrite diff --git a/lib/spack/spack/pkgkit.py b/lib/spack/spack/pkgkit.py index 7ad7279e73..2ed16cff0a 100644 --- a/lib/spack/spack/pkgkit.py +++ b/lib/spack/spack/pkgkit.py @@ -30,6 +30,7 @@ from spack.build_systems.perl import PerlPackage from spack.build_systems.intel import IntelPackage from spack.build_systems.meson import MesonPackage from spack.build_systems.sip import SIPPackage +from spack.build_systems.gnu import GNUMirrorPackage from spack.mixins import filter_compiler_wrappers diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py index 434d681035..d899b372e7 100644 --- a/lib/spack/spack/relocate.py +++ b/lib/spack/spack/relocate.py @@ -6,6 +6,7 @@ import os import re +import shutil import platform import spack.repo import spack.cmd @@ -86,7 +87,14 @@ def get_existing_elf_rpaths(path_name): Return the RPATHS returned by patchelf --print-rpath path_name as a list of strings. """ - patchelf = Executable(get_patchelf()) + + # if we're relocating patchelf itself, use it + + if path_name[-13:] == "/bin/patchelf": + patchelf = Executable(path_name) + else: + patchelf = Executable(get_patchelf()) + try: output = patchelf('--print-rpath', '%s' % path_name, output=str, error=str) @@ -326,8 +334,18 @@ def modify_elf_object(path_name, new_rpaths): """ Replace orig_rpath with new_rpath in RPATH of elf object path_name """ + new_joined = ':'.join(new_rpaths) - patchelf = Executable(get_patchelf()) + + # if we're relocating patchelf itself, use it + + if path_name[-13:] == "/bin/patchelf": + bak_path = path_name + ".bak" + shutil.copy(path_name, bak_path) + patchelf = Executable(bak_path) + else: + patchelf = Executable(get_patchelf()) + try: patchelf('--force-rpath', '--set-rpath', '%s' % new_joined, '%s' % path_name, output=str, error=str) @@ -665,7 +683,13 @@ def file_is_relocatable(file, paths_to_relocate=None): raise ValueError('{0} is not an absolute path'.format(file)) strings = Executable('strings') - patchelf = Executable(get_patchelf()) + + # if we're relocating patchelf itself, use it + + if file[-13:] == "/bin/patchelf": + patchelf = Executable(file) + else: + patchelf = Executable(get_patchelf()) # Remove the RPATHS from the strings in the executable set_of_strings = set(strings(file, output=str).split()) diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py index 58095b10ba..592209aca4 100644 --- a/lib/spack/spack/reporters/cdash.py +++ b/lib/spack/spack/reporters/cdash.py @@ -302,7 +302,10 @@ class CDash(Reporter): request.get_method = lambda: 'PUT' response = opener.open(request) if self.current_package_name not in self.buildIds: - match = self.buildid_regexp.search(response.read()) + 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 diff --git a/lib/spack/spack/s3_handler.py b/lib/spack/spack/s3_handler.py index 2a54b9ecb1..ea7f0673ff 100644 --- a/lib/spack/spack/s3_handler.py +++ b/lib/spack/spack/s3_handler.py @@ -11,7 +11,6 @@ import six.moves.urllib.error as urllib_error import spack.util.s3 as s3_util import spack.util.url as url_util -import spack.util.web as web_util # NOTE(opadron): Workaround issue in boto where its StreamingBody @@ -54,8 +53,7 @@ def _s3_open(url): # NOTE(opadron): Apply workaround here (see above) stream = WrapStream(obj['Body']) - headers = web_util.standardize_header_names( - obj['ResponseMetadata']['HTTPHeaders']) + headers = obj['ResponseMetadata']['HTTPHeaders'] return url, headers, stream diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index c553da796d..57d05d6166 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -2182,7 +2182,7 @@ class Spec(object): # Add any patches from the package to the spec. patches = [] for cond, patch_list in s.package_class.patches.items(): - if s.satisfies(cond): + if s.satisfies(cond, strict=True): for patch in patch_list: patches.append(patch) if patches: @@ -2201,7 +2201,7 @@ class Spec(object): patches = [] for cond, dependency in pkg_deps[dspec.spec.name].items(): - if dspec.parent.satisfies(cond): + if dspec.parent.satisfies(cond, strict=True): for pcond, patch_list in dependency.patches.items(): if dspec.spec.satisfies(pcond): for patch in patch_list: @@ -2663,7 +2663,7 @@ class Spec(object): not_existing = set(spec.variants) - ( set(pkg_variants) | set(spack.directives.reserved_names)) if not_existing: - raise UnknownVariantError(spec.name, not_existing) + raise UnknownVariantError(spec, not_existing) substitute_abstract_variants(spec) diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py index bf65ee0b01..6f98edc674 100644 --- a/lib/spack/spack/stage.py +++ b/lib/spack/spack/stage.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from __future__ import print_function + import os import stat import sys @@ -269,7 +271,7 @@ class Stage(object): else: raise ValueError( "Can't construct Stage without url or fetch strategy") - self.fetcher.set_stage(self) + self.fetcher.stage = self # self.fetcher can change with mirrors. self.default_fetcher = self.fetcher self.search_fn = search_fn @@ -456,7 +458,7 @@ class Stage(object): for fetcher in generate_fetchers(): try: - fetcher.set_stage(self) + fetcher.stage = self self.fetcher = fetcher self.fetcher.fetch() break @@ -771,7 +773,7 @@ def get_checksums_for_versions( *spack.cmd.elide_list( ["{0:{1}} {2}".format(str(v), max_len, url_dict[v]) for v in sorted_versions])) - tty.msg('') + print() archives_to_fetch = tty.get_number( "How many would you like to checksum?", default=1, abort='q') @@ -818,7 +820,7 @@ def get_checksums_for_versions( ]) num_hash = len(version_hashes) - tty.msg("Checksummed {0} version{1} of {2}".format( + tty.msg("Checksummed {0} version{1} of {2}:".format( num_hash, '' if num_hash == 1 else 's', name)) return version_lines diff --git a/lib/spack/spack/test/architecture.py b/lib/spack/spack/test/architecture.py index 0a37ef9558..af8e92809d 100644 --- a/lib/spack/spack/test/architecture.py +++ b/lib/spack/spack/test/architecture.py @@ -176,7 +176,7 @@ def test_arch_spec_container_semantic(item, architecture_str): ('gcc@4.7.2', 'ivybridge', '-march=core-avx-i -mtune=core-avx-i'), # Check mixed toolchains ('clang@8.0.0', 'broadwell', ''), - ('clang@3.5', 'x86_64', '-march=x86-64 -mcpu=generic'), + ('clang@3.5', 'x86_64', '-march=x86-64 -mtune=generic'), # Check clang compilers with 'apple' suffix ('clang@9.1.0-apple', 'x86_64', '-march=x86-64') ]) diff --git a/lib/spack/spack/test/build_distribution.py b/lib/spack/spack/test/build_distribution.py new file mode 100644 index 0000000000..9d127ddf45 --- /dev/null +++ b/lib/spack/spack/test/build_distribution.py @@ -0,0 +1,41 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import pytest + +import os +import os.path + +import spack.spec +import spack.binary_distribution + +install = spack.main.SpackCommand('install') + + +def test_build_tarball_overwrite( + install_mockery, mock_fetch, monkeypatch, tmpdir): + + with tmpdir.as_cwd(): + spec = spack.spec.Spec('trivial-install-test-package').concretized() + install(str(spec)) + + # Runs fine the first time, throws the second time + spack.binary_distribution.build_tarball(spec, '.', unsigned=True) + with pytest.raises(spack.binary_distribution.NoOverwriteException): + spack.binary_distribution.build_tarball(spec, '.', unsigned=True) + + # Should work fine with force=True + spack.binary_distribution.build_tarball( + spec, '.', force=True, unsigned=True) + + # Remove the tarball and try again. + # This must *also* throw, because of the existing .spec.yaml file + os.remove(os.path.join( + spack.binary_distribution.build_cache_prefix('.'), + spack.binary_distribution.tarball_directory_name(spec), + spack.binary_distribution.tarball_name(spec, '.spack'))) + + with pytest.raises(spack.binary_distribution.NoOverwriteException): + spack.binary_distribution.build_tarball(spec, '.', unsigned=True) diff --git a/lib/spack/spack/test/build_environment.py b/lib/spack/spack/test/build_environment.py index b6a0f4b441..f2427827fe 100644 --- a/lib/spack/spack/test/build_environment.py +++ b/lib/spack/spack/test/build_environment.py @@ -17,7 +17,7 @@ from spack.util.executable import Executable from spack.util.spack_yaml import syaml_dict, syaml_str from spack.util.environment import EnvironmentModifications -from llnl.util.filesystem import LibraryList +from llnl.util.filesystem import LibraryList, HeaderList @pytest.fixture @@ -243,6 +243,18 @@ def test_set_build_environment_variables( variables. """ + # https://github.com/spack/spack/issues/13969 + cuda_headers = HeaderList([ + 'prefix/include/cuda_runtime.h', + 'prefix/include/cuda/atomic', + 'prefix/include/cuda/std/detail/libcxx/include/ctype.h']) + cuda_include_dirs = cuda_headers.directories + assert(os.path.join('prefix', 'include') + in cuda_include_dirs) + assert(os.path.join('prefix', 'include', 'cuda', 'std', 'detail', + 'libcxx', 'include') + not in cuda_include_dirs) + root = spack.spec.Spec('dt-diamond') root.concretize() diff --git a/lib/spack/spack/test/cmd/__init__.py b/lib/spack/spack/test/cmd/__init__.py new file mode 100644 index 0000000000..94f8ac4d9e --- /dev/null +++ b/lib/spack/spack/test/cmd/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/lib/spack/spack/test/cmd/buildcache.py b/lib/spack/spack/test/cmd/buildcache.py index 2c4f351d86..28f0fb9aec 100644 --- a/lib/spack/spack/test/cmd/buildcache.py +++ b/lib/spack/spack/test/cmd/buildcache.py @@ -8,11 +8,19 @@ import platform import pytest import spack.main - +import spack.binary_distribution buildcache = spack.main.SpackCommand('buildcache') +@pytest.fixture() +def mock_get_specs(database, monkeypatch): + specs = database.query_local() + monkeypatch.setattr( + spack.binary_distribution, 'get_specs', lambda x: specs + ) + + @pytest.mark.skipif( platform.system().lower() != 'linux', reason='implementation for MacOS still missing' @@ -20,3 +28,16 @@ buildcache = spack.main.SpackCommand('buildcache') @pytest.mark.db def test_buildcache_preview_just_runs(database): buildcache('preview', 'mpileaks') + + +@pytest.mark.skipif( + platform.system().lower() != 'linux', + reason='implementation for MacOS still missing' +) +@pytest.mark.db +@pytest.mark.regression('13757') +def test_buildcache_list_duplicates(mock_get_specs, capsys): + with capsys.disabled(): + output = buildcache('list', 'mpileaks', '@2.3') + + assert output.count('mpileaks') == 3 diff --git a/lib/spack/spack/test/cmd/common/__init__.py b/lib/spack/spack/test/cmd/common/__init__.py new file mode 100644 index 0000000000..94f8ac4d9e --- /dev/null +++ b/lib/spack/spack/test/cmd/common/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py index 9b3ca6e66e..6de1546e09 100644 --- a/lib/spack/spack/test/cmd/env.py +++ b/lib/spack/spack/test/cmd/env.py @@ -63,6 +63,27 @@ def test_add(): assert Spec('mpileaks') in e.user_specs +def test_env_add_virtual(): + env('create', 'test') + + e = ev.read('test') + e.add('mpi') + e.concretize() + + hashes = e.concretized_order + assert len(hashes) == 1 + spec = e.specs_by_hash[hashes[0]] + assert spec.satisfies('mpi') + + +def test_env_add_nonexistant_fails(): + env('create', 'test') + + e = ev.read('test') + with pytest.raises(ev.SpackEnvironmentError, match=r'no such package'): + e.add('thispackagedoesnotexist') + + def test_env_list(mutable_mock_env_path): env('create', 'foo') env('create', 'bar') @@ -765,13 +786,13 @@ def test_indirect_build_dep(): @pytest.mark.usefixtures('config') def test_store_different_build_deps(): r"""Ensure that an environment can store two instances of a build-only -Dependency: + dependency:: - x y - /| (l) | (b) - (b) | y z2 - \| (b) # noqa: W605 - z1 + x y + /| (l) | (b) + (b) | y z2 + \| (b) + z1 """ default = ('build', 'link') @@ -1777,7 +1798,7 @@ def test_duplicate_packages_raise_when_concretizing_together(): def test_env_write_only_non_default(): - print(env('create', 'test')) + env('create', 'test') e = ev.read('test') with open(e.manifest_path, 'r') as f: diff --git a/lib/spack/spack/test/cmd/find.py b/lib/spack/spack/test/cmd/find.py index 45b065fce9..fe29d12d59 100644 --- a/lib/spack/spack/test/cmd/find.py +++ b/lib/spack/spack/test/cmd/find.py @@ -12,9 +12,12 @@ import spack.cmd.find 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') +install = SpackCommand('install') base32_alphabet = 'abcdefghijklmnopqrstuvwxyz234567' @@ -302,3 +305,16 @@ def test_find_no_sections(database, config): def test_find_command_basic_usage(database): output = find() assert 'mpileaks' in output + + +@pytest.mark.regression('9875') +def test_find_prefix_in_env(mutable_mock_env_path, install_mockery, mock_fetch, + mock_packages, mock_archive, config): + """Test `find` formats requiring concrete specs work in environments.""" + env('create', 'test') + with ev.read('test'): + install('mpileaks') + find('-p') + find('-l') + find('-L') + # Would throw error on regression diff --git a/lib/spack/spack/test/cmd/flake8.py b/lib/spack/spack/test/cmd/flake8.py index b95db93364..6cad6950ba 100644 --- a/lib/spack/spack/test/cmd/flake8.py +++ b/lib/spack/spack/test/cmd/flake8.py @@ -45,7 +45,7 @@ def flake8_package(): def test_changed_files(parser, flake8_package): - args = parser.parse_args() + args = parser.parse_args([]) # changed_files returns file paths relative to the root # directory of Spack. Convert to absolute file paths. diff --git a/lib/spack/spack/test/cmd/install.py b/lib/spack/spack/test/cmd/install.py index db8cf01f48..0d3d5f5de1 100644 --- a/lib/spack/spack/test/cmd/install.py +++ b/lib/spack/spack/test/cmd/install.py @@ -664,3 +664,18 @@ def test_install_only_dependencies_of_all_in_env( assert not os.path.exists(root.prefix) for dep in root.traverse(root=False): assert os.path.exists(dep.prefix) + + +def test_install_help_does_not_show_cdash_options(capsys): + """Make sure `spack install --help` does not describe CDash arguments""" + with pytest.raises(SystemExit): + install('--help') + captured = capsys.readouterr() + assert 'CDash URL' not in captured.out + + +def test_install_help_cdash(capsys): + """Make sure `spack install --help-cdash` describes CDash arguments""" + install_cmd = SpackCommand('install') + out = install_cmd('--help-cdash') + assert 'CDash URL' in out diff --git a/lib/spack/spack/test/cmd/mirror.py b/lib/spack/spack/test/cmd/mirror.py index 889d81f98b..f29e135d82 100644 --- a/lib/spack/spack/test/cmd/mirror.py +++ b/lib/spack/spack/test/cmd/mirror.py @@ -6,7 +6,7 @@ import pytest import os -from spack.main import SpackCommand +from spack.main import SpackCommand, SpackCommandError import spack.environment as ev import spack.config @@ -16,6 +16,25 @@ add = SpackCommand('add') concretize = SpackCommand('concretize') +@pytest.fixture +def tmp_scope(): + """Creates a temporary configuration scope""" + + base_name = 'internal-testing-scope' + current_overrides = set( + x.name for x in + spack.config.config.matching_scopes(r'^{0}'.format(base_name))) + + num_overrides = 0 + scope_name = base_name + while scope_name in current_overrides: + scope_name = '{0}{1}'.format(base_name, num_overrides) + num_overrides += 1 + + with spack.config.override(spack.config.InternalConfigScope(scope_name)): + yield scope_name + + @pytest.mark.disable_clean_stage_check @pytest.mark.regression('8083') def test_regression_8083(tmpdir, capfd, mock_packages, mock_fetch, config): @@ -45,3 +64,49 @@ def test_mirror_from_env(tmpdir, mock_packages, mock_fetch, config, mirror_res = os.listdir(os.path.join(mirror_dir, spec.name)) expected = ['%s.tar.gz' % spec.format('{name}-{version}')] assert mirror_res == expected + + +def test_mirror_crud(tmp_scope, capsys): + with capsys.disabled(): + mirror('add', '--scope', tmp_scope, 'mirror', 'http://spack.io') + + output = mirror('remove', '--scope', tmp_scope, 'mirror') + assert 'Removed mirror' in output + + mirror('add', '--scope', tmp_scope, 'mirror', 'http://spack.io') + + # no-op + output = mirror('set-url', '--scope', tmp_scope, + 'mirror', 'http://spack.io') + assert 'Url already set' in output + + output = mirror('set-url', '--scope', tmp_scope, + '--push', 'mirror', 's3://spack-public') + assert 'Changed (push) url' in output + + # no-op + output = mirror('set-url', '--scope', tmp_scope, + '--push', 'mirror', 's3://spack-public') + assert 'Url already set' in output + + output = mirror('remove', '--scope', tmp_scope, 'mirror') + assert 'Removed mirror' in output + + output = mirror('list', '--scope', tmp_scope) + assert 'No mirrors configured' in output + + +def test_mirror_nonexisting(tmp_scope): + with pytest.raises(SpackCommandError): + mirror('remove', '--scope', tmp_scope, 'not-a-mirror') + + with pytest.raises(SpackCommandError): + mirror('set-url', '--scope', tmp_scope, + 'not-a-mirror', 'http://spack.io') + + +def test_mirror_name_collision(tmp_scope): + mirror('add', '--scope', tmp_scope, 'first', '1') + + with pytest.raises(SpackCommandError): + mirror('add', '--scope', tmp_scope, 'first', '1') diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py index 969e2471e4..3ac4d893af 100644 --- a/lib/spack/spack/test/conftest.py +++ b/lib/spack/spack/test/conftest.py @@ -240,9 +240,6 @@ def mock_fetch_cache(monkeypatch): return MockCacheFetcher() class MockCacheFetcher(object): - def set_stage(self, stage): - pass - def fetch(self): raise FetchError('Mock cache always fails for tests') diff --git a/lib/spack/spack/test/data/targets/linux-centos7-cascadelake b/lib/spack/spack/test/data/targets/linux-centos7-cascadelake new file mode 100644 index 0000000000..e409c3d07a --- /dev/null +++ b/lib/spack/spack/test/data/targets/linux-centos7-cascadelake @@ -0,0 +1,20 @@ +processor : 0 +vendor_id : GenuineIntel +cpu family : 6 +model : 85 +model name : Intel(R) Xeon(R) Platinum 8260M CPU @ 2.40GHz +stepping : 7 +microcode : 0x5000024 +cpu MHz : 2400.000 +cache size : 36608 KB +physical id : 0 +siblings : 48 +core id : 0 +cpu cores : 24 +apicid : 0 +initial apicid : 0 +fpu : yes +fpu_exception : yes +cpuid level : 22 +wp : yes +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_ppin intel_pt ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
\ No newline at end of file diff --git a/lib/spack/spack/test/data/targets/linux-centos7-thunderx2 b/lib/spack/spack/test/data/targets/linux-centos7-thunderx2 new file mode 100644 index 0000000000..2447306bac --- /dev/null +++ b/lib/spack/spack/test/data/targets/linux-centos7-thunderx2 @@ -0,0 +1,8 @@ +processor : 0 +BogoMIPS : 400.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm +CPU implementer : 0x43 +CPU architecture: 8 +CPU variant : 0x1 +CPU part : 0x0af +CPU revision : 1 diff --git a/lib/spack/spack/test/fetch_strategy.py b/lib/spack/spack/test/fetch_strategy.py new file mode 100644 index 0000000000..ab1aa35408 --- /dev/null +++ b/lib/spack/spack/test/fetch_strategy.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import pytest + +from spack.fetch_strategy import from_url_scheme + + +def test_fetchstrategy_bad_url_scheme(): + """Ensure that trying to make a fetch strategy from a URL with an + unsupported scheme fails as expected.""" + + with pytest.raises(ValueError): + fetcher = from_url_scheme( # noqa: F841 + 'bogus-scheme://example.com/a/b/c') diff --git a/lib/spack/spack/test/llnl/util/__init__.py b/lib/spack/spack/test/llnl/util/__init__.py new file mode 100644 index 0000000000..94f8ac4d9e --- /dev/null +++ b/lib/spack/spack/test/llnl/util/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/lib/spack/spack/test/llnl/util/cpu.py b/lib/spack/spack/test/llnl/util/cpu.py index f75c02f4b0..2bf29c9ff8 100644 --- a/lib/spack/spack/test/llnl/util/cpu.py +++ b/lib/spack/spack/test/llnl/util/cpu.py @@ -32,6 +32,8 @@ from llnl.util.cpu import Microarchitecture # noqa 'linux-scientific7-piledriver', 'linux-rhel6-piledriver', 'linux-centos7-power8le', + 'linux-centos7-thunderx2', + 'linux-centos7-cascadelake', 'darwin-mojave-ivybridge', 'darwin-mojave-haswell', 'darwin-mojave-skylake', @@ -86,6 +88,7 @@ def supported_target(request): return request.param +@pytest.mark.regression('13803') def test_target_detection(expected_target): detected_target = llnl.util.cpu.host() assert detected_target == expected_target @@ -121,6 +124,8 @@ def test_equality(supported_target): ('piledriver <= steamroller', True), ('zen2 >= zen', True), ('zen >= zen', True), + ('aarch64 <= thunderx2', True), + ('aarch64 <= a64fx', True), # Test unrelated microarchitectures ('power8 < skylake', False), ('power8 <= skylake', False), @@ -205,12 +210,16 @@ def test_target_json_schema(): ('nehalem', 'gcc', '4.9.3', '-march=nehalem -mtune=nehalem'), ('nehalem', 'gcc', '4.8.5', '-march=corei7 -mtune=corei7'), ('sandybridge', 'gcc', '4.8.5', '-march=corei7-avx -mtune=corei7-avx'), + ('thunderx2', 'gcc', '4.8.5', '-march=armv8-a'), + ('thunderx2', 'gcc', '4.9.3', '-march=armv8-a+crc+crypto'), # Test Clang / LLVM - ('sandybridge', 'clang', '3.9.0', '-march=x86-64 -mcpu=sandybridge'), - ('icelake', 'clang', '6.0.0', '-march=x86-64 -mcpu=icelake'), - ('icelake', 'clang', '8.0.0', '-march=x86-64 -mcpu=icelake-client'), - ('zen2', 'clang', '9.0.0', '-march=x86-64 -mcpu=znver2'), - ('power9le', 'clang', '8.0.0', '-march=ppc64le -mcpu=pwr9'), + ('sandybridge', 'clang', '3.9.0', '-march=sandybridge -mtune=sandybridge'), + ('icelake', 'clang', '6.0.0', '-march=icelake -mtune=icelake'), + ('icelake', 'clang', '8.0.0', + '-march=icelake-client -mtune=icelake-client'), + ('zen2', 'clang', '9.0.0', '-march=znver2 -mtune=znver2'), + ('power9le', 'clang', '8.0.0', '-mcpu=power9 -mtune=power9'), + ('thunderx2', 'clang', '6.0.0', '-mcpu=thunderx2t99'), # Test Intel on Intel CPUs ('sandybridge', 'intel', '17.0.2', '-march=corei7-avx -mtune=corei7-avx'), ('sandybridge', 'intel', '18.0.5', diff --git a/lib/spack/spack/test/modules/__init__.py b/lib/spack/spack/test/modules/__init__.py new file mode 100644 index 0000000000..94f8ac4d9e --- /dev/null +++ b/lib/spack/spack/test/modules/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/lib/spack/spack/test/package_class.py b/lib/spack/spack/test/package_class.py index 9502be08c9..25c9258759 100644 --- a/lib/spack/spack/test/package_class.py +++ b/lib/spack/spack/test/package_class.py @@ -10,14 +10,14 @@ etc.). Only methods like ``possible_dependencies()`` that deal with the static DSL metadata for packages. """ +import pytest import spack.repo -def test_possible_dependencies(mock_packages): - mpileaks = spack.repo.get('mpileaks') +@pytest.fixture +def mpileaks_possible_deps(mock_packages): mpi_names = [spec.name for spec in spack.repo.path.providers_for('mpi')] - - assert mpileaks.possible_dependencies(expand_virtuals=True) == { + possible = { 'callpath': set(['dyninst'] + mpi_names), 'dyninst': set(['libdwarf', 'libelf']), 'fake': set(), @@ -29,6 +29,13 @@ def test_possible_dependencies(mock_packages): 'multi-provider-mpi': set(), 'zmpi': set(['fake']), } + return possible + + +def test_possible_dependencies(mock_packages, mpileaks_possible_deps): + mpileaks = spack.repo.get('mpileaks') + assert (mpileaks.possible_dependencies(expand_virtuals=True) == + mpileaks_possible_deps) assert mpileaks.possible_dependencies(expand_virtuals=False) == { 'callpath': set(['dyninst']), @@ -40,6 +47,15 @@ def test_possible_dependencies(mock_packages): } +def test_possible_dependencies_missing(mock_packages): + md = spack.repo.get("missing-dependency") + missing = {} + md.possible_dependencies(transitive=True, missing=missing) + assert missing["missing-dependency"] == set([ + "this-is-a-missing-dependency" + ]) + + def test_possible_dependencies_with_deptypes(mock_packages): dtbuild1 = spack.repo.get('dtbuild1') @@ -59,3 +75,17 @@ def test_possible_dependencies_with_deptypes(mock_packages): 'dtbuild1': set(['dtlink2']), 'dtlink2': set(), } + + +def test_possible_dependencies_with_multiple_classes( + mock_packages, mpileaks_possible_deps): + pkgs = ['dt-diamond', 'mpileaks'] + expected = mpileaks_possible_deps.copy() + expected.update({ + 'dt-diamond': set(['dt-diamond-left', 'dt-diamond-right']), + 'dt-diamond-left': set(['dt-diamond-bottom']), + 'dt-diamond-right': set(['dt-diamond-bottom']), + 'dt-diamond-bottom': set(), + }) + + assert spack.package.possible_dependencies(*pkgs) == expected diff --git a/lib/spack/spack/test/package_sanity.py b/lib/spack/spack/test/package_sanity.py index bbf63881a7..1764d8ac25 100644 --- a/lib/spack/spack/test/package_sanity.py +++ b/lib/spack/spack/test/package_sanity.py @@ -10,6 +10,7 @@ import re import pytest import spack.fetch_strategy +import spack.package import spack.paths import spack.repo import spack.util.executable as executable @@ -141,7 +142,6 @@ def test_all_packages_use_sha256_checksums(): assert [] == errors -@pytest.mark.xfail def test_api_for_build_and_run_environment(): """Ensure that every package uses the correct API to set build and run environment, and not the old one. @@ -154,7 +154,7 @@ def test_api_for_build_and_run_environment(): failing.append(pkg) msg = ('there are {0} packages using the old API to set build ' - 'and run environment [{1}], for further information see' + 'and run environment [{1}], for further information see ' 'https://github.com/spack/spack/pull/11115') assert not failing, msg.format( len(failing), ','.join(x.name for x in failing) @@ -182,7 +182,24 @@ def test_prs_update_old_api(): if failed: failing.append(name) - msg = 'there are {0} packages still using old APIs in this PR [{1}]' + msg = ('there are {0} packages using the old API to set build ' + 'and run environment [{1}], for further information see ' + 'https://github.com/spack/spack/pull/11115') assert not failing, msg.format( len(failing), ','.join(failing) ) + + +def test_all_dependencies_exist(): + """Make sure no packages have nonexisting dependencies.""" + missing = {} + pkgs = [pkg for pkg in spack.repo.path.all_package_names()] + spack.package.possible_dependencies( + *pkgs, transitive=True, missing=missing) + + lines = [ + "%s: [%s]" % (name, ", ".join(deps)) for name, deps in missing.items() + ] + assert not missing, "These packages have missing dependencies:\n" + ( + "\n".join(lines) + ) diff --git a/lib/spack/spack/test/packages.py b/lib/spack/spack/test/packages.py index 186b0d0007..bd4ba95053 100644 --- a/lib/spack/spack/test/packages.py +++ b/lib/spack/spack/test/packages.py @@ -16,6 +16,11 @@ from spack.version import VersionChecksumError import spack.directives +def _generate_content_strip_name(spec): + content = package_content(spec) + return content.replace(spec.package.__class__.__name__, '') + + @pytest.mark.usefixtures('config', 'mock_packages') class TestPackage(object): def test_load_package(self): @@ -53,38 +58,43 @@ class TestPackage(object): assert '_3db' == mod_to_class('3db') def test_content_hash_all_same_but_patch_contents(self): - spec1 = Spec("hash-test1@1.1") - spec2 = Spec("hash-test2@1.1") - spec1.concretize() - spec2.concretize() - content1 = package_content(spec1) - content1 = content1.replace(spec1.package.__class__.__name__, '') - content2 = package_content(spec2) - content2 = content2.replace(spec2.package.__class__.__name__, '') + spec1 = Spec("hash-test1@1.1").concretized() + spec2 = Spec("hash-test2@1.1").concretized() + content1 = _generate_content_strip_name(spec1) + content2 = _generate_content_strip_name(spec2) assert spec1.package.content_hash(content=content1) != \ spec2.package.content_hash(content=content2) def test_content_hash_different_variants(self): - spec1 = Spec("hash-test1@1.2 +variantx") - spec2 = Spec("hash-test2@1.2 ~variantx") - spec1.concretize() - spec2.concretize() - content1 = package_content(spec1) - content1 = content1.replace(spec1.package.__class__.__name__, '') - content2 = package_content(spec2) - content2 = content2.replace(spec2.package.__class__.__name__, '') + spec1 = Spec("hash-test1@1.2 +variantx").concretized() + spec2 = Spec("hash-test2@1.2 ~variantx").concretized() + content1 = _generate_content_strip_name(spec1) + content2 = _generate_content_strip_name(spec2) assert spec1.package.content_hash(content=content1) == \ spec2.package.content_hash(content=content2) + def test_content_hash_cannot_get_details_from_ast(self): + """Packages hash-test1 and hash-test3 would be considered the same + except that hash-test3 conditionally executes a phase based on + a "when" directive that Spack cannot evaluate by examining the + AST. This test ensures that Spack can compute a content hash + for hash-test3. If Spack cannot determine when a phase applies, + it adds it by default, so the test also ensures that the hashes + differ where Spack includes a phase on account of AST-examination + failure. + """ + spec3 = Spec("hash-test1@1.7").concretized() + spec4 = Spec("hash-test3@1.7").concretized() + content3 = _generate_content_strip_name(spec3) + content4 = _generate_content_strip_name(spec4) + assert(spec3.package.content_hash(content=content3) != + spec4.package.content_hash(content=content4)) + def test_all_same_but_archive_hash(self): - spec1 = Spec("hash-test1@1.3") - spec2 = Spec("hash-test2@1.3") - spec1.concretize() - spec2.concretize() - content1 = package_content(spec1) - content1 = content1.replace(spec1.package.__class__.__name__, '') - content2 = package_content(spec2) - content2 = content2.replace(spec2.package.__class__.__name__, '') + spec1 = Spec("hash-test1@1.3").concretized() + spec2 = Spec("hash-test2@1.3").concretized() + content1 = _generate_content_strip_name(spec1) + content2 = _generate_content_strip_name(spec2) assert spec1.package.content_hash(content=content1) != \ spec2.package.content_hash(content=content2) diff --git a/lib/spack/spack/test/patch.py b/lib/spack/spack/test/patch.py index b705d01e42..5a4b6dba34 100644 --- a/lib/spack/spack/test/patch.py +++ b/lib/spack/spack/test/patch.py @@ -24,6 +24,7 @@ from spack.spec import Spec foo_sha256 = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c' bar_sha256 = '7d865e959b2466918c9863afca942d0fb89d7c9ac0c99bafc3749504ded97730' baz_sha256 = 'bf07a7fbb825fc0aae7bf4a1177b2b31fcf8a3feeaf7092761e18c859ee52a9c' +biz_sha256 = 'a69b288d7393261e613c276c6d38a01461028291f6e381623acc58139d01f54d' # url patches url1_sha256 = 'abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234' @@ -105,6 +106,20 @@ def test_patch_in_spec(mock_packages, config): tuple(spec.variants['patches']._patches_in_order_of_appearance)) +def test_patch_mixed_versions_subset_constraint(mock_packages, config): + """If we have a package with mixed x.y and x.y.z versions, make sure that + a patch applied to a version range of x.y.z versions is not applied to + an x.y version. + """ + spec1 = Spec('patch@1.0.1') + spec1.concretize() + assert biz_sha256 in spec1.variants['patches'].value + + spec2 = Spec('patch@1.0') + spec2.concretize() + assert biz_sha256 not in spec2.variants['patches'].value + + def test_patch_order(mock_packages, config): spec = Spec('dep-diamond-patch-top') spec.concretize() diff --git a/lib/spack/spack/test/relocate.py b/lib/spack/spack/test/relocate.py index f070e150c7..4d7dc5b942 100644 --- a/lib/spack/spack/test/relocate.py +++ b/lib/spack/spack/test/relocate.py @@ -60,6 +60,15 @@ def test_file_is_relocatable(source_file, is_relocatable): assert spack.relocate.file_is_relocatable(executable) is is_relocatable +@pytest.mark.requires_executables( + 'patchelf', 'strings', 'file' +) +def test_patchelf_is_relocatable(): + patchelf = spack.relocate.get_patchelf() + assert spack.relocate.is_binary(patchelf) + assert spack.relocate.file_is_relocatable(patchelf) + + @pytest.mark.skipif( platform.system().lower() != 'linux', reason='implementation for MacOS still missing' diff --git a/lib/spack/spack/test/s3_fetch.py b/lib/spack/spack/test/s3_fetch.py new file mode 100644 index 0000000000..d904417ed0 --- /dev/null +++ b/lib/spack/spack/test/s3_fetch.py @@ -0,0 +1,29 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import pytest + +import spack.fetch_strategy as spack_fs +import spack.stage as spack_stage + + +def test_s3fetchstrategy_sans_url(): + """Ensure constructor with no URL fails.""" + with pytest.raises(ValueError): + spack_fs.S3FetchStrategy(None) + + +def test_s3fetchstrategy_bad_url(tmpdir): + """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_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() diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py index a183742e65..9d8b9de647 100644 --- a/lib/spack/spack/test/spec_semantics.py +++ b/lib/spack/spack/test/spec_semantics.py @@ -9,7 +9,7 @@ import pytest from spack.spec import Spec, UnsatisfiableSpecError, SpecError from spack.spec import substitute_abstract_variants from spack.spec import SpecFormatSigilError, SpecFormatStringError -from spack.variant import InvalidVariantValueError +from spack.variant import InvalidVariantValueError, UnknownVariantError from spack.variant import MultipleValuesInExclusiveVariantError import spack.architecture @@ -981,3 +981,9 @@ class TestSpecSematics(object): def test_target_constraints(self, spec, constraint, expected_result): s = Spec(spec) assert s.satisfies(constraint) is expected_result + + @pytest.mark.regression('13124') + def test_error_message_unknown_variant(self): + s = Spec('mpileaks +unknown') + with pytest.raises(UnknownVariantError, match=r'package has no such'): + s.concretize() diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py index 8047d5e26e..b4df27336e 100644 --- a/lib/spack/spack/test/url_fetch.py +++ b/lib/spack/spack/test/url_fetch.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import collections import os import pytest @@ -10,8 +11,7 @@ from llnl.util.filesystem import working_dir, is_exe import spack.repo import spack.config -from spack.fetch_strategy import FailedDownloadError -from spack.fetch_strategy import from_list_url, URLFetchStrategy +import spack.fetch_strategy as fs from spack.spec import Spec from spack.stage import Stage from spack.version import ver @@ -23,10 +23,30 @@ def checksum_type(request): return request.param +@pytest.fixture +def pkg_factory(): + Pkg = collections.namedtuple( + 'Pkg', ['url_for_version', 'urls', 'url', 'versions'] + ) + + def factory(url, urls): + + def fn(v): + main_url = url or urls.pop(0) + return spack.url.substitute_version(main_url, v) + + return Pkg( + url_for_version=fn, url=url, urls=urls, + versions=collections.defaultdict(dict) + ) + + return factory + + def test_urlfetchstrategy_sans_url(): """Ensure constructor with no URL fails.""" with pytest.raises(ValueError): - with URLFetchStrategy(None): + with fs.URLFetchStrategy(None): pass @@ -34,8 +54,8 @@ def test_urlfetchstrategy_bad_url(tmpdir): """Ensure fetch with bad URL fails as expected.""" testpath = str(tmpdir) - with pytest.raises(FailedDownloadError): - fetcher = URLFetchStrategy(url='file:///does-not-exist') + 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: @@ -106,8 +126,8 @@ def test_from_list_url(mock_packages, config, spec, url, digest): """ specification = Spec(spec).concretized() pkg = spack.repo.get(specification) - fetch_strategy = from_list_url(pkg) - assert isinstance(fetch_strategy, URLFetchStrategy) + 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 @@ -118,8 +138,8 @@ def test_from_list_url_unspecified(mock_packages, config): spec = Spec('url-list-test @2.0.0').concretized() pkg = spack.repo.get(spec) - fetch_strategy = from_list_url(pkg) - assert isinstance(fetch_strategy, URLFetchStrategy) + 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 @@ -128,7 +148,7 @@ def test_nosource_from_list_url(mock_packages, config): """This test confirms BundlePackages do not have list url.""" pkg = spack.repo.get('nosource') - fetch_strategy = from_list_url(pkg) + fetch_strategy = fs.from_list_url(pkg) assert fetch_strategy is None @@ -148,9 +168,26 @@ def test_url_extra_fetch(tmpdir, mock_archive): """Ensure a fetch after downloading is effectively a no-op.""" testpath = str(tmpdir) - fetcher = URLFetchStrategy(mock_archive.url) + 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', [ + (None, + ['https://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz', + 'https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz'], + '2.62', + ['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): + """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 diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py index c557f78405..7c292938d2 100644 --- a/lib/spack/spack/test/url_parse.py +++ b/lib/spack/spack/test/url_parse.py @@ -60,6 +60,8 @@ from spack.version import Version ('cppad-20170114.gpl', 'cppad-20170114'), # Arch ('pcraster-4.1.0_x86-64', 'pcraster-4.1.0'), + ('dislin-11.0.linux.i586_64', 'dislin-11.0'), + ('PAGIT.V1.01.64bit', 'PAGIT.V1.01'), # OS - linux ('astyle_2.04_linux', 'astyle_2.04'), # OS - unix @@ -85,20 +87,31 @@ from spack.version import Version # Combinations of multiple patterns - darwin ('ghc-7.0.4-x86_64-apple-darwin', 'ghc-7.0.4'), ('ghc-7.0.4-i386-apple-darwin', 'ghc-7.0.4'), + # Combinations of multiple patterns - centos + ('sratoolkit.2.8.2-1-centos_linux64', 'sratoolkit.2.8.2-1'), # Combinations of multiple patterns - arch ('VizGlow_v2.2alpha17-R21November2016-Linux-x86_64-Install', 'VizGlow_v2.2alpha17-R21November2016'), ('jdk-8u92-linux-x64', 'jdk-8u92'), ('cuda_6.5.14_linux_64.run', 'cuda_6.5.14'), + ('Mathematica_12.0.0_LINUX.sh', 'Mathematica_12.0.0'), + ('trf407b.linux64', 'trf407b'), # Combinations of multiple patterns - with ('mafft-7.221-with-extensions-src', 'mafft-7.221'), ('spark-2.0.0-bin-without-hadoop', 'spark-2.0.0'), + ('conduit-v0.3.0-src-with-blt', 'conduit-v0.3.0'), + # Combinations of multiple patterns - rock + ('bitlib-23-2.src.rock', 'bitlib-23-2'), # Combinations of multiple patterns - public ('dakota-6.3-public.src', 'dakota-6.3'), # Combinations of multiple patterns - universal ('synergy-1.3.6p2-MacOSX-Universal', 'synergy-1.3.6p2'), # Combinations of multiple patterns - dynamic ('snptest_v2.5.2_linux_x86_64_dynamic', 'snptest_v2.5.2'), + # Combinations of multiple patterns - other + ('alglib-3.11.0.cpp.gpl', 'alglib-3.11.0'), + ('hpcviewer-2019.08-linux.gtk.x86_64', 'hpcviewer-2019.08'), + ('apache-mxnet-src-1.3.0-incubating', 'apache-mxnet-src-1.3.0'), ]) def test_url_strip_version_suffixes(url, expected): stripped = strip_version_suffixes(url) @@ -109,24 +122,40 @@ def test_url_strip_version_suffixes(url, expected): # No suffix ('rgb-1.0.6', '1.0.6', 'rgb'), ('nauty26r7', '26r7', 'nauty'), + ('PAGIT.V1.01', '1.01', 'PAGIT'), + ('AmpliconNoiseV1.29', '1.29', 'AmpliconNoise'), # Download type - install ('converge_install_2.3.16', '2.3.16', 'converge'), # Download type - src ('jpegsrc.v9b', '9b', 'jpeg'), + ('blatSrc35', '35', 'blat'), + # Download type - open + ('RepeatMasker-open-4-0-7', '4-0-7', 'RepeatMasker'), # Download type - archive ('coinhsl-archive-2014.01.17', '2014.01.17', 'coinhsl'), # Download type - std ('ghostscript-fonts-std-8.11', '8.11', 'ghostscript-fonts'), + # Download type - bin + ('GapCloser-bin-v1.12-r6', '1.12-r6', 'GapCloser'), + # Download type - software + ('orthomclSoftware-v2.0.9', '2.0.9', 'orthomcl'), # Download version - release ('cbench_release_1.3.0.tar.gz', '1.3.0', 'cbench'), # Download version - snapshot ('gts-snapshot-121130', '121130', 'gts'), # Download version - distrib ('zoltan_distrib_v3.83', '3.83', 'zoltan'), + # Download version - latest + ('Platypus-latest', 'N/A', 'Platypus'), + # Download version - complex + ('qt-everywhere-opensource-src-5.7.0', '5.7.0', 'qt'), + # Arch + ('VESTA-x86_64', '3.4.6', 'VESTA'), # VCS - bazaar ('libvterm-0+bzr681', '681', 'libvterm'), # License - gpl - ('PyQt-x11-gpl-4.11.3', '4.11.3', 'PyQt-x11') + ('PyQt-x11-gpl-4.11.3', '4.11.3', 'PyQt'), + ('PyQt4_gpl_x11-4.12.3', '4.12.3', 'PyQt4'), ]) def test_url_strip_name_suffixes(url, version, expected): stripped = strip_name_suffixes(url, version) @@ -182,6 +211,7 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): @pytest.mark.parametrize('name,version,url', [ # Common Repositories - github downloads + # name/archive/ver.ver ('nco', '4.6.2', 'https://github.com/nco/nco/archive/4.6.2.tar.gz'), # name/archive/vver.ver ('vim', '8.0.0134', 'https://github.com/vim/vim/archive/v8.0.0134.tar.gz'), @@ -257,6 +287,15 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): # Common Tarball Formats + # 1st Pass: Simplest case + # Assume name contains no digits and version contains no letters + + # name-ver.ver + ('libpng', '1.6.37', 'http://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz'), + + # 2nd Pass: Version only + # Assume version contains no letters + # ver.ver ('eigen', '3.2.7', 'https://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2'), # ver.ver-ver @@ -266,10 +305,17 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): # vver_ver ('luafilesystem', '1_6_3', 'https://github.com/keplerproject/luafilesystem/archive/v1_6_3.tar.gz'), - # No separators + # 3rd Pass: No separator characters are used + # Assume name contains no digits + + # namever ('turbolinux', '702', 'file://{0}/turbolinux702.tar.gz'.format(os.getcwd())), ('nauty', '26r7', 'http://pallini.di.uniroma1.it/nauty26r7.tar.gz'), - # Dashes only + + # 4th Pass: A single separator character is used + # Assume name contains no digits + + # name-name-ver-ver ('Trilinos', '12-10-1', 'https://github.com/trilinos/Trilinos/archive/trilinos-release-12-10-1.tar.gz'), ('panda', '2016-03-07', @@ -278,7 +324,7 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): 'http://gts.sourceforge.net/tarballs/gts-snapshot-121130.tar.gz'), ('cdd', '061a', 'http://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-061a.tar.gz'), - # Only underscores + # name_name_ver_ver ('tinyxml', '2_6_2', 'https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz'), ('boost', '1_55_0', @@ -287,9 +333,6 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): 'https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz'), ('tbb', '44_20160413', 'https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160413oss_src.tgz'), - - # Only dots - # name.name.ver.ver ('prank', '150803', 'http://wasabiapp.org/download/prank/prank.source.150803.tgz'), ('jpeg', '9b', 'http://www.ijg.org/files/jpegsrc.v9b.tar.gz'), @@ -302,61 +345,51 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): ('geant', '4.10.01.p03', 'http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz'), ('tcl', '8.6.5', 'http://prdownloads.sourceforge.net/tcl/tcl8.6.5-src.tar.gz'), - # Dash and dots + # 5th Pass: Two separator characters are used + # Name may contain digits, version may contain letters # name-name-ver.ver - # digit in name ('m4', '1.4.17', 'https://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz'), - # letter in version ('gmp', '6.0.0a', 'https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2'), - # version starts with 'v' ('LaunchMON', '1.0.2', 'https://github.com/LLNL/LaunchMON/releases/download/v1.0.2/launchmon-v1.0.2.tar.gz'), # name-ver-ver.ver ('libedit', '20150325-3.1', 'http://thrysoee.dk/editline/libedit-20150325-3.1.tar.gz'), - - # Dash and unserscores - # name-name-ver_ver ('icu4c', '57_1', 'http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz'), - - # Underscores and dots - # name_name_ver.ver ('superlu_dist', '4.1', 'http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz'), ('pexsi', '0.9.0', 'https://math.berkeley.edu/~linlin/pexsi/download/pexsi_v0.9.0.tar.gz'), # name_name.ver.ver ('fer', '696', 'ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v696.tar.gz'), - - # Dash dot dah dot - + # name_name_ver-ver + ('Bridger', '2014-12-01', + 'https://downloads.sourceforge.net/project/rnaseqassembly/Bridger_r2014-12-01.tar.gz'), # name-name-ver.ver-ver.ver ('sowing', '1.1.23-p1', 'http://ftp.mcs.anl.gov/pub/petsc/externalpackages/sowing-1.1.23-p1.tar.gz'), ('bib2xhtml', '3.0-15-gf506', 'http://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-15-gf506.tar.gz'), # namever.ver-ver.ver ('go', '1.4-bootstrap-20161024', 'https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz'), - # Underscore dash dot + # 6th Pass: All three separator characters are used + # Name may contain digits, version may contain letters # name_name-ver.ver ('the_silver_searcher', '0.32.0', 'http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz'), ('sphinx_rtd_theme', '0.1.10a0', 'https://pypi.python.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-0.1.10a0.tar.gz'), - - # Dot underscore dot dash dot - # name.name_ver.ver-ver.ver ('TH.data', '1.0-8', 'https://cran.r-project.org/src/contrib/TH.data_1.0-8.tar.gz'), ('XML', '3.98-1.4', 'https://cran.r-project.org/src/contrib/XML_3.98-1.4.tar.gz'), - - # Dash dot underscore dot - # name-name-ver.ver_ver.ver ('pypar', '2.1.5_108', 'https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-2.1.5_108.tgz'), # name-namever.ver_ver.ver ('STAR-CCM+', '11.06.010_02', 'file://{0}/STAR-CCM+11.06.010_02_linux-x86_64.tar.gz'.format(os.getcwd())), + # name-name_name-ver.ver + ('PerlIO-utf8_strict', '0.002', + 'http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.002.tar.gz'), # Various extensions # .tar.gz @@ -399,18 +432,61 @@ def test_url_parse_offset(name, noffset, ver, voffset, path): # .txz ('kim-api', '2.1.0', 'https://s3.openkim.org/kim-api/kim-api-2.1.0.txz'), - # Weird URLS + # 8th Pass: Query strings - # github.com/repo/name/releases/download/name-vver/name - ('nextflow', '0.20.1', 'https://github.com/nextflow-io/nextflow/releases/download/v0.20.1/nextflow'), # suffix queries ('swiftsim', '0.3.0', 'http://gitlab.cosma.dur.ac.uk/swift/swiftsim/repository/archive.tar.gz?ref=v0.3.0'), - ('swiftsim', '0.3.0', 'https://gitlab.cosma.dur.ac.uk/api/v4/projects/swift%2Fswiftsim/repository/archive.tar.gz?sha=v0.3.0'), + ('swiftsim', '0.3.0', + 'https://gitlab.cosma.dur.ac.uk/api/v4/projects/swift%2Fswiftsim/repository/archive.tar.gz?sha=v0.3.0'), ('sionlib', '1.7.1', 'http://apps.fz-juelich.de/jsc/sionlib/download.php?version=1.7.1'), + ('jube2', '2.2.2', 'https://apps.fz-juelich.de/jsc/jube/jube2/download.php?version=2.2.2'), + ('archive', '1.0.0', 'https://code.ornl.gov/eck/papyrus/repository/archive.tar.bz2?ref=v1.0.0'), + ('VecGeom', '0.3.rc', + 'https://gitlab.cern.ch/api/v4/projects/VecGeom%2FVecGeom/repository/archive.tar.gz?sha=v0.3.rc'), + ('parsplice', '1.1', + 'https://gitlab.com/api/v4/projects/exaalt%2Fparsplice/repository/archive.tar.gz?sha=v1.1'), + ('busco', '2.0.1', 'https://gitlab.com/api/v4/projects/ezlab%2Fbusco/repository/archive.tar.gz?sha=2.0.1'), + ('libaec', '1.0.2', + 'https://gitlab.dkrz.de/api/v4/projects/k202009%2Flibaec/repository/archive.tar.gz?sha=v1.0.2'), + ('icet', '2.1.1', + 'https://gitlab.kitware.com/api/v4/projects/icet%2Ficet/repository/archive.tar.bz2?sha=IceT-2.1.1'), + ('vtk-m', '1.3.0', + 'https://gitlab.kitware.com/api/v4/projects/vtk%2Fvtk-m/repository/archive.tar.gz?sha=v1.3.0'), + ('GATK', '3.8-1-0-gf15c1c3ef', + 'https://software.broadinstitute.org/gatk/download/auth?package=GATK-archive&version=3.8-1-0-gf15c1c3ef'), # stem queries ('slepc', '3.6.2', 'http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz'), ('otf', '1.12.5salmon', 'http://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz'), + ('eospac', '6.4.0beta.1', + 'http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.1_r20171213193219.tgz'), + ('vampirtrace', '5.14.4', + 'http://wwwpub.zih.tu-dresden.de/~mlieber/dcount/dcount.php?package=vampirtrace&get=VampirTrace-5.14.4.tar.gz'), + # (we don't actually look for these, they are picked up + # during the preliminary stem parsing) + ('octopus', '6.0', 'http://octopus-code.org/down.php?file=6.0/octopus-6.0.tar.gz'), + ('cloog', '0.18.1', 'http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.18.1.tar.gz'), + ('libxc', '2.2.2', 'http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.2.2.tar.gz'), + ('cistem', '1.0.0-beta', + 'https://cistem.org/system/tdf/upload3/cistem-1.0.0-beta-source-code.tar.gz?file=1&type=cistem_details&id=37&force=0'), + ('Magics', '4.1.0', + 'https://confluence.ecmwf.int/download/attachments/3473464/Magics-4.1.0-Source.tar.gz?api=v2'), + ('grib_api', '1.17.0', + 'https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz?api=v2'), + ('eccodes', '2.2.0', + 'https://software.ecmwf.int/wiki/download/attachments/45757960/eccodes-2.2.0-Source.tar.gz?api=v2'), + ('SWFFT', '1.0', + 'https://xgitlab.cels.anl.gov/api/v4/projects/hacc%2FSWFFT/repository/archive.tar.gz?sha=v1.0'), + + # 9th Pass: Version in path + + # github.com/repo/name/releases/download/name-vver/name + ('nextflow', '0.20.1', 'https://github.com/nextflow-io/nextflow/releases/download/v0.20.1/nextflow'), + # ver/name + ('ncbi', '2.2.26', 'ftp://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/ncbi.tar.gz'), + + # Other tests for corner cases + # single character name ('R', '3.3.2', 'https://cloud.r-project.org/src/base/R-3/R-3.3.2.tar.gz'), # name starts with digit diff --git a/lib/spack/spack/test/util/__init__.py b/lib/spack/spack/test/util/__init__.py new file mode 100644 index 0000000000..94f8ac4d9e --- /dev/null +++ b/lib/spack/spack/test/util/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) diff --git a/lib/spack/spack/test/util/executable.py b/lib/spack/spack/test/util/executable.py index 054cdbfccd..1a9b636a7e 100644 --- a/lib/spack/spack/test/util/executable.py +++ b/lib/spack/spack/test/util/executable.py @@ -8,6 +8,7 @@ import sys import llnl.util.filesystem as fs import spack.util.executable as ex +from spack.hooks.sbang import filter_shebangs_in_directory def test_read_unicode(tmpdir): @@ -28,6 +29,7 @@ print(u'\\xc3') # make it executable fs.set_executable(script_name) + filter_shebangs_in_directory('.', [script_name]) # read the unicode back in and see whether things work script = ex.Executable('./%s' % script_name) diff --git a/lib/spack/spack/test/util/util_url.py b/lib/spack/spack/test/util/util_url.py index 24b40ac63c..855491bfe6 100644 --- a/lib/spack/spack/test/util/util_url.py +++ b/lib/spack/spack/test/util/util_url.py @@ -6,6 +6,7 @@ """Test Spack's URL handling utility functions.""" import os import os.path +import spack.paths import spack.util.url as url_util @@ -41,7 +42,7 @@ def test_url_parse(): assert(parsed.netloc == 'path') assert(parsed.path == '/to/resource') - spack_root = os.path.abspath(os.environ['SPACK_ROOT']) + spack_root = spack.paths.spack_root parsed = url_util.parse('$spack') assert(parsed.scheme == 'file') assert(parsed.netloc == '') @@ -56,7 +57,7 @@ def test_url_parse(): def test_url_local_file_path(): - spack_root = os.path.abspath(os.environ['SPACK_ROOT']) + spack_root = spack.paths.spack_root lfp = url_util.local_file_path('/a/b/c.txt') assert(lfp == '/a/b/c.txt') @@ -171,7 +172,7 @@ def test_url_join_local_paths(): 'https://mirror.spack.io/build_cache/my-package') # file:// URL path components are *NOT* canonicalized - spack_root = os.path.abspath(os.environ['SPACK_ROOT']) + spack_root = spack.paths.spack_root join_result = url_util.join('/a/b/c', '$spack') assert(join_result == 'file:///a/b/c/$spack') # not canonicalized diff --git a/lib/spack/spack/test/versions.py b/lib/spack/spack/test/versions.py index b39da0c698..60e4497a8e 100644 --- a/lib/spack/spack/test/versions.py +++ b/lib/spack/spack/test/versions.py @@ -266,6 +266,8 @@ def test_contains(): assert_in('1.3.5-7', '1.2:1.4') assert_not_in('1.1', '1.2:1.4') assert_not_in('1.5', '1.2:1.4') + assert_not_in('1.5', '1.5.1:1.6') + assert_not_in('1.5', '1.5.1:') assert_in('1.4.2', '1.2:1.4') assert_not_in('1.4.2', '1.2:1.4.0') diff --git a/lib/spack/spack/test/web.py b/lib/spack/spack/test/web.py index c80e29b523..75f5930230 100644 --- a/lib/spack/spack/test/web.py +++ b/lib/spack/spack/test/web.py @@ -5,9 +5,12 @@ """Tests for web.py.""" import os +import pytest + +from ordereddict_backport import OrderedDict import spack.paths -from spack.util.web import spider, find_versions_of_archive +import spack.util.web as web_util from spack.version import ver @@ -23,7 +26,7 @@ page_4 = 'file://' + os.path.join(web_data_path, '4.html') def test_spider_0(): - pages, links = spider(root, depth=0) + pages, links = web_util.spider(root, depth=0) assert root in pages assert page_1 not in pages @@ -41,7 +44,7 @@ def test_spider_0(): def test_spider_1(): - pages, links = spider(root, depth=1) + pages, links = web_util.spider(root, depth=1) assert root in pages assert page_1 in pages @@ -60,7 +63,7 @@ def test_spider_1(): def test_spider_2(): - pages, links = spider(root, depth=2) + pages, links = web_util.spider(root, depth=2) assert root in pages assert page_1 in pages @@ -81,7 +84,7 @@ def test_spider_2(): def test_spider_3(): - pages, links = spider(root, depth=3) + pages, links = web_util.spider(root, depth=3) assert root in pages assert page_1 in pages @@ -104,31 +107,36 @@ def test_spider_3(): def test_find_versions_of_archive_0(): - versions = find_versions_of_archive(root_tarball, root, list_depth=0) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=0) assert ver('0.0.0') in versions def test_find_versions_of_archive_1(): - versions = find_versions_of_archive(root_tarball, root, list_depth=1) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=1) assert ver('0.0.0') in versions assert ver('1.0.0') in versions def test_find_versions_of_archive_2(): - versions = find_versions_of_archive(root_tarball, root, list_depth=2) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=2) assert ver('0.0.0') in versions assert ver('1.0.0') in versions assert ver('2.0.0') in versions def test_find_exotic_versions_of_archive_2(): - versions = find_versions_of_archive(root_tarball, root, list_depth=2) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=2) # up for grabs to make this better. assert ver('2.0.0b2') in versions def test_find_versions_of_archive_3(): - versions = find_versions_of_archive(root_tarball, root, list_depth=3) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=3) assert ver('0.0.0') in versions assert ver('1.0.0') in versions assert ver('2.0.0') in versions @@ -137,7 +145,49 @@ def test_find_versions_of_archive_3(): def test_find_exotic_versions_of_archive_3(): - versions = find_versions_of_archive(root_tarball, root, list_depth=3) + versions = web_util.find_versions_of_archive( + root_tarball, root, list_depth=3) assert ver('2.0.0b2') in versions assert ver('3.0a1') in versions assert ver('4.5-rc5') in versions + + +def test_get_header(): + headers = { + 'Content-type': 'text/plain' + } + + # looking up headers should just work like a plain dict + # lookup when there is an entry with the right key + assert(web_util.get_header(headers, 'Content-type') == 'text/plain') + + # looking up headers should still work if there is a fuzzy match + assert(web_util.get_header(headers, 'contentType') == 'text/plain') + + # ...unless there is an exact match for the "fuzzy" spelling. + headers['contentType'] = 'text/html' + assert(web_util.get_header(headers, 'contentType') == 'text/html') + + # If lookup has to fallback to fuzzy matching and there are more than one + # fuzzy match, the result depends on the internal ordering of the given + # mapping + headers = OrderedDict() + headers['Content-type'] = 'text/plain' + headers['contentType'] = 'text/html' + + assert(web_util.get_header(headers, 'CONTENT_TYPE') == 'text/plain') + del headers['Content-type'] + assert(web_util.get_header(headers, 'CONTENT_TYPE') == 'text/html') + + # Same as above, but different ordering + headers = OrderedDict() + headers['contentType'] = 'text/html' + headers['Content-type'] = 'text/plain' + + assert(web_util.get_header(headers, 'CONTENT_TYPE') == 'text/html') + del headers['contentType'] + assert(web_util.get_header(headers, 'CONTENT_TYPE') == 'text/plain') + + # If there isn't even a fuzzy match, raise KeyError + with pytest.raises(KeyError): + web_util.get_header(headers, 'ContentLength') diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index 11b289a0b1..a298d44ea2 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -153,13 +153,14 @@ def strip_version_suffixes(path): r'[Ii]nstall', r'all', r'code', - r'src(_0)?', r'[Ss]ources?', r'file', r'full', r'single', - r'public', r'with[a-zA-Z_-]+', + r'rock', + r'src(_0)?', + r'public', r'bin', r'binary', r'run', @@ -189,15 +190,24 @@ def strip_version_suffixes(path): r'ia32', r'intel', r'amd64', + r'linux64', r'x64', + r'64bit', r'x86[_-]64', + r'i586_64', r'x86', r'i[36]86', r'ppc64(le)?', r'armv?(7l|6l|64)', + # Other + r'cpp', + r'gtk', + r'incubating', + # OS r'[Ll]inux(_64)?', + r'LINUX', r'[Uu]ni?x', r'[Ss]un[Oo][Ss]', r'[Mm]ac[Oo][Ss][Xx]?', @@ -208,14 +218,18 @@ def strip_version_suffixes(path): r'[Ww]in(64|32)?', r'[Cc]ygwin(64|32)?', r'[Mm]ingw', + r'centos', # Arch # Needs to come before and after OS, appears in both orders r'ia32', r'intel', r'amd64', + r'linux64', r'x64', + r'64bit', r'x86[_-]64', + r'i586_64', r'x86', r'i[36]86', r'ppc64(le)?', @@ -270,31 +284,41 @@ def strip_name_suffixes(path, version): # name-ver # name_ver # name.ver - r'[._-]v?' + str(version) + '.*', + r'[._-][rvV]?' + str(version) + '.*', # namever - str(version) + '.*', + r'V?' + str(version) + '.*', # Download type r'install', - r'src', + r'[Ss]rc', r'(open)?[Ss]ources?', + r'[._-]open', r'[._-]archive', r'[._-]std', + r'[._-]bin', + r'Software', # Download version r'release', r'snapshot', r'distrib', + r'everywhere', + r'latest', # Arch - r'Linux64', + r'Linux(64)?', + r'x86_64', # VCS r'0\+bzr', # License r'gpl', + + # Needs to come before and after gpl, appears in both orders + r'[._-]x11', + r'gpl', ] for regex in suffix_regexes: @@ -407,7 +431,7 @@ def parse_version_offset(path): # 3. names can contain A-Z, a-z, 0-9, '+', separators # 4. versions can contain A-Z, a-z, 0-9, separators # 5. versions always start with a digit - # 6. versions are often prefixed by a 'v' character + # 6. versions are often prefixed by a 'v' or 'r' character # 7. separators are most reliable to determine name/version boundaries # List of the following format: @@ -450,7 +474,7 @@ def parse_version_offset(path): (r'^[a-zA-Z+-]*(\d[\da-zA-Z-]*)$', stem), # name_name_ver_ver - # e.g. tinyxml_2_6_2, boost_1_55_0, tbb2017_20161128, v1_6_3 + # e.g. tinyxml_2_6_2, boost_1_55_0, tbb2017_20161128 (r'^[a-zA-Z+_]*(\d[\da-zA-Z_]*)$', stem), # name.name.ver.ver @@ -476,6 +500,10 @@ def parse_version_offset(path): # e.g. fer_source.v696 (r'^[a-zA-Z\d+_]+\.v?(\d[\da-zA-Z.]*)$', stem), + # name_ver-ver + # e.g. Bridger_r2014-12-01 + (r'^[a-zA-Z\d+]+_r?(\d[\da-zA-Z-]*)$', stem), + # name-name-ver.ver-ver.ver # e.g. sowing-1.1.23-p1, bib2xhtml-v3.0-15-gf506, 4.6.3-alpha04 (r'^(?:[a-zA-Z\d+-]+-)?v?(\d[\da-zA-Z.-]*)$', stem), @@ -507,19 +535,17 @@ def parse_version_offset(path): # e.g. STAR-CCM+11.06.010_02 (r'^[a-zA-Z+-]+(\d[\da-zA-Z._]*)$', stem), + # name-name_name-ver.ver + # e.g. PerlIO-utf8_strict-0.002 + (r'^[a-zA-Z\d+_-]+-v?(\d[\da-zA-Z.]*)$', stem), + # 7th Pass: Specific VCS # bazaar # e.g. libvterm-0+bzr681 (r'bzr(\d[\da-zA-Z._-]*)$', stem), - # 8th Pass: Version in path - - # github.com/repo/name/releases/download/vver/name - # e.g. https://github.com/nextflow-io/nextflow/releases/download/v0.20.1/nextflow - (r'github\.com/[^/]+/[^/]+/releases/download/[a-zA-Z+._-]*v?(\d[\da-zA-Z._-]*)/', path), # noqa - - # 9th Pass: Query strings + # 8th Pass: Query strings # e.g. https://gitlab.cosma.dur.ac.uk/api/v4/projects/swift%2Fswiftsim/repository/archive.tar.gz?sha=v0.3.0 (r'\?sha=[a-zA-Z+._-]*v?(\d[\da-zA-Z._-]*)$', suffix), @@ -528,13 +554,24 @@ def parse_version_offset(path): (r'\?ref=[a-zA-Z+._-]*v?(\d[\da-zA-Z._-]*)$', suffix), # e.g. http://apps.fz-juelich.de/jsc/sionlib/download.php?version=1.7.1 - (r'\?version=v?(\d[\da-zA-Z._-]*)$', suffix), + # e.g. https://software.broadinstitute.org/gatk/download/auth?package=GATK-archive&version=3.8-1-0-gf15c1c3ef + (r'[?&]version=v?(\d[\da-zA-Z._-]*)$', suffix), # e.g. http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz - (r'\?filename=[a-zA-Z\d+-]+-v?(\d[\da-zA-Z.]*)$', stem), + # e.g. http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.1_r20171213193219.tgz + (r'[?&]filename=[a-zA-Z\d+-]+[_-]v?(\d[\da-zA-Z.]*)', stem), # e.g. http://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz - (r'\?package=[a-zA-Z\d+-]+&get=[a-zA-Z\d+-]+-v?(\d[\da-zA-Z.]*)$', stem), # noqa + (r'&get=[a-zA-Z\d+-]+-v?(\d[\da-zA-Z.]*)$', stem), # noqa + + # 9th Pass: Version in path + + # github.com/repo/name/releases/download/vver/name + # e.g. https://github.com/nextflow-io/nextflow/releases/download/v0.20.1/nextflow + (r'github\.com/[^/]+/[^/]+/releases/download/[a-zA-Z+._-]*v?(\d[\da-zA-Z._-]*)/', path), # noqa + + # e.g. ftp://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/ncbi.tar.gz + (r'(\d[\da-zA-Z._-]*)/[^/]+$', path), ] for i, version_regex in enumerate(version_regexes): @@ -662,6 +699,9 @@ def parse_name_offset(path, v=None): # e.g. http://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz (r'\?package=([A-Za-z\d+-]+)', stem), + # ?package=name-version + (r'\?package=([A-Za-z\d]+)', suffix), + # download.php # e.g. http://apps.fz-juelich.de/jsc/sionlib/download.php?version=1.7.1 (r'([^/]+)/download.php$', path), diff --git a/lib/spack/spack/util/package_hash.py b/lib/spack/spack/util/package_hash.py index 2a3ee80fd5..18b126486c 100644 --- a/lib/spack/spack/util/package_hash.py +++ b/lib/spack/spack/util/package_hash.py @@ -69,8 +69,17 @@ class TagMultiMethods(ast.NodeVisitor): if node.decorator_list: dec = node.decorator_list[0] if isinstance(dec, ast.Call) and dec.func.id == 'when': - cond = dec.args[0].s - nodes.append((node, self.spec.satisfies(cond, strict=True))) + try: + cond = dec.args[0].s + nodes.append( + (node, self.spec.satisfies(cond, strict=True))) + except AttributeError: + # In this case the condition for the 'when' decorator is + # not a string literal (for example it may be a Python + # variable name). Therefore the function is added + # unconditionally since we don't know whether the + # constraint applies or not. + nodes.append((node, None)) else: nodes.append((node, None)) diff --git a/lib/spack/spack/util/url.py b/lib/spack/spack/util/url.py index 7ac12e7b81..29beb88ff9 100644 --- a/lib/spack/spack/util/url.py +++ b/lib/spack/spack/util/url.py @@ -9,6 +9,7 @@ Utility functions for parsing, formatting, and manipulating URLs. import itertools import os.path +import re from six import string_types import six.moves.urllib.parse as urllib_parse @@ -69,8 +70,7 @@ def parse(url, scheme='file'): if scheme == 'file': path = spack.util.path.canonicalize_path(netloc + path) - while path.startswith('//'): - path = path[1:] + path = re.sub(r'^/+', '/', path) netloc = '' return urllib_parse.ParseResult(scheme=scheme, diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 1fe58d6415..5c76deda2b 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -15,9 +15,6 @@ import ssl import sys import traceback -from itertools import product - -import six from six.moves.urllib.request import urlopen, Request from six.moves.urllib.error import URLError import multiprocessing.pool @@ -50,30 +47,6 @@ from spack.util.compression import ALLOWED_ARCHIVE_TYPES # Timeout in seconds for web requests _timeout = 10 -# See docstring for standardize_header_names() -_separators = ('', ' ', '_', '-') -HTTP_HEADER_NAME_ALIASES = { - "Accept-ranges": set( - ''.join((A, 'ccept', sep, R, 'anges')) - for A, sep, R in product('Aa', _separators, 'Rr')), - - "Content-length": set( - ''.join((C, 'ontent', sep, L, 'ength')) - for C, sep, L in product('Cc', _separators, 'Ll')), - - "Content-type": set( - ''.join((C, 'ontent', sep, T, 'ype')) - for C, sep, T in product('Cc', _separators, 'Tt')), - - "Date": set(('Date', 'date')), - - "Last-modified": set( - ''.join((L, 'ast', sep, M, 'odified')) - for L, sep, M in product('Ll', _separators, 'Mm')), - - "Server": set(('Server', 'server')) -} - class LinkParser(HTMLParser): """This parser just takes an HTML page and strips out the hrefs on the @@ -173,7 +146,7 @@ def read_from_url(url, accept_content_type=None): req.get_method = lambda: "HEAD" resp = _urlopen(req, timeout=_timeout, context=context) - content_type = resp.headers.get('Content-type') + content_type = get_header(resp.headers, 'Content-type') # Do the real GET request when we know it's just HTML. req.get_method = lambda: "GET" @@ -185,7 +158,7 @@ def read_from_url(url, accept_content_type=None): ERROR=str(err))) if accept_content_type and not is_web_url: - content_type = response.headers.get('Content-type') + content_type = get_header(response.headers, 'Content-type') reject_content_type = ( accept_content_type and ( @@ -208,9 +181,8 @@ def warn_no_ssl_cert_checking(): "your Python to enable certificate verification.") -def push_to_url(local_file_path, remote_path, **kwargs): - keep_original = kwargs.get('keep_original', True) - +def push_to_url( + local_file_path, remote_path, keep_original=True, extra_args=None): remote_url = url_util.parse(remote_path) verify_ssl = spack.config.get('config:verify_ssl') @@ -235,7 +207,8 @@ def push_to_url(local_file_path, remote_path, **kwargs): os.remove(local_file_path) elif remote_url.scheme == 's3': - extra_args = kwargs.get('extra_args', {}) + if extra_args is None: + extra_args = {} remote_path = remote_url.path while remote_path.startswith('/'): @@ -296,10 +269,25 @@ def remove_url(url): # Don't even try for other URL schemes. -def _list_s3_objects(client, url, num_entries, start_after=None): +def _iter_s3_contents(contents, prefix): + for entry in contents: + key = entry['Key'] + + if not key.startswith('/'): + key = '/' + key + + key = os.path.relpath(key, prefix) + + if key == '.': + continue + + yield key + + +def _list_s3_objects(client, bucket, prefix, num_entries, start_after=None): list_args = dict( - Bucket=url.netloc, - Prefix=url.path, + Bucket=bucket, + Prefix=prefix[1:], MaxKeys=num_entries) if start_after is not None: @@ -311,21 +299,19 @@ def _list_s3_objects(client, url, num_entries, start_after=None): if result['IsTruncated']: last_key = result['Contents'][-1]['Key'] - iter = (key for key in - ( - os.path.relpath(entry['Key'], url.path) - for entry in result['Contents'] - ) - if key != '.') + iter = _iter_s3_contents(result['Contents'], prefix) return iter, last_key def _iter_s3_prefix(client, url, num_entries=1024): key = None + bucket = url.netloc + prefix = re.sub(r'^/*', '/', url.path) + while True: contents, key = _list_s3_objects( - client, url, num_entries, start_after=key) + client, bucket, prefix, num_entries, start_after=key) for x in contents: yield x @@ -577,106 +563,34 @@ def find_versions_of_archive(archive_urls, list_url=None, list_depth=0): return versions -def standardize_header_names(headers): - """Replace certain header names with standardized spellings. - - Standardizes the spellings of the following header names: - - Accept-ranges - - Content-length - - Content-type - - Date - - Last-modified - - Server - - Every name considered is translated to one of the above names if the only - difference between the two is how the first letters of each word are - capitalized; whether words are separated; or, if separated, whether they - are so by a dash (-), underscore (_), or space ( ). Header names that - cannot be mapped as described above are returned unaltered. - - For example: The standard spelling of "Content-length" would be substituted - for any of the following names: - - Content-length - - content_length - - contentlength - - content_Length - - contentLength - - content Length - - ... and any other header name, such as "Content-encoding", would not be - altered, regardless of spelling. - - If headers is a string, then it (or an appropriate substitute) is returned. - - If headers is a non-empty tuple, headers[0] is a string, and there exists a - standardized spelling for header[0] that differs from it, then a new tuple - is returned. This tuple has the same elements as headers, except the first - element is the standardized spelling for headers[0]. - - If headers is a sequence, then a new list is considered, where each element - is its corresponding element in headers, but mapped as above if a string or - tuple. This new list is returned if at least one of its elements differ - from their corrsponding element in headers. - - If headers is a mapping, then a new dict is considered, where the key in - each item is the key of its corresponding item in headers, mapped as above - if a string or tuple. The value is taken from the corresponding item. If - the keys of multiple items in headers map to the same key after being - standardized, then the value for the resulting item is undefined. The new - dict is returned if at least one of its items has a key that differs from - that of their corresponding item in headers, or if the keys of multiple - items in headers map to the same key after being standardized. - - In all other cases headers is returned unaltered. - """ - if isinstance(headers, six.string_types): - for standardized_spelling, other_spellings in ( - HTTP_HEADER_NAME_ALIASES.items()): - if headers in other_spellings: - if headers == standardized_spelling: - return headers - return standardized_spelling - return headers - - if isinstance(headers, tuple): - if not headers: - return headers - old = headers[0] - if isinstance(old, six.string_types): - new = standardize_header_names(old) - if old is not new: - return (new,) + headers[1:] - return headers - - try: - changed = False - new_dict = {} - for key, value in headers.items(): - if isinstance(key, (tuple, six.string_types)): - old_key, key = key, standardize_header_names(key) - changed = changed or key is not old_key - - new_dict[key] = value +def get_header(headers, header_name): + """Looks up a dict of headers for the given header value. - return new_dict if changed else headers - except (AttributeError, TypeError, ValueError): - pass + Looks up a dict of headers, [headers], for a header value given by + [header_name]. Returns headers[header_name] if header_name is in headers. + Otherwise, the first fuzzy match is returned, if any. - try: - changed = False - new_list = [] - for item in headers: - if isinstance(item, (tuple, six.string_types)): - old_item, item = item, standardize_header_names(item) - changed = changed or item is not old_item + This fuzzy matching is performed by discarding word separators and + capitalization, so that for example, "Content-length", "content_length", + "conTENtLength", etc., all match. In the case of multiple fuzzy-matches, + the returned value is the "first" such match given the underlying mapping's + ordering, or unspecified if no such ordering is defined. - new_list.append(item) + If header_name is not in headers, and no such fuzzy match exists, then a + KeyError is raised. + """ - return new_list if changed else headers - except TypeError: - pass + def unfuzz(header): + return re.sub(r'[ _-]', '', header).lower() - return headers + try: + return headers[header_name] + except KeyError: + unfuzzed_header_name = unfuzz(header_name) + for header, value in headers.items(): + if unfuzz(header) == unfuzzed_header_name: + return value + raise class SpackWebError(spack.error.SpackError): diff --git a/lib/spack/spack/variant.py b/lib/spack/spack/variant.py index 7eea243b06..bdee9d3552 100644 --- a/lib/spack/spack/variant.py +++ b/lib/spack/spack/variant.py @@ -600,7 +600,9 @@ def substitute_abstract_variants(spec): for name, v in spec.variants.items(): if name in spack.directives.reserved_names: continue - pkg_variant = spec.package_class.variants[name] + pkg_variant = spec.package_class.variants.get(name, None) + if not pkg_variant: + raise UnknownVariantError(spec, [name]) new_variant = pkg_variant.make_variant(v._original_value) pkg_variant.validate_or_raise(new_variant, spec.package_class) spec.variants.substitute(new_variant) @@ -778,12 +780,13 @@ class DuplicateVariantError(error.SpecError): class UnknownVariantError(error.SpecError): """Raised when an unknown variant occurs in a spec.""" - - def __init__(self, pkg, variants): + def __init__(self, spec, variants): self.unknown_variants = variants - super(UnknownVariantError, self).__init__( - 'Package {0} has no variant {1}!'.format(pkg, comma_or(variants)) - ) + variant_str = 'variant' if len(variants) == 1 else 'variants' + msg = ('trying to set {0} "{1}" in package "{2}", but the package' + ' has no such {0} [happened during concretization of {3}]') + msg = msg.format(variant_str, comma_or(variants), spec.name, spec.root) + super(UnknownVariantError, self).__init__(msg) class InconsistentValidationError(error.SpecError): diff --git a/share/spack/docker/package-index/Dockerfile b/share/spack/docker/package-index/Dockerfile new file mode 100644 index 0000000000..3ffafe90e8 --- /dev/null +++ b/share/spack/docker/package-index/Dockerfile @@ -0,0 +1,30 @@ +# prepare the package index in form of JSON files +FROM ubuntu:18.04 AS build-env + +ENV SPACK_ROOT=/opt/spack \ + DEBIAN_FRONTEND=noninteractive + +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 apt-get -yqq update \ + && apt-get -yqq install \ + bash jq python \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /build +# single, large index file +RUN $SPACK_ROOT/bin/spack list --format version_json > packages.json +# individual packages split into a tree of :firstLetter/:packageName.json +RUN $SPACK_ROOT/share/spack/docker/package-index/split.sh + +# nginx web service +FROM nginx:mainline-alpine +MAINTAINER Spack Maintainers <maintainers@spack.io> +COPY --from=build-env --chown=nginx:nginx /build/packages /build/packages.json /usr/share/nginx/html/api/ +COPY share/spack/docker/package-index/cors-header.conf /etc/nginx/conf.d/ + +CMD ["nginx", "-g", "daemon off;"] diff --git a/share/spack/docker/package-index/README.rst b/share/spack/docker/package-index/README.rst new file mode 100644 index 0000000000..af5cde8025 --- /dev/null +++ b/share/spack/docker/package-index/README.rst @@ -0,0 +1,45 @@ +============================================ +The packages.spack.io Package Index REST API +============================================ + +This directory provides the docker recipe for the Spack package index on https://packages.spack.io + +On each merge to ``develop``, DockerHub builds a new image ``spack/packages.spack.io`` which is configured in: + https://cloud.docker.com/u/spack/repository/docker/spack/packages.spack.io/builds/edit + +------------ +The REST API +------------ + +The API is a simple, file-based JSON index. +A specific package can be queried via the URI syntax: +``https://packages.spack.io/api/:firstLetter/:packageName.json`` +which will return a HTTP status code ``200`` with a JSON file for all valid packages (content from ``spack list --format version_json``) and HTTP status code ``404`` for all other package names. + +Examples: + +- https://packages.spack.io/api/a/adios2.json +- https://packages.spack.io/api/p/py-pandas.json + +There is also the full index available at once under https://packages.spack.io/api/packages.json + +Current down-stream dependencies are, e.g. the https://shields.io service: + +- https://shields.io/category/version +- https://github.com/badges/shields/pull/3536 + +-------------------- +Local Build and Test +-------------------- + +Execute in your local Spack source root directory: + +.. code-block:: bash + + docker build -t spack/packages.spack.io:latest -f share/spack/docker/package-index/Dockerfile . + +Startup a local HTTP server on http://localhost:8080 via: + +.. code-block:: bash + + docker run -p 8080:80 spack/packages.spack.io:latest diff --git a/share/spack/packages/cors-header.conf b/share/spack/docker/package-index/cors-header.conf index 77e34b60a4..77e34b60a4 100644 --- a/share/spack/packages/cors-header.conf +++ b/share/spack/docker/package-index/cors-header.conf diff --git a/share/spack/packages/split.sh b/share/spack/docker/package-index/split.sh index 2c499926cb..2c499926cb 100755 --- a/share/spack/packages/split.sh +++ b/share/spack/docker/package-index/split.sh diff --git a/share/spack/docker/ubuntu-1604.dockerfile b/share/spack/docker/ubuntu-1604.dockerfile index eb30ab8a8d..7d57f76c7f 100644 --- a/share/spack/docker/ubuntu-1604.dockerfile +++ b/share/spack/docker/ubuntu-1604.dockerfile @@ -17,16 +17,36 @@ COPY share $SPACK_ROOT/share COPY var $SPACK_ROOT/var RUN mkdir -p $SPACK_ROOT/opt/spack -RUN apt-get -yqq update \ - && apt-get -yqq install \ - build-essential ca-certificates curl g++ \ - gcc gfortran git gnupg2 \ - iproute2 lmod lua-posix make \ - openssh-server python python-pip tcl \ - unzip \ - && pip install boto3 \ +RUN apt-get -yqq update \ + && apt-get -yqq install --no-install-recommends \ + build-essential \ + ca-certificates \ + curl \ + file \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg2 \ + iproute2 \ + lmod \ + locales \ + lua-posix \ + make \ + openssh-server \ + python3 \ + python3-pip \ + tcl \ + unzip \ + && locale-gen en_US.UTF-8 \ + && pip3 install boto3 \ && rm -rf /var/lib/apt/lists/* +# Add LANG default to en_US.UTF-8 +ENV LANGUAGE en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LC_ALL en_US.UTF-8 + RUN ( echo ". /usr/share/lmod/lmod/init/bash" \ && echo ". \$SPACK_ROOT/share/spack/setup-env.sh" \ && echo "if [ \"\$CURRENTLY_BUILDING_DOCKER_IMAGE\" '!=' '1' ]" \ diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile index e8447b7daa..9b3be21bec 100644 --- a/share/spack/docker/ubuntu-1804.dockerfile +++ b/share/spack/docker/ubuntu-1804.dockerfile @@ -17,16 +17,36 @@ COPY share $SPACK_ROOT/share COPY var $SPACK_ROOT/var RUN mkdir -p $SPACK_ROOT/opt/spack -RUN apt-get -yqq update \ - && apt-get -yqq install \ - build-essential ca-certificates curl g++ \ - gcc gfortran git gnupg2 \ - iproute2 lmod lua-posix make \ - openssh-server python python-pip tcl \ - unzip \ - && pip install boto3 \ +RUN apt-get -yqq update \ + && apt-get -yqq install --no-install-recommends \ + build-essential \ + ca-certificates \ + curl \ + file \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg2 \ + iproute2 \ + lmod \ + locales \ + lua-posix \ + make \ + openssh-server \ + python3 \ + python3-pip \ + tcl \ + unzip \ + && locale-gen en_US.UTF-8 \ + && pip3 install boto3 \ && rm -rf /var/lib/apt/lists/* +# Add LANG default to en_US.UTF-8 +ENV LANGUAGE en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LC_ALL en_US.UTF-8 + RUN ( echo ". /usr/share/lmod/lmod/init/bash" \ && echo ". \$SPACK_ROOT/share/spack/setup-env.sh" \ && echo "if [ \"\$CURRENTLY_BUILDING_DOCKER_IMAGE\" '!=' '1' ]" \ diff --git a/share/spack/packages/Dockerfile b/share/spack/packages/Dockerfile deleted file mode 100644 index 3b9bd89ec2..0000000000 --- a/share/spack/packages/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM ubuntu:18.04 AS build-env -WORKDIR /build -RUN apt-get update && apt-get install -y jq -COPY packages.json ./ -COPY split.sh ./ -RUN /build/split.sh - -FROM nginx:mainline-alpine -COPY --from=build-env --chown=nginx:nginx /build/packages /build/packages.json /usr/share/nginx/html/api/ -COPY cors-header.conf /etc/nginx/conf.d/ - -CMD ["nginx", "-g", "daemon off;"] diff --git a/share/spack/packages/build-image.sh b/share/spack/packages/build-image.sh deleted file mode 100755 index adde5842ab..0000000000 --- a/share/spack/packages/build-image.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -script="$( basename "$0" )" -cd "$( dirname "$0" )" - -export IMAGE="spack/packages.spack.io:latest" - -if [ "$script" '=' 'push-image.sh' ] ; then - docker push "${IMAGE}" -else - docker build --no-cache --force-rm -t "${IMAGE}" . -fi diff --git a/share/spack/packages/push-image.sh b/share/spack/packages/push-image.sh deleted file mode 120000 index b3fd71be24..0000000000 --- a/share/spack/packages/push-image.sh +++ /dev/null @@ -1 +0,0 @@ -build-image.sh
\ No newline at end of file diff --git a/share/spack/qa/run-docker-tests b/share/spack/qa/run-docker-tests deleted file mode 100755 index 769384c90e..0000000000 --- a/share/spack/qa/run-docker-tests +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -e -# -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -# -# Description: -# Runs Spack docker tests. This builds a docker image for each of the -# configurations in share/spack/docker/config. -# -# Usage: -# run-docker-tests -# - -__login_attempted=0 -__login_success=1 -ensure_docker_login() { - if [ "$__login_attempted" '!=' '0' ] ; then - return $__login_success - fi - - echo "$DOCKER_PASSWORD" | \ - docker login -u "$DOCKER_USERNAME" --password-stdin - - if [ $? '=' '0' ] ; then - __login_success=0 - fi - - __login_attempted=1 - return $__login_success -} - -this_dir=$(cd $(dirname $0) && pwd) -SPACK_BIN="${this_dir}/../../../bin/spack" - -# packages.spack.io service -${SPACK_BIN} list --format version_json > ${this_dir}/../packages/packages.json -./share/spack/packages/build-image.sh -if [ "$TEST_SUITE" '=' "docker" -a \ - "$TRAVIS_EVENT_TYPE" != "pull_request" ] && ensure_docker_login ; then - ./share/spack/packages/push-image.sh -fi - diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh index d5cad059a6..ab2655ddf6 100755 --- a/share/spack/setup-env.sh +++ b/share/spack/setup-env.sh @@ -215,11 +215,14 @@ _spack_pathadd() { } -# # Determine which shell is being used -# _spack_determine_shell() { - if [ -n "${BASH:-}" ]; then + if [ -f "/proc/$$/exe" ]; then + # If procfs is present this seems a more reliable + # way to detect the current shell + _sp_exe=$(readlink /proc/$$/exe) + basename ${_sp_exe} + elif [ -n "${BASH:-}" ]; then echo bash elif [ -n "${ZSH_NAME:-}" ]; then echo zsh diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 5e8936125f..87d99d0a82 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -635,12 +635,13 @@ function _spack_info { function _spack_install { if $list_options then - compgen -W "-h --help --only -j --jobs -I --install-status - --overwrite --keep-prefix --keep-stage --dont-restage - --use-cache --no-cache --show-log-on-error --source - -n --no-checksum -v --verbose --fake --only-concrete - -f --file --clean --dirty --test --log-format --log-file - --cdash-upload-url -y --yes-to-all" -- "$cur" + compgen -W "-h --help --only -j --jobs --overwrite --keep-prefix + --keep-stage --dont-restage --use-cache --no-cache + --cache-only --show-log-on-error --source -n --no-checksum + -v --verbose --fake --only-concrete -f --file --clean + --dirty --test --run-tests --log-format --log-file + --cdash-upload-url --cdash-build --cdash-site --cdash-track + --cdash-buildstamp --help-cdash -y --yes-to-all" -- "$cur" else compgen -W "$(_all_packages)" -- "$cur" fi 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 879e08147e..ffcaa89eb9 100644 --- a/var/spack/repos/builtin.mock/packages/hash-test1/package.py +++ b/var/spack/repos/builtin.mock/packages/hash-test1/package.py @@ -19,6 +19,9 @@ class HashTest1(Package): version('1.2', 'b' * 32) version('1.3', 'c' * 32) version('1.4', 'd' * 32) + version('1.5', 'd' * 32) + version('1.6', 'e' * 32) + version('1.7', 'f' * 32) patch('patch1.patch', when="@1.1") patch('patch2.patch', when="@1.4") @@ -34,6 +37,10 @@ class HashTest1(Package): print("install 1") os.listdir(os.getcwd()) - @when('@1.5') + @when('@1.5:') def install(self, spec, prefix): os.listdir(os.getcwd()) + + @when('@1.5,1.6') + def extra_phase(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin.mock/packages/hash-test3/package.py b/var/spack/repos/builtin.mock/packages/hash-test3/package.py new file mode 100644 index 0000000000..345309a5eb --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/hash-test3/package.py @@ -0,0 +1,42 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + +import os + + +class HashTest3(Package): + """Used to test package hashing + """ + + homepage = "http://www.hashtest3.org" + url = "http://www.hashtest1.org/downloads/hashtest3-1.1.tar.bz2" + + version('1.2', 'b' * 32) + version('1.3', 'c' * 32) + version('1.5', 'd' * 32) + version('1.6', 'e' * 32) + version('1.7', 'f' * 32) + + variant('variantx', default=False, description='Test variant X') + variant('varianty', default=False, description='Test variant Y') + + def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + pass + + @when('@:1.4') + def install(self, spec, prefix): + print("install 1") + os.listdir(os.getcwd()) + + @when('@1.5:') + def install(self, spec, prefix): + os.listdir(os.getcwd()) + + for _version_constraint in ['@1.5', '@1.6']: + @when(_version_constraint) + def extra_phase(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin.mock/packages/missing-dependency/package.py b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py new file mode 100644 index 0000000000..e40e1b2a8b --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class MissingDependency(Package): + """Package with a dependency that does not exist.""" + + homepage = "http://www.example.com" + url = "http://www.example.com/missing-dependency-1.0.tar.gz" + + version('1.0', '0123456789abcdef0123456789abcdef') + + # intentionally missing to test possible_dependencies() + depends_on("this-is-a-missing-dependency") + + # this one is a "real" mock dependency + depends_on("a") 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 de6400636d..492777f705 100644 --- a/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py +++ b/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py @@ -14,5 +14,5 @@ class NoversionBundle(BundlePackage): """ homepage = "http://www.example.com" - + url = "http://www.example.com/a-1.0.tar.gz" depends_on('dependency-install') diff --git a/var/spack/repos/builtin.mock/packages/patch/biz.patch b/var/spack/repos/builtin.mock/packages/patch/biz.patch new file mode 100644 index 0000000000..71a8a61460 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/patch/biz.patch @@ -0,0 +1 @@ +this patch is never applied, it is used to check spec semantics on when the concretizer chooses to include a patch diff --git a/var/spack/repos/builtin.mock/packages/patch/package.py b/var/spack/repos/builtin.mock/packages/patch/package.py index 37ea72fb1a..e6c8b33dcf 100644 --- a/var/spack/repos/builtin.mock/packages/patch/package.py +++ b/var/spack/repos/builtin.mock/packages/patch/package.py @@ -13,11 +13,14 @@ class Patch(Package): url = "http://www.example.com/patch-1.0.tar.gz" version('1.0', '0123456789abcdef0123456789abcdef') + version('1.0.1') + version('1.0.2') version('2.0', '0123456789abcdef0123456789abcdef') patch('foo.patch') patch('bar.patch', when='@2:') patch('baz.patch') + patch('biz.patch', when='@1.0.1:1.0.2') def install(self, spec, prefix): pass diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py new file mode 100644 index 0000000000..95c996959e --- /dev/null +++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class AbseilCpp(CMakePackage): + """Abseil Common Libraries (C++) """ + + homepage = "https://abseil.io/" + url = "https://github.com/abseil/abseil-cpp/archive/20180600.tar.gz" + + maintainers = ['jcftang'] + + version('20190808', sha256='8100085dada279bf3ee00cd064d43b5f55e5d913be0dfe2906f06f8f28d5b37e') + version('20181200', sha256='e2b53bfb685f5d4130b84c4f3050c81bf48c497614dc85d91dbd3ed9129bce6d') + version('20180600', sha256='794d483dd9a19c43dc1fbbe284ce8956eb7f2600ef350dac4c602f9b4eb26e90') + + def cmake_args(self): + args = ["-DBUILD_TESTING=OFF", "-DCMAKE_CXX_STANDARD=11"] + return args diff --git a/var/spack/repos/builtin/packages/accfft/fix_narrowing_error.patch b/var/spack/repos/builtin/packages/accfft/fix_narrowing_error.patch new file mode 100644 index 0000000000..bdd48cbc1c --- /dev/null +++ b/var/spack/repos/builtin/packages/accfft/fix_narrowing_error.patch @@ -0,0 +1,11 @@ +--- spack-src/include/parUtils.txx.org 2019-11-27 16:41:07.438799437 +0900 ++++ spack-src/include/parUtils.txx 2019-11-27 16:54:51.654921619 +0900 +@@ -70,7 +70,7 @@ + } + omp_par::scan(&s_cnt[0],&s_dsp[0],np+1); + +- size_t range[2]={0,np}; ++ size_t range[2]={0,(unsigned long)np}; + for(size_t np_new=np; np_new>1; np_new/=kway){ + double tt=omp_get_wtime(); + if(kway>np_new) kway=np_new; diff --git a/var/spack/repos/builtin/packages/accfft/package.py b/var/spack/repos/builtin/packages/accfft/package.py index 8c200b76f9..cd2c5b8c9d 100644 --- a/var/spack/repos/builtin/packages/accfft/package.py +++ b/var/spack/repos/builtin/packages/accfft/package.py @@ -24,6 +24,9 @@ class Accfft(CMakePackage, CudaPackage): depends_on('parallel-netcdf', when='+pnetcdf') + # fix error [-Wc++11-narrowing] + patch('fix_narrowing_error.patch') + parallel = False def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py index efbe029b32..c974e26702 100644 --- a/var/spack/repos/builtin/packages/ack/package.py +++ b/var/spack/repos/builtin/packages/ack/package.py @@ -25,11 +25,13 @@ class Ack(Package): def install(self, spec, prefix): mkdirp(prefix.bin) - ack = 'ack-{0}-single-file'.format(self.version) + ack_source = 'ack-{0}-single-file'.format(self.version) + ack_installed = join_path(prefix.bin, "ack") + + # install source + install(ack_source, ack_installed) + set_executable(ack_installed) # rewrite the script's #! line to call the perl dependency shbang = '#!' + spec['perl'].command.path - filter_file(r'^#!/usr/bin/env perl', shbang, ack) - - install(ack, join_path(prefix.bin, "ack")) - set_executable(join_path(prefix.bin, "ack")) + filter_file(r'^#!/usr/bin/env perl', shbang, ack_installed) diff --git a/var/spack/repos/builtin/packages/activemq/package.py b/var/spack/repos/builtin/packages/activemq/package.py new file mode 100644 index 0000000000..0e62961909 --- /dev/null +++ b/var/spack/repos/builtin/packages/activemq/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Activemq(Package): + """ + Apache ActiveMQ is a high performance Apache 2.0 licensed Message Broker + and JMS 1.1 implementation. + """ + + homepage = "https://archive.apache.org/dist/activemq" + url = "https://archive.apache.org/dist/activemq/5.14.0/apache-activemq-5.14.0-bin.tar.gz" + + version('5.14.0', sha256='81c623465af277dd50a141a8d9308d6ec8e1b78d9019b845873dc12d117aa9a6') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/acts-core/package.py b/var/spack/repos/builtin/packages/acts-core/package.py index 30cba1eaa8..efaf1995a9 100644 --- a/var/spack/repos/builtin/packages/acts-core/package.py +++ b/var/spack/repos/builtin/packages/acts-core/package.py @@ -31,8 +31,15 @@ class ActsCore(CMakePackage): homepage = "http://acts.web.cern.ch/ACTS/" git = "https://gitlab.cern.ch/acts/acts-core.git" + maintainers = ['HadrienG2'] version('develop', branch='master') + version('0.13.0', commit='b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88') + version('0.12.1', commit='a8b3d36e7c6cb86487637589e0eff7bbe626054a') + version('0.12.0', commit='f9cda77299606d78c889fb1db2576c1971a271c4') + version('0.11.1', commit='c21196cd6c3ecc6da0f14d0a9ef227a274be584b') + version('0.11.0', commit='22bcea1f19adb0021ca61b843b95cfd2462dd31d') + version('0.10.5', commit='b6f7234ca8f18ee11e57709d019c14bf41cf9b19') version('0.10.4', commit='42cbc359c209f5cf386e620b5a497192c024655e') version('0.10.3', commit='a3bb86b79a65b3d2ceb962b60411fd0df4cf274c') version('0.10.2', commit='64cbf28c862d8b0f95232b00c0e8c38949d5015d') @@ -83,7 +90,7 @@ class ActsCore(CMakePackage): cmake_variant("INTEGRATION_TESTS", "integration_tests"), cmake_variant("DIGITIZATION_PLUGIN", "digitization"), cmake_variant("DD4HEP_PLUGIN", "dd4hep"), - cmake_variant("IDENTIFICATION", "identification"), + cmake_variant("IDENTIFICATION_PLUGIN", "identification"), cmake_variant("JSON_PLUGIN", "json"), cmake_variant("TGEO_PLUGIN", "tgeo") ] diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py index 4b8e417a11..939ec797ab 100644 --- a/var/spack/repos/builtin/packages/adios/package.py +++ b/var/spack/repos/builtin/packages/adios/package.py @@ -84,7 +84,7 @@ class Adios(AutotoolsPackage): depends_on('c-blosc@1.12.0:', when='+blosc') # optional transports & file converters depends_on('hdf5@1.8:+hl+mpi', when='+hdf5') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('libevpath', when='staging=flexpath') depends_on('dataspaces+mpi', when='staging=dataspaces') diff --git a/var/spack/repos/builtin/packages/adios2/2.5-fix-clear_cache.patch b/var/spack/repos/builtin/packages/adios2/2.5-fix-clear_cache.patch new file mode 100644 index 0000000000..2a2e86cc32 --- /dev/null +++ b/var/spack/repos/builtin/packages/adios2/2.5-fix-clear_cache.patch @@ -0,0 +1,213 @@ +From 2f05a0b1def194001d1f6e0f9a07725c10b48301 Mon Sep 17 00:00:00 2001 +From: Greg Eisenhauer <eisen@cc.gatech.edu> +Date: Fri, 13 Dec 2019 10:00:15 -0500 +Subject: [PATCH] Merge branch 'upstream-dill' into DillUpstream + +* upstream-dill: + dill 2019-12-12 (dac6dfcc) +--- + thirdparty/dill/dill/CMakeLists.txt | 5 ++++- + thirdparty/dill/dill/LICENSE | 24 ++++++++++++++++++++++++ + thirdparty/dill/dill/arm6.c | 19 +++---------------- + thirdparty/dill/dill/arm6_rt.c | 19 +++---------------- + thirdparty/dill/dill/arm8.c | 19 +++---------------- + thirdparty/dill/dill/arm8_rt.c | 19 +++---------------- + thirdparty/dill/dill/config.h.cmake | 7 +++++-- + 7 files changed, 45 insertions(+), 67 deletions(-) + create mode 100644 thirdparty/dill/dill/LICENSE + +diff --git a/thirdparty/dill/dill/CMakeLists.txt b/thirdparty/dill/dill/CMakeLists.txt +index 0461556a..695db8c6 100644 +--- a/thirdparty/dill/dill/CMakeLists.txt ++++ b/thirdparty/dill/dill/CMakeLists.txt +@@ -1,6 +1,6 @@ + cmake_minimum_required(VERSION 3.0) + +-project(DILL VERSION 2.4.0 LANGUAGES C CXX) ++project(DILL VERSION 2.4.1 LANGUAGES C CXX) + + # Some boilerplate to setup nice output directories + include(GNUInstallDirs) +@@ -265,6 +265,9 @@ check_include_files(unistd.h HAVE_UNISTD_H) + check_include_files(stdarg.h STDC_HEADERS) + check_include_files(malloc.h HAVE_MALLOC_H) + check_include_files(memory.h HAVE_MEMORY_H) ++include(CheckSymbolExists) ++check_symbol_exists(__clear_cache "" CLEAR_CACHE_DEFINED) ++message(STATUS "Clear cache defined is ${CLEAR_CACHE_DEFINED}") + + set(NO_DISASSEMBLER TRUE) + if(DILL_ENABLE_DISASSEMBLY) +diff --git a/thirdparty/dill/dill/LICENSE b/thirdparty/dill/dill/LICENSE +new file mode 100644 +index 00000000..81b08341 +--- /dev/null ++++ b/thirdparty/dill/dill/LICENSE +@@ -0,0 +1,24 @@ ++Copyright (c) 2010, Georgia Tech Research Corporation ++All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * 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. ++ * Neither the name of the Georgia Tech Research Corporation 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 GEORGIA TECH RESEARCH CORPORATION ''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 GEORGIA TECH 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. +diff --git a/thirdparty/dill/dill/arm6.c b/thirdparty/dill/dill/arm6.c +index f2be1725..da90507c 100644 +--- a/thirdparty/dill/dill/arm6.c ++++ b/thirdparty/dill/dill/arm6.c +@@ -1526,22 +1526,9 @@ arm6_call_link(dill_stream s) + } + + +-/* Clear the instruction cache from `beg' to `end'. This makes an +- inline system call to SYS_cacheflush. */ +-#define CLEAR_INSN_CACHE(BEG, END) \ +-{ \ +- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ +- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ +- register unsigned long _flg __asm ("a3") = 0; \ +- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ +- : "=r" (_beg) \ +- : "0" (_beg), "r" (_end), "r" (_flg)); \ +-} +-/* +- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker +- * mailing list +- */ +-extern void __clear_cache(char*, char *); ++#ifndef CLEAR_CACHE_DEFINED ++extern void __clear_cache(void *, void *); ++#endif + + static void + arm6_flush(void *base, void *limit) +diff --git a/thirdparty/dill/dill/arm6_rt.c b/thirdparty/dill/dill/arm6_rt.c +index 1f64b477..6b7e908e 100644 +--- a/thirdparty/dill/dill/arm6_rt.c ++++ b/thirdparty/dill/dill/arm6_rt.c +@@ -109,22 +109,9 @@ arm6_rt_call_link(char *code, call_t *t) + } + } + +-/* Clear the instruction cache from `beg' to `end'. This makes an +- inline system call to SYS_cacheflush. */ +-#define CLEAR_INSN_CACHE(BEG, END) \ +-{ \ +- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ +- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ +- register unsigned long _flg __asm ("a3") = 0; \ +- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ +- : "=r" (_beg) \ +- : "0" (_beg), "r" (_end), "r" (_flg)); \ +-} +-/* +- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker +- * mailing list +- */ +-extern void __clear_cache(char*, char *); ++#ifndef CLEAR_CACHE_DEFINED ++extern void __clear_cache(void *, void *); ++#endif + + static void + arm6_flush(void *base, void *limit) +diff --git a/thirdparty/dill/dill/arm8.c b/thirdparty/dill/dill/arm8.c +index fd5ed79f..d1894635 100644 +--- a/thirdparty/dill/dill/arm8.c ++++ b/thirdparty/dill/dill/arm8.c +@@ -1524,22 +1524,9 @@ arm8_call_link(dill_stream s) + } + + +-/* Clear the instruction cache from `beg' to `end'. This makes an +- inline system call to SYS_cacheflush. */ +-#define CLEAR_INSN_CACHE(BEG, END) \ +-{ \ +- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ +- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ +- register unsigned long _flg __asm ("a3") = 0; \ +- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ +- : "=r" (_beg) \ +- : "0" (_beg), "r" (_end), "r" (_flg)); \ +-} +-/* +- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker +- * mailing list +- */ +-extern void __clear_cache(char*, char *); ++#ifndef CLEAR_CACHE_DEFINED ++extern void __clear_cache(void *, void *); ++#endif + + static void + arm8_flush(void *base, void *limit) +diff --git a/thirdparty/dill/dill/arm8_rt.c b/thirdparty/dill/dill/arm8_rt.c +index bd0209cd..5cb107ed 100644 +--- a/thirdparty/dill/dill/arm8_rt.c ++++ b/thirdparty/dill/dill/arm8_rt.c +@@ -109,22 +109,9 @@ arm8_rt_call_link(char *code, call_t *t) + } + } + +-/* Clear the instruction cache from `beg' to `end'. This makes an +- inline system call to SYS_cacheflush. */ +-#define CLEAR_INSN_CACHE(BEG, END) \ +-{ \ +- register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \ +- register unsigned long _end __asm ("a2") = (unsigned long) (END); \ +- register unsigned long _flg __asm ("a3") = 0; \ +- __asm __volatile ("swi 0x9f0002 @ sys_cacheflush" \ +- : "=r" (_beg) \ +- : "0" (_beg), "r" (_end), "r" (_flg)); \ +-} +-/* +- * Cache flush code grabbed from a Dec 1999 posting on libc-hacker +- * mailing list +- */ +-extern void __clear_cache(char*, char *); ++#ifndef CLEAR_CACHE_DEFINED ++extern void __clear_cache(void *, void *); ++#endif + + static void + arm8_flush(void *base, void *limit) +diff --git a/thirdparty/dill/dill/config.h.cmake b/thirdparty/dill/dill/config.h.cmake +index a8519064..a9622f56 100644 +--- a/thirdparty/dill/dill/config.h.cmake ++++ b/thirdparty/dill/dill/config.h.cmake +@@ -16,10 +16,13 @@ + #cmakedefine HAVE_DIS_ASM_H + + /* Define to 1 if you have the <dlfcn.h> header file. */ +-#undef HAVE_DLFCN_H ++#cmakedefine HAVE_DLFCN_H + + /* Define to 1 if you have the <inttypes.h> header file. */ +-#undef HAVE_INTTYPES_H ++#cmakedefine HAVE_INTTYPES_H ++ ++/* Define to 1 if you have __clear_cache is defined */ ++#cmakedefine CLEAR_CACHE_DEFINED + + /* Define to 1 if you have the <malloc.h> header file. */ + #cmakedefine HAVE_MALLOC_H +-- +2.18.1 + diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index e5e10db996..7c9cf23988 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -85,8 +85,8 @@ class Adios2(CMakePackage): # depends_on('flex', when='+sst') # optional in FFS, depends on BISON depends_on('mpi', when='+mpi') - depends_on('zeromq', when='+dataman') - depends_on('zeromq', when='@2.4: +ssc') + depends_on('libzmq', when='+dataman') + depends_on('libzmq', when='@2.4: +ssc') depends_on('dataspaces@1.8.0:', when='+dataspaces') depends_on('hdf5', when='+hdf5') @@ -109,6 +109,11 @@ class Adios2(CMakePackage): # See https://github.com/ornladios/ADIOS2/pull/1632 patch('cmake-update-findmpi.patch', when='@2.4.0') + # Fix the signature of the builtin clear_cache function in the + # third-party dill library. + # See https://github.com/ornladios/ADIOS2/pull/1899 + patch('2.5-fix-clear_cache.patch', when='@2.5.0') + def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/adlbx/package.py b/var/spack/repos/builtin/packages/adlbx/package.py index e4e7c178f9..096a2cedd9 100644 --- a/var/spack/repos/builtin/packages/adlbx/package.py +++ b/var/spack/repos/builtin/packages/adlbx/package.py @@ -11,7 +11,7 @@ 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.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/adlbx-0.9.2.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') @@ -27,11 +27,11 @@ class Adlbx(AutotoolsPackage): depends_on('m4', type='build', when='@master') depends_on('mpi') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) @property def configure_directory(self): diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py index 30a1c0b2c4..1f01fcc3f5 100644 --- a/var/spack/repos/builtin/packages/alglib/package.py +++ b/var/spack/repos/builtin/packages/alglib/package.py @@ -18,9 +18,6 @@ class Alglib(MakefilePackage): version('3.11.0', sha256='34e391594aac89fb354bdaf58c42849489cd1199197398ba98bb69961f42bdb0') - def url_for_version(self, version): - return 'http://www.alglib.net/translator/re/alglib-{0}.cpp.gpl.tgz'.format(version.dotted) - build_directory = 'src' def edit(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/allpaths-lg/package.py b/var/spack/repos/builtin/packages/allpaths-lg/package.py index c8d580d08e..dc2099948d 100644 --- a/var/spack/repos/builtin/packages/allpaths-lg/package.py +++ b/var/spack/repos/builtin/packages/allpaths-lg/package.py @@ -11,7 +11,7 @@ class AllpathsLg(AutotoolsPackage): small and large (mammalian size) genomes.""" homepage = "http://www.broadinstitute.org/software/allpaths-lg/blog/" - url = "ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/LATEST_VERSION.tar.gz" + 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 new file mode 100644 index 0000000000..4bfd0a41c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/alluxio/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Alluxio(Package): + """ + Alluxio (formerly known as Tachyon) is a virtual distributed storage + system. It bridges the gap between computation frameworks and storage + systems, enabling computation applications to connect to numerous + storage systems through a common interface. + """ + + homepage = "https://github.com/Alluxio/alluxio" + url = "https://github.com/Alluxio/alluxio/archive/v2.1.0.tar.gz" + + version('2.1.0', sha256='c8b5b7848488e0ac10b093eea02ef05fa822250669d184291cc51b2f8aac253e') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py index 1484fc1fa5..16af43d085 100644 --- a/var/spack/repos/builtin/packages/alquimia/package.py +++ b/var/spack/repos/builtin/packages/alquimia/package.py @@ -16,6 +16,7 @@ class Alquimia(CMakePackage): maintainers = ['smolins', 'balay'] version('develop') + 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') @@ -25,6 +26,7 @@ class Alquimia(CMakePackage): depends_on('mpi') depends_on('hdf5') + depends_on('pflotran@xsdk-0.5.0', when='@xsdk-0.5.0') depends_on('pflotran@xsdk-0.4.0', when='@xsdk-0.4.0') depends_on('pflotran@xsdk-0.3.0', when='@xsdk-0.3.0') depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0') diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py index cafb0595d9..7d290d0716 100644 --- a/var/spack/repos/builtin/packages/aluminum/package.py +++ b/var/spack/repos/builtin/packages/aluminum/package.py @@ -19,6 +19,9 @@ class Aluminum(CMakePackage): git = "https://github.com/LLNL/Aluminum.git" version('master', branch='master') + version('0.3.3', sha256='26e7f263f53c6c6ee0fe216e981a558dfdd7ec997d0dd2a24285a609a6c68f3b') + version('0.3.2', sha256='09b6d1bcc02ac54ba269b1123eee7be20f0104b93596956c014b794ba96b037f') + version('0.2.1-1', sha256='066b750e9d1134871709a3e2414b96b166e0e24773efc7d512df2f1d96ee8eef') version('0.2.1', sha256='3d5d15853cccc718f60df68205e56a2831de65be4d96e7f7e8497097e7905f89') version('0.2', sha256='fc8f06c6d8faab17a2aedd408d3fe924043bf857da1094d5553f35c4d2af893b') version('0.1', sha256='3880b736866e439dd94e6a61eeeb5bb2abccebbac82b82d52033bc6c94950bdb') diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py index 94e3f23d1e..e33f04c3a1 100644 --- a/var/spack/repos/builtin/packages/amber/package.py +++ b/var/spack/repos/builtin/packages/amber/package.py @@ -5,6 +5,7 @@ from spack import * import os +import shutil class Amber(Package, CudaPackage): @@ -17,63 +18,171 @@ class Amber(Package, CudaPackage): http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "http://ambermd.org/" - url = "file://{0}/Amber16.tar.bz2".format(os.getcwd()) + url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) + maintainers = ['hseara'] + version('18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') version('16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d') - variant('mpi', description='Build MPI executables', default=True) + resources = [ + # [version amber, version ambertools , sha256sum] + ('18', '19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'), + ('16', '16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'), + ] + for ver, ambertools_ver, checksum in resources: + resource(when='@{0}'.format(ver), + name='AmberTools', + url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(), + ambertools_ver), + sha256=checksum, + destination='', + placement='ambertools_tmpdir', + ) + + patches = [ + ('18', '1', '3cefac9a24ece99176d5d2d58fea2722de3e235be5138a128428b9260fe922ad'), + ('18', '2', '3a0707a9a59dcbffa765dcf87b68001450095c51b96ec39d21260ba548a2f66a'), + ('18', '3', '24c2e06f71ae553a408caa3f722254db2cbf1ca4db274542302184e3d6ca7015'), + ('18', '4', '51de613e8fda20cc92979265cf7179288df8c1af4202f02794ad7327fda2657b'), + ('18', '5', 'c70354bfa312603e4819efce11a242ddcc3830895453d9424f0c83f7ae98bc5b'), + ('18', '6', '3450433a8697b27e43172043be68d31515a7c7c00b2b248f84043dd70a2f59a8'), + ('18', '7', '10ba41422b7a3eb5b32bc6453231100544cf620c764ab8332c629a3b9fc749d4'), + ('18', '8', '73968dc0fd99bcbd5eae2223bd54f414879c062ac933948ba6b8b67383dc6a53'), + ('18', '9', 'e7d72fa31560f1e8ea572b8c73259d9fe512f56fbeb1b58ae014c43b9b5b6290'), + ('18', '10', '1bee419a3b0b686a729aa12515b0f96a9a8f43478ca2c01ea1661cc1698c6266'), + ('18', '11', '926557f0c137ea8dbf99a0487b25e131b12dfd39977d3e515f01f49187e6a09c'), + ('18', '12', '7e2645d539d257f7064808308048622818c9083dedfa4ac0a958cd15181231ac'), + ('18', '13', '95d2e33d0d05b8f9b6d8091d1c804271ec3a69e9aef792cc3b1ab8a2165eca3e'), + ('18', '14', 'a1adfb072f60ffcb67adb589df7c5578629441bee4ccb89ab635a6e8d7a35277'), + ('18', '15', '4deb3df329c05729561dcc7310e49059eaddc504c4210ad31fad11dc70f61742'), + ('18', '16', 'cf02f9b949127363bad1aa700ab662a3c7cf9ce0e2e4750e066d2204b9500a99'), + ('18', '17', '480300f949e0dd6402051810a9714adb388cf96e454a55346c76954cdd69413d'), + ('16', '1.txt', 'c7ef2303bb35131a48e2256c5a3c7b391efa73e2acf757d7e39760efb6320ed4'), + ('16', '2', 'a4db183f7c337a67f5d6b5015e3ae0af0d0edaa56894f0e9e3469c99708fed1c'), + ('16', '3', '5b279531c42445c6f58281dd94588460218d2258ec9013c8447f3e2b7b81bf02'), + ('16', '4', '035bddd63bc9d5fd6de26beab31887e5c14c3caa4958d2424d72f3c49832bd42'), + ('16', '5', '02d8a1fcb6baa466de4e3683afa48076394acd805f490fbbe50ab19040675136'), + ('16', '6', '69a3e64d75255d9179c98a2b3a63fe76d5be08c9fc41f27ac197663c97915113'), + ('16', '7', '0d674c907758e90a168345e6b35b7a0de79c2ead390ab372465a354fcab67d17'), + ('16', '8', 'd722c0db46af905a5bd13b60e3130c4ddfb0c9da86df0a33253e5f8d53068946'), + ('16', '9', 'b563e744fbc50c1240d23df369750879df2cec69fba933704b97a73a66d9c4f1'), + ('16', '10', '99affc65740080b7a1ab87c5c9119bf5be7cf47b2b2d8fc13407d35bd2ba6238'), + ('16', '11', '86b89dbcae80ef48720fd3c7da88cffbdabfd4021af5a827339b56a33ddae27a'), + ('16', '12', 'c8d61d1efbd44086f88d74ad9e07dfdc3737dc7053c7d2503131ba0918973a03'), + ('16', '13', '5ce28e6e0118a4780ad72fc096e617c874cde7d140e15f87451babb25aaf2d8f'), + ('16', '14', '93703e734e76da30a5e050189a66d5a4d6bec5885752503c4c798e2f44049080'), + ('16', '15', 'a156ec246cd06688043cefde24de0d715fd46b08f5c0235015c2c5c3c6e37488'), + ] + for ver, num, checksum in patches: + patch_url_str = 'https://ambermd.org/bugfixes/{0}.0/update.{1}' + patch(patch_url_str.format(ver, num), + sha256=checksum, level=0, when='@{0}'.format(ver)) + + variant('mpi', description='Build MPI executables', + default=True) + variant('openmp', description='Use OpenMP pragmas to parallelize', + default=False) + variant('x11', description='Build programs that require X11', + default=False) + variant('update', description='Update the sources prior compilation', + default=False) - resource( - name='AmberTools', - sha256='7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa', - url='file://{0}/AmberTools16.tar.bz2'.format(os.getcwd()), - destination='.', - ) - - depends_on('mpi', when='+mpi') - depends_on('cuda@7.5.18', when='+cuda') - - depends_on('netcdf-fortran') - depends_on('python+tkinter@2.7:2.8', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) - depends_on('py-scipy', type=('build', 'run')) - depends_on('py-matplotlib@:2.9', type=('build', 'run')) depends_on('zlib') + depends_on('flex', type='build') + depends_on('bison', type='build') + depends_on('netcdf-fortran') + # Potential issues with openmpi 4 + # (http://archive.ambermd.org/201908/0105.html) + depends_on('mpi', when='+mpi') - def setup_environment(self, spack_env, run_env): - sp_dir = join_path(self.prefix, 'python2.7/site-packages') - - run_env.set('AMBERHOME', self.prefix) - run_env.prepend_path('PYTHONPATH', sp_dir) + # Cuda dependencies + depends_on('cuda@:10.1.243', when='@18:+cuda') + depends_on('cuda@7.5.18', when='@:16+cuda') + + # conflicts + conflicts('+x11', when='platform=cray', + msg='x11 amber applications not available for cray') + conflicts('+openmp', when='%clang', + msg='openmp optimizations not available for the clang compiler') + conflicts('+openmp', when='%pgi', + msg='openmp optimizations not available for the pgi compiler') + + def setup_build_environment(self, env): + amber_src = self.stage.source_path + env.set('AMBERHOME', amber_src) + # CUDA + if self.spec.satisfies('+cuda'): + env.set('CUDA_HOME', self.spec['cuda'].prefix) def install(self, spec, prefix): - # install AmberTools where it should be - install_tree('amber16', '.') - - base_args = [ - '-noX11', - '--no-updates', - '--skip-python', - '--with-netcdf', self.spec['netcdf-fortran'].prefix - ] - - configure_env = { - 'AMBERHOME': self.stage.source_path, - 'CUDA_HOME': self.spec['cuda'].prefix, - } - + # The resource command does not allow us to expand the package in the + # root stage folder as required, as it already contains files. Here we + # install AmberTools where it should be, which results in 3 copies of + # the ambertools (~9 GB). This has to be improved in the future. + install_tree('ambertools_tmpdir', '.') + shutil.rmtree(join_path(self.stage.source_path, 'ambertools_tmpdir')) + + # Select compiler style + if self.spec.satisfies('%cce'): + compiler = 'cray' + elif self.spec.satisfies('%gcc'): + compiler = 'gnu' + elif self.spec.satisfies('%intel'): + compiler = 'intel' + elif self.spec.satisfies('%pgi'): + compiler = 'pgi' + elif self.spec.satisfies('%clang'): + compiler = 'clang' + else: + raise InstallError('Unknown compiler, exiting!!!') + + # Base configuration conf = Executable('./configure') - - conf(*(base_args + ['gnu']), extra_env=configure_env) - make('install', extra_env=configure_env) - - if '+mpi' in spec: - conf(*(base_args + ['-mpi', 'gnu']), extra_env=configure_env) - make('install', extra_env=configure_env) - - if '+cuda' in spec: - conf(*(base_args + ['-cuda', 'gnu']), extra_env=configure_env) - make('install', extra_env=configure_env) + base_args = ['--skip-python', + '--with-netcdf', self.spec['netcdf-fortran'].prefix, + ] + if self.spec.satisfies('~x11'): + base_args += ['-noX11'] + + # Update the sources: Apply all upstream patches + if self.spec.satisfies('+update'): + update = Executable('./update_amber') + update(*(['--update'])) + else: + base_args += ['--no-updates'] + + # Single core + conf(*(base_args + [compiler])) + make('install') + + # CUDA + if self.spec.satisfies('+cuda'): + conf(*(base_args + ['-cuda', compiler])) + make('install') + + # MPI + if self.spec.satisfies('+mpi'): + conf(*(base_args + ['-mpi', compiler])) + make('install') + + # Openmp + if self.spec.satisfies('+openmp'): + make('clean') + conf(*(base_args + ['-openmp', compiler])) + make('openmp') + + # CUDA + MPI + if self.spec.satisfies('+cuda') and self.spec.satisfies('+mpi'): + make('clean') + conf(*(base_args + ['-cuda', '-mpi', compiler])) + make('install') # just install everything that was built install_tree('.', prefix) + + def setup_run_environment(self, env): + env.set('AMBER_PREFIX', self.prefix) + env.set('AMBERHOME', self.prefix) + # CUDA + if self.spec.satisfies('+cuda'): + env.prepend_path('LD_LIBRARY_PATH', self.spec['cuda'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/amp/package.py b/var/spack/repos/builtin/packages/amp/package.py index 5410db4849..27bc465ffd 100644 --- a/var/spack/repos/builtin/packages/amp/package.py +++ b/var/spack/repos/builtin/packages/amp/package.py @@ -110,7 +110,7 @@ class Amp(CMakePackage): if '+netcdf' in spec: tpl_list = tpl_list + ";NETCDF" options.extend(['-DTPL_NETCDF_INSTALL_DIR=%s' % - spec['netcdf'].prefix, ]) + spec['netcdf-c'].prefix, ]) if '+hypre' in spec: tpl_list = tpl_list + ";HYPRE" options.extend(['-DTPL_HYPRE_INSTALL_DIR=%s' % diff --git a/var/spack/repos/builtin/packages/ampliconnoise/Fix-return-type.patch b/var/spack/repos/builtin/packages/ampliconnoise/Fix-return-type.patch new file mode 100644 index 0000000000..3af2072b2d --- /dev/null +++ b/var/spack/repos/builtin/packages/ampliconnoise/Fix-return-type.patch @@ -0,0 +1,63 @@ +diff -ur spack-src.org/FCluster/FCluster.c spack-src/FCluster/FCluster.c +--- spack-src.org/FCluster/FCluster.c 2013-08-01 23:37:40.000000000 +0900 ++++ spack-src/FCluster/FCluster.c 2019-11-15 16:24:19.912747987 +0900 +@@ -750,7 +750,7 @@ + return atResult;
+ }
+
+-int outputCluster(t_Params *ptParams, t_Node* tree, char **aszID, int nN)
++void outputCluster(t_Params *ptParams, t_Node* tree, char **aszID, int nN)
+ {
+ int i = 0, j = 0, k = 0, l = 0;
+ int nNodes = nN - 1;
+diff -ur spack-src.org/FCluster/FCluster.h spack-src/FCluster/FCluster.h +--- spack-src.org/FCluster/FCluster.h 2013-08-01 23:37:40.000000000 +0900 ++++ spack-src/FCluster/FCluster.h 2019-11-15 16:24:30.453873139 +0900 +@@ -71,7 +71,7 @@ +
+ void readDistanceMatrix(char ***paszID, char *szDistFile, float *** paafDist, int *pnN, t_Params *ptParams, float** pafW);
+
+-int outputCluster(t_Params *ptParams, t_Node* tree, char **aszID, int nN);
++void outputCluster(t_Params *ptParams, t_Node* tree, char **aszID, int nN);
+
+ void scaleDistances(float **aafDist, int nN);
+
+diff -ur spack-src.org/SplitClusterEven/SplitClusterEven.c spack-src/SplitClusterEven/SplitClusterEven.c +--- spack-src.org/SplitClusterEven/SplitClusterEven.c 2013-08-01 23:37:39.000000000 +0900 ++++ spack-src/SplitClusterEven/SplitClusterEven.c 2019-11-15 16:41:40.142569105 +0900 +@@ -366,7 +366,7 @@ + + } + +-double maxDepth(t_Node* ptTree, double* pdDepth) ++void maxDepth(t_Node* ptTree, double* pdDepth) + { + double dOldDepth = *pdDepth; + +@@ -378,7 +378,7 @@ + return; + } + +-double setDepth(t_Node* ptTree, double dDepth) ++void setDepth(t_Node* ptTree, double dDepth) + { + double dOldDepth = dDepth; + +diff -ur spack-src.org/SplitClusterEven/SplitClusterEven.h spack-src/SplitClusterEven/SplitClusterEven.h +--- spack-src.org/SplitClusterEven/SplitClusterEven.h 2013-08-01 23:37:39.000000000 +0900 ++++ spack-src/SplitClusterEven/SplitClusterEven.h 2019-11-15 16:42:17.936558096 +0900 +@@ -88,7 +88,7 @@ + + void treeSplit(t_Node* ptTree, double* pdDepth, double dSplit, t_Node **aptSplit,int* pnSplit); + +-double maxDepth(t_Node* ptTree, double* pdMaxDepth); ++void maxDepth(t_Node* ptTree, double* pdMaxDepth); + + void writeIndices(t_Node* ptTree, FILE* ofp); + +@@ -116,4 +116,4 @@ + + void treeSplitEven(t_Node* ptTree, int nSplit, t_Node **aptSplit,int* pnSplit); + +-double setDepth(t_Node* ptTree, double dDepth); ++void setDepth(t_Node* ptTree, double dDepth); diff --git a/var/spack/repos/builtin/packages/ampliconnoise/package.py b/var/spack/repos/builtin/packages/ampliconnoise/package.py index 381871bd69..4323ac7f98 100644 --- a/var/spack/repos/builtin/packages/ampliconnoise/package.py +++ b/var/spack/repos/builtin/packages/ampliconnoise/package.py @@ -3,7 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * +import os.path class Ampliconnoise(MakefilePackage): @@ -18,12 +18,14 @@ class Ampliconnoise(MakefilePackage): depends_on('mpi@2:') depends_on('gsl') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.Scripts) - run_env.set('PYRO_LOOKUP_FILE', join_path(self.prefix, 'Data', - 'LookUp_E123.dat')) - run_env.set('SEQ_LOOKUP_FILE', join_path(self.prefix, 'Data', - 'Tran.dat')) + patch('Fix-return-type.patch') + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.Scripts) + env.set('PYRO_LOOKUP_FILE', os.path.join(self.prefix, 'Data', + 'LookUp_E123.dat')) + env.set('SEQ_LOOKUP_FILE', os.path.join(self.prefix, 'Data', + 'Tran.dat')) def install(self, spec, prefix): make('install') diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index 234584927b..ef444cf39c 100644 --- a/var/spack/repos/builtin/packages/amrex/package.py +++ b/var/spack/repos/builtin/packages/amrex/package.py @@ -79,4 +79,7 @@ class Amrex(CMakePackage): '-DENABLE_PARTICLES:BOOL=%s' % self.cmake_is_on('+particles'), '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials') ] + if self.spec.satisfies('%fj'): + args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M') + return args diff --git a/var/spack/repos/builtin/packages/amrvis/package.py b/var/spack/repos/builtin/packages/amrvis/package.py index 9a21ba8eca..df1ed73e06 100644 --- a/var/spack/repos/builtin/packages/amrvis/package.py +++ b/var/spack/repos/builtin/packages/amrvis/package.py @@ -173,16 +173,16 @@ class Amrvis(MakefilePackage): with open('GNUmakefile', 'w') as file: file.writelines(contents) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # We don't want an AMREX_HOME the user may have set already - spack_env.unset('AMREX_HOME') + env.unset('AMREX_HOME') # Help force Amrvis to not pick up random system compilers if '+mpi' in self.spec: - spack_env.set('MPI_HOME', self.spec['mpi'].prefix) - spack_env.set('CC', self.spec['mpi'].mpicc) - spack_env.set('CXX', self.spec['mpi'].mpicxx) - spack_env.set('F77', self.spec['mpi'].mpif77) - spack_env.set('FC', self.spec['mpi'].mpifc) + env.set('MPI_HOME', self.spec['mpi'].prefix) + env.set('CC', self.spec['mpi'].mpicc) + env.set('CXX', self.spec['mpi'].mpicxx) + env.set('F77', self.spec['mpi'].mpif77) + env.set('FC', self.spec['mpi'].mpifc) def install(self, spec, prefix): # Install exe manually diff --git a/var/spack/repos/builtin/packages/angsd/package.py b/var/spack/repos/builtin/packages/angsd/package.py index 7959f2b20c..0d9d981be0 100644 --- a/var/spack/repos/builtin/packages/angsd/package.py +++ b/var/spack/repos/builtin/packages/angsd/package.py @@ -22,8 +22,8 @@ class Angsd(MakefilePackage): depends_on('htslib') conflicts('^htslib@1.6:', when='@0.919') - def setup_environment(self, spack_env, run_env): - run_env.set('R_LIBS', prefix.R) + def setup_run_environment(self, env): + env.set('R_LIBS', self.prefix.R) def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/ants/package.py b/var/spack/repos/builtin/packages/ants/package.py index 903be43a48..f6591edbec 100644 --- a/var/spack/repos/builtin/packages/ants/package.py +++ b/var/spack/repos/builtin/packages/ants/package.py @@ -30,5 +30,5 @@ class Ants(CMakePackage): make("install") install_tree('Scripts', prefix.bin) - def setup_environment(self, spack_env, run_env): - run_env.set('ANTSPATH', self.prefix.bin) + def setup_run_environment(self, env): + env.set('ANTSPATH', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/archer/package.py b/var/spack/repos/builtin/packages/archer/package.py index 7437a3890d..306ce1c800 100644 --- a/var/spack/repos/builtin/packages/archer/package.py +++ b/var/spack/repos/builtin/packages/archer/package.py @@ -13,15 +13,22 @@ class Archer(CMakePackage): homepage = "https://github.com/PRUNERS/ARCHER" url = "https://github.com/PRUNERS/archer/archive/v1.0.0.tar.gz" + version('2.0.0', sha256='3241cadb0078403368b69166b27f815e12c350486d4ceb3fb33147895b9ebde8') version('1.0.0', sha256='df814a475606b83c659932caa30a68bed1c62e713386b375c1b78eb8d60e0d15') depends_on('cmake@3.4.3:', type='build') - depends_on('llvm') + depends_on('llvm@:8.0.0') depends_on('ninja@1.5:', type='build') - depends_on('llvm-openmp-ompt') + depends_on('llvm-openmp-ompt@tr6_forwards') generator = 'Ninja' + def patch(self): + if self.spec.satisfies('^llvm@8.0.0:'): + filter_file(r'add_llvm_loadable_module\(LLVMArcher', + 'add_llvm_library(LLVMArcher MODULE', + 'lib/CMakeLists.txt') + def cmake_args(self): return [ '-DCMAKE_C_COMPILER=clang', diff --git a/var/spack/repos/builtin/packages/argobots/package.py b/var/spack/repos/builtin/packages/argobots/package.py index 80950bf3f1..8201d7bd16 100644 --- a/var/spack/repos/builtin/packages/argobots/package.py +++ b/var/spack/repos/builtin/packages/argobots/package.py @@ -18,18 +18,20 @@ class Argobots(AutotoolsPackage): homepage = "http://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("develop", branch="master") + version("master", branch="master") + version("1.0rc2", sha256="7496b8bd39930a548b01aa3b1fe8f8b582c272600ef6a05ddc4398cf21dc12a2") version("1.0rc1", sha256="2dc4487556dce602655a6535f501136f0edc3575708029c80b1af6dccd069ce7") version("1.0b1", sha256="480b85b0e8db288400088a57c2dc5639f556843b06b0492841920c38348a2a3e") version("1.0a1", sha256="bef93e06026ddeba8809474923176803e64d08e1425672cd7c5b424c797d5d9d") variant("valgrind", default=False, description="Enable Valgrind") - depends_on("m4", type=("build"), when="@develop") - 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="@master") + depends_on("autoconf", type=("build"), when="@master") + depends_on("automake", type=("build"), when="@master") + depends_on("libtool", type=("build"), when="@master") depends_on("valgrind", when="+valgrind") def configure_args(self): diff --git a/var/spack/repos/builtin/packages/aria2/package.py b/var/spack/repos/builtin/packages/aria2/package.py index 7cb7e3cfae..7518d3b488 100644 --- a/var/spack/repos/builtin/packages/aria2/package.py +++ b/var/spack/repos/builtin/packages/aria2/package.py @@ -19,5 +19,5 @@ class Aria2(AutotoolsPackage): depends_on('libssh2') depends_on('libgcrypt') depends_on('zlib') - depends_on('cares') + depends_on('c-ares') depends_on('sqlite') diff --git a/var/spack/repos/builtin/packages/arm-forge/package.py b/var/spack/repos/builtin/packages/arm-forge/package.py index 94f853fef6..2434222796 100644 --- a/var/spack/repos/builtin/packages/arm-forge/package.py +++ b/var/spack/repos/builtin/packages/arm-forge/package.py @@ -19,107 +19,107 @@ class ArmForge(Package): # versions (and checksums) based on the target platform shows up version( - "19.0.4-linux-rhel6-x86_64", + "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-linux-rhel7-x86_64", + "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-linux-sles11-x86_64", + "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-linux-sles12-x86_64", + "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-linux-sles15-x86_64", + "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-linux-ubuntu16.04-x86_64", + "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-linux-ubuntu14.04-x86_64", + "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-linux-rhel7-ppc64le", + "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-linux-rhel7-aarch64", + "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-linux-sles12-aarch64", + "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-linux-ubuntu16.04-aarch64", + "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-linux-rhel6-x86_64", + "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-linux-rhel7-x86_64", + "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-linux-sles11-x86_64", + "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-linux-sles12-x86_64", + "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-linux-ubuntu16.04-x86_64", + "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-linux-ubuntu14.04-x86_64", + "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-linux-rhel7-ppc64le", + "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-linux-rhel7-aarch64", + "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-linux-sles12-aarch64", + "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-linux-ubuntu16.04-aarch64", + "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", ) diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py index de4c92c385..dd2576bb55 100644 --- a/var/spack/repos/builtin/packages/armadillo/package.py +++ b/var/spack/repos/builtin/packages/armadillo/package.py @@ -12,7 +12,7 @@ class Armadillo(CMakePackage): ease of use.""" homepage = "http://arma.sourceforge.net/" - url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz" + url = "http://sourceforge.net/projects/arma/files/armadillo-8.100.1.tar.xz" version('8.100.1', sha256='54773f7d828bd3885c598f90122b530ded65d9b195c9034e082baea737cd138d') version('7.950.1', sha256='a32da32a0ea420b8397a53e4b40ed279c1a5fc791dd492a2ced81ffb14ad0d1b') diff --git a/var/spack/repos/builtin/packages/arrow/package.py b/var/spack/repos/builtin/packages/arrow/package.py index c3ce7da229..e3aed0beb2 100644 --- a/var/spack/repos/builtin/packages/arrow/package.py +++ b/var/spack/repos/builtin/packages/arrow/package.py @@ -15,6 +15,9 @@ class Arrow(CMakePackage): homepage = "http://arrow.apache.org" url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz" + version('0.15.1', sha256='ab1c0d371a10b615eccfcead71bb79832245d788f4834cc6b278c03c3872d593') + version('0.15.0', sha256='d1072d8c4bf9166949f4b722a89350a88b7c8912f51642a5d52283448acdfd58') + version('0.14.1', sha256='69d9de9ec60a3080543b28a5334dbaf892ca34235b8bd8f8c1c01a33253926c1') version('0.12.1', sha256='aae68622edc3dcadaa16b2d25ae3f00290d5233100321993427b03bcf5b1dd3b') version('0.11.0', sha256='0ac629a7775d86108e403eb66d9f1a3d3bdd6b3a497a86228aa4e8143364b7cc') version('0.9.0', sha256='65f89a3910b6df02ac71e4d4283db9b02c5b3f1e627346c7b6a5982ae994af91') diff --git a/var/spack/repos/builtin/packages/asagi/package.py b/var/spack/repos/builtin/packages/asagi/package.py index f24c83a68d..f99bad2f7e 100644 --- a/var/spack/repos/builtin/packages/asagi/package.py +++ b/var/spack/repos/builtin/packages/asagi/package.py @@ -46,8 +46,8 @@ class Asagi(CMakePackage): depends_on('mpi', when="+mpi") depends_on('mpi@3:', when="+mpi3") - depends_on('netcdf +mpi', when="+mpi") - depends_on('netcdf ~mpi', when="~mpi") + depends_on('netcdf-c +mpi', when="+mpi") + depends_on('netcdf-c ~mpi', when="~mpi") depends_on('numactl', when="+numa") conflicts('%gcc@5:', when='@:1.0.0') diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index d837e51010..be50f8254a 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -28,13 +28,14 @@ def cmake_cache_entry(name, value, vtype=None): return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) -class Ascent(Package): +class Ascent(Package, CudaPackage): """Ascent is an open source many-core capable lightweight in situ visualization and analysis infrastructure for multi-physics HPC simulations.""" homepage = "https://github.com/Alpine-DAV/ascent" git = "https://github.com/Alpine-DAV/ascent.git" + url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.0/ascent-v0.5.0-src-with-blt.tar.gz" maintainers = ['cyrush'] @@ -42,6 +43,8 @@ class Ascent(Package): branch='develop', submodules=True) + version('0.5.0', sha256='2837b7371db3ac1bcc31a479d7cf0eb62a503cacadfa4187061502b3c4a89fa0') + ########################################################################### # package variants ########################################################################### @@ -50,6 +53,7 @@ class Ascent(Package): variant('test', default=True, description='Enable Ascent unit tests') variant("mpi", default=True, description="Build Ascent MPI Support") + variant("serial", default=True, description="build serial (non-mpi) libraries") # variants for language support variant("python", default=True, description="Build Ascent Python support") @@ -72,10 +76,15 @@ class Ascent(Package): # package dependencies ########################################################################### - depends_on("cmake@3.9.2:3.9.999", type='build') + # 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') 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") ####################### # Python @@ -85,6 +94,7 @@ class Ascent(Package): 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')) ####################### # MPI @@ -96,22 +106,22 @@ class Ascent(Package): # TPLs for Runtime Features ############################# - depends_on("vtkh@develop", when="+vtkh") - depends_on("vtkh@develop~openmp", when="+vtkh~openmp") - depends_on("vtkh@develop+cuda+openmp", when="+vtkh+cuda+openmp") - depends_on("vtkh@develop+cuda~openmp", when="+vtkh+cuda~openmp") + depends_on("vtk-h@0.5.0", when="+vtkh") + depends_on("vtk-h@0.5.0~openmp", when="+vtkh~openmp") + depends_on("vtk-h@0.5.0+cuda+openmp", when="+vtkh+cuda+openmp") + depends_on("vtk-h@0.5.0+cuda~openmp", when="+vtkh+cuda~openmp") - depends_on("vtkh@develop~shared", when="~shared+vtkh") - depends_on("vtkh@develop~shared~openmp", when="~shared+vtkh~openmp") - depends_on("vtkh@develop~shared+cuda", when="~shared+vtkh+cuda") - depends_on("vtkh@develop~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") + depends_on("vtk-h@0.5.0~shared", when="~shared+vtkh") + depends_on("vtk-h@0.5.0~shared~openmp", when="~shared+vtkh~openmp") + depends_on("vtk-h@0.5.0~shared+cuda", when="~shared+vtkh+cuda") + depends_on("vtk-h@0.5.0~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") # mfem - depends_on("mfem+shared+mpi+conduit", when="+shared+mfem+mpi") - depends_on("mfem~shared+mpi+conduit", when="~shared+mfem+mpi") + depends_on("mfem+threadsafe+shared+mpi+conduit", when="+shared+mfem+mpi") + depends_on("mfem+threadsafe~shared+mpi+conduit", when="~shared+mfem+mpi") - depends_on("mfem+shared~mpi+conduit", when="+shared+mfem~mpi") - depends_on("mfem~shared~mpi+conduit", when="~shared+mfem~mpi") + depends_on("mfem+threadsafe+shared~mpi+conduit", when="+shared+mfem~mpi") + depends_on("mfem+threadsafe~shared~mpi+conduit", when="~shared+mfem~mpi") depends_on("adios", when="+adios") @@ -119,9 +129,10 @@ class Ascent(Package): # Documentation related ####################### depends_on("py-sphinx", when="+python+doc", type='build') + depends_on("py-sphinx-rtd-theme", when="+python+doc", type='build') - def setup_environment(self, spack_env, run_env): - spack_env.set('CTEST_OUTPUT_ON_FAILURE', '1') + def setup_build_environment(self, env): + env.set('CTEST_OUTPUT_ON_FAILURE', '1') def install(self, spec, prefix): """ @@ -178,8 +189,8 @@ class Ascent(Package): create=True): cmake_args = ["-DASCENT_DIR={0}".format(install_prefix), "-DCONDUIT_DIR={0}".format(spec['conduit'].prefix), - "-DVTKM_DIR={0}".format(spec['vtkm'].prefix), - "-DVTKH_DIR={0}".format(spec['vtkh'].prefix), + "-DVTKM_DIR={0}".format(spec['vtk-m'].prefix), + "-DVTKH_DIR={0}".format(spec['vtk-h'].prefix), example_src_dir] cmake(*cmake_args) make() @@ -227,7 +238,7 @@ class Ascent(Package): if self.compiler.fc: # even if this is set, it may not exist so do one more sanity check - f_compiler = which(env["SPACK_FC"]) + f_compiler = env["SPACK_FC"] ####################################################################### # By directly fetching the names of the actual compilers we appear @@ -283,7 +294,7 @@ class Ascent(Package): if "+fortran" in spec and f_compiler is not None: cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "ON")) cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", - f_compiler.path)) + f_compiler)) else: cfg.write("# no fortran compiler found\n\n") cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "OFF")) @@ -347,18 +358,36 @@ class Ascent(Package): cfg.write(cmake_cache_entry("ENABLE_DOCS", "OFF")) ####################### + # Serial + ####################### + + if "+serial" in spec: + cfg.write(cmake_cache_entry("ENABLE_SERIAL", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_SERIAL", "OFF")) + + ####################### # MPI ####################### cfg.write("# MPI Support\n") if "+mpi" in spec: + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + mpifc_path = spec['mpi'].mpifc + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + mpifc_path = "ftn" cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", - spec['mpi'].mpicxx)) - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", - spec['mpi'].mpifc)) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') if os.path.isfile(mpiexe_bin): # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE @@ -396,10 +425,17 @@ class Ascent(Package): if "+vtkh" in spec: cfg.write("# vtk-m from spack\n") - cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtkm'].prefix)) + cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtk-m'].prefix)) cfg.write("# vtk-h from spack\n") - cfg.write(cmake_cache_entry("VTKH_DIR", spec['vtkh'].prefix)) + cfg.write(cmake_cache_entry("VTKH_DIR", spec['vtk-h'].prefix)) + + if "+cuda" in spec: + cfg.write(cmake_cache_entry("VTKm_ENABLE_CUDA", "ON")) + cfg.write(cmake_cache_entry("CMAKE_CUDA_HOST_COMPILER", + env["SPACK_CXX"])) + else: + cfg.write(cmake_cache_entry("VTKm_ENABLE_CUDA", "OFF")) else: cfg.write("# vtk-h not built by spack \n") diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py index 5c662d40db..da3d7745f5 100644 --- a/var/spack/repos/builtin/packages/aspect/package.py +++ b/var/spack/repos/builtin/packages/aspect/package.py @@ -11,12 +11,13 @@ class Aspect(CMakePackage): Earth's mantle and elsewhere.""" homepage = "https://aspect.geodynamics.org" - url = "https://github.com/geodynamics/aspect/releases/download/v2.0.0/aspect-2.0.0.tar.gz" + url = "https://github.com/geodynamics/aspect/releases/download/v2.1.0/aspect-2.1.0.tar.gz" git = "https://github.com/geodynamics/aspect.git" maintainers = ['tjhei'] version('develop', branch='master') + version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3') version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165') version('2.0.0', sha256='d485c07f54248e824bdfa35f3eec8971b65e8b7114552ffa2c771bc0dede8cc0') @@ -35,5 +36,5 @@ class Aspect(CMakePackage): ('ON' if '+fpe' in self.spec else 'OFF') ] - def setup_environment(self, spack_env, run_env): - run_env.set('Aspect_DIR', self.prefix) + def setup_run_environment(self, env): + env.set('Aspect_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/aspell/darwin.patch b/var/spack/repos/builtin/packages/aspell/fix_cpp.patch index 54ec257637..54ec257637 100644 --- a/var/spack/repos/builtin/packages/aspell/darwin.patch +++ b/var/spack/repos/builtin/packages/aspell/fix_cpp.patch diff --git a/var/spack/repos/builtin/packages/aspell/package.py b/var/spack/repos/builtin/packages/aspell/package.py index 84a3f0ec71..97c81ceaf9 100644 --- a/var/spack/repos/builtin/packages/aspell/package.py +++ b/var/spack/repos/builtin/packages/aspell/package.py @@ -7,16 +7,16 @@ from spack import * # See also: AspellDictPackage -class Aspell(AutotoolsPackage): +class Aspell(AutotoolsPackage, GNUMirrorPackage): """GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell.""" homepage = "http://aspell.net/" - url = "https://ftpmirror.gnu.org/aspell/aspell-0.60.6.1.tar.gz" + gnu_mirror_path = "aspell/aspell-0.60.6.1.tar.gz" - extendable = True # support activating dictionaries + extendable = True # support activating dictionaries version('0.60.6.1', sha256='f52583a83a63633701c5f71db3dc40aab87b7f76b29723aeb27941eff42df6e1') - patch('darwin.patch', when='platform=darwin') + patch('fix_cpp.patch') patch('issue-519.patch', when='@:0.60.6.1') diff --git a/var/spack/repos/builtin/packages/aspell6-de/package.py b/var/spack/repos/builtin/packages/aspell6-de/package.py index d73a80c5c7..7066f777de 100644 --- a/var/spack/repos/builtin/packages/aspell6-de/package.py +++ b/var/spack/repos/builtin/packages/aspell6-de/package.py @@ -6,10 +6,10 @@ from spack import * -class Aspell6De(AspellDictPackage): +class Aspell6De(AspellDictPackage, GNUMirrorPackage): """German (de) dictionary for aspell.""" homepage = "http://aspell.net/" - url = "https://ftpmirror.gnu.org/aspell/dict/de/aspell6-de-20030222-1.tar.bz2" + gnu_mirror_path = "aspell/dict/de/aspell6-de-20030222-1.tar.bz2" version('6-de-20030222-1', sha256='ba6c94e11bc2e0e6e43ce0f7822c5bba5ca5ac77129ef90c190b33632416e906') diff --git a/var/spack/repos/builtin/packages/aspell6-en/package.py b/var/spack/repos/builtin/packages/aspell6-en/package.py index 5464c81141..1424bcacb0 100644 --- a/var/spack/repos/builtin/packages/aspell6-en/package.py +++ b/var/spack/repos/builtin/packages/aspell6-en/package.py @@ -6,10 +6,10 @@ from spack import * -class Aspell6En(AspellDictPackage): +class Aspell6En(AspellDictPackage, GNUMirrorPackage): """English (en) dictionary for aspell.""" homepage = "http://aspell.net/" - url = "https://ftpmirror.gnu.org/aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2" + gnu_mirror_path = "aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2" version('2017.01.22-0', sha256='93c73fae3eab5ea3ca6db3cea8770715a820f1b7d6ea2b932dd66a17f8fd55e1') diff --git a/var/spack/repos/builtin/packages/aspell6-es/package.py b/var/spack/repos/builtin/packages/aspell6-es/package.py index cf6892c80c..5b4db10a17 100644 --- a/var/spack/repos/builtin/packages/aspell6-es/package.py +++ b/var/spack/repos/builtin/packages/aspell6-es/package.py @@ -6,10 +6,10 @@ from spack import * -class Aspell6Es(AspellDictPackage): +class Aspell6Es(AspellDictPackage, GNUMirrorPackage): """Spanish (es) dictionary for aspell.""" homepage = "http://aspell.net/" - url = "https://ftpmirror.gnu.org/aspell/dict/es/aspell6-es-1.11-2.tar.bz2" + gnu_mirror_path = "aspell/dict/es/aspell6-es-1.11-2.tar.bz2" version('1.11-2', sha256='ad367fa1e7069c72eb7ae37e4d39c30a44d32a6aa73cedccbd0d06a69018afcc') diff --git a/var/spack/repos/builtin/packages/aspera-cli/package.py b/var/spack/repos/builtin/packages/aspera-cli/package.py index 00253a1973..228d653862 100644 --- a/var/spack/repos/builtin/packages/aspera-cli/package.py +++ b/var/spack/repos/builtin/packages/aspera-cli/package.py @@ -17,8 +17,8 @@ class AsperaCli(Package): url='https://download.asperasoft.com/download/sw/cli/3.7.7/aspera-cli-3.7.7.608.927cce8-linux-64-release.sh', expand=False) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.cli.bin) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.cli.bin) def install(self, spec, prefix): runfile = glob(join_path(self.stage.source_path, 'aspera-cli*.sh'))[0] diff --git a/var/spack/repos/builtin/packages/astral/package.py b/var/spack/repos/builtin/packages/astral/package.py index f3a110a1bd..696a807630 100644 --- a/var/spack/repos/builtin/packages/astral/package.py +++ b/var/spack/repos/builtin/packages/astral/package.py @@ -44,5 +44,5 @@ class Astral(Package): filter_file('astral.jar', join_path(prefix.tools, jar_file), script, **kwargs) - def setup_environment(self, spack_env, run_env): - run_env.set('ASTRAL_HOME', self.prefix.tools) + def setup_run_environment(self, env): + env.set('ASTRAL_HOME', self.prefix.tools) 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 97d582b18d..252bb3e2ff 100644 --- a/var/spack/repos/builtin/packages/at-spi2-core/package.py +++ b/var/spack/repos/builtin/packages/at-spi2-core/package.py @@ -35,6 +35,6 @@ class AtSpi2Core(MesonPackage): url = 'http://ftp.gnome.org/pub/gnome/sources/at-spi2-core' return url + '/%s/at-spi2-core-%s.tar.xz' % (version.up_to(2), version) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # this avoids an "import site" error in the build - spack_env.unset('PYTHONHOME') + env.unset('PYTHONHOME') diff --git a/var/spack/repos/builtin/packages/athena/package.py b/var/spack/repos/builtin/packages/athena/package.py index 504bd5b767..c9254cc491 100644 --- a/var/spack/repos/builtin/packages/athena/package.py +++ b/var/spack/repos/builtin/packages/athena/package.py @@ -146,23 +146,23 @@ class Athena(AutotoolsPackage): patch('missing-separator.patch') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('OPT', '-O3') + env.set('OPT', '-O3') if '+mpi' in spec: - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('LDR', spec['mpi'].mpicc) - spack_env.set('MPILIB', spec['mpi'].libs.ld_flags) - spack_env.set('MPIINC', spec['mpi'].headers.include_flags) + env.set('CC', spec['mpi'].mpicc) + env.set('LDR', spec['mpi'].mpicc) + env.set('MPILIB', spec['mpi'].libs.ld_flags) + env.set('MPIINC', spec['mpi'].headers.include_flags) else: - spack_env.set('CC', spack_cc) - spack_env.set('LDR', spack_cc) + env.set('CC', spack_cc) + env.set('LDR', spack_cc) if '+fft' in spec: - spack_env.set('FFTWLIB', spec['fftw'].libs.ld_flags) - spack_env.set('FFTWINC', spec['fftw'].headers.include_flags) + env.set('FFTWLIB', spec['fftw'].libs.ld_flags) + env.set('FFTWINC', spec['fftw'].headers.include_flags) def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index f3931e0ced..763d550ee9 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -35,11 +35,11 @@ class Atk(Package): url = 'http://ftp.gnome.org/pub/gnome/sources/atk' return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) + 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 install(self, spec, prefix): with working_dir('spack-build', create=True): diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py index 18b30d29d4..a99be82637 100644 --- a/var/spack/repos/builtin/packages/augustus/package.py +++ b/var/spack/repos/builtin/packages/augustus/package.py @@ -16,7 +16,7 @@ class Augustus(MakefilePackage): # Releases have moved to github version('3.3.2', sha256='d09f972cfd88deb34b19b69878eb8af3bbbe4f1cde1434b69cedc2aa6247a0f2') - version('3.3.1', sha256='011379606f381ee21b9716f83e8a1a57b2aaa01aefeebd2748104efa08c47cab', + 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') @@ -34,6 +34,31 @@ class Augustus(MakefilePackage): depends_on('curl', when='@3.3.1:') def edit(self, spec, prefix): + # Set compile commands for each compiler and + # Fix for using 'boost' on Spack. (only after ver.3.3.1-tag1) + if self.version >= Version('3.3.1-tag1'): + with working_dir(join_path('auxprogs', 'utrrnaseq', 'Debug')): + filter_file('g++', spack_cxx, 'makefile', string=True) + filter_file('g++ -I/usr/include/boost', '{0} -I{1}' + .format(spack_cxx, + self.spec['boost'].prefix.include), + 'src/subdir.mk', string=True) + + # Set compile commands to all makefiles. + 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' + ] + for makefile in makefiles: + filter_file('gcc', spack_cc, makefile, string=True) + filter_file('g++', spack_cxx, makefile, string=True) + with working_dir(join_path('auxprogs', 'filterBam', 'src')): makefile = FileFilter('Makefile') makefile.filter('BAMTOOLS = .*', 'BAMTOOLS = %s' % self.spec[ @@ -98,7 +123,7 @@ class Augustus(MakefilePackage): for file in files: filter_file(pattern, repl, *files, backup=False) - def setup_environment(self, spack_env, run_env): - run_env.set('AUGUSTUS_CONFIG_PATH', join_path( + def setup_run_environment(self, env): + env.set('AUGUSTUS_CONFIG_PATH', join_path( self.prefix, 'config')) - run_env.prepend_path('PATH', join_path(self.prefix, 'scripts')) + env.prepend_path('PATH', join_path(self.prefix, 'scripts')) diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py index 29a4a7cbbe..08fe601919 100644 --- a/var/spack/repos/builtin/packages/autoconf/package.py +++ b/var/spack/repos/builtin/packages/autoconf/package.py @@ -6,11 +6,11 @@ from spack import * -class Autoconf(AutotoolsPackage): +class Autoconf(AutotoolsPackage, GNUMirrorPackage): """Autoconf -- system configuration part of autotools""" homepage = 'https://www.gnu.org/software/autoconf/' - url = 'https://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz' + gnu_mirror_path = 'autoconf/autoconf-2.69.tar.gz' version('2.69', sha256='954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969') version('2.62', sha256='83aa747e6443def0ebd1882509c53f5a2133f502ddefa21b3de141c433914bdd') diff --git a/var/spack/repos/builtin/packages/autofact/package.py b/var/spack/repos/builtin/packages/autofact/package.py index a22af26671..44bb89bff1 100644 --- a/var/spack/repos/builtin/packages/autofact/package.py +++ b/var/spack/repos/builtin/packages/autofact/package.py @@ -16,9 +16,9 @@ class Autofact(Package): version('3_4', sha256='1465d263b19adb42f01f6e636ac40ef1c2e3dbd63461f977b89da9493fe9c6f4') depends_on('perl', type='run') - depends_on('perl-bio-perl', type='run') + depends_on('perl-bioperl', type='run') depends_on('perl-io-string', type='run') - depends_on('perl-lwp', type='run') + depends_on('perl-libwww-perl', type='run') depends_on('blast-legacy', type='run') def patch(self): @@ -31,6 +31,6 @@ class Autofact(Package): def install(self, spec, prefix): install_tree(self.stage.source_path, prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.scripts) - run_env.set('PATH2AUTOFACT', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.scripts) + env.set('PATH2AUTOFACT', self.prefix) diff --git a/var/spack/repos/builtin/packages/autogen/package.py b/var/spack/repos/builtin/packages/autogen/package.py index de3e2e0dfd..42d6233819 100644 --- a/var/spack/repos/builtin/packages/autogen/package.py +++ b/var/spack/repos/builtin/packages/autogen/package.py @@ -6,14 +6,14 @@ from spack import * -class Autogen(AutotoolsPackage): +class Autogen(AutotoolsPackage, GNUMirrorPackage): """AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. It is especially valuable in programs that have several blocks of text that must be kept synchronized.""" homepage = "https://www.gnu.org/software/autogen/index.html" - url = "https://ftpmirror.gnu.org/autogen/rel5.18.12/autogen-5.18.12.tar.gz" + gnu_mirror_path = "autogen/rel5.18.12/autogen-5.18.12.tar.gz" list_url = "https://ftp.gnu.org/gnu/autogen" list_depth = 1 diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py index 4c460d8dde..ea91c2130e 100644 --- a/var/spack/repos/builtin/packages/automake/package.py +++ b/var/spack/repos/builtin/packages/automake/package.py @@ -6,11 +6,11 @@ from spack import * -class Automake(AutotoolsPackage): +class Automake(AutotoolsPackage, GNUMirrorPackage): """Automake -- make file builder part of autotools""" homepage = 'http://www.gnu.org/software/automake/' - url = 'https://ftpmirror.gnu.org/automake/automake-1.15.tar.gz' + gnu_mirror_path = 'automake/automake-1.15.tar.gz' version('1.16.1', sha256='608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8') version('1.15.1', sha256='988e32527abe052307d21c8ca000aa238b914df363a617e38f4fb89f5abf6260') diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py new file mode 100644 index 0000000000..93a8c06cc1 --- /dev/null +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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.5.0.tar.gz" + + version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-boto3@1.10.15:', type=('build', 'run')) + depends_on('py-future@0.16.0:0.18.2', type=('build', 'run')) + depends_on('py-tabulate@0.8.2:0.8.3', type=('build', 'run')) + depends_on('py-ipaddress@1.0.22:', type=('build', 'run')) + depends_on('py-enum34@1.1.6:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-pyyaml@5.1.2:', type=('build', 'run')) + depends_on('py-configparser@3.5.0:3.8.1', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/awscli/package.py b/var/spack/repos/builtin/packages/awscli/package.py index e502184382..8befa8ddc0 100644 --- a/var/spack/repos/builtin/packages/awscli/package.py +++ b/var/spack/repos/builtin/packages/awscli/package.py @@ -12,21 +12,21 @@ class Awscli(PythonPackage): Amazon Web Services""" homepage = "https://pypi.org/project/awscli/" - url = "https://pypi.io/packages/source/a/awscli/awscli-1.16.179.tar.gz" + url = "https://pypi.io/packages/source/a/awscli/awscli-1.16.308.tar.gz" + version('1.16.308', sha256='3632fb1db2538128509a7b5e89f2a2c4ea3426bec139944247bddc4d79bf7603') version('1.16.179', sha256='6a87114d1325358d000abe22b2103baae7b91f053ff245b9fde33cb0affb5e4f') depends_on('py-setuptools', type='build') - depends_on('py-docutils@0.10:', type=('build', 'run')) - depends_on('py-colorama@0.2.5:0.3.9', type=('build', 'run')) + depends_on('py-botocore@1.13.44', when='@1.16.308', type=('build', 'run')) + depends_on('py-botocore@1.12.169', when='@1.16.179', type=('build', 'run')) + depends_on('py-docutils@0.10:0.15', type=('build', 'run')) depends_on('py-rsa@3.1.2:3.5.0', type=('build', 'run')) - depends_on('py-pyyaml@3.10:3.13', type=('build', 'run'), - when='^python@2.6:2.6.99') - depends_on('py-pyyaml@3.10:5.1', type=('build', 'run'), - when='^python@2.7:') - depends_on('py-argparse@1.1:', when='^python@2.6:2.6.99', - type=('build', 'run')) depends_on('py-s3transfer@0.2.0:0.2.999', type=('build', 'run')) - depends_on('py-botocore@1.12.169', type=('build', 'run')) + depends_on('py-argparse@1.1:', when='^python@:2.6', type=('build', 'run')) + depends_on('py-pyyaml@3.10:3.13', when='^python@:2.6,3.0:3.3', type=('build', 'run')) + depends_on('py-pyyaml@3.10:5.2', when='^python@3.4:', type=('build', 'run')) + depends_on('py-colorama@0.2.5:0.3.9', when='^python@:2.6,3.0:3.3', type=('build', 'run')) + depends_on('py-colorama@0.2.5:0.4.1', when='^python@3.4:', type=('build', 'run')) depends_on('py-nose', type='test') depends_on('py-mock@1.3.0:', type='test') diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py index a524ca0643..85b5e0873d 100644 --- a/var/spack/repos/builtin/packages/axl/package.py +++ b/var/spack/repos/builtin/packages/axl/package.py @@ -20,7 +20,7 @@ class Axl(CMakePackage): """Asynchronous transfer library""" homepage = "https://github.com/ECP-VeloC/AXL" - url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.0.zip" + url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.1.zip" git = "https://github.com/ecp-veloc/axl.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/bam-readcount/package.py b/var/spack/repos/builtin/packages/bam-readcount/package.py new file mode 100644 index 0000000000..9304f5fccf --- /dev/null +++ b/var/spack/repos/builtin/packages/bam-readcount/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class BamReadcount(CMakePackage): + """Bam-readcount generates metrics at single nucleotide positions.""" + + homepage = "https://github.com/genome/bam-readcount" + url = "https://github.com/genome/bam-readcount/archive/v0.8.0.tar.gz" + + version('0.8.0', sha256='4f4dd558e3c6bfb24d6a57ec441568f7524be6639b24f13ea6f2bb350c7ea65f') diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py index 906e98ee5d..061054d59e 100644 --- a/var/spack/repos/builtin/packages/bash/package.py +++ b/var/spack/repos/builtin/packages/bash/package.py @@ -6,11 +6,11 @@ from spack import * -class Bash(AutotoolsPackage): +class Bash(AutotoolsPackage, GNUMirrorPackage): """The GNU Project's Bourne Again SHell.""" homepage = "https://www.gnu.org/software/bash/" - url = "https://ftpmirror.gnu.org/bash/bash-4.4.tar.gz" + gnu_mirror_path = "bash/bash-4.4.tar.gz" version('5.0', sha256='b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d') version('4.4.12', sha256='57d8432be54541531a496fd4904fdc08c12542f43605a9202594fa5d5f9f2331') @@ -35,6 +35,7 @@ class Bash(AutotoolsPackage): ('5.0', '011', '2c4de332b91eaf797abbbd6c79709690b5cbd48b12e8dfe748096dbd7bf474ea'), ] + # TODO: patches below are not managed by the GNUMirrorPackage base class for ver, num, checksum in patches: ver = Version(ver) patch('https://ftpmirror.gnu.org/bash/bash-{0}-patches/bash{1}-{2}'.format(ver, ver.joined, num), diff --git a/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch b/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch new file mode 100644 index 0000000000..e6a974a98a --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/bazelconfiguration-0.3.patch @@ -0,0 +1,16 @@ +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java +@@ -150,6 +150,13 @@ + builder.put("PATH", null); + builder.put("LD_LIBRARY_PATH", null); + } ++ ++ Map<String, String> spackEnv = System.getenv(); ++ for (String envName : spackEnv.keySet()) { ++ if (envName.startsWith("SPACK_")) { ++ builder.put(envName, spackEnv.get(envName)); ++ } ++ } + } + + private static PathFragment determineShellExecutable(OS os, PathFragment fromOption) { diff --git a/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch b/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch new file mode 100644 index 0000000000..b0aebdf359 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.14.patch @@ -0,0 +1,16 @@ +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +@@ -168,6 +168,13 @@ public class BazelRuleClassProvider { + env.put("PATH", null); + } + ++ Map<String, String> spackEnv = System.getenv(); ++ for (String envName : spackEnv.keySet()) { ++ if (envName.startsWith("SPACK_")) { ++ env.put(envName, spackEnv.get(envName)); ++ } ++ } ++ + // Shell environment variables specified via options take precedence over the + // ones inherited from the fragments. In the long run, these fragments will + // be replaced by appropriate default rc files anyway. diff --git a/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.25.patch b/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.25.patch new file mode 100644 index 0000000000..0d68cd98d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/bazelruleclassprovider-0.25.patch @@ -0,0 +1,16 @@ +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +@@ -181,6 +181,13 @@ public class BazelRuleClassProvider { + env.put("PATH", null); + } + ++ Map<String, String> spackEnv = System.getenv(); ++ for (String envName : spackEnv.keySet()) { ++ if (envName.startsWith("SPACK_")) { ++ env.put(envName, spackEnv.get(envName)); ++ } ++ } ++ + // Shell environment variables specified via options take precedence over the + // ones inherited from the fragments. In the long run, these fragments will + // be replaced by appropriate default rc files anyway. diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure.patch b/var/spack/repos/builtin/packages/bazel/cc_configure-0.3.0.patch index 3e108c3b5e..79e12269a6 100644 --- a/var/spack/repos/builtin/packages/bazel/cc_configure.patch +++ b/var/spack/repos/builtin/packages/bazel/cc_configure-0.3.0.patch @@ -1,6 +1,6 @@ ---- bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 14:00:32.118358387 +0200 -+++ bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 13:52:45.342610147 +0200 -@@ -173,8 +173,23 @@ +--- a/tools/cpp/cc_configure.bzl ++++ b/tools/cpp/cc_configure.bzl +@@ -173,8 +173,19 @@ else: inc_dirs = result.stderr[index1 + 1:index2].strip() @@ -12,12 +12,8 @@ + ] + + env = repository_ctx.os.environ -+ if "SPACK_DEPENDENCIES" in env: -+ for dep in env["SPACK_DEPENDENCIES"].split(":"): -+ path = dep + "/include" -+ # path = repository_ctx.os.path.join(dep, "include") -+ # if not repository_ctx.os.path.exists(path): -+ # continue ++ if "SPACK_INCLUDE_DIRS" in env: ++ for path in env["SPACK_INCLUDE_DIRS"].split(":"): + default_inc_directories.append( + repository_ctx.path(_cxx_inc_convert(path)) + ) diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch b/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch new file mode 100644 index 0000000000..470986bec6 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/cc_configure-0.5.0.patch @@ -0,0 +1,24 @@ +--- a/tools/cpp/cc_configure.bzl ++++ b/tools/cpp/cc_configure.bzl +@@ -200,8 +200,19 @@ + else: + inc_dirs = result.stderr[index1 + 1:index2].strip() + +- return [_escape_string(repository_ctx.path(_cxx_inc_convert(p))) +- for p in inc_dirs.split("\n")] ++ default_inc_directories = [ ++ _escape_string(repository_ctx.path(_cxx_inc_convert(p))) ++ for p in inc_dirs.split("\n") ++ ] ++ ++ env = repository_ctx.os.environ ++ if "SPACK_INCLUDE_DIRS" in env: ++ for path in env["SPACK_INCLUDE_DIRS"].split(":"): ++ default_inc_directories.append( ++ repository_ctx.path(_cxx_inc_convert(path)) ++ ) ++ ++ return default_inc_directories + + + def _add_option_if_supported(repository_ctx, cc, option): diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.13.patch b/var/spack/repos/builtin/packages/bazel/compile-0.13.patch new file mode 100644 index 0000000000..13c82e7631 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.13.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -92,7 +92,7 @@ + log "Building output/bazel" + # We set host and target platform directly since the defaults in @bazel_tools + # have not yet been generated. +-bazel_build "src:bazel${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \ + --host_platform=@bazel_tools//platforms:host_platform \ + --platforms=@bazel_tools//platforms:target_platform \ + || fail "Could not build Bazel" diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.16.patch b/var/spack/repos/builtin/packages/bazel/compile-0.16.patch new file mode 100644 index 0000000000..f61f521a15 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.16.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -92,7 +92,7 @@ display "." + log "Building output/bazel" + # We set host and target platform directly since the defaults in @bazel_tools + # have not yet been generated. +-bazel_build "src:bazel_nojdk${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \ + --host_platform=@bazel_tools//platforms:host_platform \ + --platforms=@bazel_tools//platforms:target_platform \ + || fail "Could not build Bazel" diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.21.patch b/var/spack/repos/builtin/packages/bazel/compile-0.21.patch new file mode 100644 index 0000000000..d666a0f055 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.21.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -92,7 +92,7 @@ display "." + log "Building output/bazel" + # We set host and target platform directly since the defaults in @bazel_tools + # have not yet been generated. +-bazel_build "src:bazel_nojdk${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \ + --action_env=PATH \ + --host_platform=@bazel_tools//platforms:host_platform \ + --platforms=@bazel_tools//platforms:target_platform \ diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.29.patch b/var/spack/repos/builtin/packages/bazel/compile-0.29.patch new file mode 100644 index 0000000000..6cb2eb0b57 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.29.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -63,7 +63,7 @@ + log "Building output/bazel" + # We set host and target platform directly because we are building for the local + # host. +-bazel_build "src:bazel_nojdk${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel_nojdk${EXE_EXT}" \ + --action_env=PATH \ + --host_platform=@local_config_platform//:host \ + --platforms=@local_config_platform//:host \ diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.3.patch b/var/spack/repos/builtin/packages/bazel/compile-0.3.patch new file mode 100644 index 0000000000..82db6efb6e --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.3.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -99,7 +99,7 @@ + new_step 'Building Bazel with Bazel' + display "." + log "Building output/bazel" +- bazel_build "src:bazel${EXE_EXT}" ++ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" + cp -f "bazel-bin/src/bazel${EXE_EXT}" "output/bazel${EXE_EXT}" + chmod 0755 "output/bazel${EXE_EXT}" + BAZEL="$(pwd)/output/bazel${EXE_EXT}" diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.4.patch b/var/spack/repos/builtin/packages/bazel/compile-0.4.patch new file mode 100644 index 0000000000..80eab26a88 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.4.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -124,7 +124,7 @@ + new_step 'Building Bazel with Bazel' + display "." + log "Building output/bazel" +- bazel_build "src:bazel${EXE_EXT}" \ ++ CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \ + || fail "Could not build Bazel" + bazel_bin_path="$(get_bazel_bin_path)/src/bazel${EXE_EXT}" + [ -e "$bazel_bin_path" ] \ diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.6.patch b/var/spack/repos/builtin/packages/bazel/compile-0.6.patch new file mode 100644 index 0000000000..64eb408e5d --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.6.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -85,7 +85,7 @@ + log "Building output/bazel" + # We set host and target platform directly since the defaults in @bazel_tools + # have not yet been generated. +-bazel_build "src:bazel${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \ + --experimental_host_platform=//tools/platforms:host_platform \ + --experimental_platforms=//tools/platforms:target_platform \ + || fail "Could not build Bazel" diff --git a/var/spack/repos/builtin/packages/bazel/compile-0.9.patch b/var/spack/repos/builtin/packages/bazel/compile-0.9.patch new file mode 100644 index 0000000000..135de3a00f --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/compile-0.9.patch @@ -0,0 +1,11 @@ +--- a/compile.sh ++++ b/compile.sh +@@ -92,7 +92,7 @@ + log "Building output/bazel" + # We set host and target platform directly since the defaults in @bazel_tools + # have not yet been generated. +-bazel_build "src:bazel${EXE_EXT}" \ ++CC=$SPACK_CC CXX=$SPACK_CXX bazel_build "src:bazel${EXE_EXT}" \ + --host_platform=//tools/platforms:host_platform \ + --platforms=//tools/platforms:target_platform \ + || fail "Could not build Bazel" diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.13.0.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.13.0.patch deleted file mode 100644 index 31b4cf1a8e..0000000000 --- a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.13.0.patch +++ /dev/null @@ -1,129 +0,0 @@ ---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig 2018-05-23 12:11:29.319402761 +0200 -+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2018-05-23 12:35:21.817904301 +0200 -@@ -150,6 +150,126 @@ - builder.put("PATH", null); - builder.put("LD_LIBRARY_PATH", null); - } -+ -+ String spack_prefix = System.getenv("SPACK_PREFIX"); -+ if (spack_prefix != null) { -+ builder.put("SPACK_PREFIX", spack_prefix); -+ } -+ -+ String spack_env_path = System.getenv("SPACK_ENV_PATH"); -+ if (spack_env_path != null) { -+ builder.put("SPACK_ENV_PATH", spack_env_path); -+ } -+ -+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID"); -+ if (spack_debug_log_id != null) { -+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id); -+ } -+ -+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); -+ if (spack_debug_log_dir != null) { -+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); -+ } -+ -+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); -+ if (spack_compiler_spec != null) { -+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec); -+ } -+ -+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); -+ if (spack_cc_rpath_arg != null) { -+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); -+ } -+ -+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); -+ if (spack_cxx_rpath_arg != null) { -+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); -+ } -+ -+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); -+ if (spack_f77_rpath_arg != null) { -+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); -+ } -+ -+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); -+ if (spack_fc_rpath_arg != null) { -+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); -+ } -+ -+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); -+ if (spack_short_spec != null) { -+ builder.put("SPACK_SHORT_SPEC", spack_short_spec); -+ } -+ -+ String spack_system_dirs = System.getenv("SPACK_SYSTEM_DIRS"); -+ if (spack_system_dirs != null) { -+ builder.put("SPACK_SYSTEM_DIRS", spack_system_dirs); -+ } -+ -+ String spack_cc = System.getenv("SPACK_CC"); -+ if (spack_cc != null) { -+ builder.put("SPACK_CC", spack_cc); -+ } -+ -+ String spack_cxx = System.getenv("SPACK_CXX"); -+ if (spack_cxx != null) { -+ builder.put("SPACK_CXX", spack_cxx); -+ } -+ -+ String spack_f77 = System.getenv("SPACK_F77"); -+ if (spack_f77 != null) { -+ builder.put("SPACK_F77", spack_f77); -+ } -+ -+ String spack_fc = System.getenv("SPACK_FC"); -+ if (spack_fc != null) { -+ builder.put("SPACK_FC", spack_fc); -+ } -+ -+ String spack_cflags = System.getenv("SPACK_CFLAGS"); -+ if (spack_cflags != null) { -+ builder.put("SPACK_CFLAGS", spack_cflags); -+ } -+ -+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); -+ if (spack_cxxflags != null) { -+ builder.put("SPACK_CXXFLAGS", spack_cxxflags); -+ } -+ -+ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); -+ if (spack_fcflags != null) { -+ builder.put("SPACK_FCFLAGS", spack_fcflags); -+ } -+ -+ String spack_fflags = System.getenv("SPACK_FFLAGS"); -+ if (spack_fflags != null) { -+ builder.put("SPACK_FFLAGS", spack_fflags); -+ } -+ -+ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); -+ if (spack_ldflags != null) { -+ builder.put("SPACK_LDFLAGS", spack_ldflags); -+ } -+ -+ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); -+ if (spack_ldlibs != null) { -+ builder.put("SPACK_LDLIBS", spack_ldlibs); -+ } -+ -+ String spack_debug = System.getenv("SPACK_DEBUG"); -+ if (spack_debug != null) { -+ builder.put("SPACK_DEBUG", spack_debug); -+ } -+ -+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); -+ if (spack_test_command != null) { -+ builder.put("SPACK_TEST_COMMAND", spack_test_command); -+ } -+ -+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); -+ if (spack_dependencies != null) { -+ builder.put("SPACK_DEPENDENCIES", spack_dependencies); -+ } - } - - private static PathFragment determineShellExecutable(OS os, PathFragment fromOption) { diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.17.2.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.17.2.patch deleted file mode 100644 index 89537387a6..0000000000 --- a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.17.2.patch +++ /dev/null @@ -1,131 +0,0 @@ -diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java -index 72c40ac..2e73530 100755 ---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java -+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java -@@ -168,6 +168,126 @@ public class BazelRuleClassProvider { - env.put("PATH", null); - } - -+ String spack_prefix = System.getenv("SPACK_PREFIX"); -+ if (spack_prefix != null) { -+ env.put("SPACK_PREFIX", spack_prefix); -+ } -+ -+ String spack_env_path = System.getenv("SPACK_ENV_PATH"); -+ if (spack_env_path != null) { -+ env.put("SPACK_ENV_PATH", spack_env_path); -+ } -+ -+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID"); -+ if (spack_debug_log_id != null) { -+ env.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id); -+ } -+ -+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); -+ if (spack_debug_log_dir != null) { -+ env.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); -+ } -+ -+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); -+ if (spack_compiler_spec != null) { -+ env.put("SPACK_COMPILER_SPEC", spack_compiler_spec); -+ } -+ -+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); -+ if (spack_cc_rpath_arg != null) { -+ env.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); -+ } -+ -+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); -+ if (spack_cxx_rpath_arg != null) { -+ env.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); -+ } -+ -+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); -+ if (spack_f77_rpath_arg != null) { -+ env.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); -+ } -+ -+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); -+ if (spack_fc_rpath_arg != null) { -+ env.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); -+ } -+ -+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); -+ if (spack_short_spec != null) { -+ env.put("SPACK_SHORT_SPEC", spack_short_spec); -+ } -+ -+ String spack_system_dirs = System.getenv("SPACK_SYSTEM_DIRS"); -+ if (spack_system_dirs != null) { -+ env.put("SPACK_SYSTEM_DIRS", spack_system_dirs); -+ } -+ -+ String spack_cc = System.getenv("SPACK_CC"); -+ if (spack_cc != null) { -+ env.put("SPACK_CC", spack_cc); -+ } -+ -+ String spack_cxx = System.getenv("SPACK_CXX"); -+ if (spack_cxx != null) { -+ env.put("SPACK_CXX", spack_cxx); -+ } -+ -+ String spack_f77 = System.getenv("SPACK_F77"); -+ if (spack_f77 != null) { -+ env.put("SPACK_F77", spack_f77); -+ } -+ -+ String spack_fc = System.getenv("SPACK_FC"); -+ if (spack_fc != null) { -+ env.put("SPACK_FC", spack_fc); -+ } -+ -+ String spack_cflags = System.getenv("SPACK_CFLAGS"); -+ if (spack_cflags != null) { -+ env.put("SPACK_CFLAGS", spack_cflags); -+ } -+ -+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); -+ if (spack_cxxflags != null) { -+ env.put("SPACK_CXXFLAGS", spack_cxxflags); -+ } -+ -+ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); -+ if (spack_fcflags != null) { -+ env.put("SPACK_FCFLAGS", spack_fcflags); -+ } -+ -+ String spack_fflags = System.getenv("SPACK_FFLAGS"); -+ if (spack_fflags != null) { -+ env.put("SPACK_FFLAGS", spack_fflags); -+ } -+ -+ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); -+ if (spack_ldflags != null) { -+ env.put("SPACK_LDFLAGS", spack_ldflags); -+ } -+ -+ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); -+ if (spack_ldlibs != null) { -+ env.put("SPACK_LDLIBS", spack_ldlibs); -+ } -+ -+ String spack_debug = System.getenv("SPACK_DEBUG"); -+ if (spack_debug != null) { -+ env.put("SPACK_DEBUG", spack_debug); -+ } -+ -+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); -+ if (spack_test_command != null) { -+ env.put("SPACK_TEST_COMMAND", spack_test_command); -+ } -+ -+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); -+ if (spack_dependencies != null) { -+ env.put("SPACK_DEPENDENCIES", spack_dependencies); -+ } -+ - // Shell environment variables specified via options take precedence over the - // ones inherited from the fragments. In the long run, these fragments will - // be replaced by appropriate default rc files anyway. diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.9.0.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.9.0.patch deleted file mode 100644 index 323748377f..0000000000 --- a/var/spack/repos/builtin/packages/bazel/fix_env_handling-0.9.0.patch +++ /dev/null @@ -1,126 +0,0 @@ -diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig b/home/jtang/spack/var/spack/stage/bazel-0.9.0-xcsfcyrpdn3df755cwpk4sxtfwjdv4ub/spack-expanded-archive/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java -index f1a7a1f..32cd181 100755 ---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java.orig -+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java -@@ -154,6 +154,121 @@ public class BazelConfiguration extends Fragment { - if (tmpdir != null) { - builder.put("TMPDIR", tmpdir); - } -+ -+ String spack_prefix = System.getenv("SPACK_PREFIX"); -+ if (spack_prefix != null) { -+ builder.put("SPACK_PREFIX", spack_prefix); -+ } -+ -+ String spack_env_path = System.getenv("SPACK_ENV_PATH"); -+ if (spack_env_path != null) { -+ builder.put("SPACK_ENV_PATH", spack_env_path); -+ } -+ -+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID"); -+ if (spack_debug_log_id != null) { -+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id); -+ } -+ -+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); -+ if (spack_debug_log_dir != null) { -+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); -+ } -+ -+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); -+ if (spack_compiler_spec != null) { -+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec); -+ } -+ -+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); -+ if (spack_cc_rpath_arg != null) { -+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); -+ } -+ -+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); -+ if (spack_cxx_rpath_arg != null) { -+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); -+ } -+ -+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); -+ if (spack_f77_rpath_arg != null) { -+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); -+ } -+ -+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); -+ if (spack_fc_rpath_arg != null) { -+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); -+ } -+ -+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); -+ if (spack_short_spec != null) { -+ builder.put("SPACK_SHORT_SPEC", spack_short_spec); -+ } -+ -+ String spack_cc = System.getenv("SPACK_CC"); -+ if (spack_cc != null) { -+ builder.put("SPACK_CC", spack_cc); -+ } -+ -+ String spack_cxx = System.getenv("SPACK_CXX"); -+ if (spack_cxx != null) { -+ builder.put("SPACK_CXX", spack_cxx); -+ } -+ -+ String spack_f77 = System.getenv("SPACK_F77"); -+ if (spack_f77 != null) { -+ builder.put("SPACK_F77", spack_f77); -+ } -+ -+ String spack_fc = System.getenv("SPACK_FC"); -+ if (spack_fc != null) { -+ builder.put("SPACK_FC", spack_fc); -+ } -+ -+ String spack_cflags = System.getenv("SPACK_CFLAGS"); -+ if (spack_cflags != null) { -+ builder.put("SPACK_CFLAGS", spack_cflags); -+ } -+ -+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); -+ if (spack_cxxflags != null) { -+ builder.put("SPACK_CXXFLAGS", spack_cxxflags); -+ } -+ -+ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); -+ if (spack_fcflags != null) { -+ builder.put("SPACK_FCFLAGS", spack_fcflags); -+ } -+ -+ String spack_fflags = System.getenv("SPACK_FFLAGS"); -+ if (spack_fflags != null) { -+ builder.put("SPACK_FFLAGS", spack_fflags); -+ } -+ -+ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); -+ if (spack_ldflags != null) { -+ builder.put("SPACK_LDFLAGS", spack_ldflags); -+ } -+ -+ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); -+ if (spack_ldlibs != null) { -+ builder.put("SPACK_LDLIBS", spack_ldlibs); -+ } -+ -+ String spack_debug = System.getenv("SPACK_DEBUG"); -+ if (spack_debug != null) { -+ builder.put("SPACK_DEBUG", spack_debug); -+ } -+ -+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); -+ if (spack_test_command != null) { -+ builder.put("SPACK_TEST_COMMAND", spack_test_command); -+ } -+ -+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); -+ if (spack_dependencies != null) { -+ builder.put("SPACK_DEPENDENCIES", spack_dependencies); -+ } - } - } - diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch deleted file mode 100644 index 14deccf950..0000000000 --- a/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch +++ /dev/null @@ -1,124 +0,0 @@ -diff -pu bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java ---- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 11:56:01.565756979 +0200 -+++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 12:04:13.292839801 +0200 -@@ -92,5 +92,120 @@ public class BazelConfiguration extends - if (tmpdir != null) { - builder.put("TMPDIR", tmpdir); - } -+ -+ String spack_prefix = System.getenv("SPACK_PREFIX"); -+ if (spack_prefix != null) { -+ builder.put("SPACK_PREFIX", spack_prefix); -+ } -+ -+ String spack_env_path = System.getenv("SPACK_ENV_PATH"); -+ if (spack_env_path != null) { -+ builder.put("SPACK_ENV_PATH", spack_env_path); -+ } -+ -+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID"); -+ if (spack_debug_log_id != null) { -+ builder.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id); -+ } -+ -+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); -+ if (spack_debug_log_dir != null) { -+ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); -+ } -+ -+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); -+ if (spack_compiler_spec != null) { -+ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec); -+ } -+ -+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); -+ if (spack_cc_rpath_arg != null) { -+ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); -+ } -+ -+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); -+ if (spack_cxx_rpath_arg != null) { -+ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); -+ } -+ -+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); -+ if (spack_f77_rpath_arg != null) { -+ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); -+ } -+ -+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); -+ if (spack_fc_rpath_arg != null) { -+ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); -+ } -+ -+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); -+ if (spack_short_spec != null) { -+ builder.put("SPACK_SHORT_SPEC", spack_short_spec); -+ } -+ -+ String spack_cc = System.getenv("SPACK_CC"); -+ if (spack_cc != null) { -+ builder.put("SPACK_CC", spack_cc); -+ } -+ -+ String spack_cxx = System.getenv("SPACK_CXX"); -+ if (spack_cxx != null) { -+ builder.put("SPACK_CXX", spack_cxx); -+ } -+ -+ String spack_f77 = System.getenv("SPACK_F77"); -+ if (spack_f77 != null) { -+ builder.put("SPACK_F77", spack_f77); -+ } -+ -+ String spack_fc = System.getenv("SPACK_FC"); -+ if (spack_fc != null) { -+ builder.put("SPACK_FC", spack_fc); -+ } -+ -+ String spack_cflags = System.getenv("SPACK_CFLAGS"); -+ if (spack_cflags != null) { -+ builder.put("SPACK_CFLAGS", spack_cflags); -+ } -+ -+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); -+ if (spack_cxxflags != null) { -+ builder.put("SPACK_CXXFLAGS", spack_cxxflags); -+ } -+ -+ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); -+ if (spack_fcflags != null) { -+ builder.put("SPACK_FCFLAGS", spack_fcflags); -+ } -+ -+ String spack_fflags = System.getenv("SPACK_FFLAGS"); -+ if (spack_fflags != null) { -+ builder.put("SPACK_FFLAGS", spack_fflags); -+ } -+ -+ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); -+ if (spack_ldflags != null) { -+ builder.put("SPACK_LDFLAGS", spack_ldflags); -+ } -+ -+ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); -+ if (spack_ldlibs != null) { -+ builder.put("SPACK_LDLIBS", spack_ldlibs); -+ } -+ -+ String spack_debug = System.getenv("SPACK_DEBUG"); -+ if (spack_debug != null) { -+ builder.put("SPACK_DEBUG", spack_debug); -+ } -+ -+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); -+ if (spack_test_command != null) { -+ builder.put("SPACK_TEST_COMMAND", spack_test_command); -+ } -+ -+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); -+ if (spack_dependencies != null) { -+ builder.put("SPACK_DEPENDENCIES", spack_dependencies); -+ } - } - } diff --git a/var/spack/repos/builtin/packages/bazel/link.patch b/var/spack/repos/builtin/packages/bazel/link.patch deleted file mode 100644 index 5c8824b87d..0000000000 --- a/var/spack/repos/builtin/packages/bazel/link.patch +++ /dev/null @@ -1,138 +0,0 @@ ---- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-07-29 10:22:16.000000000 +0200 -+++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-10-13 15:21:35.036617890 +0200 -@@ -214,6 +214,135 @@ - .getParentDirectory() - .getPathString()); - } -+ -+ String path = System.getenv("PATH"); -+ result.put("PATH", path == null ? "/bin:/usr/bin" : path); -+ -+ String ldLibraryPath = System.getenv("LD_LIBRARY_PATH"); -+ if (ldLibraryPath != null) { -+ result.put("LD_LIBRARY_PATH", ldLibraryPath); -+ } -+ -+ String tmpdir = System.getenv("TMPDIR"); -+ if (tmpdir != null) { -+ result.put("TMPDIR", tmpdir); -+ } -+ -+ String spack_prefix = System.getenv("SPACK_PREFIX"); -+ if (spack_prefix != null) { -+ result.put("SPACK_PREFIX", spack_prefix); -+ } -+ -+ String spack_env_path = System.getenv("SPACK_ENV_PATH"); -+ if (spack_env_path != null) { -+ result.put("SPACK_ENV_PATH", spack_env_path); -+ } -+ -+ String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID"); -+ if (spack_debug_log_id != null) { -+ result.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id); -+ } -+ -+ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); -+ if (spack_debug_log_dir != null) { -+ result.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); -+ } -+ -+ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); -+ if (spack_compiler_spec != null) { -+ result.put("SPACK_COMPILER_SPEC", spack_compiler_spec); -+ } -+ -+ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); -+ if (spack_cc_rpath_arg != null) { -+ result.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); -+ } -+ -+ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); -+ if (spack_cxx_rpath_arg != null) { -+ result.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); -+ } -+ -+ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); -+ if (spack_f77_rpath_arg != null) { -+ result.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); -+ } -+ -+ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); -+ if (spack_fc_rpath_arg != null) { -+ result.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); -+ } -+ -+ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); -+ if (spack_short_spec != null) { -+ result.put("SPACK_SHORT_SPEC", spack_short_spec); -+ } -+ -+ String spack_cc = System.getenv("SPACK_CC"); -+ if (spack_cc != null) { -+ result.put("SPACK_CC", spack_cc); -+ } -+ -+ String spack_cxx = System.getenv("SPACK_CXX"); -+ if (spack_cxx != null) { -+ result.put("SPACK_CXX", spack_cxx); -+ } -+ -+ String spack_f77 = System.getenv("SPACK_F77"); -+ if (spack_f77 != null) { -+ result.put("SPACK_F77", spack_f77); -+ } -+ -+ String spack_fc = System.getenv("SPACK_FC"); -+ if (spack_fc != null) { -+ result.put("SPACK_FC", spack_fc); -+ } -+ -+ String spack_cflags = System.getenv("SPACK_CFLAGS"); -+ if (spack_cflags != null) { -+ result.put("SPACK_CFLAGS", spack_cflags); -+ } -+ -+ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); -+ if (spack_cxxflags != null) { -+ result.put("SPACK_CXXFLAGS", spack_cxxflags); -+ } -+ -+ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); -+ if (spack_fcflags != null) { -+ result.put("SPACK_FCFLAGS", spack_fcflags); -+ } -+ -+ String spack_fflags = System.getenv("SPACK_FFLAGS"); -+ if (spack_fflags != null) { -+ result.put("SPACK_FFLAGS", spack_fflags); -+ } -+ -+ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); -+ if (spack_ldflags != null) { -+ result.put("SPACK_LDFLAGS", spack_ldflags); -+ } -+ -+ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); -+ if (spack_ldlibs != null) { -+ result.put("SPACK_LDLIBS", spack_ldlibs); -+ } -+ -+ String spack_debug = System.getenv("SPACK_DEBUG"); -+ if (spack_debug != null) { -+ result.put("SPACK_DEBUG", spack_debug); -+ } -+ -+ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); -+ if (spack_test_command != null) { -+ result.put("SPACK_TEST_COMMAND", spack_test_command); -+ } -+ -+ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); -+ if (spack_dependencies != null) { -+ result.put("SPACK_DEPENDENCIES", spack_dependencies); -+ } -+ - return result.build(); - } - diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py index ef5e26edde..da3b2ce365 100644 --- a/var/spack/repos/builtin/packages/bazel/package.py +++ b/var/spack/repos/builtin/packages/bazel/package.py @@ -3,93 +3,173 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import inspect - from spack import * -from multiprocessing import cpu_count -from spack.util.environment import env_flag -from spack.build_environment import SPACK_NO_PARALLEL_MAKE class Bazel(Package): - """Bazel is Google's own build tool""" - - homepage = "https://www.bazel.io" - url = "https://github.com/bazelbuild/bazel/releases/download/0.11.1/bazel-0.11.1-dist.zip" - + """Bazel is an open-source build and test tool similar to Make, Maven, and + Gradle. It uses a human-readable, high-level build language. Bazel supports + projects in multiple languages and builds outputs for multiple platforms. + Bazel supports large codebases across multiple repositories, and large + numbers of users.""" + + homepage = "https://bazel.build/" + url = "https://github.com/bazelbuild/bazel/releases/download/1.2.0/bazel-1.2.0-dist.zip" + + maintainers = ['adamjstewart'] + + version('1.2.1', sha256='255da49d0f012bc4f2c1d6d3ccdbe578e22fe97b8d124e1629a486fe2a09d3e1') + version('1.2.0', sha256='9cb46b0a18b9166730307a0e82bf4c02281a1cc6da0fb11239e6fe4147bdee6e') + version('1.1.0', sha256='4b66a8c93af7832ed32e7236cf454a05f3aa06d25a8576fc3f83114f142f95ab') + version('1.0.1', sha256='f4d2dfad011ff03a5fae41b9b02cd96cd7297c1205d496603d66516934fbcfee') + version('1.0.0', sha256='c61daf0b69dd95205c695b2f9022d296d052c727062cfd396d54ffb2154f8cac') + version('0.29.1', sha256='872a52cff208676e1169b3e1cae71b1fe572c4109cbd66eab107d8607c378de5') + version('0.29.0', sha256='01cb6f2e808bd016cf0e217e12373c9efb808123e58b37885be8364458d3a40a') + version('0.28.1', sha256='2cea463d611f5255d2f3d41c8de5dcc0961adccb39cf0ac036f07070ba720314') + version('0.28.0', sha256='26ad8cdadd413b8432cf46d9fc3801e8db85d9922f85dd8a7f5a92fec876557f') + version('0.27.2', sha256='5e1bf2b48e54eb7e518430667d29aef53695d6dd7c718665a52131ab27aadab2') + version('0.27.1', sha256='8051d77da4ec338acd91770f853e4c25f4407115ed86fd35a6de25921673e779') + version('0.27.0', sha256='c3080d3b959ac08502ad5c84a51608c291accb1481baad88a628bbf79b30c67a') + version('0.26.1', sha256='c0e94f8f818759f3f67af798c38683520c540f469cb41aea8f5e5a0e43f11600') + version('0.26.0', sha256='d26dadf62959255d58e523da3448a6222af768fe1224e321b120c1d5bbe4b4f2') + version('0.25.3', sha256='23eafd3e439bc71baba9c592b52cb742dabc8640a13b9da1751fec090a2dda99') + version('0.25.2', sha256='7456032199852c043e6c5b3e4c71dd8089c1158f72ec554e6ec1c77007f0ab51') + version('0.25.1', sha256='a52bb31aeb1f821e649d25ef48023cfb54a12887aff875c6349ebcac36c2f056') + version('0.25.0', sha256='f624fe9ca8d51de192655369ac538c420afb7cde16e1ad052554b582fff09287') + version('0.24.1', sha256='56ea1b199003ad832813621744178e42b39e6206d34fbae342562c287da0cd54') + version('0.24.0', sha256='621d2a97899a88850a913eabf9285778331a309fd4658b225b1377f80060fa85') + version('0.23.2', sha256='293a5a7d851e0618eeb5e6958d94a11d45b6a00f2ba9376de61ac2bd5f917439') + version('0.23.1', sha256='dd47199f92452bf67b2c5d60ad4b7143554eaf2c6196ab6e8713449d81a0491d') + version('0.23.0', sha256='2daf9c2c6498836ed4ebae7706abb809748b1350cacd35b9f89452f31ac0acc1') + version('0.22.0', sha256='6860a226c8123770b122189636fb0c156c6e5c9027b5b245ac3b2315b7b55641') + version('0.21.0', sha256='6ccb831e683179e0cfb351cb11ea297b4db48f9eab987601c038aa0f83037db4') + version('0.20.0', sha256='1945afa84fd8858b0a3c68c09915a4bc81065c61df2591387b2985e2297d30bd') + version('0.19.2', sha256='11234cce4f6bdc62c3ac688f41c7b5c178eecb6f7e2c4ba0bcf00ba8565b1d19') + version('0.19.1', sha256='c9405f7b8c79ebc81f9f0e49bb656df4a0da246771d010c2cdd6bb30e2500ac0') + version('0.19.0', sha256='ee6135c5c47306c8421d43ad83aabc4f219cb065376ee37797f2c8ba9a615315') + version('0.18.1', sha256='baed9f28c317000a4ec1ad2571b3939356d22746ca945ac2109148d7abb860d4') + version('0.18.0', sha256='d0e86d2f7881ec8742a9823a986017452d2da0dfe4e989111da787cb89257155') version('0.17.2', sha256='b6e87acfa0a405bb8b3417c58477b66d5bc27dc0d31ba6fa12bc255b9278d33b') + version('0.17.1', sha256='23e4281c3628cbd746da3f51330109bbf69780bd64461b63b386efae37203f20') version('0.16.1', sha256='09c66b94356c82c52f212af52a81ac28eb06de1313755a2f23eeef84d167b36c') + version('0.16.0', sha256='c730593916ef0ba62f3d113cc3a268e45f7e8039daf7b767c8641b6999bd49b1') + version('0.15.2', sha256='bf53ec73be3a6d412d85ef612cec6e9c85db45da42001fab0cf1dad44cfc03f1') + version('0.15.1', sha256='c62b351fa4c1ba5aeb34d0a137176f8e8f1d89a32f548a10e96c11df176ffc6c') version('0.15.0', sha256='c3b716e6625e6b8c323350c95cd3ae0f56aeb00458dddd10544d5bead8a7b602') version('0.14.1', sha256='d49cdcd82618ae7a7a190e6f0a80d9bf85c1a66b732f994f37732dc14ffb0025') + version('0.14.0', sha256='259627de8b9d415cc80904523facf3d50e6e8e68448ab968eb1c9cb8ca1ef843') + version('0.13.1', sha256='b0269e75b40d87ff87886e5f3432cbf88f70c96f907ab588e6c21b2922d72db0') version('0.13.0', sha256='82e9035084660b9c683187618a29aa896f8b05b5f16ae4be42a80b5e5b6a7690') version('0.12.0', sha256='3b3e7dc76d145046fdc78db7cac9a82bc8939d3b291e53a7ce85315feb827754') version('0.11.1', sha256='e8d762bcc01566fa50952c8028e95cfbe7545a39b8ceb3a0d0d6df33b25b333f') version('0.11.0', sha256='abfeccc94728cb46be8dbb3507a23ccffbacef9fbda96a977ef4ea8d6ab0d384') version('0.10.1', sha256='708248f6d92f2f4d6342006c520f22dffa2f8adb0a9dc06a058e3effe7fee667') version('0.10.0', sha256='47e0798caaac4df499bce5fe554a914abd884a855a27085a4473de1d737d9548') - version('0.9.0', sha256='efb28fed4ffcfaee653e0657f6500fc4cbac61e32104f4208da385676e76312a') - version('0.4.5', sha256='2b737be42678900470ae9e48c975ac5b2296d9ae23c007bf118350dbe7c0552b') - version('0.4.4', sha256='d52a21dda271ae645711ce99c70cf44c5d3a809138e656bbff00998827548ebb') - - depends_on('java@8:', type=('build', 'link', 'run')) - depends_on('zip') - - patch('fix_env_handling.patch', when='@:0.4.5') - patch('fix_env_handling-0.9.0.patch', when='@0.9.0:0.12.0') - patch('fix_env_handling-0.13.0.patch', when='@0.13.0:0.13.999') - patch('fix_env_handling-0.17.2.patch', when='@0.14.0:') - patch('link.patch') - patch('cc_configure.patch', when='@:0.4.5') - patch('unix_cc_configure.patch', when='@0.9.0') - patch('unix_cc_configure-0.10.0.patch', when='@0.10.0:0.14.999') - patch('unix_cc_configure-0.17.2.patch', when='@0.15.0:') + version('0.9.0', sha256='efb28fed4ffcfaee653e0657f6500fc4cbac61e32104f4208da385676e76312a') + version('0.8.1', sha256='dfd0761e0b7e36c1d74c928ad986500c905be5ebcfbc29914d574af1db7218cf') + version('0.8.0', sha256='aa840321d056abd3c6be10c4a1e98a64f9f73fff9aa89c468dae8c003974a078') + version('0.7.0', sha256='a084a9c5d843e2343bf3f319154a48abe3d35d52feb0ad45dec427a1c4ffc416') + version('0.6.1', sha256='dada1f60a512789747011184b2767d2b44136ef3b036d86947f1896d200d2ba7') + version('0.6.0', sha256='a0e53728a9541ef87934831f3d05f2ccfdc3b8aeffe3e037be2b92b12400598e') + version('0.5.4', sha256='2157b05309614d6af0e4bbc6065987aede590822634a0522161f3af5d647abc9') + version('0.5.3', sha256='76b5c5880a0b15f5b91f7d626c5bc3b76ce7e5d21456963c117ab711bf1c5333') + version('0.5.2', sha256='2418c619bdd44257a170b85b9d2ecb75def29e751b725e27186468ada2e009ea') + version('0.5.1', sha256='85e6a18b111afeea2e475fe991db2a441ec3824211d659bee7b0012c36be9a40') + version('0.5.0', sha256='ebba7330a8715e96a6d6dc0aa085125d529d0740d788f0544c6169d892e4f861') + version('0.4.5', sha256='2b737be42678900470ae9e48c975ac5b2296d9ae23c007bf118350dbe7c0552b') + version('0.4.4', sha256='d52a21dda271ae645711ce99c70cf44c5d3a809138e656bbff00998827548ebb') + version('0.4.3', sha256='cbd2ab580181c17317cf18b2bf825bcded2d97cab01cd5b5fe4f4d520b64f90f') + version('0.4.2', sha256='8e6f41252abadcdb2cc7a07f910ec4b45fb12c46f0a578672c6a186c7efcdb36') + version('0.4.1', sha256='008c648d3c46ece063ae8b5008480d8ae6d359d35967356685d1c09da07e1064') + version('0.4.0', sha256='6474714eee72ba2d4e271ed00ce8c05d67a9d15327bc03962b821b2af2c5ca36') + version('0.3.2', sha256='ca5caf7b2b48c7639f45d815b32e76d69650f3199eb8caa541d402722e3f6c10') + version('0.3.1', sha256='218d0e28b4d1ee34585f2ac6b18d169c81404d93958815e73e60cc0368efcbb7') + version('0.3.0', sha256='357fd8bdf86034b93902616f0844bd52e9304cccca22971ab7007588bf9d5fb3') + + # https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-bazel + # Until https://github.com/spack/spack/issues/14058 is fixed, use jdk to build bazel + # Strict dependency on java@8 as per + # https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-unix-prereq + depends_on('jdk@1.8.0:1.8.999', type=('build', 'run')) + depends_on('python', type=('build', 'run')) + + # 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') + patch('bazelconfiguration-0.3.patch', when='@:0.13') + + # Inject include paths + patch('unix_cc_configure-0.15.patch', when='@0.15:') + patch('unix_cc_configure-0.10.patch', when='@0.10:0.14') + patch('unix_cc_configure-0.5.3.patch', when='@0.5.3:0.9') + patch('cc_configure-0.5.0.patch', when='@0.5.0:0.5.2') + patch('cc_configure-0.3.0.patch', when='@:0.4') + + # Set CC and CXX + patch('compile-0.29.patch', when='@0.29:') + patch('compile-0.21.patch', when='@0.21:0.28') + patch('compile-0.16.patch', when='@0.16:0.20') + patch('compile-0.13.patch', when='@0.13:0.15') + patch('compile-0.9.patch', when='@0.9:0.12') + patch('compile-0.6.patch', when='@0.6:0.8') + patch('compile-0.4.patch', when='@0.4:0.5') + patch('compile-0.3.patch', when='@:0.3') + + phases = ['bootstrap', 'install'] def url_for_version(self, version): if version >= Version('0.4.1'): - return 'https://github.com/bazelbuild/bazel/releases/download/{0}/bazel-{0}-dist.zip'.format(version) + url = 'https://github.com/bazelbuild/bazel/releases/download/{0}/bazel-{0}-dist.zip' else: - return 'https://github.com/bazelbuild/bazel/archive/{0}.tar.gz'.format(version) + url = 'https://github.com/bazelbuild/bazel/archive/{0}.tar.gz' - def install(self, spec, prefix): + return url.format(version) + + def setup_build_environment(self, env): + env.set('EXTRA_BAZEL_ARGS', + # Spack's logs don't handle colored output well + '--color=no --host_javabase=@local_jdk//:jdk') + + def bootstrap(self, spec, prefix): bash = which('bash') - bash('-c', './compile.sh') + bash('./compile.sh') + + def install(self, spec, prefix): mkdir(prefix.bin) install('output/bazel', prefix.bin) + @run_after('install') + @on_package_attributes(run_tests=True) + def test(self): + # https://github.com/Homebrew/homebrew-core/blob/master/Formula/bazel.rb + + # Bazel does not work properly on NFS, switch to /tmp + with working_dir('/tmp/spack/bazel/spack-test', create=True): + touch('WORKSPACE') + + with open('ProjectRunner.java', 'w') as f: + f.write("""\ +public class ProjectRunner { + public static void main(String args[]) { + System.out.println("Hi!"); + } +}""") + + with open('BUILD', 'w') as f: + f.write("""\ +java_binary( + name = "bazel-test", + srcs = glob(["*.java"]), + main_class = "ProjectRunner", +)""") + + # Spack's logs don't handle colored output well + bazel = Executable(self.prefix.bin.bazel) + bazel('--output_user_root=/tmp/spack/bazel/spack-test', + 'build', '--color=no', '//:bazel-test') + + exe = Executable('bazel-bin/bazel-test') + assert exe(output=str) == 'Hi!\n' + def setup_dependent_package(self, module, dependent_spec): - class BazelExecutable(Executable): - """Special callable executable object for bazel so the user can - specify parallel or not on a per-invocation basis. Using - 'parallel' as a kwarg will override whatever the package's - global setting is, so you can either default to true or false - and override particular calls. - - Note that if the SPACK_NO_PARALLEL_MAKE env var is set it - overrides everything. - """ - - def __init__(self, name, command, jobs): - super(BazelExecutable, self).__init__(name) - self.bazel_command = command - self.jobs = jobs - - def __call__(self, *args, **kwargs): - disable = env_flag(SPACK_NO_PARALLEL_MAKE) - parallel = ((not disable) and kwargs.get('parallel', - self.jobs > 1)) - - jobs = "--jobs=1" - if parallel: - jobs = "--jobs=%d" % self.jobs - - args = (self.bazel_command,) + (jobs,) + args - - return super(BazelExecutable, self).__call__(*args, **kwargs) - - jobs = cpu_count() - dependent_module = inspect.getmodule(dependent_spec.package) - if not dependent_spec.package.parallel: - jobs = 1 - elif dependent_module.make_jobs: - jobs = dependent_module.make_jobs - module.bazel = BazelExecutable('bazel', 'build', jobs) + module.bazel = Executable('bazel') diff --git a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.0.patch b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.patch index e375283fed..bdd24e1152 100644 --- a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.0.patch +++ b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.10.patch @@ -1,6 +1,4 @@ -diff --git a/tools/cpp/unix_cc_configure.bzl.orig b/tools/cpp/unix_cc_configure.bzl -index f67b9b5..cc952e0 100755 ---- a/tools/cpp/unix_cc_configure.bzl.orig +--- a/tools/cpp/unix_cc_configure.bzl +++ b/tools/cpp/unix_cc_configure.bzl @@ -147,9 +147,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, additional_flags = []): else: @@ -12,14 +10,13 @@ index f67b9b5..cc952e0 100755 + _prepare_include_path(repository_ctx, _cxx_inc_convert(p)) + for p in inc_dirs.split("\n") + ] - ++ + env = repository_ctx.os.environ -+ if "SPACK_DEPENDENCIES" in env: -+ for dep in env["SPACK_DEPENDENCIES"].split(":"): -+ path = dep + "/include" ++ if "SPACK_INCLUDE_DIRS" in env: ++ for path in env["SPACK_INCLUDE_DIRS"].split(":"): + default_inc_directories.append(path) + + return default_inc_directories + def _is_option_supported(repository_ctx, cc, option): - """Checks that `option` is supported by the C compiler. Doesn't %-escape the option.""" diff --git a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.17.2.patch b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.15.patch index d1a502a49a..74fd8bfb79 100644 --- a/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.17.2.patch +++ b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.15.patch @@ -1,8 +1,6 @@ -diff --git a/tools/cpp/unix_cc_configure.bzl b/tools/cpp/unix_cc_configure.bzl -index 361931b..a79129b 100755 --- a/tools/cpp/unix_cc_configure.bzl +++ b/tools/cpp/unix_cc_configure.bzl -@@ -145,11 +145,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, lang_flag, additional_fl +@@ -145,11 +145,18 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc, lang_flag, additional_fl else: inc_dirs = result.stderr[index1 + 1:index2].strip() @@ -13,9 +11,8 @@ index 361931b..a79129b 100755 ] + env = repository_ctx.os.environ -+ if "SPACK_DEPENDENCIES" in env: -+ for dep in env["SPACK_DEPENDENCIES"].split(":"): -+ path = dep + "/include" ++ if "SPACK_INCLUDE_DIRS" in env: ++ for path in env["SPACK_INCLUDE_DIRS"].split(":"): + default_inc_directories.append(path) + + return default_inc_directories diff --git a/var/spack/repos/builtin/packages/bazel/unix_cc_configure.patch b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.5.3.patch index 3f14bc2fc0..79b583ba84 100644 --- a/var/spack/repos/builtin/packages/bazel/unix_cc_configure.patch +++ b/var/spack/repos/builtin/packages/bazel/unix_cc_configure-0.5.3.patch @@ -1,10 +1,6 @@ -diff --git a/spack-expanded-archive/tools/cpp/unix_cc_configure.bzl.orig b/spack-expanded-archive/tools/cpp/unix_cc_configure.bzl -old mode 100644 -new mode 100755 -index aa46f55..ae3c689 ---- spack-expanded-archive/tools/cpp/unix_cc_configure.bzl -+++ spack-expanded-archive/tools/cpp/unix_cc_configure.bzl -@@ -117,9 +117,23 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc): +--- a/tools/cpp/unix_cc_configure.bzl ++++ b/tools/cpp/unix_cc_configure.bzl +@@ -117,9 +117,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc): else: inc_dirs = result.stderr[index1 + 1:index2].strip() @@ -16,12 +12,8 @@ index aa46f55..ae3c689 + ] + env = repository_ctx.os.environ -+ if "SPACK_DEPENDENCIES" in env: -+ for dep in env["SPACK_DEPENDENCIES"].split(":"): -+ path = dep + "/include" -+ # path = repository_ctx.os.path.join(dep, "include") -+ # if not repository_ctx.os.path.exists(path): -+ # continue ++ if "SPACK_INCLUDE_DIRS" in env: ++ for path in env["SPACK_INCLUDE_DIRS"].split(":"): + default_inc_directories.append( + repository_ctx.path(_cxx_inc_convert(path)) + ) diff --git a/var/spack/repos/builtin/packages/bbmap/package.py b/var/spack/repos/builtin/packages/bbmap/package.py index 47197d1c17..486edd0204 100644 --- a/var/spack/repos/builtin/packages/bbmap/package.py +++ b/var/spack/repos/builtin/packages/bbmap/package.py @@ -20,6 +20,6 @@ class Bbmap(Package): def install(self, spec, prefix): install_tree('.', prefix.bin) - def setup_environment(self, spack_env, run_env): - run_env.set('BBMAP_CONFIG', self.prefix.bin.config) - run_env.set('BBMAP_RESOURCES', self.prefix.bin.resources) + def setup_run_environment(self, env): + env.set('BBMAP_CONFIG', self.prefix.bin.config) + env.set('BBMAP_RESOURCES', self.prefix.bin.resources) diff --git a/var/spack/repos/builtin/packages/bc/package.py b/var/spack/repos/builtin/packages/bc/package.py index 99dc0b1d99..62c48649f2 100644 --- a/var/spack/repos/builtin/packages/bc/package.py +++ b/var/spack/repos/builtin/packages/bc/package.py @@ -6,13 +6,13 @@ from spack import * -class Bc(AutotoolsPackage): +class Bc(AutotoolsPackage, GNUMirrorPackage): """bc is an arbitrary precision numeric processing language. Syntax is similar to C, but differs in many substantial areas. It supports interactive execution of statements.""" homepage = "https://www.gnu.org/software/bc" - url = "https://ftpmirror.gnu.org/bc/bc-1.07.tar.gz" + gnu_mirror_path = "bc/bc-1.07.tar.gz" version('1.07', sha256='55cf1fc33a728d7c3d386cc7b0cb556eb5bacf8e0cb5a3fcca7f109fc61205ad') diff --git a/var/spack/repos/builtin/packages/beagle/beagle.sh b/var/spack/repos/builtin/packages/beagle/beagle.sh new file mode 100644 index 0000000000..58093103f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/beagle/beagle.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# convenience wrapper for the jar file +java $JAVA_ARGS $JAVA_OPTS -jar beagle.jar "$@" + diff --git a/var/spack/repos/builtin/packages/beagle/package.py b/var/spack/repos/builtin/packages/beagle/package.py new file mode 100644 index 0000000000..391807db42 --- /dev/null +++ b/var/spack/repos/builtin/packages/beagle/package.py @@ -0,0 +1,43 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * +import os.path + + +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" + + version('5.1', sha256='994f926a4ec0eac665631f37c4a961d3f75c966c71841079275364013c90996c', + expand=False, url='http://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', + expand=False, url='https://faculty.washington.edu/browning/beagle/beagle.27Jan18.7e1.jar') + + depends_on('java@8', type='run') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + jar_file = os.path.basename(self.stage.archive_file) + install(jar_file, prefix.bin) + + # Set up a helper script to call java on the jar file, + # explicitly codes the path for java and the jar file. + script_sh = join_path(os.path.dirname(__file__), "beagle.sh") + script = prefix.bin.beagle + install(script_sh, script) + set_executable(script) + + # Munge the helper script to explicitly point to java and the + # jar file. + java = self.spec['java'].prefix.bin.java + kwargs = {'ignore_absent': False, 'backup': False, 'string': False} + filter_file('^java', java, script, **kwargs) + filter_file('beagle.jar', join_path(prefix.bin, jar_file), + script, **kwargs) diff --git a/var/spack/repos/builtin/packages/beast1/package.py b/var/spack/repos/builtin/packages/beast1/package.py index 2361dd95c0..e5d528b60f 100644 --- a/var/spack/repos/builtin/packages/beast1/package.py +++ b/var/spack/repos/builtin/packages/beast1/package.py @@ -24,8 +24,9 @@ class Beast1(Package): base = 'https://github.com/beast-dev/beast-mcmc/releases/download' return '{0}/v{1}/BEASTv{1}.tgz'.format(base, ver.dotted) - def setup_environment(self, spack_env, run_env): - run_env.set('BEAST1', self.prefix) + def setup_run_environment(self, env): + env.set('BEAST1', self.prefix) + env.set('BEAST_LIB', self.prefix.lib) def install(self, spec, prefix): install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/beast2/package.py b/var/spack/repos/builtin/packages/beast2/package.py index 299fbba849..0e8cd279a2 100644 --- a/var/spack/repos/builtin/packages/beast2/package.py +++ b/var/spack/repos/builtin/packages/beast2/package.py @@ -22,8 +22,8 @@ class Beast2(Package): depends_on('java') - def setup_environment(self, spack_env, run_env): - run_env.set('BEAST', self.prefix) + def setup_run_environment(self, env): + env.set('BEAST', self.prefix) def install(self, spec, prefix): install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py index 244f7ddaa1..31e93c120e 100644 --- a/var/spack/repos/builtin/packages/berkeley-db/package.py +++ b/var/spack/repos/builtin/packages/berkeley-db/package.py @@ -12,17 +12,23 @@ class BerkeleyDb(AutotoolsPackage): homepage = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" url = "http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz" - version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628') - version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55') - version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d') version('6.2.32', sha256='a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb') + version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d') + version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55') + version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628') configure_directory = 'dist' build_directory = 'spack-build' - def url_for_version(self, version): - # newer version need oracle login, so get them from gentoo mirror - return 'http://distfiles.gentoo.org/distfiles/db-{0}.tar.gz'.format(version) +# TODO: Gentoo's website removed the BerkeleyDB archives. +# Please update the function bellow with a valid mirror. +# Right now this package will fetch from the Oracle website, +# and versions 5.3.28 and 6.0.35 will fail to download. +# +# def url_for_version(self, version): +# # newer version need oracle login, so get them from gentoo mirror +# url_fmt = 'http://distfiles.gentoo.org/distfiles/db-{0}.tar.gz' +# return url_fmt.format(version) def configure_args(self): return ['--disable-static', '--enable-cxx', '--enable-stl'] diff --git a/var/spack/repos/builtin/packages/bind9/package.py b/var/spack/repos/builtin/packages/bind9/package.py new file mode 100644 index 0000000000..d899c02fd9 --- /dev/null +++ b/var/spack/repos/builtin/packages/bind9/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Bind9(AutotoolsPackage): + """ + BIND 9 has evolved to be a very flexible, full-featured DNS system. + """ + + homepage = "https://github.com/isc-projects/bind9" + url = "https://github.com/isc-projects/bind9/archive/v9_14_6.tar.gz" + + version('9_14_6', sha256='98be7a7b6d614b519f6c8d6ec7a8a39759ae9604d87228d9dc7c034471e5433e') + + def configure_args(self): + args = ["--without-python", "--disable-linux-caps"] + return args diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py index 9f42882f03..8eb7d1f245 100644 --- a/var/spack/repos/builtin/packages/binutils/package.py +++ b/var/spack/repos/builtin/packages/binutils/package.py @@ -7,11 +7,11 @@ from spack import * import glob -class Binutils(AutotoolsPackage): +class Binutils(AutotoolsPackage, GNUMirrorPackage): """GNU binutils, which contain the linker, assembler, objdump and others""" homepage = "http://www.gnu.org/software/binutils/" - url = "https://ftpmirror.gnu.org/binutils/binutils-2.28.tar.bz2" + gnu_mirror_path = "binutils/binutils-2.28.tar.bz2" version('2.32', sha256='de38b15c902eb2725eac6af21183a5f34ea4634cb0bcef19612b50e5ed31072d') version('2.31.1', sha256='ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0') diff --git a/var/spack/repos/builtin/packages/biopieces/package.py b/var/spack/repos/builtin/packages/biopieces/package.py index 2091f8508f..888ef18ccb 100644 --- a/var/spack/repos/builtin/packages/biopieces/package.py +++ b/var/spack/repos/builtin/packages/biopieces/package.py @@ -21,21 +21,21 @@ class Biopieces(Package): depends_on('perl-module-build', type=('build', 'run')) depends_on('perl-bit-vector', type=('build', 'run')) depends_on('perl-svg', type=('build', 'run')) - depends_on('perl-term-readkey', type=('build', 'run')) + depends_on('perl-termreadkey', type=('build', 'run')) depends_on('perl-time-hires', type=('build', 'run')) depends_on('perl-dbi', type=('build', 'run')) depends_on('perl-xml-parser', type=('build', 'run')) depends_on('perl-carp-clan', type=('build', 'run')) depends_on('perl-class-inspector', type=('build', 'run')) depends_on('perl-html-parser', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) depends_on('perl-soap-lite', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) depends_on('perl-inline', type=('build', 'run')) depends_on('perl-inline-c', type=('build', 'run')) depends_on('perl-parse-recdescent', type=('build', 'run')) - depends_on('perl-version', type=('build', 'run')) - depends_on('perl-dbfile', type=('build', 'run')) + depends_on('perl-perl-version', type=('build', 'run')) + depends_on('perl-db-file', type=('build', 'run')) depends_on('perl-dbd-mysql', type=('build', 'run')) depends_on('ruby@1.9:') @@ -61,10 +61,10 @@ class Biopieces(Package): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # Note: user will need to set environment variables on their own, # dependent on where they will want data to be located: # BP_DATA - Contains genomic data etc. # BP_TMP - Required temporary directory # BP_LOG - Required log directory - run_env.prepend_path('BP_DIR', prefix) + env.prepend_path('BP_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py index 167171c54c..3b46df84cf 100644 --- a/var/spack/repos/builtin/packages/bison/package.py +++ b/var/spack/repos/builtin/packages/bison/package.py @@ -8,13 +8,13 @@ from spack.operating_systems.mac_os import macos_version import sys -class Bison(AutotoolsPackage): +class Bison(AutotoolsPackage, GNUMirrorPackage): """Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.""" homepage = "https://www.gnu.org/software/bison/" - url = "https://ftpmirror.gnu.org/bison/bison-3.4.2.tar.gz" + gnu_mirror_path = "bison/bison-3.4.2.tar.gz" version('3.4.2', sha256='ff3922af377d514eca302a6662d470e857bd1a591e96a2050500df5a9d59facf') version('3.0.5', sha256='cd399d2bee33afa712bac4b1f4434e20379e9b4099bce47189e09a7675a2d566') @@ -31,6 +31,9 @@ class Bison(AutotoolsPackage): patch('pgi.patch', when='@3.0.4') + conflicts('%intel@:14', when='@3.4.2:', + msg="Intel 14 has immature C11 support") + if sys.platform == 'darwin' and macos_version() >= Version('10.13'): patch('secure_snprintf.patch', level=0, when='@3.0.4') diff --git a/var/spack/repos/builtin/packages/blasr-libcpp/package.py b/var/spack/repos/builtin/packages/blasr-libcpp/package.py index 40693d9e89..4080e383a6 100644 --- a/var/spack/repos/builtin/packages/blasr-libcpp/package.py +++ b/var/spack/repos/builtin/packages/blasr-libcpp/package.py @@ -45,10 +45,7 @@ class BlasrLibcpp(Package): install_tree('hdf', prefix.hdf) install_tree('pbdata', prefix.pbdata) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path('LD_LIBRARY_PATH', - self.spec.prefix.hdf) - spack_env.prepend_path('LD_LIBRARY_PATH', - self.spec.prefix.alignment) - spack_env.prepend_path('LD_LIBRARY_PATH', - self.spec.prefix.pbdata) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.hdf) + env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.alignment) + env.prepend_path('LD_LIBRARY_PATH', self.spec.prefix.pbdata) diff --git a/var/spack/repos/builtin/packages/blasr/package.py b/var/spack/repos/builtin/packages/blasr/package.py index a25f1486da..9bc9e1b5f0 100644 --- a/var/spack/repos/builtin/packages/blasr/package.py +++ b/var/spack/repos/builtin/packages/blasr/package.py @@ -26,19 +26,19 @@ class Blasr(Package): phases = ['configure', 'build', 'install'] - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.spec.prefix.utils) - spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix) - spack_env.prepend_path('CPATH', self.spec[ - 'blasr-libcpp'].prefix.pbdata) - spack_env.prepend_path('CPATH', self.spec[ - 'blasr-libcpp'].prefix.alignment) - spack_env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf) + def setup_build_environment(self, env): + env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix) + env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.pbdata) + env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.alignment) + env.prepend_path('CPATH', self.spec['blasr-libcpp'].prefix.hdf) # hdf has +mpi by default, so handle that possibility if ('+mpi' in self.spec['hdf5']): - spack_env.set('CC', self.spec['mpi'].mpicc) - spack_env.set('CXX', self.spec['mpi'].mpicxx) + env.set('CC', self.spec['mpi'].mpicc) + env.set('CXX', self.spec['mpi'].mpicxx) + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.spec.prefix.utils) def configure(self, spec, prefix): configure_args = [ diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py index 7b2f5de649..e403f4063a 100644 --- a/var/spack/repos/builtin/packages/blat/package.py +++ b/var/spack/repos/builtin/packages/blat/package.py @@ -17,8 +17,8 @@ class Blat(Package): depends_on('libpng') - def setup_environment(self, spack_env, run_env): - spack_env.set('MACHTYPE', 'x86_64') + def setup_build_environment(self, env): + env.set('MACHTYPE', 'x86_64') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py new file mode 100644 index 0000000000..e26cde63b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/blktrace/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Blktrace(MakefilePackage): + """ + blktrace is a block layer IO tracing mechanism which provides detailed + information about request queue operations up to user space. There are + three major components: a kernel component, a utility to record the i/o + trace information for the kernel to user space, and utilities to analyse + and view the trace information. + """ + + homepage = "https://brick.kernel.dk" + url = "https://brick.kernel.dk/snaps/blktrace-1.2.0.tar.gz" + + version('1.2.0', sha256='d14029bc096026dacb206bf115c912dcdb795320b5aba6dff3e46d7f94c5242d') + version('1.1.0', sha256='dc1e5da64b8fef454ec24aa4fcc760112b4ea7c973e2485961aa5668b3a8ce1d') + version('1.0.5', sha256='783b4c8743498de74b3492725815d31f3842828baf8710c53bc4e7e82cee387c') + version('1.0.4', sha256='c1b53e2382f7309e822d48fef187cf44e84bb44df52a0a9786d447d127af75cf') + version('1.0.3', sha256='78c6825212fe6700039fab77d53bc02e6b324e712caea718fff190e4e034cfa8') + version('1.0.2', sha256='15f01e2a952919ba3c7b90f8bd891d1a98c454626501094030df632666786343') + + depends_on('libaio') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py index eb3f644d00..9c5debb338 100644 --- a/var/spack/repos/builtin/packages/bohrium/package.py +++ b/var/spack/repos/builtin/packages/bohrium/package.py @@ -201,11 +201,11 @@ class Bohrium(CMakePackage, CudaPackage): # # Environment setup # - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # Bohrium needs an extra include dir apart from # the self.prefix.include dir - run_env.prepend_path("CPATH", self.prefix.include.bohrium) - run_env.set("BH_CONFIG", self.config_file) + env.prepend_path("CPATH", self.prefix.include.bohrium) + env.set("BH_CONFIG", self.config_file) # # Quick tests diff --git a/var/spack/repos/builtin/packages/bolt/package.py b/var/spack/repos/builtin/packages/bolt/package.py index 981dfae611..3ba773ef22 100644 --- a/var/spack/repos/builtin/packages/bolt/package.py +++ b/var/spack/repos/builtin/packages/bolt/package.py @@ -20,8 +20,10 @@ class Bolt(CMakePackage): homepage = "http://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("master", branch="master") + version("1.0rc3", sha256="beec522d26e74f0a562762ea5ae7805486a17b40013090ea1472f0c34c3379c8") version("1.0rc2", sha256="662ab0bb9583e8d733e8af62a97b41828e8bfe4bd65902f1195b986901775a45") version("1.0rc1", sha256="c08cde0695b9d1252ab152425be96eb29c70d764e3083e276c013804883a15a4") version("1.0b1", sha256="fedba46ad2f8835dd1cec1a9a52bcc9d8923071dc40045d0360517d09cd1a57d") diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 094a96954c..3b677783a0 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -367,6 +367,12 @@ class Boost(Package): cxxflags.append('-stdlib=libc++') options.extend(['toolset=clang', 'linkflags="-stdlib=libc++"']) + elif spec.satisfies('%xl') or spec.satisfies('%xl_r'): + # see also: https://lists.boost.org/boost-users/2019/09/89953.php + # the cxxstd setting via spack is not sufficient to drive the + # change into boost compilation + if spec.variants['cxxstd'].value == '11': + cxxflags.append('-std=c++11') if cxxflags: options.append('cxxflags="{0}"'.format(' '.join(cxxflags))) diff --git a/var/spack/repos/builtin/packages/bpp-suite/clarify_isinf.patch b/var/spack/repos/builtin/packages/bpp-suite/clarify_isinf.patch new file mode 100644 index 0000000000..ad92f08da7 --- /dev/null +++ b/var/spack/repos/builtin/packages/bpp-suite/clarify_isinf.patch @@ -0,0 +1,90 @@ +diff -ur spack-src.org/bppSuite/bppAncestor.cpp spack-src/bppSuite/bppAncestor.cpp +--- spack-src.org/bppSuite/bppAncestor.cpp 2019-11-18 15:59:34.786164416 +0900 ++++ spack-src/bppSuite/bppAncestor.cpp 2019-11-18 16:26:25.385749490 +0900 +@@ -237,7 +237,7 @@ + delete tree; + + double logL = tl->getValue(); +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + // This may be due to null branch lengths, leading to null likelihood! + ApplicationTools::displayWarning("!!! Warning!!! Likelihood is zero."); +@@ -251,7 +251,7 @@ + tl->matchParametersValues(pl); + logL = tl->getValue(); + } +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + ApplicationTools::displayError("!!! Unexpected likelihood == 0."); + ApplicationTools::displayError("!!! Looking at each site:"); +diff -ur spack-src.org/bppSuite/bppML.cpp spack-src/bppSuite/bppML.cpp +--- spack-src.org/bppSuite/bppML.cpp 2019-11-18 15:59:34.786164416 +0900 ++++ spack-src/bppSuite/bppML.cpp 2019-11-18 16:29:09.373021202 +0900 +@@ -425,7 +425,7 @@ + + //Check initial likelihood: + double logL = tl->getValue(); +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + // This may be due to null branch lengths, leading to null likelihood! + ApplicationTools::displayWarning("!!! Warning!!! Initial likelihood is zero."); +@@ -440,7 +440,7 @@ + logL = tl->getValue(); + } + ApplicationTools::displayResult("Initial log likelihood", TextTools::toString(-logL, 15)); +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + ApplicationTools::displayError("!!! Unexpected initial likelihood == 0."); + if (codonAlphabet) +@@ -448,7 +448,7 @@ + bool f = false; + size_t s; + for (size_t i = 0; i < sites->getNumberOfSites(); i++) { +- if (isinf(tl->getLogLikelihoodForASite(i))) { ++ if (std::isinf(tl->getLogLikelihoodForASite(i))) { + const Site& site = sites->getSite(i); + s = site.size(); + for (size_t j = 0; j < s; j++) { +@@ -477,7 +477,7 @@ + } else { + ApplicationTools::displayBooleanResult("Saturated site removal enabled", true); + for (size_t i = sites->getNumberOfSites(); i > 0; --i) { +- if (isinf(tl->getLogLikelihoodForASite(i - 1))) { ++ if (std::isinf(tl->getLogLikelihoodForASite(i - 1))) { + ApplicationTools::displayResult("Ignore saturated site", sites->getSite(i - 1).getPosition()); + sites->deleteSite(i - 1); + } +@@ -486,7 +486,7 @@ + tl->setData(*sites); + tl->initialize(); + logL = tl->getValue(); +- if (isinf(logL)) { ++ if (std::isinf(logL)) { + throw Exception("Likelihood is still 0 after saturated sites are removed! Looks like a bug..."); + } + ApplicationTools::displayResult("Initial log likelihood", TextTools::toString(-logL, 15)); +diff -ur spack-src.org/bppSuite/bppMixedLikelihoods.cpp spack-src/bppSuite/bppMixedLikelihoods.cpp +--- spack-src.org/bppSuite/bppMixedLikelihoods.cpp 2019-11-18 15:59:34.786164416 +0900 ++++ spack-src/bppSuite/bppMixedLikelihoods.cpp 2019-11-18 16:26:48.338168188 +0900 +@@ -220,7 +220,7 @@ + tl->initialize(); + + double logL = tl->getValue(); +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + // This may be due to null branch lengths, leading to null likelihood! + ApplicationTools::displayWarning("!!! Warning!!! Likelihood is zero."); +@@ -235,7 +235,7 @@ + tl->matchParametersValues(pl); + logL = tl->getValue(); + } +- if (isinf(logL)) ++ if (std::isinf(logL)) + { + ApplicationTools::displayError("!!! Unexpected likelihood == 0."); + ApplicationTools::displayError("!!! Looking at each site:"); diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py index 542a5cf73e..19ebba82d0 100644 --- a/var/spack/repos/builtin/packages/bpp-suite/package.py +++ b/var/spack/repos/builtin/packages/bpp-suite/package.py @@ -20,3 +20,7 @@ class BppSuite(CMakePackage): depends_on('bpp-core') depends_on('bpp-seq') depends_on('bpp-phyl') + + # Clarify isinf's namespace, because Fujitsu compiler can't + # resolve ambiguous of 'isinf' function. + patch('clarify_isinf.patch', when='%fj') diff --git a/var/spack/repos/builtin/packages/braker/package.py b/var/spack/repos/builtin/packages/braker/package.py index f9db018c1d..7627e55177 100644 --- a/var/spack/repos/builtin/packages/braker/package.py +++ b/var/spack/repos/builtin/packages/braker/package.py @@ -62,5 +62,5 @@ class Braker(Package): for file in files: filter_file(pattern, repl, *files, backup=False) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PERL5LIB', prefix.lib) + def setup_run_environment(self, env): + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/breakdancer/package.py b/var/spack/repos/builtin/packages/breakdancer/package.py index 3ad2cdfc01..c943e88502 100644 --- a/var/spack/repos/builtin/packages/breakdancer/package.py +++ b/var/spack/repos/builtin/packages/breakdancer/package.py @@ -32,7 +32,7 @@ class Breakdancer(CMakePackage): depends_on('perl-statistics-descriptive', type='run') depends_on('perl-math-cdf', type='run') - depends_on('perl-gd-graph', type='run') + depends_on('perl-gdgraph', type='run') depends_on('perl-gdgraph-histogram', type='run') depends_on('perl-list-moreutils', type='run') depends_on('perl-exporter-tiny', type='run') @@ -41,9 +41,9 @@ class Breakdancer(CMakePackage): parallel = False - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # get the perl tools in the path - run_env.prepend_path('PATH', self.prefix.lib) + env.prepend_path('PATH', self.prefix.lib) def edit(self, spec, prefix): # perl tools end up in a silly lib subdirectory, fixing that diff --git a/var/spack/repos/builtin/packages/breseq/package.py b/var/spack/repos/builtin/packages/breseq/package.py index 82893663d9..c3a16307fc 100644 --- a/var/spack/repos/builtin/packages/breseq/package.py +++ b/var/spack/repos/builtin/packages/breseq/package.py @@ -30,8 +30,6 @@ class Breseq(AutotoolsPackage): conflicts('%gcc@:4.8') conflicts('%clang@:3.3') - def setup_environment(self, spack_env, run_env): - spack_env.set('LDFLAGS', - "-L{0}".format(self.spec['zlib'].prefix.lib)) - spack_env.set('CFLAGS', - "-I{0}".format(self.spec['zlib'].prefix.include)) + def setup_build_environment(self, env): + env.set('LDFLAGS', "-L{0}".format(self.spec['zlib'].prefix.lib)) + env.set('CFLAGS', "-I{0}".format(self.spec['zlib'].prefix.include)) diff --git a/var/spack/repos/builtin/packages/bsseeker2/package.py b/var/spack/repos/builtin/packages/bsseeker2/package.py index 73fd8ca24b..5b78294250 100644 --- a/var/spack/repos/builtin/packages/bsseeker2/package.py +++ b/var/spack/repos/builtin/packages/bsseeker2/package.py @@ -13,7 +13,7 @@ class Bsseeker2(Package): url = "https://github.com/BSSeeker/BSseeker2/archive/BSseeker2-v2.1.8.tar.gz" version('2.1.8', sha256='34ebedce36a0fca9e22405d4c2c20bc978439d4a34d1d543657fbc53ff847934') - version('2.1.5', sha256='ac90fb4ad8853ee920f1ffea2b1a8cfffcdb1508ff34be0091d5a9c90ac8c74a', + version('2.1.7', sha256='ac90fb4ad8853ee920f1ffea2b1a8cfffcdb1508ff34be0091d5a9c90ac8c74a', url='https://github.com/BSSeeker/BSseeker2/archive/v2.1.7.tar.gz') version('2.1.2', sha256='08055dd314f85a9b74c259c2cb894ea2affdab2c7a120af3589c649e1900c5c6', url='https://github.com/BSSeeker/BSseeker2/archive/v2.1.2.tar.gz') diff --git a/var/spack/repos/builtin/packages/busybox/package.py b/var/spack/repos/builtin/packages/busybox/package.py new file mode 100644 index 0000000000..1a8ee240b9 --- /dev/null +++ b/var/spack/repos/builtin/packages/busybox/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Busybox(MakefilePackage): + """BusyBox combines tiny versions of many common UNIX utilities into + a single small executable. It provides replacements for most of + the utilities you usually find in GNU fileutils, shellutils, etc""" + + homepage = "https://busybox.net" + url = "https://busybox.net/downloads/busybox-1.31.0.tar.bz2" + + version('1.31.1', sha256='d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998') + version('1.31.0', sha256='0e4925392fd9f3743cc517e031b68b012b24a63b0cf6c1ff03cce7bb3846cc99') + version('1.30.1', sha256='3d1d04a4dbd34048f4794815a5c48ebb9eb53c5277e09ffffc060323b95dfbdc') + version('1.30.0', sha256='9553da068c0a30b1b8b72479908c1ba58672e2be7b535363a88de5e0f7bc04ce') + + def build(self, spec, prefix): + make('defconfig') + make() + + def install(self, spec, prefix): + make('install') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/butterflypack/package.py b/var/spack/repos/builtin/packages/butterflypack/package.py index fee827e064..cd5fcf6503 100644 --- a/var/spack/repos/builtin/packages/butterflypack/package.py +++ b/var/spack/repos/builtin/packages/butterflypack/package.py @@ -22,13 +22,14 @@ class Butterflypack(CMakePackage): homepage = "https://github.com/liuyangzhuan/ButterflyPACK" git = "https://github.com/liuyangzhuan/ButterflyPACK.git" - url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.0.3.tar.gz" + url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v1.1.0.tar.gz" maintainers = ['liuyangzhuan'] version('master', branch='master') - version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232') - version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5') + version('1.1.0', sha256='0e6fd0f9e27b3ee8a273dc52f4d24b8737e7279dc26d461ef5658b317215f1dc') version('1.0.3', sha256='acf9bc98dd7fea31ab73756b68b3333228b53ab0e85400a8250fcc749a1a6656') + version('1.0.1', sha256='e8ada37466a19f49e13456b150700d4c3afaad2ddbe3678f4e933f9d556a24a5') + version('1.0.0', sha256='86c5eb09a18522367d63ce2bacf67ca1c9813ef351a1443baaab3c53f0d77232') variant('shared', default=True, description='Build shared libraries') diff --git a/var/spack/repos/builtin/packages/cares/package.py b/var/spack/repos/builtin/packages/c-ares/package.py index f3b35ee610..76edc96bb0 100644 --- a/var/spack/repos/builtin/packages/cares/package.py +++ b/var/spack/repos/builtin/packages/c-ares/package.py @@ -6,14 +6,15 @@ from spack import * -class Cares(CMakePackage): +class CAres(CMakePackage): """c-ares: A C library for asynchronous DNS requests""" homepage = "https://c-ares.haxx.se" - url = "https://github.com/c-ares/c-ares/archive/cares-1_13_0.tar.gz" + url = "https://github.com/c-ares/c-ares/archive/cares-1_15_0.tar.gz" git = "https://github.com/c-ares/c-ares.git" - version('develop', branch='master') + version('master', branch='master') + version('1.15.0', sha256='7deb7872cbd876c29036d5f37e30c4cbc3cc068d59d8b749ef85bb0736649f04') version('1.13.0', sha256='7c48c57706a38691041920e705d2a04426ad9c68d40edd600685323f214b2d57') def url_for_version(self, version): diff --git a/var/spack/repos/builtin/packages/c-blosc2/package.py b/var/spack/repos/builtin/packages/c-blosc2/package.py index d9bcdde290..450e93ed2c 100644 --- a/var/spack/repos/builtin/packages/c-blosc2/package.py +++ b/var/spack/repos/builtin/packages/c-blosc2/package.py @@ -11,7 +11,6 @@ class CBlosc2(CMakePackage): other bells and whistles""" homepage = "http://www.blosc.org" - url = "https://github.com/Blosc/c-blosc2/archive/v2.0.0-beta.1.tar.gz" git = "https://github.com/Blosc/c-blosc2.git" maintainers = ['ax3l'] @@ -32,12 +31,11 @@ class CBlosc2(CMakePackage): description='support for ZSTD') depends_on('cmake@2.8.10:', type='build') - # TODO https://github.com/inikep/lizard/issues/21 - # depends_on('lizard') - depends_on('lz4') - depends_on('snappy') - depends_on('zlib') - depends_on('zstd') + depends_on('lizard', when='+lizard') + depends_on('lz4', when='+lz4') + depends_on('snappy', when='+snappy') + depends_on('zlib', when='+zlib') + depends_on('zstd', when='+zstd') def cmake_args(self): spec = self.spec @@ -53,8 +51,7 @@ class CBlosc2(CMakePackage): 'ON' if '~zlib' in spec else 'OFF'), '-DDEACTIVATE_ZSTD={0}'.format( 'ON' if '~zstd' in spec else 'OFF'), - # TODO https://github.com/inikep/lizard/issues/21 - '-DPREFER_EXTERNAL_LIZARD=OFF', + '-DPREFER_EXTERNAL_LIZARD=ON', '-DPREFER_EXTERNAL_LZ4=ON', # snappy is supported via external install only '-DPREFER_EXTERNAL_ZLIB=ON', diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py index c752122e50..6cc9779ad0 100644 --- a/var/spack/repos/builtin/packages/cairo/package.py +++ b/var/spack/repos/builtin/packages/cairo/package.py @@ -21,18 +21,26 @@ class Cairo(AutotoolsPackage): variant('X', default=False, description="Build with X11 support") variant('pdf', default=False, description="Enable cairo's PDF surface backend feature") variant('gobject', default=False, description="Enable cairo's gobject functions feature") + variant('ft', default=False, description="Enable cairo's FreeType font backend feature") + variant('fc', default=False, description="Enable cairo's Fontconfig font backend feature") + variant('png', default=False, description="Enable cairo's PNG functions feature") + variant('svg', default=False, description="Enable cairo's SVN functions feature") depends_on('libx11', when='+X') depends_on('libxext', when='+X') depends_on('libxrender', when='+X') depends_on('libxcb', when='+X') depends_on('python', when='+X', type='build') - depends_on('libpng') + depends_on('libpng', when='+png') + depends_on('librsvg', when='+svg') depends_on('glib') depends_on('pixman') - depends_on('freetype') + depends_on('freetype', when='+ft') depends_on('pkgconfig', type='build') - depends_on('fontconfig@2.10.91:') # Require newer version of fontconfig. + depends_on('fontconfig@2.10.91:', when='+fc') # Require newer version of fontconfig. + + conflicts('+png', when='platform=darwin') + conflicts('+svg', when='platform=darwin') def configure_args(self): args = [ @@ -47,5 +55,7 @@ class Cairo(AutotoolsPackage): args.extend(self.enable_or_disable('pdf')) args.extend(self.enable_or_disable('gobject')) + args.extend(self.enable_or_disable('ft')) + args.extend(self.enable_or_disable('fc')) return args diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index 9d45640eb1..5dd651181d 100644 --- a/var/spack/repos/builtin/packages/caliper/package.py +++ b/var/spack/repos/builtin/packages/caliper/package.py @@ -10,16 +10,17 @@ import sys class Caliper(CMakePackage): """Caliper is a program instrumentation and performance measurement - framework. It provides data collection mechanisms and a source-code - annotation API for a variety of performance engineering use cases, - e.g., performance profiling, tracing, monitoring, and - auto-tuning. + framework. It is designed as a performance analysis toolbox in a + library, allowing one to bake performance analysis capabilities + directly into applications and activate them at runtime. """ homepage = "https://github.com/LLNL/Caliper" git = "https://github.com/LLNL/Caliper.git" version('master') + version('2.2.0', tag='v2.2.0') + version('2.1.1', tag='v2.1.1') version('2.0.1', tag='v2.0.1') version('1.9.1', tag='v1.9.1') version('1.9.0', tag='v1.9.0') @@ -29,6 +30,8 @@ class Caliper(CMakePackage): is_linux = sys.platform.startswith('linux') variant('shared', default=True, description='Build shared libraries') + variant('adiak', default=True, + description='Enable Adiak support') variant('mpi', default=True, description='Enable MPI wrappers') variant('dyninst', default=False, @@ -49,6 +52,8 @@ class Caliper(CMakePackage): variant('sosflow', default=False, description='Enable SOSflow support') + depends_on('adiak@0.1:', when='@2.2: +adiak') + depends_on('gotcha@1.0.2:1.0.99', when='+gotcha') depends_on('dyninst@9.3.0:9.99', when='@:1.99 +dyninst') @@ -67,7 +72,8 @@ class Caliper(CMakePackage): depends_on('python', type='build') # sosflow support not yet in 2.0 - conflicts('+sosflow', '@2.0.0:2.0.99') + conflicts('+sosflow', '@2.0.0:2.2.99') + conflicts('+adiak', '@:2.1.99') def cmake_args(self): spec = self.spec @@ -76,6 +82,7 @@ class Caliper(CMakePackage): '-DBUILD_TESTING=Off', '-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'), diff --git a/var/spack/repos/builtin/packages/candle-benchmarks/package.py b/var/spack/repos/builtin/packages/candle-benchmarks/package.py index fb8401108d..5fcee8deeb 100644 --- a/var/spack/repos/builtin/packages/candle-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/candle-benchmarks/package.py @@ -10,7 +10,7 @@ class CandleBenchmarks(Package): """ECP-CANDLE Benchmarks""" homepage = "https://github.com/ECP-CANDLE/Benchmarks" - url = "https://github.com/ECP-CANDLE/Benchmarks/archive/v1.0.tar.gz" + url = "https://github.com/ECP-CANDLE/Benchmarks/archive/v0.1.tar.gz" tags = ['proxy-app', 'ecp-proxy-app'] diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index fd66cef27c..5d808310d7 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -27,10 +27,10 @@ class Cantera(SConsPackage): # Required dependencies depends_on('fmt@3.0.0:3.0.2', when='@2.3.0:') - depends_on('googletest', when='@2.3.0:') + depends_on('googletest+gmock', when='@2.3.0:') depends_on('eigen', when='@2.3.0:') depends_on('boost') - depends_on('sundials', when='+sundials') # must be compiled with -fPIC + depends_on('sundials@:3.1.2', when='+sundials') # must be compiled with -fPIC depends_on('blas') depends_on('lapack') diff --git a/var/spack/repos/builtin/packages/casper/package.py b/var/spack/repos/builtin/packages/casper/package.py index 088a0b49b1..d5bd3a4fee 100644 --- a/var/spack/repos/builtin/packages/casper/package.py +++ b/var/spack/repos/builtin/packages/casper/package.py @@ -25,5 +25,5 @@ class Casper(MakefilePackage): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.spec.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/cassandra/package.py b/var/spack/repos/builtin/packages/cassandra/package.py new file mode 100644 index 0000000000..76def78f58 --- /dev/null +++ b/var/spack/repos/builtin/packages/cassandra/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Cassandra(Package): + """ + Apache Cassandra is a highly-scalable partitioned row store. Rows are + organized into tables with a required primary key. + """ + + homepage = "https://github.com/apache/cassandra" + url = "https://github.com/apache/cassandra/archive/cassandra-4.0-alpha2.tar.gz" + + version('4.0-alpha2', sha256='6a8e99d8bc51efd500981c85c6aa547387b2fdbedecd692308f4632dbc1de3ba') + version('4.0-alpha1', sha256='2fdf5e3d6c03a29d24a09cd52bb17575e5faccdc4c75a07edd63a9bf4f740105') + version('3.11.5', sha256='0ee3da12a2be86d7e03203fcc56c3589ddb38347b9cd031495a2b7fcf639fea6', preferred=True) + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/catalyst/package.py b/var/spack/repos/builtin/packages/catalyst/package.py index a37574a888..974eb06892 100644 --- a/var/spack/repos/builtin/packages/catalyst/package.py +++ b/var/spack/repos/builtin/packages/catalyst/package.py @@ -148,7 +148,7 @@ class Catalyst(CMakePackage): tty.msg("Already generated %s in %s" % (self.name, self.stage.source_path)) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # paraview 5.5 and later # - cmake under lib/cmake/paraview-5.5 # - libs under lib @@ -160,18 +160,18 @@ class Catalyst(CMakePackage): if self.spec.version <= Version('5.4.1'): lib_dir = join_path(lib_dir, paraview_subdir) - run_env.set('ParaView_DIR', self.prefix) - run_env.prepend_path('LIBRARY_PATH', lib_dir) - run_env.prepend_path('LD_LIBRARY_PATH', lib_dir) + env.set('ParaView_DIR', self.prefix) + env.prepend_path('LIBRARY_PATH', lib_dir) + env.prepend_path('LD_LIBRARY_PATH', lib_dir) if '+python' in self.spec or '+python3' in self.spec: python_version = self.spec['python'].version.up_to(2) - run_env.prepend_path('PYTHONPATH', join_path(lib_dir, - 'python{0}'.format(python_version), - 'site-packages')) + env.prepend_path('PYTHONPATH', join_path(lib_dir, + 'python{0}'.format(python_version), + 'site-packages')) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('ParaView_DIR', self.prefix) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('ParaView_DIR', self.prefix) @property def root_cmakelists_dir(self): diff --git a/var/spack/repos/builtin/packages/catch/package.py b/var/spack/repos/builtin/packages/catch2/package.py index a9d8cb412b..939706c823 100644 --- a/var/spack/repos/builtin/packages/catch/package.py +++ b/var/spack/repos/builtin/packages/catch2/package.py @@ -6,11 +6,12 @@ from spack import * -class Catch(CMakePackage): - """Catch tests""" +class Catch2(CMakePackage): + """Catch2 is a multi-paradigm test framework for C++, which also + supports Objective-C (and maybe C).""" homepage = "https://github.com/catchorg/Catch2" - url = "https://github.com/catchorg/Catch2/archive/v1.3.0.tar.gz" + url = "https://github.com/catchorg/Catch2/archive/v2.9.1.tar.gz" variant('single_header', default=True, description='Install a single header only.') diff --git a/var/spack/repos/builtin/packages/cbench/package.py b/var/spack/repos/builtin/packages/cbench/package.py index 8c00aeeadd..a6d0e931e8 100644 --- a/var/spack/repos/builtin/packages/cbench/package.py +++ b/var/spack/repos/builtin/packages/cbench/package.py @@ -31,27 +31,27 @@ class Cbench(MakefilePackage): conflicts('%xl') conflicts('%xl_r') - def setup_environment(self, build_env, run_env): + def setup_build_environment(self, env): # The location of the Cbench source tree - build_env.set('CBENCHOME', self.stage.source_path) + env.set('CBENCHOME', self.stage.source_path) # The location that will contain all of your tests and their results - build_env.set('CBENCHTEST', self.prefix) + env.set('CBENCHTEST', self.prefix) # The location of the system MPI tree - build_env.set('MPIHOME', self.spec['mpi'].prefix) + env.set('MPIHOME', self.spec['mpi'].prefix) # Pick the compiler collection/chain you want to compile with. # Examples include: intel, gcc, pgi. - build_env.set('COMPILERCOLLECTION', self.compiler.name) + env.set('COMPILERCOLLECTION', self.compiler.name) # Linking flags for BLAS/LAPACK and FFTW - build_env.set('BLASLIB', self.spec['blas'].libs.ld_flags) - build_env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags) - build_env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags) + env.set('BLASLIB', self.spec['blas'].libs.ld_flags) + env.set('LAPACKLIB', self.spec['lapack'].libs.ld_flags) + env.set('FFTWLIB', self.spec['fftw'].libs.ld_flags) # The number of make jobs (commands) to run simultaneously - build_env.set('JOBS', str(make_jobs)) + env.set('JOBS', str(make_jobs)) @run_before('build') @on_package_attributes(run_tests=True) 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 58d699b7da..8c3338f164 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py @@ -52,19 +52,22 @@ class CbtfArgonavisGui(QMakePackage): parallel = False - def setup_environment(self, spack_env, run_env): - """Set up the compile and runtime environments for a package.""" - spack_env.set('BOOSTROOT', self.spec['boost'].prefix) - spack_env.set('CBTF_ROOT', self.spec['cbtf'].prefix) - spack_env.set('CBTF_KRELL_ROOT', self.spec['cbtf-krell'].prefix) - spack_env.set('CBTF_ARGONAVIS_ROOT', - self.spec['cbtf-argonavis'].prefix) - spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop-utils'].prefix) - spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) - spack_env.set('QTGRAPHLIB_ROOT', self.spec['qtgraph'].prefix) - spack_env.set('KRELL_ROOT_MRNET', self.spec['mrnet'].prefix) - spack_env.set('KRELL_ROOT_XERCES', self.spec['xerces-c'].prefix) - spack_env.set('INSTALL_ROOT', self.spec.prefix) + def setup_build_environment(self, env): + """Set up the build environment for this package.""" + env.set('BOOSTROOT', self.spec['boost'].prefix) + env.set('CBTF_ROOT', self.spec['cbtf'].prefix) + env.set('CBTF_KRELL_ROOT', self.spec['cbtf-krell'].prefix) + env.set('CBTF_ARGONAVIS_ROOT', + self.spec['cbtf-argonavis'].prefix) + env.set('OSS_CBTF_ROOT', self.spec['openspeedshop-utils'].prefix) + env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) + env.set('QTGRAPHLIB_ROOT', self.spec['qtgraph'].prefix) + env.set('KRELL_ROOT_MRNET', self.spec['mrnet'].prefix) + env.set('KRELL_ROOT_XERCES', self.spec['xerces-c'].prefix) + env.set('INSTALL_ROOT', self.spec.prefix) + + def setup_run_environment(self, env): + """Set up the runtime environment for this package.""" # The implementor of qtgraph has set up the library and include # paths in a non-conventional way. We reflect that here. @@ -74,14 +77,14 @@ class CbtfArgonavisGui(QMakePackage): else: qtgraph_lib_dir = self.spec['qtgraph'].prefix.lib - run_env.prepend_path( + env.prepend_path( 'LD_LIBRARY_PATH', join_path( qtgraph_lib_dir, '{0}'.format(self.spec['qt'].version.up_to(3)))) # The openspeedshop libraries are needed to actually load the # performance information into the GUI. - run_env.prepend_path( + env.prepend_path( 'LD_LIBRARY_PATH', self.spec['openspeedshop-utils'].prefix.lib64) def qmake_args(self): diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index 93fcfe204f..7905a3b0bc 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -41,38 +41,38 @@ class CbtfArgonavis(CMakePackage): depends_on("boost@1.66.0:1.69.0") # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') - depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop~cti') - 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~cti') + 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')) # 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@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')) # 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@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')) # 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@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')) # For libmonitor - depends_on("libmonitor@2013.02.18+krellpatch") + depends_on("libmonitor@2013.02.18+krellpatch", type=('build', 'link', 'run')) # For PAPI - depends_on("papi@5.4.1:") + depends_on("papi@5.4.1:", type=('build', 'link', 'run')) # 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@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@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@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@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@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')) # For CUDA depends_on("cuda") @@ -105,12 +105,16 @@ class CbtfArgonavis(CMakePackage): return cmake_args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set up the compile and runtime environments for a package.""" - run_env.prepend_path( + env.prepend_path( 'LD_LIBRARY_PATH', self.spec['cuda'].prefix + '/extras/CUPTI/lib64') - spack_env.prepend_path( + + def setup_build_environment(self, env): + """Set up the compile and runtime environments for a package.""" + + env.prepend_path( 'LD_LIBRARY_PATH', self.spec['cuda'].prefix + '/extras/CUPTI/lib64') diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index 194367060c..34b7e9b3c6 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -50,6 +50,12 @@ class CbtfKrell(CMakePackage): # Dependencies for cbtf-krell depends_on("cmake@3.0.2:", type='build') + # For rpcgen + depends_on("rpcsvc-proto", type='build') + + # For rpc + depends_on("libtirpc", type='link') + # For binutils depends_on("binutils") @@ -83,21 +89,21 @@ class CbtfKrell(CMakePackage): depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime', type=('build', 'link', 'run')) # for services and collectors - depends_on("libmonitor@2013.02.18+krellpatch") + depends_on("libmonitor@2013.02.18+krellpatch", type=('build', 'link', 'run')) depends_on("libunwind", when='@develop') depends_on("libunwind@1.2.1", when='@1.9.1.0:9999') - depends_on("papi@5.4.1:") + depends_on("papi@5.4.1:", type=('build', 'link', 'run')) depends_on("llvm-openmp-ompt@tr6_forwards+standalone") # MPI Installations depends_on("openmpi", when='+openmpi') - depends_on("mpich", when='+mpich') - depends_on("mpich2", when='+mpich2') - depends_on("mvapich2", when='+mvapich2') - depends_on("mvapich", when='+mvapich') + depends_on("mpich@:1", when='+mpich') + depends_on("mpich@2:", when='+mpich2') + depends_on("mvapich2@2:", when='+mvapich2') + depends_on("mvapich2@:1", when='+mvapich') depends_on("mpt", when='+mpt') depends_on("python", when='@develop', type=('build', 'run')) @@ -229,15 +235,15 @@ class CbtfKrell(CMakePackage): return cmake_args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set up the compile and runtime environments for a package.""" # Environment settings for cbtf-krell, bin is automatically # added to the path in the module file - run_env.prepend_path('PATH', self.prefix.sbin) + env.prepend_path('PATH', self.prefix.sbin) - run_env.set('XPLAT_RSH', 'ssh') - run_env.set('MRNET_COMM_PATH', self.prefix.sbin.cbtf_mrnet_commnode) + env.set('XPLAT_RSH', 'ssh') + env.set('MRNET_COMM_PATH', self.prefix.sbin.cbtf_mrnet_commnode) # Set CBTF_MPI_IMPLEMENTATON to the appropriate mpi implementation # This is needed by CBTF tools to deploy the correct @@ -246,19 +252,23 @@ class CbtfKrell(CMakePackage): # manually if multiple mpi's are specified in the build if self.spec.satisfies('+mpich'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mpich") + env.set('CBTF_MPI_IMPLEMENTATION', "mpich") if self.spec.satisfies('+mvapich'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") + env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") if self.spec.satisfies('+mvapich2'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") + env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") if self.spec.satisfies('+mpt'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mpt") + env.set('CBTF_MPI_IMPLEMENTATION', "mpt") if self.spec.satisfies('+openmpi'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") + env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") + + env.set('CBTF_MRNET_BACKEND_PATH', + self.prefix.sbin.cbtf_libcbtf_mrnet_backend) - run_env.set('CBTF_MRNET_BACKEND_PATH', - self.prefix.sbin.cbtf_libcbtf_mrnet_backend) + env.prepend_path('PATH', self.spec['libmonitor'].prefix.bin) + env.prepend_path('PATH', self.spec['papi'].prefix.bin) + env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index eabf029d18..e06e429fde 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -34,6 +34,12 @@ class Cbtf(CMakePackage): depends_on("cmake@3.0.2:", type='build') + # for rpcgen + depends_on("rpcsvc-proto", type='build') + + # for rpc + depends_on("libtirpc", type='link') + depends_on("boost@1.66.0:1.69.0") # For MRNet diff --git a/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch b/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch new file mode 100755 index 0000000000..726e216e59 --- /dev/null +++ b/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch @@ -0,0 +1,11 @@ +--- spack-src.org/umbrella/src/Makefile 2017-05-30 20:49:30.000000000 +0900 ++++ spack-src/umbrella/src/Makefile 2019-11-20 17:23:42.101854924 +0900 +@@ -16,7 +16,7 @@ + + umbrella_helper.html: umbrella.py + # pydoc2/pydoc creates a html file, umbrella.html. +- if which pydoc2; then pydoc2 -w umbrella; elif which pydoc; then pydoc -w umbrella; fi ++ if which pydoc; then pydoc -w umbrella; elif which pydoc2; then pydoc2 -w umbrella; fi + if [ -f umbrella.html ]; then mv umbrella.html umbrella_helper.html; fi + + clean: diff --git a/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch b/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch new file mode 100755 index 0000000000..1c8dfc428e --- /dev/null +++ b/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch @@ -0,0 +1,116 @@ +--- spack-src.org/configure 2019-11-25 14:33:33.991883993 +0900 ++++ spack-src/configure 2019-11-25 14:47:11.591066274 +0900 +@@ -973,18 +973,46 @@ + fi + fi + ++PYDOC="" + python=0 #to be set to the python path + if [ $config_python_path != no ] + then + if [ -n "$PYTHON" ] && check_file ${PYTHON} + then + python=${PYTHON} ++ python_dir=`dirname ${PYTHON}` ++ python_cmd=`basename ${PYTHON}` ++ pydoc_cmd=`echo $python_cmd | sed s/python/pydoc/` ++ pydoc2_cmd=`echo $python_cmd | sed s/python/pydoc2/` ++ pydoc=${python_dir}/${pydoc_cmd} ++ pydoc2=${python_dir}/${pydoc2_cmd} ++ if check_file $pydoc ++ then ++ PYDOC=$pydoc ++ elif check_file $pydoc2 ++ then ++ PYDOC=$pydoc2 ++ fi + elif check_file ${python_path}/bin/python2 + then + python=${python_path}/bin/python2 ++ if check_file ${python_path}/bin/pydoc ++ then ++ PYDOC=${python_path}/bin/pydoc ++ elif check_file ${python_path}/bin/pydoc2 ++ then ++ PYDOC=${python_path}/bin/pydoc2 ++ fi + elif check_file ${python_path}/bin/python + then + python=${python_path}/bin/python ++ if check_file ${python_path}/bin/pydoc ++ then ++ PYDOC=${python_path}/bin/pydoc ++ elif check_file ${python_path}/bin/pydoc2 ++ then ++ PYDOC=${python_path}/bin/pydoc2 ++ fi + else + python=0 + fi +@@ -1056,7 +1084,7 @@ + fi + fi + +-if [ $python_dev = no ] ++if [ "$python_dev" = no ] + then + if [ $config_python_path = yes ] + then +@@ -1073,12 +1101,48 @@ + if [ -n "$PYTHON3" ] && check_file ${PYTHON3} + then + python3=${PYTHON3} ++ if [ "$PYDOC" = "" ] ++ then ++ python_dir=`dirname ${PYTHON3}` ++ python_cmd=`basename ${PYTHON3}` ++ pydoc_cmd=`echo $python_cmd | sed s/python/pydoc/` ++ pydoc3_cmd=`echo $python_cmd | sed s/python/pydoc3/` ++ pydoc=${python_dir}/${pydoc_cmd} ++ pydoc3=${python_dir}/${pydoc3_cmd} ++ if check_file $pydoc ++ then ++ PYDOC=$pydoc ++ elif heck_file $pydoc3 ++ then ++ PYDOC=$pydoc3 ++ fi ++ fi + elif check_file ${python3_path}/bin/python3 + then + python3=${python3_path}/bin/python3 ++ if [ "$PYDOC" = "" ] ++ then ++ if check_file ${python3_path}/bin/pydoc ++ then ++ PYDOC=${python3_path}/bin/pydoc ++ elif check_file ${python3_path}/bin/pydoc3 ++ then ++ PYDOC=${python3_path}/bin/pydoc3 ++ fi ++ fi + elif check_file ${python3_path}/bin/python + then + python3=${python3_path}/bin/python ++ if [ "$PYDOC" = "" ] ++ then ++ if check_file ${python3_path}/bin/pydoc ++ then ++ PYDOC=${python3_path}/bin/pydoc ++ elif check_file ${python3_path}/bin/pydoc3 ++ then ++ PYDOC=${python3_path}/bin/pydoc3 ++ fi ++ fi + else + python3=0 + fi +@@ -1630,7 +1694,7 @@ + CCTOOLS_PYTHON3_2TO3=${python3_2to3} + CCTOOLS_PYTHON3_PATH=\$(CCTOOLS_INSTALL_DIR)/lib/python\$(CCTOOLS_PYTHON3_VERSION)/site-packages + +-CCTOOLS_PYDOC=$(which pydoc 2> /dev/null || which pydoc2 2> /dev/null || which pydoc3 > /dev/null) ++CCTOOLS_PYDOC=${PYDOC} + + CCTOOLS_SGE_PARAMETERS=$(echo ${sge_parameters} | sed -e 's/\$/\\\$\$/g') + diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py index fb546fc628..484e07cb3c 100644 --- a/var/spack/repos/builtin/packages/cctools/package.py +++ b/var/spack/repos/builtin/packages/cctools/package.py @@ -20,12 +20,15 @@ class Cctools(AutotoolsPackage): depends_on('openssl') depends_on('perl+shared', type=('build', 'run')) - depends_on('python@:3', type=('build', 'run')) + depends_on('python@:2.9', when='@6.1.1', type=('build', 'run')) + depends_on('python', type=('build', 'run')) depends_on('readline') depends_on('swig') # depends_on('xrootd') depends_on('zlib') patch('arm.patch', when='target=aarch64:') + patch('cctools_7.0.18.python.patch', when='@7.0.18') + patch('cctools_6.1.1.python.patch', when='@6.1.1') # Generally SYS_foo is defined to __NR_foo (sys/syscall.h) which # is then defined to a syscall number (asm/unistd_64.h). Certain @@ -41,10 +44,21 @@ class Cctools(AutotoolsPackage): def configure_args(self): args = [] + # For python + if self.spec.satisfies('^python@3:'): + args.append('--with-python-path=no') + args.append( + '--with-python3-path={0}'.format(self.spec['python'].prefix) + ) + else: + args.append('--with-python3-path=no') + args.append( + '--with-python-path={0}'.format(self.spec['python'].prefix) + ) # disable these bits - for p in ['mysql', 'python3', 'xrootd']: + for p in ['mysql', 'xrootd']: args.append('--with-{0}-path=no'.format(p)) # point these bits at the Spack installations - for p in ['openssl', 'perl', 'python', 'readline', 'swig', 'zlib']: + for p in ['openssl', 'perl', 'readline', 'swig', 'zlib']: args.append('--with-{0}-path={1}'.format(p, self.spec[p].prefix)) return args diff --git a/var/spack/repos/builtin/packages/cdhit/package.py b/var/spack/repos/builtin/packages/cdhit/package.py index a2ba8c72bb..b771184468 100644 --- a/var/spack/repos/builtin/packages/cdhit/package.py +++ b/var/spack/repos/builtin/packages/cdhit/package.py @@ -31,5 +31,5 @@ class Cdhit(MakefilePackage): make_args.append('zlib=no') make(*make_args) - def setup_environment(self, spack_env, run_env): - spack_env.set('PREFIX', prefix.bin) + def setup_build_environment(self, env): + env.set('PREFIX', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py index 7711128186..9b5cd81cc9 100644 --- a/var/spack/repos/builtin/packages/cdo/package.py +++ b/var/spack/repos/builtin/packages/cdo/package.py @@ -17,6 +17,7 @@ class Cdo(AutotoolsPackage): maintainers = ['skosukhin'] + version('1.9.8', sha256='f2660ac6f8bf3fa071cf2a3a196b3ec75ad007deb3a782455e80f28680c5252a', url='https://code.mpimet.mpg.de/attachments/download/20286/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.6', sha256='b31474c94548d21393758caa33f35cf7f423d5dfc84562ad80a2bdcb725b5585', url='https://code.mpimet.mpg.de/attachments/download/19299/cdo-1.9.6.tar.gz') @@ -51,7 +52,7 @@ class Cdo(AutotoolsPackage): depends_on('pkgconfig', type='build') - depends_on('netcdf', when='+netcdf') + 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. depends_on('hdf5+threadsafe', when='+netcdf') @@ -63,7 +64,7 @@ class Cdo(AutotoolsPackage): depends_on('hdf5+threadsafe', when='+hdf5') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') depends_on('libxml2', when='+libxml2') depends_on('proj@:5', when='+proj') depends_on('curl', when='+curl') @@ -79,7 +80,9 @@ class Cdo(AutotoolsPackage): msg='GCC 9 changed OpenMP data sharing behavior') def configure_args(self): - config_args = self.with_or_without('netcdf', activation_value='prefix') + config_args = self.with_or_without( + 'netcdf', + activation_value=lambda x: self.spec['netcdf-c'].prefix) if self.spec.variants['grib2'].value == 'eccodes': config_args.append('--with-eccodes=' + @@ -108,8 +111,9 @@ class Cdo(AutotoolsPackage): config_args += self.with_or_without('hdf5', activation_value='prefix') - config_args += self.with_or_without('udunits2', - activation_value='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') diff --git a/var/spack/repos/builtin/packages/ceed/README.md b/var/spack/repos/builtin/packages/ceed/README.md deleted file mode 100644 index 74bcae1d17..0000000000 --- a/var/spack/repos/builtin/packages/ceed/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This is a bundle for the CEED software suite. - -See https://ceed.exascaleproject.org for details. diff --git a/var/spack/repos/builtin/packages/ceed/package.py b/var/spack/repos/builtin/packages/ceed/package.py index 4d598c03db..1c5d48cadd 100644 --- a/var/spack/repos/builtin/packages/ceed/package.py +++ b/var/spack/repos/builtin/packages/ceed/package.py @@ -4,10 +4,9 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -import os -class Ceed(Package): +class Ceed(BundlePackage): """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 @@ -17,11 +16,7 @@ class Ceed(Package): homepage = "https://ceed.exascaleproject.org" - url = 'file://' + os.path.dirname(__file__) + '/README.md' - sha256 = '418c4b6b6a098648e25befdc28cdf9c351ecea9deaa660c0d9a674f8c6917122' - - version('2.0.0', sha256, expand=False) - version('1.0.0', sha256, expand=False) + version('2.0') variant('cuda', default=False, description='Build MAGMA; enable CUDA support in libCEED and OCCA') @@ -139,7 +134,3 @@ class Ceed(Package): # If using gcc version <= 4.8 build suite-sparse version <= 5.1.0 depends_on('suite-sparse@:5.1.0', when='@1.0.0%gcc@:4.8+mfem+petsc') - - # Dummy install - def install(self, spec, prefix): - install('README.md', prefix) diff --git a/var/spack/repos/builtin/packages/channelflow/package.py b/var/spack/repos/builtin/packages/channelflow/package.py index 4a22819678..fad8a1d018 100644 --- a/var/spack/repos/builtin/packages/channelflow/package.py +++ b/var/spack/repos/builtin/packages/channelflow/package.py @@ -12,13 +12,9 @@ class Channelflow(CMakePackage): """ homepage = 'https://github.com/epfl-ecps/channelflow' - url = 'https://github.com/epfl-ecps/channelflow.git' + git = 'https://github.com/epfl-ecps/channelflow.git' - version( - 'develop', - git='https://github.com/epfl-ecps/channelflow.git', - branch='master' - ) + version('master', branch='master') variant('shared', default=True, description='Build shared libs') variant('mpi', default=True, description='Enable MPI parallelism') @@ -38,8 +34,8 @@ class Channelflow(CMakePackage): # Support for different I/O formats depends_on('hdf5+cxx', when='+hdf5') - depends_on('netcdf', when='netcdf=serial') - depends_on('netcdf+mpi', when='netcdf=parallel') + depends_on('netcdf-c', when='netcdf=serial') + depends_on('netcdf-c+mpi', when='netcdf=parallel') # Python bindings depends_on('boost+python', when='+python') @@ -73,7 +69,7 @@ class Channelflow(CMakePackage): } args.append('-DWITH_NETCDF:STRING={0}'.format( - netcdf_str[spec.variants['netcdf'].value] + netcdf_str[spec.variants['netcdf-c'].value] )) # Set an MPI compiler for parallel builds diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py index 4183d923b7..575edf8557 100644 --- a/var/spack/repos/builtin/packages/charliecloud/package.py +++ b/var/spack/repos/builtin/packages/charliecloud/package.py @@ -14,6 +14,7 @@ class Charliecloud(MakefilePackage): git = "https://github.com/hpc/charliecloud.git" version('master', branch='master') + version('0.12', sha256='8a90f33406905cee935b5673a1159232b0b71845f4b6a26d28ca88f5d3f55891') version('0.11', sha256='942d3c7a74c978fd7420cb2b255e618f4f0acaafb6025160bc3a4deeb687ef3c') version('0.10', sha256='5cf00b170e7568750ca0b828c43c0857c39674860b480d757057450d69f1a21e') version('0.9.10', sha256='44e821b62f9c447749d3ed0d2b2e44d374153058814704a5543e83f42db2a45a') diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py index c667ff28ef..6c6f2535cf 100644 --- a/var/spack/repos/builtin/packages/charmpp/package.py +++ b/var/spack/repos/builtin/packages/charmpp/package.py @@ -82,17 +82,17 @@ class Charmpp(Package): provides('mpi@2', when='@6.7.1: build-target=AMPI backend={0}'.format(b)) provides('mpi@2', when='@6.7.1: build-target=LIBS backend={0}'.format(b)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('MPICC', join_path(self.prefix.bin, 'ampicc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'ampicxx')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'ampif77')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'ampif90')) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPICC', self.prefix.bin.ampicc) + env.set('MPICXX', self.prefix.bin.ampicxx) + env.set('MPIF77', self.prefix.bin.ampif77) + env.set('MPIF90', self.prefix.bin.ampif90) def setup_dependent_package(self, module, dependent_spec): - self.spec.mpicc = join_path(self.prefix.bin, 'ampicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'ampicxx') - self.spec.mpifc = join_path(self.prefix.bin, 'ampif90') - self.spec.mpif77 = join_path(self.prefix.bin, 'ampif77') + self.spec.mpicc = self.prefix.bin.ampicc + self.spec.mpicxx = self.prefix.bin.ampicxx + self.spec.mpifc = self.prefix.bin.ampif90 + self.spec.mpif77 = self.prefix.bin.ampif77 depends_on("mpi", when="backend=mpi") depends_on("papi", when="+papi") @@ -238,6 +238,14 @@ class Charmpp(Package): pass shutil.rmtree(join_path(prefix, "tmp")) + # A broken 'doc' link in the prefix can break the build. + # Remove it and replace it if it is broken. + try: + os.stat(prefix.doc) + except OSError: + os.remove(prefix.doc) + mkdirp(prefix.doc) + @run_after('install') @on_package_attributes(run_tests=True) def check_build(self): diff --git a/var/spack/repos/builtin/packages/check/package.py b/var/spack/repos/builtin/packages/check/package.py index ed7e933bc8..95076fdfc1 100644 --- a/var/spack/repos/builtin/packages/check/package.py +++ b/var/spack/repos/builtin/packages/check/package.py @@ -15,6 +15,8 @@ class Check(AutotoolsPackage): logging format.""" homepage = "https://libcheck.github.io/check/index.html" - url = "https://downloads.sourceforge.net/project/check/check/0.10.0/check-0.10.0.tar.gz" + url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz" + version('0.12.0', sha256='464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234') + version('0.11.0', sha256='24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616') version('0.10.0', sha256='f5f50766aa6f8fe5a2df752666ca01a950add45079aa06416b83765b1cf71052') diff --git a/var/spack/repos/builtin/packages/chgcentre/package.py b/var/spack/repos/builtin/packages/chgcentre/package.py new file mode 100644 index 0000000000..e94981e770 --- /dev/null +++ b/var/spack/repos/builtin/packages/chgcentre/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Chgcentre(CMakePackage): + """The chgcentre tool can be used + to change the phase centre of a measurement set.""" + + homepage = "https://sourceforge.net/p/wsclean/wiki/chgcentre/" + url = "https://downloads.sourceforge.net/project/wsclean/chgcentre-1.6/chgcentre-1.6.tar.bz2" + + version('1.6', sha256='5b14f9f56b900072c42dab2a8217cd399fb1bb50aae20f9e3b6ff30ec5b12008') + + depends_on('casacore') + depends_on('gsl') diff --git a/var/spack/repos/builtin/packages/chill/package.py b/var/spack/repos/builtin/packages/chill/package.py index 998f9500f2..215009c0b0 100644 --- a/var/spack/repos/builtin/packages/chill/package.py +++ b/var/spack/repos/builtin/packages/chill/package.py @@ -35,22 +35,27 @@ class Chill(AutotoolsPackage): bash = which('bash') bash('./bootstrap') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): rose_home = self.spec['rose'].prefix boost_home = self.spec['boost'].prefix iegen_home = self.spec['iegenlib'].prefix - spack_env.append_path('LD_LIBRARY_PATH', rose_home.lib) - spack_env.append_path('LD_LIBRARY_PATH', boost_home.lib) - spack_env.append_path('LD_LIBRARY_PATH', iegen_home.lib) + env.set('ROSEHOME', rose_home) + env.set('BOOSTHOME', boost_home) + env.set('IEGENHOME', iegen_home) - run_env.append_path('LD_LIBRARY_PATH', rose_home.lib) - run_env.append_path('LD_LIBRARY_PATH', boost_home.lib) - run_env.append_path('LD_LIBRARY_PATH', iegen_home.lib) + env.append_path('LD_LIBRARY_PATH', rose_home.lib) + env.append_path('LD_LIBRARY_PATH', boost_home.lib) + env.append_path('LD_LIBRARY_PATH', iegen_home.lib) - spack_env.set('ROSEHOME', rose_home) - spack_env.set('BOOSTHOME', boost_home) - spack_env.set('IEGENHOME', iegen_home) + def setup_run_environment(self, env): + rose_home = self.spec['rose'].prefix + boost_home = self.spec['boost'].prefix + iegen_home = self.spec['iegenlib'].prefix + + env.append_path('LD_LIBRARY_PATH', rose_home.lib) + env.append_path('LD_LIBRARY_PATH', boost_home.lib) + env.append_path('LD_LIBRARY_PATH', iegen_home.lib) def configure_args(self): args = ['--with-rose={0}'.format(self.spec['rose'].prefix), diff --git a/var/spack/repos/builtin/packages/chlorop/package.py b/var/spack/repos/builtin/packages/chlorop/package.py index 13e3af34bb..a206f539e6 100644 --- a/var/spack/repos/builtin/packages/chlorop/package.py +++ b/var/spack/repos/builtin/packages/chlorop/package.py @@ -29,5 +29,5 @@ class Chlorop(Package): os.rename('chlorop', 'bin/chlorop') install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): - run_env.set('CHLOROP', self.prefix) + def setup_run_environment(self, env): + env.set('CHLOROP', self.prefix) diff --git a/var/spack/repos/builtin/packages/cinch/package.py b/var/spack/repos/builtin/packages/cinch/package.py index caba1e469f..0c6aa3e8fe 100644 --- a/var/spack/repos/builtin/packages/cinch/package.py +++ b/var/spack/repos/builtin/packages/cinch/package.py @@ -23,6 +23,6 @@ class Cinch(Package): # (CMake) Header Only library so just copy install_tree(self.stage.source_path, prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix) - spack_env.set('CINCH_SOURCE_DIR', self.prefix) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('CMAKE_PREFIX_PATH', self.prefix) + env.set('CINCH_SOURCE_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py index d7d9d13b58..99760541b2 100644 --- a/var/spack/repos/builtin/packages/citcoms/package.py +++ b/var/spack/repos/builtin/packages/citcoms/package.py @@ -36,9 +36,9 @@ class Citcoms(AutotoolsPackage): conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+') conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '+ggrd' in self.spec: - spack_env.set('HC_HOME', self.spec['hc'].prefix) + env.set('HC_HOME', self.spec['hc'].prefix) def configure_args(self): args = ['CC={0}'.format(self.spec['mpi'].mpicc)] diff --git a/var/spack/repos/builtin/packages/clara/package.py b/var/spack/repos/builtin/packages/clara/package.py new file mode 100644 index 0000000000..24885d2a17 --- /dev/null +++ b/var/spack/repos/builtin/packages/clara/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Clara(CMakePackage): + """A simple to use, composable, command line parser for C++ 11 + and beyond.""" + + homepage = "https://github.com/catchorg/Clara" + url = "https://github.com/catchorg/Clara/archive/v1.1.5.tar.gz" + + maintainers = ['bvanessen'] + + variant('single_header', default=True, + description='Install a single header only.') + + version('1.1.5', sha256='767dc1718e53678cbea00977adcd0a8a195802a505aec3c537664cf25a173142') + version('1.1.4', sha256='ed3f9cc32e4ea6075c26caff63ee14a87e43dee1f3010c02bd041b9a0c86f72d') + version('1.1.3', sha256='a8132befb6b32bf447a74f7e758ac0b63e7bab86974aeb55ee2fd1cd77385f9e') + version('1.1.2', sha256='87c8e9440cc339c2a7b7efa0313070ff0081eca7780f098f6aff624ffa640c16') + version('1.1.1', sha256='10915a49a94d371f05af360d40e9cc9615ab86f200d261edf196a8ddd7efa7f8') + version('1.1.0', sha256='29ca29d843150aabad702356f79009f5b30dda05ac9674a064362b7edcba5477') + + @when('+single_header') + def cmake(self, spec, prefix): + pass + + @when('+single_header') + def build(self, spec, prefix): + pass + + @when('+single_header') + def install(self, spec, prefix): + mkdirp(prefix.include) + install_tree('single_include', prefix.include) diff --git a/var/spack/repos/builtin/packages/clustalo/package.py b/var/spack/repos/builtin/packages/clustal-omega/package.py index 59b7606e6c..7c32f1f096 100644 --- a/var/spack/repos/builtin/packages/clustalo/package.py +++ b/var/spack/repos/builtin/packages/clustal-omega/package.py @@ -6,7 +6,7 @@ from spack import * -class Clustalo(AutotoolsPackage): +class ClustalOmega(AutotoolsPackage): """Clustal Omega: the last alignment program you'll ever need.""" homepage = "http://www.clustal.org/omega/" diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index ac74bea71a..adeae27dd8 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -10,20 +10,23 @@ 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.4/cmake-3.15.4.tar.gz' + url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz' maintainers = ['chuckatkins'] - version('3.15.4', sha256='8a211589ea21374e49b25fc1fc170e2d5c7462b795f1b29c84dd0e984301ed7a') - version('3.15.3', sha256='13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5') - version('3.15.2', sha256='539088cb29a68e6d6a8fba5c00951e5e5b1a92c68fa38a83e1ed2f355933f768') - version('3.15.1', sha256='18dec548d8f8b04d53c60f9cedcebaa6762f8425339d1e2c889c383d3ccdd7f7') - version('3.15.0', sha256='0678d74a45832cacaea053d85a5685f3ed8352475e6ddf9fcb742ffca00199b5') - version('3.14.5', sha256='505ae49ebe3c63c595fa5f814975d8b72848447ee13b6613b0f8b96ebda18c06') - version('3.14.4', sha256='00b4dc9b0066079d10f16eed32ec592963a44e7967371d2f5077fd1670ff36d9') - version('3.14.3', sha256='215d0b64e81307182b29b63e562edf30b3875b834efdad09b3fcb5a7d2f4b632') - version('3.14.2', sha256='a3cbf562b99270c0ff192f692139e98c605f292bfdbc04d70da0309a5358e71e') - version('3.14.1', sha256='7321be640406338fc12590609c42b0fae7ea12980855c1be363d25dcd76bb25f') - version('3.14.0', sha256='aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502') + version('3.16.1', sha256='a275b3168fa8626eca4465da7bb159ff07c8c6cb0fb7179be59e12cbdfa725fd') + version('3.16.0', sha256='6da56556c63cab6e9a3e1656e8763ed4a841ac9859fefb63cbe79472e67e8c5f') + version('3.15.5', sha256='fbdd7cef15c0ced06bb13024bfda0ecc0dedbcaaaa6b8a5d368c75255243beb4') + version('3.15.4', sha256='8a211589ea21374e49b25fc1fc170e2d5c7462b795f1b29c84dd0e984301ed7a') + version('3.15.3', sha256='13958243a01365b05652fa01b21d40fa834f70a9e30efa69c02604e64f58b8f5') + version('3.15.2', sha256='539088cb29a68e6d6a8fba5c00951e5e5b1a92c68fa38a83e1ed2f355933f768') + version('3.15.1', sha256='18dec548d8f8b04d53c60f9cedcebaa6762f8425339d1e2c889c383d3ccdd7f7') + version('3.15.0', sha256='0678d74a45832cacaea053d85a5685f3ed8352475e6ddf9fcb742ffca00199b5') + version('3.14.5', sha256='505ae49ebe3c63c595fa5f814975d8b72848447ee13b6613b0f8b96ebda18c06') + version('3.14.4', sha256='00b4dc9b0066079d10f16eed32ec592963a44e7967371d2f5077fd1670ff36d9') + version('3.14.3', sha256='215d0b64e81307182b29b63e562edf30b3875b834efdad09b3fcb5a7d2f4b632') + version('3.14.2', sha256='a3cbf562b99270c0ff192f692139e98c605f292bfdbc04d70da0309a5358e71e') + version('3.14.1', sha256='7321be640406338fc12590609c42b0fae7ea12980855c1be363d25dcd76bb25f') + version('3.14.0', sha256='aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502') version('3.13.4', sha256='fdd928fee35f472920071d1c7f1a6a2b72c9b25e04f7a37b409349aef3f20e9b') version('3.13.3', sha256='665f905036b1f731a2a16f83fb298b1fb9d0f98c382625d023097151ad016b25') version('3.13.2', sha256='c925e7d2c5ba511a69f43543ed7b4182a7d446c274c7480d0e42cd933076ae25') @@ -71,6 +74,10 @@ class Cmake(Package): # See https://gitlab.kitware.com/cmake/cmake/merge_requests/2873 patch('cmake-macos-add-coreservices.patch', when='@3.11.0:3.13.3') + # Fix builds with XLF + Ninja generator + # https://gitlab.kitware.com/cmake/cmake/merge_requests/4075 + patch('https://gitlab.kitware.com/cmake/cmake/merge_requests/4075.patch', sha256="001736d791957225aadfc416b0cef915e8c8dcc04765b8e0fcbebf6058a05560", when="@3.15.5") + # We default ownlibs to true because it greatly speeds up the CMake # build, and CMake is built frequently. Also, CMake is almost always # a build dependency, and its libs will not interfere with others in @@ -116,6 +123,8 @@ class Cmake(Package): # https://gitlab.kitware.com/cmake/cmake/issues/18166 conflicts('%intel', when='@3.11.0:3.11.4') + conflicts('%intel@:14', when='@3.14:', + msg="Intel 14 has immature C++11 support") phases = ['bootstrap', 'build', 'install'] diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py index 31460e1645..ef8dd2f94b 100644 --- a/var/spack/repos/builtin/packages/cmor/package.py +++ b/var/spack/repos/builtin/packages/cmor/package.py @@ -24,8 +24,8 @@ class Cmor(AutotoolsPackage): variant('python', default=False, description='Enable PYTHON support') depends_on('uuid') - depends_on('netcdf') - depends_on('udunits2') + depends_on('netcdf-c') + depends_on('udunits') depends_on('hdf5@:1.8.19') extends('python', when='+python') diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index af1cc70c85..93acb633f3 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -38,6 +38,7 @@ class Conduit(Package): git = "https://github.com/LLNL/conduit.git" version('master', branch='master', submodules=True, preferred=True) + version('0.5.0', sha256='7efac668763d02bd0a2c0c1b134d9f5ee27e99008183905bb0512e5502b8b4fe') version('0.4.0', sha256='c228e6f0ce5a9c0ffb98e0b3d886f2758ace1a4b40d00f3f118542c0747c1f52') version('0.3.1', sha256='7b358ca03bb179876291d4a55d6a1c944b7407a80a588795b9e47940b1990521') version('0.3.0', sha256='52e9cf5720560e5f7492876c39ef2ea20ae73187338361d2744bdf67567da155') @@ -66,6 +67,9 @@ class Conduit(Package): variant("silo", default=False, description="Build Conduit Silo support") variant("adios", default=False, description="Build Conduit ADIOS support") + # zfp compression + variant("zfp", default=False, description="Build Conduit ZFP support") + # variants for dev-tools (docs, etc) variant("doc", default=False, description="Build Conduit's documentation") # doxygen support is wip, since doxygen has several dependencies @@ -94,6 +98,10 @@ class Conduit(Package): ####################### # I/O Packages ####################### + + ############### + # HDF5 + ############### # TODO: cxx variant is disabled due to build issue Cyrus # experienced on BGQ. When on, the static build tries # to link against shared libs. @@ -105,16 +113,27 @@ class Conduit(Package): depends_on("hdf5~cxx~mpi~fortran", when="+hdf5~hdf5_compat+shared") depends_on("hdf5~shared~cxx~mpi~fortran", when="+hdf5~hdf5_compat~shared") + ############### + # Silo + ############### # we are not using silo's fortran features depends_on("silo~fortran", when="+silo+shared") depends_on("silo~shared~fortran", when="+silo~shared") + ############### + # ADIOS + ############### depends_on("adios+mpi~hdf5+shared", when="+adios+mpi+shared") depends_on("adios+mpi~hdf5~shared~blosc", when="+adios+mpi~shared") depends_on("adios~mpi~hdf5+shared", when="+adios~mpi+shared") depends_on("adios~mpi~hdf5~shared~blosc", when="+adios~mpi~shared") ####################### + # ZFP + ####################### + depends_on("zfp", when="+zfp") + + ####################### # MPI ####################### depends_on("mpi", when="+mpi") @@ -123,10 +142,14 @@ class Conduit(Package): # Documentation related ####################### depends_on("py-sphinx", when="+python+doc", type='build') + depends_on("py-sphinx-rtd-theme", when="+python+doc", type='build') depends_on("doxygen", when="+doc+doxygen") - def setup_environment(self, spack_env, run_env): - spack_env.set('CTEST_OUTPUT_ON_FAILURE', '1') + # build phases used by this package + phases = ["configure", "build", "install"] + + def setup_build_environment(self, env): + env.set('CTEST_OUTPUT_ON_FAILURE', '1') def url_for_version(self, version): """ @@ -145,9 +168,9 @@ 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 install(self, spec, prefix): + def configure(self, spec, prefix): """ - Build and install Conduit. + Configure Conduit. """ with working_dir('spack-build', create=True): py_site_pkgs_dir = None @@ -157,6 +180,9 @@ class Conduit(Package): 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 @@ -170,17 +196,31 @@ class Conduit(Package): cmake_args.extend(["-C", host_cfg_fname, "../src"]) print("Configuring Conduit...") cmake(*cmake_args) + + def build(self, spec, prefix): + """ + Build Conduit. + """ + with working_dir('spack-build'): print("Building Conduit...") make() - # run unit tests if requested - if "+test" in spec and self.run_tests: - print("Running Conduit Unit Tests...") - make("test") - print("Installing Conduit...") + + @run_after('build') + @on_package_attributes(run_tests=True) + def test(self): + with working_dir('spack-build'): + 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(host_cfg_fname, prefix) + install(self.host_cfg_fname, prefix) @run_after('install') @on_package_attributes(run_tests=True) @@ -203,7 +243,7 @@ class Conduit(Package): example_src_dir] cmake(*cmake_args) make() - example = Executable('./example') + example = Executable('./conduit_example') example() print("Checking using-with-make example...") example_src_dir = join_path(install_prefix, @@ -216,7 +256,7 @@ class Conduit(Package): for example_file in example_files: shutil.copy(example_file, ".") make("CONDUIT_DIR={0}".format(install_prefix)) - example = Executable('./example') + example = Executable('./conduit_example') example() def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): @@ -366,12 +406,21 @@ class Conduit(Package): cfg.write("# MPI Support\n") if "+mpi" in spec: + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + mpifc_path = spec['mpi'].mpifc + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + mpifc_path = "ftn" cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", - spec['mpi'].mpicxx)) - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", - spec['mpi'].mpifc)) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') if os.path.isfile(mpiexe_bin): # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE @@ -385,6 +434,15 @@ class Conduit(Package): else: cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + ####################### + # ZFP + ####################### + cfg.write("# zfp from spack \n") + if "+zfp" in spec: + cfg.write(cmake_cache_entry("ZFP_DIR", spec['zfp'].prefix)) + else: + cfg.write("# zfp not built by spack \n") + ####################################################################### # I/O Packages ####################################################################### diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py index 3b990ebd6a..de06a9e780 100644 --- a/var/spack/repos/builtin/packages/converge/package.py +++ b/var/spack/repos/builtin/packages/converge/package.py @@ -215,7 +215,7 @@ class Converge(Package): if not os.path.exists('make_surface'): os.symlink(make_surface, 'make_surface') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # CONVERGE searches for a valid license file in: # $CONVERGE_ROOT/license/license.lic - run_env.set('CONVERGE_ROOT', self.prefix) + env.set('CONVERGE_ROOT', self.prefix) diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py index ff5239900c..3c5dd1721f 100644 --- a/var/spack/repos/builtin/packages/coreutils/package.py +++ b/var/spack/repos/builtin/packages/coreutils/package.py @@ -6,14 +6,14 @@ from spack import * -class Coreutils(AutotoolsPackage): +class Coreutils(AutotoolsPackage, GNUMirrorPackage): """The GNU Core Utilities are the basic file, shell and text manipulation utilities of the GNU operating system. These are the core utilities which are expected to exist on every operating system. """ homepage = "http://www.gnu.org/software/coreutils/" - url = "https://ftpmirror.gnu.org/coreutils/coreutils-8.26.tar.xz" + gnu_mirror_path = "coreutils/coreutils-8.26.tar.xz" version('8.29', sha256='92d0fa1c311cacefa89853bdb53c62f4110cdfda3820346b59cbd098f40f955e') version('8.26', sha256='155e94d748f8e2bc327c66e0cbebdb8d6ab265d2f37c3c928f7bf6c3beba9a8e') diff --git a/var/spack/repos/builtin/packages/cosbench/package.py b/var/spack/repos/builtin/packages/cosbench/package.py new file mode 100644 index 0000000000..8057a2eaee --- /dev/null +++ b/var/spack/repos/builtin/packages/cosbench/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Cosbench(Package): + """ + COSBench is a benchmarking tool to measure the performance of + Cloud Object Storage services. Object storage is an emerging + technology that is different from traditional file systems + (e.g., NFS) or block device systems (e.g., iSCSI). Amazon S3 + and Openstack* swift are well-known object storage solutions + """ + + homepage = "https://github.com/intel-cloud/cosbench" + url = "https://github.com/intel-cloud/cosbench/releases/download/v0.4.2/0.4.2.zip" + + version('0.4.2', sha256='9e82518d4fac3c23cfac47c8a571d4a61bf8e5f11286606c79a0f923e983dc61') + version('0.4.1.0', sha256='a044cd232b3cc376802aa6a4a697988ec690a8b1d70040641710066acd322c5a') + version('0.4.0.1', sha256='384e4de218a9a61040f45cf9aa0a555e88ff25fb2b5cd11c540627cd604b4961') + + depends_on('java@6:', type='run') + depends_on('curl@7.22.0:', type='run') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 36b94926da..0cbcf8f56e 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -50,7 +50,7 @@ class Cp2k(MakefilePackage, CudaPackage): variant('cuda_arch', description='CUDA architecture', default='none', - values=('none', '35', '37', '60'), + values=('none', '35', '37', '60', '70'), multi=False) variant('cuda_arch_35_k20x', default=False, description=('CP2K (resp. DBCSR) has specific parameter sets for' @@ -121,8 +121,6 @@ class Cp2k(MakefilePackage, CudaPackage): # a consistent/compat. combination is pulled in to the dependency graph. depends_on('sirius+fortran+vdwxc+shared+openmp', when='+sirius+openmp') depends_on('sirius+fortran+vdwxc+shared~openmp', when='+sirius~openmp') - # to get JSON-based UPF format support used in combination with SIRIUS - depends_on('json-fortran', when='+sirius') # the bundled libcusmm uses numpy in the parameter prediction (v7+) depends_on('py-numpy', when='@7:+cuda', type='build') @@ -370,10 +368,6 @@ class Cp2k(MakefilePackage, CudaPackage): fcflags += ['-I{0}'.format(os.path.join(sirius.prefix, 'fortran'))] libs += list(sirius.libs) - cppflags.append('-D__JSON') - fcflags += ['$(shell pkg-config --cflags json-fortran)'] - libs += ['$(shell pkg-config --libs json-fortran)'] - if self.spec.satisfies('+cuda'): cppflags += ['-D__ACC'] libs += ['-lcudart', '-lnvrtc', '-lcuda'] @@ -394,6 +388,7 @@ class Cp2k(MakefilePackage, CudaPackage): '35': 'K40', '37': 'K80', '60': 'P100', + '70': 'V100', }[cuda_arch] if (cuda_arch == '35' @@ -442,6 +437,7 @@ class Cp2k(MakefilePackage, CudaPackage): mkf.write('CC = {0.compiler.cc}\n'.format(self)) if '%intel' in self.spec: + intel_bin_dir = ancestor(self.compiler.cc) # CPP is a commented command in Intel arch of CP2K # This is the hack through which cp2k developers avoid doing : # @@ -449,7 +445,7 @@ class Cp2k(MakefilePackage, CudaPackage): # # and use `-fpp` instead mkf.write('CPP = # {0.compiler.cc} -P\n\n'.format(self)) - mkf.write('AR = xiar -r\n\n') + mkf.write('AR = {0}/xiar -r\n\n'.format(intel_bin_dir)) else: mkf.write('CPP = # {0.compiler.cc} -E\n\n'.format(self)) mkf.write('AR = ar -r\n\n') diff --git a/var/spack/repos/builtin/packages/cppunit/package.py b/var/spack/repos/builtin/packages/cppunit/package.py index b85f06218a..166358f540 100644 --- a/var/spack/repos/builtin/packages/cppunit/package.py +++ b/var/spack/repos/builtin/packages/cppunit/package.py @@ -21,8 +21,8 @@ class Cppunit(AutotoolsPackage): multi=False, description='Use the specified C++ standard when building.') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): cxxstd = self.spec.variants['cxxstd'].value cxxstdflag = '' if cxxstd == 'default' else \ getattr(self.compiler, 'cxx{0}_flag'.format(cxxstd)) - spack_env.append_flags('CXXFLAGS', cxxstdflag) + env.append_flags('CXXFLAGS', cxxstdflag) diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py index 0adaebf9c3..0a29b1b194 100644 --- a/var/spack/repos/builtin/packages/cppzmq/package.py +++ b/var/spack/repos/builtin/packages/cppzmq/package.py @@ -18,5 +18,5 @@ class Cppzmq(CMakePackage): version('4.2.2', sha256='3ef50070ac5877c06c6bb25091028465020e181bbfd08f110294ed6bc419737d') depends_on('cmake@3.0.0:', type='build') - depends_on('zeromq@4.2.5', when='@4.3.0') - depends_on('zeromq@4.2.2', when='@4.2.2') + depends_on('libzmq@4.2.5', when='@4.3.0') + depends_on('libzmq@4.2.2', when='@4.2.2') diff --git a/var/spack/repos/builtin/packages/cquery/package.py b/var/spack/repos/builtin/packages/cquery/package.py index 40edd13ce2..86ad88db71 100644 --- a/var/spack/repos/builtin/packages/cquery/package.py +++ b/var/spack/repos/builtin/packages/cquery/package.py @@ -11,10 +11,10 @@ class Cquery(CMakePackage): """ homepage = "https://github.com/cquery-project/cquery" - url = "https://github.com/cquery-project/cquery/archive/v20180718.tar.gz" + git = "https://github.com/cquery-project/cquery.git" - version('v20180823', commit='70c755b2e390d3edfb594a84a7531beb26b2bc07', - submodules=True, git='https://github.com/cquery-project/cquery') + version('2018-08-23', commit='70c755b2e390d3edfb594a84a7531beb26b2bc07', + submodules=True) depends_on('llvm') diff --git a/var/spack/repos/builtin/packages/cryptsetup/package.py b/var/spack/repos/builtin/packages/cryptsetup/package.py index 1ff2c98c66..05b7041485 100644 --- a/var/spack/repos/builtin/packages/cryptsetup/package.py +++ b/var/spack/repos/builtin/packages/cryptsetup/package.py @@ -47,7 +47,10 @@ class Cryptsetup(AutotoolsPackage): ] return args - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Prepend the sbin directory to PATH.""" - spack_env.prepend_path('PATH', self.prefix.sbin) - run_env.prepend_path('PATH', self.prefix.sbin) + env.prepend_path('PATH', self.prefix.sbin) + + def setup_dependent_run_environment(self, env, dependent_spec): + """Prepend the sbin directory to PATH.""" + env.prepend_path('PATH', self.prefix.sbin) diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py index 9076ac78b1..17411dcddb 100644 --- a/var/spack/repos/builtin/packages/cub/package.py +++ b/var/spack/repos/builtin/packages/cub/package.py @@ -11,7 +11,7 @@ class Cub(Package): and other utilities for CUDA kernel programming.""" homepage = "https://nvlabs.github.com/cub" - url = "https://github.com/NVlabs/cub/archive/1.6.4.zip" + url = "https://github.com/NVlabs/cub/archive/1.7.1.zip" version('1.7.1', sha256='50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d') diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index f388bf4c73..97b26bf93b 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -7,6 +7,42 @@ from spack import * from glob import glob from llnl.util.filesystem import LibraryList import os +import platform + +# 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 +# running spack. See #13827 for context. +# If you need to add a new version, please be aware that: +# - versions in the following dict are automatically added to the package +# - version tuple must be in the form (checksum, url) +# - checksum must be sha256 +# - 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 = { + '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')}, + '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')}, + '10.0.130': { + 'Linux-x86_64': ('92351f0e4346694d0fcb4ea1539856c9eb82060c25654463bfd8574ec35ee39a', 'https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux')}, + '9.2.88': { + 'Linux-x86_64': ('8d02cc2a82f35b456d447df463148ac4cc823891be8820948109ad6186f2667c', 'https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda_9.2.88_396.26_linux')}, + '9.1.85': { + 'Linux-x86_64': ('8496c72b16fee61889f9281449b5d633d0b358b46579175c275d85c9205fe953', 'https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux')}, + '9.0.176': { + 'Linux-x86_64': ('96863423feaa50b5c1c5e1b9ec537ef7ba77576a3986652351ae43e66bcd080c', 'https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run')}, + '8.0.61': { + 'Linux-x86_64': ('9ceca9c2397f841024e03410bfd6eabfd72b384256fbed1c1e4834b5b0ce9dc4', 'https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run')}, + '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')}, + '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')}, +} class Cuda(Package): @@ -20,26 +56,11 @@ class Cuda(Package): homepage = "https://developer.nvidia.com/cuda-zone" - version('10.1.243', - sha256='e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31', - expand=False, - url="https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run") - version('10.0.130', sha256='92351f0e4346694d0fcb4ea1539856c9eb82060c25654463bfd8574ec35ee39a', expand=False, - url="https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux") - version('9.2.88', sha256='8d02cc2a82f35b456d447df463148ac4cc823891be8820948109ad6186f2667c', expand=False, - url="https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda_9.2.88_396.26_linux") - version('9.1.85', sha256='8496c72b16fee61889f9281449b5d633d0b358b46579175c275d85c9205fe953', expand=False, - url="https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux") - version('9.0.176', sha256='96863423feaa50b5c1c5e1b9ec537ef7ba77576a3986652351ae43e66bcd080c', expand=False, - url="https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run") - version('8.0.61', sha256='9ceca9c2397f841024e03410bfd6eabfd72b384256fbed1c1e4834b5b0ce9dc4', expand=False, - url="https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run") - version('8.0.44', sha256='64dc4ab867261a0d690735c46d7cc9fc60d989da0d69dc04d1714e409cacbdf0', expand=False, - url="https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run") - version('7.5.18', sha256='08411d536741075131a1858a68615b8b73c51988e616e83b835e4632eea75eec', expand=False, - url="http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run") - version('6.5.14', sha256='f3e527f34f317314fe8fcd8c85f10560729069298c0f73105ba89225db69da48', expand=False, - url="http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run") + 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) # macOS Mojave drops NVIDIA graphics card support -- official NVIDIA # drivers do not exist for Mojave. See @@ -52,8 +73,8 @@ class Cuda(Package): # Mojave support -- only macOS High Sierra 10.13 is supported. conflicts('arch=darwin-mojave-x86_64') - def setup_environment(self, spack_env, run_env): - run_env.set('CUDA_HOME', self.prefix) + def setup_run_environment(self, env): + env.set('CUDA_HOME', self.prefix) def install(self, spec, prefix): runfile = glob(join_path(self.stage.source_path, 'cuda*_linux*'))[0] diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py index b56aacab4f..7a0014e2d4 100644 --- a/var/spack/repos/builtin/packages/cudnn/package.py +++ b/var/spack/repos/builtin/packages/cudnn/package.py @@ -13,35 +13,177 @@ class Cudnn(Package): homepage = "https://developer.nvidia.com/cudnn" - version('7.5.1-10.1-x86_64', sha256='2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.1-linux-x64-v7.5.1.10.tgz') - version('7.5.1-10.1-ppc64le', sha256='a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.1-linux-ppc64le-v7.5.1.10.tgz') - version('7.5.1-10.0-x86_64', sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.0-linux-x64-v7.5.1.10.tgz') - version('7.5.1-10.0-ppc64le', sha256='d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.1/cudnn-10.0-linux-ppc64le-v7.5.1.10.tgz') - version('7.5.0-10.1-x86_64', sha256='c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.1-linux-x64-v7.5.0.56.tgz') - version('7.5.0-10.1-ppc64le', sha256='15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.1-linux-ppc64le-v7.5.0.56.tgz') - version('7.5.0-10.0-x86_64', sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.0-linux-x64-v7.5.0.56.tgz') - version('7.5.0-10.0-ppc64le', sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a', - url='https://developer.download.nvidia.com/compute/redist/cudnn/v7.5.0/cudnn-10.0-linux-ppc64le-v7.5.0.56.tgz') - version('7.3.0', sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b', - url='http://developer.download.nvidia.com/compute/redist/cudnn/v7.3.0/cudnn-9.0-linux-x64-v7.3.0.29.tgz') - version('7.2.1', sha256='cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37', - url='http://developer.download.nvidia.com/compute/redist/cudnn/v7.2.1/cudnn-9.0-linux-x64-v7.2.1.38.tgz') - version('6.0', sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c', - url='http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz') - version('5.1', sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce', - url='http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz') - - depends_on('cuda@8:', when='@5.1:@7') - depends_on('cuda@9:', when='@7.2:@7.4') - depends_on('cuda@10:', when='@7.5.0-10.0-ppc64le,7.5.0-10.0-x86_64,7.5.1-10.0-ppc64le,7.5.1-10.0-x86_64') - depends_on('cuda@10.1:', when='@7.5.0-10.1-ppc64le,7.5.0-10.1-x86_64,7.5.1-10.1-ppc64le,7.5.1-10.1-x86_64') + # 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'] + + # cuDNN 7.6.5 + version('7.6.5.32-10.1-linux-x64', + sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3', + preferred=True) + 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') + + # 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') + + # 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') + + # 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') + + version('7.5.1.10-10.0-linux-x64', + sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985') + version('7.5.1.10-10.0-linux-ppc64le', + sha256='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') + + version('7.5.0.56-10.0-linux-x64', + sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781') + version('7.5.0.56-10.0-linux-ppc64le', + sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a') + + # cuDNN 7.3.0 + version('7.3.0.29-9.0-linux-x64', + sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b') + + # cuDNN 7.2.1 + version('7.2.1.38-9.0-linux-x64', + sha256='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') + + # cuDNN 6.0 + version('6.0-8.0-linux-x64', + sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c') + + # cuDNN 5.1 + version('5.1-8.0-linux-x64', + sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce') + + # 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') + + def url_for_version(self, version): + url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-v{2}.tgz' + + if version >= Version('7.2'): + directory = version[:3] + ver = version[:4] + cuda = version[4:] + elif version >= Version('7.1'): + directory = version[:3] + ver = version[:2] + cuda = version[3:] + elif version >= Version('7.0'): + directory = version[:3] + ver = version[0] + cuda = version[3:] + else: + directory = version[:2] + ver = version[:2] + cuda = version[2:] + + return url.format(directory, cuda, ver) def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/cvs/package.py b/var/spack/repos/builtin/packages/cvs/package.py index 0ddf296eb3..eafd2ad5bd 100644 --- a/var/spack/repos/builtin/packages/cvs/package.py +++ b/var/spack/repos/builtin/packages/cvs/package.py @@ -7,10 +7,10 @@ from spack import * -class Cvs(AutotoolsPackage): +class Cvs(AutotoolsPackage, GNUMirrorPackage): """CVS a very traditional source control system""" homepage = "http://www.nongnu.org/cvs/" - url = "https://ftpmirror.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2" + 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/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py index b92de9106a..053d72aa2f 100644 --- a/var/spack/repos/builtin/packages/czmq/package.py +++ b/var/spack/repos/builtin/packages/czmq/package.py @@ -19,8 +19,8 @@ class Czmq(AutotoolsPackage): depends_on('automake', type='build') depends_on('autoconf', type='build') depends_on('pkgconfig', type='build') - depends_on("libuuid") - depends_on('zeromq') + depends_on('libuuid') + depends_on('libzmq') def autoreconf(self, spec, prefix): autogen = Executable('./autogen.sh') diff --git a/var/spack/repos/builtin/packages/damaris/package.py b/var/spack/repos/builtin/packages/damaris/package.py index 6c3ec891bd..6988973a7b 100644 --- a/var/spack/repos/builtin/packages/damaris/package.py +++ b/var/spack/repos/builtin/packages/damaris/package.py @@ -12,10 +12,10 @@ class Damaris(CMakePackage): targeting large-scale, MPI-based HPC simulations.""" homepage = "https://project.inria.fr/damaris/" - url = "https://gitlab.inria.fr/Damaris/damaris" + git = "https://gitlab.inria.fr/Damaris/damaris.git" - version('master', git='https://gitlab.inria.fr/Damaris/damaris.git') - version('1.3.1', git='https://gitlab.inria.fr/Damaris/damaris.git', tag='v1.3.1', preferred=True) + version('master', branch='master') + version('1.3.1', tag='v1.3.1') variant('fortran', default=True, description='Enables Fortran support') variant('hdf5', default=False, description='Enables the HDF5 storage plugin') diff --git a/var/spack/repos/builtin/packages/damselfly/package.py b/var/spack/repos/builtin/packages/damselfly/package.py index 66156fbf61..5267737fc7 100644 --- a/var/spack/repos/builtin/packages/damselfly/package.py +++ b/var/spack/repos/builtin/packages/damselfly/package.py @@ -14,3 +14,4 @@ class Damselfly(CMakePackage): version('1.0', sha256='560e1b800c9036766396a1033c00914bd8d181b911e87140c3ac8879baf6545a') depends_on('cmake@2.6:', type='build') + depends_on('mpi') diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index 0b3c770ded..0ae41c3ee5 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -54,7 +54,7 @@ class DarshanRuntime(Package): make() make('install') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # default path for log file, could be user or site specific setting - darshan_log_dir = '%s' % os.environ['HOME'] - run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir) + darshan_log_dir = os.environ['HOME'] + env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir) diff --git a/var/spack/repos/builtin/packages/datamash/package.py b/var/spack/repos/builtin/packages/datamash/package.py index dd79b61af8..9b90a9ae3e 100644 --- a/var/spack/repos/builtin/packages/datamash/package.py +++ b/var/spack/repos/builtin/packages/datamash/package.py @@ -6,13 +6,13 @@ from spack import * -class Datamash(AutotoolsPackage): +class Datamash(AutotoolsPackage, GNUMirrorPackage): """GNU datamash is a command-line program which performs basic numeric, textual and statistical operations on input textual data files. """ homepage = "https://www.gnu.org/software/datamash/" - url = "https://ftpmirror.gnu.org/datamash/datamash-1.0.5.tar.gz" + gnu_mirror_path = "datamash/datamash-1.0.5.tar.gz" version('1.3', sha256='eebb52171a4353aaad01921384098cf54eb96ebfaf99660e017f6d9fc96657a6') version('1.1.0', sha256='a9e5acc86af4dd64c7ac7f6554718b40271aa67f7ff6e9819bdd919a25904bb0') diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py index d227d4ea3c..2f38710a58 100644 --- a/var/spack/repos/builtin/packages/dataspaces/package.py +++ b/var/spack/repos/builtin/packages/dataspaces/package.py @@ -20,9 +20,7 @@ class Dataspaces(AutotoolsPackage): homepage = "http://www.dataspaces.org" url = "https://dataspaces.rdi2.rutgers.edu/downloads/dataspaces-1.6.2.tar.gz" - git = "https://github.com/melrom/dataspaces.git" - version('develop', branch='master') version('1.8.0', sha256='7f204bb3c03c2990f5a2d76a29185466b584793c63ada03e5e694627e6060605') version('1.6.2', sha256='3c43d551c1e8198a4ab269c83928e1dc6f8054e6d41ceaee45155d91a48cf9bf') diff --git a/var/spack/repos/builtin/packages/davix/package.py b/var/spack/repos/builtin/packages/davix/package.py index 381251a62d..e1b66e6d39 100644 --- a/var/spack/repos/builtin/packages/davix/package.py +++ b/var/spack/repos/builtin/packages/davix/package.py @@ -10,7 +10,7 @@ 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.7/davix-0.6.7.tar.gz" + 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 diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py index 0fef73b8fa..82a1cca300 100644 --- a/var/spack/repos/builtin/packages/dbcsr/package.py +++ b/var/spack/repos/builtin/packages/dbcsr/package.py @@ -10,9 +10,9 @@ class Dbcsr(CMakePackage): """Distributed Block Compressed Sparse Row matrix library.""" homepage = "https://github.com/cp2k/dbcsr" - url = "https://github.com/cp2k/dbcsr/archive/v1.0.0-rc.0.tar.gz" + git = "https://github.com/cp2k/dbcsr.git" - version('develop', git='https://github.com/cp2k/dbcsr.git', branch='develop') + version('develop', branch='develop') variant('mpi', default=True, description='Compile with MPI') variant('openmp', default=False, description='Build with OpenMP support') diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py index a88cdd1529..1eab86c81e 100644 --- a/var/spack/repos/builtin/packages/dd4hep/package.py +++ b/var/spack/repos/builtin/packages/dd4hep/package.py @@ -18,16 +18,18 @@ class Dd4hep(CMakePackage): homepage = "https://dd4hep.web.cern.ch/dd4hep/" git = "https://github.com/AIDASoft/DD4hep.git" - version('develop', branch='master') - version('1.10.0', commit='9835d1813c07d9d5850d1e68276c0171d1726801') + version('master', branch='master') + version('1.11.0', commit='280c7d748d56a704699408ac8e57815d029b169a') + version('1.10.0', commit='9835d1813c07d9d5850d1e68276c0171d1726801') variant('xercesc', default=False, description="Enable 'Detector Builders' based on XercesC") variant('geant4', default=False, description="Enable the simulation part based on Geant4") variant('testing', default=False, description="Enable and build tests") - depends_on('cmake @3.3:', type='build') - depends_on('root @6.08: +gdml +opengl +x') + depends_on('cmake @3.12:', type='build') depends_on('boost @1.49:') + depends_on('root @6.08: +gdml +math +opengl +python +x') + depends_on('python') depends_on('xerces-c', when='+xercesc') depends_on('geant4@10.2.2:', when='+geant4') @@ -38,6 +40,9 @@ class Dd4hep(CMakePackage): "-DCMAKE_CXX_STANDARD={0}".format(cxxstd), "-DDD4HEP_USE_XERCESC={0}".format(spec.satisfies('+xercesc')), "-DDD4HEP_USE_GEANT4={0}".format(spec.satisfies('+geant4')), - "-DBUILD_TESTING={0}".format(spec.satisfies('+testing')) + "-DBUILD_TESTING={0}".format(spec.satisfies('+testing')), + "-DBOOST_ROOT={0}".format(spec['boost'].prefix), + "-DBoost_NO_BOOST_CMAKE=ON", + "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command.path), ] return args 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 53329fcfc6..660859fdc3 100644 --- a/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py +++ b/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py @@ -17,5 +17,5 @@ class DealiiParameterGui(CMakePackage): depends_on('qt') - def setup_environment(self, spack_env, run_env): - run_env.set('PARAMETER_GUI_DIR', self.prefix) + def setup_run_environment(self, env): + env.set('PARAMETER_GUI_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 109b67da2d..f44b25e539 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -66,6 +66,8 @@ class Dealii(CMakePackage, CudaPackage): description='Compile with Slepc (only with Petsc and MPI)') variant('symengine', default=True, description='Compile with SymEngine') + variant('threads', default=True, + description='Compile with multi-threading via TBB') variant('trilinos', default=True, description='Compile with Trilinos (only with MPI)') variant('python', default=False, @@ -95,7 +97,7 @@ class Dealii(CMakePackage, CudaPackage): patch('boost_1.68.0.patch', level=1, when='@1.68.0'), - ], + ], when='~python') depends_on('boost@1.59.0:1.63,1.65.1,1.67.0:+thread+system+serialization+iostreams+python', patches=[patch('boost_1.65.1_singleton.patch', @@ -104,13 +106,12 @@ class Dealii(CMakePackage, CudaPackage): patch('boost_1.68.0.patch', level=1, when='@1.68.0'), - ], + ], when='+python') # bzip2 is not needed since 9.0 depends_on('bzip2', when='@:8.99') depends_on('lapack') depends_on('suite-sparse') - depends_on('tbb') depends_on('zlib') # optional dependencies @@ -137,7 +138,7 @@ class Dealii(CMakePackage, CudaPackage): depends_on('metis@5:~int64', when='+metis~int64') depends_on('muparser', when='+muparser') depends_on('nanoflann', when='@9.0:+nanoflann') - depends_on('netcdf+mpi', when='+netcdf+mpi') + depends_on('netcdf-c+mpi', when='+netcdf+mpi') depends_on('netcdf-cxx', when='+netcdf+mpi') depends_on('oce', when='+oce') depends_on('p4est', when='+p4est+mpi') @@ -159,6 +160,7 @@ class Dealii(CMakePackage, CudaPackage): # 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 depends_on('symengine@0.4:', when='@9.1:+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') @@ -233,7 +235,6 @@ class Dealii(CMakePackage, CudaPackage): lapack_blas_headers = spec['lapack'].headers + spec['blas'].headers options.extend([ '-DDEAL_II_COMPONENT_EXAMPLES=ON', - '-DDEAL_II_WITH_THREADS:BOOL=ON', '-DBOOST_DIR=%s' % spec['boost'].prefix, # CMake's FindBlas/Lapack may pickup system's blas/lapack instead # of Spack's. Be more specific to avoid this. @@ -247,7 +248,13 @@ class Dealii(CMakePackage, CudaPackage): '-DDEAL_II_ALLOW_BUNDLED=OFF' ]) - if (spec.satisfies('^intel-parallel-studio+tbb')): + if '+threads' in spec: + options.append('-DDEAL_II_WITH_THREADS:BOOL=ON') + else: + options.extend(['-DDEAL_II_WITH_THREADS:BOOL=OFF']) + + if (spec.satisfies('^intel-parallel-studio+tbb') + and '+threads' in spec): # deal.II/cmake will have hard time picking up TBB from Intel. tbb_ver = '.'.join(('%s' % spec['tbb'].version).split('.')[1:]) options.extend([ @@ -393,13 +400,13 @@ class Dealii(CMakePackage, CudaPackage): # since Netcdf is spread among two, need to do it by hand: if '+netcdf' in spec and '+mpi' in spec: - netcdf = spec['netcdf-cxx'].libs + spec['netcdf'].libs + netcdf = spec['netcdf-cxx'].libs + spec['netcdf-c'].libs options.extend([ '-DNETCDF_FOUND=true', '-DNETCDF_LIBRARIES=%s' % netcdf.joined(';'), '-DNETCDF_INCLUDE_DIRS=%s;%s' % ( spec['netcdf-cxx'].prefix.include, - spec['netcdf'].prefix.include), + spec['netcdf-c'].prefix.include), ]) else: options.extend([ @@ -447,5 +454,5 @@ class Dealii(CMakePackage, CudaPackage): return options - def setup_environment(self, spack_env, run_env): - run_env.set('DEAL_II_DIR', self.prefix) + def setup_run_environment(self, env): + env.set('DEAL_II_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/deconseq-standalone/package.py b/var/spack/repos/builtin/packages/deconseq-standalone/package.py index ac451ff95a..8516902cc6 100644 --- a/var/spack/repos/builtin/packages/deconseq-standalone/package.py +++ b/var/spack/repos/builtin/packages/deconseq-standalone/package.py @@ -37,5 +37,5 @@ class DeconseqStandalone(Package): chmod('+x', join_path(prefix.bin, 'deconseq.pl')) chmod('+x', join_path(prefix.bin, 'splitFasta.pl')) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PERL5LIB', prefix) + def setup_run_environment(self, env): + env.prepend_path('PERL5LIB', self.prefix) diff --git a/var/spack/repos/builtin/packages/dejagnu/package.py b/var/spack/repos/builtin/packages/dejagnu/package.py index b7a8606469..8b91fb6874 100644 --- a/var/spack/repos/builtin/packages/dejagnu/package.py +++ b/var/spack/repos/builtin/packages/dejagnu/package.py @@ -6,12 +6,12 @@ from spack import * -class Dejagnu(AutotoolsPackage): +class Dejagnu(AutotoolsPackage, GNUMirrorPackage): """DejaGnu is a framework for testing other programs. Its purpose is to provide a single front end for all tests.""" homepage = "https://www.gnu.org/software/dejagnu/" - url = "https://ftpmirror.gnu.org/dejagnu/dejagnu-1.6.tar.gz" + gnu_mirror_path = "dejagnu/dejagnu-1.6.tar.gz" version('1.6', sha256='00b64a618e2b6b581b16eb9131ee80f721baa2669fa0cdee93c500d1a652d763') version('1.4.4', sha256='d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d') diff --git a/var/spack/repos/builtin/packages/dialign/package.py b/var/spack/repos/builtin/packages/dialign/package.py index 5a8e6b7d7c..bad921c42e 100644 --- a/var/spack/repos/builtin/packages/dialign/package.py +++ b/var/spack/repos/builtin/packages/dialign/package.py @@ -24,5 +24,5 @@ class Dialign(MakefilePackage): mkdirp(prefix.share) install_tree('dialign2_dir', prefix.share) - def setup_environment(self, spack_env, run_env): - run_env.set('DIALIGN2_DIR', self.prefix.share) + def setup_run_environment(self, env): + env.set('DIALIGN2_DIR', self.prefix.share) diff --git a/var/spack/repos/builtin/packages/diamond/fix_narrowing_error.patch b/var/spack/repos/builtin/packages/diamond/fix_narrowing_error.patch new file mode 100644 index 0000000000..597f245918 --- /dev/null +++ b/var/spack/repos/builtin/packages/diamond/fix_narrowing_error.patch @@ -0,0 +1,18 @@ +--- diamond-0.9.25/src/basic/score_matrix.cpp.org 2019-12-10 15:16:46.549126025 +0900 ++++ diamond-0.9.25/src/basic/score_matrix.cpp 2019-12-10 15:17:08.721466092 +0900 +@@ -36,7 +36,7 @@ + + const double INT2_MAX = std::numeric_limits<double>::max(); + +-const char DNA_scores[5 * 5] = { ++const signed char DNA_scores[5 * 5] = { + 2, -3, -3, -3, -3, + -3,2,-3,-3,-3, + -3,-3,2,-3,-3, +@@ -317,4 +317,4 @@ + constants[3] = lambda; + constants[4] = K; + constants_ = constants; +-} +\ No newline at end of file ++} diff --git a/var/spack/repos/builtin/packages/diamond/package.py b/var/spack/repos/builtin/packages/diamond/package.py index 2d52d22e23..7ca6c0d880 100644 --- a/var/spack/repos/builtin/packages/diamond/package.py +++ b/var/spack/repos/builtin/packages/diamond/package.py @@ -24,3 +24,7 @@ class Diamond(CMakePackage): version('0.8.26', sha256='00d2be32dad76511a767ab8e917962c0ecc572bc808080be60dec028df45439f') depends_on('zlib') + + # fix error [-Wc++11-narrowing] + # Ref: https://github.com/bbuchfink/diamond/commit/155e076d662b0e9268e2b00bef6d33d90aede7ff + patch('fix_narrowing_error.patch') diff --git a/var/spack/repos/builtin/packages/diffutils/package.py b/var/spack/repos/builtin/packages/diffutils/package.py index 961fcf1390..d299bd6fff 100644 --- a/var/spack/repos/builtin/packages/diffutils/package.py +++ b/var/spack/repos/builtin/packages/diffutils/package.py @@ -6,12 +6,12 @@ from spack import * -class Diffutils(AutotoolsPackage): +class Diffutils(AutotoolsPackage, GNUMirrorPackage): """GNU Diffutils is a package of several programs related to finding differences between files.""" homepage = "https://www.gnu.org/software/diffutils/" - url = "https://ftpmirror.gnu.org/diffutils/diffutils-3.7.tar.xz" + gnu_mirror_path = "diffutils/diffutils-3.7.tar.xz" version('3.7', sha256='b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26') version('3.6', sha256='d621e8bdd4b573918c8145f7ae61817d1be9deb4c8d2328a65cea8e11d783bd6') diff --git a/var/spack/repos/builtin/packages/dislin/package.py b/var/spack/repos/builtin/packages/dislin/package.py index cfdffeb9ba..ca380ebb7a 100644 --- a/var/spack/repos/builtin/packages/dislin/package.py +++ b/var/spack/repos/builtin/packages/dislin/package.py @@ -14,7 +14,7 @@ class Dislin(Package): homepage = "http://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.2.linux.i586_64', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10') + version('11.0', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10') depends_on('motif') depends_on('gl') @@ -39,16 +39,18 @@ class Dislin(Package): libraries, root=self.prefix, shared=True, recursive=True ) - def setup_environment(self, spack_env, run_env): - spack_env.set('DISLIN', self.prefix) - run_env.set('DISLIN', self.prefix) - run_env.prepend_path('PATH', self.prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.spec['motif'].prefix.lib) - run_env.prepend_path('LD_LIBRARY_PATH', self.spec['mesa'].prefix.lib) + def setup_build_environment(self, env): + env.set('DISLIN', self.prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix) + def setup_run_environment(self, env): + env.set('DISLIN', self.prefix) + env.prepend_path('PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.spec['motif'].prefix.lib) + env.prepend_path('LD_LIBRARY_PATH', self.spec['mesa'].prefix.lib) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path('LD_LIBRARY_PATH', self.prefix) def install(self, spec, prefix): install = Executable('./INSTALL') diff --git a/var/spack/repos/builtin/packages/dmd/package.py b/var/spack/repos/builtin/packages/dmd/package.py index 5755524476..8f6fd0c080 100644 --- a/var/spack/repos/builtin/packages/dmd/package.py +++ b/var/spack/repos/builtin/packages/dmd/package.py @@ -32,10 +32,13 @@ class Dmd(MakefilePackage): sha256='71fa249dbfd278eec2b95ce577af32e623e44caf0d993905ddc189e3beec21d0', placement='tools') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.linux.bin64) - run_env.prepend_path('LIBRARY_PATH', self.prefix.linux.lib64) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.linux.lib64) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.linux.bin64) + env.prepend_path('LIBRARY_PATH', self.prefix.linux.lib64) + env.prepend_path('LD_LIBRARY_PATH', self.prefix.linux.lib64) + + def setup_dependent_build_environment(self, env, dependent_spec): + self.setup_run_environment(env) def edit(self, spec, prefix): # Move contents to dmd/ diff --git a/var/spack/repos/builtin/packages/dmtcp/package.py b/var/spack/repos/builtin/packages/dmtcp/package.py index 42a92c4683..97c6e69163 100644 --- a/var/spack/repos/builtin/packages/dmtcp/package.py +++ b/var/spack/repos/builtin/packages/dmtcp/package.py @@ -12,6 +12,7 @@ class Dmtcp(AutotoolsPackage): with no modifications to user code or to the O/S.""" homepage = "http://dmtcp.sourceforge.net/" - url = "https://sourceforge.net/projects/dmtcp/files/2.5.2/dmtcp-2.5.2.tar.gz/download" + url = "https://sourceforge.net/projects/dmtcp/files/2.6.0/dmtcp-2.6.0.tar.gz/download" + version('2.6.0', sha256='3ed62a86dd0cb9c828b93ee8c7c852d6f9c96a0efa48bcfe867521adf7bced68') version('2.5.2', sha256='0e3e5e15bd401b7b6937f2b678cd7d6a252eab0a143d5740b89cc3bebb4282be') diff --git a/var/spack/repos/builtin/packages/docbook-xsl/package.py b/var/spack/repos/builtin/packages/docbook-xsl/package.py index 99bfb06d66..429c211cd6 100644 --- a/var/spack/repos/builtin/packages/docbook-xsl/package.py +++ b/var/spack/repos/builtin/packages/docbook-xsl/package.py @@ -26,10 +26,10 @@ class DocbookXsl(Package): def catalog(self): return os.path.join(self.prefix, 'catalog.xml') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): catalog = self.catalog - run_env.set('XML_CATALOG_FILES', catalog, separator=' ') + env.set('XML_CATALOG_FILES', catalog, separator=' ') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): catalog = self.catalog - spack_env.prepend_path("XML_CATALOG_FILES", catalog) + env.prepend_path("XML_CATALOG_FILES", catalog) 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 5d9a3ef014..3a1b623ca0 100644 --- a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py +++ b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py @@ -12,19 +12,17 @@ class DotnetCoreSdk(Package): applications for all types of infrastructure.""" homepage = "https://www.microsoft.com/net/" - url = "https://github.com/dotnet/core/" 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', + 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') variant('telemetry', default=False, description='allow collection of telemetry data') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '-telemetry' in self.spec: - spack_env.set('DOTNET_CLI_TELEMETRY_OPTOUT', 1) + env.set('DOTNET_CLI_TELEMETRY_OPTOUT', 1) def install(self, spec, prefix): mkdirp('bin') diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py index 53ff0efcd7..5084b16b10 100644 --- a/var/spack/repos/builtin/packages/doxygen/package.py +++ b/var/spack/repos/builtin/packages/doxygen/package.py @@ -28,6 +28,8 @@ class Doxygen(CMakePackage): description='Build with dot command support from Graphviz.') depends_on("cmake@2.8.12:", type='build') + depends_on("python", type='build') # 2 or 3 OK; used in CMake build + depends_on("libiconv") depends_on("flex", 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 @@ -41,3 +43,13 @@ class Doxygen(CMakePackage): # https://github.com/Sleepyowl/doxygen/commit/6c380ba91ae41c6d5c409a5163119318932ae2a3?diff=unified # Also - https://github.com/doxygen/doxygen/pull/6588 patch('shared_ptr.patch', when='@1.8.14') + + def patch(self): + # On Linux systems, iconv is provided by libc. Since CMake finds the + # symbol in libc, it does not look for libiconv, which leads to linker + # errors. This makes sure that CMake always looks for the external + # libconv instead. + filter_file('check_function_exists(iconv_open ICONV_IN_GLIBC)', + 'set(ICONV_IN_GLIBC FALSE)', + join_path('cmake', 'FindIconv.cmake'), + string=True) diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py index 5bbc02f96b..8b8a4eceb7 100644 --- a/var/spack/repos/builtin/packages/eccodes/package.py +++ b/var/spack/repos/builtin/packages/eccodes/package.py @@ -49,7 +49,7 @@ class Eccodes(CMakePackage): # tests are enabled but the testing scripts don't use it. # depends_on('valgrind', type='test', when='+test') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('openjpeg@1.5.0:1.5.999,2.1.0:2.1.999', when='jp2k=openjpeg') depends_on('jasper', when='jp2k=jasper') depends_on('libpng', when='+png') @@ -100,7 +100,7 @@ class Eccodes(CMakePackage): '-DHDF5_ROOT=' + self.spec['hdf5'].prefix, # Prevent possible overriding by environment variables # NETCDF_ROOT, NETCDF_DIR, and NETCDF_PATH. - '-DNETCDF_PATH=' + self.spec['netcdf'].prefix]) + '-DNETCDF_PATH=' + self.spec['netcdf-c'].prefix]) else: args.append('-DENABLE_NETCDF=OFF') 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 ef517b92d2..b62f016161 100644 --- a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py +++ b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py @@ -45,6 +45,3 @@ class EclipseGcjParser(Package): def install(self, spec, prefix): mkdirp(spec.prefix.bin) install('ecj1', spec.prefix.bin) - - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/ecos/package.py b/var/spack/repos/builtin/packages/ecos/package.py new file mode 100644 index 0000000000..61facbfffe --- /dev/null +++ b/var/spack/repos/builtin/packages/ecos/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Ecos(MakefilePackage): + """A lightweight conic solver for second-order cone programming.""" + + homepage = "https://github.com/embotech/ecos" + url = "https://github.com/embotech/ecos/archive/2.0.7.tar.gz" + + version('2.0.7', sha256='bdb6a84f7d150820459bd0a796cb64ffbb019afb95dc456d22acc2dafb2e70e0') + + build_targets = ['all', 'shared'] + + def install(self, spec, prefix): + install_tree('include', prefix.include) + + mkdir(prefix.lib) + install('libecos.a', prefix.lib) + install('libecos_bb.a', prefix.lib) + install('libecos.so', prefix.lib) + + mkdir(prefix.bin) + install('runecos', prefix.bin) + install('runecosexp', prefix.bin) diff --git a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py b/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py index f86330613c..e099e2f1b1 100644 --- a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py +++ b/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py @@ -37,7 +37,7 @@ class EcpVizSdk(CMakePackage): depends_on('paraview', when='+paraview') depends_on('sz', when='+sz') depends_on('visit', when='+visit') - depends_on('vtkm', when='+vtkm') + depends_on('vtk-m', when='+vtkm') depends_on('zfp', when='+zfp') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/ed/package.py b/var/spack/repos/builtin/packages/ed/package.py index 9c84e64262..2255418cbe 100644 --- a/var/spack/repos/builtin/packages/ed/package.py +++ b/var/spack/repos/builtin/packages/ed/package.py @@ -6,13 +6,13 @@ from spack import * -class Ed(AutotoolsPackage): +class Ed(AutotoolsPackage, GNUMirrorPackage): """GNU ed is a line-oriented text editor. It is used to create, display, modify and otherwise manipulate text files, both interactively and via shell scripts.""" homepage = "https://www.gnu.org/software/ed" - url = "https://ftpmirror.gnu.org/ed/ed-1.4.tar.gz" + gnu_mirror_path = "ed/ed-1.4.tar.gz" version('1.4', sha256='db36da85ee1a9d8bafb4b041bd4c8c11becba0c43ec446353b67045de1634fda') diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py index 0c1a86d676..843edc3a09 100644 --- a/var/spack/repos/builtin/packages/eigen/package.py +++ b/var/spack/repos/builtin/packages/eigen/package.py @@ -48,9 +48,8 @@ class Eigen(CMakePackage): patch('find-ptscotch.patch', when='@3.3.4') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('CPATH', - join_path(self.prefix, 'include', 'eigen3')) + def setup_run_environment(self, env): + env.prepend_path('CPATH', self.prefix.include.eigen3) @property def headers(self): diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py index 80e39e3e8f..a0f6a0b6f5 100644 --- a/var/spack/repos/builtin/packages/elfutils/package.py +++ b/var/spack/repos/builtin/packages/elfutils/package.py @@ -17,10 +17,11 @@ class Elfutils(AutotoolsPackage): version of elfutils.""" homepage = "https://fedorahosted.org/elfutils/" - url = "https://sourceware.org/elfutils/ftp/0.177/elfutils-0.177.tar.bz2" + url = "https://sourceware.org/elfutils/ftp/0.178/elfutils-0.178.tar.bz2" list_url = "https://sourceware.org/elfutils/ftp" list_depth = 1 + version('0.178', sha256='31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2') version('0.177', sha256='fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e') version('0.176', sha256='eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023') version('0.175', sha256='f7ef925541ee32c6d15ae5cb27da5f119e01a5ccdbe9fe57bf836730d7b7a65b') @@ -88,6 +89,11 @@ class Elfutils(AutotoolsPackage): else: args.append('--disable-nls') + # The experimental debuginfod server requires libmicrohttpd + # which doesn't have a spack package + if spec.satisfies('@0.178:'): + args.append('--disable-debuginfod') + return args # Install elf.h to include directory. diff --git a/var/spack/repos/builtin/packages/elmer-fem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py index a22c1226f2..e57e8936ab 100644 --- a/var/spack/repos/builtin/packages/elmer-fem/package.py +++ b/var/spack/repos/builtin/packages/elmerfem/package.py @@ -6,7 +6,7 @@ from spack import * -class ElmerFem(CMakePackage): +class Elmerfem(CMakePackage): """Elmer is an open source multiphysical simulation software. It includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics.""" @@ -15,6 +15,7 @@ class ElmerFem(CMakePackage): url = "https://github.com/ElmerCSC/elmerfem/archive/release-8.4.tar.gz" version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3') + version('devel', git='https://github.com/ElmerCSC/elmerfem.git', branch='devel') variant('openmp', default=True, description='Enable OpenMP support.') variant('mumps', default=False, description='Enable MUMPS support.') @@ -83,5 +84,5 @@ class ElmerFem(CMakePackage): return args - def setup_environment(self, spack_env, run_env): - run_env.set('ELMER_HOME', self.prefix) + def setup_run_environment(self, env): + env.set('ELMER_HOME', self.prefix) diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 699431d2b5..f0d101199b 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -14,6 +14,7 @@ class Elpa(AutotoolsPackage): homepage = 'http://elpa.mpcdf.mpg.de/' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' + version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d') version('2018.11.001', sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16') version('2018.05.001.rc1', sha256='598c01da20600a4514ea4d503b93e977ac0367e797cab7a7c1b0e0e3e86490db') @@ -21,7 +22,7 @@ class Elpa(AutotoolsPackage): version('2017.05.003', sha256='bccd49ce35a323bd734b17642aed8f2588fea4cc78ee8133d88554753bc3bf1b') version('2017.05.002', sha256='568b71024c094d667b5cbb23045ad197ed5434071152ac608dae490ace5eb0aa') version('2016.11.001.pre', sha256='69b67f0f6faaa2b3b5fd848127b632be32771636d2ad04583c5269d550956f92') - version('2016.05.004', sha256='08c59dc9da458bab856f489d779152e5506e04f0d4b8d6dcf114ca5fbbe46c58', preferred=True) + version('2016.05.004', sha256='08c59dc9da458bab856f489d779152e5506e04f0d4b8d6dcf114ca5fbbe46c58') version('2016.05.003', sha256='c8da50c987351514e61491e14390cdea4bdbf5b09045261991876ed5b433fca4') version('2015.11.001', sha256='c0761a92a31c08a4009c9688c85fc3fc8fde9b6ce05e514c3e1587cf045e9eba') @@ -61,32 +62,40 @@ class Elpa(AutotoolsPackage): build_directory = 'spack-build' - def setup_build_environment(self, env): + def configure_args(self): spec = self.spec + options = [] - env.set('CC', spec['mpi'].mpicc) - env.set('FC', spec['mpi'].mpifc) - env.set('CXX', spec['mpi'].mpicxx) + # TODO: add --enable-gpu, --disable-sse-assembly, --enable-sparc64 + # and --enable-neon-arch64 + simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512', 'bgp', 'bgq'] - env.append_flags('LDFLAGS', spec['lapack'].libs.search_flags) - env.append_flags('LIBS', spec['lapack'].libs.link_flags) - env.set('SCALAPACK_LDFLAGS', spec['scalapack'].libs.joined()) + for feature in simd_features: + msg = '--enable-{0}' if feature in spec.target else '--disable-{0}' + options.append(msg.format(feature)) - def configure_args(self): - # TODO: set optimum flags for platform+compiler combo, see - # https://github.com/hfp/xconfigure/tree/master/elpa - # also see: - # https://src.fedoraproject.org/cgit/rpms/elpa.git/ - # https://packages.qa.debian.org/e/elpa.html - options = [] - # without -march=native there is configure error for 2017.05.02 - # Could not compile test program, try with --disable-sse, or - # adjust the C compiler or CFLAGS - if '+optflags' in self.spec: + # 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: options.extend([ 'FCFLAGS=-O2 -ffree-line-length-none', 'CFLAGS=-O2' ]) - if '+openmp' in self.spec: + + if '+openmp' in spec: options.append('--enable-openmp') + else: + options.append('--disable-openmp') + + options.extend([ + 'CC={0}'.format(spec['mpi'].mpicc), + 'FC={0}'.format(spec['mpi'].mpifc), + 'CXX={0}'.format(spec['mpi'].mpicxx), + 'LDFLAGS={0}'.format(spec['lapack'].libs.search_flags), + 'LIBS={0}'.format(spec['lapack'].libs.link_flags), + 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined()) + ]) + return options diff --git a/var/spack/repos/builtin/packages/emacs/package.py b/var/spack/repos/builtin/packages/emacs/package.py index c556c446ce..727cda279b 100644 --- a/var/spack/repos/builtin/packages/emacs/package.py +++ b/var/spack/repos/builtin/packages/emacs/package.py @@ -8,12 +8,13 @@ from spack import * import sys -class Emacs(AutotoolsPackage): +class Emacs(AutotoolsPackage, GNUMirrorPackage): """The Emacs programmable text editor.""" homepage = "https://www.gnu.org/software/emacs" - url = "https://ftpmirror.gnu.org/emacs/emacs-24.5.tar.gz" + gnu_mirror_path = "emacs/emacs-24.5.tar.gz" + version('26.3', sha256='09c747e048137c99ed35747b012910b704e0974dde4db6696fde7054ce387591') version('26.2', sha256='4f99e52a38a737556932cc57479e85c305a37a8038aaceb5156625caf102b4eb') version('26.1', sha256='760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3') version('25.3', sha256='f72c6a1b48b6fbaca2b991eed801964a208a2f8686c70940013db26cd37983c9') diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py index 3f47fa8c2b..19170b4c70 100644 --- a/var/spack/repos/builtin/packages/environment-modules/package.py +++ b/var/spack/repos/builtin/packages/environment-modules/package.py @@ -12,10 +12,11 @@ class EnvironmentModules(Package): """ homepage = 'https://cea-hpc.github.io/modules/' - url = 'https://github.com/cea-hpc/modules/releases/download/v4.3.1/modules-4.3.1.tar.gz' + url = 'https://github.com/cea-hpc/modules/releases/download/v4.4.0/modules-4.4.0.tar.gz' maintainers = ['xdelaruelle'] + version('4.4.0', sha256='4dd55ad6cc684905e891ad1ba9e3c542e79eea0a9cd9a0e99cd77abe6ed63fab') version('4.3.1', sha256='979efb5b3d3c8df2c3c364aaba61f97a459456fc5bbc092dfc02677da63e5654') version('4.3.0', sha256='231f059c4109a2d3028c771f483f6c92f1f3689eb0033648ce00060dad00e103') version('4.2.5', sha256='3375b454568e7bbec7748cd6173516ef9f30a3d8e13c3e99c02794a6a3bc3c8c') @@ -68,6 +69,13 @@ class EnvironmentModules(Package): if '~X' in spec: config_args = ['--without-x'] + config_args + if '@4.4.0:' in self.spec: + config_args.extend([ + '--with-icase=search', + '--enable-extended-default', + '--enable-advanced-version-spec' + ]) + if '@4.3.0:' in self.spec: config_args.extend([ '--enable-color' diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py index 1ee01f6f21..b26e038206 100644 --- a/var/spack/repos/builtin/packages/eospac/package.py +++ b/var/spack/repos/builtin/packages/eospac/package.py @@ -12,21 +12,21 @@ class Eospac(Package): library. """ - homepage = "http://laws-green.lanl.gov/projects/data/eos.html" - list_url = "http://laws-green.lanl.gov/projects/data/eos/eospacReleases.php" + homepage = "http://laws.lanl.gov/projects/data/eos.html" + list_url = "http://laws.lanl.gov/projects/data/eos/eospacReleases.php" version('6.4.0', sha256='15a953beac735c68431afe86ffe33323d540d0fbbbec03ba79438dd29736051d', - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0_612ea8c9b8ffa6d9175d9118955571d9107f1e3c.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0_612ea8c9b8ffa6d9175d9118955571d9107f1e3c.tgz") version('6.4.0beta.4', sha256='0ebfd8badff575ea77444aa978629dbdca3135a0b5eb373b8daba058773d4635', - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.4_aff6429bb6868de31a980278bafa13487c2ce83f.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.4_aff6429bb6868de31a980278bafa13487c2ce83f.tgz") version('6.4.0beta.3', sha256='9f387ca5356519494c6f3f27adb0c165cf9f9e15e3355a67bf940a4a92eebdab', - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.3_90ff265f62aa1780bfcd0a62dad807b6be6ed461.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.3_90ff265f62aa1780bfcd0a62dad807b6be6ed461.tgz") version('6.4.0beta.2', sha256='f9db46cd6c62a6f83960d802350f3e37675921af102969b293c02eb797558a53', - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.2_69196eadbc77506561eef711f19d2f03b4ab0ffa.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.2_69196eadbc77506561eef711f19d2f03b4ab0ffa.tgz") version('6.4.0beta.1', sha256='14c5c804e5f628f41e8ed80bcee5a80adeb6c6f3d130715421ca99a30c7eb7e2', - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.1_r20171213193219.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.0beta.1_r20171213193219.tgz") version('6.3.1', sha256='aa1112c4251c9c3c2883a7ab2c7f2abff2c339f29dbbf8421ef88b0c9df904f8', preferred=True, - url="http://laws-green.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.3.1_r20161202150449.tgz") + url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.3.1_r20161202150449.tgz") # This patch allows the use of spack's compile wrapper 'flang' patch('flang.patch', when='@:6.4.0beta.2%clang') diff --git a/var/spack/repos/builtin/packages/eqr/package.py b/var/spack/repos/builtin/packages/eq-r/package.py index e31f88bb39..720e2bed8f 100644 --- a/var/spack/repos/builtin/packages/eqr/package.py +++ b/var/spack/repos/builtin/packages/eq-r/package.py @@ -7,20 +7,18 @@ from spack import * import os -class Eqr(AutotoolsPackage): +class EqR(AutotoolsPackage): """ EMEWS Queues for R (EQ/R) Installs EQ/R. """ - git = "https://github.com/emews/EQ-R" - - version('develop', branch='master') - - configure_directory = 'src' - homepage = "http://emews.org" url = "https://github.com/emews/EQ-R/archive/1.0.tar.gz" + git = "https://github.com/emews/EQ-R.git" + + version('master', branch='master') + version('1.0', sha256='68047cb0edf088eaaefc5e36cefda9818292e5c832593e10a1dd9c73c27661b6') depends_on('autoconf', type='build') @@ -34,11 +32,13 @@ class Eqr(AutotoolsPackage): depends_on('tcl') depends_on('swig') - def setup_environment(self, spack_env, run_env): + configure_directory = 'src' + + def setup_build_environment(self, env): spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) def configure_args(self): args = ['--with-tcl=' + self.spec['tcl'].prefix] @@ -46,7 +46,7 @@ class Eqr(AutotoolsPackage): if not os.path.exists(r_location): rscript = which('Rscript') if rscript is not None: - r_location = rscript('-e', 'cat(R.home())') + r_location = rscript('-e', 'cat(R.home())', output=str) else: msg = 'couldn\'t locate Rscript on your PATH' raise RuntimeError(msg) diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py index 2edc201b97..0664b391e0 100644 --- a/var/spack/repos/builtin/packages/er/package.py +++ b/var/spack/repos/builtin/packages/er/package.py @@ -10,7 +10,7 @@ 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.2.zip" + url = "https://github.com/ECP-VeloC/er/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/er.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/es/package.py b/var/spack/repos/builtin/packages/es-shell/package.py index 99b846e96f..f8f745f488 100644 --- a/var/spack/repos/builtin/packages/es/package.py +++ b/var/spack/repos/builtin/packages/es-shell/package.py @@ -6,8 +6,7 @@ from spack import * -class Es(AutotoolsPackage): - +class EsShell(AutotoolsPackage): """Es is an extensible shell. The language was derived from the Plan 9 shell, rc, and was influenced by functional programming languages, such as Scheme, and the Tcl embeddable programming language. This diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index bfe35d9f19..1f93eb372a 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -34,7 +34,7 @@ class Esmf(MakefilePackage): # Optional dependencies depends_on('mpi', when='+mpi') depends_on('lapack@3:', when='+lapack') - depends_on('netcdf@3.6:', when='+netcdf') + 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') depends_on('xerces-c@3.1.0:', when='+xerces') @@ -200,7 +200,7 @@ class Esmf(MakefilePackage): if '+netcdf' in spec: # ESMF provides the ability to read Grid and Mesh data in # NetCDF format. - if spec.satisfies('^netcdf@4.2:'): + if spec.satisfies('^netcdf-c@4.2:'): # ESMF_NETCDF_LIBS will be set to "-lnetcdff -lnetcdf". # This option is useful for systems which have the Fortran # and C bindings archived in seperate library files. diff --git a/var/spack/repos/builtin/packages/ethtool/package.py b/var/spack/repos/builtin/packages/ethtool/package.py new file mode 100644 index 0000000000..a1ce60d907 --- /dev/null +++ b/var/spack/repos/builtin/packages/ethtool/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Ethtool(AutotoolsPackage): + """Ethtool is a small utility for examining and tuning your ethernet-based + network interface.""" + + homepage = "https://github.com/Distrotech/ethtool" + url = "https://github.com/Distrotech/ethtool/archive/v4.8.tar.gz" + + version('4.8', sha256='e4443c612b01b6c4891e21f55a59aa2d6da1c9915edcf067bb66a0855590e143') + + 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): + autoreconf('--install', '--verbose', '--force') diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py index f5ccf381b8..b4850bde41 100644 --- a/var/spack/repos/builtin/packages/everytrace-example/package.py +++ b/var/spack/repos/builtin/packages/everytrace-example/package.py @@ -18,6 +18,3 @@ class EverytraceExample(CMakePackage): # Currently the only MPI this everytrace works with. depends_on('openmpi') - - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', join_path(self.prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py index 1de226bdac..2b762bbd1c 100644 --- a/var/spack/repos/builtin/packages/everytrace/package.py +++ b/var/spack/repos/builtin/packages/everytrace/package.py @@ -31,6 +31,3 @@ class Everytrace(CMakePackage): '-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')] - - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', join_path(self.prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/exmcutils/package.py b/var/spack/repos/builtin/packages/exmcutils/package.py index 8d53b7a71a..bbd90d0ed0 100644 --- a/var/spack/repos/builtin/packages/exmcutils/package.py +++ b/var/spack/repos/builtin/packages/exmcutils/package.py @@ -11,7 +11,7 @@ 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.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.5.7.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py index 6472b7b997..d4b38b19a6 100644 --- a/var/spack/repos/builtin/packages/exodusii/package.py +++ b/var/spack/repos/builtin/packages/exodusii/package.py @@ -30,8 +30,8 @@ class Exodusii(CMakePackage): depends_on('mpi', when='+mpi') # https://github.com/gsjaardema/seacas/blob/master/NetCDF-Mapping.md - depends_on('netcdf@4.6.1:+mpi', when='+mpi') - depends_on('netcdf@4.6.1:~mpi', when='~mpi') + depends_on('netcdf-c@4.6.1:+mpi', when='+mpi') + depends_on('netcdf-c@4.6.1:~mpi', when='~mpi') def cmake_args(self): spec = self.spec @@ -49,7 +49,7 @@ class Exodusii(CMakePackage): '-DSEACASProj_SKIP_FORTRANCINTERFACE_VERIFY_TEST:BOOL=ON', '-DSEACASProj_ENABLE_CXX11:BOOL=OFF', '-DSEACASProj_ENABLE_Zoltan:BOOL=OFF', - '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf'].prefix), + '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf-c'].prefix), # MPI Flags # '-DTPL_ENABLE_MPI={0}'.format('ON' if '+mpi' in spec else 'OFF'), diff --git a/var/spack/repos/builtin/packages/express/package.py b/var/spack/repos/builtin/packages/express/package.py index 45a05cffa8..b787fbe9a5 100644 --- a/var/spack/repos/builtin/packages/express/package.py +++ b/var/spack/repos/builtin/packages/express/package.py @@ -40,6 +40,6 @@ class Express(CMakePackage): edit.filter(r'\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/' 'libbamtools.a', '%s' % self.spec['bamtools'].libs) - def setup_environment(self, spack_env, run_env): - spack_env.prepend_path('CPATH', self.spec[ - 'bamtools'].prefix.include.bamtools) + def setup_build_environment(self, env): + env.prepend_path('CPATH', + self.spec['bamtools'].prefix.include.bamtools) diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py index 54c3622b06..3270b3c984 100644 --- a/var/spack/repos/builtin/packages/extrae/package.py +++ b/var/spack/repos/builtin/packages/extrae/package.py @@ -101,10 +101,10 @@ class Extrae(AutotoolsPackage): else: make('install', parallel=False) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # set EXTRAE_HOME in the module file - run_env.set('EXTRAE_HOME', self.prefix) + env.set('EXTRAE_HOME', self.prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): # set EXTRAE_HOME for everyone using the Extrae package - spack_env.set('EXTRAE_HOME', self.prefix) + env.set('EXTRAE_HOME', self.prefix) diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py index bc04da7237..9def8bb24b 100644 --- a/var/spack/repos/builtin/packages/fastmath/package.py +++ b/var/spack/repos/builtin/packages/fastmath/package.py @@ -6,24 +6,22 @@ from spack import * -class Fastmath(Package): +class Fastmath(BundlePackage): """FASTMath is a suite of ~15 numerical libraries frequently used together in various SciDAC and CSE applications. The suite includes discretization libraries for structured, AMR and unstructured grids as well as solver libraries for ODE's, Time Integrators, Iterative, Non-Linear, and Direct Solvers.""" - homepage = "www.fastmath-scidac.org/" - url = "https://github.com/citibeth/dummy/tarball/v1.0" + homepage = "https://fastmath-scidac.org/" - version('1.0', sha256='402a2198e40b7e9022a99ab88ba6f0ee1c04b103fc15589b22c892859f14b60a') + version('latest') - # BundlePackage depends_on('amrex') # default is 3 dimensions depends_on('chombo@3.2') depends_on('hypre~internal-superlu') -# depends_on('ml-trilinos') # hoping for stripped down install of just ml -# depends_on('nox-trilinos') # hoping for stripped down install of just nox + # depends_on('ml-trilinos') # hoping for stripped down install of just ml + # depends_on('nox-trilinos') # hoping for stripped down install of just nox depends_on('mpi') depends_on('arpack-ng') depends_on('petsc') @@ -33,12 +31,3 @@ class Fastmath(Package): depends_on('superlu-dist') depends_on('trilinos') depends_on('zoltan') - - # Dummy install for now, will be removed when metapackage is available - def install(self, spec, prefix): - # Prevent the error message - # ==> Error: Install failed for fastmath. Nothing was installed! - # ==> Error: Installation process had nonzero exit code : 256 - with open(join_path(spec.prefix, 'bundle-package.txt'), 'w') as out: - out.write('This is a bundle\n') - out.close() diff --git a/var/spack/repos/builtin/packages/fastq-screen/package.py b/var/spack/repos/builtin/packages/fastq-screen/package.py index ef651a4c9d..7898ee31b4 100644 --- a/var/spack/repos/builtin/packages/fastq-screen/package.py +++ b/var/spack/repos/builtin/packages/fastq-screen/package.py @@ -17,7 +17,7 @@ class FastqScreen(Package): version('0.11.2', sha256='a179df1f5803b42bbbb2b50af05ea18ae6fefcbf7020ca2feeb0d3c598a65207') depends_on('perl', type='run') - depends_on('perl-gd-graph', type='run') + depends_on('perl-gdgraph', type='run') depends_on('bowtie') depends_on('bowtie2') depends_on('bwa') diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py index 289cda53bb..b66539e7f1 100644 --- a/var/spack/repos/builtin/packages/fastqc/package.py +++ b/var/spack/repos/builtin/packages/fastqc/package.py @@ -34,8 +34,8 @@ class Fastqc(Package): # In theory the 'run' dependency on 'jdk' above should take # care of this for me. In practice, it does not. - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Add <prefix> to the path; the package has a script at the top level. """ - run_env.prepend_path('PATH', self.spec['java'].prefix.bin) + env.prepend_path('PATH', self.spec['java'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/feh/package.py b/var/spack/repos/builtin/packages/feh/package.py new file mode 100644 index 0000000000..c42556f018 --- /dev/null +++ b/var/spack/repos/builtin/packages/feh/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Feh(MakefilePackage): + """ + feh is an X11 image viewer aimed mostly at console users. Unlike most + other viewers, it does not have a fancy GUI, but simply displays images. It + is controlled via commandline arguments and configurable key/mouse + actions. + """ + + homepage = "https://feh.finalrewind.org/" + url = "https://feh.finalrewind.org/feh-3.3.tar.bz2" + + maintainers = ['TheQueasle'] + + version('3.3', sha256='f3959958258111d5f7c9fbe2e165c52b9d5987f07fd1f37540a4abf9f9638811') + version('3.1.1', sha256='61d0242e3644cf7c5db74e644f0e8a8d9be49b7bd01034265cc1ebb2b3f9c8eb') + + depends_on('imlib2') + depends_on('curl') + depends_on('libxinerama') + depends_on('libexif') + depends_on('libxt') + + def build(self, spec, prefix): + make('PREFIX={0}'.format(prefix), 'exif=1', 'help=1') + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py index 0113dfba3a..47aff3cbf5 100644 --- a/var/spack/repos/builtin/packages/ferret/package.py +++ b/var/spack/repos/builtin/packages/ferret/package.py @@ -19,7 +19,7 @@ class Ferret(Package): version('6.96', sha256='7eb87156aa586cfe838ab83f08b2102598f9ab62062d540a5da8c9123816331a') depends_on("hdf5+hl") - depends_on("netcdf") + depends_on("netcdf-c") depends_on("netcdf-fortran") depends_on("readline") depends_on("zlib") @@ -63,7 +63,7 @@ class Ferret(Package): "-L%s -lnetcdff" % self.spec['netcdf-fortran'].prefix.lib, 'FERRET/platform_specific.mk.x86_64-linux') filter_file(r'\$\(NETCDF4_DIR\)/lib64/libnetcdf.a', - "-L%s -lnetcdf" % self.spec['netcdf'].prefix.lib, + "-L%s -lnetcdf" % self.spec['netcdf-c'].prefix.lib, 'FERRET/platform_specific.mk.x86_64-linux') filter_file(r'\$\(HDF5_DIR\)/lib64/libhdf5_hl.a', "-L%s -lhdf5_hl" % self.spec['hdf5'].prefix.lib, diff --git a/var/spack/repos/builtin/packages/fgsl/package.py b/var/spack/repos/builtin/packages/fgsl/package.py index 60d3580f25..f28e6f1c9c 100644 --- a/var/spack/repos/builtin/packages/fgsl/package.py +++ b/var/spack/repos/builtin/packages/fgsl/package.py @@ -34,6 +34,6 @@ class Fgsl(AutotoolsPackage): def create_m4_dir(self): mkdir('m4') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.compiler.name == 'gcc': - spack_env.append_flags('FCFLAGS', "-ffree-line-length-none") + env.append_flags('FCFLAGS', "-ffree-line-length-none") diff --git a/var/spack/repos/builtin/packages/file/package.py b/var/spack/repos/builtin/packages/file/package.py new file mode 100644 index 0000000000..6038a18759 --- /dev/null +++ b/var/spack/repos/builtin/packages/file/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +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/" + url = "https://astron.com/pub/file/file-5.37.tar.gz" + + version('5.37', sha256='e9c13967f7dd339a3c241b7710ba093560b9a33013491318e88e6b8b57bae07f') diff --git a/var/spack/repos/builtin/packages/filebench/package.py b/var/spack/repos/builtin/packages/filebench/package.py new file mode 100644 index 0000000000..15d6213767 --- /dev/null +++ b/var/spack/repos/builtin/packages/filebench/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Filebench(AutotoolsPackage): + """ + Filebench is a file system and storage benchmark that can generate a + large variety of workloads. Unlike typical benchmarks it is extremely + flexible and allows to specify application's I/O behavior using its + extensive Workload Model Language (WML). Users can either describe + desired workloads from scratch or use(with or without modifications) + workload personalities shipped with Filebench(e.g., mail-, web-, file-, + and database-server workloads). Filebench is equally good for micro + and macro-benchmarking, quick to setup, and relatively easy to use. + """ + + homepage = "https://github.com/filebench/filebench" + url = "https://github.com/filebench/filebench/archive/1.4.9.1.tar.gz" + + version('1.4.9.1', sha256='77ae91b83c828ded1219550aec74fbbd6975dce02cb5ab13c3b99ac2154e5c2e') + version('1.4.9', sha256='61b8a838c1450b51a4ce61481a19a1bf0d6e3993180c524ff4051f7c18bd9c6a') + + depends_on('autoconf', type='build') + 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') + + def autoreconf(self, spec, prefix): + sh = which('sh') + sh('libtoolize') + sh('aclocal') + sh('autoheader') + sh('automake', '--add-missing') + sh('autoconf') diff --git a/var/spack/repos/builtin/packages/find-circ/package.py b/var/spack/repos/builtin/packages/find-circ/package.py new file mode 100644 index 0000000000..18f6cfb4e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/find-circ/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class FindCirc(Package): + """Find-circ is a collection of python scripts + detecting head-to-tail spliced (back-spliced) sequencing reads, + indicative of circular RNA (circRNA) in RNA-seq data.""" + + homepage = "https://github.com/marvin-jens/find_circ" + url = "https://github.com/marvin-jens/find_circ/archive/v1.2.tar.gz" + + version('1.2', sha256='f88bf9b5d0cc818313074982d4460c96706f555d924e2821832c3d03bf67743e') + + depends_on('python@2.7:2.8', type=('build', 'run')) + depends_on('py-pysam', type=('build', 'run')) + # Higher version of py-pandas and py-numpy + # depends on python@3: which conflicts with py-rnacocktail + depends_on('py-numpy@:1.16.5', type=('build', 'run')) + + def install(self, spec, prefix): + mkdir(prefix.bin) + install('cmp_bed.py', prefix.bin) + install('find_circ.py', prefix.bin) + install('maxlength.py', prefix.bin) + install('unmapped2anchors.py', prefix.bin) + install('README.md', prefix) + install('README.pdf', prefix) + install('LICENSE', prefix) + install_tree('test_data', prefix.test_data) diff --git a/var/spack/repos/builtin/packages/findutils/package.py b/var/spack/repos/builtin/packages/findutils/package.py index eb8009623a..efb55868f5 100644 --- a/var/spack/repos/builtin/packages/findutils/package.py +++ b/var/spack/repos/builtin/packages/findutils/package.py @@ -6,12 +6,12 @@ from spack import * -class Findutils(AutotoolsPackage): +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/" - url = "https://ftpmirror.gnu.org/findutils/findutils-4.6.0.tar.gz" + gnu_mirror_path = "findutils/findutils-4.6.0.tar.gz" version('4.6.0', sha256='ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d') version('4.4.2', sha256='434f32d171cbc0a5e72cfc5372c6fc4cb0e681f8dce566a0de5b6fccd702b62a') diff --git a/var/spack/repos/builtin/packages/flang/package.py b/var/spack/repos/builtin/packages/flang/package.py index a09e25b5be..2b7af92868 100644 --- a/var/spack/repos/builtin/packages/flang/package.py +++ b/var/spack/repos/builtin/packages/flang/package.py @@ -20,15 +20,9 @@ class Flang(CMakePackage): version('20180921', sha256='f33bd1f054e474f1e8a204bb6f78d42f8f6ecf7a894fdddc3999f7c272350784') version('20180612', sha256='6af858bea013548e091371a97726ac784edbd4ff876222575eaae48a3c2920ed') - depends_on('llvm@flang-develop', when='@develop') - depends_on('llvm@flang-20180921', when='@20180921 target=x86_64:') - depends_on('llvm@flang-20180612', when='@20180612 target=x86_64:') - - depends_on('llvm@flang-20180921', when='@20180921 target=aarch64:') - - # LLVM version specific to OpenPOWER. - depends_on('llvm@flang-ppc64le-20180921', when='@20180921 target=ppc64le:') - depends_on('llvm@flang-ppc64le-20180612', when='@20180612 target=ppc64le:') + depends_on('llvm@develop+flang~gold~lldb~lld~compiler-rt~libcxx~polly~internal_unwind', when='@develop') + depends_on('llvm@7.0.1+flang~gold~lldb~lld~compiler-rt~libcxx~polly~internal_unwind', when='@20180921') + depends_on('llvm@6.0.0+flang~gold~lldb~lld~compiler-rt~libcxx~polly~internal_unwind', when='@20180612') depends_on('pgmath@develop', when='@develop') depends_on('pgmath@20180921', when='@20180921') @@ -71,9 +65,11 @@ class Flang(CMakePackage): chmod = which('chmod') chmod('+x', flang) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # to find llvm's libc++.so - spack_env.set('LD_LIBRARY_PATH', self.spec['llvm'].prefix.lib) - run_env.set('FC', join_path(self.spec.prefix.bin, 'flang')) - run_env.set('F77', join_path(self.spec.prefix.bin, 'flang')) - run_env.set('F90', join_path(self.spec.prefix.bin, 'flang')) + env.set('LD_LIBRARY_PATH', self.spec['llvm'].prefix.lib) + + def setup_run_environment(self, env): + env.set('FC', self.spec.prefix.bin.flang) + env.set('F77', self.spec.prefix.bin.flang) + env.set('F90', self.spec.prefix.bin.flang) diff --git a/var/spack/repos/builtin/packages/flann/package.py b/var/spack/repos/builtin/packages/flann/package.py index 8746f764d6..810f000095 100644 --- a/var/spack/repos/builtin/packages/flann/package.py +++ b/var/spack/repos/builtin/packages/flann/package.py @@ -68,13 +68,13 @@ class Flann(CMakePackage): depends_on("boost+mpi+system+serialization+thread", when="+mpi ^hdf5+mpi") # Doc deps - depends_on("latex", when="+doc") + depends_on("texlive", when="+doc") # Example uses hdf5. depends_on("hdf5", when="+examples") depends_on('hdf5', type='test') - depends_on('gtest', type='test') + depends_on('googletest', type='test') # See: https://github.com/mariusmuja/flann/issues/369 patch('linux-gcc-cmakev3.11-plus.patch', when='%gcc^cmake@3.11:') diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py index 3616de5a97..abaf67c3b5 100644 --- a/var/spack/repos/builtin/packages/flecsi/package.py +++ b/var/spack/repos/builtin/packages/flecsi/package.py @@ -17,13 +17,29 @@ class Flecsi(CMakePackage): n-dimensional hashed-tree data structures, graph partitioning interfaces,and dependency closures. ''' - homepage = 'http://flecsi.lanl.gov/' + homepage = 'http://flecsi.org/' git = 'https://github.com/laristra/flecsi.git' - version('develop', branch='master', submodules=False, preferred=True) + version('master', branch='master', submodules=False, preferred=True) - variant('backend', default='mpi', values=('serial', 'mpi', 'legion'), - description='Backend to use for distributed memory') + variant('build_type', default='Release', values=('Debug', 'Release'), + description='The build type to build', multi=False) + variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx'), + description='Backend to use for distributed memory', multi=False) + variant('minimal', default=False, + description='Disable FindPackageMetis') + variant('shared', default=True, + description='Build shared libraries') + variant('flog', default=False, + description='Enable flog testing') + variant('doxygen', default=False, + description='Enable doxygen') + variant('doc', default=False, + description='Enable documentation') + variant('coverage', default=False, + description='Enable coverage build') + variant('hdf5', default=False, + description='Enable HDF5 Support') variant('caliper', default=False, description='Enable Caliper Support') variant('graphviz', default=False, @@ -33,50 +49,97 @@ class Flecsi(CMakePackage): variant('flecstan', default=False, description='Build FleCSI Static Analyzer') - depends_on('cmake@3.1:', type='build') + depends_on('cmake@3.12:', type='build') # Requires cinch > 1.0 due to cinchlog installation issue depends_on('cinch@1.01:', type='build') depends_on('mpi', when='backend=mpi') depends_on('mpi', when='backend=legion') - depends_on('gasnet@2019.3.0 ~pshm', when='backend=legion') - depends_on('legion@ctrl-rep +shared +mpi', when='backend=legion') - depends_on('boost@1.59.0: cxxstd=11 +program_options') + depends_on('mpi', when='backend=hpx') + depends_on('legion@ctrl-rep +shared +mpi +hdf5', when='backend=legion +hdf5') + depends_on('legion@ctrl-rep +shared +mpi', when='backend=legion ~hdf5') + depends_on('hpx@1.3.0 cxxstd=14', when='backend=hpx') + depends_on('boost@1.70.0: cxxstd=14 +program_options') depends_on('metis@5.1.0:') depends_on('parmetis@4.0.3:') + depends_on('hdf5', when='+hdf5') depends_on('caliper', when='+caliper') depends_on('graphviz', when='+graphviz') depends_on('python@3.0:', when='+tutorial') depends_on('llvm', when='+flecstan') + conflicts('+tutorial', when='backend=hpx') +# conflicts('+hdf5', when='backend=hpx') +# conflicts('+hdf5', when='backend=mpi') + def cmake_args(self): - options = ['-DCMAKE_BUILD_TYPE=debug'] - options.append('-DCINCH_SOURCE_DIR=' + self.spec['cinch'].prefix) + 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' + ] + options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix) - if self.spec.variants['backend'].value == 'legion': + if spec.variants['backend'].value == 'legion': options.append('-DFLECSI_RUNTIME_MODEL=legion') - elif self.spec.variants['backend'].value == 'mpi': + options.append('-DENABLE_MPI=ON') + elif spec.variants['backend'].value == 'mpi': options.append('-DFLECSI_RUNTIME_MODEL=mpi') + options.append('-DENABLE_MPI=ON') + elif spec.variants['backend'].value == 'hpx': + options.append('-DFLECSI_RUNTIME_MODEL=hpx') + options.append('-DENABLE_MPI=ON') else: options.append('-DFLECSI_RUNTIME_MODEL=serial') - options.append( - '-DENABLE_MPI=OFF', - ) + options.append('-DENABLE_MPI=OFF') - if '+tutorial' in self.spec: - options.append('-DENABLE_FLECSIT=ON') - options.append('-DENABLE_FLECSI_TUTORIAL=ON') + if '+minimal' in spec: + options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON') else: - options.append('-DENABLE_FLECSIT=OFF') - options.append('-DENABLE_FLECSI_TUTORIAL=OFF') + 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') + + if self.run_tests: + options.append('-DENABLE_UNIT_TESTS=ON') + else: + options.append('-DENABLE_UNIT_TESTS=OFF') - if '+caliper' in self.spec: + if '+hdf5' in spec and spec.variants['backend'].value == 'legion': + options.append('-DENABLE_HDF5=ON') + else: + options.append('-DENABLE_HDF5=OFF') + if '+caliper' in spec: options.append('-DENABLE_CALIPER=ON') else: options.append('-DENABLE_CALIPER=OFF') + if '+tutorial' in spec: + options.append('-DENABLE_FLECSIT=ON') + options.append('-DENABLE_FLECSI_TUTORIAL=ON') + else: + options.append('-DENABLE_FLECSIT=OFF') + options.append('-DENABLE_FLECSI_TUTORIAL=OFF') - if '+flecstan' in self.spec: + if '+flecstan' in spec: options.append('-DENABLE_FLECSTAN=ON') else: options.append('-DENABLE_FLECSTAN=OFF') + if '+doxygen' in spec: + options.append('-DENABLE_DOXYGEN=ON') + else: + options.append('-DENABLE_DOXYGEN=OFF') + if '+doc' in spec: + options.append('-DENABLE_DOCUMENTATION=ON') + else: + options.append('-DENABLE_DOCUMENTATION=OFF') + if '+coverage' in spec: + options.append('-DENABLE_COVERAGE_BUILD=ON') + else: + options.append('-DENABLE_COVERAGE_BUILD=OFF') + return options diff --git a/var/spack/repos/builtin/packages/flex/package.py b/var/spack/repos/builtin/packages/flex/package.py index 64e9bb69dc..dbe4a27bac 100644 --- a/var/spack/repos/builtin/packages/flex/package.py +++ b/var/spack/repos/builtin/packages/flex/package.py @@ -27,6 +27,8 @@ class Flex(AutotoolsPackage): depends_on('bison', type='build') depends_on('gettext@0.19:', type='build') depends_on('help2man', type='build') + depends_on('findutils', type='build') + depends_on('diffutils', type='build') # Older tarballs don't come with a configure script and the patch for # 2.6.4 touches configure diff --git a/var/spack/repos/builtin/packages/flibcpp/package.py b/var/spack/repos/builtin/packages/flibcpp/package.py index b03fa79cbb..81d30b1568 100644 --- a/var/spack/repos/builtin/packages/flibcpp/package.py +++ b/var/spack/repos/builtin/packages/flibcpp/package.py @@ -12,7 +12,7 @@ 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.0.tar.gz" + url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.1.tar.gz" version('master', branch='master') version('0.3.1', sha256='871570124122c18018478275d5040b4b787d1966e50ee95b634b0b5e0cd27e91') diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py index 11cb14d23c..0fa2e76113 100644 --- a/var/spack/repos/builtin/packages/flux-core/package.py +++ b/var/spack/repos/builtin/packages/flux-core/package.py @@ -14,7 +14,10 @@ class FluxCore(AutotoolsPackage): 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" - version('master', branch='master') + version('master', branch='master') + 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') @@ -27,10 +30,10 @@ class FluxCore(AutotoolsPackage): variant('docs', default=False, description='Build flux manpages') variant('cuda', default=False, description='Build dependencies with support for CUDA') - depends_on("zeromq@4.0.4:") + depends_on("libzmq@4.0.4:") depends_on("czmq") - depends_on("czmq@2.2:3.99", when="@0.1:0.6.99") - depends_on("czmq@3.0.1:", when="@0.7:,master") + 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("hwloc +cuda", when='+cuda') # Provide version hints for lua so that the concretizer succeeds when no @@ -42,15 +45,15 @@ class FluxCore(AutotoolsPackage): depends_on("munge", when="@0.1.0:0.10.0") depends_on("python", type=('build', 'run')) depends_on("python@2.7:2.99", when="@0.1.0:0.11.0") - depends_on("python@2.7:", when="@0.11.1:,master") + depends_on("python@2.7:", when="@0.11.1:") depends_on("py-cffi", type=('build', 'run')) - depends_on("py-six", type=('build', 'run'), when="@0.11.0:,master") - depends_on("py-pyyaml", type=('build', 'run'), when="@0.11.0:,master") - depends_on("py-jsonschema", type=('build', 'run'), when="@master") + 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("jansson") depends_on("pkgconfig") - depends_on("yaml-cpp", when="@:0.11.0") - depends_on("lz4", when="@0.11.0:,master") + 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 @@ -63,6 +66,29 @@ class FluxCore(AutotoolsPackage): depends_on("automake", type='build', when='@master') depends_on("libtool", type='build', when='@master') + # Testing Dependencies + depends_on("mpich pmi=pmi", type="test") + depends_on("valgrind", type="test") + depends_on("jq", type="test", when='@0.12.0:') + + def url_for_version(self, version): + ''' + Flux uses a fork of ZeroMQ's Collective Code Construction Contract + (https://github.com/flux-framework/rfc/blob/master/spec_1.adoc). + This model requires a repository fork for every stable release that has + patch releases. For example, 0.8.0 and 0.9.0 are both tags within the + main repository, but 0.8.1 and 0.9.5 would be releases on the v0.8 and + v0.9 forks, respectively. + + Rather than provide an explicit URL for each patch release, make Spack + aware of this repo structure. + ''' + if version[-1] == 0: + url = "https://github.com/flux-framework/flux-core/releases/download/v{0}/flux-core-{0}.tar.gz" + else: + url = "https://github.com/flux-framework/flux-core-v{1}/releases/download/v{0}/flux-core-{0}.tar.gz" + return url.format(version.up_to(3), version.up_to(2)) + def setup(self): pass @@ -95,28 +121,49 @@ class FluxCore(AutotoolsPackage): def lua_lib_dir(self): return os.path.join('lib', 'lua', str(self.lua_version)) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Ensure ./fluxometer.lua can be found during flux's make check - spack_env.append_path('LUA_PATH', './?.lua', separator=';') + env.append_path('LUA_PATH', './?.lua', separator=';') - run_env.prepend_path( + def setup_run_environment(self, env): + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_CPATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'), separator=';') - run_env.prepend_path( + env.prepend_path( 'PYTHONPATH', os.path.join( self.spec.prefix.lib, "python{0}".format(self.spec['python'].version.up_to(2)), "site-packages"), ) - run_env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) - run_env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) - run_env.prepend_path('FLUX_RC_PATH', self.prefix.etc.flux) + env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) + env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) + env.prepend_path('FLUX_RC_PATH', self.prefix.etc.flux) + env.prepend_path('FLUX_RC1_PATH', self.prefix.etc.flux.rc1) + env.prepend_path('FLUX_RC3_PATH', self.prefix.etc.flux.rc3) + env.prepend_path( + 'FLUX_CONNECTOR_PATH', + self.prefix.lib.flux.connectors + ) + env.prepend_path( + 'FLUX_PMI_LIBRARY_PATH', + os.path.join(self.prefix.lib.flux, "libpmi.so") + ) + # Wreck was removed in 0.12 + if self.version < Version("0.12.0"): + env.prepend_path( + 'FLUX_WREXECD_PATH', + self.prefix.libexec.flux.wrexecd + ) + env.prepend_path( + 'FLUX_WRECK_LUA_PATTERN', + os.path.join(self.prefix.etc.wreck, "lua.d", "*.lua") + ) def configure_args(self): args = ['--enable-pylint=no'] diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py index 5a77ed46ff..7e43622a7e 100644 --- a/var/spack/repos/builtin/packages/flux-sched/package.py +++ b/var/spack/repos/builtin/packages/flux-sched/package.py @@ -15,6 +15,7 @@ class FluxSched(AutotoolsPackage): git = "https://github.com/flux-framework/flux-sched.git" version('master', branch='master') + version('0.7.1', sha256='a35e555a353feed6b7b814ae83d05362356f9ee33ffa75d7dfb7e2fe86c21294') version('0.7.0', sha256='69267a3aaacaedd9896fd90cfe17aef266cba4fb28c77f8123d95a31ce739a7b') version('0.6.0', sha256='3301d4c10810414228e5969b84b75fe1285abb97453070eb5a77f386d8184f8d') version('0.5.0', sha256='d6347f5c85c12c76364dccb39d63c007094ca9cbbbae4e8f4e98d8b1c0b07e89') @@ -26,9 +27,9 @@ 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:,master') - depends_on("py-pyyaml", when="@0.7.0:,master") - depends_on("libxml2@2.9.1:", when="@0.6.0,master") + 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("pkgconfig") @@ -39,6 +40,7 @@ class FluxSched(AutotoolsPackage): depends_on("flux-core@0.9.0", when='@0.5.0') depends_on("flux-core@0.10.0", when='@0.6.0') depends_on("flux-core@0.11.0", when='@0.7.0') + depends_on("flux-core@0.11.2:0.11.99", when='@0.7.1') depends_on("flux-core@master", when='@master') # Need autotools when building on master: @@ -46,6 +48,24 @@ class FluxSched(AutotoolsPackage): depends_on("automake", type='build', when='@master') depends_on("libtool", type='build', when='@master') + def url_for_version(self, version): + ''' + Flux uses a fork of ZeroMQ's Collective Code Construction Contract + (https://github.com/flux-framework/rfc/blob/master/spec_1.adoc). + This model requires a repository fork for every stable release that has + patch releases. For example, 0.8.0 and 0.9.0 are both tags within the + main repository, but 0.8.1 and 0.9.5 would be releases on the v0.8 and + v0.9 forks, respectively. + + Rather than provide an explicit URL for each patch release, make Spack + aware of this repo structure. + ''' + if version[-1] == 0: + url = "https://github.com/flux-framework/flux-sched/releases/download/v{0}/flux-sched-{0}.tar.gz" + else: + url = "https://github.com/flux-framework/flux-sched-v{1}/releases/download/v{0}/flux-sched-{0}.tar.gz" + return url.format(version.up_to(3), version.up_to(2)) + def setup(self): pass @@ -86,18 +106,18 @@ class FluxSched(AutotoolsPackage): def lua_lib_dir(self): return os.path.join('lib', 'lua', str(self.lua_version)) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path( + def setup_run_environment(self, env): + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_CPATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'), separator=';') - run_env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) - run_env.prepend_path('FLUX_MODULE_PATH', - self.prefix.lib.flux.modules.sched) - run_env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) - run_env.prepend_path('FLUX_RC_EXTRA', self.prefix.etc.flux) + env.prepend_path('FLUX_MODULE_PATH', self.prefix.lib.flux.modules) + env.prepend_path('FLUX_MODULE_PATH', + self.prefix.lib.flux.modules.sched) + env.prepend_path('FLUX_EXEC_PATH', self.prefix.libexec.flux.cmd) + env.prepend_path('FLUX_RC_EXTRA', self.prefix.etc.flux) diff --git a/var/spack/repos/builtin/packages/fluxbox/fix_zero_comparison.patch b/var/spack/repos/builtin/packages/fluxbox/fix_zero_comparison.patch new file mode 100644 index 0000000000..53c2367a3a --- /dev/null +++ b/var/spack/repos/builtin/packages/fluxbox/fix_zero_comparison.patch @@ -0,0 +1,11 @@ +--- spack-src/util/fluxbox-remote.cc.org 2019-11-08 16:22:55.647747144 +0900 ++++ spack-src/util/fluxbox-remote.cc 2019-11-08 16:23:15.709859444 +0900 +@@ -73,7 +73,7 @@ + if (strcmp(cmd, "result") == 0) { + XTextProperty text_prop; + if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0 +- && text_prop.value > 0 ++ && text_prop.value != 0 + && text_prop.nitems > 0) { + + printf("%s", text_prop.value); diff --git a/var/spack/repos/builtin/packages/fluxbox/package.py b/var/spack/repos/builtin/packages/fluxbox/package.py index d4499612ba..e1ec79ac7f 100644 --- a/var/spack/repos/builtin/packages/fluxbox/package.py +++ b/var/spack/repos/builtin/packages/fluxbox/package.py @@ -19,6 +19,9 @@ class Fluxbox(AutotoolsPackage): version('1.3.7', sha256='c99e2baa06fff1e96342b20415059d12ff1fa2917ade0173c75b2fa570295b9f') + # Referenced:https://sourceforge.net/p/fluxbox/bugs/1171/ + patch('fix_zero_comparison.patch') + depends_on('pkgconfig', type='build') depends_on('freetype') depends_on('libxrender') diff --git a/var/spack/repos/builtin/packages/foam-extend/package.py b/var/spack/repos/builtin/packages/foam-extend/package.py index 8932c4cc07..3b8703639f 100644 --- a/var/spack/repos/builtin/packages/foam-extend/package.py +++ b/var/spack/repos/builtin/packages/foam-extend/package.py @@ -118,7 +118,7 @@ class FoamExtend(Package): # - End of definitions / setup - # - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Add environment variables to the generated module file. These environment variables come from running: @@ -126,13 +126,6 @@ class FoamExtend(Package): $ . $WM_PROJECT_DIR/etc/bashrc """ - - # NOTE: Spack runs setup_environment twice. - # 1) pre-build to set up the build environment - # 2) post-install to determine runtime environment variables - # The etc/bashrc is only available (with corrrect content) - # post-installation. - bashrc = join_path(self.projectdir, 'etc', 'bashrc') minimal = True if os.path.isfile(bashrc): @@ -173,7 +166,7 @@ class FoamExtend(Package): 'PYTHON_BIN_DIR', ]) - run_env.extend(mods) + env.extend(mods) minimal = False tty.info('foam-extend env: {0}'.format(bashrc)) except Exception: @@ -182,19 +175,19 @@ class FoamExtend(Package): if minimal: # pre-build or minimal environment tty.info('foam-extend minimal env {0}'.format(self.prefix)) - run_env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)), - run_env.set('FOAM_PROJECT_DIR', self.projectdir) - run_env.set('WM_PROJECT_DIR', self.projectdir) + env.set('FOAM_INST_DIR', os.path.dirname(self.projectdir)), + env.set('FOAM_PROJECT_DIR', self.projectdir) + env.set('WM_PROJECT_DIR', self.projectdir) for d in ['wmake', self.archbin]: # bin added automatically - run_env.prepend_path('PATH', join_path(self.projectdir, d)) + env.prepend_path('PATH', join_path(self.projectdir, d)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Location of the OpenFOAM project. This is identical to the WM_PROJECT_DIR value, but we avoid that variable since it would mask the normal OpenFOAM cleanup of previous versions. """ - spack_env.set('FOAM_PROJECT_DIR', self.projectdir) + env.set('FOAM_PROJECT_DIR', self.projectdir) @property def projectdir(self): diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py index 11635276fa..92ac5d30eb 100644 --- a/var/spack/repos/builtin/packages/font-util/package.py +++ b/var/spack/repos/builtin/packages/font-util/package.py @@ -77,10 +77,9 @@ class FontUtil(AutotoolsPackage): default=','.join(fonts), multi=True) - def setup_environment(self, spack_env, run_env): - spack_env.prepend_path('PATH', self.prefix.bin) - spack_env.prepend_path('PKG_CONFIG_PATH', - join_path(self.prefix.lib, 'pkgconfig')) + def setup_build_environment(self, env): + env.prepend_path('PATH', self.prefix.bin) + env.prepend_path('PKG_CONFIG_PATH', self.prefix.lib.pkgconfig) @run_after('install') def font_install(self): diff --git a/var/spack/repos/builtin/packages/fpocket/package.py b/var/spack/repos/builtin/packages/fpocket/package.py index 5d5e92dc4d..a4516f0b10 100644 --- a/var/spack/repos/builtin/packages/fpocket/package.py +++ b/var/spack/repos/builtin/packages/fpocket/package.py @@ -14,11 +14,11 @@ class Fpocket(MakefilePackage): version('master', branch='master', git='https://github.com/Discngine/fpocket.git') - depends_on("netcdf") + depends_on("netcdf-c") - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.compiler.name == 'gcc': - spack_env.set('CXX', 'g++') + env.set('CXX', 'g++') def edit(self): makefile = FileFilter('makefile') diff --git a/var/spack/repos/builtin/packages/fsl/package.py b/var/spack/repos/builtin/packages/fsl/package.py index 642f09644a..649be1fb96 100644 --- a/var/spack/repos/builtin/packages/fsl/package.py +++ b/var/spack/repos/builtin/packages/fsl/package.py @@ -51,33 +51,33 @@ class Fsl(Package): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if not self.stage.source_path: self.stage.fetch() self.stage.expand_archive() - spack_env.set('FSLDIR', self.stage.source_path) - - # 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. - run_env.set('FSLDIR', self.prefix) - run_env.set('FSLOUTPUTTYPE', 'NIFTI_GZ') - run_env.set('FSLMULTIFILEQUIT', 'TRUE') - run_env.set('FSLTCLSH', self.prefix.bin.fsltclsh) - run_env.set('FSLWISH', self.prefix.bin.fslwish) - run_env.set('FSLLOCKDIR', '') - run_env.set('FSLMACHINELIST', '') - run_env.set('FSLREMOTECALL', '') - run_env.set('FSLGECUDAQ', 'cuda.q') - - run_env.prepend_path('PATH', self.prefix) + env.set('FSLDIR', self.stage.source_path) # Below is for sourcing purposes during building fslsetup = join_path(self.stage.source_path, 'etc', 'fslconf', 'fsl.sh') if os.path.isfile(fslsetup): - spack_env.extend(EnvironmentModifications.from_sourcing_file( - fslsetup)) + 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. + 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) diff --git a/var/spack/repos/builtin/packages/fstrack/package.py b/var/spack/repos/builtin/packages/fstrack/package.py index 297af6dbac..ffbb1714f5 100644 --- a/var/spack/repos/builtin/packages/fstrack/package.py +++ b/var/spack/repos/builtin/packages/fstrack/package.py @@ -20,25 +20,25 @@ class Fstrack(MakefilePackage): variant('flow', default=True, description='Build the flow tracker') depends_on('gmt@4.0:4.999', when='+flow') - depends_on('netcdf', when='+flow') + depends_on('netcdf-c', when='+flow') parallel = False - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Compilers - spack_env.set('F90', spack_fc) + env.set('F90', spack_fc) # Compiler flags (assumes GCC) - spack_env.set('CFLAGS', '-O2') - spack_env.set('FFLAGS', '-ffixed-line-length-132 -x f77-cpp-input -O2') - spack_env.set('FFLAGS_DEBUG', '-g -x f77-cpp-input') - spack_env.set('F90FLAGS', '-O2 -x f95-cpp-input') - spack_env.set('F90FLAGS_DEBUG', '-g -x f95-cpp-input') - spack_env.set('LDFLAGS', '-lm') + env.set('CFLAGS', '-O2') + env.set('FFLAGS', '-ffixed-line-length-132 -x f77-cpp-input -O2') + env.set('FFLAGS_DEBUG', '-g -x f77-cpp-input') + env.set('F90FLAGS', '-O2 -x f95-cpp-input') + env.set('F90FLAGS_DEBUG', '-g -x f95-cpp-input') + env.set('LDFLAGS', '-lm') if '+flow' in self.spec: - spack_env.set('GMTHOME', self.spec['gmt'].prefix) - spack_env.set('NETCDFDIR', self.spec['netcdf'].prefix) + env.set('GMTHOME', self.spec['gmt'].prefix) + env.set('NETCDFDIR', self.spec['netcdf-c'].prefix) def build(self, spec, prefix): with working_dir('eispack'): diff --git a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py index 3370cc3b21..79b0eeba30 100644 --- a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py +++ b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py @@ -33,8 +33,8 @@ class FujitsuMpi(Package): self.spec.mpif77 = self.prefix.bin.mpifrt self.spec.mpifc = self.prefix.bin.mpifrt - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('MPICC', self.prefix.bin.mpifcc) - spack_env.set('MPICXX', self.prefix.bin.mpiFCC) - spack_env.set('MPIF77', self.prefix.bin.mpifrt) - spack_env.set('MPIF90', self.prefix.bin.mpifrt) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPICC', self.prefix.bin.mpifcc) + env.set('MPICXX', self.prefix.bin.mpiFCC) + env.set('MPIF77', self.prefix.bin.mpifrt) + env.set('MPIF90', self.prefix.bin.mpifrt) diff --git a/var/spack/repos/builtin/packages/funhpc/package.py b/var/spack/repos/builtin/packages/funhpc/package.py index ed69e4f88e..fe8adba18c 100644 --- a/var/spack/repos/builtin/packages/funhpc/package.py +++ b/var/spack/repos/builtin/packages/funhpc/package.py @@ -11,7 +11,7 @@ class Funhpc(CMakePackage): """FunHPC: Functional HPC Programming""" homepage = "https://github.com/eschnett/FunHPC.cxx" - url = "https://github.com/eschnett/FunHPC.cxx/archive/version/0.1.0.tar.gz" + url = "https://github.com/eschnett/FunHPC.cxx/archive/version/1.3.0.tar.gz" git = "https://github.com/eschnett/FunHPC.cxx.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py index ad065f9233..e71397f6f1 100644 --- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py +++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py @@ -21,8 +21,8 @@ class G4ensdfstate(Package): .format(self.version)) install_tree(self.stage.source_path, install_path) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - run_env.set('G4ENSDFSTATEDATA', join_path(prefix.share, 'data')) + def setup_dependent_run_environment(self, env, dependent_spec): + env.set('G4ENSDFSTATEDATA', self.prefix.share.data) def url_for_version(self, version): """Handle version string.""" diff --git a/var/spack/repos/builtin/packages/gams/package.py b/var/spack/repos/builtin/packages/gams/package.py index c900c6aad8..b42d41d578 100644 --- a/var/spack/repos/builtin/packages/gams/package.py +++ b/var/spack/repos/builtin/packages/gams/package.py @@ -20,10 +20,9 @@ class Gams(Package): def url_for_version(self, version): return "file://{0}/linux_x64_64_sfx.exe".format(os.getcwd()) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path("PATH", join_path(self.prefix, - 'gams{0}_linux_x64_64_sfx' - .format(self.version))) + def setup_run_environment(self, env): + env.prepend_path("PATH", join_path( + self.prefix, 'gams{0}_linux_x64_64_sfx'.format(self.version))) def install(self, spec, prefix): os.chmod(join_path(self.stage.source_path, diff --git a/var/spack/repos/builtin/packages/gatk/package.py b/var/spack/repos/builtin/packages/gatk/package.py index 8f620daba5..9329767be3 100644 --- a/var/spack/repos/builtin/packages/gatk/package.py +++ b/var/spack/repos/builtin/packages/gatk/package.py @@ -87,7 +87,7 @@ class Gatk(Package): **kwargs ) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path( - "GATK", join_path(self.prefix, "bin", "GenomeAnalysisTK.jar") + def setup_run_environment(self, env): + env.prepend_path( + "GATK", join_path(self.prefix.bin, "GenomeAnalysisTK.jar") ) diff --git a/var/spack/repos/builtin/packages/gaussian/package.py b/var/spack/repos/builtin/packages/gaussian/package.py index 3acb95974d..19bf35d129 100644 --- a/var/spack/repos/builtin/packages/gaussian/package.py +++ b/var/spack/repos/builtin/packages/gaussian/package.py @@ -38,15 +38,14 @@ class Gaussian(Package): filter_file('/usr/bin/linda', prefix.bin, join_path(prefix.bin, filename), string='True') - def setup_environment(self, spack_env, run_env): - run_env.set('g09root', self.prefix) - run_env.set('GAUSSIANHOME', self.prefix) - run_env.set('GAUSS_EXEDIR', self.prefix.bin) - run_env.set('G09_BASIS', join_path(self.prefix.bin, 'basis')) - run_env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin, - 'linda-exe')) - run_env.set('GAUSS_ARCHDIR', join_path(self.prefix.bin, 'arch')) - run_env.set('GAUSS_BSDDIR', join_path(self.prefix.bin, 'bsd')) - run_env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin, - 'linda8.2/opteron-linux/lib')) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin) + def setup_run_environment(self, env): + env.set('g09root', self.prefix) + env.set('GAUSSIANHOME', self.prefix) + env.set('GAUSS_EXEDIR', self.prefix.bin) + env.set('G09_BASIS', self.prefix.bin.basis) + env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin, 'linda-exe')) + env.set('GAUSS_ARCHDIR', self.prefix.bin.arch) + env.set('GAUSS_BSDDIR', self.prefix.bin.bsd) + env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin, + 'linda8.2', 'opteron-linux', 'lib')) + env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/gawk/package.py b/var/spack/repos/builtin/packages/gawk/package.py index a3e7268fc8..8c6d97f21f 100644 --- a/var/spack/repos/builtin/packages/gawk/package.py +++ b/var/spack/repos/builtin/packages/gawk/package.py @@ -6,7 +6,7 @@ from spack import * -class Gawk(AutotoolsPackage): +class Gawk(AutotoolsPackage, GNUMirrorPackage): """If you are like many computer users, you would frequently like to make changes in various text files wherever certain patterns appear, or extract data from parts of certain lines while discarding the @@ -21,8 +21,9 @@ class Gawk(AutotoolsPackage): """ homepage = "https://www.gnu.org/software/gawk/" - url = "https://ftpmirror.gnu.org/gawk/gawk-4.1.4.tar.xz" + gnu_mirror_path = "gawk/gawk-4.1.4.tar.xz" + version('5.0.1', sha256='8e4e86f04ed789648b66f757329743a0d6dfb5294c3b91b756a474f1ce05a794') version('4.1.4', sha256='53e184e2d0f90def9207860531802456322be091c7b48f23fdc79cda65adc266') depends_on('gettext') diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 836c018604..b93c478f67 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -13,12 +13,12 @@ import os import sys -class Gcc(AutotoolsPackage): +class Gcc(AutotoolsPackage, GNUMirrorPackage): """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages.""" homepage = 'https://gcc.gnu.org' - url = 'https://ftpmirror.gnu.org/gcc/gcc-7.1.0/gcc-7.1.0.tar.bz2' + gnu_mirror_path = 'gcc/gcc-9.2.0/gcc-9.2.0.tar.xz' svn = 'svn://gcc.gnu.org/svn/gcc/' list_url = 'http://ftp.gnu.org/gnu/gcc/' list_depth = 1 @@ -100,7 +100,7 @@ class Gcc(AutotoolsPackage): depends_on('isl@0.15:0.18', when='@6:8.9') depends_on('isl@0.15:0.20', when='@9:') depends_on('zlib', when='@6:') - depends_on('libiconv') + depends_on('libiconv', when='platform=darwin') depends_on('gnat', when='languages=ada') depends_on('binutils~libiberty', when='+binutils') depends_on('zip', type='build', when='languages=java') @@ -228,16 +228,14 @@ class Gcc(AutotoolsPackage): build_directory = 'spack-build' def url_for_version(self, version): - url = 'https://ftpmirror.gnu.org/gcc/gcc-{0}/gcc-{0}.tar.{1}' - suffix = 'xz' - - if version < Version('6.4.0') or version == Version('7.1.0'): - suffix = 'bz2' - - if version == Version('5.5.0'): - suffix = 'xz' - - return url.format(version, suffix) + # This function will be called when trying to fetch from url, before + # mirrors are tried. It takes care of modifying the suffix of gnu + # mirror path so that Spack will also look for the correct file in + # the mirrors + if (version < Version('6.4.0')and version != Version('5.5.0')) \ + or version == Version('7.1.0'): + self.gnu_mirror_path = self.gnu_mirror_path.replace('xz', 'bz2') + return super(Gcc, self).url_for_version(version) def patch(self): spec = self.spec @@ -279,7 +277,6 @@ class Gcc(AutotoolsPackage): ','.join(spec.variants['languages'].value)), # Drop gettext dependency '--disable-nls', - '--with-libiconv-prefix={0}'.format(spec['libiconv'].prefix), '--with-mpfr={0}'.format(spec['mpfr'].prefix), '--with-gmp={0}'.format(spec['gmp'].prefix), ] @@ -328,7 +325,8 @@ class Gcc(AutotoolsPackage): if sys.platform == 'darwin': options.extend([ '--with-native-system-header-dir=/usr/include', - '--with-sysroot={0}'.format(macos_sdk_path()) + '--with-sysroot={0}'.format(macos_sdk_path()), + '--with-libiconv-prefix={0}'.format(spec['libiconv'].prefix) ]) return options @@ -424,7 +422,7 @@ class Gcc(AutotoolsPackage): self.prefix.lib, self.prefix.lib64)) set_install_permissions(specs_file) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # Search prefix directory for possibly modified compiler names from spack.compilers.gcc import Gcc as Compiler @@ -450,6 +448,6 @@ class Gcc(AutotoolsPackage): continue # Set the proper environment variable - run_env.set(lang.upper(), abspath) + env.set(lang.upper(), abspath) # Stop searching filename/regex combos for this language break diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index 32e746472d..81bb2c2782 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -18,7 +18,7 @@ class Gdal(AutotoolsPackage): """ homepage = "https://www.gdal.org/" - url = "https://download.osgeo.org/gdal/3.0.1/gdal-3.0.1.tar.xz" + url = "https://download.osgeo.org/gdal/3.0.2/gdal-3.0.2.tar.xz" list_url = "https://download.osgeo.org/gdal/" list_depth = 1 @@ -29,8 +29,10 @@ class Gdal(AutotoolsPackage): 'osgeo.gdal_array', 'osgeo.gdalconst' ] + version('3.0.2', sha256='c3765371ce391715c8f28bd6defbc70b57aa43341f6e94605f04fe3c92468983') version('3.0.1', sha256='45b4ae25dbd87282d589eca76481c426f72132d7a599556470d5c38263b09266') version('3.0.0', sha256='ad316fa052d94d9606e90b20a514b92b2dd64e3142dfdbd8f10981a5fcd5c43e') + version('2.4.3', sha256='d52dc3e0cff3af3e898d887c4151442989f416e839948e73f0994f0224bbff60') version('2.4.2', sha256='dcc132e469c5eb76fa4aaff238d32e45a5d947dc5b6c801a123b70045b618e0c') version('2.4.1', sha256='fd51b4900b2fc49b98d8714f55fc8a78ebfd07218357f93fb796791115a5a1ad') version('2.4.0', sha256='c3791dcc6d37e59f6efa86e2df2a55a4485237b0a48e330ae08949f0cdf00f27') @@ -93,9 +95,9 @@ class Gdal(AutotoolsPackage): # Required dependencies depends_on('libtiff@3.6.0:') # 3.9.0+ needed to pass testsuite - depends_on('libgeotiff@1.2.1:') - depends_on('libgeotiff@:1.4', when='@:2.4') - depends_on('libgeotiff@1.5:', when='@3:') + depends_on('libgeotiff@1.2.1:1.4', when='@:2.4.0') + depends_on('libgeotiff@1.2.1:1.5', when='@2.4.1:2.4.2') + depends_on('libgeotiff@1.5:', when='@3.0.0:') depends_on('json-c') depends_on('json-c@0.12.1', when='@:2.2') @@ -114,7 +116,7 @@ class Gdal(AutotoolsPackage): depends_on('hdf', when='+hdf4') depends_on('hdf5', when='+hdf5') depends_on('kealib', when='+kea @2:') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('jasper@1.900.1', patches='uuid.patch', when='+jasper') depends_on('openjpeg', when='+openjpeg') depends_on('xerces-c', when='+xerces') @@ -157,12 +159,12 @@ class Gdal(AutotoolsPackage): conflicts('+mdb', when='~java', msg='MDB driver requires Java') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Needed to install Python bindings to GDAL installation # prefix instead of Python installation prefix. # See swig/python/GNUmakefile for more details. - spack_env.set('PREFIX', self.prefix) - spack_env.set('DESTDIR', '/') + env.set('PREFIX', self.prefix) + env.set('DESTDIR', '/') # https://trac.osgeo.org/gdal/wiki/BuildHints def configure_args(self): @@ -299,7 +301,7 @@ class Gdal(AutotoolsPackage): # https://trac.osgeo.org/gdal/wiki/NetCDF if '+netcdf' in spec: - args.append('--with-netcdf={0}'.format(spec['netcdf'].prefix)) + args.append('--with-netcdf={0}'.format(spec['netcdf-c'].prefix)) else: args.append('--with-netcdf=no') diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py index 1d26562f06..d1420a84c5 100644 --- a/var/spack/repos/builtin/packages/gdb/package.py +++ b/var/spack/repos/builtin/packages/gdb/package.py @@ -6,14 +6,14 @@ from spack import * -class Gdb(AutotoolsPackage): +class Gdb(AutotoolsPackage, GNUMirrorPackage): """GDB, the GNU Project debugger, allows you to see what is going on 'inside' another program while it executes -- or what another program was doing at the moment it crashed. """ homepage = "https://www.gnu.org/software/gdb" - url = "https://ftpmirror.gnu.org/gdb/gdb-7.10.tar.gz" + gnu_mirror_path = "gdb/gdb-7.10.tar.gz" version('8.3', sha256='b2266ec592440d0eec18ee1790f8558b3b8a2845b76cc83a872e39b501ce8a28') version('8.2.1', sha256='0107985f1edb8dddef6cdd68a4f4e419f5fec0f488cc204f0b7d482c0c6c9282') diff --git a/var/spack/repos/builtin/packages/gdbm/package.py b/var/spack/repos/builtin/packages/gdbm/package.py index 478772d87c..5d144595c3 100644 --- a/var/spack/repos/builtin/packages/gdbm/package.py +++ b/var/spack/repos/builtin/packages/gdbm/package.py @@ -7,15 +7,14 @@ from spack import * -class Gdbm(AutotoolsPackage): +class Gdbm(AutotoolsPackage, GNUMirrorPackage): """GNU dbm (or GDBM, for short) is a library of database functions that use extensible hashing and work similar to the standard UNIX dbm. 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" - # URL must remain http:// so Spack can bootstrap curl - url = "http://ftpmirror.gnu.org/gdbm/gdbm-1.13.tar.gz" + gnu_mirror_path = "gdbm/gdbm-1.13.tar.gz" version('1.18.1', sha256='86e613527e5dba544e73208f42b78b7c022d4fa5a6d5498bf18c8d6f745b91dc') version('1.14.1', sha256='cdceff00ffe014495bed3aed71c7910aa88bf29379f795abc0f46d4ee5f8bc5f') diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py index 5981d6381e..9fd81a4f4a 100644 --- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py +++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py @@ -46,11 +46,11 @@ class GdkPixbuf(Package): url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/{0}/gdk-pixbuf-{1}.tar.xz" return url.format(version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) + 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 install(self, spec, prefix): with working_dir('spack-build', create=True): @@ -81,7 +81,7 @@ class GdkPixbuf(Package): if self.run_tests: make('installcheck') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # The "post-install.sh" script uses gdk-pixbuf-query-loaders, # which was installed earlier. - spack_env.prepend_path('PATH', self.prefix.bin) + env.prepend_path('PATH', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/gdl/package.py b/var/spack/repos/builtin/packages/gdl/package.py index eef7ada1c0..ab7a79c352 100644 --- a/var/spack/repos/builtin/packages/gdl/package.py +++ b/var/spack/repos/builtin/packages/gdl/package.py @@ -57,7 +57,7 @@ class Gdl(CMakePackage): depends_on('libsm') depends_on('libxinerama') depends_on('libxxf86vm') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('pslib') depends_on('readline') diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py index d0a4c111e7..24fd53d6bb 100644 --- a/var/spack/repos/builtin/packages/geant4/package.py +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -17,6 +17,7 @@ class Geant4(CMakePackage): homepage = "http://geant4.cern.ch/" url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz" + version('10.05.p01', sha256='f4a292220500fad17e0167ce3153e96e3410ecbe96284e572dc707f63523bdff') version('10.04', sha256='f6d883132f110eb036c69da2b21df51f13c585dc7b99d4211ddd32f4ccee1670') version('10.03.p03', sha256='a164f49c038859ab675eec474d08c9d02be8c4be9c0c2d3aa8e69adf89e1e138') @@ -61,7 +62,7 @@ class Geant4(CMakePackage): depends_on("libx11", when='+x11') depends_on("libxmu", when='+x11') depends_on("motif", when='+motif') - depends_on("qt@4.8:4.999", when="+qt") + depends_on("qt@4.8:", when="+qt") # if G4 data not installed with geant4 # depend on G4 data packages @@ -145,7 +146,7 @@ class Geant4(CMakePackage): target = os.readlink(d) os.symlink(target, os.path.basename(target)) - def setup_dependent_environment(self, spack_env, run_env, dep_spec): + def setup_dependent_build_environment(self, env, dependent_spec): version = self.version major = version[0] minor = version[1] @@ -154,6 +155,5 @@ class Geant4(CMakePackage): else: patch = 0 datadir = 'Geant4-%s.%s.%s' % (major, minor, patch) - spack_env.append_path('CMAKE_MODULE_PATH', - '{0}/{1}/Modules'.format( - self.prefix.lib64, datadir)) + env.append_path('CMAKE_MODULE_PATH', join_path( + self.prefix.lib64, datadir, 'Modules')) diff --git a/var/spack/repos/builtin/packages/genemark-et/package.py b/var/spack/repos/builtin/packages/genemark-et/package.py index a66cfa87a0..2c30370ccc 100644 --- a/var/spack/repos/builtin/packages/genemark-et/package.py +++ b/var/spack/repos/builtin/packages/genemark-et/package.py @@ -55,5 +55,5 @@ class GenemarkEt(Package): for file in files: filter_file(pattern, repl, *files, backup=False) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PERL5LIB', prefix.lib) + def setup_run_environment(self, env): + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/genometools/package.py b/var/spack/repos/builtin/packages/genometools/package.py index e76b0df92c..78f21db2c0 100644 --- a/var/spack/repos/builtin/packages/genometools/package.py +++ b/var/spack/repos/builtin/packages/genometools/package.py @@ -25,5 +25,5 @@ class Genometools(MakefilePackage): def install(self, spec, prefix): make('install', 'prefix=%s' % prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('CPATH', self.prefix.include.genometools) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('CPATH', self.prefix.include.genometools) diff --git a/var/spack/repos/builtin/packages/genrich/package.py b/var/spack/repos/builtin/packages/genrich/package.py new file mode 100644 index 0000000000..797729ab82 --- /dev/null +++ b/var/spack/repos/builtin/packages/genrich/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Genrich(MakefilePackage): + """Genrich is a peak-caller for genomic enrichment assays.""" + + homepage = "https://github.com/jsh58/Genrich" + url = "https://github.com/jsh58/Genrich/archive/v0.6.tar.gz" + + version('0.6', sha256='4c87aca8b7789f28b0c5c2c0ccea75668f19fa6a4cb38cd3c06d80ffd98d396f') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('Genrich', prefix.bin) diff --git a/var/spack/repos/builtin/packages/geopm/package.py b/var/spack/repos/builtin/packages/geopm/package.py index 154d9e4ceb..18a4ff8e49 100644 --- a/var/spack/repos/builtin/packages/geopm/package.py +++ b/var/spack/repos/builtin/packages/geopm/package.py @@ -18,16 +18,14 @@ class Geopm(AutotoolsPackage): msr-safe kernel module by your administrator.""" homepage = "https://geopm.github.io" - url = "https://github.com/geopm/geopm/releases/download/v0.4.0/geopm-0.4.0.tar.gz" + url = "https://github.com/geopm/geopm/releases/download/v1.0.0/geopm-1.0.0.tar.gz" git = "https://github.com/geopm/geopm.git" # Add additional proper versions and checksums here. "spack checksum geopm" version('develop', branch='dev') version('master', branch='master') - version('1.0.0-rc2', sha256='c6637df54728ded31fd682f39a07dffee45883f350e6dbd13e1496dd50243ffd', - url='https://github.com/geopm/geopm/releases/download/v1.0.0%2Brc2/geopm-1.0.0+rc2.tar.gz') - version('1.0.0-rc1', sha256='f8a2e5c384a15e9663f409de478b6372cd63e63a28d4701a33ac043fc27905e0', - url='https://github.com/geopm/geopm/releases/download/v1.0.0-rc1/geopm-1.0.0+rc1.tar.gz') + version('1.1.0', sha256='5f9a4df37ef0d64c53d64829d46736803c9fe614afd8d2c70fe7a5ebea09f88e') + version('1.0.0', sha256='24fe72265a7e44d62bdfe49467c49f0b7a649131ddda402d763c00a49765e1cb') version('0.6.1', sha256='0ca42853f90885bf213df190c3462b8675c143cc843aee0d8b8a0e30802b55a9') version('0.6.0', sha256='95ccf256c2b7cb35838978152479569d154347c3065af1639ed17be1399182d3') version('0.5.1', sha256='db247af55f7000b6e4628af099956349b68a637500b9d4fe8d8fb13687124d53') @@ -45,27 +43,44 @@ class Geopm(AutotoolsPackage): variant('doc', default=True, description='Create man pages with ruby-ronn.') variant('openmp', default=True, description='Build with OpenMP.') variant('ompt', default=False, description='Use OpenMP Tools Interface.') - variant('hwloc', default=False, description='Build with hwloc, deprecated and ignored after v0.5.1.') variant('gnu-ld', default=False, description='Assume C compiler uses gnu-ld.') # Added dependencies. + depends_on('ruby-ronn', type='build', when='+doc') + depends_on('doxygen', type='build', when='+doc') + depends_on('mpi@2.2:', when='+mpi') + depends_on('m4', type='build') - depends_on('automake', type='build') depends_on('autoconf', type='build') + depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('ruby-ronn', type='build', when='+doc') depends_on('doxygen', type='build', when='+doc') - depends_on('numactl') + 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('json-c') - depends_on('py-pandas', type='run') - depends_on('py-numpy', type='run') - depends_on('py-natsort', type='run') - depends_on('py-matplotlib@2.2.3', type='run') + 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-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')) + depends_on('py-future@0.17.1:', when="@1.1.0:", type=('build', 'run')) + depends_on('py-numpy@1.14.3:', type=('build', 'run')) + depends_on('py-setuptools@39.2.0:', when="@1.0.0:", type='build') + depends_on('py-natsort@5.3.2:', type=('build', 'run')) + depends_on('py-psutil@5.4.8:', when="@1.0.0:", type=('build', 'run')) + depends_on('py-pylint@1.9.5:', when="@1.1.0:", type=('build', 'run')) + depends_on('py-matplotlib@2.2.3', when="@:1.0.0-rc2", type=('build', 'run')) + depends_on('py-matplotlib@2.2.3:', when="@1.1.0:", type=('build', 'run')) parallel = False + def autoreconf(self, spec, prefix): + bash = which("bash") + bash('./autogen.sh') + def configure_args(self): args = [] args.extend(self.enable_or_disable('debug')) @@ -77,10 +92,6 @@ class Geopm(AutotoolsPackage): args.extend(self.enable_or_disable('doc')) args.extend(self.enable_or_disable('openmp')) args.extend(self.enable_or_disable('ompt')) - if self.version <= Version('0.5.1'): - args.extend(self.with_or_without( - 'hwloc', - activation_value='prefix')) args.extend(self.with_or_without('gnu-ld')) return args diff --git a/var/spack/repos/builtin/packages/gettext/package.py b/var/spack/repos/builtin/packages/gettext/package.py index 070ad06781..e2b4190519 100644 --- a/var/spack/repos/builtin/packages/gettext/package.py +++ b/var/spack/repos/builtin/packages/gettext/package.py @@ -6,11 +6,11 @@ from spack import * -class Gettext(AutotoolsPackage): +class Gettext(AutotoolsPackage, GNUMirrorPackage): """GNU internationalization (i18n) and localization (l10n) library.""" homepage = "https://www.gnu.org/software/gettext/" - url = "https://ftpmirror.gnu.org/gettext/gettext-0.20.1.tar.xz" + gnu_mirror_path = "gettext/gettext-0.20.1.tar.xz" version('0.20.1', sha256='53f02fbbec9e798b0faaf7c73272f83608e835c6288dd58be6c9bb54624a3800') version('0.19.8.1', sha256='105556dbc5c3fbbc2aa0edb46d22d055748b6f5c7cd7a8d99f8e7eb84e938be4') diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index 23d2b53495..a0de875a52 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -12,14 +12,14 @@ class Ginkgo(CMakePackage, CudaPackage): with a focus on sparse solution of linear systems.""" homepage = "https://ginkgo-project.github.io/" - url = "https://github.com/ginkgo-project/ginkgo.git" git = "https://github.com/ginkgo-project/ginkgo.git" maintainers = ['tcojean', 'hartwiganzt'] version('develop', branch='develop') version('master', branch='master') - version('1.0.0', commit='4524464') # v1.0.0 + version('1.1.0', commit='b9bec8225442b3eb2a85a870efa112ab767a17fb') # v1.1.0 + version('1.0.0', commit='45244641e0c2b19ba33aecd25153c0bddbcbe1a0') # v1.0.0 variant('shared', default=True, description='Build shared libraries') variant('full_optimizations', default=False, description='Compile with all optimizations') @@ -32,6 +32,8 @@ class Ginkgo(CMakePackage, CudaPackage): depends_on('cmake@3.9:', type='build') depends_on('cuda@9:', when='+cuda') + conflicts('%gcc@:5.2.9') + def cmake_args(self): spec = self.spec return [ diff --git a/var/spack/repos/builtin/packages/git-imerge/package.py b/var/spack/repos/builtin/packages/git-imerge/package.py index 67ef3ea614..d1999c62e6 100644 --- a/var/spack/repos/builtin/packages/git-imerge/package.py +++ b/var/spack/repos/builtin/packages/git-imerge/package.py @@ -31,7 +31,7 @@ class GitImerge(MakefilePackage): version('1.0.0', sha256='2ef3a49a6d54c4248ef2541efc3c860824fc8295a7226760f24f0bb2c5dd41f2') depends_on('python@2.6:') - depends_on('py-argparse', when='^python@2.6') + depends_on('py-argparse', when='^python@:2.6') depends_on('git') # Package copies a Python script and bash-completion files, so diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py index 8828d68238..ceb4e2ccb0 100644 --- a/var/spack/repos/builtin/packages/git/package.py +++ b/var/spack/repos/builtin/packages/git/package.py @@ -185,13 +185,13 @@ class Git(AutotoolsPackage): depends_on('m4', type='build') depends_on('tk', type=('build', 'link'), when='+tcltk') - # See the comment in setup_environment re EXTLIBS. + # See the comment in setup_build_environment re EXTLIBS. def patch(self): filter_file(r'^EXTLIBS =$', '#EXTLIBS =', 'Makefile') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # We use EXTLIBS rather than LDFLAGS so that git's Makefile # inserts the information into the proper place in the link commands # (alongside the # other libraries/paths that configure discovers). @@ -204,9 +204,9 @@ class Git(AutotoolsPackage): # In that case the node in the DAG gets truncated and git DOES NOT # have a gettext dependency. if 'gettext' in self.spec: - spack_env.append_flags('EXTLIBS', '-L{0} -lintl'.format( + env.append_flags('EXTLIBS', '-L{0} -lintl'.format( self.spec['gettext'].prefix.lib)) - spack_env.append_flags('CFLAGS', '-I{0}'.format( + env.append_flags('CFLAGS', '-I{0}'.format( self.spec['gettext'].prefix.include)) def configure_args(self): diff --git a/var/spack/repos/builtin/packages/glpk/package.py b/var/spack/repos/builtin/packages/glpk/package.py index 05ed3fdc7e..de1cdb93ca 100644 --- a/var/spack/repos/builtin/packages/glpk/package.py +++ b/var/spack/repos/builtin/packages/glpk/package.py @@ -6,7 +6,7 @@ from spack import * -class Glpk(AutotoolsPackage): +class Glpk(AutotoolsPackage, GNUMirrorPackage): """The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written @@ -14,7 +14,7 @@ class Glpk(AutotoolsPackage): """ homepage = "https://www.gnu.org/software/glpk" - url = "https://ftpmirror.gnu.org/glpk/glpk-4.65.tar.gz" + gnu_mirror_path = "glpk/glpk-4.65.tar.gz" version('4.65', sha256='4281e29b628864dfe48d393a7bedd781e5b475387c20d8b0158f329994721a10') version('4.61', sha256='9866de41777782d4ce21da11b88573b66bb7858574f89c28be6967ac22dfaba9') diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py index baa4aa5080..4071677938 100644 --- a/var/spack/repos/builtin/packages/gmake/package.py +++ b/var/spack/repos/builtin/packages/gmake/package.py @@ -6,12 +6,12 @@ from spack import * -class Gmake(AutotoolsPackage): +class Gmake(AutotoolsPackage, GNUMirrorPackage): """GNU Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.""" homepage = "https://www.gnu.org/software/make/" - url = "https://ftpmirror.gnu.org/make/make-4.2.1.tar.gz" + gnu_mirror_path = "make/make-4.2.1.tar.gz" version('4.2.1', sha256='e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7') version('4.0', sha256='fc42139fb0d4b4291929788ebaf77e2a4de7eaca95e31f3634ef7d4932051f69') @@ -22,6 +22,8 @@ class Gmake(AutotoolsPackage): depends_on('gettext', when='+nls') depends_on('guile', when='+guile') + depends_on('texinfo', type='build') + build_directory = 'spack-build' 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') diff --git a/var/spack/repos/builtin/packages/gmodel/fix_gmodel.cpp.patch b/var/spack/repos/builtin/packages/gmodel/fix_gmodel.cpp.patch new file mode 100644 index 0000000000..c4e1cae15e --- /dev/null +++ b/var/spack/repos/builtin/packages/gmodel/fix_gmodel.cpp.patch @@ -0,0 +1,54 @@ +--- spack-src/gmodel.cpp.org 2019-12-13 10:43:51.578849661 +0900 ++++ spack-src/gmodel.cpp 2019-12-13 10:54:55.467737618 +0900 +@@ -30,9 +30,9 @@ + /* PLANE = */ "Physical Surface", + /* RULED = */ "Physical Surface", + /* VOLUME = */ "Physical Volume", +- /* LOOP = */ 0, +- /* SHELL = */ 0, +- /* GROUP = */ 0}; ++ /* LOOP = */ nullptr, ++ /* SHELL = */ nullptr, ++ /* GROUP = */ nullptr}; + + int const type_dims[NTYPES] = { + /* POINT = */ 0, +@@ -63,11 +63,6 @@ + return v.at(std::size_t(i)); + } + +-template <typename T> +-static int size(std::vector<T> const& v) { +- return int(v.size()); +-} +- + int is_entity(int t) { return t <= VOLUME; } + + int is_face(int t) { return t == PLANE || t == RULED; } +@@ -452,7 +447,7 @@ + auto loop = new_loop(); + add_use(loop, FORWARD, start); + add_use(loop, FORWARD, right.middle); +- ObjPtr end = 0; ++ ObjPtr end = nullptr; + switch (start->type) { + case LINE: { + end = new_line2(std::dynamic_pointer_cast<Point>(left.end), +@@ -492,7 +487,7 @@ + break; + } + default: +- end = 0; ++ end = nullptr; + break; + } + add_use(loop, REVERSE, end); +@@ -508,7 +503,7 @@ + middle = new_ruled2(loop); + break; + default: +- middle = 0; ++ middle = nullptr; + break; + } + return Extruded{middle, end}; diff --git a/var/spack/repos/builtin/packages/gmodel/package.py b/var/spack/repos/builtin/packages/gmodel/package.py index fecf45a967..01883da6ee 100644 --- a/var/spack/repos/builtin/packages/gmodel/package.py +++ b/var/spack/repos/builtin/packages/gmodel/package.py @@ -18,3 +18,8 @@ class Gmodel(CMakePackage): url = "https://github.com/ibaned/gmodel/archive/v2.1.0.tar.gz" version('2.1.0', sha256='80df0c6dc413a9ffa0f0e7b65118b05b643ba3e1bfcac28fb91d2d3ad017fda0') + + # fix error [-Werror,-Wzero-as-null-pointer-constant] + # fix error [-Werror,-Wunused-template] + # Ref: https://github.com/ibaned/gmodel/commit/6b81ec190cf2ce9a6554a99cb6d759b023393cdd + patch('fix_gmodel.cpp.patch') diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py index 5e333f8b22..3dd7f203c9 100644 --- a/var/spack/repos/builtin/packages/gmp/package.py +++ b/var/spack/repos/builtin/packages/gmp/package.py @@ -6,12 +6,12 @@ from spack import * -class Gmp(AutotoolsPackage): +class Gmp(AutotoolsPackage, GNUMirrorPackage): """GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.""" homepage = "https://gmplib.org" - url = "https://ftpmirror.gnu.org/gmp/gmp-6.1.2.tar.bz2" + gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2" version('6.1.2', sha256='5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2') version('6.1.1', sha256='a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6') diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py index 1e1d197295..3d3e3e4e53 100644 --- a/var/spack/repos/builtin/packages/gmsh/package.py +++ b/var/spack/repos/builtin/packages/gmsh/package.py @@ -17,7 +17,7 @@ class Gmsh(CMakePackage): """ homepage = 'http://gmsh.info' - url = 'http://gmsh.info/src/gmsh-2.11.0-source.tgz' + url = 'http://gmsh.info/src/gmsh-4.4.1-source.tgz' version('4.4.1', sha256='853c6438fc4e4b765206e66a514b09182c56377bb4b73f1d0d26eda7eb8af0dc') version('4.2.2', sha256='e9ee9f5c606bbec5f2adbb8c3d6023c4e2577f487fa4e4ecfcfc94a241cc8dcc') diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py index 045f4e11f6..c3dbbfc8e5 100644 --- a/var/spack/repos/builtin/packages/gmt/package.py +++ b/var/spack/repos/builtin/packages/gmt/package.py @@ -33,7 +33,7 @@ class Gmt(Package): depends_on('ghostscript') depends_on('subversion') depends_on('cmake@2.8.5:', type='build', when='@5:') - depends_on('netcdf@4:') + depends_on('netcdf-c@4:') depends_on('curl', when='@5.4:') # Optional dependencies @@ -58,7 +58,7 @@ class Gmt(Package): def install(self, spec, prefix): args = [ '--prefix={0}'.format(prefix), - '--enable-netcdf={0}'.format(spec['netcdf'].prefix), + '--enable-netcdf={0}'.format(spec['netcdf-c'].prefix), '--enable-shared', '--without-x' ] diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py index 8511065177..71564bf0bb 100644 --- a/var/spack/repos/builtin/packages/gnutls/package.py +++ b/var/spack/repos/builtin/packages/gnutls/package.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -import os class Gnutls(AutotoolsPackage): @@ -49,11 +48,10 @@ class Gnutls(AutotoolsPackage): url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v{0}/gnutls-{1}.tar.xz" return url.format(version.up_to(2), version) - def setup_environment(self, build_env, run_env): + def setup_build_environment(self, env): spec = self.spec if '+guile' in spec: - build_env.set('GUILE', os.path.join(spec["guile"].prefix.bin, - 'guile')) + env.set('GUILE', spec["guile"].prefix.bin.guile) def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py index e5bfcef380..fdb0ec5686 100644 --- a/var/spack/repos/builtin/packages/go-bootstrap/package.py +++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py @@ -55,8 +55,8 @@ class GoBootstrap(Package): install_tree('.', prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('GOROOT_BOOTSTRAP', self.spec.prefix) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('GOROOT_BOOTSTRAP', self.spec.prefix) - def setup_environment(self, spack_env, run_env): - spack_env.set('GOROOT_FINAL', self.spec.prefix) + def setup_build_environment(self, env): + env.set('GOROOT_FINAL', self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index 1090718ea3..4d5d35fb37 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -35,8 +35,16 @@ class Go(Package): extendable = True + 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.14', sha256='39dbf05f7e2ffcb19b08f07d53dcc96feadeb1987fef9e279e7ff0c598213064') + version('1.12.13', sha256='5383d3b8db4baa48284ffcb14606d9cad6f03e9db843fa6d835b94d63cccf5a7') + 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') @@ -104,12 +112,12 @@ class Go(Package): install_tree(wd, prefix) - def setup_environment(self, spack_env, run_env): - spack_env.set('GOROOT_FINAL', self.spec.prefix) + def setup_build_environment(self, env): + env.set('GOROOT_FINAL', self.spec.prefix) # We need to set CC/CXX_FOR_TARGET, otherwise cgo will use the # internal Spack wrappers and fail. - spack_env.set('CC_FOR_TARGET', self.compiler.cc) - spack_env.set('CXX_FOR_TARGET', self.compiler.cxx) + env.set('CC_FOR_TARGET', self.compiler.cc) + env.set('CXX_FOR_TARGET', self.compiler.cxx) def setup_dependent_package(self, module, dependent_spec): """Called before go modules' install() methods. @@ -123,19 +131,24 @@ class Go(Package): # Add a go command/compiler for extensions module.go = self.spec['go'].command - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def generate_path_components(self, dependent_spec): if os.environ.get('GOROOT', False): tty.warn('GOROOT is set, this is not recommended') + # Set to include paths of dependencies path_components = [] - # Set GOPATH to include paths of dependencies for d in dependent_spec.traverse(): if d.package.extends(self.spec): path_components.append(d.prefix) + return path_components + def setup_dependent_build_environment(self, env, dependent_spec): # This *MUST* be first, this is where new code is installed - spack_env.set('GOPATH', ':'.join(path_components)) + env.set('GOPATH', ':'.join(self.generate_path_components( + dependent_spec))) + def setup_dependent_run_environment(self, env, dependent_spec): # Allow packages to find this when using module files - run_env.prepend_path('GOPATH', ':'.join( - [dependent_spec.prefix] + path_components)) + env.prepend_path('GOPATH', ':'.join( + [dependent_spec.prefix] + 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 20996c981f..df16de3e8a 100644 --- a/var/spack/repos/builtin/packages/gobject-introspection/package.py +++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py @@ -57,9 +57,11 @@ class GobjectIntrospection(Package): url = 'http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz' return url.format(version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + 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 install(self, spec, prefix): configure("--prefix=%s" % prefix) @@ -69,5 +71,5 @@ class GobjectIntrospection(Package): make() make("install") - def setup_environment(self, spack_env, run_env): - spack_env.set('SPACK_SBANG', "%s/bin/sbang" % spack_root) + def setup_build_environment(self, env): + env.set('SPACK_SBANG', "%s/bin/sbang" % spack_root) diff --git a/var/spack/repos/builtin/packages/gperf/package.py b/var/spack/repos/builtin/packages/gperf/package.py index 1262f8a5c0..d39dc62f20 100644 --- a/var/spack/repos/builtin/packages/gperf/package.py +++ b/var/spack/repos/builtin/packages/gperf/package.py @@ -6,7 +6,7 @@ from spack import * -class Gperf(AutotoolsPackage): +class Gperf(AutotoolsPackage, GNUMirrorPackage): """GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the @@ -15,7 +15,7 @@ class Gperf(AutotoolsPackage): single string comparison only.""" homepage = "https://www.gnu.org/software/gperf/" - url = "https://ftpmirror.gnu.org/gperf/gperf-3.0.4.tar.gz" + gnu_mirror_path = "gperf/gperf-3.0.4.tar.gz" version('3.0.4', sha256='767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e') diff --git a/var/spack/repos/builtin/packages/gnu-prolog/package.py b/var/spack/repos/builtin/packages/gprolog/package.py index d332711077..aa923deea8 100644 --- a/var/spack/repos/builtin/packages/gnu-prolog/package.py +++ b/var/spack/repos/builtin/packages/gprolog/package.py @@ -6,7 +6,7 @@ from spack import * -class GnuProlog(Package): +class Gprolog(Package): """A free Prolog compiler with constraint solving over finite domains.""" homepage = "http://www.gprolog.org/" url = "http://www.gprolog.org/gprolog-1.4.5.tar.gz" diff --git a/var/spack/repos/builtin/packages/gpu-burn/package.py b/var/spack/repos/builtin/packages/gpu-burn/package.py index fd11176baa..66af15f085 100644 --- a/var/spack/repos/builtin/packages/gpu-burn/package.py +++ b/var/spack/repos/builtin/packages/gpu-burn/package.py @@ -51,5 +51,5 @@ class GpuBurn(MakefilePackage, CudaPackage): # 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_environment(self, spack_env, run_env): - run_env.set('COMPARE_PTX', join_path(self.prefix.share, 'compare.ptx')) + 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/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py index 8e7a12e303..c9d93a65ff 100644 --- a/var/spack/repos/builtin/packages/graphviz/package.py +++ b/var/spack/repos/builtin/packages/graphviz/package.py @@ -57,7 +57,7 @@ class Graphviz(AutotoolsPackage): variant('x', default=False, description='Use the X Window System') - patch('http://www.linuxfromscratch.org/patches/blfs/svn/graphviz-2.40.1-qt5-1.patch', + patch('http://www.linuxfromscratch.org/patches/blfs/9.0/graphviz-2.40.1-qt5-1.patch', sha256='bd532df325df811713e311d17aaeac3f5d6075ea4fd0eae8d989391e6afba930', when='+qt^qt@5:') patch('https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/master/easybuild/easyconfigs/g/Graphviz/Graphviz-2.38.0_icc_sfio.patch', @@ -118,9 +118,9 @@ class Graphviz(AutotoolsPackage): bash = which('bash') bash('./autogen.sh', 'NOCONFIG') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '+quartz' in self.spec: - spack_env.set('OBJC', self.compiler.cc) + env.set('OBJC', self.compiler.cc) @when('%clang platform=darwin') def patch(self): diff --git a/var/spack/repos/builtin/packages/grass/package.py b/var/spack/repos/builtin/packages/grass/package.py index f480d95fe3..6fca65e2c4 100644 --- a/var/spack/repos/builtin/packages/grass/package.py +++ b/var/spack/repos/builtin/packages/grass/package.py @@ -12,84 +12,104 @@ class Grass(AutotoolsPackage): used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization.""" - homepage = "http://grass.osgeo.org" - - version('7.6.1', sha256='9e25c99cafd16ed8f5e2dca75b5a10dc2af0568dbedf3fc39f1c5a0a9c840b0b') - version('7.4.4', sha256='96a39e273103f7375a670eba94fa3e5dad2819c5c5664c9aee8f145882a94e8c') - version('7.4.3', sha256='004e65693ee97fd4d5dc7ad244e3286a115dccd88964d04be61c07db6574b399') - version('7.4.2', sha256='18eb19bc0aa4cd7be3f30f79ac83f9d0a29c63657f4c1b05bf4c5d5d57a8f46d') - version('7.4.1', sha256='560b8669caaafa9e8dbd4bbf2b4b4bbab7dca1cc46ee828eaf26c744fe0635fc') - version('7.4.0', sha256='cb6fa188e030a3a447fc5451fbe0ecbeb4069ee2fd1bf52ed8e40e9b89e293cc') - - variant('cxx', default=True, description='Add c++ functionality') - variant('tiff', default=True, description='Add TIFF functionality') - variant('png', default=True, description='Add PNG functionality') - variant('postgres', default=False, description='Add PostgreSQL functionality') - variant('mysql', default=False, description='Add MySQL functionality') - variant('sqlite', default=True, description='Add SQLite functionality') - variant('opengl', default=True, description='Add OpenGL functionality') - variant('fftw', default=True, description='Add FFTW functionality') - variant('blas', default=False, description='Add BLAS functionality') - variant('lapack', default=False, description='Add LAPACK functionality') - variant('cairo', default=True, description='Add Cairo functionality') - variant('freetype', default=True, description='Add FreeType functionality') - variant('readline', default=False, description='Add Readline functionality') - variant('regex', default=True, description='Add regex functionality') - variant('pthread', default=False, description='Add POSIX threads functionality') - variant('openmp', default=False, description='Add OpenMP functionality') - variant('opencl', default=False, description='Add OpenCL functionality') - variant('bzlib', default=False, description='Add BZIP2 functionality') + homepage = "https://grass.osgeo.org" + url = "https://grass.osgeo.org/grass78/source/grass-7.8.2.tar.gz" + list_url = "https://grass.osgeo.org/download/software/sources/" + + maintainers = ['adamjstewart'] + + version('7.8.2', sha256='33576f7078f805b39ca20c2fa416ac79c64260c0581072a6dc7d813f53aa9abb') + version('7.8.1', sha256='6ae578fd67afcce7abec4ba4505dcc55b3d2dfe0ca46b99d966cb148c654abb3') + version('7.8.0', sha256='4b1192294e959ffd962282344e4ff325c4472f73abe605e246a1da3beda7ccfa') + version('7.6.1', sha256='9e25c99cafd16ed8f5e2dca75b5a10dc2af0568dbedf3fc39f1c5a0a9c840b0b') + version('7.4.4', sha256='96a39e273103f7375a670eba94fa3e5dad2819c5c5664c9aee8f145882a94e8c') + version('7.4.3', sha256='004e65693ee97fd4d5dc7ad244e3286a115dccd88964d04be61c07db6574b399') + version('7.4.2', sha256='18eb19bc0aa4cd7be3f30f79ac83f9d0a29c63657f4c1b05bf4c5d5d57a8f46d') + version('7.4.1', sha256='560b8669caaafa9e8dbd4bbf2b4b4bbab7dca1cc46ee828eaf26c744fe0635fc') + version('7.4.0', sha256='cb6fa188e030a3a447fc5451fbe0ecbeb4069ee2fd1bf52ed8e40e9b89e293cc') + + variant('cxx', default=True, description='Support C++ functionality') + variant('tiff', default=False, description='Support TIFF functionality') + variant('png', default=False, description='Support PNG functionality') + variant('postgres', default=False, description='Support PostgreSQL functionality') + variant('mysql', default=False, description='Support MySQL functionality') + variant('sqlite', default=False, description='Support SQLite functionality') + variant('opengl', default=False, description='Support OpenGL functionality') + variant('odbc', default=False, description='Support ODBC functionality') + variant('fftw', default=False, description='Support FFTW functionality') + variant('blas', default=False, description='Support BLAS functionality') + variant('lapack', default=False, description='Support LAPACK functionality') + variant('cairo', default=False, description='Support Cairo functionality') + variant('freetype', default=False, description='Support FreeType functionality') + variant('readline', default=False, description='Support Readline functionality') + variant('regex', default=False, description='Support regex functionality') + variant('pthread', default=False, description='Support POSIX threads functionality') + variant('openmp', default=False, description='Support OpenMP functionality') + variant('opencl', default=False, description='Support OpenCL functionality') + variant('bzlib', default=False, description='Support BZIP2 functionality') + variant('zstd', default=False, description='Support Zstandard functionality') + variant('gdal', default=True, description='Enable GDAL/OGR support') + variant('liblas', default=False, description='Enable libLAS support') + variant('wxwidgets', default=False, description='Enable wxWidgets support') variant('netcdf', default=False, description='Enable NetCDF support') - variant('geos', default=False, description='Geometry Engine for v.buffer') + variant('geos', default=False, description='Enable GEOS support') + variant('x', default=False, description='Use the X Window System') - # required components - depends_on('gmake@3.8.1:', type='build') + # http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html + # General requirements + depends_on('gmake@3.81:', type='build') + depends_on('libiconv') depends_on('zlib') depends_on('flex', type='build') depends_on('bison', type='build') depends_on('proj') depends_on('proj@:4', when='@:7.5') - depends_on('proj@:5', when='@:7.7') - depends_on('gdal') - depends_on('python@2.7:2.9', type=('build', 'run')) - depends_on('libx11') - - # optional pieces + # GRASS 7.8.0 was supposed to support PROJ 6, but it still checks for + # share/proj/epsg, which was removed in PROJ 6 + depends_on('proj@:5', when='@:7.8') + depends_on('python@2.7:', type=('build', 'run')) + depends_on('python@2.7:2.8', when='@:7.6', type=('build', 'run')) + depends_on('py-six', when='@7.8:', type=('build', 'run')) + + # Optional packages depends_on('libtiff', when='+tiff') depends_on('libpng', when='+png') depends_on('postgresql', when='+postgres') depends_on('mariadb', when='+mysql') depends_on('sqlite', when='+sqlite') depends_on('gl', when='+opengl') + depends_on('unixodbc', when='+odbc') depends_on('fftw', when='+fftw') depends_on('blas', when='+blas') depends_on('lapack', when='+lapack') - depends_on('cairo', when='+cairo') + depends_on('cairo@1.5.8:', when='+cairo') depends_on('freetype', when='+freetype') depends_on('readline', when='+readline') depends_on('opencl', when='+opencl') depends_on('bzip2', when='+bzlib') - depends_on('netcdf', when='+netcdf') + depends_on('zstd', when='+zstd') + depends_on('gdal', when='+gdal') # required? + depends_on('liblas', when='+liblas') + depends_on('wxwidgets', when='+wxwidgets') + depends_on('py-wxpython@2.8.10.1:', when='+wxwidgets', type=('build', 'run')) + depends_on('netcdf-c', when='+netcdf') depends_on('geos', when='+geos') + depends_on('libx11', when='+x') def url_for_version(self, version): - base = 'https://grass.osgeo.org' - return '{0}/grass{1}/source/grass-{2}.tar.gz'.format( - base, version.up_to(2).joined, version.dotted - ) + url = "https://grass.osgeo.org/grass{0}/source/grass-{1}.tar.gz" + return url.format(version.up_to(2).joined, version) + # https://grasswiki.osgeo.org/wiki/Compile_and_Install def configure_args(self): spec = self.spec args = [ - '--without-odbc', '--without-nls', + # TODO: add packages for these optional dependencies '--without-opendwg', - '--with-x', - '--with-gdal={0}/bin/gdal-config'.format( - spec['gdal'].prefix), - '--with-proj-share={0}/share/proj'.format( - spec['proj'].prefix), + '--without-pdal', + '--with-proj-share={0}'.format(spec['proj'].prefix.share.proj), ] if '+cxx' in spec: @@ -127,6 +147,11 @@ class Grass(AutotoolsPackage): else: args.append('--without-opengl') + if '+odbc' in spec: + args.append('--with-odbc') + else: + args.append('--without-odbc') + if '+fftw' in spec: args.append('--with-fftw') else: @@ -182,9 +207,32 @@ class Grass(AutotoolsPackage): else: args.append('--without-bzlib') + if '+zstd' in spec: + args.append('--with-zstd') + else: + args.append('--without-zstd') + + if '+gdal' in spec: + args.append('--with-gdal={0}/gdal-config'.format( + spec['gdal'].prefix.bin)) + else: + args.append('--without-gdal') + + if '+liblas' in spec: + args.append('--with-liblas={0}/liblas-config'.format( + spec['liblas'].prefix.bin)) + else: + args.append('--without-liblas') + + if '+wxwidgets' in spec: + args.append('--with-wxwidgets={0}/wx-config'.format( + spec['wxwidgets'].prefix.bin)) + else: + args.append('--without-wxwidgets') + if '+netcdf' in spec: args.append('--with-netcdf={0}/bin/nc-config'.format( - spec['netcdf'].prefix)) + spec['netcdf-c'].prefix)) else: args.append('--without-netcdf') @@ -194,6 +242,11 @@ class Grass(AutotoolsPackage): else: args.append('--without-geos') + if '+x' in spec: + args.append('--with-x') + else: + args.append('--without-x') + return args # see issue: https://github.com/spack/spack/issues/11325 @@ -202,5 +255,4 @@ class Grass(AutotoolsPackage): @run_after('configure') def fix_iconv_linking(self): makefile = FileFilter('include/Make/Platform.make') - makefile.filter(r'^ICONVLIB\s*=\s*', 'ICONVLIB = -liconv') - return None + makefile.filter(r'^ICONVLIB\s*=.*', 'ICONVLIB = -liconv') diff --git a/var/spack/repos/builtin/packages/grep/package.py b/var/spack/repos/builtin/packages/grep/package.py new file mode 100644 index 0000000000..145ab6b8f0 --- /dev/null +++ b/var/spack/repos/builtin/packages/grep/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Grep(AutotoolsPackage): + """Grep searches one or more input files for lines containing a match to + a specified pattern""" + + homepage = "https://www.gnu.org/software/grep/" + url = "https://ftp.gnu.org/gnu/grep/grep-3.3.tar.xz" + + version('3.3', sha256='b960541c499619efd6afe1fa795402e4733c8e11ebf9fafccc0bb4bccdc5b514') diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py index b54e909367..12978a4b75 100644 --- a/var/spack/repos/builtin/packages/grib-api/package.py +++ b/var/spack/repos/builtin/packages/grib-api/package.py @@ -50,7 +50,7 @@ class GribApi(CMakePackage): # tests are enabled but the testing scripts don't use it. # depends_on('valgrind', type='test', when='+test') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('openjpeg@1.5.0:1.5.999', when='jp2k=openjpeg') depends_on('jasper', when='jp2k=jasper') depends_on('libpng', when='+png') @@ -100,7 +100,7 @@ class GribApi(CMakePackage): '-DHDF5_ROOT=' + self.spec['hdf5'].prefix, # Prevent possible overriding by environment variables # NETCDF_ROOT, NETCDF_DIR, and NETCDF_PATH. - '-DNETCDF_PATH=' + self.spec['netcdf'].prefix]) + '-DNETCDF_PATH=' + self.spec['netcdf-c'].prefix]) else: args.append('-DENABLE_NETCDF=OFF') diff --git a/var/spack/repos/builtin/packages/grnboost/package.py b/var/spack/repos/builtin/packages/grnboost/package.py index 442fa77746..ee89fa5c01 100644 --- a/var/spack/repos/builtin/packages/grnboost/package.py +++ b/var/spack/repos/builtin/packages/grnboost/package.py @@ -25,16 +25,16 @@ class Grnboost(Package): depends_on('xgboost+jvm-packages', type='run') depends_on('spark+hadoop', type='run') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): grnboost_jar = join_path(self.prefix, 'target', 'scala-2.11', 'GRNBoost.jar') xgboost_version = self.spec['xgboost'].version.string xgboost_jar = join_path(self.spec['xgboost'].prefix, 'xgboost4j-' + xgboost_version + '.jar') - run_env.set('GRNBOOST_JAR', grnboost_jar) - run_env.set('JAVA_HOME', self.spec['java'].prefix) - run_env.set('CLASSPATH', xgboost_jar) - run_env.set('XGBOOST_JAR', xgboost_jar) + env.set('GRNBOOST_JAR', grnboost_jar) + env.set('JAVA_HOME', self.spec['java'].prefix) + env.set('CLASSPATH', xgboost_jar) + env.set('XGBOOST_JAR', xgboost_jar) def install(self, spec, prefix): sbt = which('sbt') diff --git a/var/spack/repos/builtin/packages/groff/package.py b/var/spack/repos/builtin/packages/groff/package.py index 7ec685b5a1..3a26872a76 100644 --- a/var/spack/repos/builtin/packages/groff/package.py +++ b/var/spack/repos/builtin/packages/groff/package.py @@ -6,14 +6,14 @@ from spack import * -class Groff(AutotoolsPackage): +class Groff(AutotoolsPackage, GNUMirrorPackage): """Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands and produces formatted output. Output may be PostScript or PDF, html, or ASCII/UTF8 for display at the terminal.""" homepage = "https://www.gnu.org/software/groff/" - url = "https://ftpmirror.gnu.org/groff/groff-1.22.3.tar.gz" + gnu_mirror_path = "groff/groff-1.22.3.tar.gz" # TODO: add html variant, spack doesn't have netpbm and its too # complicated for me to find out at this point in time. diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 43cecbec81..c2fcd9a279 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -25,14 +25,20 @@ class Gromacs(CMakePackage): maintainers = ['junghans', 'marvinbernhardt'] version('develop', branch='master') + version('2019.5', sha256='438061a4a2d45bbb5cf5c3aadd6c6df32d2d77ce8c715f1c8ffe56156994083a') + version('2019.4', sha256='ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867') + version('2019.3', sha256='4211a598bf3b7aca2b14ad991448947da9032566f13239b1a05a2d4824357573') version('2019.2', sha256='bcbf5cc071926bc67baa5be6fb04f0986a2b107e1573e15fadcb7d7fc4fb9f7e') version('2019.1', sha256='b2c37ed2fcd0e64c4efcabdc8ee581143986527192e6e647a197c76d9c4583ec') version('2019', sha256='c5b281a5f0b5b4eeb1f4c7d4dc72f96985b566561ca28acc9c7c16f6ee110d0b') + version('2018.8', sha256='776923415df4bc78869d7f387c834141fdcda930b2e75be979dc59ecfa6ebecf') + version('2018.5', sha256='32261df6f7ec4149fc0508f9af416953d056e281590359838c1ed6644ba097b8') version('2018.4', sha256='6f2ee458c730994a8549d6b4f601ecfc9432731462f8bd4ffa35d330d9aaa891') version('2018.3', sha256='4423a49224972969c52af7b1f151579cea6ab52148d8d7cbae28c183520aa291') version('2018.2', sha256='4bdde8120c510b6543afb4b18f82551fddb11851f7edbd814aa24022c5d37857') version('2018.1', sha256='4d3533340499323fece83b4a2d4251fa856376f2426c541e00b8e6b4c0d705cd') version('2018', sha256='deb5d0b749a52a0c6083367b5f50a99e08003208d81954fb49e7009e1b1fd0e9') + version('2016.6', sha256='bac0117d2cad21f9b94fe5b854fb9ae7435b098a6da4e732ee745f18e52473d7') version('2016.5', sha256='57db26c6d9af84710a1e0c47a1f5bf63a22641456448dcd2eeb556ebd14e0b7c') version('2016.4', sha256='4be9d3bfda0bdf3b5c53041e0b8344f7d22b75128759d9bfa9442fe65c289264') version('2016.3', sha256='7bf00e74a9d38b7cef9356141d20e4ba9387289cbbfd4d11be479ef932d77d27') @@ -65,6 +71,7 @@ class Gromacs(CMakePackage): ' of libgromacs and/or the mdrun program') variant('openmp', default=True, description='Enables OpenMP at configure time') variant('double_precision', default=False, description='Enables a double-precision configuration') + variant('hwloc', default=True, description='Use the hwloc portable hardware locality library') depends_on('mpi', when='+mpi') depends_on('plumed+mpi', when='+plumed+mpi') @@ -73,8 +80,9 @@ class Gromacs(CMakePackage): 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('cuda', when='+cuda') + depends_on('hwloc', when='+hwloc') - patch('gmxDetectCpu-cmake-3.14.patch', when='@2018:^cmake@3.14.0:') + 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:') def patch(self): @@ -94,6 +102,11 @@ class Gromacs(CMakePackage): if '~shared' in self.spec: options.append('-DBUILD_SHARED_LIBS: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: options.append('-DGMX_GPU:BOOL=ON') options.append('-DCUDA_TOOLKIT_ROOT_DIR:STRING=' + diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py index 20d09541ff..bdb208b8cc 100644 --- a/var/spack/repos/builtin/packages/grpc/package.py +++ b/var/spack/repos/builtin/packages/grpc/package.py @@ -9,8 +9,9 @@ class Grpc(CMakePackage): """A high performance, open-source universal RPC framework.""" homepage = "https://grpc.io" - url = "https://github.com/grpc/grpc/archive/v1.23.1.tar.gz" + url = "https://github.com/grpc/grpc/archive/v1.24.3.tar.gz" + version('1.24.3', sha256='c84b3fa140fcd6cce79b3f9de6357c5733a0071e04ca4e65ba5f8d306f10f033') version('1.23.1', sha256='dd7da002b15641e4841f20a1f3eb1e359edb69d5ccf8ac64c362823b05f523d9') variant('codegen', default=True, @@ -20,7 +21,7 @@ class Grpc(CMakePackage): depends_on('protobuf') depends_on('openssl') depends_on('zlib') - depends_on('cares') + depends_on('c-ares') def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py index 021bf26e91..08e7d24882 100644 --- a/var/spack/repos/builtin/packages/gsl/package.py +++ b/var/spack/repos/builtin/packages/gsl/package.py @@ -7,7 +7,7 @@ from spack import * -class Gsl(AutotoolsPackage): +class Gsl(AutotoolsPackage, GNUMirrorPackage): """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random @@ -15,7 +15,7 @@ class Gsl(AutotoolsPackage): over 1000 functions in total with an extensive test suite.""" homepage = "http://www.gnu.org/software/gsl" - url = "https://ftpmirror.gnu.org/gsl/gsl-2.3.tar.gz" + gnu_mirror_path = "gsl/gsl-2.3.tar.gz" version('2.5', sha256='0460ad7c2542caaddc6729762952d345374784100223995eb14d614861f2258d') version('2.4', sha256='4d46d07b946e7b31c19bbf33dda6204d7bedc2f5462a1bae1d4013426cd1ce9b') diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py index dcd3e36529..92910aa8cd 100644 --- a/var/spack/repos/builtin/packages/gtkplus/package.py +++ b/var/spack/repos/builtin/packages/gtkplus/package.py @@ -48,11 +48,11 @@ class Gtkplus(AutotoolsPackage): filter_file(r'CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"', '', 'configure', string=True) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) + 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 configure_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/gtksourceview/package.py b/var/spack/repos/builtin/packages/gtksourceview/package.py index 9907a95255..9b469e9171 100644 --- a/var/spack/repos/builtin/packages/gtksourceview/package.py +++ b/var/spack/repos/builtin/packages/gtksourceview/package.py @@ -42,13 +42,17 @@ class Gtksourceview(AutotoolsPackage): url += '{0}/gtksourceview-{1}.tar.xz' return url.format(version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - def setup_environment(self, spack_env, run_env): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_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) # TODO: If https://github.com/spack/spack/pull/12344 is merged, this # method is unnecessary. diff --git a/var/spack/repos/builtin/packages/guidance/package.py b/var/spack/repos/builtin/packages/guidance/package.py index ef4de4596c..32c75afeff 100644 --- a/var/spack/repos/builtin/packages/guidance/package.py +++ b/var/spack/repos/builtin/packages/guidance/package.py @@ -17,7 +17,7 @@ class Guidance(MakefilePackage): version('2.02', sha256='825e105dde526759fb5bda1cd539b24db0b90b8b586f26b1df74d9c5abaa7844') depends_on('perl', type=('build', 'run')) - depends_on('perl-bio-perl', type=('build', 'run')) + depends_on('perl-bioperl', type=('build', 'run')) depends_on('ruby') depends_on('prank') depends_on('clustalw') @@ -43,5 +43,5 @@ class Guidance(MakefilePackage): install('guidance.pl', join_path(prefix.bin.www.Guidance, 'guidance')) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix.bin.www.Guidance) + def setup_run_environment(self, env): + env.prepend_path('PATH', prefix.bin.www.Guidance) diff --git a/var/spack/repos/builtin/packages/guile/package.py b/var/spack/repos/builtin/packages/guile/package.py index de15b1848d..c7d5c2f497 100644 --- a/var/spack/repos/builtin/packages/guile/package.py +++ b/var/spack/repos/builtin/packages/guile/package.py @@ -6,12 +6,12 @@ from spack import * -class Guile(AutotoolsPackage): +class Guile(AutotoolsPackage, GNUMirrorPackage): """Guile is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for the GNU operating system.""" homepage = "https://www.gnu.org/software/guile/" - url = "https://ftpmirror.gnu.org/guile/guile-2.2.0.tar.gz" + gnu_mirror_path = "guile/guile-2.2.0.tar.gz" version('2.2.6', sha256='08c0e7487777740b61cdd97949b69e8a5e2997d8c2fe6c7e175819eb18444506') version('2.2.5', sha256='c3c7a2f6ae0d8321a240c7ebc532a1d47af8c63214157a73789e2b2305b4c927') @@ -24,20 +24,29 @@ class Guile(AutotoolsPackage): version('2.0.11', sha256='e6786c934346fa2e38e46d8d81a622bb1c16d130153523f6129fcd79ef1fb040') variant('readline', default=True, description='Use the readline library') - variant('threads', default=True, description='Use the thread interface') + variant( + 'threads', + default='none', + values=('none', 'posix', 'dgux386'), + multi=False, + description='Use the thread interface' + ) + depends_on('bdw-gc@7.0: threads=none', when='threads=none') + depends_on('bdw-gc@7.0: threads=posix', when='threads=posix') + depends_on('bdw-gc@7.0: threads=dgux386', when='threads=dgux386') depends_on('gmp@4.2:') depends_on('gettext') depends_on('libtool@1.5.6:') depends_on('libunistring@0.9.3:') - depends_on('bdw-gc@7.0:') depends_on('libffi') depends_on('readline', when='+readline') depends_on('pkgconfig', type='build') build_directory = 'spack-build' - conflicts('+threads', when='%intel') + conflicts('threads=posix', when='%intel') + conflicts('threads=dgux386', when='%intel') def configure_args(self): spec = self.spec @@ -49,7 +58,11 @@ class Guile(AutotoolsPackage): '--with-libgmp-prefix={0}'.format(spec['gmp'].prefix), '--with-libintl-prefix={0}'.format(spec['gettext'].prefix), ] - config_args += self.with_or_without('threads') + + if 'threads=none' in spec: + config_args.append('--without-threads') + else: + config_args.append('--with-threads') if '+readline' in spec: config_args.append('--with-libreadline-prefix={0}'.format( diff --git a/var/spack/repos/builtin/packages/gurobi/package.py b/var/spack/repos/builtin/packages/gurobi/package.py index b9c416e46b..fff3554f15 100644 --- a/var/spack/repos/builtin/packages/gurobi/package.py +++ b/var/spack/repos/builtin/packages/gurobi/package.py @@ -35,8 +35,8 @@ class Gurobi(Package): def url_for_version(self, version): return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version) - def setup_environment(self, spack_env, run_env): - run_env.set('GUROBI_HOME', self.prefix) + def setup_run_environment(self, env): + env.set('GUROBI_HOME', self.prefix) def install(self, spec, prefix): install_tree('linux64', prefix) diff --git a/var/spack/repos/builtin/packages/gzip/package.py b/var/spack/repos/builtin/packages/gzip/package.py new file mode 100644 index 0000000000..55ca477ecc --- /dev/null +++ b/var/spack/repos/builtin/packages/gzip/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Gzip(AutotoolsPackage): + """GNU Gzip is a popular data compression program originally written by + Jean-loup Gailly for the GNU project.""" + + homepage = "https://www.gnu.org/software/gzip/" + url = "https://ftp.gnu.org/gnu/gzip/gzip-1.10.tar.gz" + + version('1.10', sha256='c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68') diff --git a/var/spack/repos/builtin/packages/half/package.py b/var/spack/repos/builtin/packages/half/package.py new file mode 100644 index 0000000000..0c79a53be5 --- /dev/null +++ b/var/spack/repos/builtin/packages/half/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Half(Package): + """This is a C++ header-only library to provide an IEEE-754 conformant + half-precision floating point type along with corresponding + arithmetic operators, type conversions and common mathematical + functions. It aims for both efficiency and ease of use, trying to + accurately mimic the behaviour of the builtin floating point types + at the best performance possible. It automatically uses and + provides C++11 features when possible, but stays completely + C++98-compatible when neccessary.""" + + homepage = "https://sourceforge.net/projects/half/" + url = "https://downloads.sourceforge.net/project/half/half/2.1.0/half-2.1.0.zip" + + maintainers = ['bvanessen'] + + version('2.1.0', sha256='ad1788afe0300fa2b02b0d1df128d857f021f92ccf7c8bddd07812685fa07a25') + + def install(self, spec, prefix): + mkdirp(prefix.include) + install_tree('include', prefix.include) diff --git a/var/spack/repos/builtin/packages/hama/package.py b/var/spack/repos/builtin/packages/hama/package.py new file mode 100644 index 0000000000..78d7363803 --- /dev/null +++ b/var/spack/repos/builtin/packages/hama/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Hama(Package): + """ + Apache Hama is a framework for Big Data analytics which uses the Bulk + Synchronous Parallel (BSP) computing model, which was established in + 2012 as a Top-Level Project of The Apache Software Foundation. + """ + + homepage = "https://www-eu.apache.org" + url = "https://www-eu.apache.org/dist/hama/hama-0.7.1/hama-dist-0.7.1.tar.gz" + + version('0.7.1', sha256='c7466c2a70a949609a501e868f6a288b7142725c407e24649ea6f7121632bc89') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/haproxy/package.py b/var/spack/repos/builtin/packages/haproxy/package.py new file mode 100644 index 0000000000..89088e814e --- /dev/null +++ b/var/spack/repos/builtin/packages/haproxy/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Haproxy(MakefilePackage): + """ + HAProxy is a single-threaded, event-driven, non-blocking engine + combining a very fast I/O layer with a priority-based scheduler. + """ + + homepage = "https://www.haproxy.org" + url = "https://www.haproxy.org/download/2.1/src/haproxy-2.1.0.tar.gz" + + version('2.1.1', sha256='57e75c1a380fc6f6aa7033f71384370899443c7f4e8a4ba289b5d4350bc76d1a') + version('2.1.0', sha256='f268efb360a0e925137b4b8ed431f2f8f3b68327efb2c418b266e535d8e335a0') + + def url_for_version(self, version): + url = "https://www.haproxy.org/download/{0}/src/haproxy-{1}.tar.gz" + return url.format(version.up_to(2), version) + + def build(self, spec, prefix): + make('TARGET=generic', 'PREFIX=' + prefix) + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py new file mode 100644 index 0000000000..a86fd48ad8 --- /dev/null +++ b/var/spack/repos/builtin/packages/hbase/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Hbase(Package): + """ + Apache HBase is an open-source, distributed, versioned, column-oriented + store modeled after Google' Bigtable: A Distributed Storage System for + Structured Data by Chang et al. Just as Bigtable leverages the distributed + data storage provided by the Google File System, HBase provides + Bigtable-like capabilities on top of Apache Hadoop. + """ + + homepage = "https://github.com/apache/hbase" + url = "https://github.com/apache/hbase/archive/rel/2.2.2.tar.gz" + + version('2.2.2', sha256='e9a58946e9adff1cac23a0b261ecf32da32f8d2ced0706af1d04e8a67d582926') + version('2.1.8', sha256='121cea4c554879c8401f676c8eb49e39bd35d41c358e919379ad4a318844c8de') + + depends_on('java@7:', type='run') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hc/package.py b/var/spack/repos/builtin/packages/hc/package.py index 19fd4c6b4f..157b3ee6c7 100644 --- a/var/spack/repos/builtin/packages/hc/package.py +++ b/var/spack/repos/builtin/packages/hc/package.py @@ -17,7 +17,7 @@ class Hc(MakefilePackage): version('1.0.7', sha256='7499ea76ac4739a9c0941bd57d124fb681fd387c8d716ebb358e6af3395103ed') depends_on('gmt@4.2.1:4.999') - depends_on('netcdf') + depends_on('netcdf-c') # Build phase fails in parallel with the following error messages: # /usr/bin/ld: cannot find -lrick @@ -25,11 +25,11 @@ class Hc(MakefilePackage): # /usr/bin/ld: cannot find -lggrd parallel = False - def setup_environment(self, spack_env, run_env): - spack_env.set('GMTHOME', self.spec['gmt'].prefix) - spack_env.set('NETCDFHOME', self.spec['netcdf'].prefix) - spack_env.set('HC_HOME', self.prefix) - spack_env.unset('ARCH') + def setup_build_environment(self, env): + env.set('GMTHOME', self.spec['gmt'].prefix) + env.set('NETCDFHOME', self.spec['netcdf-c'].prefix) + env.set('HC_HOME', self.prefix) + env.unset('ARCH') def install(self, spec, prefix): # Most files are installed during the build stage. diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py index 7516ca6e4f..14a45f82a4 100644 --- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py +++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py @@ -183,10 +183,14 @@ Done. raise RuntimeError("HDF5 Blosc plugin check failed") shutil.rmtree(checkdir) - def setup_environment(self, spack_env, run_env): - spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) - run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) + def setup_build_environment(self, env): + env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) - run_env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) + def setup_run_environment(self, env): + env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.append_path("HDF5_PLUGIN_PATH", self.spec.prefix.lib) diff --git a/var/spack/repos/builtin/packages/help2man/package.py b/var/spack/repos/builtin/packages/help2man/package.py index d1365016b0..14fa77e31c 100644 --- a/var/spack/repos/builtin/packages/help2man/package.py +++ b/var/spack/repos/builtin/packages/help2man/package.py @@ -6,12 +6,12 @@ from spack import * -class Help2man(AutotoolsPackage): +class Help2man(AutotoolsPackage, GNUMirrorPackage): """help2man produces simple manual pages from the '--help' and '--version' output of other commands.""" homepage = "https://www.gnu.org/software/help2man/" - url = "https://ftpmirror.gnu.org/help2man/help2man-1.47.11.tar.xz" + gnu_mirror_path = "help2man/help2man-1.47.11.tar.xz" version('1.47.11', sha256='5985b257f86304c8791842c0c807a37541d0d6807ee973000cf8a3fe6ad47b88') version('1.47.8', sha256='528f6a81ad34cbc76aa7dce5a82f8b3d2078ef065271ab81fda033842018a8dc') diff --git a/var/spack/repos/builtin/packages/henson/package.py b/var/spack/repos/builtin/packages/henson/package.py index 11701e62d4..9e0b8d0ad7 100644 --- a/var/spack/repos/builtin/packages/henson/package.py +++ b/var/spack/repos/builtin/packages/henson/package.py @@ -10,10 +10,9 @@ class Henson(CMakePackage): """Cooperative multitasking for in situ processing.""" homepage = "https://github.com/henson-insitu/henson" - url = "https://github.com/henson-insitu/henson" git = "https://github.com/henson-insitu/henson.git" - version('develop', branch='master') + version('master', branch='master') depends_on('mpi') diff --git a/var/spack/repos/builtin/packages/hisat2/package.py b/var/spack/repos/builtin/packages/hisat2/package.py index 64c756a9e8..eacee0dc01 100644 --- a/var/spack/repos/builtin/packages/hisat2/package.py +++ b/var/spack/repos/builtin/packages/hisat2/package.py @@ -40,5 +40,5 @@ class Hisat2(MakefilePackage): if os.path.isfile(file): install(file, prefix.bin) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.spec.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/hisea/package.py b/var/spack/repos/builtin/packages/hisea/package.py index f934edbee5..6858452319 100644 --- a/var/spack/repos/builtin/packages/hisea/package.py +++ b/var/spack/repos/builtin/packages/hisea/package.py @@ -12,7 +12,6 @@ class Hisea(MakefilePackage): among others.""" homepage = "https://doi.org/10.1186/s12859-017-1953-9" - url = "https://github.com/lucian-ilie/HISEA" version('2017.12.26', sha256='3c6ddfb8490a327cc5f9e45f64cd4312abc6ef5719661ce8892db8a20a1e9c5e', url='https://github.com/lucian-ilie/HISEA/tarball/39e01e98caa0f2101da806ca59306296effe789c') diff --git a/var/spack/repos/builtin/packages/hmmer/package.py b/var/spack/repos/builtin/packages/hmmer/package.py index 197c58bc0d..4356417e68 100644 --- a/var/spack/repos/builtin/packages/hmmer/package.py +++ b/var/spack/repos/builtin/packages/hmmer/package.py @@ -12,8 +12,9 @@ class Hmmer(Package): probabilistic models called profile hidden Markov models (profile HMMs). """ homepage = 'http://www.hmmer.org' - url = 'http://eddylab.org/software/hmmer/hmmer-3.2.1.tar.gz' + url = 'http://eddylab.org/software/hmmer/hmmer-3.3.tar.gz' + 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/homer/package.py b/var/spack/repos/builtin/packages/homer/package.py index bf190eb055..48063ce088 100644 --- a/var/spack/repos/builtin/packages/homer/package.py +++ b/var/spack/repos/builtin/packages/homer/package.py @@ -11,7 +11,7 @@ class Homer(Package): """Software for motif discovery and next generation sequencing analysis""" homepage = "http://homer.ucsd.edu/homer" - url = "http://homer.ucsd.edu/homer/data/software/homer.v4.9.zip" + url = "http://homer.ucsd.edu/homer/data/software/homer.v4.9.1.zip" version('4.9.1', sha256='ad1303b0b0400dc8a88dbeae1ee03a94631977b751a3d335326c4febf0eec3a9') diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index e10b447dca..26fb806862 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -19,7 +19,7 @@ class Hpctoolkit(AutotoolsPackage): maintainers = ['mwkrentel'] version('master', branch='master') - version('gpu', branch='master-gpu') + version('gpu', branch='gpu') version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c') version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc') version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9') diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py index a0b8e04f04..6ac2cda241 100644 --- a/var/spack/repos/builtin/packages/hpcviewer/package.py +++ b/var/spack/repos/builtin/packages/hpcviewer/package.py @@ -37,6 +37,9 @@ class Hpcviewer(Package): maintainers = ['mwkrentel'] viewer_sha = { + ('2019.09', 'x86_64'): '40982a43880fe646b7f9d03ac4911b55f8a4464510eb8c7304ffaf4d4205ecc6', + ('2019.09', 'ppc64'): '3972d604bd160c058185b6f8f3f3a63c4031046734b29cc386c24e40831e6798', + ('2019.09', 'ppc64le'): 'c348f442b7415aadb94ead06bd35e96442a49a9768fd8c972ca707d77d61e0c3', ('2019.08', 'x86_64'): '249aae6a23dca19286ee15909afbeba5e515388f1c1ad87f572454534fccb9f2', ('2019.08', 'ppc64'): 'f91b4772c92c05a4a35c88eec094604f3c233c7233adeede97acba38592da379', ('2019.08', 'ppc64le'): 'b1bd5c76b37f225a01631193e0a62524bd41a54b3354a658fdfd0f66c444cc28', @@ -52,6 +55,9 @@ class Hpcviewer(Package): } trace_sha = { + ('2019.09', 'x86_64'): '8d7ce0710570bb8cd424d88cc4b5bfe821330f24fef84bbbbb370fa291b60a14', + ('2019.09', 'ppc64'): 'dfb3fe8283cbaeaa1653e8c8bf68267a3f25886bc452309b10f88a7b1e713ec6', + ('2019.09', 'ppc64le'): 'c1b6ab4f6c91e3a226e8629de62e718c92318ffd83d03db3c40678d578b99b20', ('2019.08', 'x86_64'): '6cefed6a397298ab31cadd10831f5d5533d3f634a4a76bb93f686e603a42c5ed', ('2019.08', 'ppc64'): '64ca5605c89dd3065cacaeee4a8e2ac14b47953530711ed9e04666c8435e44e8', ('2019.08', 'ppc64le'): 'bee03b5cb2de7e8556cf1249f98ece7848c13a0de6b8ba71786c430da68f7bcc', @@ -66,16 +72,13 @@ class Hpcviewer(Package): ('2019.02', 'ppc64le'): '01a159306e7810efe07157ec823ac6ca7570ec2014c95db599a3f90eee33355c', } - version_list = ['2019.02', '2019.04', '2019.07', '2019.08'] - - for ver in version_list: - key = (ver, platform.machine()) - if key in viewer_sha and key in trace_sha: - version(ver, url=viewer_url(*key), sha256=viewer_sha[key]) + for key in viewer_sha.keys(): + if key in trace_sha and 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(ver)) + when='@{0}'.format(key[0])) depends_on('java@8', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/hpgmg/package.py b/var/spack/repos/builtin/packages/hpgmg/package.py index 1805315130..9979fc4c6f 100644 --- a/var/spack/repos/builtin/packages/hpgmg/package.py +++ b/var/spack/repos/builtin/packages/hpgmg/package.py @@ -17,7 +17,7 @@ class Hpgmg(Package): """ homepage = "https://bitbucket.org/hpgmg/hpgmg" - url = "https://hpgmg.org/static/hpgmg-0.tar.gz" + url = "https://hpgmg.org/static/hpgmg-0.4.tar.gz" git = "https://bitbucket.org/hpgmg/hpgmg.git" tags = ['proxy-app'] diff --git a/var/spack/repos/builtin/packages/hpx/git_external.patch b/var/spack/repos/builtin/packages/hpx/git_external.patch new file mode 100644 index 0000000000..72d203e7fa --- /dev/null +++ b/var/spack/repos/builtin/packages/hpx/git_external.patch @@ -0,0 +1,81 @@ +--- hpx/cmake/GitExternal.cmake.orig 2019-08-16 17:27:04.856315000 +0200 ++++ hpx/cmake/GitExternal.cmake 2019-08-16 17:27:47.362709000 +0200 +@@ -19,12 +19,12 @@ + # + # [optional] Flags which control behaviour + # NO_UPDATE +-# When set, GitExternal will not change a repo that has already been checked out. +-# The purpose of this is to allow one to set a default branch to be checked out, +-# but stop GitExternal from changing back to that branch if the user has checked ++# When set, GitExternal will not change a repo that has already been checked out. ++# The purpose of this is to allow one to set a default branch to be checked out, ++# but stop GitExternal from changing back to that branch if the user has checked + # out and is working on another. +-# VERBOSE +-# When set, displays information about git commands that are executed ++# VERBOSE ++# When set, displays information about git commands that are executed + # + + find_package(Git) +@@ -55,17 +55,21 @@ + if(nok) + message(FATAL_ERROR "${DIR} git clone failed: ${error}\n") + endif() +- endif() + +- if(IS_DIRECTORY "${DIR}/.git") ++ # checkout requested tag ++ GIT_EXTERNAL_MESSAGE("git checkout -q ${TAG}") ++ execute_process( ++ COMMAND "${GIT_EXECUTABLE}" checkout -q "${TAG}" ++ RESULT_VARIABLE nok ERROR_VARIABLE error ++ WORKING_DIRECTORY "${DIR}" ++ ) ++ if(nok) ++ message(STATUS "${DIR} git checkout ${TAG} failed: ${error}\n") ++ endif() ++ elseif(IS_DIRECTORY "${DIR}/.git") + if (${GIT_EXTERNAL_NO_UPDATE}) + GIT_EXTERNAL_MESSAGE("Update branch disabled by user") + else() +- GIT_EXTERNAL_MESSAGE("current ref is \"${currentref}\" and tag is \"${TAG}\"") +- if(currentref STREQUAL TAG) # nothing to do +- return() +- endif() +- + # reset generated files + foreach(GIT_EXTERNAL_RESET_FILE ${GIT_EXTERNAL_RESET}) + GIT_EXTERNAL_MESSAGE("git reset -q ${GIT_EXTERNAL_RESET_FILE}") +@@ -100,15 +104,24 @@ + message(STATUS "${DIR} git checkout ${TAG} failed: ${error}\n") + endif() + +- # update tag +- GIT_EXTERNAL_MESSAGE("git rebase FETCH_HEAD") +- execute_process(COMMAND ${GIT_EXECUTABLE} rebase FETCH_HEAD +- RESULT_VARIABLE RESULT OUTPUT_VARIABLE OUTPUT ERROR_VARIABLE OUTPUT ++ # check if this is a branch ++ GIT_EXTERNAL_MESSAGE("git symbolic-ref -q HEAD") ++ execute_process(COMMAND "${GIT_EXECUTABLE}" symbolic-ref -q HEAD ++ RESULT_VARIABLE nok ERROR_VARIABLE error + WORKING_DIRECTORY "${DIR}") +- if(RESULT) +- message(STATUS "git rebase failed, aborting ${DIR} merge") +- execute_process(COMMAND ${GIT_EXECUTABLE} rebase --abort ++ if(nok) ++ message(STATUS "${TAG} is not a branch") ++ else() ++ # update tag ++ GIT_EXTERNAL_MESSAGE("git rebase FETCH_HEAD") ++ execute_process(COMMAND ${GIT_EXECUTABLE} rebase FETCH_HEAD ++ RESULT_VARIABLE RESULT OUTPUT_VARIABLE OUTPUT ERROR_VARIABLE OUTPUT + WORKING_DIRECTORY "${DIR}") ++ if(RESULT) ++ message(STATUS "git rebase failed, aborting ${DIR} merge") ++ execute_process(COMMAND ${GIT_EXECUTABLE} rebase --abort ++ WORKING_DIRECTORY "${DIR}") ++ endif() + endif() + endif() + else() diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py index 6863689f23..606323f76a 100644 --- a/var/spack/repos/builtin/packages/hpx/package.py +++ b/var/spack/repos/builtin/packages/hpx/package.py @@ -12,6 +12,7 @@ class Hpx(CMakePackage, CudaPackage): homepage = "http://stellar.cct.lsu.edu/tag/hpx/" url = "https://github.com/STEllAR-GROUP/hpx/archive/1.2.1.tar.gz" + maintainers = ['msimberg', 'albestro'] version('master', git='https://github.com/STEllAR-GROUP/hpx.git', branch='master') version('1.3.0', sha256='cd34da674064c4cc4a331402edbd65c5a1f8058fb46003314ca18fa08423c5ad') @@ -30,6 +31,10 @@ class Hpx(CMakePackage, CudaPackage): values=('system', 'tcmalloc', 'jemalloc', 'tbbmalloc') ) + variant('max_cpu_count', default='64', + description='Max number of OS-threads for HPX applications', + values=lambda x: isinstance(x, str) and x.isdigit()) + variant('instrumentation', values=any_combination_of( 'apex', 'google_perftools', 'papi', 'valgrind' ), description='Add support for various kind of instrumentation') @@ -43,7 +48,6 @@ class Hpx(CMakePackage, CudaPackage): variant('tools', default=False, description='Build HPX tools') variant('examples', default=False, description='Build examples') - depends_on('boost') depends_on('hwloc') depends_on('python', type=('build', 'test', 'run')) depends_on('pkgconfig', type='build') @@ -72,15 +76,13 @@ class Hpx(CMakePackage, CudaPackage): depends_on('mpi', when='networking=mpi') # Instrumentation - depends_on('apex', when='instrumentation=apex') + 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') - # TODO: hpx can build perfectly fine in parallel, except that each - # TODO: process might need more than 2GB to compile. This is just the - # TODO: most conservative approach to ensure a sane build. - parallel = False + # Patches APEX + patch('git_external.patch', when='@1.3.0 instrumentation=apex') def cxx_standard(self): value = self.spec.variants['cxxstd'].value @@ -109,6 +111,10 @@ class Hpx(CMakePackage, CudaPackage): # Instrumentation args.extend(self.instrumentation_args()) + if 'instrumentation=apex' in spec: + args += ['-DAPEX_WITH_OTF2=ON' + '-DOTF2_ROOT={0}'.format(spec['otf2'].prefix)] + # Networking args.append('-DHPX_WITH_NETWORKING={0}'.format( 'OFF' if 'networking=none' in spec else 'ON' @@ -125,11 +131,21 @@ class Hpx(CMakePackage, CudaPackage): 'ON' if '+cuda' in spec else 'OFF' )) + # Tests + args.append('-DHPX_WITH_TESTS={0}'.format( + 'ON' if self.run_tests else 'OFF' + )) + # Tools args.append('-DHPX_WITH_TOOLS={0}'.format( 'ON' if '+tools' in spec else 'OFF' )) + # MAX_CPU_COUNT + args.append('-DHPX_WITH_MAX_CPU_COUNT={0}'.format( + spec.variants['max_cpu_count'].value + )) + # Examples args.append('-DHPX_WITH_EXAMPLES={0}'.format( 'ON' if '+examples' in spec else 'OFF' diff --git a/var/spack/repos/builtin/packages/httperf/package.py b/var/spack/repos/builtin/packages/httperf/package.py new file mode 100644 index 0000000000..2e546de6fd --- /dev/null +++ b/var/spack/repos/builtin/packages/httperf/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Httperf(AutotoolsPackage): + """Httperf is a tool for measuring web server performance. It provides + a flexible facility for generating various HTTP workloads and for + measuring server performance.""" + + homepage = "https://github.com/httperf" + git = "https://github.com/httperf/httperf.git" + + version('master', branch='master') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + @run_before('autoreconf') + def e_autogen(self): + mkdirp('m4') diff --git a/var/spack/repos/builtin/packages/httpie/package.py b/var/spack/repos/builtin/packages/httpie/package.py index 70fc8d764f..033c7ec4e2 100644 --- a/var/spack/repos/builtin/packages/httpie/package.py +++ b/var/spack/repos/builtin/packages/httpie/package.py @@ -26,4 +26,4 @@ class Httpie(PythonPackage): # https://github.com/spack/spack/issues/3628 # depends_on('py-argparse@1.2.1:', type=('build', 'run'), # when='^python@:2.6,3.0:3.1') - depends_on('py-argparse@1.2.1:', type=('build', 'run')) + depends_on('py-argparse@1.2.1:', type=('build', 'run'), when='^python@:2.6') diff --git a/var/spack/repos/builtin/packages/hub/package.py b/var/spack/repos/builtin/packages/hub/package.py index 068e7b4a35..437c8b62a3 100644 --- a/var/spack/repos/builtin/packages/hub/package.py +++ b/var/spack/repos/builtin/packages/hub/package.py @@ -11,10 +11,10 @@ class Hub(Package): """The github git wrapper""" homepage = "https://github.com/github/hub" - url = "https://github.com/github/hub/archive/v2.2.3.tar.gz" + url = "https://github.com/github/hub/archive/v2.2.2.tar.gz" git = "https://github.com/github/hub.git" - version('head', branch='master') + version('master', branch='master') version('2.2.2', sha256='610572ee903aea1fa8622c16ab7ddef2bd1bfec9f4854447ab8e0fbdbe6a0cae') version('2.2.1', sha256='9350aba6a8e3da9d26b7258a4020bf84491af69595f7484f922d75fc8b86dc10') version('2.2.0', sha256='2da1351197eb5696c207f22c69a5422af052d74277b73d0b8661efb9ec1d0eb1') diff --git a/var/spack/repos/builtin/packages/hybpiper/package.py b/var/spack/repos/builtin/packages/hybpiper/package.py index 86bab5b86a..ed56dd021a 100644 --- a/var/spack/repos/builtin/packages/hybpiper/package.py +++ b/var/spack/repos/builtin/packages/hybpiper/package.py @@ -31,8 +31,8 @@ class Hybpiper(Package): depends_on('bwa') depends_on('samtools') - def setup_envionment(self, spack_env, run_env): - run_env.set('HYBPIPER_HOME', prefix) + def setup_run_environment(self, env): + env.set('HYBPIPER_HOME', self.prefix) def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index 7dce9c0696..d7baee18a7 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -16,7 +16,14 @@ class Hydrogen(CMakePackage): 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.3.2', sha256='50bc5e87955f8130003d04dfd9dcad63107e92b82704f8107baf95b0ccf98ed6') + version('1.3.1', sha256='a8b8521458e9e747f2b24af87c4c2749a06e500019c383e0cefb33e5df6aaa1d') + version('1.3.0', sha256='0f3006aa1d8235ecdd621e7344c99f56651c6836c2e1bc0cf006331b70126b36') + version('1.2.0', sha256='8545975139582ee7bfe5d00f8d83a8697afc285bf7026b0761e9943355974806') + version('1.1.0-1', sha256='73ce05e4166853a186469269cb00a454de71e126b2019f95bbae703b65606808') version('1.1.0', sha256='b4c12913acd01c72d31f4522266bfeb8df1d4d3b4aef02e07ccbc9a477894e71') version('1.0.1', sha256='27cf76e1ef1d58bd8f9b1e34081a14a682b7ff082fb5d1da56713e5e0040e528') version('1.0', sha256='d8a97de3133f2c6b6bb4b80d32b4a4cc25eb25e0df4f0cec0f8cb19bf34ece98') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index 44ff3efc16..c339757552 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -20,6 +20,7 @@ class Hypre(Package): maintainers = ['ulrikeyang', 'osborn9', 'balay'] version('develop', branch='master') + version('2.18.2', sha256='28007b5b584eaf9397f933032d8367788707a2d356d78e47b99e551ab10cc76a') version('2.18.1', sha256='220f9c4ad024e815add8dad8950eaa2d8f4f231104788cf2a3c5d9da8f94ba6e') version('2.18.0', sha256='62591ac69f9cc9728bd6d952b65bcadd2dfe52b521081612609804a413f49b07') version('2.17.0', sha256='4674f938743aa29eb4d775211b13b089b9de84bfe5e9ea00c7d8782ed84a46d7') diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py index 149a75aac4..84def85aff 100644 --- a/var/spack/repos/builtin/packages/ibm-java/package.py +++ b/var/spack/repos/builtin/packages/ibm-java/package.py @@ -14,16 +14,23 @@ class IbmJava(Package): homepage = "https://developer.ibm.com/javasdk/" + # Note: IBM is fairly aggressive about taking down old versions, + # so we may need to update this frequently. Also, old revs may + # not be available for download. + + version_list = [ + ('8.0.6.0', 'ppc64', 'e142746a83e47ab91d71839d5776f112ed154ae180d0628e3f10886151dad710'), + ('8.0.6.0', 'ppc64le', '18c2eccf99225e6e7643141d8da4110cacc39f2fa00149fc26341d2272cc0102'), + ('8.0.5.30', 'ppc64', 'd39ce321bdadd2b2b829637cacf9c1c0d90235a83ff6e7dcfa7078faca2f212f'), + ('8.0.5.30', 'ppc64le', 'dec6434d926861366c135aac6234fc28b3e7685917015aa3a3089c06c3b3d8f0'), + ] + # There are separate tar files for big and little-endian machine - # types. When we add more versions, then turn this into a mapping - # from version and machine type to sha256sum. - mach = platform.machine() if platform.machine() == 'ppc64' else 'ppc64le' - if mach == 'ppc64le': - sha = 'dec6434d926861366c135aac6234fc28b3e7685917015aa3a3089c06c3b3d8f0' - else: - sha = 'd39ce321bdadd2b2b829637cacf9c1c0d90235a83ff6e7dcfa7078faca2f212f' + # types. And no, this won't work cross platform. - version('8.0.5.30', sha256=sha, expand=False) + for (ver, mach, sha) in version_list: + if mach == platform.machine(): + version(ver, sha256=sha, expand=False) provides('java@8') @@ -36,7 +43,7 @@ class IbmJava(Package): url = ('http://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud' '/runtimes/java/{0}/linux/{1}/ibm-java-sdk-{2}-{1}' - '-archive.bin').format(version, self.mach, dash) + '-archive.bin').format(version, platform.machine(), dash) return url @@ -48,11 +55,11 @@ class IbmJava(Package): def libs(self): return find_libraries(['libjvm'], root=self.home, recursive=True) - def setup_environment(self, spack_env, run_env): - run_env.set('JAVA_HOME', self.home) + def setup_run_environment(self, env): + env.set('JAVA_HOME', self.home) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('JAVA_HOME', self.home) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('JAVA_HOME', self.home) def setup_dependent_package(self, module, dependent_spec): self.spec.home = self.home diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py index 1e901220a3..3281301abf 100644 --- a/var/spack/repos/builtin/packages/ibmisc/package.py +++ b/var/spack/repos/builtin/packages/ibmisc/package.py @@ -40,7 +40,7 @@ class Ibmisc(CMakePackage): depends_on('proj@:4', when='+proj') depends_on('blitz', when='+blitz') depends_on('netcdf-cxx4', when='+netcdf') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') depends_on('googletest', when='+googletest', type='build') depends_on('py-cython', when='+python', type=('build', 'run')) depends_on('py-numpy', when='+python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/icedtea/package.py b/var/spack/repos/builtin/packages/icedtea/package.py index a62550b2c1..ad12a14678 100644 --- a/var/spack/repos/builtin/packages/icedtea/package.py +++ b/var/spack/repos/builtin/packages/icedtea/package.py @@ -62,7 +62,6 @@ class Icedtea(AutotoolsPackage): depends_on('zlib') depends_on('alsa-lib') - provides('java') provides('java@8', when='@3.4.0:3.99.99') force_autoreconf = True @@ -153,18 +152,18 @@ class Icedtea(AutotoolsPackage): ] return args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set JAVA_HOME.""" - run_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Set JAVA_HOME and CLASSPATH. CLASSPATH contains the installation prefix for the extension and any other Java extensions it depends on.""" - spack_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) class_paths = [] for d in dependent_spec.traverse(deptype=('build', 'run', 'test')): @@ -172,14 +171,19 @@ class Icedtea(AutotoolsPackage): class_paths.extend(find(d.prefix, '*.jar')) classpath = os.pathsep.join(class_paths) - spack_env.set('CLASSPATH', classpath) + env.set('CLASSPATH', classpath) + def setup_dependent_run_environment(self, env, dependent_spec): + """Set CLASSPATH. + + CLASSPATH contains the installation prefix for the extension and any + other Java extensions it depends on.""" # For runtime environment set only the path for # dependent_spec and prepend it to CLASSPATH if dependent_spec.package.extends(self.spec): class_paths = find(dependent_spec.prefix, '*.jar') classpath = os.pathsep.join(class_paths) - run_env.prepend_path('CLASSPATH', classpath) + env.prepend_path('CLASSPATH', classpath) def setup_dependent_package(self, module, dependent_spec): """Allows spec['java'].home to work.""" diff --git a/var/spack/repos/builtin/packages/icet/package.py b/var/spack/repos/builtin/packages/icet/package.py index 6e708a7783..932b674b01 100644 --- a/var/spack/repos/builtin/packages/icet/package.py +++ b/var/spack/repos/builtin/packages/icet/package.py @@ -22,6 +22,6 @@ class Icet(CMakePackage): def cmake_args(self): return ['-DICET_USE_OPENGL:BOOL=OFF'] - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Work-around for ill-placed CMake modules""" - spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix.lib) + env.prepend_path('CMAKE_PREFIX_PATH', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py index 9af9085ea6..bc3ae24e30 100644 --- a/var/spack/repos/builtin/packages/icu4c/package.py +++ b/var/spack/repos/builtin/packages/icu4c/package.py @@ -29,6 +29,9 @@ class Icu4c(AutotoolsPackage): depends_on('python', type='build', when='@64.1:') + conflicts('%intel@:16', when='@60.1:', + msg="Intel compilers have immature C++11 and multibyte support") + configure_directory = 'source' def url_for_version(self, version): diff --git a/var/spack/repos/builtin/packages/image-magick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py index 2f9229c496..bbdc11213c 100644 --- a/var/spack/repos/builtin/packages/image-magick/package.py +++ b/var/spack/repos/builtin/packages/imagemagick/package.py @@ -6,7 +6,7 @@ from spack import * -class ImageMagick(AutotoolsPackage): +class Imagemagick(AutotoolsPackage): """ImageMagick is a software suite to create, edit, compose, or convert bitmap images.""" diff --git a/var/spack/repos/builtin/packages/imlib2/package.py b/var/spack/repos/builtin/packages/imlib2/package.py new file mode 100644 index 0000000000..0af5c6a013 --- /dev/null +++ b/var/spack/repos/builtin/packages/imlib2/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Imlib2(AutotoolsPackage): + """ + Library that does image file loading and saving as well as rendering, + manipulation, arbitrary polygon support + """ + + homepage = "http://sourceforge.net/projects/enlightenment/" + url = "http://downloads.sourceforge.net/enlightenment/imlib2-1.5.1.tar.bz2" + + maintainers = ['TheQueasle'] + + version('1.5.1', 'fa4e57452b8843f4a70f70fd435c746ae2ace813250f8c65f977db5d7914baae') + + depends_on('libtiff') + depends_on('giflib') + depends_on('bzip2') + depends_on('freetype') + depends_on('libxext') + depends_on('libpng') + depends_on('libid3tag') + depends_on('libjpeg-turbo') diff --git a/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py b/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py index ae5e10c2f0..11bd373b0a 100644 --- a/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py @@ -10,14 +10,38 @@ class IntelMklDnn(CMakePackage): """Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN).""" - homepage = "https://01.org/mkl-dnn" - url = "https://github.com/intel/mkl-dnn/archive/v0.19.tar.gz" + homepage = "https://intel.github.io/mkl-dnn/" + url = "https://github.com/intel/mkl-dnn/archive/v1.1.1.tar.gz" - version('1.0-pc2', sha256='fcc2d951f7170eade0cfdd0d8d1d58e3e7785bd326bca6555f3722f8cba71811') - version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd', preferred=True) - version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70') - version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d') - version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570') - version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7') + maintainers = ['adamjstewart'] + version('1.1.1', sha256='a31b08a89473bfe3bd6ed542503336d21b4177ebe4ccb9a97810808f634db6b6') + version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd') + version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70') + version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d') + version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570') + version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7') + + depends_on('cmake@2.8.11:', type='build') depends_on('intel-mkl') + depends_on('llvm-openmp', when='%clang platform=darwin') + + def cmake_args(self): + args = [] + + # https://github.com/intel/mkl-dnn/issues/591 + if self.spec.satisfies('%clang platform=darwin'): + args.extend([ + '-DOpenMP_CXX_FLAGS={0}'.format(self.compiler.openmp_flag), + '-DOpenMP_C_FLAGS={0}'.format(self.compiler.openmp_flag), + '-DOpenMP_CXX_LIB_NAMES=libomp', + '-DOpenMP_C_LIB_NAMES=libomp', + '-DOpenMP_libomp_LIBRARY={0}'.format( + self.spec['llvm-openmp'].libs.libraries[0] + ), + '-DCMAKE_SHARED_LINKER_FLAGS={0}'.format( + self.spec['llvm-openmp'].libs.ld_flags + ), + ]) + + return args diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py index c56873ea3e..07566b44fb 100644 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -13,6 +13,8 @@ class IntelMkl(IntelPackage): homepage = "https://software.intel.com/en-us/intel-mkl" + version('2019.5.281', sha256='9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e', + url="http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/l_mkl_2019.5.281.tgz") version('2019.3.199', sha256='06de2b54f4812e7c39a118536259c942029fe1d6d8918ad9df558a83c4162b8f', url="http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15275/l_mkl_2019.3.199.tgz") version('2019.1.144', sha256='5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb', diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py index 001e4be17f..fab50f00b2 100644 --- a/var/spack/repos/builtin/packages/intel-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi/package.py @@ -11,6 +11,8 @@ class IntelMpi(IntelPackage): homepage = "https://software.intel.com/en-us/intel-mpi-library" + version('2019.6.154', sha256='f5bad7bcc50ea3a09a6a0615ae8fce42ba8a652bc61e32e12ff7b54952e8f8c9', + url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16120/l_mpi_2019.6.154.tgz') version('2019.4.243', sha256='233a8660b92ecffd89fedd09f408da6ee140f97338c293146c9c080a154c5fcd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15553/l_mpi_2019.4.243.tgz') version('2019.3.199', sha256='5304346c863f64de797250eeb14f51c5cfc8212ff20813b124f20e7666286990', @@ -43,7 +45,7 @@ class IntelMpi(IntelPackage): provides('mpi') - def setup_dependent_environment(self, *args): + def setup_dependent_build_environment(self, *args): # Handle in callback, conveying client's compilers in additional arg. # CAUTION - DUP code in: # ../intel-mpi/package.py 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 cb3658020b..cb9fee20b1 100644 --- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py +++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py @@ -20,6 +20,7 @@ class IntelParallelStudio(IntelPackage): # in the 'intel' package. # Cluster Edition (top tier; all components included) + 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') @@ -85,6 +86,7 @@ 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.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.1', sha256='db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz') @@ -199,7 +201,7 @@ class IntelParallelStudio(IntelPackage): conflicts('auto_dispatch=SSE3', 'platform=darwin target=x86_64:', msg='SSE3 is not supported on MacOS x86_64') - def setup_dependent_environment(self, *args): + def setup_dependent_build_environment(self, *args): # Handle in callback, conveying client's compilers in additional arg. # CAUTION - DUP code in: # ../intel-mpi/package.py diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index 4b64601261..5db08142d9 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -17,7 +17,14 @@ class IntelTbb(Package): """ homepage = "http://www.threadingbuildingblocks.org/" + # Note: when adding new versions, please check and update the + # patches and filters below as needed. + # See url_for_version() below. + version('2019.8', sha256='7b1fd8caea14be72ae4175896510bf99c809cd7031306a1917565e6de7382fba') + version('2019.7', sha256='4204a93f4c0fd989fb6f79acae74feb02ee39725c93968773d9b6efeb75c7a6a') + version('2019.6', sha256='2ba197b3964fce8a84429dd15b75eba7434cb89afc54f86d5ee6f726fdbe97fd') + version('2019.5', sha256='2ea82d74dec50e18075b4982b8d360f8bd2bf2950f38e2db483aef82e0047444') version('2019.4', sha256='342a0a2cd583879850658284b86e9351ea019b4f3fcd731f4c18456f0ce9f900') version('2019.3', sha256='b2244147bc8159cdd8f06a38afeb42f3237d3fc822555499d7ccfbd4b86f8ece') version('2019.2', sha256='1245aa394a92099e23ce2f60cdd50c90eb3ddcd61d86cae010ef2f1de61f32d9') @@ -49,6 +56,16 @@ class IntelTbb(Package): provides('tbb') + # Clang builds incorrectly determine GCC version which in turn incorrectly + # causes a mismatch in C++ features resulting in a link error. This also + # means that clang builds require a gcc compiler to work correctly (this + # has always been the case). + # + # See https://github.com/intel/tbb/pull/147 for details. + # + conflicts('%clang', when='@:2019.6', + msg='2019.7 or later required for clang') + conflicts('%gcc@6.1:', when='@:4.4.3', msg='4.4.4 or later required for GCC >= 6.1.') @@ -64,44 +81,21 @@ class IntelTbb(Package): variant('tm', default=True, description='Enable use of transactional memory on x86') + # Testing version ranges inside when clauses was fixed in e9ee9eaf. + # See: #8957 and #13989. + # Build and install CMake config files if we're new enough. - depends_on('cmake@3.0.0:', type='build', when='@2017.0:') - - # Note: see issues #11371 and #8957 to understand why 2019.x patches are - # specified one at a time. In a nutshell, it is currently impossible - # to patch `2019.1` without patching `2019`. When #8957 is fixed, this - # can be simplified. - - # Deactivate use of RTM with GCC when on an OS with an elderly assembler. - # one patch format for 2019.1 and after... - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.4 %gcc@4.8.0: os=rhel6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.4 %gcc@4.8.0: os=scientific6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.4 %gcc@4.8.0: os=centos6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.3 %gcc@4.8.0: os=rhel6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.3 %gcc@4.8.0: os=scientific6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.3 %gcc@4.8.0: os=centos6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.2 %gcc@4.8.0: os=rhel6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.2 %gcc@4.8.0: os=scientific6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.2 %gcc@4.8.0: os=centos6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.1 %gcc@4.8.0: os=rhel6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.1 %gcc@4.8.0: os=scientific6') - patch("tbb_gcc_rtm_key_2019U1.patch", level=0, when='@2019.1 %gcc@4.8.0: os=centos6') - # ...another patch file for 2019 and before - patch("tbb_gcc_rtm_key.patch", level=0, when='@:2019.0 %gcc@4.8.0: os=rhel6') - patch("tbb_gcc_rtm_key.patch", level=0, when='@:2019.0 %gcc@4.8.0: os=scientific6') - patch("tbb_gcc_rtm_key.patch", level=0, when='@:2019.0 %gcc@4.8.0: os=centos6') - - # patch for pedantic warnings (#10836) - # one patch file for 2019.1 and after... - patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.4') - patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.3') - patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.2') - patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.1') - # ...another patch file for 2019 and before - patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0') + # CMake support started in 2017.7. + depends_on('cmake@3.0.0:', type='build', when='@2017.7:') + + # Patch for pedantic warnings (#10836). This was fixed in the TBB + # source tree in 2019.6. + patch("gcc_generic-pedantic-2019.patch", level=1, when='@2019.1:2019.5') + 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.patch", level=0, when='@2017.0:') + patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:') + patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4') # Some very old systems don't support transactional memory. patch("disable-tm.patch", when='~tm') @@ -131,6 +125,14 @@ class IntelTbb(Package): of.write(l) def install(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') + or spec.satisfies('%gcc@4.8.0: os=centos6') + or spec.satisfies('%gcc@4.8.0: os=scientific6')): + filter_file(r'RTM_KEY.*=.*rtm.*', 'RTM_KEY =', + join_path('build', 'linux.gcc.inc')) + # We need to follow TBB's compiler selection logic to get the proper # build + link flags but we still need to use spack's compiler wrappers # to accomplish this, we do two things: @@ -190,7 +192,7 @@ class IntelTbb(Package): for f in fs: install(f, prefix.lib) - if self.spec.satisfies('@2017.0:'): + if spec.satisfies('@2017.8,2018.1:', strict=True): # Generate and install the CMake Config file. cmake_args = ('-DTBB_ROOT={0}'.format(prefix), '-DTBB_OS={0}'.format(platform.system()), diff --git a/var/spack/repos/builtin/packages/intel-tbb/tbb_cmakeConfig-2019.5.patch b/var/spack/repos/builtin/packages/intel-tbb/tbb_cmakeConfig-2019.5.patch new file mode 100644 index 0000000000..f75fd6fa44 --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-tbb/tbb_cmakeConfig-2019.5.patch @@ -0,0 +1,14 @@ +This patch adapts the tbb_cmakeConfig.patch for 2019.5 and later. +The file changed. + +--- cmake/TBBMakeConfig.cmake.orig 2019-03-21 10:28:21.000000000 -0500 ++++ cmake/TBBMakeConfig.cmake 2019-11-27 22:52:45.270824744 -0600 +@@ -175,7 +175,7 @@ + + ${TBB_CHOOSE_COMPILER_SUBDIR} + +-get_filename_component(_tbb_lib_path \"\${_tbb_root}/${TBB_SHARED_LIB_DIR}/\${_tbb_arch_subdir}/\${_tbb_compiler_subdir}\" ABSOLUTE) ++get_filename_component(_tbb_lib_path \"\${_tbb_root}/${TBB_SHARED_LIB_DIR}\" ABSOLUTE) + ") + + set(TBB_RELEASE_LIB_PATH "\${_tbb_lib_path}") diff --git a/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key.patch b/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key.patch deleted file mode 100644 index 29f040d4a8..0000000000 --- a/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- build/linux.gcc.inc~ 2016-09-15 07:00:44.000000000 -0500 -+++ build/linux.gcc.inc 2018-06-07 17:32:53.181194974 -0500 -@@ -46,7 +46,7 @@ - - # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them - ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) -- RTM_KEY = -mrtm -+ RTM_KEY = # -mrtm - endif - - ifeq ($(cfg), release) diff --git a/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key_2019U1.patch b/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key_2019U1.patch deleted file mode 100644 index 5d4fe9aa89..0000000000 --- a/var/spack/repos/builtin/packages/intel-tbb/tbb_gcc_rtm_key_2019U1.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- build/linux.gcc.inc~ 2016-09-15 07:00:44.000000000 -0500 -+++ build/linux.gcc.inc 2018-06-07 17:32:53.181194974 -0500 -@@ -46,7 +46,7 @@ - - # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them - ifneq (,$(shell $(CONLY) -dumpversion | egrep "^(4\.[8-9]|[5-9])")) -- RTM_KEY = -mrtm -+ RTM_KEY = # -mrtm - endif - - ifeq ($(cfg), release) diff --git a/var/spack/repos/builtin/packages/intel-xed/package.py b/var/spack/repos/builtin/packages/intel-xed/package.py index 9b95329a21..b60ad7e702 100644 --- a/var/spack/repos/builtin/packages/intel-xed/package.py +++ b/var/spack/repos/builtin/packages/intel-xed/package.py @@ -84,19 +84,23 @@ class IntelXed(Package): mkdirp(prefix.include) mkdirp(prefix.lib) + mkdirp(prefix.bin) libs = glob.glob(join_path('obj', 'lib*.a')) for lib in libs: install(lib, prefix.lib) - # Build and install shared libxed.so. + # Build and install shared libxed.so and examples (to get the CLI). mfile('--clean') - mfile('--shared', *args) + mfile('examples', '--shared', *args) libs = glob.glob(join_path('obj', 'lib*.so')) for lib in libs: install(lib, prefix.lib) + # Install the xed program + install(join_path('obj', 'examples', 'xed'), prefix.bin) + # Install header files. hdrs = glob.glob(join_path('include', 'public', 'xed', '*.h')) \ + glob.glob(join_path('obj', '*.h')) diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py index 7a207dccdb..c1a533ee45 100644 --- a/var/spack/repos/builtin/packages/intel/package.py +++ b/var/spack/repos/builtin/packages/intel/package.py @@ -13,6 +13,7 @@ class Intel(IntelPackage): # Same as in ../intel-parallel-studio/package.py, Composer Edition, # but the version numbering in Spack differs. + 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('19.0.1', sha256='db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz') diff --git a/var/spack/repos/builtin/packages/ioapi/package.py b/var/spack/repos/builtin/packages/ioapi/package.py index 2081d70754..0c66f4c51a 100644 --- a/var/spack/repos/builtin/packages/ioapi/package.py +++ b/var/spack/repos/builtin/packages/ioapi/package.py @@ -15,7 +15,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') - depends_on('netcdf@4:') + depends_on('netcdf-c@4:') depends_on('netcdf-fortran@4:') depends_on('sed', type='build') diff --git a/var/spack/repos/builtin/packages/ipopt/ipopt_aarch64_build.patch b/var/spack/repos/builtin/packages/ipopt/ipopt_aarch64_build.patch new file mode 100644 index 0000000000..18a653d2bd --- /dev/null +++ b/var/spack/repos/builtin/packages/ipopt/ipopt_aarch64_build.patch @@ -0,0 +1,12 @@ +--- spack-src/Ipopt/config.guess.org 2019-10-30 13:52:51.920159919 +0900 ++++ spack-src/Ipopt/config.guess 2019-10-30 13:55:27.956506585 +0900 +@@ -835,6 +835,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/ipopt/package.py b/var/spack/repos/builtin/packages/ipopt/package.py index fd9c87fba1..44db2ba779 100644 --- a/var/spack/repos/builtin/packages/ipopt/package.py +++ b/var/spack/repos/builtin/packages/ipopt/package.py @@ -39,6 +39,7 @@ class Ipopt(AutotoolsPackage): depends_on('metis@4.0:', when='+metis') patch('ipopt_ppc_build.patch', when='arch=ppc64le') + patch('ipopt_aarch64_build.patch', when='arch=aarch64') flag_handler = build_system_flags build_directory = 'spack-build' diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py index d4b3371ff0..2f5772413d 100644 --- a/var/spack/repos/builtin/packages/jdk/package.py +++ b/var/spack/repos/builtin/packages/jdk/package.py @@ -41,21 +41,24 @@ class Jdk(Package): version('12.0.1_12', sha256='9fd6dcdaf2cfca7da59e39b009a0f5bcd53bec2fb16105f7ca8d689cdab68d75', curl_options=curl_options, url='https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.tar.gz') version('11.0.2_9', sha256='7b4fd8ffcf53e9ff699d964a80e4abf9706b5bdb5644a765c2b96f99e3a2cdc8', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.tar.gz') + url='https://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.tar.gz') version('11.0.1_13', sha256='e7fd856bacad04b6dbf3606094b6a81fa9930d6dbb044bbd787be7ea93abc885', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz') + url='https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz') version('10.0.2_13', sha256='6633c20d53c50c20835364d0f3e172e0cbbce78fff81867488f22a6298fa372b', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz') + url='https://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz') version('10.0.1_10', sha256='ae8ed645e6af38432a56a847597ac61d4283b7536688dbab44ab536199d1e5a4', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz') - version('1.8.0_202', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0', curl_options=curl_options, + url='https://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz') + version('1.8.0_231-b11', sha256='a011584a2c9378bf70c6903ef5fbf101b30b08937441dc2ec67932fb3620b2cf', curl_options=curl_options, + url='https://download.oracle.com/otn-pub/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz') + version('1.8.0_212-b10', sha256='3160c50aa8d8e081c8c7fe0f859ea452922eca5d2ae8f8ef22011ae87e6fedfb', curl_options=curl_options, + url='https://download.oracle.com/otn-pub/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/jdk-8u212-linux-x64.tar.gz') + version('1.8.0_202-b08', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0', curl_options=curl_options, url='https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz') version('1.8.0_141-b15', sha256='041d5218fbea6cd7e81c8c15e51d0d32911573af2ed69e066787a8dc8a39ba4f', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz') + url='https://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz') version('1.8.0_131-b11', sha256='62b215bdfb48bace523723cdbb2157c665e6a25429c73828a32f00e587301236', curl_options=curl_options, - url='http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz') + url='https://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz') - provides('java') provides('java@12', when='@12.0:12.999') provides('java@11', when='@11.0:11.999') provides('java@10', when='@10.0:10.999') @@ -148,18 +151,18 @@ and adding entries for each installation: def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set JAVA_HOME.""" - run_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Set JAVA_HOME and CLASSPATH. CLASSPATH contains the installation prefix for the extension and any other Java extensions it depends on.""" - spack_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) class_paths = [] for d in dependent_spec.traverse(deptype=('build', 'run', 'test')): @@ -167,14 +170,19 @@ and adding entries for each installation: class_paths.extend(find(d.prefix, '*.jar')) classpath = os.pathsep.join(class_paths) - spack_env.set('CLASSPATH', classpath) + env.set('CLASSPATH', classpath) + def setup_dependent_run_environment(self, env, dependent_spec): + """Set CLASSPATH. + + CLASSPATH contains the installation prefix for the extension and any + other Java extensions it depends on.""" # For runtime environment set only the path for # dependent_spec and prepend it to CLASSPATH if dependent_spec.package.extends(self.spec): class_paths = find(dependent_spec.prefix, '*.jar') classpath = os.pathsep.join(class_paths) - run_env.prepend_path('CLASSPATH', classpath) + env.prepend_path('CLASSPATH', classpath) def setup_dependent_package(self, module, dependent_spec): """Allows spec['java'].home to work.""" diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py index 421199f70f..c61182f2bd 100644 --- a/var/spack/repos/builtin/packages/jmol/package.py +++ b/var/spack/repos/builtin/packages/jmol/package.py @@ -20,6 +20,6 @@ class Jmol(Package): def install(self, spec, prefix): install_tree('jmol-{0}'.format(self.version), prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix) - run_env.set('JMOL_HOME', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) + env.set('JMOL_HOME', self.prefix) diff --git a/var/spack/repos/builtin/packages/jq/input.json b/var/spack/repos/builtin/packages/jq/input.json new file mode 100644 index 0000000000..a7dc7fd6dd --- /dev/null +++ b/var/spack/repos/builtin/packages/jq/input.json @@ -0,0 +1,4 @@ +{ + "foo": 1, + "bar": 2 +} diff --git a/var/spack/repos/builtin/packages/jq/package.py b/var/spack/repos/builtin/packages/jq/package.py index a97c6c4b9e..9e9ef3b666 100644 --- a/var/spack/repos/builtin/packages/jq/package.py +++ b/var/spack/repos/builtin/packages/jq/package.py @@ -4,15 +4,25 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os.path class Jq(AutotoolsPackage): """jq is a lightweight and flexible command-line JSON processor.""" homepage = "https://stedolan.github.io/jq/" - url = "https://github.com/stedolan/jq/archive/jq-1.5.tar.gz" + url = "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz" - version('1.5', sha256='d5667641d28c27d0c1e70de83e7f9bd8b2fed7fbf6a1d68731177d400a533c65') + version('1.6', sha256='5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72') + version('1.5', sha256='c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c') depends_on('oniguruma') depends_on('bison@3.0:', type='build') + + @run_after('install') + @on_package_attributes(run_tests=True) + def installtest(self): + jq = self.spec['jq'].command + f = os.path.join(os.path.dirname(__file__), 'input.json') + + assert jq('.bar', input=f, output=str) == '2\n' diff --git a/var/spack/repos/builtin/packages/json-c/package.py b/var/spack/repos/builtin/packages/json-c/package.py index ff243c06c9..6345b22d0b 100644 --- a/var/spack/repos/builtin/packages/json-c/package.py +++ b/var/spack/repos/builtin/packages/json-c/package.py @@ -22,5 +22,6 @@ class JsonC(AutotoolsPackage): @when('@0.12.1 %gcc@7:') def patch(self): filter_file('-Wextra', - '-Wextra -Wno-error=implicit-fallthrough', + '-Wextra -Wno-error=implicit-fallthrough ' + '-Wno-error=unused-but-set-variable', 'Makefile.in') diff --git a/var/spack/repos/builtin/packages/json-fortran/package.py b/var/spack/repos/builtin/packages/json-fortran/package.py index 09ad99bfd8..7151be610b 100644 --- a/var/spack/repos/builtin/packages/json-fortran/package.py +++ b/var/spack/repos/builtin/packages/json-fortran/package.py @@ -15,8 +15,16 @@ class JsonFortran(CMakePackage): version('7.1.0', sha256='e7aa1f6e09b25ebacb17188147380c3f8c0a254754cd24869c001745fcecc9e6') version('7.0.0', sha256='9b5b6235489b27d572bbc7620ed8e039fa9d4d14d41b1581b279be9db499f32c') + depends_on('cmake@2.8.8:', type='build') + def cmake_args(self): return [ '-DSKIP_DOC_GEN:BOOL=ON', '-DUSE_GNU_INSTALL_CONVENTION=ON', ] + + def check(self): + # `make check` works but `make test` doesn't: + # https://github.com/jacobwilliams/json-fortran/issues/154 + with working_dir(self.build_directory): + make('check') diff --git a/var/spack/repos/builtin/packages/jstorm/package.py b/var/spack/repos/builtin/packages/jstorm/package.py new file mode 100644 index 0000000000..7fce893e57 --- /dev/null +++ b/var/spack/repos/builtin/packages/jstorm/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Jstorm(Package): + """ + JStorm is an enterprise fast and stable streaming process engine. + """ + + homepage = "https://github.com/alibaba/jstorm" + url = "https://github.com/alibaba/jstorm/releases/download/2.4.0/jstorm-2.4.0.tgz" + + version('2.4.0', sha256='8a3965cb51ff95395a40e8d9fd83f12b0aad15c2726c74a796d8085cccc9d69f') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/jube/package.py b/var/spack/repos/builtin/packages/jube/package.py index 0eb96ffc12..79a43fb9a9 100644 --- a/var/spack/repos/builtin/packages/jube/package.py +++ b/var/spack/repos/builtin/packages/jube/package.py @@ -33,10 +33,8 @@ class Jube(PythonPackage): depends_on('py-setuptools', type='build') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): if not self.spec.variants['resource_manager'].value == 'none': - run_env.prepend_path( - 'JUBE_INCLUDE_PATH', - prefix + "/platform/" + - self.spec.variants['resource_manager'].value - ) + env.prepend_path('JUBE_INCLUDE_PATH', join_path( + self.prefix.platform, + self.spec.variants['resource_manager'].value)) diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index 7191faf234..655e5f4fee 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -237,7 +237,7 @@ class Julia(Package): if "+plot" in spec: julia("-e", pkgstart + 'Pkg.add("PyPlot"); using PyPlot') julia("-e", pkgstart + 'Pkg.add("Colors"); using Colors') - # These require maybe gtk and image-magick + # These require maybe gtk and imagemagick julia("-e", pkgstart + 'Pkg.add("Plots"); using Plots') julia("-e", pkgstart + 'Pkg.add("PlotRecipes"); using PlotRecipes') julia( diff --git a/var/spack/repos/builtin/packages/kaldi/fujitsu_fix_version_analysis.patch b/var/spack/repos/builtin/packages/kaldi/fujitsu_fix_version_analysis.patch new file mode 100644 index 0000000000..051e7a77a3 --- /dev/null +++ b/var/spack/repos/builtin/packages/kaldi/fujitsu_fix_version_analysis.patch @@ -0,0 +1,11 @@ +--- spack-src/src/configure.org 2019-12-03 10:51:10.415048439 +0900 ++++ spack-src/src/configure 2019-12-03 10:51:37.467877147 +0900 +@@ -214,7 +214,7 @@ + You need g++ >= 4.7, Apple clang >= 5.0 or LLVM clang >= 3.3." + fi + elif [[ $COMPILER_VER_INFO == *"LLVM"* ]]; then +- CLANG_VER=$(echo $COMPILER_VER_INFO | grep version | sed "s/.*version \([0-9\.]*\).*/\1/") ++ CLANG_VER=$(echo $COMPILER_VER_INFO | grep LLVM | sed "s/.*LLVM \([0-9\.]*\).*/\1/") + CLANG_VER_NUM=$(echo $CLANG_VER | sed 's/\./ /g' | xargs printf "%d%02d") + if [ $CLANG_VER_NUM -lt 303 ]; then + failure "$COMPILER (LLVM clang-$CLANG_VER) is not supported. diff --git a/var/spack/repos/builtin/packages/kaldi/package.py b/var/spack/repos/builtin/packages/kaldi/package.py index 8455763add..cde06bd7b5 100644 --- a/var/spack/repos/builtin/packages/kaldi/package.py +++ b/var/spack/repos/builtin/packages/kaldi/package.py @@ -42,6 +42,9 @@ class Kaldi(Package): # Does not use Autotools patch('openfst-1.4.1.patch', when='@2015-10-07') + # Change process of version analysis when using Fujitsu compiler. + patch('fujitsu_fix_version_analysis.patch', when='@2018-07-11:%fj') + def install(self, spec, prefix): configure_args = ['--fst-root=' + spec['openfst'].prefix] configure_args.append('--fst-version=' + str(spec['openfst'].version)) diff --git a/var/spack/repos/builtin/packages/karma/package.py b/var/spack/repos/builtin/packages/karma/package.py index 439369f697..bfab95e23e 100644 --- a/var/spack/repos/builtin/packages/karma/package.py +++ b/var/spack/repos/builtin/packages/karma/package.py @@ -24,15 +24,11 @@ class Karma(Package): phases = ['install'] resource( - name='karma-linux', - url='ftp://ftp.atnf.csiro.au/pub/software/karma/karma-1.7.25-amd64_Linux_libc6.3.tar.bz2', - sha256='effc3ed61c28b966b357147d90357d03c22d743c6af6edb49a863c6eb625a441', - destination='./' - ) - - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('LIBRARY_PATH', self.prefix.lib) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) + name='karma-linux', + url='ftp://ftp.atnf.csiro.au/pub/software/karma/karma-1.7.25-amd64_Linux_libc6.3.tar.bz2', + sha256='effc3ed61c28b966b357147d90357d03c22d743c6af6edb49a863c6eb625a441', + destination='./' + ) def install(self, spec, prefix): install_tree('./karma-1.7.25/amd64_Linux_libc6.3/bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py index dc97173755..cf7c486da9 100644 --- a/var/spack/repos/builtin/packages/kokkos/package.py +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -67,6 +67,11 @@ class Kokkos(Package): variant('enable_lambda', default=False, description="set enable_lambda Kokkos CUDA option") + host_values = ('AMDAVX', 'ARMv80', 'ARMv81', 'ARMv8-ThunderX', + 'Power7', 'Power8', 'Power9', + 'WSM', 'SNB', 'HSW', 'BDW', 'SKX', + 'KNC', 'KNL') + gpu_values = ('Kepler30', 'Kepler32', 'Kepler35', 'Kepler37', 'Maxwell50', 'Maxwell52', 'Maxwell53', 'Pascal60', 'Pascal61', @@ -82,9 +87,7 @@ class Kokkos(Package): variant( 'host_arch', default='none', - values=('AMDAVX', 'ARMv80', 'ARMv81', 'ARMv8-ThunderX', - 'Power7', 'Power8', 'Power9', - 'WSM', 'SNB', 'HSW', 'BDW', 'SKX', 'KNC', 'KNL'), + values=host_values, description='Set the host architecture to use' ) diff --git a/var/spack/repos/builtin/packages/kvtree/package.py b/var/spack/repos/builtin/packages/kvtree/package.py index 6f164b12d6..a9e2630ee3 100644 --- a/var/spack/repos/builtin/packages/kvtree/package.py +++ b/var/spack/repos/builtin/packages/kvtree/package.py @@ -11,7 +11,7 @@ class Kvtree(CMakePackage): hashes.""" homepage = "https://github.com/ECP-VeloC/KVTree" - url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.1.zip" + url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.2.zip" git = "https://github.com/ecp-veloc/kvtree.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py index 1b9e4c1fd8..0f128c2c22 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -7,7 +7,7 @@ from spack import * import datetime as dt -class Lammps(CMakePackage): +class Lammps(CMakePackage, CudaPackage): """LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. This package uses patch releases, not stable release. @@ -48,10 +48,10 @@ class Lammps(CMakePackage): supported_packages = ['asphere', 'body', 'class2', 'colloid', 'compress', 'coreshell', 'dipole', 'granular', 'kspace', 'latte', 'manybody', 'mc', 'meam', 'misc', 'molecule', - 'mpiio', 'peri', 'poems', 'python', 'qeq', 'reax', - 'replica', 'rigid', 'shock', 'snap', 'srd', + 'mpiio', 'peri', 'poems', 'python', 'qeq', + 'replica', 'rigid', 'shock', 'snap', 'spin', 'srd', 'user-atc', 'user-h5md', 'user-lb', 'user-misc', - 'user-netcdf', 'user-omp', 'voronoi'] + 'user-netcdf', 'user-omp', 'user-reaxc', 'voronoi'] for pkg in supported_packages: variant(pkg, default=False, @@ -60,6 +60,8 @@ class Lammps(CMakePackage): description='Build the liblammps in addition to the executable') variant('mpi', default=True, description='Build with mpi') + variant('kokkos', default=False, + description='Build with Kokkos accelerated styles') variant('jpeg', default=True, description='Build with jpeg support') variant('png', default=True, @@ -67,18 +69,24 @@ class Lammps(CMakePackage): variant('ffmpeg', default=True, description='Build with ffmpeg support') variant('openmp', default=True, description='Build with OpenMP') + variant('opencl', default=False, description='Build with OpenCL') variant('exceptions', default=False, description='Build with lammps exceptions') + variant('cuda_mps', default=False, + description='(CUDA only) Enable tweaks for running ' + + 'with Nvidia CUDA Multi-process services daemon') depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpiio') depends_on('fftw', when='+kspace') depends_on('voropp+pic', when='+voronoi') - depends_on('netcdf+mpi', when='+user-netcdf') + depends_on('netcdf-c+mpi', when='+user-netcdf') depends_on('blas', when='+user-atc') depends_on('lapack', when='+user-atc') depends_on('latte@1.0.1', when='@:20180222+latte') depends_on('latte@1.1.1:', when='@20180316:20180628+latte') + depends_on('opencl', when='+opencl') + depends_on('latte@1.2.1:', when='@20180629:+latte') depends_on('blas', when='+latte') depends_on('lapack', when='+latte') @@ -89,7 +97,9 @@ class Lammps(CMakePackage): depends_on('jpeg', when='+jpeg') depends_on('libpng', when='+png') depends_on('ffmpeg', when='+ffmpeg') + depends_on('kokkos', when='+kokkos') + conflicts('+cuda', when='+opencl') conflicts('+body', when='+poems@:20180628') conflicts('+latte', when='@:20170921') conflicts('+python', when='~lib') @@ -125,6 +135,19 @@ class Lammps(CMakePackage): '-DBUILD_OMP={0}'.format( 'ON' if '+openmp' in spec else 'OFF'), ] + if spec.satisfies('+cuda'): + args.append('-DPKG_GPU=ON') + args.append('-DGPU_API=cuda') + cuda_arch = spec.variants['cuda_arch'].value + if cuda_arch is not 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')) + elif spec.satisfies('+opencl'): + args.append('-DPKG_GPU=ON') + args.append('-DGPU_API=opencl') + else: + args.append('-DPKG_GPU=OFF') if spec.satisfies('@20180629:+lib'): args.append('-DBUILD_LIB=ON') diff --git a/var/spack/repos/builtin/packages/launchmon/package.py b/var/spack/repos/builtin/packages/launchmon/package.py index b223387b96..b4dda52d5a 100644 --- a/var/spack/repos/builtin/packages/launchmon/package.py +++ b/var/spack/repos/builtin/packages/launchmon/package.py @@ -28,9 +28,9 @@ class Launchmon(AutotoolsPackage): patch('launchmon-char-conv.patch', when='@1.0.2') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.spec.satisfies('@master'): # automake for launchmon requires the AM_PATH_LIBGCRYPT macro # which is defined in libgcrypt.m4 - spack_env.prepend_path('ACLOCAL_PATH', - self.spec['libgcrypt'].prefix.share.aclocal) + env.prepend_path('ACLOCAL_PATH', + self.spec['libgcrypt'].prefix.share.aclocal) diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index cf39b3e5c1..d63bf2ff48 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -17,6 +17,8 @@ class Lbann(CMakePackage): 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.99', branch='develop') version('0.98.1', sha256='9a2da8f41cd8bf17d1845edf9de6d60f781204ebd37bffba96d8872036c10c66') @@ -104,7 +106,7 @@ class Lbann(CMakePackage): depends_on('python@3: +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:') + 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:') depends_on('py-graphviz@0.10.1:', type='run', when='@:0.90,0.99:') depends_on('py-matplotlib@3.0.0:', type='run', when='@:0.90,0.99:') @@ -112,6 +114,8 @@ class Lbann(CMakePackage): depends_on('py-onnx@1.3.0:', type='run', when='@:0.90,0.99:') depends_on('py-pandas@0.24.1:', type='run', when='@:0.90,0.99:') depends_on('py-texttable@1.4.0:', type='run', when='@:0.90,0.99:') + depends_on('py-pytest', type='test', when='@:0.90,0.99:') + depends_on('py-protobuf+cpp', type='run', when='@:0.90,0.99:') depends_on('py-breathe', type='build', when='+docs') depends_on('py-m2r', type='build', when='+docs') diff --git a/var/spack/repos/builtin/packages/lcov/package.py b/var/spack/repos/builtin/packages/lcov/package.py new file mode 100644 index 0000000000..6c420ef3c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/lcov/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Lcov(MakefilePackage): + """LCOV is a graphical front-end for GCC's coverage testing tool gcov. + It collects gcov data for multiple source files and creates HTML pages + containing the source code annotated with coverage information. It also + adds overview pages for easy navigation within the file structure. LCOV + supports statement, function and branch coverage measurement.""" + + homepage = "http://ltp.sourceforge.net/coverage/lcov.php" + url = "https://github.com/linux-test-project/lcov/releases/download/v1.14/lcov-1.14.tar.gz" + + version('1.14', sha256='14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a') + + def install(self, spec, prefix): + make("DESTDIR=", "PREFIX=%s" % prefix, "install") diff --git a/var/spack/repos/builtin/packages/ldc-bootstrap/package.py b/var/spack/repos/builtin/packages/ldc-bootstrap/package.py index 05291360f1..e98e1be546 100644 --- a/var/spack/repos/builtin/packages/ldc-bootstrap/package.py +++ b/var/spack/repos/builtin/packages/ldc-bootstrap/package.py @@ -31,14 +31,14 @@ class LdcBootstrap(CMakePackage): depends_on('libedit') depends_on('binutils') - def setup_dependent_environment(self, build_env, run_env, dep_spec): + def setup_dependent_build_environment(self, env, dep_spec): # The code below relies on this function being executed after the # environment has been sanitized (because LD_LIBRARY_PATH is among # the variables that get unset) # We need libphobos in LD_LIBRARY_PATH - build_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) + env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) def cmake_args(self): return [ diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index 055b954c46..e5588d1a89 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -25,8 +25,11 @@ class Legion(CMakePackage): url = "https://github.com/StanfordLegion/legion/tarball/legion-17.02.0" git = "https://github.com/StanfordLegion/legion.git" - version('develop', branch='master') - version('ctrl-rep', commit='177584e77036c9913d8a62e33b55fa784748759c') + version('master', branch='master') + version('ctrl-rep', branch='control_replication') + version('ctrl-rep-2', commit='96682fd8aae071ecd30a3ed5f481a9d84457a4b6') + version('ctrl-rep-1', commit='a03671b21851d5f0d3f63210343cb61a630f4405') + version('ctrl-rep-0', commit='177584e77036c9913d8a62e33b55fa784748759c') version('19.06.0', sha256='31cd97e9264c510ab83b1f9e8e1e6bf72021a0c6ee4a028966fce08736e39fbf') version('19.04.0', sha256='279bbc8dcdab4c75be570318989a9fc9821178143e9db9c3f62e58bf9070b5ac') version('18.12.0', sha256='71f2c409722975c0ad92f2caffcc9eaa9260f7035e2b55b731d819eb6a94016c') diff --git a/var/spack/repos/builtin/packages/libbeagle/package.py b/var/spack/repos/builtin/packages/libbeagle/package.py index 0c21905a0a..edae048df5 100644 --- a/var/spack/repos/builtin/packages/libbeagle/package.py +++ b/var/spack/repos/builtin/packages/libbeagle/package.py @@ -44,15 +44,15 @@ class Libbeagle(AutotoolsPackage, CudaPackage): 'configure.ac', string=True) def configure_args(self): - args = [] + args = [ + # Since spack will inject architecture flags turn off -march=native + # when building libbeagle. + '--disable-march-native', + ] if '+cuda' in self.spec: - args.append('--with-cuda=%s' % spec['cuda'].prefix) + args.append('--with-cuda=%s' % self.spec['cuda'].prefix) else: args.append('--without-cuda') return args - - def setup_environment(self, spack_env, run_env): - prefix = self.prefix - run_env.prepend_path('BEAST_LIB', prefix.lib) diff --git a/var/spack/repos/builtin/packages/libbsd/local-elf.h.patch b/var/spack/repos/builtin/packages/libbsd/local-elf.h.patch new file mode 100644 index 0000000000..697e75ed6d --- /dev/null +++ b/var/spack/repos/builtin/packages/libbsd/local-elf.h.patch @@ -0,0 +1,11 @@ +--- a/src/local-elf.h 2018-04-21 17:30:22.000000000 -0400 ++++ b/src/local-elf.h 2019-11-13 11:02:53.965684506 -0500 +@@ -43,7 +43,7 @@ + #define ELF_TARG_CLASS ELFCLASS64 + #define ELF_TARG_DATA ELFDATA2LSB + +-#elif defined(__amd64__) ++#elif defined(__amd64__) || defined(__x86_64__) + + #define ELF_TARG_MACH EM_X86_64 + #if defined(__ILP32__) diff --git a/var/spack/repos/builtin/packages/libbsd/package.py b/var/spack/repos/builtin/packages/libbsd/package.py index 987d90043e..8d53c67389 100644 --- a/var/spack/repos/builtin/packages/libbsd/package.py +++ b/var/spack/repos/builtin/packages/libbsd/package.py @@ -16,12 +16,14 @@ class Libbsd(AutotoolsPackage): homepage = "https://libbsd.freedesktop.org/wiki/" url = "https://libbsd.freedesktop.org/releases/libbsd-0.9.1.tar.xz" + version('0.10.0', sha256='34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887') version('0.9.1', sha256='56d835742327d69faccd16955a60b6dcf30684a8da518c4eca0ac713b9e0a7a4') version('0.9.0', sha256='8a469afd1bab340992cf99e1e6b7ae4f4c54882d663d8a2c5ea52250617afb01') version('0.8.7', sha256='f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31') version('0.8.6', sha256='467fbf9df1f49af11f7f686691057c8c0a7613ae5a870577bef9155de39f9687') patch('cdefs.h.patch', when='@0.8.6 %gcc@:4') + patch('local-elf.h.patch', when='%intel') # https://gitlab.freedesktop.org/libbsd/libbsd/issues/1 conflicts('platform=darwin') diff --git a/var/spack/repos/builtin/packages/libcheck/package.py b/var/spack/repos/builtin/packages/libcheck/package.py deleted file mode 100644 index 86886037f3..0000000000 --- a/var/spack/repos/builtin/packages/libcheck/package.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class Libcheck(CMakePackage): - """A unit testing framework for C.""" - - homepage = "https://libcheck.github.io/check/index.html" - url = "https://github.com/libcheck/check/releases/download/0.12.0/check-0.12.0.tar.gz" - - version('0.12.0', sha256='464201098bee00e90f5c4bdfa94a5d3ead8d641f9025b560a27755a83b824234') - version('0.11.0', sha256='24f7a48aae6b74755bcbe964ce8bc7240f6ced2141f8d9cf480bc3b3de0d5616') - version('0.10.0', sha256='f5f50766aa6f8fe5a2df752666ca01a950add45079aa06416b83765b1cf71052') diff --git a/var/spack/repos/builtin/packages/libdap4/package.py b/var/spack/repos/builtin/packages/libdap4/package.py new file mode 100644 index 0000000000..9568a23be2 --- /dev/null +++ b/var/spack/repos/builtin/packages/libdap4/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Libdap4(AutotoolsPackage): + """ + libdap4 is is a c++ library to serve as a client for the OPeNDAP framework + that simplifies all aspects of scientific data networking and provides + software which makes local data accessible to remote locations regardless + of local storage format. + """ + + homepage = "https://www.opendap.org/" + url = "https://github.com/OPENDAP/libdap4/archive/version-3.20.4.tar.gz" + + maintainers = ['tjhei'] + + version('3.20.4', sha256='c39fa310985cc8963029ad0d0aba784e7dbf1f70c566bd7ae58242f1bb06d24a') + + 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') + depends_on('curl') + depends_on('libxml2') + depends_on('libuuid') + + def configure_args(self): + # libxml2 exports ./include/libxml2/ instead of ./include/, which we + # need, so grab this path manually: + libxml2_include = self.spec['libxml2'].prefix.include + args = ['CPPFLAGS=-I{0}'.format(libxml2_include)] + return args diff --git a/var/spack/repos/builtin/packages/libev/package.py b/var/spack/repos/builtin/packages/libev/package.py index dfdea69813..2ec2d4cd40 100644 --- a/var/spack/repos/builtin/packages/libev/package.py +++ b/var/spack/repos/builtin/packages/libev/package.py @@ -11,9 +11,8 @@ class Libev(AutotoolsPackage): after libevent, but without its limitations and bugs.""" homepage = "http://software.schmorp.de/pkg/libev.html" - url = "http://dist.schmorp.de/libev/libev-4.24.tar.gz" + url = "http://dist.schmorp.de/libev/Attic/libev-4.24.tar.gz" git = "https://github.com/enki/libev.git" - list_url = "http://dist.schmorp.de/libev/Attic/" version('develop', branch='master') version('4.24', sha256='973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821') diff --git a/var/spack/repos/builtin/packages/libexif/package.py b/var/spack/repos/builtin/packages/libexif/package.py new file mode 100644 index 0000000000..6abc034825 --- /dev/null +++ b/var/spack/repos/builtin/packages/libexif/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Libexif(AutotoolsPackage): + """A library to parse an EXIF file and read the data from those tags""" + + homepage = "https://sourceforge.net/projects/libexif" + url = "https://downloads.sourceforge.net/sourceforge/libexif/libexif-0.6.21.tar.bz2" + + maintainers = ['TheQueasle'] + + version('0.6.21', sha256='16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a') + depends_on('glib') diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py index ede7f53f66..d1019dd400 100644 --- a/var/spack/repos/builtin/packages/libfabric/package.py +++ b/var/spack/repos/builtin/packages/libfabric/package.py @@ -15,6 +15,8 @@ class Libfabric(AutotoolsPackage): git = "https://github.com/ofiwg/libfabric.git" version('develop', branch='master') + version('1.9.0', sha256='559bfb7376c38253c936d0b104591c3394880376d676894895706c4f5f88597c', + url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/libfabric-1.9.0.tar.bz2') version('1.8.1', sha256='3c560b997f9eafd89f961dd8e8a29a81aad3e39aee888e3f3822da419047dc88', url='https://github.com/ofiwg/libfabric/releases/download/v1.8.1/libfabric-1.8.1.tar.bz2') version('1.8.0', sha256='c4763383a96af4af52cd81b3b094227f5cf8e91662f861670965994539b7ee37', @@ -66,6 +68,10 @@ class Libfabric(AutotoolsPackage): depends_on('libtool', when='@develop', type='build') resource(name='fabtests', + url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/fabtests-1.9.0.tar.bz2', + sha256='60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e', + placement='fabtests', when='@1.9.0') + resource(name='fabtests', url='https://github.com/ofiwg/libfabric/releases/download/v1.7.0/fabtests-1.7.0.tar.gz', sha256='ebb4129dc69dc0e1f48310ce1abb96673d8ddb18166bc595312ebcb96e803de9', placement='fabtests', when='@1.7.0') @@ -90,9 +96,9 @@ class Libfabric(AutotoolsPackage): sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e', placement='fabtests', when='@1.5.0') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.run_tests: - spack_env.prepend_path('PATH', self.prefix.bin) + env.prepend_path('PATH', self.prefix.bin) @when('@develop') def autoreconf(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py index 825d52b7e2..6de2de36c4 100644 --- a/var/spack/repos/builtin/packages/libffi/package.py +++ b/var/spack/repos/builtin/packages/libffi/package.py @@ -14,7 +14,7 @@ class Libffi(AutotoolsPackage): homepage = "https://sourceware.org/libffi/" version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37', - url="https://www.mirrorservice.org/sites/sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") + url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") @property def headers(self): diff --git a/var/spack/repos/builtin/packages/libgit2/package.py b/var/spack/repos/builtin/packages/libgit2/package.py index 5ada427806..165ed6840a 100644 --- a/var/spack/repos/builtin/packages/libgit2/package.py +++ b/var/spack/repos/builtin/packages/libgit2/package.py @@ -14,7 +14,7 @@ class Libgit2(CMakePackage): """ homepage = "https://libgit2.github.com/" - url = "https://github.com/libgit2/libgit2/archive/v0.24.2.tar.gz" + url = "https://github.com/libgit2/libgit2/archive/v0.26.0.tar.gz" version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac') diff --git a/var/spack/repos/builtin/packages/libgpg-error/awk-5.patch b/var/spack/repos/builtin/packages/libgpg-error/awk-5.patch new file mode 100644 index 0000000000..1ccd61e61d --- /dev/null +++ b/var/spack/repos/builtin/packages/libgpg-error/awk-5.patch @@ -0,0 +1,196 @@ +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -1615,7 +1615,7 @@ + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + mkheader$(EXEEXT_FOR_BUILD): mkheader.c Makefile + +diff --git a/NEWS b/NEWS +index 75b8a99..ef29558 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,3 +1,7 @@ ++Noteworthy changes in version 1.37 (unreleased) [C27/A27/R_] ++----------------------------------------------- ++ ++ + Noteworthy changes in version 1.36 (2019-03-19) [C27/A27/R0] + ----------------------------------------------- + +diff --git a/configure.ac b/configure.ac +index e46b240..a6526a9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29,7 +29,7 @@ min_automake_version="1.14" + # See below for the LT versions. + m4_define([mym4_package],[libgpg-error]) + m4_define([mym4_major], [1]) +-m4_define([mym4_minor], [36]) ++m4_define([mym4_minor], [37]) + + # Below is m4 magic to extract and compute the revision number, the + # decimalized short revision number, a beta version string, and a flag +diff --git a/doc/yat2m.c b/doc/yat2m.c +index 3c7b363..a6a74c9 100644 +--- a/doc/yat2m.c ++++ b/doc/yat2m.c +@@ -49,7 +49,7 @@ + .B whateever you want + @end ifset + +- alternativly a special comment may be used: ++ alternatively a special comment may be used: + + @c man:.B whatever you want + +@@ -705,7 +705,7 @@ write_th (FILE *fp) + + + /* Process the texinfo command COMMAND (without the leading @) and +- write output if needed to FP. REST is the remainer of the line ++ write output if needed to FP. REST is the remainder of the line + which should either point to an opening brace or to a white space. + The function returns the number of characters already processed + from REST. LEN is the usable length of REST. TABLE_LEVEL is used to +@@ -725,7 +725,8 @@ proc_texi_cmd (FILE *fp, const char *command, const char *rest, size_t len, + { "url", 0, "\\fB", "\\fR" }, + { "sc", 0, "\\fB", "\\fR" }, + { "var", 0, "\\fI", "\\fR" }, +- { "samp", 0, "\\(aq", "\\(aq" }, ++ { "samp", 0, "\\(oq", "\\(cq" }, ++ { "kbd", 0, "\\(oq", "\\(cq" }, + { "file", 0, "\\(oq\\fI","\\fR\\(cq" }, + { "env", 0, "\\(oq\\fI","\\fR\\(cq" }, + { "acronym", 0 }, +diff --git a/lang/cl/mkerrcodes.awk b/lang/cl/mkerrcodes.awk +index ae29043..9a1fc18 100644 +--- a/lang/cl/mkerrcodes.awk ++++ b/lang/cl/mkerrcodes.awk +@@ -122,7 +122,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +diff --git a/src/Makefile.am b/src/Makefile.am +index ce1b882..f2590cb 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -293,7 +293,7 @@ code-from-errno.h: mkerrcodes$(EXEEXT_FOR_BUILD) Makefile + + errnos-sym.h: Makefile mkstrtable.awk errnos.in + $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ +- -v prefix=GPG_ERR_ -v namespace=errnos_ \ ++ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \ + $(srcdir)/errnos.in >$@ + + +diff --git a/src/mkerrcodes.awk b/src/mkerrcodes.awk +index 46d436c..e9c857c 100644 +--- a/src/mkerrcodes.awk ++++ b/src/mkerrcodes.awk +@@ -85,7 +85,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +diff --git a/src/mkerrcodes1.awk b/src/mkerrcodes1.awk +index a771a73..4578e29 100644 +--- a/src/mkerrcodes1.awk ++++ b/src/mkerrcodes1.awk +@@ -81,7 +81,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +diff --git a/src/mkerrcodes2.awk b/src/mkerrcodes2.awk +index ea58503..188f7a4 100644 +--- a/src/mkerrcodes2.awk ++++ b/src/mkerrcodes2.awk +@@ -91,7 +91,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +diff --git a/src/mkerrnos.awk b/src/mkerrnos.awk +index f79df66..15b1aad 100644 +--- a/src/mkerrnos.awk ++++ b/src/mkerrnos.awk +@@ -83,7 +83,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +diff --git a/src/mkstrtable.awk b/src/mkstrtable.awk +index c9de9c1..285e45f 100644 +--- a/src/mkstrtable.awk ++++ b/src/mkstrtable.awk +@@ -77,7 +77,7 @@ + # + # The variable prefix can be used to prepend a string to each message. + # +-# The variable namespace can be used to prepend a string to each ++# The variable pkg_namespace can be used to prepend a string to each + # variable and macro name. + + BEGIN { +@@ -102,7 +102,7 @@ header { + print "/* The purpose of this complex string table is to produce"; + print " optimal code with a minimum of relocations. */"; + print ""; +- print "static const char " namespace "msgstr[] = "; ++ print "static const char " pkg_namespace "msgstr[] = "; + header = 0; + } + else +@@ -110,7 +110,7 @@ header { + } + + !header { +- sub (/\#.+/, ""); ++ sub (/#.+/, ""); + sub (/[ ]+$/, ""); # Strip trailing space and tab characters. + + if (/^$/) +@@ -150,7 +150,7 @@ END { + else + print " gettext_noop (\"" last_msgstr "\");"; + print ""; +- print "static const int " namespace "msgidx[] ="; ++ print "static const int " pkg_namespace "msgidx[] ="; + print " {"; + for (i = 0; i < coded_msgs; i++) + print " " pos[i] ","; +@@ -158,7 +158,7 @@ END { + print " };"; + print ""; + print "static GPG_ERR_INLINE int"; +- print namespace "msgidxof (int code)"; ++ print pkg_namespace "msgidxof (int code)"; + print "{"; + print " return (0 ? 0"; + diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py index 848f4760f4..df570df30c 100644 --- a/var/spack/repos/builtin/packages/libgpg-error/package.py +++ b/var/spack/repos/builtin/packages/libgpg-error/package.py @@ -19,3 +19,7 @@ class LibgpgError(AutotoolsPackage): version('1.27', sha256='4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2') version('1.21', sha256='b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d') version('1.18', sha256='9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153d80810') + + 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:') diff --git a/var/spack/repos/builtin/packages/libgpuarray/package.py b/var/spack/repos/builtin/packages/libgpuarray/package.py index 1f26b75628..9ab2beba2b 100644 --- a/var/spack/repos/builtin/packages/libgpuarray/package.py +++ b/var/spack/repos/builtin/packages/libgpuarray/package.py @@ -25,4 +25,4 @@ class Libgpuarray(CMakePackage): depends_on('cuda') depends_on('cmake@3:', type='build') - depends_on('libcheck') + depends_on('check') diff --git a/var/spack/repos/builtin/packages/libiberty/package.py b/var/spack/repos/builtin/packages/libiberty/package.py index cd4895db6d..66353b8b7a 100644 --- a/var/spack/repos/builtin/packages/libiberty/package.py +++ b/var/spack/repos/builtin/packages/libiberty/package.py @@ -11,12 +11,12 @@ from spack import * # is useful for other packages that want the demangling functions # without the rest of binutils. -class Libiberty(AutotoolsPackage): +class Libiberty(AutotoolsPackage, GNUMirrorPackage): """The libiberty.a library from GNU binutils. Libiberty provides demangling and support functions for the GNU toolchain.""" homepage = "https://www.gnu.org/software/binutils/" - url = "https://ftpmirror.gnu.org/binutils/binutils-2.31.1.tar.xz" + gnu_mirror_path = "binutils/binutils-2.31.1.tar.xz" version('2.31.1', sha256='5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86') version('2.30', sha256='6e46b8aeae2f727a36f0bd9505e405768a72218f1796f0d09757d45209871ae6') diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py index a1e76e4894..5e190bfe4f 100644 --- a/var/spack/repos/builtin/packages/libiconv/package.py +++ b/var/spack/repos/builtin/packages/libiconv/package.py @@ -6,12 +6,12 @@ from spack import * -class Libiconv(AutotoolsPackage): +class Libiconv(AutotoolsPackage, GNUMirrorPackage): """GNU libiconv provides an implementation of the iconv() function and the iconv program for character set conversion.""" homepage = "https://www.gnu.org/software/libiconv/" - url = "https://ftpmirror.gnu.org/libiconv/libiconv-1.16.tar.gz" + gnu_mirror_path = "libiconv/libiconv-1.16.tar.gz" version('1.16', sha256='e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04') version('1.15', sha256='ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178') diff --git a/var/spack/repos/builtin/packages/libid3tag/10_utf16.diff b/var/spack/repos/builtin/packages/libid3tag/10_utf16.diff new file mode 100644 index 0000000000..a3218d26d8 --- /dev/null +++ b/var/spack/repos/builtin/packages/libid3tag/10_utf16.diff @@ -0,0 +1,48 @@ +#! /bin/sh -e +## 10_utf16.dpatch by <kurt@roeckx.be> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Handle bogus UTF16 sequences that have a length that is not +## DP: an even number of 8 bit characters. + +if [ $# -lt 1 ]; then + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in + -patch) patch -p1 ${patch_opts} < $0;; + -unpatch) patch -R -p1 ${patch_opts} < $0;; + *) + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c +--- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100 ++++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100 +@@ -282,5 +282,18 @@ + + free(utf16); + ++ if (end == *ptr && length % 2 != 0) ++ { ++ /* We were called with a bogus length. It should always ++ * be an even number. We can deal with this in a few ways: ++ * - Always give an error. ++ * - Try and parse as much as we can and ++ * - return an error if we're called again when we ++ * already tried to parse everything we can. ++ * - tell that we parsed it, which is what we do here. ++ */ ++ (*ptr)++; ++ } ++ + return ucs4; + } diff --git a/var/spack/repos/builtin/packages/libid3tag/11_unknown_encoding.dif b/var/spack/repos/builtin/packages/libid3tag/11_unknown_encoding.dif new file mode 100644 index 0000000000..7387f2f7d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/libid3tag/11_unknown_encoding.dif @@ -0,0 +1,37 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 11_unknown_encoding.dpatch by Andreas Henriksson <andreas@fatal.se> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: In case of an unknown/invalid encoding, id3_parse_string() will +## DP: return NULL, but the return value wasn't checked resulting +## DP: in segfault in id3_ucs4_length(). This is the only place +## DP: the return value wasn't checked. + +@DPATCH@ +diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf +--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000 +@@ -236,6 +236,10 @@ + + encoding = id3_parse_uint(&data, 1); + string = id3_parse_string(&data, end - data, encoding, 0); ++ if (!string) ++ { ++ continue; ++ } + + if (id3_ucs4_length(string) < 4) { + free(string); +diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c +--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000 +@@ -165,6 +165,9 @@ + case ID3_FIELD_TEXTENCODING_UTF_8: + ucs4 = id3_utf8_deserialize(ptr, length); + break; ++ default: ++ /* FIXME: Unknown encoding! Print warning? */ ++ return NULL; + } + + if (ucs4 && !full) { diff --git a/var/spack/repos/builtin/packages/libid3tag/CVE-2008-2109.patch b/var/spack/repos/builtin/packages/libid3tag/CVE-2008-2109.patch new file mode 100644 index 0000000000..26c54c5d2c --- /dev/null +++ b/var/spack/repos/builtin/packages/libid3tag/CVE-2008-2109.patch @@ -0,0 +1,11 @@ +--- field.c.orig 2008-05-05 09:49:15.000000000 -0400 ++++ field.c 2008-05-05 09:49:25.000000000 -0400 +@@ -291,7 +291,7 @@ + + end = *ptr + length; + +- while (end - *ptr > 0) { ++ while (end - *ptr > 0 && **ptr != '\0') { + ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0); + if (ucs4 == 0) + goto fail; diff --git a/var/spack/repos/builtin/packages/libid3tag/libid3tag-gperf.patch b/var/spack/repos/builtin/packages/libid3tag/libid3tag-gperf.patch new file mode 100644 index 0000000000..9dfad6c723 --- /dev/null +++ b/var/spack/repos/builtin/packages/libid3tag/libid3tag-gperf.patch @@ -0,0 +1,26 @@ +Index: libid3tag-0.15.1b/frametype.h +=================================================================== +--- libid3tag-0.15.1b.orig/frametype.h ++++ libid3tag-0.15.1b/frametype.h +@@ -37,6 +37,6 @@ extern struct id3_frametype const id3_fr + extern struct id3_frametype const id3_frametype_obsolete; + + struct id3_frametype const *id3_frametype_lookup(register char const *, +- register unsigned int); ++ register size_t); + + # endif +Index: libid3tag-0.15.1b/compat.h +=================================================================== +--- libid3tag-0.15.1b.orig/compat.h ++++ libid3tag-0.15.1b/compat.h +@@ -34,7 +34,7 @@ struct id3_compat { + }; + + struct id3_compat const *id3_compat_lookup(register char const *, +- register unsigned int); ++ register size_t); + + int id3_compat_fixup(struct id3_tag *); + + diff --git a/var/spack/repos/builtin/packages/libid3tag/package.py b/var/spack/repos/builtin/packages/libid3tag/package.py new file mode 100644 index 0000000000..fa50b4770a --- /dev/null +++ b/var/spack/repos/builtin/packages/libid3tag/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + +import os + + +class Libid3tag(AutotoolsPackage): + """library for id3 tagging""" + + homepage = "https://www.underbit.com/products/mad/" + url = "ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz" + + maintainers = ['TheQueasle'] + + version('0.15.1b', '63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151') + + depends_on('zlib') + depends_on('gperf') + + # source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/10_utf16.diff?h=packages/libid3tag + patch('10_utf16.diff') + # source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/11_unknown_encoding.diff?h=packages/libid3tag + patch('11_unknown_encoding.dif') + # source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/CVE-2008-2109.patch?h=packages/libid3tag + patch('CVE-2008-2109.patch', level=0) + # source: https://git.archlinux.org/svntogit/packages.git/tree/trunk/libid3tag-gperf.patch?h=packages/libid3tag + patch('libid3tag-gperf.patch', when="^gperf@3.1:") + + @run_before('configure') + def preclean(self): + """ + Remove compat.c and frametype.c in order to regenerate from gperf + sources + """ + os.remove('compat.c') + os.remove('frametype.c') diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py index d58e4fec1d..edb6d8d46f 100644 --- a/var/spack/repos/builtin/packages/libint/package.py +++ b/var/spack/repos/builtin/packages/libint/package.py @@ -81,15 +81,15 @@ class Libint(AutotoolsPackage): return flags - def setup_environment(self, build_env, run_env): + def setup_build_environment(self, env): # Set optimization flags - build_env.set('CFLAGS', self.optflags) - build_env.set('CXXFLAGS', self.optflags) + env.set('CFLAGS', self.optflags) + env.set('CXXFLAGS', self.optflags) # Change AR to xiar if we compile with Intel and we # find the executable if '%intel' in self.spec and which('xiar'): - build_env.set('AR', 'xiar') + env.set('AR', 'xiar') def configure_args(self): diff --git a/var/spack/repos/builtin/packages/libmatheval/package.py b/var/spack/repos/builtin/packages/libmatheval/package.py index 5cfab6000d..e97f0c1e62 100644 --- a/var/spack/repos/builtin/packages/libmatheval/package.py +++ b/var/spack/repos/builtin/packages/libmatheval/package.py @@ -6,7 +6,7 @@ from spack import * -class Libmatheval(AutotoolsPackage): +class Libmatheval(AutotoolsPackage, GNUMirrorPackage): """GNU libmatheval is a library (callable from C and Fortran) to parse and evaluate symbolic expressions input as text. It supports expressions in any number of variables of arbitrary names, decimal and symbolic @@ -15,7 +15,7 @@ class Libmatheval(AutotoolsPackage): compute symbolic derivatives and output expressions to strings.""" homepage = "https://www.gnu.org/software/libmatheval/" - url = "https://ftpmirror.gnu.org/libmatheval/libmatheval-1.1.11.tar.gz" + gnu_mirror_path = "libmatheval/libmatheval-1.1.11.tar.gz" version('1.1.11', sha256='474852d6715ddc3b6969e28de5e1a5fbaff9e8ece6aebb9dc1cc63e9e88e89ab') diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py index 0990d25a2f..29ff2e2aa4 100644 --- a/var/spack/repos/builtin/packages/libmesh/package.py +++ b/var/spack/repos/builtin/packages/libmesh/package.py @@ -245,5 +245,5 @@ class Libmesh(AutotoolsPackage): return options - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.append_flags('PERL', self.spec['perl'].command.path) + def setup_dependent_build_environment(self, env, dependent_spec): + env.append_flags('PERL', self.spec['perl'].command.path) diff --git a/var/spack/repos/builtin/packages/libmmtf-cpp/package.py b/var/spack/repos/builtin/packages/libmmtf-cpp/package.py new file mode 100644 index 0000000000..039f1489ae --- /dev/null +++ b/var/spack/repos/builtin/packages/libmmtf-cpp/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class LibmmtfCpp(CMakePackage): + """The macromolecular transmission format (MMTF) is a binary encoding of + biological structures. This repository holds the C++-03 compatible API, + encoding and decoding libraries.""" + + homepage = "https://github.com/rcsb/mmtf-cpp" + url = "https://github.com/rcsb/mmtf-cpp/archive/v1.0.0.tar.gz" + + version('1.0.0', sha256='881f69c4bb56605fa63fd5ca50842facc4947f686cbf678ad04930674d714f40') + + depends_on('msgpack-c') diff --git a/var/spack/repos/builtin/packages/libnrm/package.py b/var/spack/repos/builtin/packages/libnrm/package.py index ad79170f9e..178e4e7d34 100644 --- a/var/spack/repos/builtin/packages/libnrm/package.py +++ b/var/spack/repos/builtin/packages/libnrm/package.py @@ -19,5 +19,5 @@ class Libnrm(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') - depends_on('zeromq') + depends_on('libzmq') depends_on('mpich') diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py index 14ee76f0b9..e8b9cb5621 100644 --- a/var/spack/repos/builtin/packages/libpciaccess/package.py +++ b/var/spack/repos/builtin/packages/libpciaccess/package.py @@ -18,3 +18,12 @@ class Libpciaccess(AutotoolsPackage): depends_on('libtool', type='build') depends_on('pkgconfig', type='build') depends_on('util-macros', type='build') + + # A known issue exists when building with PGI as documented here: + # https://bugs.freedesktop.org/show_bug.cgi?id=94398 + # https://www.pgroup.com/userforum/viewtopic.php?f=4&t=5126 + # https://gitlab.freedesktop.org/xorg/lib/libpciaccess/issues/7 + # + # When the ability to use dependencies built by another compiler, using a + # libpciaccess built by gcc should be usable by PGI builds. + conflicts('%pgi') diff --git a/var/spack/repos/builtin/packages/libpeas/package.py b/var/spack/repos/builtin/packages/libpeas/package.py index 01aef48f15..e47f985d31 100644 --- a/var/spack/repos/builtin/packages/libpeas/package.py +++ b/var/spack/repos/builtin/packages/libpeas/package.py @@ -23,7 +23,7 @@ class Libpeas(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('gettext', type='build') - depends_on('pkg-config', type='build') + depends_on('pkgconfig', type='build') depends_on('atk') depends_on('intltool@0.40.0:') depends_on('xmlto', type='build') @@ -44,11 +44,13 @@ class Libpeas(AutotoolsPackage): url += '{0}/libpeas-{1}.tar.xz' return url.format(version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('XDG_DATA_DIRS', self.prefix.share) - def setup_environment(self, spack_env, run_env): + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path('XDG_DATA_DIRS', self.prefix.share) + + def setup_build_environment(self, env): # Let # # python = self.spec['python'] @@ -76,10 +78,11 @@ class Libpeas(AutotoolsPackage): python_pc_file = os.path.join(python_prefix, 'python3.pc') python_ldflags = pkg_config('--libs', python_pc_file, output=str) - spack_env.append_path('LDFLAGS', - python_ldflags) - spack_env.prepend_path('XDG_DATA_DIRS', self.prefix.share) - run_env.prepend_path('XDG_DATA_DIRS', self.prefix.share) + env.append_path('LDFLAGS', python_ldflags) + 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 autoreconf(self, spec, prefix): autoreconf_args = ['-ivf'] diff --git a/var/spack/repos/builtin/packages/librsvg/package.py b/var/spack/repos/builtin/packages/librsvg/package.py index 99131420de..eb02d86289 100644 --- a/var/spack/repos/builtin/packages/librsvg/package.py +++ b/var/spack/repos/builtin/packages/librsvg/package.py @@ -30,10 +30,14 @@ class Librsvg(AutotoolsPackage): url += "{0}/librsvg-{1}.tar.xz" return url.format(version.up_to(2), version) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('XDG_DATA_DIRS', self.prefix.share) - def setup_environment(self, spack_env, run_env): - spack_env.prepend_path("XDG_DATA_DIRS", self.prefix.share) - run_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/libsigsegv/package.py b/var/spack/repos/builtin/packages/libsigsegv/package.py index f8afacc8a3..82e668358f 100644 --- a/var/spack/repos/builtin/packages/libsigsegv/package.py +++ b/var/spack/repos/builtin/packages/libsigsegv/package.py @@ -6,11 +6,11 @@ from spack import * -class Libsigsegv(AutotoolsPackage): +class Libsigsegv(AutotoolsPackage, GNUMirrorPackage): """GNU libsigsegv is a library for handling page faults in user mode.""" homepage = "https://www.gnu.org/software/libsigsegv/" - url = "https://ftpmirror.gnu.org/libsigsegv/libsigsegv-2.12.tar.gz" + gnu_mirror_path = "libsigsegv/libsigsegv-2.12.tar.gz" version('2.12', sha256='3ae1af359eebaa4ffc5896a1aee3568c052c99879316a1ab57f8fe1789c390b6') version('2.11', sha256='dd7c2eb2ef6c47189406d562c1dc0f96f2fc808036834d596075d58377e37a18') diff --git a/var/spack/repos/builtin/packages/libspatialite/package.py b/var/spack/repos/builtin/packages/libspatialite/package.py index abf40719fa..7162c26e97 100644 --- a/var/spack/repos/builtin/packages/libspatialite/package.py +++ b/var/spack/repos/builtin/packages/libspatialite/package.py @@ -16,7 +16,7 @@ class Libspatialite(AutotoolsPackage): version('4.3.0a', sha256='88900030a4762904a7880273f292e5e8ca6b15b7c6c3fb88ffa9e67ee8a5a499') version('3.0.1', sha256='4983d6584069fd5ff0cfcccccee1015088dab2db177c0dc7050ce8306b68f8e6') - depends_on('pkg-config', type='build') + depends_on('pkgconfig', type='build') depends_on('sqlite+rtree') depends_on('proj@:5') depends_on('geos') diff --git a/var/spack/repos/builtin/packages/libtool/package.py b/var/spack/repos/builtin/packages/libtool/package.py index bbad95e573..469dc319a8 100644 --- a/var/spack/repos/builtin/packages/libtool/package.py +++ b/var/spack/repos/builtin/packages/libtool/package.py @@ -6,11 +6,11 @@ from spack import * -class Libtool(AutotoolsPackage): +class Libtool(AutotoolsPackage, GNUMirrorPackage): """libtool -- library building part of autotools.""" homepage = 'https://www.gnu.org/software/libtool/' - url = 'https://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz' + gnu_mirror_path = "libtool/libtool-2.4.2.tar.gz" version('develop', git='https://git.savannah.gnu.org/git/libtool.git', branch='master', submodules=True) @@ -37,9 +37,8 @@ class Libtool(AutotoolsPackage): def _make_executable(self, name): return Executable(join_path(self.prefix.bin, name)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.append_path('ACLOCAL_PATH', - join_path(self.prefix.share, 'aclocal')) + def setup_dependent_build_environment(self, env, dependent_spec): + env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal) def setup_dependent_package(self, module, dependent_spec): # Automake is very likely to be a build dependency, so we add diff --git a/var/spack/repos/builtin/packages/libunistring/package.py b/var/spack/repos/builtin/packages/libunistring/package.py index 86f03a10a6..477eee09d8 100644 --- a/var/spack/repos/builtin/packages/libunistring/package.py +++ b/var/spack/repos/builtin/packages/libunistring/package.py @@ -6,12 +6,12 @@ from spack import * -class Libunistring(AutotoolsPackage): +class Libunistring(AutotoolsPackage, GNUMirrorPackage): """This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.""" homepage = "https://www.gnu.org/software/libunistring/" - url = "https://ftpmirror.gnu.org/libunistring/libunistring-0.9.10.tar.xz" + gnu_mirror_path = "libunistring/libunistring-0.9.10.tar.xz" version('0.9.10', sha256='eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7') version('0.9.9', sha256='a4d993ecfce16cf503ff7579f5da64619cee66226fb3b998dafb706190d9a833') diff --git a/var/spack/repos/builtin/packages/libx11/package.py b/var/spack/repos/builtin/packages/libx11/package.py index 5c1a7f21f3..d88b5bab65 100644 --- a/var/spack/repos/builtin/packages/libx11/package.py +++ b/var/spack/repos/builtin/packages/libx11/package.py @@ -27,9 +27,11 @@ class Libx11(AutotoolsPackage): depends_on('util-macros', type='build') depends_on('perl', type='build') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale) - run_env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path('XLOCALEDIR', self.prefix.share.X11.locale) @property def libs(self): diff --git a/var/spack/repos/builtin/packages/libxc/configure_add_fj.patch b/var/spack/repos/builtin/packages/libxc/configure_add_fj.patch deleted file mode 100644 index e5c2b36ea0..0000000000 --- a/var/spack/repos/builtin/packages/libxc/configure_add_fj.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- libxc-4.3.2/configure 2019-02-08 17:40:50.000000000 +0900 -+++ libxc-4.3.2/configure_b 2019-07-25 14:48:51.825394300 +0900 -@@ -14405,6 +14405,18 @@ - lt_prog_compiler_pic_FC='-qpic' - lt_prog_compiler_static_FC='-qstaticlink' - ;; -+ fcc* | FCC* ) -+ # Fujitsu C/C++ compiler -+ lt_prog_compiler_wl_FC='-Wl,' -+ lt_prog_compiler_pic_FC='-KPIC' -+ lt_prog_compiler_static_FC='-Bstatic' -+ ;; -+ frt* ) -+ # Fujitsu Fortran compiler -+ lt_prog_compiler_wl_FC='-Wl,' -+ lt_prog_compiler_pic_FC='-KPIC' -+ lt_prog_compiler_static_FC='-Kstatic_fjlib' -+ ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index 82bac01673..d592e824d6 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -10,8 +10,8 @@ class Libxc(AutotoolsPackage): """Libxc is a library of exchange-correlation functionals for density-functional theory.""" - homepage = "http://www.tddft.org/programs/octopus/wiki/index.php/Libxc" - url = "http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.2.2.tar.gz" + 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('4.3.2', sha256='bc159aea2537521998c7fb1199789e1be71e04c4b7758d58282622e347603a6f') version('4.2.3', sha256='02e49e9ba7d21d18df17e9e57eae861e6ce05e65e966e1e832475aa09e344256') @@ -19,18 +19,6 @@ class Libxc(AutotoolsPackage): version('2.2.2', sha256='6ca1d0bb5fdc341d59960707bc67f23ad54de8a6018e19e02eee2b16ea7cc642') version('2.2.1', sha256='ade61c1fa4ed238edd56408fd8ee6c2e305a3d5753e160017e2a71817c98fd00') - patch('configure_add_fj.patch') - - def url_for_version(self, version): - if version < Version('3.0.0'): - return ("http://www.tddft.org/programs/octopus/" - "down.php?file=libxc/libxc-{0}.tar.gz" - .format(version)) - - return ("http://www.tddft.org/programs/octopus/" - "down.php?file=libxc/{0}/libxc-{0}.tar.gz" - .format(version)) - @property def libs(self): """Libxc can be queried for the following parameters: @@ -61,7 +49,7 @@ class Libxc(AutotoolsPackage): libraries, root=self.prefix, shared=shared, recursive=True ) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): optflags = '-O2' if self.compiler.name == 'intel': # Optimizations for the Intel compiler, suggested by CP2K @@ -88,10 +76,10 @@ class Libxc(AutotoolsPackage): # optflags += ' -xSSE4.2 -axAVX,CORE-AVX2 -ipo' if which('xiar'): - spack_env.set('AR', 'xiar') + env.set('AR', 'xiar') - spack_env.append_flags('CFLAGS', optflags) - spack_env.append_flags('FCFLAGS', optflags) + env.append_flags('CFLAGS', optflags) + env.append_flags('FCFLAGS', optflags) def configure_args(self): args = ['--enable-shared'] diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py index b7a6381f30..8fb37ce3ad 100644 --- a/var/spack/repos/builtin/packages/libxml2/package.py +++ b/var/spack/repos/builtin/packages/libxml2/package.py @@ -34,7 +34,7 @@ class Libxml2(AutotoolsPackage): # XML Conformance Test Suites # See http://www.w3.org/XML/Test/ for information - resource(name='xmlts', url='http://www.w3.org/XML/Test/xmlts20080827.tar.gz', + resource(name='xmlts', url='https://www.w3.org/XML/Test/xmlts20080827.tar.gz', sha256='96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7') @property diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py index 542052d4dd..8315b112de 100644 --- a/var/spack/repos/builtin/packages/libxpm/package.py +++ b/var/spack/repos/builtin/packages/libxpm/package.py @@ -26,10 +26,10 @@ class Libxpm(AutotoolsPackage): depends_on('pkgconfig', type='build') depends_on('util-macros', type='build') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # If libxpm is installed as an external package, gettext won't # be available in the spec. See # https://github.com/spack/spack/issues/9149 for details. if 'gettext' in self.spec: - spack_env.append_flags('LDFLAGS', '-L{0} -lintl'.format( + env.append_flags('LDFLAGS', '-L{0} -lintl'.format( self.spec['gettext'].prefix.lib)) diff --git a/var/spack/repos/builtin/packages/zeromq/package.py b/var/spack/repos/builtin/packages/libzmq/package.py index 7612bf5695..531d268f03 100644 --- a/var/spack/repos/builtin/packages/zeromq/package.py +++ b/var/spack/repos/builtin/packages/libzmq/package.py @@ -6,7 +6,7 @@ from spack import * -class Zeromq(AutotoolsPackage): +class Libzmq(AutotoolsPackage): """The ZMQ networking/concurrency library and core API""" homepage = "http://zguide.zeromq.org/" diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index 411a6f8fe6..6809fe5f93 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -17,8 +17,10 @@ class Likwid(Package): for information.""" homepage = "https://github.com/RRZE-HPC/likwid" - url = "https://github.com/RRZE-HPC/likwid/archive/4.1.2.tar.gz" + url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz" + git = "https://github.com/RRZE-HPC/likwid.git" + version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e') version('4.3.4', sha256='5c0d1c66b25dac8292a02232f06454067f031a238f010c62f40ef913c6609a83') version('4.3.3', sha256='a681378cd66c1679ca840fb5fac3136bfec93c01b3d78cc1d00a641db325a9a3') version('4.3.2', sha256='fd39529854b8952e7530da1684835aa43ac6ce2169f5ebd1fb2a481f6fb288ac') diff --git a/var/spack/repos/builtin/packages/linux-headers/package.py b/var/spack/repos/builtin/packages/linux-headers/package.py index 6b0133dd75..c34cae029d 100644 --- a/var/spack/repos/builtin/packages/linux-headers/package.py +++ b/var/spack/repos/builtin/packages/linux-headers/package.py @@ -16,11 +16,11 @@ class LinuxHeaders(Package): version('4.9.10', sha256='bd6e05476fd8d9ea4945e11598d87bc97806bbc8d03556abbaaf809707661525') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # This variable is used in the Makefile. If it is defined on the # system, it can break the build if there is no build recipe for # that specific ARCH - spack_env.unset('ARCH') + env.unset('ARCH') def install(self, spec, prefix): make('headers_install', 'INSTALL_HDR_PATH={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/lizard/fix-install-decompress.patch b/var/spack/repos/builtin/packages/lizard/fix-install-decompress.patch new file mode 100644 index 0000000000..d5a8242a23 --- /dev/null +++ b/var/spack/repos/builtin/packages/lizard/fix-install-decompress.patch @@ -0,0 +1,76 @@ +From 02c35c25e565a090ec6b49fbc6210f6593519b44 Mon Sep 17 00:00:00 2001 +From: Przemyslaw Skibinski <przemyslaw.skibinski@percona.com> +Date: Fri, 25 Oct 2019 10:03:39 +0200 +Subject: [PATCH] Fix missing `lizard_decompress.h` after `make install`. + +--- + lib/Makefile | 2 ++ + lib/lizard_common.h | 7 +++++++ + lib/lizard_decompress.h | 9 +-------- + 3 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/lib/Makefile b/lib/Makefile +index 64c07dd..9484056 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -143,6 +143,7 @@ endif + @ln -sf liblizard.$(SHARED_EXT_VER) $(DESTDIR)$(LIBDIR)/liblizard.$(SHARED_EXT) + @echo Installing includes + @$(INSTALL_DATA) lizard_compress.h $(DESTDIR)$(INCLUDEDIR)/lizard_compress.h ++ @$(INSTALL_DATA) lizard_decompress.h $(DESTDIR)$(INCLUDEDIR)/lizard_decompress.h + @$(INSTALL_DATA) lizard_common.h $(DESTDIR)$(INCLUDEDIR)/lizard_common.h + @$(INSTALL_DATA) lizard_frame.h $(DESTDIR)$(INCLUDEDIR)/lizard_frame.h + @echo lizard static and shared libraries installed +@@ -154,6 +155,7 @@ uninstall: + @$(RM) $(DESTDIR)$(LIBDIR)/liblizard.$(SHARED_EXT_VER) + @$(RM) $(DESTDIR)$(LIBDIR)/liblizard.a + @$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_compress.h ++ @$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_decompress.h + @$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_common.h + @$(RM) $(DESTDIR)$(INCLUDEDIR)/lizard_frame.h + @echo lizard libraries successfully uninstalled +diff --git a/lib/lizard_common.h b/lib/lizard_common.h +index 1677abb..45730cf 100644 +--- a/lib/lizard_common.h ++++ b/lib/lizard_common.h +@@ -192,6 +192,13 @@ struct Lizard_stream_s + const BYTE* destBase; + }; + ++struct Lizard_streamDecode_s { ++ const BYTE* externalDict; ++ size_t extDictSize; ++ const BYTE* prefixEnd; ++ size_t prefixSize; ++}; ++ + struct Lizard_dstream_s + { + const BYTE* offset16Ptr; +diff --git a/lib/lizard_decompress.h b/lib/lizard_decompress.h +index 5453b4d..ad9fc8e 100644 +--- a/lib/lizard_decompress.h ++++ b/lib/lizard_decompress.h +@@ -39,8 +39,6 @@ + extern "C" { + #endif + +-#include "entropy/mem.h" /* U32 */ +- + + /*^*************************************************************** + * Export parameters +@@ -95,12 +93,7 @@ LIZARDDLIB_API int Lizard_decompress_safe_partial (const char* source, char* des + /*-********************************************** + * Streaming Decompression Functions + ************************************************/ +-typedef struct { +- const BYTE* externalDict; +- size_t extDictSize; +- const BYTE* prefixEnd; +- size_t prefixSize; +-} Lizard_streamDecode_t; ++typedef struct Lizard_streamDecode_s Lizard_streamDecode_t; + + /* + * Lizard_streamDecode_t diff --git a/var/spack/repos/builtin/packages/lizard/package.py b/var/spack/repos/builtin/packages/lizard/package.py new file mode 100644 index 0000000000..d2b2b23c0a --- /dev/null +++ b/var/spack/repos/builtin/packages/lizard/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Lizard(MakefilePackage): + """Lizard (formerly LZ5) is an efficient compressor with very + fast decompression. It achieves compression ratio that is + comparable to zip/zlib and zstd/brotli (at low and medium + compression levels) at decompression speed of 1000 MB/s and + faster.""" + + homepage = "https://github.com/inikep/lizard" + url = "https://github.com/inikep/lizard/archive/v1.0.tar.gz" + git = "https://github.com/inikep/lizard.git" + + version('develop', branch='lizard') + version('1.0', + sha256='6f666ed699fc15dc7fdaabfaa55787b40ac251681b50c0d8df017c671a9457e6') + + patch('fix-install-decompress.patch', when='@1.0') + + def install(self, spec, prefix): + make("PREFIX=%s" % prefix, "install") diff --git a/var/spack/repos/builtin/packages/llvm/constexpr_longdouble.patch b/var/spack/repos/builtin/packages/llvm/constexpr_longdouble.patch index 337b068d4b..f825b14210 100644 --- a/var/spack/repos/builtin/packages/llvm/constexpr_longdouble.patch +++ b/var/spack/repos/builtin/packages/llvm/constexpr_longdouble.patch @@ -1,5 +1,5 @@ ---- a/projects/libcxx/include/thread -+++ b/projects/libcxx/include/thread +--- a/libcxx/include/thread ++++ b/libcxx/include/thread @@ -435,7 +435,12 @@ sleep_for(const chrono::duration<_Rep, _Period>& __d) using namespace chrono; if (__d > duration<_Rep, _Period>::zero()) diff --git a/var/spack/repos/builtin/packages/llvm/constexpr_longdouble_9.0.patch b/var/spack/repos/builtin/packages/llvm/constexpr_longdouble_9.0.patch new file mode 100644 index 0000000000..bbc5ab7385 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/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/llvm_gcc7.patch b/var/spack/repos/builtin/packages/llvm/llvm_gcc7.patch index e3bb8a14ad..c6d9d33a08 100644 --- a/var/spack/repos/builtin/packages/llvm/llvm_gcc7.patch +++ b/var/spack/repos/builtin/packages/llvm/llvm_gcc7.patch @@ -1,5 +1,5 @@ ---- a/tools/lldb/include/lldb/Utility/TaskPool.h 2016-09-06 16:57:50.000000000 -0400 -+++ b/tools/lldb/include/lldb/Utility/TaskPool.h 2017-08-29 16:29:41.448584015 -0400 +--- a/lldb/include/lldb/Utility/TaskPool.h 2016-09-06 16:57:50.000000000 -0400 ++++ b/lldb/include/lldb/Utility/TaskPool.h 2017-08-29 16:29:41.448584015 -0400 @@ -28,6 +28,7 @@ #include <cassert> diff --git a/var/spack/repos/builtin/packages/llvm/llvm_py37.patch b/var/spack/repos/builtin/packages/llvm/llvm_py37.patch new file mode 100644 index 0000000000..478be87994 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/llvm_py37.patch @@ -0,0 +1,37 @@ +From ecdefed7f6ba11421fe1ecc6c13a135ab7bcda73 Mon Sep 17 00:00:00 2001 +From: Pavel Labath <labath@google.com> +Date: Mon, 23 Jul 2018 11:37:36 +0100 +Subject: [PATCH] Fix PythonString::GetString for >=python-3.7 + +The return value of PyUnicode_AsUTF8AndSize is now "const char *". +--- + .../Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +index 6a9d57d5a..94f16b2c7 100644 +--- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp ++++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +@@ -404,14 +404,16 @@ llvm::StringRef PythonString::GetString() const { + return llvm::StringRef(); + + Py_ssize_t size; +- char *c; ++ const char *data; + + #if PY_MAJOR_VERSION >= 3 +- c = PyUnicode_AsUTF8AndSize(m_py_obj, &size); ++ data = PyUnicode_AsUTF8AndSize(m_py_obj, &size); + #else ++ char *c; + PyString_AsStringAndSize(m_py_obj, &c, &size); ++ data = c; + #endif +- return llvm::StringRef(c, size); ++ return llvm::StringRef(data, size); + } + + size_t PythonString::GetSize() const { +-- +2.18.0.233.g985f88cf7e-goog + diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index b79798eb53..6307eab58a 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -15,14 +15,32 @@ class Llvm(CMakePackage): """ homepage = 'http://llvm.org/' - url = 'http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz' + url = "https://github.com/llvm/llvm-project/archive/llvmorg-7.1.0.tar.gz" list_url = 'http://releases.llvm.org/download.html' + git = 'https://github.com/llvm/llvm-project' family = 'compiler' # Used by lmod - # currently required by mesa package - version('3.0', sha256='519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477', - url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz') + version('master', branch='master') + version('9.0.0', sha256='7807fac25330e24e9955ca46cd855dd34bbc9cc4fdba8322366206654d1036f2') + version('8.0.0', sha256='d81238b4a69e93e29f74ce56f8107cbfcf0c7d7b40510b7879e98cc031e25167') + version('7.1.0', sha256='71c93979f20e01f1a1cc839a247945f556fa5e63abf2084e8468b238080fd839') + version('7.0.1', sha256='f17a6cd401e8fd8f811fbfbb36dcb4f455f898c9d03af4044807ad005df9f3c0') + version('6.0.1', sha256='aefadceb231f4c195fe6d6cd3b1a010b269c8a22410f339b5a089c2e902aa177') + version('6.0.0', sha256='1946ec629c88d30122afa072d3c6a89cc5d5e4e2bb28dc63b2f9ebcc7917ee64') + version('5.0.2', sha256='fe87aa11558c08856739bfd9bd971263a28657663cb0c3a0af01b94f03b0b795') + version('5.0.1', sha256='84ca454abf262579814a2a2b846569f6e0cb3e16dc33ca3642b4f1dff6fbafd3') + version('5.0.0', sha256='1f1843315657a4371d8ca37f01265fa9aae17dbcf46d2d0a95c1fdb3c6a4bab6') + version('4.0.1', sha256='cd664fb3eec3208c08fb61189c00c9118c290b3be5adb3215a97b24255618be5') + version('4.0.0', sha256='28ca4b2fc434cb1f558e8865386c233c2a6134437249b8b3765ae745ffa56a34') + version('3.9.1', sha256='f5b6922a5c65f9232f83d89831191f2c3ccf4f41fdd8c63e6645bbf578c4ab92') + version('3.9.0', sha256='9c6563a72c8b5b79941c773937d997dd2b1b5b3f640136d02719ec19f35e0333') + version('3.8.1', sha256='69360f0648fde0dc3d3c4b339624613f3bc2a89c4858933bc3871a250ad02826') + version('3.8.0', sha256='b5cc5974cc2fd4e9e49e1bbd0700f872501a8678bd9694fa2b36c65c026df1d1') + version('3.7.1', sha256='d2cb0eb9b8eb21e07605bfe5e7a5c6c5f5f8c2efdac01ec1da6ffacaabe4195a') + version('3.7.0', sha256='dc00bc230be2006fb87b84f6fe4800ca28bc98e6692811a98195da53c9cb28c6') + version('3.6.2', sha256='f75d703a388ba01d607f9cf96180863a5e4a106827ade17b221d43e6db20778a') + version('3.5.1', sha256='5d739684170d5b2b304e4fb521532d5c8281492f71e1a8568187bfa38eb5909d') # 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 @@ -69,15 +87,20 @@ class Llvm(CMakePackage): variant('omp_tsan', default=False, description="Build with OpenMP capable thread sanitizer") variant('python', default=False, description="Install python bindings") + variant('flang', default=False, + description='Build flang branch version instead') + extends('python', when='+python') # Build dependency depends_on('cmake@3.4.3:', type='build') depends_on('python@2.7:2.8', when='@:4.999 ~python', type='build') + depends_on('python@2.7:2.8', when='@5: ~python +flang', type='build') depends_on('python', when='@5: ~python', type='build') # Universal dependency depends_on('python@2.7:2.8', when='@:4.999+python') + depends_on('python@2.7:2.8', when='@5:+python+flang') depends_on('python', when='@5:+python') # openmp dependencies @@ -96,496 +119,58 @@ class Llvm(CMakePackage): depends_on('gmp', when='@:3.6.999 +polly') depends_on('isl', when='@:3.6.999 +polly') - base_url = 'http://llvm.org/releases/%%(version)s/%(pkg)s-%%(version)s.src.tar.xz' - llvm_url = base_url % {'pkg': 'llvm'} - # Flang uses its own fork of llvm. - flang_llvm_url = 'https://github.com/flang-compiler/llvm.git' - - resources = { - 'compiler-rt': { - 'url': base_url % {'pkg': 'compiler-rt'}, - 'destination': 'projects', - 'placement': 'compiler-rt', - 'variant': '+compiler-rt', - }, - 'openmp': { - 'url': base_url % {'pkg': 'openmp'}, - 'destination': 'projects', - 'placement': 'openmp', - 'variant': '+clang', - }, - 'libcxx': { - 'url': base_url % {'pkg': 'libcxx'}, - 'destination': 'projects', - 'placement': 'libcxx', - 'variant': '+libcxx', - }, - 'libcxxabi': { - 'url': base_url % {'pkg': 'libcxxabi'}, - 'destination': 'projects', - 'placement': 'libcxxabi', - 'variant': '+libcxx', - }, - 'cfe': { - 'url': base_url % {'pkg': 'cfe'}, - 'destination': 'tools', - 'placement': 'clang', - 'variant': '+clang', - }, - 'clang-tools-extra': { - 'url': base_url % {'pkg': 'clang-tools-extra'}, - 'destination': 'tools/clang/tools', - 'placement': 'extra', - 'variant': '+clang', - }, - 'lldb': { - 'url': base_url % {'pkg': 'lldb'}, - 'destination': 'tools', - 'placement': 'lldb', - 'variant': '+lldb', - }, - 'lld': { - 'url': base_url % {'pkg': 'lld'}, - 'destination': 'tools', - 'placement': 'lld', - 'variant': '+lld', - }, - 'polly': { - 'url': base_url % {'pkg': 'polly'}, - 'destination': 'tools', - 'placement': 'polly', - 'variant': '+polly', - }, - 'libunwind': { - 'url': base_url % {'pkg': 'libunwind'}, - 'destination': 'projects', - 'placement': 'libunwind', - 'variant': '+internal_unwind', - }, - } - releases = [ - { - 'version': 'develop', - 'repo': 'http://llvm.org/svn/llvm-project/llvm/trunk', - 'resources': { - 'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk', - 'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk', - 'polly': 'http://llvm.org/svn/llvm-project/polly/trunk', - 'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk', - 'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk', - 'cfe': 'http://llvm.org/svn/llvm-project/cfe/trunk', - 'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk', - 'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk', - 'lld': 'http://llvm.org/svn/llvm-project/lld/trunk', - 'libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk', - } - }, - { - 'version': '9.0.0', - 'sha256': 'd6a0565cf21f22e9b4353b2eb92622e8365000a9e90a16b09b56f8157eabfe84', - 'resources': { - 'compiler-rt': '56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e', - 'openmp': '9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b', - 'polly': 'a4fa92283de725399323d07f18995911158c1c5838703f37862db815f513d433', - 'libcxx': '3c4162972b5d3204ba47ac384aa456855a17b5e97422723d4758251acf1ed28c', - 'libcxxabi': '675041783565c906ac2f7f8b2bc5c40f14d871ecfa8ade34855aa18de95530e9', - 'cfe': '7ba81eef7c22ca5da688fdf9d88c20934d2d6b40bfe150ffd338900890aa4610', - 'clang-tools-extra': 'ea1c86ce352992d7b6f6649bc622f6a2707b9f8b7153e9f9181a35c76aa3ac10', - 'lldb': '1e4c2f6a1f153f4b8afa2470d2e99dab493034c1ba8b7ffbbd7600de016d0794', - 'lld': '31c6748b235d09723fb73fea0c816ed5a3fab0f96b66f8fbc546a0fcc8688f91', - 'libunwind': '976a8d09e1424fb843210eecec00a506b956e6c31adda3b0d199e945be0d0db2' - } - }, - { - 'version': '8.0.0', - 'sha256': '8872be1b12c61450cacc82b3d153eab02be2546ef34fa3580ed14137bb26224c', - 'resources': { - 'compiler-rt': 'b435c7474f459e71b2831f1a4e3f1d21203cb9c0172e94e9d9b69f50354f21b1', - 'openmp': 'f7b1705d2f16c4fc23d6531f67d2dd6fb78a077dd346b02fed64f4b8df65c9d5', - 'polly': 'e3f5a3d6794ef8233af302c45ceb464b74cdc369c1ac735b6b381b21e4d89df4', - 'libcxx': 'c2902675e7c84324fb2c1e45489220f250ede016cc3117186785d9dc291f9de2', - 'libcxxabi': 'c2d6de9629f7c072ac20ada776374e9e3168142f20a46cdb9d6df973922b07cd', - 'cfe': '084c115aab0084e63b23eee8c233abb6739c399e29966eaeccfc6e088e0b736b', - 'clang-tools-extra': '4f00122be408a7482f2004bcf215720d2b88cf8dc78b824abb225da8ad359d4b', - 'lldb': '49918b9f09816554a20ac44c5f85a32dc0a7a00759b3259e78064d674eac0373', - 'lld': '9caec8ec922e32ffa130f0fb08e4c5a242d7e68ce757631e425e9eba2e1a6e37', - 'libunwind': 'ff243a669c9cef2e2537e4f697d6fb47764ea91949016f2d643cb5d8286df660' - } - }, - { - 'version': '7.0.1', - 'sha256': 'a38dfc4db47102ec79dcc2aa61e93722c5f6f06f0a961073bd84b78fb949419b', - 'resources': { - 'compiler-rt': '782edfc119ee172f169c91dd79f2c964fb6b248bd9b73523149030ed505bbe18', - 'openmp': 'bf16b78a678da67d68405214ec7ee59d86a15f599855806192a75dcfca9b0d0c', - 'polly': '1bf146842a09336b9c88d2d76c2d117484e5fad78786821718653d1a9d57fb71', - 'libcxx': '020002618b319dc2a8ba1f2cba88b8cc6a209005ed8ad29f9de0c562c6ebb9f1', - 'libcxxabi': '8168903a157ca7ab8423d3b974eaa497230b1564ceb57260be2bd14412e8ded8', - 'cfe': 'a45b62dde5d7d5fdcdfa876b0af92f164d434b06e9e89b5d0b1cbc65dfe3f418', - 'clang-tools-extra': '4c93c7d2bb07923a8b272da3ef7914438080aeb693725f4fc5c19cd0e2613bed', - 'lldb': '76b46be75b412a3d22f0d26279306ae7e274fe4d7988a2184c529c38a6a76982', - 'lld': '8869aab2dd2d8e00d69943352d3166d159d7eae2615f66a684f4a0999fc74031', - 'libunwind': '89c852991dfd9279dbca9d5ac10b53c67ad7d0f54bbab7156e9f057a978b5912' - } - }, - { - 'version': '7.0.0', - 'sha256': '8bc1f844e6cbde1b652c19c1edebc1864456fd9c78b8c1bea038e51b363fe222', - 'resources': { - 'compiler-rt': 'bdec7fe3cf2c85f55656c07dfb0bd93ae46f2b3dd8f33ff3ad6e7586f4c670d6', - 'openmp': '30662b632f5556c59ee9215c1309f61de50b3ea8e89dcc28ba9a9494bba238ff', - 'polly': '919810d3249f4ae79d084746b9527367df18412f30fe039addbf941861c8534b', - 'libcxx': '9b342625ba2f4e65b52764ab2061e116c0337db2179c6bce7f9a0d70c52134f0', - 'libcxxabi': '9b45c759ff397512eae4d938ff82827b1bd7ccba49920777e5b5e460baeb245f', - 'cfe': '550212711c752697d2f82c648714a7221b1207fd9441543ff4aa9e3be45bba55', - 'clang-tools-extra': '937c5a8c8c43bc185e4805144744799e524059cac877a44d9063926cd7a19dbe', - 'lldb': '7ff6d8fee49977d25b3b69be7d22937b92592c7609cf283ed0dcf9e5cd80aa32', - 'lld': 'fbcf47c5e543f4cdac6bb9bbbc6327ff24217cd7eafc5571549ad6d237287f9c', - 'libunwind': '50aee87717421e70450f1e093c6cd9a27f2b111025e1e08d64d5ace36e338a9c' - } - }, - { - 'version': '6.0.1', - 'sha256': 'b6d6c324f9c71494c0ccaf3dac1f16236d970002b42bb24a6c9e1634f7d0f4e2', - 'resources': { - 'compiler-rt': 'f4cd1e15e7d5cb708f9931d4844524e4904867240c306b06a4287b22ac1c99b9', - 'openmp': '66afca2b308351b180136cf899a3b22865af1a775efaf74dc8a10c96d4721c5a', - 'polly': 'e7765fdf6c8c102b9996dbb46e8b3abc41396032ae2315550610cf5a1ecf4ecc', - 'libcxx': '7654fbc810a03860e6f01a54c2297a0b9efb04c0b9aa0409251d9bdb3726fc67', - 'libcxxabi': '209f2ec244a8945c891f722e9eda7c54a5a7048401abd62c62199f3064db385f', - 'cfe': '7c243f1485bddfdfedada3cd402ff4792ea82362ff91fbdac2dae67c6026b667', - 'clang-tools-extra': '0d2e3727786437574835b75135f9e36f861932a958d8547ced7e13ebdda115f1', - 'lldb': '6b8573841f2f7b60ffab9715c55dceff4f2a44e5a6d590ac189d20e8e7472714', - 'lld': 'e706745806921cea5c45700e13ebe16d834b5e3c0b7ad83bf6da1f28b0634e11', - 'libunwind': 'a8186c76a16298a0b7b051004d0162032b9b111b857fbd939d71b0930fd91b96' - } - }, - { - 'version': '6.0.0', - 'sha256': '1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408', - 'resources': { - 'compiler-rt': 'd0cc1342cf57e9a8d52f5498da47a3b28d24ac0d39cbc92308781b3ee0cea79a', - 'openmp': '7c0e050d5f7da3b057579fb3ea79ed7dc657c765011b402eb5bbe5663a7c38fc', - 'polly': '47e493a799dca35bc68ca2ceaeed27c5ca09b12241f87f7220b5f5882194f59c', - 'libcxx': '70931a87bde9d358af6cb7869e7535ec6b015f7e6df64def6d2ecdd954040dd9', - 'libcxxabi': '91c6d9c5426306ce28d0627d6a4448e7d164d6a3f64b01cb1d196003b16d641b', - 'cfe': 'e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32', - 'clang-tools-extra': '053b424a4cd34c9335d8918734dd802a8da612d13a26bbb88fcdf524b2d989d2', - 'lldb': '46f54c1d7adcd047d87c0179f7b6fa751614f339f4f87e60abceaa45f414d454', - 'lld': '6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b', - 'libunwind': '256c4ed971191bde42208386c8d39e5143fa4afd098e03bd2c140c878c63f1d6' - } - }, - { - 'version': '5.0.2', - 'sha256': 'd522eda97835a9c75f0b88ddc81437e5edbb87dc2740686cb8647763855c2b3c', - 'resources': { - 'compiler-rt': '3efe9ddf3f69e0c0a45cde57ee93911f36f3ab5f2a7f6ab8c8efb3db9b24ed46', - 'openmp': '39ca542c540608d95d3299a474836a7b5f8377bcc5a68493379872738c28565c', - 'polly': 'dda84e48b2195768c4ef25893edd5eeca731bed7e80a2376119dfbc3350e91b8', - 'libcxx': '6edf88e913175536e1182058753fff2365e388e017a9ec7427feb9929c52e298', - 'libcxxabi': '1bbf9bf2c92a4d627dd7bb7a15166acecae924b19898dc0573244f9d533a978a', - 'cfe': 'fa9ce9724abdb68f166deea0af1f71ca0dfa9af8f7e1261f2cae63c280282800', - 'clang-tools-extra': 'a3362a854ba4a60336b21a95612f647f4b6de0afd88858f2420e41c5a31b0b05', - 'lldb': '78ba05326249b4d7577db56d16b2a7ffea43fc51e8592b0a1ac4d2ef87514216', - 'lld': '46456d72ec411c6d5327ad3fea1358296f0dfe508caf1fa63ce4184f652e07aa', - 'libunwind': '706e43c69c7be0fdeb55ebdf653cf47ca77e471d1584f1dbf12a568a93df9928', - } - }, - { - 'version': '5.0.1', - 'sha256': '5fa7489fc0225b11821cab0362f5813a05f2bcf2533e8a4ea9c9c860168807b0', - 'resources': { - 'compiler-rt': '4edd1417f457a9b3f0eb88082530490edf3cf6a7335cdce8ecbc5d3e16a895da', - 'openmp': 'adb635cdd2f9f828351b1e13d892480c657fb12500e69c70e007bddf0fca2653', - 'polly': '9dd52b17c07054aa8998fc6667d41ae921430ef63fa20ae130037136fdacf36e', - 'libcxx': 'fa8f99dd2bde109daa3276d529851a3bce5718d46ce1c5d0806f46caa3e57c00', - 'libcxxabi': '5a25152cb7f21e3c223ad36a1022faeb8a5ac27c9e75936a5ae2d3ac48f6e854', - 'cfe': '135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff', - 'clang-tools-extra': '9aada1f9d673226846c3399d13fab6bba4bfd38bcfe8def5ee7b0ec24f8cd225', - 'lldb': 'b7c1c9e67975ca219089a3a6a9c77c2d102cead2dc38264f2524aa3326da376a', - 'lld': 'd5b36c0005824f07ab093616bdff247f3da817cae2c51371e1d1473af717d895', - 'libunwind': '6bbfbf6679435b858bd74bdf080386d084a76dfbf233fb6e47b2c28e0872d0fe', - } - }, - { - 'version': '5.0.0', - 'sha256': 'e35dcbae6084adcf4abb32514127c5eabd7d63b733852ccdb31e06f1373136da', - 'resources': { - 'compiler-rt': 'd5ad5266462134a482b381f1f8115b6cad3473741b3bb7d1acc7f69fd0f0c0b3', - 'openmp': 'c0ef081b05e0725a04e8711d9ecea2e90d6c3fbb1622845336d3d095d0a3f7c5', - 'polly': '44694254a2b105cec13ce0560f207e8552e6116c181b8d21bda728559cf67042', - 'libcxx': 'eae5981e9a21ef0decfcac80a1af584ddb064a32805f95a57c7c83a5eb28c9b1', - 'libcxxabi': '176918c7eb22245c3a5c56ef055e4d69f5345b4a98833e0e8cb1a19cab6b8911', - 'cfe': '019f23c2192df793ac746595e94a403908749f8e0c484b403476d2611dd20970', - 'clang-tools-extra': '87d078b959c4a6e5ff9fd137c2f477cadb1245f93812512996f73986a6d973c6', - 'lldb': 'c0a0ca32105e9881d86b7ca886220147e686edc97fdb9f3657c6659dc6568b7d', - 'lld': '399a7920a5278d42c46a7bf7e4191820ec2301457a7d0d4fcc9a4ac05dd53897', - 'libunwind': '9a70e2333d54f97760623d89512c4831d6af29e78b77a33d824413ce98587f6f', - } - }, - { - 'version': '4.0.1', - 'sha256': 'da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51', - 'resources': { - 'compiler-rt': 'a3c87794334887b93b7a766c507244a7cdcce1d48b2e9249fc9a94f2c3beb440', - 'openmp': 'ec693b170e0600daa7b372240a06e66341ace790d89eaf4a843e8d56d5f4ada4', - 'polly': 'b443bb9617d776a7d05970e5818aa49aa2adfb2670047be8e9f242f58e84f01a', - 'libcxx': '520a1171f272c9ff82f324d5d89accadcec9bc9f3c78de11f5575cdb99accc4c', - 'libcxxabi': '8f08178989a06c66cd19e771ff9d8ca526dd4a23d1382d63e416c04ea9fa1b33', - 'cfe': '61738a735852c23c3bdbe52d035488cdb2083013f384d67c1ba36fabebd8769b', - 'clang-tools-extra': '35d1e64efc108076acbe7392566a52c35df9ec19778eb9eb12245fc7d8b915b6', - 'lldb': '8432d2dfd86044a0fc21713e0b5c1d98e1d8aad863cf67562879f47f841ac47b', - 'lld': '63ce10e533276ca353941ce5ab5cc8e8dcd99dbdd9c4fa49f344a212f29d36ed', - 'libunwind': '3b072e33b764b4f9b5172698e080886d1f4d606531ab227772a7fc08d6a92555', - } - }, - { - 'version': '4.0.0', - 'sha256': '8d10511df96e73b8ff9e7abbfb4d4d432edbdbe965f1f4f07afaf370b8a533be', - 'resources': { - 'compiler-rt': 'd3f25b23bef24c305137e6b44f7e81c51bbec764c119e01512a9bd2330be3115', - 'openmp': 'db55d85a7bb289804dc42fc5c8e35ca24dfc3885782261b675a194fd7e206e26', - 'polly': '27a5dbf95e8aa9e0bbe3d6c5d1e83c92414d734357aa0d6c16020a65dc4dcd97', - 'libcxx': '4f4d33c4ad69bf9e360eebe6b29b7b19486948b1a41decf89d4adec12473cf96', - 'libcxxabi': 'dca9cb619662ad2d3a0d685c4366078345247218c3702dd35bcaaa23f63481d8', - 'cfe': 'cea5f88ebddb30e296ca89130c83b9d46c2d833685e2912303c828054c4dc98a', - 'clang-tools-extra': '41b7d37eb128fd362ab3431be5244cf50325bb3bb153895735c5bacede647c99', - 'lldb': '2dbd8f05c662c1c9f11270fc9d0c63b419ddc988095e0ad107ed911cf882033d', - 'lld': '33e06457b9ce0563c89b11ccc7ccabf9cff71b83571985a5bf8684c9150e7502', - 'libunwind': '0755efa9f969373d4d543123bbed4b3f9a835f6302875c1379c5745857725973', - } - }, - { - 'version': '3.9.1', - 'sha256': '1fd90354b9cf19232e8f168faf2220e79be555df3aa743242700879e8fd329ee', - 'resources': { - 'compiler-rt': 'd30967b1a5fa51a2503474aacc913e69fd05ae862d37bf310088955bdb13ec99', - 'openmp': 'd23b324e422c0d5f3d64bae5f550ff1132c37a070e43c7ca93991676c86c7766', - 'polly': '9ba5e61fc7bf8c7435f64e2629e0810c9b1d1b03aa5b5605b780d0e177b4cb46', - 'libcxx': '25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461', - 'libcxxabi': '920d8be32e6f5574a3fb293f93a31225eeba15086820fcb942155bf50dc029e2', - 'cfe': 'e6c4cebb96dee827fa0470af313dff265af391cb6da8d429842ef208c8f25e63', - 'clang-tools-extra': '29a5b65bdeff7767782d4427c7c64d54c3a8684bc6b217b74a70e575e4813635', - 'lldb': '7e3311b2a1f80f4d3426e09f9459d079cab4d698258667e50a46dccbaaa460fc', - 'lld': '48e128fabb2ddaee64ecb8935f7ac315b6e68106bc48aeaf655d179c65d87f34', - 'libunwind': '0b0bc73264d7ab77d384f8a7498729e3c4da8ffee00e1c85ad02a2f85e91f0e6', - } - }, - { - 'version': '3.9.0', - 'sha256': '66c73179da42cee1386371641241f79ded250e117a79f571bbd69e56daa48948', - 'resources': { - 'compiler-rt': 'e0e5224fcd5740b61e416c549dd3dcda92f10c524216c1edb5e979e42078a59a', - 'openmp': 'df88f90d7e5b5e9525a35fa2e2b93cbbb83c4882f91df494e87ee3ceddacac91', - 'polly': 'ef0dd25010099baad84597cf150b543c84feac2574d055d6780463d5de8cd97e', - 'libcxx': 'd0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06', - 'libcxxabi': 'b037a92717856882e05df57221e087d7d595a2ae9f170f7bc1a23ec7a92c8019', - 'cfe': '7596a7c7d9376d0c89e60028fe1ceb4d3e535e8ea8b89e0eb094e0dcb3183d28', - 'clang-tools-extra': '5b7aec46ec8e999ec683c87ad744082e1133781ee4b01905b4bdae5d20785f14', - 'lldb': '61280e07411e3f2b4cca0067412b39c16b0a9edd19d304d3fc90249899d12384', - 'lld': '986e8150ec5f457469a20666628bf634a5ca992a53e157f3b69dbc35056b32d9', - 'libunwind': '66675ddec5ba0d36689757da6008cb2596ee1a9067f4f598d89ce5a3b43f4c2b', - } - }, - { - 'version': '3.8.1', - 'sha256': '6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9', - 'resources': { - 'compiler-rt': '0df011dae14d8700499dfc961602ee0a9572fef926202ade5dcdfe7858411e5c', - 'openmp': '68fcde6ef34e0275884a2de3450a31e931caf1d6fda8606ef14f89c4123617dc', - 'polly': '453c27e1581614bb3b6351bf5a2da2939563ea9d1de99c420f85ca8d87b928a2', - 'libcxx': '77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc', - 'libcxxabi': 'e1b55f7be3fad746bdd3025f43e42d429fb6194aac5919c2be17c4a06314dae1', - 'cfe': '4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf', - 'clang-tools-extra': '664a5c60220de9c290bf2a5b03d902ab731a4f95fe73a00856175ead494ec396', - 'lldb': '349148116a47e39dcb5d5042f10d8a6357d2c865034563283ca512f81cdce8a3', - 'lld': '2bd9be8bb18d82f7f59e31ea33b4e58387dbdef0bc11d5c9fcd5ce9a4b16dc00', - 'libunwind': '21e58ce09a5982255ecf86b86359179ddb0be4f8f284a95be14201df90e48453', - } - }, - { - 'version': '3.8.0', - 'sha256': '555b028e9ee0f6445ff8f949ea10e9cd8be0d084840e21fbbe1d31d51fc06e46', - 'resources': { - 'compiler-rt': 'c8d3387e55f229543dac1941769120f24dc50183150bf19d1b070d53d29d56b0', - 'openmp': '92510e3f62e3de955e3a0b6708cebee1ca344d92fb02369cba5fdd5c68f773a0', - 'polly': '84cbabc0b6a10a664797907d291b6955d5ea61aef04e3f3bb464e42374d1d1f2', - 'libcxx': '36804511b940bc8a7cefc7cb391a6b28f5e3f53f6372965642020db91174237b', - 'libcxxabi': 'c5ee0871aff6ec741380c4899007a7d97f0b791c81df69d25b744eebc5cee504', - 'cfe': '04149236de03cf05232d68eb7cb9c50f03062e339b68f4f8a03b650a11536cf9', - 'clang-tools-extra': 'afbda810106a6e64444bc164b921be928af46829117c95b996f2678ce4cb1ec4', - 'lldb': 'e3f68f44147df0433e7989bf6ed1c58ff28d7c68b9c47553cb9915f744785a35', - 'lld': '94704dda228c9f75f4403051085001440b458501ec97192eee06e8e67f7f9f0c', - 'libunwind': 'af3eaf39ecdc3b9e89863fb62e1aa3c135cfde7e9415424e4e396d7486a9422b', - } - }, - { - 'version': '3.7.1', - 'sha256': 'be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5', - 'resources': { - 'compiler-rt': '9d4769e4a927d3824bcb7a9c82b01e307c68588e6de4e7f04ab82d82c5af8181', - 'openmp': '9a702e20c247014f6de8c45b738c6ea586eca0559304520f565ac9a7cba4bf9a', - 'polly': 'ce9273ad315e1904fd35dc64ac4375fd592f3c296252ab1d163b9ff593ec3542', - 'libcxx': '357fbd4288ce99733ba06ae2bec6f503413d258aeebaab8b6a791201e6f7f144', - 'libcxxabi': 'a47faaed90f577da8ca3b5f044be9458d354a53fab03003a44085a912b73ab2a', - 'cfe': '56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674', - 'clang-tools-extra': '4a91edaccad1ce984c7c49a4a87db186b7f7b21267b2b03bcf4bd7820715bc6b', - 'lldb': '9a0bc315ef55f44c98cdf92d064df0847f453ed156dd0ef6a87e04f5fd6a0e01', - 'lld': 'a929cb44b45e3181a0ad02d8c9df1d3fc71e001139455c6805f3abf2835ef3ac', - 'libunwind': 'b69f445253c2e5d3c8be6abe379372a52d223e0e5a5520b79983866c03f949fb', - } - }, - { - 'version': '3.7.0', - 'sha256': 'ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153', - 'resources': { - 'compiler-rt': '227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b', - 'openmp': '8d8a224e5689596a35652fda87e4be29853c4b85fbc7a6562019badfad779f2a', - 'polly': '3e5f3f4dc141c7d25b36b910d48c7da74ecc92f10cea5b568c909623d6067edf', - 'libcxx': 'c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e', - 'libcxxabi': '48b074fd334958b2d8bab893c897a0c8258328782cdec2d229c7bce432b49beb', - 'cfe': '4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc', - 'clang-tools-extra': '8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd', - 'lldb': 'f4d7505bc111044eaa4033af012221e492938405b62522b8e3e354c20c4b71e9', - 'lld': 'ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed', - 'libunwind': '6a600f30b9f3a54a1faf8c2dfd12522a0c90eb65f1aad63fec540aa27bcaca5b', - } - }, - { - 'version': '3.6.2', - 'sha256': 'f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94', - 'resources': { - 'compiler-rt': '0f2ff37d80a64575fecd8cf0d5c50f7ac1f837ddf700d1855412bb7547431d87', - 'openmp': '9d9640e7fc76ef531b5e919d79ee241cb35aa599fd1cac97c52ca49c97778f8e', - 'libcxx': '52f3d452f48209c9df1792158fdbd7f3e98ed9bca8ebb51fcd524f67437c8b81', - 'libcxxabi': '6fb48ce5a514686b9b75e73e59869f782ed374a86d71be8423372e4b3329b09b', - 'cfe': 'ae9180466a23acb426d12444d866b266ff2289b266064d362462e44f8d4699f3', - 'clang-tools-extra': '6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb', - 'lldb': '940dc96b64919b7dbf32c37e0e1d1fc88cc18e1d4b3acf1e7dfe5a46eb6523a9', - 'lld': '43f553c115563600577764262f1f2fac3740f0c639750f81e125963c90030b33', - } - }, - { - 'version': '3.5.1', - 'sha256': 'bf3275d2d7890015c8d8f5e6f4f882f8cf3bf51967297ebe74111d6d8b53be15', - 'resources': { - 'compiler-rt': 'adf4b526f33e681aff5961f0821f5b514d3fc375410008842640b56a2e6a837a', - 'openmp': '43ea73eeac3045127cf01b496d714b559e42311043480682049e8fea243eac55', - 'libcxx': 'a16d0ae0c0cf2c8cebb94fafcb907022cd4f8579ebac99a4c9919990a37ad475', - 'libcxxabi': '7ff14fdce0ed7bfcc532c627c7a2dc7876dd8a3d788b2aa201d3bbdc443d06a3', - 'cfe': '6773f3f9cf815631cc7e779ec134ddd228dc8e9a250e1ea3a910610c59eb8f5c', - 'clang-tools-extra': 'e8d011250389cfc36eb51557ca25ae66ab08173e8d53536a0747356105d72906', - 'lldb': 'e8b948c6c85cd61bd9a48361959401b9c631fa257c0118db26697c5d57460e13', - 'lld': 'f29f684723effd204b6fe96edb1bf2f66f0f81297230bc92b8cc514f7a24236f', - } - }, - ] - - # Flang uses its own fork of clang (renamed flang-driver). - flang_resources = { - 'flang-driver': { - 'git': 'https://github.com/flang-compiler/flang-driver.git', - 'destination': 'tools', - 'placement': 'clang' - }, - 'openmp': { - 'git': 'https://github.com/llvm-mirror/openmp.git', - 'destination': 'projects', - 'placement': 'openmp' - } - } - - flang_releases = [ - { - 'version': 'develop', - 'branch': 'release_60', - 'resources': { - 'flang-driver': 'release_60', - 'openmp': 'release_60', - } - }, - { - 'version': '20180921', - 'commit': 'd8b30082648dc869eba68f9e539605f437d7760c', - 'resources': { - 'flang-driver': 'dd7587310ae498c22514a33e1a2546b86af9cf25', - 'openmp': 'd5aa29cb3bcf51289d326b4e565613db8aff65ef' - } - }, - { - 'version': 'ppc64le-20180921', - 'commit': 'd8b30082648dc869eba68f9e539605f437d7760c', - 'resources': { - 'flang-driver': 'dd7587310ae498c22514a33e1a2546b86af9cf25', - 'openmp': '29b515e1e6d26b5b0d32d47d28dcdb4b8a11470d' - } - }, - { - 'version': '20180612', - 'commit': 'f26a3ece4ccd68a52f5aa970ec42837ee0743296', - 'resources': { - 'flang-driver': 'e079fa68cb35a53c88c41a1939f90b94d539e984', - 'openmp': 'd5aa29cb3bcf51289d326b4e565613db8aff65ef' - } - }, - { - 'version': 'ppc64le-20180612', - 'commit': '4158932a46eb2f06a166f22a4a52ae48c7d2949e', - 'resources': { - 'flang-driver': '50c1828a134d5a0f1553b355bf0946db48b0aa6d', - 'openmp': '29b515e1e6d26b5b0d32d47d28dcdb4b8a11470d' - } - } - ] - - for release in releases: - if release['version'] == 'develop': - version(release['version'], svn=release['repo']) - - for rname, repo in release['resources'].items(): - resource(name=rname, - svn=repo, - destination=resources[rname]['destination'], - when='@%s%s' % (release['version'], - resources[rname].get('variant', "")), - placement=resources[rname].get('placement', None)) - else: - version(release['version'], release['sha256'], url=llvm_url % release) - - for rname, sha256 in release['resources'].items(): - resource(name=rname, - url=resources[rname]['url'] % release, - sha256=sha256, - destination=resources[rname]['destination'], - when='@%s%s' % (release['version'], - resources[rname].get('variant', "")), - placement=resources[rname].get('placement', None)) - - for release in flang_releases: - if release['version'] == 'develop': - version('flang-' + release['version'], git=flang_llvm_url, branch=release['branch']) - - for rname, branch in release['resources'].items(): - flang_resource = flang_resources[rname] - resource(name=rname, - git=flang_resource['git'], - branch=branch, - destination=flang_resource['destination'], - placement=flang_resource['placement'], - when='@flang-' + release['version']) - - else: - version('flang-' + release['version'], git=flang_llvm_url, commit=release['commit']) - - for rname, commit in release['resources'].items(): - flang_resource = flang_resources[rname] - resource(name=rname, - git=flang_resource['git'], - commit=commit, - destination=flang_resource['destination'], - placement=flang_resource['placement'], - when='@flang-' + release['version']) + resource(name='flang-llvm', + git='https://github.com/flang-compiler/llvm.git', + branch='release_60', + placement='llvm-flang', + when='llvm@develop+flang') + + resource(name='flang-llvm', + git='https://github.com/flang-compiler/llvm.git', + commit='d8b30082648dc869eba68f9e539605f437d7760c', + placement='llvm-flang', + when='@7.0.1+flang') + + resource(name='flang-llvm', + git='https://github.com/flang-compiler/llvm.git', + commit='f26a3ece4ccd68a52f5aa970ec42837ee0743296', + placement='llvm-flang', + when='@6.0.0+flang') + + resource(name='flang-driver', + git='https://github.com/flang-compiler/flang-driver.git', + branch='release_60', + destination='llvm-flang/tools', + placement='clang', + when='llvm@develop+flang') + + resource(name='flang-driver', + git='https://github.com/flang-compiler/flang-driver.git', + commit='dd7587310ae498c22514a33e1a2546b86af9cf25', + destination='llvm-flang/tools', + placement='clang', + when='@7.0.1+flang') + + resource(name='flang-driver', + git='https://github.com/flang-compiler/flang-driver.git', + commit='e079fa68cb35a53c88c41a1939f90b94d539e984', + destination='llvm-flang/tools', + placement='clang', + when='@6.0.0+flang') + + resource(name='openmp', + git='https://github.com/llvm-mirror/openmp.git', + branch='release_60', + destination='llvm-flang/projects', + placement='openmp', + when='@develop+flang') + + resource(name='openmp', + git='https://github.com/llvm-mirror/openmp.git', + commit='d5aa29cb3bcf51289d326b4e565613db8aff65ef', + destination='llvm-flang/projects', + placement='openmp', + when='@6:7.0.1+flang') conflicts('+clang_extra', when='~clang') conflicts('+lldb', when='~clang') @@ -597,12 +182,30 @@ class Llvm(CMakePackage): # OMP TSAN exists in > 5.x conflicts('+omp_tsan', when='@:5.99') + # +flang conflicts other variants + conflicts('+gold', when='+flang') + conflicts('+lldb', when='+flang') + conflicts('+lld', when='+flang') + conflicts('+copiler-rt', when='+flang') + conflicts('+libcxx', when='+flang') + conflicts('+polly', when='+flang') + conflicts('+internal_unwind', when='+flang') + # Github issue #4986 patch('llvm_gcc7.patch', when='@4.0.0:4.0.1+lldb %gcc@7.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.patch', when='@7:8+libcxx') + patch('constexpr_longdouble.patch', when='@6:8+libcxx') + patch('constexpr_longdouble_9.0.patch', when='@9+libcxx') + + # Backport from llvm master; see + # https://bugs.llvm.org/show_bug.cgi?id=38233 + # for a bug report about this problem in llvm master. + patch('llvm_py37.patch', when='@4:6 ^python@3.7:') + + # https://bugs.llvm.org/show_bug.cgi?id=39696 + patch('thread-p9.patch', when='@develop+libcxx') @run_before('cmake') def check_darwin_lldb_codesign_requirement(self): @@ -619,17 +222,26 @@ class Llvm(CMakePackage): except ProcessError: explanation = ('The "lldb_codesign" identity must be available' - ' to build LLVM with LLDB. See https://github.com/' - 'jevinskie/llvm-lldb/blob/master/docs/code-signing' - '.txt for details on how to create this identity.') + ' to build LLVM with LLDB. See https://lldb.llvm' + '.org/resources/build.html#code-signing-on-macos' + 'for details on how to create this identity.') raise RuntimeError(explanation) - def setup_environment(self, spack_env, run_env): - spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) + 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: - run_env.set('CC', join_path(self.spec.prefix.bin, 'clang')) - run_env.set('CXX', join_path(self.spec.prefix.bin, 'clang++')) + env.set('CC', join_path(self.spec.prefix.bin, 'clang')) + env.set('CXX', join_path(self.spec.prefix.bin, 'clang++')) + + # When building flang we do not use the mono repo + @property + def root_cmakelists_dir(self): + if '+flang' in self.spec: + return 'llvm-flang' + else: + return 'llvm' def cmake_args(self): spec = self.spec @@ -641,6 +253,8 @@ class Llvm(CMakePackage): '-DPYTHON_EXECUTABLE:PATH={0}'.format(spec['python'].command.path), ] + projects = [] + # TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant # (see TODO above), and set the paths if enabled. cmake_args.extend([ @@ -649,36 +263,33 @@ class Llvm(CMakePackage): '-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE', '-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE']) + if '+python' in spec and '+lldb' in spec and spec.satisfies('@5.0.0:'): + cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=TRUE') + if '+gold' in spec: cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + spec['binutils'].prefix.include) - if '+polly' in spec: - cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON') - else: - cmake_args.extend(['-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF', - '-DLLVM_TOOL_POLLY_BUILD:Bool=OFF', - '-DLLVM_POLLY_BUILD:Bool=OFF', - '-DLLVM_POLLY_LINK_INTO_TOOLS:Bool=OFF']) - if '+python' in spec and '+lldb' in spec and spec.satisfies('@5.0.0:'): - cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=TRUE') - if '+clang' not in spec: - cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF') - if '+lldb' not in spec: - cmake_args.extend(['-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF', - '-DLLVM_TOOL_LLDB_BUILD:Bool=OFF']) - if '+lld' not in spec: - cmake_args.append('-DLLVM_TOOL_LLD_BUILD:Bool=OFF') - if '+internal_unwind' not in spec: - cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF') + if '+clang' in spec: + projects.append('clang') + projects.append('clang-tools-extra') + projects.append('openmp') + 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: - if spec.satisfies('@3.9.0:'): + projects.append('libcxx') + projects.append('libcxxabi') + if spec.satisfies('@3.9.0:') and '+flang' not in spec: cmake_args.append('-DCLANG_DEFAULT_CXX_STDLIB=libc++') - else: - cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF') - cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF') - if '+compiler-rt' not in spec: - cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF') + 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') @@ -690,7 +301,7 @@ class Llvm(CMakePackage): targets = ['NVPTX', 'AMDGPU'] if (spec.version < Version('3.9.0') - and spec.version[0] != 'flang'): + and '+flang' not in spec): # Starting in 3.9.0 CppBackend is no longer a target (see # LLVM_ALL_TARGETS in llvm's top-level CMakeLists.txt for # the complete list of targets) @@ -724,8 +335,16 @@ class Llvm(CMakePackage): gcc_prefix = ancestor(self.compiler.cc, 2) cmake_args.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix) - if spec.satisfies('@4.0.0:') and spec.satisfies('platform=linux'): - cmake_args.append('-DCMAKE_BUILD_WITH_INSTALL_RPATH=1') + if spec.satisfies('@4.0.0:'): + if spec.satisfies('platform=cray') or \ + spec.satisfies('platform=linux'): + cmake_args.append('-DCMAKE_BUILD_WITH_INSTALL_RPATH=1') + + if '+flang' not in spec: + # Semicolon seperated list of projects to enable + cmake_args.append( + '-DLLVM_ENABLE_PROJECTS:STRING={0}'.format(';'.join(projects))) + return cmake_args @run_before('build') diff --git a/var/spack/repos/builtin/packages/llvm/thread-p9.patch b/var/spack/repos/builtin/packages/llvm/thread-p9.patch new file mode 100644 index 0000000000..140473a850 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/thread-p9.patch @@ -0,0 +1,16 @@ +diff --git a/libcxx/include/thread b/libcxx/include/thread +index 02da703..d1677a1 100644 +--- a/projects/libcxx/include/thread ++++ b/projects/libcxx/include/thread +@@ -368,9 +368,9 @@ sleep_for(const chrono::duration<_Rep, _Period>& __d) + { + #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 + _LIBCPP_CONSTEXPR duration<long double> _Max = duration<long double>(ULLONG_MAX/1000000000ULL) ; ++#else ++ _LIBCPP_CONSTEXPR duration<long double> _Max = nanoseconds::max(); + #endif + nanoseconds __ns; + if (__d < _Max) diff --git a/var/spack/repos/builtin/packages/lm-sensors/package.py b/var/spack/repos/builtin/packages/lm-sensors/package.py index 39e2f2b75d..d3da135250 100644 --- a/var/spack/repos/builtin/packages/lm-sensors/package.py +++ b/var/spack/repos/builtin/packages/lm-sensors/package.py @@ -14,6 +14,8 @@ class LmSensors(MakefilePackage): url = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz" maintainers = ['G-Ragghianti'] + version('3-6-0', sha256='0591f9fa0339f0d15e75326d0365871c2d4e2ed8aa1ff759b3a55d3734b7d197') + version('3-5-0', sha256='f671c1d63a4cd8581b3a4a775fd7864a740b15ad046fe92038bcff5c5134d7e0') version('3-4-0', sha256='e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e') version('3-3-5', sha256='e3802f80785c54822027a8c187b10066ba685ec5e997fd02c1d29761ea9c83d4') version('3-3-4', sha256='1c586684b39292b5fabaf5a2701241885ea6483e5e15265e1f501e1b639fdd86') @@ -32,3 +34,8 @@ class LmSensors(MakefilePackage): def install(self, spec, prefix): make('install', 'PREFIX={0}'.format(prefix), 'ETCDIR={0}/etc'.format(prefix)) + + @property + def libs(self): + return find_libraries( + 'libsensors', root=self.prefix, shared=True, recursive=True) diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py index 697eb9c1bc..7dd6e80395 100644 --- a/var/spack/repos/builtin/packages/lmod/package.py +++ b/var/spack/repos/builtin/packages/lmod/package.py @@ -48,10 +48,10 @@ class Lmod(AutotoolsPackage): parallel = False - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): stage_lua_path = join_path( self.stage.source_path, 'src', '?.lua') - spack_env.append_path('LUA_PATH', stage_lua_path.format( + env.append_path('LUA_PATH', stage_lua_path.format( version=self.version), separator=';') def patch(self): diff --git a/var/spack/repos/builtin/packages/logstash/package.py b/var/spack/repos/builtin/packages/logstash/package.py new file mode 100644 index 0000000000..47c80242d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/logstash/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Logstash(Package): + """ + Logstash is part of the Elastic Stack along with Beats, Elasticsearch + and Kibana. Logstash is a server-side data processing pipeline that + ingests data from a multitude of sources simultaneously, transforms it, + and then sends it to your favorite "stash. + """ + + homepage = "https://artifacts.elastic.co" + url = "https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz" + + version('6.6.0', sha256='5a9a8b9942631e9d4c3dfb8d47075276e8c2cff343841145550cc0c1cfe7bba7') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/lsf/package.py b/var/spack/repos/builtin/packages/lsf/package.py index 7c8827c0bf..b257274c3a 100644 --- a/var/spack/repos/builtin/packages/lsf/package.py +++ b/var/spack/repos/builtin/packages/lsf/package.py @@ -11,7 +11,6 @@ class Lsf(Package): """IBM Platform LSF is a batch scheduler for HPC environments""" homepage = "https://www.ibm.com/marketplace/hpc-workload-management" - url = "https://www.ibm.com/marketplace/hpc-workload-management" # LSF needs to be added as an external package to SPACK. For this, the # config file packages.yaml needs to be adjusted: diff --git a/var/spack/repos/builtin/packages/lshw/package.py b/var/spack/repos/builtin/packages/lshw/package.py new file mode 100644 index 0000000000..8e938542a5 --- /dev/null +++ b/var/spack/repos/builtin/packages/lshw/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Lshw(MakefilePackage): + """ + lshw is a small tool to provide detailed information on the + hardware configuration of the machine. It can report exact memory + configuration, firmware version, mainboard configuration, CPU version + and speed, cache configuration, bus speed, etc. on DMI-capable x86 or + EFI (IA-64) systems and on some ARM and PowerPC machines. + """ + + homepage = "https://github.com/lyonel/lshw" + url = "https://github.com/lyonel/lshw/archive/B.02.18.tar.gz" + + version('02.18', sha256='aa8cb2eebf36e9e46dfc227f24784aa8c87181ec96e57ee6c455da8a0ce4fa77') + version('02.17', sha256='0bb76c7df7733dc9b80d5d35f9d9752409ddb506e190453a2cc960461de5ddeb') + version('02.16', sha256='58a7731d204791dd33db5eb3fde9808d1235283e069e6c33a193637ccec27b3e') + version('02.15', sha256='33c51ba0554d4bcd8ff9a67e5971a63b9ddd58213e2901a09000815376bc61b9') + + def install(self, spec, prefix): + make('install') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/lsof/package.py b/var/spack/repos/builtin/packages/lsof/package.py index 8bc2c8897a..f2f202457b 100644 --- a/var/spack/repos/builtin/packages/lsof/package.py +++ b/var/spack/repos/builtin/packages/lsof/package.py @@ -10,9 +10,12 @@ class Lsof(Package): """Lsof displays information about files open to Unix processes.""" homepage = "https://people.freebsd.org/~abe/" - url = "https://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_4.89.tar.gz" + url = "https://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_4.91.tar.gz" + list_url = "https://www.mirrorservice.org/sites/lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD/" - version('4.89', sha256='ff4ac555966b587f06338475c8fcc0f41402b4c8e970e730f6f83b62be8b5c0d') + version('4.91', sha256='3ca57887470fdf223a8e8aae4559cd3a26787bea93b94336c90ee8062e29e352') + version('4.90', sha256='27794d3d6499fd5f0f08710b4518b33aed8a4580951d1adf27f6c25898685c9e') + version('4.89', sha256='5d08da7ebe049c9d9a6472d6afb81aa5af54c4733a3f8822cbc22b57867633c9') def install(self, spec, prefix): tar = which('tar') diff --git a/var/spack/repos/builtin/packages/ltp/package.py b/var/spack/repos/builtin/packages/ltp/package.py new file mode 100644 index 0000000000..ac97b616f5 --- /dev/null +++ b/var/spack/repos/builtin/packages/ltp/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Ltp(AutotoolsPackage): + """Ltp is a joint project started by SGI, developed and maintained by IBM, + Cisco, Fujitsu, SUSE, Red Hat and others, that has a goal to deliver + test suites to the open source community that validate the reliability, + robustness,and stability of Linux. The LTP testsuite contains a collection + of tools for testing the Linux kernel and related features.""" + + homepage = "https://github.com/linux-test-project/ltp" + url = "https://github.com/linux-test-project/ltp/archive/20190517.tar.gz" + + version('20190930', sha256='eca11dbe11a61f3035561a2aa272d578ca9380563440f9ba876c0c4755a42533') + version('20190517', sha256='538175fff2d6c9d69748b2d4afcf5ac43f7300456f839fa7b5b101c7ad447af7') + + 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/lua-bitlib/package.py b/var/spack/repos/builtin/packages/lua-bitlib/package.py index ca5d20764f..cf05980704 100644 --- a/var/spack/repos/builtin/packages/lua-bitlib/package.py +++ b/var/spack/repos/builtin/packages/lua-bitlib/package.py @@ -14,8 +14,7 @@ class LuaBitlib(Package): homepage = "http://luaforge.net/projects/bitlib" url = "https://luarocks.org/bitlib-23-2.src.rock" - version('23', sha256='fe226edc2808162e67418e6b2c98befc0ed25a489ecffc6974fa153f951c0c34', - url="https://luarocks.org/bitlib-23-2.src.rock", + version('23-2', sha256='fe226edc2808162e67418e6b2c98befc0ed25a489ecffc6974fa153f951c0c34', expand=False) extends('lua') diff --git a/var/spack/repos/builtin/packages/lua-lpeg/package.py b/var/spack/repos/builtin/packages/lua-lpeg/package.py index 8d6d35d1ff..73f9d2e4c6 100644 --- a/var/spack/repos/builtin/packages/lua-lpeg/package.py +++ b/var/spack/repos/builtin/packages/lua-lpeg/package.py @@ -13,8 +13,7 @@ class LuaLpeg(Package): homepage = "http://www.inf.puc-rio.br/~roberto/lpeg/" url = "https://luarocks.org/manifests/luarocks/lpeg-0.12-1.src.rock" - version('0.12.1', sha256='3962e8d695d0f9095c9453f2a42f9f1a89fb94db9b0c3bf22934c1e8a3b0ef5a', - url='https://luarocks.org/manifests/luarocks/lpeg-0.12-1.src.rock', + version('0.12-1', sha256='3962e8d695d0f9095c9453f2a42f9f1a89fb94db9b0c3bf22934c1e8a3b0ef5a', expand=False) extends("lua") diff --git a/var/spack/repos/builtin/packages/lua-jit/package.py b/var/spack/repos/builtin/packages/lua-luajit/package.py index a0f8e2b88d..552096d716 100644 --- a/var/spack/repos/builtin/packages/lua-jit/package.py +++ b/var/spack/repos/builtin/packages/lua-luajit/package.py @@ -7,7 +7,7 @@ import os from spack import * -class LuaJit(Package): +class LuaLuajit(Package): """Flast flexible JITed lua""" homepage = "http://www.luajit.org" url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz" diff --git a/var/spack/repos/builtin/packages/lua-mpack/package.py b/var/spack/repos/builtin/packages/lua-mpack/package.py index 777ff19e18..f332aba1e1 100644 --- a/var/spack/repos/builtin/packages/lua-mpack/package.py +++ b/var/spack/repos/builtin/packages/lua-mpack/package.py @@ -15,8 +15,7 @@ class LuaMpack(Package): depends_on('msgpack-c') - version('1.0.0-0', sha256='9068d9d3f407c72a7ea18bc270b0fa90aad60a2f3099fa23d5902dd71ea4cd5f', - url='https://luarocks.org/manifests/tarruda/mpack-1.0.6-0.src.rock', + version('1.0.6-0', sha256='9068d9d3f407c72a7ea18bc270b0fa90aad60a2f3099fa23d5902dd71ea4cd5f', expand=False) extends('lua') diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py index 91528a6e2a..3c27785f33 100644 --- a/var/spack/repos/builtin/packages/lua/package.py +++ b/var/spack/repos/builtin/packages/lua/package.py @@ -94,7 +94,7 @@ class Lua(Package): paths.append(os.path.join(path, '?', 'init.lua')) cpaths.append(os.path.join(path, '?.so')) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def _setup_dependent_env_helper(self, env, dependent_spec): lua_paths = [] for d in dependent_spec.traverse( deptypes=('build', 'run'), deptype_query='run'): @@ -115,38 +115,44 @@ class Lua(Package): os.path.join(self.spec.prefix, self.lua_share_dir)): self.append_paths(lua_patterns, lua_cpatterns, p) - spack_env.set('LUA_PATH', ';'.join(lua_patterns), separator=';') - spack_env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';') + return lua_patterns, lua_cpatterns - # Add LUA to PATH for dependent packages - spack_env.prepend_path('PATH', self.prefix.bin) + def setup_dependent_build_environment(self, env, dependent_spec): + lua_patterns, lua_cpatterns = self._setup_dependent_env_helper( + env, dependent_spec) + env.set('LUA_PATH', ';'.join(lua_patterns), separator=';') + env.set('LUA_CPATH', ';'.join(lua_cpatterns), separator=';') + + def setup_dependent_run_environment(self, env, dependent_spec): # For run time environment set only the path for dependent_spec and # prepend it to LUAPATH + lua_patterns, lua_cpatterns = self._setup_dependent_env_helper( + env, dependent_spec) + if dependent_spec.package.extends(self.spec): - run_env.prepend_path('LUA_PATH', ';'.join(lua_patterns), - separator=';') - run_env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns), - separator=';') + env.prepend_path('LUA_PATH', ';'.join(lua_patterns), separator=';') + env.prepend_path('LUA_CPATH', ';'.join(lua_cpatterns), + separator=';') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path( + def setup_run_environment(self, env): + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_share_dir, '?', 'init.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_PATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?', 'init.lua'), separator=';') - run_env.prepend_path( + env.prepend_path( 'LUA_CPATH', os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'), separator=';') diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index 7b440e845e..4052573360 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -6,11 +6,11 @@ from spack import * -class M4(AutotoolsPackage): +class M4(AutotoolsPackage, GNUMirrorPackage): """GNU M4 is an implementation of the traditional Unix macro processor.""" homepage = "https://www.gnu.org/software/m4/m4.html" - url = "https://ftpmirror.gnu.org/m4/m4-1.4.18.tar.gz" + gnu_mirror_path = "m4/m4-1.4.18.tar.gz" version('1.4.18', sha256='ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab') version('1.4.17', sha256='3ce725133ee552b8b4baca7837fb772940b25e81b2a9dc92537aeaf733538c9e') @@ -19,7 +19,9 @@ class M4(AutotoolsPackage): patch('pgi.patch', when='@1.4.17') # 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='platform_os = highsierra') + patch('secure_snprintf.patch', when='os = highsierra') + patch('secure_snprintf.patch', when='os = mojave') + patch('secure_snprintf.patch', when='os = catalina') # 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') diff --git a/var/spack/repos/builtin/packages/macsio/package.py b/var/spack/repos/builtin/packages/macsio/package.py index d90aad340d..264e41590d 100644 --- a/var/spack/repos/builtin/packages/macsio/package.py +++ b/var/spack/repos/builtin/packages/macsio/package.py @@ -93,6 +93,6 @@ class Macsio(CMakePackage): .format(spec['exodusii'].prefix)) # exodus requires netcdf cmake_args.append("-DWITH_NETCDF_PREFIX={0}" - .format(spec['netcdf'].prefix)) + .format(spec['netcdf-c'].prefix)) return cmake_args diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py index 41363ec0a1..0528b3ed8f 100644 --- a/var/spack/repos/builtin/packages/maker/package.py +++ b/var/spack/repos/builtin/packages/maker/package.py @@ -55,7 +55,7 @@ class Maker(Package): depends_on('perl-inline-c', type=('build', 'run')) depends_on('perl-io-all', type=('build', 'run')) depends_on('perl-io-prompt', type=('build', 'run')) - depends_on('perl-bio-perl', type=('build', 'run')) + depends_on('perl-bioperl', type=('build', 'run')) depends_on('blast-plus') depends_on('snap-korf') depends_on('repeatmasker') diff --git a/var/spack/repos/builtin/packages/mapnik/package.py b/var/spack/repos/builtin/packages/mapnik/package.py index de3e1ffb90..0e0e2ee187 100644 --- a/var/spack/repos/builtin/packages/mapnik/package.py +++ b/var/spack/repos/builtin/packages/mapnik/package.py @@ -29,7 +29,7 @@ class Mapnik(AutotoolsPackage): depends_on('libjpeg') depends_on('libtiff') depends_on('proj') - depends_on('cairo') + depends_on('cairo+pdf') # +pdf needed for mapnik.printing depends_on('postgresql', type=('build', 'link', 'run')) depends_on('gdal', type=('build', 'link', 'run')) depends_on('sqlite+rtree', type=('build', 'link', 'run')) @@ -37,9 +37,9 @@ class Mapnik(AutotoolsPackage): conflicts('%gcc@9.0.0:') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('GDAL_DATA', spec['gdal'].prefix.share.gdal) + env.set('GDAL_DATA', spec['gdal'].prefix.share.gdal) def configure_args(self): return [ 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 e64a34303a..54f6f405e3 100644 --- a/var/spack/repos/builtin/packages/mariadb-c-client/package.py +++ b/var/spack/repos/builtin/packages/mariadb-c-client/package.py @@ -22,6 +22,7 @@ class MariadbCClient(CMakePackage): list_url = "https://downloads.mariadb.com/Connectors/c/" list_depth = 1 + version('3.1.4', sha256='7a1a72fee00e4c28060f96c3efbbf38aabcbbab17903e82fce85a85002565316') version('3.0.9', sha256='7277c0caba6f50b1d07e1d682baf0b962a63e2e6af9e00e09b8dcf36a7858641') version('3.0.8', sha256='2ca368fd79e87e80497a5c9fd18922d8316af8584d87cecb35bd5897cb1efd05') version('3.0.7', sha256='f63883c9360675d111646fba5c97feb0d08e0def5873dd189d78bafbb75fa004') diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py index 42019809c7..774aeebf8c 100644 --- a/var/spack/repos/builtin/packages/mariadb/package.py +++ b/var/spack/repos/builtin/packages/mariadb/package.py @@ -45,7 +45,9 @@ class Mariadb(CMakePackage): depends_on('curl') depends_on('libxml2') depends_on('lz4') - depends_on('zeromq') + depends_on('libzmq') depends_on('msgpack-c') + depends_on('openssl') + depends_on('openssl@:1.0', when='@:10.1') conflicts('%gcc@9.1.0:', when='@:5.5') diff --git a/var/spack/repos/builtin/packages/mathematica/package.py b/var/spack/repos/builtin/packages/mathematica/package.py index c86d98fa75..4fc25436ae 100644 --- a/var/spack/repos/builtin/packages/mathematica/package.py +++ b/var/spack/repos/builtin/packages/mathematica/package.py @@ -20,12 +20,26 @@ class Mathematica(Package): homepage = "https://www.wolfram.com/mathematica/" url = 'file://{0}/Mathematica_12.0.0_LINUX.sh'.format(os.getcwd()) - version('12.0.0', sha256='b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7', + version('12.0.0', + sha256='b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7', expand=False) + # Licensing + license_required = True + license_comment = '#' + license_files = ['Configuration/Licensing/mathpass'] + license_url = 'https://reference.wolfram.com/language/tutorial/RegistrationAndPasswords.html#857035062' + def install(self, spec, prefix): sh = which('sh') sh(self.stage.archive_file, '--', '-auto', '-verbose', '-targetdir={0}'.format(prefix), '-execdir={0}'.format(prefix.bin), '-selinux=y') + # This is what most people would use on a cluster but the installer + # does not symlink it + ws_link_path = os.path.join(prefix.bin, 'wolframscript') + if not os.path.exists(ws_link_path): + ln = which('ln') + ws_path = os.path.join(prefix, 'Executables', 'wolframscript') + ln('-s', ws_path, ws_link_path) diff --git a/var/spack/repos/builtin/packages/mc/package.py b/var/spack/repos/builtin/packages/mc/package.py index e67d10069d..f45d506dab 100644 --- a/var/spack/repos/builtin/packages/mc/package.py +++ b/var/spack/repos/builtin/packages/mc/package.py @@ -21,11 +21,11 @@ class Mc(AutotoolsPackage): depends_on('glib@2.14:') depends_on('libssh2@1.2.5:') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Fix compilation bug on macOS by pretending we don't have utimensat() # https://github.com/MidnightCommander/mc/pull/130 if 'darwin' in self.spec.architecture: - env['ac_cv_func_utimensat'] = 'no' + env.set('ac_cv_func_utimensat', 'no') def configure_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/mefit/package.py b/var/spack/repos/builtin/packages/mefit/package.py index 6eed07134b..bc2ee85547 100644 --- a/var/spack/repos/builtin/packages/mefit/package.py +++ b/var/spack/repos/builtin/packages/mefit/package.py @@ -23,5 +23,5 @@ class Mefit(Package): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/memcached/package.py b/var/spack/repos/builtin/packages/memcached/package.py new file mode 100644 index 0000000000..71105be2bc --- /dev/null +++ b/var/spack/repos/builtin/packages/memcached/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Memcached(AutotoolsPackage): + """ + Memcached is a high performance multithreaded event-based key/value + cache store intended to be used in a distributed system. + """ + + homepage = "https://github.com/memcached/memcached" + url = "https://github.com/memcached/memcached/archive/1.5.20.tar.gz" + + version('1.5.20', sha256='ee93aff47123e0b464e9f007b651b14c89c19e0c20352d8d1c399febbb038cb6') + version('1.5.19', sha256='7af7a2e9b1f468d7f6056f23ce21c04936ce6891f8cb8cd54e133f489a8226e8') + version('1.5.18', sha256='0bf8154f53d2781164421acd195a1665ac2f77316263c3526206c38e402c4b0d') + version('1.5.17', sha256='cb30ad851e95c0190e6b7e59695f1ed2e51d65a9e6c82c893e043dc066053377') + version('1.5.16', sha256='a0c1a7e72186722d7c0e9d5527a63beb339b933d768687f183e163adf935c662') + version('1.5.15', sha256='4ef8627308e99bdd4200ef4f260fbcdd65a4ba634bd593ca02dbbfd71222e9f7') + version('1.5.14', sha256='ae8ed2ed853b840a8430d8575d4e91b87c550b111874b416c551001403ac6a74') + version('1.5.13', sha256='ae59a8b49be17afb344e57c8a8d64f9ae38b6efbc3f9115a422dbcb2b23795fc') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('libevent', type='build') + + def autoreconf(self, spec, prefix): + sh = which('sh') + sh('./autogen.sh') + autoreconf('--install', '--verbose', '--force') + + def configure_args(self): + args = ['--with-libevent={0}'.format(self.spec['libevent'].prefix)] + return args diff --git a/var/spack/repos/builtin/packages/meme/package.py b/var/spack/repos/builtin/packages/meme/package.py index a045e6d1ee..aeed3ed239 100644 --- a/var/spack/repos/builtin/packages/meme/package.py +++ b/var/spack/repos/builtin/packages/meme/package.py @@ -25,7 +25,7 @@ class Meme(AutotoolsPackage): depends_on('perl', type=('build', 'run')) depends_on('python@2.7:', type=('build', 'run')) depends_on('mpi', when='+mpi') - depends_on('image-magick', type=('build', 'run'), when='+image-magick') + depends_on('imagemagick', type=('build', 'run'), when='+image-magick') depends_on('perl-xml-parser', type=('build', 'run')) def configure_args(self): diff --git a/var/spack/repos/builtin/packages/memsurfer/package.py b/var/spack/repos/builtin/packages/memsurfer/package.py index 6c28f3b293..05011b90f5 100644 --- a/var/spack/repos/builtin/packages/memsurfer/package.py +++ b/var/spack/repos/builtin/packages/memsurfer/package.py @@ -41,8 +41,8 @@ class Memsurfer(PythonPackage): depends_on('hdf5 +hl') # memsurfer's setup needs path to these deps to build extension modules - def setup_environment(self, spack_env, run_env): - spack_env.set('VTK_ROOT', self.spec['vtk'].prefix) - spack_env.set('CGAL_ROOT', self.spec['cgal'].prefix) - spack_env.set('BOOST_ROOT', self.spec['boost'].prefix) - spack_env.set('EIGEN_ROOT', self.spec['eigen'].prefix) + def setup_build_environment(self, env): + env.set('VTK_ROOT', self.spec['vtk'].prefix) + env.set('CGAL_ROOT', self.spec['cgal'].prefix) + env.set('BOOST_ROOT', self.spec['boost'].prefix) + env.set('EIGEN_ROOT', self.spec['eigen'].prefix) diff --git a/var/spack/repos/builtin/packages/meraculous/package.py b/var/spack/repos/builtin/packages/meraculous/package.py index 271e8756ad..34aa9344ae 100644 --- a/var/spack/repos/builtin/packages/meraculous/package.py +++ b/var/spack/repos/builtin/packages/meraculous/package.py @@ -28,6 +28,6 @@ class Meraculous(CMakePackage): edit = FileFilter('CMakeLists.txt') edit.filter(r"-static-libstdc\+\+", "") - def setup_environment(self, spack_env, run_env): - run_env.set('MERACULOUS_ROOT', self.prefix) - run_env.prepend_path('PERL5LIB', self.prefix.lib) + def setup_run_environment(self, env): + env.set('MERACULOUS_ROOT', self.prefix) + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py index f099bb1774..51ae31200d 100644 --- a/var/spack/repos/builtin/packages/mercurial/package.py +++ b/var/spack/repos/builtin/packages/mercurial/package.py @@ -39,12 +39,12 @@ class Mercurial(PythonPackage): depends_on('py-pygments', type=('build', 'run')) depends_on('py-certifi', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Python 3 support is still experimental, explicitly allow - spack_env.set('HGALLOWPYTHON3', True) - spack_env.set('HGPYTHON3', True) + env.set('HGALLOWPYTHON3', True) + env.set('HGPYTHON3', True) # Setuptools is still opt-in, explicitly enable - spack_env.set('FORCE_SETUPTOOLS', True) + env.set('FORCE_SETUPTOOLS', True) @run_after('install') def post_install(self): diff --git a/var/spack/repos/builtin/packages/mesquite/package.py b/var/spack/repos/builtin/packages/mesquite/package.py index 199065e585..daed1e3be9 100644 --- a/var/spack/repos/builtin/packages/mesquite/package.py +++ b/var/spack/repos/builtin/packages/mesquite/package.py @@ -28,10 +28,15 @@ class Mesquite(AutotoolsPackage): def configure_args(self): args = [ - 'CC=%s' % self.spec['mpi'].mpicc, - 'CXX=%s' % self.spec['mpi'].mpicxx, - '--with-mpi=%s' % self.spec['mpi'].prefix, '--enable-release', '--enable-shared', ] + + if '+mpi' in self.spec: + args.append('CC=%s' % self.spec['mpi'].mpicc) + args.append('CXX=%s' % self.spec['mpi'].mpicxx) + args.append('--with-mpi=%s' % self.spec['mpi'].prefix) + else: + args.append('--without-mpi') + return args diff --git a/var/spack/repos/builtin/packages/metabat/package.py b/var/spack/repos/builtin/packages/metabat/package.py index fc9f22d225..e026917cf8 100644 --- a/var/spack/repos/builtin/packages/metabat/package.py +++ b/var/spack/repos/builtin/packages/metabat/package.py @@ -13,6 +13,8 @@ class Metabat(SConsPackage): homepage = "https://bitbucket.org/berkeleylab/metabat" url = "https://bitbucket.org/berkeleylab/metabat/get/v2.12.1.tar.gz" + version('2.14', sha256='d43d5e91afa8f2d211a913739127884669516bfbed870760597fcee2b513abe2') + version('2.13', sha256='aa75a2b62ec9588add4c288993821bab5312a83b1259ff0d508c215133492d74') version('2.12.1', sha256='e3aca0656f56f815135521360dc56667ec26af25143c3a31d645fef1a96abbc2') version('2.11.2', sha256='9baf81b385e503e71792706237c308a21ff9177a3211c79057dcecf8434e9a67') @@ -21,8 +23,8 @@ class Metabat(SConsPackage): depends_on('zlib', type='link') depends_on('ncurses', type='link') - def setup_environment(self, spack_env, run_env): - spack_env.set('BOOST_ROOT', self.spec['boost'].prefix) + def setup_build_environment(self, env): + env.set('BOOST_ROOT', self.spec['boost'].prefix) def install_args(self, spec, prefix): return ["PREFIX={0}".format(prefix)] diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py index 4e64f43b40..2dae35ac8f 100644 --- a/var/spack/repos/builtin/packages/metis/package.py +++ b/var/spack/repos/builtin/packages/metis/package.py @@ -17,13 +17,15 @@ class Metis(Package): multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.""" - 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" + # + # the previous metis website http://glaros.dtc.umn.edu/gkhome/metis/metis + # no longer exists. 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" version('5.1.0', sha256='76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2') - version('5.0.2', sha256='f79790676ca2ce3dfa9d5e2d74801e91d92415664ede2c2fc18fc49d4a161981') - 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+).') @@ -50,13 +52,6 @@ class Metis(Package): patch('install_gklib_defs_rename.patch', when='@5:') patch('gklib_nomisleadingindentation_warning.patch', when='@5: %gcc@6:') - def url_for_version(self, version): - url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis" - if version < Version('4.0.3'): - url += "/OLD" - url += "/metis-{0}.tar.gz".format(version) - return url - @when('@5:') def patch(self): source_path = self.stage.source_path diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index d8ff47d0b4..e61b672cd5 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -189,7 +189,7 @@ class Mfem(Package): # depends_on('petsc@3.8:+mpi+double+hypre+suite-sparse+mumps', # when='+petsc') depends_on('mpfr', when='+mpfr') - depends_on('netcdf@4.1.3:', when='+netcdf') + depends_on('netcdf-c@4.1.3:', when='+netcdf') depends_on('unwind', when='+libunwind') depends_on('zlib', when='+gzstream') depends_on('gnutls', when='+gnutls') @@ -368,9 +368,9 @@ class Mfem(Package): if '+netcdf' in spec: options += [ - 'NETCDF_OPT=-I%s' % spec['netcdf'].prefix.include, + 'NETCDF_OPT=-I%s' % spec['netcdf-c'].prefix.include, 'NETCDF_LIB=%s' % - ld_flags_from_dirs([spec['netcdf'].prefix.lib], ['netcdf'])] + ld_flags_from_dirs([spec['netcdf-c'].prefix.lib], ['netcdf'])] if '+gzstream' in spec: if "@:3.3.2" in spec: @@ -439,8 +439,35 @@ class Mfem(Package): hdf5 = conduit['hdf5'] headers += find_headers('hdf5', hdf5.prefix.include) libs += hdf5.libs + + ################## + # cyrush note: + ################## + # spack's HeaderList is applying too much magic, undermining us: + # + # It applies a regex to strip back to the last "include" dir + # in the path. In our case we need to pass the following + # as part of the CONDUIT_OPT flags: + # + # -I<install_path>/include/conduit + # + # I tried several ways to present this path to the HeaderList, + # but the regex always kills the trailing conduit dir + # breaking build. + # + # To resolve the issue, we simply join our own string with + # the headers results (which are important b/c they handle + # hdf5 paths when enabled). + ################## + + # construct proper include path + conduit_include_path = conduit.prefix.include.conduit + # add this path to the found flags + conduit_opt_flags = "-I{0} {1}".format(conduit_include_path, + headers.cpp_flags) + options += [ - 'CONDUIT_OPT=%s' % headers.cpp_flags, + 'CONDUIT_OPT=%s' % conduit_opt_flags, 'CONDUIT_LIB=%s' % ld_flags_from_library_list(libs)] make('config', *options, parallel=False) diff --git a/var/spack/repos/builtin/packages/mg/package.py b/var/spack/repos/builtin/packages/mg/package.py new file mode 100644 index 0000000000..9e372af338 --- /dev/null +++ b/var/spack/repos/builtin/packages/mg/package.py @@ -0,0 +1,37 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Mg(Package): + """Mg is intended to be a small, fast, and portable editor for people + who can't (or don't want to) run emacs for one reason or another, + or are not familiar with the vi editor. It is compatible with + emacs because there shouldn't be any reason to learn more editor + types than emacs or vi.""" + + homepage = "https://github.com/ibara/mg" + url = "https://github.com/ibara/mg/archive/mg-6.6.tar.gz" + + version('6.6', sha256='e8440353da1a52ec7d40fb88d4f145da49c320b5ba31daf895b0b0db5ccd0632') + + depends_on('ncurses') + + phases = ['configure', 'build', 'install'] + + def configure(self, spec, prefix): + configure = Executable('./configure') + args = [ + '--mandir={0}'.format(self.prefix.man), + '--prefix={0}'.format(self.prefix), + ] + configure(*args) + + def build(self, spec, prefix): + make() + + def install(self, spec, prefix): + make('install') diff --git a/var/spack/repos/builtin/packages/mgis/package.py b/var/spack/repos/builtin/packages/mgis/package.py index d51327c3c0..a31fd6db8d 100644 --- a/var/spack/repos/builtin/packages/mgis/package.py +++ b/var/spack/repos/builtin/packages/mgis/package.py @@ -46,7 +46,7 @@ class Mgis(CMakePackage): depends_on('tfel@3.2.1', when="@1.0.1") depends_on('tfel@rliv-3.2', when="@rliv-1.0") depends_on('tfel@master', when="@master") - depends_on('boost+python', when='+python') + depends_on('boost+python+numpy', when='+python') extends('python', when='+python') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/microbiomeutil/package.py b/var/spack/repos/builtin/packages/microbiomeutil/package.py index d536c13989..f6b6db045f 100644 --- a/var/spack/repos/builtin/packages/microbiomeutil/package.py +++ b/var/spack/repos/builtin/packages/microbiomeutil/package.py @@ -27,8 +27,8 @@ class Microbiomeutil(MakefilePackage): install_tree('RESOURCES', prefix.resources) install_tree('AmosCmp16Spipeline', prefix.AmosCmp16Spipeline) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix.ChimeraSlayer) - run_env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr')) - run_env.prepend_path('PATH', self.prefix.TreeChopper) - run_env.prepend_path('PATH', self.prefix.WigeoN) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.ChimeraSlayer) + env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr')) + env.prepend_path('PATH', self.prefix.TreeChopper) + env.prepend_path('PATH', self.prefix.WigeoN) diff --git a/var/spack/repos/builtin/packages/mii/package.py b/var/spack/repos/builtin/packages/mii/package.py index 063ec4072d..c277a92254 100644 --- a/var/spack/repos/builtin/packages/mii/package.py +++ b/var/spack/repos/builtin/packages/mii/package.py @@ -21,5 +21,5 @@ class Mii(MakefilePackage): version('1.0.3', sha256='9b5a0e4e0961cf848677ed61b4f6c03e6a443f8592ed668d1afea302314b47a8') version('1.0.2', sha256='1c2c86ec37779ecd3821c30ce5b6dd19be4ec1813da41832d49ff3dcf615e22d') - def setup_environment(self, spack_env, run_env): - spack_env.set('PREFIX', self.prefix) + def setup_build_environment(self, env): + env.set('PREFIX', self.prefix) diff --git a/var/spack/repos/builtin/packages/miniconda2/package.py b/var/spack/repos/builtin/packages/miniconda2/package.py index e79d94528f..0bea42d8ce 100644 --- a/var/spack/repos/builtin/packages/miniconda2/package.py +++ b/var/spack/repos/builtin/packages/miniconda2/package.py @@ -13,6 +13,7 @@ class Miniconda2(Package): homepage = "https://conda.io/miniconda.html" url = "https://repo.continuum.io/miniconda/Miniconda2-4.6.14-Linux-x86_64.sh" + version('4.7.12.1', sha256='383fe7b6c2574e425eee3c65533a5101e68a2d525e66356844a80aa02a556695', expand=False) version('4.6.14', sha256='3e20425afa1a2a4c45ee30bd168b90ca30a3fdf8598b61cb68432886aadc6f4d', expand=False) version('4.5.11', sha256='0e23e8d0a1a14445f78960a66b363b464b889ee3b0e3f275b7ffb836df1cb0c6', expand=False) version('4.5.4', sha256='77d95c99996495b9e44db3c3b7d7981143d32d5e9a58709c51d35bf695fda67d', expand=False) diff --git a/var/spack/repos/builtin/packages/miniconda3/package.py b/var/spack/repos/builtin/packages/miniconda3/package.py index 3ad1f81b63..5672d1906d 100644 --- a/var/spack/repos/builtin/packages/miniconda3/package.py +++ b/var/spack/repos/builtin/packages/miniconda3/package.py @@ -13,6 +13,7 @@ class Miniconda3(Package): homepage = "https://conda.io/miniconda.html" url = "https://repo.continuum.io/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh" + 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) diff --git a/var/spack/repos/builtin/packages/miranda/package.py b/var/spack/repos/builtin/packages/miranda/package.py new file mode 100644 index 0000000000..79d5b3ba65 --- /dev/null +++ b/var/spack/repos/builtin/packages/miranda/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.3a', sha256='a671da562cf4636ef5085b27349df2df2f335774663fd423deb08f31212ec778', + url='http://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz') diff --git a/var/spack/repos/builtin/packages/mitofates/package.py b/var/spack/repos/builtin/packages/mitofates/package.py index e6140808b2..d19af8c329 100644 --- a/var/spack/repos/builtin/packages/mitofates/package.py +++ b/var/spack/repos/builtin/packages/mitofates/package.py @@ -44,6 +44,6 @@ class Mitofates(Package): chmod = which('chmod') chmod('+x', join_path(prefix, 'MitoFates.pl')) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # We want the main MitoFates.pl script in the path - run_env.prepend_path('PATH', self.prefix) + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/mixcr/package.py b/var/spack/repos/builtin/packages/mixcr/package.py index f201eae25c..cfcc825595 100644 --- a/var/spack/repos/builtin/packages/mixcr/package.py +++ b/var/spack/repos/builtin/packages/mixcr/package.py @@ -25,5 +25,5 @@ class Mixcr(Package): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py index 6ab1311309..b1b22cb281 100644 --- a/var/spack/repos/builtin/packages/moab/package.py +++ b/var/spack/repos/builtin/packages/moab/package.py @@ -39,8 +39,6 @@ class Moab(AutotoolsPackage): description='Required to enable the ExodusII reader/writer.') variant('pnetcdf', default=False, description='Enable pnetcdf (AKA parallel-netcdf) support') - variant('netcdf', default=False, - description='Required to enable the ExodusII reader/writer.') variant('zoltan', default=False, description='Enable zoltan support') variant('cgm', default=False, description='Enable common geometric module') variant('metis', default=True, description='Enable metis link') @@ -77,7 +75,7 @@ class Moab(AutotoolsPackage): depends_on('mpi', when='+mpi') depends_on('hdf5', when='+hdf5') depends_on('hdf5+mpi', when='+hdf5+mpi') - depends_on('netcdf', when='+netcdf') + depends_on('netcdf-c', when='+netcdf') depends_on('parallel-netcdf', when='+pnetcdf') depends_on('cgm', when='+cgm') depends_on('metis', when='+metis') @@ -129,7 +127,7 @@ class Moab(AutotoolsPackage): options.append('--without-hdf5') if '+netcdf' in spec: - options.append('--with-netcdf=%s' % spec['netcdf'].prefix) + options.append('--with-netcdf=%s' % spec['netcdf-c'].prefix) else: options.append('--without-netcdf') diff --git a/var/spack/repos/builtin/packages/libmongoc/package.py b/var/spack/repos/builtin/packages/mongo-c-driver/package.py index 0d3110a803..aeac6d31db 100644 --- a/var/spack/repos/builtin/packages/libmongoc/package.py +++ b/var/spack/repos/builtin/packages/mongo-c-driver/package.py @@ -6,7 +6,7 @@ from spack import * -class Libmongoc(AutotoolsPackage): +class MongoCDriver(AutotoolsPackage): """libmongoc is a client library written in C for MongoDB.""" homepage = "https://github.com/mongodb/mongo-c-driver" 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 0f36e6174e..47732dcbb4 100644 --- a/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py +++ b/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py @@ -15,4 +15,4 @@ class MongoCxxDriver(CMakePackage): version('3.2.0', sha256='e26edd44cf20bd6be91907403b6d63a065ce95df4c61565770147a46716aad8c') - depends_on('libmongoc@1.9.2:') + depends_on('mongo-c-driver@1.9.2:') diff --git a/var/spack/repos/builtin/packages/mothur/package.py b/var/spack/repos/builtin/packages/mothur/package.py index 26235cb9a0..c0c5bf5d9a 100644 --- a/var/spack/repos/builtin/packages/mothur/package.py +++ b/var/spack/repos/builtin/packages/mothur/package.py @@ -14,11 +14,16 @@ class Mothur(MakefilePackage): homepage = "https://github.com/mothur/mothur" url = "https://github.com/mothur/mothur/archive/v1.39.5.tar.gz" + version('1.43.0', sha256='12ccd95a85bec3bb1564b8feabd244ea85413973740754803d01fc71ecb0a2c1') + version('1.42.1', sha256='6b61591dda289ac2d8361f9c1547ffbeeba3b9fbdff877dd286bad850bbd5539') version('1.40.5', sha256='a0fbdfa68b966d7adc4560e3787506a0dad8b47b4b996c2663cd6c0b416d101a') version('1.39.5', sha256='9f1cd691e9631a2ab7647b19eb59cd21ea643f29b22cde73d7f343372dfee342') + variant('vsearch', default=False, description='Use vsearch') + depends_on('boost') depends_on('readline') + depends_on('vsearch', when='+vsearch', type='run') def edit(self, spec, prefix): makefile = FileFilter('Makefile') diff --git a/var/spack/repos/builtin/packages/motif/add_xbitmaps_dependency.patch b/var/spack/repos/builtin/packages/motif/add_xbitmaps_dependency.patch new file mode 100644 index 0000000000..993b5108f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/motif/add_xbitmaps_dependency.patch @@ -0,0 +1,36 @@ +diff -Naur motif-2.3.8/ac_find_xbitmaps.m4 motif-2.3.8_patched/ac_find_xbitmaps.m4 +--- motif-2.3.8/ac_find_xbitmaps.m4 1970-01-01 01:00:00.000000000 +0100 ++++ motif-2.3.8_patched/ac_find_xbitmaps.m4 2019-12-11 16:01:58.463883900 +0100 +@@ -0,0 +1,10 @@ ++AC_DEFUN([AC_FIND_XBITMAPS], ++[ ++ ++AC_CHECK_HEADERS(X11/bitmaps/gray) ++ ++CFLAGS="$CFLAGS `pkg-config xbitmaps --cflags`" ++AC_SUBST(CFLAGS) ++LIBS="$LIBS `pkg-config xbitmaps --libs`" ++AC_SUBST(LIBS) ++]) +diff -Naur motif-2.3.8/AUTHORS motif-2.3.8_patched/AUTHORS +--- motif-2.3.8/AUTHORS 1970-01-01 01:00:00.000000000 +0100 ++++ motif-2.3.8_patched/AUTHORS 2019-12-12 08:40:39.947561253 +0100 +@@ -0,0 +1 @@ ++Dummy AUTHORS file: upstream Motif did not supply this and autoreconf needs it. +\ No newline at end of file +diff -Naur motif-2.3.8/configure.ac motif-2.3.8_patched/configure.ac +--- motif-2.3.8/configure.ac 2017-12-05 13:43:54.000000000 +0100 ++++ motif-2.3.8_patched/configure.ac 2019-12-11 16:01:58.467217264 +0100 +@@ -274,6 +274,7 @@ + AC_SUBST(LIB_XP) + + AC_FIND_XFT ++AC_FIND_XBITMAPS + AC_IMAGE_SUPPORT + + +diff -Naur motif-2.3.8/NEWS motif-2.3.8_patched/NEWS +--- motif-2.3.8/NEWS 1970-01-01 01:00:00.000000000 +0100 ++++ motif-2.3.8_patched/NEWS 2019-12-12 08:40:59.010963846 +0100 +@@ -0,0 +1 @@ ++Dummy NEWS file: upstream motif did not supply this but autoreconf needs it. diff --git a/var/spack/repos/builtin/packages/motif/package.py b/var/spack/repos/builtin/packages/motif/package.py index b15302c64c..0ea97e0dff 100644 --- a/var/spack/repos/builtin/packages/motif/package.py +++ b/var/spack/repos/builtin/packages/motif/package.py @@ -11,6 +11,8 @@ class Motif(AutotoolsPackage): Motif - Graphical user interface (GUI) specification and the widget toolkit """ + 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" @@ -25,3 +27,16 @@ class Motif(AutotoolsPackage): depends_on("libxfixes") depends_on("xbitmaps") depends_on("jpeg") + + # we need the following for autoreconf + depends_on("automake", type="build") + depends_on("autoconf", type="build") + depends_on("m4", type="build") + depends_on("libtool", type="build") + + patch('add_xbitmaps_dependency.patch') + + def autoreconf(self, spec, prefix): + autoreconf = which('autoreconf') + with working_dir(self.configure_directory): + autoreconf('-ivf') diff --git a/var/spack/repos/builtin/packages/mpark-variant/nvcc.patch b/var/spack/repos/builtin/packages/mpark-variant/nvcc.patch new file mode 100644 index 0000000000..30ee06a4f9 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpark-variant/nvcc.patch @@ -0,0 +1,27 @@ +From 443d9454e8a665cef01cbf63036648a6e0ad9ffd Mon Sep 17 00:00:00 2001 +From: Axel Huebl <axel.huebl@plasma.ninja> +Date: Mon, 25 Nov 2019 17:56:38 -0800 +Subject: [PATCH] NVCC: Avoid Specific Constexpr Construct + +Out of the many C++14 `constexpr` constructs, one does not compile +with NVCC - even when using `-std=c++14 --expt-relaxed-constexpr`. +Seen with all versions of NVCC so far (latest tests with 10.1 and +10.2). +--- + include/mpark/variant.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/mpark/variant.hpp b/include/mpark/variant.hpp +index ef496619b..728e69395 100644 +--- a/include/mpark/variant.hpp ++++ b/include/mpark/variant.hpp +@@ -1998,7 +1998,7 @@ namespace mpark { + return false; + } + +-#ifdef MPARK_CPP14_CONSTEXPR ++#if defined(MPARK_CPP14_CONSTEXPR) && !defined(__NVCC__) + namespace detail { + + inline constexpr bool all(std::initializer_list<bool> bs) { + diff --git a/var/spack/repos/builtin/packages/mpark-variant/package.py b/var/spack/repos/builtin/packages/mpark-variant/package.py index afeb4bd7e5..40415048f9 100644 --- a/var/spack/repos/builtin/packages/mpark-variant/package.py +++ b/var/spack/repos/builtin/packages/mpark-variant/package.py @@ -16,5 +16,8 @@ class MparkVariant(CMakePackage): version('1.4.0', sha256='8f6b28ab3640b5d76d5b6664dda7257a4405ce59179220431b8fd196c79b2ecb') version('1.3.0', sha256='d0f7e41f818fcc839797a8017e76b8b66b323651c304cff641a83a56ae9943c6') + # Ref.: https://github.com/mpark/variant/pull/71 + patch('nvcc.patch') + conflicts('%gcc@:4.7') conflicts('%clang@:3.5') diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py index a8d3a30ab9..807238e18f 100644 --- a/var/spack/repos/builtin/packages/mpc/package.py +++ b/var/spack/repos/builtin/packages/mpc/package.py @@ -6,13 +6,13 @@ from spack import * -class Mpc(AutotoolsPackage): +class Mpc(AutotoolsPackage, GNUMirrorPackage): """Gnu Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result.""" homepage = "http://www.multiprecision.org" - url = "https://ftpmirror.gnu.org/mpc/mpc-1.1.0.tar.gz" + gnu_mirror_path = "mpc/mpc-1.1.0.tar.gz" list_url = "http://www.multiprecision.org/mpc/download.html" version('1.1.0', sha256='6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e') @@ -25,14 +25,6 @@ class Mpc(AutotoolsPackage): depends_on('mpfr@2.4.2:') depends_on('mpfr@3.0.0:', when='@1.1.0:') - def url_for_version(self, version): - if version < Version("1.0.1"): - url = "http://www.multiprecision.org/mpc/download/mpc-{0}.tar.gz" - else: - url = "https://ftpmirror.gnu.org/mpc/mpc-{0}.tar.gz" - - return url.format(version) - def configure_args(self): spec = self.spec return [ diff --git a/var/spack/repos/builtin/packages/mpest/package.py b/var/spack/repos/builtin/packages/mpest/package.py index e1ecca84f9..4d9cbae595 100644 --- a/var/spack/repos/builtin/packages/mpest/package.py +++ b/var/spack/repos/builtin/packages/mpest/package.py @@ -24,8 +24,8 @@ class Mpest(MakefilePackage): mkdirp(prefix.bin) install('mpest', prefix.bin) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.spec.satisfies('platform=darwin'): - spack_env.set('ARCHITECTURE', 'mac') + env.set('ARCHITECTURE', 'mac') else: - spack_env.set('ARCHITECTURE', 'unix') + env.set('ARCHITECTURE', 'unix') diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py index 97d0f090b2..ac6748411f 100644 --- a/var/spack/repos/builtin/packages/mpfr/package.py +++ b/var/spack/repos/builtin/packages/mpfr/package.py @@ -6,12 +6,12 @@ from spack import * -class Mpfr(AutotoolsPackage): +class Mpfr(AutotoolsPackage, GNUMirrorPackage): """The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.""" homepage = "https://www.mpfr.org/" - url = "https://ftpmirror.gnu.org/mpfr/mpfr-4.0.2.tar.bz2" + gnu_mirror_path = "mpfr/mpfr-4.0.2.tar.bz2" version('4.0.2', sha256='c05e3f02d09e0e9019384cdd58e0f19c64e6db1fd6f5ecf77b4b1c61ca253acc') version('4.0.1', sha256='a4d97610ba8579d380b384b225187c250ef88cfe1d5e7226b89519374209b86b') diff --git a/var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch b/var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch index 17e285b0bf..17e285b0bf 100644 --- a/var/spack/repos/builtin/packages/mpibash/mpibash-4.3.patch +++ b/var/spack/repos/builtin/packages/mpi-bash/mpibash-4.3.patch diff --git a/var/spack/repos/builtin/packages/mpibash/package.py b/var/spack/repos/builtin/packages/mpi-bash/package.py index 174109f6d9..5b3731fbbe 100644 --- a/var/spack/repos/builtin/packages/mpibash/package.py +++ b/var/spack/repos/builtin/packages/mpi-bash/package.py @@ -6,7 +6,7 @@ from spack import * -class Mpibash(AutotoolsPackage): +class MpiBash(AutotoolsPackage): """Parallel scripting right from the Bourne-Again Shell (Bash)""" homepage = "https://github.com/lanl/MPI-Bash" diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index 5d7a74cb59..aa0d3ea2dd 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -19,6 +19,7 @@ class Mpich(AutotoolsPackage): list_depth = 1 version('develop', submodules=True) + version('3.3.2', sha256='4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9') version('3.3.1', sha256='fe551ef29c8eea8978f679484441ed8bb1d943f6ad25b63c235d4b9243d551e5') version('3.3', sha256='329ee02fe6c3d101b6b30a7b6fb97ddf6e82b28844306771fa9dd8845108fa0b') version('3.2.1', sha256='5db53bf2edfaa2238eb6a0a5bc3d2c2ccbfbb1badd79b664a1a919d2ce2330f1') @@ -93,6 +94,8 @@ spack package at this time.''', # See https://github.com/pmodels/mpich/issues/3665 depends_on('libfabric@:1.6', when='device=ch3 netmod=ofi') + depends_on('ucx', when='netmod=ucx') + depends_on('libpciaccess', when="+pci") depends_on('libxml2') @@ -101,6 +104,12 @@ spack package at this time.''', depends_on('pmix', when='pmi=pmix') + # building from git requires regenerating autotools files + depends_on('automake@1.15:', when='@develop', type=("build")) + depends_on('libtool@2.4.4:', when='@develop', type=("build")) + depends_on("m4", when="@develop", type=("build")), + depends_on("autoconf@2.67:", when='@develop', type=("build")) + conflicts('device=ch4', when='@:3.2') conflicts('netmod=ofi', when='@:3.1.4') conflicts('netmod=ucx', when='device=ch3') @@ -180,6 +189,15 @@ spack package at this time.''', spec else 'yes') ] + if '+slurm' in spec: + config_args.append('--with-slurm=yes') + config_args.append('--with-slurm-include={0}'.format( + spec['slurm'].prefix.include)) + config_args.append('--with-slurm-lib={0}'.format( + spec['slurm'].prefix.lib)) + else: + config_args.append('--with-slurm=no') + if 'pmi=off' in spec: config_args.append('--with-pmi=no') elif 'pmi=pmi' in spec: @@ -207,10 +225,13 @@ spack package at this time.''', config_args.append(device_config) - # Specify libfabric's path explicitly, otherwise configure might fall - # back to an embedded version of libfabric. + # Specify libfabric or ucx path explicitly, otherwise + # configure might fall back to an embedded version. if 'netmod=ofi' in spec: config_args.append('--with-libfabric={0}'.format( spec['libfabric'].prefix)) + if 'netmod=ucx' in spec: + config_args.append('--with-ucx={0}'.format( + spec['ucx'].prefix)) return config_args diff --git a/var/spack/repos/builtin/packages/mpip/package.py b/var/spack/repos/builtin/packages/mpip/package.py index 4f4d5c006d..8388e6ad59 100644 --- a/var/spack/repos/builtin/packages/mpip/package.py +++ b/var/spack/repos/builtin/packages/mpip/package.py @@ -11,7 +11,9 @@ class Mpip(AutotoolsPackage): """mpiP: Lightweight, Scalable MPI Profiling""" homepage = "http://mpip.sourceforge.net/" url = "http://downloads.sourceforge.net/project/mpip/mpiP/mpiP-3.4.1/mpiP-3.4.1.tar.gz" + git = "https://github.com/llnl/mpip.git" + version('master', branch='master') version("3.4.1", sha256="688bf37d73211e6a915f9fc59c358282a266d166c0a10af07a38a01a473296f0") depends_on("elf") diff --git a/var/spack/repos/builtin/packages/mpt/package.py b/var/spack/repos/builtin/packages/mpt/package.py new file mode 100644 index 0000000000..7f5a1581e9 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpt/package.py @@ -0,0 +1,77 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Mpt(Package): + """HPE MPI is HPE's implementation of + the Message Passing Interface (MPI) standard. + + 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""" + + homepage = "https://buy.hpe.com/us/en/software/high-performance-computing-software/hpe-message-passing-interface-mpi/p/1010144155" + + provides('mpi') + provides('mpi@:3.1', when='@3:') + provides('mpi@:1.3', when='@1:') + + filter_compiler_wrappers( + 'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpif08', + relative_root='bin' + ) + + @property + def libs(self): + query_parameters = self.spec.last_query.extra_parameters + libraries = ['libmpi'] + + if 'cxx' in query_parameters: + libraries = ['libmpicxx'] + libraries + + return find_libraries( + libraries, root=self.prefix, shared=True, recursive=True + ) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPICC', self.prefix.bin.mpicc) + env.set('MPICXX', self.prefix.bin.mpicxx) + env.set('MPIF77', self.prefix.bin.mpif77) + env.set('MPIF90', self.prefix.bin.mpif90) + env.set('MPICC_CC', spack_cc) + env.set('MPICXX_CXX', spack_cxx) + env.set('MPIF90_F90', spack_fc) + + def setup_dependent_package(self, module, dependent_spec): + if 'platform=cray' in self.spec: + self.spec.mpicc = spack_cc + self.spec.mpicxx = spack_cxx + self.spec.mpifc = spack_fc + self.spec.mpif77 = spack_f77 + else: + self.spec.mpicc = self.prefix.bin.mpicc + self.spec.mpicxx = self.prefix.bin.mpicxx + self.spec.mpifc = self.prefix.bin.mpif90 + self.spec.mpif77 = self.prefix.bin.mpif77 + + @property + def fetcher(self): + msg = """This package is a placeholder for HPE MPI, a + system-provided, proprietary MPI implementation. + + Add to your packages.yaml (changing the /opt/ path to match + where HPE MPI is actually installed): + + packages: + mpt: + paths: + mpt@2.20: /opt/ + buildable: False + + """ + raise InstallError(msg) diff --git a/var/spack/repos/builtin/packages/mrbayes/package.py b/var/spack/repos/builtin/packages/mrbayes/package.py index 930bc04af9..ec02498e94 100644 --- a/var/spack/repos/builtin/packages/mrbayes/package.py +++ b/var/spack/repos/builtin/packages/mrbayes/package.py @@ -13,21 +13,18 @@ class Mrbayes(AutotoolsPackage): of model parameters.""" homepage = "http://mrbayes.sourceforge.net" - git = "https://github.com/NBISweden/MrBayes.git" + url = "https://github.com/NBISweden/MrBayes/releases/download/v3.2.7a/mrbayes-3.2.7a.tar.gz" - version('2017-11-22', commit='8a9adb11bcc538cb95d91d57568dff383f924503') + version('3.2.7a', sha256='1a4670be84e6b968d59382328294db4c8ceb73e0c19c702265deec6f2177815c') + version('3.2.7', sha256='39d9eb269969b501268d5c27f77687c6eaa2c71ccf15c724e6f330fc405f24b9') variant('mpi', default=True, description='Enable MPI parallel support') variant('beagle', default=True, description='Enable BEAGLE library for speed benefits') - variant('sse', default=True, description='Enable SSE in order to substantially speed up execution') - - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') - depends_on('m4', type='build') + variant('readline', default=False, description='Enable readline library, not recommended with MPI') depends_on('libbeagle', when='+beagle') depends_on('mpi', when='+mpi') + depends_on('readline', when='+readline') def configure_args(self): args = [] @@ -35,14 +32,14 @@ class Mrbayes(AutotoolsPackage): args.append('--with-beagle=no') else: args.append('--with-beagle=%s' % self.spec['libbeagle'].prefix) - if '~sse' in self.spec: - args.append('--enable-sse=no') + if '+readline' in self.spec: + args.append('--with-readline=yes') else: - args.append('--enable-sse=yes') + args.append('--with-readline=no') if '~mpi' in self.spec: - args.append('--enable-mpi=no') + args.append('--with-mpi=no') else: - args.append('--enable-mpi=yes') + args.append('--with-mpi=yes') return args def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py index 6cdbef3130..4cf1b2097f 100644 --- a/var/spack/repos/builtin/packages/mrnet/package.py +++ b/var/spack/repos/builtin/packages/mrnet/package.py @@ -20,14 +20,11 @@ class Mrnet(AutotoolsPackage): version('4.1.0', sha256='94758191ac46a9dbfea931a8e61167fe7e8a5f880caa418305c44f1d12af5e45') version('4.0.0', sha256='7207c6d493b3f17c386667cfefa81364c96b9c8b831c67442d218d77813c5d38') - variant('cti', default=False, - description="Build the MRNet with the CTI startup option") variant('lwthreads', default=False, description="Also build the MRNet LW threadsafe libraries") parallel = False depends_on("boost") - depends_on("cti", when='+cti') def configure_args(self): spec = self.spec @@ -37,11 +34,5 @@ class Mrnet(AutotoolsPackage): # lwthreads variant is present if '+lwthreads' in spec: config_args.append('--enable-ltwt-threadsafe') - # Build the MRNet with CTI based start-up when - # the cti variant is present - if '+cti' in spec: - config_args.append('--with-startup=cray-cti') - cti = self.spec['cti'].prefix - config_args.append('--with-craycti-inc=-I%s/include' % cti) - config_args.append('--with-craycti-lib=-I%s/lib' % cti) + return config_args diff --git a/var/spack/repos/builtin/packages/mrtrix3/package.py b/var/spack/repos/builtin/packages/mrtrix3/package.py index 63d00a200b..fc7cab062e 100644 --- a/var/spack/repos/builtin/packages/mrtrix3/package.py +++ b/var/spack/repos/builtin/packages/mrtrix3/package.py @@ -35,5 +35,5 @@ class Mrtrix3(Package): build() install_tree('.', prefix) - def setup_environment(self, spac_env, run_env): - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/mstk/package.py b/var/spack/repos/builtin/packages/mstk/package.py new file mode 100644 index 0000000000..f2d5f3867e --- /dev/null +++ b/var/spack/repos/builtin/packages/mstk/package.py @@ -0,0 +1,112 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Mstk(CMakePackage): + """MSTK is a mesh framework that allows users to represent, + manipulate and query unstructured 3D arbitrary topology meshes + in a general manner without the need to code their own data + structures. MSTK is a flexible framework in that it allows a + variety of underlying representations for the mesh while + maintaining a common interface. It allows users to choose from + different mesh representations either at initialization (implemented) + or during the program execution (not yet implemented) so that the + optimal data structures are used for the particular algorithm. + The interaction of users and applications with MSTK is through a + functional interface that acts as though the mesh always contains + vertices, edges, faces and regions and maintains connectivity between + all these entities.""" + + homepage = "https://github.com/MeshToolkit/MSTK" + git = "https://github.com/MeshToolkit/MSTK" + url = "https://github.com/MeshToolkit/MSTK/archive/3.2.1.tar.gz" + + maintainers = ['raovgarimella', 'julienloiseau'] + + version('master', branch='master') + version('3.2.1', sha256='09bc6684abb576e34c324322db6f71f8987c6ec436a54256b85ef4db40185470') + version('3.2.0', sha256='57e58c5a7a456dbc608ce9f834a06c212a1aa64ac3ebc880ea0b8a19b000dab0') + version('3.1.3', sha256='03f6901cd6d563e1705a173c1a2fbbef10ab9a43f533f6ba758e357c03bdfa16') + version('3.1.2', sha256='1eb44c29554f45695f875fc60ab81554a2c46a041ef58a7224f3767d30e2846e') + version('3.1.1', sha256='5a03873c69fb38acd7ce27f2a5fa0643dd1cfcc3e214cff4aa26ee717651cc0b') + version('3.1.0', sha256='70e68d8a90cd2367015e0ab3459ed230a7995ad2297671742d9be6e28bc03dcf') + version('3.0.4', sha256='99e4c996bf22fd325335ed1391dfe735b0a338e8e4d733204d56dde7ef4eedf3') + version('3.0.3', sha256='618e371a48077f2b4ccfafd4d174c05f007b2ea7a51e0399df67442639409518') + version('3.0.2', sha256='b0172cd68e5137b8585d82c37b8a4af4b7e884f04d1b7d006a399d39447fe89e') + version('3.0.1', sha256='d44e4bf01b118b1d19710aa839b3f5f0c1a8391264a435f641ba4bd23bcf45ec') + version('3.0.0', sha256='d993ff5fc6c431067eb97e4089835c7790397d9c1ad88a56523c0591d451df19') + + variant('exodusii', default=False, description='Enable ExodusII') + variant('use_markers', default=True, description='Enable use of markers') + variant('parallel', default=False, description='Enable Parallel Support') + variant('partitioner', default='none', + values=('none', 'metis', 'zoltan', 'all'), + multi=False, description='Choose partitioner') + conflicts('partitioner=none', when='+parallel') + conflicts('partitioner=all', when='-parallel') + conflicts('partitioner=zoltan', when='-parallel') + + # MSTK turns on METIS only for parallel buildsu + conflicts('partitioner=metis', when='-parallel') + + # dependencies + depends_on('cmake@3.11:', type='build') + + # + depends_on('mpi', when='+parallel') + + depends_on('zoltan -fortran', when='partitioner=zoltan') + depends_on('zoltan -fortran', when='partitioner=all') + depends_on('metis', when='partitioner=metis') + depends_on('metis', when='partitioner=all') + + # Exodusii variant + # The default exodusii build with mpi support + depends_on('exodusii', when='+exodusii') + + # Unit testing variant + depends_on('unittest-cpp', type='test') + + def cmake_args(self): + options = [] + if '+use_markers' in self.spec: + options.append('-DMSTK_USE_MARKERS=ON') + else: + options.append('-DMSTK_USE_MARKERS=OFF') + + # Parallel variant + if '+parallel' in self.spec: + options.append('-DENABLE_PARALLEL=ON') + else: + options.append('-DENABLE_PARALLEL=OFF') + + if 'partitioner=none' in self.spec: + options.append('-DENABLE_METIS=OFF') + options.append('-DENABLE_ZOLTAN=OFF') + else: + if 'zoltan' in self.spec: + options.append('-DENABLE_ZOLTAN=ON') + else: + options.append('-DENABLE_ZOLTAN=OFF') + if 'metis' in self.spec: + options.append('-DENABLE_METIS=ON') + else: + options.append('-DENABLE_METIS=OFF') + + # ExodusII variant + if '+exodusii' in self.spec: + options.append('-DENABLE_ExodusII=ON') + else: + options.append('-DENABLE_ExodusII=OFF') + + # Unit test variant + if self.run_tests: + options.append('-DENABLE_Tests=ON') + else: + options.append('-DENABLE_Tests=OFF') + + return options diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index 48e8cca29e..b0e37de85f 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -55,11 +55,6 @@ class Mumps(Package): patch('examples.patch', when='@5.1.1%clang^spectrum-mpi') patch('gfortran8.patch', when='@5.1.2') - # this function is not a patch function because in case scalapack - # is needed it uses self.spec['scalapack'].fc_link set by the - # setup_dependent_environment in scalapck. This happen after patch - # end before install - # def patch(self): def write_makefile_inc(self): if ('+parmetis' in self.spec or '+ptscotch' in self.spec) and ( '+mpi' not in self.spec): @@ -119,6 +114,7 @@ class Mumps(Package): using_pgi = self.compiler.name == "pgi" using_intel = self.compiler.name == "intel" using_xl = self.compiler.name in ['xl', 'xl_r'] + using_fj = self.compiler.name == "fj" # The llvm compiler suite does not contain a Fortran compiler by # default. Its possible that a Spack user may have configured @@ -176,17 +172,18 @@ class Mumps(Package): "MUMPS_TYPE = par"]) else: makefile_conf.extend( - ["CC = cc", - "FC = fc", - "FL = fc", + ["CC = {0}".format(spack_cc), + "FC = {0}".format(spack_fc), + "FL = {0}".format(spack_fc), "MUMPS_TYPE = seq"]) # TODO: change the value to the correct one according to the # compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER - if using_intel or using_pgi: - # Intel & PGI Fortran compiler provides the main() function so - # C examples linked with the Fortran compiler require a - # hack defined by _DMAIN_COMP (see examples/c_example.c) + if using_intel or using_pgi or using_fj: + # Intel, PGI, and Fujitsu Fortran compiler provides + # the main() function so C examples linked with the Fortran + # compiler require a hack defined by _DMAIN_COMP + # (see examples/c_example.c) makefile_conf.append("CDEFS = -DAdd_ -DMAIN_COMP") else: if not using_xlf: diff --git a/var/spack/repos/builtin/packages/mutationpp/package.py b/var/spack/repos/builtin/packages/mutationpp/package.py index 26eabdf8c1..58bf94626c 100644 --- a/var/spack/repos/builtin/packages/mutationpp/package.py +++ b/var/spack/repos/builtin/packages/mutationpp/package.py @@ -40,12 +40,12 @@ class Mutationpp(CMakePackage): if '+examples' in self.spec and os.path.isdir('examples'): install_tree('examples', self.prefix.examples) - def setup_environment(self, spack_env, run_env): - run_env.set('MPP_DIRECTORY', self.prefix) + def setup_run_environment(self, env): + env.set('MPP_DIRECTORY', self.prefix) if os.path.isdir(self.prefix.data): - run_env.set('MPP_DATA_DIRECTORY', self.prefix.data) + env.set('MPP_DATA_DIRECTORY', self.prefix.data) - def setup_dependent_environment(self, spack_env, run_env): - spack_env.set('MPP_DIRECTORY', self.prefix) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPP_DIRECTORY', self.prefix) if os.path.isdir(self.prefix.data): - spack_env.set('MPP_DATA_DIRECTORY', self.prefix.data) + env.set('MPP_DATA_DIRECTORY', self.prefix.data) diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 1673316bb7..85ddfb7607 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -3,19 +3,19 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os.path import sys -from spack import * - class Mvapich2(AutotoolsPackage): """MVAPICH2 is an MPI implementation for Infiniband networks.""" homepage = "http://mvapich.cse.ohio-state.edu/" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz" + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.2.tar.gz" list_url = "http://mvapich.cse.ohio-state.edu/downloads/" # Prefer the latest stable release - version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf', preferred=True) + version('2.3.2', sha256='30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf') + version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf') version('2.3', sha256='01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd') version('2.3rc2', sha256='dc3801f879a54358d17002a56afd45186e2e83edc5b8367b5c317e282eb6d6bf') version('2.3rc1', sha256='607d309c864a6d57f5fa78fe6dd02368919736b8be0f4ddb938aba303ef9c45c') @@ -24,8 +24,10 @@ class Mvapich2(AutotoolsPackage): version('2.1', sha256='49f3225ad17d2f3b6b127236a0abdc979ca8a3efb8d47ab4b6cd4f5252d05d29') provides('mpi') - provides('mpi@:3.0') + provides('mpi@:3.1', when='@2.3:') + provides('mpi@:3.0', when='@2.1:') + variant('wrapperrpath', default=True, description='Enable wrapper rpath') variant('debug', default=False, description='Enable debug info and error messages at run-time') @@ -72,7 +74,7 @@ class Mvapich2(AutotoolsPackage): variant( 'fabrics', description='The fabric enabled for this build', - default='psm', + default='mrail', values=( 'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail', 'nemesisibtcp', 'nemesistcpib', 'nemesisofi' @@ -195,34 +197,35 @@ class Mvapich2(AutotoolsPackage): return opts - def setup_environment(self, spack_env, run_env): - spec = self.spec + def setup_build_environment(self, env): # mvapich2 configure fails when F90 and F90FLAGS are set - spack_env.unset('F90') - spack_env.unset('F90FLAGS') - if 'process_managers=slurm' in spec: - run_env.set('SLURM_MPI_TYPE', 'pmi2') + env.unset('F90') + env.unset('F90FLAGS') + + def setup_run_environment(self, env): + if 'process_managers=slurm' in self.spec: + env.set('SLURM_MPI_TYPE', 'pmi2') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90')) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc')) + env.set('MPICXX', os.path.join(self.prefix.bin, 'mpicxx')) + env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77')) + env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90')) - spack_env.set('MPICH_CC', spack_cc) - spack_env.set('MPICH_CXX', spack_cxx) - spack_env.set('MPICH_F77', spack_f77) - spack_env.set('MPICH_F90', spack_fc) - spack_env.set('MPICH_FC', spack_fc) + 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): - self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx') - self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') + self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc') + self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx') + self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90') + self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpif77') self.spec.mpicxx_shared_libs = [ - join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)), - join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) + os.path.join(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)), + os.path.join(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) ] @run_before('configure') @@ -246,6 +249,8 @@ class Mvapich2(AutotoolsPackage): "--enable-threads={0}".format(spec.variants['threads'].value), "--with-ch3-rank-bits={0}".format( spec.variants['ch3_rank_bits'].value), + '--enable-wrapper-rpath={0}'.format('no' if '~wrapperrpath' in + spec else 'yes') ] args.extend(self.enable_or_disable('alloca')) diff --git a/var/spack/repos/builtin/packages/mxnet/package.py b/var/spack/repos/builtin/packages/mxnet/package.py index 43796ab7d8..d261f60247 100644 --- a/var/spack/repos/builtin/packages/mxnet/package.py +++ b/var/spack/repos/builtin/packages/mxnet/package.py @@ -11,10 +11,9 @@ class Mxnet(MakefilePackage): designed for both efficiency and flexibility.""" homepage = "http://mxnet.io" - url = "https://github.com/apache/incubator-mxnet/archive/0.10.0.post2.tar.gz" + url = "https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz" - version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2', - url='https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz') + version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2') variant('cuda', default=False, description='Enable CUDA support') variant('opencv', default=True, description='Enable OpenCV support') diff --git a/var/spack/repos/builtin/packages/mysql/package.py b/var/spack/repos/builtin/packages/mysql/package.py index 497b8568a8..9a13a2f4d2 100644 --- a/var/spack/repos/builtin/packages/mysql/package.py +++ b/var/spack/repos/builtin/packages/mysql/package.py @@ -122,7 +122,7 @@ class Mysql(CMakePackage): options.append('-DWITHOUT_SERVER:BOOL=ON') return options - def _fix_dtrace_shebang(self, build_env): + def _fix_dtrace_shebang(self, env): # dtrace may cause build to fail because it uses # '/usr/bin/python' in the shebang. To work around that we copy # the original script into a temporary folder, and change the @@ -141,13 +141,7 @@ class Mysql(CMakePackage): ) # To have our own copy of dtrace in PATH, we need to # prepend to PATH the temporary folder where it resides. - build_env.prepend_path('PATH', dtrace_copy_path) - - @run_before('cmake') - def _maybe_fix_dtrace_shebang(self): - if 'python' in self.spec.flat_dependencies() and \ - self.spec.satisfies('@:7.99.99'): - self._fix_dtrace_shebang(build_env) + env.prepend_path('PATH', dtrace_copy_path) def setup_build_environment(self, env): cxxstd = self.spec.variants['cxxstd'].value @@ -160,3 +154,7 @@ class Mysql(CMakePackage): '-Wno-deprecated-declarations') if int(cxxstd) > 14: env.append_flags('CXXFLAGS', '-Wno-error=register') + + if 'python' in self.spec.flat_dependencies() and \ + self.spec.satisfies('@:7.99.99'): + self._fix_dtrace_shebang(env) diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py index 06e51c1cab..1b046181d7 100644 --- a/var/spack/repos/builtin/packages/nag/package.py +++ b/var/spack/repos/builtin/packages/nag/package.py @@ -37,6 +37,6 @@ class Nag(Package): # Run install script os.system('./INSTALLU.sh') - def setup_environment(self, spack_env, run_env): - run_env.set('F77', join_path(self.prefix.bin, 'nagfor')) - run_env.set('FC', join_path(self.prefix.bin, 'nagfor')) + def setup_run_environment(self, env): + env.set('F77', self.prefix.bin.nagfor) + env.set('FC', self.prefix.bin.nagfor) diff --git a/var/spack/repos/builtin/packages/nasm/package.py b/var/spack/repos/builtin/packages/nasm/package.py index aa64098be3..3aff3f759e 100644 --- a/var/spack/repos/builtin/packages/nasm/package.py +++ b/var/spack/repos/builtin/packages/nasm/package.py @@ -22,3 +22,6 @@ class Nasm(AutotoolsPackage): # Fix compilation with GCC 8 # https://bugzilla.nasm.us/show_bug.cgi?id=3392461 patch('https://src.fedoraproject.org/rpms/nasm/raw/0cc3eb244bd971df81a7f02bc12c5ec259e1a5d6/f/0001-Remove-invalid-pure_func-qualifiers.patch', level=1, sha256='ac9f315d204afa6b99ceefa1fe46d4eed2b8a23c7315d32d33c0f378d930e950', when='@2.13.03 %gcc@8:') + + conflicts('%intel@:14', when='@2.14:', + msg="Intel 14 has immature C11 support") diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py index 444629efd7..5e1b10e8cb 100644 --- a/var/spack/repos/builtin/packages/nauty/package.py +++ b/var/spack/repos/builtin/packages/nauty/package.py @@ -47,9 +47,9 @@ class Nauty(AutotoolsPackage): ] } # Iterate over patches - for condition, urls in urls_for_patches.items(): - for url, sha256 in urls: - patch(url, when=condition, level=1, sha256=sha256) + for condition, url_and_sha256 in urls_for_patches.items(): + for path, sha256 in url_and_sha256: + patch(path, when=condition, level=1, sha256=sha256) depends_on('m4', type='build', when='@2.6r7') depends_on('autoconf', type='build', when='@2.6r7') diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py index 6bf5fdb1b4..575b72a6ab 100644 --- a/var/spack/repos/builtin/packages/nccmp/package.py +++ b/var/spack/repos/builtin/packages/nccmp/package.py @@ -13,7 +13,7 @@ class Nccmp(Package): version('1.8.2.0', sha256='7f5dad4e8670568a71f79d2bcebb08d95b875506d3d5faefafe1a8b3afa14f18') - depends_on('netcdf') + depends_on('netcdf-c') def install(self, spec, prefix): # Configure says: F90 and F90FLAGS are replaced by FC and diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py index c3940136c4..60e530bae9 100644 --- a/var/spack/repos/builtin/packages/ncl/package.py +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -42,7 +42,7 @@ class Ncl(Package): # Non-optional dependencies according to the manual: depends_on('jpeg') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('cairo+X+pdf') # Extra dependencies that may be missing from build system: @@ -65,7 +65,7 @@ class Ncl(Package): depends_on('bzip2') depends_on('freetype') - # In Spack, we do not have an option to compile netcdf without netcdf-4 + # In Spack, we do not have an option to compile netcdf-c without netcdf-4 # support, so we will tell the ncl configuration script that we want # support for netcdf-4, but the script assumes that hdf5 is compiled with # szip support. We introduce this restriction with the following dependency @@ -76,13 +76,13 @@ class Ncl(Package): # ESMF is only required at runtime (for ESMF_regridding.ncl) depends_on('esmf', type='run') - # In Spack, we also do not have an option to compile netcdf without DAP + # In Spack, we also do not have an option to compile netcdf-c without DAP # support, so we will tell the ncl configuration script that we have it. # Some of the optional dependencies according to the manual: depends_on('hdf', when='+hdf4') depends_on('gdal+proj@:2.4', when='+gdal') - depends_on('udunits2', when='+udunits2') + depends_on('udunits', when='+udunits2') # We need src files of triangle to appear in ncl's src tree if we want # triangle's features. @@ -123,8 +123,8 @@ class Ncl(Package): self.prepare_src_tree() make('Everything', parallel=False) - def setup_environment(self, spack_env, run_env): - run_env.set('NCARG_ROOT', self.spec.prefix) + def setup_run_environment(self, env): + env.set('NCARG_ROOT', self.spec.prefix) def prepare_site_config(self): fc_flags = [] diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index 951d6f5974..2fb78fcda2 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -30,10 +30,10 @@ class Nco(AutotoolsPackage): # See "Compilation Requirements" at: # http://nco.sourceforge.net/#bld - depends_on('netcdf') + depends_on('netcdf-c') depends_on('antlr@2.7.7+cxx') # required for ncap2 depends_on('gsl') # desirable for ncap2 - depends_on('udunits2') # allows dimensional unit transformations + depends_on('udunits') # allows dimensional unit transformations depends_on('flex', type='build') depends_on('bison', type='build') @@ -45,9 +45,9 @@ class Nco(AutotoolsPackage): spec = self.spec return ['--{0}-doc'.format('enable' if '+doc' in spec else 'disable')] - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('NETCDF_INC', spec['netcdf'].prefix.include) - spack_env.set('NETCDF_LIB', spec['netcdf'].prefix.lib) - spack_env.set('ANTLR_ROOT', spec['antlr'].prefix) - spack_env.set('UDUNITS2_PATH', spec['udunits2'].prefix) + env.set('NETCDF_INC', spec['netcdf-c'].prefix.include) + env.set('NETCDF_LIB', spec['netcdf-c'].prefix.lib) + env.set('ANTLR_ROOT', spec['antlr'].prefix) + env.set('UDUNITS2_PATH', spec['udunits'].prefix) diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py index 2e77799233..914b5d39b9 100644 --- a/var/spack/repos/builtin/packages/ncurses/package.py +++ b/var/spack/repos/builtin/packages/ncurses/package.py @@ -9,7 +9,7 @@ from os.path import exists, join from os import makedirs -class Ncurses(AutotoolsPackage): +class Ncurses(AutotoolsPackage, GNUMirrorPackage): """The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, supports pads and color and multiple highlights and forms @@ -18,7 +18,7 @@ class Ncurses(AutotoolsPackage): homepage = "http://invisible-island.net/ncurses/ncurses.html" # URL must remain http:// so Spack can bootstrap curl - url = "http://ftpmirror.gnu.org/ncurses/ncurses-6.1.tar.gz" + gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz" version('6.1', sha256='aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17') version('6.0', sha256='f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260') @@ -34,8 +34,8 @@ class Ncurses(AutotoolsPackage): patch('patch_gcc_5.txt', when='@6.0%gcc@5.0:') patch('sed_pgi.patch', when='@:6.0') - def setup_environment(self, spack_env, run_env): - spack_env.unset('TERMINFO') + def setup_build_environment(self, env): + env.unset('TERMINFO') def flag_handler(self, name, flags): if name == 'cflags' or name == 'cxxflags': @@ -45,6 +45,7 @@ class Ncurses(AutotoolsPackage): def configure(self, spec, prefix): opts = [ + '--disable-stripping', '--with-shared', '--with-cxx-shared', '--enable-overwrite', diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index 3f1d6f4d8c..9245a26750 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -13,8 +13,8 @@ class Ncview(AutotoolsPackage): version('2.1.7', sha256='a14c2dddac0fc78dad9e4e7e35e2119562589738f4ded55ff6e0eca04d682c82') - depends_on('netcdf') - depends_on('udunits2') + depends_on('netcdf-c') + depends_on('udunits') depends_on('libpng') depends_on('libxaw') @@ -23,7 +23,7 @@ class Ncview(AutotoolsPackage): config_args = [] - if spec.satisfies('^netcdf+mpi'): + if spec.satisfies('^netcdf-c+mpi'): config_args.append('CC={0}'.format(spec['mpi'].mpicc)) return config_args diff --git a/var/spack/repos/builtin/packages/nest/package.py b/var/spack/repos/builtin/packages/nest/package.py index 5ecc403a3b..e51574b1dc 100644 --- a/var/spack/repos/builtin/packages/nest/package.py +++ b/var/spack/repos/builtin/packages/nest/package.py @@ -147,5 +147,5 @@ class Nest(CMakePackage): self.stage.source_path, recursive=True): install(f, path_headers) - def setup_environment(self, spack_env, run_env): - run_env.set("NEST_INSTALL_DIR", self.spec.prefix) + def setup_run_environment(self, env): + env.set("NEST_INSTALL_DIR", self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py index 46a5695c58..f7ba68f69c 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf-c/package.py @@ -16,13 +16,13 @@ def is_integral(x): return False -class Netcdf(AutotoolsPackage): - """NetCDF is a set of software libraries and self-describing, - machine-independent data formats that support the creation, access, - and sharing of array-oriented scientific data.""" +class NetcdfC(AutotoolsPackage): + """NetCDF (network Common Data Form) is a set of software libraries and + 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" - git = "https://github.com/Unidata/netcdf-c" + git = "https://github.com/Unidata/netcdf-c.git" url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-c-4.7.2.tar.gz" def url_for_version(self, version): @@ -34,6 +34,7 @@ class Netcdf(AutotoolsPackage): return url.format(version.dotted) version('master', branch='master') + version('4.7.3', sha256='8e8c9f4ee15531debcf83788594744bd6553b8489c06a43485a15c93b4e0448b') version('4.7.2', sha256='b751cc1f314ac8357df2e0a1bacf35a624df26fe90981d3ad3fa85a5bbd8989a') version('4.7.1', sha256='5c537c585773e575a16b28c3973b9608a98fdc4cf7c42893aa5223024e0001fc') version('4.7.0', sha256='a512d2b4828c6177dd4b96791c4163e4e06e6bfc7123bebfbfe01762d777d1cb') @@ -45,7 +46,7 @@ class Netcdf(AutotoolsPackage): # Version 4.4.1.1 is having problems in tests # https://github.com/Unidata/netcdf-c/issues/343 version('4.4.1.1', sha256='4d44c6f4d02a8faf10ea619bfe1ba8224cd993024f4da12988c7465f663c8cae') - # netcdf@4.4.1 can crash on you (in real life and in tests). See: + # Version 4.4.1 can crash on you (in real life and in tests). See: # https://github.com/Unidata/netcdf-c/issues/282 version('4.4.1', sha256='8915cc69817f7af6165fbe69a8d1dfe21d5929d7cca9d10b10f568669ec6b342') version('4.4.0', sha256='0d40cb7845abd03c363abcd5f57f16e3c0685a0faf8badb2c59867452f6bcf78') @@ -55,6 +56,9 @@ class Netcdf(AutotoolsPackage): # configure fails if curl is not installed. # See https://github.com/Unidata/netcdf-c/issues/1390 patch('https://github.com/Unidata/netcdf-c/commit/e5315da1e748dc541d50796fb05233da65e86b6b.patch', sha256='10a1c3f7fa05e2c82457482e272bbe04d66d0047b237ad0a73e87d63d848b16c', when='@4.7.0') + # fix headers + 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') variant('mpi', default=True, description='Enable parallel I/O for netcdf-4') @@ -121,20 +125,20 @@ class Netcdf(AutotoolsPackage): # Starting version 4.4.0, it became possible to disable parallel I/O even # if HDF5 supports it. For previous versions of the library we need # HDF5 without mpi support to disable parallel I/O. - # The following doesn't work if hdf5+mpi by default and netcdf~mpi is + # The following doesn't work if hdf5+mpi by default and netcdf-c~mpi is # specified in packages.yaml # depends_on('hdf5~mpi', when='@:4.3~mpi') # Thus, we have to introduce a conflict conflicts('~mpi', when='@:4.3^hdf5+mpi', - msg='netcdf@:4.3~mpi requires hdf5~mpi') + msg='netcdf-c@:4.3~mpi requires hdf5~mpi') # We need HDF5 with mpi support to enable parallel I/O. - # The following doesn't work if hdf5~mpi by default and netcdf+mpi is + # The following doesn't work if hdf5~mpi by default and netcdf-c+mpi is # specified in packages.yaml # depends_on('hdf5+mpi', when='+mpi') # Thus, we have to introduce a conflict conflicts('+mpi', when='^hdf5~mpi', - msg='netcdf+mpi requires hdf5+mpi') + msg='netcdf-c+mpi requires hdf5+mpi') # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later # https://github.com/Unidata/netcdf-c/issues/250 @@ -264,3 +268,10 @@ class Netcdf(AutotoolsPackage): def check(self): # h5_test fails when run in parallel make('check', parallel=False) + + @property + def libs(self): + shared = '+shared' in self.spec + return find_libraries( + 'libnetcdf', root=self.prefix, shared=shared, recursive=True + ) diff --git a/var/spack/repos/builtin/packages/netcdf-cxx/package.py b/var/spack/repos/builtin/packages/netcdf-cxx/package.py index 94bb28412f..3c550e5669 100644 --- a/var/spack/repos/builtin/packages/netcdf-cxx/package.py +++ b/var/spack/repos/builtin/packages/netcdf-cxx/package.py @@ -17,7 +17,7 @@ class NetcdfCxx(AutotoolsPackage): version('4.2', sha256='95ed6ab49a0ee001255eac4e44aacb5ca4ea96ba850c08337a3e4c9a0872ccd1') - depends_on('netcdf') + depends_on('netcdf-c') variant( 'netcdf4', default=True, description='Compile with netCDF4 support') @@ -38,7 +38,7 @@ class NetcdfCxx(AutotoolsPackage): # Add these to LDFLAGS explicitly, so the linker doesn't accidentally # use system versions ldflags = [ - self.spec['netcdf'].libs.search_flags, + self.spec['netcdf-c'].libs.search_flags, self.spec['hdf5'].libs.search_flags, ] args.append('LDFLAGS=' + ' '.join(ldflags)) diff --git a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py index 938d74d6aa..b80b38be9e 100644 --- a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py +++ b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py @@ -7,7 +7,9 @@ from spack import * class NetcdfCxx4(AutotoolsPackage): - """C++ interface for NetCDF4""" + """NetCDF (network Common Data Form) is a set of software libraries and + machine-independent data formats that support the creation, access, and + sharing of array-oriented scientific data. This is the C++ distribution.""" homepage = "https://www.unidata.ucar.edu/software/netcdf" url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx4-4.3.1.tar.gz" @@ -19,7 +21,7 @@ class NetcdfCxx4(AutotoolsPackage): # force its usage with this variant. variant('pic', default=True, description='Produce position-independent code (for shared libs)') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('automake', type='build') depends_on('autoconf', type='build') @@ -32,7 +34,7 @@ class NetcdfCxx4(AutotoolsPackage): if name == 'cflags' and '+pic' in self.spec: flags.append(self.compiler.pic_flag) elif name == 'cppflags': - flags.append('-I' + self.spec['netcdf'].prefix.include) + flags.append('-I' + self.spec['netcdf-c'].prefix.include) return (None, None, flags) diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py index d698ff1e8b..77d960c62d 100644 --- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py +++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py @@ -7,7 +7,10 @@ from spack import * class NetcdfFortran(AutotoolsPackage): - """Fortran interface for NetCDF4""" + """NetCDF (network Common Data Form) is a set of software libraries and + machine-independent data formats that support the creation, access, and + sharing of array-oriented scientific data. This is the Fortran + distribution.""" homepage = "https://www.unidata.ucar.edu/software/netcdf" url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.5.2.tar.gz" @@ -17,10 +20,17 @@ class NetcdfFortran(AutotoolsPackage): version('4.4.4', sha256='b2d395175f8d283e68c8be516e231a96b191ade67ad0caafaf7fa01b1e6b5d75') version('4.4.3', sha256='330373aa163d5931e475b5e83da5c1ad041e855185f24e6a8b85d73b48d6cda9') + variant('mpi', default=True, + description='Enable parallel I/O for netcdf-4') variant('pic', default=True, description='Produce position-independent code (for shared libs)') - depends_on('netcdf') + # We need to build with MPI wrappers if parallel I/O features is enabled: + # https://www.unidata.ucar.edu/software/netcdf/docs/building_netcdf_fortran.html + depends_on('mpi', when='+mpi') + + depends_on('netcdf-c~mpi', when='~mpi') + depends_on('netcdf-c+mpi', when='+mpi') # The default libtool.m4 is too old to handle NAG compiler properly: # https://github.com/Unidata/netcdf-fortran/issues/94 @@ -30,14 +40,14 @@ class NetcdfFortran(AutotoolsPackage): if name in ['cflags', 'fflags'] and '+pic' in self.spec: flags.append(self.compiler.pic_flag) elif name == 'cppflags': - flags.append(self.spec['netcdf'].headers.cpp_flags) + flags.append(self.spec['netcdf-c'].headers.cpp_flags) elif name == 'ldflags': # We need to specify LDFLAGS to get correct dependency_libs # in libnetcdff.la, so packages that use libtool for linking # could correctly link to all the dependencies even when the # building takes place outside of Spack environment, i.e. # without Spack's compiler wrappers. - flags.append(self.spec['netcdf'].libs.search_flags) + flags.append(self.spec['netcdf-c'].libs.search_flags) return None, None, flags @@ -53,3 +63,13 @@ class NetcdfFortran(AutotoolsPackage): return find_libraries( libraries, root=self.prefix, shared=shared, recursive=True ) + + def configure_args(self): + config_args = [] + + if '+mpi' in self.spec: + config_args.append('CC=%s' % self.spec['mpi'].mpicc) + config_args.append('FC=%s' % self.spec['mpi'].mpifc) + config_args.append('F77=%s' % self.spec['mpi'].mpif77) + + return config_args diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/int_overflow.patch b/var/spack/repos/builtin/packages/netlib-scalapack/int_overflow.patch new file mode 100644 index 0000000000..b407fc840f --- /dev/null +++ b/var/spack/repos/builtin/packages/netlib-scalapack/int_overflow.patch @@ -0,0 +1,313 @@ +diff --git a/PBLAS/SRC/pdamax_.c b/PBLAS/SRC/pdamax_.c +index 3f4690a..89d8993 100644 +--- a/PBLAS/SRC/pdamax_.c ++++ b/PBLAS/SRC/pdamax_.c +@@ -233,7 +233,7 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX ) + if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) && + ( ( mycol == Xcol ) || ( Xcol < 0 ) ) ) + { +- *INDX = *JX; *AMAX = X[Xii+Xjj*Xd[LLD_]]; ++ *INDX = *JX; *AMAX = *Mptr(X,Xii,Xjj,Xd[LLD_],1); + } + return; + } +@@ -260,9 +260,9 @@ void pdamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX ) + { + Xld = Xd[LLD_]; + Xlindx = Xjj - 1 + +- idamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld ); ++ idamax_( &Xnq, ((char*)Mptr(X,Xii,Xjj,Xld,1)), &Xld ); + Mindxl2g( Xgindx, Xlindx, Xinb, Xnb, mycol, Xsrc, npcol ); +- work[0] = X[Xii+Xlindx*Xld]; ++ work[0] = *Mptr(X,Xii,Xlindx,Xld,1); + work[1] = ((double)( Xgindx+1 )); + } + else +@@ -343,8 +343,8 @@ l_20: + */ + Xld = Xd[LLD_]; + Xlindx = Xjj - 1 + +- idamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld ); +- *AMAX = X[Xii+Xlindx*Xld]; ++ idamax_( &Xnq, ((char*)Mptr(X,Xii,Xjj,Xld,1)), &Xld ); ++ *AMAX = *Mptr(X,Xii,Xlindx,Xld,1); + } + else + { +@@ -419,9 +419,9 @@ l_20: + { + Xld = Xd[LLD_]; + Xlindx = Xii - 1 + +- idamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX ); ++ idamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX ); + Mindxl2g( Xgindx, Xlindx, Ximb, Xmb, myrow, Xsrc, nprow ); +- work[0] = X[Xlindx+Xjj*Xld]; ++ work[0] = *Mptr(X,Xlindx,Xjj,Xld,1); + work[1] = ((double)( Xgindx+1 )); + } + else +@@ -503,8 +503,8 @@ l_40: + */ + Xld = Xd[LLD_]; + Xlindx = Xii - 1 + +- idamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX ); +- *AMAX = X[Xlindx+Xjj*Xld]; ++ idamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX ); ++ *AMAX = *Mptr(X,Xlindx,Xjj,Xld,1); + } + else + { +diff --git a/PBLAS/SRC/pdasum_.c b/PBLAS/SRC/pdasum_.c +index 5b9ce8b..3a56c23 100644 +--- a/PBLAS/SRC/pdasum_.c ++++ b/PBLAS/SRC/pdasum_.c +@@ -225,7 +225,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) && + ( ( mycol == Xcol ) || ( Xcol < 0 ) ) ) + { +- *ASUM = ABS( X[Xii+Xjj*Xd[LLD_]] ); ++ *ASUM = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) ); + } + return; + } +@@ -243,7 +243,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( Xnq > 0 ) + { + Xld = Xd[LLD_]; +- dvasum_( &Xnq, ((char *) ASUM), ((char *)( X+(Xii+Xjj*Xld) )), ++ dvasum_( &Xnq, ((char *) ASUM), ((char *)Mptr( X,Xii,Xjj,Xld,1 )), + &Xld ); + } + /* +@@ -276,7 +276,7 @@ void pdasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( Xnp > 0 ) + { + dvasum_( &Xnp, ((char *) ASUM), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX ); + } + /* + * If Xnp <= 0, ASUM is zero (see initialization above) +diff --git a/PBLAS/SRC/pdger_.c b/PBLAS/SRC/pdger_.c +index e84aa62..517a33c 100644 +--- a/PBLAS/SRC/pdger_.c ++++ b/PBLAS/SRC/pdger_.c +@@ -286,7 +286,7 @@ void pdger_( M, N, ALPHA, X, IX, JX, DESCX, INCX, Y, IY, JY, DESCY, + if( ( Amp > 0 ) && ( Anq > 0 ) ) + { + dger_( &Amp, &Anq, ((char *) ALPHA), XA, &ione, YA, &YAd[LLD_], +- ((char *) (A+(Aii+Ajj*Ald))), &Ald ); ++ ((char *)Mptr(A,Aii,Ajj,Ald,1)), &Ald ); + } + if( XAfr ) free( XA ); + if( YAfr ) free( YA ); +diff --git a/PBLAS/SRC/pdnrm2_.c b/PBLAS/SRC/pdnrm2_.c +index f5bfb1a..8e3bab9 100644 +--- a/PBLAS/SRC/pdnrm2_.c ++++ b/PBLAS/SRC/pdnrm2_.c +@@ -224,7 +224,7 @@ void pdnrm2_( N, NORM2, X, IX, JX, DESCX, INCX ) + */ + if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) && + ( ( mycol == Xcol ) || ( Xcol < 0 ) ) ) +- *NORM2 = ABS( X[Xii+Xjj*Xd[LLD_]] ); ++ *NORM2 = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) ); + return; + } + else if( *INCX == Xd[M_] ) +@@ -246,7 +246,7 @@ void pdnrm2_( N, NORM2, X, IX, JX, DESCX, INCX ) + if( Xnq > 0 ) + { + Xld = Xd[LLD_]; +- Xptr = X+(Xii+Xjj*Xld); ++ Xptr = Mptr(X,Xii,Xjj,Xld,1); + + for( k = 0; k < Xnq; k++ ) + { +@@ -366,7 +366,7 @@ l_20: + Xnp = PB_Cnumroc( *N, Xi, Xd[IMB_], Xd[MB_], myrow, Xd[RSRC_], nprow ); + if( Xnp > 0 ) + { +- Xptr = X+(Xii+Xjj*Xd[LLD_]); ++ Xptr = Mptr(X,Xii,Xjj,Xd[LLD_],1); + + for( k = 0; k < Xnp; k++ ) + { +diff --git a/PBLAS/SRC/pdscal_.c b/PBLAS/SRC/pdscal_.c +index 28ddc66..b7c0964 100644 +--- a/PBLAS/SRC/pdscal_.c ++++ b/PBLAS/SRC/pdscal_.c +@@ -210,12 +210,12 @@ void pdscal_( N, ALPHA, X, IX, JX, DESCX, INCX ) + Xld = Xd[LLD_]; + if( ALPHA[REAL_PART] == ZERO ) + { +- dset_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))), ++ dset_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)), + &Xld ); + } + else + { +- dscal_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))), ++ dscal_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)), + &Xld ); + } + } +@@ -239,12 +239,12 @@ void pdscal_( N, ALPHA, X, IX, JX, DESCX, INCX ) + if( ALPHA[REAL_PART] == ZERO ) + { + dset_( &Xnp, ((char *) ALPHA), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX ); + } + else + { + dscal_( &Xnp, ((char *) ALPHA), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX ); + } + } + } +diff --git a/PBLAS/SRC/psamax_.c b/PBLAS/SRC/psamax_.c +index a23b28a..8cdbd8e 100644 +--- a/PBLAS/SRC/psamax_.c ++++ b/PBLAS/SRC/psamax_.c +@@ -260,7 +260,7 @@ void psamax_( N, AMAX, INDX, X, IX, JX, DESCX, INCX ) + { + Xld = Xd[LLD_]; + Xlindx = Xjj - 1 + +- isamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld ); ++ isamax_( &Xnq, ((char*)(Mptr(X,Xii,Xjj,Xld,1))), &Xld ); + Mindxl2g( Xgindx, Xlindx, Xinb, Xnb, mycol, Xsrc, npcol ); + work[0] = X[Xii+Xlindx*Xld]; + work[1] = ((float )( Xgindx+1 )); +@@ -343,8 +343,8 @@ l_20: + */ + Xld = Xd[LLD_]; + Xlindx = Xjj - 1 + +- isamax_( &Xnq, ((char*)(X+(Xii+Xjj*Xld))), &Xld ); +- *AMAX = X[Xii+Xlindx*Xld]; ++ isamax_( &Xnq, ((char*)(Mptr(X,Xii,Xjj,Xld, 1))), &Xld ); ++ *AMAX = *Mptr(X,Xii,Xlindx,Xld,1); + } + else + { +@@ -419,9 +419,9 @@ l_20: + { + Xld = Xd[LLD_]; + Xlindx = Xii - 1 + +- isamax_( &Xnp, ((char*)(X+(Xii+Xjj*Xld))), INCX ); ++ isamax_( &Xnp, ((char*)Mptr(X,Xii,Xjj,Xld,1)), INCX ); + Mindxl2g( Xgindx, Xlindx, Ximb, Xmb, myrow, Xsrc, nprow ); +- work[0] = X[Xlindx+Xjj*Xld]; ++ work[0] = *Mptr(X,Xlindx,Xjj,Xld,1); + work[1] = ((float )( Xgindx+1 )); + } + else +diff --git a/PBLAS/SRC/psasum_.c b/PBLAS/SRC/psasum_.c +index a9820b3..dd6dcf1 100644 +--- a/PBLAS/SRC/psasum_.c ++++ b/PBLAS/SRC/psasum_.c +@@ -225,7 +225,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) && + ( ( mycol == Xcol ) || ( Xcol < 0 ) ) ) + { +- *ASUM = ABS( X[Xii+Xjj*Xd[LLD_]] ); ++ *ASUM = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) ); + } + return; + } +@@ -243,7 +243,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( Xnq > 0 ) + { + Xld = Xd[LLD_]; +- svasum_( &Xnq, ((char *) ASUM), ((char *)( X+(Xii+Xjj*Xld) )), ++ svasum_( &Xnq, ((char *) ASUM), ((char *)Mptr( X,Xii,Xjj,Xld,1) ), + &Xld ); + } + /* +@@ -276,7 +276,7 @@ void psasum_( N, ASUM, X, IX, JX, DESCX, INCX ) + if( Xnp > 0 ) + { + svasum_( &Xnp, ((char *) ASUM), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX ); + } + /* + * If Xnp <= 0, ASUM is zero (see initialization above) +diff --git a/PBLAS/SRC/psger_.c b/PBLAS/SRC/psger_.c +index f7774a4..47af5e5 100644 +--- a/PBLAS/SRC/psger_.c ++++ b/PBLAS/SRC/psger_.c +@@ -286,7 +286,7 @@ void psger_( M, N, ALPHA, X, IX, JX, DESCX, INCX, Y, IY, JY, DESCY, + if( ( Amp > 0 ) && ( Anq > 0 ) ) + { + sger_( &Amp, &Anq, ((char *) ALPHA), XA, &ione, YA, &YAd[LLD_], +- ((char *) (A+(Aii+Ajj*Ald))), &Ald ); ++ ((char *)Mptr(A,Aii,Ajj,Ald,1)), &Ald ); + } + if( XAfr ) free( XA ); + if( YAfr ) free( YA ); +diff --git a/PBLAS/SRC/psnrm2_.c b/PBLAS/SRC/psnrm2_.c +index ff047c2..05eb00b 100644 +--- a/PBLAS/SRC/psnrm2_.c ++++ b/PBLAS/SRC/psnrm2_.c +@@ -224,7 +224,7 @@ void psnrm2_( N, NORM2, X, IX, JX, DESCX, INCX ) + */ + if( ( ( myrow == Xrow ) || ( Xrow < 0 ) ) && + ( ( mycol == Xcol ) || ( Xcol < 0 ) ) ) +- *NORM2 = ABS( X[Xii+Xjj*Xd[LLD_]] ); ++ *NORM2 = ABS( *Mptr(X,Xii,Xjj,Xd[LLD_],1) ); + return; + } + else if( *INCX == Xd[M_] ) +@@ -246,7 +246,7 @@ void psnrm2_( N, NORM2, X, IX, JX, DESCX, INCX ) + if( Xnq > 0 ) + { + Xld = Xd[LLD_]; +- Xptr = X+(Xii+Xjj*Xld); ++ Xptr = Mptr(X,Xii,Xjj,Xld,1); + + for( k = 0; k < Xnq; k++ ) + { +@@ -366,7 +366,7 @@ l_20: + Xnp = PB_Cnumroc( *N, Xi, Xd[IMB_], Xd[MB_], myrow, Xd[RSRC_], nprow ); + if( Xnp > 0 ) + { +- Xptr = X+(Xii+Xjj*Xd[LLD_]); ++ Xptr = Mptr(X,Xii,Xjj,Xd[LLD_],1); + + for( k = 0; k < Xnp; k++ ) + { +diff --git a/PBLAS/SRC/psscal_.c b/PBLAS/SRC/psscal_.c +index d3652e2..6eb6ee7 100644 +--- a/PBLAS/SRC/psscal_.c ++++ b/PBLAS/SRC/psscal_.c +@@ -210,12 +210,12 @@ void psscal_( N, ALPHA, X, IX, JX, DESCX, INCX ) + Xld = Xd[LLD_]; + if( ALPHA[REAL_PART] == ZERO ) + { +- sset_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))), ++ sset_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)), + &Xld ); + } + else + { +- sscal_( &Xnq, ((char *) ALPHA), ((char *)(X+(Xii+Xjj*Xld))), ++ sscal_( &Xnq, ((char *) ALPHA), ((char *)Mptr(X,Xii,Xjj,Xld,1)), + &Xld ); + } + } +@@ -239,12 +239,12 @@ void psscal_( N, ALPHA, X, IX, JX, DESCX, INCX ) + if( ALPHA[REAL_PART] == ZERO ) + { + sset_( &Xnp, ((char *) ALPHA), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1) ), INCX ); + } + else + { + sscal_( &Xnp, ((char *) ALPHA), +- ((char *)( X+(Xii+Xjj*Xd[LLD_]) )), INCX ); ++ ((char *)Mptr( X,Xii,Xjj,Xd[LLD_],1 )), INCX ); + } + } + } diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py index bd05e73d4b..5841d25c6a 100644 --- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py @@ -15,6 +15,7 @@ class NetlibScalapack(CMakePackage): homepage = "http://www.netlib.org/scalapack/" url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz" + version('2.1.0', sha256='61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6') version('2.0.2', sha256='0c74aeae690fe5ee4db7926f49c5d0bb69ce09eea75beb915e00bba07530395c') version('2.0.1', sha256='a9b34278d4e10b40cbe084c6d87d09af8845e874250719bfbbc497b2a88bfde1') version('2.0.0', sha256='e51fbd9c3ef3a0dbd81385b868e2355900148eea689bf915c5383d72daf73114') @@ -40,9 +41,11 @@ class NetlibScalapack(CMakePackage): depends_on('cmake', when='@2.0.0:', type='build') # See: https://github.com/Reference-ScaLAPACK/scalapack/issues/9 - patch("cmake_fortran_mangle.patch", when='@2.0.2:') + patch("cmake_fortran_mangle.patch", when='@2.0.2:@2.0.99') # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/10 - patch("mpi2-compatibility.patch", when='@2.0.2:') + patch("mpi2-compatibility.patch", when='@2.0.2:@2.0.99') + # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/16 + patch("int_overflow.patch", when='@2.0.0:@2.1.0') @property def libs(self): diff --git a/var/spack/repos/builtin/packages/netperf/package.py b/var/spack/repos/builtin/packages/netperf/package.py new file mode 100644 index 0000000000..c8e4f3a2cd --- /dev/null +++ b/var/spack/repos/builtin/packages/netperf/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Netperf(AutotoolsPackage): + """Netperf is a benchmark that can be used to measure the performance + of many different types of networking. It provides tests for both + unidirectional throughput, and end-to-end latency.""" + + homepage = "https://github.com/HewlettPackard/netperf" + url = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.tar.gz" + + version('2.7.0', sha256='4569bafa4cca3d548eb96a486755af40bd9ceb6ab7c6abd81cc6aa4875007c4e') + version('2.6.0', sha256='560b9c0ef0eed826941f74708b3ac53d91ec13b0b8c565fb107a1b5e6d99ded4') + version('2.5.0', sha256='bebc94102fb74071cf289e0c116f83920dbd982f9e6c913ec0f1c7f6fcffbf77') diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py index 8776e850ae..8045b60f7c 100644 --- a/var/spack/repos/builtin/packages/nettle/package.py +++ b/var/spack/repos/builtin/packages/nettle/package.py @@ -6,12 +6,12 @@ from spack import * -class Nettle(AutotoolsPackage): +class Nettle(AutotoolsPackage, GNUMirrorPackage): """The Nettle package contains the low-level cryptographic library that is designed to fit easily in many contexts.""" homepage = "https://www.lysator.liu.se/~nisse/nettle/" - url = "https://ftpmirror.gnu.org/nettle/nettle-3.3.tar.gz" + gnu_mirror_path = "nettle/nettle-3.3.tar.gz" version('3.4.1', sha256='f941cf1535cd5d1819be5ccae5babef01f6db611f9b5a777bae9c7604b8a92ad') version('3.4', sha256='ae7a42df026550b85daca8389b6a60ba6313b0567f374392e54918588a411e94') diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py index 86fcf5ac84..28758b11fa 100644 --- a/var/spack/repos/builtin/packages/neuron/package.py +++ b/var/spack/repos/builtin/packages/neuron/package.py @@ -189,14 +189,12 @@ class Neuron(Package): make('VERBOSE=1') make('install') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): neuron_archdir = self.get_neuron_archdir() - run_env.prepend_path('PATH', join_path(neuron_archdir, 'bin')) - run_env.prepend_path( - 'LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib')) + env.prepend_path('PATH', join_path(neuron_archdir, 'bin')) + env.prepend_path('LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib')) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): neuron_archdir = self.get_neuron_archdir() - spack_env.prepend_path('PATH', join_path(neuron_archdir, 'bin')) - spack_env.prepend_path( - 'LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib')) + env.prepend_path('PATH', join_path(neuron_archdir, 'bin')) + env.prepend_path('LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib')) diff --git a/var/spack/repos/builtin/packages/nghttp2/package.py b/var/spack/repos/builtin/packages/nghttp2/package.py index 9f39e163d4..7b4953dd51 100644 --- a/var/spack/repos/builtin/packages/nghttp2/package.py +++ b/var/spack/repos/builtin/packages/nghttp2/package.py @@ -5,6 +5,8 @@ from spack import * +import os + class Nghttp2(AutotoolsPackage): """nghttp2 is an implementation of HTTP/2 and its header compression @@ -19,17 +21,17 @@ class Nghttp2(AutotoolsPackage): depends_on('py-cython@0.19:', type=('build', 'run')) depends_on('py-setuptools', type=('build')) - def setup_environment(self, spack_env, run_env): - site_packages_dir = '/'.join( - [self.spec.prefix.lib, - ('python' + str(self.spec['python'].version.up_to(2))), - 'site-packages']) - spack_env.prepend_path('PYTHONPATH', site_packages_dir) + 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 = '/'.join( - [self.spec.prefix.lib, - ('python' + str(self.spec['python'].version.up_to(2))), - 'site-packages']) + 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) diff --git a/var/spack/repos/builtin/packages/nginx/package.py b/var/spack/repos/builtin/packages/nginx/package.py index 32d7142a9e..e52ad91488 100644 --- a/var/spack/repos/builtin/packages/nginx/package.py +++ b/var/spack/repos/builtin/packages/nginx/package.py @@ -28,6 +28,6 @@ class Nginx(AutotoolsPackage): args = ['--with-http_ssl_module'] return args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Prepend the sbin directory to PATH.""" - run_env.prepend_path('PATH', join_path(self.prefix, 'sbin')) + env.prepend_path('PATH', self.prefix.sbin) diff --git a/var/spack/repos/builtin/packages/nicstat/package.py b/var/spack/repos/builtin/packages/nicstat/package.py new file mode 100644 index 0000000000..57bb609856 --- /dev/null +++ b/var/spack/repos/builtin/packages/nicstat/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Nicstat(MakefilePackage): + """ + Nicstat is a Solaris and Linux command-line that prints out network + statistics for all network interface cards (NICs), including packets, + kilobytes per second, average packet sizes and more. + """ + + homepage = "https://github.com/scotte/nicstat" + url = "https://jaist.dl.sourceforge.net/project/nicstat/nicstat-1.95.tar.gz" + + version('1.95', sha256='c4cc33f8838f4523f27c3d7584eedbe59f4c587f0821612f5ac2201adc18b367') + + def edit(self, spec, prefix): + copy('Makefile.Linux', 'makefile') + filter_file(r'CMODEL =\s+-m32', '', 'makefile') + filter_file('sudo', '', 'makefile', string=True) + + def install(self, spec, prefix): + install_tree(".", prefix) diff --git a/var/spack/repos/builtin/packages/nlohmann-json/package.py b/var/spack/repos/builtin/packages/nlohmann-json/package.py index 628e4395bc..d8ee1cceaf 100644 --- a/var/spack/repos/builtin/packages/nlohmann-json/package.py +++ b/var/spack/repos/builtin/packages/nlohmann-json/package.py @@ -13,6 +13,7 @@ class NlohmannJson(CMakePackage): url = "https://github.com/nlohmann/json/archive/v3.1.2.tar.gz" maintainers = ['ax3l'] + version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d') version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760') version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d') version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732') diff --git a/var/spack/repos/builtin/packages/nlopt/package.py b/var/spack/repos/builtin/packages/nlopt/package.py index 417e7f5cd6..639e5d057d 100644 --- a/var/spack/repos/builtin/packages/nlopt/package.py +++ b/var/spack/repos/builtin/packages/nlopt/package.py @@ -16,7 +16,7 @@ class Nlopt(CMakePackage): url = "https://github.com/stevengj/nlopt/archive/v2.5.0.tar.gz" git = "https://github.com/stevengj/nlopt.git" - version('develop', branch='master') + version('master', branch='master') version('2.5.0', sha256='c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae') variant('shared', default=True, description='Enables the build of shared libraries') @@ -28,13 +28,14 @@ class Nlopt(CMakePackage): # Note: matlab is licenced - spack does not download automatically variant("matlab", default=False, description="Build the Matlab bindings.") - depends_on('cmake@3.0:', type='build', when='@develop') - depends_on('python', when='+python') + depends_on('cmake@3.0:', type='build', when='@master') + depends_on('python', when='+python', type=('build', 'run')) depends_on('py-numpy', when='+python', type=('build', 'run')) depends_on('swig', when='+python') depends_on('guile', when='+guile') depends_on('octave', when='+octave') depends_on('matlab', when='+matlab') + extends('python', when='+python') def cmake_args(self): # Add arguments other than @@ -43,7 +44,7 @@ class Nlopt(CMakePackage): args = [] # Specify on command line to alter defaults: - # eg: spack install nlopt@develop +guile -octave +cxx + # eg: spack install nlopt@master +guile -octave +cxx # Spack should locate python by default - but to point to a build if '+python' in spec: diff --git a/var/spack/repos/builtin/packages/node-js/package.py b/var/spack/repos/builtin/packages/node-js/package.py index 93dd232143..7f31fd13b0 100644 --- a/var/spack/repos/builtin/packages/node-js/package.py +++ b/var/spack/repos/builtin/packages/node-js/package.py @@ -13,8 +13,15 @@ class NodeJs(Package): engine.""" homepage = "https://nodejs.org/" - url = "https://nodejs.org/download/release/v6.3.0/node-v6.3.0.tar.gz" + url = "https://nodejs.org/dist/v13.5.0/node-v13.5.0.tar.gz" + list_url = "https://nodejs.org/dist/" + list_depth = 1 + # Current (latest features) + version('13.5.0', sha256='4b8078d896a7550d7ed399c1b4ac9043e9f883be404d9b337185c8d8479f2db8') + + # LTS (recommended for most users) + version('12.14.0', sha256='5c1939867228f3845c808ef84a89c8ee93cc35f857bf7587ecee1b5a6d9da67b', preferred=True) version('11.1.0', sha256='3f53b5ac25b2d36ad538267083c0e603d9236867a936c22a9116d95fa10c60d5') version('10.13.0', sha256='aa06825fff375ece7c0d881ae0de5d402a857e8cabff9b4a50f2f0b7b44906be') version('8.9.1', sha256='32491b7fcc4696b2cdead45c47e52ad16bbed8f78885d32e873952fee0f971e1') @@ -22,30 +29,32 @@ class NodeJs(Package): version('6.3.0', sha256='4ed7a99985f8afee337cc22d5fef61b495ab4238dfff3750ac9019e87fc6aae6') version('6.2.2', sha256='b6baee57a0ede496c7c7765001f7495ad74c8dfe8c34f1a6fb2cd5d8d526ffce') - # variant('bash-completion', default=False, description='Build with bash-completion support for npm') # NOQA: ignore=E501 variant('debug', default=False, description='Include debugger support') variant('doc', default=False, description='Compile with documentation') variant('icu4c', default=False, description='Build with support for all locales instead of just English') variant('openssl', default=True, description='Build with Spacks OpenSSL instead of the bundled version') variant('zlib', default=True, description='Build with Spacks zlib instead of the bundled version') + # https://github.com/nodejs/node/blob/master/BUILDING.md#unix-and-macos + depends_on('gmake@3.81:', type='build') depends_on('libtool', type='build', when=sys.platform != 'darwin') depends_on('pkgconfig', type='build') - depends_on('python@2.7:2.8', type='build') + depends_on('python@2.7:2.8,3.5:', when='@12:', type='build') + depends_on('python@2.7:2.8', when='@:11', type='build') # depends_on('bash-completion', when="+bash-completion") depends_on('icu4c', when='+icu4c') depends_on('openssl@1.0.2d:1.0.99', when='@:9+openssl') depends_on('openssl@1.1:', when='@10:+openssl') depends_on('zlib', when='+zlib') - def install(self, spec, prefix): - options = [] - options.extend(['--prefix={0}'.format(prefix)]) + phases = ['configure', 'build', 'install'] - # Note: npm is updated more regularly than node.js, so we build the - # package instead of using the bundled version - options.extend(['--without-npm']) + def setup_build_environment(self, env): + # Force use of experimental Python 3 support + env.set('PYTHON', self.spec['python'].command.path) + env.set('NODE_GYP_FORCE_PYTHON', self.spec['python'].command.path) + def configure_args(self): # On OSX, the system libtool must be used # So, we ensure that this is the case by... if sys.platform == 'darwin': @@ -60,37 +69,52 @@ class NodeJs(Package): '(temporarily) remove \n %s or its link to libtool from' 'path') - # TODO: Add bash-completion + args = [ + '--prefix={0}'.format(self.prefix), + # Note: npm is updated more regularly than node.js, so we build + # the package instead of using the bundled version + '--without-npm' + ] - if '+debug' in spec: - options.extend(['--debug']) + if '+debug' in self.spec: + args.append('--debug') - if '+openssl' in spec: - options.extend([ + if '+openssl' in self.spec: + args.extend([ '--shared-openssl', - '--shared-openssl-includes=%s' % spec['openssl'].prefix.include, # NOQA: ignore=E501 - '--shared-openssl-libpath=%s' % spec['openssl'].prefix.lib, + '--shared-openssl-includes={0}'.format( + self.spec['openssl'].prefix.include), + '--shared-openssl-libpath={0}'.format( + self.spec['openssl'].prefix.lib), ]) - if '+zlib' in spec: - options.extend([ + if '+zlib' in self.spec: + args.extend([ '--shared-zlib', - '--shared-zlib-includes=%s' % spec['zlib'].prefix.include, - '--shared-zlib-libpath=%s' % spec['zlib'].prefix.lib, + '--shared-zlib-includes={0}'.format( + self.spec['zlib'].prefix.include), + '--shared-zlib-libpath={0}'.format( + self.spec['zlib'].prefix.lib), ]) - if '+icu4c' in spec: - options.extend(['--with-intl=full-icu']) - # else: - # options.extend(['--with-intl=system-icu']) + if '+icu4c' in self.spec: + args.append('--with-intl=full-icu') - configure(*options) + return args - if self.run_tests: - make('test') - make('test-addons') + def configure(self, spec, prefix): + python('configure.py', *self.configure_args()) + def build(self, spec, prefix): + make() if '+doc' in spec: make('doc') + @run_after('build') + @on_package_attributes(run_tests=True) + def test(self): + make('test') + make('test-addons') + + def install(self, spec, prefix): make('install') diff --git a/var/spack/repos/builtin/packages/npm/package.py b/var/spack/repos/builtin/packages/npm/package.py index 76cc11703d..3d6d119c9b 100644 --- a/var/spack/repos/builtin/packages/npm/package.py +++ b/var/spack/repos/builtin/packages/npm/package.py @@ -4,24 +4,60 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import shutil from spack import * -class Npm(AutotoolsPackage): +# NOTE: not actually an Autotools package +class Npm(Package): """npm: A package manager for javascript.""" homepage = "https://github.com/npm/npm" # base http://www.npmjs.com/ - url = "https://registry.npmjs.org/npm/-/npm-3.10.5.tgz" + url = "https://registry.npmjs.org/npm/-/npm-6.13.4.tgz" + version('6.13.4', sha256='a063290bd5fa06a8753de14169b7b243750432f42d01213fbd699e6b85916de7') version('3.10.9', sha256='fb0871b1aebf4b74717a72289fade356aedca83ee54e7386e38cb51874501dd6') version('3.10.5', sha256='ff019769e186152098841c1fa6325e5a79f7903a45f13bd0046a4dc8e63f845f') depends_on('node-js', type=('build', 'run')) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + # npm 6.13.4 ships with node-gyp 5.0.5, which contains several Python 3 + # compatibility issues on macOS. Manually update to node-gyp 6.0.1 for + # full Python 3 support. + resource(name='node-gyp', destination='node-gyp', + url='https://registry.npmjs.org/node-gyp/-/node-gyp-6.0.1.tgz', + sha256='bbc0e137e17a63676efc97a0e3b1fcf101498a1c2c01c3341cd9491f248711b8') + resource(name='env-paths', destination='env-paths', + url='https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz', + sha256='168b394fbca60ea81dc84b1824466df96246b9eb4d671c2541f55f408a264b4c') + + phases = ['configure', 'build', 'install'] + + def patch(self): + shutil.rmtree('node_modules/node-gyp') + install_tree('node-gyp/package', 'node_modules/node-gyp') + filter_file('"node-gyp": "^5.0.5"', '"node-gyp": "^6.0.1"', + 'package.json', string=True) + install_tree('env-paths/package', 'node_modules/env-paths') + + def configure(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + def build(self, spec, prefix): + make() + + def install(self, spec, prefix): + make('install') + + def setup_dependent_build_environment(self, env, dependent_spec): + npm_config_cache_dir = "%s/npm-cache" % dependent_spec.prefix + if not os.path.isdir(npm_config_cache_dir): + mkdir(npm_config_cache_dir) + env.set('npm_config_cache', npm_config_cache_dir) + + def setup_dependent_run_environment(self, env, dependent_spec): npm_config_cache_dir = "%s/npm-cache" % dependent_spec.prefix if not os.path.isdir(npm_config_cache_dir): mkdir(npm_config_cache_dir) - run_env.set('npm_config_cache', npm_config_cache_dir) - spack_env.set('npm_config_cache', npm_config_cache_dir) + env.set('npm_config_cache', npm_config_cache_dir) diff --git a/var/spack/repos/builtin/packages/nrm/package.py b/var/spack/repos/builtin/packages/nrm/package.py index b15bc11323..342d57faee 100644 --- a/var/spack/repos/builtin/packages/nrm/package.py +++ b/var/spack/repos/builtin/packages/nrm/package.py @@ -16,11 +16,11 @@ class Nrm(PythonPackage): depends_on('py-setuptools', type=('build')) depends_on('py-six', type=('build', 'run')) - depends_on('py-zmq@17.1.2', type=('build', 'run')) + depends_on('py-pyzmq@17.1.2', type=('build', 'run')) depends_on('py-pyyaml', type=('build', 'run')) depends_on('py-tornado@5.1.1', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) - depends_on('py-argparse@1.2.1:', type=('build', 'run')) + depends_on('py-argparse@1.2.1:', type=('build', 'run'), when='^python@:2.6') depends_on('py-jsonschema@2.6.0', type=('build', 'run')) depends_on('py-warlock', type=('build', 'run')) depends_on('py-scipy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/ntpoly/package.py b/var/spack/repos/builtin/packages/ntpoly/package.py index d390e19dba..75ba5a6890 100644 --- a/var/spack/repos/builtin/packages/ntpoly/package.py +++ b/var/spack/repos/builtin/packages/ntpoly/package.py @@ -16,7 +16,7 @@ class Ntpoly(CMakePackage): """ homepage = "https://william-dawson.github.io/NTPoly/" - url = "https://github.com/william-dawson/NTPoly/archive/ntpoly-v2.3.1-alpha.tar.gz" + url = "https://github.com/william-dawson/NTPoly/archive/ntpoly-v2.3.1.tar.gz" version('2.3.1', sha256='af8c7690321607fbdee9671b9cb3acbed945148014e0541435858cf82bfd887e') diff --git a/var/spack/repos/builtin/packages/nut/package.py b/var/spack/repos/builtin/packages/nut/package.py index f159838c63..d5649fdaec 100644 --- a/var/spack/repos/builtin/packages/nut/package.py +++ b/var/spack/repos/builtin/packages/nut/package.py @@ -13,7 +13,7 @@ class Nut(CMakePackage): and performance issues.""" homepage = "https://github.com/lanl/NuT" - url = "https://github.com/lanl/NuT/archive/0.1.0.tar.gz" + url = "https://github.com/lanl/NuT/archive/0.1.1.tar.gz" git = "https://github.com/lanl/NuT.git" tags = ['proxy-app'] @@ -29,11 +29,11 @@ class Nut(CMakePackage): conflicts('%xl', when='@serial') conflicts('%nag', when='@serial') - def setup_environment(self, spack_env, run_env): - spack_env.set('RANDOM123_DIR', self.spec['random123'].prefix) - build_targets = ['VERBOSE=on'] + def setup_build_environment(self, env): + env.set('RANDOM123_DIR', self.spec['random123'].prefix) + def install(self, spec, prefix): install('README.md', prefix) mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py index e3d3cb9c83..a955b2c769 100644 --- a/var/spack/repos/builtin/packages/ocaml/package.py +++ b/var/spack/repos/builtin/packages/ocaml/package.py @@ -20,7 +20,7 @@ class Ocaml(Package): def url_for_version(self, version): url = "http://caml.inria.fr/pub/distrib/ocaml-{0}/ocaml-{1}.tar.gz" - return url.format(version.up_to(2), version) + return url.format(str(version)[:-2], version) def install(self, spec, prefix): configure('-prefix', '{0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/occa/package.py b/var/spack/repos/builtin/packages/occa/package.py index c6528f2960..99fd35f917 100644 --- a/var/spack/repos/builtin/packages/occa/package.py +++ b/var/spack/repos/builtin/packages/occa/package.py @@ -41,7 +41,7 @@ class Occa(Package): conflicts('%gcc@7:', when='^cuda@:9') def install(self, spec, prefix): - # The build environment is set by the 'setup_environment' method. + # The build environment is set by the 'setup_build_environment' method. # Copy the source to the installation directory and build OCCA there. install_tree('.', prefix) make('-C', prefix) @@ -65,7 +65,7 @@ class Occa(Package): s_env.set('OCCA_CUDA_COMPILER', join_path(cuda_dir, 'bin', 'nvcc')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec # The environment variable CXX is automatically set to the Spack # compiler wrapper. @@ -79,7 +79,7 @@ class Occa(Package): # the verbose output, so we keep both. cxxflags = spec.compiler_flags['cxxflags'] if cxxflags: - spack_env.set('CXXFLAGS', ' '.join(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 @@ -92,21 +92,23 @@ class Occa(Package): cuda_dir, shared=True, recursive=True) - spack_env.set('OCCA_INCLUDE_PATH', cuda_dir.include) - spack_env.set('OCCA_LIBRARY_PATH', ':'.join(cuda_libs.directories)) + env.set('OCCA_INCLUDE_PATH', cuda_dir.include) + env.set('OCCA_LIBRARY_PATH', ':'.join(cuda_libs.directories)) else: - spack_env.set('OCCA_CUDA_ENABLED', '0') + env.set('OCCA_CUDA_ENABLED', '0') if '~opencl' in spec: - spack_env.set('OCCA_OPENCL_ENABLED', '0') + env.set('OCCA_OPENCL_ENABLED', '0') # Setup run-time environment for testing. - spack_env.set('OCCA_VERBOSE', '1') - self._setup_runtime_flags(spack_env) - # The 'run_env' is included in the Spack generated module files. - self._setup_runtime_flags(run_env) + env.set('OCCA_VERBOSE', '1') + self._setup_runtime_flags(env) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + 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(spack_env) + self._setup_runtime_flags(env) diff --git a/var/spack/repos/builtin/packages/oclint/package.py b/var/spack/repos/builtin/packages/oclint/package.py index 645e7090d4..215599ff11 100644 --- a/var/spack/repos/builtin/packages/oclint/package.py +++ b/var/spack/repos/builtin/packages/oclint/package.py @@ -19,7 +19,7 @@ class Oclint(Package): version('0.13', sha256='a0fd188673863e6357d6585b9bb9c3affe737df134b9383a1a5ed021d09ed848') depends_on('python', type=('build')) - depends_on('py-argparse', type=('build')) + depends_on('py-argparse', type=('build'), when='^python@:2.6') depends_on('git', type=('build')) depends_on('subversion', type=('build')) depends_on('cmake', type=('build')) diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py index cdfa076c73..8701463d48 100644 --- a/var/spack/repos/builtin/packages/octave/package.py +++ b/var/spack/repos/builtin/packages/octave/package.py @@ -7,7 +7,7 @@ from spack import * import sys -class Octave(AutotoolsPackage): +class Octave(AutotoolsPackage, GNUMirrorPackage): """GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other @@ -15,7 +15,7 @@ class Octave(AutotoolsPackage): Matlab. It may also be used as a batch-oriented language.""" homepage = "https://www.gnu.org/software/octave/" - url = "https://ftpmirror.gnu.org/octave/octave-4.0.0.tar.gz" + gnu_mirror_path = "octave/octave-4.0.0.tar.gz" extendable = True @@ -75,7 +75,7 @@ class Octave(AutotoolsPackage): depends_on('glpk', when='+glpk') depends_on('gl2ps', when='+gl2ps') depends_on('gnuplot', when='+gnuplot') - depends_on('image-magick', when='+magick') + depends_on('imagemagick', when='+magick') depends_on('hdf5', when='+hdf5') depends_on('java', when='+jdk') # TODO: requires Java 6 ? depends_on('llvm', when='+llvm') @@ -156,7 +156,7 @@ class Octave(AutotoolsPackage): if '+magick' in spec: config_args.append("--with-magick=%s" - % spec['image-magick'].prefix.lib) + % spec['imagemagick'].prefix.lib) else: config_args.append("--without-magick") diff --git a/var/spack/repos/builtin/packages/omega-h/package.py b/var/spack/repos/builtin/packages/omega-h/package.py index e459406164..0c9c323650 100644 --- a/var/spack/repos/builtin/packages/omega-h/package.py +++ b/var/spack/repos/builtin/packages/omega-h/package.py @@ -12,7 +12,7 @@ class OmegaH(CMakePackage): """ homepage = "https://github.com/SNLComputation/omega_h" - url = "https://github.com/SNLComputation/omega_h/archive/v9.13.4.tar.gz" + url = "https://github.com/SNLComputation/omega_h/archive/v9.29.0.tar.gz" git = "https://github.com/SNLComputation/omega_h.git" maintainers = ['ibaned'] diff --git a/var/spack/repos/builtin/packages/oniguruma/package.py b/var/spack/repos/builtin/packages/oniguruma/package.py index 9d9ccecdec..3c9bfb1d17 100644 --- a/var/spack/repos/builtin/packages/oniguruma/package.py +++ b/var/spack/repos/builtin/packages/oniguruma/package.py @@ -10,6 +10,25 @@ class Oniguruma(AutotoolsPackage): """Regular expression library.""" homepage = "https://github.com/kkos/oniguruma" - url = "https://github.com/kkos/oniguruma/releases/download/v6.1.3/onig-6.1.3.tar.gz" + url = "https://github.com/kkos/oniguruma/releases/download/v6.9.4/onig-6.9.4.tar.gz" + version('6.9.4', sha256='4669d22ff7e0992a7e93e116161cac9c0949cd8960d1c562982026726f0e6d53') version('6.1.3', sha256='480c850cd7c7f2fcaad0942b4a488e2af01fbb8e65375d34908f558b432725cf') + + @property + def libs(self): + return find_libraries('libonig', root=self.prefix, recursive=True) + + @run_after('install') + @on_package_attributes(run_tests=True) + def configuration_check(self): + onig_config = Executable(join_path(self.prefix.bin, 'onig-config')) + + assert onig_config('--cflags', output=str).rstrip() == \ + self.spec['oniguruma'].headers.include_flags + assert onig_config('--libs', output=str).rstrip() == \ + self.spec['oniguruma'].libs.ld_flags + assert onig_config('--prefix', output=str).rstrip() == \ + self.prefix + assert onig_config('--exec-prefix', output=str).rstrip() == \ + self.prefix diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py index 29e573e5bb..cf94743378 100644 --- a/var/spack/repos/builtin/packages/opa-psm2/package.py +++ b/var/spack/repos/builtin/packages/opa-psm2/package.py @@ -35,12 +35,12 @@ class OpaPsm2(MakefilePackage): patch('opa-psm2-compiler.patch', when='@11.2.68:', sha256='fe31fda9aaee13acb87d178af2282446196d2cc0b21163034573706110b2e2d6') - def setup_environment(self, spack_env, run_env): - spack_env.set('DESTDIR', self.prefix) + def setup_build_environment(self, env): + env.set('DESTDIR', self.prefix) if '%intel' in self.spec: # this variable must be set when we use the Intel compilers to # ensure that the proper flags are set - spack_env.set('CCARCH', 'icc') + env.set('CCARCH', 'icc') def edit(self, spec, prefix): # Change the makefile so libraries and includes are not diff --git a/var/spack/repos/builtin/packages/opam/package.py b/var/spack/repos/builtin/packages/opam/package.py index bc32c26e52..2ff78ac0fb 100644 --- a/var/spack/repos/builtin/packages/opam/package.py +++ b/var/spack/repos/builtin/packages/opam/package.py @@ -23,10 +23,10 @@ class Opam(AutotoolsPackage): parallel = False - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Environment variable setting taken from # https://github.com/Homebrew/homebrew-core/blob/master/Formula/opam.rb - spack_env.set('OCAMLPARAM', 'safe-string=0,_') # OCaml 4.06.0 compat + env.set('OCAMLPARAM', 'safe-string=0,_') # OCaml 4.06.0 compat def build(self, spec, prefix): make('lib-ext') diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py new file mode 100644 index 0000000000..77c9092735 --- /dev/null +++ b/var/spack/repos/builtin/packages/opencascade/package.py @@ -0,0 +1,67 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Opencascade(CMakePackage): + """Open CASCADE Technology is a software development kit (SDK) + intended for development of applications dealing with 3D CAD data, + freely available in open source. It includes a set of C++ class + libraries providing services for 3D surface and solid modeling, + 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" + + version('7.4.0', extension='tar.gz', + sha256='655da7717dac3460a22a6a7ee68860c1da56da2fec9c380d8ac0ac0349d67676') + + variant('tbb', default=False, + description='Build with Intel Threading Building Blocks') + variant('vtk', default=False, + description='Enable VTK support') + variant('freeimage', default=False, + description='Build with FreeImage') + variant('rapidjson', default=False, + description='Build with rapidjson') + + depends_on('intel-tbb', when='+tbb') + depends_on('vtk', when='+vtk') + depends_on('freeimage', when='+freeimage') + depends_on('rapidjson', when='+rapidjson') + + def cmake_args(self): + args = [] + + if '+tbb' in self.spec: + args.append('-DUSE_TBB=ON') + args.append('-D3RDPARTY_VTK_DIR=%s' % + self.spec['intel-tbb'].prefix) + else: + args.append('-DUSE_TBB=OFF') + + if '+vtk' in self.spec: + args.append('-DUSE_VTK=ON') + args.append('-D3RDPARTY_VTK_DIR=%s' % + self.spec['vtk'].prefix) + else: + args.append('-DUSE_VTK=OFF') + + if '+freeimage' in self.spec: + args.append('-DUSE_FREEIMAGE=ON') + args.append('-D3RDPARTY_FREEIMAGE_DIR=%s' % + self.spec['freeimage'].prefix) + else: + args.append('-DUSE_FREEIMAGE=OFF') + + if '+rapidjson' in self.spec: + args.append('-DUSE_RAPIDJSON=ON') + args.append('-D3RDPARTY_RAPIDJSON_DIR=%s' % + self.spec['rapidjson'].prefix) + else: + args.append('-DUSE_RAPIDJSON=OFF') + + return args diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py index 363cc32f05..19213b3844 100644 --- a/var/spack/repos/builtin/packages/openfoam-org/package.py +++ b/var/spack/repos/builtin/packages/openfoam-org/package.py @@ -62,6 +62,10 @@ class OpenfoamOrg(Package): git = "https://github.com/OpenFOAM/OpenFOAM-dev.git" version('develop', branch='master') + version('7', sha256='12389cf092dc032372617785822a597aee434a50a62db2a520ab35ba5a7548b5', + url=baseurl + '/OpenFOAM-7/archive/version-7.tar.gz') + version('6', sha256='32a6af4120e691ca2df29c5b9bd7bc7a3e11208947f9bccf6087cfff5492f025', + url=baseurl + '/OpenFOAM-6/archive/version-6.tar.gz') version('5.0', sha256='9057d6a8bb9fa18802881feba215215699065e0b3c5cdd0c0e84cb29c9916c89', url=baseurl + '/OpenFOAM-5.x/archive/version-5.0.tar.gz') version('4.1', sha256='2de18de64e7abdb1b649ad8e9d2d58b77a2b188fb5bcb6f7c2a038282081fd31', @@ -75,6 +79,8 @@ class OpenfoamOrg(Package): description='Compile with 32-bit scalar (single-precision)') variant('source', default=True, description='Install library/application sources and tutorials') + variant('metis', default=False, + description='With metis decomposition') depends_on('mpi') depends_on('zlib') @@ -85,12 +91,17 @@ class OpenfoamOrg(Package): depends_on('scotch~metis+mpi~int64', when='~int64') depends_on('scotch~metis+mpi+int64', when='+int64') + depends_on('metis@5:', when='+metis') + depends_on('metis+int64', when='+metis+int64') + # General patches - foamEtcFile as per openfoam.com (robuster) common = ['spack-Allwmake', 'README-spack'] assets = ['bin/foamEtcFile'] # Version-specific patches - patch('50-etc.patch', when='@5.0:') + patch('https://github.com/OpenFOAM/OpenFOAM-7/commit/ef33cf38ac9b811072a8970c71fbda35a90f6641.patch', + sha256='73103e6b1bdbf3b1e0d517cbbd11562e98c6e9464df5f43e5125e9a5b457d1c5', when='@7') + 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') @@ -126,24 +137,32 @@ class OpenfoamOrg(Package): settings['label-size'] = False return settings - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # This should be similar to the openfoam package, # but sourcing the etc/bashrc here seems to exit with an error. # ... this needs to be examined in more detail. # # Minimal environment only. - run_env.set('FOAM_PROJECT_DIR', self.projectdir) - run_env.set('WM_PROJECT_DIR', self.projectdir) + env.set('FOAM_PROJECT_DIR', self.projectdir) + env.set('WM_PROJECT_DIR', self.projectdir) for d in ['wmake', self.archbin]: # bin already added automatically - run_env.prepend_path('PATH', join_path(self.projectdir, d)) + env.prepend_path('PATH', join_path(self.projectdir, d)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Location of the OpenFOAM project directory. This is identical to the WM_PROJECT_DIR value, but we avoid that variable since it would mask the normal OpenFOAM cleanup of previous versions. """ - spack_env.set('FOAM_PROJECT_DIR', self.projectdir) + env.set('FOAM_PROJECT_DIR', self.projectdir) + + def setup_dependent_run_environment(self, env, dependent_spec): + """Location of the OpenFOAM project directory. + This is identical to the WM_PROJECT_DIR value, but we avoid that + variable since it would mask the normal OpenFOAM cleanup of + previous versions. + """ + env.set('FOAM_PROJECT_DIR', self.projectdir) @property def projectdir(self): @@ -246,6 +265,11 @@ class OpenfoamOrg(Package): 'SCOTCH_VERSION': 'scotch-{0}'.format(spec['scotch'].version), } + if '+metis' in spec: + self.etc_config['metis'] = { + 'METIS_ARCH_PATH': spec['metis'].prefix, + } + # Write prefs files according to the configuration. # Only need prefs.sh for building, but install both for end-users if self.etc_prefs: diff --git a/var/spack/repos/builtin/packages/openfoam/common/spack-Allwmake b/var/spack/repos/builtin/packages/openfoam/common/spack-Allwmake index a98d7d0db2..91287383d8 100755 --- a/var/spack/repos/builtin/packages/openfoam/common/spack-Allwmake +++ b/var/spack/repos/builtin/packages/openfoam/common/spack-Allwmake @@ -1,8 +1,8 @@ #!/bin/bash # Build wrapper script - FOAM_INST_DIR is only required by foam-extend export FOAM_INST_DIR=$(cd .. && pwd -L) -. $PWD/etc/bashrc '' # No arguments -mkdir -p $FOAM_APPBIN $FOAM_LIBBIN 2>/dev/null # Allow interrupt +. "$PWD/etc/bashrc" '' # No arguments +mkdir -p "$FOAM_APPBIN" "$FOAM_LIBBIN" 2>/dev/null # Allow build interrupt echo "Build openfoam with SPACK ($@)" echo "WM_PROJECT_DIR = $WM_PROJECT_DIR" @@ -12,6 +12,7 @@ then ./Allwmake-spack $@ # Pass arguments else ./Allwmake $@ # Pass arguments + ##echo "Disabled build of openfoam" # When testing environment only # Generate manpages if [ -x bin/tools/foamCreateManpage ] @@ -23,13 +24,13 @@ fi # Link non-dummy MPI_FOAM type to parent-dir, where rpath can find it -if [ "${FOAM_MPI:=dummy}" != dummy -a -d "$FOAM_LIBBIN/$FOAM_MPI" ] +if [ "${FOAM_MPI:=dummy}" != dummy ] && [ -d "$FOAM_LIBBIN/$FOAM_MPI" ] then ( cd "$FOAM_LIBBIN" || exit 1 - for i in $FOAM_MPI/lib*.so + for i in "$FOAM_MPI"/lib*.so do - [ -f $i ] && ln -sf $i "${i##*/}" + [ -f "$i" ] && ln -sf "$i" "${i##*/}" done ) fi diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index d0d6dac390..d087eecaa7 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -38,7 +38,7 @@ # - Combining +mgridgen with +int64 or +float32 probably won't work. # # The spack 'develop' version of openfoam retains the upstream -# WM_PROJECT_VERSION=plus naming internally. +# WM_PROJECT_VERSION=com naming internally. # ############################################################################## import glob @@ -259,12 +259,15 @@ class Openfoam(Package): maintainers = ['olesenm'] homepage = "http://www.openfoam.com/" url = "https://sourceforge.net/projects/openfoam/files/v1906/OpenFOAM-v1906.tgz" - git = "https://develop.openfoam.com/Development/OpenFOAM-plus.git" + git = "https://develop.openfoam.com/Development/openfoam.git" list_url = "https://sourceforge.net/projects/openfoam/files/" list_depth = 2 version('develop', branch='develop', submodules='True') - version('1906', sha256='15e38c2dc659b63753a0dd3dff913222cc46d6a40089a1b76973dd741145f61a') + version('master', branch='master', submodules='True') + version('1906_191103', sha256='631a7fcd926ccbcdef0ab737a9dc55e58d6bedae2f3acaa041ea679db6c9303b') + version('1906', sha256='bee03c4b1da0d2c9f98eb469eeffbce3a8614728ef8e87f664042a7490976537') + version('1812_191001', sha256='857a3d476696679313ea9a3f022b33446ddef2bcd417049a9486d504c12038dd') version('1812_190531', sha256='51f0ef49a199edf3cd94e2ccfc7330e54e93c8e4ddb29ee66fe3e6b443583b34') version('1812', sha256='d4d23d913419c6a364b1fe91509c1fadb5661bdf2eedb8fe9a8a005924eb2032') version('1806', sha256='6951aab6405294fe59cec90b0a4e425f5403043191cda02ebaaa890ce1fcc819') @@ -338,7 +341,7 @@ class Openfoam(Package): # Version-specific patches patch('1612-spack-patches.patch', when='@1612') # kahip patch (wmake) - patch('https://develop.openfoam.com/Development/OpenFOAM-plus/commit/4068c03c616a4964472e06d5fb5b9bc2dd0bf1b7.patch', + patch('https://develop.openfoam.com/Development/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch', when='@1806', sha256='21f1ab68c82dfa41ed1a4439427c94c43ddda02c84175c30da623d905d3e5d61' ) @@ -368,29 +371,41 @@ class Openfoam(Package): # def url_for_version(self, version): - # Prior to 1706 had additional '+' in the naming - fmt = self.list_url + """Handles locations for patched and unpatched versions. + Patched version (eg '1906_191103') are located in the + corresponding unpatched directories (eg '1906'). + Older versions (eg, v1612+) had additional '+' in naming + """ + tty.info('openfoam: {0}'.format(version)) if version <= Version('1612'): - fmt += 'v{0}+/OpenFOAM-v{0}+.tgz' + fmt = 'v{0}+/OpenFOAM-v{1}+.tgz' else: - fmt += 'v{0}/OpenFOAM-v{0}.tgz' - return fmt.format(version, version) + fmt = 'v{0}/OpenFOAM-v{1}.tgz' + return self.list_url + fmt.format(version.up_to(1), version) + + def setup_minimal_environment(self, env): + """Sets a minimal openfoam environment. + """ + tty.info('OpenFOAM minimal env {0}'.format(self.prefix)) + env.set('FOAM_PROJECT_DIR', self.projectdir) + env.set('WM_PROJECT_DIR', self.projectdir) + for d in ['wmake', self.archbin]: # bin added automatically + env.prepend_path('PATH', join_path(self.projectdir, d)) + + def setup_build_environment(self, env): + """Sets the build environment (prior to unpacking the sources). + """ + pass - def setup_environment(self, spack_env, run_env): - """Add environment variables to the generated module file. - These environment variables come from running: + def setup_run_environment(self, env): + """Sets the run environment (post-installation). + The environment comes from running: .. code-block:: console $ . $WM_PROJECT_DIR/etc/bashrc """ - # NOTE: Spack runs setup_environment twice. - # 1) pre-build to set up the build environment - # 2) post-install to determine runtime environment variables - # The etc/bashrc is only available (with corrrect content) - # post-installation. - bashrc = join_path(self.projectdir, 'etc', 'bashrc') minimal = True if os.path.isfile(bashrc): @@ -427,8 +442,7 @@ class Openfoam(Package): 'MPI_ARCH_PATH', # Can be needed for compilation ]) - run_env.extend(mods) - spack_env.extend(mods) + env.extend(mods) minimal = False tty.info('OpenFOAM bashrc env: {0}'.format(bashrc)) except Exception: @@ -436,22 +450,23 @@ class Openfoam(Package): if minimal: # pre-build or minimal environment - tty.info('OpenFOAM minimal env {0}'.format(self.prefix)) - run_env.set('FOAM_PROJECT_DIR', self.projectdir) - run_env.set('WM_PROJECT_DIR', self.projectdir) - spack_env.set('FOAM_PROJECT_DIR', self.projectdir) - spack_env.set('WM_PROJECT_DIR', self.projectdir) - for d in ['wmake', self.archbin]: # bin added automatically - run_env.prepend_path('PATH', join_path(self.projectdir, d)) - spack_env.prepend_path('PATH', join_path(self.projectdir, d)) - - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - """Location of the OpenFOAM project directory. - This is identical to the WM_PROJECT_DIR value, but we avoid that - variable since it would mask the normal OpenFOAM cleanup of - previous versions. + self.setup_minimal_environment(env) + + def setup_dependent_build_environment(self, env, dependent_spec): + """Use full OpenFOAM environment when building. + Mirror WM_PROJECT_DIR value as FOAM_PROJECT_DIR to avoid + masking the normal OpenFOAM cleanup of previous versions. + """ + self.setup_run_environment(env) + env.set('FOAM_PROJECT_DIR', self.projectdir) + + def setup_dependent_run_environment(self, env, dependent_spec): + """Use full OpenFOAM environment when running. + Mirror WM_PROJECT_DIR value as FOAM_PROJECT_DIR to avoid + masking the normal OpenFOAM cleanup of previous versions. """ - self.setup_environment(spack_env, run_env) + self.setup_run_environment(env) + env.set('FOAM_PROJECT_DIR', self.projectdir) @property def projectdir(self): diff --git a/var/spack/repos/builtin/packages/openjdk/package.py b/var/spack/repos/builtin/packages/openjdk/package.py index 0e7e10588b..76fa7c9043 100644 --- a/var/spack/repos/builtin/packages/openjdk/package.py +++ b/var/spack/repos/builtin/packages/openjdk/package.py @@ -12,25 +12,15 @@ class Openjdk(Package): homepage = "https://jdk.java.net" - version( - "11.0.2", - sha256="99be79935354f5c0df1ad293620ea36d13f48ec3ea870c838f20c504c9668b57", - url="https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz", - ) - - version( - "11.0.1", - sha256="7a6bb980b9c91c478421f865087ad2d69086a0583aeeb9e69204785e8e97dcfd", - url="https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz", - ) - - version( - "1.8.0_202-b08", - sha256="533dcd8d9ca15df231a1eb392fa713a66bca85a8e76d9b4ee30975f3823636b7", - url="https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_linux_openj9_8u202b08_openj9-0.12.0.tar.gz", - ) - - provides('java') + version("11.0.2", sha256="99be79935354f5c0df1ad293620ea36d13f48ec3ea870c838f20c504c9668b57", + url="https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz") + version("11.0.1", sha256="7a6bb980b9c91c478421f865087ad2d69086a0583aeeb9e69204785e8e97dcfd", + url="https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz") + version("1.8.0_202-b08", sha256="533dcd8d9ca15df231a1eb392fa713a66bca85a8e76d9b4ee30975f3823636b7", + url="https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_linux_openj9_8u202b08_openj9-0.12.0.tar.gz") + version('1.8.0_40-b25', sha256='79e96dce03a14271040023231a7d0ae374b755d48adf68bbdaec30294e4e2b88', + url='https://download.java.net/openjdk/jdk8u40/ri/jdk_ri-8u40-b25-linux-x64-10_feb_2015.tar.gz') + provides('java@11', when='@11.0:11.99') provides('java@8', when='@1.8.0:1.8.999') @@ -83,18 +73,18 @@ class Openjdk(Package): def install(self, spec, prefix): install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set JAVA_HOME.""" - run_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Set JAVA_HOME and CLASSPATH. CLASSPATH contains the installation prefix for the extension and any other Java extensions it depends on.""" - spack_env.set('JAVA_HOME', self.home) + env.set('JAVA_HOME', self.home) class_paths = [] for d in dependent_spec.traverse(deptype=('build', 'run', 'test')): @@ -102,14 +92,19 @@ class Openjdk(Package): class_paths.extend(find(d.prefix, '*.jar')) classpath = os.pathsep.join(class_paths) - spack_env.set('CLASSPATH', classpath) + env.set('CLASSPATH', classpath) + + def setup_dependent_run_environment(self, env, dependent_spec): + """Set CLASSPATH. + CLASSPATH contains the installation prefix for the extension and any + other Java extensions it depends on.""" # For runtime environment set only the path for # dependent_spec and prepend it to CLASSPATH if dependent_spec.package.extends(self.spec): class_paths = find(dependent_spec.prefix, '*.jar') classpath = os.pathsep.join(class_paths) - run_env.prepend_path('CLASSPATH', classpath) + env.prepend_path('CLASSPATH', classpath) def setup_dependent_package(self, module, dependent_spec): """Allows spec['java'].home to work.""" diff --git a/var/spack/repos/builtin/packages/openldap/package.py b/var/spack/repos/builtin/packages/openldap/package.py index 3c8a9e453e..2bd92a41f4 100644 --- a/var/spack/repos/builtin/packages/openldap/package.py +++ b/var/spack/repos/builtin/packages/openldap/package.py @@ -17,7 +17,7 @@ class Openldap(AutotoolsPackage): """ homepage = "https://www.openldap.org/" - url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.9.tgz" + url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.48.tgz" version('2.4.48', sha256='d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d') diff --git a/var/spack/repos/builtin/packages/openmolcas/package.py b/var/spack/repos/builtin/packages/openmolcas/package.py new file mode 100644 index 0000000000..9728555a35 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmolcas/package.py @@ -0,0 +1,37 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Openmolcas(CMakePackage): + """OpenMolcas is a quantum chemistry software package. + The key feature of OpenMolcas is the multiconfigurational approach to + the electronic structure.""" + + homepage = "https://gitlab.com/Molcas/OpenMolcas" + url = "https://github.com/Molcas/OpenMolcas/archive/v19.11.tar.gz" + + version('19.11', sha256='8ebd1dcce98fc3f554f96e54e34f1e8ad566c601196ee68153763b6c0a04c7b9') + + 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')) + + def setup_build_environment(self, env): + env.set('MOLCAS', self.prefix) + + def setup_run_environment(self, env): + env.set('MOLCAS', self.prefix) + + def cmake_args(self): + return [ + '-DLINALG=OpenBLAS', + '-DOPENBLASROOT=%s' % self.spec['openblas'].prefix, + '-DPYTHON_EXECUTABLE=%s' % self.spec['python'].command.path, + ] diff --git a/var/spack/repos/builtin/packages/openmpi/fix-ucx-1.7.0-api-instability.patch b/var/spack/repos/builtin/packages/openmpi/fix-ucx-1.7.0-api-instability.patch new file mode 100644 index 0000000000..59d9b06d50 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/fix-ucx-1.7.0-api-instability.patch @@ -0,0 +1,254 @@ +diff --git a/opal/mca/btl/uct/btl_uct.h b/opal/mca/btl/uct/btl_uct.h +index 3875679443..0e4ec9a949 100644 +--- a/opal/mca/btl/uct/btl_uct.h ++++ b/opal/mca/btl/uct/btl_uct.h +@@ -12,6 +12,7 @@ + * All rights reserved. + * Copyright (c) 2015-2018 Los Alamos National Security, LLC. All rights + * reserved. ++ * Copyright (c) 2019 Google, LLC. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow +@@ -85,6 +86,10 @@ struct mca_btl_uct_module_t { + /** array containing the am_tl and rdma_tl */ + mca_btl_uct_tl_t *comm_tls[2]; + ++#if UCT_API >= UCT_VERSION(1, 7) ++ uct_component_h uct_component; ++#endif ++ + /** registration cache */ + mca_rcache_base_module_t *rcache; + +diff --git a/opal/mca/btl/uct/btl_uct_amo.c b/opal/mca/btl/uct/btl_uct_amo.c +index f7d0232688..72398ce736 100644 +--- a/opal/mca/btl/uct/btl_uct_amo.c ++++ b/opal/mca/btl/uct/btl_uct_amo.c +@@ -110,7 +110,7 @@ int mca_btl_uct_afop (struct mca_btl_base_module_t *btl, struct mca_btl_base_end + mca_btl_uct_uct_completion_release (comp); + } + +- uct_rkey_release (&rkey); ++ mca_btl_uct_rkey_release (uct_btl, &rkey); + + return rc; + } +@@ -184,7 +184,7 @@ int mca_btl_uct_acswap (struct mca_btl_base_module_t *btl, struct mca_btl_base_e + mca_btl_uct_uct_completion_release (comp); + } + +- uct_rkey_release (&rkey); ++ mca_btl_uct_rkey_release (uct_btl, &rkey); + + return rc; + } +diff --git a/opal/mca/btl/uct/btl_uct_component.c b/opal/mca/btl/uct/btl_uct_component.c +index f968cb9c31..bff160736b 100644 +--- a/opal/mca/btl/uct/btl_uct_component.c ++++ b/opal/mca/btl/uct/btl_uct_component.c +@@ -314,7 +314,12 @@ ucs_status_t mca_btl_uct_am_handler (void *arg, void *data, size_t length, unsig + return UCS_OK; + } + ++#if UCT_API >= UCT_VERSION(1, 7) ++static int mca_btl_uct_component_process_uct_md (uct_component_h component, uct_md_resource_desc_t *md_desc, ++ char **allowed_ifaces) ++#else + static int mca_btl_uct_component_process_uct_md (uct_md_resource_desc_t *md_desc, char **allowed_ifaces) ++#endif + { + mca_rcache_base_resources_t rcache_resources; + uct_tl_resource_desc_t *tl_desc; +@@ -348,8 +353,14 @@ static int mca_btl_uct_component_process_uct_md (uct_md_resource_desc_t *md_desc + + md = OBJ_NEW(mca_btl_uct_md_t); + ++ ++#if UCT_API >= UCT_VERSION(1, 7) ++ uct_md_config_read (component, NULL, NULL, &uct_config); ++ uct_md_open (component, md_desc->md_name, uct_config, &md->uct_md); ++#else + uct_md_config_read (md_desc->md_name, NULL, NULL, &uct_config); + uct_md_open (md_desc->md_name, uct_config, &md->uct_md); ++#endif + uct_config_release (uct_config); + + uct_md_query (md->uct_md, &md_attr); +@@ -375,6 +386,10 @@ static int mca_btl_uct_component_process_uct_md (uct_md_resource_desc_t *md_desc + return OPAL_ERR_NOT_AVAILABLE; + } + ++#if UCT_API >= UCT_VERSION(1, 7) ++ module->uct_component = component; ++#endif ++ + mca_btl_uct_component.modules[mca_btl_uct_component.module_count++] = module; + + /* NTH: a registration cache shouldn't be necessary when using UCT but there are measurable +@@ -400,6 +415,42 @@ static int mca_btl_uct_component_process_uct_md (uct_md_resource_desc_t *md_desc + return OPAL_SUCCESS; + } + ++#if UCT_API >= UCT_VERSION(1, 7) ++static int mca_btl_uct_component_process_uct_component (uct_component_h component, char **allowed_ifaces) ++{ ++ uct_component_attr_t attr = {.field_mask = UCT_COMPONENT_ATTR_FIELD_NAME | ++ UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT}; ++ ucs_status_t ucs_status; ++ int rc; ++ ++ ucs_status = uct_component_query (component, &attr); ++ if (UCS_OK != ucs_status) { ++ return OPAL_ERROR; ++ } ++ ++ BTL_VERBOSE(("processing uct component %s", attr.name)); ++ ++ attr.md_resources = calloc (attr.md_resource_count, sizeof (*attr.md_resources)); ++ attr.field_mask |= UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES; ++ ucs_status = uct_component_query (component, &attr); ++ if (UCS_OK != ucs_status) { ++ return OPAL_ERROR; ++ } ++ ++ for (int i = 0 ; i < attr.md_resource_count ; ++i) { ++ rc = mca_btl_uct_component_process_uct_md (component, attr.md_resources + i, ++ allowed_ifaces); ++ if (OPAL_SUCCESS != rc) { ++ break; ++ } ++ } ++ ++ free (attr.md_resources); ++ ++ return OPAL_SUCCESS; ++} ++#endif /* UCT_API >= UCT_VERSION(1, 7) */ ++ + /* + * UCT component initialization: + * (1) read interface list from kernel and compare against component parameters +@@ -415,6 +466,7 @@ static mca_btl_base_module_t **mca_btl_uct_component_init (int *num_btl_modules, + struct mca_btl_base_module_t **base_modules; + uct_md_resource_desc_t *resources; + unsigned resource_count; ++ ucs_status_t ucs_status; + char **allowed_ifaces; + int rc; + +@@ -431,10 +483,32 @@ static mca_btl_base_module_t **mca_btl_uct_component_init (int *num_btl_modules, + return NULL; + } + +- uct_query_md_resources (&resources, &resource_count); +- + mca_btl_uct_component.module_count = 0; + ++#if UCT_API >= UCT_VERSION(1, 7) ++ uct_component_h *components; ++ unsigned num_components; ++ ++ ucs_status = uct_query_components(&components, &num_components); ++ if (UCS_OK != ucs_status) { ++ BTL_ERROR(("could not query UCT components")); ++ return NULL; ++ } ++ ++ /* generate all suitable btl modules */ ++ for (unsigned i = 0 ; i < num_components ; ++i) { ++ rc = mca_btl_uct_component_process_uct_component (components[i], allowed_ifaces); ++ if (OPAL_SUCCESS != rc) { ++ break; ++ } ++ } ++ ++ uct_release_component_list (components); ++ ++#else /* UCT 1.6 and older */ ++ ++ uct_query_md_resources (&resources, &resource_count); ++ + /* generate all suitable btl modules */ + for (unsigned i = 0 ; i < resource_count ; ++i) { + rc = mca_btl_uct_component_process_uct_md (resources + i, allowed_ifaces); +@@ -443,9 +517,11 @@ static mca_btl_base_module_t **mca_btl_uct_component_init (int *num_btl_modules, + } + } + +- opal_argv_free (allowed_ifaces); + uct_release_md_resource_list (resources); + ++#endif /* UCT_API >= UCT_VERSION(1, 7) */ ++ ++ opal_argv_free (allowed_ifaces); + mca_btl_uct_modex_send (); + + /* pass module array back to caller */ +diff --git a/opal/mca/btl/uct/btl_uct_rdma.c b/opal/mca/btl/uct/btl_uct_rdma.c +index 2d2d1c3f04..9ee9530f26 100644 +--- a/opal/mca/btl/uct/btl_uct_rdma.c ++++ b/opal/mca/btl/uct/btl_uct_rdma.c +@@ -132,7 +132,7 @@ int mca_btl_uct_get (mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoi + + BTL_VERBOSE(("get issued. status = %d", ucs_status)); + +- uct_rkey_release (&rkey); ++ mca_btl_uct_rkey_release (uct_btl, &rkey); + + return OPAL_LIKELY(UCS_OK == ucs_status) ? OPAL_SUCCESS : OPAL_ERR_RESOURCE_BUSY; + } +@@ -237,7 +237,7 @@ int mca_btl_uct_put (mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoi + mca_btl_uct_uct_completion_release (comp); + } + +- uct_rkey_release (&rkey); ++ mca_btl_uct_rkey_release (uct_btl, &rkey); + + return OPAL_LIKELY(UCS_OK == ucs_status) ? OPAL_SUCCESS : OPAL_ERR_RESOURCE_BUSY; + } +diff --git a/opal/mca/btl/uct/btl_uct_rdma.h b/opal/mca/btl/uct/btl_uct_rdma.h +index e9b0d6b19d..ab790371af 100644 +--- a/opal/mca/btl/uct/btl_uct_rdma.h ++++ b/opal/mca/btl/uct/btl_uct_rdma.h +@@ -55,8 +55,22 @@ static inline int mca_btl_uct_get_rkey (mca_btl_uct_module_t *module, + return rc; + } + ++#if UCT_API >= UCT_VERSION(1, 7) ++ ucs_status = uct_rkey_unpack (module->uct_component, (void *) remote_handle, rkey); ++#else + ucs_status = uct_rkey_unpack ((void *) remote_handle, rkey); ++#endif + return (UCS_OK == ucs_status) ? OPAL_SUCCESS : OPAL_ERROR; + } + ++static inline void mca_btl_uct_rkey_release (mca_btl_uct_module_t *uct_btl, uct_rkey_bundle_t *rkey) ++{ ++#if UCT_API >= UCT_VERSION(1, 7) ++ uct_rkey_release (uct_btl->uct_component, rkey); ++#else ++ (void) uct_btl; ++ uct_rkey_release (rkey); ++#endif ++} ++ + #endif /* !defined(BTL_UCT_RDMA_H) */ +diff --git a/opal/mca/btl/uct/btl_uct_tl.c b/opal/mca/btl/uct/btl_uct_tl.c +index a711a41ce9..e69c769b41 100644 +--- a/opal/mca/btl/uct/btl_uct_tl.c ++++ b/opal/mca/btl/uct/btl_uct_tl.c +@@ -516,7 +516,13 @@ static int mca_btl_uct_evaluate_tl (mca_btl_uct_module_t *module, mca_btl_uct_tl + * come up with a better estimate. */ + + /* UCT bandwidth is in bytes/sec, BTL is in MB/sec */ ++#if UCT_API >= UCT_VERSION(1, 7) ++ module->super.btl_bandwidth = (uint32_t) ((MCA_BTL_UCT_TL_ATTR(tl, 0).bandwidth.dedicated + ++ MCA_BTL_UCT_TL_ATTR(tl, 0).bandwidth.shared / ++ (opal_process_info.num_local_peers + 1)) / 1048576.0); ++#else + module->super.btl_bandwidth = (uint32_t) (MCA_BTL_UCT_TL_ATTR(tl, 0).bandwidth / 1048576.0); ++#endif + /* TODO -- figure out how to translate UCT latency to us */ + module->super.btl_latency = 1; + } diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index b5ddba6355..c2f1e366a1 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -78,15 +78,18 @@ class Openmpi(AutotoolsPackage): version('develop', branch='master') # Current - version('4.0.1', sha256='cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709') # libmpi.so.40.20.1 + version('4.0.2', sha256='900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057') # libmpi.so.40.20.2 # Still supported + version('4.0.1', sha256='cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709') # libmpi.so.40.20.1 version('4.0.0', sha256='2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b') # libmpi.so.40.20.0 - version('3.1.4', preferred=True, sha256='17a69e0054db530c7dc119f75bd07d079efa147cf94bf27e590905864fe379d6') # libmpi.so.40.10.4 + version('3.1.5', preferred=True, 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 version('3.1.2', sha256='c654ed847f34a278c52a15c98add40402b4a90f0c540779f1ae6c489af8a76c5') # libmpi.so.40.10.2 version('3.1.1', sha256='3f11b648dd18a8b878d057e9777f2c43bf78297751ad77ae2cef6db0fe80c77c') # libmpi.so.40.10.1 version('3.1.0', sha256='b25c044124cc859c0b4e6e825574f9439a51683af1950f6acda1951f5ccdf06c') # libmpi.so.40.10.0 + version('3.0.5', sha256='f8976b95f305efc435aa70f906b82d50e335e34cffdbf5d78118a507b1c6efe8') # libmpi.so.40.00.5 version('3.0.4', sha256='2ff4db1d3e1860785295ab95b03a2c0f23420cda7c1ae845c419401508a3c7b5') # libmpi.so.40.00.5 version('3.0.3', sha256='fb228e42893fe6a912841a94cd8a0c06c517701ae505b73072409218a12cf066') # libmpi.so.40.00.4 version('3.0.2', sha256='d2eea2af48c1076c53cabac0a1f12272d7470729c4e1cb8b9c2ccd1985b2fb06') # libmpi.so.40.00.2 @@ -188,6 +191,7 @@ class Openmpi(AutotoolsPackage): patch('llnl-platforms.patch', when="@1.6.5") patch('configure.patch', when="@1.10.1") patch('fix_multidef_pmi_class.patch', when="@2.0.0:2.0.1") + patch('fix-ucx-1.7.0-api-instability.patch', when='@4.0.0:4.0.3') # Vader Bug: https://github.com/open-mpi/ompi/issues/5375 # Haven't release fix for 2.1.x @@ -311,16 +315,16 @@ class Openmpi(AutotoolsPackage): libraries, root=self.prefix, shared=True, recursive=True ) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90')) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) + env.set('MPICXX', join_path(self.prefix.bin, 'mpic++')) + env.set('MPIF77', join_path(self.prefix.bin, 'mpif77')) + env.set('MPIF90', join_path(self.prefix.bin, 'mpif90')) - spack_env.set('OMPI_CC', spack_cc) - spack_env.set('OMPI_CXX', spack_cxx) - spack_env.set('OMPI_FC', spack_fc) - spack_env.set('OMPI_F77', spack_f77) + env.set('OMPI_CC', spack_cc) + env.set('OMPI_CXX', spack_cxx) + env.set('OMPI_FC', spack_fc) + env.set('OMPI_F77', spack_f77) def setup_dependent_package(self, module, dependent_spec): self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') @@ -430,6 +434,13 @@ class Openmpi(AutotoolsPackage): # Fabrics if 'fabrics=auto' not in spec: config_args.extend(self.with_or_without('fabrics')) + # The wrappers fail to automatically link libfabric. This will cause + # undefined references unless we add the appropriate flags. + if 'fabrics=libfabric' in spec: + config_args.append('--with-wrapper-ldflags=-L{0} -Wl,-rpath={0}' + .format(spec['libfabric'].prefix.lib)) + config_args.append('--with-wrapper-libs=-lfabric') + # Schedulers if 'schedulers=auto' not in spec: config_args.extend(self.with_or_without('schedulers')) @@ -444,7 +455,6 @@ class Openmpi(AutotoolsPackage): # Hwloc support if spec.satisfies('@1.5.2:'): config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix)) - # Java support if spec.satisfies('@1.7.4:'): if '+java' in spec: diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index fe9972776f..9b24b22a00 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -15,6 +15,10 @@ class OpenpmdApi(CMakePackage): maintainers = ['ax3l'] version('develop', branch='dev') + 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') @@ -26,14 +30,12 @@ class OpenpmdApi(CMakePackage): description='Enable ADIOS1 support') variant('adios2', default=False, description='Enable ADIOS2 support') - variant('json', default=True, - description='Enable JSON support') variant('python', default=False, description='Enable Python bindings') depends_on('cmake@3.11.0:', type='build') depends_on('mpark-variant@1.4.0:') - depends_on('catch@2.6.1: ~single_header', type='test') + depends_on('catch2@2.6.1: ~single_header', type='test') 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') @@ -44,7 +46,7 @@ class OpenpmdApi(CMakePackage): depends_on('adios2@2.4.0:', when='+adios2') depends_on('adios2@2.4.0: ~mpi', when='~mpi +adios2') depends_on('adios2@2.4.0: +mpi', when='+mpi +adios2') - depends_on('nlohmann-json@3.7.0:', when='+json') + 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']) @@ -67,8 +69,6 @@ class OpenpmdApi(CMakePackage): 'ON' if '+adios1' in spec else 'OFF'), '-DopenPMD_USE_ADIOS2:BOOL={0}'.format( 'ON' if '+adios2' in spec else 'OFF'), - '-DopenPMD_USE_JSON:BOOL={0}'.format( - 'ON' if '+json' in spec else 'OFF'), '-DopenPMD_USE_PYTHON:BOOL={0}'.format( 'ON' if '+python' in spec else 'OFF'), # tests and examples @@ -84,34 +84,33 @@ class OpenpmdApi(CMakePackage): args.append('-DPYTHON_EXECUTABLE:FILEPATH={0}'.format( self.spec['python'].command.path)) - if spec.satisfies('+json'): - args.append('-DopenPMD_USE_INTERNAL_JSON:BOOL=OFF') - - args.append('-DopenPMD_USE_INTERNAL_VARIANT:BOOL=OFF') + args.extend([ + '-DopenPMD_USE_INTERNAL_JSON:BOOL=OFF', + '-DopenPMD_USE_INTERNAL_VARIANT:BOOL=OFF' + ]) if self.run_tests: args.append('-DopenPMD_USE_INTERNAL_CATCH:BOOL=OFF') return args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): spec = self.spec # pre-load dependent CMake-PUBLIC header-only libs - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpark-variant'].prefix) - run_env.prepend_path('CPATH', spec['mpark-variant'].prefix.include) + env.prepend_path('CMAKE_PREFIX_PATH', spec['mpark-variant'].prefix) + env.prepend_path('CPATH', spec['mpark-variant'].prefix.include) # more deps searched in openPMDConfig.cmake if spec.satisfies("+mpi"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpi'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['mpi'].prefix) if spec.satisfies("+adios1"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['adios'].prefix) if spec.satisfies("+adios2"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios2'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['adios2'].prefix) if spec.satisfies("+hdf5"): - run_env.prepend_path('CMAKE_PREFIX_PATH', spec['hdf5'].prefix) + env.prepend_path('CMAKE_PREFIX_PATH', spec['hdf5'].prefix) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): # pre-load dependent CMake-PUBLIC header-only libs - spack_env.prepend_path('CMAKE_PREFIX_PATH', - self.spec['mpark-variant'].prefix) - spack_env.prepend_path('CPATH', - self.spec['mpark-variant'].prefix.include) + env.prepend_path('CMAKE_PREFIX_PATH', + self.spec['mpark-variant'].prefix) + prepend_path('CPATH', self.spec['mpark-variant'].prefix.include) diff --git a/var/spack/repos/builtin/packages/openresty/package.py b/var/spack/repos/builtin/packages/openresty/package.py new file mode 100644 index 0000000000..2548819d95 --- /dev/null +++ b/var/spack/repos/builtin/packages/openresty/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Openresty(AutotoolsPackage): + """ + OpenResty is a full-fledged web application server by bundling the + standard nginx core, lots of 3rd-party nginx modules, as well as + most of their external dependencies. + """ + + homepage = "https://github.com/openresty" + url = "https://github.com/openresty/openresty/releases/download/v1.15.8.2/openresty-1.15.8.2.tar.gz" + + version('1.15.8.2', sha256='bf92af41d3ad22880047a8b283fc213d59c7c1b83f8dae82e50d14b64d73ac38') + version('1.15.8.1', sha256='89a1238ca177692d6903c0adbea5bdf2a0b82c383662a73c03ebf5ef9f570842') + version('1.13.6.2', sha256='946e1958273032db43833982e2cec0766154a9b5cb8e67868944113208ff2942') + + depends_on('pcre', type='build') + + def configure_args(self): + args = ['--without-http_rewrite_module'] + return args diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py index b4e1fe97bd..ffa5a106f3 100644 --- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py @@ -96,8 +96,7 @@ class OpenspeedshopUtils(CMakePackage): depends_on("dyninst@develop", when='@develop') depends_on("dyninst@10:", when='@2.3.1.3:9999') - depends_on("python", when='@develop', type=('build', 'run')) - depends_on("python@2.7.14:2.7.99", when='@2.3.1.3:9999', type=('build', 'run')) + depends_on("python@2.7.14:2.7.99", type=('build', 'run')) depends_on("libxml2") @@ -269,7 +268,7 @@ class OpenspeedshopUtils(CMakePackage): cmake_options.extend(mpi_options) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set up the compile and runtime environments for a package.""" # Find Dyninst library path, this is needed to @@ -281,26 +280,26 @@ class OpenspeedshopUtils(CMakePackage): shared=True, recursive=True) # Set Dyninst RT library path to support OSS loop resolution code - run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir[0]) + env.set('DYNINSTAPI_RT_LIB', dyninst_libdir[0]) # Find openspeedshop library path oss_libdir = find_libraries( 'libopenss-framework', root=self.spec['openspeedshop-utils'].prefix, shared=True, recursive=True) - run_env.prepend_path('LD_LIBRARY_PATH', - os.path.dirname(oss_libdir.joined())) + env.prepend_path('LD_LIBRARY_PATH', + os.path.dirname(oss_libdir.joined())) - run_env.set('OPENSS_RAWDATA_DIR', '.') + env.set('OPENSS_RAWDATA_DIR', '.') cbtf_mc = '/sbin/cbtf_mrnet_commnode' cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' - run_env.set('XPLAT_RSH', 'ssh') - run_env.set('MRNET_COMM_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) - run_env.set('CBTF_MRNET_BACKEND_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) - run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) - run_env.prepend_path('PATH', self.spec['python'].prefix.bin) + env.set('XPLAT_RSH', 'ssh') + env.set('MRNET_COMM_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + env.set('CBTF_MRNET_BACKEND_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) + env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) + env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) + env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) + env.prepend_path('PATH', self.spec['python'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index 349ddee052..c580be1229 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -92,8 +92,7 @@ class Openspeedshop(CMakePackage): depends_on("dyninst@develop", when='@develop') depends_on("dyninst@10:", when='@2.3.1.3:9999') - depends_on("python", when='@develop', type=('build', 'run')) - depends_on("python@2.7.14:2.7.99", when='@2.3.1.3:9999', type=('build', 'run')) + depends_on("python@2.7.14:2.7.99", type=('build', 'run')) depends_on("libxml2") @@ -278,7 +277,7 @@ class Openspeedshop(CMakePackage): cmake_options.extend(mpi_options) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set up the compile and runtime environments for a package.""" # Find Dyninst library path, this is needed to @@ -290,9 +289,9 @@ class Openspeedshop(CMakePackage): shared=True, recursive=True) # Set Dyninst RT library path to support OSS loop resolution code - run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir[0]) + env.set('DYNINSTAPI_RT_LIB', dyninst_libdir[0]) - run_env.set('OPENSS_RAWDATA_DIR', '.') + env.set('OPENSS_RAWDATA_DIR', '.') # Set the openspeedshop plugin path if os.path.isdir(self.prefix.lib64): @@ -301,13 +300,13 @@ class Openspeedshop(CMakePackage): lib_dir = self.prefix.lib plugin_path = '/openspeedshop' oss_plugin_path = lib_dir + plugin_path - run_env.set('OPENSS_PLUGIN_PATH', oss_plugin_path) + env.set('OPENSS_PLUGIN_PATH', oss_plugin_path) cbtf_mc = '/sbin/cbtf_mrnet_commnode' cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' - run_env.set('XPLAT_RSH', 'ssh') - run_env.set('MRNET_COMM_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + env.set('XPLAT_RSH', 'ssh') + env.set('MRNET_COMM_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) # Set CBTF_MPI_IMPLEMENTATON to the appropriate mpi implementation # This is needed by O|SS and CBTF tools to deploy the correct @@ -315,23 +314,25 @@ class Openspeedshop(CMakePackage): # Users may have to set the CBTF_MPI_IMPLEMENTATION variable # manually if multiple mpi's are specified in the build if self.spec.satisfies('+mpich'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mpich") + env.set('CBTF_MPI_IMPLEMENTATION', "mpich") if self.spec.satisfies('+mvapich'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") + env.set('CBTF_MPI_IMPLEMENTATION', "mvapich") if self.spec.satisfies('+mvapich2'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") + env.set('CBTF_MPI_IMPLEMENTATION', "mvapich2") if self.spec.satisfies('+mpt'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "mpt") + env.set('CBTF_MPI_IMPLEMENTATION', "mpt") if self.spec.satisfies('+openmpi'): - run_env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") - - run_env.set('CBTF_MRNET_BACKEND_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) - run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) - run_env.prepend_path('PATH', self.spec['python'].prefix.bin) + env.set('CBTF_MPI_IMPLEMENTATION', "openmpi") + + env.set('CBTF_MRNET_BACKEND_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) + env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) + env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) + env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) + mpath = '/share/man' + env.prepend_path('MANPATH', self.spec['cbtf-krell'].prefix + mpath) + env.prepend_path('PATH', self.spec['python'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/orthomcl/package.py b/var/spack/repos/builtin/packages/orthomcl/package.py index 1d93968899..a57416e255 100644 --- a/var/spack/repos/builtin/packages/orthomcl/package.py +++ b/var/spack/repos/builtin/packages/orthomcl/package.py @@ -26,5 +26,5 @@ class Orthomcl(Package): install_tree('doc', prefix.doc) install_tree('lib', prefix.lib) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PERL5LIB', self.prefix.lib) + def setup_run_environment(self, env): + env.prepend_path('PERL5LIB', self.prefix.lib) 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 333287c80a..95b15e425f 100644 --- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py @@ -46,9 +46,9 @@ class OsuMicroBenchmarks(AutotoolsPackage): return config_args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): mpidir = join_path(self.prefix.libexec, 'osu-micro-benchmarks', 'mpi') - run_env.prepend_path('PATH', join_path(mpidir, 'startup')) - run_env.prepend_path('PATH', join_path(mpidir, 'pt2pt')) - run_env.prepend_path('PATH', join_path(mpidir, 'one-sided')) - run_env.prepend_path('PATH', join_path(mpidir, 'collective')) + env.prepend_path('PATH', join_path(mpidir, 'startup')) + env.prepend_path('PATH', join_path(mpidir, 'pt2pt')) + env.prepend_path('PATH', join_path(mpidir, 'one-sided')) + env.prepend_path('PATH', join_path(mpidir, 'collective')) diff --git a/var/spack/repos/builtin/packages/pagit/package.py b/var/spack/repos/builtin/packages/pagit/package.py index 7cc1496b53..3bce58cd39 100644 --- a/var/spack/repos/builtin/packages/pagit/package.py +++ b/var/spack/repos/builtin/packages/pagit/package.py @@ -18,10 +18,6 @@ class Pagit(Package): depends_on('java', type=('build', 'run')) depends_on('perl', type=('build', 'run')) - def url_for_version(self, version): - url = 'ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V{0}.64bit.tgz' - return url.format(version) - def install(self, spec, prefix): with working_dir('PAGIT'): install_tree('ABACAS', prefix.ABACAS) @@ -31,19 +27,18 @@ class Pagit(Package): install_tree('lib', prefix.lib) install_tree('RATT', prefix.RATT) - def setup_environment(self, spack_env, run_env): - run_env.set('PAGIT_HOME', self.prefix) - run_env.set('PILEUP_HOME', join_path(self.prefix.bin, 'pileup_v0.5')) - run_env.set('ICORN_HOME', self.prefix.icorn) - run_env.set('SNPOMATIC_HOME', self.prefix.bin) - run_env.set('RATT_HOME', self.prefix.RATT) - run_env.set('RATT_CONFIG', join_path(self.prefix.RATT, 'RATT_config')) - run_env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5', - 'ssaha2')) - run_env.prepend_path('PATH', join_path(self.prefix.bin, - 'pileup_v0.5')) - run_env.prepend_path('PATH', self.prefix.IMAGE) - run_env.prepend_path('PATH', self.prefix.ABACAS) - run_env.prepend_path('PATH', self.prefix.ICORN) - run_env.prepend_path('PATH', self.prefix.RATT) - run_env.prepend_path('PERL5LIB', self.prefix.lib) + def setup_run_environment(self, env): + env.set('PAGIT_HOME', self.prefix) + env.set('PILEUP_HOME', join_path(self.prefix.bin, 'pileup_v0.5')) + env.set('ICORN_HOME', self.prefix.icorn) + env.set('SNPOMATIC_HOME', self.prefix.bin) + env.set('RATT_HOME', self.prefix.RATT) + env.set('RATT_CONFIG', join_path(self.prefix.RATT, 'RATT_config')) + env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5', + 'ssaha2')) + env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5')) + env.prepend_path('PATH', self.prefix.IMAGE) + env.prepend_path('PATH', self.prefix.ABACAS) + env.prepend_path('PATH', self.prefix.ICORN) + env.prepend_path('PATH', self.prefix.RATT) + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index 35fd629b54..7f850b7c1d 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -56,8 +56,8 @@ class Pango(AutotoolsPackage): def install(self, spec, prefix): make("install", parallel=False) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) + 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) diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py index 7f863fa7f6..40cde37481 100644 --- a/var/spack/repos/builtin/packages/papi/package.py +++ b/var/spack/repos/builtin/packages/papi/package.py @@ -17,11 +17,12 @@ class Papi(Package): enables software engineers to see, in near real time, the relation between software performance and processor events. In addition Component PAPI provides access to a collection of - components that expose performance measurement opportunites + components that expose performance measurement opportunities across the hardware and software stack.""" homepage = "http://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 = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589') version('5.6.0', sha256='49b7293f9ca2d74d6d80bd06b5c4be303663123267b4ac0884cbcae4c914dc47') version('5.5.1', sha256='49dc2c2323f6164c4a7e81b799ed690ee73158671205e71501f849391dd2c2d4') @@ -30,11 +31,27 @@ class Papi(Package): version('5.4.1', sha256='e131c1449786fe870322a949e44f974a5963824f683232e653fb570cc65d4e87') version('5.3.0', sha256='99f2f36398b370e75d100b4a189d5bc0ac4f5dd66df44d441f88fd32e1421524') + variant('example', default=True, description='Install the example files') + variant('infiniband', default=False, description='Enable Infiniband support') + variant('powercap', default=False, description='Enable powercap interface support') + variant('rapl', default=False, description='Enable RAPL support') + variant('lmsensors', default=False, description='Enable lm_sensors support') + + depends_on('lm-sensors', when='+lmsensors') + # 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:') def install(self, spec, prefix): + if '+lmsensors' in spec: + with working_dir("src/components/lmsensors"): + configure_args = [ + "--with-sensors_incdir=%s/sensors" % + spec['lm-sensors'].headers.directories[0], + "--with-sensors_libdir=%s" % + spec['lm-sensors'].libs.directories[0]] + configure(*configure_args) with working_dir("src"): configure_args = ["--prefix=%s" % prefix] @@ -44,6 +61,10 @@ class Papi(Package): # fail, so that PAPI does not get confused configure_args.append('MPICC=:') + configure_args.append( + '--with-components={0}'.format(' '.join( + filter(lambda x: spec.variants[x].value, spec.variants)))) + configure(*configure_args) # Don't use <malloc.h> diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py index 3e78f8ad9a..cc3e46e954 100644 --- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py +++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py @@ -27,6 +27,7 @@ class ParallelNetcdf(AutotoolsPackage): version('develop', branch='develop') version('master', branch='master') + version('1.12.1', sha256='56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2') version('1.11.2', sha256='d2c18601b364c35b5acb0a0b46cd6e14cae456e0eb854e5c789cf65f3cd6a2a7') version('1.11.1', sha256='0c587b707835255126a23c104c66c9614be174843b85b897b3772a590be45779') version('1.11.0', sha256='a18a1a43e6c4fd7ef5827dbe90e9dcf1363b758f513af1f1356ed6c651195a9f') diff --git a/var/spack/repos/builtin/packages/parallel/package.py b/var/spack/repos/builtin/packages/parallel/package.py index 596bb814e3..a6b303c120 100644 --- a/var/spack/repos/builtin/packages/parallel/package.py +++ b/var/spack/repos/builtin/packages/parallel/package.py @@ -6,14 +6,14 @@ from spack import * -class Parallel(AutotoolsPackage): +class Parallel(AutotoolsPackage, GNUMirrorPackage): """GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. """ homepage = "http://www.gnu.org/software/parallel/" - url = "https://ftpmirror.gnu.org/parallel/parallel-20170122.tar.bz2" + gnu_mirror_path = "parallel/parallel-20170122.tar.bz2" version('20190222', sha256='86b1badc56ee2de1483107c2adf634604fd72789c91f65e40138d21425906b1c') version('20170322', sha256='f8f810040088bf3c52897a2ee0c0c71bd8d097e755312364b946f107ae3553f6') diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index 938004b97c..164e5e855f 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -12,7 +12,7 @@ class Paraview(CMakePackage, CudaPackage): visualization application.""" homepage = 'https://www.paraview.org' - url = "https://www.paraview.org/files/v5.6/ParaView-v5.6.2.tar.xz" + url = "https://www.paraview.org/files/v5.7/ParaView-v5.7.0.tar.xz" list_url = "https://www.paraview.org/files" list_depth = 1 git = "https://gitlab.kitware.com/paraview/paraview.git" @@ -20,6 +20,7 @@ class Paraview(CMakePackage, CudaPackage): maintainers = ['chuckatkins', 'danlipsa'] version('develop', branch='master', submodules=True) + version('5.7.0', sha256='e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874') version('5.6.2', sha256='1f3710b77c58a46891808dbe23dc59a1259d9c6b7bb123aaaeaa6ddf2be882ea') version('5.6.0', sha256='cb8c4d752ad9805c74b4a08f8ae6e83402c3f11e38b274dba171b99bb6ac2460') version('5.5.2', sha256='64561f34c4402b88f3cb20a956842394dde5838efd7ebb301157a837114a0e2d') @@ -43,10 +44,13 @@ class Paraview(CMakePackage, CudaPackage): variant('opengl2', default=True, description='Enable OpenGL2 backend') variant('examples', default=False, description="Build examples") variant('hdf5', default=False, description="Use external HDF5") + variant('shared', default=True, + description='Builds a shared version of the library') conflicts('+python', when='+python3') conflicts('+python', when='@5.6:') conflicts('+python3', when='@:5.5') + conflicts('+shared', when='+cuda') # Workaround for # adding the following to your packages.yaml @@ -63,13 +67,13 @@ class Paraview(CMakePackage, CudaPackage): depends_on('python@2.7:2.8', when='+python', type=('build', 'run')) depends_on('python@3:', when='+python3', type=('build', 'run')) - depends_on('py-numpy', when='+python', type=('build', 'run')) + depends_on('py-numpy@:1.15.4', 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-matplotlib@:2', when='+python', type='run') - depends_on('py-matplotlib@3:', when='+python3', type='run') + depends_on('py-matplotlib', when='+python3', type='run') depends_on('mpi', when='+mpi') depends_on('qt+opengl', when='@5.3.0:+qt+opengl2') @@ -92,7 +96,7 @@ class Paraview(CMakePackage, CudaPackage): depends_on('libpng') depends_on('libtiff') depends_on('libxml2') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('expat') # depends_on('netcdf-cxx') # depends_on('protobuf') # version mismatches? @@ -126,16 +130,16 @@ class Paraview(CMakePackage, CudaPackage): """The paraview subdirectory name as paraview-major.minor""" return 'paraview-{0}'.format(self.spec.version.up_to(2)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): if os.path.isdir(self.prefix.lib64): lib_dir = self.prefix.lib64 else: lib_dir = self.prefix.lib - spack_env.set('ParaView_DIR', self.prefix) - spack_env.set('PARAVIEW_VTK_DIR', - join_path(lib_dir, 'cmake', self.paraview_subdir)) + env.set('ParaView_DIR', self.prefix) + env.set('PARAVIEW_VTK_DIR', + join_path(lib_dir, 'cmake', self.paraview_subdir)) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # paraview 5.5 and later # - cmake under lib/cmake/paraview-5.5 # - libs under lib @@ -145,31 +149,31 @@ class Paraview(CMakePackage, CudaPackage): else: lib_dir = self.prefix.lib - run_env.set('ParaView_DIR', self.prefix) - run_env.set('PARAVIEW_VTK_DIR', - join_path(lib_dir, 'cmake', self.paraview_subdir)) + env.set('ParaView_DIR', self.prefix) + env.set('PARAVIEW_VTK_DIR', + join_path(lib_dir, 'cmake', self.paraview_subdir)) if self.spec.version <= Version('5.4.1'): lib_dir = join_path(lib_dir, self.paraview_subdir) - run_env.prepend_path('LIBRARY_PATH', lib_dir) - run_env.prepend_path('LD_LIBRARY_PATH', lib_dir) + env.prepend_path('LIBRARY_PATH', lib_dir) + env.prepend_path('LD_LIBRARY_PATH', lib_dir) if '+python' in self.spec or '+python3' in self.spec: if self.spec.version <= Version('5.4.1'): pv_pydir = join_path(lib_dir, 'site-packages') - run_env.prepend_path('PYTHONPATH', pv_pydir) - run_env.prepend_path('PYTHONPATH', join_path(pv_pydir, 'vtk')) + env.prepend_path('PYTHONPATH', pv_pydir) + env.prepend_path('PYTHONPATH', join_path(pv_pydir, 'vtk')) else: python_version = self.spec['python'].version.up_to(2) pv_pydir = join_path(lib_dir, 'python{0}'.format(python_version), 'site-packages') - run_env.prepend_path('PYTHONPATH', pv_pydir) + env.prepend_path('PYTHONPATH', pv_pydir) # The Trilinos Catalyst adapter requires # the vtkmodules directory in PYTHONPATH - run_env.prepend_path('PYTHONPATH', join_path(pv_pydir, - 'vtkmodules')) + env.prepend_path('PYTHONPATH', join_path(pv_pydir, + 'vtkmodules')) def cmake_args(self): """Populate cmake arguments for ParaView.""" @@ -234,6 +238,15 @@ class Paraview(CMakePackage, CudaPackage): '-DMPI_Fortran_COMPILER:PATH=%s' % spec['mpi'].mpifc ]) + if '+shared' in spec: + cmake_args.append( + '-DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON' + ) + else: + cmake_args.append( + '-DPARAVIEW_BUILD_SHARED_LIBS:BOOL=OFF' + ) + if '+cuda' in spec: cmake_args.extend([ '-DPARAVIEW_USE_CUDA:BOOL=ON', diff --git a/var/spack/repos/builtin/packages/parquet/package.py b/var/spack/repos/builtin/packages/parquet-cpp/package.py index ac130b359f..de6559dc5e 100644 --- a/var/spack/repos/builtin/packages/parquet/package.py +++ b/var/spack/repos/builtin/packages/parquet-cpp/package.py @@ -6,7 +6,7 @@ from spack import * -class Parquet(CMakePackage): +class ParquetCpp(CMakePackage): """C++ bindings for the Apache Parquet columnar data format. """ diff --git a/var/spack/repos/builtin/packages/pasta/package.py b/var/spack/repos/builtin/packages/pasta/package.py index 885e0673c9..45afbb0fc7 100644 --- a/var/spack/repos/builtin/packages/pasta/package.py +++ b/var/spack/repos/builtin/packages/pasta/package.py @@ -25,9 +25,9 @@ class Pasta(Package): destination='.' ) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): tools = join_path(self.prefix, 'sate-tools-linux') - spack_env.set('PASTA_TOOLS_DEVDIR', tools) + env.set('PASTA_TOOLS_DEVDIR', tools) def install(self, spec, prefix): # build process for pasta is very hacky -- uses hard links to source diff --git a/var/spack/repos/builtin/packages/patch/package.py b/var/spack/repos/builtin/packages/patch/package.py index d67d564280..044d6bb613 100644 --- a/var/spack/repos/builtin/packages/patch/package.py +++ b/var/spack/repos/builtin/packages/patch/package.py @@ -6,14 +6,14 @@ from spack import * -class Patch(AutotoolsPackage): +class Patch(AutotoolsPackage, GNUMirrorPackage): """Patch takes a patch file containing a difference listing produced by the diff program and applies those differences to one or more original files, producing patched versions. """ homepage = "http://savannah.gnu.org/projects/patch/" - url = "https://ftpmirror.gnu.org/patch/patch-2.7.6.tar.xz" + gnu_mirror_path = "patch/patch-2.7.6.tar.xz" version('2.7.6', sha256='ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd') version('2.7.5', sha256='fd95153655d6b95567e623843a0e77b81612d502ecf78a489a4aed7867caa299') diff --git a/var/spack/repos/builtin/packages/pbbam/package.py b/var/spack/repos/builtin/packages/pbbam/package.py index 97486e1606..29b0e3e8a3 100644 --- a/var/spack/repos/builtin/packages/pbbam/package.py +++ b/var/spack/repos/builtin/packages/pbbam/package.py @@ -38,6 +38,6 @@ class Pbbam(CMakePackage): install_tree('spack-build/lib', prefix.lib) install_tree('include/pbbam', prefix.include.pbbam) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('PacBioBAM_LIBRARIES', self.prefix.lib) - spack_env.set('PacBioBAM_INCLUDE_DIRS', self.prefix.include) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('PacBioBAM_LIBRARIES', self.prefix.lib) + env.set('PacBioBAM_INCLUDE_DIRS', self.prefix.include) diff --git a/var/spack/repos/builtin/packages/pbsuite/package.py b/var/spack/repos/builtin/packages/pbsuite/package.py index b29b734f4c..1415859ec0 100644 --- a/var/spack/repos/builtin/packages/pbsuite/package.py +++ b/var/spack/repos/builtin/packages/pbsuite/package.py @@ -24,5 +24,5 @@ class Pbsuite(Package): install_tree('pbsuite', prefix.pbsuite) install_tree('bin', prefix.bin) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PYTHONPATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix) 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 98c0a488d9..0c299e06b4 100644 --- a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py +++ b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py @@ -10,7 +10,7 @@ class PerlAlienLibxml2(PerlPackage): """This module provides libxml2 for other modules to use.""" homepage = "https://metacpan.org/pod/Alien::Libxml2" - url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.09.tar.gz" + url = "https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.10_01.tar.gz" version('0.10_01', sha256='2f45b308b33503292f48bf46a75fe1e653d6b209ba5caf0628d8cc103f8d61ac') diff --git a/var/spack/repos/builtin/packages/perl-bio-perl/package.py b/var/spack/repos/builtin/packages/perl-bioperl/package.py index a8680d8b2e..8f585b376e 100644 --- a/var/spack/repos/builtin/packages/perl-bio-perl/package.py +++ b/var/spack/repos/builtin/packages/perl-bioperl/package.py @@ -7,7 +7,7 @@ from spack import * import inspect -class PerlBioPerl(PerlPackage): +class PerlBioperl(PerlPackage): """BioPerl is the product of a community effort to produce Perl code which is useful in biology. Examples include Sequence objects, Alignment objects and database searching objects. These objects not only do what they are @@ -36,8 +36,7 @@ class PerlBioPerl(PerlPackage): url = "https://cpan.metacpan.org/authors/id/C/CD/CDRAUG/BioPerl-1.7.6.tar.gz" version('1.7.6', sha256='df2a3efc991b9b5d7cc9d038a1452c6dac910c9ad2a0e47e408dd692c111688d') - version('1.7.2', sha256='17aa3aaab2f381bbcaffdc370002eaf28f2c341b538068d6586b2276a76464a1', - url="http://search.cpan.org/CPAN/authors/id/C/CJ/CJFIELDS/BioPerl-1.007002.tar.gz") + version('1.007002', sha256='17aa3aaab2f381bbcaffdc370002eaf28f2c341b538068d6586b2276a76464a1') # According to cpandeps.grinnz.com Module-Build is both a build and run # time dependency for BioPerl diff --git a/var/spack/repos/builtin/packages/perl-dbfile/package.py b/var/spack/repos/builtin/packages/perl-db-file/package.py index c56d98f842..ff7263517f 100644 --- a/var/spack/repos/builtin/packages/perl-dbfile/package.py +++ b/var/spack/repos/builtin/packages/perl-db-file/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlDbfile(PerlPackage): +class PerlDbFile(PerlPackage): """DB_File is a module which allows Perl programs to make use of the facilities provided by Berkeley DB version 1.x (if you have a newer version of DB, see "Using DB_File with Berkeley DB version 2 or greater"). @@ -20,3 +20,8 @@ class PerlDbfile(PerlPackage): version('1.840', sha256='b7864707fad0f2d1488c748c4fa08f1fb8bcfd3da247c36909fd42f20bfab2c4') depends_on('perl-extutils-makemaker', type='build') + depends_on('berkeley-db', type='build') + + def patch(self): + filter_file('/usr/local/BerkeleyDB', + self.spec['berkeley-db'].prefix, 'config.in') 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 9dfdc5ae98..386add30e4 100644 --- a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py +++ b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py @@ -10,6 +10,6 @@ class PerlDevelSymdump(PerlPackage): """Devel::Symdump - dump symbol names or the symbol table""" homepage = "https://metacpan.org/pod/Devel::Symdump" - url = "https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz" + url = "https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-2.0604.tar.gz" version('2.0604', sha256='1f9eaa557733f775ccaa852e846566274c017e6fee380aeb8d08e425cfa86d3e') 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 b628ca12e5..e26adb298f 100644 --- a/var/spack/repos/builtin/packages/perl-file-chdir/package.py +++ b/var/spack/repos/builtin/packages/perl-file-chdir/package.py @@ -18,6 +18,6 @@ class PerlFileChdir(PerlPackage): combine all the power of chdir(), File::Spec and Cwd.""" homepage = "https://metacpan.org/pod/File::chdir" - url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1010.tar.gz" + url = "https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz" version('0.1011', sha256='31ebf912df48d5d681def74b9880d78b1f3aca4351a0ed1fe3570b8e03af6c79') diff --git a/var/spack/repos/builtin/packages/perl-gd-graph/package.py b/var/spack/repos/builtin/packages/perl-gdgraph/package.py index a4c83eefc4..98f015db35 100644 --- a/var/spack/repos/builtin/packages/perl-gd-graph/package.py +++ b/var/spack/repos/builtin/packages/perl-gdgraph/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlGdGraph(PerlPackage): +class PerlGdgraph(PerlPackage): """Graph Plotting Module for Perl 5""" homepage = "http://search.cpan.org/~bwarfield/GDGraph/Graph.pm" @@ -16,5 +16,5 @@ class PerlGdGraph(PerlPackage): depends_on('perl-capture-tiny', type=('build', 'run')) depends_on('perl-test-exception', type=('build', 'run')) - depends_on('perl-gd-text', type=('build', 'run')) + depends_on('perl-gdtextutil', type=('build', 'run')) depends_on('perl-gd', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-gd-text/package.py b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py index 1988eeaf70..929ac0e34e 100644 --- a/var/spack/repos/builtin/packages/perl-gd-text/package.py +++ b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlGdText(PerlPackage): +class PerlGdtextutil(PerlPackage): """Text utilities for use with GD""" homepage = "http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm" 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 2bf4144990..4734a3bc55 100644 --- a/var/spack/repos/builtin/packages/perl-io-prompt/package.py +++ b/var/spack/repos/builtin/packages/perl-io-prompt/package.py @@ -31,5 +31,5 @@ class PerlIoPrompt(PerlPackage): depends_on('perl-module-build', type='build') - depends_on('perl-term-readkey', type=('build', 'run')) + depends_on('perl-termreadkey', type=('build', 'run')) depends_on('perl-want', type=('build', 'run')) 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 217b4fb71b..332a09e2f4 100644 --- a/var/spack/repos/builtin/packages/perl-io-tty/package.py +++ b/var/spack/repos/builtin/packages/perl-io-tty/package.py @@ -12,6 +12,6 @@ class PerlIoTty(PerlPackage): For a list of importable constants, see IO::Tty::Constant.""" homepage = "https://metacpan.org/pod/IO::Tty" - url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.12.tar.gz" + url = "https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.13_01.tar.gz" version('1.13_01', sha256='89798eba7c31d9c169ef2f38ff49490aa769b1d9a68033de365595cfaf9cc258') 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 63a36a0e65..b57ee53bbd 100644 --- a/var/spack/repos/builtin/packages/perl-libwww-perl/package.py +++ b/var/spack/repos/builtin/packages/perl-libwww-perl/package.py @@ -16,6 +16,7 @@ class PerlLibwwwPerl(PerlPackage): url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.33.tar.gz" version('6.33', sha256='97417386f11f007ae129fe155b82fd8969473ce396a971a664c8ae6850c69b99') + version('6.29', sha256='4c6f2697999d2d0e6436b584116b12b30dc39990ec0622751c1a6cec2c0e6662') depends_on('perl-encode-locale', type=('build', 'run')) depends_on('perl-file-listing', type=('build', 'run')) 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 ef7faad32c..9b1db2e856 100644 --- a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py +++ b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py @@ -10,6 +10,6 @@ class PerlLogLog4perl(PerlPackage): """Log4j implementation for Perl""" homepage = "http://search.cpan.org/~mschilli/Log-Log4perl-1.44/lib/Log/Log4perl.pm" - url = "https://github.com/mschilli/log4perl/archive/rel_146.tar.gz" + url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.46.tar.gz" - version('146', sha256='a361e483095795753b97f8a506b40c24c753cf73828bb8697665499ef8596402') + version('1.46', sha256='31011a17c04e78016e73eaa4865d0481d2ffc3dc22813c61065d90ad73c64e6f') 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 0974a00bc7..5567f6fbd2 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 @@ -18,4 +18,4 @@ class PerlLwpProtocolHttps(PerlPackage): depends_on('perl-io-socket-ssl', type=('build', 'run')) depends_on('perl-net-http', type=('build', 'run')) depends_on('perl-mozilla-ca', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-lwp/package.py b/var/spack/repos/builtin/packages/perl-lwp/package.py deleted file mode 100644 index 4cbe00854e..0000000000 --- a/var/spack/repos/builtin/packages/perl-lwp/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class PerlLwp(PerlPackage): - """The World-Wide Web library for Perl""" - - homepage = "http://search.cpan.org/~oalders/libwww-perl-6.29/lib/LWP.pm" - url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.29.tar.gz" - - version('6.29', sha256='4c6f2697999d2d0e6436b584116b12b30dc39990ec0622751c1a6cec2c0e6662') - - depends_on('perl-test-requiresinternet', type=('build', 'run')) - depends_on('perl-http-message', type=('build', 'run')) - depends_on('perl-file-listing', type=('build', 'run')) - depends_on('perl-http-daemon', type=('build', 'run')) - depends_on('perl-html-parser', type=('build', 'run')) - depends_on('perl-http-cookies', type=('build', 'run')) - depends_on('perl-www-robotrules', type=('build', 'run')) - depends_on('perl-test-fatal', type=('build', 'run')) - depends_on('perl-http-negotiate', type=('build', 'run')) - depends_on('perl-net-http', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/perl-version/package.py b/var/spack/repos/builtin/packages/perl-perl-version/package.py index a1413c0c37..68155b87e8 100644 --- a/var/spack/repos/builtin/packages/perl-version/package.py +++ b/var/spack/repos/builtin/packages/perl-perl-version/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlVersion(PerlPackage): +class PerlPerlVersion(PerlPackage): """Parse and manipulate Perl version strings""" homepage = "http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm" diff --git a/var/spack/repos/builtin/packages/perl-intervaltree/package.py b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py index 5f875cdd6e..96ed744908 100644 --- a/var/spack/repos/builtin/packages/perl-intervaltree/package.py +++ b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlIntervaltree(PerlPackage): +class PerlSetIntervaltree(PerlPackage): """Set::IntervalTree uses Interval Trees to store and efficiently look up ranges using a range-based lookup.""" 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 ccab3095ad..625546c9c8 100644 --- a/var/spack/repos/builtin/packages/perl-star-fusion/package.py +++ b/var/spack/repos/builtin/packages/perl-star-fusion/package.py @@ -23,9 +23,9 @@ class PerlStarFusion(Package): depends_on('star', type=('build', 'run')) depends_on('perl', type=('build', 'run')) - depends_on('perl-intervaltree', type=('build', 'run')) + depends_on('perl-set-intervaltree', type=('build', 'run')) depends_on('perl-dbi', type=('build', 'run')) - depends_on('perl-dbfile', type=('build', 'run')) + depends_on('perl-db-file', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) def install(self, spec, prefix): 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 new file mode 100644 index 0000000000..7235b244c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class PerlTermReadlineGnu(PerlPackage): + """Perl extension for the GNU Readline/History Library.""" + + homepage = "https://metacpan.org/pod/Term::ReadLine::Gnu" + url = "https://cpan.metacpan.org/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.36.tar.gz" + + version('1.36', sha256='9a08f7a4013c9b865541c10dbba1210779eb9128b961250b746d26702bab6925') + + depends_on('readline') diff --git a/var/spack/repos/builtin/packages/perl-term-readkey/package.py b/var/spack/repos/builtin/packages/perl-termreadkey/package.py index 0e89420d33..f764964d29 100644 --- a/var/spack/repos/builtin/packages/perl-term-readkey/package.py +++ b/var/spack/repos/builtin/packages/perl-termreadkey/package.py @@ -6,7 +6,7 @@ from spack import * -class PerlTermReadkey(PerlPackage): +class PerlTermreadkey(PerlPackage): """Term::ReadKey is a compiled perl module dedicated to providing simple control over terminal driver modes (cbreak, raw, cooked, etc.,) support for non-blocking reads, if the architecture allows, and some generalized diff --git a/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py b/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py new file mode 100644 index 0000000000..1c5ec6582a --- /dev/null +++ b/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class PerlXmlLibxslt(PerlPackage): + """Interface to the GNOME libxslt library.""" + + homepage = "https://metacpan.org/pod/XML::LibXSLT" + url = "https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-1.96.tar.gz" + + version('1.96', sha256='2a5e374edaa2e9f9d26b432265bfea9b4bb7a94c9fbfef9047b298fce844d473') + + depends_on('libxslt') + depends_on('perl-xml-libxml') 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 cb7e58bcd1..ef816a95e8 100644 --- a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py +++ b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py @@ -12,6 +12,6 @@ class PerlXmlNamespacesupport(PerlPackage): prefix to namespace URI map, and provides a number of basic checks.""" homepage = "https://metacpan.org/pod/XML::NamespaceSupport" - url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz" + url = "https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12_9.tar.gz" version('1.12_9', sha256='2e84a057f0a8c845a612d212742cb94fca4fc8a433150b5721bd448f77d1e4a9') diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index 5df5692895..547699fc03 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -165,43 +165,24 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package make() make('install') - def setup_dependent_build_environment(self, env, dependent_spec): + def _setup_dependent_env(self, env, dependent_spec, deptypes): """Set PATH and PERL5LIB to include the extension and any other perl extensions it depends on, assuming they were installed with INSTALL_BASE defined.""" - perl_lib_dirs = [join_path(self.spec.prefix.lib, - str(self.spec.version))] - perl_bin_dirs = [self.spec.prefix.bin] - for d in dependent_spec.traverse( - deptype=('build', 'run'), deptype_query='run'): + perl_lib_dirs = [] + for d in dependent_spec.traverse(deptype=deptypes): if d.package.extends(self.spec): perl_lib_dirs.append(d.prefix.lib.perl5) - perl_bin_dirs.append(d.prefix.bin) - if perl_bin_dirs: - perl_bin_path = ':'.join(perl_bin_dirs) - env.prepend_path('PATH', perl_bin_path) if perl_lib_dirs: perl_lib_path = ':'.join(perl_lib_dirs) env.prepend_path('PERL5LIB', perl_lib_path) + def setup_dependent_build_environment(self, env, dependent_spec): + self._setup_dependent_env(env, dependent_spec, + deptypes=('build', 'run')) + def setup_dependent_run_environment(self, env, dependent_spec): - """Set PATH and PERL5LIB to include the extension and - any other perl extensions it depends on, - assuming they were installed with INSTALL_BASE defined.""" - perl_lib_dirs = [join_path(self.spec.prefix.lib, - str(self.spec.version))] - perl_bin_dirs = [self.spec.prefix.bin] - for d in dependent_spec.traverse( - deptype=('run',), deptype_query='run'): - if d.package.extends(self.spec): - perl_lib_dirs.append(d.prefix.lib.perl5) - perl_bin_dirs.append(d.prefix.bin) - if perl_bin_dirs: - perl_bin_path = ':'.join(perl_bin_dirs) - env.prepend_path('PATH', perl_bin_path) - if perl_lib_dirs: - perl_lib_path = ':'.join(perl_lib_dirs) - env.prepend_path('PERL5LIB', perl_lib_path) + self._setup_dependent_env(env, dependent_spec, deptypes=('run',)) def setup_dependent_package(self, module, dependent_spec): """Called before perl modules' install() methods. diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index e436ffd02f..c84884cb76 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -24,6 +24,7 @@ class Petsc(Package): version('develop', branch='master') version('xsdk-0.2.0', tag='xsdk-0.2.0') + version('3.12.2', sha256='d874b2e198c4cb73551c2eca1d2c5d27da710be4d00517adb8f9eb3d6d0375e8') version('3.12.1', sha256='b72d895d0f4a79acb13ebc782b47b26d10d4e5706d399f533afcd5b3dba13737') version('3.12.0', sha256='ba9ecf69783c7ebf05bd1c91dd1d4b38bf09b7a2d5f9a774aa6bb46deff7cb14') version('3.11.4', sha256='319cb5a875a692a67fe5b1b90009ba8f182e21921ae645d38106544aff20c3c1') diff --git a/var/spack/repos/builtin/packages/pflotran/package.py b/var/spack/repos/builtin/packages/pflotran/package.py index bd772b741f..f2e3d41aaf 100644 --- a/var/spack/repos/builtin/packages/pflotran/package.py +++ b/var/spack/repos/builtin/packages/pflotran/package.py @@ -18,6 +18,7 @@ class Pflotran(AutotoolsPackage): maintainers = ['ghammond86', 'balay'] version('develop') + 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') @@ -25,11 +26,11 @@ class Pflotran(AutotoolsPackage): depends_on('mpi') depends_on('hdf5@1.8.12:+mpi+fortran') depends_on('petsc@develop:+hdf5+metis', when='@develop') + 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 def parallel(self): - return (self.spec.satisfies('@develop') or - self.spec.satisfies('@xsdk-0.4.0')) + return (self.spec.satisfies('@xsdk-0.4.0:')) diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py index 418701241b..633c0edf74 100644 --- a/var/spack/repos/builtin/packages/pfunit/package.py +++ b/var/spack/repos/builtin/packages/pfunit/package.py @@ -82,12 +82,14 @@ class Pfunit(CMakePackage): return value raise InstallError('Unsupported compiler.') - def setup_environment(self, spack_env, run_env): - spack_env.set('PFUNIT', self.spec.prefix) - run_env.set('PFUNIT', self.spec.prefix) - spack_env.set('F90_VENDOR', self.compiler_vendor()) - run_env.set('F90_VENDOR', self.compiler_vendor()) - - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('PFUNIT', self.spec.prefix) - spack_env.set('F90_VENDOR', self.compiler_vendor()) + def setup_build_environment(self, env): + env.set('PFUNIT', self.spec.prefix) + env.set('F90_VENDOR', self.compiler_vendor()) + + def setup_run_environment(self, env): + env.set('PFUNIT', self.spec.prefix) + env.set('F90_VENDOR', self.compiler_vendor()) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('PFUNIT', self.spec.prefix) + env.set('F90_VENDOR', self.compiler_vendor()) diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py index c61611e22f..3fce681c58 100644 --- a/var/spack/repos/builtin/packages/pgi/package.py +++ b/var/spack/repos/builtin/packages/pgi/package.py @@ -87,16 +87,10 @@ class Pgi(Package): # Run install script os.system("./install") - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): prefix = Prefix(join_path(self.prefix, 'linux86-64', self.version)) - run_env.set('CC', join_path(prefix.bin, 'pgcc')) - run_env.set('CXX', join_path(prefix.bin, 'pgc++')) - run_env.set('F77', join_path(prefix.bin, 'pgfortran')) - run_env.set('FC', join_path(prefix.bin, 'pgfortran')) - - run_env.prepend_path('PATH', prefix.bin) - run_env.prepend_path('CPATH', prefix.include) - run_env.prepend_path('LIBRARY_PATH', prefix.lib) - run_env.prepend_path('LD_LIBRARY_PATH', prefix.lib) - run_env.prepend_path('MANPATH', prefix.man) + env.set('CC', join_path(prefix.bin, 'pgcc')) + env.set('CXX', join_path(prefix.bin, 'pgc++')) + env.set('F77', join_path(prefix.bin, 'pgfortran')) + env.set('FC', join_path(prefix.bin, 'pgfortran')) diff --git a/var/spack/repos/builtin/packages/pgmath/libpgmath_symbols.patch b/var/spack/repos/builtin/packages/pgmath/libpgmath_symbols.patch new file mode 100644 index 0000000000..65b7d40bea --- /dev/null +++ b/var/spack/repos/builtin/packages/pgmath/libpgmath_symbols.patch @@ -0,0 +1,91 @@ +diff --git a/runtime/libpgmath/lib/common/ceil.c b/runtime/libpgmath/lib/common/ceil.c +index 3b66ca5c..341c5194 100644 +--- a/runtime/libpgmath/lib/common/ceil.c ++++ b/runtime/libpgmath/lib/common/ceil.c +@@ -16,9 +16,11 @@ + */ + + #include "mthdecls.h" ++/* + #if defined(__SSE4_1__) || defined(__AVX__) + #include <immintrin.h> + #endif ++*/ + + float + __mth_i_ceil(float x) +diff --git a/runtime/libpgmath/lib/common/dceil.c b/runtime/libpgmath/lib/common/dceil.c +index 67482ef2..5dae82f9 100644 +--- a/runtime/libpgmath/lib/common/dceil.c ++++ b/runtime/libpgmath/lib/common/dceil.c +@@ -16,6 +16,7 @@ + */ + + #include "mthdecls.h" ++/* + #if defined(__SSE4_1__) || defined(__AVX__) + #include <immintrin.h> + #endif +@@ -33,9 +34,12 @@ __mth_i_dceil_sse(double x) + return _mm_cvtsd_f64(_mm_ceil_sd(_mm_set1_pd(x), _mm_set1_pd(x))); + } + #else ++*/ + double + __mth_i_dceil(double x) + { + return ceil(x); + } ++/* + #endif ++*/ +diff --git a/runtime/libpgmath/lib/common/dfloor.c b/runtime/libpgmath/lib/common/dfloor.c +index f947ef33..8b955897 100644 +--- a/runtime/libpgmath/lib/common/dfloor.c ++++ b/runtime/libpgmath/lib/common/dfloor.c +@@ -16,6 +16,7 @@ + */ + + #include "mthdecls.h" ++/* + #if defined(__SSE4_1__) || defined(__AVX__) + #include <immintrin.h> + #endif +@@ -33,9 +34,12 @@ __mth_i_dfloor_sse(double x) + return _mm_cvtsd_f64(_mm_floor_sd(_mm_set1_pd(x), _mm_set1_pd(x))); + } + #else ++*/ + double + __mth_i_dfloor(double x) + { + return floor(x); + } ++/* + #endif ++*/ +diff --git a/runtime/libpgmath/lib/common/floor.c b/runtime/libpgmath/lib/common/floor.c +index 7865bedc..c13872df 100644 +--- a/runtime/libpgmath/lib/common/floor.c ++++ b/runtime/libpgmath/lib/common/floor.c +@@ -16,6 +16,7 @@ + */ + + #include "mthdecls.h" ++/* + #if defined(__SSE4_1__) || defined(__AVX__) + #include <immintrin.h> + #endif +@@ -33,9 +34,12 @@ __mth_i_floor_sse(float x) + return _mm_cvtss_f32(_mm_floor_ss(_mm_set1_ps(x), _mm_set1_ps(x))); + } + #else ++*/ + float + __mth_i_floor(float x) + { + return floorf(x); + } ++/* + #endif ++*/ diff --git a/var/spack/repos/builtin/packages/pgmath/package.py b/var/spack/repos/builtin/packages/pgmath/package.py index bd554890a0..c4c3c5d9d6 100644 --- a/var/spack/repos/builtin/packages/pgmath/package.py +++ b/var/spack/repos/builtin/packages/pgmath/package.py @@ -11,13 +11,20 @@ class Pgmath(CMakePackage): """Flang's math library""" homepage = "https://github.com/flang-compiler/flang" - url = "https://github.com/flang-compiler/flang/archive/flang_20180612.tar.gz" + url = "https://github.com/flang-compiler/flang/archive/flang_20190329.tar.gz" git = "https://github.com/flang-compiler/flang.git" - version('develop', branch='master') + maintainers = ['naromero77'] + + version('master', branch='master') + version('20190329', sha256='b8c621da53829f8c53bad73125556fb1839c9056d713433b05741f7e445199f2') version('20180921', sha256='f33bd1f054e474f1e8a204bb6f78d42f8f6ecf7a894fdddc3999f7c272350784') version('20180612', sha256='6af858bea013548e091371a97726ac784edbd4ff876222575eaae48a3c2920ed') + # workaround for this issue + # https://github.com/flang-compiler/flang/issues/838 + patch('libpgmath_symbols.patch', when='@20190329,master') + depends_on("awk", type="build") conflicts("%gcc@:7.1.9999") diff --git a/var/spack/repos/builtin/packages/picard/package.py b/var/spack/repos/builtin/packages/picard/package.py index d7fdbdb3f2..98c0466866 100644 --- a/var/spack/repos/builtin/packages/picard/package.py +++ b/var/spack/repos/builtin/packages/picard/package.py @@ -63,10 +63,9 @@ class Picard(Package): filter_file('picard.jar', join_path(prefix.bin, 'picard.jar'), script, **kwargs) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """The Picard docs suggest setting this as a convenience.""" - run_env.prepend_path('PICARD', - join_path(self.prefix, 'bin', 'picard.jar')) + env.prepend_path('PICARD', join_path(self.prefix.bin, 'picard.jar')) def url_for_version(self, version): if version < Version('2.6.0'): diff --git a/var/spack/repos/builtin/packages/pig/package.py b/var/spack/repos/builtin/packages/pig/package.py new file mode 100644 index 0000000000..b2f87e57b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/pig/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Pig(Package): + """ + Pig is a dataflow programming environment for processing very large files. + Pig's language is called Pig Latin. A Pig Latin program consists of a + directed acyclic graph where each node represents an operation that + transforms data. + """ + + homepage = "http://archive.apache.org" + url = "http://archive.apache.org/dist/hadoop/pig/stable/pig-0.7.0.tar.gz" + + version('0.7.0', sha256='fa7211fb339f547f679a3dd90055f1ddc45d5754d88463e4cc39c380ddf8b02a') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/pipework/package.py b/var/spack/repos/builtin/packages/pipework/package.py new file mode 100644 index 0000000000..31b9341e8e --- /dev/null +++ b/var/spack/repos/builtin/packages/pipework/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Pipework(Package): + """ + Pipework lets you connect together containers in arbitrarily complex + scenarios. + """ + + homepage = "https://github.com/jpetazzo/pipework" + git = "https://github.com/jpetazzo/pipework.git" + + version('master', branch='master') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/pism/package.py b/var/spack/repos/builtin/packages/pism/package.py index 10bc658dff..356b726cb4 100644 --- a/var/spack/repos/builtin/packages/pism/package.py +++ b/var/spack/repos/builtin/packages/pism/package.py @@ -10,7 +10,7 @@ class Pism(CMakePackage): """Parallel Ice Sheet Model""" homepage = "http://pism-docs.org/wiki/doku.php:=" - url = "https://github.com/pism/pism/archive/v0.7.3.tar.gz" + url = "https://github.com/pism/pism/archive/v1.1.4.tar.gz" git = "https://github.com/pism/pism.git" maintainers = ['citibeth'] @@ -73,9 +73,9 @@ class Pism(CMakePackage): depends_on('fftw') depends_on('gsl') depends_on('mpi') - depends_on('netcdf') # Only the C interface is used, no netcdf-cxx4 + depends_on('netcdf-c') # Only the C interface is used, no netcdf-cxx4 depends_on('petsc') - depends_on('udunits2') + depends_on('udunits') depends_on('proj@:4') depends_on('everytrace', when='+everytrace') @@ -116,7 +116,7 @@ class Pism(CMakePackage): '-DPism_USE_EVERYTRACE=%s' % ('YES' if '+everytrace' in spec else 'NO')] - def setup_environment(self, spack_env, env): + def setup_run_environment(self, env): env.set('PISM_PREFIX', self.prefix) env.set('PISM_BIN', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py index 5a68b5ab4a..05b47fd476 100644 --- a/var/spack/repos/builtin/packages/pkg-config/package.py +++ b/var/spack/repos/builtin/packages/pkg-config/package.py @@ -27,10 +27,9 @@ class PkgConfig(AutotoolsPackage): parallel = False - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Adds the ACLOCAL path for autotools.""" - spack_env.append_path('ACLOCAL_PATH', - join_path(self.prefix.share, 'aclocal')) + env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal) def configure_args(self): config_args = ['--enable-shared'] diff --git a/var/spack/repos/builtin/packages/pkgconf/package.py b/var/spack/repos/builtin/packages/pkgconf/package.py index 36b78c0713..8346d2286e 100644 --- a/var/spack/repos/builtin/packages/pkgconf/package.py +++ b/var/spack/repos/builtin/packages/pkgconf/package.py @@ -30,10 +30,9 @@ class Pkgconf(AutotoolsPackage): # TODO: Add a package for the kyua testing framework # depends_on('kyua', type='test') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Adds the ACLOCAL path for autotools.""" - spack_env.append_path('ACLOCAL_PATH', - join_path(self.prefix.share, 'aclocal')) + env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal) @run_after('install') def link_pkg_config(self): diff --git a/var/spack/repos/builtin/packages/planck-likelihood/package.py b/var/spack/repos/builtin/packages/planck-likelihood/package.py index 70ab82de2e..da6b67edc3 100644 --- a/var/spack/repos/builtin/packages/planck-likelihood/package.py +++ b/var/spack/repos/builtin/packages/planck-likelihood/package.py @@ -107,17 +107,15 @@ class PlanckLikelihood(Package): for dir in dirs: install_tree(dir, join_path(prefix, 'share', 'clik', dir)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - prefix = self.prefix - spack_env.set('CLIK_PATH', prefix) - spack_env.set('CLIK_DATA', join_path(prefix, 'share', 'clik')) - spack_env.set('CLIK_PLUGIN', 'rel2015') - - def setup_environment(self, spack_env, run_env): - prefix = self.prefix - run_env.set('CLIK_PATH', prefix) - run_env.set('CLIK_DATA', join_path(prefix, 'share', 'clik')) - run_env.set('CLIK_PLUGIN', 'rel2015') + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('CLIK_PATH', self.prefix) + env.set('CLIK_DATA', self.prefix.share.clik) + env.set('CLIK_PLUGIN', 'rel2015') + + def setup_run_environment(self, env): + env.set('CLIK_PATH', self.prefix) + env.set('CLIK_DATA', self.prefix.share.clik) + env.set('CLIK_PLUGIN', 'rel2015') @run_after('install') @on_package_attributes(run_tests=True) diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py index 8acc721cff..b34fa472a2 100644 --- a/var/spack/repos/builtin/packages/plumed/package.py +++ b/var/spack/repos/builtin/packages/plumed/package.py @@ -21,9 +21,16 @@ class Plumed(AutotoolsPackage): and C/C++ codes. """ homepage = 'http://www.plumed.org/' - url = 'https://github.com/plumed/plumed2/archive/v2.5.0.tar.gz' - + url = 'https://github.com/plumed/plumed2/archive/v2.5.3.tar.gz' + git = 'https://github.com/plumed/plumed2.git' + + version('master', branch='master') + version('2.6b', sha256='3ecda9d46967c8ddd08e820aed974794d926cffb78b262f9d42cdbece3b15677') + version('2.5.3', preferred=True, sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc') + version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4') + version('2.5.1', sha256='de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba') version('2.5.0', sha256='53e08187ec9f8af2326fa84407e34644a7c51d2af93034309fb70675eee5e4f7') + version('2.4.6', sha256='c22ad19f5cd36ce9fe4ba0b53158fc2a3d985c48fc04606e3f3b3e835b994cb3') version('2.4.4', sha256='1e5c24109314481fad404da97d61c7339b219e27e120c9c80bacc79c9f6a51a8') version('2.4.2', sha256='528ce57f1f5330480bcd403140166a4580efd2acaea39c85dfeca5e2cd649321') version('2.4.1', sha256='f00410ebdd739c2ddf55fcd714ff4bd88a1029e02d2fc9cea0b5fca34e0fc4eb') @@ -53,7 +60,7 @@ class Plumed(AutotoolsPackage): depends_on('lapack') # For libmatheval support through the 'function' module # which is enabled by default (or when optional_modules=all) - depends_on('libmatheval') + depends_on('libmatheval', when='@:2.4.99') depends_on('mpi', when='+mpi') depends_on('gsl', when='+gsl') diff --git a/var/spack/repos/builtin/packages/pmdk/package.py b/var/spack/repos/builtin/packages/pmdk/package.py index 2f8aca78e0..242a66297f 100644 --- a/var/spack/repos/builtin/packages/pmdk/package.py +++ b/var/spack/repos/builtin/packages/pmdk/package.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -import spack.architecture class Pmdk(Package): @@ -36,7 +35,7 @@ class Pmdk(Package): # pmdk is particular about the ARCH specification, must be # exactly "x86_64" for build to work - if 'x86_64' in spack.architecture.sys_type(): + if spec.target.family == 'x86_64': make_args += ['ARCH=x86_64'] make("install", *make_args) diff --git a/var/spack/repos/builtin/packages/polymake/package.py b/var/spack/repos/builtin/packages/polymake/package.py index 556d31a587..37211ff992 100644 --- a/var/spack/repos/builtin/packages/polymake/package.py +++ b/var/spack/repos/builtin/packages/polymake/package.py @@ -2,8 +2,6 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - - from spack import * @@ -12,18 +10,28 @@ class Polymake(Package): homepage = "https://polymake.org/doku.php" url = "https://polymake.org/lib/exe/fetch.php/download/polymake-3.0r1.tar.bz2" + version('3.5', sha256='c649f8536ccef5a5e22b82c514a09278ebcd99d0815aa7170461fe12843109bd') version('3.0r2', sha256='e7c0f8e3a45ea288d2fb4ae781a1dcea913ef9c275fed401632cdb11a672d6dc') version('3.0r1', sha256='cdc223716b1cc3f4f3cc126089a438f9d12390caeed78291a87565717c7b504d') # Note: Could also be built with nauty instead of bliss - depends_on("bliss") depends_on("boost") depends_on("cddlib") depends_on("gmp") depends_on("lrslib") depends_on("mpfr") + depends_on("ninja", type='build', when='@3.2:') + depends_on("perl") + depends_on("perl-json") + depends_on("perl-termreadkey") + depends_on("perl-term-readline-gnu") + depends_on("perl-xml-libxml") + depends_on("perl-xml-libxslt") + depends_on("perl-xml-writer") depends_on("ppl") + depends_on("ppl@1.2:", when='@3.2:') + depends_on("readline") def install(self, spec, prefix): configure("--prefix=%s" % prefix, diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py index 91fc5fa4dc..9f00a614a4 100644 --- a/var/spack/repos/builtin/packages/portage/package.py +++ b/var/spack/repos/builtin/packages/portage/package.py @@ -51,7 +51,12 @@ class Portage(CMakePackage): else: options.append('-DENABLE_MPI=OFF') - options.append("-DLAPACKE_LIBRARIES=" + + 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()) + + options.append("-DLAPACKE_LIBRARY=" + self.spec["lapack"].libs.joined(";")) return options diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py index 63c76cbf35..491e5d8b82 100644 --- a/var/spack/repos/builtin/packages/postgresql/package.py +++ b/var/spack/repos/builtin/packages/postgresql/package.py @@ -87,25 +87,32 @@ class Postgresql(AutotoolsPackage): else: AutotoolsPackage.install(self, spec, prefix) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): spec = self.spec if '+perl' in spec: - run_env.prepend_path('PERL5LIB', self.prefix.lib) + env.prepend_path('PERL5LIB', self.prefix.lib) if '+tcl' in spec: - run_env.prepend_path('TCLLIBPATH', self.prefix.lib) + env.prepend_path('TCLLIBPATH', self.prefix.lib) if '+python' in spec: - run_env.prepend_path('PYTHONPATH', self.prefix.lib) + env.prepend_path('PYTHONPATH', self.prefix.lib) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): spec = self.spec if '+perl' in spec: - spack_env.prepend_path('PERL5LIB', self.prefix.lib) - run_env.prepend_path('PERL5LIB', self.prefix.lib) + env.prepend_path('PERL5LIB', self.prefix.lib) if '+tcl' in spec: - spack_env.prepend_path('TCLLIBPATH', self.prefix.lib) - run_env.prepend_path('TCLLIBPATH', self.prefix.lib) + env.prepend_path('TCLLIBPATH', self.prefix.lib) if '+python' in spec: - spack_env.prepend_path('PYTHONPATH', self.prefix.lib) - run_env.prepend_path('PYTHONPATH', self.prefix.lib) + env.prepend_path('PYTHONPATH', self.prefix.lib) + + def setup_dependent_run_environment(self, env, dependent_spec): + spec = self.spec + + if '+perl' in spec: + env.prepend_path('PERL5LIB', self.prefix.lib) + if '+tcl' in spec: + env.prepend_path('TCLLIBPATH', self.prefix.lib) + if '+python' in spec: + env.prepend_path('PYTHONPATH', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/ppl/package.py b/var/spack/repos/builtin/packages/ppl/package.py index e511f00158..27e77dcf2f 100644 --- a/var/spack/repos/builtin/packages/ppl/package.py +++ b/var/spack/repos/builtin/packages/ppl/package.py @@ -23,6 +23,7 @@ class Ppl(Package): homepage = "http://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') version('1.1', sha256='46f073c0626234f0b1a479356c0022fe5dc3c9cf10df1a246c9cde81f7cf284d') depends_on("gmp") diff --git a/var/spack/repos/builtin/packages/prank/package.py b/var/spack/repos/builtin/packages/prank/package.py index 0eb0050d34..7901d627b1 100644 --- a/var/spack/repos/builtin/packages/prank/package.py +++ b/var/spack/repos/builtin/packages/prank/package.py @@ -10,7 +10,7 @@ class Prank(Package): """A powerful multiple sequence alignment browser.""" homepage = "http://wasabiapp.org/software/prank/" - url = "http://wasabiapp.org/download/prank/prank.source.150803.tgz" + url = "http://wasabiapp.org/download/prank/prank.source.170427.tgz" version('170427', sha256='623eb5e9b5cb0be1f49c3bf715e5fabceb1059b21168437264bdcd5c587a8859') @@ -21,6 +21,15 @@ class Prank(Package): def install(self, spec, prefix): with working_dir('src'): + + filter_file('gcc', '{0}'.format(spack_cc), + 'Makefile', string=True) + filter_file('g++', '{0}'.format(spack_cxx), + 'Makefile', string=True) + if not spec.target.family == 'x86_64': + filter_file('-m64', '', 'Makefile', string=True) + filter_file('-pipe', '', 'Makefile', string=True) + make() mkdirp(prefix.bin) install('prank', prefix.bin) diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py index d9cbae147a..9c5b561b11 100644 --- a/var/spack/repos/builtin/packages/precice/package.py +++ b/var/spack/repos/builtin/packages/precice/package.py @@ -31,7 +31,7 @@ class Precice(CMakePackage): # Skip version 1.1.1 entirely, the cmake was lacking install. variant('mpi', default=True, description='Enable MPI support') - variant('petsc', default=False, description='Enable PETSc support') + variant('petsc', default=True, description='Enable PETSc support') variant('python', default=False, description='Enable Python support') variant('shared', default=True, description='Build shared libraries') @@ -48,6 +48,13 @@ class Precice(CMakePackage): # numpy 1.17+ requires Python 3 depends_on('py-numpy@:1.16', when='+python', type=('build', 'run')) + # We require C++11 compiler support as well as + # library support for time manipulators (N2071, N2072) + conflicts('%gcc@:4') + conflicts('%clang@:3.7') + conflicts('%intel@:14') + conflicts('%pgi@:14') + def cmake_args(self): """Populate cmake arguments for precice.""" spec = self.spec diff --git a/var/spack/repos/builtin/packages/preseq/package.py b/var/spack/repos/builtin/packages/preseq/package.py index 1315a2fa0c..2cfb2228d7 100644 --- a/var/spack/repos/builtin/packages/preseq/package.py +++ b/var/spack/repos/builtin/packages/preseq/package.py @@ -21,5 +21,5 @@ class Preseq(MakefilePackage): depends_on('samtools') depends_on('gsl') - def setup_environment(self, spack_env, run_env): - spack_env.set('PREFIX', self.prefix) + def setup_build_environment(self, env): + env.set('PREFIX', self.prefix) diff --git a/var/spack/repos/builtin/packages/prodigal/package.py b/var/spack/repos/builtin/packages/prodigal/package.py index 2cf8fedafd..4781f1baf7 100644 --- a/var/spack/repos/builtin/packages/prodigal/package.py +++ b/var/spack/repos/builtin/packages/prodigal/package.py @@ -18,5 +18,5 @@ class Prodigal(MakefilePackage): def install(self, spec, prefix): make('INSTALLDIR={0}'.format(self.prefix), 'install') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py index de252690d0..873731ca96 100644 --- a/var/spack/repos/builtin/packages/protobuf/package.py +++ b/var/spack/repos/builtin/packages/protobuf/package.py @@ -12,23 +12,24 @@ class Protobuf(CMakePackage): """Google's data interchange format.""" homepage = "https://developers.google.com/protocol-buffers" - url = "https://github.com/protocolbuffers/protobuf/archive/v3.2.0.tar.gz" + url = "https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz" root_cmakelists_dir = "cmake" - 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.10.1', sha256='6adf73fd7f90409e479d6ac86529ade2d45f50494c5c10f539226693cb8fe4f7') + 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.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('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') variant('shared', default=True, description='Enables the build of shared libraries') diff --git a/var/spack/repos/builtin/packages/ps-lite/package.py b/var/spack/repos/builtin/packages/ps-lite/package.py index 92a0b7ff88..9d20d09d55 100644 --- a/var/spack/repos/builtin/packages/ps-lite/package.py +++ b/var/spack/repos/builtin/packages/ps-lite/package.py @@ -17,6 +17,6 @@ class PsLite(CMakePackage): version('20170328', commit='acdb698fa3bb80929ef83bb37c705f025e119b82') depends_on('protobuf@3:') - depends_on('zeromq') + depends_on('libzmq') patch('cmake.patch') diff --git a/var/spack/repos/builtin/packages/psmc/package.py b/var/spack/repos/builtin/packages/psmc/package.py index 8db04ce5bc..aa684e0b25 100644 --- a/var/spack/repos/builtin/packages/psmc/package.py +++ b/var/spack/repos/builtin/packages/psmc/package.py @@ -17,8 +17,8 @@ class Psmc(MakefilePackage): depends_on('zlib', type='link') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix.bin.utils) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.bin.utils) def build(self, spec, prefix): make() diff --git a/var/spack/repos/builtin/packages/pvm/package.py b/var/spack/repos/builtin/packages/pvm/package.py index 0d19dd9f21..238be70a3b 100644 --- a/var/spack/repos/builtin/packages/pvm/package.py +++ b/var/spack/repos/builtin/packages/pvm/package.py @@ -38,7 +38,7 @@ class Pvm(MakefilePackage): install_tree(join_path('lib', pvm_arch), prefix.lib) install_tree('man', prefix.man) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # Before running PVM, you must set the environment # variable "PVM_ROOT" to the path where PVM resides - run_env.set('PVM_ROOT', self.prefix) + env.set('PVM_ROOT', self.prefix) diff --git a/var/spack/repos/builtin/packages/py-amqp/package.py b/var/spack/repos/builtin/packages/py-amqp/package.py new file mode 100644 index 0000000000..78a33b241c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-amqp/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.5.2', sha256='77f1aef9410698d20eaeac5b73a87817365f457a507d82edf292e12cbb83b08d') + version('2.4.2', sha256='043beb485774ca69718a35602089e524f87168268f0d1ae115f28b88d27f92d7') + version('2.4.1', sha256='6816eed27521293ee03aa9ace300a07215b11fee4e845588a9b863a7ba30addb') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + + depends_on('py-setuptools', type='build') + depends_on('py-vine@1.1.3:4.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-arrow/package.py b/var/spack/repos/builtin/packages/py-arrow/package.py new file mode 100644 index 0000000000..acc42ea777 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-arrow/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyArrow(PythonPackage): + """Arrow is a Python library that offers a sensible and human-friendly + approach to creating, manipulating, formatting and converting dates, + times and timestamps. It implements and updates the datetime type, + plugging gaps in functionality and providing an intelligent module API + that supports many common creation scenarios. Simply put, it helps you + 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.14.7.tar.gz" + + version('0.14.7', sha256='67f8be7c0cf420424bc62d8d7dc40b44e4bb2f7b515f9cc2954fb36e35797656') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + 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-aspy-yaml/package.py b/var/spack/repos/builtin/packages/py-aspy-yaml/package.py new file mode 100644 index 0000000000..8132900d1e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-aspy-yaml/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.3.0', sha256='e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45') + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pyyaml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-asserts/package.py b/var/spack/repos/builtin/packages/py-asserts/package.py new file mode 100644 index 0000000000..96a6b298ee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-asserts/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyAsserts(PythonPackage): + """Stand-alone Assertions.""" + + homepage = "https://github.com/srittau/python-asserts" + url = "https://github.com/srittau/python-asserts/archive/v0.10.0.tar.gz" + + version('0.10.0', sha256='3466cf32c36d97ee2802121438003693546f590be81095317d0d698066bb5df7') + version('0.9.1', sha256='a73ea6b2ddc77364a5f0e13197f00662485944a6dd31c1f7555ff2f99c0f7319') + version('0.9.0', sha256='e3b8b06309234f9a7c6e4679e0f3cc127cf18da95c30fbb524ff47d439e22b17') + version('0.8.6', sha256='8a477746dbc501ac0d1fe9e593a1faafa7d361ceca79d994d3b2ebeecc7fbf32') + + 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-astor/package.py b/var/spack/repos/builtin/packages/py-astor/package.py index 872941a377..bcda4dc43e 100644 --- a/var/spack/repos/builtin/packages/py-astor/package.py +++ b/var/spack/repos/builtin/packages/py-astor/package.py @@ -14,9 +14,16 @@ class PyAstor(PythonPackage): url = "https://pypi.io/packages/source/a/astor/astor-0.8.0.tar.gz" version('0.8.0', sha256='37a6eed8b371f1228db08234ed7f6cfdc7817a3ed3824797e20cbb11dc2a7862') - version('0.6', sha256='175ec395cde36aa0178c5a3120d03954c65d1ef4bb19ec4aa30e9d7a7cc426c4') + version('0.6', sha256='175ec395cde36aa0178c5a3120d03954c65d1ef4bb19ec4aa30e9d7a7cc426c4') - depends_on('python@2.7:2.8,3.4:') + 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 + # https://github.com/berkerpeksag/astor/pull/163 + patch('https://github.com/berkerpeksag/astor/pull/163/commits/30059dac4eb832e58ab2109db84508b294ba366d.patch', + sha256='edc5eeddabe153b08e938f52edaeb2d880ee3128082967f310db0f98510fe6e0', + when='@0.8.0') 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 029745dec1..5d949c053a 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 @@ -10,9 +10,9 @@ class PyAvroJsonSerializer(PythonPackage): """Serializes data into a JSON format using AVRO schema.""" homepage = "https://github.com/linkedin/python-avro-json-serializer" - url = "https://github.com/linkedin/python-avro-json-serializer/archive/0.4.tar.gz" + url = "https://pypi.io/packages/source/a/avro_json_serializer/avro_json_serializer-0.4.tar.gz" - version('0.4', sha256='58df57e6c85b1b453668eb0bff2b049efcfd83d6e5dfa72cee1df220f330820d') + version('0.4', sha256='f9dac2dac92036c5dd5aba8c716545fc0a0630cc365a51ab15bc2ac47eac28f1') depends_on('py-setuptools', type='build') depends_on('py-simplejson', type=('build', 'run')) 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 d06efbd5bb..75930f05b8 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 @@ -19,5 +19,5 @@ class PyBackportsShutilGetTerminalSize(PythonPackage): # newer setuptools version mess with "namespace" packages in an # incompatible way cf. https://github.com/pypa/setuptools/issues/900 - depends_on('py-setuptools@:30.999.999', type='build') + depends_on('py-setuptools@:30.999.999,41:', type='build') depends_on('python@:3.2') 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 566a0841a0..d7f2700f9d 100644 --- a/var/spack/repos/builtin/packages/py-backports-weakref/package.py +++ b/var/spack/repos/builtin/packages/py-backports-weakref/package.py @@ -12,6 +12,7 @@ class PyBackportsWeakref(PythonPackage): homepage = "https://github.com/PiDelport/backports.weakref" url = "https://pypi.org/packages/source/b/backports.weakref/backports.weakref-1.0.post1.tar.gz" - version('1.0.post1', sha256='bc4170a29915f8b22c9e7c4939701859650f2eb84184aee80da329ac0b9825c2') + version('1.0.post1', sha256='bc4170a29915f8b22c9e7c4939701859650f2eb84184aee80da329ac0b9825c2', preferred=True) + version('1.0rc1', sha256='8813bf712a66b3d8b85dc289e1104ed220f1878cf981e2fe756dfaabe9a82892') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py index 1403e24e9a..677eeaafb8 100644 --- a/var/spack/repos/builtin/packages/py-basemap/package.py +++ b/var/spack/repos/builtin/packages/py-basemap/package.py @@ -34,8 +34,8 @@ class PyBasemap(PythonPackage): else: return 'https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-{0}/basemap-{0}.tar.gz'.format(version) - def setup_environment(self, spack_env, run_env): - spack_env.set('GEOS_DIR', self.spec['geos'].prefix) + def setup_build_environment(self, env): + env.set('GEOS_DIR', self.spec['geos'].prefix) def install(self, spec, prefix): """Install everything from build directory.""" diff --git a/var/spack/repos/builtin/packages/py-bcrypt/package.py b/var/spack/repos/builtin/packages/py-bcrypt/package.py new file mode 100644 index 0000000000..e46b57b658 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-bcrypt/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyBcrypt(PythonPackage): + """Modern password hashing for your software and your servers""" + + homepage = "https://github.com/pyca/bcrypt/" + url = "https://github.com/pyca/bcrypt/archive/3.1.4.tar.gz" + + version('3.1.4', sha256='ca122a2cdcdffb0fd04f9dfe3493766f298bef02dea2f190f35ea6fdee222b96') + + depends_on('py-setuptools', type='build') + depends_on('py-cffi@1.1:', type=('build', 'run')) + depends_on('py-six@1.4.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-billiard/package.py b/var/spack/repos/builtin/packages/py-billiard/package.py new file mode 100644 index 0000000000..1dad883021 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-billiard/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.6.1.0', sha256='b8809c74f648dfe69b973c8e660bcec00603758c9db8ba89d7719f88d5f01f26') + version('3.6.0.0', sha256='756bf323f250db8bf88462cd042c992ba60d8f5e07fc5636c24ba7d6f4261d84') + version('3.5.0.5', sha256='42d9a227401ac4fba892918bba0a0c409def5435c4b483267ebfe821afaaba0e') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-boto3/package.py b/var/spack/repos/builtin/packages/py-boto3/package.py index d76ee27abf..471f1457fe 100644 --- a/var/spack/repos/builtin/packages/py-boto3/package.py +++ b/var/spack/repos/builtin/packages/py-boto3/package.py @@ -10,16 +10,20 @@ class PyBoto3(PythonPackage): """The AWS SDK for Python.""" homepage = "https://github.com/boto/boto3" - url = "https://pypi.io/packages/source/b/boto3/boto3-1.9.169.tar.gz" + 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' ] + version('1.10.44', sha256='adc0c0269bd65967fd528d7cd826304f381d40d94f2bf2b09f58167e5ac05d86') + version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6') version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169') depends_on('py-setuptools', type='build') - depends_on('py-botocore@1.12.169:1.12.999', 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')) diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py index 16877560a2..88c52c1aae 100644 --- a/var/spack/repos/builtin/packages/py-botocore/package.py +++ b/var/spack/repos/builtin/packages/py-botocore/package.py @@ -10,15 +10,17 @@ 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.12.169.tar.gz" + url = "https://pypi.io/packages/source/b/botocore/botocore-1.13.44.tar.gz" import_modules = ['botocore'] + version('1.13.44', sha256='a4409008c32a3305b9c469c5cc92edb5b79d6fcbf6f56fe126886b545f0a4f3f') + version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2') version('1.12.169', sha256='25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e') depends_on('py-setuptools', type='build') depends_on('py-jmespath@0.7.1:0.999', type=('build', 'run')) - depends_on('py-docutils@0.10:', type=('build', 'run')) + depends_on('py-docutils@0.10:0.15', type=('build', 'run')) 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')) diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py index 5ebb9f85bc..a8c1b5de7b 100644 --- a/var/spack/repos/builtin/packages/py-brian2/package.py +++ b/var/spack/repos/builtin/packages/py-brian2/package.py @@ -10,20 +10,23 @@ 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.0.1.tar.gz" - - version('2.0.1', sha256='195d8ced0d20e9069917776948f92aa70b7457bbc6b5222b8199654402ee1153') - version('2.0rc3', sha256='05f347f5fa6b25d1ce5ec152a2407bbce033599eb6664f32f5331946eb3c7d66') - - variant('doc', default=False, description='Build the documentation') - - # depends on py-setuptools@6: for windows, if spack targets windows, - # this will need to be added here - depends_on('py-setuptools', type='build') - depends_on('py-numpy@1.8.2:', type=('build', 'run')) - depends_on('py-sympy@0.7.6:', type=('build', 'run')) - depends_on('py-pyparsing', type=('build', 'run')) - depends_on('py-jinja2@2.7:', type=('build', 'run')) - depends_on('py-cpuinfo@0.1.6:', type=('build', 'run')) - depends_on('py-sphinx@1.4.2:', type=('build', 'run'), when='+docs') - depends_on('py-nosetests@1.0:', type='test') + url = "https://pypi.io/packages/source/B/Brian2/Brian2-2.2.2.1.tar.gz" + + version('2.2.2.1', sha256='02075f66d42fd243fc5e28e1add8862709ae9fdabaffb69858e6d7f684a91525') + version('2.0.1', sha256='195d8ced0d20e9069917776948f92aa70b7457bbc6b5222b8199654402ee1153') + version('2.0rc3', sha256='05f347f5fa6b25d1ce5ec152a2407bbce033599eb6664f32f5331946eb3c7d66') + + variant('docs', default=False, description='Build the documentation') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-numpy@1.10:', type=('build', 'run')) + 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-pyparsing', type=('build', 'run')) + depends_on('py-jinja2@2.7:', type=('build', 'run')) + depends_on('py-setuptools@21:', type=('build', 'run')) + depends_on('py-sphinx@1.5:', type=('build', 'run'), when='+docs') + depends_on('py-nose@1.0:', type='test') + + def build_args(self, spec, prefix): + return ['--with-cython'] diff --git a/var/spack/repos/builtin/packages/py-cached-property/package.py b/var/spack/repos/builtin/packages/py-cached-property/package.py new file mode 100644 index 0000000000..c68ef62570 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cached-property/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.5.1', sha256="9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504") + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-cartopy/package.py b/var/spack/repos/builtin/packages/py-cartopy/package.py index b00c71645c..4eac0a97e9 100644 --- a/var/spack/repos/builtin/packages/py-cartopy/package.py +++ b/var/spack/repos/builtin/packages/py-cartopy/package.py @@ -12,6 +12,7 @@ class PyCartopy(PythonPackage): homepage = "http://scitools.org.uk/cartopy/" url = "https://github.com/SciTools/cartopy/archive/v0.16.0.tar.gz" + version('0.17.0', sha256='137642e63952404ec0841fa0333ad14c58fbbf19cca2a5ac6a38498c4b4998fb') version('0.16.0', sha256='cadf62434492c965220b37f0548bc58180466ad6894a1db57dbc51cd43467e5c') depends_on('py-setuptools@0.7.2:', type='build') @@ -21,17 +22,24 @@ class PyCartopy(PythonPackage): depends_on('py-pyshp@1.1.4:', type=('build', 'run')) depends_on('py-six@1.3.0:', type=('build', 'run')) depends_on('geos@3.3.3:') - depends_on('proj@4.9.0:5') + depends_on('proj@4.9.0:5', when='@0.16.0') + depends_on('proj@4.9:', when='@0.17.0') + + variant('epsg', default=True, description='Add support for epsg.io') + variant('ows', default=True, description='Add support for Open Geospatial Consortium (OGC) web service') + variant('plotting', default=True, description='Add plotting functionality') # optional dependecies - depends_on('py-matplotlib@1.5.1:', type=('build', 'run')) - depends_on('gdal@1.10.0:+python', type=('build', 'run')) - depends_on('py-pillow@1.7.8:', type=('build', 'run')) - depends_on('py-pyepsg@0.2.0:', type=('build', 'run')) - depends_on('py-scipy@0.10:', type=('build', 'run')) - depends_on('py-owslib@0.8.11:', type=('build', 'run')) + depends_on('py-matplotlib@1.5.1:', type=('build', 'run'), when='+plotting') + depends_on('gdal@1.10.0:+python', type=('build', 'run'), when='+plotting') + depends_on('py-pillow@1.7.8:', type=('build', 'run'), when='+ows') + depends_on('py-pillow@1.7.8:', type=('build', 'run'), when='+plotting') + depends_on('py-pyepsg@0.2.0:', type=('build', 'run'), when='+epsg') + depends_on('py-scipy@0.10:', type=('build', 'run'), when='+plotting') + depends_on('py-owslib@0.8.11:', type=('build', 'run'), when='+ows') # 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') @@ -41,4 +49,8 @@ class PyCartopy(PythonPackage): args = ['-I{0}'.format(spec['proj'].prefix.include), '-L{0}'.format(spec['proj'].prefix.lib) ] + + if spec.satisfies('@0.17.0 ^proj@6'): + args.append('-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H') + return args 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 facb14a43f..19614e5cba 100644 --- a/var/spack/repos/builtin/packages/py-cdat-lite/package.py +++ b/var/spack/repos/builtin/packages/py-cdat-lite/package.py @@ -17,7 +17,7 @@ class PyCdatLite(PythonPackage): version('6.0.1', sha256='092ae4ff1fb03dee00096e8dd595b769b422759ce972d96525950adf8e1c9374') - depends_on("netcdf") + depends_on("netcdf-c") depends_on("python@2.5:2.8", 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-celery/package.py b/var/spack/repos/builtin/packages/py-celery/package.py new file mode 100644 index 0000000000..9696633a23 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-celery/package.py @@ -0,0 +1,57 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('4.3.0', sha256='4c4532aa683f170f40bd76f928b70bc06ff171a959e06e71bf35f2f9d6031ef9') + + variant('redis', default=False, description="Use redis transport") + # 'auth', + # 'cassandra', + # 'django', + # 'elasticsearch', + # 'memcache', + # 'pymemcache', + # 'couchbase', + # 'arangodb', + # 'eventlet', + # 'rabbitmq' + # 'gevent', + # 'msgpack', + # 'yaml', + # 'sqs', + # 'couchdb', + # 'riak', + # 'zookeeper', + # 'solar', + # 'sqlalchemy', + # 'azureblockblob', + # 'librabbitmq', + # 'pyro', + # 'slmq', + # 'tblib', + # 'consul', + # 'dynamodb', + # 'mongodb', + # 'cosmosdbsql', + # 's3', + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + + depends_on('py-setuptools', type=('build', 'run')) + + depends_on('py-redis@3.2.0:', when='+redis', type=('build', 'run')) + + depends_on('py-pytz@2019.3:', type=('build', 'run')) + depends_on('py-billiard@3.6.0:3.999', type=('build', 'run')) + depends_on('py-kombu@4.4.0:4.999', type=('build', 'run')) + depends_on('py-vine@1.3.0:', type=('build', 'run')) 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 aaa2505d10..ea7634afbb 100644 --- a/var/spack/repos/builtin/packages/py-cf-units/package.py +++ b/var/spack/repos/builtin/packages/py-cf-units/package.py @@ -26,4 +26,4 @@ class PyCfUnits(PythonPackage): depends_on('py-numpy', type=('build', 'run')) depends_on('py-antlr4-python3-runtime', type=('build', 'run')) depends_on('py-pytest-runner', type=('build')) - depends_on('udunits2') + depends_on('udunits') diff --git a/var/spack/repos/builtin/packages/py-cfgv/package.py b/var/spack/repos/builtin/packages/py-cfgv/package.py new file mode 100644 index 0000000000..d3c53fefe0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cfgv/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.0.1', sha256='edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144') + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-chai/package.py b/var/spack/repos/builtin/packages/py-chai/package.py new file mode 100644 index 0000000000..118aab332b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-chai/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.1.2', sha256='ff8d2b6855f660cd23cd5ec79bd10264d39f24f6235773331b48e7fcd637d6cc') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-cheroot/package.py b/var/spack/repos/builtin/packages/py-cheroot/package.py new file mode 100644 index 0000000000..e18c2be9cd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cheroot/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version( + '6.5.5', sha256='f6a85e005adb5bc5f3a92b998ff0e48795d4d98a0fbb7edde47a7513d4100601') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm@1.15.0:', type='build') + depends_on('py-setuptools-scm-git-archive@1.0:', type='build') + depends_on('py-more-itertools@2.6:', type=('build', 'run')) + depends_on('py-six@1.11.0:', type=('build', 'run')) + depends_on('py-backports-functools-lru-cache', 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 new file mode 100644 index 0000000000..2026cd00ef --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cherrypy/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('18.1.1', sha256='6585c19b5e4faffa3613b5bf02c6a27dcc4c69a30d302aba819639a2af6fa48b') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build') + depends_on('py-more-itertools', type=('build', 'run')) + depends_on('py-zc-lockfile', type=('build', 'run')) + depends_on('py-cheroot@6.2.4:', type=('build', 'run')) + depends_on('py-portend@2.1.1:', type=('build', 'run')) + depends_on('python@3.5:', when='@18.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cinema-lib/package.py b/var/spack/repos/builtin/packages/py-cinema-lib/package.py new file mode 100644 index 0000000000..32ffd87250 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cinema-lib/package.py @@ -0,0 +1,41 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyCinemaLib(PythonPackage): + """cinema_lib is a set of tools and library for interacting with a + Cinema database (currently Spec A and Spec D) through Python and + the command line tool, cinema.""" + + homepage = "https://cinemascience.github.io/" + url = "https://github.com/cinemascience/cinema_lib/archive/1.2.1.tar.gz" + git = "https://github.com/cinemascience/cinema_lib.git" + + maintainers = ['EthanS94'] + + version('master', branch='master') + version('1.2.1', sha256='13c6c7b3df7dae3e05c2f44009b7c149841f604b7c51f36067bbcea9e2d088eb') + version('1.2.0', sha256='f76b55517b7cfe7311d953426e08ce364b2e7e1cf84699828c229dd068ee3a08') + version('1.1.1', sha256='90001554b0f3207d57da9fcab768732449d89a9d5bf54cfe0928a76649caebe8') + version('1.1.0', sha256='2bd1787106643fd533e899a7e1b0f57f3933cde8c907e762f38ca95ac10316fd') + version('1.0.2', sha256='3ebe52546e1325bd23732cd171146dbb2a9e0c25ac616224bf6f8fff9e8d48b1') + version('1.0.1', sha256='5c2d220aa1dc28aec18f73c5cf0c4be3c834fffa0580e85b07050ff46364095d') + version('1.0.0', sha256='9e2967fd22f1b1324ca2579df6501d0bfbc5fb142ca41c7a02f9b7d109767d3c') + version('ECPMilestone201806', sha256='dfb7b1d0e3d8d1865814622879ddb019c2a16efb947201832a56a98186ff46ce') + + variant('image', default=True, + description='Enable image-processing algorithms from scikit-image') + variant('opencv', default=False, + description='Enable computer vision algorithms from OpenCV') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-numpy@1.13:', when='+image', type=('build', 'run')) + 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('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cogent/package.py b/var/spack/repos/builtin/packages/py-cogent/package.py index 62b13b4aff..67974a27b9 100644 --- a/var/spack/repos/builtin/packages/py-cogent/package.py +++ b/var/spack/repos/builtin/packages/py-cogent/package.py @@ -13,7 +13,7 @@ class PyCogent(PythonPackage): url = "https://pypi.io/packages/source/c/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", + version('1.5.3', url="https://pypi.io/packages/source/c/cogent/cogent-1.5.3.tgz", sha256='1215ac219070b7b2207b0b47b4388510f3e30ccd88160aa9f02f25d24bcbcd95') variant('matplotlib', default=False, description="graphs related to codon usage") @@ -30,5 +30,5 @@ class PyCogent(PythonPackage): depends_on('py-pymysql', when='+mysql', type=('build', 'run')) depends_on('py-cython@0.17.1:', type='build') - def setup_environment(self, spack_env, run_env): - spack_env.set('DONT_USE_PYREX', '1') + def setup_build_environment(self, env): + env.set('DONT_USE_PYREX', '1') diff --git a/var/spack/repos/builtin/packages/py-colorama/package.py b/var/spack/repos/builtin/packages/py-colorama/package.py index 073279d838..021256dcfe 100644 --- a/var/spack/repos/builtin/packages/py-colorama/package.py +++ b/var/spack/repos/builtin/packages/py-colorama/package.py @@ -12,6 +12,8 @@ class PyColorama(PythonPackage): homepage = "https://github.com/tartley/colorama" url = "https://pypi.io/packages/source/c/colorama/colorama-0.3.7.tar.gz" + version('0.4.1', sha256='05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d') version('0.3.7', sha256='e043c8d32527607223652021ff648fbb394d5e19cba9f1a698670b338c9d782b') + 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-coloredlogs/package.py b/var/spack/repos/builtin/packages/py-coloredlogs/package.py new file mode 100644 index 0000000000..edf92e61c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-coloredlogs/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('10.0', sha256='b869a2dda3fa88154b9dd850e27828d8755bfab5a838a1c97fbc850c6e377c36') + + depends_on('py-setuptools', type='build') + depends_on('py-humanfriendly@4.7:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-convertdate/package.py b/var/spack/repos/builtin/packages/py-convertdate/package.py new file mode 100644 index 0000000000..9a3cba5afe --- /dev/null +++ b/var/spack/repos/builtin/packages/py-convertdate/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyConvertdate(PythonPackage): + """Converts between Gregorian dates and other calendar + systems.Calendars included: Baha'i, French Republican, Hebrew, + 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" + + version('2.2.0', sha256='9d2b0cd8d5382d2458d4cfa59665abba398a9e9bfd3a01c6f61b7b47768d28bf') + + depends_on('py-setuptools', type='build') + depends_on('py-pytz@2014.10:2019.13', type=('build', 'run')) + depends_on('py-pymeeus@0.3.6:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cssselect/package.py b/var/spack/repos/builtin/packages/py-cssselect/package.py new file mode 100644 index 0000000000..1ad70e9135 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cssselect/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyCssselect(PythonPackage): + """Python-cssselect parses CSS3 Selectors and translate them to XPath 1.0 + expressions. Such expressions can be used in lxml or another XPath engine + to find the matching elements in an XML or HTML document.""" + + homepage = "https://github.com/scrapy/cssselect" + url = "https://github.com/scrapy/cssselect/archive/v1.1.0.tar.gz" + + version('1.1.0', sha256='dde8c1d4a2c82de6889a3af1c1adbce1a6f3ec08b07a854d873f3f3da92960af') + version('1.0.3', sha256='203d9691c42c13cffe26a2f8fc714977882fcf54a6df82c8eda3371f6beaecdb') + version('1.0.2', sha256='ee16bbb99b0a1f593ed4cd822f20bffefa4a4676d19d7dd1f231b4c1cc1cc1e2') + version('1.0.1', sha256='cdfa17ab5dc8818209f310a930b18d3035a4585ddd2c179e833036e2dde511c6') + version('1.0.0', sha256='2f757203e03aedcc1b31a452cf2752728b843351b7819ea2d4cd9ef38df7b324') diff --git a/var/spack/repos/builtin/packages/py-cvxopt/package.py b/var/spack/repos/builtin/packages/py-cvxopt/package.py index b12dcf4c87..fac983ccc1 100644 --- a/var/spack/repos/builtin/packages/py-cvxopt/package.py +++ b/var/spack/repos/builtin/packages/py-cvxopt/package.py @@ -37,85 +37,77 @@ class PyCvxopt(PythonPackage): # depends_on('mosek@8:', when='+mosek') depends_on('dsdp@5.8:', when='+dsdp') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec # BLAS/LAPACK Libraries # Default names of BLAS and LAPACK libraries - spack_env.set('CVXOPT_BLAS_LIB', ';'.join(spec['blas'].libs.names)) - spack_env.set('CVXOPT_LAPACK_LIB', ';'.join(spec['lapack'].libs.names)) + env.set('CVXOPT_BLAS_LIB', ';'.join(spec['blas'].libs.names)) + env.set('CVXOPT_LAPACK_LIB', ';'.join(spec['lapack'].libs.names)) # Directory containing BLAS and LAPACK libraries - spack_env.set('CVXOPT_BLAS_LIB_DIR', spec['blas'].libs.directories[0]) + env.set('CVXOPT_BLAS_LIB_DIR', spec['blas'].libs.directories[0]) # SuiteSparse Libraries # Directory containing SuiteSparse libraries - spack_env.set('CVXOPT_SUITESPARSE_LIB_DIR', - spec['suite-sparse'].libs.directories[0]) + env.set('CVXOPT_SUITESPARSE_LIB_DIR', + spec['suite-sparse'].libs.directories[0]) # Directory containing SuiteSparse header files - spack_env.set('CVXOPT_SUITESPARSE_INC_DIR', - spec['suite-sparse'].headers.directories[0]) + env.set('CVXOPT_SUITESPARSE_INC_DIR', + spec['suite-sparse'].headers.directories[0]) # GSL Libraries if '+gsl' in spec: - spack_env.set('CVXOPT_BUILD_GSL', 1) + env.set('CVXOPT_BUILD_GSL', 1) # Directory containing libgsl - spack_env.set('CVXOPT_GSL_LIB_DIR', - spec['gsl'].libs.directories[0]) + env.set('CVXOPT_GSL_LIB_DIR', spec['gsl'].libs.directories[0]) # Directory containing the GSL header files - spack_env.set('CVXOPT_GSL_INC_DIR', - spec['gsl'].headers.directories[0]) + env.set('CVXOPT_GSL_INC_DIR', spec['gsl'].headers.directories[0]) else: - spack_env.set('CVXOPT_BUILD_GSL', 0) + env.set('CVXOPT_BUILD_GSL', 0) # FFTW Libraries if '+fftw' in spec: - spack_env.set('CVXOPT_BUILD_FFTW', 1) + env.set('CVXOPT_BUILD_FFTW', 1) # Directory containing libfftw3 - spack_env.set('CVXOPT_FFTW_LIB_DIR', - spec['fftw'].libs.directories[0]) + env.set('CVXOPT_FFTW_LIB_DIR', spec['fftw'].libs.directories[0]) # Directory containing fftw.h - spack_env.set('CVXOPT_FFTW_INC_DIR', - spec['fftw'].headers.directories[0]) + env.set('CVXOPT_FFTW_INC_DIR', spec['fftw'].headers.directories[0]) else: - spack_env.set('CVXOPT_BUILD_FFTW', 0) + env.set('CVXOPT_BUILD_FFTW', 0) # GLPK Libraries if '+glpk' in spec: - spack_env.set('CVXOPT_BUILD_GLPK', 1) + env.set('CVXOPT_BUILD_GLPK', 1) # Directory containing libglpk - spack_env.set('CVXOPT_GLPK_LIB_DIR', - spec['glpk'].libs.directories[0]) + env.set('CVXOPT_GLPK_LIB_DIR', spec['glpk'].libs.directories[0]) # Directory containing glpk.h - spack_env.set('CVXOPT_GLPK_INC_DIR', - spec['glpk'].headers.directories[0]) + env.set('CVXOPT_GLPK_INC_DIR', spec['glpk'].headers.directories[0]) else: - spack_env.set('CVXOPT_BUILD_GLPK', 0) + env.set('CVXOPT_BUILD_GLPK', 0) # DSDP Libraries if '+dsdp' in spec: - spack_env.set('CVXOPT_BUILD_DSDP', 1) + env.set('CVXOPT_BUILD_DSDP', 1) # Directory containing libdsdp - spack_env.set('CVXOPT_DSDP_LIB_DIR', - spec['dsdp'].libs.directories[0]) + env.set('CVXOPT_DSDP_LIB_DIR', spec['dsdp'].libs.directories[0]) # Directory containing dsdp5.h - spack_env.set('CVXOPT_DSDP_INC_DIR', - spec['dsdp'].headers.directories[0]) + env.set('CVXOPT_DSDP_INC_DIR', spec['dsdp'].headers.directories[0]) @run_after('install') @on_package_attributes(run_tests=True) diff --git a/var/spack/repos/builtin/packages/py-cvxpy/package.py b/var/spack/repos/builtin/packages/py-cvxpy/package.py new file mode 100644 index 0000000000..8fc146c331 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cvxpy/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('1.0.25', sha256='8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13') + + 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-multiprocess', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-dataclasses/package.py b/var/spack/repos/builtin/packages/py-dataclasses/package.py new file mode 100644 index 0000000000..fc2fb4aaab --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dataclasses/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.7', sha256='494a6dcae3b8bcf80848eea2ef64c0cc5cd307ffc263e17cdf42f3e5420808e6') + + depends_on('python@3.6.00:3.6.99', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-dateparser/package.py b/var/spack/repos/builtin/packages/py-dateparser/package.py new file mode 100644 index 0000000000..c6916ae1ff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dateparser/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.7.2', sha256='e1eac8ef28de69a554d5fcdb60b172d526d61924b1a40afbbb08df459a36006b') + + variant('calendars', default=True, description='Add calendar libraries') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-python-dateutil@2.7.5:', type=('build', 'run')) + depends_on('py-pytz', type=('build', 'run')) + depends_on('py-regex', type=('build', 'run')) + depends_on('py-tzlocal', type=('build', 'run')) + depends_on('py-umalqurra', type=('build', 'run'), when='+calendars') + 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-deprecation/package.py b/var/spack/repos/builtin/packages/py-deprecation/package.py new file mode 100644 index 0000000000..31ac269f51 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-deprecation/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.0.7', sha256='c0392f676a6146f0238db5744d73e786a43510d54033f80994ef2f4c9df192ed') + + depends_on('py-setuptools', type='build') + depends_on('py-packaging', 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 49bac9470e..a828f760a0 100644 --- a/var/spack/repos/builtin/packages/py-dill/package.py +++ b/var/spack/repos/builtin/packages/py-dill/package.py @@ -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.6.zip" + url = "https://pypi.io/packages/source/d/dill/dill-0.2.7.tar.gz" + version('0.2.7', sha256='ddda0107e68e4eb1772a9f434f62a513c080c7171bd0dd6fb65d992788509812') version('0.2.6', sha256='6c1ccca68be483fa8c66e85a89ffc850206c26373aa77a97b83d8d0994e7f1fd') version('0.2.5', sha256='e82b3db7b9d962911c9c2d5cf2bb4a04f43933f505a624fb7dc5f68b949f0a5c') version('0.2.4', sha256='db68929eef0e886055d6bcd86f830141c1f653ddbf5d081c086e9d1c45efb334') @@ -23,3 +24,14 @@ class PyDill(PythonPackage): depends_on('python@2.5:2.8,3.1:') 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'): + url += 'dill-{0}.tar.gz' + else: + url += 'dill-{0}.zip' + + url = url.format(version) + return url diff --git a/var/spack/repos/builtin/packages/py-ecos/package.py b/var/spack/repos/builtin/packages/py-ecos/package.py new file mode 100644 index 0000000000..9c89efa90d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ecos/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + 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-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py index ee2d3e2ac6..98f7fb088f 100644 --- a/var/spack/repos/builtin/packages/py-enum34/package.py +++ b/var/spack/repos/builtin/packages/py-enum34/package.py @@ -15,6 +15,5 @@ class PyEnum34(PythonPackage): version('1.1.6', sha256='8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1') depends_on('python') - conflicts('python@3.4:') depends_on('py-ordereddict', when='^python@:2.6', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-espressopp/package.py b/var/spack/repos/builtin/packages/py-espressopp/package.py index 95bf54a8e9..8111ba1e80 100644 --- a/var/spack/repos/builtin/packages/py-espressopp/package.py +++ b/var/spack/repos/builtin/packages/py-espressopp/package.py @@ -14,7 +14,7 @@ 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/v1.9.4.1" + url = "https://github.com/espressopp/espressopp/tarball/v2.0.2" git = "https://github.com/espressopp/espressopp.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/py-exodus/package.py b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py index 5794a146a6..42cf282cdf 100644 --- a/var/spack/repos/builtin/packages/py-exodus/package.py +++ b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py @@ -6,7 +6,7 @@ from spack import * -class PyExodus(PythonPackage): +class PyExodusBundler(PythonPackage): """Exodus is a tool that makes it easy to successfully relocate Linux ELF binaries from one system to another.""" diff --git a/var/spack/repos/builtin/packages/py-extras/package.py b/var/spack/repos/builtin/packages/py-extras/package.py new file mode 100644 index 0000000000..5e63cb93a8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-extras/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyExtras(PythonPackage): + """Useful extra bits for Python - things that shold be in the standard + library.""" + + homepage = "https://github.com/testing-cabal/extras" + url = "https://pypi.io/packages/source/e/extras/extras-1.0.0.tar.gz" + + version('1.0.0', sha256='132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-filelock/package.py b/var/spack/repos/builtin/packages/py-filelock/package.py index b82459a256..89d0a7b37c 100644 --- a/var/spack/repos/builtin/packages/py-filelock/package.py +++ b/var/spack/repos/builtin/packages/py-filelock/package.py @@ -12,15 +12,14 @@ class PyFilelock(PythonPackage): inter-process communication""" homepage = "https://github.com/benediktschmitt/py-filelock" - url = "https://github.com/benediktschmitt/py-filelock/archive/v3.0.4.tar.gz" + url = "https://pypi.io/packages/source/f/filelock/filelock-3.0.4.tar.gz" - version('3.0.4', sha256='8521523f3eafb7bbbdd0a5a7a15ddb8076ea6f106385bbfc4c9d055db2585214') - version('3.0.3', sha256='8e1b1ad91de70e091de381ab8705b37e41d240c211d8d888dcf1d0e31d6274bb') - version('3.0.1', sha256='533107ab60de691030b7e90105ab38c8b0d60d52de382fe5302819cba95561f8') - version('3.0.0', sha256='f41bed24b280b2fd11b2f12fecdfd2a21e5f9babc4e89929b316946288fa195c') - version('2.0.13', sha256='85e2a001693c2995854e42783a8c11994d143f8ba9c92d31f573476a22a5b3b3') - version('2.0.12', sha256='3b67cddd8c405c27b9118a1383d5257b5b6e066d3a9a30ab03d42b4dc6828cbb') - version('2.0.11', sha256='97c36de6e0c2eaed6638a9575a96d176e4ec2820b888f3da3194bbb852f86c5e') - version('2.0.10', sha256='f15d99cfa3e89072d7709bf3b5d354cf1c9096cffdb1127c4dbff1ca4a89cb84') - version('2.0.9', sha256='86d8e95afe77bc92a94c2e0db2b452c067b453b017fd78edfbb679b199dadbd5') - version('2.0.8', sha256='4f69474338ebf6ead2e0c2e91c5f94a25af8125d307f539db10886a19e2e2628') + version('3.0.4', sha256='011327d4ed939693a5b28c0fdf2fd9bda1f68614c1d6d0643a89382ce9843a71') + version('3.0.3', sha256='7d8a86350736aa0efea0730e6a7f774195cbb1c2d61134c15f6be576399e87ff') + version('3.0.0', sha256='b3ad481724adfb2280773edd95ce501e497e88fa4489c6e41e637ab3fd9a456c') + version('2.0.13', sha256='d05079e7d7cae7576e192749d3461999ca6b0843d35b0f79f1fa956b0f6fc7d8') + version('2.0.12', sha256='eb4314a9a032707a914b037433ce866d4ed363fce8605d45f0c9d2cd6ac52f98') + version('2.0.11', sha256='e9e370efe86c30b19a2c8c36dd9fcce8e5ce294ef4ed6ac86664b666eaf852ca') + version('2.0.10', sha256='c73bf706d8a0c5722de0b745495fed9cda0e46c0eabb44eb18ee3f00520fa85f') + version('2.0.9', sha256='0f91dce339c9f25d6f2e0733a17e4f9a47b139dffda52619a0e61e013e5c6782') + version('2.0.8', sha256='7e48e4906de3c9a5d64d8f235eb3ae1050dfefa63fd65eaf318cc915c935212b') diff --git a/var/spack/repos/builtin/packages/py-fiscalyear/package.py b/var/spack/repos/builtin/packages/py-fiscalyear/package.py index c4ffdbdbe6..8e03b2457b 100644 --- a/var/spack/repos/builtin/packages/py-fiscalyear/package.py +++ b/var/spack/repos/builtin/packages/py-fiscalyear/package.py @@ -13,17 +13,19 @@ class PyFiscalyear(PythonPackage): the fiscal year and fiscal quarter of a date or datetime object.""" homepage = "https://github.com/adamjstewart/fiscalyear" - url = "https://pypi.io/packages/source/f/fiscalyear/fiscalyear-0.1.0.tar.gz" + url = "https://pypi.io/packages/source/f/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.2.0', sha256='f513616aeb03046406c56d7c69cd9e26f6a12963c71c1410cc3d4532a5bfee71') version('0.1.0', sha256='3fde4a12eeb72da446beb487e078adf1223a92d130520e589b82d7d1509701a2') - depends_on('python@2.5:') + 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-fixtures/package.py b/var/spack/repos/builtin/packages/py-fixtures/package.py new file mode 100644 index 0000000000..2f7f20a820 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fixtures/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.0.0', sha256='fcf0d60234f1544da717a9738325812de1f42c2fa085e2d9252d8fff5712b2ef') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-flye/package.py b/var/spack/repos/builtin/packages/py-flye/package.py index 03705a7a3a..cc4c2c7aa5 100644 --- a/var/spack/repos/builtin/packages/py-flye/package.py +++ b/var/spack/repos/builtin/packages/py-flye/package.py @@ -28,7 +28,7 @@ class PyFlye(PythonPackage): conflicts('%clang@:3.2', msg=msg) # Requires Apple Clang 5.0+ but no way to specify that right now - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if self.spec.target.family == 'aarch64': - spack_env.set('arm_neon', '1') - spack_env.set('aarch64', '1') + env.set('arm_neon', '1') + env.set('aarch64', '1') diff --git a/var/spack/repos/builtin/packages/py-fn/package.py b/var/spack/repos/builtin/packages/py-fn-py/package.py index 95cf3d4adf..0d4888be3a 100644 --- a/var/spack/repos/builtin/packages/py-fn/package.py +++ b/var/spack/repos/builtin/packages/py-fn-py/package.py @@ -6,7 +6,7 @@ from spack import * -class PyFn(PythonPackage): +class PyFnPy(PythonPackage): """Functional programming in Python: implementation of missing features to enjoy FP.""" diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py index 7d7372f66a..4e774360f0 100644 --- a/var/spack/repos/builtin/packages/py-fsspec/package.py +++ b/var/spack/repos/builtin/packages/py-fsspec/package.py @@ -10,9 +10,9 @@ class PyFsspec(PythonPackage): """A specification for pythonic filesystems.""" homepage = "https://github.com/intake/filesystem_spec" - url = "https://github.com/intake/filesystem_spec/archive/0.4.4.tar.gz" + url = "https://pypi.io/packages/source/f/fsspec/fsspec-0.4.4.tar.gz" - version('0.4.4', sha256='27dfc3dab37d5c037683c7a3eaf7acd8b24ee56e4ce3edb14af54bdb43973d43') + version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63') depends_on('python@3.5:', 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 new file mode 100644 index 0000000000..412c01af75 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fusepy/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFusepy(PythonPackage): + """Fusepy is a Python module that provides a simple interface to FUSE and + MacFUSE. It's just one file and is implemented using ctypes.""" + + homepage = "https://github.com/fusepy/fusepy" + url = "https://github.com/fusepy/fusepy/archive/v2.0.4.tar.gz" + + version('2.0.4', sha256='802610ab25ad04fc9ef34d024a0abe41cdcaff6a2cb8b2fb92cdda0057c09d1f') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-gast/package.py b/var/spack/repos/builtin/packages/py-gast/package.py index 086bb7af8b..a554e47893 100644 --- a/var/spack/repos/builtin/packages/py-gast/package.py +++ b/var/spack/repos/builtin/packages/py-gast/package.py @@ -13,6 +13,7 @@ class PyGast(PythonPackage): url = "https://pypi.io/packages/source/g/gast/gast-0.3.2.tar.gz" version('0.3.2', sha256='5c7617f1f6c8b8b426819642b16b9016727ddaecd16af9a07753e537eba8a3a5') + version('0.2.2', sha256='fe939df4583692f0512161ec1c880e0a10e71e6a232da045ab8edd3756fbadf0') + version('0.2.0', sha256='7068908321ecd2774f145193c4b34a11305bd104b4551b09273dfd1d6a374930') depends_on('py-setuptools', type='build') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-gf256/package.py b/var/spack/repos/builtin/packages/py-gf256/package.py new file mode 100644 index 0000000000..4177e95eb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-gf256/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyGf256(PythonPackage): + """GF256 is an implementation of GF(2**8). This Galois Field allows you + to perform finite field arithmetic on byte sized integers.""" + + homepage = "https://github.com/DasIch/gf256/" + url = "https://github.com/DasIch/gf256/archive/0.2.0.tar.gz" + + version('0.2.0', sha256='75966f57674d957fba361b4d41a19ea0989dd55532ca7df1797b1d5c5a67ad71') + + depends_on('py-setuptools', type='build') + depends_on('py-cffi@1.7.0:', 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 38d860e86f..08d1b9e6d4 100644 --- a/var/spack/repos/builtin/packages/py-git-review/package.py +++ b/var/spack/repos/builtin/packages/py-git-review/package.py @@ -23,5 +23,5 @@ class PyGitReview(PythonPackage): depends_on('git', type=('run')) depends_on('tk', type=('run')) - def setup_environment(self, spack_env, run_env): - run_env.set('PBR_VERSION', str(self.spec.version)) + def setup_run_environment(self, env): + env.set('PBR_VERSION', str(self.spec.version)) diff --git a/var/spack/repos/builtin/packages/py-google-pasta/package.py b/var/spack/repos/builtin/packages/py-google-pasta/package.py new file mode 100644 index 0000000000..98635b09d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-google-pasta/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.1.8', sha256='713813a9f7d6589e5defdaf21e80e4392eb124662f8bd829acd51a4f8735c0cb') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-grpcio/package.py b/var/spack/repos/builtin/packages/py-grpcio/package.py new file mode 100644 index 0000000000..70a4ca9051 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-grpcio/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyGrpcio(PythonPackage): + """HTTP/2-based RPC framework.""" + + homepage = "https://grpc.io/" + url = "https://pypi.io/packages/source/g/grpcio/grpcio-1.25.0.tar.gz" + + version('1.25.0', sha256='c948c034d8997526011960db54f512756fb0b4be1b81140a15b4ef094c6594a4') + + depends_on('py-setuptools', type='build') + depends_on('py-six@1.5.2:', type=('build', 'run')) + depends_on('py-futures@2.2.0:', when='^python@:3.1', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-cython@0.23:', type='build') + depends_on('openssl') + depends_on('zlib') + depends_on('c-ares') + + def setup_build_environment(self, env): + env.set('GRPC_PYTHON_BUILD_WITH_CYTHON', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_ZLIB', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_CARES', True) diff --git a/var/spack/repos/builtin/packages/py-h5glance/package.py b/var/spack/repos/builtin/packages/py-h5glance/package.py index 5e44903573..d6fbbd200d 100644 --- a/var/spack/repos/builtin/packages/py-h5glance/package.py +++ b/var/spack/repos/builtin/packages/py-h5glance/package.py @@ -19,4 +19,4 @@ class PyH5glance(PythonPackage): depends_on('python@3.5:', type=('build', 'run')) depends_on('py-h5py', type=('build', 'run')) - depends_on('py-python-htmlgen', type='run') + depends_on('py-htmlgen', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-h5sh/package.py b/var/spack/repos/builtin/packages/py-h5sh/package.py new file mode 100644 index 0000000000..ecd6a98a61 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-h5sh/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyH5sh(PythonPackage): + """Shell-like environment for HDF5.""" + + homepage = "https://pypi.python.org/pypi/h5sh" + url = "https://github.com/sethrj/h5sh/archive/v0.1.1.tar.gz" + + maintainers = ['sethrj'] + + version('0.1.1', sha256='111989d8200d1da8e150aee637a907e524ca0f98d5005a55587cba0d94d9c4a0') + + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-h5py', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + 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 new file mode 100644 index 0000000000..983753ceaa --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hacking/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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'] + + version('1.1.0', sha256='23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-hpccm/package.py b/var/spack/repos/builtin/packages/py-hpccm/package.py index fee945d1ed..31d8074470 100644 --- a/var/spack/repos/builtin/packages/py-hpccm/package.py +++ b/var/spack/repos/builtin/packages/py-hpccm/package.py @@ -11,9 +11,9 @@ class PyHpccm(PythonPackage): tool to make it easier to generate container specification files.""" homepage = "https://github.com/NVIDIA/hpc-container-maker" - url = "https://github.com/NVIDIA/hpc-container-maker/archive/v19.2.0.tar.gz" + url = "https://pypi.io/packages/source/h/hpccm/hpccm-19.2.0.tar.gz" - version('19.2.0', sha256='99eb0f48cfbdfb29815aed8bcd0fa8c5a857fd912a2bb9658b217b0712ca4af5') + version('19.2.0', sha256='c60eec914a802b0a76596cfd5fdf7122d3f8665fcef06ef928323f5dfb5219a6') depends_on('py-setuptools', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-htmlgen/package.py b/var/spack/repos/builtin/packages/py-htmlgen/package.py index 546991b9ee..65900353a2 100644 --- a/var/spack/repos/builtin/packages/py-python-htmlgen/package.py +++ b/var/spack/repos/builtin/packages/py-htmlgen/package.py @@ -7,7 +7,7 @@ from spack import * -class PyPythonHtmlgen(PythonPackage): +class PyHtmlgen(PythonPackage): """Library to generate HTML from classes. """ @@ -16,9 +16,7 @@ class PyPythonHtmlgen(PythonPackage): version('1.2.2', sha256='9dc60e10511f0fd13014659514c6c333498c21779173deb585cd4964ea667770') - conflicts('python@3.0:3.3.99') - + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - # dependencies for tests + depends_on('py-asserts@0.8.0:0.8.999', type='test') depends_on('py-typing', type='test') - depends_on('py-python-asserts', type='test') diff --git a/var/spack/repos/builtin/packages/py-humanfriendly/package.py b/var/spack/repos/builtin/packages/py-humanfriendly/package.py new file mode 100644 index 0000000000..592b16edf2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-humanfriendly/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class PyHumanfriendly(PythonPackage): + """Human friendly output for text interfaces using Python""" + + homepage = "https://pypi.org/project/humanfriendly/" + url = "https://files.pythonhosted.org/packages/26/71/e7daf57e819a70228568ff5395fdbc4de81b63067b93167e07825fcf0bcf/humanfriendly-4.18.tar.gz" + + version('4.18', sha256='33ee8ceb63f1db61cce8b5c800c531e1a61023ac5488ccde2ba574a85be00a85') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-hvac/package.py b/var/spack/repos/builtin/packages/py-hvac/package.py new file mode 100644 index 0000000000..f467747164 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hvac/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyHvac(PythonPackage): + """HashiCorp Vault API client""" + + homepage = "https://github.com/hvac/hvac/" + url = "https://github.com/hvac/hvac/archive/v0.2.17.tar.gz" + + version('0.9.6', sha256='ff60972edc512c73ac4811e91bcffccdb99f0d8975c0b41e44a4c79d73c711af') + version('0.9.5', sha256='3e4af2d84833b8f61c9c3351d4a9799bf8e8e4344d0ad4e162609a7379961a16') + version('0.9.4', sha256='ebb14b9a5b347c4f0b4dcea59f435dcc190d8ccb4cb9a20e5daf260af6509dd6') + version('0.9.3', sha256='cac16bc089be9966f1fe5c108fb966949dc5bb4348cc1f5f54ebd8511c410ed4') + version('0.2.17', sha256='a767be25fcb1165f4b28da3312a0bd196d1101c53c60fb99f899ff6c7b9aaa78') + + depends_on('py-setuptools', type='build') + depends_on('py-requests@2.7.0:', type=('build', 'run')) + depends_on('py-requests@2.21.0:', type=('build', 'run'), when='@0.9.3:') + depends_on('py-six@1.5.0:', type=('build', 'run'), when='@0.9.6:') diff --git a/var/spack/repos/builtin/packages/py-hypothesis/package.py b/var/spack/repos/builtin/packages/py-hypothesis/package.py index 2820ddcd7e..9be64a74af 100644 --- a/var/spack/repos/builtin/packages/py-hypothesis/package.py +++ b/var/spack/repos/builtin/packages/py-hypothesis/package.py @@ -21,9 +21,12 @@ class PyHypothesis(PythonPackage): # TODO: Add missing dependency required to import hypothesis.extra.django version('4.41.2', sha256='6847df3ffb4aa52798621dd007e6b61dbcf2d76c30ba37dc2699720e2c734b7a') + version('4.24.3', sha256='fd90a319f409f34a173156ca704d6c0c6c0bb30a2e43dbf26aced2c75569e5d5') version('4.7.2', sha256='87944c6379f77634474b88abbf1e5ed5fe966637cc926131eda5e2af5b54a608') version('3.7.0', sha256='0fea49d08f2d5884f014151a5af6fb48d862f6ad567ffc4a2e84abf2f186c423') depends_on('py-setuptools', type='build') - depends_on('py-attrs@19.2.0:', type=('build', 'run')) + depends_on('py-attrs@19.2.0:', when='@4.38.2:', type=('build', 'run')) + depends_on('py-attrs@16.0.0:', when='@3.44.22:', type=('build', 'run')) + depends_on('py-attrs', when='@3.28.0:', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run'), when='^python@:2') diff --git a/var/spack/repos/builtin/packages/py-ics/package.py b/var/spack/repos/builtin/packages/py-ics/package.py new file mode 100644 index 0000000000..178e1efc46 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ics/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyIcs(PythonPackage): + """Ics.py : iCalendar for Humans + + Ics.py is a pythonic and easy iCalendar library. Its goals are to + read and write ics data in a developer friendly way. + + iCalendar is a widely-used and useful format but not user friendly. + Ics.py is there to give you the ability of creating and reading + this format without any knowledge of it. + + It should be able to parse every calendar that respects the + rfc5545 and maybe some more. It also outputs rfc compliant + calendars. + + iCalendar (file extension .ics) is used by Google Calendar, Apple + Calendar, Android and many more. + + Ics.py is available for Python>=3.6 and is Apache2 Licensed. + """ + + homepage = "https://github.com/C4ptainCrunch/ics.py" + url = "https://github.com/C4ptainCrunch/ics.py/archive/v0.6.tar.gz" + + version('0.6', sha256='4947263136202d0489d4f5e5c7175dfd2db5d3508b8b003ddeaef96347f68830') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-arrow@0.11:0.14.99', type=('build', 'run')) + depends_on('py-six@1.5:', type=('build', 'run')) + depends_on('py-tatsu@4.2:', type=('build', 'run'), when='@0.6:') diff --git a/var/spack/repos/builtin/packages/py-identify/package.py b/var/spack/repos/builtin/packages/py-identify/package.py new file mode 100644 index 0000000000..a3665f378f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-identify/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyIdentify(PythonPackage): + """File identification library for Python. + + Given a file (or some information about a file), return a set of + 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" + + version('1.4.7', sha256='d8919589bd2a5f99c66302fec0ef9027b12ae150b0b0213999ad3f695fc7296e') + + 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-importlib-metadata/package.py b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py index b456fe128f..1c0d4ef519 100644 --- a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py +++ b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py @@ -9,17 +9,19 @@ from spack import * class PyImportlibMetadata(PythonPackage): """Read metadata from Python packages.""" - homepage = "http://importlib-metadata.readthedocs.io/" - url = "https://pypi.io/packages/source/i/importlib_metadata/importlib_metadata-0.23.tar.gz" + homepage = "https://importlib-metadata.readthedocs.io/" + url = "https://pypi.io/packages/source/i/importlib_metadata/importlib_metadata-1.2.0.tar.gz" - version('0.23', sha256='aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26') - version('0.19', sha256='23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8') + version('1.2.0', sha256='41e688146d000891f32b1669e8573c57e39e5060e7f5f647aa617cd9a9568278') + version('0.23', sha256='aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26') + version('0.19', sha256='23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + 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-zipp@0.5:', type=('build', 'run')) - depends_on('py-pathlib2', when='^python@:3.4', type=('build', 'run')) - depends_on('py-contextlib2', when='^python@:2.8', type=('build', 'run')) - depends_on('py-configparser@3.5:', when='^python@:2.8', 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') diff --git a/var/spack/repos/builtin/packages/py-importlib-resources/package.py b/var/spack/repos/builtin/packages/py-importlib-resources/package.py new file mode 100644 index 0000000000..37b7d4cb19 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-importlib-resources/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.0.2', sha256='d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078') + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + + depends_on('py-setuptools', type='build') + depends_on('py-wheel', 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-ipaddress/package.py b/var/spack/repos/builtin/packages/py-ipaddress/package.py index e2aff6fd1d..2201512ffb 100644 --- a/var/spack/repos/builtin/packages/py-ipaddress/package.py +++ b/var/spack/repos/builtin/packages/py-ipaddress/package.py @@ -11,8 +11,9 @@ 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.18.tar.gz" + url = "https://pypi.io/packages/source/i/ipaddress/ipaddress-1.0.23.tar.gz" + version('1.0.23', sha256='b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2') version('1.0.18', sha256='5d8534c8e185f2d8a1fda1ef73f2c8f4b23264e8e30063feeb9511d492a413e1') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jaraco-functools/package.py b/var/spack/repos/builtin/packages/py-jaraco-functools/package.py new file mode 100644 index 0000000000..5e2e406e26 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jaraco-functools/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version( + '2.0', sha256='35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm@1.15.0:', type='build') + depends_on('py-backports-functools-lru-cache@1.0.3:', + when='^python@:2', type=('build', 'run')) + depends_on('py-more-itertools', type=('build', 'run')) + depends_on('python@2.7:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jdatetime/package.py b/var/spack/repos/builtin/packages/py-jdatetime/package.py new file mode 100644 index 0000000000..1ef0038cb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jdatetime/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.6.2', sha256='a589e35f0dab89283c1a3de9d70ed6cf657932aaed8e8ce1b0e5801aaab1da67') diff --git a/var/spack/repos/builtin/packages/py-jellyfish/package.py b/var/spack/repos/builtin/packages/py-jellyfish/package.py new file mode 100644 index 0000000000..cd378e3a9a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jellyfish/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('0.6.1', sha256='5104e45a2b804b48a46a92a5e6d6e86830fe60ae83b1da32c867402c8f4c2094') + version('0.5.6', sha256='887a9a49d0caee913a883c3e7eb185f6260ebe2137562365be422d1316bd39c9') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jpype/package.py b/var/spack/repos/builtin/packages/py-jpype1/package.py index f8292f4132..0d8ccd7e97 100644 --- a/var/spack/repos/builtin/packages/py-jpype/package.py +++ b/var/spack/repos/builtin/packages/py-jpype1/package.py @@ -6,7 +6,7 @@ from spack import * -class PyJpype(PythonPackage): +class PyJpype1(PythonPackage): """JPype is an effort to allow python programs full access to java class libraries.""" diff --git a/var/spack/repos/builtin/packages/py-jsonpatch/package.py b/var/spack/repos/builtin/packages/py-jsonpatch/package.py index b9e60c9a88..6c374ac169 100644 --- a/var/spack/repos/builtin/packages/py-jsonpatch/package.py +++ b/var/spack/repos/builtin/packages/py-jsonpatch/package.py @@ -10,9 +10,9 @@ class PyJsonpatch(PythonPackage): """Library to apply JSON Patches according to RFC 6902""" homepage = "https://github.com/stefankoegl/python-json-patch" - url = "https://github.com/stefankoegl/python-json-patch/archive/v1.23.tar.gz" + url = "https://pypi.io/packages/source/j/jsonpatch/jsonpatch-1.23.tar.gz" - version('1.23', sha256='0af03651204ea3049bc4aedaa42b591e134a4ee16e421f9c5f3ac4e9092885ad') + version('1.23', sha256='49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9') depends_on('py-setuptools', type='build') depends_on('py-jsonpointer@1.9', 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 9e33b53b0d..99bd34913b 100644 --- a/var/spack/repos/builtin/packages/py-jsonpointer/package.py +++ b/var/spack/repos/builtin/packages/py-jsonpointer/package.py @@ -10,8 +10,8 @@ class PyJsonpointer(PythonPackage): """Library to resolve JSON Pointers according to RFC 6901""" homepage = "https://github.com/stefankoegl/python-json-pointer" - url = "https://github.com/stefankoegl/python-json-pointer/archive/v2.0.tar.gz" + url = "https://pypi.io/packages/source/j/jsonpointer/jsonpointer-2.0.tar.gz" - version('2.0', sha256='9594b7574a3216c9994181e9db7566a5cafb4ab24956e554f2dba1bb39edecb2') + version('2.0', sha256='c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362') depends_on('py-setuptools', type='build') 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 1b69aa1e4e..73ce90937b 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-client/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-client/package.py @@ -12,6 +12,7 @@ class PyJupyterClient(PythonPackage): homepage = "https://github.com/jupyter/jupyter_client" url = "https://github.com/jupyter/jupyter_client/archive/4.4.0.tar.gz" + version('5.3.4', sha256='2af6f0e0e4d88009b11103490bea0bfb405c1c470e226c2b7b17c10e5dda9734') version('4.4.0', sha256='2fda7fe1af35f0b4a77c4a2fd4ee38ac3666ed7f4d92a5b6ff8aaf764c38e199') version('4.3.0', sha256='90b6ea3ced910ed94c5d558373490a81b33c672d877c1ffdc76b281e3216f1f6') version('4.2.2', sha256='bf3e8ea4c44f07dbe2991e41031f6dab242734be424f4d40b72cc58a12c7d2ca') @@ -21,7 +22,11 @@ class PyJupyterClient(PythonPackage): version('4.1.0', sha256='ecf76a159381ec9880fd2c31388c6983b1d855f92f0292cf0667a90dd63f51c0') version('4.0.0', sha256='33b15abb1307d8d3716b0d3b5d07aa22fdfbbf65a9f1aedf478a274a6adc11c0') - depends_on('python@2.7:2.8,3.3:') + 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='@5:') depends_on('py-traitlets', type=('build', 'run')) depends_on('py-jupyter-core', type=('build', 'run')) - depends_on('py-zmq@13:', type=('build', 'run')) + depends_on('py-pyzmq@13:', type=('build', 'run')) + depends_on('py-python-dateutil@2.1:', type=('build', 'run'), when='@5:') + depends_on('py-tornado@4.1:', type=('build', 'run'), when='@5:') + depends_on('py-setuptools', type='build', when='@5:') 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 109eddef3d..7b9d7bf92b 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-core/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-core/package.py @@ -10,19 +10,21 @@ class PyJupyterCore(PythonPackage): """Core Jupyter functionality""" homepage = "http://jupyter-core.readthedocs.io/" - url = "https://github.com/jupyter/jupyter_core/archive/4.2.0.tar.gz" + url = "https://pypi.io/packages/source/j/jupyter-core/jupyter_core-4.6.0.tar.gz" - version('4.4.0', sha256='a3c693cb4cd1251f887f034eba4b74e5ad1beab5baef43cc3ae9387450e72367') - version('4.2.0', sha256='ca2db4bc44b870ad9039bfdcad81bb0466e6bf0e6e2e03626815977ee73dc7a7') - version('4.1.1', sha256='1908dd9eceb8994c1f0b1bb81c20a52dbb01692e4f1fdf5d12e04846b94eb05c') - version('4.1.0', sha256='80b78d215399760f4678cc1512118257543e17b48316254d1e1dbddfafa2dffc') - version('4.0.6', sha256='76d9f95eec679d1ce8a07fba4e373bda3b17ca89e3b03ee6186a7dbdc117d7e8') - version('4.0.5', sha256='783c2be522010db9dd0ff54c28fcdf31afe73a5f7d956eb89ddce2c48f381548') - version('4.0.4', sha256='ee81c1e2c67afe0b9c1097043f76063b452670fc63377ab4656ce1b2826cd166') - version('4.0.3', sha256='5ecc177e8c711a410f857adc65f8413b06ea1f2fa2330559a723d6c1981852f8') - version('4.0.2', sha256='ad2f537aacaa9978b37ac5d39d9bd582d2a9dfc104b3d289b88687c1c5a0ece0') - version('4.0.1', sha256='faa3878b286f63d1853aec3e4b80e2a7299f580a9acebd4a1cafa36b264ec0a3') - version('4.0', sha256='2b491a5da687ffab4e5702e37d3cb8b6b184cd46520cae9c459bdb1fd144f026') + version('4.6.0', sha256='85103cee6548992780912c1a0a9ec2583a4a18f1ef79a248ec0db4446500bce3') + version('4.4.0', sha256='ba70754aa680300306c699790128f6fbd8c306ee5927976cbe48adacf240c0b7') + version('4.2.0', sha256='44ec837a53bebf4e937112d3f9ccf31fee4f8db3e406dd0dd4f0378a354bed9c') + version('4.1.1', sha256='ae0e69435258126466c86cd989e465a9c334c50107ef4f257decc8693650bf4c') + version('4.1.0', sha256='146af0679c33c56db4b85b785f3dacd933ffaca97e7d2d56ff577a5485c2bd13') + version('4.0.6', sha256='96a68a3b1d018ff7776270b26b7cb0cfd7a18a53ef2061421daff435707d198c') + version('4.0.5', sha256='9f6581b827f56cfa1771d7b1bd8ecc1274afa7f6e3e1046b7e0d4e05d52bf6e8') + version('4.0.4', sha256='fcf45478025f34174943993947f51a41ad871ac998a14bf1cb87d8eb61e75c6d') + version('4.0.3', sha256='12258d8c593c53bb08e09f3da63a418d7cb5b5852b3d0ffa29639402f56dcbdb') + version('4.0.2', sha256='13a46b3c493ac63bd75048d6d2142cfc44258bc6c260d96c506f0214fcd78a70') + version('4.0.1', sha256='7c165f7de7a063596f8be1bcfc86e9ba6897e38baf24e8510514690963600122') + version('4.0.0', sha256='9025208cdfc40718c7e3ab62b5e17aacf68e3fc66e34ff21fe032d553620122a') - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('py-setuptools', when='@4.5.0:', type='build') depends_on('py-traitlets', 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 new file mode 100644 index 0000000000..be3ca42695 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jupyter/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.0.0', sha256='d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f') + + depends_on('py-notebook', type=('build', 'run')) + depends_on('py-qtconsole', type=('build', 'run')) + depends_on('py-jupyter-console', type=('build', 'run')) + depends_on('py-nbconvert', type=('build', 'run')) + depends_on('py-ipykernel', type=('build', 'run')) + depends_on('py-ipywidgets', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyterhub/package.py b/var/spack/repos/builtin/packages/py-jupyterhub/package.py index 2b3e39a389..0ada619352 100644 --- a/var/spack/repos/builtin/packages/py-jupyterhub/package.py +++ b/var/spack/repos/builtin/packages/py-jupyterhub/package.py @@ -31,5 +31,5 @@ class PyJupyterhub(PythonPackage): 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-jupyter-notebook', type=('build', 'run')) + depends_on('py-notebook', type=('build', 'run')) depends_on('py-prometheus-client@0.0.21:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-kombu/package.py b/var/spack/repos/builtin/packages/py-kombu/package.py new file mode 100644 index 0000000000..6ec41483f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-kombu/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('4.6.6', sha256='1760b54b1d15a547c9a26d3598a1c8cdaf2436386ac1f5561934bc8a3cbbbd86') + version('4.5.0', sha256='389ba09e03b15b55b1a7371a441c894fd8121d174f5583bbbca032b9ea8c9edd') + version('4.3.0', sha256='529df9e0ecc0bad9fc2b376c3ce4796c41b482cf697b78b71aea6ebe7ca353c8') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + + depends_on('py-setuptools', type='build') + depends_on('py-amqp@2.5.2:2.5.999', type=('build', 'run')) + depends_on('py-importlib-metadata@0.18:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-libensemble/package.py b/var/spack/repos/builtin/packages/py-libensemble/package.py index ed752518d3..229e79f2bb 100644 --- a/var/spack/repos/builtin/packages/py-libensemble/package.py +++ b/var/spack/repos/builtin/packages/py-libensemble/package.py @@ -11,10 +11,11 @@ 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.5.2.tar.gz" + url = "https://pypi.io/packages/source/l/libensemble/libensemble-0.6.0.tar.gz" git = "https://github.com/Libensemble/libensemble.git" version('develop', branch='develop') + version('0.6.0', sha256='3f6a926d3868da53835ed93fc2e2a047b368dacb648c7608ee3a66debcee4d38') version('0.5.2', sha256='3e36c29a4a2adc0984ecfcc998cb5bb8a2cdfbe7a1ae92f7b35b06e41d21b889') version('0.5.1', sha256='522e0cc086a3ed75a101b704c0fe01eae07f2684bd8d6da7bdfe9371d3187362') version('0.5.0', sha256='c4623171dee049bfaa38a9c433609299a56b1afb774db8b71321247bc7556b8f') 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 c06a8968ea..a40b1a3e15 100644 --- a/var/spack/repos/builtin/packages/py-line-profiler/package.py +++ b/var/spack/repos/builtin/packages/py-line-profiler/package.py @@ -24,8 +24,11 @@ class PyLineProfiler(PythonPackage): # See https://github.com/rkern/line_profiler/issues/166 @run_before('build') - @when('^python@3.7:') def fix_cython(self): + # TODO: Replace the check with a `@when('^python@3.7:')` decorator once + # https://github.com/spack/spack/issues/12736 is resolved + if not self.spec.satisfies("^python@3.7:"): + return cython = self.spec['py-cython'].command for root, _, files in os.walk('.'): for fn in files: diff --git a/var/spack/repos/builtin/packages/py-llvmlite/package.py b/var/spack/repos/builtin/packages/py-llvmlite/package.py index e9d075ab2e..8d041fb919 100644 --- a/var/spack/repos/builtin/packages/py-llvmlite/package.py +++ b/var/spack/repos/builtin/packages/py-llvmlite/package.py @@ -12,6 +12,7 @@ class PyLlvmlite(PythonPackage): homepage = "http://llvmlite.readthedocs.io/en/latest/index.html" url = "https://pypi.io/packages/source/l/llvmlite/llvmlite-0.23.0.tar.gz" + version('0.29.0', sha256='3adb0d4c9a17ad3dca82c7e88118babd61eeee0ee985ce31fa43ec27aa98c963') version('0.27.1', sha256='48a1c3ae69fd8920cba153bfed8a46ac46474bc706a2100226df4abffe0000ab') version('0.26.0', sha256='13e84fe6ebb0667233074b429fd44955f309dead3161ec89d9169145dbad2ebf') version('0.25.0', sha256='fd64def9a51dd7dc61913a7a08eeba5b9785522740bec5a7c5995b2a90525025') @@ -21,7 +22,10 @@ class PyLlvmlite(PythonPackage): depends_on('py-setuptools', type='build') depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3.99') - depends_on('llvm@7.0:7.99', when='@0.27.0:') + + # llvmlite compatibility information taken from https://github.com/numba/llvmlite#compatibility + depends_on('llvm@7.0:8.0.99', when='@0.29.0:') + depends_on('llvm@7.0:7.99', when='@0.27.0:0.28.99') depends_on('llvm@6.0:6.99', when='@0.23.0:0.26.99') depends_on('llvm@4.0:4.99', when='@0.17.0:0.20.99') depends_on('binutils', type='build') diff --git a/var/spack/repos/builtin/packages/py-lrudict/package.py b/var/spack/repos/builtin/packages/py-lru-dict/package.py index 79c3550219..a3bd6c023f 100644 --- a/var/spack/repos/builtin/packages/py-lrudict/package.py +++ b/var/spack/repos/builtin/packages/py-lru-dict/package.py @@ -7,13 +7,13 @@ from spack import * -class PyLrudict(PythonPackage): - """ A fast LRU cache""" +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" version('1.1.6', sha256='365457660e3d05b76f1aba3e0f7fedbfcd6528e97c5115a351ddd0db488354cc') - depends_on('python@2.7:') + depends_on('python@2.7:', type=('build', 'run')) depends_on('py-setuptools', type=('build')) diff --git a/var/spack/repos/builtin/packages/py-luigi/package.py b/var/spack/repos/builtin/packages/py-luigi/package.py index 5c90a9a87c..fea0df2bfa 100644 --- a/var/spack/repos/builtin/packages/py-luigi/package.py +++ b/var/spack/repos/builtin/packages/py-luigi/package.py @@ -20,4 +20,4 @@ class PyLuigi(PythonPackage): 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-test@3.3.0:', type='test') + depends_on('py-pytest@3.3.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-macholib/package.py b/var/spack/repos/builtin/packages/py-macholib/package.py index 4f730733c8..368aba2ec1 100644 --- a/var/spack/repos/builtin/packages/py-macholib/package.py +++ b/var/spack/repos/builtin/packages/py-macholib/package.py @@ -10,7 +10,7 @@ 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.8.tar.gz" + url = "https://pypi.io/packages/source/m/macholib/macholib-1.11.tar.gz" version('1.11', 'c4180ffc6f909bf8db6cd81cff4b6f601d575568f4d5dee148c830e9851eb9db') diff --git a/var/spack/repos/builtin/packages/py-maestrowf/package.py b/var/spack/repos/builtin/packages/py-maestrowf/package.py index 66e766536f..79c52b38ea 100644 --- a/var/spack/repos/builtin/packages/py-maestrowf/package.py +++ b/var/spack/repos/builtin/packages/py-maestrowf/package.py @@ -11,10 +11,22 @@ class PyMaestrowf(PythonPackage): simulation studies.""" homepage = "https://github.com/LLNL/maestrowf/" - url = "https://github.com/LLNL/maestrowf/archive/v1.1.2.tar.gz" + url = "https://github.com/LLNL/maestrowf/archive/v1.1.6.tar.gz" + git = "https://github.com/LLNL/maestrowf/" maintainers = ['FrankD412'] + # git branches + version('develop', branch='develop') + version('master', branch='master') + + # Pre-release candidates + version('1.1.5dev', sha256='eb3d6f31c233e2cde3b84e15c657002b83ff43d4d6b218b33d023a4f527b9e08') + version('1.1.4dev1.0', sha256='67f59eed6fa69fc71b88a0a769de9f080300497d3c30d3a0893eabd0702bc48e') + version('1.1.4dev1.1', sha256='c8612b5423b44f11e2a7c4fbc31eb741013245870512ee2dbf7367024517528f') + + # pypi releases + version('1.1.6', sha256='27a4ab9072c5b5e2edf91c192d9fe67f040dd45be7f3e44fd9a998ce4cb1e92d', preferred=True) version('1.1.4', sha256='2cb0fa6f6281d8618ac79217ea5f4fd8cb24955c4315e873657f96b815f171d5') version('1.1.2', sha256='ebb45bff54625435bc9f2462e1bdc3b5bdc4d943378c53e7810c11836794c5e0') version('1.1.1', sha256='a476ad4b40846d7b7f9540d6413df1b42eb655735e8d3c6c07e0baa68e20a8bb') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index a53c2c892b..5c8133aca3 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -14,7 +14,7 @@ class PyMatplotlib(PythonPackage): environments across platforms.""" homepage = "https://pypi.python.org/pypi/matplotlib" - url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.1.1.tar.gz" + url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.1.2.tar.gz" maintainers = ['adamjstewart'] @@ -28,6 +28,7 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units' ] + version('3.1.2', sha256='8e8e2c2fe3d873108735c6ee9884e6f36f467df4a143136209cff303b183bada') version('3.1.1', sha256='1febd22afe1489b13c6749ea059d392c03261b2950d1d45c17e3aed812080c93') version('3.0.2', sha256='c94b792af431f6adb6859eb218137acd9a35f4f7442cea57e4a59c54751c36af') version('3.0.0', sha256='b4e2333c98a7c2c1ff6eb930cd2b57d4b818de5437c5048802096b32f66e65f9') @@ -85,35 +86,35 @@ class PyMatplotlib(PythonPackage): depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7') depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7') depends_on('py-backports-functools-lru-cache', type=('build', 'run'), - when='@2.1.0:2.999.999') + when='@2.1.0:2.999.999 ^python@:2') depends_on('py-six@1.9.0:', type=('build', 'run'), when='@:2') # Optional backend dependencies - depends_on('tk@8.3:8.5,8.6.2:', when='backend=tkagg') - depends_on('tk@8.3:8.5,8.6.2:', when='backend=tkcairo') - depends_on('python+tkinter', when='backend=tkagg') - depends_on('python+tkinter', when='backend=tkcairo') - depends_on('py-pyqt4@4.6:', when='backend=qt4agg') # or py-pyside@1.0.3: - depends_on('py-pyqt4@4.6:', when='backend=qt4cairo') # or py-pyside@1.0.3: - depends_on('py-pyqt5', when='backend=qt5agg') - depends_on('py-pyqt5', when='backend=qt5cairo') - depends_on('py-pygobject', when='backend=gtk3agg') - depends_on('py-pygobject', when='backend=gtk3cairo') - depends_on('py-wxpython@4:', when='backend=wx') - depends_on('py-wxpython@4:', when='backend=wxagg') - depends_on('py-wxpython@4:', when='backend=wxcairo') - depends_on('py-cairocffi@0.8:', when='backend=gtk3cairo') - depends_on('py-cairocffi@0.8:', when='backend=qt4cairo') - depends_on('py-cairocffi@0.8:', when='backend=qt5cairo') - depends_on('py-cairocffi@0.8:', when='backend=tkcairo') - depends_on('py-cairocffi@0.8:', when='backend=wxcairo') - depends_on('py-cairocffi@0.8:', when='backend=cairo') - depends_on('py-tornado', when='backend=webagg') + depends_on('tk@8.3:8.5,8.6.2:', when='backend=tkagg', type='run') + depends_on('tk@8.3:8.5,8.6.2:', when='backend=tkcairo', type='run') + depends_on('python+tkinter', when='backend=tkagg', type='run') + depends_on('python+tkinter', when='backend=tkcairo', type='run') + depends_on('py-pyqt4@4.6:', when='backend=qt4agg', type='run') # or py-pyside@1.0.3: + depends_on('py-pyqt4@4.6:', when='backend=qt4cairo', type='run') # or py-pyside@1.0.3: + depends_on('py-pyqt5', when='backend=qt5agg', type='run') + depends_on('py-pyqt5', when='backend=qt5cairo', type='run') + depends_on('py-pygobject', when='backend=gtk3agg', type='run') + depends_on('py-pygobject', when='backend=gtk3cairo', type='run') + depends_on('py-wxpython@4:', when='backend=wx', type='run') + depends_on('py-wxpython@4:', when='backend=wxagg', type='run') + depends_on('py-wxpython@4:', when='backend=wxcairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=gtk3cairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=qt4cairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=qt5cairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=tkcairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=wxcairo', type='run') + depends_on('py-cairocffi@0.8:', when='backend=cairo', type='run') + depends_on('py-tornado', when='backend=webagg', type='run') # Optional dependencies depends_on('ffmpeg', when='+movies') # depends_on('libav', when='+movies') - depends_on('image-magick', when='+animation') + depends_on('imagemagick', when='+animation') depends_on('py-pillow@3.4:', when='+image', type=('build', 'run')) depends_on('texlive', when='+latex', type='run') depends_on('ghostscript@0.9:', when='+latex', type='run') diff --git a/var/spack/repos/builtin/packages/py-methylcode/package.py b/var/spack/repos/builtin/packages/py-methylcode/package.py index 512d1f2d01..53b9292edf 100644 --- a/var/spack/repos/builtin/packages/py-methylcode/package.py +++ b/var/spack/repos/builtin/packages/py-methylcode/package.py @@ -11,15 +11,13 @@ class PyMethylcode(PythonPackage): reads and outputs per-base methylation data. """ homepage = "https://github.com/brentp/methylcode" - url = "https://github.com/brentp/methylcode/archive/master.zip" + git = "https://github.com/brentp/methylcode.git" - version('1.0.0', sha256='30f707a690a887e3161c8debba3c322bd313865df40212275b02203c52a416ae') + version('master', branch='master') - depends_on('python@2.7.0:2.7.999') - depends_on('py-six') - depends_on('py-setuptools') + depends_on('python@2.6:2.8', type=('build', 'run')) + depends_on('py-setuptools', type='build') depends_on('py-numpy') - depends_on('py-pyparsing') depends_on('py-pyfasta') depends_on('py-bsddb3') depends_on('bowtie') diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py index 5abb62288e..d64cbb7ec1 100644 --- a/var/spack/repos/builtin/packages/py-mistune/package.py +++ b/var/spack/repos/builtin/packages/py-mistune/package.py @@ -13,6 +13,14 @@ class PyMistune(PythonPackage): homepage = "http://mistune.readthedocs.org/en/latest/" url = "https://github.com/lepture/mistune/archive/v0.7.1.tar.gz" + version('0.8.4', sha256='a1443771ea9ed7268a0cb3cf31462604ae148938ba32070bd5c54545f8f36a5d') + version('0.8.3', sha256='666c93fc10cb0aa924a373898a709eba4d43f4e453264a4c7396878ec8145a4a') + version('0.8.2', sha256='997c6d723350093760ccd48b722344b3330a5f947dec264e129160b85037784e') + version('0.8.1', sha256='77ae24a5accfd62d23f945d7e6598392194f8ca6ef1bd70ddc81e151ac3eb1fe') + version('0.8', sha256='f479dc2ceac7d593231e77448cb5cf7194fdbebad1d88fcdb78eacac1c042f6e') + version('0.7.4', sha256='5030d5e3e0ec90fbdaed0f52d3c756ffb30e4ab46c3de159c97482c09569abcb') + version('0.7.3', sha256='c4f391e61d3b5e8fbb112669a5c6960fb04b71b61d35f0f09a201809545b1676') + version('0.7.2', sha256='a3fe17dfad99bd353485879a5c05827dd2932219da8b078212a21797f6cdbf0b') version('0.7.1', sha256='d6684534174caa30e0169e106a7152aee14507796a610b76be9fe9b335b18410') version('0.7', sha256='9b2cac8053d21dde5f2b3edb01948dac8ee5c3a85eeeeb6913c3ddf2f773c7b6') version('0.6', sha256='c2d976c06c099edb525b8ac3745f3d3b5c49af6189edb6de390ddf9c248913cf') diff --git a/var/spack/repos/builtin/packages/py-mongo/package.py b/var/spack/repos/builtin/packages/py-mongo/package.py deleted file mode 100644 index 117c59cf70..0000000000 --- a/var/spack/repos/builtin/packages/py-mongo/package.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class PyMongo(PythonPackage): - """Python driver for MongoDB <http://www.mongodb.org>""" - - homepage = "http://github.com/mongodb/mongo-python-driver" - url = "https://pypi.io/packages/source/p/pymongo/pymongo-3.6.0.tar.gz" - - version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8') - version('3.3.0', sha256='3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e') - - depends_on('python@2.6:2.8,3.3:') - - depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py index 86b176081c..f85037f03b 100644 --- a/var/spack/repos/builtin/packages/py-mpi4py/package.py +++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py @@ -13,19 +13,20 @@ class PyMpi4py(PythonPackage): standard MPI-2 C++ bindings. """ homepage = "https://pypi.python.org/pypi/mpi4py" - url = "https://pypi.io/packages/source/m/mpi4py/mpi4py-3.0.0.tar.gz" + url = "https://pypi.io/packages/source/m/mpi4py/mpi4py-3.0.3.tar.gz" git = "https://github.com/mpi4py/mpi4py.git" version('develop', branch='master') + version('3.0.3', sha256='012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f') version('3.0.1', sha256='6549a5b81931303baf6600fa2e3bc04d8bd1d5c82f3c21379d0d64a9abcca851') version('3.0.0', sha256='b457b02d85bdd9a4775a097fac5234a20397b43e073f14d9e29b6cd78c68efd7') version('2.0.0', sha256='6543a05851a7aa1e6d165e673d422ba24e45c41e4221f0993fe1e5924a00cb81') version('1.3.1', sha256='e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507') - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.6:2.7.99,3.2:') depends_on('py-setuptools', type='build') depends_on('mpi') - depends_on('py-cython', when='@develop', type='build') + depends_on('py-cython@0.22.0:', when='@develop', type='build') def build_args(self, spec, prefix): return ['--mpicc=%s -shared' % spec['mpi'].mpicc] diff --git a/var/spack/repos/builtin/packages/py-multiqc/package.py b/var/spack/repos/builtin/packages/py-multiqc/package.py index 52d2a2bcbc..b099cb9a36 100644 --- a/var/spack/repos/builtin/packages/py-multiqc/package.py +++ b/var/spack/repos/builtin/packages/py-multiqc/package.py @@ -31,5 +31,6 @@ class PyMultiqc(PythonPackage): depends_on('py-pyyaml', type=('build', 'run')) depends_on('py-simplejson', type=('build', 'run')) depends_on('py-requests', type=('build', 'run'), when='@1.5:') - depends_on('py-enum34', type=('build', 'run'), when='@1.5:') + depends_on('py-enum34', type=('build', 'run'), when='@1.4:1.5 ^python@:3.3') + depends_on('py-enum34', type=('build', 'run'), when='@1.3') depends_on('py-markdown', type=('build', 'run'), when='@1.5:') diff --git a/var/spack/repos/builtin/packages/py-mysql-connector/package.py b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py index e3e04280c4..07000af952 100644 --- a/var/spack/repos/builtin/packages/py-mysql-connector/package.py +++ b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py @@ -6,7 +6,7 @@ from spack import * -class PyMysqlConnector(PythonPackage): +class PyMysqlConnectorPython(PythonPackage): """MySQL Connector/Python is implementing the MySQL Client/Server protocol completely in Python. No MySQL libraries are needed, and no compilation is necessary to run this Python DB API v2.0 diff --git a/var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch b/var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch index 27cf5e5d22..27cf5e5d22 100644 --- a/var/spack/repos/builtin/packages/py-mysql-connector/single-version.patch +++ b/var/spack/repos/builtin/packages/py-mysql-connector-python/single-version.patch diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py index 0634c6b5d0..49f7fef71b 100644 --- a/var/spack/repos/builtin/packages/py-nbconvert/package.py +++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py @@ -13,21 +13,37 @@ class PyNbconvert(PythonPackage): homepage = "https://github.com/jupyter/nbconvert" url = "https://github.com/jupyter/nbconvert/archive/4.2.0.tar.gz" + version('5.6.0', sha256='21a69fe5756a3af8e76dcc105217cc3bea4d8f23dbff5727d9fd1e4388b53beb') version('4.2.0', sha256='32394be5a20f39f99fabfb9b2f2625df17f1c2a6699182ca41598e98e7cc9610') version('4.1.0', sha256='459f23381411fd1ff9ec5ed71fcd56b8c080d97b3a1e47dae1c5c391f9a47266') version('4.0.0', sha256='00e25eeca90523ba6b774b289073631ef5ac65bb2de9774e9b7f29604516265c') - depends_on('py-pycurl', type='build') - depends_on('python@2.7:2.8,3.3:') - depends_on('py-mistune', type=('build', 'run')) + variant('execute', default=True, description='Include jupyter-client') + variant('serve', default=True, description='Include a webserver') + + depends_on('py-pycurl', type='build', when='^python@2.7:2.8') + depends_on('py-setuptools', type='build', when='@5:') + 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='@5:') + depends_on('py-mistune@0.8.1:1.999', type=('build', 'run')) depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-jinja2@2.4:', type=('build', 'run'), when='@5:') depends_on('py-pygments', type=('build', 'run')) depends_on('py-traitlets', type=('build', 'run')) + depends_on('py-traitlets@4.2:', type=('build', 'run'), when='@5:') depends_on('py-jupyter-core', type=('build', 'run')) depends_on('py-nbformat', type=('build', 'run')) + depends_on('py-nbformat@4.4.0:', type=('build', 'run'), when='@5:') depends_on('py-entrypoints', type=('build', 'run')) - depends_on('py-tornado', type=('build', 'run')) - depends_on('py-jupyter-client', type=('build', 'run')) + depends_on('py-entrypoints@0.2.2:', type=('build', 'run'), when='@5:') + depends_on('py-tornado@4.0:', type=('build', 'run'), when='+serve') + depends_on('py-jupyter-client', type=('build', 'run'), when='+execute') + depends_on('py-jupyter-client@4.2:', type=('build', 'run'), when='@5.2.1:+execute') + depends_on('py-jupyter-client@5.3.1:', type=('build', 'run'), when='@5.6.0:+execute') + depends_on('py-defusedxml', type=('build', 'run'), when='@5:') + depends_on('py-testpath', type=('build', 'run'), when='@5:') + depends_on('py-bleach', type=('build', 'run'), when='@5:') + depends_on('py-pandocfilters@1.4.1:', type=('build', 'run'), when='@5:') def patch(self): # We bundle this with the spack package so that the installer diff --git a/var/spack/repos/builtin/packages/py-netcdf4/package.py b/var/spack/repos/builtin/packages/py-netcdf4/package.py index ef9bbafad1..f76b6067b6 100644 --- a/var/spack/repos/builtin/packages/py-netcdf4/package.py +++ b/var/spack/repos/builtin/packages/py-netcdf4/package.py @@ -22,15 +22,15 @@ class PyNetcdf4(PythonPackage): depends_on('py-numpy@1.7:', type=('build', 'run')) depends_on('py-cftime', type=('build', 'run')) - depends_on('netcdf') + depends_on('netcdf-c') depends_on('hdf5@1.8.0:+hl') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): """Ensure installed netcdf and hdf5 libraries are used""" # Explicitly set these variables so setup.py won't erroneously pick up # system versions - spack_env.set('USE_SETUPCFG', '0') - spack_env.set('HDF5_INCDIR', self.spec['hdf5'].prefix.include) - spack_env.set('HDF5_LIBDIR', self.spec['hdf5'].prefix.lib) - spack_env.set('NETCDF4_INCDIR', self.spec['netcdf'].prefix.include) - spack_env.set('NETCDF4_LIBDIR', self.spec['netcdf'].prefix.lib) + env.set('USE_SETUPCFG', '0') + env.set('HDF5_INCDIR', self.spec['hdf5'].prefix.include) + env.set('HDF5_LIBDIR', self.spec['hdf5'].prefix.lib) + env.set('NETCDF4_INCDIR', self.spec['netcdf-c'].prefix.include) + env.set('NETCDF4_LIBDIR', self.spec['netcdf-c'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/py-nodeenv/package.py b/var/spack/repos/builtin/packages/py-nodeenv/package.py new file mode 100644 index 0000000000..bcf7601874 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nodeenv/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.3.3', sha256='ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-nose-cov/package.py b/var/spack/repos/builtin/packages/py-nose-cov/package.py new file mode 100644 index 0000000000..398e4dcc9f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nose-cov/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.6', sha256='8bec0335598f1cc69e3262cc50d7678c1a6010fa44625ce343c4ec1500774412') + + depends_on('py-setuptools', type='build') + depends_on('py-nose@0.11.4:', type=('build', 'run')) + depends_on('py-cov-core@1.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py b/var/spack/repos/builtin/packages/py-notebook/package.py index 55c2f0f256..97542e89a7 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-notebook/package.py +++ b/var/spack/repos/builtin/packages/py-notebook/package.py @@ -6,12 +6,14 @@ from spack import * -class PyJupyterNotebook(PythonPackage): +class PyNotebook(PythonPackage): """Jupyter Interactive Notebook""" homepage = "https://github.com/jupyter/notebook" url = "https://pypi.io/packages/source/n/notebook/notebook-4.2.3.tar.gz" + version('6.0.1', sha256='660976fe4fe45c7aa55e04bf4bccb9f9566749ff637e9020af3422f9921f9a5d') + version('5.7.8', sha256='573e0ae650c5d76b18b6e564ba6d21bf321d00847de1d215b418acb64f056eb8') version('4.2.3', sha256='39a9603d3fe88b60de2903680c965cf643acf2c16fb2c6bac1d905e1042b5851') version('4.2.2', sha256='418ba230c9b2e7e739940cae9fb4625e10a63f038e9c95cf1a9b7a244256ba38') version('4.2.1', sha256='a49de524dabb99f214bdf2a58f26c7892650251a23a3669c6492fb180492e197') @@ -21,19 +23,29 @@ class PyJupyterNotebook(PythonPackage): version('4.0.4', sha256='a57852514bce1b1cf41fa0311f6cf894960cf68b083b55e6c408316b598d5648') version('4.0.2', sha256='8478d7e2ab474855b0ff841f693983388af8662d3af1adcb861acb900274f22a') - variant('terminal', default=False, description="Enable terminal functionality") - - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run'), when='@6:') + depends_on('py-setuptools', type='build', when='@5:') depends_on('py-jinja2', type=('build', 'run')) - depends_on('py-tornado@4:', type=('build', 'run')) + depends_on('py-tornado@4.0:6.999', type=('build', 'run'), when='@:5.7.4') + depends_on('py-tornado@4.1:6.999', type=('build', 'run'), when='@5.7.5:6.0.1') depends_on('py-ipython-genutils', type=('build', 'run')) depends_on('py-traitlets', type=('build', 'run')) + depends_on('py-traitlets@4.2.1:', type=('build', 'run'), when='@5:') depends_on('py-jupyter-core', type=('build', 'run')) + depends_on('py-jupyter-core@4.4.0:', type=('build', 'run'), when='@5.7.0:') depends_on('py-jupyter-client', type=('build', 'run')) - depends_on('py-jupyter-console', type=('build', 'run')) + depends_on('py-jupyter-client@5.2.0:', type=('build', 'run'), when='@5.7.0:') depends_on('py-nbformat', type=('build', 'run')) depends_on('py-nbconvert', type=('build', 'run')) depends_on('py-ipykernel', type=('build', 'run')) - depends_on('py-ipykernel@5.1.0:', when='@4.2.0:', type=('build', 'run')) - depends_on('py-terminado@0.3.3:', when="+terminal", type=('build', 'run')) + depends_on('py-ipykernel@5.1.0:', when='@4.2.0: ^python@3.3:', type=('build', 'run')) + depends_on('py-ipykernel@:5.0.0', when='@4.2.0: ^python@:2.8', type=('build', 'run')) depends_on('py-ipywidgets', when="+terminal", type=('build', 'run')) + depends_on('py-prometheus-client', type=('build', 'run'), when='@5.7.0:') + depends_on('py-terminado@0.3.3:', type=('build', 'run'), when='@:5.7.0') + depends_on('py-terminado@0.8.1:', type=('build', 'run'), when='@5.7.0:') + depends_on('py-send2trash', type=('build', 'run'), when='@6:') + depends_on('py-pyzmq@17:', type=('build', 'run'), when='@6:') + depends_on('py-traitlets@4.2.1:', type=('build', 'run'), when='@6:') + depends_on('py-ipaddress', type=('build', 'run'), when='@5.7.0: ^python@:2.8') diff --git a/var/spack/repos/builtin/packages/py-numba/package.py b/var/spack/repos/builtin/packages/py-numba/package.py index efad3b2a17..629c7c63e9 100644 --- a/var/spack/repos/builtin/packages/py-numba/package.py +++ b/var/spack/repos/builtin/packages/py-numba/package.py @@ -27,7 +27,7 @@ class PyNumba(PythonPackage): 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-argparse', type=('build', 'run')) + depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6') depends_on('py-funcsigs', type=('build', 'run'), when='^python@:3.3.99') depends_on('py-singledispatch', type=('build', 'run'), when='^python@:3.3.99') diff --git a/var/spack/repos/builtin/packages/py-numexpr3/package.py b/var/spack/repos/builtin/packages/py-numexpr3/package.py index 50a023c4af..f7cf12fa63 100644 --- a/var/spack/repos/builtin/packages/py-numexpr3/package.py +++ b/var/spack/repos/builtin/packages/py-numexpr3/package.py @@ -20,7 +20,7 @@ class PyNumexpr3(PythonPackage): homepage = "https://github.com/pydata/numexpr/tree/numexpr-3.0" url = "https://pypi.io/packages/source/n/numexpr3/numexpr3-3.0.1a1.tar.gz" - version('3.0.1.a1', sha256sum='de06f1b4206704b5bc19ea09b5c94350b97c211c26bc866f275252a8461b87e6') + version('3.0.1a1', sha256='de06f1b4206704b5bc19ea09b5c94350b97c211c26bc866f275252a8461b87e6') # TODO: Add CMake build system for better control of passing flags related # to CPU ISA. diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index e1ca99d749..86b08cc447 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -14,8 +14,9 @@ class PyNumpy(PythonPackage): Fortran code, and useful linear algebra, Fourier transform, and random number capabilities""" - homepage = "http://www.numpy.org/" - url = "https://pypi.io/packages/source/n/numpy/numpy-1.17.3.zip" + homepage = "https://numpy.org/" + url = "https://pypi.io/packages/source/n/numpy/numpy-1.18.0.zip" + git = "https://github.com/numpy/numpy.git" maintainers = ['adamjstewart'] install_time_test_callbacks = ['install_test', 'import_module_test'] @@ -27,6 +28,9 @@ class PyNumpy(PythonPackage): 'numpy.distutils.command', 'numpy.distutils.fcompiler' ] + version('master', branch='master') + version('1.18.0', sha256='a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4') + version('1.17.4', sha256='f58913e9227400f1395c7b800503ebfdb0772f1c33ff8cb4d6451c06cabdf316') version('1.17.3', sha256='a0678793096205a4d784bd99f32803ba8100f639cf3b932dc63b21621390ea7e') version('1.17.2', sha256='73615d3edc84dd7c4aeb212fa3748fb83217e00d201875a47327f55363cef2df') version('1.17.1', sha256='f11331530f0eff69a758d62c2461cd98cdc2eae0147279d8fc86e0464eb7e8ca') @@ -71,6 +75,7 @@ class PyNumpy(PythonPackage): 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('py-setuptools', type='build') + depends_on('py-cython@0.29.13:', when='@1.18:', type='build') depends_on('blas', when='+blas') depends_on('lapack', when='+lapack') diff --git a/var/spack/repos/builtin/packages/py-opentuner/package.py b/var/spack/repos/builtin/packages/py-opentuner/package.py index 5c34fbfab7..f8f2347692 100644 --- a/var/spack/repos/builtin/packages/py-opentuner/package.py +++ b/var/spack/repos/builtin/packages/py-opentuner/package.py @@ -18,7 +18,7 @@ class PyOpentuner(PythonPackage): depends_on('python@2.7:2.8', type=('build', 'run')) depends_on('py-argparse@1.2.1:', type=('build', 'run')) - depends_on('py-fn@0.2.12:', type=('build', 'run')) + depends_on('py-fn-py@0.2.12:', type=('build', 'run')) depends_on('py-numpy@1.8.0:', type=('build', 'run')) depends_on('py-pysqlite@2.6.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-opppy/package.py b/var/spack/repos/builtin/packages/py-opppy/package.py index b6edea8226..616629eb6a 100644 --- a/var/spack/repos/builtin/packages/py-opppy/package.py +++ b/var/spack/repos/builtin/packages/py-opppy/package.py @@ -21,7 +21,7 @@ class PyOpppy(PythonPackage): depends_on('py-setuptools', type=('build', 'run')) depends_on('py-numpy@1.6:', type=('build', 'run')) depends_on('python@3:', type=('build', 'run')) - depends_on('py-argparse', 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')) depends_on('py-sphinx', 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 new file mode 100644 index 0000000000..83475e3d0d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.1.0', sha256='edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77') + + depends_on('python@3.5:', type=('build', 'run')) + 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-osqp/package.py b/var/spack/repos/builtin/packages/py-osqp/package.py new file mode 100644 index 0000000000..2e75e7600f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-osqp/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('0.6.1', sha256='47b17996526d6ecdf35cfaead6e3e05d34bc2ad48bcb743153cefe555ecc0e8c') + + depends_on('cmake', type='build') + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.7:', type=('build', 'run')) + depends_on('py-scipy@0.13.2:', type=('build', 'run')) + depends_on('py-future', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pandocfilters/package.py b/var/spack/repos/builtin/packages/py-pandocfilters/package.py new file mode 100644 index 0000000000..df5ab976cd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pandocfilters/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + 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 new file mode 100644 index 0000000000..9e24b6fa59 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-parameterized/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.7.1', sha256='6a94dbea30c6abde99fd4c2f2042c1bf7f980e48908bf92ead62394f93cf57ed') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-parse/package.py b/var/spack/repos/builtin/packages/py-parse/package.py new file mode 100644 index 0000000000..b4af9cb460 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-parse/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.12.1', sha256='a5fca7000c6588d77bc65c28f3f21bfce03b5e44daa8f9f07c17fe364990d717') + version('1.11.1', sha256='870dd675c1ee8951db3e29b81ebe44fd131e3eb8c03a79483a58ea574f3145c2') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pathos/package.py b/var/spack/repos/builtin/packages/py-pathos/package.py index 73930a0303..2597a4ae47 100644 --- a/var/spack/repos/builtin/packages/py-pathos/package.py +++ b/var/spack/repos/builtin/packages/py-pathos/package.py @@ -10,14 +10,25 @@ 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.0.zip" + url = "https://pypi.io/packages/source/p/pathos/pathos-0.2.3.tar.gz" + version('0.2.3', sha256='954c5b0a8b257c375e35d311c65fa62a210a3d65269195557de38418ac9f61f9') version('0.2.0', sha256='2f4e67e7914c95fb0cce766bab173eb2c5860ee420108fa183099557ac2e50e9') depends_on('python@2.6:2.8,3.1:') depends_on('py-setuptools@0.6:', type='build') - depends_on('py-multiprocess@0.70.4:', type=('build', 'run')) - depends_on('py-pox@0.2.2:', type=('build', 'run')) - depends_on('py-ppft@1.6.4.5:', type=('build', 'run')) - depends_on('py-dill@0.2.5:', type=('build', 'run')) + depends_on('py-multiprocess@0.70.7:', type=('build', 'run')) + depends_on('py-pox@0.2.5:', type=('build', 'run')) + depends_on('py-ppft@1.6.4.9:', type=('build', 'run')) + depends_on('py-dill@0.2.9:', type=('build', 'run')) + + def url_for_version(self, version): + url = self.url.rsplit('/', 1)[0] + if version >= Version('0.2.2'): + url += '/pathos-{0}.tar.gz' + else: + url += '/pathos-{0}.zip' + + url = url.format(version) + return url diff --git a/var/spack/repos/builtin/packages/py-patsy/package.py b/var/spack/repos/builtin/packages/py-patsy/package.py index d5e744d1d0..0e037ae40e 100644 --- a/var/spack/repos/builtin/packages/py-patsy/package.py +++ b/var/spack/repos/builtin/packages/py-patsy/package.py @@ -11,6 +11,8 @@ class PyPatsy(PythonPackage): homepage = "https://github.com/pydata/patsy" url = "https://pypi.io/packages/source/p/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") version('0.4.1', sha256='dc1cc280045b0e6e50c04706fd1e26d2a00ea400aa112f88e8142f88b0b7d3d4') variant('splines', default=False, description="Offers spline related functions") diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py new file mode 100644 index 0000000000..d1ea5746eb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pep8/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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'] + + version('1.7.1', sha256='fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374') + + depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-performance/package.py b/var/spack/repos/builtin/packages/py-performance/package.py index 9abc3c4d48..0be0b0b5ba 100644 --- a/var/spack/repos/builtin/packages/py-performance/package.py +++ b/var/spack/repos/builtin/packages/py-performance/package.py @@ -22,4 +22,4 @@ class PyPerformance(PythonPackage): depends_on('py-setuptools', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) - depends_on('py-perf', type=('build', 'run')) + depends_on('py-pyperf', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 50c16e1175..b550d6be75 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -39,7 +39,8 @@ class PyPillow(PythonPackage): # Required dependencies depends_on('binutils', type='build', when=sys.platform != 'darwin') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@:5.4.1', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@6:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('jpeg') depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/py-pipits/package.py b/var/spack/repos/builtin/packages/py-pipits/package.py index 666e738cfc..96039cb274 100644 --- a/var/spack/repos/builtin/packages/py-pipits/package.py +++ b/var/spack/repos/builtin/packages/py-pipits/package.py @@ -57,15 +57,15 @@ class PyPipits(PythonPackage): install_tree(join_path(self.stage.source_path, 'refdb'), self.prefix.refdb) - def setup_environment(self, spack_env, run_env): - run_env.set('PIPITS_UNITE_REFERENCE_DATA_CHIMERA', join_path( - self.prefix, 'refdb', - 'uchime_reference_dataset_01.01.2016', - 'uchime_reference_dataset_01.01.2016.fasta')) - run_env.set('PIPITS_UNITE_RETRAINED_DIR', - self.prefix.refdb.UNITE_retrained) - run_env.set('PIPITS_WARCUP_RETRAINED_DIR', - self.prefix.refdb.warcup_retrained_V2) - run_env.set('PIPITS_RDP_CLASSIFIER_JAR', join_path( - self.spec['rdp-classifier'].prefix.bin, - 'classifier.jar')) + def setup_run_environment(self, env): + env.set('PIPITS_UNITE_REFERENCE_DATA_CHIMERA', join_path( + self.prefix, 'refdb', + 'uchime_reference_dataset_01.01.2016', + 'uchime_reference_dataset_01.01.2016.fasta')) + env.set('PIPITS_UNITE_RETRAINED_DIR', + self.prefix.refdb.UNITE_retrained) + env.set('PIPITS_WARCUP_RETRAINED_DIR', + self.prefix.refdb.warcup_retrained_V2) + env.set('PIPITS_RDP_CLASSIFIER_JAR', join_path( + self.spec['rdp-classifier'].prefix.bin, + 'classifier.jar')) diff --git a/var/spack/repos/builtin/packages/py-pkgconfig/package.py b/var/spack/repos/builtin/packages/py-pkgconfig/package.py index d1d0ab004a..0250cf8fd4 100644 --- a/var/spack/repos/builtin/packages/py-pkgconfig/package.py +++ b/var/spack/repos/builtin/packages/py-pkgconfig/package.py @@ -12,11 +12,13 @@ class PyPkgconfig(PythonPackage): homepage = "http://github.com/matze/pkgconfig" url = "https://pypi.io/packages/source/p/pkgconfig/pkgconfig-1.2.2.tar.gz" + version('1.5.1', sha256='97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f') version('1.4.0', sha256='048c3b457da7b6f686b647ab10bf09e2250e4c50acfe6f215398a8b5e6fcdb52') version('1.2.2', sha256='3685ba02a9b72654a764b728b559f327e1dbd7dc6ebc310a1bd429666ee202aa') - depends_on('python@2.6:') - depends_on('py-setuptools', type='build') + 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')) diff --git a/var/spack/repos/builtin/packages/py-plotly/package.py b/var/spack/repos/builtin/packages/py-plotly/package.py index cd315180ed..6bf5ea9da0 100644 --- a/var/spack/repos/builtin/packages/py-plotly/package.py +++ b/var/spack/repos/builtin/packages/py-plotly/package.py @@ -10,9 +10,9 @@ class PyPlotly(PythonPackage): """An interactive, browser-based graphing library for Python""" homepage = "https://plot.ly/python/" - url = "https://github.com/plotly/plotly.py/archive/v2.2.0.tar.gz" + url = "https://pypi.io/packages/source/p/plotly/plotly-2.2.0.tar.gz" - version('2.2.0', sha256='dad2a49fe355dddb6ae159e96c10ac22413a33cbac513b4dbf3791e63ec33c1f') + version('2.2.0', sha256='ca668911ffb4d11fed6d7fbb12236f8ecc6a7209db192326bcb64bdb41451a58') depends_on('py-setuptools', type='build') depends_on('py-requests@2.3.0', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-portend/package.py b/var/spack/repos/builtin/packages/py-portend/package.py new file mode 100644 index 0000000000..fcf2eea085 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-portend/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version( + '2.5', sha256='19dc27bfb3c72471bd30a235a4d5fbefef8a7e31cab367744b5d87a205e7bfd9') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm@1.15.0:', type='build') + depends_on('py-tempora@1.8:', type=('run', 'build')) + depends_on('python@2.7:', type=('run', 'build')) diff --git a/var/spack/repos/builtin/packages/py-pox/package.py b/var/spack/repos/builtin/packages/py-pox/package.py index d0c3f99810..2e9a026c35 100644 --- a/var/spack/repos/builtin/packages/py-pox/package.py +++ b/var/spack/repos/builtin/packages/py-pox/package.py @@ -10,8 +10,9 @@ 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.3.zip" + url = "https://pypi.io/packages/source/p/pox/pox-0.2.5.tar.gz" + version('0.2.5', sha256='2b53fbdf02596240483dc2cb94f94cc21252ad1b1858c7b1c151afeec9022cc8') version('0.2.3', sha256='d3e8167a1ebe08ae56262a0b9359118d90bc4648cd284b5d10ae240343100a75') version('0.2.2', sha256='c0b88e59ef0e4f2fa4839e11bf90d2c32d6ceb5abaf01f0c8138f7558e6f87c1') version('0.2.1', sha256='580bf731fee233c58eac0974011b5bf0698efb7337b0a1696d289043b4fcd7f4') @@ -19,3 +20,13 @@ class PyPox(PythonPackage): depends_on('python@2.5:2.8,3.1:') 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'): + url += 'pox-{0}.tar.gz' + else: + url += 'pox-{0}.zip' + + url = url.format(version) + return url diff --git a/var/spack/repos/builtin/packages/py-ppft/package.py b/var/spack/repos/builtin/packages/py-ppft/package.py index 49fa256cdc..917fd21c91 100644 --- a/var/spack/repos/builtin/packages/py-ppft/package.py +++ b/var/spack/repos/builtin/packages/py-ppft/package.py @@ -10,8 +10,9 @@ 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.7.1.zip" + url = "https://pypi.io/packages/source/p/ppft/ppft-1.6.4.9.tar.gz" + 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') @@ -21,3 +22,13 @@ class PyPpft(PythonPackage): 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')) + + def url_for_version(self, version): + url = "https://pypi.io/packages/source/p/ppft/" + if version >= Version('1.6.4.8'): + url += 'ppft-{0}.tar.gz' + else: + url += 'ppft-{0}.zip' + + url = url.format(version) + return url diff --git a/var/spack/repos/builtin/packages/py-pre-commit/package.py b/var/spack/repos/builtin/packages/py-pre-commit/package.py new file mode 100644 index 0000000000..dd129b3878 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pre-commit/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyPreCommit(PythonPackage): + """A framework for managing and maintaining multi-language pre-commit + 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" + + version('1.20.0', sha256='9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-aspy-yaml', type=('build', 'run')) + depends_on('py-cfgv@2.0.0:', type=('build', 'run')) + depends_on('py-identify@1.0.0:', type=('build', 'run')) + depends_on('py-nodeenv@0.11.1:', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-toml', type=('build', 'run')) + depends_on('py-virtualenv@15.2:', type=('build', 'run')) + depends_on('py-futures', type=('build', 'run'), when='^python@:3.1.99') + depends_on('py-importlib-metadata', type=('build', 'run'), when='^python@:3.7.99') + depends_on('py-importlib-resources', type=('build', 'run'), when='^python@:3.6.99') diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index edab6e1524..eef30041c6 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -15,25 +15,42 @@ 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.0.0b2.tar.gz' + url = 'https://pypi.io/packages/source/p/protobuf/protobuf-3.11.0.tar.gz' variant('cpp', default=False, description='Enable the cpp implementation') - version('3.7.1', sha256='21e395d7959551e759d604940a115c51c6347d90a475c9baf471a1a86b5604a9') - version('3.6.1', sha256='1489b376b0f364bcc6f89519718c057eb191d7ad6f1b395ffd93d1aa45587811') - version('3.5.2.post1', sha256='3b60685732bd0cbdc802dfcb6071efbcf5d927ce3127c13c33ea1a8efae3aa76') - version('3.5.2', sha256='09879a295fd7234e523b62066223b128c5a8a88f682e3aff62fb115e4a0d8be0') - version('3.5.1', sha256='95b78959572de7d7fafa3acb718ed71f482932ddddddbd29ba8319c10639d863') + version('3.11.0', sha256='97b08853b9bb71512ed52381f05cf2d4179f4234825b505d8f8d2bb9d9429939') + version('3.7.1', sha256='21e395d7959551e759d604940a115c51c6347d90a475c9baf471a1a86b5604a9') + version('3.6.1', sha256='1489b376b0f364bcc6f89519718c057eb191d7ad6f1b395ffd93d1aa45587811') + version('3.6.0', sha256='a37836aa47d1b81c2db1a6b7a5e79926062b5d76bd962115a0e615551be2b48d') + version('3.5.2', sha256='09879a295fd7234e523b62066223b128c5a8a88f682e3aff62fb115e4a0d8be0') + version('3.5.1', sha256='95b78959572de7d7fafa3acb718ed71f482932ddddddbd29ba8319c10639d863') + 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') + version('3.0.0', sha256='ecc40bc30f1183b418fe0ec0c90bc3b53fa1707c4205ee278c6b90479e5b6ff5') version('3.0.0b2', sha256='d5b560bbc4b7d97cc2455c05cad9299d9db02d7bd11193b05684e3a86303c229') - version('2.6.1', sha256='8faca1fb462ee1be58d00f5efb4ca4f64bde92187fe61fde32615bbee7b3e745') - version('2.5.0', sha256='58292c459598c9297258bf57acc055f701c727f0154a86af8c0947dde37d8172') - version('2.4.1', sha256='df30b98acb6ef892da8b4776175510cff2131908fd0526b6bad960c55a830a1b') - version('2.3.0', sha256='374bb047874a506507912c3717d0ce62affbaa9a22bcb494d63d60326a0867b5') + version('3.0.0a3', sha256='b61622de5048415bfd3f2d812ad64606438ac9e25009ae84191405fe58e522c1') + version('2.6.1', sha256='8faca1fb462ee1be58d00f5efb4ca4f64bde92187fe61fde32615bbee7b3e745') + version('2.5.0', sha256='58292c459598c9297258bf57acc055f701c727f0154a86af8c0947dde37d8172') + version('2.4.1', sha256='df30b98acb6ef892da8b4776175510cff2131908fd0526b6bad960c55a830a1b') + version('2.3.0', sha256='374bb047874a506507912c3717d0ce62affbaa9a22bcb494d63d60326a0867b5') - depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-six@1.9:', when='@3:', type=('build', 'run')) + depends_on('py-ordereddict', when='@3: ^python@:2', type=('build', 'run')) + depends_on('py-unittest2', when='@3: ^python@:2', type=('build', 'run')) depends_on('protobuf', when='+cpp') + @property + def build_directory(self): + if self.spec.satisfies('@3.1.0'): + return 'python' + else: + return '.' + @when('+cpp') def build_args(self, spec, prefix): return ['--cpp_implementation'] diff --git a/var/spack/repos/builtin/packages/py-psyclone/package.py b/var/spack/repos/builtin/packages/py-psyclone/package.py index fc51370f18..7b19847b28 100644 --- a/var/spack/repos/builtin/packages/py-psyclone/package.py +++ b/var/spack/repos/builtin/packages/py-psyclone/package.py @@ -38,6 +38,6 @@ class PyPsyclone(PythonPackage): with working_dir('src'): Executable('py.test')() - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Allow testing with installed executables: - spack_env.prepend_path('PATH', self.prefix.bin) + env.prepend_path('PATH', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/py-cpuinfo/package.py b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py index e9f4db3142..c4278bf678 100644 --- a/var/spack/repos/builtin/packages/py-cpuinfo/package.py +++ b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py @@ -6,7 +6,7 @@ from spack import * -class PyCpuinfo(PythonPackage): +class PyPyCpuinfo(PythonPackage): """Get CPU info with pure Python 2 & 3""" homepage = "https://github.com/workhorsy/py-cpuinfo" diff --git a/var/spack/repos/builtin/packages/py-pyarrow/package.py b/var/spack/repos/builtin/packages/py-pyarrow/package.py index faa27b1052..5543cdad86 100644 --- a/var/spack/repos/builtin/packages/py-pyarrow/package.py +++ b/var/spack/repos/builtin/packages/py-pyarrow/package.py @@ -13,8 +13,9 @@ class PyPyarrow(PythonPackage): """ homepage = "http://arrow.apache.org" - url = "https://pypi.org/packages/source/p/pyarrow/pyarrow-0.9.0.tar.gz" + url = 'https://pypi.org/packages/source/p/pyarrow/pyarrow-0.15.1.tar.gz' + version('0.15.1', sha256='7ad074690ba38313067bf3bbda1258966d38e2037c035d08b9ffe3cce07747a5') version('0.12.1', sha256='10db6e486c918c3af999d0114a22d92770687e3a6607ea3f14e6748854824c2a') version('0.11.0', sha256='07a6fd71c5d7440f2c42383dd2c5daa12d7f0a012f1e88288ed08a247032aead') version('0.9.0', sha256='7db8ce2f0eff5a00d6da918ce9f9cfec265e13f8a119b4adb1595e5b19fd6242') @@ -24,9 +25,19 @@ class PyPyarrow(PythonPackage): depends_on('cmake@3.0.0:', type='build') depends_on('pkgconfig', type='build') depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build', when='@0.15.0:') depends_on('py-cython', type='build') - - for v in ('@0.9.0', '@0.11.0', '@0.12.1'): + depends_on('py-cython@0.29:', type='build', when='@0.15.0:') + 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-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'): depends_on('arrow+python' + v, when=v) depends_on('arrow+parquet+python' + v, when='+parquet' + v) 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 33b1cc145b..a4828f1f2f 100644 --- a/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py +++ b/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py @@ -15,7 +15,9 @@ class PyPyasn1Modules(PythonPackage): url = "https://pypi.io/packages/source/p/pyasn1-modules/pyasn1-modules-0.2.6.tar.gz" version('0.2.6', sha256='43c17a83c155229839cc5c6b868e8d0c6041dba149789b6d6e28801c64821722') + version('0.2.5', sha256='ef721f68f7951fab9b0404d42590f479e30d9005daccb1699b0a51bb4177db96') depends_on('python@2.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pyasn1@0.4.6:0.4.999', type=('build', 'run')) + depends_on('py-pyasn1@0.4.6:0.4.999', type=('build', 'run'), when='@0.2.6') + depends_on('py-pyasn1@0.4.1:0.4.999', type=('build', 'run'), when='@0.2.5') diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py index ac4b684450..a0bcafca7f 100644 --- a/var/spack/repos/builtin/packages/py-pybind11/package.py +++ b/var/spack/repos/builtin/packages/py-pybind11/package.py @@ -8,6 +8,7 @@ from spack import * class PyPybind11(CMakePackage): """pybind11 -- Seamless operability between C++11 and Python. + pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. Its goals and syntax are similar to the excellent Boost.Python @@ -18,9 +19,11 @@ class PyPybind11(CMakePackage): homepage = "https://pybind11.readthedocs.io" url = "https://github.com/pybind/pybind11/archive/v2.1.0.tar.gz" git = "https://github.com/pybind/pybind11.git" + maintainers = ['ax3l'] - version('develop', branch='master') + version('master', branch='master') + version('2.4.3', sha256='1eed57bc6863190e35637290f97a20c81cfe4d9090ac0a24f3bbf08f265eb71d') version('2.3.0', sha256='0f34838f2c8024a6765168227ba587b3687729ebf03dc912f88ff75c7aa9cfe8') version('2.2.4', sha256='b69e83658513215b8d1443544d0549b7d231b9f201f6fc787a2b2218b408181e') version('2.2.3', sha256='3a3b7b651afab1c5ba557f4c37d785a522b8030dfc765da26adc2ecd1de940ea') @@ -50,10 +53,30 @@ class PyPybind11(CMakePackage): ] return args - def setup_environment(self, spack_env, run_env): - spack_env.set('PYBIND11_USE_CMAKE', 1) + def setup_build_environment(self, env): + env.set('PYBIND11_USE_CMAKE', 1) + + def patch(self): + """ see https://github.com/spack/spack/issues/13559 """ + filter_file('import sys', + 'import sys; return "{0}"'.format(self.prefix.include), + 'pybind11/__init__.py', + 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)) + + @run_after('install') + @on_package_attributes(run_tests=True) + def test(self): + with working_dir('spack-test', create=True): + # test include helper points to right location + python = self.spec['python'].command + inc = python( + '-c', + 'import pybind11 as py; ' + + self.spec['python'].package.print_string('py.get_include()'), + output=str) + assert inc.strip() == str(self.prefix.include) diff --git a/var/spack/repos/builtin/packages/py-pycmd/package.py b/var/spack/repos/builtin/packages/py-pycmd/package.py new file mode 100644 index 0000000000..a496a6e47c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycmd/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.2', sha256='adc1976c0106919e9338db20102b91009256dcfec924a66928d7297026f72477') + + depends_on('py-py@1.4.9:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-git2/package.py b/var/spack/repos/builtin/packages/py-pygit2/package.py index a4c6404ef1..216c61a74f 100644 --- a/var/spack/repos/builtin/packages/py-git2/package.py +++ b/var/spack/repos/builtin/packages/py-pygit2/package.py @@ -6,7 +6,7 @@ from spack import * -class PyGit2(PythonPackage): +class PyPygit2(PythonPackage): """Pygit2 is a set of Python bindings to the libgit2 shared library, libgit2 implements the core of Git. """ @@ -24,8 +24,8 @@ class PyGit2(PythonPackage): depends_on('py-six', type=('build', 'run')) depends_on('py-cffi', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec # http://www.pygit2.org/install.html - spack_env.set('LIBGIT2', spec['libgit2'].prefix) - spack_env.set('LIBGIT2_LIB', spec['libgit2'].prefix.lib) + env.set('LIBGIT2', spec['libgit2'].prefix) + env.set('LIBGIT2_LIB', spec['libgit2'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/py-pygpu/package.py b/var/spack/repos/builtin/packages/py-pygpu/package.py index 3675482b08..84182e5a43 100644 --- a/var/spack/repos/builtin/packages/py-pygpu/package.py +++ b/var/spack/repos/builtin/packages/py-pygpu/package.py @@ -28,4 +28,4 @@ class PyPygpu(PythonPackage): depends_on('py-nose', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) depends_on('py-mako', type=('build', 'run')) - depends_on('libcheck') + depends_on('check') diff --git a/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py new file mode 100644 index 0000000000..a9efa90bc3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + 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 new file mode 100644 index 0000000000..7b47ea391b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyinstrument/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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.0.tar.gz" + + version('3.1.0', sha256='02319607daf65110e246085f5e2ee111f565f213eed1991229f2d58e9a7657a5') + + depends_on('py-setuptools', type='build') + 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') diff --git a/var/spack/repos/builtin/packages/py-pyke/package.py b/var/spack/repos/builtin/packages/py-pyke/package.py index e003dbc981..c2fdbe69f1 100644 --- a/var/spack/repos/builtin/packages/py-pyke/package.py +++ b/var/spack/repos/builtin/packages/py-pyke/package.py @@ -13,8 +13,8 @@ class PyPyke(PythonPackage): """ homepage = "http://sourceforge.net/projects/pyke" - url = "https://downloads.sourceforge.net/pyke/pyke3-1.1.1.zip" + url = "https://sourceforge.net/projects/pyke/files/pyke/1.1.1/pyke-1.1.1.zip" - version('1.1.1', sha256='b877b390e70a2eacc01d97c3a992fde947276afc2798ca3ac6c6f74c796cb6dc') + version('1.1.1', sha256='b0b294f435c6e6d2d4a80badf57d92cb66814dfe21e644a521901209e6a3f8ae') - depends_on('python@3:') + depends_on('python@3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pymeeus/package.py b/var/spack/repos/builtin/packages/py-pymeeus/package.py new file mode 100644 index 0000000000..4fb1fc63a9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pymeeus/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.3.6', sha256='1f1ba0682e1b5c6b0cd6432c966e8bc8acc31737ea6f0ae79917a2189a98bb87') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pymol/package.py b/var/spack/repos/builtin/packages/py-pymol/package.py index c85f380d24..53d9d6c712 100644 --- a/var/spack/repos/builtin/packages/py-pymol/package.py +++ b/var/spack/repos/builtin/packages/py-pymol/package.py @@ -13,20 +13,19 @@ class PyPymol(PythonPackage): movies. Open Source PyMOL is free to everyone!""" homepage = "https://pymol.org" - url = "https://sourceforge.net/projects/pymol/files/pymol/2/pymol-v2.1.0.tar.bz2" + url = "https://github.com/schrodinger/pymol-open-source/archive/v2.3.0.tar.gz" - version('2.1.0', sha256='7ae8ebb899533d691a67c1ec731b00518dea456ab3e258aa052a65c24b63eae2') + version('2.3.0', sha256='62aa21fafd1db805c876f89466e47513809f8198395e1f00a5f5cc40d6f40ed0') depends_on('python+tkinter', type=('build', 'run')) - depends_on('tcl') - depends_on('tk') - depends_on('py-pmw') - depends_on('gl') - depends_on('glu') + depends_on('freetype', type=('build', 'run')) depends_on('glew') - depends_on('libpng') - depends_on('freetype') - depends_on('libxml2') - depends_on('msgpack-c') - depends_on('py-pyqt4', type=('build', 'run')) - depends_on('freeglut') + depends_on('glm') + depends_on('freeglut', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('tcsh', type=('build', 'run')) + depends_on('py-pyqt5', type=('build', 'run')) + depends_on('py-pmw', type=('build', 'run')) + + depends_on('libmmtf-cpp', type=('build')) + depends_on('msgpack-c', type=('build')) diff --git a/var/spack/repos/builtin/packages/py-pymongo/package.py b/var/spack/repos/builtin/packages/py-pymongo/package.py index 8e28001e4c..3f52238dfd 100644 --- a/var/spack/repos/builtin/packages/py-pymongo/package.py +++ b/var/spack/repos/builtin/packages/py-pymongo/package.py @@ -19,6 +19,8 @@ class PyPymongo(PythonPackage): url = "https://pypi.io/packages/source/p/pymongo/pymongo-3.9.0.tar.gz" version('3.9.0', sha256='4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3') + version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8') + version('3.3.0', sha256='3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e') 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-pynio/package.py b/var/spack/repos/builtin/packages/py-pynio/package.py index d6d4076554..d1d489a1ba 100644 --- a/var/spack/repos/builtin/packages/py-pynio/package.py +++ b/var/spack/repos/builtin/packages/py-pynio/package.py @@ -27,7 +27,7 @@ class PyPynio(PythonPackage): # Spack does not currently have netcdf below 4.x, and 3.x is a # fundamentally different format. So, currently this is only providing # support for netcdf4. - depends_on('netcdf@3.6.0:') + depends_on('netcdf-c@3.6.0:') # Turning on the hdf (i.e. hdf4) dependency causes it not to build, with # compile errors that (weirdly) relate to the declarations of HDF5. @@ -50,22 +50,22 @@ class PyPynio(PythonPackage): depends_on('py-numpy', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): """ These environment variables are how the setup.py knows which options to turn on, and how to find them. """ - spack_env.set('F2CLIBS', 'gfortran') - spack_env.set('HAS_NETCDF4', '1') - spack_env.set('NETCDF4_PREFIX', self.spec['netcdf'].prefix) + env.set('F2CLIBS', 'gfortran') + env.set('HAS_NETCDF4', '1') + env.set('NETCDF4_PREFIX', self.spec['netcdf-c'].prefix) if '+hdf5' in self.spec: - spack_env.set('HAS_HDF5', '1') - spack_env.set('HDF5_PREFIX', self.spec['hdf5'].prefix) + env.set('HAS_HDF5', '1') + env.set('HDF5_PREFIX', self.spec['hdf5'].prefix) if '+gdal' in self.spec: - spack_env.set('HAS_GDAL', '1') - spack_env.set('GDAL_PREFIX', self.spec['gdal'].prefix) + env.set('HAS_GDAL', '1') + env.set('GDAL_PREFIX', self.spec['gdal'].prefix) # This one is trouble - see comments above. # if '+hdf4' in self.spec: -# spack_env.set('HAS_HDF4', '1') -# spack_env.set('HDF4_PREFIX', self.spec['hdf'].prefix) +# env.set('HAS_HDF4', '1') +# env.set('HDF4_PREFIX', self.spec['hdf'].prefix) diff --git a/var/spack/repos/builtin/packages/py-perf/package.py b/var/spack/repos/builtin/packages/py-pyperf/package.py index 2d2c025691..53106bb468 100644 --- a/var/spack/repos/builtin/packages/py-perf/package.py +++ b/var/spack/repos/builtin/packages/py-pyperf/package.py @@ -6,7 +6,7 @@ from spack import * -class PyPerf(PythonPackage): +class PyPyperf(PythonPackage): """The Python perf module is a toolkit to write, run and analyze benchmarks. """ diff --git a/var/spack/repos/builtin/packages/py-pyproj/package.py b/var/spack/repos/builtin/packages/py-pyproj/package.py index 143cf0f39b..9fa36fea8f 100644 --- a/var/spack/repos/builtin/packages/py-pyproj/package.py +++ b/var/spack/repos/builtin/packages/py-pyproj/package.py @@ -30,5 +30,5 @@ class PyPyproj(PythonPackage): depends_on('proj@6.1:', when='@2.2:') depends_on('proj@6.0:', when='@2.0:') - def setup_environment(self, spack_env, run_env): - spack_env.set('PROJ_DIR', self.spec['proj'].prefix) + def setup_build_environment(self, env): + env.set('PROJ_DIR', self.spec['proj'].prefix) diff --git a/var/spack/repos/builtin/packages/py-pyqt4/package.py b/var/spack/repos/builtin/packages/py-pyqt4/package.py index b13eaba22b..64aa220b6d 100644 --- a/var/spack/repos/builtin/packages/py-pyqt4/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt4/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyPyqt4(SIPPackage): @@ -28,16 +29,73 @@ class PyPyqt4(SIPPackage): version('4.11.3', sha256='853780dcdbe2e6ba785d703d059b096e1fc49369d3e8d41a060be874b8745686', url='http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz') + variant('qsci', default=False, description='Build with QScintilla python bindings') + # Supposedly can also be built with Qt 5 compatibility layer depends_on('qt@:4') + depends_on('qscintilla', when='+qsci') + + # For building Qscintilla python bindings + resource(name='qscintilla', + url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.10.2/QScintilla_gpl-2.10.2.tar.gz', + sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0', + destination='spack-resource-qscintilla', + when='^qscintilla@2.10.2' + ) # https://www.riverbankcomputing.com/static/Docs/PyQt4/installation.html def configure_file(self): return 'configure-ng.py' def configure_args(self): - return [ + args = [ '--pyuic4-interpreter', self.spec['python'].command.path, '--sipdir', self.prefix.share.sip.PyQt4, - '--stubsdir', join_path(site_packages_dir, 'PyQt4'), + '--stubsdir', join_path(site_packages_dir, 'PyQt4') ] + if '+qsci' in self.spec: + args.extend(['--qsci-api-destdir', self.prefix.share.qsci]) + return args + + @run_after('install') + def make_qsci(self): + if '+qsci' in self.spec: + rsrc_py_path = os.path.join( + self.stage.source_path, + 'spack-resource-qscintilla/QScintilla_gpl-' + + str(self.spec['qscintilla'].version), 'Python') + with working_dir(rsrc_py_path): + pydir = join_path(site_packages_dir, 'PyQt4') + python = self.spec['python'].command + python('configure.py', + '--sip=' + self.prefix.bin.sip, + '--qsci-incdir=' + + self.spec['qscintilla'].prefix.include, + '--qsci-libdir=' + self.spec['qscintilla'].prefix.lib, + '--qsci-sipdir=' + self.prefix.share.sip.PyQt4, + '--apidir=' + self.prefix.share.qsci, + '--destdir=' + pydir, + '--pyqt-sipdir=' + self.prefix.share.sip.PyQt4, + '--sip-incdir=' + python_include_dir, + '--stubsdir=' + pydir) + + # Fix build errors + # "QAbstractScrollArea: No such file or directory" + # "qprinter.h: No such file or directory" + # ".../Qsci.so: undefined symbol: _ZTI10Qsci...." + qscipro = FileFilter('Qsci/Qsci.pro') + link_qscilibs = 'LIBS += -L' + self.prefix.lib +\ + ' -lqscintilla2_qt4' + qscipro.filter('TEMPLATE = lib', + 'TEMPLATE = lib\nQT += widgets' + + '\nQT += printsupport\n' + link_qscilibs) + + make() + + # Fix installation prefixes + makefile = FileFilter('Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)', '') + makefile = FileFilter('Qsci/Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)', '') + + make('install') diff --git a/var/spack/repos/builtin/packages/py-pyqt5/package.py b/var/spack/repos/builtin/packages/py-pyqt5/package.py index 0ec76b16c9..3858ab7eef 100644 --- a/var/spack/repos/builtin/packages/py-pyqt5/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt5/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyPyqt5(SIPPackage): @@ -27,16 +28,74 @@ class PyPyqt5(SIPPackage): version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9') + variant('qsci', default=False, description='Build with QScintilla python bindings') + # Without opengl support, I got the following error: # sip: QOpenGLFramebufferObject is undefined depends_on('qt@5:+opengl') depends_on('python@2.6:', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') + depends_on('qscintilla', when='+qsci') + + # For building Qscintilla python bindings + resource(name='qscintilla', + url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.10.2/QScintilla_gpl-2.10.2.tar.gz', + sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0', + destination='spack-resource-qscintilla', + when='^qscintilla@2.10.2' + ) + # https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html def configure_args(self): - return [ + args = [ '--pyuic5-interpreter', self.spec['python'].command.path, '--sipdir', self.prefix.share.sip.PyQt5, '--stubsdir', join_path(site_packages_dir, 'PyQt5'), ] + if '+qsci' in self.spec: + args.extend(['--qsci-api-destdir', self.prefix.share.qsci]) + return args + + @run_after('install') + def make_qsci(self): + if '+qsci' in self.spec: + rsrc_py_path = os.path.join( + self.stage.source_path, + 'spack-resource-qscintilla/QScintilla_gpl-' + + str(self.spec['qscintilla'].version), 'Python') + with working_dir(rsrc_py_path): + pydir = join_path(site_packages_dir, 'PyQt5') + python = self.spec['python'].command + python('configure.py', '--pyqt=PyQt5', + '--sip=' + self.prefix.bin.sip, + '--qsci-incdir=' + + self.spec['qscintilla'].prefix.include, + '--qsci-libdir=' + self.spec['qscintilla'].prefix.lib, + '--qsci-sipdir=' + self.prefix.share.sip.PyQt5, + '--apidir=' + self.prefix.share.qsci, + '--destdir=' + pydir, + '--pyqt-sipdir=' + self.prefix.share.sip.PyQt5, + '--sip-incdir=' + python_include_dir, + '--stubsdir=' + pydir) + + # Fix build errors + # "QAbstractScrollArea: No such file or directory" + # "qprinter.h: No such file or directory" + # ".../Qsci.so: undefined symbol: _ZTI10Qsci...." + qscipro = FileFilter('Qsci/Qsci.pro') + link_qscilibs = 'LIBS += -L' + self.prefix.lib +\ + ' -lqscintilla2_qt5' + qscipro.filter('TEMPLATE = lib', + 'TEMPLATE = lib\nQT += widgets' + + '\nQT += printsupport\n' + link_qscilibs) + + make() + + # Fix installation prefixes + makefile = FileFilter('Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)', '') + makefile = FileFilter('Qsci/Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)', '') + + make('install') diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py index bd4f622d9b..09f6b7fa08 100644 --- a/var/spack/repos/builtin/packages/py-pyside/package.py +++ b/var/spack/repos/builtin/packages/py-pyside/package.py @@ -42,6 +42,17 @@ class PyPyside(PythonPackage): rpath.append(os.path.join( self.prefix, pypkg.site_packages_dir, 'PySide')) + # Fix subprocess.mswindows check for Python 3.5 + # https://github.com/pyside/pyside-setup/pull/55 + filter_file( + '^if subprocess.mswindows:', + 'mswindows = (sys.platform == "win32")\r\nif mswindows:', + "popenasync.py") + filter_file( + '^ if subprocess.mswindows:', + ' if mswindows:', + "popenasync.py") + # Add Spack's standard CMake args to the sub-builds. # They're called BY setup.py so we have to patch it. filter_file( diff --git a/var/spack/repos/builtin/packages/py-pyside2/package.py b/var/spack/repos/builtin/packages/py-pyside2/package.py new file mode 100644 index 0000000000..273fdc79b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyside2/package.py @@ -0,0 +1,53 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyPyside2(PythonPackage): + """Python bindings for Qt.""" + homepage = "https://pypi.org/project/PySide2/" + url = "https://code.qt.io/pyside/pyside-setup.git" + 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 + + version('develop', tag='dev') + version('5.13.2', tag='v5.13.2', submodules=True) + version('5.13.1', tag='v5.13.1', submodules=True) + version('5.13.0', tag='v5.13.0', submodules=True) + version('5.12.5', tag='v5.12.5', submodules=True) + + variant('doc', default=False, description='Enables the generation of html and man page documentation') + + depends_on('python@2.7:2.7.99,3.5.0:3.5.99,3.6.1:', type=('build', 'run')) + + depends_on('cmake@3.1:', type='build') + depends_on('llvm@6:', type='build') + depends_on('py-setuptools', type='build') + depends_on('py-wheel', type='build') + depends_on('qt@5.11:+opengl', type=('build', 'run')) + + depends_on('graphviz', when='+doc', type='build') + depends_on('libxml2@2.6.32:', when='+doc', type='build') + depends_on('libxslt@1.1.19:', when='+doc', type='build') + depends_on('py-sphinx', when='+doc', type='build') + + def build_args(self, spec, prefix): + args = [ + '--parallel={0}'.format(make_jobs), + '--ignore-git', + '--qmake={0}'.format(spec['qt'].prefix.bin.qmake) + ] + if self.run_tests: + args.append('--build-tests') + return args + + @run_after('build') + def build_docs(self): + if '+doc' in self.spec: + make('apidoc') 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 6094911d4f..a98920c7f1 100644 --- a/var/spack/repos/builtin/packages/py-pytest-cache/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-cache/package.py @@ -17,5 +17,5 @@ class PyPytestCache(PythonPackage): version('1.0', sha256='be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9') depends_on('py-setuptools', type='build') - depends_on('py-pytest@2.2.0:2.7.3', type=('build', 'run')) + depends_on('py-pytest@2.2:', type=('build', 'run')) depends_on('py-execnet@1.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pytest-mypy/package.py b/var/spack/repos/builtin/packages/py-pytest-mypy/package.py new file mode 100644 index 0000000000..11c1683cd3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytest-mypy/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.4.2', sha256='5a5338cecff17f005b181546a13e282761754b481225df37f33d37f86ac5b304') + + depends_on('python@3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pytest@2.8:', when='^python@3.5:', type=('build', 'run')) + depends_on('py-pytest@2.8:4.6', when='^python@:3.4', type=('build', 'run')) + depends_on('py-mypy@0.500:0.699', when='^python@:3.4', type=('build', 'run')) + depends_on('py-mypy@0.500:', when='^python@3.5:3.7', type=('build', 'run')) + depends_on('py-mypy@0.700:', when='^python@3.8:', 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 new file mode 100644 index 0000000000..841c2ef8ff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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'] + + version('1.0.6', sha256='032ef7e5fa3ac30f4458c73e05bb67b0f036a8a5cb418a534b3170f89f120318') + + depends_on('py-setuptools', type='build') + depends_on('py-pytest-cache', type=('build', 'run')) + depends_on('py-pytest@2.4.2:', type=('build', 'run')) + depends_on('py-pep8@1.3:', 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 a35d8995e4..89746e788a 100644 --- a/var/spack/repos/builtin/packages/py-pytest-xdist/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-xdist/package.py @@ -13,11 +13,18 @@ class PyPytestXdist(PythonPackage): url = "https://pypi.io/packages/source/p/pytest-xdist/pytest-xdist-1.30.0.tar.gz" version('1.30.0', sha256='5d1b1d4461518a6023d56dab62fb63670d6f7537f23e2708459a557329accf48') + version('1.29.0', sha256='3489d91516d7847db5eaecff7a2e623dba68984835dbe6cedb05ae126c4fb17f') + version('1.27.0', sha256='a96ed691705882560fa3fc95531fbd4c224896c827f4004817eb2dcac4ba41a2') + version('1.24.0', sha256='8e188d13ce6614c7a678179a76f46231199ffdfe6163de031c17e62ffa256917') + version('1.17.0', sha256='e7e48c111677af23078b1ed23501e493e12c4b6d91657f6884a64e4ce0f14144') version('1.16.0', sha256='42e5a1e5da9d7cff3e74b07f8692598382f95624f234ff7e00a3b1237e0feba2') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-execnet@1.1:', type=('build', 'run')) - depends_on('py-pytest@4.4.0:', type=('build', 'run')) - depends_on('py-pytest-forked', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) + depends_on('py-pytest@4.4.0:', type=('build', 'run'), when='@1.28.0:') + depends_on('py-pytest@3.6.0:', type=('build', 'run'), when='@1.25.0:1.27.0') + depends_on('py-pytest@3.0.0:', type=('build', 'run'), when='@1.18.0:1.24.0') + depends_on('py-pytest@2.7.0:', type=('build', 'run'), when='@1.16.0:1.17.0') + depends_on('py-pytest-forked', type=('build', 'run'), when='@1.19.0:') + depends_on('py-six', type=('build', 'run'), when='@1.23.0:') diff --git a/var/spack/repos/builtin/packages/py-igraph/package.py b/var/spack/repos/builtin/packages/py-python-igraph/package.py index e6f6ccdf20..7812983c21 100644 --- a/var/spack/repos/builtin/packages/py-igraph/package.py +++ b/var/spack/repos/builtin/packages/py-python-igraph/package.py @@ -6,7 +6,7 @@ from spack import * -class PyIgraph(PythonPackage): +class PyPythonIgraph(PythonPackage): """igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use.""" diff --git a/var/spack/repos/builtin/packages/py-python-logstash/package.py b/var/spack/repos/builtin/packages/py-python-logstash/package.py new file mode 100644 index 0000000000..7eeb0bea45 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-logstash/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.4.6', sha256='10943e5df83f592b4d61b63ad1afff855ccc8c9467f78718f0a59809ba1fe68c') 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 6d1cf944b0..4d2a405f6f 100644 --- a/var/spack/repos/builtin/packages/py-python-mapnik/package.py +++ b/var/spack/repos/builtin/packages/py-python-mapnik/package.py @@ -20,10 +20,12 @@ class PyPythonMapnik(PythonPackage): depends_on('py-setuptools', type='build') depends_on('mapnik', type=('build', 'link', 'run')) depends_on('boost +python+thread') + # py-pycairo is need by mapnik.printing + depends_on('py-pycairo', type=('build', 'run')) # Package can't find boost_python without the following - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Inform the package that boost python library is of form # 'libboost_python27.so' as opposed to 'libboost_python.so' py_ver = str(self.spec['python'].version.up_to(2).joined) - spack_env.set('BOOST_PYTHON_LIB', 'boost_python' + py_ver) + env.set('BOOST_PYTHON_LIB', 'boost_python' + py_ver) diff --git a/var/spack/repos/builtin/packages/py-meep/package.py b/var/spack/repos/builtin/packages/py-python-meep/package.py index 81a219145f..4eedd1ef17 100644 --- a/var/spack/repos/builtin/packages/py-meep/package.py +++ b/var/spack/repos/builtin/packages/py-python-meep/package.py @@ -6,7 +6,7 @@ from spack import * -class PyMeep(PythonPackage): +class PyPythonMeep(PythonPackage): """Python-meep is a wrapper around libmeep. It allows the scripting of Meep-simulations with Python""" diff --git a/var/spack/repos/builtin/packages/py-python-subunit/package.py b/var/spack/repos/builtin/packages/py-python-subunit/package.py new file mode 100644 index 0000000000..412e1f8aa2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-subunit/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.3.0', sha256='9607edbee4c1e5a30ff88549ce8d9feb0b9bcbcb5e55033a9d76e86075465cbb') + + depends_on('py-setuptools', type='build') + depends_on('py-extras', type=('build', 'run')) + depends_on('py-testtools@0.9.34:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 980d5fae51..39b5b7f516 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -8,8 +8,9 @@ from spack import * class PyPyyaml(PythonPackage): """PyYAML is a YAML parser and emitter for Python.""" + homepage = "http://pyyaml.org/wiki/PyYAML" - url = "http://pyyaml.org/download/pyyaml/PyYAML-5.1.2.tar.gz" + url = "https://pypi.io/packages/source/P/PyYAML/PyYAML-5.1.2.tar.gz" version('5.1.2', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') version('3.13', sha256='3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf') diff --git a/var/spack/repos/builtin/packages/py-zmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py index 7d2d783a7a..d698ee5fec 100644 --- a/var/spack/repos/builtin/packages/py-zmq/package.py +++ b/var/spack/repos/builtin/packages/py-pyzmq/package.py @@ -6,16 +6,20 @@ from spack import * -class PyZmq(PythonPackage): +class PyPyzmq(PythonPackage): """PyZMQ: Python bindings for zeromq.""" homepage = "https://github.com/zeromq/pyzmq" url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz" + version('18.1.0', sha256='32f7618b8104021bc96cbd60be4330bdf37b929e8061dbce362c9f3478a08e21') version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45') version('16.0.2', sha256='717dd902c3cf432b1c68e7b299ad028b0de0d0a823858e440b81d5f1baa2b1c1') 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-py', type=('build', 'run')) depends_on('py-cffi', type=('build', 'run')) - depends_on('zeromq') + depends_on('libzmq') diff --git a/var/spack/repos/builtin/packages/py-qtpy/package.py b/var/spack/repos/builtin/packages/py-qtpy/package.py index 9ee1d42f71..836bc77477 100644 --- a/var/spack/repos/builtin/packages/py-qtpy/package.py +++ b/var/spack/repos/builtin/packages/py-qtpy/package.py @@ -7,12 +7,22 @@ from spack import * class PyQtpy(PythonPackage): - """QtPy: Abtraction layer for PyQt5/PyQt4/PySide""" + """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" + version('1.7.1', sha256='e97275750934b3a1f4d8e263f5b889ae817ed36f26867ab0ce52be731ab1ed9e') version('1.2.1', sha256='5803ce31f50b24295e8e600b76cc91d7f2a3140a5a0d526d40226f9ec5e9097d') + apis = ['pyqt5', 'pyqt4', 'pyside2', 'pyside'] + + variant('api', default='pyqt5', description='Default QT API', + values=apis, multi=False) + depends_on('py-setuptools', type='build') - depends_on('py-pyqt4', type=('build', 'run')) + for api in apis: + depends_on('py-' + api, when='+' + 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-ranger-fm/package.py b/var/spack/repos/builtin/packages/py-ranger-fm/package.py new file mode 100644 index 0000000000..5fb367ab81 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ranger-fm/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +# +from spack import * + + +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" + git = "https://github.com/ranger/ranger.git" + + version('1.9.2', sha256='0ec62031185ad1f40b9faebd5a2d517c8597019c2eee919e3f1c60ce466d8625') diff --git a/var/spack/repos/builtin/packages/py-ranger/package.py b/var/spack/repos/builtin/packages/py-ranger/package.py deleted file mode 100644 index 2676d51354..0000000000 --- a/var/spack/repos/builtin/packages/py-ranger/package.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -# -from spack import * - - -class PyRanger(PythonPackage): - """A VIM-inspired filemanager for the console""" - - homepage = "http://ranger.nongnu.org/" - url = "https://github.com/ranger/ranger/archive/v1.7.2.tar.gz" - - version('1.7.2', sha256='80917c93396e46272b6de63816d925eb708291a9f7a559d49b24c571ea0eeeb3') - - depends_on('python@2.6:') diff --git a/var/spack/repos/builtin/packages/py-regex/package.py b/var/spack/repos/builtin/packages/py-regex/package.py index c7a11de731..c5aad395d2 100644 --- a/var/spack/repos/builtin/packages/py-regex/package.py +++ b/var/spack/repos/builtin/packages/py-regex/package.py @@ -12,6 +12,7 @@ class PyRegex(PythonPackage): homepage = "https://pypi.python.org/pypi/regex/" url = "https://pypi.io/packages/source/r/regex/regex-2017.07.11.tar.gz" + version('2019.11.1', sha256='720e34a539a76a1fedcebe4397290604cc2bdf6f81eca44adb9fb2ea071c0c69') version('2017.07.11', sha256='dbda8bdc31a1c85445f1a1b29d04abda46e5c690f8f933a9cc3a85a358969616') - depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type='build', when='@2017.07.11') diff --git a/var/spack/repos/builtin/packages/py-requests-mock/package.py b/var/spack/repos/builtin/packages/py-requests-mock/package.py new file mode 100644 index 0000000000..ba3f996bc4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-requests-mock/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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'] + + version('1.7.0', sha256='88d3402dd8b3c69a9e4f9d3a73ad11b15920c6efd36bc27bf1f701cf4a8e4646') + + depends_on('py-setuptools', type='build') 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 c6e25d373e..875563f260 100644 --- a/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py +++ b/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py @@ -11,10 +11,10 @@ class PyRequestsToolbelt(PythonPackage): python-requests""" homepage = "https://toolbelt.readthedocs.org/" - url = "https://github.com/requests/toolbelt/archive/0.9.1.tar.gz" + url = "https://pypi.io/packages/source/r/requests-toolbelt/requests-toolbelt-0.9.1.tar.gz" - version('0.9.1', sha256='c8e68e537e87ae088e3a0eb6d80ed5b7cf5d6df503d0e843e0a5e47283db487b') - version('0.8.0', sha256='f151c07e88148dc05b6f31cc75dfb7a6770968e4a5c8e6690325eed4e79160a1') + version('0.9.1', sha256='968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0') + version('0.8.0', sha256='f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5') depends_on('py-setuptools', type='build') depends_on('py-requests@2.0.1:2.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rnacocktail/package.py b/var/spack/repos/builtin/packages/py-rnacocktail/package.py new file mode 100644 index 0000000000..e2ef86a1f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-rnacocktail/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyRnacocktail(PythonPackage): + """RNACocktail: A comprehensive framework + for accurate and efficient RNA-Seq analysis.""" + + homepage = "http://bioinform.github.io/rnacocktail/" + url = "https://github.com/bioinform/rnacocktail/archive/v0.2.2.tar.gz" + + version('0.2.2', sha256='34aa0d1d7bd9d80303fe7dac5acc0519f7c1ed986397692588343d82ce45c7a5') + + depends_on('python@2.7:2.8', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pybedtools', type=('build', 'run')) + depends_on('py-pysam', type=('build', 'run')) + # Higher version of py-pandas and py-numpy + # depends on python@3: which conflicts with py-rnacocktail + depends_on('py-pandas@:0.24.2', type=('build', 'run')) + depends_on('py-numpy@:1.16.5', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rtree/package.py b/var/spack/repos/builtin/packages/py-rtree/package.py index 4d0db48ecb..d37009a93a 100644 --- a/var/spack/repos/builtin/packages/py-rtree/package.py +++ b/var/spack/repos/builtin/packages/py-rtree/package.py @@ -16,9 +16,9 @@ class PyRtree(PythonPackage): depends_on('py-setuptools', type='build') depends_on('libspatialindex') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): lib = self.spec['libspatialindex'].prefix.lib - spack_env.set('SPATIALINDEX_LIBRARY', - join_path(lib, 'libspatialindex.%s' % dso_suffix)) - spack_env.set('SPATIALINDEX_C_LIBRARY', - join_path(lib, 'libspatialindex_c.%s' % dso_suffix)) + env.set('SPATIALINDEX_LIBRARY', + join_path(lib, 'libspatialindex.%s' % dso_suffix)) + env.set('SPATIALINDEX_C_LIBRARY', + join_path(lib, 'libspatialindex_c.%s' % dso_suffix)) diff --git a/var/spack/repos/builtin/packages/py-s3cmd/package.py b/var/spack/repos/builtin/packages/py-s3cmd/package.py new file mode 100644 index 0000000000..85c5352527 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-s3cmd/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyS3cmd(PythonPackage): + """ + S3cmd (s3cmd) is a free command line tool and client for uploading, + retrieving and managing data in Amazon S3 and other cloud storage + service providers that use the S3 protocol, such as Google Cloud + Storage or DreamHost DreamObjects. It is best suited for power + users who are familiar with command line programs. + """ + + homepage = "https://github.com/s3tools/s3cmd" + url = "https://github.com/s3tools/s3cmd/releases/download/v2.0.2/s3cmd-2.0.2.tar.gz" + + version('2.0.2', sha256='9f244c0c10d58d0ccacbba3aa977463e32491bdd9d95109e27b67e4d46c5bd52') + version('2.0.1', sha256='caf09f1473301c442fba6431c983c361c9af8bde503dac0953f0d2f8f2c53c8f') + version('2.0.0', sha256='bf2a50802f1031cba83e99be488965803899d8ab0228c800c833b55c7269cd48') + version('1.6.1', sha256='4675794f84d8744ee3d35873d180f41c7b2116895ccbe2738a9bc552e1cf214e') + version('1.6.0', sha256='04279ee26c661d4b740449460ed93a74ffec91616f685474beea97e930fdfa5c') + version('1.5.2', sha256='ff8a6764e8bdd7ed48a93e51b08222bea33469d248a90b8d25315b023717b42d') + + depends_on('py-setuptools', type='build') + depends_on('python@2.6:+pyexpat', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-python-magic', type=('build', 'run')) 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 02d85c33cd..6f3ed64fe1 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -10,7 +10,7 @@ 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.21.3.tar.gz" + url = "https://pypi.io/packages/source/s/scikit-learn/scikit-learn-0.22.tar.gz" git = "https://github.com/scikit-learn/scikit-learn.git" maintainers = ['adamjstewart'] @@ -33,6 +33,7 @@ class PyScikitLearn(PythonPackage): ] version('master', branch='master') + version('0.22', sha256='314abf60c073c48a1e95feaae9f3ca47a2139bd77cebb5b877c23a45c9e03012') version('0.21.3', sha256='eb9b8ebf59eddd8b96366428238ab27d05a19e89c5516ce294abc35cea75d003') version('0.21.2', sha256='0aafc312a55ebf58073151b9308761a5fcfa45b7f7730cea4b1f066f824c72db') version('0.21.1', sha256='228d0611e69e5250946f8cd7bbefec75347950f0ca426d0c518db8f06583f660') @@ -79,7 +80,7 @@ class PyScikitLearn(PythonPackage): # https://scikit-learn.org/stable/developers/advanced_installation.html#mac-osx elif self.spec.satisfies('@0.21: %clang platform=darwin +openmp'): env.append_flags( - 'CPPFLAGS', '-Xpreprocessor -fopenmp') + 'CPPFLAGS', self.compiler.openmp_flag) env.append_flags( 'CFLAGS', self.spec['llvm-openmp'].headers.include_flags) env.append_flags( 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 ebf4b8ec4c..37f6434c8c 100644 --- a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py @@ -22,11 +22,10 @@ class PyScikitOptimize(PythonPackage): variant('plots', default=True, description='Build with plot support from py-matplotlib') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run')) - depends_on('py-scikit-learn@0.19.0:', type=('build', 'run')) depends_on('py-scipy@0.14.0:', type=('build', 'run')) + depends_on('py-scikit-learn@0.19.1:', type=('build', 'run')) depends_on('py-matplotlib', when='+plots') - depends_on('py-test@3.3.0:', type='test') + 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 b173be57ea..9eea9a372f 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -11,8 +11,8 @@ class PyScipy(PythonPackage): It provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.""" - homepage = "http://www.scipy.org/" - url = "https://pypi.io/packages/source/s/scipy/scipy-1.3.1.tar.gz" + homepage = "https://www.scipy.org/" + url = "https://pypi.io/packages/source/s/scipy/scipy-1.4.1.tar.gz" maintainers = ['adamjstewart'] install_time_test_callbacks = ['install_test', 'import_module_test'] @@ -30,30 +30,34 @@ class PyScipy(PythonPackage): 'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute' ] - version('1.3.1', sha256='2643cfb46d97b7797d1dbdb6f3c23fe3402904e3c90e6facfe6a9b98d808c1b5') - version('1.3.0', sha256='c3bb4bd2aca82fb498247deeac12265921fe231502a6bc6edea3ee7fe6c40a7a') - version('1.2.2', sha256='a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1') - version('1.2.1', sha256='e085d1babcb419bbe58e2e805ac61924dac4ca45a07c9fa081144739e500aa3c') - version('1.1.0', sha256='878352408424dffaa695ffedf2f9f92844e116686923ed9aa8626fc30d32cfd1') - version('1.0.0', sha256='87ea1f11a0e9ec08c264dc64551d501fa307289460705f6fccd84cbfc7926d10') + version('1.4.1', sha256='dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59') + version('1.4.0', sha256='31f7cfa93b01507c935c12b535e24812594002a02a56803d7cd063e9920d25e8') + version('1.3.3', sha256='64bf4e8ae0db2d42b58477817f648d81e77f0b381d0ea4427385bba3f959380a') + version('1.3.2', sha256='a03939b431994289f39373c57bbe452974a7da724ae7f9620a1beee575434da4') + version('1.3.1', sha256='2643cfb46d97b7797d1dbdb6f3c23fe3402904e3c90e6facfe6a9b98d808c1b5') + version('1.3.0', sha256='c3bb4bd2aca82fb498247deeac12265921fe231502a6bc6edea3ee7fe6c40a7a') + version('1.2.2', sha256='a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1') + version('1.2.1', sha256='e085d1babcb419bbe58e2e805ac61924dac4ca45a07c9fa081144739e500aa3c') + version('1.1.0', sha256='878352408424dffaa695ffedf2f9f92844e116686923ed9aa8626fc30d32cfd1') + version('1.0.0', sha256='87ea1f11a0e9ec08c264dc64551d501fa307289460705f6fccd84cbfc7926d10') version('0.19.1', sha256='a19a2ca7a7336495ec180adeaa0dfdcf41e96dbbee90d51c3ed828ba570884e6') - version('0.19.0', sha256='4190d34bf9a09626cd42100bbb12e3d96b2daf1a8a3244e991263eb693732122', - url="https://pypi.io/packages/source/s/scipy/scipy-0.19.0.zip") version('0.18.1', sha256='8ab6e9c808bf2fb3e8576cd8cf07226d9cdc18b012c06d9708429a821ac6634e') version('0.17.0', sha256='f600b755fb69437d0f70361f9e560ab4d304b1b66987ed5a28bdd9dd7793e089') version('0.15.1', sha256='a212cbc3b79e9a563aa45fc5c517b3499198bd7eb7e7be1e047568a5f48c259a') version('0.15.0', sha256='0c74e31e08acc8bf9b6ceb9bced73df2ae0cc76003e0366350bc7b26292bf8b1') - depends_on('python@2.6:2.8,3.2:') - depends_on('python@2.7:2.8,3.4:', when='@0.18:') - depends_on('python@3.5:', when='@1.3:') + depends_on('python@2.6:2.8,3.2:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@0.18:', type=('build', 'run')) + depends_on('python@3.5:', when='@1.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest', type='test') + depends_on('py-pybind11@2.4.0:', when='@1.4.1:', type='build') + depends_on('py-pybind11@2.2.4:', when='@1.4.0:', type='build') depends_on('py-numpy@1.5.1:+blas+lapack', type=('build', 'run')) - depends_on('py-numpy@1.6.2:+blas+lapack', type=('build', 'run'), when='@0.16:') - depends_on('py-numpy@1.7.1:+blas+lapack', type=('build', 'run'), when='@0.18:') - depends_on('py-numpy@1.8.2:+blas+lapack', type=('build', 'run'), when='@0.19:') - depends_on('py-numpy@1.13.3:+blas+lapack', type=('build', 'run'), when='@1.3:') + depends_on('py-numpy@1.6.2:+blas+lapack', when='@0.16:', type=('build', 'run')) + depends_on('py-numpy@1.7.1:+blas+lapack', when='@0.18:', type=('build', 'run')) + depends_on('py-numpy@1.8.2:+blas+lapack', when='@0.19:', type=('build', 'run')) + depends_on('py-numpy@1.13.3:+blas+lapack', when='@1.3:', type=('build', 'run')) + depends_on('py-pytest', type='test') # NOTE: scipy picks up Blas/Lapack from numpy, see # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0 diff --git a/var/spack/repos/builtin/packages/py-scoop/package.py b/var/spack/repos/builtin/packages/py-scoop/package.py index b26140c384..0c9cf81e3e 100644 --- a/var/spack/repos/builtin/packages/py-scoop/package.py +++ b/var/spack/repos/builtin/packages/py-scoop/package.py @@ -19,4 +19,4 @@ class PyScoop(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-greenlet@0.3.4:', type=('build', 'run')) - depends_on('py-zmq@13.1.0:', type=('build', 'run')) + depends_on('py-pyzmq@13.1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-scs/package.py b/var/spack/repos/builtin/packages/py-scs/package.py new file mode 100644 index 0000000000..88f251bd7d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scs/package.py @@ -0,0 +1,43 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('2.1.1-2', sha256='f816cfe3d4b4cff3ac2b8b96588c5960ddd2a3dc946bda6b09db04e7bc6577f2') + + variant('cuda', default=False, description="Also compile the GPU CUDA version of SCS") + variant('float32', default=False, description="Use 32 bit (single precision) floats, default is 64 bit") + variant('extra_verbose', default=False, description="Extra verbose SCS (for debugging)") + variant('int32', default=False, description="Use 32 bit ints") + variant('blas64', default=False, description="Use 64 bit ints for the blas/lapack libs") + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.7:', type=('build', 'run')) + depends_on('py-scipy@0.13.2:', type=('build', 'run')) + + def build_args(self, spec, prefix): + args = [] + if '+cuda' in spec or '+float32' in spec or '+int32' in spec or\ + '+extra_verbose' in spec or '+blas64' in spec: + args = ['--scs'] + if '+cuda' in spec: + args.append('--gpu') + if '+float32' in spec: + args.append('--float') + if '+extra_verbose' in spec: + args.append('--extraverbose') + if '+int32' in spec: + args.append('--int') + if '+blas64' in spec: + args.append('--blas64') + return args diff --git a/var/spack/repos/builtin/packages/py-semver/package.py b/var/spack/repos/builtin/packages/py-semver/package.py new file mode 100644 index 0000000000..736c3adca0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-semver/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PySemver(PythonPackage): + """A Python module for semantic versioning. + Simplifies comparing versions.""" + + homepage = "https://semver.org/" + url = "https://pypi.io/packages/source/s/semver/semver-2.8.1.tar.gz" + + version('2.8.1', sha256='5b09010a66d9a3837211bb7ae5a20d10ba88f8cb49e92cb139a69ef90d5060d8') + + depends_on('py-setuptools', type='build') 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 new file mode 100644 index 0000000000..a344ce78fa --- /dev/null +++ b/var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PySetuptoolsScmGitArchive(PythonPackage): + """This is a setuptools_scm plugin that adds support for git archives + (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" + + maintainers = ['marcmengel'] + + version( + '1.1', sha256='6026f61089b73fa1b5ee737e95314f41cb512609b393530385ed281d0b46c062') + version( + '1.0', sha256='52425f905518247c685fc64c5fdba6e1e74443c8562e141c8de56059be0e31da') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build') diff --git a/var/spack/repos/builtin/packages/py-shapely/package.py b/var/spack/repos/builtin/packages/py-shapely/package.py index c1809767cf..074811bcfa 100644 --- a/var/spack/repos/builtin/packages/py-shapely/package.py +++ b/var/spack/repos/builtin/packages/py-shapely/package.py @@ -30,6 +30,6 @@ class PyShapely(PythonPackage): depends_on('geos@3.3:', when='@1.3:') depends_on('py-pytest', type='test') - def setup_environment(self, spack_env, run_env): - spack_env.set('GEOS_CONFIG', - join_path(self.spec['geos'].prefix.bin, 'geos-config')) + def setup_build_environment(self, env): + env.set('GEOS_CONFIG', + join_path(self.spec['geos'].prefix.bin, 'geos-config')) diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py index edf21aadf4..46ffc93c29 100644 --- a/var/spack/repos/builtin/packages/py-slepc4py/package.py +++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py @@ -10,10 +10,14 @@ class PySlepc4py(PythonPackage): """This package provides Python bindings for the SLEPc package. """ - homepage = "https://bitbucket.org/slepc/slepc4py" - url = "https://bitbucket.org/slepc/slepc4py/get/3.10.0.tar.gz" - git = "https://bitbucket.org/slepc/slepc4py.git" + 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" + maintainers = ['dalcinl', 'joseeroman', 'balay'] + + version('3.12.0', sha256='d8c06953b7d00f529a9a7fd016dfa8efdf1d05995baeea7688d1d59611f424f7') + version('3.11.0', sha256='1e591056beee209f585cd781e5fe88174cd2a61215716a71d9eaaf9411b6a775') version('3.10.0', sha256='6494959f44280d3b80e73978d7a6bf656c9bb04bb3aa395c668c7a58948db1c6') version('3.9.0', sha256='84cab4216268c2cb7d01e7cdbb1204a3c3e13cdfcd7a78ea057095f96f68c3c0') version('3.8.0', sha256='988815b3650b69373be9abbf2355df512dfd200aa74b1785b50a484d6dfee971') @@ -22,6 +26,8 @@ class PySlepc4py(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-petsc4py', 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')) depends_on('py-petsc4py@3.10:3.10.99', when='@3.10:3.10.99', type=('build', 'run')) depends_on('py-petsc4py@3.9:3.9.99', when='@3.9:3.9.99', type=('build', 'run')) depends_on('py-petsc4py@3.8:3.8.99', when='@3.8:3.8.99', type=('build', 'run')) @@ -29,6 +35,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.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') depends_on('slepc@3.9:3.9.99', when='@3.9:3.9.99') depends_on('slepc@3.8:3.8.99', when='@3.8:3.8.99') diff --git a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py index 20a65a1b45..10d53a02a7 100644 --- a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py +++ b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py @@ -18,4 +18,4 @@ class PySnowballstemmer(PythonPackage): version('2.0.0', sha256='df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52') version('1.2.1', sha256='919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128') - depends_on('py-setuptools', type='build') + depends_on('py-setuptools', when='@2:', type='build') diff --git a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py index 0781ea59f3..34100e15d6 100644 --- a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py @@ -10,9 +10,9 @@ class PySphinxautomodapi(PythonPackage): """Provides Sphinx directives to autogenerate API documentation pages""" homepage = "https://sphinx-automodapi.readthedocs.io/en/latest/" - url = "https://github.com/astropy/sphinx-automodapi/archive/v0.9.tar.gz" + url = "https://pypi.io/packages/source/s/sphinx-automodapi/sphinx-automodapi-0.9.tar.gz" - version('0.9', sha256='017817812e9266319fdcfcc89ddfbe570935ca87a3bda62d61c8507cf1337aa8') + version('0.9', sha256='71a69e1a7ab8d849f416d7431db854d7b1925f749ba6345bc7d88f288892871d') depends_on('py-setuptools', type='build') depends_on('py-sphinx@1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py new file mode 100644 index 0000000000..5f8a68b2d6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.11', sha256='843753d8b5e989116378ab45ecccb368fb78dc56eaa1554ed25e4fbf22745f4e') + + depends_on('py-setuptools', type='build') + depends_on('py-sphinx@1.1:', type=('build', 'run')) + depends_on('py-requests@1.1:', 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 607a52393b..c8e48ec2a7 100644 --- a/var/spack/repos/builtin/packages/py-spyder/package.py +++ b/var/spack/repos/builtin/packages/py-spyder/package.py @@ -39,6 +39,6 @@ class PySpyder(PythonPackage): # to pick up webkit, but this is the easier solution (see #9207) depends_on('qt+webkit', type=('build', 'run')) depends_on('py-pickleshare', type=('build', 'run')) - depends_on('py-zmq', type=('build', 'run')) + depends_on('py-pyzmq', type=('build', 'run')) depends_on('py-chardet@2.0.0:', type=('build', 'run')) depends_on('py-numpydoc', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-statsmodels/package.py b/var/spack/repos/builtin/packages/py-statsmodels/package.py index 79f3ae49be..514aa63a7f 100644 --- a/var/spack/repos/builtin/packages/py-statsmodels/package.py +++ b/var/spack/repos/builtin/packages/py-statsmodels/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import glob class PyStatsmodels(PythonPackage): @@ -12,19 +13,36 @@ class PyStatsmodels(PythonPackage): homepage = "http://www.statsmodels.org" url = "https://pypi.io/packages/source/s/statsmodels/statsmodels-0.8.0.tar.gz" + 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')) + # according to http://www.statsmodels.org/dev/install.html earlier versions # might work. depends_on('py-setuptools@0.6c5:', type='build') - depends_on('py-numpy@1.7.0:', type=('build', 'run')) - depends_on('py-scipy@0.11:', type=('build', 'run')) - depends_on('py-pandas@0.12:', type=('build', 'run')) - depends_on('py-patsy@0.2.1:', type=('build', 'run')) - depends_on('py-cython@0.24:', type=('build', 'run')) - depends_on('py-matplotlib@1.3:', type='run', when='+plotting') - - # TODO: Add a 'test' deptype - # depends_on('py-nose', type='test') + + depends_on('py-numpy@1.7.0:', type=('build', 'run'), when='@0.8.0') + depends_on('py-pandas@0.12:', type=('build', 'run'), when='@0.8.0') + depends_on('py-patsy@0.2.1:', type=('build', 'run'), when='@0.8.0') + depends_on('py-scipy@0.11:', type=('build', 'run'), when='@0.8.0') + depends_on('py-matplotlib@1.3:', type=('build', 'run'), when='@0.8.0 +plotting') + + # 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', type=('build', 'run'), when='@0.10.1') + depends_on('py-pandas', type=('build', 'run'), when='@0.10.1') + depends_on('py-patsy', type=('build', 'run'), when='@0.10.1') + depends_on('py-scipy@0.5.1:', type=('build', 'run'), when='@0.10.1') + depends_on('py-matplotlib', type=('build', 'run'), when='@0.10.1 +plotting') + + depends_on('py-pytest', type='test') + + def test(self): + dirs = glob.glob("build/lib*") # There can be only one... + with working_dir(dirs[0]): + pytest = which('pytest') + pytest('statsmodels') diff --git a/var/spack/repos/builtin/packages/py-stestr/package.py b/var/spack/repos/builtin/packages/py-stestr/package.py new file mode 100644 index 0000000000..e7c328d6ee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-stestr/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.5.1', sha256='151479fdf2db9f5f492b5285f4696f2d38960639054835dbdcd4c0687122c0fd') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-subprocess32/package.py b/var/spack/repos/builtin/packages/py-subprocess32/package.py index 728be86016..84e07228fa 100644 --- a/var/spack/repos/builtin/packages/py-subprocess32/package.py +++ b/var/spack/repos/builtin/packages/py-subprocess32/package.py @@ -12,4 +12,7 @@ class PySubprocess32(PythonPackage): homepage = "https://pypi.python.org/pypi/subprocess32" url = "https://pypi.io/packages/source/s/subprocess32/subprocess32-3.2.7.tar.gz" + version('3.5.4', sha256='eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d') version('3.2.7', sha256='1e450a4a4c53bf197ad6402c564b9f7a53539385918ef8f12bdf430a61036590') + + depends_on('py-setuptools', type='build', when='@3.5.0:') diff --git a/var/spack/repos/builtin/packages/py-subrosa/package.py b/var/spack/repos/builtin/packages/py-subrosa/package.py new file mode 100644 index 0000000000..6293db4fcb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-subrosa/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PySubrosa(PythonPackage): + """Subrosa is a Python implementation of Shamir's Secret Sharing. An + algorithm for sharing a secret with a group of people without letting any + individual of the group know the secret.""" + + homepage = "https://github.com/DasIch/subrosa/" + url = "https://github.com/DasIch/subrosa/archive/0.1.0.tar.gz" + + version('0.1.0', sha256='dc8172119a338874afa0bdcba035224c965ff71d2cbceda70b1ed2377aa390ea') + + depends_on('py-setuptools', type='build') + depends_on('py-gf256', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-svgpathtools/package.py b/var/spack/repos/builtin/packages/py-svgpathtools/package.py new file mode 100644 index 0000000000..3255ac5cff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-svgpathtools/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('1.3.3', sha256='e4b3784ae41b725fbce6a33a8981210967b16d0b557cb5d98c0ed0c81f0f89b9') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-svgwrite', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-svgwrite/package.py b/var/spack/repos/builtin/packages/py-svgwrite/package.py new file mode 100644 index 0000000000..1abfc79ee5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-svgwrite/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('1.1.12', sha256='968c99f193f34f0fa7f0b3e82f49b93789c7c45cd89ce190480f16020d41ab79') + + depends_on('py-setuptools', type='build') + depends_on('py-pyparsing@2.0.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py index 3e3664f075..33953c4b9e 100644 --- a/var/spack/repos/builtin/packages/py-symengine/package.py +++ b/var/spack/repos/builtin/packages/py-symengine/package.py @@ -10,14 +10,14 @@ class PySymengine(PythonPackage): """Python wrappers for SymEngine, a symbolic manipulation library.""" homepage = "https://github.com/symengine/symengine.py" - url = "https://github.com/symengine/symengine.py/archive/v0.2.0.tar.gz" + url = "https://pypi.io/packages/source/s/symengine/symengine-0.2.0.tar.gz" git = "https://github.com/symengine/symengine.py.git" version('develop', branch='master') - version('0.2.0', sha256='8f6468137baa7f799e047dd0b9149c4017d8d32e755f1e0329209680879c1f8f') + version('0.2.0', sha256='78a14aea7aad5e7cbfb5cabe141581f9bba30e3c319690e5db8ad99fdf2d8885') # Build dependencies - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-cython@0.19.1:', type='build') depends_on('cmake@2.8.7:', type='build') diff --git a/var/spack/repos/builtin/packages/py-tables/package.py b/var/spack/repos/builtin/packages/py-tables/package.py index 2fcb494c6c..0272087006 100644 --- a/var/spack/repos/builtin/packages/py-tables/package.py +++ b/var/spack/repos/builtin/packages/py-tables/package.py @@ -11,18 +11,18 @@ class PyTables(PythonPackage): efficiently and easily cope with extremely large amounts of data.""" homepage = "http://www.pytables.org/" - url = "https://github.com/PyTables/PyTables/archive/v3.6.0.tar.gz" + url = "https://pypi.io/packages/source/t/tables/tables-3.6.1.tar.gz" import_modules = [ 'tables', 'tables.misc', 'tables.nodes', 'tables.scripts' ] - version('3.6.0', sha256='2dcd077f42b195f48aa00f5a720b79189ea92fba0d16ad35e2881e403ba6914e') - version('3.5.2', sha256='e4fc6f1194f02a8b10ff923e77364fb70710592f620d7de35f4d4e064dc70e91') - version('3.4.4', sha256='c9682c0f35d8175e12bbd38d925bdb606d47b7c8e358ba056a9dbf3b1f183114') - version('3.3.0', sha256='dceb15fef556a2775121bcc695561df4ff0e09248e0ce3a2d58f5244a9f61421') - version('3.2.2', sha256='2626e874caa6b3fcf2bfc28b9dd6a40a3f859c72e19ce0764a60a6d77e350008', - url='https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz') + version('3.6.1', sha256='49a972b8a7c27a8a173aeb05f67acb45fe608b64cd8e9fa667c0962a60b71b49') + version('3.6.0', sha256='db3488214864fb313a611fca68bf1c9019afe4e7877be54d0e61c84416603d4d') + version('3.5.2', sha256='b220e32262bab320aa41d33125a7851ff898be97c0de30b456247508e2cc33c2') + version('3.4.4', sha256='bdc5c073712af2a43babd139c4855fc99496bb2c3f3f5d1b4770a985e6f9ce29') + version('3.3.0', sha256='8383ccf02e041a5d55494a09fc5514140b4653055a2732c981b5fd0f7408822c') + version('3.2.2', sha256='3564b351a71ec1737b503b001eb7ceae1f65d5d6e3ffe1ea75aafba10f37fa84') variant('zlib', default=True, description='Support for zlib compression') variant('bzip2', default=False, description='Support for bzip2 compression') diff --git a/var/spack/repos/builtin/packages/py-tabulate/package.py b/var/spack/repos/builtin/packages/py-tabulate/package.py index 17fc9e34f5..46a29f4904 100644 --- a/var/spack/repos/builtin/packages/py-tabulate/package.py +++ b/var/spack/repos/builtin/packages/py-tabulate/package.py @@ -10,8 +10,10 @@ class PyTabulate(PythonPackage): """Pretty-print tabular data""" homepage = "https://bitbucket.org/astanin/python-tabulate" - url = "https://pypi.io/packages/source/t/tabulate/tabulate-0.7.7.tar.gz" + url = "https://pypi.io/packages/source/t/tabulate/tabulate-0.8.6.tar.gz" + version('0.8.6', sha256='5470cc6687a091c7042cee89b2946d9235fe9f6d49c193a4ae2ac7bf386737c8') + version('0.8.3', sha256='8af07a39377cee1103a5c8b3330a421c2d99b9141e9cc5ddd2e3263fea416943') version('0.7.7', sha256='83a0b8e17c09f012090a50e1e97ae897300a72b35e0c86c0b53d3bd2ae86d8c6') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tap-py/package.py index 1c97e7a763..c0ece59fd6 100644 --- a/var/spack/repos/builtin/packages/py-tappy/package.py +++ b/var/spack/repos/builtin/packages/py-tap-py/package.py @@ -6,10 +6,10 @@ from spack import * -class PyTappy(PythonPackage): +class PyTapPy(PythonPackage): """Python TAP interface module for unit tests""" + homepage = "https://github.com/mblayman/tappy" - # base https://pypi.python.org/pypi/cffi url = "https://pypi.io/packages/source/t/tap.py/tap.py-1.6.tar.gz" version('1.6', sha256='3ee315567cd1cf444501c405b7f7146ffdb2e630bac58d0840d378a3b9a0dbe4') diff --git a/var/spack/repos/builtin/packages/py-tatsu/package.py b/var/spack/repos/builtin/packages/py-tatsu/package.py new file mode 100644 index 0000000000..8aa0d0cf4a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tatsu/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyTatsu(PythonPackage): + """TatSu (the successor to Grako) is a tool that takes grammars in + a variation of EBNF as input, and outputs memoizing (Packrat) PEG + parsers in Python.""" + + homepage = "https://github.com/neogeny/tatsu" + url = "https://pypi.io/packages/source/T/TatSu/TatSu-4.4.0.zip" + + version('4.4.0', sha256='80713413473a009f2081148d0f494884cabaf9d6866b71f2a68a92b6442f343d') + + variant('future_regex', default=True, description='Use regex implementation') + + depends_on('python@3.6:', type=('build', 'run'), when='@4.5:') + 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-tempora/package.py b/var/spack/repos/builtin/packages/py-tempora/package.py new file mode 100644 index 0000000000..ccdbf8a546 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tempora/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.14.1', sha256='cb60b1d2b1664104e307f8e5269d7f4acdb077c82e35cd57246ae14a3427d2d6') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm@1.15.0:', type='build') + depends_on('py-six', type=('build', 'run')) + depends_on('py-pytz', type=('build', 'run')) + depends_on('py-jaraco-functools@1.20:', type=('build', 'run')) + depends_on('python@2.7:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py b/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py new file mode 100644 index 0000000000..26b4a789d0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py @@ -0,0 +1,47 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyTensorflowEstimator(Package): + """TensorFlow Estimator is a high-level TensorFlow API that greatly + simplifies machine learning programming.""" + + homepage = "https://github.com/tensorflow/estimator" + url = "https://github.com/tensorflow/estimator/archive/v1.13.0.tar.gz" + + version('2.0.0', sha256='6f4bdf1ab219e1f1cba25d2af097dc820f56479f12a839853d97422fe4d8b465') + version('1.13.0', sha256='a787b150ff436636df723e507019c72a5d6486cfe506886279d380166953f12f', preferred=True) + + extends('python') + + depends_on('py-tensorflow@2.0.0', when='@2.0.0') + depends_on('py-tensorflow@1.13.1', when='@1.13.0') + + depends_on('bazel@0.19.0', type='build') + depends_on('py-pip', 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 + + # bazel uses system PYTHONPATH instead of spack paths + bazel('--action_env', 'PYTHONPATH={0}'.format(env['PYTHONPATH']), + '//tensorflow_estimator/tools/pip_package:build_pip_package') + + build_pip_package = Executable(join_path( + 'bazel-bin/tensorflow_estimator/tools', + 'pip_package/build_pip_package')) + build_pip_package(tmp_path) + + pip = Executable('pip') + pip('install', '--prefix={0}'.format(prefix), + '--find-links={0}'.format(tmp_path), 'tensorflow-estimator') diff --git a/var/spack/repos/builtin/packages/py-tensorflow/crosstool.patch b/var/spack/repos/builtin/packages/py-tensorflow/crosstool.patch new file mode 100644 index 0000000000..3583211cab --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow/crosstool.patch @@ -0,0 +1,21 @@ ++++ tensorflow-1.0.0-rc2/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl 2017-02-15 20:40:47.633496842 +0100 +--- tensorflow-1.0.0-rc2/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl 2017-02-08 19:32:14.000000000 +0100 +@@ -46,13 +46,13 @@ import sys + import pipes + + # Template values set by cuda_autoconf. +-CPU_COMPILER = ('%{cpu_compiler}') +-GCC_HOST_COMPILER_PATH = ('%{gcc_host_compiler_path}') ++CPU_COMPILER = os.environ['SPACK_CC'] ++GCC_HOST_COMPILER_PATH = CPU_COMPILER + + CURRENT_DIR = os.path.dirname(sys.argv[0]) + NVCC_PATH = CURRENT_DIR + '/../../../cuda/bin/nvcc' +-LLVM_HOST_COMPILER_PATH = ('/usr/bin/gcc') +-PREFIX_DIR = os.path.dirname(GCC_HOST_COMPILER_PATH) ++LLVM_HOST_COMPILER_PATH = os.environ['SPACK_CC'] ++PREFIX_DIR = os.path.dirname(os.environ['SPACK_CC']) + NVCC_VERSION = '%{cuda_version}' + + def Log(s): + diff --git a/var/spack/repos/builtin/packages/py-tensorflow/http_archive.patch b/var/spack/repos/builtin/packages/py-tensorflow/http_archive.patch new file mode 100644 index 0000000000..ea919567c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow/http_archive.patch @@ -0,0 +1,57 @@ +diff --git a/WORKSPACE b/WORKSPACE +index 1796182..84b5eab 100644 +--- a/WORKSPACE ++++ b/WORKSPACE +@@ -1,5 +1,7 @@ + workspace(name = "org_tensorflow") + ++load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") ++ + http_archive( + name = "io_bazel_rules_closure", + sha256 = "a38539c5b5c358548e75b44141b4ab637bba7c4dc02b46b1f62a96d6433f56ae", +@@ -30,7 +32,7 @@ android_workspace() + # Please add all new TensorFlow dependencies in workspace.bzl. + tf_workspace() + +-new_http_archive( ++http_archive( + name = "inception_v1", + build_file = "models.BUILD", + sha256 = "7efe12a8363f09bc24d7b7a450304a15655a57a7751929b2c1593a71183bb105", +@@ -40,7 +42,7 @@ new_http_archive( + ], + ) + +-new_http_archive( ++http_archive( + name = "mobile_ssd", + build_file = "models.BUILD", + sha256 = "bddd81ea5c80a97adfac1c9f770e6f55cbafd7cce4d3bbe15fbeb041e6b8f3e8", +@@ -50,7 +52,7 @@ new_http_archive( + ], + ) + +-new_http_archive( ++http_archive( + name = "mobile_multibox", + build_file = "models.BUILD", + sha256 = "859edcddf84dddb974c36c36cfc1f74555148e9c9213dedacf1d6b613ad52b96", +@@ -60,7 +62,7 @@ new_http_archive( + ], + ) + +-new_http_archive( ++http_archive( + name = "stylize", + build_file = "models.BUILD", + sha256 = "3d374a730aef330424a356a8d4f04d8a54277c425e274ecb7d9c83aa912c6bfa", +@@ -70,7 +72,7 @@ new_http_archive( + ], + ) + +-new_http_archive( ++http_archive( + name = "speech_commands", + build_file = "models.BUILD", + sha256 = "c3ec4fea3158eb111f1d932336351edfe8bd515bb6e87aad4f25dbad0a600d0c", diff --git a/var/spack/repos/builtin/packages/py-tensorflow/io_bazel_rules_docker2.patch b/var/spack/repos/builtin/packages/py-tensorflow/io_bazel_rules_docker2.patch new file mode 100644 index 0000000000..5b341e69f1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow/io_bazel_rules_docker2.patch @@ -0,0 +1,18 @@ +diff --git a/WORKSPACE b/WORKSPACE +index 74ea14d..0b09a6e 100644 +--- a/WORKSPACE ++++ b/WORKSPACE +@@ -34,6 +34,13 @@ load( + + bazel_toolchains_repositories() + ++http_archive( ++ name = "io_bazel_rules_docker", ++ sha256 = "413bb1ec0895a8d3249a01edf24b82fd06af3c8633c9fb833a0cb1d4b234d46d", ++ strip_prefix = "rules_docker-0.12.0", ++ urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.12.0/rules_docker-v0.12.0.tar.gz"], ++) ++ + load( + "@io_bazel_rules_docker//repositories:repositories.bzl", + container_repositories = "repositories", diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py new file mode 100644 index 0000000000..4b10b89071 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -0,0 +1,711 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import glob +import os +import sys + + +class PyTensorflow(Package, CudaPackage): + """TensorFlow is an Open Source Software Library for Machine Intelligence + """ + + homepage = "https://www.tensorflow.org" + url = "https://github.com/tensorflow/tensorflow/archive/v2.0.0.tar.gz" + + maintainers = ['adamjstewart'] + import_modules = ['tensorflow'] + + version('2.1.0-rc0', sha256='674cc90223f1d6b7fa2969e82636a630ce453e48a9dec39d73d6dba2fd3fd243') + version('2.0.0', sha256='49b5f0495cd681cbcb5296a4476853d4aea19a43bdd9f179c928a977308a0617', preferred=True) + version('1.15.0', sha256='a5d49c00a175a61da7431a9b289747d62339be9cf37600330ad63b611f7f5dc9') + version('1.14.0', sha256='aa2a6a1daafa3af66807cfe0bc77bfe1144a9a53df9a96bab52e3e575b3047ed') + version('1.13.2', sha256='abe3bf0c47845a628b7df4c57646f41a10ee70f914f1b018a5c761be75e1f1a9') + version('1.13.1', sha256='7cd19978e6bc7edc2c847bce19f95515a742b34ea5e28e4389dade35348f58ed') + version('1.12.3', sha256='b9e5488e84f4a133ed20b18605f0cd6301f11d356bd959712db4e7b9301d0462') + version('1.12.2', sha256='90ffc7cf1df5e4b8385c9108db18d5d5034ec423547c0e167d44f5746a20d06b') + version('1.12.1', sha256='7b559a3ae56322b7a7e4307f45f9fce96022c533a98b32c18bfdff8c5838271d') + version('1.12.0', sha256='3c87b81e37d4ed7f3da6200474fa5e656ffd20d8811068572f43610cae97ca92') + version('1.11.0', sha256='f49ce3f1d04cee854bc9f74fa9696991140b34a2e2447f35f01391b72c8bfa9f') + version('1.10.1', sha256='83092d709800e2d93d4d4b1bcacaeb74f2f328962ed764cb35bbee20402879c6') + version('1.10.0', sha256='ee9cb98d9e0d8106f2f4ed52a38fe89399324af303e1401567e5b64a9f86744b') + version('1.9.0', sha256='ffc3151b06823d57b4a408261ba8efe53601563dfe93af0866751d4f6ca5068c') + version('1.8.0', sha256='47646952590fd213b747247e6870d89bb4a368a95ae3561513d6c76e44f92a75') + version('1.7.1', sha256='3147f8c60d1f30da23a831bcf732e74b935dcee7c62e4b8b85f0f093030b52c8') + version('1.7.0', sha256='c676a96fc8700722816b2b98c85578b2f99fac7a7b2484c9c7f0641484f8d50d') + version('1.6.0', sha256='03cf1423446abbead6bd8c3cf6e6affa7d99746cd119691b012aac9a1795f4fb') + version('1.5.1', sha256='cab2157783905e12a7a3baae3264edfb739dd92d5658019a131fff4b14190240') + version('1.5.0', sha256='0642781c3a3a8c2c4834b91b86aec385f0b2ada7d721571458079478cc5b29c8') + version('1.4.1', sha256='1f75e463318419a1b3ae076d5a92697c1d3a85e8377c946a5510b651ff5c0d60') + version('1.4.0', sha256='8a0ad8d61f8f6c0282c548661994a5ab83ac531bac496c3041dedc1ab021107b') + version('1.3.1', sha256='ded509c209f8a1d390df8a2f44be5b5c29963172b0e0f095304efb59765d0523') + version('1.3.0', sha256='e1af1bb767b57c3416de0d43a5f74d174c42b85231dffd36f3630173534d4307') + version('1.2.1', sha256='f2baf09b1a9a0500907b4d5cb5473070b3ecede06ed6e8d1096873c91922fb9e') + version('1.2.0', sha256='03dbf7548d1fc1c11ed58da5fa68616f795c819f868f43478cbcaa26abed374f') + version('1.1.0', sha256='aad4470f52fa59f54de7b9a2da727429e6755d91d756f245f952698c42a60027') + version('1.0.1', sha256='deea3c65e0703da96d9c3f1162e464c51d37659dd129396af134e9e8f1ea8c05') + version('1.0.0', sha256='db8b3b8f4134b7c9c1b4165492ad5d5bb78889fcd99ffdffc325e97da3e8c677') + version('0.12.0', sha256='13a1d4e98c82eae7e26fe75384de1517d6126f63ba5d302392ec02ac3ae4b1b9') + version('0.11.0', sha256='24242ff696234bb1e58d09d45169b148525ccb706f980a4a92ddd3b82c7546dc') + version('0.10.0', sha256='f32df04e8f7186aaf6723fc5396733b2f6c2fd6fe4a53a54a68b80f3ec855680') + version('0.9.0', sha256='3128c396af19518c642d3e590212291e1d93c5b047472a10cf3245b53adac9c9') + version('0.8.0', sha256='f201ba7fb7609a6416968d4e1920d87d67be693b5bc7d34b6b4a79860a9a8a4e') + version('0.7.1', sha256='ef34121432f7a522cf9f99a56cdd86e370cc5fa3ee31255ca7cb17f36b8dfc0d') + version('0.7.0', sha256='43dd3051f947aa66e6fc09dac2f86a2efe2e019736bbd091c138544b86d717ce') + version('0.6.0', sha256='f86ace45e99053b09749cd55ab79c57274d8c7460ae763c5e808d81ffbc3b657') + + variant('mkl', default=False, description='Build with MKL support') + variant('jemalloc', default=False, description='Build with jemalloc as malloc support') + # FIXME: ~gcp does not build for 2.0.0 + # See https://github.com/tensorflow/tensorflow/issues/34878 + variant('gcp', default=True, description='Build with Google Cloud Platform support') + variant('hdfs', default=False, description='Build with Hadoop File System support') + variant('aws', default=False, description='Build with Amazon AWS Platform support') + variant('kafka', default=False, description='Build with Apache Kafka Platform support') + variant('ignite', default=False, description='Build with Apache Ignite support') + variant('xla', default=False, description='Build with XLA JIT support') + variant('gdr', default=False, description='Build with GDR support') + variant('verbs', default=False, description='Build with libverbs support') + variant('ngraph', default=False, description='Build with Intel nGraph support') + variant('opencl', default=False, description='Build with OpenCL SYCL support') + variant('computecpp', default=False, description='Build with ComputeCPP support') + variant('rocm', default=False, description='Build with ROCm support') + variant('tensorrt', default=False, description='Build with TensorRT support') + variant('cuda', default=sys.platform != 'darwin', description='Build with CUDA support') + variant('nccl', default=sys.platform.startswith('linux'), description='Enable NVIDIA NCCL support') + variant('mpi', default=False, description='Build with MPI support') + variant('android', default=False, description='Configure for Android builds') + variant('ios', default=False, description='Build with iOS support (macOS only)') + variant('monolithic', default=False, description='Static monolithic build') + variant('numa', default=False, description='Build with NUMA support') + variant('dynamic_kernels', default=False, description='Build kernels into separate shared objects') + + extends('python') + + # 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 + # bazel doesn't seem to work, so for now we force them to use min version. + # Need to investigate further. + + # See _TF_MIN_BAZEL_VERSION and _TF_MAX_BAZEL_VERSION in configure.py + depends_on('bazel@0.27.1:0.29.1', type='build', when='@2.1:') + depends_on('bazel@0.24.1:0.26.1', type='build', when='@1.15:2.0') + # See call to check_bazel_version in configure.py + depends_on('bazel@0.24.1:0.25.2', type='build', when='@1.14.0') + depends_on('bazel@0.19.0:0.21.0', type='build', when='@1.13.0:1.13.2') + depends_on('bazel@0.24.1:0.25.0', type='build', when='@1.12.1') + depends_on('bazel@0.15.0', type='build', when='@1.10:1.12.0,1.12.2:1.12.3') + depends_on('bazel@0.10.0', type='build', when='@1.7:1.9') + # See call to check_version in tensorflow/workspace.bzl + depends_on('bazel@0.5.4', type='build', when='@1.4:1.6') + # See MIN_BAZEL_VERSION in configure + depends_on('bazel@0.4.5', type='build', when='@1.2:1.3') + # See call to check_version in WORKSPACE + depends_on('bazel@0.4.2', type='build', when='@1.0:1.1') + depends_on('bazel@0.3.2', type='build', when='@0.12.0:0.12.1') + depends_on('bazel@0.3.0', type='build', when='@0.11.0') + depends_on('bazel@0.2.0', type='build', when='@0.9:0.10') + depends_on('bazel@0.1.4', type='build', when='@0.7:0.8') + depends_on('bazel@0.1.1', type='build', when='@0.5:0.6') + + depends_on('swig', type='build') + depends_on('py-setuptools', type='build') + 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-astor@0.6.0:', type=('build', 'run'), when='@1.6:') + 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') + depends_on('py-enum34@1.1.6:', type=('build', 'run'), when='@1.5: ^python@:3.3') + depends_on('py-enum34@1.1.6:', type=('build', 'run'), when='@1.4.0:1.4.1') + depends_on('py-gast@0.2.2', type=('build', 'run'), when='@1.15:') + depends_on('py-gast@0.2.0:', type=('build', 'run'), when='@1.6:') + depends_on('py-google-pasta@0.1.6:', type=('build', 'run'), when='@1.14:') + depends_on('py-google-pasta@0.1.2:', type=('build', 'run'), when='@1.12.1') + depends_on('py-keras-applications@1.0.8:', type=('build', 'run'), when='@1.15:') + depends_on('py-keras-applications@1.0.6:', type=('build', 'run'), when='@1.12:') + depends_on('py-keras-applications@1.0.5:', type=('build', 'run'), when='@1.11:') + depends_on('py-keras-preprocessing@1.1.0:', type=('build', 'run'), when='@2.1:') + depends_on('py-keras-preprocessing@1.0.5:', type=('build', 'run'), when='@1.12:') + depends_on('py-keras-preprocessing@1.0.3:', type=('build', 'run'), when='@1.11:') + depends_on('py-numpy@1.16.0:1.999', type=('build', 'run'), when='@1.13.2,1.15:') + depends_on('py-numpy@1.14.5:1.999', type=('build', 'run'), when='@1.12.1,1.14.0') + 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.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-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.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') + # 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-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.10.0:', type=('build', 'run'), when='@:2.0') + depends_on('py-grpcio@1.8.6:', type=('build', 'run'), when='@1.6:1.7') + 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') + + # 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('cudnn', when='+cuda') + depends_on('cudnn@6.5', when='@0.5:0.6 +cuda') + # depends_on('tensorrt', when='+tensorrt') + depends_on('nccl', when='+nccl') + depends_on('mpi', when='+mpi') + # depends_on('android-ndk@10:18', when='+android') + # depends_on('android-sdk', when='+android') + + # Check configure and configure.py to see when these variants are supported + conflicts('+mkl', when='@:1.0') + conflicts('+mkl', when='platform=darwin', msg='Darwin is not yet supported') + conflicts('+jemalloc', when='@:0') + conflicts('+jemalloc', when='platform=darwin', msg='Currently jemalloc is only support on Linux platform') + conflicts('+jemalloc', when='platform=cray', msg='Currently jemalloc is only support on Linux platform') + conflicts('+jemalloc', when='platform=bgq', msg='Currently jemalloc is only support on Linux platform') + conflicts('+gcp', when='@:0.8') + conflicts('+hdfs', when='@:0.10') + conflicts('+aws', when='@:1.3') + conflicts('+kafka', when='@:1.5') + conflicts('+ignite', when='@:1.11') + conflicts('+xla', when='@:0') + conflicts('+gdr', when='@:1.3') + conflicts('+verbs', when='@:1.1') + conflicts('+ngraph', when='@:1.10') + conflicts('+opencl', when='@:0.11') + conflicts('+computecpp', when='@:0.11') + conflicts('+computecpp', when='~opencl') + conflicts('+rocm', when='@:1.11') + conflicts('+cuda', when='platform=darwin', msg='There is no GPU support for macOS') + conflicts('cuda_arch=none', when='+cuda', msg='Must specify CUDA compute capabilities of your GPU, see https://developer.nvidia.com/cuda-gpus') + conflicts('cuda_arch=20', when='@1.12.1,1.14:', msg='TensorFlow only supports compute capabilities >= 3.5') + conflicts('cuda_arch=30', when='@1.12.1,1.14:', msg='TensorFlow only supports compute capabilities >= 3.5') + conflicts('cuda_arch=32', when='@1.12.1,1.14:', msg='TensorFlow only supports compute capabilities >= 3.5') + conflicts('cuda_arch=20', when='@1.4:1.12.0,1.12.2:1.12.3', msg='Only compute capabilities 3.0 or higher are supported') + conflicts('+tensorrt', when='@:1.5') + conflicts('+tensorrt', when='~cuda') + conflicts('+tensorrt', when='platform=darwin', msg='Currently TensorRT is only supported on Linux platform') + conflicts('+tensorrt', when='platform=cray', msg='Currently TensorRT is only supported on Linux platform') + conflicts('+tensorrt', when='platform=bgq', msg='Currently TensorRT is only supported on Linux platform') + conflicts('+nccl', when='@:1.7') + conflicts('+nccl', when='~cuda') + conflicts('+nccl', when='platform=darwin', msg='Currently NCCL is only supported on Linux platform') + conflicts('+nccl', when='platform=cray', msg='Currently NCCL is only supported on Linux platform') + conflicts('+nccl', when='platform=bgq', msg='Currently NCCL is only supported on Linux platform') + conflicts('+mpi', when='@:1.2') + conflicts('+android', when='@:1.4') + conflicts('+ios', when='@:1.12.0,1.12.2:1.13') + conflicts('+ios', when='platform=linux', msg='iOS support only available on macOS') + conflicts('+ios', when='platform=cray', msg='iOS support only available on macOS') + conflicts('+ios', when='platform=bgq', msg='iOS support only available on macOS') + conflicts('+monolithic', when='@:1.3') + conflicts('+numa', when='@:1.12.0,1.12.2:1.13') + conflicts('+dynamic_kernels', when='@:1.12.0,1.12.2:1.12.3') + + # TODO: why is this needed? + patch('url-zlib.patch', when='@0.10.0') + # TODO: why is this needed? + patch('crosstool.patch', when='@0.10.0+cuda') + # Avoid build error: "no such package '@io_bazel_rules_docker..." + patch('io_bazel_rules_docker2.patch', when='@1.15.0,2.0.0') + # Avoide build error: "name 'new_http_archive' is not defined" + patch('http_archive.patch', when='@1.12.3') + + phases = ['configure', 'build', 'install'] + + # https://www.tensorflow.org/install/source + def setup_build_environment(self, env): + spec = self.spec + + # Please specify the location of python + env.set('PYTHON_BIN_PATH', spec['python'].command.path) + + # Please input the desired Python library path to use + env.set('PYTHON_LIB_PATH', site_packages_dir) + + # Ensure swig is in PATH or set SWIG_PATH + env.set('SWIG_PATH', spec['swig'].prefix.bin.swig) + + # Do you wish to build TensorFlow with MKL support? + if '+mkl' in spec: + env.set('TF_NEED_MKL', '1') + + # Do you wish to download MKL LIB from the web? + env.set('TF_DOWNLOAD_MKL', '0') + + # Please specify the location where MKL is installed + env.set('MKL_INSTALL_PATH', spec['mkl'].prefix) + else: + env.set('TF_NEED_MKL', '0') + + # Do you wish to build TensorFlow with jemalloc as malloc support? + if '+jemalloc' in spec: + env.set('TF_NEED_JEMALLOC', '1') + else: + env.set('TF_NEED_JEMALLOC', '0') + + # Do you wish to build TensorFlow with Google Cloud Platform support? + if '+gcp' in spec: + env.set('TF_NEED_GCP', '1') + else: + env.set('TF_NEED_GCP', '0') + + # Do you wish to build TensorFlow with Hadoop File System support? + if '+hdfs' in spec: + env.set('TF_NEED_HDFS', '1') + else: + env.set('TF_NEED_HDFS', '0') + + # Do you wish to build TensorFlow with Amazon AWS Platform support? + if '+aws' in spec: + env.set('TF_NEED_AWS', '1') + env.set('TF_NEED_S3', '1') + else: + env.set('TF_NEED_AWS', '0') + env.set('TF_NEED_S3', '0') + + # Do you wish to build TensorFlow with Apache Kafka Platform support? + if '+kafka' in spec: + env.set('TF_NEED_KAFKA', '1') + else: + env.set('TF_NEED_KAFKA', '0') + + # Do you wish to build TensorFlow with Apache Ignite support? + if '+ignite' in spec: + env.set('TF_NEED_IGNITE', '1') + else: + env.set('TF_NEED_IGNITE', '0') + + # Do you wish to build TensorFlow with XLA JIT support? + if '+xla' in spec: + env.set('TF_ENABLE_XLA', '1') + else: + env.set('TF_ENABLE_XLA', '0') + + # Do you wish to build TensorFlow with GDR support? + if '+gdr' in spec: + env.set('TF_NEED_GDR', '1') + else: + env.set('TF_NEED_GDR', '0') + + # Do you wish to build TensorFlow with VERBS support? + if '+verbs' in spec: + env.set('TF_NEED_VERBS', '1') + else: + env.set('TF_NEED_VERBS', '0') + + # Do you wish to build TensorFlow with nGraph support? + if '+ngraph' in spec: + env.set('TF_NEED_NGRAPH', '1') + else: + env.set('TF_NEED_NGRAPH', '0') + + # Do you wish to build TensorFlow with OpenCL SYCL support? + if '+opencl' in spec: + env.set('TF_NEED_OPENCL_SYCL', '1') + env.set('TF_NEED_OPENCL', '1') + + # Please specify which C++ compiler should be used as the host + # C++ compiler + env.set('HOST_CXX_COMPILER', spack_cxx) + + # Please specify which C compiler should be used as the host + # C compiler + env.set('HOST_C_COMPILER', spack_cc) + + # Do you wish to build TensorFlow with ComputeCPP support? + if '+computecpp' in spec: + env.set('TF_NEED_COMPUTECPP', '1') + + # Please specify the location where ComputeCpp is installed + env.set('COMPUTECPP_TOOLKIT_PATH', spec['computecpp'].prefix) + else: + env.set('TF_NEED_COMPUTECPP', '0') + + # Please specify the location of the triSYCL include directory + env.set('TRISYCL_INCLUDE_DIR', spec['trisycl'].prefix.include) + else: + env.set('TF_NEED_OPENCL_SYCL', '0') + env.set('TF_NEED_OPENCL', '0') + + # Do you wish to build TensorFlow with ROCm support? + if '+rocm' in spec: + env.set('TF_NEED_ROCM', '1') + else: + env.set('TF_NEED_ROCM', '0') + + # Do you wish to build TensorFlow with CUDA support? + if '+cuda' in spec: + env.set('TF_NEED_CUDA', '1') + + # Do you want to use clang as CUDA compiler? + env.set('TF_CUDA_CLANG', '0') + + # Please specify which gcc nvcc should use as the host compiler + env.set('GCC_HOST_COMPILER_PATH', spack_cc) + + cuda_paths = [ + spec['cuda'].prefix, + spec['cudnn'].prefix, + ] + + # Do you wish to build TensorFlow with TensorRT support? + if '+tensorrt' in spec: + env.set('TF_NEED_TENSORRT', '1') + + cuda_paths.append(spec['tensorrt'].prefix) + + # Please specify the TensorRT version you want to use + env.set('TF_TENSORRT_VERSION', + spec['tensorrt'].version.up_to(1)) + + # Please specify the location where TensorRT is installed + env.set('TENSORRT_INSTALL_PATH', spec['tensorrt'].prefix) + else: + env.set('TF_NEED_TENSORRT', '0') + env.unset('TF_TENSORRT_VERSION') + + # Please specify the CUDA SDK version you want to use + env.set('TF_CUDA_VERSION', spec['cuda'].version.up_to(2)) + + # Please specify the cuDNN version you want to use + env.set('TF_CUDNN_VERSION', spec['cudnn'].version.up_to(1)) + + if '+nccl' in spec: + cuda_paths.append(spec['nccl'].prefix) + + # Please specify the locally installed NCCL version to use + env.set('TF_NCCL_VERSION', spec['nccl'].version.up_to(1)) + + # Please specify the location where NCCL is installed + env.set('NCCL_INSTALL_PATH', spec['nccl'].prefix) + env.set('NCCL_HDR_PATH', spec['nccl'].prefix.include) + else: + env.unset('TF_NCCL_VERSION') + + # Please specify the comma-separated list of base paths to + # look for CUDA libraries and headers + env.set('TF_CUDA_PATHS', ','.join(cuda_paths)) + + # Please specify the location where CUDA toolkit is installed + env.set('CUDA_TOOLKIT_PATH', spec['cuda'].prefix) + + # Please specify the location where CUDNN library is installed + env.set('CUDNN_INSTALL_PATH', spec['cudnn'].prefix) + + # Please specify a list of comma-separated CUDA compute + # capabilities you want to build with. You can find the compute + # capability of your device at: + # https://developer.nvidia.com/cuda-gpus. + # Please note that each additional compute capability significantly + # increases your build time and binary size, and that TensorFlow + # only supports compute capabilities >= 3.5 + capabilities = ','.join('{0:.1f}'.format( + float(i) / 10.0) for i in spec.variants['cuda_arch'].value) + env.set('TF_CUDA_COMPUTE_CAPABILITIES', capabilities) + else: + env.set('TF_NEED_CUDA', '0') + + # Do you wish to download a fresh release of clang? (Experimental) + env.set('TF_DOWNLOAD_CLANG', '0') + + # Do you wish to build TensorFlow with MPI support? + if '+mpi' in spec: + env.set('TF_NEED_MPI', '1') + + # Please specify the MPI toolkit folder + env.set('MPI_HOME', spec['mpi'].prefix) + else: + env.set('TF_NEED_MPI', '0') + env.unset('MPI_HOME') + + # Please specify optimization flags to use during compilation when + # bazel option '--config=opt' is specified + env.set('CC_OPT_FLAGS', spec.target.optimization_flags( + spec.compiler.name, spec.compiler.version)) + + # Would you like to interactively configure ./WORKSPACE for + # Android builds? + if '+android' in spec: + env.set('TF_SET_ANDROID_WORKSPACE', '1') + + # Please specify the home path of the Android NDK to use + env.set('ANDROID_NDK_HOME', spec['android-ndk'].prefix) + env.set('ANDROID_NDK_API_LEVEL', spec['android-ndk'].version) + + # Please specify the home path of the Android SDK to use + env.set('ANDROID_SDK_HOME', spec['android-sdk'].prefix) + env.set('ANDROID_SDK_API_LEVEL', spec['android-sdk'].version) + + # Please specify the Android SDK API level to use + env.set('ANDROID_API_LEVEL', spec['android-sdk'].version) + + # Please specify an Android build tools version to use + env.set('ANDROID_BUILD_TOOLS_VERSION', spec['android-sdk'].version) + else: + env.set('TF_SET_ANDROID_WORKSPACE', '0') + + # Do you wish to build TensorFlow with iOS support? + if '+ios' in spec: + env.set('TF_CONFIGURE_IOS', '1') + else: + env.set('TF_CONFIGURE_IOS', '0') + + # set tmpdir to a non-NFS filesystem + # (because bazel uses ~/.cache/bazel) + # TODO: This should be checked for non-nfsy filesystem, but the current + # best idea for it is to check + # subprocess.call([ + # 'stat', '--file-system', '--format=%T', tmp_path + # ]) + # 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) + env.set('TEST_TMPDIR', tmp_path) + + def configure(self, spec, prefix): + # NOTE: configure script is interactive. If you set the appropriate + # environment variables, this interactivity is skipped. If you don't, + # Spack hangs during the configure phase. Use `spack build-env` to + # determine which environment variables must be set for a particular + # version. + configure() + + @run_after('configure') + def post_configure_fixes(self): + spec = self.spec + if spec.satisfies('@1.5.0: ~android'): + # env variable is somehow ignored -> brute force + # TODO: find a better solution + filter_file(r'if workspace_has_any_android_rule\(\)', + r'if True', + 'configure.py') + + # version dependent fixes + if spec.satisfies('@1.3.0:1.5.0'): + # checksum for protobuf that bazel downloads (@github) changed + filter_file(r'sha256 = "6d43b9d223ce09e5d4ce8b0060cb8a7513577a35a64c7e3dad10f0703bf3ad93"', + r'sha256 = "e5fdeee6b28cf6c38d61243adff06628baa434a22b5ebb7432d2a7fbabbdb13d"', + 'tensorflow/workspace.bzl') + # starting with tensorflow 1.3, tensorboard becomes a dependency + # (...but is not really needed? Tensorboard should depend on + # tensorflow, not the other way!) + # -> remove from list of required packages + filter_file(r"'tensorflow-tensorboard", + r"#'tensorflow-tensorboard", + 'tensorflow/tools/pip_package/setup.py') + if spec.satisfies('@1.5.0: ~gcp'): + # google cloud support seems to be installed on default, leading + # to boringssl error manually set the flag to false to avoid + # installing gcp support + # https://github.com/tensorflow/tensorflow/issues/20677#issuecomment-404634519 + filter_file(r'--define with_gcp_support=true', + r'--define with_gcp_support=false', + '.tf_configure.bazelrc') + if spec.satisfies('@1.6.0:'): + # tensorboard name changed + filter_file(r"'tensorboard >=", + r"#'tensorboard >=", + 'tensorflow/tools/pip_package/setup.py') + if spec.satisfies('@1.8.0: ~opencl'): + # 1.8.0 and 1.9.0 aborts with numpy import error during python_api + # generation somehow the wrong PYTHONPATH is used... + # set --distinct_host_configuration=false as a workaround + # https://github.com/tensorflow/tensorflow/issues/22395#issuecomment-431229451 + filter_file('build --action_env TF_NEED_OPENCL_SYCL="0"', + 'build --action_env TF_NEED_OPENCL_SYCL="0"\n' + 'build --distinct_host_configuration=false\n' + 'build --action_env PYTHONPATH="{0}"'.format( + env['PYTHONPATH']), + '.tf_configure.bazelrc') + if spec.satisfies('@1.13.1'): + # tensorflow_estimator is an API for tensorflow + # tensorflow-estimator imports tensorflow during build, so + # tensorflow has to be set up first + filter_file(r"'tensorflow_estimator >=", + r"#'tensorflow_estimator >=", + 'tensorflow/tools/pip_package/setup.py') + if spec.satisfies('@2.0.0:'): + # now it depends on the nightly versions... + filter_file(r"'tf-estimator-nightly >=", + r"#'tf-estimator-nightly >=", + 'tensorflow/tools/pip_package/setup.py') + filter_file(r"REQUIRED_PACKAGES\[i\] = 'tb-nightly >=", + r"pass #REQUIRED_PACKAGES\[i\] = 'tb-nightly >=", + 'tensorflow/tools/pip_package/setup.py') + filter_file(r"'tb-nightly >=", + r"#'tb-nightly >=", + 'tensorflow/tools/pip_package/setup.py') + + if spec.satisfies('@1.13.1 +nccl'): + filter_file( + r'^build --action_env NCCL_INSTALL_PATH=.*', + r'build --action_env NCCL_INSTALL_PATH="' + + spec['nccl'].libs.directories[0] + '"', + '.tf_configure.bazelrc') + filter_file( + r'^build --action_env NCCL_HDR_PATH=.*', + r'build --action_env NCCL_HDR_PATH="' + + spec['nccl'].prefix.include + '"', + '.tf_configure.bazelrc') + + if spec.satisfies('+cuda'): + libs = spec['cuda'].libs.directories + libs.extend(spec['cudnn'].libs.directories) + if '+nccl' in spec: + libs.extend(spec['nccl'].libs.directories) + if '+tensorrt' in spec: + libs.extend(spec['tensorrt'].libs.directories) + slibs = ':'.join(libs) + + filter_file('build --action_env TF_NEED_OPENCL_SYCL="0"', + 'build --action_env TF_NEED_OPENCL_SYCL="0"\n' + 'build --action_env LD_LIBRARY_PATH="' + slibs + '"', + '.tf_configure.bazelrc') + + def build(self, spec, prefix): + tmp_path = env['TEST_TMPDIR'] + + # https://docs.bazel.build/versions/master/command-line-reference.html + 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), + '--config=opt', + # Enable verbose output for failures + '--verbose_failures', + # Show (formatted) subcommands being executed + '--subcommands=pretty_print', + # Ask bazel to explain what it's up to + # Needs a filename as argument + '--explain=explainlogfile.txt', + # Increase verbosity of explanation, + '--verbose_explanations', + ] + + # See .bazelrc for when each config flag is supported + if spec.satisfies('@1.12.1:'): + if '+mkl' in spec: + args.append('--config=mkl') + + if '+monolithic' in spec: + args.append('--config=monolithic') + + if '+gdr' in spec: + args.append('--config=gdr') + + if '+verbs' in spec: + args.append('--config=verbs') + + if '+ngraph' in spec: + args.append('--config=ngraph') + + if '+dynamic_kernels' in spec: + args.append('--config=dynamic_kernels') + + if '+cuda' in spec: + args.append('--config=cuda') + + if '~aws' in spec: + args.append('--config=noaws') + + if '~gcp' in spec: + args.append('--config=nogcp') + + if '~hdfs' in spec: + args.append('--config=nohdfs') + + if '~ignite' in spec: + args.append('--config=noignite') + + if '~kafka' in spec: + args.append('--config=nokafka') + + if '~nccl' in spec: + args.append('--config=nonccl') + + if spec.satisfies('@1.12.1,1.14:'): + if '+numa' in spec: + args.append('--config=numa') + + if spec.satisfies('@2:'): + args.append('--config=v2') + + if spec.satisfies('%gcc@5:'): + args.append('--cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0') + + if spec.satisfies('@2.1:'): + # TODO: is this needed? + args.append('--define=tensorflow_mkldnn_contraction_kernel=0') + + args.append('//tensorflow/tools/pip_package:build_pip_package') + + bazel(*args) + + build_pip_package = Executable( + 'bazel-bin/tensorflow/tools/pip_package/build_pip_package') + build_pip_package(tmp_path) + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + for fn in glob.iglob(join_path( + '../bazel-bin/tensorflow/tools/pip_package', + 'build_pip_package.runfiles/org_tensorflow/*')): + dst = os.path.basename(fn) + if not os.path.exists(dst): + os.symlink(fn, dst) + for fn in glob.iglob('../tensorflow/tools/pip_package/*'): + dst = os.path.basename(fn) + if not os.path.exists(dst): + os.symlink(fn, dst) + + # macOS is case-insensitive, and BUILD file in directory + # containing setup.py causes the following error message: + # error: could not create 'build': File exists + # Delete BUILD file to prevent this. + os.remove('BUILD') + + 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)) diff --git a/var/spack/repos/builtin/packages/py-tensorflow/url-zlib.patch b/var/spack/repos/builtin/packages/py-tensorflow/url-zlib.patch new file mode 100644 index 0000000000..9c4fdba09c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow/url-zlib.patch @@ -0,0 +1,13 @@ +--- tensorflow-0.10.0/tensorflow/workspace.bzl 2016-09-08 23:49:36.000000000 +0200 ++++ tensorflow-0.10.0/tensorflow/workspace.bzl 2017-01-31 09:11:07.391869277 +0100 +@@ -198,7 +198,7 @@ def tf_workspace(path_prefix = "", tf_re + + native.new_http_archive( + name = "zlib_archive", +- url = "http://zlib.net/zlib-1.2.8.tar.gz", +- sha256 = "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d", ++ url = "http://zlib.net/zlib-1.2.11.tar.gz", ++ sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", + build_file = path_prefix + "zlib.BUILD", + ) + diff --git a/var/spack/repos/builtin/packages/py-testpath/package.py b/var/spack/repos/builtin/packages/py-testpath/package.py new file mode 100644 index 0000000000..113fa74c23 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-testpath/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyTestpath(PythonPackage): + """Testpath is a collection of utilities for Python code working with + files and commands.""" + + homepage = "https://github.com/jupyter/testpath" + url = "https://pypi.io/packages/source/t/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 new file mode 100644 index 0000000000..6965acd574 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-testrepository/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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', + ] + + version('0.0.20', sha256='752449bc98c20253ec4611c40564aea93d435a5bf3ff672208e01cc10e5858eb') + + depends_on('py-setuptools', type='build') + depends_on('py-fixtures', type=('build', 'run')) + depends_on('py-python-subunit@0.0.18:', type=('build', 'run')) + depends_on('py-testtools@0.9.30:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-testresources/package.py b/var/spack/repos/builtin/packages/py-testresources/package.py new file mode 100644 index 0000000000..4f17d9c972 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-testresources/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyTestresources(PythonPackage): + """Testresources, a pyunit extension for managing expensive test resources. + """ + + homepage = "https://launchpad.net/testresources" + url = "https://pypi.io/packages/source/t/testresources/testresources-2.0.1.tar.gz" + + version('2.0.1', sha256='ee9d1982154a1e212d4e4bac6b610800bfb558e4fb853572a827bc14a96e4417') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-testscenarios/package.py b/var/spack/repos/builtin/packages/py-testscenarios/package.py new file mode 100644 index 0000000000..fa55221d91 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-testscenarios/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('0.5.0', sha256='c257cb6b90ea7e6f8fef3158121d430543412c9a87df30b5dde6ec8b9b57a2b6') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-testtools/package.py b/var/spack/repos/builtin/packages/py-testtools/package.py new file mode 100644 index 0000000000..cbb8abd144 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-testtools/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.3.0', sha256='5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index 78e77fec03..738d365a3b 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -26,8 +26,8 @@ class PyTheano(PythonPackage): depends_on('python@2.6:2.8,3.3:') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-scipy@0.11:', type=('build', 'run')) - depends_on('py-numpy@1.7.1:', type=('build', 'run')) + depends_on('py-numpy@1.9.1:', type=('build', 'run')) + depends_on('py-scipy@0.14:', type=('build', 'run')) depends_on('py-six@1.9.0:', type=('build', 'run')) depends_on('blas') @@ -38,4 +38,5 @@ class PyTheano(PythonPackage): depends_on('libgpuarray', when='+gpu') depends_on('py-nose@1.3.0:', type='test') - depends_on('py-nose-parameterized@0.5.0:', type='test') + depends_on('py-parameterized', type='test') + depends_on('py-flake8', type='test') diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 9325b2504c..7d6cbb5b4e 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -6,6 +6,7 @@ from spack import * +# TODO: try switching to CMakePackage for more control over build class PyTorch(PythonPackage): """Tensors and Dynamic neural networks in Python with strong GPU acceleration.""" @@ -50,6 +51,7 @@ class PyTorch(PythonPackage): ] version('master', branch='master', submodules=True) + version('1.3.1', tag='v1.3.1', submodules=True) version('1.3.0', tag='v1.3.0', submodules=True) version('1.2.0', tag='v1.2.0', submodules=True) version('1.1.0', tag='v1.1.0', submodules=True) @@ -60,16 +62,16 @@ class PyTorch(PythonPackage): version('0.3.1', tag='v0.3.1', submodules=True) variant('cuda', default=True, description='Enables CUDA build') - variant('cudnn', default=False, description='Enables the cuDNN build') + variant('cudnn', default=True, description='Enables the cuDNN 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=False, description='Enables use of MKLDNN') + 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('distributed', default=False, description='Enables distributed (c10d, gloo, mpi, etc.) build') - variant('nccl', default=False, description='Use Spack-installed NCCL') + 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') @@ -100,14 +102,21 @@ class PyTorch(PythonPackage): # 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@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-numpy', type=('run', 'build')) + depends_on('py-numpy', type=('build', 'run')) depends_on('py-future', when='@1.1: ^python@:2', type='build') - depends_on('py-pyyaml', type=('run', 'build')) - depends_on('py-typing', when='@0.4: ^python@:3.4', type=('run', 'build')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-typing', when='@0.4: ^python@:3.4', type=('build', 'run')) + depends_on('py-pybind11', when='@0.4:', type=('build', 'run')) 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 # Optional dependencies depends_on('cuda@7.5:', when='+cuda', type=('build', 'link', 'run')) @@ -116,13 +125,12 @@ class PyTorch(PythonPackage): depends_on('cudnn@7:', when='@1.1:+cudnn') depends_on('magma', when='+magma') # TODO: add dependency: https://github.com/pytorch/FBGEMM - depends_on('fbgemm', when='+fbgemm') + # depends_on('fbgemm', when='+fbgemm') # TODO: add dependency: https://github.com/ROCmSoftwarePlatform/MIOpen - depends_on('miopen', when='+miopen') - depends_on('mkl', when='+mkldnn') + # depends_on('miopen', when='+miopen') + depends_on('intel-mkl-dnn', when='+mkldnn') # TODO: add dependency: https://github.com/Maratyszcza/NNPACK - depends_on('nnpack', when='+nnpack') - # TODO: add dependency: https://github.com/pytorch/QNNPACK + # depends_on('nnpack', when='+nnpack') depends_on('qnnpack', when='+qnnpack') depends_on('mpi', when='+distributed') depends_on('nccl', when='+nccl') @@ -137,11 +145,14 @@ class PyTorch(PythonPackage): depends_on('tbb', when='+tbb') # Test dependencies - depends_on('ninja', type='test') depends_on('py-hypothesis', type='test') depends_on('py-six', type='test') depends_on('py-psutil', type='test') + # Both build and install run cmake/make/make install + # Only run once to speed up build times + phases = ['install'] + def setup_build_environment(self, env): def enable_or_disable(variant, keyword='USE', var=None, newer=False): """Set environment variable to enable or disable support for a @@ -169,8 +180,25 @@ class PyTorch(PythonPackage): else: env.set('NO_' + var, 'ON') + # Build system has problems locating MKL libraries + # See https://github.com/pytorch/pytorch/issues/24334 + if 'mkl' in self.spec: + env.prepend_path('CMAKE_PREFIX_PATH', self.spec['mkl'].prefix.mkl) + + # Build in parallel to speed up build times env.set('MAX_JOBS', make_jobs) + # 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) + enable_or_disable('cuda') if '+cuda' in self.spec: env.set('CUDA_HOME', self.spec['cuda'].prefix) @@ -184,7 +212,6 @@ class PyTorch(PythonPackage): enable_or_disable('fbgemm') enable_or_disable('test', keyword='BUILD') - enable_or_disable('miopen') 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) @@ -192,7 +219,7 @@ class PyTorch(PythonPackage): enable_or_disable('mkldnn') if '+mkldnn' in self.spec: - env.set('MKLDNN_HOME', self.spec['intel-mkl'].prefix) + env.set('MKLDNN_HOME', self.spec['intel-mkl-dnn'].prefix) enable_or_disable('nnpack') enable_or_disable('qnnpack') @@ -207,7 +234,6 @@ class PyTorch(PythonPackage): enable_or_disable('caffe2', keyword='BUILD', var='CAFFE2_OPS') enable_or_disable('gloo', newer=True) - enable_or_disable('gloo', var='GLOO_IBVERBS', newer=True) enable_or_disable('opencv', newer=True) enable_or_disable('openmp', newer=True) enable_or_disable('ffmpeg', newer=True) @@ -218,15 +244,19 @@ class PyTorch(PythonPackage): env.set('PYTORCH_BUILD_VERSION', self.version) env.set('PYTORCH_BUILD_NUMBER', 0) - # BLAS to be used by Caffe2. Can be MKL, Eigen, ATLAS, or OpenBLAS. + # BLAS to be used by Caffe2 if '^mkl' in self.spec: env.set('BLAS', 'MKL') - elif '^eigen' in self.spec: - env.set('BLAS', 'Eigen') elif '^atlas' in self.spec: env.set('BLAS', 'ATLAS') elif '^openblas' in self.spec: env.set('BLAS', 'OpenBLAS') + elif '^veclibfort' in self.spec: + env.set('BLAS', 'vecLib') + elif '^libflame' in self.spec: + env.set('BLAS', 'FLAME') + elif '^eigen' in self.spec: + env.set('BLAS', 'Eigen') enable_or_disable('redis', newer=True) enable_or_disable('zstd', newer=True) diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index d369cef54b..9b3f43dc42 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -11,7 +11,7 @@ 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.4.0.tar.gz" + url = "https://github.com/pytorch/vision/archive/v0.4.2.tar.gz" maintainers = ['adamjstewart'] import_modules = [ @@ -21,6 +21,8 @@ class PyTorchvision(PythonPackage): 'torchvision.models.detection' ] + version('0.4.2', sha256='1184a27eab85c9e784bacc6f9d6fec99e168ab4eda6047ef9f709e7fdb22d8f9') + version('0.4.1', sha256='053689351272b3bd2ac3e6ba51efd284de0e4ca4a301f54674b949f1e62b7176') version('0.4.0', sha256='c270d74e568bad4559fed4544f6dd1e22e2eb1c60b088e04a5bd5787c4150589') version('0.3.0', sha256='c205f0618c268c6ed2f8abb869ef6eb83e5339c1336c243ad321a2f2a85195f0') diff --git a/var/spack/repos/builtin/packages/py-tox/package.py b/var/spack/repos/builtin/packages/py-tox/package.py new file mode 100644 index 0000000000..0ac694063d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tox/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('3.14.2', sha256='7efd010a98339209f3a8292f02909b51c58417bfc6838ab7eca14cf90f96117a') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-importlib-metadata@1.1.0:', when='^python@:3.7', type=('build', 'run')) + depends_on('py-packaging@14:', type=('build', 'run')) + depends_on('py-pluggy@0.12.0:0.999', type=('build', 'run')) + depends_on('py-py@1.4.17:1.999', type=('build', 'run')) + depends_on('py-six@1.0.0:1.999', type=('build', 'run')) + depends_on('py-virtualenv@16.0.0:', type=('build', 'run')) + depends_on('py-toml@0.9.4:', type=('build', 'run')) + depends_on('py-filelock@3.0.0:3.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tzlocal/package.py b/var/spack/repos/builtin/packages/py-tzlocal/package.py index 18b1471998..b6d42adee6 100644 --- a/var/spack/repos/builtin/packages/py-tzlocal/package.py +++ b/var/spack/repos/builtin/packages/py-tzlocal/package.py @@ -12,6 +12,7 @@ class PyTzlocal(PythonPackage): homepage = "https://github.com/regebro/tzlocal" url = "https://pypi.io/packages/source/t/tzlocal/tzlocal-1.3.tar.gz" + version('2.0.0', sha256='949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590') version('1.3', sha256='d160c2ce4f8b1831dabfe766bd844cf9012f766539cf84139c2faac5201882ce') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-udunits/package.py b/var/spack/repos/builtin/packages/py-udunits/package.py deleted file mode 100644 index b7fb343439..0000000000 --- a/var/spack/repos/builtin/packages/py-udunits/package.py +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * -import os - - -class PyUdunits(PythonPackage): - """The MetOffice cf_units Python interface to the UDUNITS-2 Library.""" - homepage = "https://github.com/SciTools/cf_units" - url = "https://github.com/SciTools/cf_units/archive/v1.1.3.tar.gz" - - version('1.1.3', sha256='cc27f4f06c99d242c36beb8dc5c517e1b1124a8c65ca3f76f372b9674aa320ba') - - maintainers = ['citibeth'] - - depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) - depends_on('py-netcdf4', type=('build', 'run')) - depends_on('udunits2') - - # See: https://github.com/SciTools/cf_units/blob/master/cf_units/etc/site.cfg.template - # udunits2_path = /path/to/libudunits2.so - # udunits2_xml_path = /path/to/udunits2.xml - site_cfg_template = """[System] -udunits2_path = %s -udunits2_xml_path = %s -""" - - @run_after('install') - def configure_template(self): - spec = self.spec - - cfg_templates = find(spec.prefix, ['site.cfg.template']) - if len(cfg_templates) != 1: - tty.die( - 'Found %d instances of site.cfg.template, wanted 1' % - len(cfg_templates)) - cfg_template = cfg_templates[0] - - cfg = os.path.join(os.path.split(cfg_template)[0], 'site.cfg') - - udunits2_xml_path = os.path.join( - spec['udunits2'].prefix, 'share', 'udunits', 'udunits2.xml') - - with open(cfg, 'w') as fout: - fout.write(self.site_cfg_template % - (spec['udunits2'].libs, udunits2_xml_path)) diff --git a/var/spack/repos/builtin/packages/py-umalqurra/package.py b/var/spack/repos/builtin/packages/py-umalqurra/package.py new file mode 100644 index 0000000000..21c4758b3a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-umalqurra/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +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" + + version('0.2', sha256='719f6a36f908ada1c29dae0d934dd0f1e1f6e3305784edbec23ad719397de678') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-us/package.py b/var/spack/repos/builtin/packages/py-us/package.py new file mode 100644 index 0000000000..717d036a0e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-us/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +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" + + version('1.0.0', sha256='09dc9ba763e2e4399e6a042104f3e415a7de6bfa4df6f557b4f19e3ba9a22fda') + + depends_on('py-setuptools', type='build') + depends_on('py-jellyfish@0.5.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-uwsgi/package.py b/var/spack/repos/builtin/packages/py-uwsgi/package.py new file mode 100644 index 0000000000..1cda052948 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-uwsgi/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class PyUwsgi(PythonPackage): + """Web Application framework for low overhead web services""" + + homepage = "https://github.com/unbit/uwsgi/" + url = "https://pypi.org/packages/source/u/uwsgi/uwsgi-2.0.18.tar.gz" + + version('2.0.18', sha256='4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-vine/package.py b/var/spack/repos/builtin/packages/py-vine/package.py new file mode 100644 index 0000000000..d2fe0313f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vine/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.3.0', sha256='133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87') + version('1.2.0', sha256='ee4813e915d0e1a54e5c1963fde0855337f82655678540a6bc5996bca4165f76') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-voluptuous/package.py b/var/spack/repos/builtin/packages/py-voluptuous/package.py new file mode 100644 index 0000000000..f63f1d9665 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-voluptuous/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyVoluptuous(PythonPackage): + """Voluptous, despite the name, is a Python data validation library.""" + homepage = "https://github.com/alecthomas/voluptuous" + url = "https://github.com/alecthomas/voluptuous/archive/0.11.5.tar.gz" + + version('0.11.5', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-wand/package.py b/var/spack/repos/builtin/packages/py-wand/package.py index ac4f82fd5b..fcecd5e663 100644 --- a/var/spack/repos/builtin/packages/py-wand/package.py +++ b/var/spack/repos/builtin/packages/py-wand/package.py @@ -20,7 +20,7 @@ class PyWand(PythonPackage): depends_on('py-setuptools', type='build') # provides libmagickwand - depends_on('image-magick') + depends_on('imagemagick') depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-sphinx@1:', type='build', when='+docs') diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py index 589e733c77..9ce05b1c35 100644 --- a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py +++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py @@ -16,4 +16,4 @@ class PyWidgetsnbextension(PythonPackage): depends_on('py-setuptools', type='build') depends_on('python@2.7:2.8,3.3:') - depends_on('py-jupyter-notebook@4.2.0:', type=('build', 'run')) + depends_on('py-notebook@4.2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-wradlib/package.py b/var/spack/repos/builtin/packages/py-wradlib/package.py new file mode 100644 index 0000000000..aa24d67afb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-wradlib/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyWradlib(PythonPackage): + """wradlib is designed to assist you in the most important steps of + processing weather radar data. These may include: reading common data + formats, georeferencing, converting reflectivity to rainfall intensity, + identifying and correcting typical error sources (such as clutter or + attenuation) and visualising the data.""" + + homepage = "https://docs.wradlib.org" + url = "https://pypi.io/packages/source/w/wradlib/wradlib-1.5.0.tar.gz" + + version('1.5.0', sha256='9bf0742d7235ea830e83c2269f6b5d1afd83d92696efce0a7bcdb0c4f6604784') + + depends_on('py-setuptools', type='build') + + # recommended versions from https://docs.wradlib.org/en/stable/installation.html#dependencies + depends_on('py-numpy@1.16:', type=('build', 'run')) + depends_on('py-matplotlib@3.0.2:', type=('build', 'run')) + depends_on('py-scipy@1.2.0:', type=('build', 'run')) + depends_on('py-h5py@2.9:', type=('build', 'run')) + depends_on('py-netcdf4@1.4.2:', type=('build', 'run')) + depends_on('py-xarray@0.11.3:', type=('build', 'run')) + depends_on('py-xmltodict@0.11:', type=('build', 'run')) + depends_on('py-semver', type=('build', 'run')) + depends_on('py-deprecation', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + + depends_on('gdal@2.4.0:+python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-wrapt/package.py b/var/spack/repos/builtin/packages/py-wrapt/package.py index 7e3bb32f98..887df80da1 100644 --- a/var/spack/repos/builtin/packages/py-wrapt/package.py +++ b/var/spack/repos/builtin/packages/py-wrapt/package.py @@ -10,6 +10,7 @@ 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.10.10.tar.gz" + url = "https://pypi.io/packages/source/w/wrapt/wrapt-1.11.2.tar.gz" + version('1.11.2', sha256='565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1') version('1.10.10', sha256='42160c91b77f1bc64a955890038e02f2f72986c01d462d53cb6cb039b995cdd9') diff --git a/var/spack/repos/builtin/packages/py-wub/package.py b/var/spack/repos/builtin/packages/py-wub/package.py new file mode 100644 index 0000000000..d86a739b4e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-wub/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyWub(PythonPackage): + """Bioinformatics tools and a software library developed by the Oxford + Nanopore Technologies Applications group. + """ + + homepage = "https://github.com/nanoporetech/wub" + url = "https://github.com/nanoporetech/wub/archive/v0.4.0.tar.gz" + + 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-biopython', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run', 'test')) + 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-pandas@0.20.2:', type=('build', 'run')) + depends_on('py-pysam', type=('build', 'run')) + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-statsmodels', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-wxmplot/package.py b/var/spack/repos/builtin/packages/py-wxmplot/package.py new file mode 100644 index 0000000000..bb52c5e330 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-wxmplot/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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'] + + version('0.9.38', sha256='82dc64abb42bdd03ec7067a3aa2a475001f2bc8e4772149bae47facf460c0081') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.12:', type=('build', 'run')) + 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-xarray/package.py b/var/spack/repos/builtin/packages/py-xarray/package.py index 006b282643..4e6f1213fe 100644 --- a/var/spack/repos/builtin/packages/py-xarray/package.py +++ b/var/spack/repos/builtin/packages/py-xarray/package.py @@ -12,8 +12,23 @@ class PyXarray(PythonPackage): homepage = "https://github.com/pydata/xarray" url = "https://pypi.io/packages/source/x/xarray/xarray-0.9.1.tar.gz" + 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') - depends_on('py-setuptools', type='build') - depends_on('py-pandas@0.15.0:', type=('build', 'run')) - depends_on('py-numpy@1.7:', type=('build', 'run')) + 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('py-setuptools', 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-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')) diff --git a/var/spack/repos/builtin/packages/py-xattr/package.py b/var/spack/repos/builtin/packages/py-xattr/package.py index 0d29e673e2..8e53b6e705 100644 --- a/var/spack/repos/builtin/packages/py-xattr/package.py +++ b/var/spack/repos/builtin/packages/py-xattr/package.py @@ -3,17 +3,18 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * - class PyXattr(PythonPackage): """A python interface to access extended file attributes, - sans libattr dependency""" + sans libattr dependency. + """ homepage = "http://pyxattr.k1024.org/" - git = "https://github.com/fwang2/pyxattr.git" + url = "https://pypi.io/packages/source/x/xattr/xattr-0.9.6.tar.gz" + git = "https://github.com/iustin/pyxattr.git" - version('develop', branch='dev') + version('master', branch='master') + version('0.9.6', sha256='7cb1b28eeab4fe99cc4350e831434142fce658f7d03f173ff7722144e6a47458') depends_on('python@2.7:') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-xdot/package.py b/var/spack/repos/builtin/packages/py-xdot/package.py index ecdc47e494..3f09fc6b32 100644 --- a/var/spack/repos/builtin/packages/py-xdot/package.py +++ b/var/spack/repos/builtin/packages/py-xdot/package.py @@ -11,12 +11,12 @@ class PyXdot(PythonPackage): dot language.""" homepage = "https://github.com/jrfonseca/xdot.py" - url = "https://github.com/jrfonseca/xdot.py/archive/0.9.tar.gz" + url = "https://pypi.io/packages/source/x/xdot/xdot-1.0.tar.gz" git = "https://github.com/jrfonseca/xdot.py.git" - version('master', branch="master") - version('1.0', sha256='a8594f94f43f938e01e42ff6015c7e00e3ee1a00c7f06d6287d8c939ffa94f76') - version('0.9', sha256='df7790db573d7a5512e6fa618d9051508c43cf64ca432d97c2207c87b6f20dbd') + version('master', branch='master') + version('1.0', sha256='7e067896d729af82f1fd0758e265f129944d469c30f550e3f15dbdb751cc42a1') + version('0.9', sha256='a33701664ecfefe7c7313a120a587e87334f3a566409bc451538fcde5edd6907') # setuptools is required at runtime to avoid: # No module named 'pkg_resources' @@ -46,17 +46,17 @@ class PyXdot(PythonPackage): python3 = spec['python'].command python3('-m', 'compileall', dst) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): spec = self.spec - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['pango'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['atk'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['gdk-pixbuf'].prefix.lib, - 'girepository-1.0')) - run_env.prepend_path('GI_TYPELIB_PATH', - join_path(spec['gtkplus'].prefix.lib, - 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['pango'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['atk'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['gdk-pixbuf'].prefix.lib, + 'girepository-1.0')) + env.prepend_path('GI_TYPELIB_PATH', + join_path(spec['gtkplus'].prefix.lib, + 'girepository-1.0')) diff --git a/var/spack/repos/builtin/packages/py-xlwt/package.py b/var/spack/repos/builtin/packages/py-xlwt/package.py new file mode 100644 index 0000000000..4635f71a41 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-xlwt/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class PyXlwt(PythonPackage): + """Library to create spreadsheet files compatible with + 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" + + version('1.3.0', sha256='c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-xmltodict/package.py b/var/spack/repos/builtin/packages/py-xmltodict/package.py new file mode 100644 index 0000000000..df8858451d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-xmltodict/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyXmltodict(PythonPackage): + """xmltodict is a Python module that makes working with XML feel like + 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" + + version('0.12.0', sha256='50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21') + + depends_on('py-setuptools', type='build') + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-zc-buildout/package.py b/var/spack/repos/builtin/packages/py-zc-buildout/package.py new file mode 100644 index 0000000000..614f95c4b1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-zc-buildout/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('2.13.1', sha256='3d14d07226963a517295dfad5879d2799e2e3b65b2c61c71b53cb80f5ab11484') + + depends_on('py-setuptools@8.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-zc-lockfile/package.py b/var/spack/repos/builtin/packages/py-zc-lockfile/package.py new file mode 100644 index 0000000000..3e512fcf0e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-zc-lockfile/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +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" + + version('1.4', sha256='95a8e3846937ab2991b61703d6e0251d5abb9604e18412e2714e1b90db173253') + + depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-zxcvbn/package.py b/var/spack/repos/builtin/packages/py-zxcvbn/package.py new file mode 100644 index 0000000000..e393a1d6f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-zxcvbn/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyZxcvbn(PythonPackage): + """A realistic password strength estimator. + + This is a Python implementation of the library created by the team at + Dropbox.""" + + homepage = "https://github.com/dwolfhub/zxcvbn-python" + url = "https://github.com/dwolfhub/zxcvbn-python/archive/v4.4.25.tar.gz" + + version('4.4.28', sha256='b7275765acdf8028c21aa502d742e56de2252bac604c04ba5e336c39f88d5576') + version('4.4.27', sha256='9b84927fff7b4cc557b63a49adbd74f7a92026e25edd9e1b2867c1610d15fa5d') + version('4.4.26', sha256='ee498e9257742972950f33540f0e36112db14c636417ce5b53d99a492dad8aba') + version('4.4.25', sha256='dfb4d5aee8b59361572e2c12e7982bb22dbf9a1e8ac1c10c8ffea2c72712aabf') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index a92d1c6c79..546286bb12 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -289,6 +289,10 @@ class Python(AutotoolsPackage): spec['tcl'].libs.ld_flags, spec['tk'].libs.ld_flags) ]) + # https://docs.python.org/3.8/library/sqlite3.html#f1 + if spec.satisfies('@3.2: +sqlite3'): + config_args.append('--enable-loadable-sqlite-extensions') + return config_args @run_after('install') @@ -623,11 +627,15 @@ class Python(AutotoolsPackage): and symlinks it to ``/usr/local``. Users may not know the actual installation directory and add ``/usr/local`` to their ``packages.yaml`` unknowingly. Query the python executable to - determine exactly where it is installed.""" + 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: - prefix = self.get_config_var('prefix') + try: + prefix = self.get_config_var('prefix') + except ProcessError: + prefix = self.prefix self._homes[dag_hash] = Prefix(prefix) return self._homes[dag_hash] diff --git a/var/spack/repos/builtin/packages/qbank/package.py b/var/spack/repos/builtin/packages/qbank/package.py index fa362d6b5a..5d1d4a2a92 100644 --- a/var/spack/repos/builtin/packages/qbank/package.py +++ b/var/spack/repos/builtin/packages/qbank/package.py @@ -36,11 +36,9 @@ class Qbank(Package): phases = ['configure', 'build', 'install'] def configure_args(self): - prefix = self.prefix - config_args = [ - '--prefix', prefix, - '--logdir', join_path(prefix, 'var', 'log', 'qbank') + '--prefix', self.prefix, + '--logdir', self.prefix.var.log.qbank ] return config_args @@ -59,11 +57,8 @@ class Qbank(Package): make('install') if '+doc' in spec: - install_tree('doc', join_path(prefix, 'doc')) - - def setup_environment(self, spack_env, run_env): - spec = self.spec - prefix = self.prefix + install_tree('doc', prefix.doc) - if '+doc' in spec: - run_env.prepend_path('MANPATH', join_path(prefix, 'doc')) + def setup_run_environment(self, env): + if '+doc' in self.spec: + env.prepend_path('MANPATH', self.prefix.doc) diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index 67041e455a..0e5c9b294e 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -54,22 +54,29 @@ class Qmcpack(CMakePackage, CudaPackage): variant('gui', default=False, description='Install with Matplotlib (long installation time)') variant('qe', default=True, - description='Install with patched Quantum Espresso 6.4.0') + description='Install with patched Quantum Espresso 6.4.1') # cuda variant implies mixed precision variant by default, but there is # no way to express this in variant syntax, need something like # variant('+mixed', default=True, when='+cuda', description="...") - # conflicts + # high-level variant conflicts conflicts( '+phdf5', when='~mpi', msg='Parallel collective I/O requires MPI-enabled QMCPACK. ' 'Please add "~phdf5" to the Spack install line for serial QMCPACK.') - conflicts('+soa', - when='+cuda', - msg='QMCPACK SOA variant does not exist for CUDA') + conflicts( + '+soa', + when='+cuda@:3.4.0', + msg='QMCPACK CUDA+SOA variant does not exist prior to v. 3.5.0.') + + conflicts( + '+qe', + when='~mpi', + msg='Serial QMCPACK with serial QE converter not supported. ' + 'Configure in serial QE + serial HDF5 will not run correctly.') conflicts('^openblas+ilp64', msg='QMCPACK does not support OpenBLAS 64-bit integer variant') @@ -110,12 +117,11 @@ class Qmcpack(CMakePackage, CudaPackage): depends_on('mpi', when='+mpi') # HDF5 - depends_on('hdf5+hl+fortran', when='+qe') - depends_on('hdf5+hl+fortran+mpi', when='+qe+mpi') - depends_on('hdf5+hl+fortran~mpi', when='+qe~mpi') - depends_on('hdf5~hl~fortran', when='~qe') - depends_on('hdf5~hl~fortran+mpi', when='~qe+mpi') - depends_on('hdf5~hl~fortran~mpi', when='~qe~mpi') + depends_on('hdf5~mpi', when='~phdf5') + depends_on('hdf5+mpi', when='+phdf5') + depends_on('hdf5+hl+fortran~mpi', when='+qe~phdf5') + depends_on('hdf5+hl+fortran+mpi', when='+qe+phdf5') + # Math libraries depends_on('blas') depends_on('lapack') @@ -138,11 +144,11 @@ class Qmcpack(CMakePackage, CudaPackage): patch_checksum = '57cb1b06ee2653a87c3acc0dd4f09032fcf6ce6b8cbb9677ae9ceeb6a78f85e2' depends_on('quantum-espresso@6.4.1+mpi hdf5=parallel', patches=patch(patch_url, sha256=patch_checksum), - when='+qe+mpi', type='run') + when='+qe+phdf5', type='run') - depends_on('quantum-espresso@6.4.1~scalapack~mpi hdf5=serial', + depends_on('quantum-espresso@6.4.1+mpi hdf5=serial', patches=patch(patch_url, sha256=patch_checksum), - when='+qe~mpi', type='run') + when='+qe~phdf5', type='run') # Backport several patches from recent versions of QMCPACK # The test_numerics unit test is broken prior to QMCPACK 3.3.0 @@ -347,40 +353,37 @@ class Qmcpack(CMakePackage, CudaPackage): install_tree('bin', prefix.bin) # QMCPACK 3.6.0 install directory structure changed, thus there - # thus are two version of the setup_environment method + # thus are two version of the setup_run_environment method @when('@:3.5.0') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set-up runtime environment for QMCPACK. Set PYTHONPATH for basic analysis scripts and for Nexus.""" - run_env.prepend_path('PYTHONPATH', self.prefix.nexus) + env.prepend_path('PYTHONPATH', self.prefix.nexus) @when('@3.6.0:') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): """Set-up runtime environment for QMCPACK. Set PYTHONPATH for basic analysis scripts and for Nexus. Binaries are in the 'prefix' directory instead of 'prefix.bin' which is not set by the default module environment""" - run_env.prepend_path('PATH', self.prefix) - run_env.prepend_path('PYTHONPATH', self.prefix) + env.prepend_path('PATH', self.prefix) + env.prepend_path('PYTHONPATH', self.prefix) @run_after('build') @on_package_attributes(run_tests=True) - def check(self): + def check_install(self): """Run ctest after building binary. It can take over 24 hours to run all the regression tests, here we - only run the unit tests and short tests. If the unit tests fail, - the QMCPACK installation aborts. On the other hand, the short tests - are too strict and often fail, but are still useful to run. In the - future, the short tests will be more reasonable in terms of quality - assurance (i.e. they will not be so strict), but will be sufficient to - validate QMCPACK in production.""" + only run the unit tests and deterministic tests. If the unit tests + fail, the QMCPACK installation aborts. If the deterministic tests + fails, QMCPACK will still install and emit a warning message.""" with working_dir(self.build_directory): - ctest('-L', 'unit') + ctest('-R', 'unit') try: - ctest('-R', 'short') + ctest('-R', 'deterministic', '-LE', 'unstable') except ProcessError: - warn = 'Unit tests passed, but short tests have failed.\n' - warn += 'Please review failed tests before proceeding\n' - warn += 'with production calculations.\n' + warn = 'Unit tests passed, but deterministic tests failed.\n' + warn += 'Please report this failure to:\n' + warn += 'https://github.com/QMCPACK/qmcpack/issues' tty.msg(warn) diff --git a/var/spack/repos/builtin/packages/qnnpack/package.py b/var/spack/repos/builtin/packages/qnnpack/package.py new file mode 100644 index 0000000000..19977490fd --- /dev/null +++ b/var/spack/repos/builtin/packages/qnnpack/package.py @@ -0,0 +1,83 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Qnnpack(CMakePackage): + """QNNPACK (Quantized Neural Networks PACKage) is a mobile-optimized + library for low-precision high-performance neural network inference. + QNNPACK provides implementation of common neural network operators on + quantized 8-bit tensors.""" + + homepage = "https://github.com/pytorch/QNNPACK" + git = "https://github.com/pytorch/QNNPACK.git" + + version('master', branch='master') + + depends_on('cmake@3.5:', type='build') + + resource( + name='cpuinfo', + git='https://github.com/Maratyszcza/cpuinfo.git', + destination='deps', + placement='cpuinfo' + ) + resource( + name='fp16', + git='https://github.com/Maratyszcza/FP16.git', + destination='deps', + placement='fp16' + ) + resource( + name='fxdiv', + git='https://github.com/Maratyszcza/FXdiv.git', + destination='deps', + placement='fxdiv' + ) + resource( + name='googlebenchmark', + url='https://github.com/google/benchmark/archive/v1.4.1.zip', + sha256='61ae07eb5d4a0b02753419eb17a82b7d322786bb36ab62bd3df331a4d47c00a7', + destination='deps', + placement='googlebenchmark', + ) + resource( + name='googletest', + url='https://github.com/google/googletest/archive/release-1.8.0.zip', + sha256='f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf', + destination='deps', + placement='googletest', + ) + resource( + name='psimd', + git='https://github.com/Maratyszcza/psimd.git', + destination='deps', + placement='psimd' + ) + resource( + name='pthreadpool', + git='https://github.com/Maratyszcza/pthreadpool.git', + destination='deps', + placement='pthreadpool' + ) + + 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')), + ] diff --git a/var/spack/repos/builtin/packages/qperf/package.py b/var/spack/repos/builtin/packages/qperf/package.py new file mode 100644 index 0000000000..fb1ed8cf7b --- /dev/null +++ b/var/spack/repos/builtin/packages/qperf/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Qperf(AutotoolsPackage): + """ + The qperf measures bandwidth and latency between two nodes. It can work + over TCP/IP as well as the RDMA transports. + """ + + homepage = "https://github.com/linux-rdma/qperf" + url = "https://github.com/linux-rdma/qperf/archive/v0.4.10.tar.gz" + + version('0.4.11', sha256='b0ef2ffe050607566d06102b4ef6268aad08fdc52898620d429096e7b0767e75') + version('0.4.10', sha256='94e26725b4f962eacca36d8ef48cd1fb5043721ac82c3f44018319e47a96cf6b') + + 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): + sh = which('sh') + sh('autogen.sh') diff --git a/var/spack/repos/builtin/packages/qscintilla/package.py b/var/spack/repos/builtin/packages/qscintilla/package.py new file mode 100644 index 0000000000..739d67e5e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/qscintilla/package.py @@ -0,0 +1,68 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * +import os + + +class Qscintilla(QMakePackage): + """ + QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor control. + """ + + 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" + + 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) + + variant('designer', default=False, description="Enable pluging for Qt-Designer") + # No 'python' variant, since Python bindings will be + # built by PyQt5+qsci instead + + depends_on('qt') + + @run_before('qmake') + def chdir(self): + os.chdir(str(self.stage.source_path) + '/Qt4Qt5') + + def qmake_args(self): + # below, DEFINES ... gets rid of ...regex...errors during build + # although, there shouldn't be such errors since we use '-std=c++11' + args = ['CONFIG+=-std=c++11', 'DEFINES+=NO_CXX11_REGEX=1'] + return args + + # When INSTALL_ROOT is unset, qscintilla is installed under qt_prefix + # giving 'Nothing Installed Error' + def setup_build_environment(self, env): + env.set('INSTALL_ROOT', self.prefix) + + def setup_run_environment(self, env): + env.prepend_path('QT_PLUGIN_PATH', self.prefix.plugins) + + # Fix install prefix + @run_after('qmake') + def fix_install_path(self): + makefile = FileFilter('Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)' + + self.spec['qt'].prefix, '$(INSTALL_ROOT)') + + @run_after('install') + def postinstall(self): + # Make designer plugin + if '+designer' in self.spec: + with working_dir(os.path.join(self.stage.source_path, + 'designer-Qt4Qt5')): + qscipro = FileFilter('designer.pro') + qscipro.filter('TEMPLATE = lib', + 'TEMPLATE = lib\nINCLUDEPATH += ../Qt4Qt5\n') + + qmake() + make() + makefile = FileFilter('Makefile') + makefile.filter(r'\$\(INSTALL_ROOT\)' + + self.spec['qt'].prefix, '$(INSTALL_ROOT)') + make('install') diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py index 9b23300a65..1aae1353b6 100644 --- a/var/spack/repos/builtin/packages/qt-creator/package.py +++ b/var/spack/repos/builtin/packages/qt-creator/package.py @@ -9,7 +9,7 @@ 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.3/4.3.1/qt-creator-opensource-src-4.3.1.tar.gz' + url = 'http://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_depth = 2 @@ -32,8 +32,8 @@ class QtCreator(QMakePackage): url = 'http://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_environment(self, spack_env, run_env): - spack_env.set('INSTALL_ROOT', self.prefix) + def setup_build_environment(self, env): + env.set('INSTALL_ROOT', self.prefix) def qmake_args(self): return ['-r'] diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index 55e59cb788..cbac9ed141 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -139,7 +139,7 @@ class Qt(Package): depends_on("libpng@1.2.57", when='@3') depends_on("pcre+multibyte", when='@5.0:5.8') depends_on("inputproto", when='@:5.8') - depends_on("openssl@:1.0.999", when='@:5.9+ssl') + depends_on("openssl@:1.0.999", when='@:5.9+ssl~krellpatch') depends_on("glib", when='@4:') depends_on("libpng", when='@4:') diff --git a/var/spack/repos/builtin/packages/qtgraph/package.py b/var/spack/repos/builtin/packages/qtgraph/package.py index 3d4a7307eb..09b1487e4f 100644 --- a/var/spack/repos/builtin/packages/qtgraph/package.py +++ b/var/spack/repos/builtin/packages/qtgraph/package.py @@ -25,11 +25,11 @@ class Qtgraph(QMakePackage): depends_on("graphviz@2.40.1:", when='@develop') depends_on("graphviz@2.40.1", when='@1.0.0.0:') - def setup_environment(self, spack_env, run_env): - """Set up the compile and runtime environments for a package.""" - spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) - spack_env.set('INSTALL_ROOT', self.prefix) + def setup_build_environment(self, env): + env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) + env.set('INSTALL_ROOT', self.prefix) + def setup_run_environment(self, env): # What library suffix should be used based on library existence if os.path.isdir(self.prefix.lib64): lib_dir = self.prefix.lib64 @@ -38,9 +38,7 @@ class Qtgraph(QMakePackage): # The implementor has set up the library and include paths in # a non-conventional way. We reflect that here. - run_env.prepend_path( - 'LD_LIBRARY_PATH', join_path( - lib_dir, - '{0}'.format(self.spec['qt'].version.up_to(3)))) + env.prepend_path('LD_LIBRARY_PATH', join_path( + lib_dir, '{0}'.format(self.spec['qt'].version.up_to(3)))) - run_env.prepend_path('CPATH', self.prefix.include.QtGraph) + env.prepend_path('CPATH', self.prefix.include.QtGraph) diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index 2c68a6fbf5..3dfc07b8ad 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -17,10 +17,13 @@ class QuantumEspresso(Package): """ homepage = 'http://quantum-espresso.org' - url = 'https://gitlab.com/QEF/q-e/-/archive/qe-6.4.1/q-e-qe-6.4.1.tar.gz' + url = 'https://gitlab.com/QEF/q-e/-/archive/qe-6.5/q-e-qe-6.5.tar.gz' git = 'https://gitlab.com/QEF/q-e.git' + maintainers = ['naromero77'] + version('develop', branch='develop') + version('6.5', sha256='258b2a8a6280e86dad779e5c56356d8b35dc96d12ff33dabeee914bc03d6d602') version('6.4.1', sha256='b0d7e9f617b848753ad923d8c6ca5490d5d82495f82b032b71a0ff2f2e9cfa08') version('6.4', sha256='781366d03da75516fdcf9100a1caadb26ccdd1dedd942a6f8595ff0edca74bfe') version('6.3', sha256='4067c8fffa957aabbd5cf2439e2fcb6cf3752325393c67a17d99fd09edf8689c') @@ -86,21 +89,28 @@ class QuantumEspresso(Package): msg='elpa is a parallel library and needs MPI support' ) - # HDF5 support introduced in 6.1 - hdf5_warning = 'HDF5 support only in QE 6.1 and later' - conflicts('hdf5=parallel', when='@:6.0', msg=hdf5_warning) - conflicts('hdf5=serial', when='@:6.0', msg=hdf5_warning) - + # 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='~mpi', - msg='parallel HDF5 requires MPI support' + when='@:6.0', + msg='parallel HDF5 support only in QE 6.1.0 and later' ) conflicts( 'hdf5=serial', - when='~mpi @6.1:6.3', - msg='serial HDF5 in serial QE only works in develop version' + 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 @@ -146,6 +156,13 @@ class QuantumEspresso(Package): sha256='b776890d008e16cca28c31299c62f47de0ba606b900b17cbc27c041f45e564ca', when='@6.3:6.3.0') + # QE 6.4.1 patch to work around configure issues that only appear in the + # Spack environment. We now are able to support: + # `spack install qe~mpi~scalapack hdf5=serial` + patch('https://gitlab.com/QEF/q-e/commit/5fb1195b0844e1052b7601f18ab5c700f9cbe648.diff', + sha256='b1aa3179ee1c069964fb9c21f3b832aebeae54947ce8d3cc1a74e7b154c3c10f', + when='@6.4.1:6.5.0') + def install(self, spec, prefix): prefix_path = prefix.bin if '@:5.4.0' in spec else prefix @@ -233,34 +250,18 @@ class QuantumEspresso(Package): if spec.variants['hdf5'].value != 'none': options.append('--with-hdf5={0}'.format(spec['hdf5'].prefix)) + if '@6.4.1' or '@6.5' in spec: + 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) - # Apparently the build system of QE is so broken that - # make_inc needs to be modified manually: - # - # 1. The variable reported on stdout as HDF5_LIBS is actually - # called HDF5_LIB (singular) - # 2. The link flags omit a few `-L` from the line, and this - # causes the linker to break - # 3. Serial HDF5 case is supported both with and without MPI. - # - # Below we try to match the entire HDF5_LIB line and substitute - # with the list of libraries that needs to be linked. - if spec.variants['hdf5'].value != 'none': - make_inc = join_path(self.stage.source_path, 'make.inc') - hdf5_libs = ' '.join(spec['hdf5:hl,fortran'].libs) - filter_file(r'HDF5_LIB([\s]*)=([\s\w\-\/.,]*)', - 'HDF5_LIB = {0}'.format(hdf5_libs), - make_inc) - if spec.variants['hdf5'].value == 'serial': - # Note that there is a benign side effect with this filter - # file statement. It replaces an instance of MANUAL_DFLAGS - # that is a comment in make.inc. - filter_file(r'MANUAL_DFLAGS([\s]*)=([\s]*)', - 'MANUAL_DFLAGS = -D__HDF5_SERIAL', - make_inc) - if '+epw' in spec: make('all', 'epw') else: diff --git a/var/spack/repos/builtin/packages/r-a4/package.py b/var/spack/repos/builtin/packages/r-a4/package.py index 556049e22c..c0cc7875db 100644 --- a/var/spack/repos/builtin/packages/r-a4/package.py +++ b/var/spack/repos/builtin/packages/r-a4/package.py @@ -9,12 +9,15 @@ from spack import * class RA4(RPackage): """Automated Affymetrix Array Analysis Umbrella Package.""" - homepage = "https://www.bioconductor.org/packages/a4/" + homepage = "https://bioconductor.org/packages/a4" git = "https://git.bioconductor.org/packages/a4.git" + version('1.32.0', commit='03770d4e53be4eed1bd0ab8f8cddba66854b4712') + version('1.30.0', commit='771e01ae3aaac1c4db12f781c41d90fa7191b64d') + version('1.28.0', commit='e81a8c15e1062ed9433e2d4d333f0484bc0e8bfb') + version('1.26.0', commit='e6af2cba5b684f81cc6e44dbc432916f75a2f774') version('1.24.0', commit='79b5143652176787c85a0d587b3bbfad6b4a19f4') - depends_on('r@3.4.0:3.4.9', when='@1.24.0') depends_on('r-a4base', type=('build', 'run')) depends_on('r-a4preproc', type=('build', 'run')) depends_on('r-a4classif', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-a4base/package.py b/var/spack/repos/builtin/packages/r-a4base/package.py index 53d80c567c..0cf3429b67 100644 --- a/var/spack/repos/builtin/packages/r-a4base/package.py +++ b/var/spack/repos/builtin/packages/r-a4base/package.py @@ -7,14 +7,17 @@ from spack import * class RA4base(RPackage): - """Automated Affymetrix Array Analysis.""" + """Automated Affymetrix Array Analysis Base Package.""" - homepage = "https://www.bioconductor.org/packages/a4Base/" + homepage = "https://bioconductor.org/packages/a4Base" git = "https://git.bioconductor.org/packages/a4Base.git" + 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@3.4.0:3.4.9', when='@1.24.0') depends_on('r-biobase', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) depends_on('r-annaffy', 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 6117d3bb7c..efe6a579aa 100644 --- a/var/spack/repos/builtin/packages/r-a4classif/package.py +++ b/var/spack/repos/builtin/packages/r-a4classif/package.py @@ -9,12 +9,15 @@ from spack import * class RA4classif(RPackage): """Automated Affymetrix Array Analysis Classification Package.""" - homepage = "https://www.bioconductor.org/packages/a4Classif/" + homepage = "https://bioconductor.org/packages/a4Classif" git = "https://git.bioconductor.org/packages/a4Classif.git" + version('1.32.0', commit='aa4f22df2da54b71e1a238d2b9cbcb3afa6f7f88') + version('1.30.0', commit='b62841bff2f8894a3011a4e74afc37076d1322a3') + version('1.28.0', commit='3464011f6c3ddb41b78acc47e775539034287be7') + version('1.26.0', commit='bc4018c3c441e1840bb3e2959c07611489439a50') version('1.24.0', commit='ca06bf274c87a73fc12c29a6eea4b90289fe30b1') - depends_on('r@3.4.0:3.4.9', when='@1.24.0') depends_on('r-a4core', type=('build', 'run')) depends_on('r-a4preproc', type=('build', 'run')) depends_on('r-mlinterfaces', 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 e5a78fec2f..e874f45628 100644 --- a/var/spack/repos/builtin/packages/r-a4core/package.py +++ b/var/spack/repos/builtin/packages/r-a4core/package.py @@ -9,11 +9,14 @@ from spack import * class RA4core(RPackage): """Automated Affymetrix Array Analysis Core Package.""" - homepage = "https://www.bioconductor.org/packages/a4Core/" + homepage = "https://bioconductor.org/packages/a4Core" git = "https://git.bioconductor.org/packages/a4Core.git" + version('1.32.0', commit='2916a29723bdd514d5d987f89725d141d1d2dfce') + version('1.30.0', commit='e392b1b4339a34f93d5d9bc520a1a9385ea63141') + version('1.28.0', commit='39b6ee29bc2f2fdc5733438c14dc02f8abc6460b') + version('1.26.0', commit='e7be935f20b486165a2b27dbbf9e99ba07151bcd') version('1.24.0', commit='c871faa3e1ab6be38a9ea3018816cf31b58b0ed3') - depends_on('r@3.4.0:3.4.9', when='@1.24.0') depends_on('r-biobase', type=('build', 'run')) depends_on('r-glmnet', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-a4preproc/package.py b/var/spack/repos/builtin/packages/r-a4preproc/package.py index 78db0cc963..9ec59b8d0f 100644 --- a/var/spack/repos/builtin/packages/r-a4preproc/package.py +++ b/var/spack/repos/builtin/packages/r-a4preproc/package.py @@ -9,10 +9,13 @@ from spack import * class RA4preproc(RPackage): """Automated Affymetrix Array Analysis Preprocessing Package.""" - homepage = "https://www.bioconductor.org/packages/a4Preproc/" + homepage = "https://bioconductor.org/packages/a4Preproc" git = "https://git.bioconductor.org/packages/a4Preproc.git" + 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@3.4.0:3.4.9', when='@1.24.0') depends_on('r-annotationdbi', 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 bf6c5264b7..7da009e1e6 100644 --- a/var/spack/repos/builtin/packages/r-a4reporting/package.py +++ b/var/spack/repos/builtin/packages/r-a4reporting/package.py @@ -9,11 +9,14 @@ from spack import * class RA4reporting(RPackage): """Automated Affymetrix Array Analysis Reporting Package.""" - homepage = "https://www.bioconductor.org/packages/a4Reporting" + homepage = "https://bioconductor.org/packages/a4Reporting" git = "https://git.bioconductor.org/packages/a4Reporting.git" + 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@3.4.0:3.4.9', when='@1.24.0') depends_on('r-annaffy', type=('build', 'run')) depends_on('r-xtable', 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 2f4f6f1ebc..e1995f649b 100644 --- a/var/spack/repos/builtin/packages/r-abadata/package.py +++ b/var/spack/repos/builtin/packages/r-abadata/package.py @@ -7,16 +7,24 @@ from spack import * class RAbadata(RPackage): - """Provides the data for the gene expression enrichment analysis - conducted in the package 'ABAEnrichment'. The package includes three - datasets which are derived from the Allen Brain Atlas: (1) Gene - expression data from Human Brain (adults) averaged across donors, - (2) Gene expression data from the Developing Human Brain pooled into - five age categories and averaged across donors and (3) a developmental - effect score based on the Developing Human Brain expression data. - All datasets are restricted to protein coding genes.""" + """Averaged gene expression in human brain regions from Allen Brain Atlas. - homepage = "https://bioconductor.org/packages/ABAData/" - url = "https://bioconductor.org/packages/release/data/experiment/src/contrib/ABAData_1.14.0.tar.gz" + Provides the data for the gene expression enrichment analysis conducted + in the package 'ABAEnrichment'. The package includes three datasets + which are derived from the Allen Brain Atlas: (1) Gene expression data + from Human Brain (adults) averaged across donors, (2) Gene expression + data from the Developing Human Brain pooled into five age categories and + averaged across donors and (3) a developmental effect score based on the + Developing Human Brain expression data. All datasets are restricted to + protein coding genes.""" - version('1.14.0', sha256='d203d968044c292cdfab57a4d6bf52dfb60470bd78b4c9bd88892577ac42b2b7') + homepage = "https://bioconductor.org/packages/ABAData" + git = "https://git.bioconductor.org/packages/ABAData.git" + + version('1.14.0', commit='ed7460e7d2948684db69dd4b4f8e135af50198bd') + version('1.12.0', commit='9c2f0fbda75b06a0807bd714528915920899282d') + version('1.10.0', commit='197edb2c3fc733c9e44dde2b9b86ecedcd2c5e1a') + version('1.8.0', commit='181a4af1af349064eb432255970e925ae2564e1a') + version('1.6.0', commit='517c18a3d1809dde0291eeb47dd2545c7cfcdabe') + + depends_on('r@3.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-abaenrichment/package.py b/var/spack/repos/builtin/packages/r-abaenrichment/package.py index 8c0708ed81..fd2261670a 100644 --- a/var/spack/repos/builtin/packages/r-abaenrichment/package.py +++ b/var/spack/repos/builtin/packages/r-abaenrichment/package.py @@ -7,28 +7,37 @@ from spack import * class RAbaenrichment(RPackage): - """The package ABAEnrichment is designed to test for enrichment - of user defined candidate genes in the set of expressed genes in - different human brain regions. The core function 'aba_enrich' - integrates the expression of the candidate gene set (averaged - across donors) and the structural information of the brain using - an ontology, both provided by the Allen Brain Atlas project. - 'aba_enrich' interfaces the ontology enrichment software FUNC to - perform the statistical analyses. Additional functions provided - in this package like 'get_expression' and 'plot_expression' - facilitate exploring the expression data. From version 1.3.5 - onwards genomic regions can be provided as input, too; and from - version 1.5.9 onwards the function 'get_annotated_genes' offers - an easy way to obtain annotations of genes to enriched or - user-defined brain regions.""" - - homepage = "https://bioconductor.org/packages/ABAEnrichment/" + """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 + brain regions. The core function 'aba_enrich' integrates the expression + of the candidate gene set (averaged across donors) and the structural + information of the brain using an ontology, both provided by the Allen + Brain Atlas project. 'aba_enrich' interfaces the ontology enrichment + software FUNC to perform the statistical analyses. Additional functions + provided in this package like 'get_expression' and 'plot_expression' + facilitate exploring the expression data, and besides the standard + candidate vs. background gene set enrichment, also three additional + tests are implemented, e.g. for cases when genes are ranked instead of + divided into candidate and background.""" + + homepage = "https://bioconductor.org/packages/ABAEnrichment" git = "https://git.bioconductor.org/packages/ABAEnrichment.git" + 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@3.4.0:3.4.9', when='@1.6.0') - depends_on('r-rcpp', type=('build', 'run')) - depends_on('r-gplots', type=('build', 'run')) - depends_on('r-gtools', type=('build', 'run')) - depends_on('r-abadata', type=('build', 'run')) + depends_on('r@3.2:', 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-absseq/package.py b/var/spack/repos/builtin/packages/r-absseq/package.py index 7e418ddf3d..57a1acb7fd 100644 --- a/var/spack/repos/builtin/packages/r-absseq/package.py +++ b/var/spack/repos/builtin/packages/r-absseq/package.py @@ -7,16 +7,23 @@ from spack import * class RAbsseq(RPackage): - """Inferring differential expression genes by absolute counts - difference between two groups, utilizing Negative binomial - distribution and moderating fold-change according to heterogeneity - of dispersion across expression level.""" + """ABSSeq: a new RNA-Seq analysis method based on modelling absolute + expression differences. - homepage = "https://www.bioconductor.org/packages/ABSSeq/" + Inferring differential expression genes by absolute counts difference + between two groups, utilizing Negative binomial distribution and + moderating fold-change according to heterogeneity of dispersion across + expression level.""" + + homepage = "https://bioconductor.org/packages/ABSSeq" git = "https://git.bioconductor.org/packages/ABSSeq.git" + version('1.38.0', commit='b686d92f0f0efdb835982efe761d059bc24b34ce') + version('1.36.0', commit='bd419072432cba4ef58b4b37b3c69c85d78b1c4a') + version('1.34.1', commit='0c3a2514ef644c6e0de3714bc91959a302c9e006') + version('1.32.3', commit='189d81c3d70f957bf50780f76a6ddcee499b4784') version('1.22.8', commit='a67ba49bc156a4522092519644f3ec83d58ebd6a') - depends_on('r@3.4.0:3.4.9', when='@1.22.8') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-locfit', type=('build', 'run')) depends_on('r-limma', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-acde/package.py b/var/spack/repos/builtin/packages/r-acde/package.py index 4b49104897..e44a2c2e4d 100644 --- a/var/spack/repos/builtin/packages/r-acde/package.py +++ b/var/spack/repos/builtin/packages/r-acde/package.py @@ -7,21 +7,27 @@ from spack import * class RAcde(RPackage): - """This package provides a multivariate inferential analysis method - for detecting differentially expressed genes in gene expression data. - It uses artificial components, close to the data's principal - components but with an exact interpretation in terms of differential - genetic expression, to identify differentially expressed genes while - controlling the false discovery rate (FDR). The methods on this - package are described in the vignette or in the article - 'Multivariate Method for Inferential Identification of - Differentially Expressed Genes in Gene Expression Experiments' by - J. P. Acosta, L. Lopez-Kleine and S. Restrepo - (2015, pending publication).""" + """Artificial Components Detection of Differentially Expressed Genes. - homepage = "https://www.bioconductor.org/packages/acde/" - url = "https://bioconductor.org/packages/release/bioc/src/contrib/acde_1.14.0.tar.gz" + This package provides a multivariate inferential analysis method for + detecting differentially expressed genes in gene expression data. It + uses artificial components, close to the data's principal components but + with an exact interpretation in terms of differential genetic + expression, to identify differentially expressed genes while controlling + the false discovery rate (FDR). The methods on this package are + described in the vignette or in the article 'Multivariate Method for + Inferential Identification of Differentially Expressed Genes in Gene + Expression Experiments' by J. P. Acosta, L. Lopez-Kleine and S. Restrepo + (2015, pending publication).""" - version('1.14.0', sha256='e8d9ad688610d4b72cab729141dc46fce580c97128d929885336bb138345b788') + homepage = "https://bioconductor.org/packages/acde" + git = "https://git.bioconductor.org/packages/acde.git" - depends_on('r-boot', type=('build', 'run')) + version('1.14.0', commit='6017c7436a46f186b2a3cea9d2b93274f6dd3417') + version('1.12.0', commit='f6ce5926ac915c2d73436f47daf7f9791645dad4') + version('1.10.0', commit='2c303dec45f3c70bf333a6eacae568a08d5ca010') + version('1.8.0', commit='f7fc3e1dce958445f920d3b28b56abde70bfb9de') + version('1.6.0', commit='244c81f435a077bf7895ea565fa6695e8b079f67') + + depends_on('r@3.3:', type=('build', 'run')) + depends_on('r-boot@1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-acgh/package.py b/var/spack/repos/builtin/packages/r-acgh/package.py index 88b6fa3742..593b63860e 100644 --- a/var/spack/repos/builtin/packages/r-acgh/package.py +++ b/var/spack/repos/builtin/packages/r-acgh/package.py @@ -7,17 +7,23 @@ from spack import * class RAcgh(RPackage): - """Functions for reading aCGH data from image analysis output files - and clone information files, creation of aCGH S3 objects for storing - these data. Basic methods for accessing/replacing, subsetting, - printing and plotting aCGH objects.""" + """Classes and functions for Array Comparative Genomic Hybridization data.. - homepage = "https://www.bioconductor.org/packages/aCGH/" + Functions for reading aCGH data from image analysis output files and + clone information files, creation of aCGH S3 objects for storing these + data. Basic methods for accessing/replacing, subsetting, printing and + plotting aCGH objects.""" + + homepage = "https://bioconductor.org/packages/aCGH" git = "https://git.bioconductor.org/packages/aCGH.git" + version('1.62.0', commit='3b68b69c3380fa3b66dfb060457628a4a9c22d4f') + version('1.60.0', commit='ae581758aaa1755448f0cfef5adfb30d1e820b21') + version('1.58.0', commit='2decc79a21bff5a14d708cdc654e351515b20d3e') + version('1.56.0', commit='f3531ec99fc181044bdcb6a01c9976029efb6235') version('1.54.0', commit='be2ed339449f55c8d218e10c435e4ad356683693') - depends_on('r@3.4.0:3.4.9', when='@1.54.0') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-cluster', type=('build', 'run')) depends_on('r-survival', type=('build', 'run')) depends_on('r-multtest', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-acme/package.py b/var/spack/repos/builtin/packages/r-acme/package.py index 19ecf0fc99..513bbd6491 100644 --- a/var/spack/repos/builtin/packages/r-acme/package.py +++ b/var/spack/repos/builtin/packages/r-acme/package.py @@ -7,21 +7,27 @@ from spack import * class RAcme(RPackage): - """ACME (Algorithms for Calculating Microarray Enrichment) is a set - of tools for analysing tiling array ChIP/chip, DNAse hypersensitivity, - or other experiments that result in regions of the genome showing - "enrichment". It does not rely on a specific array technology - (although the array should be a "tiling" array), is very general - (can be applied in experiments resulting in regions of enrichment), - and is very insensitive to array noise or normalization methods. - It is also very fast and can be applied on whole-genome tiling array - experiments quite easily with enough memory.""" + """Algorithms for Calculating Microarray Enrichment (ACME). - homepage = "https://www.bioconductor.org/packages/ACME/" + ACME (Algorithms for Calculating Microarray Enrichment) is a set of + tools for analysing tiling array ChIP/chip, DNAse hypersensitivity, or + other experiments that result in regions of the genome showing + "enrichment". It does not rely on a specific array technology (although + the array should be a "tiling" array), is very general (can be applied + in experiments resulting in regions of enrichment), and is very + insensitive to array noise or normalization methods. It is also very + fast and can be applied on whole-genome tiling array experiments quite + easily with enough memory.""" + + homepage = "https://bioconductor.org/packages/ACME" git = "https://git.bioconductor.org/packages/ACME.git" + version('2.40.0', commit='38499e512998d54d874a0bfdc173f4ba5de5f01a') + version('2.38.0', commit='cd03196428e8adf62e84f25c4d4545429e2c908b') + version('2.36.0', commit='39e056435b9775d35e7f7fc5446c2c3cafe15670') + version('2.34.0', commit='1f53d43e420e245423fdf2711d0dcb345f829469') version('2.32.0', commit='76372255d7714a0c8128a11c028bf70214dac407') - depends_on('r@3.4.0:3.4.9', when='@2.32.0') - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.10:', type=('build', 'run')) + depends_on('r-biobase@2.5.5:', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-adsplit/package.py b/var/spack/repos/builtin/packages/r-adsplit/package.py index f70aa7996c..beffcadb8c 100644 --- a/var/spack/repos/builtin/packages/r-adsplit/package.py +++ b/var/spack/repos/builtin/packages/r-adsplit/package.py @@ -7,20 +7,26 @@ from spack import * class RAdsplit(RPackage): - """This package implements clustering of microarray gene expression - profiles according to functional annotations. For each term genes - are annotated to, splits into two subclasses are computed and a - significance of the supporting gene set is determined.""" + """Annotation-Driven Clustering. - homepage = "https://www.bioconductor.org/packages/adSplit/" + This package implements clustering of microarray gene expression + profiles according to functional annotations. For each term genes are + annotated to, splits into two subclasses are computed and a significance + of the supporting gene set is determined.""" + + homepage = "https://bioconductor.org/packages/adSplit" git = "https://git.bioconductor.org/packages/adSplit.git" + version('1.54.0', commit='ce8fb61f4a3d0942294da2baa28be1472acb0652') + version('1.52.0', commit='3bd105dbd76c52798b7d52f60c17de62ef13da19') + version('1.50.0', commit='a02e2c994e78ececd5a248575109c5ed36c969db') + version('1.48.0', commit='57dfcd93b9232cf53f05c34179ecb759bb7aff46') version('1.46.0', commit='7e81a83f34d371447f491b3a146bf6851e260c7c') - depends_on('r@3.4.0:3.4.9', when='@1.46.0') + depends_on('r@2.1.0:', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-cluster', type=('build', 'run')) - depends_on('r-go-db', type=('build', 'run')) - depends_on('r-kegg-db', type=('build', 'run')) - depends_on('r-multtest', type=('build', 'run')) + depends_on('r-biobase@1.5.12:', type=('build', 'run')) + depends_on('r-cluster@1.9.1:', type=('build', 'run')) + depends_on('r-go-db@1.8.1:', type=('build', 'run')) + depends_on('r-kegg-db@1.8.1:', type=('build', 'run')) + depends_on('r-multtest@1.6.0:', 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 c998207b74..d909ce1c7a 100644 --- a/var/spack/repos/builtin/packages/r-affxparser/package.py +++ b/var/spack/repos/builtin/packages/r-affxparser/package.py @@ -7,18 +7,24 @@ from spack import * class RAffxparser(RPackage): - """Package for parsing Affymetrix files (CDF, CEL, CHP, BPMAP, BAR). - It provides methods for fast and memory efficient parsing of - Affymetrix files using the Affymetrix' Fusion SDK. Both ASCII- - and binary-based files are supported. Currently, there are methods - for reading chip definition file (CDF) and a cell intensity file (CEL). - These files can be read either in full or in part. For example, - probe signals from a few probesets can be extracted very quickly - from a set of CEL files into a convenient list structure.""" + """Affymetrix File Parsing SDK. - homepage = "https://www.bioconductor.org/packages/affxparser/" + Package for parsing Affymetrix files (CDF, CEL, CHP, BPMAP, BAR). It + provides methods for fast and memory efficient parsing of Affymetrix + files using the Affymetrix' Fusion SDK. Both ASCII- and binary-based + files are supported. Currently, there are methods for reading chip + definition file (CDF) and a cell intensity file (CEL). These files can + be read either in full or in part. For example, probe signals from a few + probesets can be extracted very quickly from a set of CEL files into a + convenient list structure.""" + + homepage = "https://bioconductor.org/packages/affxparser" git = "https://git.bioconductor.org/packages/affxparser.git" + version('1.56.0', commit='20d27701ad2bdfacf34d857bb8ecb4f505b4d056') + version('1.54.0', commit='dce83d23599a964086a84ced4afd13fc43e7cd4f') + version('1.52.0', commit='8e0c4b89ee1cb4ff95f58a5dd947249dc718bc58') + version('1.50.0', commit='01ef641727eadc2cc17b5dbb0b1432364436e3d5') version('1.48.0', commit='2461ea88f310b59c4a9a997a4b3dadedbd65a4aa') - depends_on('r@3.4.0:3.4.9', when='@1.48.0') + depends_on('r@2.14.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affy/package.py b/var/spack/repos/builtin/packages/r-affy/package.py index af454aefd7..51269c1a6e 100644 --- a/var/spack/repos/builtin/packages/r-affy/package.py +++ b/var/spack/repos/builtin/packages/r-affy/package.py @@ -7,19 +7,27 @@ from spack import * class RAffy(RPackage): - """The package contains functions for exploratory oligonucleotide array + """Methods for Affymetrix Oligonucleotide Arrays. + + The package contains functions for exploratory oligonucleotide array analysis. The dependence on tkWidgets only concerns few convenience functions. 'affy' is fully functional without it.""" - homepage = "https://bioconductor.org/packages/affy/" + homepage = "https://bioconductor.org/packages/affy" git = "https://git.bioconductor.org/packages/affy.git" + version('1.62.0', commit='097ab4aa98a1700c5fae65d07bed44a477714605') + version('1.60.0', commit='fcae363e58b322ad53584d9e15e80fa2f9d17206') + version('1.58.0', commit='4698231f45f225228f56c0708cd477ad450b4ee6') + version('1.56.0', commit='d36a7b8f05b1ef60162d94e75037d45c48f88871') version('1.54.0', commit='a815f02906fcf491b28ed0a356d6fce95a6bd20e') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-affyio', type=('build', 'run')) - depends_on('r-biocinstaller', type=('build', 'run')) + depends_on('r@2.8.0:', type=('build', 'run')) + 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-preprocesscore', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.54.0') + + depends_on('r-biocmanager', when='@1.60.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 58d14736a6..4625411e96 100644 --- a/var/spack/repos/builtin/packages/r-affycomp/package.py +++ b/var/spack/repos/builtin/packages/r-affycomp/package.py @@ -7,13 +7,19 @@ from spack import * class RAffycomp(RPackage): - """The package contains functions that can be used to compare - expression measures for Affymetrix Oligonucleotide Arrays.""" + """Graphics Toolbox for Assessment of Affymetrix Expression Measures. - homepage = "https://www.bioconductor.org/packages/affycomp/" + The package contains functions that can be used to compare expression + measures for Affymetrix Oligonucleotide Arrays.""" + + homepage = "https://bioconductor.org/packages/affycomp" git = "https://git.bioconductor.org/packages/affycomp.git" + version('1.60.0', commit='5dbe61fa04941529a0fc70b728021c8e00c4ba0c') + version('1.58.0', commit='99607b2c4aad37e3e63eccbd12d0d533762f28ef') + version('1.56.0', commit='b0994da338be19396e647c680059fd35341b50a2') + version('1.54.0', commit='65281c1ca37147c2a54ad3722a8d5ff0ffa5acc5') version('1.52.0', commit='1b97a1cb21ec93bf1e5c88d5d55b988059612790') - depends_on('r@3.4.0:3.4.9', when='@1.52.0') - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.13.0:', type=('build', 'run')) + depends_on('r-biobase@2.3.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affycompatible/package.py b/var/spack/repos/builtin/packages/r-affycompatible/package.py index 163c3a5468..1c07feb5b7 100644 --- a/var/spack/repos/builtin/packages/r-affycompatible/package.py +++ b/var/spack/repos/builtin/packages/r-affycompatible/package.py @@ -7,19 +7,25 @@ from spack import * class RAffycompatible(RPackage): - """This package provides an interface to Affymetrix chip annotation - and sample attribute files. The package allows an easy way for users - to download and manage local data bases of Affynmetrix NetAffx - annotation files. The package also provides access to GeneChip - Operating System (GCOS) and GeneChip Command Console - (AGCC)-compatible sample annotation files.""" + """Affymetrix GeneChip software compatibility. - homepage = "https://www.bioconductor.org/packages/AffyCompatible/" + This package provides an interface to Affymetrix chip annotation and + sample attribute files. The package allows an easy way for users to + download and manage local data bases of Affynmetrix NetAffx annotation + files. The package also provides access to GeneChip Operating System + (GCOS) and GeneChip Command Console (AGCC)-compatible sample annotation + files.""" + + homepage = "https://bioconductor.org/packages/AffyCompatible" git = "https://git.bioconductor.org/packages/AffyCompatible.git" + version('1.44.0', commit='98a27fbe880551fd32a5febb6c7bde0807eac476') + version('1.42.0', commit='699303cc20f292591e2faa12e211c588efb9eaa8') + version('1.40.0', commit='44838bdb5e8c26afbd898c49ed327ddd1a1d0301') + version('1.38.0', commit='d47ee3a3a3d3bce11121e80fe02ee216b9199b12') version('1.36.0', commit='dbbfd43a54ae1de6173336683a9461084ebf38c3') - depends_on('r@3.4.0:3.4.9', when=('@1.36.0')) - depends_on('r-xml', type=('build', 'run')) - depends_on('r-rcurl', type=('build', 'run')) + depends_on('r@2.7.0:', type=('build', 'run')) + depends_on('r-xml@2.8-1:', type=('build', 'run')) + depends_on('r-rcurl@0.8-1:', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affycontam/package.py b/var/spack/repos/builtin/packages/r-affycontam/package.py index 10e35b6cd7..254ac53532 100644 --- a/var/spack/repos/builtin/packages/r-affycontam/package.py +++ b/var/spack/repos/builtin/packages/r-affycontam/package.py @@ -7,15 +7,21 @@ from spack import * class RAffycontam(RPackage): - """structured corruption of cel file data to demonstrate QA - effectiveness.""" + """structured corruption of affymetrix cel file data. - homepage = "https://www.bioconductor.org/packages/affyContam/" + structured corruption of cel file data to demonstrate QA + effectiveness""" + + homepage = "https://bioconductor.org/packages/affyContam" git = "https://git.bioconductor.org/packages/affyContam.git" + version('1.42.0', commit='8a5e94a5ae8c2ecfafa6177b84a6e8ab07e14fbe') + version('1.40.0', commit='dfd5fd6ae04941dddbda03f656540b71b2fbc614') + version('1.38.0', commit='84651e8eade61619afefc83bb290047da101a5bc') + version('1.36.0', commit='aeb684a7d3f6fa9243f3946d214de53649fa4fd6') version('1.34.0', commit='03529f26d059c19e069cdda358dbf7789b6d4c40') - depends_on('r@3.4.0:3.4.9', when=('@1.34.0')) + depends_on('r@2.7.0:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) depends_on('r-affydata', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affycoretools/package.py b/var/spack/repos/builtin/packages/r-affycoretools/package.py index b7aad34a95..eba33cd6ca 100644 --- a/var/spack/repos/builtin/packages/r-affycoretools/package.py +++ b/var/spack/repos/builtin/packages/r-affycoretools/package.py @@ -7,15 +7,21 @@ from spack import * class RAffycoretools(RPackage): - """Various wrapper functions that have been written to streamline - the more common analyses that a core Biostatistician might see.""" + """Functions useful for those doing repetitive analyses with Affymetrix + GeneChips. - homepage = "https://www.bioconductor.org/packages/affycoretools/" + Various wrapper functions that have been written to streamline the more + common analyses that a core Biostatistician might see.""" + + homepage = "https://bioconductor.org/packages/affycoretools" git = "https://git.bioconductor.org/packages/affycoretools.git" + 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@3.4.0:3.4.9', when='@1.48.0') depends_on('r-biobase', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) depends_on('r-limma', type=('build', 'run')) @@ -33,3 +39,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')) diff --git a/var/spack/repos/builtin/packages/r-affydata/package.py b/var/spack/repos/builtin/packages/r-affydata/package.py index c5bcc2c329..bcf4caf4cc 100644 --- a/var/spack/repos/builtin/packages/r-affydata/package.py +++ b/var/spack/repos/builtin/packages/r-affydata/package.py @@ -7,14 +7,20 @@ from spack import * class RAffydata(RPackage): - """Example datasets of a slightly large size. They represent 'real - world examples', unlike the artificial examples included in the - package affy.""" + """Affymetrix Data for Demonstration Purpose. - homepage = "https://www.bioconductor.org/packages/affydata/" - url = "https://www.bioconductor.org/packages/release/data/experiment/src/contrib/affydata_1.32.0.tar.gz" + Example datasets of a slightly large size. They represent 'real world + examples', unlike the artificial examples included in the package + affy.""" - version('1.32.0', sha256='059e05a2b8908720801d684d5617d5d5e45db7a5999c5659a22daf87658538d1') + homepage = "https://bioconductor.org/packages/affydata" + git = "https://git.bioconductor.org/packages/affydata.git" - depends_on('r@3.4.0:3.4.9', when=('@1.24.0')) - depends_on('r-affy', type=('build', 'run')) + version('1.32.0', commit='c7cef93f6edd23024f4b1985b90e89058874c2bd') + version('1.30.0', commit='d5408d84b37ebae73b40a448dd52baf7b4a13bea') + version('1.28.0', commit='a106a5514c352bf0bbc624ded58a93886d4ce96f') + version('1.26.0', commit='eb0a44a39990b361f9fb1094837ffafb320f39a9') + version('1.24.0', commit='663991606507572f083232e2b393d901270291d4') + + depends_on('r@2.4.0:', type=('build', 'run')) + depends_on('r-affy@1.23.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affyexpress/package.py b/var/spack/repos/builtin/packages/r-affyexpress/package.py index f281ebecb9..b49240495d 100644 --- a/var/spack/repos/builtin/packages/r-affyexpress/package.py +++ b/var/spack/repos/builtin/packages/r-affyexpress/package.py @@ -7,15 +7,21 @@ from spack import * class RAffyexpress(RPackage): - """The purpose of this package is to provide a comprehensive and - easy-to-use tool for quality assessment and to identify differentially - expressed genes in the Affymetrix gene expression data.""" + """Affymetrix Quality Assessment and Analysis Tool. - homepage = "https://www.bioconductor.org/packages/AffyExpress/" + The purpose of this package is to provide a comprehensive and easy-to- + use tool for quality assessment and to identify differentially expressed + genes in the Affymetrix gene expression data.""" + + homepage = "https://bioconductor.org/packages/AffyExpress" git = "https://git.bioconductor.org/packages/AffyExpress.git" + version('1.50.0', commit='8b98703b63396df9692afb0e15b594658125cc96') + version('1.48.0', commit='dbaed516b7529ef4f7588aafaf3c5f1d53a9bb92') + version('1.46.0', commit='2add4a4436e21aa20f1ededbfd5f1365a3d28c85') + version('1.44.0', commit='7517bc8b363ceb107d5dca66dd74f94edefde52a') version('1.42.0', commit='f5c5cf6173f4419e25f4aeff5e6b705a40abc371') - depends_on('r@3.4.0:3.4.9', when='@1.42.0') - depends_on('r-affy', type=('build', 'run')) + depends_on('r@2.10:', type=('build', 'run')) + depends_on('r-affy@1.23.4:', type=('build', 'run')) depends_on('r-limma', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affyilm/package.py b/var/spack/repos/builtin/packages/r-affyilm/package.py index a32532a55f..3f83a05312 100644 --- a/var/spack/repos/builtin/packages/r-affyilm/package.py +++ b/var/spack/repos/builtin/packages/r-affyilm/package.py @@ -7,19 +7,24 @@ from spack import * class RAffyilm(RPackage): - """affyILM is a preprocessing tool which estimates gene - expression levels for Affymetrix Gene Chips. Input from - physical chemistry is employed to first background subtract - intensities before calculating concentrations on behalf - of the Langmuir model.""" + """Linear Model of background subtraction and the Langmuir isotherm. - homepage = "https://www.bioconductor.org/packages/affyILM/" + affyILM is a preprocessing tool which estimates gene expression levels + for Affymetrix Gene Chips. Input from physical chemistry is employed to + first background subtract intensities before calculating concentrations + on behalf of the Langmuir model.""" + + homepage = "https://bioconductor.org/packages/affyILM" git = "https://git.bioconductor.org/packages/affyILM.git" + version('1.36.0', commit='619ced931ba72860ce4cb41c841bbca1636a1132') + version('1.34.0', commit='2c02ed2d8fa9a9585d41cf4db0b75d0a07ad8564') + version('1.32.0', commit='860f2ddada80435d309ba334eff3fab503817755') + version('1.30.0', commit='c07d91ae52a2a48f0a5f212c3ecf3243741bee13') version('1.28.0', commit='307bee3ebc599e0ea4a1d6fa8d5511ccf8bef7de') - depends_on('r@3.4.0:3.4.9', when='@1.28.0') + depends_on('r@2.10.0:', type=('build', 'run')) depends_on('r-gcrma', type=('build', 'run')) - depends_on('r-affxparser', type=('build', 'run')) + depends_on('r-affxparser@1.16.0:', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affyio/package.py b/var/spack/repos/builtin/packages/r-affyio/package.py index 4ef1265271..f9a0802378 100644 --- a/var/spack/repos/builtin/packages/r-affyio/package.py +++ b/var/spack/repos/builtin/packages/r-affyio/package.py @@ -7,14 +7,20 @@ from spack import * class RAffyio(RPackage): - """Routines for parsing Affymetrix data files based upon file format + """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 formats.""" - homepage = "https://bioconductor.org/packages/affyio/" + homepage = "https://bioconductor.org/packages/affyio" git = "https://git.bioconductor.org/packages/affyio.git" + version('1.54.0', commit='c0e306e1805a556a1074d1af1acdd18e0a04477f') + version('1.52.0', commit='9da725ac1098a22a370fa96eb03e51e4f6d5d963') + version('1.50.0', commit='911ea4f8e4cdf7b649b87ef7ed1a5f5b111ef38a') + version('1.48.0', commit='01727a4492c3a0d50453fc91892e04bf5f7fcadb') version('1.46.0', commit='977597f2772e08273d86579486f452170566c880') + depends_on('r@2.6.0:', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.46.0') diff --git a/var/spack/repos/builtin/packages/r-affypdnn/package.py b/var/spack/repos/builtin/packages/r-affypdnn/package.py index 703859244f..3bd2b13da2 100644 --- a/var/spack/repos/builtin/packages/r-affypdnn/package.py +++ b/var/spack/repos/builtin/packages/r-affypdnn/package.py @@ -7,13 +7,19 @@ from spack import * class RAffypdnn(RPackage): - """The package contains functions to perform the PDNN method - described by Li Zhang et al.""" + """Probe Dependent Nearest Neighbours (PDNN) for the affy package. - homepage = "https://www.bioconductor.org/packages/affypdnn/" + The package contains functions to perform the PDNN method described by + Li Zhang et al.""" + + homepage = "https://bioconductor.org/packages/affypdnn" git = "https://git.bioconductor.org/packages/affypdnn.git" + version('1.58.0', commit='83d8b6b0d9606845bd77dbf7164dd5b160f32ccf') + version('1.56.0', commit='5fd9c5265fb895a1f646cf72e8d5169669d979f2') + version('1.54.0', commit='ea971b1b9cc443695a6614bef92e8e116ee87d55') + version('1.52.0', commit='17d74c593ce4f0dfd43f13a5016e482c1399d21e') version('1.50.0', commit='97ff68e9f51f31333c0330435ea23b212b3ed18a') - depends_on('r@3.4.0:3.4.9', when='@1.50.0') - depends_on('r-affy', type=('build', 'run')) + depends_on('r@2.13.0:', type=('build', 'run')) + depends_on('r-affy@1.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affyplm/package.py b/var/spack/repos/builtin/packages/r-affyplm/package.py index 036aa6dcf3..d3a94634de 100644 --- a/var/spack/repos/builtin/packages/r-affyplm/package.py +++ b/var/spack/repos/builtin/packages/r-affyplm/package.py @@ -7,21 +7,27 @@ from spack import * class RAffyplm(RPackage): - """A package that extends and improves the functionality of - the base affy package. Routines that make heavy use of compiled - code for speed. Central focus is on implementation of methods - for fitting probe-level models and tools using these models. - PLM based quality assessment tools.""" + """Methods for fitting probe-level models. - homepage = "https://www.bioconductor.org/packages/affyPLM/" + A package that extends and improves the functionality of the base affy + package. Routines that make heavy use of compiled code for speed. + Central focus is on implementation of methods for fitting probe-level + models and tools using these models. PLM based quality assessment + tools.""" + + homepage = "https://bioconductor.org/packages/affyPLM" git = "https://git.bioconductor.org/packages/affyPLM.git" + version('1.60.0', commit='b11e377d6af3fd0f28aba8195ebf171003da1a9d') + version('1.58.0', commit='32764c7691d9a72a301d50042a8844112887a1c8') + version('1.56.0', commit='13dfc558281af9a177d4d592c34cf7ace629af0e') + version('1.54.0', commit='09cf5f6e01dd2d0aae3e9ddab27301f04bfd645c') version('1.52.1', commit='e8613a6018c4ee58045df6bf19128844f50a1f43') - depends_on('r@3.4.0:3.4.9', when='@1.52.1') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-affy', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.6.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.3.2:', type=('build', 'run')) + depends_on('r-affy@1.11.0:', type=('build', 'run')) + depends_on('r-biobase@2.17.8:', type=('build', 'run')) depends_on('r-gcrma', type=('build', 'run')) - depends_on('r-preprocesscore', type=('build', 'run')) + depends_on('r-preprocesscore@1.5.1:', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-affyqcreport/package.py b/var/spack/repos/builtin/packages/r-affyqcreport/package.py index 1092c436f4..4e6b053e51 100644 --- a/var/spack/repos/builtin/packages/r-affyqcreport/package.py +++ b/var/spack/repos/builtin/packages/r-affyqcreport/package.py @@ -7,17 +7,22 @@ from spack import * class RAffyqcreport(RPackage): - """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 arrays in an AffyBatch object.""" + """QC Report Generation for affyBatch objects. - homepage = "https://www.bioconductor.org/packages/affyQCReport/" + 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 + arrays in an AffyBatch object.""" + + homepage = "https://bioconductor.org/packages/affyQCReport" git = "https://git.bioconductor.org/packages/affyQCReport.git" + version('1.62.0', commit='92d4124b688b90a6a9b8a21ab9d13d92b368cee4') + version('1.60.0', commit='d0c15b1c56fc1caf6f114877ea6c1b8483a0dcfa') + version('1.58.0', commit='14be93a1e7a6d1a64c38ed2f53e0c52a389b2a1b') + version('1.56.0', commit='5c824045c7364155eafc2dd5bb342374aa1ca072') version('1.54.0', commit='5572e9981dc874b78b4adebf58080cac3fbb69e1') - depends_on('r@3.4.0:3.4.9', when='@1.54.0') - depends_on('r-biobase', type=('build', 'run')) + depends_on('r-biobase@1.13.16:', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) depends_on('r-lattice', type=('build', 'run')) depends_on('r-affyplm', 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 bfbbdad428..eafc202fe9 100644 --- a/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py +++ b/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py @@ -7,17 +7,23 @@ from spack import * class RAffyrnadegradation(RPackage): - """The package helps with the assessment and correction of - RNA degradation effects in Affymetrix 3' expression arrays. - The parameter d gives a robust and accurate measure of RNA - integrity. The correction removes the probe positional bias, - and thus improves comparability of samples that are affected - by RNA degradation.""" + """Analyze and correct probe positional bias in microarray data due to RNA + degradation. - homepage = "https://www.bioconductor.org/packages/AffyRNADegradation/" + The package helps with the assessment and correction of RNA degradation + effects in Affymetrix 3' expression arrays. The parameter d gives a + robust and accurate measure of RNA integrity. The correction removes the + probe positional bias, and thus improves comparability of samples that + are affected by RNA degradation.""" + + homepage = "https://bioconductor.org/packages/AffyRNADegradation" git = "https://git.bioconductor.org/packages/AffyRNADegradation.git" + version('1.30.0', commit='620c464fb09248e1c7a122828eab59a4fb778cc1') + version('1.28.0', commit='aff91d78fa9e76edaa3ef6a9a43b98b86cc44c24') + version('1.26.0', commit='6ab03ad624701464280bf7dfe345d200e846298a') + version('1.24.0', commit='1f85f3da4720cef94623828713eb84d8accbcf8a') version('1.22.0', commit='0fa78f8286494711a239ded0ba587b0de47c15d3') - depends_on('r@3.4.0:3.4.9', when='@1.22.0') + depends_on('r@2.9.0:', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-agdex/package.py b/var/spack/repos/builtin/packages/r-agdex/package.py index c9bf147975..0754a8e66e 100644 --- a/var/spack/repos/builtin/packages/r-agdex/package.py +++ b/var/spack/repos/builtin/packages/r-agdex/package.py @@ -7,14 +7,20 @@ from spack import * class RAgdex(RPackage): - """A tool to evaluate agreement of differential expression - for cross-species genomics.""" + """Agreement of Differential Expression Analysis. - homepage = "http://bioconductor.org/packages/AGDEX/" + A tool to evaluate agreement of differential expression for cross- + species genomics""" + + homepage = "https://bioconductor.org/packages/AGDEX" git = "https://git.bioconductor.org/packages/AGDEX.git" + version('1.32.0', commit='254ad2c876ab9ac48c3c3b395160dccabc084acf') + version('1.30.0', commit='d6cc21ed7e11e6644399495fa5f8b36368625d4b') + version('1.28.0', commit='7d78ee424485018b73cd019ceaed7a2ed53adf3f') + version('1.26.0', commit='260bc641111770176707d4d43e67b5877bf5eb82') version('1.24.0', commit='29c6bcfa6919a5c6d8bcb36b44e75145a60ce7b5') - depends_on('r@3.4.0:3.4.9', when='@1.24.0') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-gseabase', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-agilp/package.py b/var/spack/repos/builtin/packages/r-agilp/package.py index 971c2c4b84..e1feadffcd 100644 --- a/var/spack/repos/builtin/packages/r-agilp/package.py +++ b/var/spack/repos/builtin/packages/r-agilp/package.py @@ -7,11 +7,17 @@ from spack import * class RAgilp(RPackage): - """Agilent expression array processing package.""" + """Agilent expression array processing package. - homepage = "http://bioconductor.org/packages/agilp/" + 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.16.0', commit='2900d6066317f21d076b3a043b16f32eca168c47') + version('3.14.0', commit='8feb047d70216013462ea7806e9227d192b60c61') + version('3.12.0', commit='a86dea1b03b2b56c2c8317d4b10903fb8948ffcb') + version('3.10.0', commit='cffec1004704a0c5119a50e3ad474897978981be') version('3.8.0', commit='c772a802af1b4c0741f2edd78053a0425160ea53') - depends_on('r@3.4.0:3.4.9', when='@3.8.0') + depends_on('r@2.14.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-agimicrorna/package.py b/var/spack/repos/builtin/packages/r-agimicrorna/package.py index 8c905a69dc..421205830f 100644 --- a/var/spack/repos/builtin/packages/r-agimicrorna/package.py +++ b/var/spack/repos/builtin/packages/r-agimicrorna/package.py @@ -7,16 +7,21 @@ from spack import * class RAgimicrorna(RPackage): - """Processing and Analysis of Agilent microRNA data.""" + """Processing and Differential Expression Analysis of Agilent microRNA + chips.""" - homepage = "https://www.bioconductor.org/packages/AgiMicroRna/" + homepage = "https://bioconductor.org/packages/AgiMicroRna" git = "https://git.bioconductor.org/packages/AgiMicroRna.git" + 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@3.4.0:3.4.9', when='@2.26.0') - depends_on('r-affycoretools', type=('build', 'run')) - depends_on('r-preprocesscore', type=('build', 'run')) - depends_on('r-affy', type=('build', 'run')) - depends_on('r-limma', 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')) + depends_on('r-affy@1.22:', type=('build', 'run')) + depends_on('r-preprocesscore', type=('build', 'run')) + depends_on('r-affycoretools', 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 baf7f878b6..38eba694b5 100644 --- a/var/spack/repos/builtin/packages/r-aims/package.py +++ b/var/spack/repos/builtin/packages/r-aims/package.py @@ -7,17 +7,23 @@ from spack import * class RAims(RPackage): - """This package contains the AIMS implementation. It contains - necessary functions to assign the five intrinsic molecular - subtypes (Luminal A, Luminal B, Her2-enriched, Basal-like, - Normal-like). Assignments could be done on individual samples - as well as on dataset of gene expression data.""" + """AIMS : Absolute Assignment of Breast Cancer Intrinsic Molecular Subtype. - homepage = "http://bioconductor.org/packages/AIMS/" + This package contains the AIMS implementation. It contains necessary + functions to assign the five intrinsic molecular subtypes (Luminal A, + Luminal B, Her2-enriched, Basal-like, Normal-like). Assignments could be + done on individual samples as well as on dataset of gene expression + data.""" + + homepage = "https://bioconductor.org/packages/AIMS" git = "https://git.bioconductor.org/packages/AIMS.git" + version('1.16.0', commit='86cb8c998ade3003cd34a5405b218ae07d97bf84') + version('1.14.1', commit='4125c4217a7e4f00169b5ba65dcc3778fdd33c6f') + version('1.12.0', commit='d7eaa723d19a6aca37df244fd0b3d5426ed0a626') + version('1.10.0', commit='972945980b39168502a02ac3aa396f9b99fb3d71') version('1.8.0', commit='86b866c20e191047492c51b43e3f73082c3f8357') - depends_on('r@3.4.0:3.4.9', when='@1.8.0') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-e1071', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-aldex2/package.py b/var/spack/repos/builtin/packages/r-aldex2/package.py index 856f7b50ae..0fc9a5c279 100644 --- a/var/spack/repos/builtin/packages/r-aldex2/package.py +++ b/var/spack/repos/builtin/packages/r-aldex2/package.py @@ -7,26 +7,33 @@ from spack import * class RAldex2(RPackage): - """A differential abundance analysis for the comparison of - two or more conditions. For example, single-organism and - meta-RNA-seq high-throughput sequencing assays, or of - selected and unselected values from in-vitro sequence selections. - Uses a Dirichlet-multinomial model to infer abundance from counts, - that has been optimized for three or more experimental replicates. - Infers sampling variation and calculates the expected false - discovery rate given the biological and sampling variation - using the Wilcox rank test or Welches t-test (aldex.ttest) or - the glm and Kruskal Wallis tests (aldex.glm). Reports both P - and fdr values calculated by the Benjamini Hochberg correction.""" - - homepage = "http://bioconductor.org/packages/ALDEx2/" + """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- + seq assays as well as selected and unselected values from in-vitro + sequence selections. Uses a Dirichlet-multinomial model to infer + abundance from counts, optimized for three or more experimental + replicates. The method infers biological and sampling variation to + calculate the expected false discovery rate, given the variation, based + on a Wilcoxon Rank Sum test and Welch's t-test (via aldex.ttest), a + Kruskal-Wallis test (via aldex.kw), a generalized linear model (via + aldex.glm), or a correlation test (via aldex.corr). All tests report + p-values and Benjamini-Hochberg corrected p-values.""" + + homepage = "https://bioconductor.org/packages/ALDEx2" git = "https://git.bioconductor.org/packages/ALDEx2.git" + 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@3.4.0:3.4.9', when='@1.8.0') depends_on('r-s4vectors', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-genomicranges', 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 cb55456cb9..ee928e15b3 100644 --- a/var/spack/repos/builtin/packages/r-allelicimbalance/package.py +++ b/var/spack/repos/builtin/packages/r-allelicimbalance/package.py @@ -7,24 +7,30 @@ from spack import * class RAllelicimbalance(RPackage): - """Provides a framework for allelic specific expression - investigation using RNA-seq data.""" + """Investigates Allele Specific Expression. - homepage = "http://bioconductor.org/packages/AllelicImbalance/" + Provides a framework for allelic specific expression investigation using + RNA-seq data.""" + + homepage = "https://bioconductor.org/packages/AllelicImbalance" git = "https://git.bioconductor.org/packages/AllelicImbalance.git" + version('1.22.0', commit='04692e367e8c6aac475d06adfd7cfa629baab05a') + version('1.20.0', commit='4cd3a789d872151b0d906ec419677271fecdf7c3') + version('1.18.0', commit='6d6eed7487e9207dba556bc76283bcc7745808ea') + version('1.16.0', commit='85f652ae8a0dd15535819b6e934065182df5544a') version('1.14.0', commit='35958534945819baafde0e13d1eb4d05a514142c') - depends_on('r@3.4.0:3.4.9', when='@1.14.0') + depends_on('r@3.2.0:', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-summarizedexperiment', type=('build', 'run')) + depends_on('r-summarizedexperiment@0.2.0:', type=('build', 'run')) depends_on('r-genomicalignments', 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-variantannotation', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-s4vectors@0.9.25:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-rsamtools', type=('build', 'run')) depends_on('r-genomicfeatures', type=('build', 'run')) @@ -35,3 +41,15 @@ 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 c169833a45..3aa1aec7d3 100644 --- a/var/spack/repos/builtin/packages/r-alpine/package.py +++ b/var/spack/repos/builtin/packages/r-alpine/package.py @@ -7,15 +7,21 @@ from spack import * class RAlpine(RPackage): - """Fragment sequence bias modeling and correction for RNA-seq - transcript abundance estimation.""" + """alpine. - homepage = "http://bioconductor.org/packages/alpine/" + Fragment sequence bias modeling and correction for RNA-seq transcript + abundance estimation.""" + + homepage = "https://bioconductor.org/packages/alpine" git = "https://git.bioconductor.org/packages/alpine.git" + version('1.10.0', commit='bf22597eb2c6c6aaa26900ed4ece96ce7256e77c') + version('1.8.0', commit='ddaa0b4517f0909460aa1bd33c8e43dc6c8d23d4') + version('1.6.0', commit='ea55fcb3cedb5caa20d8264bb29a4975041f5274') + version('1.4.0', commit='c85beb208fd6bfc0a61a483a98498b589640f946') version('1.2.0', commit='896872e6071769e1ac2cf786974edb8b875c45eb') - depends_on('r@3.4.0:3.4.9', when='@1.2.0') + depends_on('r@3.3:', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-alsace/package.py b/var/spack/repos/builtin/packages/r-alsace/package.py index 00a21e60ca..507fa456c3 100644 --- a/var/spack/repos/builtin/packages/r-alsace/package.py +++ b/var/spack/repos/builtin/packages/r-alsace/package.py @@ -7,18 +7,24 @@ from spack import * class RAlsace(RPackage): - """Alternating Least Squares (or Multivariate Curve Resolution) - for analytical chemical data, in particular hyphenated data where - the first direction is a retention time axis, and the second a - spectral axis. Package builds on the basic als function from the - ALS package and adds functionality for high-throughput analysis, - including definition of time windows, clustering of profiles, - retention time correction, etcetera.""" + """ALS for the Automatic Chemical Exploration of mixtures. - homepage = "https://www.bioconductor.org/packages/alsace/" + Alternating Least Squares (or Multivariate Curve Resolution) for + analytical chemical data, in particular hyphenated data where the first + direction is a retention time axis, and the second a spectral axis. + Package builds on the basic als function from the ALS package and adds + functionality for high-throughput analysis, including definition of time + windows, clustering of profiles, retention time correction, etcetera.""" + + homepage = "https://bioconductor.org/packages/alsace" git = "https://git.bioconductor.org/packages/alsace.git" + version('1.20.0', commit='47f1cf8daafc864e5e3418009f349ce85d6b0389') + version('1.18.0', commit='c9fc43c7b441de43b14ef1be69926c4c4a566191') + version('1.16.0', commit='5a51a19aeccbba0123222201cb7a228559f29653') + version('1.14.0', commit='aebb13b00eb850f9569391c4c92183b55b70ae89') version('1.12.0', commit='1364c65bbff05786d05c02799fd44fd57748fae3') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-als', type=('build', 'run')) - depends_on('r-ptw', type=('build', 'run')) + depends_on('r-ptw@1.0.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-altcdfenvs/package.py b/var/spack/repos/builtin/packages/r-altcdfenvs/package.py index b774502a26..b1d95c731b 100644 --- a/var/spack/repos/builtin/packages/r-altcdfenvs/package.py +++ b/var/spack/repos/builtin/packages/r-altcdfenvs/package.py @@ -7,17 +7,23 @@ from spack import * class RAltcdfenvs(RPackage): - """Convenience data structures and functions to handle cdfenvs.""" + """alternative CDF environments (aka probeset mappings). - homepage = "https://www.bioconductor.org/packages/altcdfenvs/" + Convenience data structures and functions to handle cdfenvs""" + + homepage = "https://bioconductor.org/packages/altcdfenvs" git = "https://git.bioconductor.org/packages/altcdfenvs.git" + version('2.46.0', commit='90a11e748a5af98cabfd6670a5b7b256420d172b') + version('2.44.0', commit='d804f6432422bd532abab415710f890b36cc8133') + version('2.42.0', commit='00ec6461877a063d938494b8ed0cd273a3b20b85') + version('2.40.0', commit='517a208f49f168bdd3cde40ed216282c417237d7') version('2.38.0', commit='2e92b9da76dbe50af4bf33c525134e29e9809291') - depends_on('r@3.4.0:3.4.9', when='@2.38.0') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.7:', type=('build', 'run')) + depends_on('r-biocgenerics@0.1.0:', type=('build', 'run')) + depends_on('r-s4vectors@0.9.25:', type=('build', 'run')) + depends_on('r-biobase@2.15.1:', type=('build', 'run')) depends_on('r-affy', type=('build', 'run')) depends_on('r-makecdfenv', type=('build', 'run')) depends_on('r-biostrings', 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 64009d8bd5..929ec04ce1 100644 --- a/var/spack/repos/builtin/packages/r-ampliqueso/package.py +++ b/var/spack/repos/builtin/packages/r-ampliqueso/package.py @@ -7,26 +7,32 @@ from spack import * class RAmpliqueso(RPackage): - """The package provides tools and reports for the analysis of - amplicon sequencing panels, such as AmpliSeq.""" + """Analysis of amplicon enrichment panels. - homepage = "https://www.bioconductor.org/packages/ampliQueso/" + The package provides tools and reports for the analysis of amplicon + sequencing panels, such as AmpliSeq""" + + homepage = "https://bioconductor.org/packages/3.8/bioc/html/ampliQueso.html" git = "https://git.bioconductor.org/packages/ampliQueso.git" + version('1.21.0', commit='ed99c5194a452ee299a93e981da2224e4dab5bdd') + version('1.20.0', commit='ed064ffe9c5f2b47136e5f0f2e2c4214af4deae8') + version('1.18.0', commit='c27fa51094135ef8da52cd2b34a27ec6454abd8e') + version('1.16.0', commit='25d2543ff9dedef4f966f999c95cdf87185d3bb3') version('1.14.0', commit='9a4c26ec594171279aba8ab7fe59c4a2ea09b06b') - depends_on('r@3.4.0:3.4.9', when='@1.14.0') - depends_on('r-samr', type=('build', 'run')) - depends_on('r-deseq', type=('build', 'run')) - depends_on('r-edger', type=('build', 'run')) - depends_on('r-xtable', type=('build', 'run')) - depends_on('r-statmod', type=('build', 'run')) - depends_on('r-genefilter', type=('build', 'run')) - depends_on('r-variantannotation', type=('build', 'run')) - depends_on('r-foreach', type=('build', 'run')) - depends_on('r-doparallel', type=('build', 'run')) - depends_on('r-gplots', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) - depends_on('r-rgl', 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')) - depends_on('r-rnaseqmap', type=('build', 'run')) + depends_on('r-rgl', type=('build', 'run')) + depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r-gplots', type=('build', 'run')) + depends_on('r-doparallel', type=('build', 'run')) + depends_on('r-foreach', type=('build', 'run')) + depends_on('r-variantannotation', type=('build', 'run')) + depends_on('r-genefilter', type=('build', 'run')) + depends_on('r-statmod', type=('build', 'run')) + depends_on('r-xtable', type=('build', 'run')) + depends_on('r-edger', type=('build', 'run')) + depends_on('r-deseq', type=('build', 'run')) + depends_on('r-samr', 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 8e71cc5a8e..257b9d2570 100644 --- a/var/spack/repos/builtin/packages/r-analysispageserver/package.py +++ b/var/spack/repos/builtin/packages/r-analysispageserver/package.py @@ -7,15 +7,21 @@ from spack import * class RAnalysispageserver(RPackage): - """AnalysisPageServer is a modular system that enables sharing - of customizable R analyses via the web.""" + """A framework for sharing interactive data and plots from R through the + web. - homepage = "https://www.bioconductor.org/packages/AnalysisPageServer/" + AnalysisPageServer is a modular system that enables sharing of + customizable R analyses via the web.""" + + homepage = "https://bioconductor.org/packages/AnalysisPageServer" git = "https://git.bioconductor.org/packages/AnalysisPageServer.git" + version('1.18.1', commit='08bd85e872d3f2b0c1fa148cf30bcd2d1a29b630') + version('1.16.0', commit='67b063523f80e2af1d26262367ff50f34e195174') + version('1.14.0', commit='620c0ea1e129ddd1a0866e2c9d7c3fcf06a8baf4') + version('1.12.0', commit='146501974ef1938ee1ec4eb293ea7eeca331a0dc') version('1.10.0', commit='876c87073be116fa15a1afdd407e21152eb80d50') - depends_on('r@3.4.0:3.4.9', when='@1.10.0') depends_on('r-log4r', type=('build', 'run')) depends_on('r-rjson', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-anaquin/package.py b/var/spack/repos/builtin/packages/r-anaquin/package.py index a8b13ab853..f188cae3f5 100644 --- a/var/spack/repos/builtin/packages/r-anaquin/package.py +++ b/var/spack/repos/builtin/packages/r-anaquin/package.py @@ -7,22 +7,28 @@ from spack import * class RAnaquin(RPackage): - """The project is intended to support the use of sequins - (synthetic sequencing spike-in controls) owned and made available - by the Garvan Institute of Medical Research. The goal is to - provide a standard open source library for quantitative analysis, - modelling and visualization of spike-in controls.""" + """Statistical analysis of sequins. - homepage = "https://www.bioconductor.org/packages/Anaquin/" + The project is intended to support the use of sequins (synthetic + sequencing spike-in controls) owned and made available by the Garvan + Institute of Medical Research. The goal is to provide a standard open + source library for quantitative analysis, modelling and visualization of + spike-in controls.""" + + homepage = "https://bioconductor.org/packages/Anaquin" git = "https://git.bioconductor.org/packages/Anaquin.git" + version('2.8.0', commit='f591d420740b77881ae0a4c16b208c63d460c601') + version('2.6.1', commit='22b6c71697fe1e2db8f6d18f77728d0fd96fa6d6') + version('2.4.0', commit='0d6ae80ff622151a782e4774ca274f06024a71d2') + version('2.2.0', commit='739f4ed2b73c43f934fd65a993ecb48242a5d5da') version('1.2.0', commit='584d1970cc9dc1d354f9a6d7c1306bd7e8567119') - depends_on('r@3.4.0:3.4.9', when='@1.2.0') - depends_on('r-deseq2', type=('build', 'run')) - depends_on('r-plyr', type=('build', 'run')) - depends_on('r-locfit', type=('build', 'run')) - depends_on('r-qvalue', type=('build', 'run')) - depends_on('r-knitr', type=('build', 'run')) + depends_on('r@3.3:', type=('build', 'run')) + depends_on('r-ggplot2@2.2.0:', type=('build', 'run')) depends_on('r-rocr', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r-knitr', type=('build', 'run')) + depends_on('r-qvalue', type=('build', 'run')) + depends_on('r-locfit', type=('build', 'run')) + depends_on('r-plyr', type=('build', 'run')) + depends_on('r-deseq2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-aneufinder/package.py b/var/spack/repos/builtin/packages/r-aneufinder/package.py index 9dc0384bf9..f623d35256 100644 --- a/var/spack/repos/builtin/packages/r-aneufinder/package.py +++ b/var/spack/repos/builtin/packages/r-aneufinder/package.py @@ -7,21 +7,28 @@ from spack import * class RAneufinder(RPackage): - """This package implements functions for CNV calling, plotting, - export and analysis from whole-genome single cell sequencing data.""" + """Analysis of Copy Number Variation in Single-Cell-Sequencing Data. - homepage = "https://www.bioconductor.org/packages/AneuFinder/" + AneuFinder implements functions for copy-number detection, breakpoint + detection, and karyotype and heterogeneity analysis in single-cell whole + genome sequencing and strand-seq data.""" + + homepage = "https://bioconductor.org/packages/AneuFinder" git = "https://git.bioconductor.org/packages/AneuFinder.git" + version('1.12.1', commit='e788fd0c864f0bf0abd93df44c6d42f82eb37e0e') + version('1.10.2', commit='56578ae69abac93dfea6bcac1fc205b14b6ba9dd') + version('1.8.0', commit='36a729d244add5aafbe21c37a1baaea6a50354d3') + version('1.6.0', commit='0cfbdd1951fb4df5622e002260cfa86294d65d1d') version('1.4.0', commit='e5bdf4d5e4f84ee5680986826ffed636ed853b8e') - depends_on('r@3.4.0:3.4.9', when='@1.4.0') + depends_on('r@3.3:', type=('build', 'run')) depends_on('r-genomicranges', 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', type=('build', 'run')) + depends_on('r-biocgenerics', when='@1.4.0:1.6.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')) @@ -33,6 +40,10 @@ class RAneufinder(RPackage): 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-ggrepel', 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 4cee62c83c..c8773d6d1f 100644 --- a/var/spack/repos/builtin/packages/r-aneufinderdata/package.py +++ b/var/spack/repos/builtin/packages/r-aneufinderdata/package.py @@ -7,12 +7,18 @@ from spack import * class RAneufinderdata(RPackage): - """Whole-genome single cell sequencing data for demonstration - purposes in the AneuFinder package.""" + """WGSCS Data for Demonstration Purposes. - homepage = "https://www.bioconductor.org/packages/AneuFinderData/" + Whole-genome single cell sequencing data for demonstration purposes in + the AneuFinder package.""" + + homepage = "https://bioconductor.org/packages/AneuFinderData" git = "https://git.bioconductor.org/packages/AneuFinderData.git" + version('1.12.0', commit='7350f38856b6278e07eca141f7f3cb24bc60c3a1') + version('1.10.0', commit='ef7fc27f9af4f178fa45a21aba30709e1ebde035') + version('1.8.0', commit='4f00f8d5f2e968fea667a7feafc0a4607d6e0c6e') + version('1.6.0', commit='8fe5b221619aab75fe84c9094708d240dd1e6730') version('1.4.0', commit='55c8807ee4a37a2eb6d0defafaf843f980b22c40') - depends_on('r@3.4.0:3.4.9', when='@1.4.0') + depends_on('r@3.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-animation/package.py b/var/spack/repos/builtin/packages/r-animation/package.py index 69426a1cd7..7883e4c8e3 100644 --- a/var/spack/repos/builtin/packages/r-animation/package.py +++ b/var/spack/repos/builtin/packages/r-animation/package.py @@ -22,7 +22,7 @@ class RAnimation(RPackage): depends_on('r@2.14:', type=('build', 'run')) depends_on('r-magick', when='@2.6:', type=('build', 'run')) - depends_on('image-magick') + depends_on('imagemagick') depends_on('ffmpeg') depends_on('swftools') depends_on('texlive') diff --git a/var/spack/repos/builtin/packages/r-annaffy/package.py b/var/spack/repos/builtin/packages/r-annaffy/package.py index ba0481bda2..07f62db7ea 100644 --- a/var/spack/repos/builtin/packages/r-annaffy/package.py +++ b/var/spack/repos/builtin/packages/r-annaffy/package.py @@ -3,24 +3,29 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -# -# from spack import * class RAnnaffy(RPackage): - """Functions for handling data from Bioconductor Affymetrix - annotation data packages. Produces compact HTML and text - reports including experimental data and URL links to many - online databases. Allows searching biological metadata - using various criteria.""" + """Annotation tools for Affymetrix biological metadata. + + Functions for handling data from Bioconductor Affymetrix annotation data + packages. Produces compact HTML and text reports including experimental + data and URL links to many online databases. Allows searching biological + metadata using various criteria.""" - homepage = "https://www.bioconductor.org/packages/annaffy/" + homepage = "https://bioconductor.org/packages/annaffy" git = "https://git.bioconductor.org/packages/annaffy.git" + version('1.56.0', commit='8c8e16aa0f3073880c39684fd8e554a052ec6233') + version('1.54.0', commit='e1b3bf10515255eb994cd8bdf85697ea728c3484') + version('1.52.0', commit='ef84030163045f702941c8d5a59fbd4a09f30e2c') + version('1.50.0', commit='a822e20f3e961a8afa5eb23536343115a33fb259') version('1.48.0', commit='89a03c64ac9df5d963ed60b87893a3fffa6798a0') - depends_on('r@3.4.0:3.4.9', when='@1.48.0') + depends_on('r@2.5.0:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-go-db', type=('build', 'run')) depends_on('r-kegg-db', type=('build', 'run')) + depends_on('r-annotationdbi@0.1.15:', type=('build', 'run')) + depends_on('r-dbi', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-annotate/package.py b/var/spack/repos/builtin/packages/r-annotate/package.py index 5fc2ba5c2d..c0dd6f3fc4 100644 --- a/var/spack/repos/builtin/packages/r-annotate/package.py +++ b/var/spack/repos/builtin/packages/r-annotate/package.py @@ -7,17 +7,24 @@ from spack import * class RAnnotate(RPackage): - """Using R enviroments for annotation.""" + """Annotation for microarrays. - homepage = "https://www.bioconductor.org/packages/annotate/" + Using R enviroments for annotation.""" + + homepage = "https://bioconductor.org/packages/annotate" git = "https://git.bioconductor.org/packages/annotate.git" + version('1.62.0', commit='19af0b39747ea83fe8fe9b8bbb6036363bc815cd') + version('1.60.1', commit='9d8f87db02bf0c1593e79da754335a24d3a8ed16') version('1.58.0', commit='d1b5dd5feb8793f4f816d9a4aecbebb5ec7df7bc') + version('1.56.2', commit='95ec3b004f5356bd78b2a60cbf7f93e0d48cf346') version('1.54.0', commit='860cc5b696795a31b18beaf4869f9c418d74549e') - depends_on('r-annotationdbi', type=('build', 'run')) + depends_on('r@2.10:', type=('build', 'run')) + depends_on('r-annotationdbi@1.27.5:', type=('build', 'run')) depends_on('r-xml', type=('build', 'run')) - depends_on('r-rcurl', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-dbi', type=('build', 'run')) depends_on('r-xtable', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.54.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.58.0', type=('build', 'run')) + depends_on('r-biocgenerics@0.13.8:', type=('build', 'run')) + depends_on('r-rcurl', 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 8c917104ef..d19912d9c6 100644 --- a/var/spack/repos/builtin/packages/r-annotationdbi/package.py +++ b/var/spack/repos/builtin/packages/r-annotationdbi/package.py @@ -7,19 +7,28 @@ from spack import * class RAnnotationdbi(RPackage): - """Provides user interface and database connection code for - annotation data packages using SQLite data storage.""" + """Manipulation of SQLite-based annotations in Bioconductor. - homepage = "https://www.bioconductor.org/packages/AnnotationDbi/" + Implements a user-friendly interface for querying SQLite-based + annotation data packages.""" + + homepage = "https://bioconductor.org/packages/AnnotationDbi" git = "https://git.bioconductor.org/packages/AnnotationDbi.git" + version('1.46.1', commit='ff260913741d0fcf9487eeb1f44a6c6968ced5b9') + version('1.44.0', commit='ce191b08cfd612d014431325c26c91b11c5f13ac') version('1.42.1', commit='71085b47ea2e1ef929bebe8b17eb8e8a573f98e3') + version('1.40.0', commit='e34dff07e10402eecbf95604a512bc1fc4edb127') version('1.38.2', commit='67d46facba8c15fa5f0eb47c4e39b53dbdc67c36') - depends_on('r@3.4.0:3.4.9', when='@1.38.2', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.42.1', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.7.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.10:', 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 5e76c4f6a5..8788e1f38e 100644 --- a/var/spack/repos/builtin/packages/r-annotationfilter/package.py +++ b/var/spack/repos/builtin/packages/r-annotationfilter/package.py @@ -7,16 +7,21 @@ from spack import * class RAnnotationfilter(RPackage): - """This package provides class and other infrastructure to implement - filters for manipulating Bioconductor annotation resources. The - filters will be used by ensembldb, Organism.dplyr, and other - packages.""" + """Facilities for Filtering Bioconductor Annotation Resources. - homepage = "https://bioconductor.org/packages/AnnotationFilter/" + This package provides class and other infrastructure to implement + filters for manipulating Bioconductor annotation resources. The filters + will be used by ensembldb, Organism.dplyr, and other packages.""" + + homepage = "https://bioconductor.org/packages/AnnotationFilter" git = "https://git.bioconductor.org/packages/AnnotationFilter.git" + version('1.8.0', commit='9bf70ead899e32e84e2908f2b29cd38250d2d1ed') + version('1.6.0', commit='fa40a7e17e93fac9e85091ff93f256adf145dec3') + version('1.4.0', commit='acbd3309f478843a7899bd9773af5f19f986b829') + version('1.2.0', commit='744b82915d7b85031de462d9d0a2bf9fdfd0e29d') version('1.0.0', commit='a9f79b26defe3021eea60abe16ce1fa379813ec9') + depends_on('r@3.4.0:', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) depends_on('r-lazyeval', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.0.0') diff --git a/var/spack/repos/builtin/packages/r-annotationforge/package.py b/var/spack/repos/builtin/packages/r-annotationforge/package.py index fbf7d266ff..385d520b08 100644 --- a/var/spack/repos/builtin/packages/r-annotationforge/package.py +++ b/var/spack/repos/builtin/packages/r-annotationforge/package.py @@ -7,19 +7,24 @@ from spack import * class RAnnotationforge(RPackage): - """Provides code for generating Annotation packages and - their databases. Packages produced are intended to be used - with AnnotationDbi.""" + """Tools for building SQLite-based annotation data packages. - homepage = "https://www.bioconductor.org/packages/AnnotationForge/" + Provides code for generating Annotation packages and their databases. + Packages produced are intended to be used with AnnotationDbi.""" + + homepage = "https://bioconductor.org/packages/AnnotationForge" git = "https://git.bioconductor.org/packages/AnnotationForge.git" + version('1.26.0', commit='5d181f32df1fff6446af64a2538a7d25c23fe46e') + version('1.24.0', commit='3e1fe863573e5b0f69f35a9ad6aebce11ef83d0d') + version('1.22.2', commit='8eafb1690c1c02f6291ccbb38ac633d54b8217f8') + version('1.20.0', commit='7b440f1570cb90acce8fe2fa8d3b5ac34f638882') version('1.18.2', commit='44ca3d4ef9e9825c14725ffdbbaa57ea059532e1') - depends_on('r@3.4.0:3.4.9', when='@1.18.2') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) + depends_on('r@2.7.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.10:', type=('build', 'run')) + depends_on('r-biobase@1.17.0:', type=('build', 'run')) + depends_on('r-annotationdbi@1.33.14:', type=('build', 'run')) depends_on('r-dbi', type=('build', 'run')) depends_on('r-rsqlite', type=('build', 'run')) depends_on('r-xml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-annotationhub/package.py b/var/spack/repos/builtin/packages/r-annotationhub/package.py index 0465d3c126..1dbf83c759 100644 --- a/var/spack/repos/builtin/packages/r-annotationhub/package.py +++ b/var/spack/repos/builtin/packages/r-annotationhub/package.py @@ -7,25 +7,39 @@ from spack import * class RAnnotationhub(RPackage): - """This package provides a client for the Bioconductor AnnotationHub web + """Client to access AnnotationHub resources. + + This package provides a client for the Bioconductor AnnotationHub web resource. The AnnotationHub web resource provides a central location where genomic files (e.g., VCF, bed, wig) and other resources from - standard locations (e.g., UCSC, Ensembl) can be discovered. The - resource includes metadata about each resource, e.g., a textual - description, tags, and date of modification. The client creates and - manages a local cache of files retrieved by the user, helping with - quick and reproducible access.""" + standard locations (e.g., UCSC, Ensembl) can be discovered. The resource + includes metadata about each resource, e.g., a textual description, + tags, and date of modification. The client creates and manages a local + cache of files retrieved by the user, helping with quick and + reproducible access.""" - homepage = "https://bioconductor.org/packages/AnnotationHub/" + homepage = "https://bioconductor.org/packages/AnnotationHub" git = "https://git.bioconductor.org/packages/AnnotationHub.git" + version('2.16.1', commit='f8cefaae603b782e1c1ad277a3fb89d44e3aa1ed') + version('2.14.5', commit='993a98ce3de04a0bbddcbde5b1ab2a9550275a12') + version('2.12.1', commit='471407bd9cdc612e01deb071c91bd9e5f1ea5e55') + version('2.10.1', commit='b7cb668de9b9625ac2beb3dcde1fa39e289eec29') version('2.8.3', commit='8aa9c64262a8d708d2bf1c82f82dfc3d7d4ccc0c') + depends_on('r-biocgenerics@0.15.10:', type=('build', 'run')) depends_on('r-rsqlite', type=('build', 'run')) depends_on('r-biocinstaller', type=('build', 'run')) - depends_on('r-annotationdbi', 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@3.4.0:3.4.9', when='@2.8.3') + + 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')) diff --git a/var/spack/repos/builtin/packages/r-bamsignals/package.py b/var/spack/repos/builtin/packages/r-bamsignals/package.py index c296426285..78992b44db 100644 --- a/var/spack/repos/builtin/packages/r-bamsignals/package.py +++ b/var/spack/repos/builtin/packages/r-bamsignals/package.py @@ -7,20 +7,30 @@ from spack import * class RBamsignals(RPackage): - """This package allows to efficiently obtain count vectors - from indexed bam files. It counts the number of reads in given - genomic ranges and it computes reads profiles and coverage - profiles. It also handles paired-end data.""" + """Extract read count signals from bam files. - homepage = "https://www.bioconductor.org/packages/bamsignals/" + This package allows to efficiently obtain count vectors from indexed bam + files. It counts the number of reads in given genomic ranges and it + computes reads profiles and coverage profiles. It also handles paired- + end data.""" + + homepage = "https://bioconductor.org/packages/bamsignals" git = "https://git.bioconductor.org/packages/bamsignals.git" + version('1.16.0', commit='dba9a4ae1613d2700f122ade1e9b90ca8fce5657') + version('1.14.0', commit='3107d3a35830e879eeddf127a81016ea1ca9b53d') + version('1.12.1', commit='06b6282df377cf9db58e8016be4ac8ddcc960939') + version('1.10.0', commit='7499312ce71e8680680eda10b49d7dff682fc776') version('1.8.0', commit='b123b83e8e026c9ec91209d4498aff3e95a5de23') - depends_on('r@3.4.0:3.4.9', when='@1.8.0') + depends_on('r@3.2.0:', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-rcpp@0.10.6:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) 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')) diff --git a/var/spack/repos/builtin/packages/r-beachmat/package.py b/var/spack/repos/builtin/packages/r-beachmat/package.py new file mode 100644 index 0000000000..00aeba6f4b --- /dev/null +++ b/var/spack/repos/builtin/packages/r-beachmat/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBeachmat(RPackage): + """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 + several sparse/dense Matrix classes are directly supported, third-party + S4 classes may be supported by external linkage, while all other + matrices are handled by DelayedArray block processing.""" + + homepage = "https://bioconductor.org/packages/beachmat" + git = "https://git.bioconductor.org/packages/beachmat.git" + + 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@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-biocgenerics', when='@1.4.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-beeswarm/package.py b/var/spack/repos/builtin/packages/r-beeswarm/package.py new file mode 100644 index 0000000000..0e0a8597ed --- /dev/null +++ b/var/spack/repos/builtin/packages/r-beeswarm/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBeeswarm(RPackage): + """beeswarm: The Bee Swarm Plot, an Alternative to Stripchart""" + + homepage = "http://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" + + version('0.2.3', sha256='0115425e210dced05da8e162c8455526a47314f72e441ad2a33dcab3f94ac843') diff --git a/var/spack/repos/builtin/packages/r-bio3d/package.py b/var/spack/repos/builtin/packages/r-bio3d/package.py new file mode 100644 index 0000000000..a01e1de40c --- /dev/null +++ b/var/spack/repos/builtin/packages/r-bio3d/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBio3d(RPackage): + """bio3d: Biological Structure Analysis""" + + 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.3-4', sha256='f9b39ab242cbedafcd98c1732cb1f5c0dd9ef66e28be39695e3420dd93e2bafe') + + depends_on('r@3.1.0:', type=('build', 'run')) + depends_on('r-rcpp', 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 1ff0d25de5..baeb3de55e 100644 --- a/var/spack/repos/builtin/packages/r-biobase/package.py +++ b/var/spack/repos/builtin/packages/r-biobase/package.py @@ -3,21 +3,25 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -# from spack import * class RBiobase(RPackage): - """Functions that are needed by many other packages - or which replace R functions.""" + """Biobase: Base functions for Bioconductor. + + Functions that are needed by many other packages or which replace R + functions.""" - homepage = "https://www.bioconductor.org/packages/Biobase/" + homepage = "https://bioconductor.org/packages/Biobase" git = "https://git.bioconductor.org/packages/Biobase.git" + version('2.44.0', commit='bde2077f66047986297ec35a688751cdce150dd3') + version('2.42.0', commit='3e5bd466b99e3cc4af1b0c3b32687fa56d6f8e4d') version('2.40.0', commit='6555edbbcb8a04185ef402bfdea7ed8ac72513a5') version('2.38.0', commit='83f89829e0278ac014b0bc6664e621ac147ba424') version('2.36.2', commit='15f50912f3fa08ccb15c33b7baebe6b8a59ce075') - depends_on('r-biocgenerics@0.16.1:', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.36.2', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@2.40.0', type=('build', 'run')) + 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 new file mode 100644 index 0000000000..c31a255d61 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-biocfilecache/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBiocfilecache(RPackage): + """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 + as custom Txdb objects) that are costly or difficult to create, web + resources, and data files used across sessions.""" + + homepage = "https://bioconductor.org/packages/BiocFileCache" + git = "https://git.bioconductor.org/packages/BiocFileCache.git" + + version('1.8.0', commit='0e3542b6aae849b01240d8055a48da1b267bd5a0') + version('1.6.0', commit='c2de6c1cdef6294e5d0adea31e4ebf25865742ba') + version('1.4.0', commit='a2c473d17f78899c7899b9638faea8c30735eb80') + version('1.2.3', commit='d78bf5b46c8a329f5ddef879fe51230444bc42f8') + 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-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')) diff --git a/var/spack/repos/builtin/packages/r-biocgenerics/package.py b/var/spack/repos/builtin/packages/r-biocgenerics/package.py index 347bcc22bc..04f2ceecdd 100644 --- a/var/spack/repos/builtin/packages/r-biocgenerics/package.py +++ b/var/spack/repos/builtin/packages/r-biocgenerics/package.py @@ -7,16 +7,17 @@ from spack import * class RBiocgenerics(RPackage): - """S4 generic functions needed by many Bioconductor packages.""" + """S4 generic functions used in Bioconductor. - homepage = "https://www.bioconductor.org/packages/BiocGenerics/" + 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.30.0', commit='fc7c3af4a5635a30988a062ed09332c13ca1d1a8') + version('0.28.0', commit='041fc496504f2ab1d4d863fffb23372db214394b') version('0.26.0', commit='5b2a6df639e48c3cd53789e0b174aec9dda6b67d') version('0.24.0', commit='3db111e8c1f876267da89f4f0c5406a9d5c31cd1') version('0.22.1', commit='9c90bb8926885289d596a81ff318ee3745cbb6ad') - depends_on('r@3.4.0:3.4.9', when='@0.22.1', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@0.26.0', type=('build', 'run')) - depends_on('r@3.6.0:', when='@0.30.0', type=('build', 'run')) + depends_on('r@3.6.0:', when='@0.30.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 fe1e132691..ef78d9f819 100644 --- a/var/spack/repos/builtin/packages/r-biocinstaller/package.py +++ b/var/spack/repos/builtin/packages/r-biocinstaller/package.py @@ -7,12 +7,20 @@ from spack import * class RBiocinstaller(RPackage): - """This package is used to install and update Bioconductor, CRAN, - and (some) github packages.""" + """Install/Update Bioconductor, CRAN, and github Packages. - homepage = "https://bioconductor.org/packages/BiocInstaller/" + This package is used to install and update Bioconductor, CRAN, and + (some) github packages.""" + + homepage = "https://bioconductor.org/packages/3.8/bioc/html/BiocInstaller.html" git = "https://git.bioconductor.org/packages/BiocInstaller.git" + version('1.33.1', commit='6193f31c18e7e64d91e0e15ed0ba6924eda1416f') + version('1.32.1', commit='4c2a39e1cae470af3a5cf1491715f272b70f4bb4') + version('1.30.0', commit='27bcb7a378cb5d8b5d23b7b840340463f7e090bc') + version('1.28.0', commit='7261763529a0a1f730cde8a1bbdbf454c3e25603') version('1.26.1', commit='9049b82a77aefa98e3f8e4dd7068317505d70e98') - depends_on('r@3.4.0:3.4.9', when='@1.26.1') + depends_on('r@3.4.0:', type=('build', 'run')) + + depends_on('r@3.5.0:', when='@1.30.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-biocmanager/package.py b/var/spack/repos/builtin/packages/r-biocmanager/package.py new file mode 100644 index 0000000000..d5f24dc3b3 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-biocmanager/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBiocmanager(RPackage): + """BiocManager: Access the Bioconductor Project Package Repository""" + + homepage = "https://cloud.r-project.org/package=BiocManager" + url = "https://cloud.r-project.org/src/contrib/BiocManager_1.30.10.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/BiocManager" + + version('1.30.10', sha256='f3b7a412b42be0ab8df5fcd9bf981876ba9e5c55bc5faaca7af7ede3b6d0c90e') diff --git a/var/spack/repos/builtin/packages/r-biocneighbors/package.py b/var/spack/repos/builtin/packages/r-biocneighbors/package.py new file mode 100644 index 0000000000..82ed74150d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-biocneighbors/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBiocneighbors(RPackage): + """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 + Bioconductor packages or workflows. Exact searches can be performed + using the k-means for k-nearest neighbors algorithm or with vantage + point trees. Approximate searches can be performed using the Annoy or + HNSW libraries. Searching on either Euclidean or Manhattan distances is + supported. Parallelization is achieved for all methods by using + BiocParallel. Functions are also provided to search for all neighbors + within a given distance.""" + + homepage = "https://bioconductor.org/packages/BiocNeighbors" + git = "https://git.bioconductor.org/packages/BiocNeighbors.git" + + 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-rcpphnsw', 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 cee7cffd53..d572d477ae 100644 --- a/var/spack/repos/builtin/packages/r-biocparallel/package.py +++ b/var/spack/repos/builtin/packages/r-biocparallel/package.py @@ -7,18 +7,22 @@ from spack import * class RBiocparallel(RPackage): - """This package provides modified versions and novel implementation of + """Bioconductor facilities for parallel evaluation. + + This package provides modified versions and novel implementation of functions for parallel evaluation, tailored to use with Bioconductor objects.""" - homepage = "https://bioconductor.org/packages/BiocParallel/" + homepage = "https://bioconductor.org/packages/BiocParallel" git = "https://git.bioconductor.org/packages/BiocParallel.git" + version('1.18.1', commit='348264af782d7dcd41a1879400f348f836767f6e') + version('1.16.6', commit='7f7a54c47f4949b600b9fd568289a519496bc4d4') version('1.14.2', commit='1d5a44960b19e9dbbca04c7290c8c58b0a7fc299') + version('1.12.0', commit='2143a9addceed0151a27b95c70aadd2add5cbace') version('1.10.1', commit='a76c58cf99fd585ba5ea33065649e68f1afe0a7d') depends_on('r-futile-logger', type=('build', 'run')) depends_on('r-snow', type=('build', 'run')) - depends_on('r-bh', type=('build', 'link', 'run'), when='@1.14.2:') - depends_on('r@3.4.0:3.4.9', when='@1.10.1', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.14.2', 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 new file mode 100644 index 0000000000..80ded9c70f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-biocsingular/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RBiocsingular(RPackage): + """Singular Value Decomposition for Bioconductor Packages. + + Implements exact and approximate methods for singular value + decomposition and principal components analysis, in a framework that + allows them to be easily switched within Bioconductor packages or + workflows. Where possible, parallelization is achieved using the + BiocParallel framework.""" + + homepage = "https://bioconductor.org/packages/BiocSingular" + git = "https://git.bioconductor.org/packages/BiocSingular.git" + + version('1.0.0', commit='d2b091c072d0312698c9bb6611eb1bdf8aebf833') + + depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-matrix', type=('build', 'run')) + depends_on('r-delayedarray', type=('build', 'run')) + depends_on('r-biocparallel', type=('build', 'run')) + depends_on('r-irlba', type=('build', 'run')) + depends_on('r-rsvd', type=('build', 'run')) + depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-beachmat', 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 d3d0435c6b..be6812681d 100644 --- a/var/spack/repos/builtin/packages/r-biocstyle/package.py +++ b/var/spack/repos/builtin/packages/r-biocstyle/package.py @@ -7,16 +7,23 @@ from spack import * class RBiocstyle(RPackage): - """Provides standard formatting styles for Bioconductor PDF and HTML - documents. Package vignettes illustrate use and functionality.""" + """Standard styles for vignettes and other Bioconductor documents. - homepage = "https://www.bioconductor.org/packages/BiocStyle/" + Provides standard formatting styles for Bioconductor PDF and HTML + documents. Package vignettes illustrate use and functionality.""" + + homepage = "https://bioconductor.org/packages/BiocStyle" git = "https://git.bioconductor.org/packages/BiocStyle.git" + 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-bookdown', type=('build', 'run')) depends_on('r-knitr@1.12:', type=('build', 'run')) depends_on('r-rmarkdown@1.2:', type=('build', 'run')) depends_on('r-yaml', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.4.1') + + depends_on('r-biocmanager', when='@2.10.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-biomart/package.py b/var/spack/repos/builtin/packages/r-biomart/package.py index 6e82f30218..c22736083b 100644 --- a/var/spack/repos/builtin/packages/r-biomart/package.py +++ b/var/spack/repos/builtin/packages/r-biomart/package.py @@ -7,22 +7,26 @@ from spack import * class RBiomart(RPackage): - """In recent years a wealth of biological data has become available in + """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 and firm integration with data analysis is needed for comprehensive bioinformatics data analysis. biomaRt provides an interface to a growing collection of databases implementing the BioMart software suite - (http://www.biomart.org). The package enables retrieval of large amounts - of data in a uniform way without the need to know the underlying - database schemas or write complex SQL queries. Examples of BioMart - databases are Ensembl, COSMIC, Uniprot, HGNC, Gramene, Wormbase and - dbSNP mapped to Ensembl. These major databases give biomaRt users direct - access to a diverse set of data and enable a wide range of powerful - online queries from gene annotation to database mining.""" - - homepage = "https://bioconductor.org/packages/biomaRt/" + (<http://www.biomart.org>). The package enables retrieval of large + amounts of data in a uniform way without the need to know the underlying + database schemas or write complex SQL queries. The most prominent + examples of BioMart databases are maintain by Ensembl, which provides + biomaRt users direct access to a diverse set of data and enables a wide + range of powerful online queries from gene annotation to database + mining.""" + + homepage = "https://bioconductor.org/packages/biomaRt" git = "https://git.bioconductor.org/packages/biomaRt.git" + version('2.40.5', commit='ed9ddafb0d620168ea8e3ab4884f3457b8525c68') + version('2.38.0', commit='16b997aba19a90a1c5fa64c442b1e7fcff99a658') version('2.36.1', commit='5634e57e20199f9dc1f8b927eb3893143fc02f4f') version('2.34.2', commit='a7030915fbc6120cc6812aefdedba423a207459b') version('2.32.1', commit='f84d74424fa599f6d08f8db4612ca09914a9087f') @@ -30,8 +34,7 @@ class RBiomart(RPackage): 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', type=('build', 'run'), when='@2.34.2:') - depends_on('r-stringr', type=('build', 'run'), when='@2.34.2:') - depends_on('r-httr', type=('build', 'run'), when='@2.34.2:') - depends_on('r@3.4.0:3.4.9', when='@2.32.1:2.35.9', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@2.36.1', 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')) diff --git a/var/spack/repos/builtin/packages/r-biomformat/package.py b/var/spack/repos/builtin/packages/r-biomformat/package.py index 4a5382beae..e797b9aa5b 100644 --- a/var/spack/repos/builtin/packages/r-biomformat/package.py +++ b/var/spack/repos/builtin/packages/r-biomformat/package.py @@ -7,23 +7,29 @@ from spack import * class RBiomformat(RPackage): - """This is an R package for interfacing with the BIOM format. This - package includes basic tools for reading biom-format files, accessing - and subsetting data tables from a biom object (which is more complex - than a single table), as well as limited support for writing a - biom-object back to a biom-format file. The design of this API is - intended to match the python API and other tools included with the - biom-format project, but with a decidedly "R flavor" that should be - familiar to R users. This includes S4 classes and methods, as well - as extensions of common core functions/methods.""" + """An interface package for the BIOM file format. - homepage = "https://www.bioconductor.org/packages/biomformat/" + This is an R package for interfacing with the BIOM format. This package + includes basic tools for reading biom-format files, accessing and + subsetting data tables from a biom object (which is more complex than a + single table), as well as limited support for writing a biom-object back + to a biom-format file. The design of this API is intended to match the + python API and other tools included with the biom-format project, but + with a decidedly "R flavor" that should be familiar to R users. This + includes S4 classes and methods, as well as extensions of common core + functions/methods.""" + + homepage = "https://bioconductor.org/packages/biomformat" git = "https://git.bioconductor.org/packages/biomformat.git" + version('1.12.0', commit='6e946123bb59da262cbb0c17dc5ab49328a89d4a') + version('1.10.1', commit='e67c6f4b70201f748fa49a4938e1af0cd0613f09') + version('1.8.0', commit='acd207377b24e4d8310eaff06c16dcfe6c04509a') + version('1.6.0', commit='61fb8c7b34ad561c3c46cacc0dd1957be56da85e') version('1.4.0', commit='83b4b1883bc56ea93a0a6ca90fc1b18712ef0f1a') - depends_on('r-plyr', type=('build', 'run')) - depends_on('r-jsonlite', type=('build', 'run')) - depends_on('r-matrix', type=('build', 'run')) + depends_on('r@3.2:', type=('build', 'run')) + depends_on('r-plyr@1.8:', type=('build', 'run')) + depends_on('r-jsonlite@0.9.16:', type=('build', 'run')) + depends_on('r-matrix@1.2:', type=('build', 'run')) depends_on('r-rhdf5', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.4.0') diff --git a/var/spack/repos/builtin/packages/r-biostrings/package.py b/var/spack/repos/builtin/packages/r-biostrings/package.py index d57e9d8a44..6a04a28bc7 100644 --- a/var/spack/repos/builtin/packages/r-biostrings/package.py +++ b/var/spack/repos/builtin/packages/r-biostrings/package.py @@ -7,23 +7,34 @@ from spack import * class RBiostrings(RPackage): - """Memory efficient string containers, string matching algorithms, and - other utilities, for fast manipulation of large biological sequences - or sets of sequences.""" + """Efficient manipulation of biological strings. - homepage = "https://bioconductor.org/packages/Biostrings/" + Memory efficient string containers, string matching algorithms, and + other utilities, for fast manipulation of large biological sequences or + sets of sequences.""" + + homepage = "https://bioconductor.org/packages/Biostrings" git = "https://git.bioconductor.org/packages/Biostrings.git" + version('2.52.0', commit='b78fe7c1f3cdbbb7affb1ca7164fe5a1f8b868f5') + version('2.50.2', commit='025e734641a93f6c5d44243297cb4264ea0e34a2') version('2.48.0', commit='aa3599a7d259d658014d087b86d71ab1deb5f12b') + version('2.46.0', commit='3bf6978c155498b50607d1bb471d1687d185a0fa') version('2.44.2', commit='e4a2b320fb21c5cab3ece7b3c6fecaedfb1e5200') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.15.6:', when='@2.48.0', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.25:', when='@2.48.0', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) + depends_on('r@2.8.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.6:', 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-xvector', type=('build', 'run')) - depends_on('r-xvector@0.19.8:', when='@2.48.0', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.44.2', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@2.48.0', 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')) diff --git a/var/spack/repos/builtin/packages/r-biovizbase/package.py b/var/spack/repos/builtin/packages/r-biovizbase/package.py index f26e3325a8..7353aee800 100644 --- a/var/spack/repos/builtin/packages/r-biovizbase/package.py +++ b/var/spack/repos/builtin/packages/r-biovizbase/package.py @@ -7,33 +7,40 @@ from spack import * class RBiovizbase(RPackage): - """The biovizBase package is designed to provide a set of - utilities, color schemes and conventions for genomic data. - It serves as the base for various high-level packages for - biological data visualization. This saves development effort - and encourages consistency.""" + """Basic graphic utilities for visualization of genomic data.. - homepage = "http://bioconductor.org/packages/biovizBase/" + The biovizBase package is designed to provide a set of utilities, color + schemes and conventions for genomic data. It serves as the base for + various high-level packages for biological data visualization. This + saves development effort and encourages consistency.""" + + homepage = "https://bioconductor.org/packages/biovizBase" git = "https://git.bioconductor.org/packages/biovizBase.git" + version('1.32.0', commit='de044bf236cdcd71214ae7b77689a8f0ab4f5cc8') + version('1.30.1', commit='b6776d0470e2920f71127652f185f68ca1fd2c82') + version('1.28.2', commit='43d09060028665a237b04bfeb9e2575782b08063') + version('1.26.0', commit='640742f48384f01d117b70dc5c64737e97ae9b4b') version('1.24.0', commit='ae9cd2ff665b74a8f45ed9c1d17fc0a778b4af6c') - depends_on('r@3.4.0:3.4.9', when='@1.24.0') + depends_on('r@2.10:', 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', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) + depends_on('r-s4vectors@0.9.25:', 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')) depends_on('r-summarizedexperiment', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) - depends_on('r-genomicalignments', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) + depends_on('r-biostrings@2.33.11:', type=('build', 'run')) + depends_on('r-rsamtools@1.17.28:', type=('build', 'run')) + depends_on('r-genomicalignments@1.1.16:', type=('build', 'run')) + depends_on('r-genomicfeatures@1.21.19:', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-variantannotation', type=('build', 'run')) - depends_on('r-ensembldb', type=('build', 'run')) - depends_on('r-annotationfilter', type=('build', 'run')) + 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-bsgenome/package.py b/var/spack/repos/builtin/packages/r-bsgenome/package.py index 1578380eb7..1edef3ee35 100644 --- a/var/spack/repos/builtin/packages/r-bsgenome/package.py +++ b/var/spack/repos/builtin/packages/r-bsgenome/package.py @@ -7,25 +7,36 @@ from spack import * class RBsgenome(RPackage): - """Infrastructure shared by all the Biostrings-based genome data - packages.""" + """Software infrastructure for efficient representation of full genomes and + their SNPs.""" - homepage = "https://www.bioconductor.org/packages/BSgenome/" + homepage = "https://bioconductor.org/packages/BSgenome" git = "https://git.bioconductor.org/packages/BSgenome.git" + version('1.52.0', commit='5398eba1cb56a873b29c04a7ce6858d5d60ff75b') + version('1.50.0', commit='43910755f7477e4fe9bb968f186fddbb2f7355f9') + version('1.48.0', commit='092a1b90482ace329cbd8ca2a338e91449acb93e') version('1.46.0', commit='bdfbd6d09820993585b8231ddea5e11c99008dc5') version('1.44.2', commit='105b00588a758d5ec7c347a7dff2756aea4516a0') + 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-iranges@2.1.33:', type=('build', 'run'), when='@1.44.2') - depends_on('r-iranges@2.11.16:', type=('build', 'run'), when='@1.46.0') - depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'), when='@1.44.2') - depends_on('r-genomeinfodb@1.13.1:', type=('build', 'run'), when='@1.46.0') - depends_on('r-genomicranges@1.27.6:', type=('build', 'run'), when='@1.44.2') - depends_on('r-genomicranges@1.29.14:', type=('build', 'run'), when='@1.46.0') + 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-rsamtools', type=('build', 'run')) depends_on('r-xvector', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.44.2:') + 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.15.2:', when='@1.48.0:', type=('build', 'run')) + depends_on('r-genomicranges@1.31.10:', when='@1.48.0:', type=('build', 'run')) + depends_on('r-biostrings@2.47.6:', when='@1.48.0:', type=('build', 'run')) + depends_on('r-rtracklayer@1.39.7:', when='@1.48.0:', 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 797bf43f25..74d909f8b9 100644 --- a/var/spack/repos/builtin/packages/r-bumphunter/package.py +++ b/var/spack/repos/builtin/packages/r-bumphunter/package.py @@ -7,15 +7,22 @@ from spack import * class RBumphunter(RPackage): - """Tools for finding bumps in genomic data""" + """Bump Hunter. - homepage = "http://bioconductor.org/packages/bumphunter/" + Tools for finding bumps in genomic data""" + + homepage = "https://bioconductor.org/packages/bumphunter" git = "https://git.bioconductor.org/packages/bumphunter.git" + version('1.26.0', commit='606bee8708a0911ced3efb197970b4c9fa52f2fa') + version('1.24.5', commit='29b874033a38e86103b58ef2d4a55f285758147b') + version('1.22.0', commit='fb71b193f4ef7fa12d100441e6eb498765f7afde') + version('1.20.0', commit='c9d8e7ab0c19299988e5d7fa74970312e9a1eac0') version('1.16.0', commit='1c3ab4d1fd2d75b1586ccef12665960b3602080a') - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) + depends_on('r@2.10:', 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')) depends_on('r-genomicranges', type=('build', 'run')) depends_on('r-foreach', type=('build', 'run')) @@ -27,4 +34,7 @@ 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.0:3.4.9', when='@1.16.0') + + 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-category/package.py b/var/spack/repos/builtin/packages/r-category/package.py index 85f4455a6b..a79df91e07 100644 --- a/var/spack/repos/builtin/packages/r-category/package.py +++ b/var/spack/repos/builtin/packages/r-category/package.py @@ -7,14 +7,20 @@ from spack import * class RCategory(RPackage): - """A collection of tools for performing category analysis.""" + """Category Analysis. - homepage = "https://www.bioconductor.org/packages/Category/" + A collection of tools for performing category (gene set enrichment) + analysis.""" + + homepage = "https://bioconductor.org/packages/Category" git = "https://git.bioconductor.org/packages/Category.git" + version('2.50.0', commit='d96f0b29cb778f6697b44d7ba7b0abd7086074a9') + version('2.48.1', commit='941819a3d9dd129f47b4ea00fa74032e405be3a5') + version('2.46.0', commit='c8aeee4dee3fb120f25e0647dd06e895a3ffbc2a') + version('2.44.0', commit='eaba50c1a801ba7983e6ffdf41ab0fc9cfe5a626') version('2.42.1', commit='382c817a2371671a72f8f949dfb4050361ebabcd') - depends_on('r@3.4.0:3.4.9', when='@2.42.1') depends_on('r-biocgenerics', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-checkpoint/package.py b/var/spack/repos/builtin/packages/r-checkpoint/package.py index c212794956..08656458f4 100644 --- a/var/spack/repos/builtin/packages/r-checkpoint/package.py +++ b/var/spack/repos/builtin/packages/r-checkpoint/package.py @@ -13,7 +13,7 @@ class RCheckpoint(RPackage): date as if you had a CRAN time machine.""" homepage = "https://cloud.r-project.org/package=checkpoint" - url = "https://cloud.r-project.org/src/contrib/checkpoint_0.3.18.tar.gz" + 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.6', sha256='fd1a5edb5cb1a40d7ed26bb196de566110fe2ef62e70b4e947c003576a03ebb2') diff --git a/var/spack/repos/builtin/packages/r-chemometrics/package.py b/var/spack/repos/builtin/packages/r-chemometrics/package.py index 6ce8e29ecf..19bb113916 100644 --- a/var/spack/repos/builtin/packages/r-chemometrics/package.py +++ b/var/spack/repos/builtin/packages/r-chemometrics/package.py @@ -7,8 +7,9 @@ from spack import * class RChemometrics(RPackage): - """R companion to the book "Introduction to Multivariate Statistical Analysis - in Chemometrics" written by K. Varmuza and P. Filzmoser (2009).""" + """R companion to the book "Introduction to Multivariate Statistical + Analysis in Chemometrics" written by K. Varmuza and P. Filzmoser + (2009).""" homepage = "https://cloud.r-project.org/package=chemometrics" url = "https://cloud.r-project.org/src/contrib/chemometrics_1.4.2.tar.gz" diff --git a/var/spack/repos/builtin/packages/r-clue/package.py b/var/spack/repos/builtin/packages/r-clue/package.py new file mode 100644 index 0000000000..c8cf1c0278 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-clue/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RClue(RPackage): + """clue: 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-57', sha256='6e369d07b464a9624209a06b5078bf988f01f7963076e946649d76aea0622d17') + + depends_on('r@3.2.0:', type=('build', 'run')) + depends_on('r-cluster', 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 88a3b3107b..a1571f37f1 100644 --- a/var/spack/repos/builtin/packages/r-clusterprofiler/package.py +++ b/var/spack/repos/builtin/packages/r-clusterprofiler/package.py @@ -7,22 +7,36 @@ from spack import * class RClusterprofiler(RPackage): - """This package implements methods to analyze and visualize functional - profiles (GO and KEGG) of gene and gene clusters.""" + """statistical analysis and visualization of functional profiles for genes + and gene clusters. - homepage = "https://www.bioconductor.org/packages/clusterProfiler/" + This package implements methods to analyze and visualize functional + profiles (GO and KEGG) of gene and gene clusters.""" + + homepage = "https://bioconductor.org/packages/clusterProfiler" git = "https://git.bioconductor.org/packages/clusterProfiler.git" + version('3.12.0', commit='6ec88d10832bdfd938e9c065b377015eedb7eee2') + version('3.10.1', commit='39927ef7ff6f97e27557bcf4147e2133b364fd3c') + version('3.8.1', commit='81e1a7ac49e4713703c55f87f945b20de5e7ab36') + version('3.6.0', commit='ff15e3dba69b93bc872d5f5d07821cd9ae20d829') version('3.4.4', commit='b86b00e8405fe130e439362651a5567736e2d9d7') - depends_on('r@3.4.0:3.4.9', when='@3.4.4') - depends_on('r-tidyr', type=('build', 'run')) - depends_on('r-rvcheck', type=('build', 'run')) - depends_on('r-qvalue', type=('build', 'run')) - depends_on('r-plyr', type=('build', 'run')) - depends_on('r-magrittr', type=('build', 'run')) - depends_on('r-gosemsim', type=('build', 'run')) - depends_on('r-go-db', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r@3.3.1:', type=('build', 'run')) + depends_on('r-dose@3.1.3:', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-dose', type=('build', 'run')) + depends_on('r-ggplot2', 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-magrittr', type=('build', 'run')) + depends_on('r-plyr', type=('build', 'run')) + depends_on('r-qvalue', 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')) diff --git a/var/spack/repos/builtin/packages/r-cner/package.py b/var/spack/repos/builtin/packages/r-cner/package.py index bc06676d85..c3c9bc83af 100644 --- a/var/spack/repos/builtin/packages/r-cner/package.py +++ b/var/spack/repos/builtin/packages/r-cner/package.py @@ -7,22 +7,29 @@ from spack import * class RCner(RPackage): - """"Large-scale identification and advanced visualization of sets of - conserved noncoding elements.""" + """CNE Detection and Visualization. - homepage = "https://bioconductor.org/packages/CNEr/" + Large-scale identification and advanced visualization of sets of + conserved noncoding elements.""" + + homepage = "https://bioconductor.org/packages/CNEr" git = "https://git.bioconductor.org/packages/CNEr.git" + version('1.20.0', commit='9c25d8e8f6f5fd8a5311f554c86e7ca1140a4ca5') + version('1.18.1', commit='66aa88af04364c81832f3b09bad898f3c117f606') + version('1.16.1', commit='a2bec4b98d5938709f959a69c151f553ef357941') version('1.14.0', commit='b8634d65c51728c815127e22b45eba7c9b9db897') + version('1.12.1', commit='90d611f9cd19a73d0fe92ab03ef428519d64c017') + depends_on('r@3.2.2:', type=('build', 'run')) depends_on('r-biostrings@2.33.4:', type=('build', 'run')) - depends_on('r-dbi@0.7:', 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')) @@ -32,6 +39,8 @@ class RCner(RPackage): depends_on('r-powerlaw@0.60.3:', type=('build', 'run')) depends_on('r-annotate@1.50.0:', type=('build', 'run')) depends_on('r-go-db@3.3.0:', type=('build', 'run')) - depends_on('r-keggrest@1.14.0:', type=('build', 'run')) depends_on('r-r-utils@2.3.0:', type=('build', 'run')) - depends_on('r@3.4.3:3.4.9', when='@1.14.0') + 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-complexheatmap/package.py b/var/spack/repos/builtin/packages/r-complexheatmap/package.py index 7cf86dfd66..a824995318 100644 --- a/var/spack/repos/builtin/packages/r-complexheatmap/package.py +++ b/var/spack/repos/builtin/packages/r-complexheatmap/package.py @@ -7,20 +7,34 @@ from spack import * class RComplexheatmap(RPackage): - """Complex heatmaps are efficient to visualize associations between - different sources of data sets and reveal potential structures. Here - the ComplexHeatmap package provides a highly flexible way to arrange - multiple heatmaps and supports self-defined annotation graphics.""" + """Make Complex Heatmaps. - homepage = "https://bioconductor.org/packages/ComplexHeatmap/" + Complex heatmaps are efficient to visualize associations between + different sources of data sets and reveal potential patterns. Here the + ComplexHeatmap package provides a highly flexible way to arrange + multiple heatmaps and supports various annotation graphics.""" + + homepage = "https://bioconductor.org/packages/ComplexHeatmap" git = "https://git.bioconductor.org/packages/ComplexHeatmap.git" + version('2.0.0', commit='97863d8ddfe36a52df0149b0b040dc386a03d2e4') + version('1.20.0', commit='1501ecc92fda07efa3652e41626b21741951ce0f') + version('1.18.1', commit='be0dd9d666a219c61335efe0dac50b2eed2a8825') + version('1.17.1', commit='f647c97e556d9e918a17be15883a0b72a91d688f') version('1.14.0', commit='0acd8974fb5cedde8cd96efea6dfa39324d25b34') - depends_on('r-circlize', type=('build', 'run')) + depends_on('r@3.1.2:', type=('build', 'run')) + depends_on('r-circlize@0.3.4:', type=('build', 'run')) depends_on('r-getoptlong', type=('build', 'run')) depends_on('r-colorspace', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) - depends_on('r-dendextend', type=('build', 'run')) - depends_on('r-globaloptions', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.14.0') + 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')) diff --git a/var/spack/repos/builtin/packages/r-condop/package.py b/var/spack/repos/builtin/packages/r-condop/package.py new file mode 100644 index 0000000000..5bbe0ccad6 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-condop/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RCondop(RPackage): + """CONDOP: Condition-Dependent Operon Predictions. + + An implementation of the computational strategy for the comprehensive + analysis of condition-dependent operon maps in prokaryotes proposed by + Fortino et al. (2014) <doi:10.1186/1471-2105-15-145>. It uses RNA-seq + transcriptome profiles to improve prokaryotic operon map inference.""" + + homepage = "https://cloud.r-project.org/package=CONDOP" + url = "https://cloud.r-project.org/src/contrib/CONDOP_1.0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/CONDOP" + + version('1.0', sha256='3a855880f5c6b33f949c7e6de53c8e014b4d72b7024a93878b344d3e52b5296a') + + depends_on('r-mclust', type=('build', 'run')) + depends_on('r-earth', type=('build', 'run')) + depends_on('r-plyr', type=('build', 'run')) + depends_on('r-seqinr', type=('build', 'run')) + depends_on('r-randomforest', type=('build', 'run')) + depends_on('r-rminer', type=('build', 'run')) + depends_on('r-genomicranges', type=('build', 'run')) + depends_on('r-genomeinfodb', type=('build', 'run')) + depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-iranges', 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 8c8c170072..47b9c4a0ab 100644 --- a/var/spack/repos/builtin/packages/r-ctc/package.py +++ b/var/spack/repos/builtin/packages/r-ctc/package.py @@ -7,13 +7,18 @@ from spack import * class RCtc(RPackage): - """Tools for export and import classification trees and clusters - to other programs""" + """Cluster and Tree Conversion.. - homepage = "https://www.bioconductor.org/packages/release/bioc/html/ctc.html" + Tools for export and import classification trees and clusters to other + programs""" + + homepage = "https://bioconductor.org/packages/ctc" git = "https://git.bioconductor.org/packages/ctc.git" + version('1.58.0', commit='c41df03ac149db20c5e337142142d61cfb9b43fb') + version('1.56.0', commit='cbd5befdda4630799f8fe0d868d83b094e3d352f') version('1.54.0', commit='0c3df81dfc8fabe12e11884bed44b64e11fd6d4e') + version('1.52.0', commit='ffff8693cab5ebad610d139367f089418f1830a1') + version('1.50.0', commit='4ee7519c3e5172e140c2658b4cf5271d229acc7e') depends_on('r-amap', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.54.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-dada2/package.py b/var/spack/repos/builtin/packages/r-dada2/package.py new file mode 100644 index 0000000000..41354055fe --- /dev/null +++ b/var/spack/repos/builtin/packages/r-dada2/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RDada2(RPackage): + """Accurate sample inference from amplicon data with single nucleotide + resolution""" + + homepage = "http://benjjneb.github.io/dada2/" + url = "https://github.com/benjjneb/dada2/archive/v1.14.tar.gz" + + version('1.14', sha256='19980b9d7b0a0e80e86010357cae11d1fc07c2d02067c4445169143cf1f99906') + + depends_on('r@3.4:', type=('build', 'run')) + depends_on('r-rcpp@0.12.0:', type=('build', 'run')) + depends_on('r-biostrings@2.42.1:', type=('build', 'run')) + depends_on('r-ggplot2@2.1.0:', type=('build', 'run')) + depends_on('r-reshape2@1.4.1:', type=('build', 'run')) + depends_on('r-shortread@1.32.0:', type=('build', 'run')) + depends_on('r-rcppparallel@4.3.0:', type=('build', 'run')) + depends_on('r-iranges@2.6.0:', type=('build', 'run')) + depends_on('r-xvector@0.16.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.22.0:', type=('build', 'run')) + + depends_on('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-delayedarray/package.py b/var/spack/repos/builtin/packages/r-delayedarray/package.py index 10652164c8..93c2915f9c 100644 --- a/var/spack/repos/builtin/packages/r-delayedarray/package.py +++ b/var/spack/repos/builtin/packages/r-delayedarray/package.py @@ -7,37 +7,42 @@ from spack import * class RDelayedarray(RPackage): - """Wrapping an array-like object (typically an on-disk object) in a - DelayedArray object allows one to perform common array operations on it - without loading the object in memory. In order to reduce memory usage - and optimize performance, operations on the object are either delayed - or executed using a block processing mechanism. Note that this also - works on in-memory array-like objects like DataFrame objects (typically - with Rle columns), Matrix objects, and ordinary arrays and data frames. + """A unified framework for working transparently with on-disk and in-memory + 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 without loading the object in memory. In order to reduce memory usage - and optimize performance, operations on the object are either delayed - or executed using a block processing mechanism. Note that this also - works on in-memory array-like objects like DataFrame objects (typically - with Rle columns), Matrix objects, and ordinary arrays and data - frames.""" + and optimize performance, operations on the object are either delayed or + executed using a block processing mechanism. Note that this also works + on in-memory array-like objects like DataFrame objects (typically with + Rle columns), Matrix objects, and ordinary arrays and data frames.""" - homepage = "https://bioconductor.org/packages/DelayedArray/" + homepage = "https://bioconductor.org/packages/DelayedArray" git = "https://git.bioconductor.org/packages/DelayedArray.git" - version('0.6.5', commit='7d1cb6477cb024c38bf1ee0c9155e010249ed94e') + version('0.10.0', commit='4781d073110a3fd1e20c4083b6b2b0f260d0cb0a') + version('0.8.0', commit='7c23cf46558de9dbe7a42fba516a9bb660a0f19f') + version('0.6.6', commit='bdb0ac0eee71edd40ccca4808f618fa77f595a64') version('0.4.1', commit='ffe932ef8c255614340e4856fc6e0b44128a27a1') version('0.2.7', commit='909c2ce1665ebae2543172ead50abbe10bd42bc4') - depends_on('r-biocparallel', when='@0.6.5:', type=('build', 'run')) + depends_on('r@3.4:', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.25.1:', when='@0.6.5', type=('build', 'run')) - depends_on('r-s4vectors@0.14.3:', when='@0.2.7', type=('build', 'run')) - depends_on('r-s4vectors@0.15.3:', when='@0.4.1', type=('build', 'run')) - depends_on('r-s4vectors@0.17.43:', when='@0.6.5', type=('build', 'run')) + depends_on('r-s4vectors@0.14.3:', 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-matrixstats', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@0.2.7', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@0.6.5', 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-iranges@2.17.3:', when='@0.10.0:', type=('build', 'run')) + depends_on('r-matrix', when='@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 new file mode 100644 index 0000000000..47253903ce --- /dev/null +++ b/var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py @@ -0,0 +1,41 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RDelayedmatrixstats(RPackage): + """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 + and columns of DelayedMatrix objects, 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.""" + + homepage = "https://bioconductor.org/packages/DelayedMatrixStats" + git = "https://git.bioconductor.org/packages/DelayedMatrixStats.git" + + 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-delayedarray', type=('build', 'run')) + depends_on('r-matrixstats@0.53.1:', 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-hdf5array@1.7.10:', when='@1.4.0:', 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-deseq/package.py b/var/spack/repos/builtin/packages/r-deseq/package.py index dc60c09f45..d7cdac0f7c 100644 --- a/var/spack/repos/builtin/packages/r-deseq/package.py +++ b/var/spack/repos/builtin/packages/r-deseq/package.py @@ -7,18 +7,24 @@ from spack import * class RDeseq(RPackage): - """Estimate variance-mean dependence in count data from - high-throughput sequencing assays and test for differential - expression based on a model using the negative binomial - distribution.""" + """Differential gene expression analysis based on the negative binomial + distribution. - homepage = "https://www.bioconductor.org/packages/DESeq/" + Estimate variance-mean dependence in count data from high-throughput + sequencing assays and test for differential expression based on a model + using the negative binomial distribution""" + + homepage = "https://bioconductor.org/packages/DESeq" git = "https://git.bioconductor.org/packages/DESeq.git" + version('1.36.0', commit='db4af67b49d3bd8c321d19efbe9415cd2e4ddb7e') + version('1.34.1', commit='e86f1b03a30bc02de4bfd4a0759af2f65cb48c62') + version('1.32.0', commit='e3d623b815b53d79eae7cdd09d097cc6098d28c9') + version('1.30.0', commit='90c93d991dd980d538c13b0361d3345f9546794e') version('1.28.0', commit='738371466e6ccf00179fd35b617c8ba0e1e91630') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) + depends_on('r-biocgenerics@0.7.5:', type=('build', 'run')) + depends_on('r-biobase@2.21.7:', type=('build', 'run')) depends_on('r-locfit', type=('build', 'run')) depends_on('r-lattice', type=('build', 'run')) depends_on('r-genefilter', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-deseq2/package.py b/var/spack/repos/builtin/packages/r-deseq2/package.py index ac9f7257de..2690978df8 100644 --- a/var/spack/repos/builtin/packages/r-deseq2/package.py +++ b/var/spack/repos/builtin/packages/r-deseq2/package.py @@ -7,24 +7,27 @@ from spack import * class RDeseq2(RPackage): - """Estimate variance-mean dependence in count data from - high-throughput sequencing assays and test for differential - expression based on a model using the negative binomial - distribution.""" + """Differential gene expression analysis based on the negative binomial + distribution. - homepage = "https://www.bioconductor.org/packages/DESeq2/" + Estimate variance-mean dependence in count data from high-throughput + sequencing assays and test for differential expression based on a model + using the negative binomial distribution.""" + + homepage = "https://bioconductor.org/packages/DESeq2" git = "https://git.bioconductor.org/packages/DESeq2.git" + version('1.24.0', commit='3ce7fbbebac526b726a6f85178063d02eb0314bf') + version('1.22.2', commit='3c6a89b61add635d6d468c7fa00192314f8ca4ce') version('1.20.0', commit='7e88ea5c5e68473824ce0af6e10f19e22374cb7c') version('1.18.1', commit='ef65091d46436af68915124b752f5e1cc55e93a7') - version('1.16.1', commit='0a815574382704a08ef8b906eceb0296f81cded5') + version('1.16.1', commit='f41d9df2de25fb57054480e50bc208447a6d82fb') - depends_on("r-rcpparmadillo", type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-s4vectors@0.9.25:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-summarizedexperiment', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-summarizedexperiment@1.1.6:', type=('build', 'run')) + depends_on('r-biocgenerics@0.7.5:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-biocparallel', type=('build', 'run')) depends_on('r-genefilter', type=('build', 'run')) @@ -32,6 +35,5 @@ class RDeseq2(RPackage): depends_on('r-geneplotter', type=('build', 'run')) depends_on('r-ggplot2', type=('build', 'run')) depends_on('r-hmisc', type=('build', 'run')) - depends_on('r-rcpp', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.16.1:1.19', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.20.0', type=('build', 'run')) + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) + depends_on('r-rcpparmadillo', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py b/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py index 02e911d5d6..1ef0a4aea1 100644 --- a/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py +++ b/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py @@ -7,19 +7,25 @@ from spack import * class RDirichletmultinomial(RPackage): - """Dirichlet-multinomial mixture models can be used to describe - variability in microbial metagenomic data. + """Dirichlet-Multinomial Mixture Model Machine Learning for Microbiome + Data. - This package is an interface to code originally made available by - Holmes, Harris, and Quince, 2012, PLoS ONE 7(2): 1-15, as discussed - further in the man page for this package, ?DirichletMultinomial.""" + Dirichlet-multinomial mixture models can be used to describe variability + in microbial metagenomic data. This package is an interface to code + originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE + 7(2): 1-15, as discussed further in the man page for this package, + ?DirichletMultinomial.""" - homepage = "https://bioconductor.org/packages/DirichletMultinomial/" + homepage = "https://bioconductor.org/packages/DirichletMultinomial" git = "https://git.bioconductor.org/packages/DirichletMultinomial.git" + version('1.26.0', commit='7daa84948020811bb8a27d2e633fccfdcdd1018f') + version('1.24.1', commit='50195d9b1986852da29100e77f6f09df5d6e2a35') + version('1.22.0', commit='5864f4298105d12f345f27df77ad13bae4061ca5') version('1.20.0', commit='251529f301da1482551142240aeb6baf8dab2272') + version('1.18.0', commit='81ccc8d83b8ef84f5d3e877bc0a04233a0f63c51') depends_on('r-s4vectors', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) + depends_on('r-biocgenerics', type=('build', 'run')) depends_on('gsl') - depends_on('r@3.4.0:') diff --git a/var/spack/repos/builtin/packages/r-dnacopy/package.py b/var/spack/repos/builtin/packages/r-dnacopy/package.py index 85bbd55e3c..7a96d1c4fb 100644 --- a/var/spack/repos/builtin/packages/r-dnacopy/package.py +++ b/var/spack/repos/builtin/packages/r-dnacopy/package.py @@ -7,11 +7,17 @@ from spack import * class RDnacopy(RPackage): - """Implements the circular binary segmentation (CBS) algorithm - to segment DNA copy number data and identify genomic regions - with abnormal copy number.""" + """DNA copy number data analysis. - homepage = "https://www.bioconductor.org/packages/DNAcopy/" + Implements the circular binary segmentation (CBS) algorithm to segment + DNA copy number data and identify genomic regions with abnormal copy + number.""" + + homepage = "https://bioconductor.org/packages/DNAcopy" git = "https://git.bioconductor.org/packages/DNAcopy.git" + version('1.58.0', commit='1954745eafca990d6ddeefe84059c54a8c37df23') + version('1.56.0', commit='e521826f2515b309921272f65db421cbe2ff961a') + version('1.54.0', commit='fe2657936afbce8ee03221461dff4265e3ded4c4') + version('1.52.0', commit='2632fbecec4cef3705b85676942a59188ae9bba4') version('1.50.1', commit='a20153029e28c009df813dbaf13d9f519fafa4e8') diff --git a/var/spack/repos/builtin/packages/r-dose/package.py b/var/spack/repos/builtin/packages/r-dose/package.py index 8313f4997e..a363d126a5 100644 --- a/var/spack/repos/builtin/packages/r-dose/package.py +++ b/var/spack/repos/builtin/packages/r-dose/package.py @@ -7,27 +7,37 @@ from spack import * class RDose(RPackage): - """This package implements five methods proposed by Resnik, Schlicker, - Jiang, Lin and Wang respectively for measuring semantic similarities - among DO terms and gene products. Enrichment analyses including - hypergeometric model and gene set enrichment analysis are also - implemented for discovering disease associations of high-throughput - biological data.""" - - homepage = "https://www.bioconductor.org/packages/DOSE/" + """Disease Ontology Semantic and Enrichment analysis. + + This package implements five methods proposed by Resnik, Schlicker, + Jiang, Lin and Wang respectively for measuring semantic similarities + among DO terms and gene products. Enrichment analyses including + hypergeometric model and gene set enrichment analysis are also + implemented for discovering disease associations of high-throughput + biological data.""" + + homepage = "https://bioconductor.org/packages/DOSE" git = "https://git.bioconductor.org/packages/DOSE.git" + version('3.10.2', commit='5ea51a2e2a04b4f3cc974cecb4537e14efd6a7e3') + version('3.8.2', commit='4d3d1ca710aa7e4288a412c8d52b054b86a57639') + version('3.6.1', commit='f2967f0482cea39222bfd15767d0f4a5994f241b') + version('3.4.0', commit='dabb70de1a0f91d1767601e871f2f1c16d29a612') version('3.2.0', commit='71f563fc39d02dfdf65184c94e0890a63b96b86b') - depends_on('r@3.4.0:3.4.9', when='@3.2.0') - depends_on('r-scales', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-reshape2', type=('build', 'run')) - depends_on('r-qvalue', type=('build', 'run')) - depends_on('r-igraph', type=('build', 'run')) - depends_on('r-gosemsim', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) - depends_on('r-fgsea', type=('build', 'run')) - depends_on('r-do-db', type=('build', 'run')) - depends_on('r-biocparallel', type=('build', 'run')) + depends_on('r@3.3.1:', 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-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')) diff --git a/var/spack/repos/builtin/packages/r-dotcall64/package.py b/var/spack/repos/builtin/packages/r-dotcall64/package.py new file mode 100644 index 0000000000..270eeccdf6 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-dotcall64/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RDotcall64(RPackage): + """dotCall64: Enhanced Foreign Function Interface Supporting Long + Vectors.""" + + homepage = "https://git.math.uzh.ch/reinhard.furrer/dotCall64" + url = "https://cloud.r-project.org/src/contrib/dotCall64_1.0-0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/dotCall64" + + version('1.0-0', sha256='69318dc6b8aecc54d4f789c8105e672198363b395f1a764ebaeb54c0473d17ad') + + depends_on('r@3.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-earth/package.py b/var/spack/repos/builtin/packages/r-earth/package.py new file mode 100644 index 0000000000..f7880194d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-earth/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class REarth(RPackage): + """earth: Multivariate Adaptive Regression Splines. + + Build regression models using the techniques in Friedman's papers + "Fast MARS" and "Multivariate Adaptive Regression Splines" + <doi:10.1214/aos/1176347963>.""" + + homepage = "http://www.milbo.users.sonic.net/earth" + 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.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-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 new file mode 100644 index 0000000000..44828d7f90 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ecp/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class REcp(RPackage): + """ecp: Non-Parametric Multiple Change-Point Analysis of + MultivariateData""" + + 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.1', sha256='d2ab194e22e6ab0168222fbccfcf2e25c6cd51a73edc959086b0c6e0a7410268') + + depends_on('r@3.00:', 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 b8c2036b56..d6ac1bc488 100644 --- a/var/spack/repos/builtin/packages/r-edger/package.py +++ b/var/spack/repos/builtin/packages/r-edger/package.py @@ -7,22 +7,30 @@ from spack import * class REdger(RPackage): - """Differential expression analysis of RNA-seq expression profiles with + """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 based on the negative binomial distributions, including empirical Bayes estimation, exact tests, generalized linear models and quasi-likelihood tests. As well as RNA-seq, it be applied to differential signal analysis of other types of genomic data that produce counts, including ChIP-seq, - SAGE and CAGE.""" + Bisulfite-seq, SAGE and CAGE.""" - homepage = "https://bioconductor.org/packages/edgeR/" + homepage = "https://bioconductor.org/packages/edgeR" git = "https://git.bioconductor.org/packages/edgeR.git" - version('3.22.3', commit='e82e54afc9398ac54dc4caba0f7ae5c43e572203') + version('3.26.8', commit='836809e043535f2264e5db8b5c0eabcffe85613f') + version('3.24.3', commit='d1260a2aeba67b9ab7a9b8b197b746814ad0716d') + version('3.22.5', commit='44461aa0412ef4a0d955730f365e44fc64fe1902') + version('3.20.9', commit='acbcbbee939f399673678653678cd9cb4917c4dc') version('3.18.1', commit='101106f3fdd9e2c45d4a670c88f64c12e97a0495') + depends_on('r@2.15.0:', type=('build', 'run')) depends_on('r-limma', type=('build', 'run')) depends_on('r-locfit', type=('build', 'run')) - depends_on('r-rcpp', type=('build', 'link', 'run')) - depends_on('r@3.5.0:3.5.9', when='@3.22.3') - depends_on('r@3.4.0:3.4.9', when='@3.18.1') + + depends_on('r-limma@3.34.5:', when='@3.20.9:', 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-enrichplot/package.py b/var/spack/repos/builtin/packages/r-enrichplot/package.py new file mode 100644 index 0000000000..782b865595 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-enrichplot/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class REnrichplot(RPackage): + """Visualization of Functional Enrichment Result. + + The 'enrichplot' package implements several visualization methods for + interpreting functional enrichment results obtained from ORA or GSEA + analysis. All the visualization methods are developed based on 'ggplot2' + graphics.""" + + homepage = "https://bioconductor.org/packages/enrichplot" + git = "https://git.bioconductor.org/packages/enrichplot.git" + + 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-cowplot', type=('build', 'run')) + depends_on('r-dose@3.5.1:', 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-purrr', when='@1.2.0:', type=('build', 'run')) + depends_on('r-rcolorbrewer', when='@1.2.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 ec31c4a9e2..71311bd6a9 100644 --- a/var/spack/repos/builtin/packages/r-ensembldb/package.py +++ b/var/spack/repos/builtin/packages/r-ensembldb/package.py @@ -7,36 +7,54 @@ from spack import * class REnsembldb(RPackage): - """The package provides functions to create and use transcript centric + """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 directly fetched from Ensembl using their Perl API. The functionality and data is similar to that of the TxDb packages from the GenomicFeatures package, but, in addition to retrieve all - gene/transcript models and annotations from the database, the ensembldb - package provides also a filter framework allowing to retrieve - annotations for specific entries like genes encoded on a chromosome - region or transcript models of lincRNA genes.""" + gene/transcript models and annotations from the database, ensembldb + provides a filter framework allowing to retrieve annotations for + specific entries like genes encoded on a chromosome region or transcript + models of lincRNA genes. EnsDb databases built with ensembldb contain + also protein annotations and mappings between proteins and their + encoding transcripts. Finally, ensembldb provides functions to map + between genomic, transcript and protein coordinates.""" - homepage = "https://bioconductor.org/packages/ensembldb/" + homepage = "https://bioconductor.org/packages/ensembldb" git = "https://git.bioconductor.org/packages/ensembldb.git" + version('2.8.1', commit='a4d8d89c143dca86b364d59dff8e46cc81c41ac0') + version('2.6.8', commit='c2c4f41b4ecc81d5328ce1d380065dfcb5e0c54c') + version('2.4.1', commit='b5b6b94826a2f46a4faecb9dde750ecd3bfaf327') + version('2.2.2', commit='d71610e58aed88dbbe6a74e7a8ddfb7451398060') version('2.0.4', commit='514623d71e3cca7a4e547adb579b5a958702ef86') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) - depends_on('r-annotationfilter', type=('build', 'run')) - depends_on('r-rsqlite', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.10:', type=('build', 'run')) + depends_on('r-genomicranges@1.23.21:', type=('build', 'run')) + depends_on('r-genomicfeatures@1.23.18:', type=('build', 'run')) + depends_on('r-annotationfilter@0.99.7:', 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')) depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) + 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', type=('build', 'run')) + depends_on('r-annotationhub', when='@2.0.4:2.2.2', 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@3.4.0:3.4.9', 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-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')) diff --git a/var/spack/repos/builtin/packages/r-europepmc/package.py b/var/spack/repos/builtin/packages/r-europepmc/package.py new file mode 100644 index 0000000000..6cd644a759 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-europepmc/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class REuropepmc(RPackage): + """europepmc: R Interface to the Europe PubMed Central RESTful Web + Service""" + + homepage = "http://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.3', sha256='5044a253d223e2bb8502063cd03c0fe4db856467e497d650da7ccd8f75d0f8d9') + + depends_on('r@3.00:', type=('build', 'run')) + depends_on('r-dplyr', 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-progress', type=('build', 'run')) + depends_on('r-purrr', type=('build', 'run')) + depends_on('r-urltools', type=('build', 'run')) + depends_on('r-xml2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-farver/package.py b/var/spack/repos/builtin/packages/r-farver/package.py new file mode 100644 index 0000000000..855b679532 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-farver/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RFarver(RPackage): + """farver: High Performance Colour Space Manipulation""" + + 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') diff --git a/var/spack/repos/builtin/packages/r-fgsea/package.py b/var/spack/repos/builtin/packages/r-fgsea/package.py index 81bff39da6..04da77c0cd 100644 --- a/var/spack/repos/builtin/packages/r-fgsea/package.py +++ b/var/spack/repos/builtin/packages/r-fgsea/package.py @@ -7,20 +7,30 @@ from spack import * class RFgsea(RPackage): - """The package implements an algorithm for fast gene set enrichment - analysis. Using the fast algorithm allows to make more permutations - and get more fine grained p-values, which allows to use accurate - stantard approaches to multiple hypothesis correction.""" + """Fast Gene Set Enrichment Analysis. - homepage = "https://www.bioconductor.org/packages/fgsea/" + The package implements an algorithm for fast gene set enrichment + analysis. Using the fast algorithm allows to make more permutations and + get more fine grained p-values, which allows to use accurate stantard + approaches to multiple hypothesis correction.""" + + homepage = "https://bioconductor.org/packages/fgsea" git = "https://git.bioconductor.org/packages/fgsea.git" + version('1.10.1', commit='fb06a6ebfb4a195e77e37226d100a2148b90c5f3') + version('1.8.0', commit='bb2898aca9fb23e90770671a83fe23f79bb1841b') + version('1.6.0', commit='52b801b7c2dfd8238fa8f2b402fddb4fda60271d') + version('1.4.1', commit='73de5ff364e520ac99507a9ee5a61a0d23d3c44e') version('1.2.1', commit='99b04eef664204d0dca4b9f8027cd7eefb006b72') - depends_on('r@3.4.0:3.4.9', when='@1.2.1') - depends_on('r-fastmatch', type=('build', 'run')) - depends_on('r-gridextra', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) - depends_on('r-biocparallel', type=('build', 'run')) - depends_on('r-data-table', type=('build', 'run')) + depends_on('r@3.3:', type=('build', 'run')) depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-data-table', type=('build', 'run')) + depends_on('r-biocparallel', type=('build', 'run')) + 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 new file mode 100644 index 0000000000..989967c799 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-fields/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RFields(RPackage): + """fields: Tools for Spatial Data""" + + 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('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')) diff --git a/var/spack/repos/builtin/packages/r-gcrma/package.py b/var/spack/repos/builtin/packages/r-gcrma/package.py index 2a78008960..6a45cef8e9 100644 --- a/var/spack/repos/builtin/packages/r-gcrma/package.py +++ b/var/spack/repos/builtin/packages/r-gcrma/package.py @@ -7,17 +7,23 @@ from spack import * class RGcrma(RPackage): - """Background adjustment using sequence information""" + """Background Adjustment Using Sequence Information.""" - homepage = "https://bioconductor.org/packages/gcrma/" + homepage = "https://bioconductor.org/packages/gcrma" git = "https://git.bioconductor.org/packages/gcrma.git" + version('2.56.0', commit='1f37bbfb4d3ed542b1e90704ab0fa8914d5e0224') + version('2.54.0', commit='9515fdbbc766a2a3b2ec61cf530c57bbded77ccc') + version('2.52.0', commit='d6e90b05432d2a8b0583d3fed001811ecdf49d7d') + version('2.50.0', commit='cbba460d131e1073059500b8d7b168a78f963992') version('2.48.0', commit='3ea0eb0b5c15ffb24df76620667ae7996ed715b4') - depends_on('r-affy', type=('build', 'run')) + depends_on('r@2.6.0:', type=('build', 'run')) + depends_on('r-affy@1.23.2:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r-affyio', type=('build', 'run')) + depends_on('r-affyio@1.13.3:', type=('build', 'run')) depends_on('r-xvector', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) + depends_on('r-biostrings@2.11.32:', type=('build', 'run')) depends_on('r-biocinstaller', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.48.0') + + depends_on('r-biocmanager', when='@2.54.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-gdsfmt/package.py b/var/spack/repos/builtin/packages/r-gdsfmt/package.py index 960f98f1f4..b388b0d373 100644 --- a/var/spack/repos/builtin/packages/r-gdsfmt/package.py +++ b/var/spack/repos/builtin/packages/r-gdsfmt/package.py @@ -7,22 +7,28 @@ from spack import * class RGdsfmt(RPackage): - """This package provides a high-level R interface to CoreArray Genomic - Data Structure (GDS) data files, which are portable across platforms - with hierarchical structure to store multiple scalable array-oriented - data sets with metadata information. It is suited for large-scale - datasets, especially for data which are much larger than the available - random-access memory. The gdsfmt package offers the efficient - operations specifically designed for integers of less than 8 bits, - since a diploid genotype, like single-nucleotide polymorphism (SNP), - usually occupies fewer bits than a byte. Data compression and - decompression are available with relatively efficient random access. - It is also allowed to read a GDS file in parallel with multiple R - processes supported by the package parallel.""" + """R Interface to CoreArray Genomic Data Structure (GDS) Files. - homepage = "http://bioconductor.org/packages/gdsfmt/" + This package provides a high-level R interface to CoreArray Genomic Data + Structure (GDS) data files, which are portable across platforms with + hierarchical structure to store multiple scalable array-oriented data + sets with metadata information. It is suited for large-scale datasets, + especially for data which are much larger than the available random- + access memory. The gdsfmt package offers the efficient operations + specifically designed for integers of less than 8 bits, since a diploid + genotype, like single-nucleotide polymorphism (SNP), usually occupies + fewer bits than a byte. Data compression and decompression are available + with relatively efficient random access. It is also allowed to read a + GDS file in parallel with multiple R processes supported by the package + parallel.""" + + homepage = "https://bioconductor.org/packages/gdsfmt" git = "https://git.bioconductor.org/packages/gdsfmt.git" + version('1.20.0', commit='b1fbaba0a5ace3dc45daecc85168651cd85dce00') + version('1.18.1', commit='b911b953e9db7988e93ec2010b0ab1e384d073c9') + version('1.16.0', commit='49b011452585e432b983b68466a230c9b71d8a95') version('1.14.1', commit='15743647b7eea5b82d3284858b4591fb6e59959d') + version('1.12.0', commit='d705a95b0bea7be2a2b37e939f45017337ba0fb6') - depends_on('r@3.4.0:3.4.9', when='@1.14.1') + depends_on('r@2.15.0:', 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 73eebbd357..c94e3dee03 100644 --- a/var/spack/repos/builtin/packages/r-genefilter/package.py +++ b/var/spack/repos/builtin/packages/r-genefilter/package.py @@ -7,17 +7,20 @@ from spack import * class RGenefilter(RPackage): - """Some basic functions for filtering genes""" + """genefilter: methods for filtering genes from high-throughput + experiments.""" - homepage = "https://bioconductor.org/packages/genefilter/" + homepage = "https://bioconductor.org/packages/genefilter" git = "https://git.bioconductor.org/packages/genefilter.git" + 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', type=('build', 'run')) + depends_on('r-s4vectors@0.9.42:', 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@3.4.0:3.4.9', when='@1.58.1', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.62.0', type=('build', 'run')) + depends_on('r-survival', 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 e569d285c2..17b7e76392 100644 --- a/var/spack/repos/builtin/packages/r-genelendatabase/package.py +++ b/var/spack/repos/builtin/packages/r-genelendatabase/package.py @@ -7,14 +7,20 @@ from spack import * class RGenelendatabase(RPackage): - """Length of mRNA transcripts for a number of genomes and gene ID - formats, largely based on UCSC table browser""" + """Lengths of mRNA transcripts for a number of genomes. - homepage = "https://bioconductor.org/packages/release/data/experiment/html/geneLenDataBase.html" + Length of mRNA transcripts for a number of genomes and gene ID formats, + largely based on UCSC table browser""" + + homepage = "https://bioconductor.org/packages/geneLenDataBase" git = "https://git.bioconductor.org/packages/geneLenDataBase.git" + version('1.20.0', commit='70a1abed00ee68f7bfa07c42c011f9edae9915e4') + version('1.18.0', commit='77db87e5a4819bf94761fabef0d2ff741a1c5d07') version('1.16.0', commit='c2a8b2359c6c59388853d6f6d15d71dffb17a198') + version('1.14.0', commit='b456b3ffb04eaf335893fdec2bb10f6795dd7e08') + version('1.12.0', commit='85d6536763c12850e6c01da9e2f9e0b9c07601fe') - depends_on('r@3.5.0:3.5.9', when='@1.16.0:', type=('build', 'run')) + depends_on('r@2.11.0:', type=('build', 'run')) depends_on('r-rtracklayer', type=('build', 'run')) depends_on('r-genomicfeatures@1.3.15:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-genemeta/package.py b/var/spack/repos/builtin/packages/r-genemeta/package.py new file mode 100644 index 0000000000..75276b47f0 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-genemeta/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGenemeta(RPackage): + """MetaAnalysis for High Throughput Experiments. + + A collection of meta-analysis tools for analysing high throughput + experimental data""" + + homepage = "https://bioconductor.org/packages/GeneMeta" + git = "https://git.bioconductor.org/packages/GeneMeta.git" + + version('1.56.0', commit='cb2c9e353d34ea9f3db06cb236c7a89674f2682d') + version('1.54.0', commit='932553cd8df82b7df804fccda9bfd4b0f36d79d7') + version('1.52.0', commit='1f21759984a5852c42a19e89ee53ffd72053d49c') + version('1.50.0', commit='0f8603653285698ed451fcbf536a4b3f90015f92') + version('1.48.0', commit='68c65304d37f5a4722cf4c25afb23214c3a2f4c8') + + depends_on('r@2.10:', type=('build', 'run')) + depends_on('r-biobase@2.5.5:', type=('build', 'run')) + depends_on('r-genefilter', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-geneplotter/package.py b/var/spack/repos/builtin/packages/r-geneplotter/package.py index d1794933df..1c9362e515 100644 --- a/var/spack/repos/builtin/packages/r-geneplotter/package.py +++ b/var/spack/repos/builtin/packages/r-geneplotter/package.py @@ -7,19 +7,21 @@ from spack import * class RGeneplotter(RPackage): - """Functions for plotting genomic data.""" + """Graphics related functions for Bioconductor.""" - homepage = "https://www.bioconductor.org/packages/geneplotter/" + homepage = "https://bioconductor.org/packages/geneplotter" git = "https://git.bioconductor.org/packages/geneplotter.git" + version('1.62.0', commit='1fbaddde11014b453b131860409f89cd784e8e48') + version('1.60.0', commit='6723a9fc0730e146187e79c2ddab6a68186dc5ad') version('1.58.0', commit='2b3f44804d61a40cfe7eaedf74ac9f5a054f7fde') + version('1.56.0', commit='881d25aece3dc00cc4280457ffecdc25e93bb1f1') version('1.54.0', commit='efdd946e092e44e35fde1eb4bcc5ec1d52090940') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) depends_on('r-lattice', type=('build', 'run')) depends_on('r-annotate', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.54.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.58.0', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-genie3/package.py b/var/spack/repos/builtin/packages/r-genie3/package.py index b86edd6c00..ebe6e6e4e3 100644 --- a/var/spack/repos/builtin/packages/r-genie3/package.py +++ b/var/spack/repos/builtin/packages/r-genie3/package.py @@ -7,13 +7,17 @@ from spack import * class RGenie3(RPackage): - """This package implements the GENIE3 algorithm for inferring gene - regulatory networks from expression data.""" + """GEne Network Inference with Ensemble of trees. - homepage = "https://bioconductor.org/packages/GENIE3/" + This package implements the GENIE3 algorithm for inferring gene + regulatory networks from expression data.""" + + homepage = "https://bioconductor.org/packages/GENIE3" git = "https://git.bioconductor.org/packages/GENIE3.git" - version('1.2.0', commit='cafe6a1a85095cda6cc3c812eb6f53501fcbaf93') + version('1.6.0', commit='d6a49182e098342afe77f01c322dfc7b72450502') + version('1.4.3', commit='ae719c759f23f09d28fcf1acc45b860cd7761f08') + version('1.2.1', commit='1b56fe8184d521d1bb247f000efe9e2b540604c9') + version('1.0.0', commit='eb7c95ed12ea50d61e8fa20bc2b25ae9d74c302f') depends_on('r-reshape2', type=('build', 'run')) - depends_on('r@3.5.0:', when='@1.2.0') diff --git a/var/spack/repos/builtin/packages/r-genomeinfodb/package.py b/var/spack/repos/builtin/packages/r-genomeinfodb/package.py index bbf6bf0609..6f5fa9f8da 100644 --- a/var/spack/repos/builtin/packages/r-genomeinfodb/package.py +++ b/var/spack/repos/builtin/packages/r-genomeinfodb/package.py @@ -7,25 +7,29 @@ from spack import * class RGenomeinfodb(RPackage): - """Contains data and functions that define and allow translation between - different chromosome sequence naming conventions (e.g., "chr1" - versus "1"), including a function that attempts to place sequence - names in their natural, rather than lexicographic, order.""" + """Utilities for manipulating chromosome names, including modifying them to + follow a particular naming style. - homepage = "https://bioconductor.org/packages/GenomeInfoDb/" + Contains data and functions that define and allow translation between + different chromosome sequence naming conventions (e.g., "chr1" versus + "1"), including a function that attempts to place sequence names in + their natural, rather than lexicographic, order.""" + + homepage = "https://bioconductor.org/packages/GenomeInfoDb" git = "https://git.bioconductor.org/packages/GenomeInfoDb.git" + version('1.20.0', commit='ea771e3b429ef17fb912fb37333556c6f77f2265') + version('1.18.2', commit='557b75ea7734749a2650d30f5c5d52c57a6bcc6f') version('1.16.0', commit='6543dad89bbc2c275010b329eb114b237fd712fa') version('1.14.0', commit='4978308a57d887b764cc4ce83724ca1758f580f6') version('1.12.3', commit='2deef3f0571b7f622483257bc22d2509ab5a0369') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.13.8:', when='@1.16.0', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.25:', when='@1.16.0', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.12:', when='@1.16.0', type=('build', 'run')) + 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-iranges@1.99.26:', type=('build', 'run')) depends_on('r-rcurl', type=('build', 'run')) depends_on('r-genomeinfodbdata', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.12.3', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.16.0', 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 ea436ffaef..cb07c47095 100644 --- a/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py +++ b/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py @@ -13,8 +13,11 @@ class RGenomeinfodbdata(RPackage): homepage = "https://bioconductor.org/packages/GenomeInfoDbData/" url = "https://bioconductor.org/packages/3.5/data/annotation/src/contrib/GenomeInfoDbData_0.99.0.tar.gz" + version('1.2.1', sha256='75e6d683a29b8baeec66ba5194aa59a6aa69b04fae5a9c718a105c155fb41711', + url='https://bioconductor.org/packages/3.9/data/annotation/src/contrib/GenomeInfoDbData_1.2.1.tar.gz') version('1.1.0', sha256='6efdca22839c90d455843bdab7c0ecb5d48e3b6c2f7b4882d3210a6bbad4304c', url='https://bioconductor.org/packages/3.7/data/annotation/src/contrib/GenomeInfoDbData_1.1.0.tar.gz') version('0.99.0', sha256='457049804bbd70f218c1c84067a23e83bdecb7304a3e4d8b697fee0b16dc1888') - depends_on('r@3.4.0:3.4.9', when='@0.99.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.1.0', type=('build', 'run')) + + depends_on('r@3.3:', when='@0.99.0:1.1.0', type=('build', 'run')) + depends_on('r@3.5:', when='@1.2.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-genomicalignments/package.py b/var/spack/repos/builtin/packages/r-genomicalignments/package.py index 3ffe5c5cf7..6d35d306d5 100644 --- a/var/spack/repos/builtin/packages/r-genomicalignments/package.py +++ b/var/spack/repos/builtin/packages/r-genomicalignments/package.py @@ -7,35 +7,44 @@ from spack import * class RGenomicalignments(RPackage): - """Provides efficient containers for storing and manipulating short genomic - alignments (typically obtained by aligning short reads to a reference - genome). This includes read counting, computing the coverage, junction - detection, and working with the nucleotide content of the alignments.""" + """Representation and manipulation of short genomic alignments. - homepage = "https://bioconductor.org/packages/GenomicAlignments/" + Provides efficient containers for storing and manipulating short genomic + alignments (typically obtained by aligning short reads to a reference + genome). This includes read counting, computing the coverage, junction + detection, and working with the nucleotide content of the alignments.""" + + homepage = "https://bioconductor.org/packages/GenomicAlignments" git = "https://git.bioconductor.org/packages/GenomicAlignments.git" + version('1.20.1', commit='9dce402071e4cd945de7ff82ea574c79993625fd') + version('1.18.1', commit='8ac41e5981cf343076044f451a984afb651688ab') version('1.16.0', commit='db032a459e5cf05a2a5c2059662a541827112974') version('1.14.2', commit='57b0b35d8b36069d4d94af86af051f0129b28eef') version('1.12.2', commit='b5d6f19e4a89b6c1c3e9e58e5ea4eb13870874ef') + 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-iranges@2.5.36:', when='@1.12.2', 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-genomeinfodb@1.11.5:', when='@1.12.2', type=('build', 'run')) - depends_on('r-genomeinfodb@1.13.1:', when='@1.14.2:', type=('build', 'run')) - depends_on('r-genomicranges@1.27.19:', when='@1.12.2', type=('build', 'run')) - depends_on('r-genomicranges@1.29.14:', when='@1.14.2', type=('build', 'run')) - depends_on('r-genomicranges@1.31.19:', when='@1.16.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-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-rsamtools@1.21.4:', type=('build', 'run')) - depends_on('r-rsamtools@1.31.2:', when='@1.16.0', type=('build', 'run')) depends_on('r-biocparallel', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.12.2:1.15.9', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.16.0', type=('build', 'run')) + + depends_on('r-iranges@2.11.16:', when='@1.14.2:', type=('build', 'run')) + depends_on('r-genomeinfodb@1.13.1:', when='@1.14.2:', 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-summarizedexperiment@1.9.13:', when='@1.16.0:', type=('build', 'run')) + depends_on('r-biostrings@2.47.6:', when='@1.16.0:', 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')) diff --git a/var/spack/repos/builtin/packages/r-genomicfeatures/package.py b/var/spack/repos/builtin/packages/r-genomicfeatures/package.py index 48015bbebd..693aebf13d 100644 --- a/var/spack/repos/builtin/packages/r-genomicfeatures/package.py +++ b/var/spack/repos/builtin/packages/r-genomicfeatures/package.py @@ -7,7 +7,9 @@ from spack import * class RGenomicfeatures(RPackage): - """A set of tools and methods for making and manipulating transcript + """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 genomic locations of the transcripts, exons and cds of a given organism, from either the UCSC Genome Browser or a BioMart database (more sources @@ -16,35 +18,40 @@ class RGenomicfeatures(RPackage): exons, cds and genes. Flexible methods are provided for extracting the desired features in a convenient format.""" - homepage = "http://bioconductor.org/packages/GenomicFeatures/" + homepage = "https://bioconductor.org/packages/GenomicFeatures" git = "https://git.bioconductor.org/packages/GenomicFeatures.git" - version('1.32.2', commit='8487aedc8be85a99f0c3fc90cd62430b3fec3a03') + version('1.36.4', commit='28082ec465c91ccaec6881ff348b380edac1b555') + version('1.34.8', commit='c798b3bb111f4de30632303540074ec1875c1387') + version('1.32.3', commit='80807d88048858846de3750cecb9431a0e5e69e1') + version('1.30.3', commit='496bbf81beebd7c934b8d3dcea001e3e4a7d7dee') version('1.28.5', commit='ba92381ae93cb1392dad5e6acfab8f6c1d744834') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.29:', when='@1.32.2', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.23:', when='@1.32.2', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomeinfodb@1.15.4:', when='@1.32.2', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-genomicranges@1.31.17:', when='@1.32.2', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-annotationdbi@1.41.4:', when='@1.32.2', type=('build', 'run')) + depends_on('r-biocgenerics@0.1.0:', type=('build', 'run')) + depends_on('r-s4vectors@0.9.47:', type=('build', 'run')) + depends_on('r-iranges@2.9.19:', 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-annotationdbi@1.33.15:', type=('build', 'run')) depends_on('r-dbi', type=('build', 'run')) - depends_on('r-rsqlite@2.0:', when='@1.28.5:', 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.2', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-biostrings@2.47.6:', when='@1.32.2', type=('build', 'run')) - depends_on('r-rtracklayer', type=('build', 'run')) - depends_on('r-rtracklayer@1.39.7:', when='@1.32.2', type=('build', 'run')) - depends_on('r-biomart', type=('build', 'run')) - depends_on('r-biomart@2.17.1:', when='@1.32.2', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-biobase@2.15.1:', when='@1.32.2', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.28.5', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.32.2', type=('build', 'run')) + depends_on('r-biostrings@2.23.3:', type=('build', 'run')) + depends_on('r-rtracklayer@1.29.24:', 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 887d32f988..4a2312c1d6 100644 --- a/var/spack/repos/builtin/packages/r-genomicranges/package.py +++ b/var/spack/repos/builtin/packages/r-genomicranges/package.py @@ -7,35 +7,45 @@ from spack import * class RGenomicranges(RPackage): - """The ability to efficiently represent and manipulate genomic annotations + """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 high-throughput sequencing data (a.k.a. NGS data). The GenomicRanges package defines general purpose containers for storing and manipulating genomic intervals and variables defined along a genome. More specialized containers for representing and manipulating short alignments against a reference genome, or a matrix-like summarization of an experiment, are - defined in the GenomicAlignments and SummarizedExperiment packages + defined in the GenomicAlignments and SummarizedExperiment packages, respectively. Both packages build on top of the GenomicRanges infrastructure.""" - homepage = "https://bioconductor.org/packages/GenomicRanges/" + homepage = "https://bioconductor.org/packages/GenomicRanges" git = "https://git.bioconductor.org/packages/GenomicRanges.git" - version('1.32.6', commit='31426be0fd6b76f7858971dc45aaf6e6d1dbac4e') + version('1.36.1', commit='418e7e5647dd54d81b804455ddfcbc027fd0164a') + version('1.34.0', commit='ebaad5ca61abb67c2c30c132e07531ba4257bccd') + version('1.32.7', commit='4c56dc836dbfd0d228dc810e8d401811cdbc267c') version('1.30.3', commit='e99979054bc50ed8c0109bc54563036c1b368997') version('1.28.6', commit='197472d618f3ed04c795dc6ed435500c29619563') + 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.6', type=('build', 'run')) depends_on('r-s4vectors@0.9.47:', type=('build', 'run')) - depends_on('r-s4vectors@0.17.32:', when='@1.32.6', type=('build', 'run')) - depends_on('r-iranges@2.9.11:', when='@1.28.6', type=('build', 'run')) - depends_on('r-iranges@2.11.16:', when='@1.30.3', type=('build', 'run')) - depends_on('r-iranges@2.14.4:', when='@1.32.6', type=('build', 'run')) - depends_on('r-genomeinfodb@1.11.5:', when='@1.28.6', 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.6', 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-xvector@0.19.8:', when='@1.32.6', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.28.6', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.32.6', 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')) diff --git a/var/spack/repos/builtin/packages/r-geoquery/package.py b/var/spack/repos/builtin/packages/r-geoquery/package.py index e2451534a4..261c4a4de6 100644 --- a/var/spack/repos/builtin/packages/r-geoquery/package.py +++ b/var/spack/repos/builtin/packages/r-geoquery/package.py @@ -7,18 +7,32 @@ from spack import * class RGeoquery(RPackage): - """The NCBI Gene Expression Omnibus (GEO) is a public repository of - microarray data. Given the rich and varied nature of this resource, - it is only natural to want to apply BioConductor tools to these data. + """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 + is only natural to want to apply BioConductor tools to these data. GEOquery is the bridge between GEO and BioConductor.""" - homepage = "https://bioconductor.org/packages/GEOquery/" + homepage = "https://bioconductor.org/packages/GEOquery" git = "https://git.bioconductor.org/packages/GEOquery.git" + version('2.52.0', commit='3059331eb82ad4947c2d1bef86ff9526e70af643') + version('2.50.5', commit='135c17f8fe535acda14f95a37d1be1ff2bd80f97') + version('2.48.0', commit='6a8d1ca195b5c26fb717ae93beb1a8d9b7031c5e') + version('2.46.15', commit='a52b195ac640caae9679610d5b486b7cb828c0fd') version('2.42.0', commit='c26adef8d3ddbd6932a3170f2f84f6e4327641fb') depends_on('r-biobase', type=('build', 'run')) - depends_on('r-xml', type=('build', 'run')) - depends_on('r-rcurl', 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@3.4.0:3.4.9', when='@2.42.0') + + depends_on('r-readr', when='@2.46.15:', 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')) diff --git a/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py b/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py new file mode 100644 index 0000000000..67c613c38d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGgbeeswarm(RPackage): + """ggbeeswarm: Categorical Scatter (Violin Point) Plots""" + + homepage = "https://github.com/eclarke/ggbeeswarm" + url = "https://cloud.r-project.org/src/contrib/ggbeeswarm_0.6.0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/ggbeeswarm" + + version('0.6.0', sha256='bbac8552f67ff1945180fbcda83f7f1c47908f27ba4e84921a39c45d6e123333') + + depends_on('r@3.0.0:', type=('build', 'run')) + depends_on('r-beeswarm', type=('build', 'run')) + depends_on('r-ggplot2@2.0:', type=('build', 'run')) + depends_on('r-vipor', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-ggbio/package.py b/var/spack/repos/builtin/packages/r-ggbio/package.py index b4918a8a1f..ed9529a4c4 100644 --- a/var/spack/repos/builtin/packages/r-ggbio/package.py +++ b/var/spack/repos/builtin/packages/r-ggbio/package.py @@ -7,43 +7,59 @@ from spack import * class RGgbio(RPackage): - """The ggbio package extends and specializes the grammar of graphics for + """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 questions, in particular those often asked of high throughput genomics data. All core Bioconductor data structures are supported, where appropriate. The package supports detailed views of particular genomic regions, as well as genome-wide overviews. Supported overviews include ideograms and grand linear views. High-level plots include sequence - fragment length, edge-linked interval to data view, mismatch pileup, - and several splicing summaries.""" + fragment length, edge-linked interval to data view, mismatch pileup, and + several splicing summaries.""" - homepage = "http://bioconductor.org/packages/ggbio/" + homepage = "https://bioconductor.org/packages/ggbio" git = "https://git.bioconductor.org/packages/ggbio.git" + version('1.32.0', commit='04bd12fbe0b1c5c6b721a5f927e1352765f9bf88') + version('1.30.0', commit='8b05258b089b06a743352e92058edda06c24cfb7') + version('1.28.5', commit='594521ca556ef7d97cf4882ecfa54d22c2a2faba') + version('1.26.1', commit='b4f4c898c92aa1082aa7574f1e5c2a0dae943fbc') version('1.24.1', commit='ef04c1bca1330f37152bcc21080cbde94849a094') + depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-ggplot2@1.0.0:', type=('build', 'run')) depends_on('r-gridextra', type=('build', 'run')) depends_on('r-scales', type=('build', 'run')) depends_on('r-reshape2', type=('build', 'run')) depends_on('r-gtable', type=('build', 'run')) depends_on('r-hmisc', type=('build', 'run')) - depends_on('r-biovizbase', type=('build', 'run')) + depends_on('r-biovizbase@1.23.3:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-s4vectors@0.13.13:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomicranges', 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-summarizedexperiment', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) - depends_on('r-genomicalignments', type=('build', 'run')) + depends_on('r-rsamtools@1.17.28:', type=('build', 'run')) + depends_on('r-genomicalignments@1.1.16:', type=('build', 'run')) depends_on('r-bsgenome', type=('build', 'run')) - depends_on('r-variantannotation', type=('build', 'run')) - depends_on('r-rtracklayer', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) + 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-organismdbi', type=('build', 'run')) depends_on('r-ggally', type=('build', 'run')) - depends_on('r-ensembldb', 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@3.4.0:3.4.9', when='@1.24.1') + + 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-ggforce/package.py b/var/spack/repos/builtin/packages/r-ggforce/package.py new file mode 100644 index 0000000000..1e934b3f27 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ggforce/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGgforce(RPackage): + """ggforce: Accelerating 'ggplot2'""" + + 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.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-tweenr@0.1.5:', type=('build', 'run')) + depends_on('r-withr', 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 new file mode 100644 index 0000000000..b41672be89 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ggplotify/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGgplotify(RPackage): + """ggplotify: Convert Plot to 'grob' or 'ggplot' Object""" + + 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.3', sha256='7e7953a2933aa7127a0bac54375e3e0219a0744cfc3249c3d7b76065f7a51892') + + depends_on('r@3.4.0:', type=('build', 'run')) + depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r-gridgraphics', type=('build', 'run')) + depends_on('r-rvcheck', 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 new file mode 100644 index 0000000000..32f2b28fff --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ggraph/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGgraph(RPackage): + """ggraph: An Implementation of Grammar of Graphics for Graphs and + Networks""" + + 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.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-dplyr', type=('build', 'run')) + depends_on('r-ggforce@0.3.1:', type=('build', 'run')) + depends_on('r-igraph@1.0.0:', type=('build', 'run')) + depends_on('r-scales', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-digest', type=('build', 'run')) + depends_on('r-gtable', type=('build', 'run')) + depends_on('r-ggrepel', type=('build', 'run')) + depends_on('r-viridis', type=('build', 'run')) + depends_on('r-rlang', type=('build', 'run')) + depends_on('r-tidygraph', type=('build', 'run')) + depends_on('r-graphlayouts@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-glimma/package.py b/var/spack/repos/builtin/packages/r-glimma/package.py index 3e943d719c..e2a2aec250 100644 --- a/var/spack/repos/builtin/packages/r-glimma/package.py +++ b/var/spack/repos/builtin/packages/r-glimma/package.py @@ -7,18 +7,28 @@ from spack import * class RGlimma(RPackage): - """This package generates interactive visualisations for analysis of - RNA-sequencing data using output from limma, edgeR or DESeq2 packages - in an HTML page. The interactions are built on top of the popular - static representations of analysis results in order to provide - additional information.""" + """Interactive HTML graphics. - homepage = "https://bioconductor.org/packages/release/bioc/html/Glimma.html" + This package generates interactive visualisations for analysis of RNA- + sequencing data using output from limma, edgeR or DESeq2 packages in an + HTML page. The interactions are built on top of the popular static + representations of analysis results in order to provide additional + information.""" + + homepage = "https://bioconductor.org/packages/Glimma" git = "https://git.bioconductor.org/packages/Glimma.git" - version('1.8.2', commit='f4aa1f05c2890d04b01ad4c0ab27f2f729f2c969') + version('1.12.0', commit='d02174239fe0b47983d6947ed42a1a53b24caecb') + version('1.10.1', commit='ffc7abc36190396598fadec5e9c653441e47be72') + version('1.8.2', commit='7696aca2c023f74d244b6c908a6e7ba52bfcb34b') + version('1.6.0', commit='57572996982806aa7ac155eedb97b03249979610') + version('1.4.0', commit='c613c5334ed7868f36d5716b97fdb6234fb291f8') - depends_on('r@3.5.0:3.5.9', when='@1.8.2:', type=('build', 'run')) + 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-edger', 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')) diff --git a/var/spack/repos/builtin/packages/r-gofuncr/package.py b/var/spack/repos/builtin/packages/r-gofuncr/package.py new file mode 100644 index 0000000000..93319705e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gofuncr/package.py @@ -0,0 +1,44 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGofuncr(RPackage): + """Gene ontology enrichment using FUNC. + + GOfuncR performs a gene ontology enrichment analysis based on the + ontology enrichment software FUNC. GO-annotations are obtained from + OrganismDb or OrgDb packages ('Homo.sapiens' by default); the GO-graph + is included in the package and updated regularly (27-Mar-2019). GOfuncR + provides the standard candidate vs. background enrichment analysis using + the hypergeometric test, as well as three additional tests: (i) the + Wilcoxon rank-sum test that is used when genes are ranked, (ii) a + binomial test that is used when genes are associated with two counts and + (iii) a Chi-square or Fisher's exact test that is used in cases when + genes are associated with four counts. To correct for multiple testing + and interdependency of the tests, family-wise error rates are computed + based on random permutations of the gene-associated variables. GOfuncR + also provides tools for exploring the ontology graph and the + annotations, and options to take gene-length or spatial clustering of + genes into account. It is also possible to provide custom gene + coordinates, annotations and ontologies.""" + + homepage = "https://bioconductor.org/packages/GOfuncR" + git = "https://git.bioconductor.org/packages/GOfuncR.git" + + version('1.4.0', commit='2f633dc28e3faeddc5346fcdcadf1c29e3fcf709') + version('1.2.0', commit='140a3cea4fe34d32fef9be756f85e337ce3deded') + version('1.0.0', commit='becd4ddde085c5477042adb856e7a4f40dbd648e') + + 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')) diff --git a/var/spack/repos/builtin/packages/r-gosemsim/package.py b/var/spack/repos/builtin/packages/r-gosemsim/package.py index 0077bb011e..58b10a5239 100644 --- a/var/spack/repos/builtin/packages/r-gosemsim/package.py +++ b/var/spack/repos/builtin/packages/r-gosemsim/package.py @@ -7,20 +7,28 @@ from spack import * class RGosemsim(RPackage): - """The semantic comparisons of Gene Ontology (GO) annotations provide - quantitative ways to compute similarities between genes and gene - groups, and have became important basis for many bioinformatics - analysis approaches. GOSemSim is an R package for semantic similarity - computation among GO terms, sets of GO terms, gene products and gene - clusters. GOSemSim implemented five methods proposed by Resnik, - Schlicker, Jiang, Lin and Wang respectively.""" - - homepage = "https://www.bioconductor.org/packages/GOSemSim/" + """GO-terms Semantic Similarity Measures. + + The semantic comparisons of Gene Ontology (GO) annotations provide + quantitative ways to compute similarities between genes and gene groups, + and have became important basis for many bioinformatics analysis + approaches. GOSemSim is an R package for semantic similarity computation + among GO terms, sets of GO terms, gene products and gene clusters. + GOSemSim implemented five methods proposed by Resnik, Schlicker, Jiang, + Lin and Wang respectively.""" + + homepage = "https://bioconductor.org/packages/GOSemSim" git = "https://git.bioconductor.org/packages/GOSemSim.git" + version('2.10.0', commit='5db1ecbf2f8d870430d6e587609327d05ba3ad7b') + version('2.8.0', commit='c8c985b2a814cc2365c7f05b2509205e1b6b7f58') + version('2.6.2', commit='2ffe78e89276e804306554965fc0799318ec56ed') + version('2.4.1', commit='0656e845860d14e054670ffc246a1c53f699299c') version('2.2.0', commit='247434790e6c8cf99e5643f569390362b8c87c52') - depends_on('r@3.4.0:3.4.9', when='@2.2.0') + depends_on('r@3.3.2:', 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 0a4aabeaf4..800d9785c0 100644 --- a/var/spack/repos/builtin/packages/r-goseq/package.py +++ b/var/spack/repos/builtin/packages/r-goseq/package.py @@ -7,15 +7,21 @@ from spack import * class RGoseq(RPackage): - """Detects Gene Ontology and/or other user defined categories which are + """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""" - homepage = "https://bioconductor.org/packages/release/bioc/html/goseq.html" + homepage = "https://bioconductor.org/packages/goseq" git = "https://git.bioconductor.org/packages/goseq.git" + version('1.36.0', commit='26c9f7de18889afeee1b571ca1c4ab4d2877ab80') + version('1.34.1', commit='bad217b42cc34423698fbcf701d4e3591aac4474') version('1.32.0', commit='32fcbe647eea17d7d0d7a262610811502c421d36') + version('1.30.0', commit='fa8cafe0766ed0b6a97a4ed3374a709ed9d1daf1') + version('1.28.0', commit='ed0ce332a8972618d740d8a93711dff994657738') - depends_on('r@3.5.0:3.5.9', when='@1.32.0:', type=('build', 'run')) + depends_on('r@2.11.0:', type=('build', 'run')) depends_on('r-biasedurn', type=('build', 'run')) depends_on('r-genelendatabase@1.9.2:', type=('build', 'run')) depends_on('r-mgcv', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-gostats/package.py b/var/spack/repos/builtin/packages/r-gostats/package.py index 1b61115882..80137e1a51 100644 --- a/var/spack/repos/builtin/packages/r-gostats/package.py +++ b/var/spack/repos/builtin/packages/r-gostats/package.py @@ -7,21 +7,31 @@ from spack import * class RGostats(RPackage): - """A set of tools for interacting with GO and microarray data. - A variety of basic manipulation tools for graphs, hypothesis - testing and other simple calculations.""" + """Tools for manipulating GO and microarrays. - homepage = "https://www.bioconductor.org/packages/GOstats/" + A set of tools for interacting with GO and microarray data. A variety of + basic manipulation tools for graphs, hypothesis testing and other simple + calculations.""" + + homepage = "https://bioconductor.org/packages/GOstats" git = "https://git.bioconductor.org/packages/GOstats.git" + 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@3.4.1:3.4.9', when='@2.42.0') - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-category', type=('build', 'run')) - depends_on('r-go-db', type=('build', 'run')) - depends_on('r-graph', type=('build', 'run')) - depends_on('r-annotationdbi', 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-graph@1.15.15:', when='@2.42.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', 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-graph/package.py b/var/spack/repos/builtin/packages/r-graph/package.py index b962eb198e..e1dde24847 100644 --- a/var/spack/repos/builtin/packages/r-graph/package.py +++ b/var/spack/repos/builtin/packages/r-graph/package.py @@ -7,12 +7,18 @@ from spack import * class RGraph(RPackage): - """A package that implements some simple graph handling capabilities.""" + """graph: A package to handle graph data structures. - homepage = "https://www.bioconductor.org/packages/graph/" + 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.62.0', commit='95223bd63ceb66cfe8d881f992a441de8b8c89a3') + version('1.60.0', commit='e2aecb0a862f32091b16e0036f53367d3edf4c1d') + version('1.58.2', commit='6455d8e7a5a45dc733915942cb71005c1016b6a0') + version('1.56.0', commit='c4abe227dac525757679743e6fb4f49baa34acad') version('1.54.0', commit='2a8b08520096241620421078fc1098f4569c7301') - depends_on('r@2.10:', type=('build', 'run'), when='@1.54.0') - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r@2.10:', type=('build', 'run')) + depends_on('r-biocgenerics@0.13.11:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-graphlayouts/package.py b/var/spack/repos/builtin/packages/r-graphlayouts/package.py new file mode 100644 index 0000000000..1aacbf25f8 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-graphlayouts/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGraphlayouts(RPackage): + """graphlayouts: 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 + by Gansner et al. (2004) <doi:10.1007/978-3-540-31843-9_25>. Some more + specific algorithms allow to emphasize hidden group structures in networks + or focus on specific nodes.""" + + homepage = "https://github.com/schochastics/graphlayouts" + 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.5.0', sha256='83f61ce07580c5a64c7044c12b20d98ccf138c7e78ff12855cdfc206e1fab10d') + + depends_on('r@3.2.0:', type=('build', 'run')) + depends_on('r-igraph', type=('build', 'run')) + depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-rcpparmadillo', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-gridgraphics/package.py b/var/spack/repos/builtin/packages/r-gridgraphics/package.py new file mode 100644 index 0000000000..a01f6e4b83 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gridgraphics/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGridgraphics(RPackage): + """gridGraphics: Redraw Base Graphics Using 'grid' Graphics""" + + 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.4-1', sha256='b770127b71664bbf67f8853a2666c071f2b9920743eddc9f3a58ecb948b923cf') diff --git a/var/spack/repos/builtin/packages/r-gseabase/package.py b/var/spack/repos/builtin/packages/r-gseabase/package.py index 946b97b9f7..2da111bd9c 100644 --- a/var/spack/repos/builtin/packages/r-gseabase/package.py +++ b/var/spack/repos/builtin/packages/r-gseabase/package.py @@ -7,18 +7,24 @@ from spack import * class RGseabase(RPackage): - """This package provides classes and methods to support Gene - Set Enrichment Analysis (GSEA).""" + """Gene set enrichment data structures and methods. - homepage = "https://www.bioconductor.org/packages/GSEABase/" + This package provides classes and methods to support Gene Set Enrichment + Analysis (GSEA).""" + + homepage = "https://bioconductor.org/packages/GSEABase" git = "https://git.bioconductor.org/packages/GSEABase.git" + version('1.46.0', commit='edce83a9256a0c03206c2bce7c90ada0d90f6622') + version('1.44.0', commit='7042ff64a98b05b9572231ee1b4f3ae4fc9c768e') + version('1.42.0', commit='5e40ce0fdd4dc0cff7601b169bbf6aa1430ae33e') + version('1.40.1', commit='3e5441708b80aab2c9642988bee709d5732831a6') version('1.38.2', commit='84c9f10c316163118ca990900a7a67555b96e75b') - depends_on('r@3.4.0:3.4.9', when='@1.38.2') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-annotate', type=('build', 'run')) - depends_on('r-graph', type=('build', 'run')) + depends_on('r@2.6.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.13.8:', type=('build', 'run')) + depends_on('r-biobase@2.17.8:', type=('build', 'run')) + depends_on('r-annotate@1.45.3:', type=('build', 'run')) + depends_on('r-graph@1.37.2:', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) depends_on('r-xml', 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 new file mode 100644 index 0000000000..6f4731aac8 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gstat/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RGstat(RPackage): + """gstat: Spatial and Spatio-Temporal Geostatistical Modelling, + Predictionand Simulation""" + + 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-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')) diff --git a/var/spack/repos/builtin/packages/r-gtrellis/package.py b/var/spack/repos/builtin/packages/r-gtrellis/package.py index 93ccdcaebb..e5fe5ca983 100644 --- a/var/spack/repos/builtin/packages/r-gtrellis/package.py +++ b/var/spack/repos/builtin/packages/r-gtrellis/package.py @@ -7,20 +7,28 @@ from spack import * class RGtrellis(RPackage): - """Genome level Trellis graph visualizes genomic data conditioned by + """Genome Level Trellis Layout. + + Genome level Trellis graph visualizes genomic data conditioned by genomic categories (e.g. chromosomes). For each genomic category, multiple dimensional data which are represented as tracks describe different features from different aspects. This package provides high flexibility to arrange genomic categories and to add self-defined graphics in the plot.""" - homepage = "https://bioconductor.org/packages/gtrellis/" + homepage = "https://bioconductor.org/packages/gtrellis" git = "https://git.bioconductor.org/packages/gtrellis.git" + version('1.16.1', commit='a9003ededc8f2a48c78d4545e2f214023c13a7da') + version('1.14.0', commit='93935fb34211d12b250e22291712e18a31b0208d') + version('1.12.1', commit='7f3941adddbbfa17f4cf474b703568678a38272d') + version('1.11.1', commit='ff47d99743fd697d5c724f7bb18131dfe76dee71') version('1.8.0', commit='f813b420a008c459f63a2a13e5e64c5507c4c472') + depends_on('r@3.1.2:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-circlize', type=('build', 'run')) + depends_on('r-circlize@0.3.3:', type=('build', 'run')) depends_on('r-getoptlong', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.8.0') + + depends_on('r-circlize@0.4.8:', when='@1.16.1', 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 e079e4015f..d03c4d58ea 100644 --- a/var/spack/repos/builtin/packages/r-gviz/package.py +++ b/var/spack/repos/builtin/packages/r-gviz/package.py @@ -7,38 +7,43 @@ from spack import * class RGviz(RPackage): - """Genomic data analyses requires integrated visualization - of known genomic information and new experimental data. Gviz - uses the biomaRt and the rtracklayer packages to perform live - annotation queries to Ensembl and UCSC and translates this to - e.g. gene/transcript structures in viewports of the grid - graphics package. This results in genomic information plotted - together with your data.""" + """Plotting data and annotation information along genomic coordinates. - homepage = "http://bioconductor.org/packages/Gviz/" + Genomic data analyses requires integrated visualization of known genomic + information and new experimental data. Gviz uses the biomaRt and the + rtracklayer packages to perform live annotation queries to Ensembl and + UCSC and translates this to e.g. gene/transcript structures in viewports + of the grid graphics package. This results in genomic information + plotted together with your data.""" + + homepage = "https://bioconductor.org/packages/Gviz" git = "https://git.bioconductor.org/packages/Gviz.git" + version('1.28.3', commit='20b9825af144cfc888629c34aa980b5bbd65bf86') + version('1.26.5', commit='430310b9d2e098f9757a71d26a2f69871071f30c') + version('1.24.0', commit='3ee1eec97a56653c07c434a97f82cfe3c4281841') + version('1.22.3', commit='2238079d0a7017c474f010acb35d98ee7cc1c5d1') version('1.20.0', commit='299b8255e1b03932cebe287c3690d58c88f5ba5c') - depends_on('r@3.4.0:3.4.9', when='@1.20.0') - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-xvector', type=('build', 'run')) - depends_on('r-rtracklayer', type=('build', 'run')) + depends_on('r@2.10.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')) + depends_on('r-xvector@0.5.7:', type=('build', 'run')) + depends_on('r-rtracklayer@1.25.13:', type=('build', 'run')) depends_on('r-lattice', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) - depends_on('r-biomart', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) - depends_on('r-bsgenome', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-biovizbase', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) - depends_on('r-latticeextra', type=('build', 'run')) - depends_on('r-matrixstats', type=('build', 'run')) - depends_on('r-genomicalignments', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-digest', type=('build', 'run')) + depends_on('r-biomart@2.11.0:', type=('build', 'run')) + 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-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')) + depends_on('r-rsamtools@1.17.28:', type=('build', 'run')) + depends_on('r-latticeextra@0.6-26:', type=('build', 'run')) + depends_on('r-matrixstats@0.8.14:', type=('build', 'run')) + depends_on('r-genomicalignments@1.1.16:', type=('build', 'run')) + depends_on('r-genomeinfodb@1.1.3:', type=('build', 'run')) + depends_on('r-biocgenerics@0.11.3:', type=('build', 'run')) + depends_on('r-digest@0.6.8:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-hdf5array/package.py b/var/spack/repos/builtin/packages/r-hdf5array/package.py new file mode 100644 index 0000000000..7f8904fda6 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-hdf5array/package.py @@ -0,0 +1,49 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RHdf5array(RPackage): + """HDF5 backend for DelayedArray objects. + + Implements the HDF5Array and TENxMatrix classes, 2 convenient and + memory-efficient array-like containers for on-disk representation of + HDF5 datasets. HDF5Array is for datasets that use the conventional (i.e. + dense) HDF5 representation. TENxMatrix is for datasets that use the + HDF5-based sparse matrix representation from 10x Genomics (e.g. the 1.3 + Million Brain Cell Dataset). Both containers being DelayedArray + extensions, they support all operations supported by DelayedArray + objects. These operations can be either delayed or block-processed.""" + + homepage = "https://bioconductor.org/packages/HDF5Array" + git = "https://git.bioconductor.org/packages/HDF5Array.git" + + version('1.12.3', commit='21c6077f3f789748a18f2e579110576c5522e975') + version('1.10.1', commit='0b8ae1dfb56e4203dd8e14781850370df46a5e2c') + version('1.8.1', commit='3c9aa23d117bf489b6341708dc80c943bd1af11a') + version('1.6.0', commit='95f2f8d3648143abe9dc77c76340c5edf4114c82') + version('1.4.8', commit='79ab96d123c8da8f8ead81f678fe714c0958ff45') + + 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-s4vectors@0.21.6:', when='@1.12.3:', 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-hypergraph/package.py b/var/spack/repos/builtin/packages/r-hypergraph/package.py index 949ba5ad9b..112a33b4fd 100644 --- a/var/spack/repos/builtin/packages/r-hypergraph/package.py +++ b/var/spack/repos/builtin/packages/r-hypergraph/package.py @@ -7,13 +7,19 @@ from spack import * class RHypergraph(RPackage): - """A package that implements some simple capabilities for - representing and manipulating hypergraphs.""" + """A package providing hypergraph data structures. - homepage = "https://www.bioconductor.org/packages/hypergraph/" + A package that implements some simple capabilities for representing and + manipulating hypergraphs.""" + + homepage = "https://bioconductor.org/packages/hypergraph" git = "https://git.bioconductor.org/packages/hypergraph.git" + version('1.56.0', commit='f8b977fe068f15ecea49d30e77a871a35afcb97b') + version('1.54.0', commit='cf134b9221e9b5f6329a6786a366f57426c49e7c') + version('1.52.0', commit='3e28d8e8ab4c3facb79857b4e4cfffd65e064aca') + version('1.50.0', commit='fb3d523caf1d5791ef6962dd3c1a142742025ad5') version('1.48.0', commit='a4c19ea0b5f15204f706a7bfdea5363706382820') - depends_on('r@3.4.0:3.4.9', when='@1.48.0') + depends_on('r@2.1.0:', type=('build', 'run')) depends_on('r-graph', 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 2803acf903..6acdcda84f 100644 --- a/var/spack/repos/builtin/packages/r-illuminaio/package.py +++ b/var/spack/repos/builtin/packages/r-illuminaio/package.py @@ -7,13 +7,17 @@ from spack import * class RIlluminaio(RPackage): - """Tools for parsing Illumina's microarray output files, including - IDAT.""" + """Parsing Illumina Microarray Output Files. - homepage = "http://bioconductor.org/packages/illuminaio/" + 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.26.0', commit='40c2f94df2ea64d745d25aadd2bfb33ac3e02f81') + version('0.24.0', commit='47953c77713c2da00a610f39308f86c5b44f6c59') + version('0.22.0', commit='dbd842340999569975ea593f47d70a729b3f68f2') + version('0.20.0', commit='d226628133b2396be9e7a6bf043f0309bd70c4ec') version('0.18.0', commit='e6b8ab1f8eacb760aebdb4828e9cfbf07da06eda') depends_on('r-base64', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@0.18.0') diff --git a/var/spack/repos/builtin/packages/r-impute/package.py b/var/spack/repos/builtin/packages/r-impute/package.py index 4ec6a450a6..b49102d70c 100644 --- a/var/spack/repos/builtin/packages/r-impute/package.py +++ b/var/spack/repos/builtin/packages/r-impute/package.py @@ -7,12 +7,17 @@ from spack import * class RImpute(RPackage): - """Imputation for microarray data (currently KNN only).""" + """impute: Imputation for microarray data. - homepage = "https://www.bioconductor.org/packages/impute/" + Imputation for microarray data (currently KNN only)""" + + homepage = "https://bioconductor.org/packages/impute" git = "https://git.bioconductor.org/packages/impute.git" + version('1.58.0', commit='dc17173df08d965a0d0aac9fa4ad519bd99d127e') + version('1.56.0', commit='6c037ed4dffabafceae684265f86f2a18751b559') + version('1.54.0', commit='efc61f5197e8c4baf4ae881fb556f0312beaabd8') + version('1.52.0', commit='7fa1b917a5dd60f2aaf52d9aae1fcd2c93511d63') version('1.50.1', commit='31d1cc141797afdc83743e1d95aab8a90ee19b71') - version('1.56.0', branch='RELEASE_3_8') - depends_on('r@3.4.0:3.4.9', when='@1.50.1') + depends_on('r@2.10:', 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 a6c65f8694..f234ddc550 100644 --- a/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py +++ b/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py @@ -7,15 +7,22 @@ from spack import * class RInteractivedisplaybase(RPackage): - """The interactiveDisplayBase package contains the the basic methods - needed to generate interactive Shiny based display methods for - Bioconductor objects.""" + """Base package for enabling powerful shiny web displays of Bioconductor + objects. - homepage = "https://bioconductor.org/packages/interactiveDisplayBase/" + The interactiveDisplayBase package contains the the basic methods needed + to generate interactive Shiny based display methods for Bioconductor + objects.""" + + homepage = "https://bioconductor.org/packages/interactiveDisplayBase" git = "https://git.bioconductor.org/packages/interactiveDisplayBase.git" + version('1.22.0', commit='4ce3cde1dabc01375c153ad614d77a5e28b96916') + version('1.20.0', commit='f40912c8af7afbaaf68c003a6e148d81cbe84df6') + version('1.18.0', commit='d07ea72a595877f27bf054f664f23e8f0304def8') + version('1.16.0', commit='a86aa586b589497f5449d36c2ce67a6b6055026d') version('1.14.0', commit='e2ccc7eefdd904e3b1032dc6b3f4a28d08c1cd40') + 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@3.4.0:3.4.9', when='@1.14.0') diff --git a/var/spack/repos/builtin/packages/r-iranges/package.py b/var/spack/repos/builtin/packages/r-iranges/package.py index a4313a470b..ffdbe0756f 100644 --- a/var/spack/repos/builtin/packages/r-iranges/package.py +++ b/var/spack/repos/builtin/packages/r-iranges/package.py @@ -7,29 +7,34 @@ from spack import * class RIranges(RPackage): - """Provides efficient low-level and highly - reusable S4 classes for storing, - manipulating and aggregating over annotated ranges of - integers. Implements an - algebra of range operations, including efficient - algorithms for finding overlaps - and nearest neighbors. Defines efficient list-like - classes for storing, transforming - and aggregating large grouped data, - i.e., collections of atomic vectors and DataFrames.""" - - homepage = "https://www.bioconductor.org/packages/IRanges/" + """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. + Implements an algebra of range operations, including efficient + algorithms for finding overlaps and nearest neighbors. Defines efficient + list-like classes for storing, transforming and aggregating large + grouped data, i.e., collections of atomic vectors and DataFrames.""" + + homepage = "https://bioconductor.org/packages/IRanges" git = "https://git.bioconductor.org/packages/IRanges.git" - version('2.14.10', commit='c76118a38e84c7c764141adbd66ee350d0882bc9') + version('2.18.3', commit='c98a7ba074e72f2e5ec98252dffe9d3392711972') + version('2.16.0', commit='26834c6868d7c279dd8ac1bb9daa16e6fef273c2') + version('2.14.12', commit='00af02756c14771a23df9efcf379409ab6eb3041') version('2.12.0', commit='1b1748655a8529ba87ad0f223f035ef0c08e7fcd') version('2.10.5', commit='b00d1d5025e3c480d17c13100f0da5a0132b1614') - depends_on('r-biocgenerics@0.21.1:', type=('build', 'run'), when='@2.10.5') - depends_on('r-biocgenerics@0.23.3:', type=('build', 'run'), when='@2.12.0') - depends_on('r-biocgenerics@0.25.3:', type=('build', 'run'), when='@2.14.10') - depends_on('r-s4vectors@0.13.17:', type=('build', 'run'), when='@2.10.5') - depends_on('r-s4vectors@0.15.5:', type=('build', 'run'), when='@2.12.0') - depends_on('r-s4vectors@0.18.2:', type=('build', 'run'), when='@2.14.10') - depends_on('r@3.4.0:3.4.9', when='@2.10.5', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@2.14.10', type=('build', 'run')) + depends_on('r@3.1.0:', 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-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')) diff --git a/var/spack/repos/builtin/packages/r-jaspar2018/package.py b/var/spack/repos/builtin/packages/r-jaspar2018/package.py index 15f6042d1e..aaa1197f8b 100644 --- a/var/spack/repos/builtin/packages/r-jaspar2018/package.py +++ b/var/spack/repos/builtin/packages/r-jaspar2018/package.py @@ -7,12 +7,15 @@ from spack import * class RJaspar2018(RPackage): - """Data package for JASPAR 2018. To search this databases, - please use the package TFBSTools (>= 1.15.6).""" + """Data package for JASPAR 2018. - homepage = "http://jaspar.genereg.net/" + Data package for JASPAR 2018. To search this databases, please use the + package TFBSTools (>= 1.15.6).""" + + homepage = "https://bioconductor.org/packages/JASPAR2018" git = "https://git.bioconductor.org/packages/JASPAR2018.git" + version('1.1.0', commit='cf8598d3c9054d85c43655cf82be17f74d800fa5') version('1.0.0', commit='4c84092b3737bb1c57ab56f4321f2f5e4b0efeaa') - depends_on('r@3.4.0:') + depends_on('r@3.4.0:', 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 3a75e2ef56..0aafb32153 100644 --- a/var/spack/repos/builtin/packages/r-kegggraph/package.py +++ b/var/spack/repos/builtin/packages/r-kegggraph/package.py @@ -7,18 +7,26 @@ from spack import * class RKegggraph(RPackage): - """KEGGGraph is an interface between KEGG pathway and graph object as - well as a collection of tools to analyze, dissect and visualize these - graphs. It parses the regularly updated KGML (KEGG XML) files into graph - models maintaining all essential pathway attributes. The package offers - functionalities including parsing, graph operation, visualization and - etc.""" - - homepage = "https://www.bioconductor.org/packages/KEGGgraph/" + """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. + It parses the regularly updated KGML (KEGG XML) files into graph models + maintaining all essential pathway attributes. The package offers + functionalities including parsing, graph operation, visualization and + etc.""" + + homepage = "https://bioconductor.org/packages/KEGGgraph" git = "https://git.bioconductor.org/packages/KEGGgraph.git" + version('1.44.0', commit='2c24e8ec53fe34c72ea65f34e3c09905ab2e5c62') + version('1.42.0', commit='7d907e22a3ad7b4829a7cbaba5a8f8dc8013a609') + version('1.40.0', commit='6351a1637276f71697b01a994ebda0d3d1cf6d7a') + version('1.38.0', commit='72f102e2611e3966362cfaa43646a6e66dd2ba27') version('1.38.1', commit='dd31665beb36d5aad8ed09ed56c603633b6b2292') + 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-xml', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.38.1') + + 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 44f560c40d..17d522fd55 100644 --- a/var/spack/repos/builtin/packages/r-keggrest/package.py +++ b/var/spack/repos/builtin/packages/r-keggrest/package.py @@ -7,21 +7,21 @@ from spack import * class RKeggrest(RPackage): - """This package provides functions and routines useful in the analysis - of somatic signatures (cf. L. Alexandrov et al., Nature 2013). In - particular, functions to perform a signature analysis with known - signatures (LCD = linear combination decomposition) and a signature - analysis on stratified mutational catalogue (SMC = stratify mutational - catalogue) are provided.""" + """Client-side REST access to KEGG. - homepage = "http://bioconductor.org/packages/KEGGREST" + 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 + (python package) by Aurelien Mazurie.""" + + homepage = "https://bioconductor.org/packages/KEGGREST" git = "https://git.bioconductor.org/packages/KEGGREST.git" - version('1.18.1', commit='f6e6f1987e4db9d977a75609fab0cb710be2e2e4') - version('1.2.0', commit='ed48de0def57a909894e237fa4731c4a052d8849') + 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-httr', type=('build', 'run')) depends_on('r-png', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.2.0') - depends_on('r@3.4.3:3.4.9', when='@1.18.1') diff --git a/var/spack/repos/builtin/packages/r-limma/package.py b/var/spack/repos/builtin/packages/r-limma/package.py index c4e7a04be3..85f4d56060 100644 --- a/var/spack/repos/builtin/packages/r-limma/package.py +++ b/var/spack/repos/builtin/packages/r-limma/package.py @@ -7,16 +7,20 @@ from spack import * class RLimma(RPackage): - """Data analysis, linear models and differential expression - for microarray data.""" + """Linear Models for Microarray Data. - homepage = "https://www.bioconductor.org/packages/limma/" + Data analysis, linear models and differential expression for microarray + data.""" + + homepage = "https://bioconductor.org/packages/limma" git = "https://git.bioconductor.org/packages/limma.git" - version('3.36.2', commit='0cd5c13e22565182226bd2937ffcf8c59de1ca59') - version('3.34.9', commit='6755278a929f942a49e2441fb002a3ed393e1139') + version('3.40.6', commit='3ae0767ecf7a764030e7b7d0b1d0f292c0b24055') + version('3.38.3', commit='77b292eb150cdedaa1db704bcfb01f0bb29e9849') + version('3.36.5', commit='3148d1cb7eea9c6bdd60351d51abcfd665332d44') + version('3.34.9', commit='6755278a929f942a49e2441fb002a3ed393e1139') version('3.32.10', commit='593edf28e21fe054d64137ae271b8a52ab05bc60') - depends_on('r@3.5.0:3.5.9', when='@3.36.2') - depends_on('r@3.4.2:3.4.9', when='@3.34.9') - depends_on('r@3.4.0:3.4.9', when='@3.32.10') + 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-magick/package.py b/var/spack/repos/builtin/packages/r-magick/package.py index 66ae049615..858b92174f 100644 --- a/var/spack/repos/builtin/packages/r-magick/package.py +++ b/var/spack/repos/builtin/packages/r-magick/package.py @@ -27,4 +27,4 @@ class RMagick(RPackage): depends_on('r-rcpp@0.12.12:', type=('build', 'run')) depends_on('r-magrittr', type=('build', 'run')) depends_on('r-curl', type=('build', 'run')) - depends_on('image-magick') + depends_on('imagemagick') diff --git a/var/spack/repos/builtin/packages/r-makecdfenv/package.py b/var/spack/repos/builtin/packages/r-makecdfenv/package.py index ba51fcac20..cbd690e144 100644 --- a/var/spack/repos/builtin/packages/r-makecdfenv/package.py +++ b/var/spack/repos/builtin/packages/r-makecdfenv/package.py @@ -7,18 +7,23 @@ from spack import * class RMakecdfenv(RPackage): - """This package has two functions. One reads a Affymetrix - chip description file (CDF) and creates a hash table environment - containing the location/probe set membership mapping. - The other creates a package that automatically loads - that environment.""" + """CDF Environment Maker. - homepage = "https://www.bioconductor.org/packages/makecdfenv/" + This package has two functions. One reads a Affymetrix chip description + file (CDF) and creates a hash table environment containing the + location/probe set membership mapping. The other creates a package that + automatically loads that environment.""" + + homepage = "https://bioconductor.org/packages/makecdfenv" git = "https://git.bioconductor.org/packages/makecdfenv.git" + version('1.60.0', commit='900ece3ecd7a0ade9f8a0374e5a03def4e079cb3') + version('1.58.0', commit='6f513e39c4920a6da10d22718fc3bf278fe5ffe2') + version('1.56.0', commit='f6b48e9a9f18598653d05bc0bdffeae7fefbb327') + version('1.54.0', commit='3ff646ddc4b028e46b1e091ff9c2d17ce77cec26') version('1.52.0', commit='b88a3e93e3b7feeeca69eda7c1fc5a0826c81120') - depends_on('r@3.4.0:3.4.9', when='@1.52.0') + depends_on('r@2.6.0:', type=('build', 'run')) depends_on('r-affyio', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-affy', 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 new file mode 100644 index 0000000000..e26ac5a68c --- /dev/null +++ b/var/spack/repos/builtin/packages/r-mapplots/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RMapplots(RPackage): + """mapplots: Data Visualisation on Maps""" + + homepage = "https://cloud.r-project.org/package=mapplots" + url = "https://cloud.r-project.org/src/contrib/mapplots_1.5.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/mapplots" + + version('1.5.1', sha256='37e96d34f37922180e07bb63b4514e07d42eee5bbf0885b278286ee48cf142a3') + + depends_on('r@2.10.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 f85fa253fe..6f77ce328e 100644 --- a/var/spack/repos/builtin/packages/r-mergemaid/package.py +++ b/var/spack/repos/builtin/packages/r-mergemaid/package.py @@ -7,23 +7,29 @@ from spack import * class RMergemaid(RPackage): - """The functions in this R extension are intended for cross-study - comparison of gene expression array data. Required from the user is - gene expression matrices, their corresponding gene-id vectors and - other useful information, and they could be 'list','matrix', or - 'ExpressionSet'. The main function is 'mergeExprs' which transforms - the input objects into data in the merged format, such that common - genes in different datasets can be easily found. And the function - 'intcor' calculate the correlation coefficients. Other functions use - the output from 'modelOutcome' to graphically display the results and - cross-validate associations of gene expression data with survival.""" + """Merge Maid. - homepage = "https://www.bioconductor.org/packages/MergeMaid/" + The functions in this R extension are intended for cross-study + comparison of gene expression array data. Required from the user is gene + expression matrices, their corresponding gene-id vectors and other + useful information, and they could be 'list','matrix', or + 'ExpressionSet'. The main function is 'mergeExprs' which transforms the + input objects into data in the merged format, such that common genes in + different datasets can be easily found. And the function 'intcor' + calculate the correlation coefficients. Other functions use the output + from 'modelOutcome' to graphically display the results and cross- + validate associations of gene expression data with survival.""" + + homepage = "https://bioconductor.org/packages/MergeMaid" git = "https://git.bioconductor.org/packages/MergeMaid.git" + version('2.56.0', commit='c510d1d85bb39476e8397b24c4bc127780a17686') + version('2.54.0', commit='8e79bd2bd06b25138b3c5107681c89d714a3b194') + version('2.52.0', commit='88a1ddfd9cdbe902ba40fae0f39ee5665ac33a74') + version('2.50.0', commit='b77d7fcb8ac8cf9ee71303bb193ef1a36a7f6049') version('2.48.0', commit='aee89c523fcafff4c166ff3db4fff90df16a1ed4') + depends_on('r@2.10.0:', type=('build', 'run')) depends_on('r-survival', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-mass', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.48.0') diff --git a/var/spack/repos/builtin/packages/r-minfi/package.py b/var/spack/repos/builtin/packages/r-minfi/package.py index 0f6e1af6f8..1638f1dee2 100644 --- a/var/spack/repos/builtin/packages/r-minfi/package.py +++ b/var/spack/repos/builtin/packages/r-minfi/package.py @@ -7,21 +7,27 @@ from spack import * class RMinfi(RPackage): - """Tools to analyze & visualize Illumina Infinium methylation arrays.""" + """Analyze Illumina Infinium DNA methylation arrays. - homepage = "https://bioconductor.org/packages/minfi/" + Tools to analyze & visualize Illumina Infinium methylation arrays.""" + + homepage = "https://bioconductor.org/packages/minfi" git = "https://git.bioconductor.org/packages/minfi.git" + version('1.30.0', commit='a4c28e9388fe3b35e7d21a9669e39250ed6dcbcd') + version('1.28.4', commit='b5125b2f3e05d37d519eeb6fd44a60efdad388e7') + version('1.26.2', commit='ebb07b728b2453998d46e4e53d4fbf873e8e81fc') + version('1.24.0', commit='a4df428588ea86a1c79ddba76132014f0a39644e') version('1.22.1', commit='b2faf84bcbb291e32d470a0e029450093527545b') - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.3:', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-summarizedexperiment', type=('build', 'run')) + depends_on('r-summarizedexperiment@1.1.6:', type=('build', 'run')) depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-bumphunter', type=('build', 'run')) + depends_on('r-bumphunter@1.1.9:', type=('build', 'run')) depends_on('r-s4vectors', type=('build', 'run')) depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) + depends_on('r-biobase@2.33.2:', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-beanplot', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) @@ -31,7 +37,7 @@ 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', type=('build', 'run')) + depends_on('r-matrixstats@0.50.0:', type=('build', 'run')) depends_on('r-mclust', type=('build', 'run')) depends_on('r-genefilter', type=('build', 'run')) depends_on('r-nlme', type=('build', 'run')) @@ -40,4 +46,14 @@ 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@3.4.0:3.4.9', when='@1.22.1') + + 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')) diff --git a/var/spack/repos/builtin/packages/r-mlinterfaces/package.py b/var/spack/repos/builtin/packages/r-mlinterfaces/package.py index 0d37551de5..c8601a399e 100644 --- a/var/spack/repos/builtin/packages/r-mlinterfaces/package.py +++ b/var/spack/repos/builtin/packages/r-mlinterfaces/package.py @@ -7,20 +7,31 @@ from spack import * class RMlinterfaces(RPackage): - """This package provides uniform interfaces to machine learning - code for data in R and Bioconductor containers.""" + """Uniform interfaces to R machine learning procedures for data in + Bioconductor containers. - homepage = "https://www.bioconductor.org/packages/MLInterfaces/" + This package provides uniform interfaces to machine learning code for + data in R and Bioconductor containers.""" + + homepage = "https://bioconductor.org/packages/MLInterfaces" git = "https://git.bioconductor.org/packages/MLInterfaces.git" + version('1.64.1', commit='0b081112d87771248bc33b3b82d5ca4685f986a1') + version('1.62.1', commit='6cf59a90b14779cf57a0b36f1087304082ae50fe') + version('1.60.1', commit='019e9ed44923e5d845a4800246aa044ddd59d548') + version('1.58.1', commit='4e2b5efa019fcb677dc82a58a1668c8a00cdfe07') version('1.56.0', commit='31fe6fb20d859fcb01d5552f42bca6bab16cc67f') - depends_on('r@3.4.0:3.4.9', when='@1.56.0') - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r@2.9:', 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')) + depends_on('r-cluster', type=('build', 'run')) depends_on('r-gdata', type=('build', 'run')) depends_on('r-pls', type=('build', 'run')) 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')) @@ -29,5 +40,7 @@ class RMlinterfaces(RPackage): depends_on('r-gbm', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) depends_on('r-hwriter', type=('build', 'run')) - depends_on('r-threejs', 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')) diff --git a/var/spack/repos/builtin/packages/r-msnbase/package.py b/var/spack/repos/builtin/packages/r-msnbase/package.py index b617d077ed..faf69a9855 100644 --- a/var/spack/repos/builtin/packages/r-msnbase/package.py +++ b/var/spack/repos/builtin/packages/r-msnbase/package.py @@ -7,19 +7,27 @@ from spack import * class RMsnbase(RPackage): - """Manipulation, processing and visualisation of mass spectrometry and - proteomics data.""" + """Base Functions and Classes for Mass Spectrometry and Proteomics. - homepage = "https://www.bioconductor.org/packages/MSnbase/" + MSnbase provides infrastructure for manipulation, processing and + visualisation of mass spectrometry and proteomics data, ranging from raw + to quantitative and annotated data.""" + + homepage = "https://bioconductor.org/packages/MSnbase" git = "https://git.bioconductor.org/packages/MSnbase.git" + version('2.10.1', commit='4d5899bc9c714f0b1a70cddd537cd4621b2b53b0') + version('2.8.3', commit='ef883752c5e92d445647bc5b5d23d5df320db415') + version('2.6.4', commit='46836860ce0281eef135303f2e2948303d67f68c') + version('2.4.2', commit='c045d65daa730c7837852e6343a05cae9644ab5e') version('2.2.0', commit='d6e8fb7f106d05096fa9074da0f829ac8f02c197') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-mzr', type=('build', 'run')) + depends_on('r@3.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-protgenerics', type=('build', 'run')) + depends_on('r-protgenerics@1.5.1:', type=('build', 'run')) depends_on('r-plyr', type=('build', 'run')) depends_on('r-iranges', type=('build', 'run')) depends_on('r-preprocesscore', type=('build', 'run')) @@ -27,12 +35,23 @@ class RMsnbase(RPackage): 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', type=('build', 'run')) - depends_on('r-maldiquant', 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-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@3.4.0:3.4.9', when='@2.2.0') + + 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')) diff --git a/var/spack/repos/builtin/packages/r-multtest/package.py b/var/spack/repos/builtin/packages/r-multtest/package.py index ce4b5502c3..09bb8dcaf3 100644 --- a/var/spack/repos/builtin/packages/r-multtest/package.py +++ b/var/spack/repos/builtin/packages/r-multtest/package.py @@ -7,13 +7,37 @@ from spack import * class RMulttest(RPackage): - """Resampling-based multiple hypothesis testing""" + """Resampling-based multiple hypothesis testing. - homepage = "https://www.bioconductor.org/packages/multtest/" + Non-parametric bootstrap and permutation resampling-based multiple + testing procedures (including empirical Bayes methods) for controlling + the family-wise error rate (FWER), generalized family-wise error rate + (gFWER), tail probability of the proportion of false positives (TPPFP), + and false discovery rate (FDR). Several choices of bootstrap-based null + distribution are implemented (centered, centered and scaled, quantile- + transformed). Single-step and step-wise methods are available. Tests + based on a variety of t- and F-statistics (including t-statistics based + on regression parameters from linear and survival models as well as + those based on correlation parameters) are included. When probing + hypotheses with t-statistics, users may also select a potentially faster + null distribution which is multivariate normal with mean zero and + variance covariance matrix derived from the vector influence function. + Results are reported in terms of adjusted p-values, confidence regions + and test statistic cutoffs. The procedures are directly applicable to + identifying differentially expressed genes in DNA microarray + experiments.""" + + homepage = "https://bioconductor.org/packages/multtest" git = "https://git.bioconductor.org/packages/multtest.git" + version('2.40.0', commit='5f00017c2d3a31e05e1cfe06d9f7afdee19f8473') + version('2.38.0', commit='4dfe71cecfb298a94521088fb7bd83c5498d2915') + version('2.36.0', commit='babb15e8d110eb72300ad59cf7e53386237a4198') + version('2.34.0', commit='6ef873e05e6c93ede54f3421424f56eda057cd54') version('2.32.0', commit='c5e890dfbffcc3a3f107303a24b6085614312f4a') - depends_on('r@3.4.0:3.4.9', when='@2.32.0') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) + depends_on('r-survival', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-mzid/package.py b/var/spack/repos/builtin/packages/r-mzid/package.py index 321ef53455..e32ad934be 100644 --- a/var/spack/repos/builtin/packages/r-mzid/package.py +++ b/var/spack/repos/builtin/packages/r-mzid/package.py @@ -7,15 +7,21 @@ from spack import * class RMzid(RPackage): - """A parser for mzIdentML files implemented using the XML package. The + """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 files with the drawback of having less 'pretty' output than a vendor specific parser. Please contact the maintainer with any problems and supply an mzIdentML file so the problems can be fixed quickly.""" - homepage = "https://www.bioconductor.org/packages/mzID/" + homepage = "https://bioconductor.org/packages/mzID" git = "https://git.bioconductor.org/packages/mzID.git" + version('1.22.0', commit='382d9cf11f0cba996911a9d79e193d28f3ac6042') + version('1.20.1', commit='819582646944440ddd9ed3724ae964841573e54c') + version('1.18.0', commit='7d8924ae95585eb8cf472d21619a7603d291d652') + version('1.16.0', commit='fc203832a4cbbbe20f6dd826c6bf2128f2c271c4') version('1.14.0', commit='1c53aa6523ae61d3ebb13381381fc119d6cc6115') depends_on('r-xml', type=('build', 'run')) @@ -24,4 +30,3 @@ class RMzid(RPackage): depends_on('r-foreach', type=('build', 'run')) depends_on('r-iterators', type=('build', 'run')) depends_on('r-protgenerics', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.14.0') diff --git a/var/spack/repos/builtin/packages/r-mzr/package.py b/var/spack/repos/builtin/packages/r-mzr/package.py index 5ccf4dd6cd..a50b7fc27f 100644 --- a/var/spack/repos/builtin/packages/r-mzr/package.py +++ b/var/spack/repos/builtin/packages/r-mzr/package.py @@ -7,22 +7,34 @@ from spack import * class RMzr(RPackage): - """mzR provides a unified API to the common file formats and parsers + """parser for netCDF, mzXML, mzData and mzML and mzIdentML files (mass + 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 ISB random access parser for mass spectrometry mzXML, mzData and mzML files. The package contains the original code written by the ISB, and a subset of the proteowizard library for mzML and mzIdentML. The netCDF reading code has previously been used in XCMS.""" - homepage = "https://www.bioconductor.org/packages/mzR/" + homepage = "https://bioconductor.org/packages/mzR" git = "https://git.bioconductor.org/packages/mzR.git" + version('2.18.1', commit='13f9f9b1149859c3e29cfce941d958cc4f680546') + version('2.16.2', commit='22d7dad98f46b5bed7f6f7b3a703dcdf5997f709') + version('2.14.0', commit='bf1154bc45101d95b5a67c66980856a779b84bd4') + version('2.12.0', commit='f05eb27ae31c3d019cca10fc3b9ee513cbcdfc5a') version('2.10.0', commit='a6168b68e48c281e88de9647254a8db1e21df388') + depends_on('r-rcpp@0.10.1:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-biocgenerics@0.13.6:', type=('build', 'run')) depends_on('r-protgenerics', type=('build', 'run')) - depends_on('r-rcpp', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('netcdf') - depends_on('r@3.4.0:3.4.9', when='@2.10.0') + + 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-ncdf4', when='@2.16.2:', type=('build', 'run')) + + depends_on('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-ncdf4/package.py b/var/spack/repos/builtin/packages/r-ncdf4/package.py index 14e1273381..1a837ded21 100644 --- a/var/spack/repos/builtin/packages/r-ncdf4/package.py +++ b/var/spack/repos/builtin/packages/r-ncdf4/package.py @@ -30,4 +30,4 @@ class RNcdf4(RPackage): version('1.16', sha256='edd5731a805bbece3a8f6132c87c356deafc272351e1dd07256ca00574949253') version('1.15', sha256='d58298f4317c6c80a041a70216126492fd09ba8ecde9da09d5145ae26f324d4d') - depends_on('netcdf@4.1:') + depends_on('netcdf-c@4.1:') diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py index 95346b8290..d89d20ef02 100644 --- a/var/spack/repos/builtin/packages/r-nmf/package.py +++ b/var/spack/repos/builtin/packages/r-nmf/package.py @@ -15,7 +15,7 @@ class RNmf(RPackage): computations on multicore machines..""" homepage = "http://renozao.github.io/NMF" - url = "https://cloud.r-project.org/src/contrib/NMF_0.20.6.tar.gz" + 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.21.0', sha256='3b30c81c66066fab4a63c5611a0313418b840d8b63414db31ef0e932872d02e3') diff --git a/var/spack/repos/builtin/packages/r-oligoclasses/package.py b/var/spack/repos/builtin/packages/r-oligoclasses/package.py index 1ed8e1d4d3..4b7f3a5a9a 100644 --- a/var/spack/repos/builtin/packages/r-oligoclasses/package.py +++ b/var/spack/repos/builtin/packages/r-oligoclasses/package.py @@ -7,25 +7,36 @@ from spack import * class ROligoclasses(RPackage): - """This package contains class definitions, validity checks, - and initialization methods for classes used by the oligo and - crlmm packages.""" + """Classes for high-throughput arrays supported by oligo and crlmm. - homepage = "https://www.bioconductor.org/packages/oligoClasses/" + This package contains class definitions, validity checks, and + initialization methods for classes used by the oligo and crlmm + packages.""" + + homepage = "https://bioconductor.org/packages/oligoClasses" git = "https://git.bioconductor.org/packages/oligoClasses.git" + version('1.46.0', commit='325684f66fc92f778098f24bcfbef0ce3da9717c') + version('1.44.0', commit='d3e1134cdbea5f95b83215dc66e5f7b6a1cd0638') + version('1.42.0', commit='ef125700d487b470281a9c1e985390633c4dd2bd') + version('1.40.0', commit='32f40617e62d05c457baaebc7e27585b852848ed') version('1.38.0', commit='fe2bb7f02c7ed3cbd338254c27ceba6ff829a962') - depends_on('r@3.4.0:3.4.9', when='@1.38.0') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) + depends_on('r@2.14:', type=('build', 'run')) + depends_on('r-biocgenerics@0.3.2:', 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', type=('build', 'run')) - depends_on('r-affyio', 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', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-biocinstaller', when='@1.38.0:1.42.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')) 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 0677d405f1..6506801f0a 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 @@ -8,12 +8,16 @@ from spack import * class ROrgHsEgDb(RPackage): """Genome wide annotation for Human, primarily based on mapping - using Entrez Gene identifiers.""" + 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', + 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@3.4.0:3.4.9', when='@3.4.1') - depends_on('r-annotationdbi', type=('build', 'run')) + 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.43.1:', when='@3.8.2:', 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 f9b4b68769..58079db4b1 100644 --- a/var/spack/repos/builtin/packages/r-organismdbi/package.py +++ b/var/spack/repos/builtin/packages/r-organismdbi/package.py @@ -7,24 +7,35 @@ from spack import * class ROrganismdbi(RPackage): - """The package enables a simple unified interface to several annotation + """Software to enable the smooth interfacing of different database + packages. + + The package enables a simple unified interface to several annotation packages each of which has its own schema by taking advantage of the fact that each of these packages implements a select methods.""" - homepage = "https://bioconductor.org/packages/OrganismDbi/" + homepage = "https://bioconductor.org/packages/OrganismDbi" git = "https://git.bioconductor.org/packages/OrganismDbi.git" + version('1.26.0', commit='495b4a8f8264d06d827537d43b3c6cc705244bb5') + version('1.24.0', commit='3428952dc0f267a01e256a1c0873656cfbfde7f8') + version('1.22.0', commit='24e953eb3847222d8018103b79b9fc72483cc513') + version('1.20.0', commit='d42e06a24777e5ffb966ad5addb4f46dfffa2269') version('1.18.1', commit='ba2d1237256805e935d9534a0c6f1ded07b42e95') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) + depends_on('r@2.14.0:', type=('build', 'run')) + 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-biobase', type=('build', 'run')) - depends_on('r-biocinstaller', type=('build', 'run')) + depends_on('r-biocinstaller', when='@1.18.1:1.22.0', type=('build', 'run')) depends_on('r-genomicranges', 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', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.18.1') + 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')) diff --git a/var/spack/repos/builtin/packages/r-pathview/package.py b/var/spack/repos/builtin/packages/r-pathview/package.py index cb753e51d8..67d20ef890 100644 --- a/var/spack/repos/builtin/packages/r-pathview/package.py +++ b/var/spack/repos/builtin/packages/r-pathview/package.py @@ -7,26 +7,32 @@ from spack import * class RPathview(RPackage): - """Pathview is a tool set for pathway based data integration and - visualization. It maps and renders a wide variety of biological data on - relevant pathway graphs. All users need is to supply their data and - specify the target pathway. Pathview automatically downloads the pathway - graph data, parses the data file, maps user data to the pathway, and - render pathway graph with the mapped data. In addition, Pathview also - seamlessly integrates with pathway and gene set (enrichment) analysis - tools for large-scale and fully automated analysis.""" + """a tool set for pathway based data integration and visualization. - homepage = "https://www.bioconductor.org/packages/pathview/" + Pathview is a tool set for pathway based data integration and + visualization. It maps and renders a wide variety of biological data on + relevant pathway graphs. All users need is to supply their data and + specify the target pathway. Pathview automatically downloads the pathway + graph data, parses the data file, maps user data to the pathway, and + render pathway graph with the mapped data. In addition, Pathview also + seamlessly integrates with pathway and gene set (enrichment) analysis + tools for large-scale and fully automated analysis.""" + + homepage = "https://bioconductor.org/packages/pathview" git = "https://git.bioconductor.org/packages/pathview.git" + 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-keggrest', 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-graph', type=('build', 'run')) - depends_on('r-rgraphviz', type=('build', 'run')) - depends_on('r-xml', type=('build', 'run')) - depends_on('r-kegggraph', type=('build', 'run')) - depends_on('r-org-hs-eg-db', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.16.7') + depends_on('r-keggrest', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-pbdzmq/package.py b/var/spack/repos/builtin/packages/r-pbdzmq/package.py index 4ec6ee9055..7e44f3b9e8 100644 --- a/var/spack/repos/builtin/packages/r-pbdzmq/package.py +++ b/var/spack/repos/builtin/packages/r-pbdzmq/package.py @@ -27,4 +27,4 @@ class RPbdzmq(RPackage): depends_on('r@3.0.0:', when='@:0.2-5', type=('build', 'run')) depends_on('r@3.2.0:', when='@0.2-6:', type=('build', 'run')) depends_on('r-r6', when='@:0.2-6', type=('build', 'run')) - depends_on('zeromq@4.0.4:') + depends_on('libzmq@4.0.4:') diff --git a/var/spack/repos/builtin/packages/r-pcamethods/package.py b/var/spack/repos/builtin/packages/r-pcamethods/package.py index a61b08a850..a3cc30f91b 100644 --- a/var/spack/repos/builtin/packages/r-pcamethods/package.py +++ b/var/spack/repos/builtin/packages/r-pcamethods/package.py @@ -7,23 +7,28 @@ from spack import * class RPcamethods(RPackage): - """Provides Bayesian PCA, Probabilistic PCA, Nipals PCA, Inverse - Non-Linear PCA and the conventional SVD PCA. A cluster based method for - missing value estimation is included for comparison. BPCA, PPCA and - NipalsPCA may be used to perform PCA on incomplete data as well as for - accurate missing value estimation. A set of methods for printing and - plotting the results is also provided. All PCA methods make use of the - same data structure (pcaRes) to provide a common interface to the PCA - results. Initiated at the Max-Planck Institute for Molecular Plant - Physiology, Golm, Germany.""" + """A collection of PCA methods. - homepage = "http://bioconductor.org/packages/pcaMethods/" + Provides Bayesian PCA, Probabilistic PCA, Nipals PCA, Inverse Non-Linear + PCA and the conventional SVD PCA. A cluster based method for missing + value estimation is included for comparison. BPCA, PPCA and NipalsPCA + may be used to perform PCA on incomplete data as well as for accurate + missing value estimation. A set of methods for printing and plotting the + results is also provided. All PCA methods make use of the same data + structure (pcaRes) to provide a common interface to the PCA results. + Initiated at the Max-Planck Institute for Molecular Plant Physiology, + Golm, Germany.""" + + homepage = "https://bioconductor.org/packages/pcaMethods" git = "https://git.bioconductor.org/packages/pcaMethods.git" + version('1.76.0', commit='5db995330ced37dfd5ddad6ad1d90b4815d3127a') + version('1.74.0', commit='1b8f0a5cdfe3664119d0d7e926a2e0fe7320133c') + version('1.72.0', commit='1bb8c7d056645e62ee5179f6bb30b6594ebf3bfd') + version('1.70.0', commit='3368fad48ea930775505fd26e4179d7714d633d8') version('1.68.0', commit='c8d7c93dcaf7ef728f3d089ae5d55771b320bdab') depends_on('r-biobase', type=('build', 'run')) depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-rcpp@0.11.3:', type=('build', 'run')) depends_on('r-mass', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.68.0') 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 67d06960ae..64f66ef845 100644 --- a/var/spack/repos/builtin/packages/r-pfam-db/package.py +++ b/var/spack/repos/builtin/packages/r-pfam-db/package.py @@ -13,7 +13,10 @@ class RPfamDb(RPackage): 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') - depends_on('r@3.4.0:3.4.9', when='@3.4.1') - depends_on('r-annotationdbi', type=('build', 'run')) + 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')) diff --git a/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py b/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py index e1825092c1..ae705377b7 100644 --- a/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py +++ b/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py @@ -26,5 +26,5 @@ class RPhantompeakqualtools(RPackage): conflicts('%gcc@6:') - def setup_environment(self, spack_env, run_env): - spack_env.set('BOOST_ROOT', self.spec['boost'].prefix) + def setup_build_environment(self, env): + env.set('BOOST_ROOT', self.spec['boost'].prefix) diff --git a/var/spack/repos/builtin/packages/r-phyloseq/package.py b/var/spack/repos/builtin/packages/r-phyloseq/package.py index 1a9016bcb1..f23693fa2c 100644 --- a/var/spack/repos/builtin/packages/r-phyloseq/package.py +++ b/var/spack/repos/builtin/packages/r-phyloseq/package.py @@ -7,28 +7,43 @@ from spack import * class RPhyloseq(RPackage): - """phyloseq provides a set of classes and tools to facilitate the import, - storage, analysis, and graphical display of microbiome census data.""" + """Handling and analysis of high-throughput microbiome census data. - homepage = "https://www.bioconductor.org/packages/phyloseq/" + phyloseq provides a set of classes and tools to facilitate the import, + storage, analysis, and graphical display of microbiome census data.""" + + homepage = "https://bioconductor.org/packages/phyloseq" git = "https://git.bioconductor.org/packages/phyloseq.git" + version('1.28.0', commit='a86ed1e0a650fdf80bee5a0a5a82aaa5a276178d') + version('1.26.1', commit='a084072bc9e057b90adfbd59e27db2a1ecee151c') + version('1.24.2', commit='829992f88c79de48bb8749678624e2bbd3b66645') + version('1.22.3', commit='c695323f2963636d16acda9f05a583bd58e31344') version('1.20.0', commit='107d1d5e3437a6e33982c06a548d3cc91df2a7e0') - depends_on('r@3.4.0:3.4.9', when='@1.20.0') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-ade4', type=('build', 'run')) - depends_on('r-ape', type=('build', 'run')) - depends_on('r-biomformat', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-cluster', type=('build', 'run')) - depends_on('r-data-table', type=('build', 'run')) - depends_on('r-foreach', type=('build', 'run')) - depends_on('r-ggplot2', type=('build', 'run')) - depends_on('r-igraph', type=('build', 'run')) - depends_on('r-multtest', type=('build', 'run')) - depends_on('r-plyr', type=('build', 'run')) - depends_on('r-reshape2', type=('build', 'run')) - depends_on('r-scales', type=('build', 'run')) - depends_on('r-vegan', type=('build', 'run')) + depends_on('r@3.3.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.18.0:', 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-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-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')) + depends_on('r-multtest@2.28.0:', type=('build', 'run')) + depends_on('r-plyr@1.8.3:', type=('build', 'run')) + 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-pkgmaker/package.py b/var/spack/repos/builtin/packages/r-pkgmaker/package.py index e400f1228f..d2c2843f3a 100644 --- a/var/spack/repos/builtin/packages/r-pkgmaker/package.py +++ b/var/spack/repos/builtin/packages/r-pkgmaker/package.py @@ -16,7 +16,7 @@ class RPkgmaker(RPackage): changes in the interface(s) are more than likely to happen.""" homepage = "https://renozao.github.io/pkgmaker" - url = "https://cloud.r-project.org/src/contrib/pkgmaker_0.22.tar.gz" + 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.27', sha256='17a289d8f596ba5637b07077b3bff22411a2c2263c0b7de59fe848666555ec6a') diff --git a/var/spack/repos/builtin/packages/r-plotmo/package.py b/var/spack/repos/builtin/packages/r-plotmo/package.py new file mode 100644 index 0000000000..2f3b434a84 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-plotmo/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RPlotmo(RPackage): + """plotmo: 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 + on the model.""" + + homepage = "http://www.milbo.users.sonic.net/" + 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.5.6', sha256='78f08dc897136d21fa8ade2acb6290351b569d29eb0592c7074c0be3cf2aa594') + + depends_on('r@3.4.0:', type=('build', 'run')) + depends_on('r-formula@1.2-3:', type=('build', 'run')) + depends_on('r-plotrix', type=('build', 'run')) + depends_on('r-teachingdemos', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-polyclip/package.py b/var/spack/repos/builtin/packages/r-polyclip/package.py new file mode 100644 index 0000000000..6a6d059c41 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-polyclip/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RPolyclip(RPackage): + """polyclip: Polygon Clipping""" + + homepage = "https://cloud.r-project.org/package=polyclip" + url = "https://cloud.r-project.org/src/contrib/polyclip_1.10-0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/polyclip" + + version('1.10-0', sha256='74dabc0dfe5a527114f0bb8f3d22f5d1ae694e6ea9345912909bae885525d34b') + + depends_on('r@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-preprocesscore/package.py b/var/spack/repos/builtin/packages/r-preprocesscore/package.py index bed1fa0fc0..6e375916ca 100644 --- a/var/spack/repos/builtin/packages/r-preprocesscore/package.py +++ b/var/spack/repos/builtin/packages/r-preprocesscore/package.py @@ -7,12 +7,15 @@ from spack import * class RPreprocesscore(RPackage): - """A library of core preprocessing routines""" + """A collection of pre-processing functions. - homepage = "https://bioconductor.org/packages/preprocessCore/" + A library of core preprocessing routines.""" + + homepage = "https://bioconductor.org/packages/preprocessCore" git = "https://git.bioconductor.org/packages/preprocessCore.git" + version('1.46.0', commit='8cfc3938c1b08424587f437ed6cd2ec43512500e') + version('1.44.0', commit='dc1dc61fc562aaff3fd9b11ab0d48c2d6b3a5b81') + version('1.42.0', commit='2e3a8baeacfaa1526d51252642772ea951015bba') + version('1.40.0', commit='969bb0e5cbd63d569502ae4e6eaadc1e216646dd') version('1.38.1', commit='c58cb4c720eda0f1c733b989b14912093a7c5fbc') - version('1.44.0', branch='RELEASE_3_8') - - depends_on('r@3.4.0:3.4.9', when='@1.38.1') diff --git a/var/spack/repos/builtin/packages/r-protgenerics/package.py b/var/spack/repos/builtin/packages/r-protgenerics/package.py index 2bd18088ca..753dbb18ff 100644 --- a/var/spack/repos/builtin/packages/r-protgenerics/package.py +++ b/var/spack/repos/builtin/packages/r-protgenerics/package.py @@ -7,11 +7,15 @@ from spack import * class RProtgenerics(RPackage): - """S4 generic functions needed by Bioconductor proteomics packages.""" + """S4 generic functions for Bioconductor proteomics infrastructure. - homepage = "https://bioconductor.org/packages/ProtGenerics/" + S4 generic functions needed by Bioconductor proteomics packages.""" + + homepage = "https://bioconductor.org/packages/ProtGenerics" git = "https://git.bioconductor.org/packages/ProtGenerics.git" + version('1.16.0', commit='960a5fdc586898513b5ae9c48fffba5c5d703723') + version('1.14.0', commit='c85940b70a16ad69275c4facb3ef673d20a1c998') + version('1.12.0', commit='e84382a4b1730409f572fb681b5070017d00d30d') + version('1.10.0', commit='9ae2c3710b77381571900f0f25c6c8fda65795ac') version('1.8.0', commit='b2b3bb0938e20f58fca905f6870de7dbc9dfd7a3') - - depends_on('r@3.4.0:3.4.9', when='@1.8.0') diff --git a/var/spack/repos/builtin/packages/r-quantro/package.py b/var/spack/repos/builtin/packages/r-quantro/package.py index 637d741ecb..b27de06266 100644 --- a/var/spack/repos/builtin/packages/r-quantro/package.py +++ b/var/spack/repos/builtin/packages/r-quantro/package.py @@ -7,18 +7,25 @@ from spack import * class RQuantro(RPackage): - """A data-driven test for the assumptions of quantile normalization using + """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, - MethylSet). Group level information about each sample (such as - Tumor / Normal status) must also be provided because the test assesses - if there are global differences in the distributions between the - user-defined groups.""" + MethylSet). Group level information about each sample (such as Tumor / + Normal status) must also be provided because the test assesses if there + are global differences in the distributions between the user-defined + groups.""" - homepage = "https://www.bioconductor.org/packages/quantro/" + homepage = "https://bioconductor.org/packages/quantro" git = "https://git.bioconductor.org/packages/quantro.git" + version('1.18.0', commit='f6553c2296289eed31e4b2f32a082e990bdb8359') + version('1.16.0', commit='cfc2e853bdc3cc90fd35e153fe243892d50d61c6') + version('1.14.0', commit='2d43264b2a95ae8ca51a69d7768fe43b9f1b77bb') + version('1.12.0', commit='1cfcc73875cf4ecc2618e5e45fda89bd075a5d12') version('1.10.0', commit='111337c0aba052aa49c3d2e2d3042794b28858c9') + depends_on('r@3.1.3:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-minfi', type=('build', 'run')) depends_on('r-doparallel', type=('build', 'run')) @@ -26,4 +33,3 @@ class RQuantro(RPackage): depends_on('r-iterators', type=('build', 'run')) depends_on('r-ggplot2', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.10.0') diff --git a/var/spack/repos/builtin/packages/r-qvalue/package.py b/var/spack/repos/builtin/packages/r-qvalue/package.py index 2e1b8e56b3..7b07bb0276 100644 --- a/var/spack/repos/builtin/packages/r-qvalue/package.py +++ b/var/spack/repos/builtin/packages/r-qvalue/package.py @@ -7,27 +7,29 @@ from spack import * class RQvalue(RPackage): - """This package takes a list of p-values resulting from the - simultaneous testing of many hypotheses and estimates their - q-values and local FDR values. The q-value of a test measures - the proportion of false positives incurred (called the false - discovery rate) when that particular test is called significant. - The local FDR measures the posterior probability the null - hypothesis is true given the test's p-value. Various plots are - automatically generated, allowing one to make sensible - significance cut-offs. Several mathematical results have - recently been shown on the conservative accuracy of the - estimated q-values from this software. The software can be - applied to problems in genomics, brain imaging, astrophysics, - and data mining.""" + """Q-value estimation for false discovery rate control. - homepage = "https://www.bioconductor.org/packages/qvalue/" + This package takes a list of p-values resulting from the simultaneous + testing of many hypotheses and estimates their q-values and local FDR + values. The q-value of a test measures the proportion of false positives + incurred (called the false discovery rate) when that particular test is + called significant. The local FDR measures the posterior probability the + null hypothesis is true given the test's p-value. Various plots are + automatically generated, allowing one to make sensible significance cut- + offs. Several mathematical results have recently been shown on the + conservative accuracy of the estimated q-values from this software. The + software can be applied to problems in genomics, brain imaging, + astrophysics, and data mining.""" + + homepage = "https://bioconductor.org/packages/qvalue" git = "https://git.bioconductor.org/packages/qvalue.git" + version('2.16.0', commit='5efbe20ef522a45a7a04b681f72bb9a12e2747ae') + version('2.14.1', commit='b694e4b264f25250eb1d1115e70c07f65767c20e') version('2.12.0', commit='7df64ebfcbe69dcbf8b88cb6ef0068bf16979673') + version('2.10.0', commit='581e5664b4356440a96310897398f01a98ceb81b') version('2.8.0', commit='c7bf3315619d42d800f57a36670c25a7495ded72') + depends_on('r@2.10:', type=('build', 'run')) depends_on('r-ggplot2', type=('build', 'run')) depends_on('r-reshape2', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.8.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@2.12.0', 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 f8420eebb0..f3d5e951f9 100644 --- a/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py +++ b/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py @@ -13,7 +13,7 @@ class RRandomfieldsutils(RPackage): Furthermore, it includes the Struve functions.""" homepage = "https://cloud.r-project.org/package=RandomFieldsUtils" - url = "https://cloud.r-project.org/src/contrib/RandomFieldsUtils_0.3.25.tar.gz" + url = "https://cloud.r-project.org/src/contrib/RandomFieldsUtils_0.5.3.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/RandomFieldsUtils" version('0.5.3', sha256='ea823cba2e254a9f534efb4b772c0aeef2039ee9ef99744e077b969a87f8031d') diff --git a/var/spack/repos/builtin/packages/r-rbgl/package.py b/var/spack/repos/builtin/packages/r-rbgl/package.py index d5390e9a5b..f63046a95d 100644 --- a/var/spack/repos/builtin/packages/r-rbgl/package.py +++ b/var/spack/repos/builtin/packages/r-rbgl/package.py @@ -7,16 +7,20 @@ from spack import * class RRbgl(RPackage): - """A fairly extensive and comprehensive interface to the graph - algorithms contained in the BOOST library.""" + """An interface to the BOOST graph library. - homepage = "https://www.bioconductor.org/packages/RBGL/" + A fairly extensive and comprehensive interface to the graph algorithms + contained in the BOOST library.""" + + homepage = "https://bioconductor.org/packages/RBGL" git = "https://git.bioconductor.org/packages/RBGL.git" version('1.60.0', commit='ef24c17c411659b8f030602bd9781c534d6ec93b') + version('1.58.2', commit='086ad0c6bab7be29311b6ae14fd39df7a21331a6') + version('1.56.0', commit='a1fa9d89c6a3401892c5dd1493df6a14031f0912') + version('1.54.0', commit='e9c743d380e83c155495cb8732102f01f213c905') version('1.52.0', commit='93e8fcfafec8f1cd5638fe30dc0f9506d15b49c0') - depends_on('r@3.4.0:3.4.9', when='@1.52.0') - depends_on('r@3.6.0:', when='@1.60.0', type=('build', 'run')) - depends_on('r-bh', when='@1.60.0', type=('build', 'run')) 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-rcpphnsw/package.py b/var/spack/repos/builtin/packages/r-rcpphnsw/package.py new file mode 100644 index 0000000000..f6addea265 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rcpphnsw/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RRcpphnsw(RPackage): + """RcppHNSW: 'Rcpp' Bindings for 'hnswlib', a Library for Approximate + NearestNeighbors""" + + 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.1.0', sha256='75a54c30953845dec685764c7b3b4cd7315197c91aef4ab3b4eb0a6293010a95') + + depends_on('r-rcpp@0.11.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-reportingtools/package.py b/var/spack/repos/builtin/packages/r-reportingtools/package.py index de4930c4c8..b8e25053a8 100644 --- a/var/spack/repos/builtin/packages/r-reportingtools/package.py +++ b/var/spack/repos/builtin/packages/r-reportingtools/package.py @@ -7,42 +7,45 @@ from spack import * class RReportingtools(RPackage): - """The ReportingTools software package enables users to easily - display reports of analysis results generated from sources such - as microarray and sequencing data. The package allows users to - create HTML pages that may be viewed on a web browser such as - Safari, or in other formats readable by programs such as Excel. - Users can generate tables with sortable and filterable columns, - make and display plots, and link table entries to other data - sources such as NCBI or larger plots within the HTML page. Using - the package, users can also produce a table of contents page to - link various reports together for a particular project that can - be viewed in a web browser. For more examples, please visit our - site: http:// research-pub.gene.com/ReportingTools.""" + """Tools for making reports in various formats. - homepage = "https://bioconductor.org/packages/ReportingTools/" + The ReportingTools software package enables users to easily display + reports of analysis results generated from sources such as microarray + and sequencing data. The package allows users to create HTML pages that + may be viewed on a web browser such as Safari, or in other formats + readable by programs such as Excel. Users can generate tables with + sortable and filterable columns, make and display plots, and link table + entries to other data sources such as NCBI or larger plots within the + HTML page. Using the package, users can also produce a table of contents + page to link various reports together for a particular project that can + be viewed in a web browser. For more examples, please visit our site: + http:// research-pub.gene.com/ReportingTools.""" + + homepage = "https://bioconductor.org/packages/ReportingTools" git = "https://git.bioconductor.org/packages/ReportingTools.git" + 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@3.4.0:3.4.9', when='@2.16.0') depends_on('r-knitr', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-hwriter', type=('build', 'run')) depends_on('r-category', type=('build', 'run')) depends_on('r-gostats', type=('build', 'run')) - depends_on('r-limma', type=('build', 'run')) - depends_on('r-limma', type=('build', 'run')) + depends_on('r-limma@3.17.5:', type=('build', 'run')) depends_on('r-lattice', type=('build', 'run')) depends_on('r-annotationdbi', type=('build', 'run')) depends_on('r-edger', type=('build', 'run')) depends_on('r-annotate', type=('build', 'run')) depends_on('r-pfam-db', type=('build', 'run')) depends_on('r-gseabase', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r-biocgenerics@0.1.6:', type=('build', 'run')) depends_on('r-xml', type=('build', 'run')) depends_on('r-r-utils', type=('build', 'run')) - depends_on('r-deseq2', type=('build', 'run')) + depends_on('r-deseq2@1.3.41:', type=('build', 'run')) depends_on('r-ggplot2', type=('build', 'run')) depends_on('r-ggbio', type=('build', 'run')) depends_on('r-iranges', 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 34936da7e3..d61b62218b 100644 --- a/var/spack/repos/builtin/packages/r-rgraphviz/package.py +++ b/var/spack/repos/builtin/packages/r-rgraphviz/package.py @@ -7,13 +7,21 @@ from spack import * class RRgraphviz(RPackage): - """Interfaces R with the AT and T graphviz library for plotting - R graph objects from the graph package.""" + """Provides plotting capabilities for R graph objects. - homepage = "http://bioconductor.org/packages/Rgraphviz/" + Interfaces R with the AT and T graphviz library for plotting R graph + objects from the graph package.""" + + homepage = "https://bioconductor.org/packages/Rgraphviz" git = "https://git.bioconductor.org/packages/Rgraphviz.git" + 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@3.4.0:3.4.9', when='@2.20.0') + 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 0f86da44f3..2750110df9 100644 --- a/var/spack/repos/builtin/packages/r-rhdf5/package.py +++ b/var/spack/repos/builtin/packages/r-rhdf5/package.py @@ -7,18 +7,30 @@ from spack import * class RRhdf5(RPackage): - """This R/Bioconductor package provides an interface between HDF5 - and R. HDF5's main features are the ability to store and access very - large and/or complex datasets and a wide variety of metadata on mass - storage (disk) through a completely portable file format. The rhdf5 - package is thus suited for the exchange of large and/or complex - datasets between R and other software package, and for letting R - applications work on datasets that are larger than the available RAM.""" - - homepage = "https://www.bioconductor.org/packages/rhdf5/" + """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 + datasets and a wide variety of metadata on mass storage (disk) through a + completely portable file format. The rhdf5 package is thus suited for + the exchange of large and/or complex datasets between R and other + software package, and for letting R applications work on datasets that + are larger than the available RAM.""" + + homepage = "https://bioconductor.org/packages/rhdf5" git = "https://git.bioconductor.org/packages/rhdf5.git" + 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@3.4.0:3.4.9', when='@2.20.0') 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@1.3.2:', when='@2.26.2:', type=('build', 'run')) + + depends_on('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-rhdf5lib/package.py b/var/spack/repos/builtin/packages/r-rhdf5lib/package.py new file mode 100644 index 0000000000..1c1fe6d2ce --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rhdf5lib/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RRhdf5lib(RPackage): + """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.6.3', commit='11ac3069f28b0068002db9c645817401f6c5b3c4') + version('1.4.3', commit='f6be8c2659b2daa17541506058917b7981490d65') + version('1.2.1', commit='dbf85dbedb736d5a696794d52875729c8514494e') + version('1.0.0', commit='79608038c2016a518ba747fe6a2bf02ce53a75f9') + + depends_on('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-rhtslib/package.py b/var/spack/repos/builtin/packages/r-rhtslib/package.py index e2286b4847..834df729a3 100644 --- a/var/spack/repos/builtin/packages/r-rhtslib/package.py +++ b/var/spack/repos/builtin/packages/r-rhtslib/package.py @@ -7,17 +7,26 @@ from spack import * class RRhtslib(RPackage): - """This package provides version 1.1 of the 'HTSlib' C library - for high-throughput sequence analysis. The package is primarily - useful to developers of other R packages who wish to make use - of HTSlib. Motivation and instructions for use of this package - are in the vignette, vignette(package="Rhtslib", "Rhtslib").""" + """HTSlib high-throughput sequencing library as an R package. - homepage = "https://www.bioconductor.org/packages/Rhtslib/" + This package provides version 1.7 of the 'HTSlib' C library for high- + throughput sequence analysis. The package is primarily useful to + developers of other R packages who wish to make use of HTSlib. + Motivation and instructions for use of this package are in the vignette, + vignette(package="Rhtslib", "Rhtslib").""" + + homepage = "https://bioconductor.org/packages/Rhtslib" git = "https://git.bioconductor.org/packages/Rhtslib.git" + version('1.16.3', commit='3ed0b5db2ee3cf0df1c6096fde8855c8485eebd4') + version('1.14.1', commit='4be260720f845a34d0ac838278fce1363f645230') + version('1.12.1', commit='e3487b1355995d09b28fde5d0a7504a3e79a7203') + version('1.10.0', commit='53dcf7dfe35d735283956c77c011a97ca3f4eb26') version('1.8.0', commit='3b5493473bed42958614091c58c739932ffcfa79') - depends_on('r@3.4.0:3.4.9', when='@1.8.0') depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('autoconf@2.67:', type='build') + + depends_on('bzip2', type=('build', 'link', 'run')) + depends_on('xz', type=('build', 'link', 'run')) + depends_on('curl', type=('build', 'link', 'run')) + depends_on('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-rnaseqmap/package.py b/var/spack/repos/builtin/packages/r-rnaseqmap/package.py new file mode 100644 index 0000000000..a1a0b2aefe --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rnaseqmap/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RRnaseqmap(RPackage): + """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 + time""" + + homepage = "https://bioconductor.org/packages/rnaSeqMap" + git = "https://git.bioconductor.org/packages/rnaSeqMap.git" + + version('2.42.0', commit='3a3a1030cc38d79d04536e0ab16114e4fa6721cf') + version('2.40.1', commit='c122d645b3503fb1a061f5515e4f8cf2863b3ba3') + version('2.38.0', commit='5eb9583bfacd375161739a8ae6057204487f8b9e') + version('2.36.0', commit='69c46fa467be0ac30776ede85a521f7622539b7e') + version('2.34.0', commit='7881bc00600ed824ac437edf3cfba35573261e46') + + depends_on('r@2.11.0:', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-rsamtools', type=('build', 'run')) + depends_on('r-genomicalignments', type=('build', 'run')) + depends_on('r-genomicranges', type=('build', 'run')) + depends_on('r-iranges', type=('build', 'run')) + depends_on('r-edger', type=('build', 'run')) + depends_on('r-deseq', type=('build', 'run')) + depends_on('r-dbi', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rngtools/package.py b/var/spack/repos/builtin/packages/r-rngtools/package.py index c4b52c3437..30762d7464 100644 --- a/var/spack/repos/builtin/packages/r-rngtools/package.py +++ b/var/spack/repos/builtin/packages/r-rngtools/package.py @@ -14,7 +14,7 @@ class RRngtools(RPackage): the way current RNG settings can be changed.""" homepage = "https://renozao.github.io/rngtools" - url = "https://cloud.r-project.org/src/contrib/rngtools_1.2.4.tar.gz" + 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.4', sha256='3aa92366e5d0500537964302f5754a750aff6b169a27611725e7d84552913bce') diff --git a/var/spack/repos/builtin/packages/r-rots/package.py b/var/spack/repos/builtin/packages/r-rots/package.py index 32564c1fe7..fd26c483d4 100644 --- a/var/spack/repos/builtin/packages/r-rots/package.py +++ b/var/spack/repos/builtin/packages/r-rots/package.py @@ -7,14 +7,20 @@ from spack import * class RRots(RPackage): - """Calculates the Reproducibility-Optimized Test Statistic (ROTS) - for differential testing in omics data.""" + """Reproducibility-Optimized Test Statistic. - homepage = "https://bioconductor.org/packages/release/bioc/html/ROTS.html" + Calculates the Reproducibility-Optimized Test Statistic (ROTS) for + differential testing in omics data.""" + + homepage = "https://bioconductor.org/packages/ROTS" git = "https://git.bioconductor.org/packages/ROTS.git" + version('1.12.0', commit='7e2c96fd8fd36710321498745f24cc6b59ac02f0') + version('1.10.1', commit='1733d3f868cef4d81af6edfc102221d80793937b') version('1.8.0', commit='02e3c6455bb1afe7c4cc59ad6d4d8bae7b01428b') + version('1.6.0', commit='3567ac1142ba97770b701ee8e5f9e3e6c781bd56') + version('1.4.0', commit='2e656514a4bf5a837ee6e14ce9b28a61dab955e7') - depends_on('r@3.5.0:3.5.9', when='@1.8.0:', type=('build', 'run')) + depends_on('r@3.3:', type=('build', 'run')) depends_on('r-rcpp', type=('build', 'run')) depends_on('r-biobase', 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 7292fcf1cd..3fbf2bef54 100644 --- a/var/spack/repos/builtin/packages/r-rsamtools/package.py +++ b/var/spack/repos/builtin/packages/r-rsamtools/package.py @@ -7,33 +7,41 @@ from spack import * class RRsamtools(RPackage): - """This package provides an interface to the 'samtools', 'bcftools', and - 'tabix' utilities (see 'LICENCE') for manipulating SAM (Sequence - Alignment / Map), FASTA, binary variant call (BCF) and compressed - indexed tab-delimited (tabix) files.""" + """Binary alignment (BAM), FASTA, variant call (BCF), and tabix file + import. - homepage = "https://bioconductor.org/packages/Rsamtools/" + This package provides an interface to the 'samtools', 'bcftools', and + 'tabix' utilities for manipulating SAM (Sequence Alignment / Map), + FASTA, binary variant call (BCF) and compressed indexed tab-delimited + (tabix) files.""" + + homepage = "https://bioconductor.org/packages/Rsamtools" git = "https://git.bioconductor.org/packages/Rsamtools.git" - version('1.32.2', commit='2b3254ccdeb24dc6ad95a93c2eb527021631797e') + version('2.0.3', commit='17d254cc026574d20db67474260944bf60befd70') + version('1.34.1', commit='0ec1d45c7a14b51d019c3e20c4aa87c6bd2b0d0c') + version('1.32.3', commit='0aa3f134143b045aa423894de81912becf64e4c2') + version('1.30.0', commit='61b365fe3762e796b3808cec7238944b7f68d7a6') version('1.28.0', commit='dfa5b6abef68175586f21add7927174786412472') - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomeinfodb@1.1.3:', when='@1.32.2', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-genomicranges@1.31.8:', when='@1.32.2', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-biostrings@2.47.6:', when='@1.32.2', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.25.1:', when='@1.32.2', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.25:', when='@1.32.2', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.12:', when='@1.32.2', type=('build', 'run')) - depends_on('r-xvector', type=('build', 'run')) - depends_on('r-xvector@0.19.7:', when='@1.32.2', type=('build', 'run')) + depends_on('r-genomeinfodb@1.1.3:', type=('build', 'run')) + depends_on('r-genomicranges@1.21.6:', type=('build', 'run')) + depends_on('r-biostrings@2.37.1:', type=('build', 'run')) + depends_on('r-biocgenerics@0.1.3:', type=('build', 'run')) + depends_on('r-s4vectors@0.13.8:', type=('build', 'run')) + depends_on('r-iranges@2.3.7:', type=('build', 'run')) + depends_on('r-xvector@0.15.1:', 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@3.4.0:3.4.9', when='@1.28.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.32.2', 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('gmake', type='build') diff --git a/var/spack/repos/builtin/packages/r-rtracklayer/package.py b/var/spack/repos/builtin/packages/r-rtracklayer/package.py index e272d6a80d..a83f1ea5ec 100644 --- a/var/spack/repos/builtin/packages/r-rtracklayer/package.py +++ b/var/spack/repos/builtin/packages/r-rtracklayer/package.py @@ -7,39 +7,48 @@ from spack import * class RRtracklayer(RPackage): - """Extensible framework for interacting with multiple genome browsers + """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 formats (currently GFF, BED, bedGraph, BED15, WIG, BigWig and 2bit built-in). The user may export/import tracks to/from the supported browsers, as well as query and modify the browser state, such as the current viewport.""" - homepage = "http://bioconductor.org/packages/rtracklayer/" + homepage = "https://bioconductor.org/packages/rtracklayer" git = "https://git.bioconductor.org/packages/rtracklayer.git" - version('1.40.5', commit='4e5b06daccd0bca1ddcd93052deca896ade58fd6') + version('1.44.4', commit='aec96e85daf53b5c5eb2e89250d2755352be4de3') + version('1.42.2', commit='76702f671faea736807d54aeecfbadcd152d94c5') + version('1.40.6', commit='ba9a6e711504a702147383bc7abfcc36eb304df7') + version('1.38.3', commit='f20db703c09dc7e808c09e9b78c15aec9e546248') version('1.36.6', commit='8c0ac7230f94e0c5a981acbb178c8de70e968131') - depends_on('r-xml', type=('build', 'run')) - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.25.1:', when='@1.40.5', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.25:', when='@1.40.5', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.13:', when='@1.40.5', type=('build', 'run')) - depends_on('r-xvector', type=('build', 'run')) - depends_on('r-xvector@0.19.7:', when='@1.40.5', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomeinfodb@1.15.2:', when='@1.40.5', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-biostrings@2.47.6:', when='@1.40.5', type=('build', 'run')) + depends_on('r@3.3:', type=('build', 'run')) + depends_on('r-genomicranges@1.21.20:', 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-s4vectors@0.13.13:', type=('build', 'run')) + depends_on('r-iranges@2.3.7:', type=('build', 'run')) + depends_on('r-xvector@0.9.4:', type=('build', 'run')) + depends_on('r-genomeinfodb@1.3.14:', type=('build', 'run')) + depends_on('r-biostrings@2.43.7:', type=('build', 'run')) depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('r-rcurl', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) - depends_on('r-rsamtools@1.31.2:', when='@1.40.5', type=('build', 'run')) - depends_on('r-genomicalignments', type=('build', 'run')) - depends_on('r-genomicalignments@1.15.6:', when='@1.40.5', type=('build', 'run')) - depends_on('r-genomicranges@1.21.20:', when='@1.36.3', type=('build', 'run')) - depends_on('r-genomicranges@1.31.8:', when='@1.40.5', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.36.6', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.40.5', 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.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-rzmq/package.py b/var/spack/repos/builtin/packages/r-rzmq/package.py index aeaa990a45..862ebcf066 100644 --- a/var/spack/repos/builtin/packages/r-rzmq/package.py +++ b/var/spack/repos/builtin/packages/r-rzmq/package.py @@ -19,4 +19,4 @@ class RRzmq(RPackage): version('0.7.7', sha256='bdbaf77a0e04c5b6d6ce79ab2747848a5044355eed2e2c4d39c4ba16f97dc83d') depends_on('r@3.1.0:', when='@0.9.0:', type=('build', 'run')) - depends_on('zeromq@3.0.0:') + depends_on('libzmq@3.0.0:') diff --git a/var/spack/repos/builtin/packages/r-s4vectors/package.py b/var/spack/repos/builtin/packages/r-s4vectors/package.py index 1a4ca70513..67ea5f7268 100644 --- a/var/spack/repos/builtin/packages/r-s4vectors/package.py +++ b/var/spack/repos/builtin/packages/r-s4vectors/package.py @@ -7,23 +7,27 @@ from spack import * class RS4vectors(RPackage): - """The S4Vectors package defines the Vector and List virtual classes and - a set of generic functions that extend the semantic of ordinary - vectors and lists in R. Package developers can easily implement - vector-like or list-like objects as concrete subclasses of Vector or - List. In addition, a few low-level concrete subclasses of general - interest (e.g. DataFrame, Rle, and Hits) are implemented in the - S4Vectors package itself (many more are implemented in the IRanges - package and in other Bioconductor infrastructure packages).""" - - homepage = "https://bioconductor.org/packages/S4Vectors/" + """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 + and lists in R. Package developers can easily implement vector-like or + list-like objects as concrete subclasses of Vector or List. In addition, + a few low-level concrete subclasses of general interest (e.g. DataFrame, + Rle, and Hits) are implemented in the S4Vectors package itself (many + more are implemented in the IRanges package and in other Bioconductor + infrastructure packages).""" + + homepage = "https://bioconductor.org/packages/S4Vectors" git = "https://git.bioconductor.org/packages/S4Vectors.git" + version('0.22.1', commit='d25e517b48ca4184a4c2ee1f8223c148a55a8b8a') + version('0.20.1', commit='1878b2909086941e556c5ea953c6fd86aebe9b02') version('0.18.3', commit='d6804f94ad3663828440914920ac933b934aeff1') version('0.16.0', commit='00fec03fcbcb7cff37917fab0da28d91fdf9dc3d') version('0.14.7', commit='40af17fe0b8e93b6a72fc787540d2961773b8e23') - depends_on('r-biocgenerics@0.21.1:', type=('build', 'run'), when='@0.14.7') - depends_on('r-biocgenerics@0.23.3:', type=('build', 'run'), when='@0.16.0:') - depends_on('r@3.4.0:3.4.9', when='@0.14.7', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@0.18.3', type=('build', 'run')) + depends_on('r@3.3.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.21.1:', type=('build', 'run')) + + depends_on('r-biocgenerics@0.23.3:', when='@0.16.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 new file mode 100644 index 0000000000..380f3966e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-scater/package.py @@ -0,0 +1,63 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RScater(RPackage): + """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 + visualization.""" + + homepage = "https://bioconductor.org/packages/scater" + git = "https://git.bioconductor.org/packages/scater.git" + + version('1.12.2', commit='1518dc27a87c79181c34107d639e95fe55e55092') + version('1.10.1', commit='2e6694af2929092f263c2b0830d48b3f9632e70c') + version('1.8.4', commit='d560a9a378541d53d17990d2aa2cd28874df3dcd') + version('1.6.3', commit='964effb4e883102d7c8cae627dbac4ba5d216a75') + 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-ggplot2', type=('build', 'run')) + depends_on('r-biomart', when='@1.4.0:1.6.3', type=('build', 'run')) + depends_on('r-biocgenerics', 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')) + depends_on('r-rhdf5', when='@1.4.0:1.8.4', type=('build', 'run')) + depends_on('r-rjson', when='@1.4.0:1.8.4', type=('build', 'run')) + 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-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')) diff --git a/var/spack/repos/builtin/packages/r-scrime/package.py b/var/spack/repos/builtin/packages/r-scrime/package.py new file mode 100644 index 0000000000..bd5ce70b67 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-scrime/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RScrime(RPackage): + """scrime: Analysis of High-Dimensional Categorical Data Such as SNP + Data""" + + homepage = "https://cloud.r-project.org/package=scrime" + url = "https://cloud.r-project.org/src/contrib/scrime_1.3.5.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/scrime" + + version('1.3.5', sha256='5d97d3e57d8eb30709340fe572746029fd139456d7a955421c4e3aa75d825578') diff --git a/var/spack/repos/builtin/packages/r-seqlogo/package.py b/var/spack/repos/builtin/packages/r-seqlogo/package.py index b264ad50e8..d3b88b102c 100644 --- a/var/spack/repos/builtin/packages/r-seqlogo/package.py +++ b/var/spack/repos/builtin/packages/r-seqlogo/package.py @@ -7,13 +7,17 @@ from spack import * class RSeqlogo(RPackage): - """seqLogo takes the position weight matrix of a DNA sequence motif and + """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 Stephens (1990).""" - homepage = "https://bioconductor.org/packages/seqLogo/" + homepage = "https://bioconductor.org/packages/seqLogo" git = "https://git.bioconductor.org/packages/seqLogo.git" + version('1.50.0', commit='57986221c90c3920f9829756c4b3ee566dc1e14d') + version('1.48.0', commit='dde85582e7fd0c08c5b8bc73f9aed8f23b727d9d') + version('1.46.0', commit='e78be03db5f6a516138aeea6aa9512685633a4a2') version('1.44.0', commit='4cac14ff29f413d6de1a9944eb5d21bfe5045fac') - - depends_on('r@3.4.3:3.4.9', when='@1.44.0') + version('1.42.0', commit='d7e04726c813282aa3f47a9ee98c5e1cec9bdddd') diff --git a/var/spack/repos/builtin/packages/r-shortread/package.py b/var/spack/repos/builtin/packages/r-shortread/package.py index b42f2b715f..19150bde9b 100644 --- a/var/spack/repos/builtin/packages/r-shortread/package.py +++ b/var/spack/repos/builtin/packages/r-shortread/package.py @@ -7,30 +7,46 @@ from spack import * class RShortread(RPackage): - """This package implements sampling, iteration, and input of FASTQ - files. The package includes functions for filtering and trimming - reads, and for generating a quality assessment report. Data are - represented as DNAStringSet-derived objects, and easily manipulated - for a diversity of purposes. The package also contains legacy support - for early single-end, ungapped alignment formats.""" - - homepage = "https://www.bioconductor.org/packages/ShortRead/" + """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 + generating a quality assessment report. Data are represented as + DNAStringSet-derived objects, and easily manipulated for a diversity of + purposes. The package also contains legacy support for early single-end, + ungapped alignment formats.""" + + homepage = "https://bioconductor.org/packages/ShortRead" git = "https://git.bioconductor.org/packages/ShortRead.git" + version('1.42.0', commit='daa2576a48278460caf87f42c022c796652f4908') + version('1.40.0', commit='0cbe4b62b0be4c5f2e2670da17493423446e008f') + version('1.38.0', commit='e9498f04b7b4bf0212bbb10ec7e3de2d7699f4bf') + version('1.36.1', commit='176c34eddf4a416d30c69cb4ac197141ba42e66f') version('1.34.2', commit='25daac63b301df66a8ef6e98cc2977522c6786cd') - depends_on('r@3.4.0:3.4.9', when='@1.34.2') - depends_on('r-latticeextra', type=('build', 'run')) - depends_on('r-lattice', type=('build', 'run')) - depends_on('r-zlibbioc', type=('build', 'run')) - depends_on('r-hwriter', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-biobase', type=('build', 'run')) - depends_on('r-genomicalignments', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) + depends_on('r-biocgenerics@0.22.1:', type=('build', 'run')) depends_on('r-biocparallel', type=('build', 'run')) - depends_on('r-biocgenerics', 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-genomicalignments@1.5.4:', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-s4vectors@0.13.8:', type=('build', 'run')) + depends_on('r-iranges@2.3.7:', type=('build', 'run')) + depends_on('r-genomeinfodb@1.1.19:', type=('build', 'run')) + depends_on('r-genomicranges@1.21.6:', 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')) diff --git a/var/spack/repos/builtin/packages/r-siggenes/package.py b/var/spack/repos/builtin/packages/r-siggenes/package.py index a619f1902c..f9617e6eb9 100644 --- a/var/spack/repos/builtin/packages/r-siggenes/package.py +++ b/var/spack/repos/builtin/packages/r-siggenes/package.py @@ -7,16 +7,23 @@ from spack import * class RSiggenes(RPackage): - """Identification of differentially expressed genes and estimation of the + """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 Microarrays (SAM) and the Empirical Bayes Analyses of Microarrays (EBAM).""" - homepage = "http://bioconductor.org/packages/siggenes/" + homepage = "https://bioconductor.org/packages/siggenes" git = "https://git.bioconductor.org/packages/siggenes.git" + version('1.58.0', commit='69500158d69942cf7c62f583830933cf8baf89a1') + version('1.56.0', commit='3e929feaa76311be07ff51ad807e657b0b521f6f') + version('1.54.0', commit='1630e42652192e3e4e48e9e78e53665a120cfc7f') + version('1.52.0', commit='dc46cf4b6053ea99c6c841d661f97390653c2e71') version('1.50.0', commit='b1818f26e1449005ffd971df6bda8da0303080bc') depends_on('r-biobase', type=('build', 'run')) depends_on('r-multtest', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.50.0') + + 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 a5798e0575..070bf60d69 100644 --- a/var/spack/repos/builtin/packages/r-simpleaffy/package.py +++ b/var/spack/repos/builtin/packages/r-simpleaffy/package.py @@ -7,20 +7,26 @@ from spack import * class RSimpleaffy(RPackage): - """Provides high level functions for reading Affy .CEL files, - phenotypic data, and then computing simple things with it, such as - t-tests, fold changes and the like. Makes heavy use of the affy - library. Also has some basic scatter plot functions and mechanisms - for generating high resolution journal figures...""" + """Very simple high level analysis of Affymetrix data. - homepage = "http://bioconductor.org/packages/simpleaffy/" + Provides high level functions for reading Affy .CEL files, phenotypic + data, and then computing simple things with it, such as t-tests, fold + changes and the like. Makes heavy use of the affy library. Also has some + basic scatter plot functions and mechanisms for generating high + resolution journal figures...""" + + homepage = "https://bioconductor.org/packages/simpleaffy" git = "https://git.bioconductor.org/packages/simpleaffy.git" + version('2.60.0', commit='b32b5e7d5c65e43c10f98ab8684a1086a06d04f9') + version('2.58.0', commit='70cf1199bad620f60eaa288279632110bb571200') + version('2.56.0', commit='a05d768180b8713ad9e1dc46d491b7ef389b299d') + version('2.54.0', commit='6876e028d412b14504ad3915cbec1a189e9c6478') version('2.52.0', commit='f2b43fb9b8e6fa4c03fe28b4efb3144a0a42a385') - depends_on('r-biocgenerics', type=('build', 'run')) + depends_on('r@2.0.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.1.12:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r-affy', type=('build', 'run')) + depends_on('r-affy@1.33.6:', type=('build', 'run')) depends_on('r-genefilter', type=('build', 'run')) depends_on('r-gcrma', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.52.0') diff --git a/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py b/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py new file mode 100644 index 0000000000..71b58ecc9f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RSinglecellexperiment(RPackage): + """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, + dimensionality reduction coordinates and size factors for each cell, + along with the usual metadata for genes and libraries.""" + + homepage = "https://bioconductor.org/packages/SingleCellExperiment" + git = "https://git.bioconductor.org/packages/SingleCellExperiment.git" + + 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-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-snprelate/package.py b/var/spack/repos/builtin/packages/r-snprelate/package.py index a78a59236c..1a71934f03 100644 --- a/var/spack/repos/builtin/packages/r-snprelate/package.py +++ b/var/spack/repos/builtin/packages/r-snprelate/package.py @@ -7,27 +7,34 @@ from spack import * class RSnprelate(RPackage): - """Genome-wide association studies (GWAS) are widely used to investigate + """Parallel Computing Toolset for Relatedness and Principal Component + 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 - computational challenges. We developed an R package SNPRelate to - provide a binary format for single-nucleotide polymorphism (SNP) data - in GWAS utilizing CoreArray Genomic Data Structure (GDS) data files. - The GDS format offers the efficient operations specifically designed - for integers with two bits, since a SNP could occupy only two bits. + computational challenges. We developed an R package SNPRelate to provide + a binary format for single-nucleotide polymorphism (SNP) data in GWAS + utilizing CoreArray Genomic Data Structure (GDS) data files. The GDS + format offers the efficient operations specifically designed for + integers with two bits, since a SNP could occupy only two bits. SNPRelate is also designed to accelerate two key computations on SNP data using parallel computing for multi-core symmetric multiprocessing computer architectures: Principal Component Analysis (PCA) and relatedness analysis using Identity-By-Descent measures. The SNP GDS format is also used by the GWASTools package with the support of S4 - classes and generic functions. The extended GDS format is implemented - in the SeqArray package to support the storage of single nucleotide + classes and generic functions. The extended GDS format is implemented in + the SeqArray package to support the storage of single nucleotide variations (SNVs), insertion/deletion polymorphism (indel) and structural variation calls.""" homepage = "https://bioconductor.org/packages/SNPRelate" git = "https://git.bioconductor.org/packages/SNPRelate.git" + version('1.18.1', commit='81c581bf76392efdc8ba237ca2e42ca1dba788ca') + version('1.16.0', commit='0e38e8df4af87dff6c27a23af2867661998c0d85') + version('1.14.0', commit='9501cbfc411aa320e58654a865fda2e9077977af') version('1.12.2', commit='dce2e2b6f36483a9f905bb5df6ae834a9f1136fe') + version('1.10.2', commit='3f5c4010871df742e7a460586b38ad0c2fd37aeb') - depends_on('r@3.4.0:3.4.9', when='@1.12.2') + depends_on('r@2.15:', type=('build', 'run')) depends_on('r-gdsfmt@1.8.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-somaticsignatures/package.py b/var/spack/repos/builtin/packages/r-somaticsignatures/package.py index 7a1c8b2ca3..a907249f35 100644 --- a/var/spack/repos/builtin/packages/r-somaticsignatures/package.py +++ b/var/spack/repos/builtin/packages/r-somaticsignatures/package.py @@ -7,16 +7,23 @@ from spack import * class RSomaticsignatures(RPackage): - """The SomaticSignatures package identifies mutational signatures of - single nucleotide variants (SNVs). It provides a infrastructure related - to the methodology described in Nik-Zainal (2012, Cell), with - flexibility in the matrix decomposition algorithms.""" + """Somatic Signatures. - homepage = "https://bioconductor.org/packages/SomaticSignatures/" + The SomaticSignatures package identifies mutational signatures of single + nucleotide variants (SNVs). It provides a infrastructure related to the + methodology described in Nik-Zainal (2012, Cell), with flexibility in + the matrix decomposition algorithms.""" + + homepage = "https://bioconductor.org/packages/SomaticSignatures" git = "https://git.bioconductor.org/packages/SomaticSignatures.git" + version('2.20.0', commit='dbedc30d92b600b3a17de596ebe38d15982c70c6') + version('2.18.0', commit='facccd67eee5202fcbe6ad32e667546546e7ccff') + version('2.16.0', commit='4ae348d9fa096c0ec307df95149991edf6044977') + version('2.14.0', commit='b12d24f86e96a7c6a17cbbad21ca14fa3aa7c60f') version('2.12.1', commit='932298c6877d076004de5541cec85a14e819517a') + depends_on('r@3.1.0:', type=('build', 'run')) depends_on('r-variantannotation', type=('build', 'run')) depends_on('r-genomicranges', type=('build', 'run')) depends_on('r-nmf', type=('build', 'run')) @@ -30,4 +37,3 @@ class RSomaticsignatures(RPackage): depends_on('r-pcamethods', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-proxy', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@2.12.1') diff --git a/var/spack/repos/builtin/packages/r-spam/package.py b/var/spack/repos/builtin/packages/r-spam/package.py new file mode 100644 index 0000000000..860ce77002 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-spam/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RSpam(RPackage): + """spam: SPArse Matrix""" + + 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.3-0.2', sha256='848fa95c0a71ac82af6344539af7b1c33563c687f06ead42851a68b621fff533') + + depends_on('r@3.1:', type=('build', 'run')) + depends_on('r-dotcall64', 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 c5417ffa2b..d157e1f478 100644 --- a/var/spack/repos/builtin/packages/r-spem/package.py +++ b/var/spack/repos/builtin/packages/r-spem/package.py @@ -7,14 +7,20 @@ from spack import * class RSpem(RPackage): - """This package can optimize the parameter in S-system models given time - series data""" + """S-system parameter estimation method. - homepage = "https://bioconductor.org/packages/SPEM/" + This package can optimize the parameter in S-system models given time + series data""" + + homepage = "https://bioconductor.org/packages/SPEM" git = "https://git.bioconductor.org/packages/SPEM.git" + version('1.24.0', commit='537ed19e466008f2972a246479b327c95177a99e') + version('1.22.0', commit='fddb7cd1f81e47eae603724ea149c2adca5b3eb4') + version('1.20.0', commit='b0e1049c61a35da00882d21026f4c1eb03b17517') version('1.18.0', commit='3ab425dd9889885eac328d26b73366a875cd250b') + version('1.16.0', commit='9c0a96374086765db9c81e36a662999067fa4cc7') + depends_on('r@2.15.1:', type=('build', 'run')) depends_on('r-rsolnp', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r@3.4.3:3.4.9', when='@1.18.0') diff --git a/var/spack/repos/builtin/packages/r-sseq/package.py b/var/spack/repos/builtin/packages/r-sseq/package.py index fb36786018..324cdb31f8 100644 --- a/var/spack/repos/builtin/packages/r-sseq/package.py +++ b/var/spack/repos/builtin/packages/r-sseq/package.py @@ -7,13 +7,28 @@ from spack import * class RSseq(RPackage): - """Shrinkage estimation of dispersion in Negative Binomial models for - RNA-seq experiments with small sample size""" + """Shrinkage estimation of dispersion in Negative Binomial models for RNA- + seq experiments with small sample size. - homepage = "https://www.bioconductor.org/packages/sSeq/" - url = "https://www.bioconductor.org/packages/release/bioc/src/contrib/sSeq_1.20.0.tar.gz" + The purpose of this package is to discover the genes that are + differentially expressed between two conditions in RNA-seq experiments. + Gene expression is measured in counts of transcripts and modeled with + the Negative Binomial (NB) distribution using a shrinkage approach for + dispersion estimation. The method of moment (MM) estimates for + dispersion are shrunk towards an estimated target, which minimizes the + average squared difference between the shrinkage estimates and the + initial estimates. The exact per-gene probability under the NB model is + calculated, and used to test the hypothesis that the expected expression + of a gene in two conditions identically follow a NB distribution.""" - version('1.20.0', sha256='0fddcb238a6c401987843debe5b46dc03c22a1ee04df670f0d502e86a4f2144f') + homepage = "https://bioconductor.org/packages/sSeq" + git = "https://git.bioconductor.org/packages/sSeq.git" + + version('1.22.0', commit='fa3895c9578edddca17b5d13a2678ee5830b85cc') + version('1.20.1', commit='91f31440323612cb04beb44404ab0a1bcb3ad87d') + version('1.18.0', commit='1f65e5a55ce0d51672b785450031872e6db5ca0f') + version('1.16.0', commit='b7f2b99dbd4a12ee9d18b0ec9898f13f1038479e') + version('1.14.0', commit='20ccffeb60196914975aa1feef902ddba659c571') depends_on('r@3.0:', type=('build', 'run')) depends_on('r-catools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py index d9aaa00ee7..f7607ee67b 100644 --- a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py +++ b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py @@ -7,31 +7,39 @@ from spack import * class RSummarizedexperiment(RPackage): - """The SummarizedExperiment container contains one or more assays, each + """SummarizedExperiment container. + + The SummarizedExperiment container contains one or more assays, each represented by a matrix-like object of numeric or other mode. The rows - typically represent genomic ranges of interest and the columns - represent samples.""" + typically represent genomic ranges of interest and the columns represent + samples.""" - homepage = "https://bioconductor.org/packages/SummarizedExperiment/" + homepage = "https://bioconductor.org/packages/SummarizedExperiment" git = "https://git.bioconductor.org/packages/SummarizedExperiment.git" - version('1.10.0', commit='7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b') + version('1.14.1', commit='2c68d99e11c7345e5ed388370822ea48395c64a4') + version('1.12.0', commit='5f8416864636add121ec1d6737ebb89a42227fd7') + version('1.10.1', commit='7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b') version('1.8.1', commit='9d8a29aa9c78bbc7dcc6472537e13fc0d11dc1f7') version('1.6.5', commit='ec69cd5cfbccaef148a9f6abdfb3e22e888695d0') - depends_on('r-genomicranges@1.27.22:', when='@1.6.5', 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.0', type=('build', 'run')) + depends_on('r@3.2:', type=('build', 'run')) + depends_on('r-genomicranges@1.27.22:', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) - depends_on('r-delayedarray@0.1.9:', when='@1.6.5', type=('build', 'run')) - depends_on('r-delayedarray@0.3.20:', when='@1.8.1:', type=('build', 'run')) + depends_on('r-delayedarray@0.1.9:', type=('build', 'run')) depends_on('r-matrix', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.25:', when='@1.10.0', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.16:', when='@1.10.0', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomeinfodb@1.13.1:', when='@1.10.0', type=('build', 'run')) - depends_on('r-biocgenerics@0.15.3:', when='@1.6.5:', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.6.5:1.9.9', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.10.0', 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-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')) diff --git a/var/spack/repos/builtin/packages/r-sva/package.py b/var/spack/repos/builtin/packages/r-sva/package.py index e6ec8b9715..547bfdd27b 100644 --- a/var/spack/repos/builtin/packages/r-sva/package.py +++ b/var/spack/repos/builtin/packages/r-sva/package.py @@ -7,14 +7,37 @@ from spack import * class RSva(RPackage): - """Surrogate Variable Analysis.""" + """Surrogate Variable Analysis. - homepage = "https://www.bioconductor.org/packages/sva/" + The sva package contains functions for removing batch effects and other + unwanted variation in high-throughput experiment. Specifically, the sva + package contains functions for the identifying and building surrogate + variables for high-dimensional data sets. Surrogate variables are + covariates constructed directly from high-dimensional data (like gene + expression/RNA sequencing/methylation/brain imaging data) that can be + used in subsequent analyses to adjust for unknown, unmodeled, or latent + sources of noise. The sva package can be used to remove artifacts in + three ways: (1) identifying and estimating surrogate variables for + unknown sources of variation in high-throughput experiments (Leek and + Storey 2007 PLoS Genetics,2008 PNAS), (2) directly removing known batch + effects using ComBat (Johnson et al. 2007 Biostatistics) and (3) + removing batch effects with known control probes (Leek 2014 biorXiv). + Removing batch effects and using surrogate variables in differential + expression analysis have been shown to reduce dependence, stabilize + error rate estimates, and improve reproducibility, see (Leek and Storey + 2007 PLoS Genetics, 2008 PNAS or Leek et al. 2011 Nat. Reviews + Genetics).""" + + homepage = "https://bioconductor.org/packages/sva" git = "https://git.bioconductor.org/packages/sva.git" + version('3.32.1', commit='1b8286734d00533b49d9f1456b6523cc778bb744') + version('3.30.1', commit='fdb98bc2299dc5213c62d83cb7c0b1c1b4912f0c') + version('3.28.0', commit='dd4937229dbccd2f383a04d5237fe147a884728d') + version('3.26.0', commit='3cc5e75413c35ed5511892f5c36a8b5cb454937e') version('3.24.4', commit='ed2ebb6e33374dc9ec50e6ea97cc1d9aef836c73') - depends_on('r@3.4.0:3.4.9', when='@3.24.4') + depends_on('r@3.2:', type=('build', 'run')) depends_on('r-mgcv', type=('build', 'run')) depends_on('r-genefilter', type=('build', 'run')) depends_on('r-biocparallel', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-teachingdemos/package.py b/var/spack/repos/builtin/packages/r-teachingdemos/package.py new file mode 100644 index 0000000000..4b6439b6ad --- /dev/null +++ b/var/spack/repos/builtin/packages/r-teachingdemos/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RTeachingdemos(RPackage): + """TeachingDemos: 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 + or the programming.""" + + homepage = "https://cloud.r-project.org/package=TeachingDemos" + 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.10', sha256='2ef4c2e36ba13e32f66000e84281a3616584c86b255bca8643ff3fe4f78ed704') diff --git a/var/spack/repos/builtin/packages/r-tfbstools/package.py b/var/spack/repos/builtin/packages/r-tfbstools/package.py index 393071cb67..e9c74cea4e 100644 --- a/var/spack/repos/builtin/packages/r-tfbstools/package.py +++ b/var/spack/repos/builtin/packages/r-tfbstools/package.py @@ -7,25 +7,25 @@ from spack import * class RTfbstools(RPackage): - """TFBSTools is a package for the analysis and manipulation of - transcription factor binding sites. + """Software Package for Transcription Factor Binding Site (TFBS) Analysis. - It includes matrices conversion between Position Frequency Matirx (PFM), - Position Weight Matirx (PWM) and Information Content Matrix (ICM). It - can also scan putative TFBS from sequence/alignment, query JASPAR - database and provides a wrapper of de novo motif discovery software. TFBSTools is a package for the analysis and manipulation of transcription factor binding sites. It includes matrices conversion between Position Frequency Matirx (PFM), Position Weight Matirx (PWM) and Information Content Matrix (ICM). It can also scan putative TFBS - from sequence/alignment, query JASPAR database and provides a wrapper - of de novo motif discovery software.""" + from sequence/alignment, query JASPAR database and provides a wrapper of + de novo motif discovery software.""" - homepage = "http://bioconductor.org/packages/TFBSTools/" + homepage = "https://bioconductor.org/packages/TFBSTools" git = "https://git.bioconductor.org/packages/TFBSTools.git" + version('1.22.0', commit='613d3567fd662b65269bd200c5aa5f87ac6a4612') + version('1.20.0', commit='74035fc6beb1af82f171c11ef2b0a8817714c5bc') + version('1.18.0', commit='17e12b9f3dcb9059d414307ec0bc23ed1ee33294') version('1.16.0', commit='565436a5a674d4dea7279e796a20c5bd2034f65a') + version('1.14.2', commit='e429fdefb6f7ee4585dd2a8ca3d0ced7a5bed4ff') + depends_on('r@3.2.2:', type=('build', 'run')) depends_on('r-biobase@2.28:', type=('build', 'run')) depends_on('r-biostrings@2.36.4:', type=('build', 'run')) depends_on('r-biocgenerics@0.14.0:', type=('build', 'run')) @@ -46,4 +46,3 @@ class RTfbstools(RPackage): depends_on('r-tfmpvalue@0.0.5:', type=('build', 'run')) depends_on('r-xml@3.98-1.3:', type=('build', 'run')) depends_on('r-xvector@0.8.0:', type=('build', 'run')) - depends_on('r@3.4.3:3.4.9', when='@1.16.0') diff --git a/var/spack/repos/builtin/packages/r-tidygraph/package.py b/var/spack/repos/builtin/packages/r-tidygraph/package.py new file mode 100644 index 0000000000..d74368407a --- /dev/null +++ b/var/spack/repos/builtin/packages/r-tidygraph/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RTidygraph(RPackage): + """tidygraph: 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 + approach to manipulate these two virtual data frames using the API defined + in the 'dplyr' package, as well as provides tidy interfaces to a lot of + common graph algorithms.""" + + homepage = "https://github.com/thomasp85/tidygraph" + 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.1.2', sha256='5642001d4cccb122d66481b7c61a06c724c02007cbd356ee61cb29726a56fafe') + + depends_on('r-tibble', type=('build', 'run')) + depends_on('r-dplyr@0.8:', type=('build', 'run')) + depends_on('r-igraph', type=('build', 'run')) + depends_on('r-magrittr', type=('build', 'run')) + depends_on('r-rlang', type=('build', 'run')) + depends_on('r-r6', type=('build', 'run')) + depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-tidyr', type=('build', 'run')) + depends_on('r-pillar', 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 0ac49d576e..71da1a51db 100644 --- a/var/spack/repos/builtin/packages/r-tmixclust/package.py +++ b/var/spack/repos/builtin/packages/r-tmixclust/package.py @@ -7,17 +7,24 @@ from spack import * class RTmixclust(RPackage): - """Implementation of a clustering method for time series gene expression - data based on mixed-effects models with Gaussian variables and - non-parametric cubic splines estimation. The method can robustly account - for the high levels of noise present in typical gene expression time - series datasets.""" + """Time Series Clustering of Gene Expression with Gaussian Mixed-Effects + Models and Smoothing Splines. - homepage = "https://bioconductor.org/packages/TMixClust/" + Implementation of a clustering method for time series gene expression + data based on mixed-effects models with Gaussian variables and non- + parametric cubic splines estimation. The method can robustly account for + the high levels of noise present in typical gene expression time series + datasets.""" + + homepage = "https://bioconductor.org/packages/TMixClust" git = "https://git.bioconductor.org/packages/TMixClust.git" + version('1.6.0', commit='9f5f78e52538d15f402c8f6e4c60f7212c7bc548') + version('1.4.0', commit='a52fcae6e7a5dd41e7afbe128f35397e8bc8cb12') + version('1.2.0', commit='0250c0b238f08077b5b9ff17c2f3b7633c67dc3c') version('1.0.1', commit='0ac800210e3eb9da911767a80fb5582ab33c0cad') + depends_on('r@3.4:', type=('build', 'run')) depends_on('r-gss', type=('build', 'run')) depends_on('r-mvtnorm', type=('build', 'run')) depends_on('r-zoo', type=('build', 'run')) @@ -26,4 +33,3 @@ class RTmixclust(RPackage): depends_on('r-flexclust', type=('build', 'run')) depends_on('r-biobase', type=('build', 'run')) depends_on('r-spem', type=('build', 'run')) - depends_on('r@3.4.3:3.4.9', when='@1.0.1') diff --git a/var/spack/repos/builtin/packages/r-topgo/package.py b/var/spack/repos/builtin/packages/r-topgo/package.py index 7822f1f543..b476638246 100644 --- a/var/spack/repos/builtin/packages/r-topgo/package.py +++ b/var/spack/repos/builtin/packages/r-topgo/package.py @@ -7,24 +7,29 @@ from spack import * class RTopgo(RPackage): - """topGO package provides tools for testing GO terms while accounting - for the topology of the GO graph. Different test statistics and - different methods for eliminating local similarities and dependencies - between GO terms can be implemented and applied.""" + """Enrichment Analysis for Gene Ontology. - homepage = "https://www.bioconductor.org/packages/topGO/" + topGO package provides tools for testing GO terms while accounting for + the topology of the GO graph. Different test statistics and different + methods for eliminating local similarities and dependencies between GO + terms can be implemented and applied.""" + + homepage = "https://bioconductor.org/packages/topGO" git = "https://git.bioconductor.org/packages/topGO.git" + version('2.36.0', commit='c2f6c187b41c4aa44cc92ac781fdd878491a4019') + version('2.34.0', commit='44cb5eaba515b365b7b2a8c22df0a45883db6b4d') + version('2.32.0', commit='78ce3068fc06ae38d55219759fa177e2fcb3f596') version('2.30.1', commit='b1469ce1d198ccb73ef79ca22cab81659e16dbaa') version('2.28.0', commit='066a975d460046cce33fb27e74e6a0ebc33fd716') - depends_on('r@3.4.0:3.4.9') - depends_on('r-dbi', type=('build', 'run')) - depends_on('r-matrixstats', type=('build', 'run')) - depends_on('r-lattice', type=('build', 'run')) - depends_on('r-sparsem@0.73:', type=('build', 'run')) - depends_on('r-annotationdbi@1.7.19:', type=('build', 'run')) - depends_on('r-go-db@2.3.0:', type=('build', 'run')) - depends_on('r-biobase@2.0.0:', type=('build', 'run')) - depends_on('r-graph@1.14.0:', type=('build', 'run')) + depends_on('r@2.10.0:', type=('build', 'run')) depends_on('r-biocgenerics@0.13.6:', type=('build', 'run')) + depends_on('r-graph@1.14.0:', type=('build', 'run')) + depends_on('r-biobase@2.0.0:', type=('build', 'run')) + depends_on('r-go-db@2.3.0:', type=('build', 'run')) + depends_on('r-annotationdbi@1.7.19:', type=('build', 'run')) + depends_on('r-sparsem@0.73:', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-matrixstats', type=('build', 'run')) + depends_on('r-dbi', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-tweenr/package.py b/var/spack/repos/builtin/packages/r-tweenr/package.py new file mode 100644 index 0000000000..af10b88998 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-tweenr/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RTweenr(RPackage): + """tweenr: Interpolate Data for Smooth Animations""" + + homepage = "https://github.com/thomasp85/tweenr" + url = "https://cloud.r-project.org/src/contrib/tweenr_1.0.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/tweenr" + + version('1.0.1', sha256='efd68162cd6d5a4f6d833dbf785a2bbce1cb7b9f90ba3fb060931a4bd705096b') + + depends_on('r@3.2.0:', type=('build', 'run')) + depends_on('r-farver', type=('build', 'run')) + depends_on('r-magrittr', type=('build', 'run')) + depends_on('r-rcpp@0.12.3:', type=('build', 'run')) + depends_on('r-rlang', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-tximport/package.py b/var/spack/repos/builtin/packages/r-tximport/package.py new file mode 100644 index 0000000000..748096b6cc --- /dev/null +++ b/var/spack/repos/builtin/packages/r-tximport/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RTximport(RPackage): + """Import and summarize transcript-level estimates for transcript- and + gene-level analysis. + + 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.""" + + homepage = "https://bioconductor.org/packages/tximport" + git = "https://git.bioconductor.org/packages/tximport.git" + + version('1.12.3', commit='acbdead961471c3b910d720f73bd0af1b7a07c57') + version('1.10.1', commit='cd8f81cf7140f61d4a4f25f89451fb49e2cd4bd3') + version('1.8.0', commit='cc91b8389ca4c16b0f588bdeb63d051a11e8a705') + version('1.6.0', commit='0b1ba6c6622e02b954812c88454c28e8efb75e0b') + version('1.4.0', commit='bfbd2436eca21acf212b76a658b49cfb5e116d6b') diff --git a/var/spack/repos/builtin/packages/r-udunits2/package.py b/var/spack/repos/builtin/packages/r-udunits2/package.py index 551455471f..120895ec77 100644 --- a/var/spack/repos/builtin/packages/r-udunits2/package.py +++ b/var/spack/repos/builtin/packages/r-udunits2/package.py @@ -16,4 +16,4 @@ class RUdunits2(RPackage): version('0.13', sha256='d155d3c07f6202b65dec4075ffd1e1c3f4f35f5fdece8cfb319d39256a3e5b79') depends_on('r@2.10.0:', type=('build', 'run')) - depends_on('udunits2') + depends_on('udunits') diff --git a/var/spack/repos/builtin/packages/r-units/package.py b/var/spack/repos/builtin/packages/r-units/package.py index c6b4ce8f19..936a4a695c 100644 --- a/var/spack/repos/builtin/packages/r-units/package.py +++ b/var/spack/repos/builtin/packages/r-units/package.py @@ -25,4 +25,4 @@ class RUnits(RPackage): 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('udunits2', when='@0.6-0:') + 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 new file mode 100644 index 0000000000..a40a872dcd --- /dev/null +++ b/var/spack/repos/builtin/packages/r-upsetr/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RUpsetr(RPackage): + """UpSetR: A More Scalable Alternative to Venn and Euler Diagrams + forVisualizing Intersecting Sets""" + + homepage = "http://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" + + version('1.4.0', sha256='351e5fee64204cf77fd378cf2a2c0456cc19d4d98a2fd5f3dac74b69a505f100') + + depends_on('r@3.0:', type=('build', 'run')) + depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r-gridextra', type=('build', 'run')) + depends_on('r-plyr', type=('build', 'run')) + depends_on('r-scales', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-variantannotation/package.py b/var/spack/repos/builtin/packages/r-variantannotation/package.py index 5293b84150..2dc08887b9 100644 --- a/var/spack/repos/builtin/packages/r-variantannotation/package.py +++ b/var/spack/repos/builtin/packages/r-variantannotation/package.py @@ -7,28 +7,53 @@ from spack import * class RVariantannotation(RPackage): - """Annotate variants, compute amino acid coding changes, predict coding + """Annotation of Genetic Variants. + + Annotate variants, compute amino acid coding changes, predict coding outcomes.""" - homepage = "https://www.bioconductor.org/packages/VariantAnnotation/" + homepage = "https://bioconductor.org/packages/VariantAnnotation" git = "https://git.bioconductor.org/packages/VariantAnnotation.git" + version('1.30.1', commit='fb1ab00872570afb280522c4663e347dafc07a9e') + version('1.28.13', commit='0393347b8ce2d5edf1a61589be93e6a93eda3419') + version('1.26.1', commit='60ae67598cc3d7ed20ee6417920f8c209085faaf') + version('1.24.5', commit='468d7f53fd743e04c9af853d58e871b4cc13a090') version('1.22.3', commit='3a91b6d4297aa416d5f056dec6f8925eb1a8eaee') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-genomeinfodb', type=('build', 'run')) - depends_on('r-genomicranges', type=('build', 'run')) - depends_on('r-summarizedexperiment', type=('build', 'run')) - depends_on('r-rsamtools', type=('build', 'run')) + depends_on('r@2.8.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.15.3:', 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-summarizedexperiment@1.5.3:', type=('build', 'run')) + depends_on('r-rsamtools@1.23.10:', 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', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-xvector', type=('build', 'run')) - depends_on('r-biostrings', type=('build', 'run')) - depends_on('r-annotationdbi', type=('build', 'run')) - depends_on('r-bsgenome', type=('build', 'run')) - depends_on('r-rtracklayer', type=('build', 'run')) - depends_on('r-genomicfeatures', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.22.3') + depends_on('r-s4vectors@0.13.13:', type=('build', 'run')) + depends_on('r-iranges@2.3.25:', type=('build', 'run')) + depends_on('r-xvector@0.5.6:', type=('build', 'run')) + depends_on('r-biostrings@2.33.5:', 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.47.3:', when='@1.26.1:', 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') diff --git a/var/spack/repos/builtin/packages/r-vioplot/package.py b/var/spack/repos/builtin/packages/r-vioplot/package.py new file mode 100644 index 0000000000..bc9daef0e9 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-vioplot/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RVioplot(RPackage): + """vioplot: Violin Plot""" + + 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.2', sha256='7b51d0876903a3c315744cb051ac61920eeaa1f0694814959edfae43ce956e8e') + + depends_on('r-sm', type=('build', 'run')) + depends_on('r-zoo', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-vsn/package.py b/var/spack/repos/builtin/packages/r-vsn/package.py index 5db8fec045..d9272d8efb 100644 --- a/var/spack/repos/builtin/packages/r-vsn/package.py +++ b/var/spack/repos/builtin/packages/r-vsn/package.py @@ -7,28 +7,36 @@ from spack import * class RVsn(RPackage): - """The package implements a method for normalising microarray intensities, - and works for single- and multiple-color arrays. It can also be used - for data from other technologies, as long as they have similar format. - The method uses a robust variant of the maximum-likelihood estimator - for an additive-multiplicative error model and affine calibration. The - model incorporates data calibration step (a.k.a. normalization), a - model for the dependence of the variance on the mean intensity and a - variance stabilizing data transformation. Differences between - transformed intensities are analogous to "normalized log-ratios". - However, in contrast to the latter, their variance is independent of - the mean, and they are usually more sensitive and specific in detecting - differential transcription.""" - - homepage = "https://www.bioconductor.org/packages/vsn/" + """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 + data from other technologies, as long as they have similar format. The + method uses a robust variant of the maximum-likelihood estimator for an + additive-multiplicative error model and affine calibration. The model + incorporates data calibration step (a.k.a. normalization), a model for + the dependence of the variance on the mean intensity and a variance + stabilizing data transformation. Differences between transformed + intensities are analogous to "normalized log-ratios". However, in + contrast to the latter, their variance is independent of the mean, and + they are usually more sensitive and specific in detecting differential + transcription.""" + + homepage = "https://bioconductor.org/packages/vsn" git = "https://git.bioconductor.org/packages/vsn.git" + version('3.52.0', commit='e80642d850ae93bc141654200a8970b561a94fbe') + version('3.50.0', commit='ad49fcc288c6065d0f04040acd688e7f0d7d927e') + version('3.48.1', commit='d57f64112004b1d73b3be625949830209de027eb') + version('3.46.0', commit='7ecfd20452348da27d6fcc052cbff2b9be777792') version('3.44.0', commit='e54513fcdd07ccfb8094359e93cef145450f0ee0') + depends_on('r@3.0.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', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@3.44.0') + depends_on('r-hexbin', when='@3.44.0', type=('build', 'run')) + + depends_on('r@3.4.0:', when='@3.46.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-wgcna/package.py b/var/spack/repos/builtin/packages/r-wgcna/package.py index 7b21e756ed..426116c677 100644 --- a/var/spack/repos/builtin/packages/r-wgcna/package.py +++ b/var/spack/repos/builtin/packages/r-wgcna/package.py @@ -10,7 +10,7 @@ class RWgcna(RPackage): """WGCNA: Weighted Correlation Network Analysis""" homepage = "https://cloud.r-project.org/package=WGCNA" - url = "https://cloud.r-project.org/src/contrib/WGCNA_1.66.tar.gz" + 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.68', sha256='0a04f15a20817f9260ae1896eda3be83a7f4855a27a348df85c7f4d376f1efe8') diff --git a/var/spack/repos/builtin/packages/r-xde/package.py b/var/spack/repos/builtin/packages/r-xde/package.py index f36835b58c..17fc9d67f0 100644 --- a/var/spack/repos/builtin/packages/r-xde/package.py +++ b/var/spack/repos/builtin/packages/r-xde/package.py @@ -7,18 +7,26 @@ from spack import * class RXde(RPackage): - """Multi-level model for cross-study detection of differential gene - expression.""" + """XDE: a Bayesian hierarchical model for cross-study analysis of + differential gene expression.""" - homepage = "https://www.bioconductor.org/packages/XDE/" + homepage = "https://bioconductor.org/packages/XDE" git = "https://git.bioconductor.org/packages/XDE.git" + version('2.30.0', commit='058af6f1e431522778f970bf61f834620d3d7dd7') + version('2.28.0', commit='b8cc7d0840ce1324644e8b4a750fbb964884498b') + version('2.26.0', commit='7bf6368037937c53542447175061c2e2059ee3be') + version('2.24.0', commit='fd5f245f82893657dc36e5a67a1d3b8255772462') version('2.22.0', commit='25bcec965ae42a410dd285a9db9be46d112d8e81') - depends_on('r-biobase', type=('build', 'run')) + depends_on('r@2.10.0:', type=('build', 'run')) + depends_on('r-biobase@2.5.5:', type=('build', 'run')) 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@3.4.0:3.4.9', when='@2.22.0') + + 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')) diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py index ee0f934447..2f575b9cfa 100644 --- a/var/spack/repos/builtin/packages/r-xlsx/package.py +++ b/var/spack/repos/builtin/packages/r-xlsx/package.py @@ -11,7 +11,7 @@ class RXlsx(RPackage): 97/2000/XP/2003 file formats.""" homepage = "http://code.google.com/p/rexcel/" - url = "https://cloud.r-project.org/src/contrib/xlsx_0.5.7.tar.gz" + 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.1', sha256='a580bd16b5477c1c185bf681c12c1ffff4088089f97b6a37997913d93ec5a8b4') diff --git a/var/spack/repos/builtin/packages/r-xmapbridge/package.py b/var/spack/repos/builtin/packages/r-xmapbridge/package.py index 661017ba75..b718a85d97 100644 --- a/var/spack/repos/builtin/packages/r-xmapbridge/package.py +++ b/var/spack/repos/builtin/packages/r-xmapbridge/package.py @@ -7,12 +7,18 @@ from spack import * class RXmapbridge(RPackage): - """xmapBridge can plot graphs in the X:Map genome browser. This package + """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.""" - homepage = "https://www.bioconductor.org/packages/xmapbridge/" + homepage = "https://bioconductor.org/packages/xmapbridge" git = "https://git.bioconductor.org/packages/xmapbridge.git" + version('1.42.0', commit='d79c80dfc1a0ed3fd6d3e7a7c3a4aff778537ca9') + version('1.40.0', commit='00a2993863f28711e237bc937fa0ba2d05f81684') + version('1.38.0', commit='08138f00385fa0c669ff4cc33d7eac3d29cd615d') + version('1.36.0', commit='e44f648c9da9eaa130849a738d90dc11685050e2') version('1.34.0', commit='f162e1f72ead5f5a1aede69032d5771a6572d965') - depends_on('r@3.4.0:3.4.9', when='@1.34.0') + depends_on('r@2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-xvector/package.py b/var/spack/repos/builtin/packages/r-xvector/package.py index 9623be17c0..9cfe599d55 100644 --- a/var/spack/repos/builtin/packages/r-xvector/package.py +++ b/var/spack/repos/builtin/packages/r-xvector/package.py @@ -7,21 +7,33 @@ from spack import * class RXvector(RPackage): - """Memory efficient S4 classes for storing sequences "externally" (behind - an R external pointer, or on disk).""" + """Foundation of external vector representation and manipulation in + Bioconductor. - homepage = "https://bioconductor.org/packages/XVector/" + Provides memory efficient S4 classes for storing sequences "externally" + (e.g. behind an R external pointer, or on disk).""" + + homepage = "https://bioconductor.org/packages/XVector" git = "https://git.bioconductor.org/packages/XVector.git" + version('0.24.0', commit='e5109cb2687724b9fddddf296c07a82bae4c551d') + version('0.22.0', commit='b5e107a5fd719e18374eb836eb498b529afa4473') version('0.20.0', commit='a83a7ea01f6a710f0ba7d9fb021cfa795b291cb4') + version('0.18.0', commit='27acf47282c9880b54d04dff46c1e50f0c87fa6b') version('0.16.0', commit='54615888e1a559da4a81de33e934fc0f1c3ad99f') - depends_on('r-biocgenerics', type=('build', 'run')) - depends_on('r-biocgenerics@0.19.2:', when='@0.20.0', type=('build', 'run')) - depends_on('r-s4vectors', type=('build', 'run')) - depends_on('r-s4vectors@0.17.24:', when='@0.20.0', type=('build', 'run')) - depends_on('r-iranges', type=('build', 'run')) - depends_on('r-iranges@2.13.16:', when='@0.20.0', type=('build', 'run')) + 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@3.4.0:3.4.9', when='@0.16.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@0.20.0', 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')) diff --git a/var/spack/repos/builtin/packages/r-yapsa/package.py b/var/spack/repos/builtin/packages/r-yapsa/package.py index c41dca0f4d..b1f0cd1316 100644 --- a/var/spack/repos/builtin/packages/r-yapsa/package.py +++ b/var/spack/repos/builtin/packages/r-yapsa/package.py @@ -7,18 +7,25 @@ from spack import * class RYapsa(RPackage): - """This package provides functions and routines useful in the analysis of + """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 particular, functions to perform a signature analysis with known signatures (LCD = linear combination decomposition) and a signature analysis on stratified mutational catalogue (SMC = stratify mutational catalogue) are provided.""" - homepage = "http://bioconductor.org/packages/YAPSA/" + homepage = "https://bioconductor.org/packages/YAPSA" git = "https://git.bioconductor.org/packages/YAPSA.git" + version('1.10.0', commit='06af18e424868eb0f0be6c80e90cbab1eabf3d73') + version('1.8.0', commit='402f3f7774fdf8afc7883579ad651c26df0f8fdb') + version('1.6.0', commit='2455d272b076835ddb36ad21c01ef15af66abc36') + version('1.4.0', commit='6f24150a0689d5215983975ece96c8c205923c72') version('1.2.0', commit='320809b69e470e30a777a383f8341f93064ec24d') + depends_on('r@3.3.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')) @@ -30,8 +37,8 @@ class RYapsa(RPackage): depends_on('r-corrplot', type=('build', 'run')) depends_on('r-dendextend', type=('build', 'run')) depends_on('r-getoptlong', type=('build', 'run')) + depends_on('r-circlize', type=('build', 'run')) depends_on('r-gtrellis', type=('build', 'run')) depends_on('r-pmcmr', type=('build', 'run')) depends_on('r-complexheatmap', type=('build', 'run')) depends_on('r-keggrest', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.2.0') diff --git a/var/spack/repos/builtin/packages/r-yaqcaffy/package.py b/var/spack/repos/builtin/packages/r-yaqcaffy/package.py index 342fea2b18..cbab1bb902 100644 --- a/var/spack/repos/builtin/packages/r-yaqcaffy/package.py +++ b/var/spack/repos/builtin/packages/r-yaqcaffy/package.py @@ -7,14 +7,19 @@ from spack import * class RYaqcaffy(RPackage): - """Quality control of Affymetrix GeneChip expression data and + """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 reference datasets.""" - homepage = "http://bioconductor.org/packages/yaqcaffy/" + homepage = "https://bioconductor.org/packages/yaqcaffy" git = "https://git.bioconductor.org/packages/yaqcaffy.git" + version('1.44.0', commit='00898f3ec9ac0beadbcf57bda3d3c1c99fb0c3c0') + version('1.42.0', commit='a4af673774165e087499ecc35f96aab6bbfbeea1') + version('1.40.0', commit='0c78f8ff8f675305f6fa4b052d2482e9aee551bb') + version('1.38.0', commit='d57100862c2dc0f5e7684f318b9ceda7349352be') version('1.36.0', commit='4d46fe77b2c8de2230a77b0c07dd5dd726e3abd6') - depends_on('r-simpleaffy', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.36.0') + depends_on('r-simpleaffy@2.19.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-yarn/package.py b/var/spack/repos/builtin/packages/r-yarn/package.py index 12ffca6910..4623c73c81 100644 --- a/var/spack/repos/builtin/packages/r-yarn/package.py +++ b/var/spack/repos/builtin/packages/r-yarn/package.py @@ -7,16 +7,22 @@ from spack import * class RYarn(RPackage): - """Expedite large RNA-Seq analyses using a combination of previously + """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 performing basic mis-annotation quality control, filtering, and condition-aware normalization. YARN leverages many Bioconductor tools and statistical techniques to account for the large heterogeneity and sparsity found in very large RNA-seq experiments.""" - homepage = "https://bioconductor.org/packages/yarn/" + homepage = "https://bioconductor.org/packages/yarn" git = "https://git.bioconductor.org/packages/yarn.git" + version('1.10.0', commit='36ffe84148eb871e93bc8f9e697475319b5ea472') + version('1.8.1', commit='ee0723d4dbf082b4469ca9c22cce4f1a2ac81c04') + version('1.6.0', commit='19d1b2ef275f294bd318b86e0d237c271880117d') + version('1.4.0', commit='36100f40b9e520c072d0d5ebf963723b813f7db0') version('1.2.0', commit='28af616ef8c27dcadf6568e276dea8465486a697') depends_on('r-biobase', type=('build', 'run')) @@ -30,4 +36,3 @@ class RYarn(RPackage): depends_on('r-readr', type=('build', 'run')) depends_on('r-rcolorbrewer', type=('build', 'run')) depends_on('r-quantro', type=('build', 'run')) - depends_on('r@3.4.0:3.4.9', when='@1.2.0') diff --git a/var/spack/repos/builtin/packages/r-zlibbioc/package.py b/var/spack/repos/builtin/packages/r-zlibbioc/package.py index 3b36a02b16..a4b830e3db 100644 --- a/var/spack/repos/builtin/packages/r-zlibbioc/package.py +++ b/var/spack/repos/builtin/packages/r-zlibbioc/package.py @@ -7,17 +7,18 @@ from spack import * class RZlibbioc(RPackage): - """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 Mac users should have system-level access to zlib, and no - direct need for this package). See the vignette for instructions - on use.""" + """An R packaged zlib-1.2.5. - homepage = "http://bioconductor.org/packages/release/bioc/html/zlibbioc.html" + 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 + Mac users should have system-level access to zlib, and no direct need + for this package). See the vignette for instructions on use.""" + + homepage = "https://bioconductor.org/packages/zlibbioc" git = "https://git.bioconductor.org/packages/zlibbioc.git" + version('1.30.0', commit='99eae5b05968bf6abc9b54b9031afd93517381e0') + version('1.28.0', commit='b825b042742ba45455fc284b988ff4cd2a33222c') version('1.26.0', commit='2e3ab097caa09a5e3ddaa3469b13e19a7224da0d') + version('1.24.0', commit='2990059338d1b987d098c009b0bfa806bd24afec') version('1.22.0', commit='30377f830af2bc1ff17bbf3fdd2cb6442015fea5') - - depends_on('r@3.4.0:3.4.9', when='@1.22.0', type=('build', 'run')) - depends_on('r@3.5.0:3.5.9', when='@1.26.0', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index 3755fb594f..e5d4f2b17e 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -21,6 +21,7 @@ class R(AutotoolsPackage): extendable = True + version('3.6.2', sha256='bd65a45cddfb88f37370fbcee4ac8dd3f1aebeebe47c2f968fd9770ba2bbc954') version('3.6.1', sha256='5baa9ebd3e71acecdcc3da31d9042fb174d55a42829f8315f2457080978b1389') version('3.6.0', sha256='36fcac3e452666158e62459c6fc810adc247c7109ed71c5b6c3ad5fc2bf57509') version('3.5.3', sha256='2bfa37b7bd709f003d6b8a172ddfb6d03ddd2d672d6096439523039f7a8e678c') @@ -109,18 +110,25 @@ class R(AutotoolsPackage): prefix = self.prefix tcl_config_path = join_path(spec['tcl'].prefix.lib, 'tclConfig.sh') + if not os.path.exists(tcl_config_path): + tcl_config_path = join_path(spec['tcl'].prefix, + 'lib64', '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'].prefix.lib, 'tkConfig.sh') + if not os.path.exists(tk_config_path): + tk_config_path = join_path(spec['tk'].prefix, + 'lib64', 'tkConfig.sh') config_args.append('--with-tk-config={0}'.format(tk_config_path)) if '+external-lapack' in spec: diff --git a/var/spack/repos/builtin/packages/r3d/package.py b/var/spack/repos/builtin/packages/r3d/package.py index 6e2984253c..6704e05419 100644 --- a/var/spack/repos/builtin/packages/r3d/package.py +++ b/var/spack/repos/builtin/packages/r3d/package.py @@ -11,11 +11,11 @@ class R3d(MakefilePackage): conservative voxelization.""" homepage = "https://github.com/devonmpowell/r3d" - url = "https://github.com/devonmpowell/r3d.git" + git = "https://github.com/devonmpowell/r3d.git" - version('2019-04-24', git=url, commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22') - version('2018-12-19', git=url, commit='47308f68c782ed3227d3dab1eff24d41f6421f21') - version('2018-01-07', git=url, commit='d6799a582256a120ef3bd7e18959e96cba0e5495') + version('2019-04-24', commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22') + version('2018-12-19', commit='47308f68c782ed3227d3dab1eff24d41f6421f21') + version('2018-01-07', commit='d6799a582256a120ef3bd7e18959e96cba0e5495') variant("test", default=False, description="Build R3D regression tests") diff --git a/var/spack/repos/builtin/packages/rabbitmq/package.py b/var/spack/repos/builtin/packages/rabbitmq/package.py new file mode 100644 index 0000000000..ac81c9f72f --- /dev/null +++ b/var/spack/repos/builtin/packages/rabbitmq/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Rabbitmq(Package): + """ + RabbitMQ is lightweight and easy to deploy on premises and in the cloud. + It supports multiple messaging protocols. RabbitMQ can be deployed in + distributed and federated configurations to meet high-scale, + high-availability requirements. + """ + + homepage = "http://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') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/rankstr/package.py b/var/spack/repos/builtin/packages/rankstr/package.py index c72c46b54a..d56b9211ad 100644 --- a/var/spack/repos/builtin/packages/rankstr/package.py +++ b/var/spack/repos/builtin/packages/rankstr/package.py @@ -10,7 +10,7 @@ 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.1.zip" + url = "https://github.com/ECP-VeloC/rankstr/archive/v0.0.2.zip" git = "https://github.com/ecp-veloc/rankstr.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/rclone/package.py b/var/spack/repos/builtin/packages/rclone/package.py index 00a5221ef9..c3d0ba5b1c 100644 --- a/var/spack/repos/builtin/packages/rclone/package.py +++ b/var/spack/repos/builtin/packages/rclone/package.py @@ -17,9 +17,9 @@ class Rclone(Package): depends_on("go", type='build') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Point GOPATH at the top of the staging dir for the build step. - spack_env.prepend_path('GOPATH', self.stage.path) + env.prepend_path('GOPATH', self.stage.path) def install(self, spec, prefix): go('build') diff --git a/var/spack/repos/builtin/packages/readline/package.py b/var/spack/repos/builtin/packages/readline/package.py index 74cd4b661b..dee216909a 100644 --- a/var/spack/repos/builtin/packages/readline/package.py +++ b/var/spack/repos/builtin/packages/readline/package.py @@ -6,7 +6,7 @@ from spack import * -class Readline(AutotoolsPackage): +class Readline(AutotoolsPackage, GNUMirrorPackage): """The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library @@ -16,7 +16,7 @@ class Readline(AutotoolsPackage): homepage = "http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" # URL must remain http:// so Spack can bootstrap curl - url = "http://ftpmirror.gnu.org/readline/readline-8.0.tar.gz" + gnu_mirror_path = "readline/readline-8.0.tar.gz" version('8.0', sha256='e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461') version('7.0', sha256='750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334') diff --git a/var/spack/repos/builtin/packages/redset/package.py b/var/spack/repos/builtin/packages/redset/package.py index d875c1ddfc..c439bdd10e 100644 --- a/var/spack/repos/builtin/packages/redset/package.py +++ b/var/spack/repos/builtin/packages/redset/package.py @@ -10,7 +10,7 @@ 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.2.zip" + url = "https://github.com/ECP-VeloC/redset/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/redset.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/regcm/package.py b/var/spack/repos/builtin/packages/regcm/package.py index fc80deb4d0..136c270359 100644 --- a/var/spack/repos/builtin/packages/regcm/package.py +++ b/var/spack/repos/builtin/packages/regcm/package.py @@ -45,11 +45,11 @@ class Regcm(AutotoolsPackage): description='Build NetCDF using the high performance parallel ' 'NetCDF implementation.') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') depends_on('hdf5') depends_on('mpi') - depends_on('netcdf +parallel-netcdf', when='+pnetcdf') + depends_on('netcdf-c +parallel-netcdf', when='+pnetcdf') intel_msg = ('Intel compiler not working with this specific version of ' 'RegCM (generates a bug at runtime): please install a newer ' diff --git a/var/spack/repos/builtin/packages/relion/package.py b/var/spack/repos/builtin/packages/relion/package.py index a9ab80b849..0629cd4aa3 100644 --- a/var/spack/repos/builtin/packages/relion/package.py +++ b/var/spack/repos/builtin/packages/relion/package.py @@ -15,10 +15,18 @@ class Relion(CMakePackage, CudaPackage): homepage = "http://http://www2.mrc-lmb.cam.ac.uk/relion" git = "https://github.com/3dem/relion.git" + # 3.1 is beta but referenced in published papers + # prefer stable 3.0 until no longer beta + version('3.1_beta', branch='ver3.1') + + # 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') - # relion has no develop branch though pulling from master - # should be considered the same as develop - version('develop', branch='master') + + # relion master contains development code + # contains 3.0 branch code + version('master') variant('gui', default=True, description="build the gui") variant('cuda', default=True, description="enable compute on gpu") @@ -34,9 +42,7 @@ class Relion(CMakePackage, CudaPackage): 'Profiling', 'Benchmarking')) depends_on('mpi') - # relion will not build with newer versions of cmake - # per https://github.com/3dem/relion/issues/380 - depends_on('cmake@3:3.9.4', type='build') + depends_on('cmake@3:', type='build') depends_on('fftw precision=float,double') depends_on('fltk', when='+gui') depends_on('libtiff') diff --git a/var/spack/repos/builtin/packages/repeatmodeler/package.py b/var/spack/repos/builtin/packages/repeatmodeler/package.py index fa395f4109..f068fb2600 100644 --- a/var/spack/repos/builtin/packages/repeatmodeler/package.py +++ b/var/spack/repos/builtin/packages/repeatmodeler/package.py @@ -18,7 +18,7 @@ class Repeatmodeler(Package): depends_on('perl', type=('build', 'run')) depends_on('perl-json', type=('build', 'run')) depends_on('perl-uri', type=('build', 'run')) - depends_on('perl-lwp', type=('build', 'run')) + depends_on('perl-libwww-perl', type=('build', 'run')) depends_on('repeatmasker', type='run') depends_on('recon+repeatmasker', type='run') diff --git a/var/spack/repos/builtin/packages/revbayes/package.py b/var/spack/repos/builtin/packages/revbayes/package.py index 50176857bf..0198efe768 100644 --- a/var/spack/repos/builtin/packages/revbayes/package.py +++ b/var/spack/repos/builtin/packages/revbayes/package.py @@ -12,7 +12,11 @@ class Revbayes(CMakePackage): homepage = "https://revbayes.github.io" url = "https://github.com/revbayes/revbayes/archive/v1.0.11.tar.gz" + git = "https://github.com/revbayes/revbayes.git" + version('develop', branch='development') + version('1.0.13', sha256='472b4ccc44d813c1ff1b8d27e8ccf3d96388de79aa1688b3714f683ba65038fa') + version('1.0.12', sha256='d79f3a9bc72305cab35009d11e1f027fcaacde7329a4c49b5b8285588a8d3588') version('1.0.11', sha256='7e81b1952e3a63cb84617fa632f4ccdf246b4d79e7d537a423540de047dadf50') version('1.0.10', sha256='95e9affe8ca8d62880cf46778b6ec9dd8726e62a185670ebcbadf2eb2bb79f93') @@ -21,9 +25,14 @@ class Revbayes(CMakePackage): depends_on('boost') depends_on('mpi', when='+mpi') - conflicts('%gcc@7.1.0:') + conflicts('%gcc@7.1.0:', when='@:1.0.12') - root_cmakelists_dir = 'projects/cmake/build' + @property + def root_cmakelists_dir(self): + if self.spec.version > Version('1.0.13') and '+mpi' in self.spec: + return 'projects/cmake/build-mpi' + else: + return 'projects/cmake/build' @run_before('cmake') def regenerate(self): @@ -44,3 +53,9 @@ class Revbayes(CMakePackage): else: install_path = join_path(self.build_directory, '..', 'rb') install(install_path, prefix.bin) + + @when('@1.0.12:1.0.13') + def install(self, spec, prefix): + mkdirp(prefix.bin) + install_path = join_path(self.build_directory, '..', 'rb') + install(install_path, prefix.bin) diff --git a/var/spack/repos/builtin/packages/rnaz/package.py b/var/spack/repos/builtin/packages/rnaz/package.py new file mode 100644 index 0000000000..1529304e31 --- /dev/null +++ b/var/spack/repos/builtin/packages/rnaz/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Rnaz(AutotoolsPackage): + """RNAz - predicting structural noncoding RNAs.""" + + homepage = "https://www.tbi.univie.ac.at/software/RNAz" + url = "https://www.tbi.univie.ac.at/software/RNAz/RNAz-2.1.tar.gz" + + version('2.1', sha256='b32ec0361889319f2058f224d6c456c853dbc30dff4dba90c53a8f9fd7b83be5') diff --git a/var/spack/repos/builtin/packages/root/README.md b/var/spack/repos/builtin/packages/root/README.md new file mode 100644 index 0000000000..d808498b34 --- /dev/null +++ b/var/spack/repos/builtin/packages/root/README.md @@ -0,0 +1,170 @@ +# ROOT Recipe Notes + +ROOT has a significant number of build options. Not all of them are supported by this package recipe at this time. Relevant notes on support (or lack thereof) for various options is below. + +## Fixed and unsupported options + +### Missing dependencies + +The following configuration options are unsupported (set to `OFF`) due to missing dependencies: + +#### `alien` + +Requires `libgapiUI` from ALICE. + +#### `dcache` + +DCache support depends on `libdcap` from DESY. + +#### `gfal` + +#### `http` + +ROOT looks for and uses the FastCGI package on the system if found, creating a possible non-portable dependency. There is currently no `fastcgi` recipe, nor any way to unconditionally disable the search for the package. + +#### `monalisa` + +Monitoring with Monalisa depends on `libapmoncpp`. + +#### `odbc` + +#### `oracle` + +#### `pythia8` + +#### `tcmalloc` + +#### `veccore` + +#### `xinetd` + +### Discontinued options + +Support for several options was discontinued in ROOT without prior support in the recipe: + +#### `afdsmgrd` + +#### `afs` + +#### `bonjour` + +#### `castor` + +#### `chirp` + +#### `geocad` + +#### `glite` + +#### `globus` + +#### `hdfs` + +#### `ios` + +#### `krb5` + +#### `ldap` + +#### `rfio` + +#### `ruby` + +#### `sapdb` + +#### `srp` + +### Other fixed or unsupported options + +### `arrow=OFF` + +#### `asimage=ON`, `astiff=ON`, `builtin_afterimage=ON` + +Full control of `asimage` and `astiff` would require a package recipe for libAfterImage or Afterstep. In their absence, we use the provided and internally built version of libAfterImage. + +#### `ccache=OFF` + +Only useful for repeated builds. + +#### `cling=OFF` + +The use of Cling is assumed. + +#### `cxxmodules` + +This option should not be confused with `runtime_cxxmodules`. `cxxmodules` is an optimization that affects only the efficiency of building ROOT. + +#### `exceptions=ON` + +Support for C++ exceptions is assumed. + +#### `explicitlink=ON` + +Use of explicit linking when making shared libraries is assumed. + +#### `fail-on-missing=ON` + +Failure on missing dependencies is assumed (_vs_ automatically setting `builtin_XXX`). + +#### `gnuinstall=OFF` + +GNU-compliant install layout. + +#### `libcxx` + +This option controls use of the libC++ standard C++ library via compiler options. It is set automatically by ROOT's configuration on macOS >=10.7 when a Clang compiler is configured. Due to complexities related to compiler options and the way a compiler might have been configured, configurable support is disabled until (at least) Spack supports the standard library as a virtual dependency. + +#### `pch=ON` + +The use of pre-compiled headers when building is assumed. + +#### `roottest=OFF` + +`roottest` requires access to the network. + +#### `runtime_cxxmodules=OFF` + +This option tells ROOT to generate and use PCMs for its own libraries. This functionality is experimental for ROOT < 6.20, and is currently not supported by the recipe. + +#### `shared=ON` + +The use of shared libraries is assumed. + +#### `soversion=ON` + +The use of versioning for shared libraries is assumed. + +#### `testing` + +The building of ROOT's test suite and its availability for use by CTest is pegged to Spack's determination of whether testing is required for the current installation procedure. + +## Variants and version dependent support for options + +Some configuration options are version dependent---unavailable before or after a specific version. The current accounting for such options in the recipe is far from exhaustive, and a survey of the various options and the versions that support them would be useful. However, accounting for them is somewhat clumsy absent a `when` clause for variants, or similar. + +### Conflicting variants since 6.18 + +#### `memstat` + +#### `qt4` + +Representing the obsolete `qt` and `qtgsi` ROOT build options. + +#### `table` + +### Temporarily conflicting variants + +The `http` variant is currently an unconditional conflict due to the non-portable dependency mentioned above. + +## Permanently removed variants + +The following variants have been removed from the recipe as they have always been ineffective: + +* `avahi` +* `kerberos` +* `ldap` +* `libcxx` +* `odbc` +* `tiff` + +In addition, the `test` variant has been removed as its actions are irrelevant to the installed source---the corresponding `testing` ROOT option is enabled if and only if `self.run_tests` is set. diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 7087572191..7634dd8351 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -14,6 +14,8 @@ class Root(CMakePackage): homepage = "https://root.cern.ch" url = "https://root.cern/download/root_v6.16.00.source.tar.gz" + maintainers = ['chissg', 'HadrienG2'] + # ###################### Versions ########################## # Master branch @@ -23,9 +25,13 @@ class Root(CMakePackage): # Development version (when more recent than production). # Production version - version('6.16.00', sha256='2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8', preferred=True) + version('6.18.04', sha256='315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4', + preferred=True) # Old versions + version('6.18.02', sha256='50ffffdbf2585a536c77a03f54aa631926138275ffeee02e5a16dde87e978c1d') + version('6.18.00', sha256='e6698d6cfe585f186490b667163db65e7d1b92a2447658d77fa831096383ea71') + version('6.16.00', sha256='2a45055c6091adaa72b977c512f84da8ef92723c30837c7e2643eecc9c5ce4d8') version('6.14.08', sha256='1b63b51cfb4dc20f1f5749faac6bbd1098eccab777f8b49911257d77186c73c4') version('6.14.06', sha256='0fb943b61396f282b289e35c455a9ab60126229be1bd3f04a8f00b37c13ab432') version('6.14.04', sha256='463ec20692332a422cfb5f38c78bedab1c40ab4d81be18e99b50cf9f53f596cf') @@ -38,7 +44,6 @@ class Root(CMakePackage): version('6.06.06', sha256='0a7d702a130a260c72cb6ea754359eaee49a8c4531b31f23de0bfcafe3ce466b') version('6.06.04', sha256='ab86dcc80cbd8e704099af0789e23f49469932ac4936d2291602301a7aa8795b') version('6.06.02', sha256='18a4ce42ee19e1a810d5351f74ec9550e6e422b13b5c58e0c3db740cdbc569d1') - version('5.34.38', sha256='2c3bda69601d94836bdd88283a6585b4774eafc813deb6aa348df0af2922c4d2') # ###################### Patches ########################## @@ -52,7 +57,7 @@ class Root(CMakePackage): # Some ROOT versions did not honor the option to avoid building an # internal version of unuran, _cf_ # https://github.com/root-project/ROOT/commit/3e60764f133218b6938e5aa4986de760e8f058d9. - patch('honor-unuran-switch.patch', level=1, when='@:6.13.99') + patch('honor-unuran-switch.patch', level=1, when='@6.08.06:6.13.99') # 6.16.00 fails to handle particular build option combinations, _cf_ # https://github.com/root-project/ROOT/commit/e0ae0483985d90a71a6cabd10d3622dfd1c15611. patch('root7-webgui.patch', level=1, when='@6.16.00') @@ -66,15 +71,11 @@ class Root(CMakePackage): patch('root6-60606-mathmore.patch', when='@6.06.06') # ###################### Variants ########################## + # See README.md for specific notes about what ROOT configuration + # options are or are not supported, and why. - variant('avahi', default=False, - description='Compile with avahi') variant('aqua', default=False, description='Enable Aqua interface') - # No need for a specific variant: libafterimage is not provided by spack - # By default always true, we get the builtin included in the source - # variant('asimage', default=True, - # description='Enable image processing support') variant('davix', default=True, description='Compile with external Davix') variant('emacs', default=False, @@ -100,12 +101,6 @@ class Root(CMakePackage): description='Enable HTTP server support') variant('jemalloc', default=False, description='Enable using the jemalloc allocator') - variant('kerberos', default=False, - description='Enable Kerberos support') - variant('ldap', default=False, - description='Enable LDAP support') - variant('libcxx', default=False, - description='Build using libc++') variant('math', default=True, description='Build the new libMathMore extended math library') variant('memstat', default=False, @@ -115,17 +110,12 @@ class Root(CMakePackage): variant('minuit', default=True, description='Automatically search for support libraries') variant('mysql', default=False) - variant('odbc', default=False, - description='Enable ODBC support') variant('opengl', default=True, description='Enable OpenGL support') - # variant('oracle', default=False) - not supported by spack variant('postgres', default=False, description='Enable postgres support') variant('pythia6', default=False, description='Enable pythia6 support') - # variant('pythia8', default=False, - not suported by spack - # description='Enable pythia8 support') variant('python', default=True, description='Enable Python ROOT bindings') variant('qt4', default=False, @@ -148,12 +138,8 @@ class Root(CMakePackage): description='Build libTable contrib library') variant('tbb', default=True, description='TBB multi-threading support') - variant('test', default=False, - description='Enable test suit of ROOT with CTest') variant('threads', default=True, description='Enable using thread library') - variant('tiff', default=True, - description='Include Tiff support in image processing') variant('tmva', default=True, description='Build TMVA multi variate analysis library') variant('unuran', default=True, @@ -162,10 +148,10 @@ 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('vmc', default=False, + description='Enable the Virtual Monte Carlo interface') variant('x', default=True, description='Enable set of graphical options') - # variant('xinetd', default=False, - not supported by spack - # description='Enable a daemon process manager') variant('xml', default=True, description='Enable XML parser interface') variant('xrootd', default=False, @@ -181,7 +167,8 @@ class Root(CMakePackage): # ###################### Dependencies ###################### - depends_on('cmake@3.4.3:', type='build') + depends_on('cmake@3.4.3:', type='build', when='@:6.16.99') + depends_on('cmake@3.9:', type='build', when='@6.18.00:') depends_on('pkgconfig', type='build') depends_on('blas') @@ -216,57 +203,30 @@ class Root(CMakePackage): # TMVA depends_on('py-numpy', when='+tmva') - # Asimage variant would need one of these two - # For the moment, we use the libafterimage provided by the root sources - # depends_on('libafterimage', when='+asimage') - not supported - # depends_on('afterstep@2.2.11', when='+asimage') - not supported - # Optional dependencies - depends_on('avahi', when='+avahi') depends_on('davix', when='+davix') depends_on('cfitsio', when='+fits') depends_on('fftw', when='+fftw') depends_on('graphviz', when='+graphviz') depends_on('gsl', when='+gsl') - depends_on('http', when='+http') depends_on('jemalloc', when='+jemalloc') - depends_on('kerberos', when='+kerberos') - depends_on('ldap', when='+ldap') - depends_on('libcxx', when='+libcxx') depends_on('mysql-client', when='+mysql') - depends_on('odbc', when='+odbc') - # depends_on('oracle', when='+oracle') depends_on('openssl', when='+ssl') - depends_on('openssl', when='+davix') # Also with davix + depends_on('openssl', when='+davix') # Also with davix depends_on('postgresql', when='+postgres') - depends_on('pythia6+root', when='+pythia6') - # depends_on('pythia@8:8.999', when='+pythia8') - not supported on Spack - depends_on('python@2.7:', when='+python', type=('build', 'run')) + depends_on('pythia6+root', when='+pythia6') + depends_on('python@2.7:', when='+python', type=('build', 'run')) depends_on('r', when='+r', type=('build', 'run')) - depends_on('r-cpp', when='+r', type=('build', 'run')) - depends_on('r-inside', when='+r', type=('build', 'run')) + depends_on('r-rcpp', when='+r', type=('build', 'run')) + depends_on('r-rinside', when='+r', type=('build', 'run')) depends_on('shadow', when='+shadow') depends_on('sqlite', when='+sqlite') depends_on('tbb', when='+tbb') depends_on('unuran', when='+unuran') depends_on('vc', when='+vc') - depends_on('veccore', when='+veccore') depends_on('vdt', when='+vdt') - depends_on('libxml2+python', when='+xml+python') - depends_on('libxml2~python', when='+xml~python') + depends_on('libxml2', when='+xml') depends_on('xrootd', when='+xrootd') - # depends_on('hdfs') - supported (TODO) - - # Not supported - # depends_on('monalisa') - - # Grid packages - not supported yet by Spack - # depends_on('castor') - # depends_on('chirp') - # depends_on('dcap') - # depends_on('gfal') - # depends_on('ldap') - # depends_on('rfio') # ###################### Conflicts ###################### @@ -274,210 +234,157 @@ class Root(CMakePackage): # See https://sft.its.cern.ch/jira/browse/ROOT-7517 conflicts('%intel') + # ROOT <6.08 was incompatible with the GCC 5+ ABI + conflicts('%gcc@5.0.0:', when='@:6.07.99') + + # See README.md + conflicts('+http', + msg='HTTP server currently unsupported due to dependency issues') + # Incompatible variants - conflicts('+tmva', when='~gsl', msg="TVMA requires GSL") - conflicts('cxxstd=11', when='+root7', msg="root7 requires at least C++14") + conflicts('+opengl', when='~x', msg='OpenGL requires X') + conflicts('+tmva', when='~gsl', msg='TVMA requires GSL') + conflicts('cxxstd=11', when='+root7', msg='root7 requires at least C++14') - # Feature removed: - conflicts('+memstat', when='@6.18.00:', - msg="Obsolete option +memstat selected.") - conflicts('+memstat', when='@master', - msg="Obsolete option +memstat selected.") + # Feature removed in 6.18: + [(conflicts('+{0}'.format(pkg), when='@6.18.00:', + msg='Obsolete option +{0} selected.'.format(pkg))) for pkg in + ('memstat', 'qt4', 'table')] def cmake_args(self): spec = self.spec - options = [] - - # #################### Base Settings ####################### - - # ROOT should not download its own dependencies - options = [ - '-Dexplicitlink=ON', - '-Dexceptions=ON', - '-Dfail-on-missing=ON', - '-Dshared=ON', - '-Dsoversion=ON', - '-Dbuiltin_llvm=ON', - '-Dbuiltin_afterimage=ON', - '-Dasimage:BOOL=ON', # if afterimage is taken from builtin - '-Dastiff:BOOL=ON', # asimage and astiff must be ON too - '-Dbuiltin_cfitsio:BOOL=OFF', - '-Dbuiltin_davix:BOOL=OFF', - '-Dbuiltin_fftw3:BOOL=OFF', - '-Dbuiltin_freetype:BOOL=OFF', - '-Dbuiltin_ftgl:BOOL=OFF', - '-Dbuiltin_gl2ps:BOOL=OFF', - '-Dbuiltin_glew:BOOL=OFF', - '-Dbuiltin_gsl:BOOL=OFF', - '-Dbuiltin_lzma:BOOL=OFF', - '-Dbuiltin_openssl:BOOL=OFF', - '-Dbuiltin_pcre:BOOL=OFF', - '-Dbuiltin_tbb:BOOL=OFF', - '-Dbuiltin_unuran:BOOL=OFF', - '-Dbuiltin_vc:BOOL=OFF', - '-Dbuiltin_vdt:BOOL=OFF', - '-Dbuiltin_veccore:BOOL=OFF', - '-Dbuiltin_xrootd:BOOL=OFF', - '-Dbuiltin_zlib:BOOL=OFF' - ] - - # LZ4 and xxhash do not work as external deps for older versions - options.extend([ - '-Dbuiltin_lz4:BOOL=%s' % ( - 'ON' if self.spec.satisfies('@6.12.02:6.12.99') else 'OFF'), - '-Dbuiltin_xxhash:BOOL=%s' % ( - 'ON' if self.spec.satisfies('@6.12.02:6.12.99') else 'OFF'), - ]) - - # #################### ROOT options ####################### - - options.extend([ - '-Dx11:BOOL=%s' % ( - 'ON' if '+x' in spec else 'OFF'), - '-Dxft:BOOL=%s' % ( - 'ON' if '+x' in spec else 'OFF'), - '-Dbonjour:BOOL=%s' % ( - 'ON' if '+avahi' in spec else 'OFF'), - '-Dcocoa:BOOL=%s' % ( - 'ON' if '+aqua' in spec else 'OFF'), - # -Dcxxmodules=OFF # use clang C++ modules - '-Ddavix:BOOL=%s' % ( - 'ON' if '+davix' in spec else 'OFF'), - '-Dfftw3:BOOL=%s' % ( - 'ON' if '+fftw' in spec else 'OFF'), - '-Dfitsio:BOOL=%s' % ( - 'ON' if '+fits' in spec else 'OFF'), - '-Dfortran:BOOL=%s' % ( - 'ON' if '+fortran' in spec else 'OFF'), - '-Dftgl:BOOL=%s' % ( - 'ON' if '+opengl' in spec else 'OFF'), - '-Dgdml:BOOL=%s' % ( - 'ON' if '+gdml' in spec else 'OFF'), - '-Dgl2ps:BOOL=%s' % ( - 'ON' if '+opengl' in spec else 'OFF'), - '-Dgenvector:BOOL=%s' % ( - 'ON' if '+math' in spec else 'OFF'), # default ON - '-Dgminimal:BOOL=%s' % ( # Reduce unwanted surprises - 'ON' if '+gminimal' in spec else 'OFF'), # Default ON - '-Dgsl_shared:BOOL=%s' % ( - 'ON' if '+gsl' in spec else 'OFF'), - '-Dgviz:BOOL=%s' % ( - 'ON' if '+graphviz' in spec else 'OFF'), - '-Dhttp:BOOL=%s' % ( - 'ON' if '+http' in spec else 'OFF'), - '-Dimt:BOOL=%s' % ( - 'ON' if '+tbb' in spec else 'OFF'), - '-Djemalloc:BOOL=%s' % ( - 'ON' if '+jemalloc' in spec else 'OFF'), - '-Dkrb5:BOOL=%s' % ( - 'ON' if '+kerberos' in spec else 'OFF'), - '-Dldap:BOOL=%s' % ( - 'ON' if '+ldap' in spec else 'OFF'), - '-Dlibcxx:BOOL=%s' % ( - 'ON' if '+libcxx' in spec else 'OFF'), - '-Dmathmore:BOOL=%s' % ( - 'ON' if '+math' in spec else 'OFF'), - '-Dmemstat:BOOL=%s' % ( - 'ON' if '+memstat' in spec else 'OFF'), - '-Dminimal:BOOL=%s' % ( - 'ON' if '+minimal' in spec else 'OFF'), - '-Dminuit:BOOL=%s' % ( - 'ON' if '+minuit' in spec else 'OFF'), - '-Dminuit2:BOOL=%s' % ( - 'ON' if '+minuit' in spec else 'OFF'), - '-Dmysql:BOOL=%s' % ( - 'ON' if '+mysql' in spec else 'OFF'), - '-Dodbc:BOOL=%s' % ( - 'ON' if '+odbc' in spec else 'OFF'), - '-Dopengl:BOOL=%s' % ( - 'ON' if '+opengl' in spec else 'OFF'), - '-Doracle:BOOL=%s' % ( - 'ON' if '+oracle' in spec else 'OFF'), # not supported - '-Dpch:BOOL=%s' % ( - 'ON' if '+pch' in spec else 'OFF'), # needs cling - '-Dpgsql:BOOL=%s' % ( - 'ON' if '+postgres' in spec else 'OFF'), - '-Dpythia6:BOOL=%s' % ( - 'ON' if '+pythia6' in spec else 'OFF'), - # Force not to build pythia8 (not supported yet by spack), to avoid - # wrong defaults from ROOT at build time - '-Dpythia8:BOOL=%s' % ( - 'ON' if '+pythia8' in spec else 'OFF'), - '-Dpython:BOOL=%s' % ( - 'ON' if self.spec.satisfies('+python ^python@2.7:2.99.99') - else 'OFF'), - '-Dpython3:BOOL=%s' % ( - 'ON' if self.spec.satisfies('+python ^python@3.0:') - else 'OFF'), - '-Dqt:BOOL=%s' % ( - 'ON' if '+qt4' in spec else 'OFF'), - '-Dqtgsi:BOOL=%s' % ( - 'ON' if '+qt4' in spec else 'OFF'), - '-Dr:BOOL=%s' % ( - 'ON' if '+R' in spec else 'OFF'), - '-Droofit:BOOL=%s' % ( - 'ON' if '+roofit' in spec else 'OFF'), - '-Droot7:BOOL=%s' % ( - 'ON' if '+root7' in spec else 'OFF'), # requires C++14 - '-Dwebui:BOOL=%s' % ( - 'ON' if '+root7' in spec else 'OFF'), # requires root7 - '-Drpath:BOOL=%s' % ( - 'ON' if '+rpath' in spec else 'OFF'), - '-Dshadowpw:BOOL=%s' % ( - 'ON' if '+shadow' in spec else 'OFF'), - '-Dsqlite:BOOL=%s' % ( - 'ON' if '+sqlite' in spec else 'OFF'), - '-Dssl:BOOL=%s' % ( - 'ON' if '+ssl' in spec else 'OFF'), - '-Dtable:BOOL=%s' % ( - 'ON' if '+table' in spec else 'OFF'), - '-Dtbb:BOOL=%s' % ( - 'ON' if '+tbb' in spec else 'OFF'), - '-Dtesting:BOOL=%s' % ( - 'ON' if '+test' in spec else 'OFF'), - '-Dthread:BOOL=%s' % ( - 'ON' if '+threads' in spec else 'OFF'), - '-Dtmva:BOOL=%s' % ( - 'ON' if '+tmva' in spec else 'OFF'), - '-Dunuran:BOOL=%s' % ( - 'ON' if '+unuran' in spec else 'OFF'), - '-Dvc:BOOL=%s' % ( - 'ON' if '+vc' in spec else 'OFF'), - '-Dveccore:BOOL=%s' % ( - 'ON' if '+veccore' in spec else 'OFF'), # not supported - '-Dvdt:BOOL=%s' % ( - 'ON' if '+vdt' in spec else 'OFF'), - '-Dxml:BOOL=%s' % ( - 'ON' if '+xml' in spec else 'OFF'), # default ON - '-Dxrootd:BOOL=%s' % ( - 'ON' if '+xrootd' in spec else 'OFF'), # default ON - - # Fixed options - '-Dafdsmrgd:BOOL=OFF', # not supported - '-Dafs:BOOL=OFF', # not supported - '-Dalien:BOOL=OFF', - '-Dcastor:BOOL=OFF', # not supported - '-Dccache:BOOL=OFF', # not supported - '-Dchirp:BOOL=OFF', - '-Dcling:BOOL=ON', - '-Ddcache:BOOL=OFF', # not supported - '-Dgeocad:BOOL=OFF', # not supported - '-Dgfal:BOOL=OFF', # not supported - '-Dglite:BOOL=OFF', # not supported - '-Dglobus:BOOL=OFF', - '-Dgnuinstall:BOOL=OFF', - '-Dhdfs:BOOL=OFF', # TODO pending to add - '-Dmonalisa:BOOL=OFF', # not supported - '-Drfio:BOOL=OFF', # not supported - '-Droottest:BOOL=OFF', # requires network - '-Druby:BOOL=OFF', # unmantained upstream - # Use clang C++ modules, experimental - '-Druntime_cxxmodules:BOOL=OFF', - '-Dsapdb:BOOL=OFF', # option not implemented - '-Dsrp:BOOL=OFF', # option not implemented - '-Dtcmalloc:BOOL=OFF' - - ]) + + # ###################### Boolean Options ###################### + # For option list format see _process_opts(), below. + + # Options controlling gross build / config behavior. + control_opts\ + = [ + ['cxxmodules', False], + ['exceptions', True], + ['explicitlink', True], + ['fail-on-missing', True], + ['fortran'], + ['gminimal'], + ['gnuinstall', False], + ['libcxx', False], + ['pch', True], + ['roottest', False], + ['rpath'], + ['runtime_cxxmodules', False], + ['shared', True], + ['soversion', True], + ['testing', self.run_tests], + ['thread', 'threads'] + ] + + # Options related to ROOT's ability to download and build its own + # dependencies. Per Spack convention, this should generally be avoided. + builtin_opts\ + = [ + ['builtin_afterimage', True], + ['builtin_cfitsio', False], + ['builtin_davix', False], + ['builtin_fftw3', False], + ['builtin_freetype', False], + ['builtin_ftgl', False], + ['builtin_gl2ps', False], + ['builtin_glew', False], + ['builtin_gsl', False], + ['builtin_llvm', True], + ['builtin_lz4', self.spec.satisfies('@6.12.02:6.12.99')], + ['builtin_lzma', False], + ['builtin_openssl', False], + ['builtin_pcre', False], + ['builtin_tbb', False], + ['builtin_unuran', False], + ['builtin_vc', False], + ['builtin_vdt', False], + ['builtin_veccore', False], + ['builtin_xrootd', False], + ['builtin_xxhash', self.spec.satisfies('@6.12.02:6.12.99')], + ['builtin_zlib', False] + ] + + # Features + feature_opts\ + = [ + ['afdsmrgd', False], + ['afs', False], + ['alien', False], + ['arrow', False], + ['asimage', True], + ['astiff', True], + ['bonjour', False], + ['castor', False], + ['ccache', False], + ['chirp', False], + ['cling', True], + ['cocoa', 'aqua'], + ['davix'], + ['dcache', False], + ['fftw3', 'fftw'], + ['fitsio', 'fits'], + ['ftgl', 'opengl'], + ['gdml'], + ['genvector', 'math'], + ['geocad', False], + ['gfal', False], + ['gl2ps', 'opengl'], + ['glite', False], + ['globus', False], + ['gsl_shared', 'gsl'], + ['gviz', 'graphviz'], + ['hdfs', False], + ['http'], # See conflicts + ['imt', 'tbb'], + ['jemalloc'], + ['krb5', False], + ['ldap', False], + ['mathmore', 'math'], + ['memstat'], # See conflicts + ['minimal'], + ['minuit'], + ['minuit2', 'minuit'], + ['monalisa', False], + ['mysql'], + ['odbc'], + ['opengl'], + ['oracle', False], + ['pgsql', 'postgres'], + ['pythia6'], + ['pythia8', False], + ['python', self.spec.satisfies('+python ^python@2.7:2.99.99')], + ['python3', self.spec.satisfies('+python ^python@3.0:')], + ['qt', 'qt4'], # See conflicts + ['qtgsi', 'qt4'], # See conflicts + ['r', 'R'], + ['rfio', False], + ['roofit'], + ['root7'], # See conflicts + ['ruby', False], + ['sapdb', False], + ['shadowpw', 'shadow'], + ['sqlite'], + ['srp', False], + ['ssl'], + ['table'], + ['tbb'], + ['tcmalloc', False], + ['tmva'], + ['unuran'], + ['vc'], + ['vdt'], + ['veccore'], + ['vmc'], + ['webui', 'root7'], # requires root7 + ['x11', 'x'], + ['xft', 'x'], + ['xml'], + ['xrootd'] + ] + + options = self._process_opts(control_opts, builtin_opts, feature_opts) # #################### Compiler options #################### @@ -488,9 +395,11 @@ class Root(CMakePackage): '-DCMAKE_CXX_FLAGS=-D__builtin_unreachable=__builtin_trap', ]) - options.append( - '-Dcxx{0}=ON'.format(self.spec.variants['cxxstd'].value) - ) + # Method for selecting C++ standard depends on ROOT version + options.append(('-DCMAKE_CXX_STANDARD={0}' if + self.spec.satisfies('@6.18.00:') else + '-Dcxx{0}:BOOL=ON').format + (self.spec.variants['cxxstd'].value)) if 'mysql-client' in self.spec: options.append('-DCMAKE_PROGRAM_PATH={0}'.format( @@ -505,25 +414,51 @@ class Root(CMakePackage): if '+python' in self.spec: options.append('-DPYTHON_EXECUTABLE=%s' % spec['python'].command.path) + return options - def setup_environment(self, spack_env, run_env): - run_env.set('ROOTSYS', self.prefix) - run_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) - run_env.prepend_path('PYTHONPATH', self.prefix.lib) + def setup_build_environment(self, env): if 'lz4' in self.spec: - spack_env.append_path('CMAKE_PREFIX_PATH', - self.spec['lz4'].prefix) - spack_env.set('SPACK_INCLUDE_DIRS', '', force=True) - - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('ROOTSYS', self.prefix) - spack_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) - spack_env.prepend_path('PYTHONPATH', self.prefix.lib) - spack_env.prepend_path('PATH', self.prefix.bin) - spack_env.append_path('CMAKE_MODULE_PATH', '{0}/cmake' - .format(self.prefix)) - run_env.set('ROOTSYS', self.prefix) - run_env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) - run_env.prepend_path('PYTHONPATH', self.prefix.lib) - run_env.prepend_path('PATH', self.prefix.bin) + env.append_path('CMAKE_PREFIX_PATH', + self.spec['lz4'].prefix) + env.set('SPACK_INCLUDE_DIRS', '', force=True) + + def setup_run_environment(self, env): + env.set('ROOTSYS', self.prefix) + env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) + env.prepend_path('PYTHONPATH', self.prefix.lib) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('ROOTSYS', self.prefix) + env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) + env.prepend_path('PYTHONPATH', self.prefix.lib) + env.prepend_path('PATH', self.prefix.bin) + env.append_path('CMAKE_MODULE_PATH', '{0}/cmake' + .format(self.prefix)) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.set('ROOTSYS', self.prefix) + env.set('ROOT_VERSION', 'v{0}'.format(self.version.up_to(1))) + env.prepend_path('PYTHONPATH', self.prefix.lib) + env.prepend_path('PATH', self.prefix.bin) + + def _process_opts(self, *opt_lists): + """Process all provided boolean option lists into CMake arguments. + + Args: + opt_list (list): list of elements, each of which is a list: + <cmake-option>[, <bool-or-controlling-variant-name>] + The optional element in each sub-list defaults to + <cmake-option> if ommited. + """ + + def _process_opt(opt_name, cond_or_variant=None): + val = cond_or_variant if \ + isinstance(cond_or_variant, bool) else \ + ('+{variant}'.format(variant=cond_or_variant or opt_name) + in self.spec) + return '-D{opt}:BOOL={val}'.format(opt=opt_name, val='ON' if + val else 'OFF') + + return [_process_opt(*opt_info) for opt_list in opt_lists for + opt_info in opt_list] diff --git a/var/spack/repos/builtin/packages/rose/package.py b/var/spack/repos/builtin/packages/rose/package.py index 23b497a2e7..9a772cb7b0 100644 --- a/var/spack/repos/builtin/packages/rose/package.py +++ b/var/spack/repos/builtin/packages/rose/package.py @@ -3,10 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -# ----------------------------------------------------------------------------- -# Author: Justin Too -# ----------------------------------------------------------------------------- - from spack import * @@ -16,18 +12,49 @@ class Rose(AutotoolsPackage): (Developed at Lawrence Livermore National Lab)""" homepage = "http://rosecompiler.org/" - # url = "https://github.com/rose-compiler/rose-develop/archive/v0.9.7.0.tar.gz" - url = "https://github.com/rose-compiler/rose-develop/archive/v0.9.9.104.zip" - git = "https://github.com/rose-compiler/rose-develop.git" + url = "https://github.com/rose-compiler/rose/archive/v0.9.13.0.zip" + git = "https://github.com/rose-compiler/rose.git" + + maintainers = ['pinnown'] # -------------------------------------------------------------------------- # ROSE Versions # -------------------------------------------------------------------------- - version("0.9.10.0", sha256="7b53b6913fd6ca0c5050b630dae380f3e6b0897cde6148172ba01095f71cbaca") - # git versions - version("0.9.9.52", commit="bd4fc0cc332ce62d9fa54db19879507d9e4f239b") - version("develop", branch="master") + version("0.9.13.0", sha256="64092793dfd38d476152696721e29a410bb31dc3eeb6064c7520087aa8c904a6") + + # Version for edg binary is found in src/frontend/CxxFrontend/EDG_VERSION + # EDG_VERSION may be different from ROSE_VERSION + resource(name="roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-4.9-5.0.9.12.52.tar.gz", + expand=False, + placement="rose-build/src/frontend/CxxFrontend/", + when="@0.9.13.0 %gcc@4.9.0:4.9.99", + url="http://edg-binaries.rosecompiler.org/roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-4.9-5.0.9.12.52.tar.gz", + sha256="fb4b50606bdc681b864bbece46d344d7775780ffe7883aa96305d732c9c04a1c") + + resource(name="roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-5-5.0.9.12.52.tar.gz", + expand=False, + placement="rose-build/src/frontend/CxxFrontend/", + when="@0.9.13.0 %gcc@5.0:5.99", + url="http://edg-binaries.rosecompiler.org/roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-5-5.0.9.12.52.tar.gz", + sha256="584f8f721274f0f2d5c9a0c7701c045af99580ea7cd1d50999e20c2a897298fb") + + resource(name="roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-6-5.0.9.12.52.tar.gz", + expand=False, + placement="rose-build/src/frontend/CxxFrontend/", + when="@0.9.13.0 %gcc@6.0:6.99", + url="http://edg-binaries.rosecompiler.org/roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-6-5.0.9.12.52.tar.gz", + sha256="561cd5a944d0dd01689aa0bea8eccf30fc994cd20c4c05da7943c6f36cec25b5") + + resource(name="roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-7-5.0.9.12.52.tar.gz", + expand=False, + placement="rose-build/src/frontend/CxxFrontend/", + when="@0.9.13.0 %gcc@7.0:7.99", + url="http://edg-binaries.rosecompiler.org/roseBinaryEDG-5-0-x86_64-pc-linux-gnu-gnu-7-5.0.9.12.52.tar.gz", + sha256="800a178804e8b5e936942b4eb036cc61e5d5ad43551cb4fd901ec42ba7e7a176") + + # git versions depends on internet connection at build time + version("develop", branch="develop") # -------------------------------------------------------------------------- # Dependencies @@ -35,15 +62,10 @@ class Rose(AutotoolsPackage): depends_on("autoconf@2.69:", type="build") depends_on("automake@1.14:", type="build") depends_on("libtool@2.4:", type="build") - depends_on("boost@1.56.0:", when="~cxx11") # C++11 compatible boost and gcc versions required for +cxx11 variant: - # https://github.com/spack/spack/wiki/Telcon%3A-2015-05-14 - depends_on("boost@1.60.0: cxxstd=11", when="+cxx11") - - # TODO: Doesn't seem to be a way to require a specific compiler: https://github.com/spack/spack/issues/896 - # https://www.gnu.org/software/gcc/projects/cxx-status.html#cxx11 - # depends_on("%gcc@4.8.1:", when="^boost@1.60.0: cxxstd=11") + depends_on("boost@1.60.0:1.64.0,1.65.1,1.66.0:1.67.0 cxxstd=11", when="+cxx11") + depends_on("boost@1.60.0:1.64.0,1.65.1,1.66.0:1.67.0", when="~cxx11") # -------------------------------------------------------------------------- # Variants @@ -54,6 +76,8 @@ class Rose(AutotoolsPackage): variant("tests", default=False, description="Build the tests directory") variant("tutorial", default=False, description="Build the tutorial directory") + variant("tools", default=False, description="Build a selection of ROSE based tools") + variant( "mvapich2_backend", default=False, @@ -69,12 +93,10 @@ class Rose(AutotoolsPackage): variant("cxx", default=True, description="Enable c++ language support") # Use spack install cxxflags=-std=c++11 - variant("cxx11", default=False, description="Enable c++11 language support") + variant("cxx11", default=True, description="Enable c++11 language support") variant("fortran", default=False, description="Enable fortran language support") - - variant("java", default=False, description="Enable java language support") - depends_on("jdk", when="+java") + depends_on("java@8", when="+fortran") variant("z3", default=False, description="Enable z3 theorem prover") depends_on("z3", when="+z3") @@ -99,34 +121,7 @@ class Rose(AutotoolsPackage): build_directory = "rose-build" - def patch(self): - spec = self.spec - - # ROSE needs its to compute its EDG - # binary compatibility signature for C/C++ and for its - # --version information. - # - # git rev-parse HEAD - # git log -1 --format="%at" - # - with open("VERSION", "w") as f: - if "@0.9.9.104:" in spec: - # EDG: 27acd506c6b0e4b1c5f7573c642e3e407237eddd - f.write("66c87e9395126a7ab8663d81f0e0b99d6e09131e 1504924600") - elif "@0.9.9.0:" in spec: - # EDG: 46306e9f73d3ccd690be300aefdaf766a9ba3f70 - f.write("14d3ebdd7f83cbcc295e6ed45b45d2e9ed32b5ff 1492716108") - elif "@0.9.7.0:" in spec: - # EDG: 8e63f421f9107ef6c7882b57f9c83e3878623ffa - f.write("992c21ad06893bc1e9e7688afe0562eee0fda021 1460595442") - elif "@0.9.10.0:" in spec: - # EDG: f4624773cb93dfcc67a00efb5e9e8affeb57fb73 - f.write("277fea7e1e5305e5b3c86b550a0c1354e8285b96 1523991417") - else: - raise InstallError("Unknown ROSE version!") - def autoreconf(self, spec, prefix): - # if not spec.satisfies('@develop'): with working_dir(self.stage.source_path): bash = which("bash") bash("build") @@ -146,7 +141,6 @@ class Rose(AutotoolsPackage): "binaries" if "+binanalysis" in spec else "", "c" if "+c" in spec else "", "c++" if "+cxx" in spec else "", - "java" if "+java" in spec else "", "fortran" if "+fortran" in spec else "", ] return list(filter(None, langs)) @@ -161,14 +155,8 @@ class Rose(AutotoolsPackage): cc = spack_cc cxx = spack_cxx - if spec.satisfies("@0.9.8:"): - edg = "4.12" - else: - edg = "4.9" - args = [ "--disable-boost-version-check", - "--enable-edg_version={0}".format(edg), "--with-alternate_backend_C_compiler={0}".format(cc), "--with-alternate_backend_Cxx_compiler={0}".format(cxx), "--with-boost={0}".format(spec["boost"].prefix), @@ -190,7 +178,7 @@ class Rose(AutotoolsPackage): else: args.append("--disable-tutorial-directory") - if "+java" in spec: + if "+fortran" in spec: args.append("--with-java={0}".format(spec["java"].prefix)) else: args.append("--without-java") @@ -212,9 +200,9 @@ class Rose(AutotoolsPackage): return args - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if "+codethorn" in self.spec: - spack_env.set("CXXFLAGS", "-std=c++11") + env.set("CXXFLAGS", "-std=c++11") def build(self, spec, prefix): # Spack will automatically pass ncpus as the number of make jobs. @@ -224,45 +212,23 @@ class Rose(AutotoolsPackage): # $ srun -n1 spack install rose # with working_dir(self.build_directory): - # ROSE needs the EDG version for C/C++ - with open("src/frontend/CxxFrontend/EDG-submodule-sha1", "w") as f: - if "@0.9.9.104" in spec: - f.write("27acd506c6b0e4b1c5f7573c642e3e407237eddd") - elif "@0.9.9.52" in spec: - f.write("56a826126289414db5436e6c49879b99d046d26d") - elif "@0.9.9.0" in spec: - f.write("46306e9f73d3ccd690be300aefdaf766a9ba3f70") - elif "@0.9.7.0" in spec: - f.write("8e63f421f9107ef6c7882b57f9c83e3878623ffa") - elif "@0.9.10.0" in spec: - f.write("f4624773cb93dfcc67a00efb5e9e8affeb57fb73") - else: - raise InstallError("Unknown ROSE version for EDG!") # Compile librose - with working_dir("src"): - make() - - # Install librose - with working_dir("src"): - make("install") + make("core") - # Install "official" ROSE-based tools - make("install-core") - - with working_dir("tools"): - make("install") + if "+tools" in spec: + make("tools") # ----------------------------------------------------------------- # ROSE-based Projects # ----------------------------------------------------------------- if "+codethorn" in spec: with working_dir("projects/CodeThorn"): - make("install") + make() if "+autopar" in spec: with working_dir("projects/autoParallelization"): - make("install") + make() if "+polyopt" in spec: mkdir = which("mkdir") @@ -278,3 +244,23 @@ class Rose(AutotoolsPackage): "projects/PolyOpt2/install.sh" ) ) + + def install(self, spec, prefix): + with working_dir(self.build_directory): + + # Compile and Install librose + make("install-core") + + if "+tools" in spec: + make("install-tools") + + # ----------------------------------------------------------------- + # ROSE-based Projects + # ----------------------------------------------------------------- + if "+codethorn" in spec: + with working_dir("projects/CodeThorn"): + make("install") + + if "+autopar" in spec: + with working_dir("projects/autoParallelization"): + make("install") diff --git a/var/spack/repos/builtin/packages/rt-tests/package.py b/var/spack/repos/builtin/packages/rt-tests/package.py new file mode 100644 index 0000000000..6fa7c273b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/rt-tests/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class RtTests(Package): + """ + Suite of real-time tests - cyclictest, hwlatdetect, pip_stress, + pi_stress, pmqtest, ptsematest, rt-migrate-test, sendme, signaltest, + sigwaittest, svsematest. + """ + + homepage = "https://git.kernel.org" + url = "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/snapshot/rt-tests-1.2.tar.gz" + + version('1.2', sha256='7ccde036059c87681a4b00e7138678d9551b1232113441f6edda31ea45452426') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/ruby/package.py b/var/spack/repos/builtin/packages/ruby/package.py index 2fbbc0c537..7f1fc022f0 100644 --- a/var/spack/repos/builtin/packages/ruby/package.py +++ b/var/spack/repos/builtin/packages/ruby/package.py @@ -63,7 +63,7 @@ class Ruby(AutotoolsPackage): args.append('--with-tk=%s' % self.spec['tk'].prefix) return args - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): # TODO: do this only for actual extensions. # Set GEM_PATH to include dependent gem directories ruby_paths = [] @@ -71,10 +71,10 @@ class Ruby(AutotoolsPackage): if d.package.extends(self.spec): ruby_paths.append(d.prefix) - spack_env.set_path('GEM_PATH', ruby_paths) + env.set_path('GEM_PATH', ruby_paths) # The actual installation path for this gem - spack_env.set('GEM_HOME', dependent_spec.prefix) + env.set('GEM_HOME', dependent_spec.prefix) def setup_dependent_package(self, module, dependent_spec): """Called before ruby modules' install() methods. Sets GEM_HOME diff --git a/var/spack/repos/builtin/packages/saga-gis/package.py b/var/spack/repos/builtin/packages/saga-gis/package.py index 04ba7f6b92..0661569ce0 100644 --- a/var/spack/repos/builtin/packages/saga-gis/package.py +++ b/var/spack/repos/builtin/packages/saga-gis/package.py @@ -17,6 +17,7 @@ class SagaGis(AutotoolsPackage): git = "git://git.code.sf.net/p/saga-gis/code" version('develop', branch='master') + version('7.4.0', branch='release-7.4.0') version('7.3.0', branch='release-7.3.0') version('7.1.1', branch='release-7.1.1') version('7.1.0', branch='release-7.1.0') @@ -38,31 +39,52 @@ class SagaGis(AutotoolsPackage): variant('gui', default=True, description='Build GUI and interactive SAGA tools') variant('odbc', default=True, description='Build with ODBC support') + # FIXME Saga-gis configure file disables triangle even if # --enable-triangle flag is used # variant('triangle', default=True, description='Build with triangle.c + # non free for commercial use otherwise use qhull') - variant('libfire', default=True, description='Build with libfire (non free for commercial usage)') - variant('openmp', default=True, description='Build with OpenMP enabled') - variant('python', default=False, description='Build Python extension') + variant('libfire', default=True, description='Build with libfire (non free for commercial usage)') + variant('openmp', default=True, description='Build with OpenMP enabled') + variant('python', default=False, description='Build Python extension') + + variant('postgresql', default=False, description='Build with PostgreSQL library') + variant('opencv', default=False, description='Build with libraries using OpenCV') depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('m4', type='build') - # FIXME unnecessary dependency on python3 because of implicit python3 - # dependency through meson by a dependency of wx/gtkplus - depends_on('python@3:') - + depends_on('libharu') depends_on('wxwidgets') - depends_on('gdal') - depends_on('proj@:5') - + depends_on('postgresql', when='+postgresql') depends_on('unixodbc', when='+odbc') + + # SAGA-GIS requires projects.h from proj + depends_on('proj') + # https://sourceforge.net/p/saga-gis/bugs/271/ + depends_on('proj@:5', when='@:7.2.999') + + # Saga-Gis depends on legacy opencv API removed in opencv 4.x + depends_on('opencv@:3', when='+opencv') + # Set jpeg provider (similar to #8133) + depends_on('libjpeg', when='+opencv') + # Set hl variant due to similar issue #7145 + depends_on('hdf5+hl') + + # write support for grib2 is available since 2.3.0 (https://gdal.org/drivers/raster/grib.html) + depends_on('gdal@2.3:+grib+hdf5+netcdf') + + depends_on('gdal@2.3:2.4+grib+hdf5+netcdf', when='@:7.2.999') + depends_on('libgeotiff@:1.4', when='@:7.2.999') + # FIXME Saga-Gis uses a wrong include path # depends_on('qhull', when='~triangle') + depends_on('swig', type='build', when='+python') + extends('python', when='+python') configure_directory = "saga-gis" @@ -79,5 +101,11 @@ class SagaGis(AutotoolsPackage): args += self.enable_or_disable('libfire') args += self.enable_or_disable('openmp') args += self.enable_or_disable('python') + args += self.with_or_without('postgresql') return args + + def setup_run_environment(self, env): + # Point saga to its tool set, will be loaded during runtime + env.set("SAGA_MLB", self.prefix.lib.saga) + env.set("SAGA_TLB", self.prefix.lib.saga) diff --git a/var/spack/repos/builtin/packages/samrai/package.py b/var/spack/repos/builtin/packages/samrai/package.py index 9843f2a0e4..3dd3777b64 100644 --- a/var/spack/repos/builtin/packages/samrai/package.py +++ b/var/spack/repos/builtin/packages/samrai/package.py @@ -95,6 +95,6 @@ class Samrai(AutotoolsPackage): return options - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): if self.spec.satisfies('@3.12:'): - spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) + env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) diff --git a/var/spack/repos/builtin/packages/scalpel/package.py b/var/spack/repos/builtin/packages/scalpel/package.py index db1861e5aa..d855dc3d11 100644 --- a/var/spack/repos/builtin/packages/scalpel/package.py +++ b/var/spack/repos/builtin/packages/scalpel/package.py @@ -13,8 +13,9 @@ class Scalpel(MakefilePackage): """ homepage = "http://scalpel.sourceforge.net/index.html" - url = "https://downloads.sourceforge.net/project/scalpel/scalpel-0.5.3.tar.gz" + url = "https://downloads.sourceforge.net/project/scalpel/scalpel-0.5.4.tar.gz" + version('0.5.4', sha256='506f731b3886def158c15fd8b74fa98390f304a507d2040972e6b09ddefac8f0') version('0.5.3', sha256='d45b569fe3aa5934883bc7216c243d53168351c23e020d96a46fa77a1563b65e') depends_on('perl@5.10.0:') diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py index 935de81075..8e1b18d474 100644 --- a/var/spack/repos/builtin/packages/scotch/package.py +++ b/var/spack/repos/builtin/packages/scotch/package.py @@ -14,6 +14,7 @@ class Scotch(Package): 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" + version('6.0.8', sha256='0ba3f145026174304f910c8770a3cbb034f213c91d939573751cfbb4fd46d45e') version('6.0.6', sha256='686f0cad88d033fe71c8b781735ff742b73a1d82a65b8b1586526d69729ac4cf') version('6.0.5a', sha256='5b21b95e33acd5409d682fa7253cefbdffa8db82875549476c006d8cbe7c556f') version('6.0.4', sha256='f53f4d71a8345ba15e2dd4e102a35fd83915abf50ea73e1bf6efe1bc2b4220c7') diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py index 100f5479ac..05e6317933 100644 --- a/var/spack/repos/builtin/packages/screen/package.py +++ b/var/spack/repos/builtin/packages/screen/package.py @@ -6,13 +6,13 @@ from spack import * -class Screen(AutotoolsPackage): +class Screen(AutotoolsPackage, GNUMirrorPackage): """Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. """ homepage = "https://www.gnu.org/software/screen/" - url = "https://ftpmirror.gnu.org/screen/screen-4.3.1.tar.gz" + gnu_mirror_path = "screen/screen-4.3.1.tar.gz" version('4.6.2', sha256='1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a') version('4.3.1', sha256='fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63') diff --git a/var/spack/repos/builtin/packages/scs/make_gpu.patch b/var/spack/repos/builtin/packages/scs/make_gpu.patch new file mode 100644 index 0000000000..3e38d832cc --- /dev/null +++ b/var/spack/repos/builtin/packages/scs/make_gpu.patch @@ -0,0 +1,14 @@ +diff --git a/Makefile.orig b/Makefile +index b4f2bc9..8a28fc4 100644 +--- a/Makefile.orig ++++ b/Makefile +@@ -129,7 +129,8 @@ install: $(INSTALL_INC_FILES) $(INSTALL_TARGETS) + $(INSTALL) -d $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR) + $(INSTALL) -m 644 $(INSTALL_INC_FILES) $(INSTALL_INC_DIR) + $(INSTALL) -m 644 $(INSTALL_TARGETS) $(INSTALL_LIB_DIR) +-install_gpu: $(INSTALL_INC_FILES) $(INSTALL_GPU_TARGETS) ++install_gpu: $(INSTALL_INC_FILES) $(INSTALL_GPU_TARGETS) $(INSTALL_TARGETS) + $(INSTALL) -d $(INSTALL_INC_DIR) $(INSTALL_LIB_DIR) + $(INSTALL) -m 644 $(INSTALL_INC_FILES) $(INSTALL_INC_DIR) + $(INSTALL) -m 644 $(INSTALL_GPU_TARGETS) $(INSTALL_LIB_DIR) ++ $(INSTALL) -m 644 $(INSTALL_TARGETS) $(INSTALL_LIB_DIR) diff --git a/var/spack/repos/builtin/packages/scs/package.py b/var/spack/repos/builtin/packages/scs/package.py new file mode 100644 index 0000000000..db086a99d1 --- /dev/null +++ b/var/spack/repos/builtin/packages/scs/package.py @@ -0,0 +1,41 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Scs(MakefilePackage): + """A C package that solves convex cone problems via operator splitting""" + + homepage = "https://github.com/cvxgrp/scs" + url = "https://github.com/cvxgrp/scs/archive/2.1.1.tar.gz" + + version('2.1.1', sha256='0e20b91e8caf744b84aa985ba4e98cc7235ee33612b2bad2bf31ea5ad4e07d93') + + variant('cuda', default=False, description='Build with Cuda support') + + depends_on('blas') + depends_on('lapack') + depends_on('cuda', when='+cuda') + + # make sure install_gpu target installs all libs not only the gpu ones + patch('make_gpu.patch') + + def edit(self, spec, prefix): + filter_file(r'-lblas', spec['blas'].libs.ld_flags, 'scs.mk') + filter_file(r'-llapack', spec['lapack'].libs.ld_flags, 'scs.mk') + + def build(self, spec, prefix): + if '+cuda' in spec: + make('default', 'gpu') + else: + make() + + def install(self, spec, prefix): + if '+cuda' in spec: + make('PREFIX=' + prefix, 'install_gpu') + else: + make('PREFIX=' + prefix, 'install') diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index f02cb9b09e..209b9d7134 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -26,6 +26,8 @@ class Seacas(CMakePackage): # ###################### Versions ########################## version('master', branch='master') + version('2019-12-18', sha256='f82cfa276ebc5fe6054852383da16eba7a51c81e6640c73b5f01fc3109487c6f') + version('2019-10-14', sha256='ca4cf585cdbc15c25f302140fe1f61ee1a30d72921e032b9a854492b6c61fb91') version('2019-08-20', sha256='a82c1910c2b37427616dc3716ca0b3c1c77410db6723aefb5bea9f47429666e5') version('2019-07-26', sha256='651dac832b0cfee0f63527f563415c8a65b8e4d79242735c1e2aec606f6b2e17') @@ -71,8 +73,8 @@ class Seacas(CMakePackage): # Everything should be compiled position independent (-fpic) - depends_on('netcdf@4.6.2:+mpi+parallel-netcdf', when='+mpi') - depends_on('netcdf@4.6.2:~mpi', when='~mpi') + depends_on('netcdf-c@4.6.2:+mpi+parallel-netcdf', when='+mpi') + depends_on('netcdf-c@4.6.2:~mpi', when='~mpi') depends_on('cgns@develop+mpi+scoping', when='+cgns +mpi') depends_on('cgns@develop~mpi+scoping', when='+cgns ~mpi') depends_on('adios2@develop~mpi', when='+adios2 ~mpi') @@ -198,10 +200,10 @@ class Seacas(CMakePackage): ]) # ##################### Dependencies ########################## - # Always need NetCDF + # Always need NetCDF-C options.extend([ '-DTPL_ENABLE_Netcdf:BOOL=ON', - '-DNetCDF_ROOT:PATH=%s' % spec['netcdf'].prefix, + '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, ]) if '+metis' in spec: diff --git a/var/spack/repos/builtin/packages/sed/package.py b/var/spack/repos/builtin/packages/sed/package.py index b9af55888f..1c72833fb0 100644 --- a/var/spack/repos/builtin/packages/sed/package.py +++ b/var/spack/repos/builtin/packages/sed/package.py @@ -6,9 +6,9 @@ from spack import * -class Sed(AutotoolsPackage): +class Sed(AutotoolsPackage, GNUMirrorPackage): """GNU implementation of the famous stream editor.""" homepage = "http://www.gnu.org/software/sed/" - url = "https://ftpmirror.gnu.org/sed/sed-4.2.2.tar.bz2" + gnu_mirror_path = "sed/sed-4.2.2.tar.bz2" version('4.2.2', sha256='f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7') diff --git a/var/spack/repos/builtin/packages/sensei/package.py b/var/spack/repos/builtin/packages/sensei/package.py new file mode 100644 index 0000000000..87fbacf530 --- /dev/null +++ b/var/spack/repos/builtin/packages/sensei/package.py @@ -0,0 +1,134 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Sensei(CMakePackage): + """SENSEI is a platform for scalable in-situ analysis and visualization. + Its design motto is 'Write once, run everywhere', this means that once + the application is instrumented with SENSEI it can use existing and + future analysis backends. Existing backends include: Paraview/Catalyst, + 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') + + variant('sencore', default=True, description='Enables the SENSEI core library') + variant('catalyst', default=True, 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('hdf5', default=False, description='Enables HDF5 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.') + + # 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("vtk", when="~libsim ~catalyst") + depends_on("adios", when="+adios") + depends_on("hdf5", 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')) + 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') + + # Can have either LibSim or Catalyst, but not both + conflicts('+libsim', when='+catalyst') + # hdf5 variant is available only for SENSEI 3 + conflicts('+hdf5', when='@:2.1.1') + + def cmake_args(self): + spec = self.spec + + # -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') + ] + + 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') + + 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: + 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') + ]) + + return args diff --git a/var/spack/repos/builtin/packages/sentieon-genomics/package.py b/var/spack/repos/builtin/packages/sentieon-genomics/package.py index e53b191198..39386f257a 100644 --- a/var/spack/repos/builtin/packages/sentieon-genomics/package.py +++ b/var/spack/repos/builtin/packages/sentieon-genomics/package.py @@ -24,6 +24,7 @@ class SentieonGenomics(Package): homepage = "https://www.sentieon.com/" url = "file://{0}/sentieon-genomics-201808.01.tar.gz".format(os.getcwd()) + version('201808.07', sha256='fb66b18a7b99e44968eb2c3a6a5b761d6b1e70fba9f7dfc4e5db3a74ab3d3dd9') version('201808.01', sha256='6d77bcd5a35539549b28eccae07b19a3b353d027720536e68f46dcf4b980d5f7') # Licensing. diff --git a/var/spack/repos/builtin/packages/sfcgal/package.py b/var/spack/repos/builtin/packages/sfcgal/package.py new file mode 100644 index 0000000000..1b8ca14c54 --- /dev/null +++ b/var/spack/repos/builtin/packages/sfcgal/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Sfcgal(CMakePackage): + """ + SFCGAL is a C++ wrapper library around CGAL with the aim of supporting + ISO 19107:2013 and OGC Simple Features Access 1.2 for 3D operations. SFCGAL + provides standard compliant geometry types and operations, that can be + accessed from its C or C++ APIs. + """ + + homepage = "http://www.sfcgal.org/" + url = "https://github.com/Oslandia/SFCGAL/archive/v1.3.7.tar.gz" + + version('1.3.7', sha256='30ea1af26cb2f572c628aae08dd1953d80a69d15e1cac225390904d91fce031b') + + # Ref: http://oslandia.github.io/SFCGAL/installation.html + depends_on('cgal@4.3 +core') + depends_on('boost@1.54.0:1.69.0') + depends_on('mpfr@2.2.1:') + depends_on('gmp@4.2:') + + def cmake_args(self): + # It seems viewer is discontinued as of v1.3.0 + # https://github.com/Oslandia/SFCGAL/releases/tag/v1.3.0 + # Also, see https://github.com/Oslandia/SFCGAL-viewer + return ['-DSFCGAL_BUILD_VIEWER=OFF'] 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 c6cabe1d48..2cf967b7c3 100644 --- a/var/spack/repos/builtin/packages/shared-mime-info/package.py +++ b/var/spack/repos/builtin/packages/shared-mime-info/package.py @@ -24,8 +24,8 @@ class SharedMimeInfo(AutotoolsPackage): depends_on('gettext', type='build') depends_on('pkgconfig', type='build') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) - run_env.prepend_path("XDG_DATA_DIRS", - self.prefix.share) + 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) diff --git a/var/spack/repos/builtin/packages/shiny-server/package.py b/var/spack/repos/builtin/packages/shiny-server/package.py index d26ece50b1..77f70c551c 100644 --- a/var/spack/repos/builtin/packages/shiny-server/package.py +++ b/var/spack/repos/builtin/packages/shiny-server/package.py @@ -47,10 +47,8 @@ class ShinyServer(CMakePackage): bash('-c', 'bin/npm --python="$PYTHON" install') bash('-c', 'bin/node ./ext/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js --python="$PYTHON" rebuild') # noqa: E501 - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', - join_path(self.prefix, 'shiny-server', 'bin')) + def setup_run_environment(self, env): + env.prepend_path('PATH', join_path(self.prefix, 'shiny-server', 'bin')) # shiny comes with its own pandoc; hook it up... - run_env.prepend_path('PATH', - join_path(self.prefix, 'shiny-server', - 'ext', 'pandoc', 'static')) + env.prepend_path('PATH', join_path( + self.prefix, 'shiny-server', 'ext', 'pandoc', 'static')) diff --git a/var/spack/repos/builtin/packages/shortbred/package.py b/var/spack/repos/builtin/packages/shortbred/package.py index d94bf8c36c..94fb9ecec2 100644 --- a/var/spack/repos/builtin/packages/shortbred/package.py +++ b/var/spack/repos/builtin/packages/shortbred/package.py @@ -28,5 +28,5 @@ class Shortbred(Package): install('shortbred_quantify.py', prefix.bin) install_tree('src', prefix.src) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PYTHONPATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/shuffile/package.py b/var/spack/repos/builtin/packages/shuffile/package.py index 13ba8b96b4..bfd6defb23 100644 --- a/var/spack/repos/builtin/packages/shuffile/package.py +++ b/var/spack/repos/builtin/packages/shuffile/package.py @@ -10,7 +10,7 @@ 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.2.zip" + url = "https://github.com/ECP-VeloC/shuffile/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/shuffile.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/siesta/package.py b/var/spack/repos/builtin/packages/siesta/package.py index 70d52a2607..1733585274 100644 --- a/var/spack/repos/builtin/packages/siesta/package.py +++ b/var/spack/repos/builtin/packages/siesta/package.py @@ -23,7 +23,7 @@ class Siesta(Package): depends_on('blas') depends_on('lapack') depends_on('scalapack') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') phases = ['configure', 'build', 'install'] @@ -40,7 +40,7 @@ class Siesta(Package): spec['blas'].libs), '--with-scalapack=%s' % spec['scalapack'].libs, '--with-netcdf=%s' % (spec['netcdf-fortran'].libs + - spec['netcdf'].libs), + spec['netcdf-c'].libs), # need to specify MPIFC explicitly below, otherwise # Intel's mpiifort is not found 'MPIFC=%s' % spec['mpi'].mpifc diff --git a/var/spack/repos/builtin/packages/signalp/package.py b/var/spack/repos/builtin/packages/signalp/package.py index fbaaff574e..02837d22ea 100644 --- a/var/spack/repos/builtin/packages/signalp/package.py +++ b/var/spack/repos/builtin/packages/signalp/package.py @@ -39,5 +39,5 @@ class Signalp(Package): install_tree('lib', prefix.lib) install_tree('syn', prefix.syn) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/signify/package.py b/var/spack/repos/builtin/packages/signify/package.py index 4c44ec8391..33dc554f9b 100644 --- a/var/spack/repos/builtin/packages/signify/package.py +++ b/var/spack/repos/builtin/packages/signify/package.py @@ -16,5 +16,5 @@ class Signify(MakefilePackage): depends_on('libbsd@0.8:') - def setup_environment(self, spack_env, run_env): - spack_env.set('PREFIX', self.prefix) + def setup_build_environment(self, env): + env.set('PREFIX', self.prefix) diff --git a/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py b/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py new file mode 100644 index 0000000000..c37454b33b --- /dev/null +++ b/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py @@ -0,0 +1,242 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * +import os + + +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'], + }, + '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'], + }, + '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 + + +def simmetrix_makecomponenturl(name): + """only supporting the linux libraries""" + prefix = "file://{0}/".format(os.getcwd()) + suffix = "-" + "linux64.tgz" + return prefix + name + suffix + + +def simmetrix_makedocurl(name): + """doc zip files are not os/arch specific""" + prefix = "file://{0}/".format(os.getcwd()) + suffix = '.zip' + return prefix + name + suffix + + +def simmetrix_setkernelcmakeprefixpath(spec, path, env): + if '+acis' in spec: + env.append_path('CMAKE_PREFIX_PATH', join_path(path, 'acisKrnl')) + env.append_path('LD_LIBRARY_PATH', join_path(path, 'acisKrnl')) + if '+parasolid' in spec: + env.append_path('CMAKE_PREFIX_PATH', join_path(path, 'psKrnl')) + env.append_path('LD_LIBRARY_PATH', join_path(path, 'psKrnl')) + + +def simmetrix_resource(name, url, sha256, condition): + # The tarballs/zips each have the same directory structure. Because of + # this, and the bug in spack described here: + # https://github.com/spack/spack/pull/3553#issuecomment-391424244 + # , they cannot be expanded into the source root directory. + # Once this is fixed the 'destination=name' argument can be removed. + resource( + name=name, + url=url, + sha256=sha256, + destination=name, + when=condition + ) + + +class SimmetrixSimmodsuite(Package): + """Simmetrix' Simulation Modeling Suite is a set of component software + toolkits that allow developers to easily implement geometry-based + simulation applications. + Each component of the Simulation Modeling Suite is designed to address + specific capabilities: + | MeshSim - automatic mesh generation + | FieldSim - simulation data management + | GeomSim - direct, untranslated access to geometry from a wide variety + of sources + """ + + homepage = "http://www.simmetrix.com/products/SimulationModelingSuite/main.html" + + license_required = True + license_vars = ['SIM_LICENSE_FILE'] + + variant('base', default=True, description='enable the base components') + variant('advmodel', default=False, description='enable advaced modeling') + variant('abstract', default=False, description='enable abstract modeling') + variant('voxel', default=False, description='enable voxel modeling') + variant('discrete', default=False, description='enable discrete modeling') + variant('acis', default=False, description='enable acis modeling') + variant('parasolid', default=False, description='enable parasolid modeling') + variant('granite', default=False, description='enable granite modeling') + variant('import', default=False, description='enable import modeling') + variant('adv', default=False, description='enable advanced meshing') + variant('parallelmesh', default=False, description='enable parallel meshing') + variant('paralleladapt', default=False, description='enable parallel adaptation') + + depends_on('mpi') + + oslib = 'x64_rhel7_gcc48' + + releases = simmodsuite_releases() + for release in releases: + # define the version using the mscore tarball + sim_version = release['version'] + main_pkg_name = 'mscore' + url = simmetrix_makecomponenturl(main_pkg_name) + sha256 = release['components'][main_pkg_name][0] + version(sim_version, sha256=sha256, url=url) + # define resources for the other tarballs + for name, atts in release['components'].items(): + # skip the tarball used for the version(...) call + if name == 'mscore': + continue + sha256 = atts[0] + feature = atts[1] + url = simmetrix_makecomponenturl(name) + condition = "@{0}+{1}".format(sim_version, feature) + simmetrix_resource(name, url, sha256, condition) + # define resources for the document zip files + for name, atts in release['docs'].items(): + sha256 = atts[0] + feature = atts[1] + url = simmetrix_makedocurl(name) + condition = "@{0}+{1}".format(sim_version, feature) + simmetrix_resource(name, url, sha256, condition) + + def setup_dependent_build_environment(self, env, dependent_spec): + archlib = join_path(prefix.lib, self.oslib) + env.append_path('CMAKE_PREFIX_PATH', archlib) + simmetrix_setkernelcmakeprefixpath(self.spec, archlib, env) + + def setup_run_environment(self, env): + archlib = join_path(prefix.lib, self.oslib) + env.append_path('CMAKE_PREFIX_PATH', archlib) + simmetrix_setkernelcmakeprefixpath(self.spec, archlib, env) + + def install(self, spec, prefix): + if not spec.satisfies('platform=linux'): + raise InstallError('Only the linux platform is supported') + source_path = self.stage.source_path + for release in simmodsuite_releases(): + simversion = release['version'] + if simversion != spec.version.string: + continue + for name, atts in release['components'].items(): + feature = atts[1] + if '+' + feature in spec: + if name == 'mscore': + install_tree(join_path(source_path, 'lib'), prefix.lib) + install_tree( + join_path(source_path, 'include'), + prefix.include) + else: + path = join_path( + source_path, + name, + self.version.string) + install_tree(path, prefix) + for name, atts in release['docs'].items(): + feature = atts[1] + if '+' + feature in spec: + path = join_path( + source_path, + name, + self.version.string) + install_tree(path, prefix) + + workdir = prefix.code.PartitionWrapper + if '+parallelmesh' in spec: + with working_dir(workdir): + mpi_id = spec['mpi'].name + spec['mpi'].version.string + # build the wrapper lib + make("-f", "Makefile.custom", + "CC=%s" % spec['mpi'].mpicc, + "CXX=%s" % spec['mpi'].mpicxx, + "PARALLEL=%s" % mpi_id, + "PQUAL=-%s" % mpi_id, + "OPTFLAGS=-O2 -DNDEBUG " + self.compiler.pic_flag) + libname = 'libSimPartitionWrapper-' + mpi_id + '.a' + wrapperlibpath = join_path(workdir, 'lib', libname) + install(wrapperlibpath, join_path(prefix.lib, self.oslib)) diff --git a/var/spack/repos/builtin/packages/simulationio/package.py b/var/spack/repos/builtin/packages/simulationio/package.py index 51b43719d8..d209f702f7 100644 --- a/var/spack/repos/builtin/packages/simulationio/package.py +++ b/var/spack/repos/builtin/packages/simulationio/package.py @@ -11,7 +11,7 @@ class Simulationio(CMakePackage): """SimulationIO: Efficient and convenient I/O for large PDE simulations""" homepage = "https://github.com/eschnett/SimulationIO" - url = "https://github.com/eschnett/SimulationIO/archive/version/0.1.0.tar.gz" + url = "https://github.com/eschnett/SimulationIO/archive/version/9.0.1.tar.gz" git = "https://github.com/eschnett/SimulationIO.git" version('develop', branch='master') diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py index 43e40ac039..cdf8e499b0 100644 --- a/var/spack/repos/builtin/packages/singularity/package.py +++ b/var/spack/repos/builtin/packages/singularity/package.py @@ -87,10 +87,9 @@ class Singularity(MakefilePackage): build_targets = ['-C', 'builddir', 'parallel=False'] install_targets = ['install', '-C', 'builddir', 'parallel=False'] - def setup_environment(self, spack_env, run_env): - # Point GOPATH at the top of the staging dir for the build - # step. - spack_env.prepend_path('GOPATH', self.gopath) + 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 diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index 900077c9ac..4ba3170dfc 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -14,9 +14,17 @@ class Sirius(CMakePackage, CudaPackage): homepage = "https://github.com/electronic-structure/SIRIUS" url = "https://github.com/electronic-structure/SIRIUS/archive/v6.1.5.tar.gz" list_url = "https://github.com/electronic-structure/SIRIUS/releases" + git = "https://github.com/electronic-structure/SIRIUS.git" - version('6.1.5', sha256='379f0a2e5208fd6d91c2bd4939c3a5c40002975fb97652946fa1bfe4a3ef97cb') + version('develop', branch='develop') + version('master', branch='master') + + version('6.4.1', sha256='86f25c71517952a63e92e0a9bcf66d27e4afb2b0d67cf84af480f116b8e7f53c') + version('6.4.0', sha256='bc61758b71dd2996e2ff515b8c3560b2c69c00931cb2811a163a31bcfea4436e') + version('6.3.4', sha256='8839e988b4bb6ef99b6180f7fba03a5537e31fce51bb3e4c2298b513d6a07e0a') + version('6.3.3', sha256='7ba30a4e5c9a545433251211454ec0d59b74ba8941346057bc7de11e7f6886f7') version('6.3.2', sha256='1723e5ad338dad9a816369a6957101b2cae7214425406b12e8712c82447a7ee5') + version('6.1.5', sha256='379f0a2e5208fd6d91c2bd4939c3a5c40002975fb97652946fa1bfe4a3ef97cb') variant('shared', default=False, description="Build shared libraries") variant('openmp', default=True, description="Build with OpenMP support") @@ -25,8 +33,12 @@ class Sirius(CMakePackage, CudaPackage): variant('elpa', default=False, description="Use ELPA") variant('vdwxc', default=False, description="Enable libvdwxc support") variant('scalapack', default=False, description="Enable scalapack support") + variant('magma', default=False, description="Enable MAGMA support") + variant('build_type', default='Release', + description='CMake build type', + values=('Debug', 'Release', 'RelWithDebInfo')) - depends_on('python') + depends_on('python', type=('build', 'run')) depends_on('mpi') depends_on('gsl') depends_on('lapack') @@ -35,19 +47,29 @@ class Sirius(CMakePackage, CudaPackage): depends_on('spglib') depends_on('hdf5+hl') depends_on('pkgconfig', type='build') - depends_on('py-mpi4py', when='+python') - depends_on('py-pybind11', when='+python') - + depends_on('py-numpy', when='+python', type=('build', 'run')) + depends_on('py-scipy', when='+python', type=('build', 'run')) + depends_on('py-h5py', when='+python', type=('build', 'run')) + depends_on('py-mpi4py', when='+python', type=('build', 'run')) + depends_on('py-pyyaml', when='+python', type=('build', 'run')) + depends_on('py-mpi4py', when='+python', type=('build', 'run')) + 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('spfft', when='@6.4.0:~cuda') + depends_on('spfft+cuda', when='@6.4.0:+cuda') depends_on('elpa+openmp', when='+elpa+openmp') depends_on('elpa~openmp', when='+elpa~openmp') depends_on('libvdwxc+mpi', when='+vdwxc') depends_on('scalapack', when='+scalapack') depends_on('cuda', when='+cuda') + extends('python', when='+python') conflicts('+shared', when='@6.3.0:') # option to build shared libraries has been removed # TODO: - # add support for MAGMA, CRAY_LIBSCI, ROCm, testing + # add support for CRAY_LIBSCI, ROCm, testing patch("strip-spglib-include-subfolder.patch", when='@6.1.5') patch("link-libraries-fortran.patch", when='@6.1.5') @@ -96,6 +118,7 @@ class Sirius(CMakePackage, CudaPackage): args = [ _def('+openmp'), _def('+elpa'), + _def('+magma'), _def('+vdwxc'), _def('+scalapack'), _def('+fortran', 'CREATE_FORTRAN_BINDINGS'), @@ -137,7 +160,7 @@ class Sirius(CMakePackage, CudaPackage): if '+cuda' in spec: cuda_arch = spec.variants['cuda_arch'].value - if cuda_arch: + if cuda_arch[0] != 'none': args += [ '-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]) ] diff --git a/var/spack/repos/builtin/packages/slate/package.py b/var/spack/repos/builtin/packages/slate/package.py index 85f31667c5..6de522aea1 100644 --- a/var/spack/repos/builtin/packages/slate/package.py +++ b/var/spack/repos/builtin/packages/slate/package.py @@ -31,11 +31,10 @@ class Slate(Package): conflicts('%gcc@:5') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if('+cuda' in self.spec): - spack_env.prepend_path('CPATH', self.spec['cuda'].prefix.include) - spack_env.prepend_path('CPATH', self.spec['intel-mkl'].prefix - + '/mkl/include') + env.prepend_path('CPATH', self.spec['cuda'].prefix.include) + env.prepend_path('CPATH', self.spec['intel-mkl'].prefix.mkl.include) def install(self, spec, prefix): f_cuda = "1" if spec.variants['cuda'].value else "0" diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py index 8313705cbf..d0dc4f892b 100644 --- a/var/spack/repos/builtin/packages/slepc/package.py +++ b/var/spack/repos/builtin/packages/slepc/package.py @@ -13,7 +13,7 @@ class Slepc(Package): homepage = "http://slepc.upv.es" url = "http://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz" - git = "https://bitbucket.org/slepc/slepc.git" + git = "https://gitlab.com/slepc/slepc.git" maintainers = ['joseeroman', 'balay'] @@ -101,6 +101,6 @@ class Slepc(Package): make('install', parallel=False) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): # set up SLEPC_DIR for everyone using SLEPc package - spack_env.set('SLEPC_DIR', self.prefix) + env.set('SLEPC_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/snap-korf/package.py b/var/spack/repos/builtin/packages/snap-korf/package.py index 930d8c28e7..64645143cb 100644 --- a/var/spack/repos/builtin/packages/snap-korf/package.py +++ b/var/spack/repos/builtin/packages/snap-korf/package.py @@ -38,6 +38,6 @@ class SnapKorf(MakefilePackage): install_tree('HMM', prefix.HMM) install_tree('DNA', prefix.DNA) - def setup_environment(self, spack_env, run_env): - run_env.set('ZOE', self.prefix) - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.set('ZOE', self.prefix) + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/snphylo/package.py b/var/spack/repos/builtin/packages/snphylo/package.py index ae40685066..3a24c57a53 100644 --- a/var/spack/repos/builtin/packages/snphylo/package.py +++ b/var/spack/repos/builtin/packages/snphylo/package.py @@ -33,5 +33,5 @@ class Snphylo(Package): bash('./setup.sh', input=f) install_tree('.', prefix) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.spec.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/sollve/package.py b/var/spack/repos/builtin/packages/sollve/package.py new file mode 100644 index 0000000000..977ebfc278 --- /dev/null +++ b/var/spack/repos/builtin/packages/sollve/package.py @@ -0,0 +1,309 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Sollve(CMakePackage): + """The SOLLVE Project aims at scaling OpenMP by leveraging LLVM for exascale + performance and portability of applications. This package provides a + collection of Clang/LLVM compilers and an OpenMP runtime library. + """ + + homepage = 'https://www.bnl.gov/compsci/projects/SOLLVE/' + git = "https://github.com/SOLLVE/llvm.git" + + family = 'compiler' # Used by lmod + + # 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('lldb', default=True, description="Build the LLVM debugger") + variant('lld', default=True, description="Build the LLVM linker") + variant('internal_unwind', default=True, + description="Build the libcxxabi libunwind") + variant('polly', default=True, + description="Build the LLVM polyhedral optimization plugin") + 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=True, + description="Add support for LTO with the gold linker plugin") + variant('shared_libs', default=False, + description="Build all components as shared libraries, faster, " + "less memory to build, less stable") + variant('link_dylib', default=False, + description="Build and link the libLLVM shared library rather " + "than static") + 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('python', default=False, description="Install python bindings") + variant('argobots', default=True, description="Use Argobots in BOLT") + extends('python', when='+python') + + # Build dependency + depends_on('cmake@3.4.3:', type='build') + depends_on('python', type='build') + + # openmp dependencies + depends_on('perl-data-dumper', type=('build')) + depends_on('argobots', when='+argobots') + + # lldb dependencies + depends_on('ncurses', when='+lldb') + depends_on('swig', when='+lldb') + depends_on('libedit', when='+lldb') + depends_on('py-six', when='+lldb +python', type=('build', 'run')) + + # gold support + depends_on('binutils+gold', when='+gold') + + # develop version. + version("develop") + resource(name='compiler-rt', + svn='http://llvm.org/svn/llvm-project/compiler-rt/trunk', + destination='projects', when='@develop+compiler-rt', + placement='compiler-rt') + resource(name='openmp', git='https://github.com/pmodels/bolt.git', + destination='projects', when='@develop+clang', placement='openmp') + resource(name='polly', git='https://github.com/SOLLVE/polly.git', + destination='tools', when='@develop+polly', placement='polly') + resource(name='libcxx', git='https://github.com/SOLLVE/libcxx.git', + destination='projects', when='@develop+libcxx', + placement='libcxx') + resource(name='libcxxabi', git='https://github.com/SOLLVE/libcxxabi.git', + destination='projects', when='@develop+libcxx', + placement='libcxxabi') + resource(name='cfe', git='https://github.com/SOLLVE/clang.git', + destination='tools', when='@develop+clang', placement='clang') + resource(name='lldb', svn='http://llvm.org/svn/llvm-project/lldb/trunk', + destination='tools', when='@develop+lldb', placement='lldb') + resource(name='lld', svn='http://llvm.org/svn/llvm-project/lld/trunk', + destination='tools', when='@develop+lld', placement='lld') + resource(name='libunwind', + svn='http://llvm.org/svn/llvm-project/libunwind/trunk', + destination='projects', when='@develop+internal_unwind', + placement='libunwind') + + # 1.0a2 based on LLVM 9.0+ + version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f") + resource(name='compiler-rt', + svn='https://llvm.org/svn/llvm-project/compiler-rt/trunk', + revision=373130, destination='projects', + when='@1.0a2+compiler-rt', placement='compiler-rt') + resource(name='openmp', git='https://github.com/pmodels/bolt.git', + commit="0a0033b09cfb672c119cf41eeb54eda7664681bc", + destination='projects', when='@1.0a2+clang', placement='openmp') + resource(name='polly', git='https://github.com/SOLLVE/polly.git', + commit="96168ae6fb436e95cd756950855a57b895070047", + destination='tools', when='@1.0a2+polly', placement='polly') + resource(name='libcxx', git='https://github.com/SOLLVE/libcxx.git', + commit="9637883af0357acf02c87fae5efb71661d21f516", + destination='projects', when='@1.0a2+libcxx', placement='libcxx') + resource(name='libcxxabi', git='https://github.com/SOLLVE/libcxxabi.git', + commit="3ed912b3b014a3af862c3b2cd0795ad43afadf31", + destination='projects', when='@1.0a2+libcxx', + placement='libcxxabi') + resource(name='cfe', git='https://github.com/SOLLVE/clang.git', + commit="774bc67094a1baa2dbdab705b0cac061048a062e", + destination='tools', when='@1.0a2+clang', placement='clang') + resource(name='lldb', + svn='http://llvm.org/svn/llvm-project/lldb/trunk', + revision=373127, destination='tools', when='@1.0a2+lldb', + placement='lldb') + resource(name='lld', svn='http://llvm.org/svn/llvm-project/lld/trunk/', + revision=373077, destination='tools', when='@1.0a2+lld', + placement='lld') + resource(name='libunwind', + svn='http://llvm.org/svn/llvm-project/libunwind/trunk', + revision=372427, destination='projects', + when='@1.0a2+internal_unwind', placement='libunwind') + + conflicts('+clang_extra', when='~clang') + conflicts('+lldb', when='~clang') + + conflicts('%gcc@:5.0.999') + conflicts('+omp_tsan') + + @run_before('cmake') + def check_darwin_lldb_codesign_requirement(self): + if not self.spec.satisfies('+lldb platform=darwin'): + return + 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: + explanation = ('The "lldb_codesign" identity must be available' + ' to build LLVM with LLDB. See https://llvm.org/' + 'svn/llvm-project/lldb/trunk/docs/code-signing' + '.txt for details on how to create this identity.') + raise RuntimeError(explanation) + + 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++')) + + def cmake_args(self): + spec = self.spec + 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), + ] + + # TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant + # (see TODO above), and set the paths if enabled. + 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 '+gold' in spec: + cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + + spec['binutils'].prefix.include) + + if '+polly' in spec: + cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON') + else: + cmake_args.extend(['-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF', + '-DLLVM_TOOL_POLLY_BUILD:Bool=OFF', + '-DLLVM_POLLY_BUILD:Bool=OFF', + '-DLLVM_POLLY_LINK_INTO_TOOLS:Bool=OFF']) + + if '+python' in spec and '+lldb' in spec: + cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=TRUE') + else: + cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=FALSE') + + if '+clang' in spec: + cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=ON') + else: + cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF') + + if '+lldb' in spec: + cmake_args.extend(['-DLLVM_EXTERNAL_LLDB_BUILD:Bool=ON', + '-DLLVM_TOOL_LLDB_BUILD:Bool=ON']) + else: + cmake_args.extend(['-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF', + '-DLLVM_TOOL_LLDB_BUILD:Bool=OFF']) + + if '+lld' in spec: + cmake_args.append('-DLLVM_TOOL_LLD_BUILD:Bool=ON') + else: + cmake_args.append('-DLLVM_TOOL_LLD_BUILD:Bool=OFF') + + if '+internal_unwind' in spec: + cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=ON') + else: + cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF') + + if '+libcxx' in spec: + cmake_args.append('-DCLANG_DEFAULT_CXX_STDLIB=libc++') + cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=ON') + cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=ON') + else: + cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF') + cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF') + + if '+compiler-rt' in spec: + cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=ON') + else: + cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF') + + if '+shared_libs' in spec: + cmake_args.append('-DBUILD_SHARED_LIBS:Bool=ON') + else: + cmake_args.append('-DBUILD_SHARED_LIBS:Bool=OFF') + + if '+link_dylib' in spec: + cmake_args.append('-DLLVM_LINK_LLVM_DYLIB:Bool=ON') + else: + cmake_args.append('-DLLVM_LINK_LLVM_DYLIB:Bool=OFF') + + if '+all_targets' not in spec: # all is default on cmake + targets = [] + 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') + else: + cmake_args.append('-DLIBOMP_TSAN_SUPPORT=OFF') + + if '+argobots' in spec: + cmake_args.extend([ + '-DLIBOMP_USE_ITT_NOTIFY=OFF', + '-DLIBOMP_USE_ARGOBOTS=ON', + '-DLIBOMP_ARGOBOTS_INSTALL_DIR=' + spec['argobots'].prefix]) + else: + # LIBOMP_USE_ITT_NOTIFY should be set to a default value. + cmake_args.append('-DLIBOMP_USE_ARGOBOTS=OFF') + + if self.compiler.name == 'gcc': + gcc_prefix = ancestor(self.compiler.cc, 2) + cmake_args.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix) + + if spec.satisfies('platform=linux'): + cmake_args.append('-DCMAKE_BUILD_WITH_INSTALL_RPATH=1') + + 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') + if self.spec.version >= Version('4.0.0'): + # LLVMDemangle target was added in 4.0.0 + make('install-LLVMDemangle') + make('install-LLVMSupport') + + @run_after('install') + def post_install(self): + if '+clang' in self.spec and '+python' in self.spec: + install_tree( + 'tools/clang/bindings/python/clang', + join_path(site_packages_dir, 'clang')) + + with working_dir(self.build_directory): + install_tree('bin', self.prefix.libexec.llvm) diff --git a/var/spack/repos/builtin/packages/sosflow/package.py b/var/spack/repos/builtin/packages/sosflow/package.py index f1eaf23b9b..e080c34dfb 100644 --- a/var/spack/repos/builtin/packages/sosflow/package.py +++ b/var/spack/repos/builtin/packages/sosflow/package.py @@ -21,14 +21,15 @@ class Sosflow(CMakePackage): depends_on('pkgconfig') depends_on('mpi') - def setup_environment(self, spack_env, run_env): - spack_env.set('SOS_HOST_KNOWN_AS', 'SPACK-SOS-BUILD') - spack_env.set('SOS_HOST_NODE_NAME', 'SPACK-SOS-NODE') - spack_env.set('SOS_HOST_DETAILED', 'SPACK-SOS-DETAILED') - - run_env.set('SOS_ROOT', self.spec.prefix) - run_env.set('SOS_BUILD_DIR', self.spec.prefix) - run_env.set('SOS_CMD_PORT', '22500') - run_env.set('SOS_WORK', env['HOME']) - run_env.set('SOS_EVPATH_MEETUP', env['HOME']) - run_env.set('SOS_ENV_SET', 'true') + def setup_build_environment(self, env): + env.set('SOS_HOST_KNOWN_AS', 'SPACK-SOS-BUILD') + env.set('SOS_HOST_NODE_NAME', 'SPACK-SOS-NODE') + env.set('SOS_HOST_DETAILED', 'SPACK-SOS-DETAILED') + + def setup_run_environment(self, env): + env.set('SOS_ROOT', self.spec.prefix) + env.set('SOS_BUILD_DIR', self.spec.prefix) + env.set('SOS_CMD_PORT', '22500') + env.set('SOS_WORK', env['HOME']) + env.set('SOS_EVPATH_MEETUP', env['HOME']) + env.set('SOS_ENV_SET', 'true') diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py index 9b05e3b4bf..b21a7aab1a 100644 --- a/var/spack/repos/builtin/packages/spark/package.py +++ b/var/spack/repos/builtin/packages/spark/package.py @@ -47,7 +47,7 @@ class Spark(Package): install('RELEASE', prefix) @when('+hadoop') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): hadoop = self.spec['hadoop'].command hadoop.add_default_env('JAVA_HOME', self.spec['java'].home) hadoop_classpath = hadoop('classpath', output=str) @@ -56,4 +56,4 @@ class Spark(Package): # module files hadoop_classpath = re.sub(r'[\s+]', '', hadoop_classpath) - run_env.set('SPARK_DIST_CLASSPATH', hadoop_classpath) + env.set('SPARK_DIST_CLASSPATH', hadoop_classpath) diff --git a/var/spack/repos/builtin/packages/spectrum-mpi/package.py b/var/spack/repos/builtin/packages/spectrum-mpi/package.py index cdbd94260a..46799b7f65 100644 --- a/var/spack/repos/builtin/packages/spectrum-mpi/package.py +++ b/var/spack/repos/builtin/packages/spectrum-mpi/package.py @@ -2,8 +2,7 @@ # 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 SpectrumMpi(Package): @@ -19,41 +18,41 @@ class SpectrumMpi(Package): def setup_dependent_package(self, module, dependent_spec): # get the compiler names if '%xl' in dependent_spec or '%xl_r' in dependent_spec: - self.spec.mpicc = join_path(self.prefix.bin, 'mpixlc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpixlC') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpixlf') - self.spec.mpifc = join_path(self.prefix.bin, 'mpixlf') + self.spec.mpicc = os.path.join(self.prefix.bin, 'mpixlc') + self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpixlC') + self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpixlf') + self.spec.mpifc = os.path.join(self.prefix.bin, 'mpixlf') elif '%pgi' in dependent_spec: - self.spec.mpicc = join_path(self.prefix.bin, 'mpipgicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpipgic++') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpipgifort') - self.spec.mpifc = join_path(self.prefix.bin, 'mpipgifort') + self.spec.mpicc = os.path.join(self.prefix.bin, 'mpipgicc') + self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpipgic++') + self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpipgifort') + self.spec.mpifc = os.path.join(self.prefix.bin, 'mpipgifort') else: - 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, 'mpif77') - self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') + 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 setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): if '%xl' in dependent_spec or '%xl_r' in dependent_spec: - spack_env.set('MPICC', join_path(self.prefix.bin, 'mpixlc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpixlC')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpixlf')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpixlf')) + env.set('MPICC', os.path.join(self.prefix.bin, 'mpixlc')) + env.set('MPICXX', os.path.join(self.prefix.bin, 'mpixlC')) + env.set('MPIF77', os.path.join(self.prefix.bin, 'mpixlf')) + env.set('MPIF90', os.path.join(self.prefix.bin, 'mpixlf')) elif '%pgi' in dependent_spec: - spack_env.set('MPICC', join_path(self.prefix.bin, 'mpipgicc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpipgic++')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpipgifort')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpipgifort')) + env.set('MPICC', os.path.join(self.prefix.bin, 'mpipgicc')) + env.set('MPICXX', os.path.join(self.prefix.bin, 'mpipgic++')) + env.set('MPIF77', os.path.join(self.prefix.bin, 'mpipgifort')) + env.set('MPIF90', os.path.join(self.prefix.bin, 'mpipgifort')) else: - spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc')) - spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++')) - spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77')) - spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90')) + env.set('MPICC', os.path.join(self.prefix.bin, 'mpicc')) + env.set('MPICXX', os.path.join(self.prefix.bin, 'mpic++')) + env.set('MPIF77', os.path.join(self.prefix.bin, 'mpif77')) + env.set('MPIF90', os.path.join(self.prefix.bin, 'mpif90')) - spack_env.set('OMPI_CC', spack_cc) - spack_env.set('OMPI_CXX', spack_cxx) - spack_env.set('OMPI_FC', spack_fc) - spack_env.set('OMPI_F77', spack_f77) + env.set('OMPI_CC', spack_cc) + env.set('OMPI_CXX', spack_cxx) + env.set('OMPI_FC', spack_fc) + env.set('OMPI_F77', spack_f77) - spack_env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) + env.prepend_path('LD_LIBRARY_PATH', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/spfft/package.py b/var/spack/repos/builtin/packages/spfft/package.py new file mode 100644 index 0000000000..703a1a1674 --- /dev/null +++ b/var/spack/repos/builtin/packages/spfft/package.py @@ -0,0 +1,44 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Spfft(CMakePackage): + """Sparse 3D FFT library with MPI, OpenMP, CUDA and ROCm support.""" + + homepage = "https://github.com/eth-cscs/SpFFT" + url = "https://github.com/eth-cscs/SpFFT/archive/v0.9.8.zip" + + version('0.9.8', sha256='f49fa51316bbfa68309e951d2375e1f6904120c93868cbe13bc2974c0b801a3f') + + variant('openmp', default=True, description="Build with OpenMP support") + variant('mpi', default=True, description="enable MPI") + variant('single_precision', default=False, description="Sinlge precision") + variant('gpu_direct', default=False, description="GPU aware MPI") + variant('static', default=False, description="build static library") + variant('cuda', default=False, description="CUDA") + variant('build_type', default='Release', description='CMake build type', + values=('Debug', 'Release', 'RelWithDebInfo')) + depends_on('fftw') + depends_on('mpi', when='+mpi') + depends_on('cuda', when='+cuda') + + def cmake_args(self): + args = [] + if self.spec.satisfies('+openmp'): + args += ["-DSPFFT_OMP=On"] + if self.spec.satisfies('+mpi'): + args += ["-DSPFFT_MPI=On"] + if self.spec.satisfies('+single_precision'): + args += ["-DSPFFT_SINGLE_PRECISION=On"] + if self.spec.satisfies('+gpu_direct'): + args += ["-DSPFFT_GPU_DIRECT=On"] + if self.spec.satisfies('+cuda'): + args += ["-DSPFFT_BACKEND=CUDA"] + if self.spec.satisfies('+cuda'): + args += ["-DSPFFT_BACKEND=CUDA"] + return args diff --git a/var/spack/repos/builtin/packages/squid/package.py b/var/spack/repos/builtin/packages/squid/package.py index a039bbedc5..bce6f19590 100644 --- a/var/spack/repos/builtin/packages/squid/package.py +++ b/var/spack/repos/builtin/packages/squid/package.py @@ -10,5 +10,6 @@ class Squid(AutotoolsPackage): """C function library for sequence analysis.""" homepage = "http://eddylab.org/software.html" + url = "http://eddylab.org/software/squid/squid-1.9g.tar.gz" - version('1.9g', sha256='302f42e8794aa4dbcfa0996c14fb7a70a7c4397fc45c2bbd2748055460d8dca7', url='http://eddylab.org/software/squid/squid.tar.gz') + version('1.9g', sha256='302f42e8794aa4dbcfa0996c14fb7a70a7c4397fc45c2bbd2748055460d8dca7') diff --git a/var/spack/repos/builtin/packages/sra-toolkit/package.py b/var/spack/repos/builtin/packages/sratoolkit/package.py index 972f4d8a70..a8cf5d9b6c 100644 --- a/var/spack/repos/builtin/packages/sra-toolkit/package.py +++ b/var/spack/repos/builtin/packages/sratoolkit/package.py @@ -6,7 +6,7 @@ from spack import * -class SraToolkit(Package): +class Sratoolkit(Package): """The NCBI SRA Toolkit enables reading ("dumping") of sequencing files from the SRA database and writing ("loading") files into the .sra format.""" @@ -18,10 +18,6 @@ class SraToolkit(Package): version('2.9.2', sha256='17dbe13aa1ed7955d31e1e76e8b62786e80a77e9ed9d396631162dc3ad8b716d') version('2.8.2-1', sha256='b053061aae7c6d00162fe0f514be4128a60365b4b2b5b36e7f4798b348b55cf5') - def url_for_version(self, version): - url = 'https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/{0}/sratoolkit.{0}-centos_linux64.tar.gz' - return url.format(version) - def install(self, spec, prefix): install_tree('bin', prefix.bin, symlinks=True) install_tree('example', prefix.example) diff --git a/var/spack/repos/builtin/packages/sspace-standard/package.py b/var/spack/repos/builtin/packages/sspace-standard/package.py index 768bd3afb1..3a5d1fa10e 100644 --- a/var/spack/repos/builtin/packages/sspace-standard/package.py +++ b/var/spack/repos/builtin/packages/sspace-standard/package.py @@ -48,6 +48,6 @@ class SspaceStandard(Package): install_tree('tools', prefix.tools) install(rootscript, prefix) - def setup_environment(self, spack_env, run_env): - run_env.set('SSPACE_HOME', prefix) - run_env.prepend_path('PATH', prefix) + def setup_run_environment(self, env): + env.set('SSPACE_HOME', self.prefix) + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index f8d9dd2bab..43294ce111 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -49,6 +49,7 @@ class Stat(AutotoolsPackage): depends_on('py-xdot', when='@4.0.1:') depends_on('swig') depends_on('mpi', when='+examples') + depends_on('boost') patch('configure_mpicxx.patch', when='@2.1.0') @@ -60,6 +61,7 @@ class Stat(AutotoolsPackage): "--with-graphlib=%s" % spec['graphlib'].prefix, "--with-stackwalker=%s" % spec['dyninst'].prefix, "--with-python=%s" % spec['python'].command.path, + "--with-boost=%s" % spec['boost'].prefix, ] if '+fgfs' in spec: args.append('--with-fgfs=%s' diff --git a/var/spack/repos/builtin/packages/stata/package.py b/var/spack/repos/builtin/packages/stata/package.py index 6f19adda53..b294e1ebf2 100644 --- a/var/spack/repos/builtin/packages/stata/package.py +++ b/var/spack/repos/builtin/packages/stata/package.py @@ -37,9 +37,9 @@ class Stata(Package): return "file://{0}/Stata{1}Linux64.tar.gz".format(os.getcwd(), version) # STATA is simple and needs really just the PATH set. - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.spec['libpng'].prefix.lib) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.spec['libpng'].prefix.lib) # Extracting the file provides the following: # ./unix/ diff --git a/var/spack/repos/builtin/packages/stc/package.py b/var/spack/repos/builtin/packages/stc/package.py index ce52a418f2..631d7647e7 100644 --- a/var/spack/repos/builtin/packages/stc/package.py +++ b/var/spack/repos/builtin/packages/stc/package.py @@ -11,7 +11,7 @@ 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.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/stc-0.8.3.tar.gz' git = "https://github.com/swift-lang/swift-t.git" version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/steps/package.py b/var/spack/repos/builtin/packages/steps/package.py index 41ef74c681..7de6c54b6d 100644 --- a/var/spack/repos/builtin/packages/steps/package.py +++ b/var/spack/repos/builtin/packages/steps/package.py @@ -55,7 +55,7 @@ class Steps(CMakePackage): args.append('-DBLAS_LIBRARIES=' + spec['blas'].libs.joined(";")) return args - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): # This recipe exposes a Python package from a C++ CMake project. # This hook is required to reproduce what Spack PythonPackage does. - run_env.prepend_path('PYTHONPATH', self.prefix) + env.prepend_path('PYTHONPATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/stow/package.py b/var/spack/repos/builtin/packages/stow/package.py index 508b30d715..375f946510 100644 --- a/var/spack/repos/builtin/packages/stow/package.py +++ b/var/spack/repos/builtin/packages/stow/package.py @@ -6,7 +6,7 @@ from spack import * -class Stow(AutotoolsPackage): +class Stow(AutotoolsPackage, GNUMirrorPackage): """GNU Stow: a symlink farm manager GNU Stow is a symlink farm manager which takes distinct @@ -15,7 +15,7 @@ class Stow(AutotoolsPackage): installed in the same place.""" homepage = "https://www.gnu.org/software/stow/" - url = "https://ftpmirror.gnu.org/stow/stow-2.2.2.tar.bz2" + gnu_mirror_path = "stow/stow-2.2.2.tar.bz2" version('2.2.2', sha256='a0022034960e47a8d23dffb822689f061f7a2d9101c9835cf11bf251597aa6fd') version('2.2.0', sha256='86bc30fe1d322a5c80ff3bd7580c2758149aad7c3bbfa18b48a9d95c25d66b05') diff --git a/var/spack/repos/builtin/packages/strumpack/package.py b/var/spack/repos/builtin/packages/strumpack/package.py index d2dfc424f5..9348d8975e 100644 --- a/var/spack/repos/builtin/packages/strumpack/package.py +++ b/var/spack/repos/builtin/packages/strumpack/package.py @@ -18,12 +18,14 @@ class Strumpack(CMakePackage): iterative solvers.""" homepage = "http://portal.nersc.gov/project/sparse/strumpack" - url = "https://github.com/pghysels/STRUMPACK/archive/v3.0.3.tar.gz" + url = "https://github.com/pghysels/STRUMPACK/archive/v3.3.0.tar.gz" git = "https://github.com/pghysels/STRUMPACK.git" maintainers = ['pghysels'] version('master', branch='master') + version('3.3.0', sha256='499fd3b58656b4b6495496920e5372895861ebf15328be8a7a9354e06c734bc7') + version('3.2.0', sha256='34d93e1b2a3b8908ef89804b7e08c5a884cbbc0b2c9f139061627c0d2de282c1') version('3.1.1', sha256='c1c3446ee023f7b24baa97b24907735e89ce4ae9f5ef516645dfe390165d1778') version('3.1.0', sha256='b4f91b7d433955518b04538be1c726afc5de4bffb163e982ef8844d391b26fa7') version('3.0.3', sha256='2bd2a40d9585b769ae4ba461de02c6e36433bf2b21827f824a50f2fdf73389f7') @@ -32,6 +34,7 @@ class Strumpack(CMakePackage): version('3.0.0', sha256='7acd9b4653b8b11380de733c80b164348ca00f9226904f5dc166a8e3db88cd20') version('2.2.0', sha256='8fe73875cbbb29ed1faf714e3bf13ad538eb062e39d7d5e73cb9c4aafb571e24') + variant('shared', default=False, description='Build shared libraries') variant('mpi', default=True, description='Use MPI') variant('openmp', default=True, description='Enable thread parallellism via tasking with OpenMP') @@ -39,6 +42,8 @@ class Strumpack(CMakePackage): description='Enable use of ParMetis') variant('scotch', default=False, description='Enable use of Scotch') + variant('butterflypack', default=True, + description='Enable use of ButterflyPACK') variant('c_interface', default=True, description='Enable C interface') variant('count_flops', default=False, @@ -59,8 +64,11 @@ class Strumpack(CMakePackage): depends_on('parmetis', when='+parmetis') depends_on('scotch~metis', when='+scotch') depends_on('scotch~metis+mpi', when='+scotch+mpi') + depends_on('butterflypack@1.1.0:', when='+butterflypack+mpi') conflicts('+parmetis', when='~mpi') + conflicts('+butterflypack', when='~mpi') + conflicts('+butterflypack', when='strumpack@:3.2.0') patch('intel-19-compile.patch', when='@3.1.1') @@ -90,11 +98,17 @@ class Strumpack(CMakePackage): if spec.satisfies('@3.0.4:'): args.extend([ '-DTPL_ENABLE_PARMETIS=%s' % on_off('+parmetis'), - '-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch') + '-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch'), + '-DTPL_ENABLE_BPACK=%s' % on_off('+butterflypack') ]) else: args.extend([ '-DSTRUMPACK_USE_PARMETIS=%s' % on_off('+parmetis'), '-DSTRUMPACK_USE_SCOTCH=%s' % on_off('+scotch') ]) + + args.extend([ + '-DBUILD_SHARED_LIBS=%s' % on_off('+shared') + ]) + return args diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index de26e0dece..ba621061fd 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -34,7 +34,7 @@ class Subversion(AutotoolsPackage): extends('perl', when='+perl') depends_on('swig@1.3.24:3.0.0', when='+perl') - depends_on('perl-term-readkey', when='+perl') + depends_on('perl-termreadkey', when='+perl') # Installation has race cases. parallel = False diff --git a/var/spack/repos/builtin/packages/sundials/FindPackageMultipass.cmake.patch b/var/spack/repos/builtin/packages/sundials/FindPackageMultipass.cmake.patch new file mode 100644 index 0000000000..623c94a3c5 --- /dev/null +++ b/var/spack/repos/builtin/packages/sundials/FindPackageMultipass.cmake.patch @@ -0,0 +1,69 @@ +diff --git a/config/FindPackageMultipass.cmake b/config/FindPackageMultipass.cmake +index 128eee9..847c246 100644 +--- a/config/FindPackageMultipass.cmake ++++ b/config/FindPackageMultipass.cmake +@@ -138,7 +138,10 @@ macro (MULTIPASS_SOURCE_RUNS includes libraries source runs language) + math (EXPR _tmp "${MULTIPASS_TEST_COUNT} + 1") # Why can't I add to a cache variable? + set (MULTIPASS_TEST_COUNT ${_tmp} CACHE INTERNAL "Unique test ID") + set (testname MULTIPASS_TEST_${MULTIPASS_TEST_COUNT}_${runs}) +- set (testdir ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp) ++ set (testdir ${PROJECT_BINARY_DIR}/PETSC_test) ++ if (NOT EXISTS ${testdir}) ++ file(MAKE_DIRECTORY ${testdir}) ++ endif () + set (CMAKE_REQUIRED_INCLUDES ${includes}) + set (CMAKE_REQUIRED_LIBRARIES ${libraries}) + # if MPI is available, use it for the test +@@ -148,24 +151,38 @@ macro (MULTIPASS_SOURCE_RUNS includes libraries source runs language) + set (REQUIRED_COMPILER ${CMAKE_${language}_COMPILER}) + endif () + if(${language} STREQUAL "C") +- file(WRITE ${testdir}/src.c "${source}") +- try_run(${testname} _compiles ${testdir} ${testdir}/src.c +- CMAKE_FLAGS -DCMAKE_C_COMPILER=${REQUIRED_COMPILER} -DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES} +- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +- elseif(${language} STREQUAL "CXX") +- file(WRITE ${testdir}/src.cxx "${source}") +- try_run(${testname} _compiles ${testdir} ${testdir}/src.cxx +- CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${REQUIRED_COMPILER} -DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES} +- LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +- endif() +- # ${testname} is the exit code returned by try_run, +- # so 0 is success and anything else is a failure. +- if (${testname}) +- set (${runs} FALSE) ++ set (extension c) + else () ++ set (extension cxx) ++ endif () ++ # Create simple test code ++ file(WRITE ${testdir}/src.${extension} "${source}") ++ # Create a CMakeLists.txt file for the test code ++ file(WRITE ${testdir}/CMakeLists.txt ++ "cmake_minimum_required(VERSION 3.5)\n" ++ "project(ctest ${language})\n" ++ "set(CMAKE_VERBOSE_MAKEFILE ON)\n" ++ "set(CMAKE_${language}_COMPILER \"${REQUIRED_COMPILER}\")\n" ++ "set(CMAKE_${language}_FLAGS \"${CMAKE_${language}_FLAGS}\")\n" ++ "include_directories(${CMAKE_REQUIRED_INCLUDES})\n" ++ "add_executable(ctest src.${extension})\n" ++ "target_link_libraries(ctest ${CMAKE_REQUIRED_LIBRARIES})\n") ++ # Attempt to compile the test code ++ try_compile(${testname} ${testdir} ${testdir} ctest ++ OUTPUT_VARIABLE _output) ++ # Write output compiling the test code ++ file(WRITE ${testdir}/src.out "${_output}") ++ # To ensure we do not use stuff from the previous attempts, ++ # we must remove the CMakeFiles directory. ++ file(REMOVE_RECURSE ${testdir}/CMakeFiles) ++ # Process test result ++ if (${testname}) + set (${runs} TRUE) ++ else () ++ set (${runs} FALSE) + endif () + unset (_compiles) ++ unset (_output) + endmacro (MULTIPASS_SOURCE_RUNS) + + diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py index 632bde8634..e4df169afe 100644 --- a/var/spack/repos/builtin/packages/sundials/package.py +++ b/var/spack/repos/builtin/packages/sundials/package.py @@ -194,6 +194,7 @@ class Sundials(CMakePackage): # remove OpenMP header file and function from hypre vector test code patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0') + patch('FindPackageMultipass.cmake.patch', when='@5.0.0') # ========================================================================== # SUNDIALS Settings diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index c49a624b17..c6318e079e 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -40,6 +40,9 @@ class SuperluDist(CMakePackage): depends_on('parmetis') depends_on('metis@5:') + patch('xl-611.patch', when='@:6.1.1 %xl') + patch('xl-611.patch', when='@:6.1.1 %xl_r') + def cmake_args(self): spec = self.spec args = [ @@ -51,9 +54,15 @@ class SuperluDist(CMakePackage): '-DUSE_XSDK_DEFAULTS=YES', '-DTPL_PARMETIS_LIBRARIES=%s' % spec['parmetis'].libs.ld_flags + ';' + spec['metis'].libs.ld_flags, - '-DTPL_PARMETIS_INCLUDE_DIRS=%s' % spec['parmetis'].prefix.include + '-DTPL_PARMETIS_INCLUDE_DIRS=%s' % + spec['parmetis'].prefix.include + + ';' + spec['metis'].prefix.include ] + if (spec.satisfies('%xl') or spec.satisfies('%xl_r')) and \ + spec.satisfies('@:6.1.1'): + args.append('-DCMAKE_C_FLAGS=-DNoChange') + if '+int64' in spec: args.append('-DXSDK_INDEX_SIZE=64') else: diff --git a/var/spack/repos/builtin/packages/superlu-dist/xl-611.patch b/var/spack/repos/builtin/packages/superlu-dist/xl-611.patch new file mode 100644 index 0000000000..92b6a3c730 --- /dev/null +++ b/var/spack/repos/builtin/packages/superlu-dist/xl-611.patch @@ -0,0 +1,26 @@ +commit e51132dbd022139933678b3a751a9b3148fafd19 +Author: Satish Balay <balay@mcs.anl.gov> +Date: Tue Nov 12 16:07:08 2019 -0600 + + add ztrtri_ mapping for xlf + +diff --git a/SRC/Cnames.h b/SRC/Cnames.h +index 792f514..ebef619 100644 +--- a/SRC/Cnames.h ++++ b/SRC/Cnames.h +@@ -179,6 +179,7 @@ at the top-level directory. + #define zher2_ ZHER2 + #define zgeru_ ZGERU + ++#define ztrtri_ ZTRTRI + /* + #define mc64id_dist MC64ID_DIST + #define mc64ad_dist MC64AD_DIST +@@ -307,6 +308,7 @@ at the top-level directory. + #define zher2_ zher2 + #define zgeru_ zgeru + ++#define ztrtri_ ztrtri + /* + #define mc64id_dist mc64id_dist + #define mc64ad_dist mc64ad_dist diff --git a/var/spack/repos/builtin/packages/supernova/package.py b/var/spack/repos/builtin/packages/supernova/package.py index 43ccbe50c6..e17de6760c 100644 --- a/var/spack/repos/builtin/packages/supernova/package.py +++ b/var/spack/repos/builtin/packages/supernova/package.py @@ -36,8 +36,8 @@ class Supernova(Package): def url_for_version(self, version): return "file://{0}/supernova-{1}.tar.gz".format(os.getcwd(), version) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) def install(self, spec, prefix): rm = which('rm') diff --git a/var/spack/repos/builtin/packages/swiftsim/package.py b/var/spack/repos/builtin/packages/swiftsim/package.py index cf538d24c0..65f4843a0a 100644 --- a/var/spack/repos/builtin/packages/swiftsim/package.py +++ b/var/spack/repos/builtin/packages/swiftsim/package.py @@ -33,14 +33,15 @@ class Swiftsim(AutotoolsPackage): depends_on('hdf5~mpi', when='~mpi') depends_on('hdf5+mpi', when='+mpi') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # Needed to be able to download from the Durham gitlab repository tty.warn('Setting "GIT_SSL_NO_VERIFY=1"') tty.warn('This is needed to clone SWIFT repository') - spack_env.set('GIT_SSL_NO_VERIFY', 1) + env.set('GIT_SSL_NO_VERIFY', 1) def configure_args(self): - return ['--prefix=%s' % self.prefix, - '--enable-mpi' if '+mpi' in self.spec else '--disable-mpi', - '--with-metis={0}'.format(self.spec['metis'].prefix), - '--enable-optimization'] + return [ + '--enable-mpi' if '+mpi' in self.spec else '--disable-mpi', + '--with-metis={0}'.format(self.spec['metis'].prefix), + '--enable-optimization' + ] diff --git a/var/spack/repos/builtin/packages/swipl/package.py b/var/spack/repos/builtin/packages/swipl/package.py new file mode 100644 index 0000000000..95071d5d32 --- /dev/null +++ b/var/spack/repos/builtin/packages/swipl/package.py @@ -0,0 +1,71 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Swipl(CMakePackage): + """ SWI-Prolog is a versatile implementation of the Prolog language. + Although SWI-Prolog gained its popularity primarily in education, + its development is mostly driven by the needs for application development. + This is facilitated by a rich interface to other IT components by + supporting many document types and (network) protocols as well as a + comprehensive low-level interface to C that is the basis for high-level + interfaces to C++, Java (bundled), C#, Python, etc (externally available). + + Data type extensions such as dicts and strings as well as full support + for Unicode and unbounded integers simplify smooth exchange of data + with other components.""" + + homepage = "https://www.swi-prolog.org" + url = "https://www.swi-prolog.org/download/stable/src/swipl-8.0.3.tar.gz" + + maintainers = ['alexrobomind'] + + version('8.0.3', sha256='cee59c0a477c8166d722703f6e52f962028f3ac43a5f41240ecb45dbdbe2d6ae') + + variant('gmp', default=True, description='bignum and rational number support') + variant('xpce', default=True, description='GUI support') + variant('ssl', default=True, description='SSL support') + variant('zlib', default=True, description='Compressed streams support') + variant('odbc', default=True, description='ODBC database access') + variant('unwind', default=True, description='Build with stack traces in crash reports') + + depends_on('uuid') + depends_on('readline') + + depends_on('gmp', when='+gmp') + depends_on('unwind', when='+unwind') + depends_on('unixodbc', when='+odbc') + depends_on('openssl', when='+ssl') + depends_on('zlib', when='+zlib') + + depends_on('libxt', when='+xpce') + depends_on('libx11', when='+xpce') + depends_on('libjpeg', when='+xpce') + depends_on('libxpm', when='+xpce') + + depends_on('libxft', when='+xpce') + depends_on('fontconfig', when='+xpce') + depends_on('pkgconfig', when='+xpce', type='build') + + conflicts('%intel', msg='Test builds with ICC failed when creating startup image') + + def cmake_args(self): + args = [] + + def append_switch(variant, cmake_flag): + val = 'ON' if variant in self.spec else 'OFF' + + flagdef = '-D' + cmake_flag + ':BOOL=' + val + args.append(flagdef) + + append_switch('+gmp', 'USE_GMP') + append_switch('+xpce', 'SWIPL_PACKAGES_X') + append_switch('+odbc', 'SWIPL_PACKAGES_ODBC') + + # The variants ssl and zlib are implicitly set up by CMake + + return args diff --git a/var/spack/repos/builtin/packages/sysstat/package.py b/var/spack/repos/builtin/packages/sysstat/package.py new file mode 100644 index 0000000000..ae6585cdfd --- /dev/null +++ b/var/spack/repos/builtin/packages/sysstat/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Sysstat(AutotoolsPackage): + """The sysstat package contains various utilities, common to many + commercial Unixes, to monitor system performance and usage activity + Sysstat also contains tools you can schedule via cron or systemd to + collect and historize performance and activity data.""" + + homepage = "https://github.com/sysstat" + url = "https://github.com/sysstat/sysstat/archive/v12.1.6.tar.gz" + + version('12.2.0', sha256='614ab9fe8e7937a3edb7b2b6760792a3764ea3a7310ac540292dd0e3dfac86a6') + version('12.1.7', sha256='293b31ca414915896c639a459f4d03a742b3a472953975394bef907b245b3a9f') + version('12.1.6', sha256='50f4cbf023f8b933ed6f1fee0e6d33e508d9dc20355a47f6927e0c6046c6acf6') + version('12.1.5', sha256='d0ea36f278fe10c7978be2a383cb8055c1277d60687ac9030ba694a08a80f6ff') diff --git a/var/spack/repos/builtin/packages/sz/fix_optimization.patch b/var/spack/repos/builtin/packages/sz/fix_optimization.patch new file mode 100644 index 0000000000..208a7791ee --- /dev/null +++ b/var/spack/repos/builtin/packages/sz/fix_optimization.patch @@ -0,0 +1,11 @@ +--- spack-src/configure.org 2019-12-05 10:58:07.408584611 +0900 ++++ spack-src/configure 2019-12-05 10:58:29.670909716 +0900 +@@ -3019,7 +3019,7 @@ + + + # Checks for programs. +-: ${CFLAGS=-O3 -std=c99 -Wall} ++: ${CFLAGS=-O2 -std=c99 -Wall} + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/var/spack/repos/builtin/packages/sz/package.py b/var/spack/repos/builtin/packages/sz/package.py index 955503bfbf..68a206c153 100644 --- a/var/spack/repos/builtin/packages/sz/package.py +++ b/var/spack/repos/builtin/packages/sz/package.py @@ -11,11 +11,14 @@ class Sz(AutotoolsPackage): """Error-bounded Lossy Compressor for HPC Data.""" homepage = "https://collab.cels.anl.gov/display/ESR/SZ" - url = "https://github.com/disheng222/SZ/archive/v2.0.2.0.tar.gz" + url = "https://github.com/disheng222/SZ/archive/v2.1.8.0.tar.gz" + maintainers = ['disheng222'] + parallel = False git = "https://github.com/disheng222/SZ.git" version('develop', branch='master') + version('2.1.8.0', sha256='8d6bceb59a03d52e601e29d9b35c21b146c248abae352f9a4828e91d8d26aa24') version('2.0.2.0', sha256='176c65b421bdec8e91010ffbc9c7bf7852c799972101d6b66d2a30d9702e59b0') version('1.4.13.5', sha256='b5e37bf3c377833eed0a7ca0471333c96cd2a82863abfc73893561aaba5f18b9') version('1.4.13.4', sha256='c99b95793c48469cac60e6cf82f921babf732ca8c50545a719e794886289432b') @@ -32,6 +35,10 @@ class Sz(AutotoolsPackage): variant('fortran', default=False, description='Enable fortran compilation') + # Part of latest sources don't support -O3 optimization + # with Fujitsu compiler. + patch('fix_optimization.patch', when='@2.0.2.0:%fj') + def configure_args(self): args = [] if '+fortran' in self.spec: diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py index 3ef16bbfcd..5839cb83d7 100644 --- a/var/spack/repos/builtin/packages/tar/package.py +++ b/var/spack/repos/builtin/packages/tar/package.py @@ -6,12 +6,12 @@ from spack import * -class Tar(AutotoolsPackage): +class Tar(AutotoolsPackage, GNUMirrorPackage): """GNU Tar provides the ability to create tar archives, as well as various other kinds of manipulation.""" homepage = "https://www.gnu.org/software/tar/" - url = "https://ftpmirror.gnu.org/tar/tar-1.32.tar.gz" + gnu_mirror_path = "tar/tar-1.32.tar.gz" version('1.32', sha256='b59549594d91d84ee00c99cf2541a3330fed3a42c440503326dab767f2fbb96c') version('1.31', sha256='b471be6cb68fd13c4878297d856aebd50551646f4e3074906b1a74549c40d5a2') diff --git a/var/spack/repos/builtin/packages/targetp/package.py b/var/spack/repos/builtin/packages/targetp/package.py index 98dd560103..11549b9f52 100644 --- a/var/spack/repos/builtin/packages/targetp/package.py +++ b/var/spack/repos/builtin/packages/targetp/package.py @@ -44,6 +44,6 @@ class Targetp(Package): install_tree('tmp', prefix.tmp) install('targetp', prefix.targetp) - def setup_environment(self, spack_env, run_env): - run_env.set('TARGETP', self.prefix) - run_env.prepend_path('PATH', self.prefix) + def setup_run_environment(self, env): + env.set('TARGETP', self.prefix) + env.prepend_path('PATH', self.prefix) diff --git a/var/spack/repos/builtin/packages/tassel/package.py b/var/spack/repos/builtin/packages/tassel/package.py index f78e9e19a0..7f3ab470f3 100644 --- a/var/spack/repos/builtin/packages/tassel/package.py +++ b/var/spack/repos/builtin/packages/tassel/package.py @@ -21,5 +21,5 @@ class Tassel(Package): def install(self, spec, prefix): install_tree('.', prefix.bin) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('CLASSPATH', prefix.bin.lib) + def setup_run_environment(self, env): + env.prepend_path('CLASSPATH', self.prefix.bin.lib) diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index 50c826b610..5d6ed9c285 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -262,7 +262,7 @@ class Tau(Package): if os.path.isdir(src) and not os.path.exists(dest): os.symlink(join_path(subdir, d), dest) - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): pattern = join_path(self.prefix.lib, 'Makefile.*') files = glob.glob(pattern) @@ -272,4 +272,4 @@ class Tau(Package): # directory to inspect. The conditional below will set `TAU_MAKEFILE` # in the latter case. if files: - run_env.set('TAU_MAKEFILE', files[0]) + env.set('TAU_MAKEFILE', files[0]) diff --git a/var/spack/repos/builtin/packages/tcl/package.py b/var/spack/repos/builtin/packages/tcl/package.py index a76c748262..888e57581f 100644 --- a/var/spack/repos/builtin/packages/tcl/package.py +++ b/var/spack/repos/builtin/packages/tcl/package.py @@ -97,17 +97,17 @@ class Tcl(AutotoolsPackage): return join_path(self.tcl_lib_dir, 'tcl{0}'.format(self.version.up_to(2))) - def setup_environment(self, spack_env, run_env): + 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. - run_env.set('TCL_LIBRARY', join_path(self.prefix, self.tcl_lib_dir)) + env.set('TCL_LIBRARY', join_path(self.prefix, self.tcl_lib_dir)) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_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""" - spack_env.set('TCL_LIBRARY', join_path(self.prefix, self.tcl_lib_dir)) + env.set('TCL_LIBRARY', join_path(self.prefix, self.tcl_lib_dir)) # If we set TCLLIBPATH, we must also ensure that the corresponding # tcl is found in the build environment. This to prevent cases @@ -116,7 +116,7 @@ class Tcl(AutotoolsPackage): # it boils down to the same situation we have here. path = os.path.dirname(self.command.path) if not is_system_path(path): - spack_env.prepend_path('PATH', path) + env.prepend_path('PATH', path) tcl_paths = [join_path(self.prefix, self.tcl_builtin_lib_dir)] @@ -130,12 +130,16 @@ class Tcl(AutotoolsPackage): # "TCLLIBPATH is a Tcl list, not some platform-specific # colon-separated or semi-colon separated format" tcllibpath = ' '.join(tcl_paths) - spack_env.set('TCLLIBPATH', tcllibpath) + env.set('TCLLIBPATH', tcllibpath) + + 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): dependent_tcllibpath = join_path(dependent_spec.prefix, self.tcl_lib_dir) - run_env.prepend_path('TCLLIBPATH', dependent_tcllibpath, - separator=' ') + env.prepend_path('TCLLIBPATH', dependent_tcllibpath, separator=' ') diff --git a/var/spack/repos/builtin/packages/templight/package.py b/var/spack/repos/builtin/packages/templight/package.py index 34f75964e1..c4b6aaa617 100644 --- a/var/spack/repos/builtin/packages/templight/package.py +++ b/var/spack/repos/builtin/packages/templight/package.py @@ -101,10 +101,12 @@ class Templight(CMakePackage): with open("tools/clang/tools/CMakeLists.txt", "a") as cmake_lists: cmake_lists.write("add_clang_subdirectory(templight)") - def setup_environment(self, spack_env, run_env): - spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) - run_env.set('CC', join_path(self.spec.prefix.bin, 'templight')) - run_env.set('CXX', join_path(self.spec.prefix.bin, 'templight++')) + def setup_build_environment(self, env): + env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) + + def setup_run_environment(self, env): + env.set('CC', join_path(self.spec.prefix.bin, 'templight')) + env.set('CXX', join_path(self.spec.prefix.bin, 'templight++')) def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py new file mode 100644 index 0000000000..5fccc51321 --- /dev/null +++ b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class TensorflowServingClient(CMakePackage): + """A prebuilt tensorflow serving client from the tensorflow serving + proto files""" + + homepage = "https://github.com/figroc/tensorflow-serving-client" + url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.0.0.tar.gz" + + version('2.0.0', sha256='55310ad484f257173ad5194df7f7116b2049260c3d29049ef8d789d1d8bd9948') + + depends_on('protobuf') + depends_on('grpc') diff --git a/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces.patch b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces.patch new file mode 100644 index 0000000000..d473151116 --- /dev/null +++ b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces.patch @@ -0,0 +1,16 @@ +--- spack-src/tp/Texinfo/Parser.pm.org 2019-11-18 15:02:20.184202910 +0900 ++++ spack-src/tp/Texinfo/Parser.pm 2019-11-18 15:02:46.927022528 +0900 +@@ -5478,11 +5478,11 @@ + } + } elsif ($command eq 'clickstyle') { + # REMACRO +- if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) { ++ if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) { + $args = ['@'.$1]; + $self->{'clickstyle'} = $1; + $remaining = $line; +- $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//; ++ $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*(\@(c|comment)((\@|\s+).*)?)?//; + $has_comment = 1 if (defined($4)); + } else { + $self->line_error (sprintf($self->__( diff --git a/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_2.patch b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_2.patch new file mode 100644 index 0000000000..0b9d9762b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_2.patch @@ -0,0 +1,17 @@ +--- texinfo-6.0/tp/Texinfo/Parser.pm.org 2019-11-20 15:51:15.193575181 +0900 ++++ texinfo-6.0/tp/Texinfo/Parser.pm 2019-11-20 15:51:59.648252047 +0900 +@@ -5650,12 +5650,12 @@ + } + } elsif ($command eq 'clickstyle') { + # REMACRO +- if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) { ++ if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) { + $args = ['@'.$1]; + $self->{'clickstyle'} = $1 + unless(_ignore_global_commands($self)); + $remaining = $line; +- $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//; ++ $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*(\@(c|comment)((\@|\s+).*)?)?//; + $has_comment = 1 if (defined($4)); + } else { + $self->line_error (sprintf($self->__( diff --git a/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_3.patch b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_3.patch new file mode 100644 index 0000000000..1df58784a1 --- /dev/null +++ b/var/spack/repos/builtin/packages/texinfo/fix_unescaped_braces_3.patch @@ -0,0 +1,17 @@ +--- texinfo-5.0/tp/Texinfo/Parser.pm.org 2019-11-20 15:53:10.625719249 +0900 ++++ texinfo-5.0/tp/Texinfo/Parser.pm 2019-11-20 15:53:42.949119841 +0900 +@@ -5299,12 +5299,12 @@ + } + } elsif ($command eq 'clickstyle') { + # REMACRO +- if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) { ++ if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) { + $args = ['@'.$1]; + $self->{'clickstyle'} = $1 + unless(_ignore_global_commands($self)); + my $remaining = $line; +- $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*//; ++ $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*//; + $self->line_warn(sprintf($self->__( + "remaining argument on \@%s line: %s"), + $command, $remaining), $line_nr) if ($remaining); diff --git a/var/spack/repos/builtin/packages/texinfo/package.py b/var/spack/repos/builtin/packages/texinfo/package.py index 155c138b45..3da50cca1f 100644 --- a/var/spack/repos/builtin/packages/texinfo/package.py +++ b/var/spack/repos/builtin/packages/texinfo/package.py @@ -7,7 +7,7 @@ from spack import * -class Texinfo(AutotoolsPackage): +class Texinfo(AutotoolsPackage, GNUMirrorPackage): """Texinfo is the official documentation format of the GNU project. It was invented by Richard Stallman and Bob Chassell many years ago, @@ -15,7 +15,7 @@ class Texinfo(AutotoolsPackage): of the time. It is used by many non-GNU projects as well.""" homepage = "https://www.gnu.org/software/texinfo/" - url = "https://ftpmirror.gnu.org/texinfo/texinfo-6.0.tar.gz" + gnu_mirror_path = "texinfo/texinfo-6.0.tar.gz" version('6.5', sha256='d34272e4042c46186ddcd66bd5d980c0ca14ff734444686ccf8131f6ec8b1427') version('6.3', sha256='300a6ba4958c2dd4a6d5ce60f0a335daf7e379f5374f276f6ba31a221f02f606') @@ -25,3 +25,14 @@ class Texinfo(AutotoolsPackage): version('5.0', sha256='2c579345a39a2a0bb4b8c28533f0b61356504a202da6a25d17d4d866af7f5803') depends_on('perl') + + # Fix unescaped braces in regexps. + # Ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898994 + patch('fix_unescaped_braces.patch', when='@6.3:') + patch('fix_unescaped_braces_2.patch', when='@5.1:6.0') + patch('fix_unescaped_braces_3.patch', when='@5.0') + + # Apply this fix to perform thread-safe processing in code + # that uses the global locale. + # Ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902771 + patch('update_locale_handling.patch', when='@6.3:') diff --git a/var/spack/repos/builtin/packages/texinfo/update_locale_handling.patch b/var/spack/repos/builtin/packages/texinfo/update_locale_handling.patch new file mode 100644 index 0000000000..12c2024ada --- /dev/null +++ b/var/spack/repos/builtin/packages/texinfo/update_locale_handling.patch @@ -0,0 +1,25 @@ +--- spack-src/tp/Texinfo/Convert/XSParagraph/xspara.c.org 2019-11-18 17:33:07.717005871 +0900 ++++ spack-src/tp/Texinfo/Convert/XSParagraph/xspara.c 2019-11-18 17:34:56.318436594 +0900 +@@ -248,6 +248,11 @@ + + dTHX; + ++#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8) ++ /* needed due to thread-safe locale handling in newer perls */ ++ switch_to_global_locale(); ++#endif ++ + if (setlocale (LC_CTYPE, "en_US.UTF-8") + || setlocale (LC_CTYPE, "en_US.utf8")) + goto success; +@@ -319,6 +324,10 @@ + else + { + success: ; ++#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8) ++ /* needed due to thread-safe locale handling in newer perls */ ++ sync_locale(); ++#endif + free (utf8_locale); + /* + fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n"); diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py index cd8e685bbc..ae17275ee2 100644 --- a/var/spack/repos/builtin/packages/texlive/package.py +++ b/var/spack/repos/builtin/packages/texlive/package.py @@ -47,9 +47,9 @@ class Texlive(Package): depends_on('perl', type='build') - def setup_environment(self, spack_env, run_env): + def setup_run_environment(self, env): suffix = "%s-%s" % (platform.machine(), platform.system().lower()) - run_env.prepend_path('PATH', join_path(self.prefix.bin, suffix)) + env.prepend_path('PATH', join_path(self.prefix.bin, suffix)) def install(self, spec, prefix): # Using texlive's mirror system leads to mysterious problems, diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py index 0644ed1fea..098de9bacd 100644 --- a/var/spack/repos/builtin/packages/thrift/package.py +++ b/var/spack/repos/builtin/packages/thrift/package.py @@ -17,7 +17,7 @@ class Thrift(Package): """ homepage = "http://thrift.apache.org" - url = "http://apache.mirrors.ionfish.org/thrift/0.9.2/thrift-0.9.2.tar.gz" + url = "http://apache.mirrors.ionfish.org/thrift/0.11.0/thrift-0.11.0.tar.gz" version('0.11.0', sha256='c4ad38b6cb4a3498310d405a91fef37b9a8e79a50cd0968148ee2524d2fa60c2') version('0.10.0', sha256='2289d02de6e8db04cbbabb921aeb62bfe3098c4c83f36eec6c31194301efa10b') @@ -47,10 +47,10 @@ class Thrift(Package): depends_on('zlib', when='+c') depends_on('libevent', when='+c') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '+pic' in self.spec: - spack_env.append_flags('CFLAGS', self.compiler.pic_flag) - spack_env.append_flags('CXXFLAGS', self.compiler.pic_flag) + env.append_flags('CFLAGS', self.compiler.pic_flag) + env.append_flags('CXXFLAGS', self.compiler.pic_flag) def install(self, spec, prefix): env['PY_PREFIX'] = prefix diff --git a/var/spack/repos/builtin/packages/time/package.py b/var/spack/repos/builtin/packages/time/package.py index 4f15a7513b..a6b7962746 100644 --- a/var/spack/repos/builtin/packages/time/package.py +++ b/var/spack/repos/builtin/packages/time/package.py @@ -7,12 +7,12 @@ from spack import * -class Time(AutotoolsPackage): +class Time(AutotoolsPackage, GNUMirrorPackage): """The time command runs another program, then displays information about the resources used by that program.""" homepage = "https://www.gnu.org/software/time/" - url = "https://ftpmirror.gnu.org/time/time-1.9.tar.gz" + gnu_mirror_path = "time/time-1.9.tar.gz" version('1.9', sha256='fbacf0c81e62429df3e33bda4cee38756604f18e01d977338e23306a3e3b521e') diff --git a/var/spack/repos/builtin/packages/timemory/package.py b/var/spack/repos/builtin/packages/timemory/package.py new file mode 100644 index 0000000000..afbd529ff1 --- /dev/null +++ b/var/spack/repos/builtin/packages/timemory/package.py @@ -0,0 +1,83 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +# +# ---------------------------------------------------------------------------- + +from spack import * + + +class Timemory(CMakePackage): + """Timing + Memory + Hardware Counter Utilities for C/C++/CUDA/Python""" + + homepage = 'https://timemory.readthedocs.io/en/latest/' + git = 'https://github.com/NERSC/timemory.git' + maintainers = ['jrmadsen'] + + version('master', branch='master', submodules=True) + + variant('python', default=True, description='Enable Python support') + variant('mpi', default=False, description='Enable MPI support') + variant('papi', default=True, description='Enable PAPI support') + variant('cuda', default=True, description='Enable CUDA support') + variant('cupti', default=True, description='Enable CUPTI support') + variant('caliper', default=True, description='Enable Caliper support') + variant('gperftools', default=True, description='Enable gperftools support') + + depends_on('cmake@3.10:', type='build') + + extends('python', when='+python') + depends_on('python@3:', when='+python', type=('build', 'run')) + depends_on('py-numpy', when='+python', type=('run')) + depends_on('py-pillow', when='+python', type=('run')) + depends_on('py-matplotlib', when='+python', type=('run')) + depends_on('mpi', when='+mpi') + depends_on('papi', when='+papi') + depends_on('cuda', when='+cuda') + depends_on('caliper', when='+caliper') + depends_on('gperftools', when='+gperftools') + + def cmake_args(self): + spec = self.spec + + # Use spack install of Caliper instead of internal build + args = [ + '-DTIMEMORY_BUILD_CALIPER=OFF', + '-DTIMEMORY_BUILD_TOOLS=ON', + '-DTIMEMORY_BUILD_EXTRA_OPTIMIZATIONS=ON', + '-DTIMEMORY_BUILD_GTEST=OFF', + '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON', + ] + + if '+python' in spec: + args.append('-DPYTHON_EXECUTABLE={0}'.format( + spec['python'].command.path)) + args.append('-DTIMEMORY_BUILD_PYTHON=ON') + args.append('-DTIMEMORY_TLS_MODEL=global-dynamic') + else: + args.append('-DTIMEMORY_BUILD_PYTHON=OFF') + + if '+caliper' in spec: + args.append('-DTIMEMORY_USE_CALIPER=ON') + else: + args.append('-DTIMEMORY_USE_CALIPER=OFF') + + if '+papi' in spec: + args.append('-DTIMEMORY_USE_PAPI=ON') + args.append('-DPAPI_ROOT_DIR={0}'.format(spec['papi'].prefix)) + else: + args.append('-DTIMEMORY_USE_PAPI=OFF') + + if '+mpi' in spec: + args.append('-DMPI_C_COMPILER={0}'.format(spec['mpi'].mpicc)) + args.append('-DMPI_CXX_COMPILER={0}'.format(spec['mpi'].mpicxx)) + else: + args.append('-DTIMEMORY_USE_MPI=OFF') + + if '+cupti' in spec: + args.append('-DTIMEMORY_USE_CUPTI=ON') + else: + args.append('-DTIMEMORY_USE_CUPTI=OFF') + + return args diff --git a/var/spack/repos/builtin/packages/tinker/package.py b/var/spack/repos/builtin/packages/tinker/package.py new file mode 100644 index 0000000000..aefee75ba7 --- /dev/null +++ b/var/spack/repos/builtin/packages/tinker/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Tinker(CMakePackage): + """The Tinker molecular modeling software is a complete and general + package for molecular mechanics and dynamics, with some special + features for biopolymers. + """ + + homepage = "https://dasher.wustl.edu/tinker/" + url = "https://dasher.wustl.edu/tinker/downloads/tinker-8.7.1.tar.gz" + + version('8.7.1', sha256='0d6eff8bbc9be0b37d62b6fd3da35bb5499958eafe67aa9c014c4648c8b46d0f') + patch('tinker-8.7.1-cmake.patch') + + depends_on('fftw') + + root_cmakelists_dir = 'source' diff --git a/var/spack/repos/builtin/packages/tinker/tinker-8.7.1-cmake.patch b/var/spack/repos/builtin/packages/tinker/tinker-8.7.1-cmake.patch new file mode 100644 index 0000000000..e07d05a7dc --- /dev/null +++ b/var/spack/repos/builtin/packages/tinker/tinker-8.7.1-cmake.patch @@ -0,0 +1,113 @@ +From c31e54353cf587c83c823544849226840fdb26da Mon Sep 17 00:00:00 2001 +From: Christoph Junghans <junghans@votca.org> +Date: Sat, 23 Nov 2019 19:40:58 -0700 +Subject: [PATCH] add initial version of CMake build system + +--- + source/CMakeLists.txt | 94 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 94 insertions(+) + create mode 100644 source/CMakeLists.txt + +diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt +new file mode 100644 +index 0000000..c1f9831 +--- /dev/null ++++ b/source/CMakeLists.txt +@@ -0,0 +1,94 @@ ++cmake_minimum_required(VERSION 3.10) ++ ++project(tinker VERSION 8.7.1 LANGUAGES Fortran) ++ ++include(GNUInstallDirs) ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(FFTW3 REQUIRED IMPORTED_TARGET fftw3) ++ ++add_library(tinker ++ action.f active.f align.f analysis.f analyz.f angang.f angbnd.f ++ angles.f angpot.f angtor.f argue.f ascii.f atmlst.f atomid.f atoms.f ++ attach.f baoab.f basefile.f bath.f beeman.f bicubic.f bitor.f bitors.f ++ bndpot.f bndstr.f bonds.f born.f bound.f bounds.f boxes.f bussi.f ++ calendar.f cell.f center.f charge.f chgpen.f chgpot.f chgtrn.f ++ chkpole.f chkring.f chkxyz.f cholesky.f chrono.f chunks.f clock.f ++ cluster.f column.f command.f connect.f connolly.f control.f couple.f ++ cspline.f ctrpot.f cutoffs.f damping.f deflate.f delete.f deriv.f ++ diagq.f diffeq.f dipole.f disgeo.f disp.f dma.f domega.f dsppot.f ++ eangang.f eangang1.f eangang2.f eangang3.f eangle.f eangle1.f ++ eangle2.f eangle3.f eangtor.f eangtor1.f eangtor2.f eangtor3.f ebond.f ++ ebond1.f ebond2.f ebond3.f ebuck.f ebuck1.f ebuck2.f ebuck3.f ++ echarge.f echarge1.f echarge2.f echarge3.f echgdpl.f echgdpl1.f ++ echgdpl2.f echgdpl3.f echgtrn.f echgtrn1.f echgtrn2.f echgtrn3.f ++ edipole.f edipole1.f edipole2.f edipole3.f edisp.f edisp1.f edisp2.f ++ edisp3.f egauss.f egauss1.f egauss2.f egauss3.f egeom.f egeom1.f ++ egeom2.f egeom3.f ehal.f ehal1.f ehal2.f ehal3.f eimprop.f eimprop1.f ++ eimprop2.f eimprop3.f eimptor.f eimptor1.f eimptor2.f eimptor3.f elj.f ++ elj1.f elj2.f elj3.f embed.f emetal.f emetal1.f emetal2.f emetal3.f ++ emm3hb.f emm3hb1.f emm3hb2.f emm3hb3.f empole.f empole1.f empole2.f ++ empole3.f energi.f energy.f eopbend.f eopbend1.f eopbend2.f eopbend3.f ++ eopdist.f eopdist1.f eopdist2.f eopdist3.f epitors.f epitors1.f ++ epitors2.f epitors3.f epolar.f epolar1.f epolar2.f epolar3.f erepel.f ++ erepel1.f erepel2.f erepel3.f erf.f erxnfld.f erxnfld1.f erxnfld2.f ++ erxnfld3.f esolv.f esolv1.f esolv2.f esolv3.f estrbnd.f estrbnd1.f ++ estrbnd2.f estrbnd3.f estrtor.f estrtor1.f estrtor2.f estrtor3.f ++ etors.f etors1.f etors2.f etors3.f etortor.f etortor1.f etortor2.f ++ etortor3.f eurey.f eurey1.f eurey2.f eurey3.f evcorr.f ewald.f extra.f ++ extra1.f extra2.f extra3.f faces.f fatal.f fft.f fft3d.f fftpack.f ++ field.f fields.f files.f final.f flatten.f fracs.f freeunit.f freeze.f ++ geometry.f getarc.f getint.f getkey.f getmol.f getmol2.f getnumb.f ++ getpdb.f getprm.f getref.f getstring.f gettext.f getword.f getxyz.f ++ ghmcstep.f gkstuf.f gradient.f gradrgd.f gradrot.f group.f groups.f ++ grpline.f gyrate.f hescut.f hessian.f hessn.f hessrgd.f hessrot.f ++ hpmf.f hybrid.f ielscf.f image.f impose.f improp.f imptor.f induce.f ++ inertia.f inform.f initatom.f initial.f initprm.f initres.f initrot.f ++ insert.f inter.f invbeta.f invert.f iounit.f jacobi.f kanang.f ++ kangang.f kangle.f kangs.f kangtor.f kantor.f katom.f katoms.f kbond.f ++ kbonds.f kcharge.f kchgtrn.f kchrge.f kcpen.f kctrn.f kdipol.f ++ kdipole.f kdisp.f kdsp.f kewald.f kextra.f keys.f kgeom.f khbond.f ++ kimprop.f kimptor.f kinetic.f kiprop.f kitors.f kmetal.f kmpole.f ++ kmulti.f kopbend.f kopbnd.f kopdist.f kopdst.f korbit.f korbs.f ++ kpitor.f kpitors.f kpolar.f kpolr.f krepel.f krepl.f ksolv.f kstbnd.f ++ kstrbnd.f kstrtor.f ksttor.f ktors.f ktorsn.f ktortor.f ktrtor.f ++ kurey.f kurybr.f kvdw.f kvdwpr.f kvdws.f lattice.f lbfgs.f light.f ++ lights.f limits.f linmin.f makeint.f makeref.f makexyz.f math.f ++ maxwell.f mdinit.f mdrest.f mdsave.f mdstat.f mdstuf.f mechanic.f ++ merck.f merge.f minima.f molcul.f moldyn.f molecule.f moment.f ++ moments.f mplpot.f mpole.f mrecip.f mutant.f mutate.f nblist.f neigh.f ++ nextarg.f nexttext.f nonpol.f nose.f nspline.f nucleo.f number.f ++ numeral.f numgrad.f ocvm.f omega.f opbend.f opdist.f openend.f ++ openmp.f optinit.f optsave.f orbital.f orbits.f orient.f orthog.f ++ output.f overlap.f params.f paths.f pbstuf.f pdb.f phipsi.f picalc.f ++ piorbs.f pistuf.f pitors.f pme.f pmestuf.f pmpb.f polar.f polgrp.f ++ polopt.f polpcg.f polpot.f poltcg.f polymer.f potent.f potfit.f ++ pressure.f prmkey.f promo.f prtdyn.f prterr.f prtint.f prtmol2.f ++ prtpdb.f prtprm.f prtseq.f prtxyz.f ptable.f qmstuf.f qrfact.f ++ quatfit.f random.f rattle.f readdyn.f readgau.f readgdma.f readint.f ++ readmol.f readmol2.f readpdb.f readprm.f readseq.f readxyz.f refer.f ++ repel.f replica.f reppot.f resdue.f respa.f restrn.f rgddyn.f ++ rgdstep.f rigid.f ring.f rings.f rmsfit.f rotbnd.f rotlist.f rotpole.f ++ rxnfld.f rxnpot.f scales.f sdstep.f search.f sequen.f server.f ++ shakeup.f shunt.f sigmoid.f simplex.f sizes.f sktstuf.f socket.f ++ solute.f sort.f square.f stodyn.f strbnd.f strtor.f suffix.f surface.f ++ surfatom.f switch.f syntrn.f tarray.f tcgstuf.f temper.f titles.f ++ tncg.f torphase.f torpot.f torque.f tors.f torsions.f tortor.f tree.f ++ trimtext.f unitcell.f units.f uprior.f urey.f urypot.f usage.f ++ valfit.f vdw.f vdwpot.f verlet.f version.f vibs.f virial.f volume.f ++ warp.f xtals.f xyzatm.f zatom.f zclose.f zcoord.f) ++install(TARGETS tinker LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ ++foreach(_BIN ++ alchemy analyze anneal archive bar correlate crystal diffuse ++ distgeom document dynamic gda intedit intxyz minimize minirot ++ minrigid mol2xyz molxyz monte newton newtrot nucleic optimize ++ optirot optrigid path pdbxyz polarize poledit potential ++ prmedit protein pss pssrigid pssrot radial saddle scan sniffer ++ spacefill spectrum superpose testgrad testhess testpair ++ testpol testrot testvir timer timerot torsfit valence vibbig ++ vibrate vibrot xtalfit xtalmin xyzedit xyzint xyzmol2 xyzpdb) ++ add_executable(${_BIN}.x ${_BIN}.f) ++ target_link_libraries(${_BIN}.x tinker PkgConfig::FFTW3) ++ install(TARGETS ${_BIN}.x DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endforeach() +-- +2.23.0 + diff --git a/var/spack/repos/builtin/packages/tk/package.py b/var/spack/repos/builtin/packages/tk/package.py index 0533e54e05..2ed1f07a0f 100644 --- a/var/spack/repos/builtin/packages/tk/package.py +++ b/var/spack/repos/builtin/packages/tk/package.py @@ -60,14 +60,14 @@ class Tk(AutotoolsPackage): return find_libraries(['libtk{0}'.format(self.version.up_to(2))], root=self.prefix, recursive=True) - def setup_environment(self, spack_env, run_env): + 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. - run_env.set('TK_LIBRARY', join_path(self.prefix.lib, 'tk{0}'.format( + env.set('TK_LIBRARY', join_path(self.prefix.lib, 'tk{0}'.format( self.spec.version.up_to(2)))) - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('TK_LIBRARY', join_path(self.prefix.lib, 'tk{0}'.format( + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('TK_LIBRARY', join_path(self.prefix.lib, 'tk{0}'.format( self.spec.version.up_to(2)))) def configure_args(self): diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index 39884d2956..84a5117b16 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -17,6 +17,8 @@ class Tmux(AutotoolsPackage): homepage = "http://tmux.github.io" url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz" + version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9') + version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980') version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba') version('2.7', sha256='9ded7d100313f6bc5a87404a4048b3745d61f2332f99ec1400a7c4ed9485d452') version('2.6', sha256='b17cd170a94d7b58c0698752e1f4f263ab6dc47425230df7e53a6435cc7cd7e8') diff --git a/var/spack/repos/builtin/packages/tppred/package.py b/var/spack/repos/builtin/packages/tppred/package.py index a4ae099733..1c325e8384 100644 --- a/var/spack/repos/builtin/packages/tppred/package.py +++ b/var/spack/repos/builtin/packages/tppred/package.py @@ -31,5 +31,5 @@ class Tppred(Package): install_tree('example', prefix.example) install_tree('tppred2modules', prefix.modules) - def setup_environment(self, spack_env, run_env): - run_env.set('TPPRED_ROOT', prefix) + def setup_run_environment(self, env): + env.set('TPPRED_ROOT', self.prefix) diff --git a/var/spack/repos/builtin/packages/transabyss/package.py b/var/spack/repos/builtin/packages/transabyss/package.py index 85cf56bd85..a77fcbd621 100644 --- a/var/spack/repos/builtin/packages/transabyss/package.py +++ b/var/spack/repos/builtin/packages/transabyss/package.py @@ -16,7 +16,7 @@ class Transabyss(Package): depends_on('abyss@1.5.2') depends_on('python@2.7.6:', type=('build', 'run')) - depends_on('py-igraph@0.7.0:', type=('build', 'run')) + depends_on('py-python-igraph@0.7.0:', type=('build', 'run')) depends_on('blat') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/transdecoder/package.py b/var/spack/repos/builtin/packages/transdecoder/package.py index b49b67ae9b..206aac6719 100644 --- a/var/spack/repos/builtin/packages/transdecoder/package.py +++ b/var/spack/repos/builtin/packages/transdecoder/package.py @@ -29,6 +29,6 @@ class Transdecoder(MakefilePackage): install_tree('PerlLib', prefix.PerlLib) install_tree('util', prefix.util) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', prefix) - run_env.prepend_path('PATH', prefix.util) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) + env.prepend_path('PATH', self.prefix.util) 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 f1bc186dcf..0826b8d00c 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 @@ -10,7 +10,6 @@ class TrilinosCatalystIossAdapter(CMakePackage): """Adapter for Trilinos Seacas Ioss and Paraview Catalyst""" homepage = "https://trilinos.org/" - url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" version('develop', branch='develop') @@ -20,17 +19,17 @@ class TrilinosCatalystIossAdapter(CMakePackage): depends_on('flex', type='build') depends_on('paraview+mpi+python+osmesa') depends_on('py-numpy', type=('build', 'run')) - # Here we avoid paraview trying to use netcdf~parallel-netcdf - # which is netcdf's default, even though paraview depends on 'netcdf' + # Here we avoid paraview trying to use netcdf-c~parallel-netcdf + # which is netcdf-c's default, even though paraview depends on 'netcdf-c' # without any variants. Concretizer bug? - depends_on('netcdf+parallel-netcdf') + depends_on('netcdf-c+parallel-netcdf') root_cmakelists_dir = join_path('packages', 'seacas', 'libraries', 'ioss', 'src', 'visualization', 'ParaViewCatalystIossAdapter') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PYTHONPATH', self.prefix.python) + def setup_run_environment(self, env): + env.prepend_path('PYTHONPATH', self.prefix.python) def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 3a456ee093..f0653a4bb6 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -35,6 +35,7 @@ class Trilinos(CMakePackage): version('xsdk-0.2.0', tag='xsdk-0.2.0') version('develop', branch='develop') version('master', branch='master') + version('12.18.1', commit='55a75997332636a28afc9db1aee4ae46fe8d93e7') # tag trilinos-release-12-8-1 version('12.14.1', sha256='52a4406cca2241f5eea8e166c2950471dd9478ad6741cbb2a7fc8225814616f0') version('12.12.1', sha256='5474c5329c6309224a7e1726cf6f0d855025b2042959e4e2be2748bd6bb49e18') version('12.10.1', sha256='ab81d917196ffbc21c4927d42df079dd94c83c1a08bda43fef2dd34d0c1a5512') @@ -192,6 +193,12 @@ class Trilinos(CMakePackage): when='+dtk @12.14.0:12.14.99') resource(name='dtk', git='https://github.com/ornl-cees/DataTransferKit.git', + commit='edfa050cd46e2274ab0a0b7558caca0079c2e4ca', # tag 3.1-rc1 + 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, @@ -255,7 +262,7 @@ class Trilinos(CMakePackage): conflicts('+dtk', when='~teuchos') conflicts('+dtk', when='~tpetra') # Only allow DTK with Trilinos 12.14 and develop - conflicts('+dtk', when='@0:12.12.99,12.16.0:99,master') + conflicts('+dtk', when='@0:12.12.99,master') conflicts('+fortrilinos', when='~fortran') conflicts('+fortrilinos', when='@:99') conflicts('+fortrilinos', when='@master') @@ -297,8 +304,8 @@ class Trilinos(CMakePackage): # MPI related dependencies depends_on('mpi') - depends_on('netcdf@:4.7.1+mpi', when="~pnetcdf") - depends_on('netcdf+mpi+parallel-netcdf', when="+pnetcdf@master,12.12.1:") + depends_on('netcdf-c+mpi', when="~pnetcdf") + depends_on('netcdf-c+mpi+parallel-netcdf', when="+pnetcdf@master,12.12.1:") depends_on('parallel-netcdf', when="+pnetcdf@master,12.12.1:") depends_on('parmetis', when='+metis') depends_on('cgns', when='+cgns') @@ -505,7 +512,7 @@ class Trilinos(CMakePackage): '-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names), '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories), '-DTPL_ENABLE_Netcdf:BOOL=ON', - '-DNetCDF_ROOT:PATH=%s' % spec['netcdf'].prefix, + '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, '-DTPL_ENABLE_X11:BOOL=%s' % ( 'ON' if '+x11' in spec else 'OFF'), '-DTrilinos_ENABLE_Gtest:BOOL=%s' % ( diff --git a/var/spack/repos/builtin/packages/trimgalore/package.py b/var/spack/repos/builtin/packages/trimgalore/package.py index fd26b945ed..da0ed512b0 100644 --- a/var/spack/repos/builtin/packages/trimgalore/package.py +++ b/var/spack/repos/builtin/packages/trimgalore/package.py @@ -14,6 +14,9 @@ class Trimgalore(Package): homepage = "https://github.com/FelixKrueger/TrimGalore" url = "https://github.com/FelixKrueger/TrimGalore/archive/0.4.4.tar.gz" + version('0.6.4', sha256='eb57e18203d8a1dce1397b930a348a9969eebaa758b8a7304d04c22f216cea2d') + version('0.6.3', sha256='c85104452dbb5cfa8c9307920e804fb53baaad355ce656b111f5243e5eb92db4') + version('0.6.2', sha256='c50b841bdc294a6cdc6a27fb7bfbed1973541d20a68a4708584b817c58b3f376') version('0.6.1', sha256='658578c29d007fe66f9ab49608442be703a6fcf535db06eb82659c7edccb62b0') version('0.6.0', sha256='f374dfa4c94e2ad50c63276dda0f341fd95b29cb1d5a0e2ad56e8b0168b758ec') version('0.4.5', sha256='a6b97e554944ddc6ecd50e78df486521f17225d415aad84e9911163faafe1f3c') diff --git a/var/spack/repos/builtin/packages/trinity/package.py b/var/spack/repos/builtin/packages/trinity/package.py index 997e36c0ef..68b8c7b98c 100644 --- a/var/spack/repos/builtin/packages/trinity/package.py +++ b/var/spack/repos/builtin/packages/trinity/package.py @@ -52,7 +52,7 @@ class Trinity(MakefilePackage): depends_on("samtools", type="run") depends_on("py-numpy", type="run") depends_on("express", type="run") - depends_on("perl-dbfile", type="run") + depends_on("perl-db-file", type="run") depends_on("perl-uri", type="run") depends_on("r-fastcluster", type="run") depends_on("r-ctc", type="run") @@ -85,7 +85,9 @@ class Trinity(MakefilePackage): force_remove(join_path(prefix.bin, 'trinity-plugins', 'slclust', 'bin', '.hidden')) - def setup_environment(self, spack_env, run_env): - run_env.set('TRINITY_HOME', self.prefix.bin) - run_env.prepend_path('PATH', self.prefix.bin.util) - spack_env.append_flags('CXXFLAGS', self.compiler.openmp_flag) + def setup_build_environment(self, env): + env.append_flags('CXXFLAGS', self.compiler.openmp_flag) + + def setup_run_environment(self, env): + env.set('TRINITY_HOME', self.prefix.bin) + env.prepend_path('PATH', self.prefix.bin.util) diff --git a/var/spack/repos/builtin/packages/turbine/package.py b/var/spack/repos/builtin/packages/turbine/package.py index 4788efd070..902cae7a94 100644 --- a/var/spack/repos/builtin/packages/turbine/package.py +++ b/var/spack/repos/builtin/packages/turbine/package.py @@ -13,7 +13,7 @@ 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-0.0.0.tar.gz' + url = 'http://swift-lang.github.io/swift-t-downloads/spack/turbine-1.2.3.tar.gz' git = "https://github.com/swift-lang/swift-t.git" configure_directory = 'turbine/code' @@ -44,12 +44,12 @@ class Turbine(AutotoolsPackage): depends_on('libtool', type='build', when='@master') depends_on('m4', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): spec = self.spec - spack_env.set('CC', spec['mpi'].mpicc) - spack_env.set('CXX', spec['mpi'].mpicxx) - spack_env.set('CXXLD', spec['mpi'].mpicxx) + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + env.set('CXXLD', spec['mpi'].mpicxx) @property def configure_directory(self): diff --git a/var/spack/repos/builtin/packages/turbomole/package.py b/var/spack/repos/builtin/packages/turbomole/package.py index fc331a1429..0c996fcf18 100644 --- a/var/spack/repos/builtin/packages/turbomole/package.py +++ b/var/spack/repos/builtin/packages/turbomole/package.py @@ -52,9 +52,8 @@ class Turbomole(Package): return def install(self, spec, prefix): - if spec.satisfies('@:7.0.2'): - calculate_version = 'calculate_2.4_linux64' - molecontrol_version = 'MoleControl_2.5' + calculate_version = 'calculate_2.4_linux64' + molecontrol_version = 'MoleControl_2.5' tm_arch = self.get_tm_arch() @@ -114,33 +113,25 @@ class Turbomole(Package): install('mpirun_scripts/ricc2', join_path(dst, 'mpirun_scripts')) install('mpirun_scripts/ridft', join_path(dst, 'mpirun_scripts')) - def setup_environment(self, spack_env, run_env): - if self.spec.satisfies('@:7.0.2'): - molecontrol_version = 'MoleControl_2.5' + def setup_run_environment(self, env): + molecontrol_version = 'MoleControl_2.5' tm_arch = self.get_tm_arch() - run_env.set('TURBODIR', join_path(self.prefix, 'TURBOMOLE')) - run_env.set('MOLE_CONTROL', - join_path(self.prefix, 'TURBOMOLE', molecontrol_version)) + env.set('TURBODIR', self.prefix.TURBOMOLE) + env.set('MOLE_CONTROL', + join_path(self.prefix, 'TURBOMOLE', molecontrol_version)) - run_env.prepend_path('PATH', - join_path(self.prefix, 'TURBOMOLE', 'thermocalc')) - run_env.prepend_path('PATH', - join_path(self.prefix, 'TURBOMOLE', 'scripts')) + env.prepend_path('PATH', self.prefix.TURBOMOLE.thermocalc) + env.prepend_path('PATH', self.prefix.TURBOMOLE.scripts) if '+mpi' in self.spec: - run_env.set('PARA_ARCH', 'MPI') - run_env.prepend_path('PATH', - join_path(self.prefix, - 'TURBOMOLE', 'bin', '%s_mpi' - % tm_arch)) + env.set('PARA_ARCH', 'MPI') + env.prepend_path('PATH', join_path( + self.prefix, 'TURBOMOLE', 'bin', '%s_mpi' % tm_arch)) elif '+smp' in self.spec: - run_env.set('PARA_ARCH', 'SMP') - run_env.prepend_path('PATH', - join_path(self.prefix, - 'TURBOMOLE', 'bin', '%s_smp' - % tm_arch)) + env.set('PARA_ARCH', 'SMP') + env.prepend_path('PATH', join_path( + self.prefix, 'TURBOMOLE', 'bin', '%s_smp' % tm_arch)) else: - run_env.prepend_path('PATH', - join_path(self.prefix, - 'TURBOMOLE', 'bin', tm_arch)) + env.prepend_path('PATH', join_path( + self.prefix, 'TURBOMOLE', 'bin', tm_arch)) diff --git a/var/spack/repos/builtin/packages/udunits2/package.py b/var/spack/repos/builtin/packages/udunits/package.py index c5704d6a5e..e3e31bee5c 100644 --- a/var/spack/repos/builtin/packages/udunits2/package.py +++ b/var/spack/repos/builtin/packages/udunits/package.py @@ -6,7 +6,7 @@ from spack import * -class Udunits2(AutotoolsPackage): +class Udunits(AutotoolsPackage): """Automated units conversion""" homepage = "http://www.unidata.ucar.edu/software/udunits" diff --git a/var/spack/repos/builtin/packages/units/package.py b/var/spack/repos/builtin/packages/units/package.py index 354489d54a..9ca6a815a6 100644 --- a/var/spack/repos/builtin/packages/units/package.py +++ b/var/spack/repos/builtin/packages/units/package.py @@ -6,11 +6,11 @@ from spack import * -class Units(AutotoolsPackage): +class Units(AutotoolsPackage, GNUMirrorPackage): """GNU units converts between different systems of units""" homepage = "https://www.gnu.org/software/units/" - url = "https://ftpmirror.gnu.org/units/units-2.13.tar.gz" + gnu_mirror_path = "units/units-2.13.tar.gz" version('2.13', sha256='0ba5403111f8e5ea22be7d51ab74c8ccb576dc30ddfbf18a46cb51f9139790ab') diff --git a/var/spack/repos/builtin/packages/upcxx/package.py b/var/spack/repos/builtin/packages/upcxx/package.py index 8afd7286e2..d4975d3a35 100644 --- a/var/spack/repos/builtin/packages/upcxx/package.py +++ b/var/spack/repos/builtin/packages/upcxx/package.py @@ -45,32 +45,33 @@ class Upcxx(Package): url = "https://bitbucket.org/berkeleylab/upcxx/downloads/upcxx-{0}-offline.tar.gz" return url.format(version) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if 'platform=cray' in self.spec: - spack_env.set('GASNET_CONFIGURE_ARGS', '--enable-mpi=probe') + env.set('GASNET_CONFIGURE_ARGS', '--enable-mpi=probe') if 'cross=none' not in self.spec: - spack_env.set('CROSS', self.spec.variants['cross'].value) + env.set('CROSS', self.spec.variants['cross'].value) if '+cuda' in self.spec: - spack_env.set('UPCXX_CUDA', '1') - spack_env.set('UPCXX_CUDA_NVCC', self.spec['cuda'].prefix.bin.nvcc) + env.set('UPCXX_CUDA', '1') + env.set('UPCXX_CUDA_NVCC', self.spec['cuda'].prefix.bin.nvcc) - run_env.set('UPCXX_INSTALL', self.prefix) - run_env.set('UPCXX', self.prefix.bin.upcxx) + def setup_run_environment(self, env): + env.set('UPCXX_INSTALL', self.prefix) + env.set('UPCXX', self.prefix.bin.upcxx) if 'platform=cray' in self.spec: - run_env.set('UPCXX_GASNET_CONDUIT', 'aries') - run_env.set('UPCXX_NETWORK', 'aries') + env.set('UPCXX_GASNET_CONDUIT', 'aries') + env.set('UPCXX_NETWORK', 'aries') def setup_dependent_package(self, module, dep_spec): dep_spec.upcxx = self.prefix.bin.upcxx - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.set('UPCXX_INSTALL', self.prefix) - spack_env.set('UPCXX', self.prefix.bin.upcxx) + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('UPCXX_INSTALL', self.prefix) + env.set('UPCXX', self.prefix.bin.upcxx) if 'platform=cray' in self.spec: - spack_env.set('UPCXX_GASNET_CONDUIT', 'aries') - spack_env.set('UPCXX_NETWORK', 'aries') + env.set('UPCXX_GASNET_CONDUIT', 'aries') + env.set('UPCXX_NETWORK', 'aries') def install(self, spec, prefix): env['CC'] = self.compiler.cc diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py index 26de9b3efd..150e27fef7 100644 --- a/var/spack/repos/builtin/packages/util-macros/package.py +++ b/var/spack/repos/builtin/packages/util-macros/package.py @@ -17,7 +17,6 @@ class UtilMacros(AutotoolsPackage): version('1.19.1', sha256='18d459400558f4ea99527bc9786c033965a3db45bf4c6a32eefdc07aa9e306a6') version('1.19.0', sha256='2835b11829ee634e19fa56517b4cfc52ef39acea0cd82e15f68096e27cbed0ba') - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + def setup_dependent_build_environment(self, env, dependent_spec): """Adds the ACLOCAL path for autotools.""" - spack_env.append_path('ACLOCAL_PATH', - join_path(self.prefix.share, 'aclocal')) + env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal) diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py index 5691af014c..eca754a3c2 100644 --- a/var/spack/repos/builtin/packages/valgrind/package.py +++ b/var/spack/repos/builtin/packages/valgrind/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import glob import sys @@ -67,3 +68,10 @@ clang: error: unknown argument: '-static-libubsan' if sys.platform == 'darwin': options.append('--build=amd64-darwin') return options + + # Valgrind the potential for overlong perl shebangs + def patch(self): + for link_tool_in in glob.glob('coregrind/link_tool_exe_*.in'): + filter_file('^#! @PERL@', + '#! /usr/bin/env perl', + link_tool_in) diff --git a/var/spack/repos/builtin/packages/varscan/package.py b/var/spack/repos/builtin/packages/varscan/package.py index 9b6dc2e36c..ce2f6784b8 100644 --- a/var/spack/repos/builtin/packages/varscan/package.py +++ b/var/spack/repos/builtin/packages/varscan/package.py @@ -35,6 +35,6 @@ class Varscan(Package): filter_file('varscan.jar', join_path(prefix.jar, jar_file), script, **kwargs) - def setup_environment(self, spack_env, run_env): - run_env.set('VARSCAN_HOME', self.prefix.jar) - run_env.set('CLASSPATH', self.prefix.jar) + def setup_run_environment(self, env): + env.set('VARSCAN_HOME', self.prefix.jar) + env.set('CLASSPATH', self.prefix.jar) diff --git a/var/spack/repos/builtin/packages/vcftools/package.py b/var/spack/repos/builtin/packages/vcftools/package.py index 5368ddd931..5756d8457c 100644 --- a/var/spack/repos/builtin/packages/vcftools/package.py +++ b/var/spack/repos/builtin/packages/vcftools/package.py @@ -23,7 +23,7 @@ class Vcftools(AutotoolsPackage): depends_on('perl', type=('build', 'run')) depends_on('zlib') - # this needs to be in sync with what setup_environment adds to + # this needs to be in sync with what setup_run_environment adds to # PERL5LIB below def configure_args(self): return ['--with-pmdir={0}'.format(self.prefix.lib)] @@ -51,5 +51,5 @@ class Vcftools(AutotoolsPackage): kwargs = {'ignore_absent': True, 'backup': False, 'string': False} filter_file(match, substitute, *files, **kwargs) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PERL5LIB', self.prefix.lib) + def setup_run_environment(self, env): + env.prepend_path('PERL5LIB', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/verilator/package.py b/var/spack/repos/builtin/packages/verilator/package.py index 89da6e1409..9522d477d8 100644 --- a/var/spack/repos/builtin/packages/verilator/package.py +++ b/var/spack/repos/builtin/packages/verilator/package.py @@ -42,8 +42,8 @@ class Verilator(AutotoolsPackage): depends_on('flex') depends_on('perl', type=('build', 'run')) - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('VERILATOR_ROOT', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('VERILATOR_ROOT', self.prefix) # verilator requires access to its shipped scripts (bin) and include # but the standard make doesn't put it in the correct places diff --git a/var/spack/repos/builtin/packages/vesta/package.py b/var/spack/repos/builtin/packages/vesta/package.py index 918c44b7fb..1b5560bce9 100644 --- a/var/spack/repos/builtin/packages/vesta/package.py +++ b/var/spack/repos/builtin/packages/vesta/package.py @@ -21,9 +21,9 @@ class Vesta(Package): conflicts('%gcc@:5.3') - def setup_environment(self, spack_env, run_env): - run_env.prepend_path('PATH', self.prefix) - run_env.prepend_path('LD_LIBRARY_PATH', self.prefix) + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', self.prefix) def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index fe514c97d0..d2ea66ab16 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -57,6 +57,7 @@ class Vim(AutotoolsPackage): depends_on('libxtst', when="+x") depends_on('ncurses', when="@7.4:") + depends_on('findutils', type='build') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index e9bea6592f..057916dce7 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -30,19 +30,21 @@ class Visit(CMakePackage): patch('spack-changes.patch') patch('nonframework-qwt.patch', when='^qt~framework platform=darwin') + patch('parallel-hdf5.patch', when='+hdf5+mpi') depends_on('cmake@3.0:', type='build') depends_on('vtk@8.1.0:+opengl2', when='@3.0:3.0.1') depends_on('vtk@6.1.0~opengl2', when='@:2.999') depends_on('vtk+python', when='+python @3.0:') - depends_on('vtk~mpi') + 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:') depends_on('qwt', when='+gui') depends_on('python@2.6:2.8', when='+python') depends_on('silo+shared', when='+silo') - depends_on('hdf5', when='+hdf5') + depends_on('hdf5~mpi', when='+hdf5~mpi') + depends_on('hdf5+mpi', when='+hdf5+mpi') depends_on('mpi', when='+mpi') depends_on('adios2', when='+adios2') @@ -91,7 +93,7 @@ class Visit(CMakePackage): if '+hdf5' in spec: args.append( '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix)) - if spec.satisfies('^hdf5+mpi', strict=True): + if '+mpi' in spec: args.append('-DVISIT_HDF5_MPI_DIR:PATH={0}'.format( spec['hdf5'].prefix)) diff --git a/var/spack/repos/builtin/packages/visit/parallel-hdf5.patch b/var/spack/repos/builtin/packages/visit/parallel-hdf5.patch new file mode 100644 index 0000000000..f6fca356e8 --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/parallel-hdf5.patch @@ -0,0 +1,19 @@ +--- a/src/CMake/FindHDF5.cmake 2019-02-15 18:31:27.000000000 -0500 ++++ b/src/CMake/FindHDF5.cmake 2019-11-08 07:57:26.000000000 -0500 +@@ -46,7 +46,7 @@ + # + #****************************************************************************/ + +-# Use the HDF5_DIR hint from the config-site .cmake file ++# Use the HDF5_DIR hint from the config-site .cmake file + + INCLUDE(${VISIT_SOURCE_DIR}/CMake/SetUpThirdParty.cmake) + +@@ -73,6 +73,6 @@ + ELSE() + SET_UP_THIRD_PARTY(HDF5 lib include hdf5) + IF(VISIT_PARALLEL) +- SET_UP_THIRD_PARTY(HDF5_MPI lib include hdf5_mpi) ++ SET_UP_THIRD_PARTY(HDF5_MPI lib include hdf5) + ENDIF(VISIT_PARALLEL) + ENDIF() diff --git a/var/spack/repos/builtin/packages/vmatch/package.py b/var/spack/repos/builtin/packages/vmatch/package.py index 3cedce4ede..b4433f6174 100644 --- a/var/spack/repos/builtin/packages/vmatch/package.py +++ b/var/spack/repos/builtin/packages/vmatch/package.py @@ -15,9 +15,5 @@ class Vmatch(Package): version('2.3.0', sha256='5e18d0dddf04e86dad193fcdde6e48f3901365932634125602d8808f35acf979') - def url_for_version(self, version): - url = 'http://www.vmatch.de/distributions/vmatch-{0}-Linux_x86_64-64bit.tar.gz' - return url.format(version) - def install(self, spec, prefix): install_tree(self.stage.source_path, prefix.bin) diff --git a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py new file mode 100644 index 0000000000..834eb459a5 --- /dev/null +++ b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class VotcaCsgTutorials(CMakePackage): + """Versatile Object-oriented Toolkit for Coarse-graining + Applications (VOTCA) is a package intended to reduce the amount of + routine work when doing systematic coarse-graining of various + systems. The core is written in C++. + + This package contains the VOTCA coarse-graining tutorials. + """ + homepage = "http://www.votca.org" + url = "https://github.com/votca/csg-tutorials/tarball/v1.4" + git = "https://github.com/votca/csg-tutorials.git" + + version('develop', branch='master') + version('1.6_rc1', sha256='87c4d945d2bdcb247e985cd407b0767c441f7810f1237ae65a63617f136e2ac9') + version('1.5.1', sha256='e35cea92df0e7d05ca7b449c1b5d84d887a3a23c7796abe3b84e4d6feec7faca', preferred=True) + version('1.5', sha256='03b841fb94129cf59781a7a5e3b71936c414aa9dfa17a50d7bc856d46274580c') + version('1.4.1', sha256='623724192c3a7d76b603a74a3326f181045f10f38b9f56dce754a90f1a74556e') + version('1.4', sha256='27d50acd68a9d8557fef18ec2b0c62841ae91c22275ab9afbd65c35e4dd5f719') + + for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6_rc1", "develop"]: + 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 bf48ceaf21..83915428fd 100644 --- a/var/spack/repos/builtin/packages/votca-csg/package.py +++ b/var/spack/repos/builtin/packages/votca-csg/package.py @@ -20,12 +20,15 @@ class VotcaCsg(CMakePackage): git = "https://github.com/votca/csg.git" version('develop', branch='master') + version('1.6_rc1', sha256='163701a65a34f90e8a850370167a82cbebf2b5c0774b7a8ad07884451fe9e332') + version('1.5.1', sha256='7fca1261bd267bf38d2edd26259730fed3126c0c3fd91fb81940dbe17bb568fd', preferred=True) version('1.5', sha256='160387cdc51f87dd20ff2e2eed97086beee415d48f3c92f4199f6109068c8ff4') version('1.4.1', sha256='41dccaecadd0165c011bec36a113629e27745a5a133d1a042efe4356acdb5450') version('1.4', sha256='c13e7febd792de8c3d426203f089bd4d33b8067f9db5e8840e4579c88b61146e') depends_on("cmake@2.8:", type='build') - for v in ["1.4", "1.4.1", "1.5", "develop"]: - depends_on('votca-tools@%s' % v, when="@%s" % v) + for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6_rc1", "develop"]: + depends_on('votca-tools@%s' % v, when="@%s:%s.0" % (v, v)) + depends_on("boost") depends_on("gromacs~mpi@5.1:") depends_on("hdf5~mpi") diff --git a/var/spack/repos/builtin/packages/votca-csgapps/package.py b/var/spack/repos/builtin/packages/votca-csgapps/package.py new file mode 100644 index 0000000000..7617777ffc --- /dev/null +++ b/var/spack/repos/builtin/packages/votca-csgapps/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class VotcaCsgapps(CMakePackage): + """Versatile Object-oriented Toolkit for Coarse-graining + Applications (VOTCA) is a package intended to reduce the amount of + routine work when doing systematic coarse-graining of various + systems. The core is written in C++. + + This package contains the VOTCA coarse-graining extra apps. + """ + homepage = "http://www.votca.org" + url = "https://github.com/votca/csgapps/tarball/v1.4" + git = "https://github.com/votca/csgapps.git" + + version('develop', branch='master') + version('1.6_rc1', sha256='069002f93f891e4aeb24920c1b2458bf8ee4842d273481aea5fa32247f815f02') + version('1.5.1', sha256='b4946711e88a1745688b6cce5aad872e6e2ea200fededf38d77a864883e3750e', preferred=True) + version('1.5', sha256='18b40ce6222509bc70aa9d56b8c538cd5903edf7294d6f95530668e555206d5b') + version('1.4.1', sha256='095d9ee4cd49d2fd79c10e0e84e6890b755e54dec6a5cd580a2b4241ba230a2b') + version('1.4', sha256='4ea8348c2f7de3cc488f48fbd8652e69b52515441952766c06ff67ed1aaf69a0') + + for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6_rc1", "develop"]: + 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 379f304484..14a116e705 100644 --- a/var/spack/repos/builtin/packages/votca-ctp/package.py +++ b/var/spack/repos/builtin/packages/votca-ctp/package.py @@ -20,10 +20,10 @@ class VotcaCtp(CMakePackage): git = "https://github.com/votca/ctp.git" version('develop', branch='master') + version('1.5.1', sha256='ef957c2f6b09335d0d27ecb7e1b80b55e76a100247bc0d0b3cfef7718d2a1126') version('1.5', sha256='31eb6bcc9339e575116f0c91fe7a4ce7d4189f31f0640329c993fea911401d65') depends_on("cmake@2.8:", type='build') - for v in ["1.5", "develop"]: - depends_on('votca-tools@%s' % v, when="@%s" % v) - depends_on('votca-csg@%s' % v, when="@%s" % v) + depends_on('votca-tools@1.5.1') + depends_on('votca-csg@1.5.1') depends_on("gsl") diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py index 84f90ea9f0..fb7a646a4f 100644 --- a/var/spack/repos/builtin/packages/votca-tools/package.py +++ b/var/spack/repos/builtin/packages/votca-tools/package.py @@ -20,17 +20,22 @@ class VotcaTools(CMakePackage): git = "https://github.com/votca/tools.git" version('develop', branch='master') + version('1.6_rc1', sha256='59b4bb64a93786a693e0cbc743a27c0bc451b9db2b0f63e4d2866f7aba10c268') + version('1.5.1', sha256='4be4fe25a2910e24e1720cd9022d214001d38196033ade8f9d6e618b4f47d5c4', preferred=True) version('1.5', sha256='a82a6596c24ff06e79eab17ca02f4405745ceeeb66369693a59023ad0b62cf22') version('1.4.1', sha256='b6b87f6bec8db641a1d8660422ca44919252a69494b32ba6c8c9ac986bae9a65') version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3') + # https://github.com/votca/tools/pull/197, fix cmake module + patch("https://github.com/votca/tools/pull/197.patch", sha256="a06cce2a9cee63c8d01e4d1833f9cd2ba817b846c86fdb51ea5c9cd843135e68", when="@1.6_rc1") + depends_on("cmake@2.8:", type='build') depends_on("expat") depends_on("fftw") depends_on("gsl", when="@:1.4.9999") depends_on("eigen@3.3:", when="@1.5:") depends_on("boost") - depends_on("sqlite") + depends_on("sqlite", when="@:1.5.9999") def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/votca-xtp/package.py b/var/spack/repos/builtin/packages/votca-xtp/package.py index dd4b4233e0..1118816d97 100644 --- a/var/spack/repos/builtin/packages/votca-xtp/package.py +++ b/var/spack/repos/builtin/packages/votca-xtp/package.py @@ -20,13 +20,15 @@ class VotcaXtp(CMakePackage): git = "https://github.com/votca/xtp.git" version('develop', branch='master') + version('1.6_rc1', sha256='144e74a6c4d31e490ca2bfaf4a30df12ccdc303efa5a7d1177c9b80035365ad5') + version('1.5.1', sha256='17a7722e5a32d236e4f1f6f88b680da4ba5f52bcf65bca3687c6a1c731d10881', preferred=True) version('1.5', sha256='b40b6d19e13f0650e84b8beebe86ce5c09071624f18d66df826f9d8584b4d3c8') version('1.4.1', sha256='4b53d371d6cf648c9e9e9bd1f104d349cafeaf10a02866e3f1d05c574b595a21') depends_on("cmake@2.8:", type='build') - for v in ["1.4.1", "1.5", "develop"]: - depends_on('votca-tools@%s' % v, when="@%s" % v) - depends_on('votca-csg@%s' % v, when="@%s" % v) - depends_on("votca-ctp@develop", when='@develop') + for v in ["1.4.1", "1.5", "1.5.1", "1.6_rc1", "develop"]: + 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='@1.5:') - depends_on("ceres-solver", when='@1.5:') + depends_on("ceres-solver", when='@1.5:1.5.9999') + depends_on("hdf5+cxx~mpi") diff --git a/var/spack/repos/builtin/packages/vsearch/package.py b/var/spack/repos/builtin/packages/vsearch/package.py index 4598dc4ee4..8fc9eb939c 100644 --- a/var/spack/repos/builtin/packages/vsearch/package.py +++ b/var/spack/repos/builtin/packages/vsearch/package.py @@ -12,6 +12,8 @@ class Vsearch(AutotoolsPackage): homepage = "https://github.com/torognes/vsearch" url = "https://github.com/torognes/vsearch/archive/v2.4.3.tar.gz" + version('2.14.1', sha256='388529a39eb0618a09047bf91e0a8ae8c9fd851a05f8d975e299331748f97741') + version('2.13.3', sha256='e5f34ece28b76403d3ba4a673eca41178fe399c35a1023dbc87d0c0da5efaa52') version('2.4.3', sha256='f7ffc2aec5d76bdaf1ffe7fb733102138214cec3e3846eb225455dcc3c088141') depends_on('m4', type='build') diff --git a/var/spack/repos/builtin/packages/vtkh/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py index 3d60ee9a50..abfbbdd0fb 100644 --- a/var/spack/repos/builtin/packages/vtkh/package.py +++ b/var/spack/repos/builtin/packages/vtk-h/package.py @@ -28,62 +28,62 @@ def cmake_cache_entry(name, value, vtype=None): return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) -class Vtkh(Package): +class VtkH(Package, CudaPackage): """VTK-h is a toolkit of scientific visualization algorithms for emerging processor architectures. VTK-h brings together several projects like VTK-m and DIY2 to provide a toolkit with hybrid parallel capabilities.""" homepage = "https://github.com/Alpine-DAV/vtk-h" + url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.0/vtkh-v0.5.0.tar.gz" git = "https://github.com/Alpine-DAV/vtk-h.git" + maintainers = ['cyrush'] version('develop', branch='develop', submodules=True) - version('0.1.0', branch='develop', tag='v0.1.0', submodules=True) + version('0.5.0', sha256="9014a8a61a8d7ff636866c6e3b1ebb918ff23fa67cf8d4de801c4a2981de8c96") variant("shared", default=True, description="Build vtk-h as shared libs") variant("mpi", default=True, description="build mpi support") - variant("tbb", default=False, description="build tbb support") + variant("serial", default=True, description="build serial (non-mpi) libraries") variant("cuda", default=False, description="build cuda support") variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") - depends_on("cmake@3.8.2:", type='build') + # 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') depends_on("mpi", when="+mpi") - depends_on("intel-tbb", when="@0.1.0+tbb") depends_on("cuda", when="+cuda") - depends_on("vtkm@1.2.0", when="@0.1.0") - depends_on("vtkm@1.2.0+tbb", when="@0.1.0+tbb") - depends_on("vtkm@1.2.0+cuda", when="@0.1.0+cuda") - depends_on("vtkm@1.2.0~shared", when="@0.1.0~shared") - - depends_on("vtkm@master~tbb+openmp", when="@develop+openmp") - depends_on("vtkm@master~tbb~openmp", when="@develop~openmp") - - depends_on("vtkm@master+cuda~tbb+openmp", when="@develop+cuda+openmp") - depends_on("vtkm@master+cuda~tbb~openmp", when="@develop+cuda~openmp") + depends_on("vtk-m@1.5.0~tbb+openmp", when="+openmp") + depends_on("vtk-m@1.5.0~tbb~openmp", when="~openmp") - depends_on("vtkm@master~tbb+openmp~shared", when="@develop+openmp~shared") - depends_on("vtkm@master~tbb~openmp~shared", when="@develop~openmp~shared") + depends_on("vtk-m@1.5.0+cuda~tbb+openmp", when="+cuda+openmp") + depends_on("vtk-m@1.5.0+cuda~tbb~openmp", when="+cuda~openmp") - depends_on("vtkm@master+cuda~tbb+openmp~shared", when="@develop+cuda+openmp~shared") - depends_on("vtkm@master+cuda~tbb~openmp~shared", when="@develop+cuda~openmp~shared") + depends_on("vtk-m@1.5.0~tbb+openmp~shared", when="+openmp~shared") + depends_on("vtk-m@1.5.0~tbb~openmp~shared", when="~openmp~shared") - patch('vtkm_lagrange_cuda_fix.patch') + depends_on("vtk-m@1.5.0+cuda~tbb+openmp~shared", when="+cuda+openmp~shared") + depends_on("vtk-m@1.5.0+cuda~tbb~openmp~shared", when="+cuda~openmp~shared") def install(self, spec, prefix): with working_dir('spack-build', create=True): cmake_args = ["../src", - "-DVTKM_DIR={0}".format(spec["vtkm"].prefix), + "-DVTKM_DIR={0}".format(spec["vtk-m"].prefix), "-DENABLE_TESTS=OFF", "-DBUILD_TESTING=OFF"] - # shared vs static libs - if "+shared" in spec: - cmake_args.append('-DBUILD_SHARED_LIBS=ON') - else: + # shared vs static libs logic + # force static when building with cuda + if "+cuda" in spec: cmake_args.append('-DBUILD_SHARED_LIBS=OFF') + else: + if "+shared" in spec: + cmake_args.append('-DBUILD_SHARED_LIBS=ON') + else: + cmake_args.append('-DBUILD_SHARED_LIBS=OFF') # mpi support if "+mpi" in spec: @@ -94,9 +94,6 @@ class Vtkh(Package): mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') if os.path.isfile(mpiexe_bin): cmake_args.append("-DMPIEXEC={0}".format(mpiexe_bin)) - # tbb support - if "+tbb" in spec: - cmake_args.append("-DTBB_DIR={0}".format(spec["tbb"].prefix)) # openmp support if "+openmp" in spec: @@ -104,12 +101,13 @@ class Vtkh(Package): # cuda support if "+cuda" in spec: - cmake_args.append("-DENABLE_CUDA=ON") - # this fix is necessary if compiling platform has cuda, but - # no devices (this common for front end nodes on hpc clusters) - # we choose kepler as a lowest common denominator - cmake_args.append("-DVTKm_CUDA_Architecture=kepler") - + cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=ON") + cmake_args.append("-DENABLE_CUDA:BOOL=ON") + cmake_args.append("-DCMAKE_CUDA_HOST_COMPILER={0}".format( + env["SPACK_CXX"])) + else: + cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=OFF") + cmake_args.append("-DENABLE_CUDA:BOOL=OFF") # use release, instead of release with debug symbols b/c vtkh libs # can overwhelm compilers with too many symbols for arg in std_cmake_args: @@ -117,15 +115,14 @@ class Vtkh(Package): cmake_args.extend(std_cmake_args) cmake_args.append("-DCMAKE_BUILD_TYPE=Release") cmake(*cmake_args) - if "+cuda" in spec: - # avoid issues with make -j and FindCuda deps - # likely a ordering issue that needs to be resolved - # in vtk-h - make(parallel=False) - else: - make() + make() make("install") + host_cfg_fname = self.create_host_config(spec, + prefix) + + install(host_cfg_fname, prefix) + def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): """ This method creates a 'host-config' file that specifies @@ -203,25 +200,43 @@ class Vtkh(Package): cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) cfg.write("# vtk-m from spack\n") - cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtkm'].prefix)) + cfg.write(cmake_cache_entry("VTKM_DIR", spec['vtk-m'].prefix)) ####################################################################### # Optional Dependencies ####################################################################### ####################### + # Serial + ####################### + + if "+serial" in spec: + cfg.write(cmake_cache_entry("ENABLE_SERIAL", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_SERIAL", "OFF")) + + ####################### # MPI ####################### cfg.write("# MPI Support\n") if "+mpi" in spec: + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + mpifc_path = spec['mpi'].mpifc + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + mpifc_path = "ftn" cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) - cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc)) - cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", - spec['mpi'].mpicxx)) - cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", - spec['mpi'].mpifc)) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') if os.path.isfile(mpiexe_bin): # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE diff --git a/var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch index 2f90477e76..2f90477e76 100644 --- a/var/spack/repos/builtin/packages/vtkh/vtkm_lagrange_cuda_fix.patch +++ b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch diff --git a/var/spack/repos/builtin/packages/vtkm/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py index eee37bf9af..2a54383431 100644 --- a/var/spack/repos/builtin/packages/vtkm/package.py +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -9,7 +9,7 @@ import os import sys -class Vtkm(CMakePackage, CudaPackage): +class VtkM(CMakePackage, CudaPackage): """VTK-m is a toolkit of scientific visualization algorithms for emerging processor architectures. VTK-m supports the fine-grained concurrency for data analysis and visualization algorithms required to drive extreme scale @@ -18,14 +18,15 @@ class Vtkm(CMakePackage, CudaPackage): architectures.""" homepage = "https://m.vtk.org/" - url = "https://gitlab.kitware.com/api/v4/projects/vtk%2Fvtk-m/repository/archive.tar.gz?sha=v1.3.0" + url = "https://gitlab.kitware.com/vtk/vtk-m/-/archive/v1.5.0/vtk-m-v1.5.0.tar.gz" git = "https://gitlab.kitware.com/vtk/vtk-m.git" version('master', branch='master') - version('1.4.0', sha256="60e1ce73a8c6beda8aed5f2d3ae670b6b0c78c068c6eff4ece769e6d719d5065") - version('1.3.0', sha256="72c2c8525a77a456fe0b6a1af0328dad6b9a688f402a3d3ebfa8942e0b5dba1a") - version('1.2.0', sha256="9103d954284661f6f03e5b18be6d7bc94254603e6abc8fce67f617f4ad325a0e") - version('1.1.0', sha256="a1746b1547d6fb901ea7d7ed50834e8832d6d41ddd497c84d02e1481100d43bc") + 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") # use release, instead of release with debug symbols b/c vtkm libs # can overwhelm compilers with too many symbols @@ -35,7 +36,7 @@ class Vtkm(CMakePackage, CudaPackage): variant("cuda", default=False, description="build cuda support") variant("doubleprecision", default=True, description='enable double precision') - variant("logging", default=True, description="build logging support") + variant("logging", default=False, description="build logging support") variant("mpi", default=False, description="build mpi support") variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") variant("rendering", default=True, description="build rendering support") @@ -57,22 +58,30 @@ class Vtkm(CMakePackage, CudaPackage): '30': 'kepler', '32': 'kepler', '35': 'kepler', '50': 'maxwell', '52': 'maxwell', '53': 'maxwell', '60': 'pascal', '61': 'pascal', '62': 'pascal', - '70': 'turing', '72': 'turing', '75': 'turing'} + '70': 'volta', '72': 'turing', '75': 'turing'} with working_dir('spack-build', create=True): options = ["-DVTKm_ENABLE_TESTING:BOOL=OFF"] - # shared vs static libs - if "+shared" in spec: - options.append('-DBUILD_SHARED_LIBS=ON') - else: + # shared vs static libs logic + # force building statically with cuda + if "+cuda" in spec: options.append('-DBUILD_SHARED_LIBS=OFF') + else: + if "+shared" in spec: + options.append('-DBUILD_SHARED_LIBS=ON') + else: + options.append('-DBUILD_SHARED_LIBS=OFF') # cuda support if "+cuda" in spec: options.append("-DVTKm_ENABLE_CUDA:BOOL=ON") + options.append("-DCMAKE_CUDA_HOST_COMPILER={0}".format( + env["SPACK_CXX"])) if 'cuda_arch' in spec.variants: cuda_value = spec.variants['cuda_arch'].value - name = gpu_name_table[cuda_value[0]] - options.append( - '-DVTKm_CUDA_Architecture={0}'.format(name)) + cuda_arch = cuda_value[0] + if cuda_arch in gpu_name_table: + vtkm_cuda_arch = gpu_name_table[cuda_arch] + options.append('-DVTKm_CUDA_Architecture={0}'.format( + vtkm_cuda_arch)) else: # this fix is necessary if compiling platform has cuda, but # no devices (this's common for front end nodes on hpc clus @@ -90,8 +99,7 @@ class Vtkm(CMakePackage, CudaPackage): # logging support if "+logging" in spec: - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': + if spec.satisfies('@:1.2.0'): raise InstallError('logging is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON") @@ -100,8 +108,7 @@ class Vtkm(CMakePackage, CudaPackage): # mpi support if "+mpi" in spec: - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': + if spec.satisfies('@:1.2.0'): raise InstallError('mpi is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_MPI:BOOL=ON") @@ -111,8 +118,7 @@ class Vtkm(CMakePackage, CudaPackage): # openmp support if "+openmp" in spec: # openmp is added since version 1.3.0 - if spec.satisfies('@:1.2.0') and \ - spec['vtkm'].version.string != 'master': + if spec.satisfies('@:1.2.0'): raise InstallError('OpenMP is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON") diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 3d9d108ae4..0d24aebd30 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -20,6 +20,7 @@ class Vtk(CMakePackage): maintainers = ['chuckatkins', 'danlipsa'] + version('8.2.0', sha256='34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb') version('8.1.2', sha256='0995fb36857dd76ccfb8bb07350c214d9f9099e80b1e66b4a8909311f24ff0db') version('8.1.1', sha256='71a09b4340f0a9c58559fe946dc745ab68a866cf20636a41d97b6046cb736324') version('8.1.0', sha256='6e269f07b64fb13774f5925161fb4e1f379f4e6a0131c8408c555f6b58ef3cb7') @@ -61,6 +62,7 @@ class Vtk(CMakePackage): if sys.platform != 'darwin': depends_on('glx', when='~osmesa') + depends_on('libxt', when='~osmesa') # Note: it is recommended to use mesa+llvm, if possible. # mesa default is software rendering, llvm makes it faster @@ -69,24 +71,22 @@ class Vtk(CMakePackage): # VTK will need Qt5OpenGL, and qt needs '-opengl' for that depends_on('qt+opengl', when='+qt') - depends_on('mpi', when='+mpi') - depends_on('boost', when='+xdmf') depends_on('boost+mpi', when='+xdmf +mpi') - - depends_on('mpi', when='+mpi') - depends_on('ffmpeg', when='+ffmpeg') + depends_on('mpi', when='+mpi') depends_on('expat') depends_on('freetype') depends_on('glew') - depends_on('hdf5') + # set hl variant explicitly, similar to issue #7145 + depends_on('hdf5+hl') depends_on('jpeg') depends_on('jsoncpp') depends_on('libxml2') depends_on('lz4') - depends_on('netcdf') + depends_on('netcdf-c~mpi', when='~mpi') + depends_on('netcdf-c+mpi', when='+mpi') depends_on('netcdf-cxx') depends_on('libpng') depends_on('libtiff') @@ -96,10 +96,10 @@ class Vtk(CMakePackage): url = "http://www.vtk.org/files/release/{0}/VTK-{1}.tar.gz" return url.format(version.up_to(2), version) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # VTK has some trouble finding freetype unless it is set in # the environment - spack_env.set('FREETYPE_DIR', self.spec['freetype'].prefix) + env.set('FREETYPE_DIR', self.spec['freetype'].prefix) def cmake_args(self): spec = self.spec @@ -120,8 +120,8 @@ class Vtk(CMakePackage): '-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF', '-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=OFF', - '-DNETCDF_DIR={0}'.format(spec['netcdf'].prefix), - '-DNETCDF_C_ROOT={0}'.format(spec['netcdf'].prefix), + '-DNETCDF_DIR={0}'.format(spec['netcdf-c'].prefix), + '-DNETCDF_C_ROOT={0}'.format(spec['netcdf-c'].prefix), '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix), # Allow downstream codes (e.g. VisIt) to override VTK's classes diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 015c38406b..89c0117d2e 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -16,10 +16,10 @@ class Warpx(MakefilePackage): """ homepage = "https://ecp-warpx.github.io/index.html" - url = "https://github.com/ECP-WarpX/WarpX" + git = "https://github.com/ECP-WarpX/WarpX.git" - version('master', git='https://github.com/ECP-WarpX/WarpX.git', tag='master') - version('dev', git='https://github.com/ECP-WarpX/WarpX.git', tag='dev') + version('master', tag='master') + version('dev', tag='dev') depends_on('mpi') @@ -94,11 +94,11 @@ class Warpx(MakefilePackage): 'TINY_PROFILE = {0}'.format(torf('+tprof'))) makefile.filter('EBASE .*', 'EBASE = warpx') - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): # --- Fool the compiler into using the "unknown" configuration. # --- With this, it will use the spack provided mpi. - spack_env.set('HOSTNAME', 'unknown') - spack_env.set('NERSC_HOST', 'unknown') + env.set('HOSTNAME', 'unknown') + env.set('NERSC_HOST', 'unknown') def install(self, spec, prefix): make('WarpxBinDir = {0}'.format(prefix.bin), 'all') diff --git a/var/spack/repos/builtin/packages/wget/package.py b/var/spack/repos/builtin/packages/wget/package.py index aecb845f11..ca3f7026af 100644 --- a/var/spack/repos/builtin/packages/wget/package.py +++ b/var/spack/repos/builtin/packages/wget/package.py @@ -6,14 +6,14 @@ from spack import * -class Wget(AutotoolsPackage): +class Wget(AutotoolsPackage, GNUMirrorPackage): """GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a 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/" - url = "https://ftpmirror.gnu.org/wget/wget-1.19.1.tar.gz" + gnu_mirror_path = "wget/wget-1.19.1.tar.gz" version('1.20.3', sha256='31cccfc6630528db1c8e3a06f6decf2a370060b982841cfab2b8677400a5092e') version('1.19.1', sha256='9e4f12da38cc6167d0752d934abe27c7b1599a9af294e73829be7ac7b5b4da40') diff --git a/var/spack/repos/builtin/packages/which/package.py b/var/spack/repos/builtin/packages/which/package.py new file mode 100644 index 0000000000..3fa9ef0386 --- /dev/null +++ b/var/spack/repos/builtin/packages/which/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + + +class Which(AutotoolsPackage): + """GNU which - is a utility that is used to find which executable (or + alias or shell function) is executed when entered on the shell prompt.""" + + homepage = "https://savannah.gnu.org/projects/which/" + url = "https://ftp.gnu.org/gnu/which/which-2.21.tar.gz" + + version('2.21', sha256='f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad') diff --git a/var/spack/repos/builtin/packages/wireshark/package.py b/var/spack/repos/builtin/packages/wireshark/package.py index 5df47d773b..8193cd011f 100644 --- a/var/spack/repos/builtin/packages/wireshark/package.py +++ b/var/spack/repos/builtin/packages/wireshark/package.py @@ -15,16 +15,13 @@ class Wireshark(CMakePackage): version('2.6.0', sha256='711c7f01d27a8817d58277a5487cef3e3c7bab1c8caaf8f4c92aa21015b9117f') - variant('smi', default=False, description='Build with libsmi') variant('libssh', default=False, description='Build with libssh') variant('nghttp2', default=False, description='Build with nghttp2') variant('qt', default=False, description='Build with qt') - variant('gtk3', default=False, description='Build with gtk3') - variant('gtk', default=False, description='Build with gtk') variant('headers', default=True, description='Install headers') depends_on('bison', type='build') - depends_on('cares') + depends_on('c-ares') depends_on('doxygen', type='build') depends_on('flex', type='build') depends_on('git', type='build') @@ -37,28 +34,28 @@ class Wireshark(CMakePackage): depends_on('lua@5.0.0:5.2.99') depends_on('krb5') depends_on('pkgconfig', type='build') - depends_on('libsmi', when='+smi') depends_on('libssh', when='+libssh') depends_on('nghttp2', when='+nghttp2') - depends_on('portaudio', when='+gtk') - depends_on('portaudio', when='+gtk3') depends_on('qt@4.8:', when='+qt') - depends_on('gtkplus3', when='+gtk3') - depends_on('gtkplus', when='+gtk') - depends_on('adwaita-icon-theme', when='+gtk3') def cmake_args(self): - args = ['-DENEABLE_CARES=ON', - '-DENABLE_GNUTLS=ON', - '-DENABLE_LUA=ON', - '-DENABLE_MAXMINDDB=ON', - '-DYACC_EXECUTABLE=' + self.spec['bison'].prefix.bin.yacc, - '-DGIT_EXECUTABLE=' + self.spec['git'].prefix.bin.git, - '-DPCAP_INCLUDE_DIR=' + self.spec['libpcap'].prefix.include, - '-DPCAP_LIB=' + str(self.spec['libpcap'].libs), - '-DLUA_INCLUDE_DIR=' + self.spec['lua'].prefix.include, - '-DLUA_LIBRARY=' + str(self.spec['lua'].libs) - ] + args = [ + '-DENEABLE_CARES=ON', + '-DENABLE_GNUTLS=ON', + '-DENABLE_LUA=ON', + '-DENABLE_MAXMINDDB=ON', + '-DYACC_EXECUTABLE=' + self.spec['bison'].prefix.bin.yacc, + '-DGIT_EXECUTABLE=' + self.spec['git'].prefix.bin.git, + '-DPCAP_INCLUDE_DIR=' + self.spec['libpcap'].prefix.include, + '-DPCAP_LIB=' + str(self.spec['libpcap'].libs), + '-DLUA_INCLUDE_DIR=' + self.spec['lua'].prefix.include, + '-DLUA_LIBRARY=' + str(self.spec['lua'].libs), + '-DBUILD_wireshark_gtk=OFF', + '-DENABLE_PORTAUDIO=OFF', + '-DENABLE_GTK3=OFF', + '-DBUILD_SMI=OFF', + ] + if self.spec.satisfies('+qt'): args.append('-DBUILD_wireshark=ON') args.append('-DENABLE_APPLICATION_BUNDLE=ON') @@ -71,15 +68,6 @@ class Wireshark(CMakePackage): args.append('-DENABLE_APPLICATION_BUNDLE=OFF') args.append('-DENABLE_QT5=OFF') - if self.spec.satisfies('+gtk3') or self.spec.satisfies('+gtk'): - args.append('-DBUILD_wireshark_gtk=ON') - args.append('-DENABLE_PORTAUDIO=ON') - else: - args.append('-DBUILD_wireshark_gtk=OFF') - args.append('-DENABLE_PORTAUDIO=OFF') - if self.spec.satisfies('+gtk3'): - args.append('-DENABLE_GTK3=ON') - if self.spec.satisfies('+libssh'): args.append('-DBUILD_sshdump=ON') args.append('-DBUILD_ciscodump=ON') @@ -87,11 +75,6 @@ class Wireshark(CMakePackage): args.append('-DBUILD_sshdump=OFF') args.append('-DBUILD_ciscodump=OFF') - if self.spec.satisfies('+smi'): - args.append('-DBUILD_SMI=ON') - else: - args.append('-DBUILD_SMI=OFF') - if self.spec.satisfies('+nghttp2'): args.append('-DBUILD_NGHTTP2=ON') else: diff --git a/var/spack/repos/builtin/packages/wordnet/package.py b/var/spack/repos/builtin/packages/wordnet/package.py index 6bb3ca2dc0..23ae8e7fe6 100644 --- a/var/spack/repos/builtin/packages/wordnet/package.py +++ b/var/spack/repos/builtin/packages/wordnet/package.py @@ -28,6 +28,6 @@ class Wordnet(AutotoolsPackage): return args - def setup_environment(self, spack_env, run_env): - run_env.set('WNHOME', self.prefix) - run_env.set('WNSEARCHDIR', self.prefix.dict) + def setup_run_environment(self, env): + env.set('WNHOME', self.prefix) + env.set('WNSEARCHDIR', self.prefix.dict) diff --git a/var/spack/repos/builtin/packages/workrave/package.py b/var/spack/repos/builtin/packages/workrave/package.py index fa5a597484..95dc3bb427 100644 --- a/var/spack/repos/builtin/packages/workrave/package.py +++ b/var/spack/repos/builtin/packages/workrave/package.py @@ -67,13 +67,13 @@ class Workrave(AutotoolsPackage): destination='', placement=m4files[1]) - def setup_environment(self, build_env, run_env): + def setup_build_environment(self, env): # unset PYTHONHOME to let system python script with explict # system python sbangs like glib-mkenums work, see #6968 # Without this, we will get # ImportError: No module named site # during build phase when make runs glib-mkenums - build_env.unset('PYTHONHOME') + env.unset('PYTHONHOME') @run_before('autoreconf') def extra_m4(self): diff --git a/var/spack/repos/builtin/packages/xdmf3/package.py b/var/spack/repos/builtin/packages/xdmf3/package.py index 772135846c..8a245ddc2d 100644 --- a/var/spack/repos/builtin/packages/xdmf3/package.py +++ b/var/spack/repos/builtin/packages/xdmf3/package.py @@ -13,7 +13,6 @@ class Xdmf3(CMakePackage): """ homepage = "http://xdmf.org" - url = "https://gitlab.kitware.com/xdmf/xdmf/-/archive/master/xdmf-master.tar.bz2" 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/xeus/package.py b/var/spack/repos/builtin/packages/xeus/package.py index d67d32d188..1cca2c2cf5 100644 --- a/var/spack/repos/builtin/packages/xeus/package.py +++ b/var/spack/repos/builtin/packages/xeus/package.py @@ -23,7 +23,7 @@ class Xeus(CMakePackage): conflicts('%clang@:3.6') conflicts('%intel@:17') - depends_on('zeromq@4.2.5:-libsodium') + 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:') diff --git a/var/spack/repos/builtin/packages/xios/package.py b/var/spack/repos/builtin/packages/xios/package.py index 799bdc03d7..997e54ec57 100644 --- a/var/spack/repos/builtin/packages/xios/package.py +++ b/var/spack/repos/builtin/packages/xios/package.py @@ -21,7 +21,7 @@ class Xios(Package): description='Build for debugging, development or production') # NOTE: oasis coupler could be supported with a variant - # Use spack versions of blitz and netcdf for compatibility + # Use spack versions of blitz and netcdf-c for compatibility # with recent compilers and optimised platform libraries: patch('bld_extern_1.0.patch', when='@:1.0') patch('bld_extern_1.x.patch', when='@1.1:') @@ -30,7 +30,7 @@ class Xios(Package): # followed by a character is broken (e.g. duration '1d'): patch('llvm_bug_17782.patch', when='@1.1: %clang') - depends_on('netcdf+mpi') + depends_on('netcdf-c+mpi') depends_on('netcdf-fortran') depends_on('hdf5+mpi') depends_on('mpi') @@ -60,8 +60,8 @@ class Xios(Package): def xios_path(self): file = join_path('arch', 'arch-SPACK.path') spec = self.spec - paths = {'NETCDF_INC_DIR': spec['netcdf'].prefix.include, - 'NETCDF_LIB_DIR': spec['netcdf'].prefix.lib, + paths = {'NETCDF_INC_DIR': spec['netcdf-c'].prefix.include, + 'NETCDF_LIB_DIR': spec['netcdf-c'].prefix.lib, 'HDF5_INC_DIR': spec['hdf5'].prefix.include, 'HDF5_LIB_DIR': spec['hdf5'].prefix.lib} text = r""" diff --git a/var/spack/repos/builtin/packages/xkeyboard-config/package.py b/var/spack/repos/builtin/packages/xkeyboard-config/package.py index a3356aaf09..c6fdac55b0 100644 --- a/var/spack/repos/builtin/packages/xkeyboard-config/package.py +++ b/var/spack/repos/builtin/packages/xkeyboard-config/package.py @@ -31,6 +31,8 @@ class XkeyboardConfig(AutotoolsPackage): # perl@5.8.1: # perl XML::Parser - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): - spack_env.prepend_path('XKB_CONFIG_ROOT', self.prefix.share.X11.xkb) - run_env.prepend_path('XKB_CONFIG_ROOT', self.prefix.share.X11.xkb) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('XKB_CONFIG_ROOT', self.prefix.share.X11.xkb) + + def setup_dependent_run_environment(self, env, dependent_spec): + env.prepend_path('XKB_CONFIG_ROOT', self.prefix.share.X11.xkb) diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py index b5e67e3131..4fd73c5e0f 100644 --- a/var/spack/repos/builtin/packages/xrootd/package.py +++ b/var/spack/repos/builtin/packages/xrootd/package.py @@ -13,10 +13,8 @@ class Xrootd(CMakePackage): homepage = "http://xrootd.org" url = "http://xrootd.org/download/v4.6.0/xrootd-4.6.0.tar.gz" - version('4.8.5', - sha256='42e4d2cc6f8b442135f09bcc12c7be38b1a0c623a005cb5e69ff3d27997bdf73') - version('4.8.4', - sha256='f148d55b16525567c0f893edf9bb2975f7c09f87f0599463e19e1b456a9d95ba') + version('4.8.5', sha256='42e4d2cc6f8b442135f09bcc12c7be38b1a0c623a005cb5e69ff3d27997bdf73') + version('4.8.4', sha256='f148d55b16525567c0f893edf9bb2975f7c09f87f0599463e19e1b456a9d95ba') version('4.8.3', sha256='9cd30a343758b8f50aea4916fa7bd37de3c37c5b670fe059ae77a8b2bbabf299') version('4.8.2', sha256='8f28ec53e799d4aa55bd0cc4ab278d9762e0e57ac40a4b02af7fc53dcd1bef39') version('4.8.1', sha256='edee2673d941daf7a6e5c963d339d4a69b4db5c4b6f77b4548b3129b42198029') @@ -83,7 +81,7 @@ class Xrootd(CMakePackage): return options - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): cxxstdflag = '' if self.spec.variants['cxxstd'].value == '98': cxxstdflag = self.compiler.cxx98_flag @@ -101,4 +99,4 @@ class Xrootd(CMakePackage): "cxxstd={0}".format(self.spec.variants['cxxstd'].value)) if cxxstdflag: - spack_env.append_flags('CXXFLAGS', cxxstdflag) + env.append_flags('CXXFLAGS', cxxstdflag) diff --git a/var/spack/repos/builtin/packages/xsd/package.py b/var/spack/repos/builtin/packages/xsd/package.py index 5e9fe14087..10263dca79 100644 --- a/var/spack/repos/builtin/packages/xsd/package.py +++ b/var/spack/repos/builtin/packages/xsd/package.py @@ -24,9 +24,9 @@ class Xsd(MakefilePackage): def install(self, spec, prefix): make('install', 'install_prefix=' + prefix) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): xercesc_lib_flags = self.spec['xerces-c'].libs.search_flags - spack_env.append_flags('LDFLAGS', xercesc_lib_flags) + env.append_flags('LDFLAGS', xercesc_lib_flags) def url_for_version(self, version): url = "https://www.codesynthesis.com/download/xsd/{0}/xsd-{1}+dep.tar.bz2" diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py index 8f1caa0a7c..8c80009afd 100644 --- a/var/spack/repos/builtin/packages/xsdk/package.py +++ b/var/spack/repos/builtin/packages/xsdk/package.py @@ -5,6 +5,7 @@ from spack import * +import sys class Xsdk(BundlePackage): @@ -18,91 +19,129 @@ class Xsdk(BundlePackage): maintainers = ['balay', 'luszczek'] version('develop') + version('0.5.0') version('0.4.0') version('0.3.0') version('xsdk-0.2.0') variant('debug', default=False, description='Compile in debug mode') variant('cuda', default=False, description='Enable CUDA dependent packages') + variant('trilinos', default=True, description='Enable trilinos package build') 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('phist', default=True, description='Enable phist package build') - - depends_on('hypre@develop~internal-superlu+superlu-dist+shared', when='@develop') + variant('ginkgo', default=True, description='Enable ginkgo package build') + variant('libensemble', default=True, description='Enable py-libensemble package build') + variant('precice', default=(sys.platform != 'darwin'), + description='Enable precice package build') + variant('butterflypack', default=True, description='Enable butterflypack package build') + + depends_on('hypre@develop+superlu-dist+shared', when='@develop') + 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+hypre+superlu-dist+petsc~sundials+examples+miniapps', when='@develop') + depends_on('mfem@4.0.1-xsdk+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.5.0') depends_on('mfem@3.4.0+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.4.0') depends_on('mfem@3.3.2+mpi+hypre+superlu-dist+petsc+sundials+examples+miniapps', when='@0.3.0') depends_on('superlu-dist@develop', when='@develop') + 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', - when='@develop') + when='@develop +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', + 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', - when='@0.4.0') + 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', - when='@0.3.0') + 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') + when='@xsdk-0.2.0 +trilinos') - depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + depends_on('petsc +trilinos', when='+trilinos') + depends_on('petsc ~trilinos', when='~trilinos') + depends_on('petsc +batch', when='platform=cray @0.5.0:') + depends_on('petsc@develop+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', when='@develop') - depends_on('petsc@3.10.3+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + depends_on('petsc@3.12.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.5.0') + depends_on('petsc@3.10.3+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', when='@0.4.0') - depends_on('petsc@3.8.2+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + 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+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + depends_on('petsc@xsdk-0.2.0+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', when='@xsdk-0.2.0') - depends_on('dealii@develop~assimp~python~doc~gmsh+petsc+slepc+mpi+trilinos~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@develop +dealii') - depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi+trilinos~int64+hdf5~netcdf+metis~ginkgo~symengine', when='@0.4.0 +dealii') + depends_on('dealii +trilinos', 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.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') depends_on('pflotran@develop', when='@develop') + 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.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('sundials@4.1.0~int64+hypre', when='@develop') + depends_on('sundials+superlu-dist', when='@0.5.0: %gcc@6.1:') + depends_on('sundials@develop~int64+hypre+petsc', when='@develop') + depends_on('sundials@5.0.0~int64+hypre+petsc', when='@0.5.0') depends_on('sundials@3.2.1~int64+hypre', when='@0.4.0') depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0') - depends_on('plasma@18.11.1:', when='@develop %gcc@6.0:') + depends_on('plasma@19.8.1:', when='@develop %gcc@6.0:') + depends_on('plasma@19.8.1:', when='@0.5.0 %gcc@6.0:') depends_on('plasma@18.11.1:', when='@0.4.0 %gcc@6.0:') - depends_on('magma@2.4.0', when='@develop +cuda') + depends_on('magma@2.5.1', when='@develop +cuda') + depends_on('magma@2.5.1', when='@0.5.0 +cuda') depends_on('magma@2.4.0', when='@0.4.0 +cuda') depends_on('magma@2.2.0', when='@0.3.0 +cuda') - depends_on('amrex@develop+sundials', when='@develop %intel') - depends_on('amrex@develop+sundials', when='@develop %gcc') + depends_on('amrex@develop', when='@develop %intel') + depends_on('amrex@develop', when='@develop %gcc') + depends_on('amrex@19.08', when='@0.5.0 %intel') + depends_on('amrex@19.08', when='@0.5.0 %gcc') 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@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@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@master', when='@develop') - depends_on('strumpack@3.1.1', when='@0.4.0') + depends_on('strumpack@master', when='@develop +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('pumi@develop', when='@develop') + depends_on('pumi@2.2.1', when='@0.5.0') depends_on('pumi@2.2.0', when='@0.4.0') - depends_on('tasmanian@develop+xsdkflags+blas~openmp', when='@develop') - depends_on('tasmanian@develop+xsdkflags+blas+cuda+magma~openmp', when='@develop +cuda') + tasmanian_openmp = '~openmp' if sys.platform == 'darwin' else '+openmp' + depends_on('tasmanian@develop+xsdkflags+blas' + tasmanian_openmp, when='@develop') + depends_on('tasmanian@develop+xsdkflags+blas+cuda+magma' + tasmanian_openmp, when='@develop +cuda') + depends_on('tasmanian@7.0+xsdkflags+mpi+blas' + tasmanian_openmp, when='@0.5.0') + depends_on('tasmanian@7.0+xsdkflags+mpi+blas+cuda+magma' + tasmanian_openmp, when='@0.5.0 +cuda') 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') @@ -111,8 +150,27 @@ class Xsdk(BundlePackage): # 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@develop kernel_lib=tpetra ~fortran ~scamac ~openmp ~host', when='@develop +phist') - depends_on('phist@1.7.5 kernel_lib=tpetra ~fortran ~scamac ~openmp ~host', when='@0.4.0 +phist') + + depends_on('phist kernel_lib=tpetra', when='+trilinos +phist') + depends_on('phist kernel_lib=petsc', when='~trilinos +phist') + depends_on('phist@develop ~fortran ~scamac ~openmp ~host', when='@develop +phist') + depends_on('phist@1.8.0 ~fortran ~scamac ~openmp ~host', when='@0.5.0 +phist') + depends_on('phist@1.7.5 ~fortran ~scamac ~openmp ~host', when='@0.4.0 +phist') + + depends_on('ginkgo@develop ~openmp', when='@develop +ginkgo') + depends_on('ginkgo@develop ~openmp+cuda', when='@develop +ginkgo +cuda') + depends_on('ginkgo@1.1.0 ~openmp', when='@0.5.0 +ginkgo') + 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-libensemble@0.5.2+petsc4py', type='run', when='@0.5.0 +libensemble') + + depends_on('precice ~petsc', when='platform=cray +precice') + depends_on('precice@develop', when='@develop +precice') + depends_on('precice@1.6.1', when='@0.5.0 +precice') + + depends_on('butterflypack@master', when='@develop +butterflypack') + depends_on('butterflypack@1.1.0', when='@0.5.0 +butterflypack') # xSDKTrilinos depends on the version of Trilinos built with # +tpetra which is turned off for faster xSDK diff --git a/var/spack/repos/builtin/packages/yambo/package.py b/var/spack/repos/builtin/packages/yambo/package.py index 29d84a20b7..e4c07cf679 100644 --- a/var/spack/repos/builtin/packages/yambo/package.py +++ b/var/spack/repos/builtin/packages/yambo/package.py @@ -45,20 +45,20 @@ class Yambo(AutotoolsPackage): # MPI dependencies are forced, until we have proper forwarding of variants # # Note that yambo is used as an application, and not linked as a library, - # thus there will be no case where another package pulls-in e.g. netcdf+mpi - # and wants to depend on yambo~mpi. + # thus there will be no case where another package pulls-in e.g. + # netcdf-c+mpi and wants to depend on yambo~mpi. depends_on('mpi', when='+mpi') - depends_on('netcdf+mpi', when='+mpi') + depends_on('netcdf-c+mpi', when='+mpi') depends_on('hdf5+mpi', when='+mpi') depends_on('fftw+mpi', when='+mpi') depends_on('scalapack', when='+mpi') - depends_on('netcdf~mpi', when='~mpi') + depends_on('netcdf-c~mpi', when='~mpi') depends_on('hdf5~mpi', when='~mpi') depends_on('fftw~mpi', when='~mpi') depends_on('hdf5+fortran') - depends_on('netcdf') + depends_on('netcdf-c') depends_on('netcdf-fortran') depends_on('libxc@2.0.3:') @@ -124,7 +124,7 @@ class Yambo(AutotoolsPackage): '--enable-netcdf-hdf5', '--enable-hdf5-compression', '--with-hdf5-libs={0}'.format(spec['hdf5'].libs), - '--with-netcdf-path={0}'.format(spec['netcdf'].prefix), + '--with-netcdf-path={0}'.format(spec['netcdf-c'].prefix), '--with-netcdff-path={0}'.format(spec['netcdf-fortran'].prefix) ]) diff --git a/var/spack/repos/builtin/packages/z3/fix_1016_1.patch b/var/spack/repos/builtin/packages/z3/fix_1016_1.patch new file mode 100644 index 0000000000..181fa96035 --- /dev/null +++ b/var/spack/repos/builtin/packages/z3/fix_1016_1.patch @@ -0,0 +1,12 @@ +--- spack-src/src/util/hash.cpp.org 2019-11-14 11:12:11.233379342 +0900 ++++ spack-src/src/util/hash.cpp 2019-11-14 11:15:51.356519168 +0900 +@@ -75,8 +75,8 @@ + __fallthrough; + case 1 : + a+=str[0]; +- __fallthrough; + /* case 0: nothing left to add */ ++ break; + } + mix(a,b,c); + /*-------------------------------------------- report the result */ diff --git a/var/spack/repos/builtin/packages/z3/fix_1016_2.patch b/var/spack/repos/builtin/packages/z3/fix_1016_2.patch new file mode 100644 index 0000000000..95eccbf8cd --- /dev/null +++ b/var/spack/repos/builtin/packages/z3/fix_1016_2.patch @@ -0,0 +1,12 @@ +--- spack-src/src/util/hash.cpp.org 2019-11-13 13:25:33.317336437 +0900 ++++ spack-src/src/util/hash.cpp 2019-11-13 13:26:12.671491961 +0900 +@@ -83,8 +83,8 @@ + Z3_fallthrough; + case 1 : + a+=str[0]; +- Z3_fallthrough; + /* case 0: nothing left to add */ ++ break; + } + mix(a,b,c); + /*-------------------------------------------- report the result */ diff --git a/var/spack/repos/builtin/packages/z3/package.py b/var/spack/repos/builtin/packages/z3/package.py index b558fa010f..1f166ce54c 100644 --- a/var/spack/repos/builtin/packages/z3/package.py +++ b/var/spack/repos/builtin/packages/z3/package.py @@ -20,8 +20,12 @@ class Z3(MakefilePackage): phases = ['bootstrap', 'build', 'install'] - variant('python', default=False, description='Enable python support') - depends_on('python', when='+python') + variant('python', default=False, description='Enable python binding') + depends_on('python', type=('build', 'run')) + + # 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' diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py index 034fad745a..76ed6a2dbc 100644 --- a/var/spack/repos/builtin/packages/zlib/package.py +++ b/var/spack/repos/builtin/packages/zlib/package.py @@ -38,11 +38,11 @@ class Zlib(Package): ['libz'], root=self.prefix, recursive=True, shared=shared ) - def setup_environment(self, spack_env, run_env): + def setup_build_environment(self, env): if '+pic' in self.spec: - spack_env.append_flags('CFLAGS', self.compiler.pic_flag) + env.append_flags('CFLAGS', self.compiler.pic_flag) if '+optimize' in self.spec: - spack_env.append_flags('CFLAGS', '-O2') + env.append_flags('CFLAGS', '-O2') def install(self, spec, prefix): config_args = [] diff --git a/var/spack/repos/builtin/packages/zookeeper/package.py b/var/spack/repos/builtin/packages/zookeeper/package.py new file mode 100644 index 0000000000..34ba650097 --- /dev/null +++ b/var/spack/repos/builtin/packages/zookeeper/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Zookeeper(Package): + """ + Apache ZooKeeper is an effort to develop and maintain an open-source + server which enables highly reliable distributed coordination. + """ + + homepage = "https://archive.apache.org" + url = "https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz" + + version('3.4.11', sha256='f6bd68a1c8f7c13ea4c2c99f13082d0d71ac464ffaf3bf7a365879ab6ad10e84') + + def install(self, spec, prefix): + install_tree('.', prefix) |