Merge remote-tracking branch 'upstream/develop' into develop

This commit is contained in:
Jim Galarowicz 2017-01-05 19:46:15 -08:00
commit c452262ce5
268 changed files with 2659 additions and 390 deletions

View File

@ -1,3 +1,6 @@
#=============================================================================
# Project settings
#=============================================================================
language: python
# Only build master and develop on push; do not build every branch.
@ -6,7 +9,9 @@ branches:
- master
- develop
# Construct build matrix
#=============================================================================
# Build matrix
#=============================================================================
python:
- 2.6
- 2.7
@ -17,14 +22,23 @@ env:
- TEST_SUITE=doc
matrix:
# Flake8 and Sphinx no longer support Python 2.6, and one run is enough.
exclude:
- python: 2.6
# Flake8 no longer supports Python 2.6
env: TEST_SUITE=flake8
- python: 2.6
# Sphinx no longer supports Python 2.6
env: TEST_SUITE=doc
# Explicitly include an OS X build with homebrew's python.
# Works around Python issues on Travis for OSX, described here:
# http://blog.fizyk.net.pl/blog/running-python-tests-on-traviss-osx-workers.html
include:
- os: osx
language: generic
env: TEST_SUITE=unit
#=============================================================================
# Environment
#=============================================================================
# Use new Travis infrastructure (Docker can't sudo yet)
sudo: false
@ -32,9 +46,18 @@ sudo: false
addons:
apt:
packages:
- gfortran
- graphviz
- libyaml-dev
# Work around Travis's lack of support for Python on OSX
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions python > /dev/null || brew install python; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew ls --versions gcc > /dev/null || brew install gcc; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then virtualenv venv; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source venv/bin/activate; fi
# Install various dependencies
install:
- pip install --upgrade coveralls
@ -50,11 +73,17 @@ before_script:
# Need this to be able to compute the list of changed files
- git fetch origin develop:develop
#=============================================================================
# Building
#=============================================================================
script: share/spack/qa/run-$TEST_SUITE-tests
after_success:
- if [[ $TEST_SUITE == unit && $TRAVIS_PYTHON_VERSION == 2.7 ]]; then coveralls; fi
- if [[ $TEST_SUITE == unit && $TRAVIS_PYTHON_VERSION == 2.7 && $TRAVIS_OS_NAME == "linux" ]]; then coveralls; fi
#=============================================================================
# Notifications
#=============================================================================
notifications:
email:
recipients: tgamblin@llnl.gov

View File

@ -353,9 +353,9 @@ and has similar effects on module file of dependees. Even in this case
``run_env`` must be filled with the desired list of environment modifications.
.. note::
The ``R`` package and callback APIs
The ``r`` package and callback APIs
A typical example in which overriding both methods prove to be useful
is given by the ``R`` package. This package installs libraries and headers
is given by the ``r`` package. This package installs libraries and headers
in non-standard locations and it is possible to prepend the appropriate directory
to the corresponding environment variables:
@ -367,14 +367,14 @@ and has similar effects on module file of dependees. Even in this case
with the following snippet:
.. literalinclude:: ../../../var/spack/repos/builtin/packages/R/package.py
.. literalinclude:: ../../../var/spack/repos/builtin/packages/r/package.py
:pyobject: R.setup_environment
The ``R`` package also knows which environment variable should be modified
The ``r`` package also knows which environment variable should be modified
to make language extensions provided by other packages available, and modifies
it appropriately in the override of the second method:
.. literalinclude:: ../../../var/spack/repos/builtin/packages/R/package.py
.. literalinclude:: ../../../var/spack/repos/builtin/packages/r/package.py
:lines: 128-129,146-151
.. _modules-yaml:

View File

@ -77,7 +77,7 @@
import spack.config
import spack.fetch_strategy
from spack.file_cache import FileCache
from spack.preferred_packages import PreferredPackages
from spack.package_prefs import PreferredPackages
from spack.abi import ABI
from spack.concretize import DefaultConcretizer
from spack.version import Version
@ -99,11 +99,6 @@
tty.die('while initializing Spack RepoPath:', e.message)
# PreferredPackages controls preference sort order during concretization.
# More preferred packages are sorted first.
pkgsort = PreferredPackages()
# Tests ABI compatibility between packages
abi = ABI()

View File

@ -60,9 +60,10 @@
import llnl.util.lang as lang
import llnl.util.tty as tty
from llnl.util.filesystem import *
import spack
import spack.store
from llnl.util.filesystem import *
from spack.environment import EnvironmentModifications, validate
from spack.util.environment import *
from spack.util.executable import Executable, which
@ -450,7 +451,8 @@ def parent_class_modules(cls):
"""
Get list of super class modules that are all descend from spack.Package
"""
if not issubclass(cls, spack.Package) or issubclass(spack.Package, cls):
if (not issubclass(cls, spack.package.Package) or
issubclass(spack.package.Package, cls)):
return []
result = []
module = sys.modules.get(cls.__module__)
@ -622,9 +624,9 @@ def make_stack(tb, stack=None):
for tb in stack:
frame = tb.tb_frame
if 'self' in frame.f_locals:
# Find the first proper subclass of spack.PackageBase.
# Find the first proper subclass of PackageBase.
obj = frame.f_locals['self']
if isinstance(obj, spack.PackageBase):
if isinstance(obj, spack.package.PackageBase):
break
# we found obj, the Package implementation we care about.

View File

@ -215,7 +215,7 @@ def __init__(self, name, *args):
class RGuess(DefaultGuess):
"""Provides appropriate overrides for R extensions"""
dependencies = """\
extends('R')
extends('r')
# FIXME: Add additional dependencies if required.
# depends_on('r-foo', type=nolink)"""
@ -283,7 +283,7 @@ class BuildSystemGuesser(object):
'scons': SconsGuess,
'bazel': BazelGuess,
'python': PythonGuess,
'R': RGuess,
'r': RGuess,
'octave': OctaveGuess
}
@ -306,7 +306,7 @@ def __call__(self, stage, url):
(r'/CMakeLists.txt$', 'cmake'),
(r'/SConstruct$', 'scons'),
(r'/setup.py$', 'python'),
(r'/NAMESPACE$', 'R'),
(r'/NAMESPACE$', 'r'),
(r'/WORKSPACE$', 'bazel')
]

View File

@ -106,8 +106,15 @@ def print_text_info(pkg):
print
print "Virtual Packages: "
if pkg.provided:
for spec, when in pkg.provided.items():
print " %s provides %s" % (when, spec)
inverse_map = {}
for spec, whens in pkg.provided.items():
for when in whens:
if when not in inverse_map:
inverse_map[when] = set()
inverse_map[when].add(spec)
for when, specs in reversed(sorted(inverse_map.items())):
print " %s provides %s" % (
when, ', '.join(str(s) for s in specs))
else:
print " None"

View File

@ -99,9 +99,10 @@ def test(parser, args, unknown_args):
do_list(args, unknown_args)
return
if args.tests and not any(arg.startswith('-') for arg in args.tests):
# Allow keyword search without -k if no options are specified
if (args.tests and not unknown_args and
not any(arg.startswith('-') for arg in args.tests)):
return pytest.main(['-k'] + args.tests)
else:
# Just run the pytest command.
# Just run the pytest command
return pytest.main(unknown_args + args.tests)

View File

@ -42,8 +42,7 @@
from spack.version import *
from functools import partial
from itertools import chain
from spack.config import *
import spack.preferred_packages
from spack.package_prefs import *
class DefaultConcretizer(object):
@ -64,11 +63,11 @@ def _valid_virtuals_and_externals(self, spec):
raise UnsatisfiableProviderSpecError(providers[0], spec)
spec_w_preferred_providers = find_spec(
spec,
lambda x: spack.pkgsort.spec_has_preferred_provider(
lambda x: pkgsort().spec_has_preferred_provider(
x.name, spec.name))
if not spec_w_preferred_providers:
spec_w_preferred_providers = spec
provider_cmp = partial(spack.pkgsort.provider_compare,
provider_cmp = partial(pkgsort().provider_compare,
spec_w_preferred_providers.name,
spec.name)
candidates = sorted(providers, cmp=provider_cmp)
@ -169,8 +168,8 @@ def concretize_version(self, spec):
# ---------- Produce prioritized list of versions
# Get list of preferences from packages.yaml
preferred = spack.pkgsort
# NOTE: spack.pkgsort == spack.preferred_packages.PreferredPackages()
preferred = pkgsort()
# NOTE: pkgsort() == spack.package_prefs.PreferredPackages()
yaml_specs = [
x[0] for x in
@ -277,7 +276,7 @@ def concretize_variants(self, spec):
the package specification.
"""
changed = False
preferred_variants = spack.pkgsort.spec_preferred_variants(
preferred_variants = pkgsort().spec_preferred_variants(
spec.package_class.name)
for name, variant in spec.package_class.variants.items():
if name not in spec.variants:
@ -342,7 +341,7 @@ def _proper_compiler_style(cspec, aspec):
compiler_list = all_compilers if not other_compiler else \
spack.compilers.find(other_compiler)
cmp_compilers = partial(
spack.pkgsort.compiler_compare, other_spec.name)
pkgsort().compiler_compare, other_spec.name)
matches = sorted(compiler_list, cmp=cmp_compilers)
if not matches:
arch = spec.architecture
@ -467,41 +466,6 @@ def find_spec(spec, condition):
return None # Nothing matched the condition.
def cmp_specs(lhs, rhs):
# Package name sort order is not configurable, always goes alphabetical
if lhs.name != rhs.name:
return cmp(lhs.name, rhs.name)
# Package version is second in compare order
pkgname = lhs.name
if lhs.versions != rhs.versions:
return spack.pkgsort.version_compare(
pkgname, lhs.versions, rhs.versions)
# Compiler is third
if lhs.compiler != rhs.compiler:
return spack.pkgsort.compiler_compare(
pkgname, lhs.compiler, rhs.compiler)
# Variants
if lhs.variants != rhs.variants:
return spack.pkgsort.variant_compare(
pkgname, lhs.variants, rhs.variants)
# Architecture
if lhs.architecture != rhs.architecture:
return spack.pkgsort.architecture_compare(
pkgname, lhs.architecture, rhs.architecture)
# Dependency is not configurable
lhash, rhash = hash(lhs), hash(rhs)
if lhash != rhash:
return -1 if lhash < rhash else 1
# Equal specs
return 0
class UnavailableCompilerVersionError(spack.error.SpackError):
"""Raised when there is no available compiler that satisfies a

View File

@ -199,6 +199,7 @@ def clear(self):
def __repr__(self):
return '<ConfigScope: %s: %s>' % (self.name, self.path)
#
# Below are configuration scopes.
#
@ -458,54 +459,6 @@ def print_section(section):
raise ConfigError("Error reading configuration: %s" % section)
def spec_externals(spec):
"""Return a list of external specs (with external directory path filled in),
one for each known external installation."""
# break circular import.
from spack.build_environment import get_path_from_module
allpkgs = get_config('packages')
name = spec.name
external_specs = []
pkg_paths = allpkgs.get(name, {}).get('paths', None)
pkg_modules = allpkgs.get(name, {}).get('modules', None)
if (not pkg_paths) and (not pkg_modules):
return []
for external_spec, path in pkg_paths.iteritems():
if not path:
# skip entries without paths (avoid creating extra Specs)
continue
external_spec = spack.spec.Spec(external_spec, external=path)
if external_spec.satisfies(spec):
external_specs.append(external_spec)
for external_spec, module in pkg_modules.iteritems():
if not module:
continue
path = get_path_from_module(module)
external_spec = spack.spec.Spec(
external_spec, external=path, external_module=module)
if external_spec.satisfies(spec):
external_specs.append(external_spec)
return external_specs
def is_spec_buildable(spec):
"""Return true if the spec pkgspec is configured as buildable"""
allpkgs = get_config('packages')
if spec.name not in allpkgs:
return True
if 'buildable' not in allpkgs[spec.name]:
return True
return allpkgs[spec.name]['buildable']
class ConfigError(SpackError):
pass

View File

@ -313,7 +313,9 @@ def _execute(pkg):
for provided_spec in spack.spec.parse(string):
if pkg.name == provided_spec.name:
raise CircularReferenceError('depends_on', pkg.name)
pkg.provided[provided_spec] = provider_spec
if provided_spec not in pkg.provided:
pkg.provided[provided_spec] = set()
pkg.provided[provided_spec].add(provider_spec)
return _execute

View File

@ -23,7 +23,6 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import re
import os
from spack.architecture import OperatingSystem
from spack.util.executable import *
@ -67,17 +66,10 @@ def find_compiler(self, cmp_cls, *paths):
modulecmd = which('modulecmd')
modulecmd.add_default_arg('python')
# Save the environment variable to restore later
old_modulepath = os.environ['MODULEPATH']
# if given any explicit paths, search them for module files too
if paths:
module_paths = ':' + ':'.join(p for p in paths)
os.environ['MODULEPATH'] = module_paths
output = modulecmd(
'avail', cmp_cls.PrgEnv_compiler, output=str, error=str)
matches = re.findall(
r'(%s)/([\d\.]+[\d])' % cmp_cls.PrgEnv_compiler, output)
version_regex = r'(%s)/([\d\.]+[\d])' % cmp_cls.PrgEnv_compiler
matches = re.findall(version_regex, output)
for name, version in matches:
v = version
comp = cmp_cls(
@ -87,8 +79,4 @@ def find_compiler(self, cmp_cls, *paths):
compilers.append(comp)
# Restore modulepath environment variable
if paths:
os.environ['MODULEPATH'] = old_modulepath
return compilers

View File

@ -24,12 +24,33 @@
##############################################################################
import spack
import spack.error
from spack.version import *
def get_packages_config():
"""Wrapper around get_packages_config() to validate semantics."""
config = spack.config.get_config('packages')
# Get a list of virtuals from packages.yaml. Note that because we
# check spack.repo, this collects virtuals that are actually provided
# by sometihng, not just packages/names that don't exist.
# So, this won't include, e.g., 'all'.
virtuals = [(pkg_name, pkg_name._start_mark) for pkg_name in config
if spack.repo.is_virtual(pkg_name)]
# die if there are virtuals in `packages.py`
if virtuals:
errors = ["%s: %s" % (line_info, name) for name, line_info in virtuals]
raise VirtualInPackagesYAMLError(
"packages.yaml entries cannot be virtual packages:", *errors)
return config
class PreferredPackages(object):
def __init__(self):
self.preferred = spack.config.get_config('packages')
self.preferred = get_packages_config()
self._spec_for_pkgname_cache = {}
# Given a package name, sort component (e.g, version, compiler, ...), and
@ -154,10 +175,17 @@ def spec_has_preferred_provider(self, pkgname, provider_str):
def spec_preferred_variants(self, pkgname):
"""Return a VariantMap of preferred variants and their values"""
variants = self.preferred.get(pkgname, {}).get('variants', '')
for pkg in (pkgname, 'all'):
variants = self.preferred.get(pkg, {}).get('variants', '')
if variants:
break
if not isinstance(variants, basestring):
variants = " ".join(variants)
return spack.spec.Spec("%s %s" % (pkgname, variants)).variants
pkg = spack.repo.get(pkgname)
spec = spack.spec.Spec("%s %s" % (pkgname, variants))
# Only return variants that are actually supported by the package
return dict((name, variant) for name, variant in spec.variants.items()
if name in pkg.variants)
def version_compare(self, pkgname, a, b):
"""Return less-than-0, 0, or greater than 0 if version a of pkgname is
@ -187,3 +215,100 @@ def compiler_compare(self, pkgname, a, b):
pkgname. One compiler is less-than another if it is preferred over
the other."""
return self._spec_compare(pkgname, 'compiler', a, b, False, None)
def spec_externals(spec):
"""Return a list of external specs (with external directory path filled in),
one for each known external installation."""
# break circular import.
from spack.build_environment import get_path_from_module
allpkgs = get_packages_config()
name = spec.name
external_specs = []
pkg_paths = allpkgs.get(name, {}).get('paths', None)
pkg_modules = allpkgs.get(name, {}).get('modules', None)
if (not pkg_paths) and (not pkg_modules):
return []
for external_spec, path in pkg_paths.iteritems():
if not path:
# skip entries without paths (avoid creating extra Specs)
continue
external_spec = spack.spec.Spec(external_spec, external=path)
if external_spec.satisfies(spec):
external_specs.append(external_spec)
for external_spec, module in pkg_modules.iteritems():
if not module:
continue
path = get_path_from_module(module)
external_spec = spack.spec.Spec(
external_spec, external=path, external_module=module)
if external_spec.satisfies(spec):
external_specs.append(external_spec)
return external_specs
def is_spec_buildable(spec):
"""Return true if the spec pkgspec is configured as buildable"""
allpkgs = get_packages_config()
if spec.name not in allpkgs:
return True
if 'buildable' not in allpkgs[spec.name]:
return True
return allpkgs[spec.name]['buildable']
def cmp_specs(lhs, rhs):
# Package name sort order is not configurable, always goes alphabetical
if lhs.name != rhs.name:
return cmp(lhs.name, rhs.name)
# Package version is second in compare order
pkgname = lhs.name
if lhs.versions != rhs.versions:
return pkgsort().version_compare(
pkgname, lhs.versions, rhs.versions)
# Compiler is third
if lhs.compiler != rhs.compiler:
return pkgsort().compiler_compare(
pkgname, lhs.compiler, rhs.compiler)
# Variants
if lhs.variants != rhs.variants:
return pkgsort().variant_compare(
pkgname, lhs.variants, rhs.variants)
# Architecture
if lhs.architecture != rhs.architecture:
return pkgsort().architecture_compare(
pkgname, lhs.architecture, rhs.architecture)
# Dependency is not configurable
lhash, rhash = hash(lhs), hash(rhs)
if lhash != rhash:
return -1 if lhash < rhash else 1
# Equal specs
return 0
_pkgsort = None
def pkgsort():
global _pkgsort
if _pkgsort is None:
_pkgsort = PreferredPackages()
return _pkgsort
class VirtualInPackagesYAMLError(spack.error.SpackError):
"""Raised when a disallowed virtual is found in packages.yaml"""

View File

@ -97,7 +97,9 @@ def update(self, spec):
assert(not spec.virtual)
pkg = spec.package
for provided_spec, provider_spec in pkg.provided.iteritems():
for provided_spec, provider_specs in pkg.provided.iteritems():
for provider_spec in provider_specs:
# TODO: fix this comment.
# We want satisfaction other than flags
provider_spec.compiler_flags = spec.compiler_flags.copy()
@ -114,15 +116,16 @@ def update(self, spec):
# If this package existed in the index before,
# need to take the old versions out, as they're
# now more constrained.
old = set([s for s in provider_set if s.name == spec.name])
old = set(
[s for s in provider_set if s.name == spec.name])
provider_set.difference_update(old)
# Now add the new version.
provider_set.add(spec)
else:
# Before putting the spec in the map, constrain it so that
# it provides what was asked for.
# Before putting the spec in the map, constrain
# it so that it provides what was asked for.
constrained = spec.copy()
constrained.constrain(provider_spec)
provider_map[provided_spec].add(constrained)

View File

@ -337,8 +337,16 @@ def filename_for_package_name(self, pkg_name):
return self.repo_for_pkg(pkg_name).filename_for_package_name(pkg_name)
def exists(self, pkg_name):
"""Whether package with the give name exists in the path's repos.
Note that virtual packages do not "exist".
"""
return any(repo.exists(pkg_name) for repo in self.repos)
def is_virtual(self, pkg_name):
"""True if the package with this name is virtual, False otherwise."""
return pkg_name in self.provider_index
def __contains__(self, pkg_name):
return self.exists(pkg_name)
@ -772,6 +780,10 @@ def exists(self, pkg_name):
filename = self.filename_for_package_name(pkg_name)
return os.path.exists(filename)
def is_virtual(self, pkg_name):
"""True if the package with this name is virtual, False otherwise."""
return self.provider_index.contains(pkg_name)
def _get_pkg_module(self, pkg_name):
"""Create a module for a particular package.

View File

@ -2020,8 +2020,9 @@ def satisfies(self, other, deps=True, strict=False):
if not self.virtual and other.virtual:
pkg = spack.repo.get(self.fullname)
if pkg.provides(other.name):
for provided, when_spec in pkg.provided.items():
if self.satisfies(when_spec, deps=False, strict=strict):
for provided, when_specs in pkg.provided.items():
if any(self.satisfies(when_spec, deps=False, strict=strict)
for when_spec in when_specs):
if provided.satisfies(other):
return True
return False
@ -2546,6 +2547,8 @@ def dep_string(self):
return ''.join("^" + dep.format() for dep in self.sorted_deps())
def __cmp__(self, other):
from package_prefs import pkgsort
# Package name sort order is not configurable, always goes alphabetical
if self.name != other.name:
return cmp(self.name, other.name)
@ -2553,22 +2556,22 @@ def __cmp__(self, other):
# Package version is second in compare order
pkgname = self.name
if self.versions != other.versions:
return spack.pkgsort.version_compare(
return pkgsort().version_compare(
pkgname, self.versions, other.versions)
# Compiler is third
if self.compiler != other.compiler:
return spack.pkgsort.compiler_compare(
return pkgsort().compiler_compare(
pkgname, self.compiler, other.compiler)
# Variants
if self.variants != other.variants:
return spack.pkgsort.variant_compare(
return pkgsort().variant_compare(
pkgname, self.variants, other.variants)
# Target
if self.architecture != other.architecture:
return spack.pkgsort.architecture_compare(
return pkgsort().architecture_compare(
pkgname, self.architecture, other.architecture)
# Dependency is not configurable

View File

@ -36,7 +36,7 @@
('CMakeLists.txt', 'cmake'),
('SConstruct', 'scons'),
('setup.py', 'python'),
('NAMESPACE', 'R'),
('NAMESPACE', 'r'),
('foobar', 'unknown')
]
)

View File

@ -161,6 +161,25 @@ def test_concretize_with_provides_when(self):
s.satisfies('mpich2') for s in repo.providers_for('mpi@3')
)
def test_provides_handles_multiple_providers_of_same_vesrion(self):
"""
"""
providers = spack.repo.providers_for('mpi@3.0')
# Note that providers are repo-specific, so we don't misinterpret
# providers, but vdeps are not namespace-specific, so we can
# associate vdeps across repos.
assert Spec('builtin.mock.multi-provider-mpi@1.10.3') in providers
assert Spec('builtin.mock.multi-provider-mpi@1.10.2') in providers
assert Spec('builtin.mock.multi-provider-mpi@1.10.1') in providers
assert Spec('builtin.mock.multi-provider-mpi@1.10.0') in providers
assert Spec('builtin.mock.multi-provider-mpi@1.8.8') in providers
def concretize_multi_provider(self):
s = Spec('mpileaks ^multi-provider-mpi@3.0')
s.concretize()
assert s['mpi'].version == ver('1.10.3')
def test_concretize_two_virtuals(self):
"""Test a package with multiple virtual dependencies."""
Spec('hypre').concretize()
@ -221,7 +240,7 @@ def test_virtual_is_fully_expanded_for_mpileaks(
assert 'mpi' in spec
def test_my_dep_depends_on_provider_of_my_virtual_dep(self):
spec = Spec('indirect_mpich')
spec = Spec('indirect-mpich')
spec.normalize()
spec.concretize()

View File

@ -25,7 +25,9 @@
import pytest
import spack
import spack.util.spack_yaml as syaml
from spack.spec import Spec
from spack.package_prefs import PreferredPackages
@pytest.fixture()
@ -39,7 +41,7 @@ def concretize_scope(config, tmpdir):
# This is kind of weird, but that's how config scopes are
# set in ConfigScope.__init__
spack.config.config_scopes.pop('concretize')
spack.pkgsort = spack.PreferredPackages()
spack.package_prefs._pkgsort = PreferredPackages()
def concretize(abstract_spec):
@ -50,7 +52,7 @@ def update_packages(pkgname, section, value):
"""Update config and reread package list"""
conf = {pkgname: {section: value}}
spack.config.update_config('packages', conf, 'concretize')
spack.pkgsort = spack.PreferredPackages()
spack.package_prefs._pkgsort = PreferredPackages()
def assert_variant_values(spec, **variants):
@ -114,3 +116,30 @@ def test_develop(self):
spec = Spec('builtin.mock.develop-test')
spec.concretize()
assert spec.version == spack.spec.Version('0.2.15')
def test_no_virtuals_in_packages_yaml(self):
"""Verify that virtuals are not allowed in packages.yaml."""
# set up a packages.yaml file with a vdep as a key. We use
# syaml.load here to make sure source lines in the config are
# attached to parsed strings, as the error message uses them.
conf = syaml.load("""mpi:
paths:
mpi-with-lapack@2.1: /path/to/lapack
""")
spack.config.update_config('packages', conf, 'concretize')
# now when we get the packages.yaml config, there should be an error
with pytest.raises(spack.package_prefs.VirtualInPackagesYAMLError):
spack.package_prefs.get_packages_config()
def test_all_is_not_a_virtual(self):
"""Verify that `all` is allowed in packages.yaml."""
conf = syaml.load("""all:
variants: [+mpi]
""")
spack.config.update_config('packages', conf, 'concretize')
# should be no error for 'all':
spack.package_prefs._pkgsort = PreferredPackages()
spack.package_prefs.get_packages_config()

View File

@ -122,7 +122,6 @@ def builtin_mock(repo_path):
def refresh_builtin_mock(builtin_mock, repo_path):
"""Refreshes the state of spack.repo"""
# Get back the real repository
spack.repo.swap(builtin_mock.real)
mock_repo = copy.deepcopy(repo_path)
spack.repo.swap(mock_repo)
return builtin_mock

View File

@ -60,7 +60,7 @@ def fake_fetchify(url, pkg):
@pytest.mark.usefixtures('install_mockery')
def test_install_and_uninstall(mock_archive):
# Get a basic concrete spec for the trivial install package.
spec = Spec('trivial_install_test_package')
spec = Spec('trivial-install-test-package')
spec.concretize()
assert spec.concrete
@ -90,3 +90,15 @@ def test_store(mock_archive):
except Exception:
pkg.remove_prefix()
raise
@pytest.mark.usefixtures('install_mockery')
def test_failing_build(mock_archive):
spec = Spec('failing-build').concretized()
for s in spec.traverse():
fake_fetchify(mock_archive.url, s.package)
pkg = spec.package
with pytest.raises(spack.build_environment.ChildError):
pkg.do_install()

View File

@ -129,7 +129,7 @@ def test_hg_mirror(self, mock_hg_repository):
repos.clear()
def test_url_mirror(self, mock_archive):
set_up_package('trivial_install_test_package', mock_archive, 'url')
set_up_package('trivial-install-test-package', mock_archive, 'url')
check_mirror()
repos.clear()
@ -143,6 +143,6 @@ def test_all_mirror(
set_up_package('git-test', mock_git_repository, 'git')
set_up_package('svn-test', mock_svn_repository, 'svn')
set_up_package('hg-test', mock_hg_repository, 'hg')
set_up_package('trivial_install_test_package', mock_archive, 'url')
set_up_package('trivial-install-test-package', mock_archive, 'url')
check_mirror()
repos.clear()

View File

@ -26,6 +26,7 @@
This test does sanity checks on Spack's builtin package database.
"""
import unittest
import re
import spack
from spack.repository import RepoPath
@ -57,3 +58,13 @@ def test_url_versions(self):
# If there is a url for the version check it.
v_url = pkg.url_for_version(v)
self.assertEqual(vattrs['url'], v_url)
def test_all_versions_are_lowercase(self):
"""Spack package names must be lowercase, and use `-` instead of `_`.
"""
errors = []
for name in spack.repo.all_package_names():
if re.search(r'[_A-Z]', name):
errors.append(name)
self.assertEqual([], errors)

View File

@ -83,7 +83,7 @@ def test_import_package_as(builtin_mock):
def test_inheritance_of_diretives():
p = spack.repo.get('simple_inheritance')
p = spack.repo.get('simple-inheritance')
# Check dictionaries that should have been filled by directives
assert len(p.dependencies) == 3
@ -93,14 +93,14 @@ def test_inheritance_of_diretives():
assert len(p.provided) == 2
# Check that Spec instantiation behaves as we expect
s = Spec('simple_inheritance')
s = Spec('simple-inheritance')
s.concretize()
assert '^cmake' in s
assert '^openblas' in s
assert '+openblas' in s
assert 'mpi' in s
s = Spec('simple_inheritance~openblas')
s = Spec('simple-inheritance~openblas')
s.concretize()
assert '^cmake' in s
assert '^openblas' not in s

View File

@ -266,11 +266,11 @@ def parse_version_offset(path, debug=False):
raise UndetectableVersionError(original_path)
def parse_version(path):
def parse_version(path, debug=False):
"""Given a URL or archive name, extract a version from it and return
a version object.
"""
ver, start, l = parse_version_offset(path)
ver, start, l = parse_version_offset(path, debug=debug)
return Version(ver)

View File

@ -40,12 +40,12 @@ cd "$SPACK_ROOT"
source "$SPACK_ROOT/share/spack/setup-env.sh"
spack compilers
spack config get compilers
spack install -v libdwarf
# Run unit tests with code coverage
if [[ "$TRAVIS_PYTHON_VERSION" == 2.7 ]]; then
coverage run bin/spack test "$@"
coverage combine
coverage run bin/spack install -v libdwarf
coverage run bin/spack test "$@" && coverage combine
else
spack install -v libdwarf
spack test "$@"
fi

View File

@ -0,0 +1,37 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class FailingBuild(Package):
"""This package has a trivial install method that fails."""
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
version('1.0', 'foobarbaz')
def install(self, spec, prefix):
raise InstallError("Expected failure.")

View File

@ -36,7 +36,7 @@ class IndirectMpich(Package):
version(1.0, 'foobarbaz')
depends_on('mpi')
depends_on('direct_mpich')
depends_on('direct-mpich')
def install(self, spec, prefix):
pass

View File

@ -0,0 +1,51 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class MultiProviderMpi(Package):
"""This is a fake MPI package used to test packages providing multiple
virtuals at the same version."""
homepage = "http://www.spack-fake-mpi.org"
url = "http://www.spack-fake-mpi.org/downloads/multi-mpi-1.0.tar.gz"
version('2.0.0', 'foobarbaz')
version('1.10.3', 'foobarbaz')
version('1.10.2', 'foobarbaz')
version('1.10.1', 'foobarbaz')
version('1.10.0', 'foobarbaz')
version('1.8.8', 'foobarbaz')
version('1.6.5', 'foobarbaz')
provides('mpi@3.1', when='@2.0.0')
provides('mpi@3.0', when='@1.10.3')
provides('mpi@3.0', when='@1.10.2')
provides('mpi@3.0', when='@1.10.1')
provides('mpi@3.0', when='@1.10.0')
provides('mpi@3.0', when='@1.8.8')
provides('mpi@2.2', when='@1.6.5')
def install(self, spec, prefix):
pass

View File

@ -0,0 +1,44 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class Ccache(AutotoolsPackage):
"""ccache is a compiler cache. It speeds up recompilation by caching
previous compilations and detecting when the same compilation is being done
again."""
homepage = "https://ccache.samba.org/"
url = "https://www.samba.org/ftp/ccache/ccache-3.3.3.tar.gz"
version('3.3.3', 'ea1f95303749b9ac136c617d1b333eef')
version('3.3.2', 'b966d56603e1fad2bac22930e5f01830')
version('3.3.1', '7102ef024cff09d353b3f4c48379b40b')
version('3.3' , 'b7ac8fdd556f93831618483325fbb1ef')
version('3.2.9', '8f3f6e15e75a0e6020166927d41bd0b3')
depends_on('gperf')
depends_on('libxslt')
depends_on('zlib')

View File

@ -40,7 +40,7 @@ class Cleverleaf(Package):
version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git',
branch='develop')
depends_on("SAMRAI@3.8.0:")
depends_on("samrai@3.8.0:")
depends_on("hdf5+mpi")
depends_on("boost")
depends_on('cmake', type='build')

View File

@ -0,0 +1,312 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
import socket
import os
import llnl.util.tty as tty
def cmake_cache_entry(name, value):
"""
Helper that creates CMake cache entry strings used in
'host-config' files.
"""
return 'set("{0}" "{1}" CACHE PATH "")\n\n'.format(name, value)
class Conduit(Package):
"""Conduit is an open source project from Lawrence Livermore National
Laboratory that provides an intuitive model for describing hierarchical
scientific data in C++, C, Fortran, and Python. It is used for data
coupling between packages in-core, serialization, and I/O tasks."""
homepage = "http://software.llnl.gov/conduit"
url = "https://github.com/LLNL/conduit/archive/v0.2.0.tar.gz"
version('0.2.0', 'd595573dedf55514c11d7391092fd760')
version('master', git='https://github.com/LLNL/conduit.git')
###########################################################################
# package variants
###########################################################################
variant("shared", default=True, description="Build Conduit as shared libs")
variant("cmake", default=True,
description="Build CMake (if off, attempt to use cmake from PATH)")
# variants for python support
variant("python", default=True, description="Build Conduit Python support")
# variants for comm and i/o
variant("mpi", default=True, description="Build Conduit MPI Support")
variant("hdf5", default=True, description="Build Conduit HDF5 support")
variant("silo", default=True, description="Build Conduit Silo support")
# variants for dev-tools (docs, etc)
variant("doc", default=False, description="Build Conduit's documentation")
###########################################################################
# package dependencies
###########################################################################
#######################
# CMake
#######################
# cmake 3.3.1 is the version we tested
depends_on("cmake@3.3.1", when="+cmake")
#######################
# Python
#######################
extends("python", when="+python")
# TODO: blas and lapack are disabled due to build
# issues Cyrus experienced on OSX 10.11.6
depends_on("py-numpy~blas~lapack", when="+python")
#######################
# I/O Packages
#######################
# TODO: cxx variant is disabled due to build issue Cyrus
# experienced on BGQ. When on, the static build tries
# to link agains shared libs.
#
# we are not using hdf5's mpi or fortran features.
depends_on("hdf5~cxx~mpi~fortran", when="+shared")
depends_on("hdf5~shared~cxx~mpi~fortran", when="~shared")
# we are not using silo's fortran features
depends_on("silo~fortran", when="+shared")
depends_on("silo~shared~fortran", when="~shared")
#######################
# MPI
#######################
depends_on("mpi", when="+mpi")
#######################
# Documentation related
#######################
depends_on("py-sphinx", when="+python+doc")
depends_on("doxygen", when="+doc")
def install(self, spec, prefix):
"""
Build and install Conduit.
"""
with working_dir('spack-build', create=True):
host_cfg_fname = self.create_host_config(spec, prefix)
cmake_args = []
# if we have a static build, we need to avoid any of
# spack's default cmake settings related to rpaths
# (see: https://github.com/LLNL/spack/issues/2658)
if "+shared" in spec:
cmake_args.extend(std_cmake_args)
else:
for arg in std_cmake_args:
if arg.count("RPATH") == 0:
cmake_args.append(arg)
cmake_args.extend(["-C", host_cfg_fname, "../src"])
cmake(*cmake_args)
make()
make("install")
def create_host_config(self, spec, prefix):
"""
This method creates a 'host-config' file that specifies
all of the options used to configure and build conduit.
For more details see about 'host-config' files see:
http://software.llnl.gov/conduit/building.html
"""
#######################
# Compiler Info
#######################
c_compiler = env["SPACK_CC"]
cpp_compiler = env["SPACK_CXX"]
f_compiler = None
if self.compiler.fc:
# even if this is set, it may not exist so do one more sanity check
if os.path.isfile(env["SPACK_FC"]):
f_compiler = env["SPACK_FC"]
#######################################################################
# By directly fetching the names of the actual compilers we appear
# to doing something evil here, but this is necessary to create a
# 'host config' file that works outside of the spack install env.
#######################################################################
sys_type = spec.architecture
# if on llnl systems, we can use the SYS_TYPE
if "SYS_TYPE" in env:
sys_type = env["SYS_TYPE"]
##############################################
# Find and record what CMake is used
##############################################
if "+cmake" in spec:
cmake_exe = join_path(spec['cmake'].prefix.bin, "cmake")
else:
cmake_exe = which("cmake")
if cmake_exe is None:
msg = 'failed to find CMake (and cmake variant is off)'
raise RuntimeError(msg)
cmake_exe = cmake_exe.command
host_cfg_fname = "%s-%s-%s.cmake" % (socket.gethostname(),
sys_type,
spec.compiler)
cfg = open(host_cfg_fname, "w")
cfg.write("##################################\n")
cfg.write("# spack generated host-config\n")
cfg.write("##################################\n")
cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler))
cfg.write("##################################\n\n")
# Include path to cmake for reference
cfg.write("# cmake from spack \n")
cfg.write("# cmake executable path: %s\n\n" % cmake_exe)
#######################
# Compiler Settings
#######################
cfg.write("#######\n")
cfg.write("# using %s compiler spec\n" % spec.compiler)
cfg.write("#######\n\n")
cfg.write("# c compiler used by spack\n")
cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
cfg.write("# cpp compiler used by spack\n")
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
cfg.write("# fortran compiler used by spack\n")
if f_compiler is not None:
cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "ON"))
cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", f_compiler))
else:
cfg.write("# no fortran compiler found\n\n")
cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "OFF"))
#######################
# Python
#######################
cfg.write("# Python Support\n")
if "+python" in spec:
python_exe = join_path(spec['python'].prefix.bin, "python")
cfg.write("# Enable python module builds\n")
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "ON"))
cfg.write("# python from spack \n")
cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", python_exe))
# install module to standard style site packages dir
# so we can support spack activate
py_ver_short = "python{0}".format(spec["python"].version.up_to(2))
pym_prefix = join_path("${CMAKE_INSTALL_PREFIX}",
"lib",
py_ver_short,
"site-packages")
# use pym_prefix as the install path
cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX",
pym_prefix))
else:
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF"))
if "+doc" in spec:
cfg.write(cmake_cache_entry("ENABLE_DOCS", "ON"))
cfg.write("# sphinx from spack \n")
sphinx_build_exe = join_path(spec['py-sphinx'].prefix.bin,
"sphinx-build")
cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE", sphinx_build_exe))
cfg.write("# doxygen from uberenv\n")
doxygen_exe = join_path(spec['doxygen'].prefix.bin, "doxygen")
cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE", doxygen_exe))
else:
cfg.write(cmake_cache_entry("ENABLE_DOCS", "OFF"))
#######################
# MPI
#######################
cfg.write("# MPI Support\n")
if "+mpi" in spec:
cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc))
# we use `mpicc` as `MPI_CXX_COMPILER` b/c we don't want to
# introduce linking deps to the MPI C++ libs (we aren't using
# C++ features of MPI) -- this happens with some versions of
# OpenMPI
cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", spec['mpi'].mpicc))
cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER",
spec['mpi'].mpifc))
else:
cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
#######################################################################
# I/O Packages
#######################################################################
cfg.write("# I/O Packages\n\n")
#######################
# HDF5
#######################
cfg.write("# hdf5 from spack \n")
if "+hdf5" in spec:
cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix))
else:
cfg.write("# hdf5 not built by spack \n")
#######################
# Silo
#######################
cfg.write("# silo from spack \n")
if "+silo" in spec:
cfg.write(cmake_cache_entry("SILO_DIR", spec['silo'].prefix))
else:
cfg.write("# silo not built by spack \n")
cfg.write("##################################\n")
cfg.write("# end spack generated host-config\n")
cfg.write("##################################\n")
cfg.close()
host_cfg_fname = os.path.abspath(host_cfg_fname)
tty.info("spack generated conduit host-config file: " + host_cfg_fname)
return host_cfg_fname

View File

@ -26,12 +26,13 @@
class Gmp(AutotoolsPackage):
"""GMP is a free library for arbitrary precision arithmetic,
operating on signed integers, rational numbers, and
floating-point numbers."""
"""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://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2"
version('6.1.2', '8ddbb26dc3bd4e2302984debba1406a5')
version('6.1.1', '4c175f86e11eb32d8bf9872ca3a8e11d')
version('6.1.0', '86ee6e54ebfc4a90b643a65e402c4048')
version('6.0.0a', 'b7ff2d88cae7f8085bd5006096eed470')
@ -41,7 +42,7 @@ class Gmp(AutotoolsPackage):
def configure_args(self):
args = ['--enable-cxx']
# We need this flag if we want all the following checks to pass.
# This flag is necessary for the Intel build to pass `make check`
if self.spec.compiler.name == 'intel':
args.append('CXXFLAGS=-no-ftz')

View File

@ -47,7 +47,7 @@ class Gource(Package):
depends_on('libpng')
depends_on('pcre')
depends_on('sdl2')
depends_on('sdl2_image')
depends_on('sdl2-image')
def install(self, spec, prefix):
make_args = ['--prefix=%s' % prefix,

View File

@ -25,7 +25,7 @@
from spack import *
class Imagemagick(Package):
class ImageMagick(Package):
"""ImageMagick is a software suite to create, edit, compose,
or convert bitmap images."""

View File

@ -222,7 +222,7 @@ def install(self, spec, prefix):
if "+plot" in spec:
julia("-e", 'Pkg.add("PyPlot"); using PyPlot')
julia("-e", 'Pkg.add("Colors"); using Colors')
# These require maybe Gtk and ImageMagick
# These require maybe gtk and image-magick
julia("-e", 'Pkg.add("Plots"); using Plots')
julia("-e", 'Pkg.add("PlotRecipes"); using PlotRecipes')
julia("-e", 'Pkg.add("UnicodePlots"); using UnicodePlots')

View File

@ -29,14 +29,22 @@ class Libpng(AutotoolsPackage):
"""libpng is the official PNG reference library."""
homepage = "http://www.libpng.org/pub/png/libpng.html"
url = "http://download.sourceforge.net/libpng/libpng-1.6.26.tar.gz"
url = "http://download.sourceforge.net/libpng/libpng-1.6.27.tar.gz"
version('1.6.26', '236cd975520fc1f34cc0b8f0e615f7a0')
version('1.6.24', '65213080dd30a9b16193d9b83adc1ee9')
# Security vulnerabilities have been discovered in 1.6.19 an older
version('1.6.27', '58698519e9f6126c1caeefc28dbcbd5f')
# From http://www.libpng.org/pub/png/libpng.html (2017-01-04)
# Virtually all libpng versions through 1.6.26, 1.5.27,
# 1.4.19, 1.2.56, and 1.0.66, respectively, have a
# null-pointer-dereference bug in png_set_text_2() when an
# image-editing application adds, removes, and re-adds text
# chunks to a PNG image. (This bug does not affect pure
# viewers, nor are there any known editors that could trigger
# it without interactive user input. It has been assigned ID
# CVE-2016-10087.) The vulnerability is fixed in versions
# 1.6.27, 1.5.28, 1.4.20, 1.2.57, and 1.0.67, released on 29
# December 2016.
# Required for qt@3
version('1.2.56', '9508fc59d10a1ffadd9aae35116c19ee')
version('1.2.57', 'dfcda3603e29dcc11870c48f838ef75b')
depends_on('zlib@1.0.4:') # 1.2.5 or later recommended

View File

@ -26,7 +26,7 @@
from spack import *
class Luajit(Package):
class LuaJit(Package):
"""Flast flexible JITed lua"""
homepage = "http://www.luajit.org"
url = "http://luajit.org/download/LuaJIT-2.0.4.tar.gz"

View File

@ -0,0 +1,110 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
import sys
import subprocess
class NodeJs(Package):
"""Node.js is a JavaScript runtime built on Chrome's V8 JavaScript
engine."""
homepage = "https://nodejs.org/"
url = "https://nodejs.org/download/release/v6.3.0/node-v6.3.0.tar.gz"
version('7.1.0', '1db5df2cb025f9c70e83d9cf21c4266a')
version('6.3.0', '8c14e5c89d66d4d060c91b3ba15dfd31')
version('6.2.2', '1120e8bf191fdaee42206d031935210d')
# 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')
depends_on('libtool', type='build', when=sys.platform != 'darwin')
depends_on('pkg-config', type='build')
depends_on('python@2.7:2.7.999', type='build')
# depends_on('bash-completion', when="+bash-completion")
depends_on('icu4c', when='+icu4c')
depends_on('openssl', when='+openssl')
def install(self, spec, prefix):
options = []
options.extend(['--prefix={0}'.format(prefix)])
# Note: npm is updated more regularly than node.js, so we build the
# package instead of using the bundled version
options.extend(['--without-npm'])
# On OSX, the system libtool must be used
# So, we ensure that this is the case by...
if sys.platform == 'darwin':
process_pipe = subprocess.Popen(["which", "libtool"],
stdout=subprocess.PIPE)
result_which = process_pipe.communicate()[0]
process_pipe = subprocess.Popen(["whereis", "libtool"],
stdout=subprocess.PIPE)
result_whereis = process_pipe.communicate()[0]
assert result_which == result_whereis, (
'On OSX the system libtool must be used. Please'
'(temporarily) remove \n %s or its link to libtool from'
'path')
# TODO: Add bash-completion
if '+debug' in spec:
options.extend(['--debug'])
if '+openssl' in spec:
options.extend([
'--shared-openssl',
'--shared-openssl-includes=%s' % spec['openssl'].prefix.include, # NOQA: ignore=E501
'--shared-openssl-libpath=%s' % spec['openssl'].prefix.lib,
])
if '+zlib' in spec:
options.extend([
'--shared-zlib',
'--shared-zlib-includes=%s' % spec['zlib'].prefix.include,
'--shared-zlib-libpath=%s' % spec['zlib'].prefix.lib,
])
if '+icu4c' in spec:
options.extend(['--with-intl=full-icu'])
# else:
# options.extend(['--with-intl=system-icu'])
configure(*options)
if self.run_tests:
make('test')
make('test-addons')
if '+doc' in spec:
make('doc')
make('install')

View File

@ -0,0 +1,54 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
from spack import *
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"
version('3.10.9', 'ec1eb22b466ce87cdd0b90182acce07f')
version('3.10.5', '46002413f4a71de9b0da5b506bf1d992')
depends_on('node-js')
def setup_dependent_environment(self, spack_env, run_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)
def install(self, spec, prefix):
configure('--prefix={0}'.format(prefix))
if self.run_tests:
make('test')
make('install')

View File

@ -85,7 +85,7 @@ class Octave(Package):
depends_on('glpk', when='+glpk')
depends_on('gl2ps', when='+gl2ps')
depends_on('gnuplot', when='+gnuplot')
depends_on('ImageMagick', when='+magick')
depends_on('image-magick', when='+magick')
depends_on('hdf5', when='+hdf5')
depends_on('jdk', when='+jdk')
depends_on('llvm', when='+llvm')
@ -162,7 +162,7 @@ def install(self, spec, prefix):
if '+magick' in spec:
config_args.append("--with-magick=%s"
% spec['ImageMagick'].prefix.lib)
% spec['image-magick'].prefix.lib)
if '+hdf5' in spec:
config_args.extend([

View File

@ -42,8 +42,8 @@ class Octopus(Package):
depends_on('fftw+mpi')
# optional dependencies:
# TODO: scalapack, metis, parmetis, netcdf, etsf_io, SPARSKIT, ARPACK,
# FEAST, Libfm, PFFT, ISF, PNFFT
# TODO: scalapack, metis, parmetis, netcdf, etsf-io, sparskit, arpack,
# feast, libfm, pfft, isf, pnfft
def install(self, spec, prefix):
lapack = spec['lapack'].lapack_libs

View File

@ -36,14 +36,12 @@ class Opencoarrays(CMakePackage):
homepage = "http://www.opencoarrays.org/"
url = "https://github.com/sourceryinstitute/opencoarrays/releases/download/1.7.4/OpenCoarrays-1.7.4.tar.gz"
version('1.8.0', 'ca78d1507b2a118c75128c6c2e093e27')
version('1.7.4', '85ba87def461e3ff5a164de2e6482930')
version('1.6.2', '5a4da993794f3e04ea7855a6678981ba')
depends_on('cmake', type='build')
depends_on('mpi')
provides('coarrays')
def cmake_args(self):
args = []
args.append("-DCMAKE_C_COMPILER=%s" % self.spec['mpi'].mpicc)

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyBackportsAbc(Package):
"""Backports_ABC: A backport of recent additions to the 'collections.abc'
module."""
homepage = "https://github.com/cython/backports_abc"
# base https://pypi.python.org/pypi/backports_abc/
url = "https://github.com/cython/backports_abc/archive/0.4.tar.gz"
version('0.4', 'e4246ae689221c9cbe84369fdb59e8c74d02b298')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyBackportsShutilGetTerminalSize(Package):
"""A backport of the get_terminal_size function
from Python 3.3's shutil."""
homepage = "https://pypi.python.org/pypi/backports.shutil_get_terminal_size"
url = "https://pypi.io/packages/source/b/backports.shutil_get_terminal_size/backports.shutil_get_terminal_size-1.0.0.tar.gz"
version('1.0.0', '03267762480bd86b50580dc19dff3c66')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@:3.2.999')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyBackportsSslMatchHostname(Package):
"""The ssl.match_hostname() function from Python 3.5"""
homepage = "https://pypi.python.org/pypi/backports.ssl_match_hostname"
url = "https://pypi.io/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.5.0.1.tar.gz"
version('3.5.0.1', 'c03fc5e2c7b3da46b81acf5cbacfe1e6')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,42 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyCertifi(Package):
"""Certifi: A carefully curated collection of Root Certificates for validating
the trustworthiness of SSL certificates while verifying the identity of TLS
hosts."""
homepage = "https://github.com/certifi/python-certifi"
# base https://pypi.python.org/pypi/certifi/
url = "https://github.com/certifi/python-certifi/archive/2016.02.28.tar.gz"
version('2016.02.28', '5ccfc23bd5e931863f0b01ef3e9d2dbd3bef0e1b')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -39,7 +39,7 @@ class PyCsvkit(Package):
depends_on('py-dateutil', type=nolink)
depends_on('py-dbf', type=nolink)
depends_on('py-xlrd', type=nolink)
depends_on('py-SQLAlchemy', type=nolink)
depends_on('py-sqlalchemy', type=nolink)
depends_on('py-six', type=nolink)
depends_on('py-openpyxl', type=nolink)

View File

@ -0,0 +1,40 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyEntrypoints(Package):
"""Discover and load entry points from installed packages."""
homepage = "https://pypi.python.org/pypi/entrypoints"
url = "https://files.pythonhosted.org/packages/f8/ad/0e77a853c745a15981ab51fa9a0cb4eca7a7a007b4c1970106ee6ba01e0c/entrypoints-0.2.2-py2.py3-none-any.whl"
version('0.2.2', '73bd7ce92c19b25dc5a20aff41be996a', expand=False)
depends_on('py-pip', type='build')
def install(self, spec, prefix):
pip = which('pip')
pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyFunctools32(Package):
"""Backport of the functools module from Python 3.2.3 for use on 2.7 and
PyPy."""
homepage = "https://github.com/MiCHiLU/python-functools32"
# base https://pypi.python.org/pypi/functools32
url = "https://pypi.python.org/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
version('3.2.3-2', '09f24ffd9af9f6cd0f63cb9f4e23d4b2')
extends('python')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyFutures(Package):
"""Backport of the concurrent.futures package from Python 3.2"""
homepage = "https://pypi.python.org/pypi/futures"
url = "https://pypi.io/packages/source/f/futures/futures-3.0.5.tar.gz"
version('3.0.5', 'ced2c365e518242512d7a398b515ff95')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,56 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyIpykernel(Package):
"""IPython Kernel for Jupyter"""
homepage = "https://pypi.python.org/pypi/ipykernel"
url = "https://github.com/ipython/ipykernel/archive/4.5.0.tar.gz"
version('4.5.0', 'ea6aaf431b100452905aaca208edac72')
version('4.4.1', 'c0033e524aa9e05ed18879641ffe6e0f')
version('4.4.0', '8e626a1708ceff83412180d2ff2f3e57')
version('4.3.1', '971eee85d630eb4bafcd52531c79673f')
version('4.3.0', '5961164fe908faf798232a265ed48c73')
version('4.2.2', '4ac8ae11f1eef4920bf4a5383e13ab50')
version('4.2.1', 'de583ee9c84db6296269ce7de0afb63f')
version('4.2.0', 'fc535e4e020a41cd2b55508302b155bb')
version('4.1.1', '51376850c46fb006e1f8d1cd353507c5')
version('4.1.0', '638a43e4f8a15872f749090c3f0827b6')
extends('python')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-setuptools', type='build')
depends_on('py-traitlets@4.1.0:')
depends_on('py-tornado@4.0:')
depends_on('py-ipython@4.0:')
depends_on('py-jupyter-client')
depends_on('py-pexpect')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,42 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyIpythonGenutils(Package):
"""Vestigial utilities from IPython"""
homepage = "https://pypi.python.org/pypi/ipython_genutils"
url = "https://pypi.io/packages/source/i/ipython_genutils/ipython_genutils-0.1.0.tar.gz"
version('0.1.0', '9a8afbe0978adbcbfcb3b35b2d015a56')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -29,14 +29,19 @@ class PyIpython(Package):
"""IPython provides a rich toolkit to help you make the most out of using
Python interactively."""
homepage = "https://pypi.python.org/pypi/ipython"
url = "https://pypi.python.org/packages/source/i/ipython/ipython-2.3.1.tar.gz"
url = "https://pypi.io/packages/source/i/ipython/ipython-2.3.1.tar.gz"
version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
version('5.1.0', '47c8122420f65b58784cb4b9b4af35e3')
version('3.1.0', 'a749d90c16068687b0ec45a27e72ef8f')
version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
extends('python')
depends_on('py-pygments', type=nolink)
depends_on('py-setuptools', type=nolink)
depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999")
depends_on('py-pathlib2', when="^python@:3.3.999")
depends_on('py-pickleshare')
depends_on('py-simplegeneric')
def install(self, spec, prefix):
setup_py('install', '--prefix=%s' % prefix)

View File

@ -0,0 +1,45 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyIpywidgets(Package):
"""IPython widgets for the Jupyter Notebook"""
homepage = "https://github.com/ipython/ipywidgets"
url = "https://github.com/ipython/ipywidgets/archive/5.2.2.tar.gz"
version('5.2.2', '112f3daa4aa0f42f8dda831cea3649c8')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-ipython@4.0.0:')
depends_on('py-ipykernel@4.2.2:')
depends_on('py-traitlets@4.2.1:')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyJsonschema(Package):
"""Jsonschema: An(other) implementation of JSON Schema for Python."""
homepage = "http://github.com/Julian/jsonschema"
# base https://pypi.python.org/pypi/jsonschema
url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-2.5.1.tar.gz"
version('2.5.1', '374e848fdb69a3ce8b7e778b47c30640')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-vcversioner')
depends_on('py-functools32', when="^python@2.7")
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,52 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyJupyterClient(Package):
"""Jupyter protocol client APIs"""
homepage = "https://github.com/jupyter/jupyter_client"
url = "https://github.com/jupyter/jupyter_client/archive/4.4.0.tar.gz"
version('4.4.0', 'a0bd6fe6ba7c504fbc962a88a2a56a90')
version('4.3.0', '257d9f5429dac4d9511db84d201d3a9e')
version('4.2.2', '988ea87554215a83c6ad52e554d8d8c4')
version('4.2.1', '16994e5cace322c777456bc5a26502d7')
version('4.2.0', '61c43c9f243e42f1945fae5d56d0d23c')
version('4.1.1', '8436e4a3266a442f576cdfef39dc0e19')
version('4.1.0', 'cf42048b889c8434fbb5813a9eec1d34')
version('4.0.0', '00fa63c67cb3adf359d09dc4d803aff5')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-traitlets')
depends_on('py-jupyter-core')
depends_on('py-zmq@13:')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,51 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyJupyterConsole(Package):
"""Jupyter Terminal Console"""
homepage = "https://github.com/jupyter/jupyter_console"
url = "https://github.com/jupyter/jupyter_console/archive/5.0.0.tar.gz"
version('5.0.0', '08a9fde32a45c9e2e0b4cec6eca249c2')
version('4.1.1', 'a8b077ae0a5c57e9518ac039ad5febb8')
version('4.1.0', '9c655076262760bdbeeada9d7f586237')
version('4.0.3', '0e928ea261e7f8154698cf69ed4f2459')
version('4.0.2', 'f2e174938c91136549b908bd39fa5d59')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-jupyter-client')
depends_on('py-ipython')
depends_on('py-ipykernel')
depends_on('py-pygments')
depends_on('py-prompt-toolkit@1.0.0:1.999.999')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,52 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyJupyterCore(Package):
"""Core Jupyter functionality"""
homepage = "http://jupyter-core.readthedocs.io/"
url = "https://github.com/jupyter/jupyter_core/archive/4.2.0.tar.gz"
version('4.2.0', '25c1fc68b1b73c0a2e616c76f02bf061')
version('4.1.1', '2fce5ff60291bc01b39b1f00b3cbb784')
version('4.1.0', 'b7e928f965f68aef13fea1bf9d6384aa')
version('4.0.6', '50a73c3a4a8ed047a3674d2b5274cc3b')
version('4.0.5', 'c09bd3be58f141b49b90cdb2ba22f77f')
version('4.0.4', '5b6ca0e73bf559f4fe6106a6e412f913')
version('4.0.3', 'f2608f6e92f992ec8e37646b52c922a6')
version('4.0.2', 'ae0d0197c4febf43c050a97ac6277263')
version('4.0.1', 'f849136b2badaaba2a8a3b397bf04639')
version('4.0' , 'b6b37cb4f40bd0fcd20433cb2cc7a4c1')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-traitlets')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,66 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyJupyterNotebook(Package):
"""Jupyter Interactive Notebook"""
homepage = "https://github.com/jupyter/notebook"
url = "https://github.com/jupyter/notebook/archive/4.2.3.tar.gz"
version('4.2.3', '5c6b0b1303adacd8972c4db21eda3e98')
version('4.2.2', '7f9717ae4fed930d187a44c0707b6379')
version('4.2.1', '4286f1eaf608257bd69cad4042c7c2fe')
version('4.2.0', '136be6b72fe9db7f0269dc7fa5652a62')
version('4.1.0', '763ab54b3fc69f6225b9659b6994e756')
version('4.0.6', 'd70d8a6d01893f4b64df9edbc0e13b52')
version('4.0.5', '2681a70e4c62aafe7ce69f1da5799ac8')
version('4.0.4', 'ab72f28f6af8107d71241a4110e92c05')
version('4.0.3', '119beea793865ee4b1673a50043ead2a')
version('4.0.2', '77f371e9a23a840d14d8a60fee7ba1b7')
variant('terminal', default=False, description="Enable terminal functionality")
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('npm', type='build')
depends_on('py-jinja2')
depends_on('py-tornado@4:')
depends_on('py-ipython-genutils')
depends_on('py-traitlets')
depends_on('py-jupyter-core')
depends_on('py-jupyter-client')
depends_on('py-jupyter-console')
depends_on('py-nbformat')
depends_on('py-nbconvert')
depends_on('py-ipykernel')
depends_on('py-terminado@0.3.3:', when="+terminal")
depends_on('py-ipywidgets', when="+terminal")
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -76,7 +76,7 @@ class PyMatplotlib(Package):
# --------- Optional external programs
# ffmpeg/avconv or mencoder
depends_on('ImageMagick', when='+animation')
depends_on('image-magick', when='+animation')
# --------- Optional dependencies
depends_on('pkg-config', type='build') # why not...

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyMonotonic(Package):
"""An implementation of time.monotonic() for Python 2 & < 3.3"""
homepage = "https://pypi.python.org/pypi/monotonic"
url = "https://pypi.io/packages/source/m/monotonic/monotonic-1.2.tar.gz"
version('1.2', 'd14c93aabc3d6af25ef086b032b123cf')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,54 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyNbconvert(Package):
"""Jupyter Notebook Conversion"""
homepage = "https://github.com/jupyter/nbconvert"
url = "https://github.com/jupyter/nbconvert/archive/4.2.0.tar.gz"
version('4.2.0' , '8bd88771cc00f575d5edcd0b5197f964')
version('4.1.0' , '06655576713ba1ff7cece2b92760c187')
version('4.0.0' , '9661620b1e10a7b46f314588d2d0932f')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-pycurl', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-mistune')
depends_on('py-jinja2')
depends_on('py-pygments')
depends_on('py-traitlets')
depends_on('py-jupyter-core')
depends_on('py-nbformat')
depends_on('py-entrypoints')
depends_on('py-tornado')
depends_on('py-jupyter-client')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,47 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyNbformat(Package):
"""The Jupyter Notebook format"""
homepage = "https://github.com/jupyter/nbformat"
url = "https://github.com/jupyter/nbformat/archive/4.1.0.tar.gz"
version('4.1.0', '826b4fc4ec42553b20144f53b57b4e7b')
version('4.0.1', 'ab7172e517c9d561c0c01eef5631b4c8')
version('4.0.0', '7cf61359fa4e9cf3ef5e969e2fcb909e')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-ipython-genutils')
depends_on('py-traitlets')
depends_on('py-jsonschema')
depends_on('py-jupyter-core')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,42 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPathlib2(Package):
"""Backport of pathlib from python 3.4"""
homepage = "https://pypi.python.org/pypi/pathlib2"
url = "https://pypi.io/packages/source/p/pathlib2/pathlib2-2.1.0.tar.gz"
version('2.1.0', '38e4f58b4d69dfcb9edb49a54a8b28d2')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@:3.3.999')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -28,11 +28,13 @@
class PyPexpect(Package):
"""Pexpect allows easy control of interactive console applications."""
homepage = "https://pypi.python.org/pypi/pexpect"
url = "https://pypi.python.org/packages/source/p/pexpect/pexpect-3.3.tar.gz"
url = "https://pypi.io/packages/source/p/pexpect/pexpect-4.2.1.tar.gz"
version('3.3', '0de72541d3f1374b795472fed841dce8')
version('4.2.1', '3694410001a99dff83f0b500a1ca1c95')
extends('python')
depends_on('py-ptyprocess')
def install(self, spec, prefix):
setup_py('install', '--prefix=%s' % prefix)

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPickleshare(Package):
"""Tiny 'shelve'-like database with concurrency support"""
homepage = "https://pypi.python.org/pypi/pickleshare"
url = "https://pypi.io/packages/source/p/pickleshare/pickleshare-0.7.4.tar.gz"
version('0.7.4', '6a9e5dd8dfc023031f6b7b3f824cab12')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPip(Package):
"""The PyPA recommended tool for installing Python packages."""
homepage = "https://pypi.python.org/pypi/pip"
url = "https://pypi.io/packages/source/p/pip/pip-9.0.1.tar.gz"
version('9.0.1', '35f01da33009719497f01a4ba69d63c9')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPromptToolkit(Package):
"""Library for building powerful interactive command lines in Python"""
homepage = "https://pypi.python.org/pypi/prompt_toolkit"
url = "https://pypi.io/packages/source/p/prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
version('1.0.9', 'a39f91a54308fb7446b1a421c11f227c')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-six@1.9.0:')
depends_on('py-wcwidth')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPtyprocess(Package):
"""Run a subprocess in a pseudo terminal"""
homepage = "https://pypi.python.org/pypi/ptyprocess"
url = "https://pypi.io/packages/source/p/ptyprocess/ptyprocess-0.5.1.tar.gz"
version('0.5.1', '94e537122914cc9ec9c1eadcd36e73a1')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyPycurl(Package):
"""PycURL is a Python interface to libcurl. PycURL can be used to fetch
objects identified by a URL from a Python program."""
homepage = "http://pycurl.io/"
url = "https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz"
version('7.43.0', 'c94bdba01da6004fa38325e9bd6b9760')
extends('python')
depends_on('python@2.6:')
depends_on('py-setuptools', type='build')
depends_on('curl@7.19.0:')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PySimplegeneric(Package):
"""Simple generic functions (similar to Python's own len(),
pickle.dump(), etc.)"""
homepage = "https://pypi.python.org/pypi/simplegeneric"
url = "https://pypi.io/packages/source/s/simplegeneric/simplegeneric-0.8.zip"
version('0.8.1', 'f9c1fab00fd981be588fc32759f474e3')
version('0.8', 'eaa358a5f9517a8b475d03fbee3ec90f')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PySingledispatch(Package):
"""This library brings functools.singledispatch to Python 2.6-3.3."""
homepage = "https://pypi.python.org/pypi/singledispatch"
url = "https://pypi.io/packages/source/s/singledispatch/singledispatch-3.4.0.3.tar.gz"
version('3.4.0.3', 'af2fc6a3d6cc5a02d0bf54d909785fcb')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-six')
depends_on('py-ordereddict', when="^python@:2.6.999")
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyTerminado(Package):
"""Terminals served to term.js using Tornado websockets"""
homepage = "https://pypi.python.org/pypi/terminado"
url = "https://pypi.io/packages/source/t/terminado/terminado-0.6.tar.gz"
version('0.6', '5b6c65da27fe1ed07a9f80f0588cdaba')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-tornado@4:')
depends_on('py-ptyprocess')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,49 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyTornado(Package):
"""Tornado is a Python web framework and asynchronous networking
library."""
homepage = "https://github.com/tornadoweb/tornado"
# base https://pypi.python.org/pypi/tornado/
url = "https://github.com/tornadoweb/tornado/archive/v4.4.0.tar.gz"
version('4.4.0', 'c28675e944f364ee96dda3a8d2527a87ed28cfa3')
extends('python')
depends_on('py-setuptools', type='build')
# requirements from setup.py
depends_on('py-backports-ssl-match-hostname', when='^python@:2.7.8')
depends_on('py-singledispatch', when='^python@:3.3')
depends_on('py-certifi', when='^python@:3.3')
depends_on('py-backports-abc@0.4:', when='^python@:3.4')
def install(self, spec, prefix):
setup_py('build')
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,51 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyTraitlets(Package):
"""Traitlets Python config system"""
homepage = "https://pypi.python.org/pypi/traitlets"
url = "https://github.com/ipython/traitlets/archive/4.3.1.tar.gz"
version('4.3.1', '146a4885ea64079f62a33b2049841543')
version('4.3.0', '17af8d1306a401c42dbc92a080722422')
version('4.2.2', 'ffc03056dc5c8d1fc5dbd6eac76e1e46')
version('4.2.1', 'fc7f46a76b99ebc5068f99033d268dcf')
version('4.2.0', '53553a10d124e264fd2e234d0571b7d0')
version('4.1.0', 'd5bc75c7bd529afb40afce86c2facc3a')
version('4.0.0', 'b5b95ea5941fd9619b4704dfd8201568')
version('4.0' , '14544e25ccf8e920ed1cbf833852481f')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-decorator', type=nolink)
depends_on('py-ipython-genutils')
depends_on('py-enum34', when='^python@:3.3')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyVcversioner(Package):
"""Vcversioner: Take version numbers from version control."""
homepage = "https://github.com/habnabit/vcversioner"
# base https://pypi.python.org/pypi/vcversioner/
url = "https://pypi.python.org/packages/source/v/vcversioner/vcversioner-2.16.0.0.tar.gz"
version('2.16.0.0', 'aab6ef5e0cf8614a1b1140ed5b7f107d')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,41 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyWcwidth(Package):
"""Measures number of Terminal column cells of wide-character codes"""
homepage = "https://pypi.python.org/pypi/wcwidth"
url = "https://pypi.io/packages/source/w/wcwidth/wcwidth-0.1.7.tar.gz"
version('0.1.7', 'b3b6a0a08f0c8a34d1de8cf44150a4ad')
extends('python')
depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,43 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyWidgetsnbextension(Package):
"""IPython HTML widgets for Jupyter"""
homepage = "https://pypi.python.org/pypi/widgetsnbextension"
url = "https://pypi.io/packages/source/w/widgetsnbextension/widgetsnbextension-1.2.6.tar.gz"
version('1.2.6', '0aa4e152c9ba2d704389dc2453f448c7')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.7.999,3.3:')
depends_on('py-jupyter-notebook@4.2.0:')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -0,0 +1,45 @@
##############################################################################
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
# LLNL-CODE-647188
#
# For details, see https://github.com/llnl/spack
# Please also see the LICENSE file for our notice and the LGPL.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License (as
# published by the Free Software Foundation) version 2.1, February 1999.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
# conditions of the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
class PyZmq(Package):
"""PyZMQ: Python bindings for zeromq."""
homepage = "https://github.com/zeromq/pyzmq"
# base https://pypi.python.org/pypi/pyzmq/
url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz"
version('16.0.2', '4cf14a2995742253b2b009541f4436f4')
version('14.7.0', 'bf304fb73d72aee314ff82d3554328c179938ecf')
extends('python')
depends_on('py-setuptools', type='build')
depends_on('py-cython@0.16:')
depends_on('py-py')
depends_on('py-cffi')
depends_on('zeromq')
def install(self, spec, prefix):
setup_py('install', '--prefix={0}'.format(prefix))

View File

@ -70,7 +70,7 @@ class Qt(Package):
depends_on("zlib")
depends_on("dbus", when='@4:+dbus')
depends_on("libtiff")
depends_on("libpng@1.2.56", when='@3')
depends_on("libpng@1.2.57", when='@3')
depends_on("libpng", when='@4:')
depends_on("libmng")
depends_on("jpeg")

View File

@ -37,7 +37,7 @@ class RAbind(Package):
version('1.4-3', '10fcf80c677b991bf263d38be35a1fc5')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -36,7 +36,7 @@ class RAssertthat(Package):
version('0.1', '59f9d7f7c00077ea54d763b78eeb5798')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -35,7 +35,7 @@ class RBase64enc(Package):
version('0.1-3', '0f476dacdd11a3e0ad56d13f5bc2f190')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -47,7 +47,7 @@ class RBh(Package):
version('1.60.0-2', 'b50fdc85285da05add4e9da664a2d551')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -36,7 +36,7 @@ class RBiocgenerics(Package):
git='https://github.com/Bioconductor-mirror/BiocGenerics.git',
branch='release-3.2')
extends('R')
extends('r')
def validate(self, spec):
"""

View File

@ -35,7 +35,7 @@ class RBitops(Package):
version('1.0-6', 'fba16485a51b1ccd354abde5816b6bdd')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -36,7 +36,7 @@ class RBoot(Package):
version('1.3-18', '711dd58af14e1027eb8377d9202e9b6f')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -36,7 +36,7 @@ class RBrew(Package):
version('1.0-6', '4aaca5e6ec145e0fc0fe6375ce1f3806')
extends('R')
extends('r')
def install(self, spec, prefix):
R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir),

View File

@ -35,7 +35,7 @@ class RC50(Package):
version('0.1.0-24', '42631e65c5c579532cc6edf5ea175949')
extends('R')
extends('r')
depends_on('r-partykit', type=nolink)

View File

@ -35,7 +35,7 @@ class RCar(Package):
version('2.1-2', '0f78ad74ef7130126d319acec23951a0')
extends('R')
extends('r')
depends_on('r-mass', type=nolink)
depends_on('r-mgcv', type=nolink)

Some files were not shown because too many files have changed in this diff Show More