diff options
106 files changed, 2017 insertions, 396 deletions
diff --git a/lib/spack/docs/developer_guide.rst b/lib/spack/docs/developer_guide.rst index 5ddbaf2478..dbb9a670b4 100644 --- a/lib/spack/docs/developer_guide.rst +++ b/lib/spack/docs/developer_guide.rst @@ -300,6 +300,42 @@ Stage objects Writing commands ---------------- +Adding a new command to Spack is easy. Simply add a ``<name>.py`` file to +``lib/spack/spack/cmd/``, where ``<name>`` is the name of the subcommand. +At the bare minimum, two functions are required in this file: + +^^^^^^^^^^^^^^^^^^ +``setup_parser()`` +^^^^^^^^^^^^^^^^^^ + +Unless your command doesn't accept any arguments, a ``setup_parser()`` +function is required to define what arguments and flags your command takes. +See the `Argparse documentation <https://docs.python.org/2.7/library/argparse.html>`_ +for more details on how to add arguments. + +Some commands have a set of subcommands, like ``spack compiler find`` or +``spack module refresh``. You can add subparsers to your parser to handle +this. Check out ``spack edit --command compiler`` for an example of this. + +A lot of commands take the same arguments and flags. These arguments should +be defined in ``lib/spack/spack/cmd/common/arguments.py`` so that they don't +need to be redefined in multiple commands. + +^^^^^^^^^^^^ +``<name>()`` +^^^^^^^^^^^^ + +In order to run your command, Spack searches for a function with the same +name as your command in ``<name>.py``. This is the main method for your +command, and can call other helper methods to handle common tasks. + +Remember, before adding a new command, think to yourself whether or not this +new command is actually necessary. Sometimes, the functionality you desire +can be added to an existing command. Also remember to add unit tests for +your command. If it isn't used very frequently, changes to the rest of +Spack can cause your command to break without sufficient unit tests to +prevent this from happening. + ---------- Unit tests ---------- @@ -312,14 +348,80 @@ Unit testing Developer commands ------------------ +.. _cmd-spack-doc: + ^^^^^^^^^^^^^ ``spack doc`` ^^^^^^^^^^^^^ +.. _cmd-spack-test: + ^^^^^^^^^^^^^^ ``spack test`` ^^^^^^^^^^^^^^ +.. _cmd-spack-url: + +^^^^^^^^^^^^^ +``spack url`` +^^^^^^^^^^^^^ + +A package containing a single URL can be used to download several different +versions of the package. If you've ever wondered how this works, all of the +magic is in :mod:`spack.url`. This module contains methods for extracting +the name and version of a package from its URL. The name is used by +``spack create`` to guess the name of the package. By determining the version +from the URL, Spack can replace it with other versions to determine where to +download them from. + +The regular expressions in ``parse_name_offset`` and ``parse_version_offset`` +are used to extract the name and version, but they aren't perfect. In order +to debug Spack's URL parsing support, the ``spack url`` command can be used. + +""""""""""""""""""" +``spack url parse`` +""""""""""""""""""" + +If you need to debug a single URL, you can use the following command: + +.. command-output:: spack url parse http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz + +You'll notice that the name and version of this URL are correctly detected, +and you can even see which regular expressions it was matched to. However, +you'll notice that when it substitutes the version number in, it doesn't +replace the ``2.2`` with ``9.9`` where we would expect ``9.9.9b`` to live. +This particular package may require a ``list_url`` or ``url_for_version`` +function. + +This command also accepts a ``--spider`` flag. If provided, Spack searches +for other versions of the package and prints the matching URLs. + +"""""""""""""""""" +``spack url list`` +"""""""""""""""""" + +This command lists every URL in every package in Spack. If given the +``--color`` and ``--extrapolation`` flags, it also colors the part of +the string that it detected to be the name and version. The +``--incorrect-name`` and ``--incorrect-version`` flags can be used to +print URLs that were not being parsed correctly. + +"""""""""""""""""" +``spack url test`` +"""""""""""""""""" + +This command attempts to parse every URL for every package in Spack +and prints a summary of how many of them are being correctly parsed. +It also prints a histogram showing which regular expressions are being +matched and how frequently: + +.. command-output:: spack url test + +This command is essential for anyone adding or changing the regular +expressions that parse names and versions. By running this command +before and after the change, you can make sure that your regular +expression fixes more packages than it breaks. + --------- Profiling --------- diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst index 75546d943e..211e72158c 100644 --- a/lib/spack/docs/packaging_guide.rst +++ b/lib/spack/docs/packaging_guide.rst @@ -535,9 +535,9 @@ These links currently redirect back to `pypi.python.org Skipping the expand step ^^^^^^^^^^^^^^^^^^^^^^^^ -Spack normally expands archives automatically after downloading -them. If you want to skip this step (e.g., for self-extracting -executables and other custom archive types), you can add +Spack normally expands archives (e.g. `*.tar.gz` and `*.zip`) automatically +after downloading them. If you want to skip this step (e.g., for +self-extracting executables and other custom archive types), you can add ``expand=False`` to a ``version`` directive. .. code-block:: python @@ -712,8 +712,8 @@ is at ``http://example.com/downloads/foo-1.0.tar.gz``, Spack will look in ``http://example.com/downloads/`` for links to additional versions. If you need to search another path for download links, you can supply some extra attributes that control how your package finds new -versions. See the documentation on `attribute_list_url`_ and -`attribute_list_depth`_. +versions. See the documentation on :ref:`attribute_list_url` and +:ref:`attribute_list_depth`. .. note:: @@ -728,6 +728,102 @@ versions. See the documentation on `attribute_list_url`_ and syntax errors, or the ``import`` will fail. Use this once you've got your package in working order. +-------------------- +Finding new versions +-------------------- + +You've already seen the ``homepage`` and ``url`` package attributes: + +.. code-block:: python + :linenos: + + from spack import * + + + class Mpich(Package): + """MPICH is a high performance and widely portable implementation of + the Message Passing Interface (MPI) standard.""" + homepage = "http://www.mpich.org" + url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" + +These are class-level attributes used by Spack to show users +information about the package, and to determine where to download its +source code. + +Spack uses the tarball URL to extrapolate where to find other tarballs +of the same package (e.g. in :ref:`cmd-spack-checksum`, but +this does not always work. This section covers ways you can tell +Spack to find tarballs elsewhere. + +.. _attribute_list_url: + +^^^^^^^^^^^^ +``list_url`` +^^^^^^^^^^^^ + +When spack tries to find available versions of packages (e.g. with +:ref:`cmd-spack-checksum`), it spiders the parent directory +of the tarball in the ``url`` attribute. For example, for libelf, the +url is: + +.. code-block:: python + + url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" + +Here, Spack spiders ``http://www.mr511.de/software/`` to find similar +tarball links and ultimately to make a list of available versions of +``libelf``. + +For many packages, the tarball's parent directory may be unlistable, +or it may not contain any links to source code archives. In fact, +many times additional package downloads aren't even available in the +same directory as the download URL. + +For these, you can specify a separate ``list_url`` indicating the page +to search for tarballs. For example, ``libdwarf`` has the homepage as +the ``list_url``, because that is where links to old versions are: + +.. code-block:: python + :linenos: + + class Libdwarf(Package): + homepage = "http://www.prevanders.net/dwarf.html" + url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" + list_url = homepage + +.. _attribute_list_depth: + +^^^^^^^^^^^^^^ +``list_depth`` +^^^^^^^^^^^^^^ + +``libdwarf`` and many other packages have a listing of available +versions on a single webpage, but not all do. For example, ``mpich`` +has a tarball URL that looks like this: + +.. code-block:: python + + url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" + +But its downloads are in many different subdirectories of +``http://www.mpich.org/static/downloads/``. So, we need to add a +``list_url`` *and* a ``list_depth`` attribute: + +.. code-block:: python + :linenos: + + class Mpich(Package): + homepage = "http://www.mpich.org" + url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" + list_url = "http://www.mpich.org/static/downloads/" + list_depth = 2 + +By default, Spack only looks at the top-level page available at +``list_url``. ``list_depth`` tells it to follow up to 2 levels of +links from the top-level page. Note that here, this implies two +levels of subdirectories, as the ``mpich`` website is structured much +like a filesystem. But ``list_depth`` really refers to link depth +when spidering the page. .. _vcs-fetch: @@ -1241,103 +1337,6 @@ RPATHs in Spack are handled in one of three ways: links. You can see this how this is used in the :ref:`PySide example <pyside-patch>` above. --------------------- -Finding new versions --------------------- - -You've already seen the ``homepage`` and ``url`` package attributes: - -.. code-block:: python - :linenos: - - from spack import * - - - class Mpich(Package): - """MPICH is a high performance and widely portable implementation of - the Message Passing Interface (MPI) standard.""" - homepage = "http://www.mpich.org" - url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" - -These are class-level attributes used by Spack to show users -information about the package, and to determine where to download its -source code. - -Spack uses the tarball URL to extrapolate where to find other tarballs -of the same package (e.g. in :ref:`cmd-spack-checksum`, but -this does not always work. This section covers ways you can tell -Spack to find tarballs elsewhere. - -.. _attribute_list_url: - -^^^^^^^^^^^^ -``list_url`` -^^^^^^^^^^^^ - -When spack tries to find available versions of packages (e.g. with -:ref:`cmd-spack-checksum`), it spiders the parent directory -of the tarball in the ``url`` attribute. For example, for libelf, the -url is: - -.. code-block:: python - - url = "http://www.mr511.de/software/libelf-0.8.13.tar.gz" - -Here, Spack spiders ``http://www.mr511.de/software/`` to find similar -tarball links and ultimately to make a list of available versions of -``libelf``. - -For many packages, the tarball's parent directory may be unlistable, -or it may not contain any links to source code archives. In fact, -many times additional package downloads aren't even available in the -same directory as the download URL. - -For these, you can specify a separate ``list_url`` indicating the page -to search for tarballs. For example, ``libdwarf`` has the homepage as -the ``list_url``, because that is where links to old versions are: - -.. code-block:: python - :linenos: - - class Libdwarf(Package): - homepage = "http://www.prevanders.net/dwarf.html" - url = "http://www.prevanders.net/libdwarf-20130729.tar.gz" - list_url = homepage - -.. _attribute_list_depth: - -^^^^^^^^^^^^^^ -``list_depth`` -^^^^^^^^^^^^^^ - -``libdwarf`` and many other packages have a listing of available -versions on a single webpage, but not all do. For example, ``mpich`` -has a tarball URL that looks like this: - -.. code-block:: python - - url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" - -But its downloads are in many different subdirectories of -``http://www.mpich.org/static/downloads/``. So, we need to add a -``list_url`` *and* a ``list_depth`` attribute: - -.. code-block:: python - :linenos: - - class Mpich(Package): - homepage = "http://www.mpich.org" - url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz" - list_url = "http://www.mpich.org/static/downloads/" - list_depth = 2 - -By default, Spack only looks at the top-level page available at -``list_url``. ``list_depth`` tells it to follow up to 2 levels of -links from the top-level page. Note that here, this implies two -levels of subdirectories, as the ``mpich`` website is structured much -like a filesystem. But ``list_depth`` really refers to link depth -when spidering the page. - .. _attribute_parallel: --------------- diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index 60a850d356..d2ee72925d 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -112,7 +112,7 @@ class PythonPackage(PackageBase): def setup_py(self, *args): setup = self.setup_file() - with working_dir(self.build_directory()): + with working_dir(self.build_directory): self.python(setup, '--no-user-cfg', *args) # The following phases and their descriptions come from: diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index aa3f82a331..2901dcfa63 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -249,6 +249,7 @@ class PythonPackageTemplate(PackageTemplate): class RPackageTemplate(PackageTemplate): """Provides appropriate overrides for R extensions""" + base_class_name = 'RPackage' dependencies = """\ # FIXME: Add dependencies if required. diff --git a/lib/spack/spack/cmd/url.py b/lib/spack/spack/cmd/url.py new file mode 100644 index 0000000000..6823f0febd --- /dev/null +++ b/lib/spack/spack/cmd/url.py @@ -0,0 +1,319 @@ +############################################################################## +# 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 __future__ import division, print_function + +from collections import defaultdict + +import spack + +from llnl.util import tty +from spack.url import * +from spack.util.web import find_versions_of_archive + +description = "debugging tool for url parsing" + + +def setup_parser(subparser): + sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='subcommand') + + # Parse + parse_parser = sp.add_parser('parse', help='attempt to parse a url') + + parse_parser.add_argument( + 'url', + help='url to parse') + parse_parser.add_argument( + '-s', '--spider', action='store_true', + help='spider the source page for versions') + + # List + list_parser = sp.add_parser('list', help='list urls in all packages') + + list_parser.add_argument( + '-c', '--color', action='store_true', + help='color the parsed version and name in the urls shown ' + '(versions will be cyan, name red)') + list_parser.add_argument( + '-e', '--extrapolation', action='store_true', + help='color the versions used for extrapolation as well ' + '(additional versions will be green, names magenta)') + + excl_args = list_parser.add_mutually_exclusive_group() + + excl_args.add_argument( + '-n', '--incorrect-name', action='store_true', + help='only list urls for which the name was incorrectly parsed') + excl_args.add_argument( + '-v', '--incorrect-version', action='store_true', + help='only list urls for which the version was incorrectly parsed') + + # Test + sp.add_parser( + 'test', help='print a summary of how well we are parsing package urls') + + +def url(parser, args): + action = { + 'parse': url_parse, + 'list': url_list, + 'test': url_test + } + + action[args.subcommand](args) + + +def url_parse(args): + url = args.url + + tty.msg('Parsing URL: {0}'.format(url)) + print() + + ver, vs, vl, vi, vregex = parse_version_offset(url) + tty.msg('Matched version regex {0:>2}: r{1!r}'.format(vi, vregex)) + + name, ns, nl, ni, nregex = parse_name_offset(url, ver) + tty.msg('Matched name regex {0:>2}: r{1!r}'.format(ni, nregex)) + + print() + tty.msg('Detected:') + try: + print_name_and_version(url) + except UrlParseError as e: + tty.error(str(e)) + + print(' name: {0}'.format(name)) + print(' version: {0}'.format(ver)) + print() + + tty.msg('Substituting version 9.9.9b:') + newurl = substitute_version(url, '9.9.9b') + print_name_and_version(newurl) + + if args.spider: + print() + tty.msg('Spidering for versions:') + versions = find_versions_of_archive(url) + + max_len = max(len(str(v)) for v in versions) + + for v in sorted(versions): + print('{0:{1}} {2}'.format(v, max_len, versions[v])) + + +def url_list(args): + urls = set() + + # Gather set of URLs from all packages + for pkg in spack.repo.all_packages(): + url = getattr(pkg.__class__, 'url', None) + urls = url_list_parsing(args, urls, url, pkg) + + for params in pkg.versions.values(): + url = params.get('url', None) + urls = url_list_parsing(args, urls, url, pkg) + + # Print URLs + for url in sorted(urls): + if args.color or args.extrapolation: + print(color_url(url, subs=args.extrapolation, errors=True)) + else: + print(url) + + # Return the number of URLs that were printed, only for testing purposes + return len(urls) + + +def url_test(args): + # Collect statistics on how many URLs were correctly parsed + total_urls = 0 + correct_names = 0 + correct_versions = 0 + + # Collect statistics on which regexes were matched and how often + name_regex_dict = dict() + name_count_dict = defaultdict(int) + version_regex_dict = dict() + version_count_dict = defaultdict(int) + + tty.msg('Generating a summary of URL parsing in Spack...') + + # Loop through all packages + for pkg in spack.repo.all_packages(): + urls = set() + + url = getattr(pkg.__class__, 'url', None) + if url: + urls.add(url) + + for params in pkg.versions.values(): + url = params.get('url', None) + if url: + urls.add(url) + + # Calculate statistics + for url in urls: + total_urls += 1 + + # Parse versions + version = None + try: + version, vs, vl, vi, vregex = parse_version_offset(url) + version_regex_dict[vi] = vregex + version_count_dict[vi] += 1 + if version_parsed_correctly(pkg, version): + correct_versions += 1 + except UndetectableVersionError: + pass + + # Parse names + try: + name, ns, nl, ni, nregex = parse_name_offset(url, version) + name_regex_dict[ni] = nregex + name_count_dict[ni] += 1 + if name_parsed_correctly(pkg, name): + correct_names += 1 + except UndetectableNameError: + pass + + print() + print(' Total URLs found: {0}'.format(total_urls)) + print(' Names correctly parsed: {0:>4}/{1:>4} ({2:>6.2%})'.format( + correct_names, total_urls, correct_names / total_urls)) + print(' Versions correctly parsed: {0:>4}/{1:>4} ({2:>6.2%})'.format( + correct_versions, total_urls, correct_versions / total_urls)) + print() + + tty.msg('Statistics on name regular expresions:') + + print() + print(' Index Count Regular Expresion') + for ni in name_regex_dict: + print(' {0:>3}: {1:>6} r{2!r}'.format( + ni, name_count_dict[ni], name_regex_dict[ni])) + print() + + tty.msg('Statistics on version regular expresions:') + + print() + print(' Index Count Regular Expresion') + for vi in version_regex_dict: + print(' {0:>3}: {1:>6} r{2!r}'.format( + vi, version_count_dict[vi], version_regex_dict[vi])) + print() + + # Return statistics, only for testing purposes + return (total_urls, correct_names, correct_versions, + name_count_dict, version_count_dict) + + +def print_name_and_version(url): + """Prints a URL. Underlines the detected name with dashes and + the detected version with tildes. + + :param str url: The url to parse + """ + name, ns, nl, ntup, ver, vs, vl, vtup = substitution_offsets(url) + underlines = [' '] * max(ns + nl, vs + vl) + for i in range(ns, ns + nl): + underlines[i] = '-' + for i in range(vs, vs + vl): + underlines[i] = '~' + + print(' {0}'.format(url)) + print(' {0}'.format(''.join(underlines))) + + +def url_list_parsing(args, urls, url, pkg): + """Helper function for :func:`url_list`. + + :param argparse.Namespace args: The arguments given to ``spack url list`` + :param set urls: List of URLs that have already been added + :param url: A URL to potentially add to ``urls`` depending on ``args`` + :type url: str or None + :param spack.package.PackageBase pkg: The Spack package + :returns: The updated ``urls`` list + :rtype: set + """ + if url: + if args.incorrect_name: + # Only add URLs whose name was incorrectly parsed + try: + name = parse_name(url) + if not name_parsed_correctly(pkg, name): + urls.add(url) + except UndetectableNameError: + urls.add(url) + elif args.incorrect_version: + # Only add URLs whose version was incorrectly parsed + try: + version = parse_version(url) + if not version_parsed_correctly(pkg, version): + urls.add(url) + except UndetectableVersionError: + urls.add(url) + else: + urls.add(url) + + return urls + + +def name_parsed_correctly(pkg, name): + """Determine if the name of a package was correctly parsed. + + :param spack.package.PackageBase pkg: The Spack package + :param str name: The name that was extracted from the URL + :returns: True if the name was correctly parsed, else False + :rtype: bool + """ + pkg_name = pkg.name + + # After determining a name, `spack create` determines a build system. + # Some build systems prepend a special string to the front of the name. + # Since this can't be guessed from the URL, it would be unfair to say + # that these names are incorrectly parsed, so we remove them. + if pkg_name.startswith('r-'): + pkg_name = pkg_name[2:] + elif pkg_name.startswith('py-'): + pkg_name = pkg_name[3:] + elif pkg_name.startswith('octave-'): + pkg_name = pkg_name[7:] + + return name == pkg_name + + +def version_parsed_correctly(pkg, version): + """Determine if the version of a package was correctly parsed. + + :param spack.package.PackageBase pkg: The Spack package + :param str version: The version that was extracted from the URL + :returns: True if the name was correctly parsed, else False + :rtype: bool + """ + # If the version parsed from the URL is listed in a version() + # directive, we assume it was correctly parsed + for pkg_version in pkg.versions: + if str(pkg_version) == str(version): + return True + return False diff --git a/lib/spack/spack/cmd/url_parse.py b/lib/spack/spack/cmd/url_parse.py deleted file mode 100644 index b33d96299f..0000000000 --- a/lib/spack/spack/cmd/url_parse.py +++ /dev/null @@ -1,79 +0,0 @@ -############################################################################## -# 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 llnl.util.tty as tty - -import spack -import spack.url -from spack.util.web import find_versions_of_archive - -description = "show parsing of a URL, optionally spider web for versions" - - -def setup_parser(subparser): - subparser.add_argument('url', help="url of a package archive") - subparser.add_argument( - '-s', '--spider', action='store_true', - help="spider the source page for versions") - - -def print_name_and_version(url): - name, ns, nl, ntup, ver, vs, vl, vtup = spack.url.substitution_offsets(url) - underlines = [" "] * max(ns + nl, vs + vl) - for i in range(ns, ns + nl): - underlines[i] = '-' - for i in range(vs, vs + vl): - underlines[i] = '~' - - print " %s" % url - print " %s" % ''.join(underlines) - - -def url_parse(parser, args): - url = args.url - - ver, vs, vl = spack.url.parse_version_offset(url, debug=True) - name, ns, nl = spack.url.parse_name_offset(url, ver, debug=True) - print - - tty.msg("Detected:") - try: - print_name_and_version(url) - except spack.url.UrlParseError as e: - tty.error(str(e)) - - print ' name: %s' % name - print ' version: %s' % ver - - print - tty.msg("Substituting version 9.9.9b:") - newurl = spack.url.substitute_version(url, '9.9.9b') - print_name_and_version(newurl) - - if args.spider: - print - tty.msg("Spidering for versions:") - versions = find_versions_of_archive(url) - for v in sorted(versions): - print "%-20s%s" % (v, versions[v]) diff --git a/lib/spack/spack/test/cmd/url.py b/lib/spack/spack/test/cmd/url.py new file mode 100644 index 0000000000..4c60d814ce --- /dev/null +++ b/lib/spack/spack/test/cmd/url.py @@ -0,0 +1,116 @@ +############################################################################## +# 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 argparse +import pytest + +from spack.cmd.url import * + + +@pytest.fixture(scope='module') +def parser(): + """Returns the parser for the ``url`` command""" + parser = argparse.ArgumentParser() + setup_parser(parser) + return parser + + +class MyPackage: + def __init__(self, name, versions): + self.name = name + self.versions = versions + + +def test_name_parsed_correctly(): + # Expected True + assert name_parsed_correctly(MyPackage('netcdf', []), 'netcdf') + assert name_parsed_correctly(MyPackage('r-devtools', []), 'devtools') + assert name_parsed_correctly(MyPackage('py-numpy', []), 'numpy') + assert name_parsed_correctly(MyPackage('octave-splines', []), 'splines') + + # Expected False + assert not name_parsed_correctly(MyPackage('', []), 'hdf5') + assert not name_parsed_correctly(MyPackage('hdf5', []), '') + assert not name_parsed_correctly(MyPackage('imagemagick', []), 'ImageMagick') # noqa + assert not name_parsed_correctly(MyPackage('yaml-cpp', []), 'yamlcpp') + assert not name_parsed_correctly(MyPackage('yamlcpp', []), 'yaml-cpp') + assert not name_parsed_correctly(MyPackage('r-py-parser', []), 'parser') + assert not name_parsed_correctly(MyPackage('oce', []), 'oce-0.18.0') # noqa + + +def test_version_parsed_correctly(): + # Expected True + assert version_parsed_correctly(MyPackage('', ['1.2.3']), '1.2.3') + assert version_parsed_correctly(MyPackage('', ['5.4a', '5.4b']), '5.4a') + assert version_parsed_correctly(MyPackage('', ['5.4a', '5.4b']), '5.4b') + + # Expected False + assert not version_parsed_correctly(MyPackage('', []), '1.2.3') + assert not version_parsed_correctly(MyPackage('', ['1.2.3']), '') + assert not version_parsed_correctly(MyPackage('', ['1.2.3']), '1.2.4') + assert not version_parsed_correctly(MyPackage('', ['3.4a']), '3.4') + assert not version_parsed_correctly(MyPackage('', ['3.4']), '3.4b') + assert not version_parsed_correctly(MyPackage('', ['0.18.0']), 'oce-0.18.0') # noqa + + +def test_url_parse(parser): + args = parser.parse_args(['parse', 'http://zlib.net/fossils/zlib-1.2.10.tar.gz']) + url(parser, args) + + +@pytest.mark.xfail +def test_url_parse_xfail(parser): + # No version in URL + args = parser.parse_args(['parse', 'http://www.netlib.org/voronoi/triangle.zip']) + url(parser, args) + + +def test_url_list(parser): + args = parser.parse_args(['list']) + total_urls = url_list(args) + + # The following two options should not change the number of URLs printed. + args = parser.parse_args(['list', '--color', '--extrapolation']) + colored_urls = url_list(args) + assert colored_urls == total_urls + + # The following two options should print fewer URLs than the default. + # If they print the same number of URLs, something is horribly broken. + # If they say we missed 0 URLs, something is probably broken too. + args = parser.parse_args(['list', '--incorrect-name']) + incorrect_name_urls = url_list(args) + assert 0 < incorrect_name_urls < total_urls + + args = parser.parse_args(['list', '--incorrect-version']) + incorrect_version_urls = url_list(args) + assert 0 < incorrect_version_urls < total_urls + + +def test_url_test(parser): + args = parser.parse_args(['test']) + (total_urls, correct_names, correct_versions, + name_count_dict, version_count_dict) = url_test(args) + + assert 0 < correct_names <= sum(name_count_dict.values()) <= total_urls # noqa + assert 0 < correct_versions <= sum(version_count_dict.values()) <= total_urls # noqa diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index 93c443fde8..65f8e12e58 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -28,17 +28,17 @@ The idea is to allow package creators to supply nothing more than the download location of the package, and figure out version and name information from there. -Example: when spack is given the following URL: +**Example:** when spack is given the following URL: - ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz + https://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.12/src/hdf-4.2.12.tar.gz -It can figure out that the package name is ruby, and that it is at version -1.9.1-p243. This is useful for making the creation of packages simple: a user +It can figure out that the package name is ``hdf``, and that it is at version +``4.2.12``. This is useful for making the creation of packages simple: a user just supplies a URL and skeleton code is generated automatically. -Spack can also figure out that it can most likely download 1.8.1 at this URL: +Spack can also figure out that it can most likely download 4.2.6 at this URL: - ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.8.1.tar.gz + https://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.6/src/hdf-4.2.6.tar.gz This is useful if a user asks for a package at a particular version number; spack doesn't need anyone to tell it where to get the tarball even though @@ -104,24 +104,23 @@ def strip_query_and_fragment(path): def split_url_extension(path): """Some URLs have a query string, e.g.: - 1. https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7.tgz?raw=true - 2. http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin.tar.gz - 3. https://gitlab.kitware.com/vtk/vtk/repository/archive.tar.bz2?ref=v7.0.0 + 1. https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7.tgz?raw=true + 2. http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin.tar.gz + 3. https://gitlab.kitware.com/vtk/vtk/repository/archive.tar.bz2?ref=v7.0.0 - In (1), the query string needs to be stripped to get at the - extension, but in (2) & (3), the filename is IN a single final query - argument. + In (1), the query string needs to be stripped to get at the + extension, but in (2) & (3), the filename is IN a single final query + argument. - This strips the URL into three pieces: prefix, ext, and suffix. - The suffix contains anything that was stripped off the URL to - get at the file extension. In (1), it will be '?raw=true', but - in (2), it will be empty. In (3) the suffix is a parameter that follows - after the file extension, e.g.: + This strips the URL into three pieces: ``prefix``, ``ext``, and ``suffix``. + The suffix contains anything that was stripped off the URL to + get at the file extension. In (1), it will be ``'?raw=true'``, but + in (2), it will be empty. In (3) the suffix is a parameter that follows + after the file extension, e.g.: - 1. ('https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7', '.tgz', '?raw=true') - 2. ('http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin', - '.tar.gz', None) - 3. ('https://gitlab.kitware.com/vtk/vtk/repository/archive', '.tar.bz2', '?ref=v7.0.0') + 1. ``('https://github.com/losalamos/CLAMR/blob/packages/PowerParser_v2.0.7', '.tgz', '?raw=true')`` + 2. ``('http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.2.0/apache-cassandra-1.2.0-rc2-bin', '.tar.gz', None)`` + 3. ``('https://gitlab.kitware.com/vtk/vtk/repository/archive', '.tar.bz2', '?ref=v7.0.0')`` """ prefix, ext, suffix = path, '', '' @@ -149,7 +148,7 @@ def determine_url_file_extension(path): """This returns the type of archive a URL refers to. This is sometimes confusing because of URLs like: - (1) https://github.com/petdance/ack/tarball/1.93_02 + (1) https://github.com/petdance/ack/tarball/1.93_02 Where the URL doesn't actually contain the filename. We need to know what type it is so that we can appropriately name files @@ -166,19 +165,44 @@ def determine_url_file_extension(path): return ext -def parse_version_offset(path, debug=False): - """Try to extract a version string from a filename or URL. This is taken - largely from Homebrew's Version class.""" +def parse_version_offset(path): + """Try to extract a version string from a filename or URL. + + :param str path: The filename or URL for the package + + :return: A tuple containing: + version of the package, + first index of version, + length of version string, + the index of the matching regex + the matching regex + + :rtype: tuple + + :raises UndetectableVersionError: If the URL does not match any regexes + """ original_path = path + # path: The prefix of the URL, everything before the ext and suffix + # ext: The file extension + # suffix: Any kind of query string that begins with a '?' path, ext, suffix = split_url_extension(path) - # Allow matches against the basename, to avoid including parent - # dirs in version name Remember the offset of the stem in the path + # stem: Everything from path after the final '/' stem = os.path.basename(path) offset = len(path) - len(stem) - version_types = [ + # List of the following format: + # + # [ + # (regex, string), + # ... + # ] + # + # The first regex that matches string will be used to determine + # the version of the package. Thefore, hyperspecific regexes should + # come first while generic, catch-all regexes should come last. + version_regexes = [ # GitHub tarballs, e.g. v1.2.3 (r'github.com/.+/(?:zip|tar)ball/v?((\d+\.)+\d+)$', path), @@ -258,16 +282,13 @@ def parse_version_offset(path, debug=False): (r'\/(\d\.\d+)\/', path), # e.g. http://www.ijg.org/files/jpegsrc.v8d.tar.gz - (r'\.v(\d+[a-z]?)', stem)] + (r'\.v(\d+[a-z]?)', stem) + ] - for i, vtype in enumerate(version_types): - regex, match_string = vtype + for i, version_regex in enumerate(version_regexes): + regex, match_string = version_regex match = re.search(regex, match_string) if match and match.group(1) is not None: - if debug: - tty.msg("Parsing URL: %s" % path, - " Matched regex %d: r'%s'" % (i, regex)) - version = match.group(1) start = match.start(1) @@ -275,30 +296,74 @@ def parse_version_offset(path, debug=False): if match_string is stem: start += offset - return version, start, len(version) + return version, start, len(version), i, regex raise UndetectableVersionError(original_path) -def parse_version(path, debug=False): - """Given a URL or archive name, extract a version from it and return - a version object. +def parse_version(path): + """Try to extract a version string from a filename or URL. + + :param str path: The filename or URL for the package + + :return: The version of the package + :rtype: spack.version.Version + + :raises UndetectableVersionError: If the URL does not match any regexes """ - ver, start, l = parse_version_offset(path, debug=debug) - return Version(ver) + version, start, length, i, regex = parse_version_offset(path) + return Version(version) -def parse_name_offset(path, v=None, debug=False): - if v is None: - v = parse_version(path, debug=debug) +def parse_name_offset(path, v=None): + """Try to determine the name of a package from its filename or URL. + + :param str path: The filename or URL for the package + :param str v: The version of the package + + :return: A tuple containing: + name of the package, + first index of name, + length of name, + the index of the matching regex + the matching regex + + :rtype: tuple + + :raises UndetectableNameError: If the URL does not match any regexes + """ + original_path = path + # We really need to know the version of the package + # This helps us prevent collisions between the name and version + if v is None: + try: + v = parse_version(path) + except UndetectableVersionError: + # Not all URLs contain a version. We still want to be able + # to determine a name if possible. + v = '' + + # path: The prefix of the URL, everything before the ext and suffix + # ext: The file extension + # suffix: Any kind of query string that begins with a '?' path, ext, suffix = split_url_extension(path) - # Allow matching with either path or stem, as with the version. + # stem: Everything from path after the final '/' stem = os.path.basename(path) offset = len(path) - len(stem) - name_types = [ + # List of the following format: + # + # [ + # (regex, string), + # ... + # ] + # + # The first regex that matches string will be used to determine + # the name of the package. Thefore, hyperspecific regexes should + # come first while generic, catch-all regexes should come last. + name_regexes = [ (r'/sourceforge/([^/]+)/', path), (r'github.com/[^/]+/[^/]+/releases/download/%s/(.*)-%s$' % (v, v), path), @@ -316,10 +381,11 @@ def parse_name_offset(path, v=None, debug=False): (r'/([^/]+)%s' % v, path), (r'^([^/]+)[_.-]v?%s' % v, path), - (r'^([^/]+)%s' % v, path)] + (r'^([^/]+)%s' % v, path) + ] - for i, name_type in enumerate(name_types): - regex, match_string = name_type + for i, name_regex in enumerate(name_regexes): + regex, match_string = name_regex match = re.search(regex, match_string) if match: name = match.group(1) @@ -333,17 +399,38 @@ def parse_name_offset(path, v=None, debug=False): name = name.lower() name = re.sub('[_.]', '-', name) - return name, start, len(name) + return name, start, len(name), i, regex - raise UndetectableNameError(path) + raise UndetectableNameError(original_path) def parse_name(path, ver=None): - name, start, l = parse_name_offset(path, ver) + """Try to determine the name of a package from its filename or URL. + + :param str path: The filename or URL for the package + :param str ver: The version of the package + + :return: The name of the package + :rtype: str + + :raises UndetectableNameError: If the URL does not match any regexes + """ + name, start, length, i, regex = parse_name_offset(path, ver) return name def parse_name_and_version(path): + """Try to determine the name of a package and extract its version + from its filename or URL. + + :param str path: The filename or URL for the package + + :return: A tuple containing: + The name of the package + The version of the package + + :rtype: tuple + """ ver = parse_version(path) name = parse_name(path, ver) return (name, ver) @@ -371,12 +458,12 @@ def cumsum(elts, init=0, fn=lambda x: x): def substitution_offsets(path): """This returns offsets for substituting versions and names in the - provided path. It is a helper for substitute_version(). + provided path. It is a helper for :func:`substitute_version`. """ # Get name and version offsets try: - ver, vs, vl = parse_version_offset(path) - name, ns, nl = parse_name_offset(path, ver) + ver, vs, vl, vi, vregex = parse_version_offset(path) + name, ns, nl, ni, nregex = parse_name_offset(path, ver) except UndetectableNameError: return (None, -1, -1, (), ver, vs, vl, (vs,)) except UndetectableVersionError: @@ -444,21 +531,22 @@ def wildcard_version(path): def substitute_version(path, new_version): """Given a URL or archive name, find the version in the path and - substitute the new version for it. Replace all occurrences of - the version *if* they don't overlap with the package name. + substitute the new version for it. Replace all occurrences of + the version *if* they don't overlap with the package name. - Simple example:: - substitute_version('http://www.mr511.de/software/libelf-0.8.13.tar.gz', '2.9.3') - ->'http://www.mr511.de/software/libelf-2.9.3.tar.gz' + Simple example: - Complex examples:: - substitute_version('http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.0.tar.gz', 2.1) - -> 'http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.1.tar.gz' + .. code-block:: python - # In this string, the "2" in mvapich2 is NOT replaced. - substitute_version('http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.tar.gz', 2.1) - -> 'http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.1.tar.gz' + substitute_version('http://www.mr511.de/software/libelf-0.8.13.tar.gz', '2.9.3') + >>> 'http://www.mr511.de/software/libelf-2.9.3.tar.gz' + Complex example: + + .. code-block:: python + + substitute_version('https://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.12/src/hdf-4.2.12.tar.gz', '2.3') + >>> 'https://www.hdfgroup.org/ftp/HDF/releases/HDF2.3/src/hdf-2.3.tar.gz' """ (name, ns, nl, noffs, ver, vs, vl, voffs) = substitution_offsets(path) @@ -477,17 +565,16 @@ def substitute_version(path, new_version): def color_url(path, **kwargs): """Color the parts of the url according to Spack's parsing. - Colors are: - Cyan: The version found by parse_version_offset(). - Red: The name found by parse_name_offset(). - - Green: Instances of version string from substitute_version(). - Magenta: Instances of the name (protected from substitution). + Colors are: + | Cyan: The version found by :func:`parse_version_offset`. + | Red: The name found by :func:`parse_name_offset`. - Optional args: - errors=True Append parse errors at end of string. - subs=True Color substitutions as well as parsed name/version. + | Green: Instances of version string from :func:`substitute_version`. + | Magenta: Instances of the name (protected from substitution). + :param str path: The filename or URL for the package + :keyword bool errors: Append parse errors at end of string. + :keyword bool subs: Color substitutions as well as parsed name/version. """ errors = kwargs.get('errors', False) subs = kwargs.get('subs', False) diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py index e0cd114635..33168c2c34 100644 --- a/var/spack/repos/builtin/packages/bash/package.py +++ b/var/spack/repos/builtin/packages/bash/package.py @@ -29,7 +29,7 @@ class Bash(Package): """The GNU Project's Bourne Again SHell.""" homepage = "https://www.gnu.org/software/bash/" - url = "ftp://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz" + url = "https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz" version('4.3', '81348932d5da294953e15d4814c74dd1') diff --git a/var/spack/repos/builtin/packages/cdd/package.py b/var/spack/repos/builtin/packages/cdd/package.py index 4a0a0aefef..96414bc54b 100644 --- a/var/spack/repos/builtin/packages/cdd/package.py +++ b/var/spack/repos/builtin/packages/cdd/package.py @@ -33,7 +33,7 @@ class Cdd(Package): a general convex polyhedron given by a system of linear inequalities""" homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html" - url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-061a.tar.gz" + url = "http://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-061a.tar.gz" version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9') @@ -42,7 +42,7 @@ class Cdd(Package): patch("Makefile.spack.patch") def url_for_version(self, version): - url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-{0}.tar.gz" + url = "http://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-{0}.tar.gz" return url.format(version.joined) def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py index 8c2ae95e8e..811b3ca9bc 100644 --- a/var/spack/repos/builtin/packages/cfitsio/package.py +++ b/var/spack/repos/builtin/packages/cfitsio/package.py @@ -41,7 +41,7 @@ class Cfitsio(AutotoolsPackage): depends_on('bzip2', when='+bzip2') def url_for_version(self, version): - url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz' + url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio{0}.tar.gz' return url.format(version.joined) def configure_args(self): diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index a031374381..93b2744e19 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -34,7 +34,7 @@ class DarshanRuntime(Package): systems where you intend to instrument MPI applications.""" homepage = "http://www.mcs.anl.gov/research/projects/darshan/" - url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" + url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" version('3.1.0', '439d717323e6265b2612ed127886ae52') version('3.0.0', '732577fe94238936268d74d7d74ebd08') diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py index 47b0497ca8..2a970fa95f 100644 --- a/var/spack/repos/builtin/packages/darshan-util/package.py +++ b/var/spack/repos/builtin/packages/darshan-util/package.py @@ -32,7 +32,7 @@ class DarshanUtil(Package): log files produced by Darshan (runtime).""" homepage = "http://www.mcs.anl.gov/research/projects/darshan/" - url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" + url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" version('3.1.0', '439d717323e6265b2612ed127886ae52') version('3.0.0', '732577fe94238936268d74d7d74ebd08') diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py index 80bc54a603..6502301784 100644 --- a/var/spack/repos/builtin/packages/gconf/package.py +++ b/var/spack/repos/builtin/packages/gconf/package.py @@ -29,7 +29,7 @@ class Gconf(AutotoolsPackage): """GConf is a system for storing application preferences.""" homepage = "https://projects.gnome.org/gconf/" - url = "ftp://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz" + url = "http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz" version('3.2.6', '2b16996d0e4b112856ee5c59130e822c') diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py index 1bf3f857b0..86c937d555 100644 --- a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py +++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py @@ -30,7 +30,7 @@ class GhostscriptFonts(Package): """Ghostscript Fonts""" homepage = "http://ghostscript.com/" - url = "ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz" + url = "https://www.imagemagick.org/download/delegates/ghostscript-fonts-std-8.11.tar.gz" version('8.11', '6865682b095f8c4500c54b285ff05ef6') diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py index ca296350a4..ed89a46758 100644 --- a/var/spack/repos/builtin/packages/gmake/package.py +++ b/var/spack/repos/builtin/packages/gmake/package.py @@ -29,7 +29,7 @@ class Gmake(Package): """GNU Make.""" homepage = "http://gnu.org/gnu/make" - url = "ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz" + url = "https://ftp.gnu.org/gnu/make/make-4.0.tar.gz" version('4.0', 'b5e558f981326d9ca1bfdb841640721a') diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py index 87e83649a4..638ef7e30c 100644 --- a/var/spack/repos/builtin/packages/gnutls/package.py +++ b/var/spack/repos/builtin/packages/gnutls/package.py @@ -35,7 +35,7 @@ class Gnutls(AutotoolsPackage): with focus on security and interoperability.""" homepage = "http://www.gnutls.org" - url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.9.tar.xz" + url = "http://www.ring.gr.jp/pub/net/gnupg/gnutls/v3.3/gnutls-3.3.9.tar.xz" version('3.3.9', 'ff61b77e39d09f1140ab5a9cf52c58b6') diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index d079188db6..fd5814ca08 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -39,7 +39,7 @@ class Gromacs(CMakePackage): """ homepage = 'http://www.gromacs.org' - url = 'ftp://ftp.gromacs.org/pub/gromacs/gromacs-5.1.2.tar.gz' + url = 'http://ftp.gromacs.org/gromacs/gromacs-5.1.2.tar.gz' version('5.1.2', '614d0be372f1a6f1f36382b7a6fcab98') diff --git a/var/spack/repos/builtin/packages/guile/package.py b/var/spack/repos/builtin/packages/guile/package.py index 22aff1bddf..15e24e5634 100644 --- a/var/spack/repos/builtin/packages/guile/package.py +++ b/var/spack/repos/builtin/packages/guile/package.py @@ -30,7 +30,7 @@ class Guile(Package): the official extension language for the GNU operating system.""" homepage = "https://www.gnu.org/software/guile/" - url = "ftp://ftp.gnu.org/gnu/guile/guile-2.0.11.tar.gz" + url = "https://ftp.gnu.org/gnu/guile/guile-2.0.11.tar.gz" version('2.0.11', 'e532c68c6f17822561e3001136635ddd') diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py index ddb7709ddf..79ba50d77a 100644 --- a/var/spack/repos/builtin/packages/libffi/package.py +++ b/var/spack/repos/builtin/packages/libffi/package.py @@ -33,7 +33,7 @@ class Libffi(AutotoolsPackage): homepage = "https://sourceware.org/libffi/" version('3.2.1', '83b89587607e3eb65c70d361f13bab43', - url="ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") + url="https://www.mirrorservice.org/sites/sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") # version('3.1', 'f5898b29bbfd70502831a212d9249d10',url = # "ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz") # Has a bug # $(lib64) instead of ${lib64} in libffi.pc diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py index 968793315e..1eae9c6530 100644 --- a/var/spack/repos/builtin/packages/libgcrypt/package.py +++ b/var/spack/repos/builtin/packages/libgcrypt/package.py @@ -32,7 +32,7 @@ class Libgcrypt(AutotoolsPackage): key algorithms, large integer functions, random numbers and a lot of supporting functions. """ homepage = "http://www.gnu.org/software/libgcrypt/" - url = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.2.tar.bz2" + url = "http://gd.tuwien.ac.at/pub/gnupg/libgcrypt/libgcrypt-1.6.2.tar.bz2" version('1.6.2', 'b54395a93cb1e57619943c082da09d5f') diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py index 26b7e6d05e..67cd1759c0 100644 --- a/var/spack/repos/builtin/packages/libgpg-error/package.py +++ b/var/spack/repos/builtin/packages/libgpg-error/package.py @@ -32,7 +32,7 @@ class LibgpgError(AutotoolsPackage): SmartCard Daemon and possibly more in the future. """ homepage = "https://www.gnupg.org/related_software/libgpg-error" - url = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.18.tar.bz2" + url = "http://gd.tuwien.ac.at/pub/gnupg/libgpg-error/libgpg-error-1.18.tar.bz2" version('1.21', 'ab0b5aba6d0a185b41d07bda804fd8b2') version('1.18', '12312802d2065774b787cbfc22cc04e9') diff --git a/var/spack/repos/builtin/packages/libmng/package.py b/var/spack/repos/builtin/packages/libmng/package.py index a867c1997e..c8ea90401b 100644 --- a/var/spack/repos/builtin/packages/libmng/package.py +++ b/var/spack/repos/builtin/packages/libmng/package.py @@ -42,3 +42,7 @@ class Libmng(AutotoolsPackage): # jpeg requires stdio to beincluded before its headrs. filter_file(r'^(\#include \<jpeglib\.h\>)', '#include<stdio.h>\n\\1', 'libmng_types.h') + + @run_before('configure') + def clean_configure_directory(self): + make('distclean') diff --git a/var/spack/repos/builtin/packages/libsigsegv/package.py b/var/spack/repos/builtin/packages/libsigsegv/package.py index a5a3e8eb5f..f354b260a9 100644 --- a/var/spack/repos/builtin/packages/libsigsegv/package.py +++ b/var/spack/repos/builtin/packages/libsigsegv/package.py @@ -29,7 +29,7 @@ class Libsigsegv(AutotoolsPackage): """GNU libsigsegv is a library for handling page faults in user mode.""" homepage = "https://www.gnu.org/software/libsigsegv/" - url = "ftp://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz" + url = "https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz" patch('patch.new_config_guess', when='@2.10') diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py index 70c371b3b8..3e5b57a965 100644 --- a/var/spack/repos/builtin/packages/libtiff/package.py +++ b/var/spack/repos/builtin/packages/libtiff/package.py @@ -28,7 +28,7 @@ from spack import * class Libtiff(AutotoolsPackage): """libtiff graphics format library""" homepage = "http://www.simplesystems.org/libtiff/" - url = "ftp://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" + url = "http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" version('4.0.6', 'd1d2e940dea0b5ad435f21f03d96dd72') version('4.0.3', '051c1068e6a0627f461948c365290410') diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index a8b0423933..128e1c2a41 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -29,7 +29,7 @@ class M4(AutotoolsPackage): """GNU M4 is an implementation of the traditional Unix macro processor.""" homepage = "https://www.gnu.org/software/m4/m4.html" - url = "ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz" + url = "https://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz" version('1.4.18', 'a077779db287adf4e12a035029002d28') version('1.4.17', 'a5e9954b1dae036762f7b13673a2cf76') diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index 094a7155d2..7d6c559696 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -30,7 +30,7 @@ class Mesa(AutotoolsPackage): specification - a system for rendering interactive 3D graphics.""" homepage = "http://www.mesa3d.org" - url = "ftp://ftp.freedesktop.org/pub/mesa/12.0.3/mesa-12.0.3.tar.gz" + url = "http://ftp.iij.ad.jp/pub/X11/x.org/pub/mesa/12.0.3/mesa-12.0.3.tar.gz" version('12.0.3', '60c5f9897ddc38b46f8144c7366e84ad') diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py index 40e7d95de9..39c4f3d8c0 100644 --- a/var/spack/repos/builtin/packages/mpc/package.py +++ b/var/spack/repos/builtin/packages/mpc/package.py @@ -30,7 +30,7 @@ class Mpc(AutotoolsPackage): with arbitrarily high precision and correct rounding of the result.""" homepage = "http://www.multiprecision.org" - url = "ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz" + url = "https://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz" version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26') version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3') @@ -42,4 +42,4 @@ class Mpc(AutotoolsPackage): if version < Version("1.0.1"): return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version else: - return "ftp://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version + return "https://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version diff --git a/var/spack/repos/builtin/packages/mpe2/package.py b/var/spack/repos/builtin/packages/mpe2/package.py index a129d59949..78201281bb 100644 --- a/var/spack/repos/builtin/packages/mpe2/package.py +++ b/var/spack/repos/builtin/packages/mpe2/package.py @@ -29,7 +29,7 @@ class Mpe2(Package): """Message Passing Extensions (MPE): Parallel, shared X window graphics""" homepage = "http://www.mcs.anl.gov/research/projects/perfvis/software/MPE/" - url = "ftp://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz" + url = "http://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz" version('1.3.0', '67bf0c7b2e573df3ba0d2059a96c2f7b') diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py index b58d7a8c87..81938827f1 100644 --- a/var/spack/repos/builtin/packages/mrnet/package.py +++ b/var/spack/repos/builtin/packages/mrnet/package.py @@ -28,7 +28,7 @@ from spack import * class Mrnet(AutotoolsPackage): """The MRNet Multi-Cast Reduction Network.""" homepage = "http://paradyn.org/mrnet" - url = "ftp://ftp.cs.wisc.edu/paradyn/mrnet/mrnet_5.0.1.tar.gz" + url = "http://ftp.cs.wisc.edu/pub/paradyn/mrnet/mrnet_5.0.1.tar.gz" list_url = "http://ftp.cs.wisc.edu/paradyn/mrnet" version('5.0.1-2', git='https://github.com/dyninst/mrnet.git', diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index da541c18b3..6f83aa9139 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -28,7 +28,7 @@ from spack import * class Ncview(AutotoolsPackage): """Simple viewer for NetCDF files.""" homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html" - url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz" + url = "https://fossies.org/linux/misc/ncview-2.1.7.tar.gz" version('2.1.7', 'debd6ca61410aac3514e53122ab2ba07') diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py index af3e69b5e6..34d3bd41c6 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf/package.py @@ -31,7 +31,7 @@ class Netcdf(AutotoolsPackage): and sharing of array-oriented scientific data.""" homepage = "http://www.unidata.ucar.edu/software/netcdf" - url = "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.3.3.tar.gz" + url = "http://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-4.3.3.tar.gz" version('4.4.1.1', '503a2d6b6035d116ed53b1d80c811bda') version('4.4.1', '7843e35b661c99e1d49e60791d5072d8') diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py index 2ba7038250..ed8d28ebda 100644 --- a/var/spack/repos/builtin/packages/octave/package.py +++ b/var/spack/repos/builtin/packages/octave/package.py @@ -34,7 +34,7 @@ class Octave(AutotoolsPackage): Matlab. It may also be used as a batch-oriented language.""" homepage = "https://www.gnu.org/software/octave/" - url = "ftp://ftp.gnu.org/gnu/octave/octave-4.0.0.tar.gz" + url = "https://ftp.gnu.org/gnu/octave/octave-4.0.0.tar.gz" extendable = True diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index 88896231fd..f74a420356 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -33,13 +33,17 @@ class Openssl(Package): Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.""" homepage = "http://www.openssl.org" - url = "ftp://openssl.org/source/openssl-1.0.1h.tar.gz" + url = "http://www.openssl.org/source/openssl-1.0.1h.tar.gz" + list_url = "https://www.openssl.org/source/old/" + list_depth = 2 # Note: Version 1.0.2 is the "long-term support" version that will # remain supported until 2019. We could thus make this version the # preferred version, if we find that many packages cannot handle # version 1.1. + version('1.1.0d', '711ce3cd5f53a99c0e12a7d5804f0f63') version('1.1.0c', '601e8191f72b18192a937ecf1a800f3f') + version('1.0.2k', 'f965fc0bf01bf882b31314b61391ae65') version('1.0.2j', '96322138f0b69e61b7212bc53d5e912b') version('1.0.2i', '678374e63f8df456a697d3e5e5a931fb') version('1.0.2h', '9392e65072ce4b614c1392eefc1f23d0') diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py index a2236e682b..f1a106f8d7 100644 --- a/var/spack/repos/builtin/packages/pcre/package.py +++ b/var/spack/repos/builtin/packages/pcre/package.py @@ -30,7 +30,7 @@ class Pcre(Package): libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.""" homepage = "http://www.pcre.org""" - url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2" + url = "https://ftp.pcre.org/pub/pcre/pcre-8.36.tar.bz2" version('8.39', 'e3fca7650a0556a2647821679d81f585') version('8.38', '00aabbfe56d5a48b270f999b508c5ad2') diff --git a/var/spack/repos/builtin/packages/pcre2/package.py b/var/spack/repos/builtin/packages/pcre2/package.py index d2915dd60e..5fb582cab0 100644 --- a/var/spack/repos/builtin/packages/pcre2/package.py +++ b/var/spack/repos/builtin/packages/pcre2/package.py @@ -30,6 +30,6 @@ class Pcre2(AutotoolsPackage): libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.""" homepage = "http://www.pcre.org""" - url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.bz2" + url = "https://ftp.pcre.org/pub/pcre/pcre2-10.20.tar.bz2" version('10.20', 'dcd027c57ecfdc8a6c3af9d0acf5e3f7') diff --git a/var/spack/repos/builtin/packages/r-adabag/package.py b/var/spack/repos/builtin/packages/r-adabag/package.py new file mode 100644 index 0000000000..aa16047856 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adabag/package.py @@ -0,0 +1,39 @@ +############################################################################## +# 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 RAdabag(RPackage): + """Applies Multiclass AdaBoost.M1, SAMME and Bagging.""" + + homepage = "https://cran.r-project.org/package=adabag" + url = "https://cran.r-project.org/src/contrib/adabag_4.1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/adabag" + + version('4.1', '2e019f053d49f62ebb3b1697bbb50afa') + + depends_on('r-rpart', type=('build', 'run')) + depends_on('r-mlbench', type=('build', 'run')) + depends_on('r-caret', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-assertthat/package.py b/var/spack/repos/builtin/packages/r-assertthat/package.py index 97c29b4a99..b8ab7d7a0c 100644 --- a/var/spack/repos/builtin/packages/r-assertthat/package.py +++ b/var/spack/repos/builtin/packages/r-assertthat/package.py @@ -31,7 +31,8 @@ class RAssertthat(RPackage): producing friendly error messages so that your users know what they've done wrong.""" - homepage = "https://cran.r-project.org/web/packages/assertthat/index.html" + homepage = "https://cran.r-project.org/package=assertthat" url = "https://cran.r-project.org/src/contrib/assertthat_0.1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/assertthat" version('0.1', '59f9d7f7c00077ea54d763b78eeb5798') diff --git a/var/spack/repos/builtin/packages/r-biocinstaller/package.py b/var/spack/repos/builtin/packages/r-biocinstaller/package.py new file mode 100644 index 0000000000..c145de688c --- /dev/null +++ b/var/spack/repos/builtin/packages/r-biocinstaller/package.py @@ -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 RBiocinstaller(RPackage): + """This package is used to install and update Bioconductor, CRAN, + and (some) github packages.""" + + homepage = "http://bioconductor.org/packages/devel/bioc/html/BiocInstaller.html" + url = "http://bioconductor.org/packages/devel/bioc/src/contrib/BiocInstaller_1.25.3.tar.gz" + + version('1.25.3', '6214770455a5122dca5544861f52c91d') + + depends_on('r@3.4.0:') diff --git a/var/spack/repos/builtin/packages/r-car/package.py b/var/spack/repos/builtin/packages/r-car/package.py index 80a0206a8a..56c87c27a6 100644 --- a/var/spack/repos/builtin/packages/r-car/package.py +++ b/var/spack/repos/builtin/packages/r-car/package.py @@ -30,13 +30,14 @@ class RCar(RPackage): Companion to Applied Regression, Second Edition, Sage, 2011.""" homepage = "https://r-forge.r-project.org/projects/car/" - url = "https://cran.r-project.org/src/contrib/car_2.1-2.tar.gz" + url = "https://cran.r-project.org/src/contrib/car_2.1-4.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/car" + version('2.1-4', 'a66c307e8ccf0c336ed197c0f1799565') version('2.1-2', '0f78ad74ef7130126d319acec23951a0') - depends_on('r-mass', type=('build','run')) - depends_on('r-mgcv', type=('build','run')) - depends_on('r-nnet', type=('build','run')) - depends_on('r-pbkrtest', type=('build','run')) - depends_on('r-quantreg', type=('build','run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-mgcv', type=('build', 'run')) + depends_on('r-nnet', type=('build', 'run')) + depends_on('r-pbkrtest', type=('build', 'run')) + depends_on('r-quantreg', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-caret/package.py b/var/spack/repos/builtin/packages/r-caret/package.py index d795cfa204..277fdc7143 100644 --- a/var/spack/repos/builtin/packages/r-caret/package.py +++ b/var/spack/repos/builtin/packages/r-caret/package.py @@ -30,15 +30,19 @@ class RCaret(RPackage): models.""" homepage = "https://github.com/topepo/caret/" - url = "https://cran.r-project.org/src/contrib/caret_6.0-70.tar.gz" + url = "https://cran.r-project.org/src/contrib/caret_6.0-73.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/caret" + version('6.0-73', 'ca869e3357b5358f028fb926eb62eb70') version('6.0-70', '202d7abb6a679af716ea69fb2573f108') - depends_on('r-lattice', type=('build','run')) - depends_on('r-ggplot2', type=('build','run')) - depends_on('r-car', type=('build','run')) - depends_on('r-foreach', type=('build','run')) - depends_on('r-plyr', type=('build','run')) - depends_on('r-nlme', type=('build','run')) - depends_on('r-reshape2', type=('build','run')) + depends_on('r@2.10:') + + depends_on('r-lattice@0.20:', type=('build', 'run')) + depends_on('r-ggplot2', type=('build', 'run')) + depends_on('r-car', type=('build', 'run')) + depends_on('r-foreach', type=('build', 'run')) + depends_on('r-plyr', type=('build', 'run')) + depends_on('r-modelmetrics@1.1.0:', type=('build', 'run')) + depends_on('r-nlme', type=('build', 'run')) + depends_on('r-reshape2', type=('build', 'run')) diff --git a/lib/spack/spack/cmd/urls.py b/var/spack/repos/builtin/packages/r-checkpoint/package.py index 4ff23e69c1..5fd862fa46 100644 --- a/lib/spack/spack/cmd/urls.py +++ b/var/spack/repos/builtin/packages/r-checkpoint/package.py @@ -22,38 +22,20 @@ # 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 spack -import spack.url +from spack import * -description = "inspect urls used by packages in spack" +class RCheckpoint(RPackage): + """The goal of checkpoint is to solve the problem of package + reproducibility in R. Specifically, checkpoint allows you to + install packages as they existed on CRAN on a specific snapshot + date as if you had a CRAN time machine.""" -def setup_parser(subparser): - subparser.add_argument( - '-c', '--color', action='store_true', - help="color the parsed version and name in the urls shown. " - "version will be cyan, name red") - subparser.add_argument( - '-e', '--extrapolation', action='store_true', - help="color the versions used for extrapolation as well. " - "additional versions are green, names magenta") + homepage = "https://cran.r-project.org/package=checkpoint" + url = "https://cran.r-project.org/src/contrib/checkpoint_0.3.18.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/checkpoint" + version('0.3.18', '021d7faeb72c36167951e103b2b065ea') + version('0.3.15', 'a4aa8320338f1434a330d984e97981ea') -def urls(parser, args): - urls = set() - for pkg in spack.repo.all_packages(): - url = getattr(pkg.__class__, 'url', None) - if url: - urls.add(url) - - for params in pkg.versions.values(): - url = params.get('url', None) - if url: - urls.add(url) - - for url in sorted(urls): - if args.color or args.extrapolation: - print spack.url.color_url( - url, subs=args.extrapolation, errors=True) - else: - print url + depends_on('r@3.0.0:') diff --git a/var/spack/repos/builtin/packages/r-cluster/package.py b/var/spack/repos/builtin/packages/r-cluster/package.py index 29e16c2271..caa96a380a 100644 --- a/var/spack/repos/builtin/packages/r-cluster/package.py +++ b/var/spack/repos/builtin/packages/r-cluster/package.py @@ -31,7 +31,8 @@ class RCluster(RPackage): (1990) "Finding Groups in Data".""" homepage = "https://cran.r-project.org/web/packages/cluster/index.html" - url = "https://cran.r-project.org/src/contrib/cluster_2.0.4.tar.gz" + url = "https://cran.r-project.org/src/contrib/cluster_2.0.5.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/cluster" + version('2.0.5', '7330f209ebce960bdee1a6d6679cb85a') version('2.0.4', 'bb4deceaafb1c42bb1278d5d0dc11e59') diff --git a/var/spack/repos/builtin/packages/r-codetools/package.py b/var/spack/repos/builtin/packages/r-codetools/package.py index 39186bf54a..60b8fc2cc8 100644 --- a/var/spack/repos/builtin/packages/r-codetools/package.py +++ b/var/spack/repos/builtin/packages/r-codetools/package.py @@ -29,7 +29,8 @@ class RCodetools(RPackage): """Code analysis tools for R.""" homepage = "https://cran.r-project.org/web/packages/codetools/index.html" - url = "https://cran.r-project.org/src/contrib/codetools_0.2-14.tar.gz" + url = "https://cran.r-project.org/src/contrib/codetools_0.2-15.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/codetools" + version('0.2-15', '37419cbc3de81984cf6d9b207d4f62d4') version('0.2-14', '7ec41d4f8bd6ba85facc8c5e6adc1f4d') diff --git a/var/spack/repos/builtin/packages/r-coin/package.py b/var/spack/repos/builtin/packages/r-coin/package.py new file mode 100644 index 0000000000..51b61a6164 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-coin/package.py @@ -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 RCoin(RPackage): + """Conditional inference procedures for the general independence problem + including two-sample, K-sample (non-parametric ANOVA), correlation, + censored, ordered and multivariate problems.""" + + homepage = "https://cran.r-project.org/package=coin" + url = "https://cran.r-project.org/src/contrib/coin_1.1-3.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/coin" + + version('1.1-3', '97d3d21f1e4a5762e36dd718dd2d0661') + + depends_on('r@2.14.0:') + + depends_on('r-survival', type=('build', 'run')) + depends_on('r-modeltools@0.2-9:', type=('build', 'run')) + depends_on('r-mvtnorm@1.0-5:', type=('build', 'run')) + depends_on('r-multcomp', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-colorspace/package.py b/var/spack/repos/builtin/packages/r-colorspace/package.py index b7561ea360..af2895acbf 100644 --- a/var/spack/repos/builtin/packages/r-colorspace/package.py +++ b/var/spack/repos/builtin/packages/r-colorspace/package.py @@ -32,7 +32,8 @@ class RColorspace(RPackage): are provided.""" homepage = "https://cran.r-project.org/web/packages/colorspace/index.html" - url = "https://cran.r-project.org/src/contrib/colorspace_1.2-6.tar.gz" + url = "https://cran.r-project.org/src/contrib/colorspace_1.3-2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/colorspace" + version('1.3-2', '63000bab81d995ff167df76fb97b2984') version('1.2-6', 'a30191e9caf66f77ff4e99c062e9dce1') diff --git a/var/spack/repos/builtin/packages/r-corrplot/package.py b/var/spack/repos/builtin/packages/r-corrplot/package.py new file mode 100644 index 0000000000..ccae3bf913 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-corrplot/package.py @@ -0,0 +1,36 @@ +############################################################################## +# 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 RCorrplot(RPackage): + """A graphical display of a correlation matrix or general matrix. + It also contains some algorithms to do matrix reordering.""" + + homepage = "https://cran.r-project.org/package=corrplot" + url = "https://cran.r-project.org/src/contrib/corrplot_0.77.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/corrplot" + + version('0.77', '2a5d54fd5c65618b9afba1a32f6b4542') diff --git a/var/spack/repos/builtin/packages/r-cubist/package.py b/var/spack/repos/builtin/packages/r-cubist/package.py new file mode 100644 index 0000000000..acc0261383 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-cubist/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 RCubist(RPackage): + """Regression modeling using rules with added instance-based corrections""" + + homepage = "https://cran.r-project.org/package=Cubist" + url = "https://cran.r-project.org/src/contrib/Cubist_0.0.19.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/Cubist" + + version('0.0.19', 'bf9364f655536ec03717fd2ad6223a47') + + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-reshape2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-curl/package.py b/var/spack/repos/builtin/packages/r-curl/package.py index 7b62d1be60..ae9ccf3f5e 100644 --- a/var/spack/repos/builtin/packages/r-curl/package.py +++ b/var/spack/repos/builtin/packages/r-curl/package.py @@ -37,10 +37,12 @@ class RCurl(RPackage): package with http specific tools and logic.""" homepage = "https://github.com/jeroenooms/curl" - url = "https://cran.r-project.org/src/contrib/curl_0.9.7.tar.gz" + url = "https://cran.r-project.org/src/contrib/curl_2.3.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/curl" - version('1.0', '93d34926d6071e1fba7e728b482f0dd9') + version('2.3', '7250ee8caed98ba76906ab4d32da60f8') + version('1.0', '93d34926d6071e1fba7e728b482f0dd9') version('0.9.7', 'a101f7de948cb828fef571c730f39217') + depends_on('r@3.0.0:') depends_on('curl') diff --git a/var/spack/repos/builtin/packages/r-datatable/package.py b/var/spack/repos/builtin/packages/r-data-table/package.py index 23802524e8..4381d1e0f8 100644 --- a/var/spack/repos/builtin/packages/r-datatable/package.py +++ b/var/spack/repos/builtin/packages/r-data-table/package.py @@ -25,16 +25,17 @@ from spack import * -class RDatatable(RPackage): +class RDataTable(RPackage): """Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns and a fast file reader (fread). Offers a natural and flexible syntax, for faster development.""" homepage = "https://github.com/Rdatatable/data.table/wiki" - url = "https://cran.r-project.org/src/contrib/data.table_1.9.6.tar.gz" + url = "https://cran.r-project.org/src/contrib/data.table_1.10.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/data.table" - version('1.9.6', 'b1c0c7cce490bdf42ab288541cc55372') + version('1.10.0', 'f0e08dd5ba1b3f46c59dd1574fe497c1') + version('1.9.6', 'b1c0c7cce490bdf42ab288541cc55372') - depends_on('r-chron', type=('build', 'run')) + depends_on('r@3.0.0:') diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py index 9895a3b390..c994f557c8 100644 --- a/var/spack/repos/builtin/packages/r-devtools/package.py +++ b/var/spack/repos/builtin/packages/r-devtools/package.py @@ -29,16 +29,19 @@ class RDevtools(RPackage): """Collection of package development tools.""" homepage = "https://github.com/hadley/devtools" - url = "https://cran.r-project.org/src/contrib/devtools_1.11.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/devtools_1.12.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/devtools" + version('1.12.0', '73b46c446273566e5b21c9f5f72aeca3') version('1.11.1', '242672ee27d24dddcbdaac88c586b6c2') - depends_on('r-httr', type=('build', 'run')) - depends_on('r-memoise', type=('build', 'run')) + depends_on('r@3.0.2:') + + depends_on('r-httr@0.4:', type=('build', 'run')) + depends_on('r-memoise@1.0.0:', type=('build', 'run')) depends_on('r-whisker', type=('build', 'run')) depends_on('r-digest', type=('build', 'run')) - depends_on('r-rstudioapi', type=('build', 'run')) + depends_on('r-rstudioapi@0.2.0:', type=('build', 'run')) depends_on('r-jsonlite', type=('build', 'run')) - depends_on('r-git2r', type=('build', 'run')) + depends_on('r-git2r@0.11.0:', type=('build', 'run')) depends_on('r-withr', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-digest/package.py b/var/spack/repos/builtin/packages/r-digest/package.py index 7e077442f9..08f5af0aca 100644 --- a/var/spack/repos/builtin/packages/r-digest/package.py +++ b/var/spack/repos/builtin/packages/r-digest/package.py @@ -44,7 +44,11 @@ class RDigest(RPackage): used.""" homepage = "http://dirk.eddelbuettel.com/code/digest.html" - url = "https://cran.r-project.org/src/contrib/digest_0.6.9.tar.gz" + url = "https://cran.r-project.org/src/contrib/digest_0.6.12.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/digest" - version('0.6.9', '48048ce6c466bdb124716e45ba4a0e83') + version('0.6.12', '738efd4d9a37c5a4001ae66e954ce07e') + version('0.6.11', '52a864f55846b48b3cab0b5d0304a82a') + version('0.6.9', '48048ce6c466bdb124716e45ba4a0e83') + + depends_on('r@2.4.1:') diff --git a/var/spack/repos/builtin/packages/r-domc/package.py b/var/spack/repos/builtin/packages/r-domc/package.py new file mode 100644 index 0000000000..1a44aa537d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-domc/package.py @@ -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 RDomc(RPackage): + """Provides a parallel backend for the %dopar% function using + the multicore functionality of the parallel package.""" + + homepage = "https://cran.r-project.org/package=doMC" + url = "https://cran.r-project.org/src/contrib/doMC_1.3.4.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/doMC" + + version('1.3.4', 'f965b09add9056e84f99a831dc3af7d1') + + depends_on('r@2.14.0:') + + depends_on('r-foreach@1.2.0:', type=('build', 'run')) + depends_on('r-iterators@1.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-ellipse/package.py b/var/spack/repos/builtin/packages/r-ellipse/package.py new file mode 100644 index 0000000000..1f6144285e --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ellipse/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 REllipse(RPackage): + """This package contains various routines for drawing ellipses and + ellipse-like confidence regions.""" + + homepage = "https://cran.r-project.org/package=ellipse" + url = "https://cran.r-project.org/src/contrib/ellipse_0.3-8.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/ellipse" + + version('0.3-8', '385f5ec5e49bcda4317ca9dffd33f771') + + depends_on('r@2.0.0:') diff --git a/var/spack/repos/builtin/packages/r-evaluate/package.py b/var/spack/repos/builtin/packages/r-evaluate/package.py index cf6c72dc62..004048e985 100644 --- a/var/spack/repos/builtin/packages/r-evaluate/package.py +++ b/var/spack/repos/builtin/packages/r-evaluate/package.py @@ -35,6 +35,9 @@ class REvaluate(RPackage): url = "https://cran.rstudio.com/src/contrib/evaluate_0.9.tar.gz" list_url = "https://cran.rstudio.com/src/contrib/Archive/evaluate" - version('0.9', '877d89ce8a9ef7f403b1089ca1021775') + version('0.10', 'c49326babf984a8b36e7e276da370ad2') + version('0.9', '877d89ce8a9ef7f403b1089ca1021775') - depends_on('r-stringr', type=('build', 'run')) + depends_on('r@3.0.2:') + + depends_on('r-stringr@0.6.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-ggplot2/package.py b/var/spack/repos/builtin/packages/r-ggplot2/package.py index 3b4c437f0c..e5c80e4b79 100644 --- a/var/spack/repos/builtin/packages/r-ggplot2/package.py +++ b/var/spack/repos/builtin/packages/r-ggplot2/package.py @@ -35,14 +35,19 @@ class RGgplot2(RPackage): documentation and examples.""" homepage = "http://ggplot2.org/" - url = "https://cran.r-project.org/src/contrib/ggplot2_2.1.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/ggplot2_2.2.1.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/ggplot2" + version('2.2.1', '14c5a3507bc123c6e7e9ad3bef7cee5c') version('2.1.0', '771928cfb97c649c720423deb3ec7fd3') + depends_on('r@3.1:') + depends_on('r-digest', type=('build', 'run')) - depends_on('r-gtable', type=('build', 'run')) + depends_on('r-gtable@0.1.1:', type=('build', 'run')) depends_on('r-mass', type=('build', 'run')) - depends_on('r-plyr', type=('build', 'run')) + depends_on('r-plyr@1.7.1:', type=('build', 'run')) depends_on('r-reshape2', type=('build', 'run')) - depends_on('r-scales', type=('build', 'run')) + depends_on('r-scales@0.4.1', type=('build', 'run')) + depends_on('r-tibble', type=('build', 'run')) + depends_on('r-lazyeval', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-git2r/package.py b/var/spack/repos/builtin/packages/r-git2r/package.py index 7c4ff3144b..a0df2d9b23 100644 --- a/var/spack/repos/builtin/packages/r-git2r/package.py +++ b/var/spack/repos/builtin/packages/r-git2r/package.py @@ -31,10 +31,13 @@ class RGit2r(RPackage): data and running some basic 'Git' commands.""" homepage = "https://github.com/ropensci/git2r" - url = "https://cran.r-project.org/src/contrib/git2r_0.15.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/git2r_0.18.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/git2r" + version('0.18.0', 'fb5741eb490c3d6e23a751a72336f24d') version('0.15.0', '57658b3298f9b9aadc0dd77b4ef6a1e1') + depends_on('r@3.0.2:') + depends_on('zlib') depends_on('openssl') diff --git a/var/spack/repos/builtin/packages/r-httpuv/package.py b/var/spack/repos/builtin/packages/r-httpuv/package.py index e4b60893b6..a81e3c3fb1 100644 --- a/var/spack/repos/builtin/packages/r-httpuv/package.py +++ b/var/spack/repos/builtin/packages/r-httpuv/package.py @@ -40,4 +40,6 @@ class RHttpuv(RPackage): version('1.3.3', 'c78ae068cf59e949b9791be987bb4489') - depends_on('r-rcpp', type=('build', 'run')) + depends_on('r@2.15.1:') + + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-httr/package.py b/var/spack/repos/builtin/packages/r-httr/package.py index 55a5b0efab..b27bee4fbb 100644 --- a/var/spack/repos/builtin/packages/r-httr/package.py +++ b/var/spack/repos/builtin/packages/r-httr/package.py @@ -31,13 +31,16 @@ class RHttr(RPackage): request components (authenticate(), add_headers() and so on).""" homepage = "https://github.com/hadley/httr" - url = "https://cran.r-project.org/src/contrib/httr_1.1.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/httr_1.2.1.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/httr" + version('1.2.1', 'c469948dedac9ab3926f23cf484b33d9') version('1.1.0', '5ffbbc5c2529e49f00aaa521a2b35600') + depends_on('r@3.0.0:') + depends_on('r-jsonlite', type=('build', 'run')) depends_on('r-mime', type=('build', 'run')) - depends_on('r-curl', type=('build', 'run')) + depends_on('r-curl@0.9.1:', type=('build', 'run')) depends_on('r-openssl', type=('build', 'run')) depends_on('r-r6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-ipred/package.py b/var/spack/repos/builtin/packages/r-ipred/package.py new file mode 100644 index 0000000000..37accb6ee2 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-ipred/package.py @@ -0,0 +1,46 @@ +############################################################################## +# 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 RIpred(RPackage): + """Improved predictive models by indirect classification and bagging for + classification, regression and survival problems as well as resampling + based estimators of prediction error.""" + + homepage = "https://cran.r-project.org/package=ipred" + url = "https://cran.r-project.org/src/contrib/ipred_0.9-5.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/ipred" + + version('0.9-5', 'ce8768547a7aa9554ad3650b18ea3cbd') + + depends_on('r@2.10:') + + depends_on('r-rpart@3.1-8:', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-survival', type=('build', 'run')) + depends_on('r-nnet', type=('build', 'run')) + depends_on('r-class', type=('build', 'run')) + depends_on('r-prodlim', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-irlba/package.py b/var/spack/repos/builtin/packages/r-irlba/package.py index e0d1b32565..ad383492ff 100644 --- a/var/spack/repos/builtin/packages/r-irlba/package.py +++ b/var/spack/repos/builtin/packages/r-irlba/package.py @@ -31,9 +31,10 @@ class RIrlba(RPackage): matrices.""" homepage = "https://cran.r-project.org/web/packages/irlba/index.html" - url = "https://cran.r-project.org/src/contrib/irlba_2.0.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/irlba_2.1.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/irlba" + version('2.1.2', '290940abf6662ed10c0c5a8db1bc6e88') version('2.0.0', '557674cf8b68fea5b9f231058c324d26') depends_on('r-matrix', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-jsonlite/package.py b/var/spack/repos/builtin/packages/r-jsonlite/package.py index 7368187af5..4a690d475a 100644 --- a/var/spack/repos/builtin/packages/r-jsonlite/package.py +++ b/var/spack/repos/builtin/packages/r-jsonlite/package.py @@ -38,8 +38,9 @@ class RJsonlite(RPackage): use with dynamic data in systems and applications.""" homepage = "https://github.com/jeroenooms/jsonlite" - url = "https://cran.r-project.org/src/contrib/jsonlite_1.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/jsonlite_1.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/jsonlite" + version('1.2', '80cd2678ae77254be470f5931db71c51') version('1.0', 'c8524e086de22ab39b8ac8000220cc87') version('0.9.21', '4fc382747f88a79ff0718a0d06bed45d') diff --git a/var/spack/repos/builtin/packages/r-kernlab/package.py b/var/spack/repos/builtin/packages/r-kernlab/package.py new file mode 100644 index 0000000000..67159297ab --- /dev/null +++ b/var/spack/repos/builtin/packages/r-kernlab/package.py @@ -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 RKernlab(RPackage): + """Kernel-based machine learning methods for classification, regression, + clustering, novelty detection, quantile regression and dimensionality + reduction. Among other methods 'kernlab' includes Support Vector Machines, + Spectral Clustering, Kernel PCA, Gaussian Processes and a QP solver.""" + + homepage = "https://cran.r-project.org/package=kernlab" + url = "https://cran.r-project.org/src/contrib/kernlab_0.9-25.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/kernlab" + + version('0.9-25', '1182a2a336a79fd2cf70b4bc5a35353f') + + depends_on('r@2.10:') diff --git a/var/spack/repos/builtin/packages/r-kernsmooth/package.py b/var/spack/repos/builtin/packages/r-kernsmooth/package.py new file mode 100644 index 0000000000..14e58072dc --- /dev/null +++ b/var/spack/repos/builtin/packages/r-kernsmooth/package.py @@ -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 RKernsmooth(RPackage): + """Functions for kernel smoothing (and density estimation).""" + + homepage = "https://cran.r-project.org/package=KernSmooth" + url = "https://cran.r-project.org/src/contrib/KernSmooth_2.23-15.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/KernSmooth" + + version('2.23-15', '746cdf26dec72004cf19978e87dcc982') + + depends_on('r@2.5.0:') diff --git a/var/spack/repos/builtin/packages/r-kknn/package.py b/var/spack/repos/builtin/packages/r-kknn/package.py new file mode 100644 index 0000000000..bd5d688b14 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-kknn/package.py @@ -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 RKknn(RPackage): + """Weighted k-Nearest Neighbors for Classification, Regression and + Clustering.""" + + homepage = "https://cran.r-project.org/package=kknn" + url = "https://cran.r-project.org/src/contrib/kknn_1.3.1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/kknn" + + version('1.3.1', '372cd84f618cd5005f8c4c5721755117') + + depends_on('r@2.10:') + + depends_on('r-igraph@1.0:', type=('build', 'run')) + depends_on('r-matrix', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-lava/package.py b/var/spack/repos/builtin/packages/r-lava/package.py new file mode 100644 index 0000000000..c38f9003ea --- /dev/null +++ b/var/spack/repos/builtin/packages/r-lava/package.py @@ -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 RLava(RPackage): + """Estimation and simulation of latent variable models.""" + + homepage = "https://cran.r-project.org/package=lava" + url = "https://cran.r-project.org/src/contrib/lava_1.4.6.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/lava" + + version('1.4.7', '28039248a7039ba9281d172e4dbf9543') + + depends_on('r@3.0:') + + depends_on('r-numderiv', type=('build', 'run')) + depends_on('r-survival', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-matrix/package.py b/var/spack/repos/builtin/packages/r-matrix/package.py index 07c2eaf9da..ba1323a737 100644 --- a/var/spack/repos/builtin/packages/r-matrix/package.py +++ b/var/spack/repos/builtin/packages/r-matrix/package.py @@ -30,9 +30,10 @@ class RMatrix(RPackage): using 'LAPACK' and 'SuiteSparse'.""" homepage = "http://matrix.r-forge.r-project.org/" - url = "https://cran.r-project.org/src/contrib/Matrix_1.2-6.tar.gz" + url = "https://cran.r-project.org/src/contrib/Matrix_1.2-8.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/Matrix" + version('1.2-8', '4a6406666bf97d3ec6b698eea5d9c0f5') version('1.2-6', 'f545307fb1284861e9266c4e9712c55e') depends_on('r-lattice', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-mda/package.py b/var/spack/repos/builtin/packages/r-mda/package.py new file mode 100644 index 0000000000..4a3325abec --- /dev/null +++ b/var/spack/repos/builtin/packages/r-mda/package.py @@ -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 RMda(RPackage): + """Mixture and flexible discriminant analysis, multivariate adaptive + regression splines (MARS), BRUTO.""" + + homepage = "https://cran.r-project.org/package=mda" + url = "https://cran.r-project.org/src/contrib/mda_0.4-9.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/mda" + + version('0.4-9', '2ce1446c4a013e0ebcc1099a00269ad9') + + depends_on('r@1.9.0:') + + depends_on('r-class', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-mgcv/package.py b/var/spack/repos/builtin/packages/r-mgcv/package.py index c8cb067275..611abfd47c 100644 --- a/var/spack/repos/builtin/packages/r-mgcv/package.py +++ b/var/spack/repos/builtin/packages/r-mgcv/package.py @@ -32,9 +32,10 @@ class RMgcv(RPackage): beyond the exponential family.""" homepage = "https://cran.r-project.org/package=mgcv" - url = "https://cran.r-project.org/src/contrib/mgcv_1.8-13.tar.gz" + url = "https://cran.r-project.org/src/contrib/mgcv_1.8-16.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/mgcv" + version('1.8-16', '4c1d85e0f80b017bccb4b63395842911') version('1.8-13', '30607be3aaf44b13bd8c81fc32e8c984') depends_on('r-nlme', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-mlbench/package.py b/var/spack/repos/builtin/packages/r-mlbench/package.py new file mode 100644 index 0000000000..ec7957d5f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-mlbench/package.py @@ -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 RMlbench(RPackage): + """A collection of artificial and real-world machine learning benchmark + problems, including, e.g., several data sets from the UCI repository.""" + + homepage = "https://cran.r-project.org/web/packages/mlbench/index.html" + url = "https://cran.r-project.org/src/contrib/mlbench_2.1-1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/mlbench" + + version('2.1-1', '9f06848b8e137b8a37417c92d8e57f3b') + + depends_on('r@2.10:') + + depends_on('r-lattice', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-modelmetrics/package.py b/var/spack/repos/builtin/packages/r-modelmetrics/package.py new file mode 100644 index 0000000000..99644ef190 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-modelmetrics/package.py @@ -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 RModelmetrics(RPackage): + """Collection of metrics for evaluating models written in C++ using + 'Rcpp'.""" + + homepage = "https://cran.r-project.org/package=ModelMetrics" + url = "https://cran.r-project.org/src/contrib/ModelMetrics_1.1.0.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/ModelMetrics" + + version('1.1.0', 'd43175001f0531b8810d2802d76b7b44') + + depends_on('r@3.2.2:') + + depends_on('r-rcpp', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-modeltools/package.py b/var/spack/repos/builtin/packages/r-modeltools/package.py new file mode 100644 index 0000000000..97c3cf0682 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-modeltools/package.py @@ -0,0 +1,35 @@ +############################################################################## +# 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 RModeltools(RPackage): + """A collection of tools to deal with statistical models.""" + + homepage = "https://cran.r-project.org/package=modeltools" + url = "https://cran.r-project.org/src/contrib/modeltools_0.2-21.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/modeltools" + + version('0.2-21', '3bf56b2e7bf78981444385d87eeccdd7') diff --git a/var/spack/repos/builtin/packages/r-multcomp/package.py b/var/spack/repos/builtin/packages/r-multcomp/package.py index 70704a9c61..0dbfb14ea0 100644 --- a/var/spack/repos/builtin/packages/r-multcomp/package.py +++ b/var/spack/repos/builtin/packages/r-multcomp/package.py @@ -38,8 +38,8 @@ class RMultcomp(RPackage): version('1.4-6', 'f1353ede2ed78b23859a7f1f1f9ebe88') - depends_on('r-mvtnorm', type=('build', 'run')) - depends_on('r-survival', type=('build', 'run')) - depends_on('r-thdata', type=('build', 'run')) - depends_on('r-sandwich', type=('build', 'run')) + depends_on('r-mvtnorm@1.0-3:', type=('build', 'run')) + depends_on('r-survival@2.39-4:', type=('build', 'run')) + depends_on('r-th-data@1.0-2:', type=('build', 'run')) + depends_on('r-sandwich@2.3-0:', type=('build', 'run')) depends_on('r-codetools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-nlme/package.py b/var/spack/repos/builtin/packages/r-nlme/package.py index 869e03ab51..32fa484f60 100644 --- a/var/spack/repos/builtin/packages/r-nlme/package.py +++ b/var/spack/repos/builtin/packages/r-nlme/package.py @@ -29,9 +29,10 @@ class RNlme(RPackage): """Fit and compare Gaussian linear and nonlinear mixed-effects models.""" homepage = "https://cran.r-project.org/package=nlme" - url = "https://cran.r-project.org/src/contrib/nlme_3.1-128.tar.gz" + url = "https://cran.r-project.org/src/contrib/nlme_3.1-130.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/nlme" + version('3.1-130', '1935d6e308a8018ed8e45d25c8731288') version('3.1-128', '3d75ae7380bf123761b95a073eb55008') depends_on('r-lattice', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-numderiv/package.py b/var/spack/repos/builtin/packages/r-numderiv/package.py new file mode 100644 index 0000000000..135c4f4141 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-numderiv/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 RNumderiv(RPackage): + """Methods for calculating (usually) accurate numerical first and + second order derivatives.""" + + homepage = "https://cran.r-project.org/package=numDeriv" + url = "https://cran.r-project.org/src/contrib/numDeriv_2016.8-1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/numDeriv" + + version('2016.8-1', '30e486298d5126d86560095be8e8aac1') + + depends_on('r@2.11.1:') diff --git a/var/spack/repos/builtin/packages/r-openssl/package.py b/var/spack/repos/builtin/packages/r-openssl/package.py index bf9f38be72..8b20482c32 100644 --- a/var/spack/repos/builtin/packages/r-openssl/package.py +++ b/var/spack/repos/builtin/packages/r-openssl/package.py @@ -38,9 +38,10 @@ class ROpenssl(RPackage): calculations on large multibyte integers.""" homepage = "https://github.com/jeroenooms/openssl#readme" - url = "https://cran.r-project.org/src/contrib/openssl_0.9.4.tar.gz" + url = "https://cran.r-project.org/src/contrib/openssl_0.9.6.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/openssl" + version('0.9.6', '7ef137929d9dd07db690d35db242ba4b') version('0.9.4', '82a890e71ed0e74499878bedacfb8ccb') - depends_on('openssl') + depends_on('openssl@1.0.1:') diff --git a/var/spack/repos/builtin/packages/r-pacman/package.py b/var/spack/repos/builtin/packages/r-pacman/package.py new file mode 100644 index 0000000000..a51633fbb4 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-pacman/package.py @@ -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 RPacman(RPackage): + """Tools to more conveniently perform tasks associated with add-on + packages. pacman conveniently wraps library and package related functions + and names them in an intuitive and consistent fashion. It seeks to combine + functionality from lower level functions which can speed up workflow.""" + + homepage = "https://cran.r-project.org/package=pacman" + url = "https://cran.r-project.org/src/contrib/pacman_0.4.1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/pacman" + + version('0.4.1', 'bf18fe6d1407d31e00b337d9b07fb648') + + depends_on('r@3.0.2:') + + depends_on('r-devtools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-party/package.py b/var/spack/repos/builtin/packages/r-party/package.py new file mode 100644 index 0000000000..23f66ca4a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-party/package.py @@ -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 RParty(RPackage): + """A computational toolbox for recursive partitioning.""" + + homepage = "https://cran.r-project.org/web/packages/party/index.html" + url = "https://cran.r-project.org/src/contrib/party_1.1-2.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/party" + + version('1.1-2', '40a00336cf8418042d2ab616675c8ddf') + + depends_on('r@2.14.0:') + + depends_on('r-mvtnorm@1.0-2:', type=('build', 'run')) + depends_on('r-modeltools@0.1-21:', type=('build', 'run')) + depends_on('r-strucchange', type=('build', 'run')) + depends_on('r-survival@2.37-7:', type=('build', 'run')) + depends_on('r-coin@1.1-0:', type=('build', 'run')) + depends_on('r-zoo', type=('build', 'run')) + depends_on('r-sandwich@1.1-1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-pbkrtest/package.py b/var/spack/repos/builtin/packages/r-pbkrtest/package.py index 2d51d2b958..2a2edc50ce 100644 --- a/var/spack/repos/builtin/packages/r-pbkrtest/package.py +++ b/var/spack/repos/builtin/packages/r-pbkrtest/package.py @@ -37,7 +37,10 @@ class RPbkrtest(RPackage): list_url = "https://cran.r-project.org/src/contrib/Archive/pbkrtest" version('0.4-6', '0a7d9ff83b8d131af9b2335f35781ef9') + version('0.4-4', '5e54b1b1b35413dd1d24ef15735ec645') - depends_on('r-lme4', type=('build', 'run')) - depends_on('r-matrix', type=('build', 'run')) + depends_on('r@3.2.3:') + + depends_on('r-lme4@1.1.10:', type=('build', 'run')) + depends_on('r-matrix@1.2.3:', type=('build', 'run')) depends_on('r-mass', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-plotrix/package.py b/var/spack/repos/builtin/packages/r-plotrix/package.py index 8a17c72f91..0cd3423f73 100644 --- a/var/spack/repos/builtin/packages/r-plotrix/package.py +++ b/var/spack/repos/builtin/packages/r-plotrix/package.py @@ -29,7 +29,8 @@ class RPlotrix(RPackage): """Lots of plots, various labeling, axis and color scaling functions.""" homepage = "https://cran.r-project.org/package=plotrix" - url = "https://cran.r-project.org/src/contrib/plotrix_3.6-3.tar.gz" + url = "https://cran.r-project.org/src/contrib/plotrix_3.6-4.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/plotrix" + version('3.6-4', 'efe9b9b093d8903228a9b56c46d943fa') version('3.6-3', '23e3e022a13a596e9b77b40afcb4a2ef') diff --git a/var/spack/repos/builtin/packages/r-pls/package.py b/var/spack/repos/builtin/packages/r-pls/package.py new file mode 100644 index 0000000000..ddb18ff42e --- /dev/null +++ b/var/spack/repos/builtin/packages/r-pls/package.py @@ -0,0 +1,39 @@ +############################################################################## +# 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 RPls(RPackage): + """Multivariate regression methods Partial Least Squares Regression (PLSR), + Principal Component Regression (PCR) and Canonical Powered Partial Least + Squares (CPPLS).""" + + homepage = "https://cran.r-project.org/package=pls" + url = "https://cran.r-project.org/src/contrib/pls_2.6-0.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/pls" + + version('2.6-0', '04e02e8e46d983c5ed53c1f952b329df') + + depends_on('r@2.10:') diff --git a/var/spack/repos/builtin/packages/r-prodlim/package.py b/var/spack/repos/builtin/packages/r-prodlim/package.py new file mode 100644 index 0000000000..5219578d94 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-prodlim/package.py @@ -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 RProdlim(RPackage): + """Product-Limit Estimation for Censored Event History Analysis. Fast and + user friendly implementation of nonparametric estimators for censored event + history (survival) analysis. Kaplan-Meier and Aalen-Johansen method.""" + + homepage = "https://cran.r-project.org/package=prodlim" + url = "https://cran.r-project.org/src/contrib/prodlim_1.5.9.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/prodlim" + + version('1.5.9', 'e0843053c9270e41b657a733d6675dc9') + + depends_on('r@2.9.0:') + + depends_on('r-rcpp@0.11.5:', type=('build', 'run')) + depends_on('r-survival', type=('build', 'run')) + depends_on('r-kernsmooth', type=('build', 'run')) + depends_on('r-lava', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-quantreg/package.py b/var/spack/repos/builtin/packages/r-quantreg/package.py index 2d5091ccaf..c9bdaefa44 100644 --- a/var/spack/repos/builtin/packages/r-quantreg/package.py +++ b/var/spack/repos/builtin/packages/r-quantreg/package.py @@ -34,9 +34,10 @@ class RQuantreg(RPackage): included.""" homepage = "https://cran.r-project.org/package=quantreg" - url = "https://cran.r-project.org/src/contrib/quantreg_5.26.tar.gz" + url = "https://cran.r-project.org/src/contrib/quantreg_5.29.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/quantreg" + version('5.29', '643ca728200d13f8c2e62365204e9907') version('5.26', '1d89ed932fb4d67ae2d5da0eb8c2989f') depends_on('r-sparsem', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-r6/package.py b/var/spack/repos/builtin/packages/r-r6/package.py index e64a8a6532..700771f40f 100644 --- a/var/spack/repos/builtin/packages/r-r6/package.py +++ b/var/spack/repos/builtin/packages/r-r6/package.py @@ -34,7 +34,10 @@ class RR6(RPackage): classes are defined in different packages.""" homepage = "https://github.com/wch/R6/" - url = "https://cran.r-project.org/src/contrib/R6_2.1.2.tar.gz" + url = "https://cran.r-project.org/src/contrib/R6_2.2.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/R6" + version('2.2.0', '659d83b2d3f7a308a48332b4cfbdab49') version('2.1.2', 'b6afb9430e48707be87638675390e457') + + depends_on('r@3.0:') diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py index b447dea8bd..5b89324970 100644 --- a/var/spack/repos/builtin/packages/r-rcpp/package.py +++ b/var/spack/repos/builtin/packages/r-rcpp/package.py @@ -37,8 +37,9 @@ class RRcpp(RPackage): last two.""" homepage = "http://dirk.eddelbuettel.com/code/rcpp.html" - url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.6.tar.gz" + url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.9.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/Rcpp" + version('0.12.9', '691c49b12794507288b728ede03668a5') version('0.12.6', 'db4280fb0a79cd19be73a662c33b0a8b') version('0.12.5', 'f03ec05b4e391cc46e7ce330e82ff5e2') diff --git a/var/spack/repos/builtin/packages/r-rcppeigen/package.py b/var/spack/repos/builtin/packages/r-rcppeigen/package.py index 23ec0bc27b..b33e938d5b 100644 --- a/var/spack/repos/builtin/packages/r-rcppeigen/package.py +++ b/var/spack/repos/builtin/packages/r-rcppeigen/package.py @@ -41,9 +41,10 @@ class RRcppeigen(RPackage): GNU GPL version 2 or later, as is the rest of 'Rcpp'.""" homepage = "http://eigen.tuxfamily.org/" - url = "https://cran.r-project.org/src/contrib/RcppEigen_0.3.2.8.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/RcppEigen_0.3.2.9.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/RcppEigen" + version('0.3.2.9.0', '14a7786882a5d9862d53c4b2217df318') version('0.3.2.8.1', '4146e06e4fdf7f4d08db7839069d479f') depends_on('r-matrix', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-reshape2/package.py b/var/spack/repos/builtin/packages/r-reshape2/package.py index d27231e139..ca65e006dc 100644 --- a/var/spack/repos/builtin/packages/r-reshape2/package.py +++ b/var/spack/repos/builtin/packages/r-reshape2/package.py @@ -30,9 +30,10 @@ class RReshape2(RPackage): and dcast (or acast).""" homepage = "https://github.com/hadley/reshape" - url = "https://cran.r-project.org/src/contrib/reshape2_1.4.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/reshape2_1.4.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/reshape2" + version('1.4.2', 'c851a0312191b8c5bab956445df7cf5f') version('1.4.1', '41e9dffdf5c6fa830321ac9c8ebffe00') depends_on('r-plyr', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rminer/package.py b/var/spack/repos/builtin/packages/r-rminer/package.py new file mode 100644 index 0000000000..b22612a238 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rminer/package.py @@ -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 RRminer(RPackage): + """Facilitates the use of data mining algorithms in classification and + regression (including time series forecasting) tasks by presenting a short + and coherent set of functions.""" + + homepage = "http://www3.dsi.uminho.pt/pcortez/rminer.html" + url = "https://cran.r-project.org/src/contrib/rminer_1.4.2.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/rminer" + + version('1.4.2', '7d5d90f4ae030cf647d67aa962412c05') + + depends_on('r-plotrix', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-nnet', type=('build', 'run')) + depends_on('r-kknn', type=('build', 'run')) + depends_on('r-pls', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-mda', type=('build', 'run')) + depends_on('r-rpart', type=('build', 'run')) + depends_on('r-randomforest', type=('build', 'run')) + depends_on('r-adabag', type=('build', 'run')) + depends_on('r-party', type=('build', 'run')) + depends_on('r-cubist', type=('build', 'run')) + depends_on('r-kernlab', type=('build', 'run')) + depends_on('r-e1071', type=('build', 'run')) + depends_on('r-glmnet', type=('build', 'run')) + depends_on('r-xgboost', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rpart-plot/package.py b/var/spack/repos/builtin/packages/r-rpart-plot/package.py new file mode 100644 index 0000000000..d7d40f2154 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rpart-plot/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 RRpartPlot(RPackage): + """Plot 'rpart' models. Extends plot.rpart() and text.rpart() in the + 'rpart' package.""" + + homepage = "https://cran.r-project.org/package=rpart.plot" + url = "https://cran.r-project.org/src/contrib/rpart.plot_2.1.0.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/rpart.plot" + + version('2.1.0', 'fb0f8edfe22c464683ee82aa429136f9') + + depends_on('r-rpart@4.1-0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rpart/package.py b/var/spack/repos/builtin/packages/r-rpart/package.py new file mode 100644 index 0000000000..a81c9d7d91 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rpart/package.py @@ -0,0 +1,38 @@ +############################################################################## +# 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 RRpart(RPackage): + """Recursive partitioning for classification, regression and + survival trees.""" + + homepage = "https://cran.r-project.org/package=rpart" + url = "https://cran.r-project.org/src/contrib/rpart_4.1-10.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/rpart" + + version('4.1-10', '15873cded4feb3ef44d63580ba3ca46e') + + depends_on('r@2.15.0:') diff --git a/var/spack/repos/builtin/packages/r-sandwich/package.py b/var/spack/repos/builtin/packages/r-sandwich/package.py index 62bd2880e5..bae8e82d68 100644 --- a/var/spack/repos/builtin/packages/r-sandwich/package.py +++ b/var/spack/repos/builtin/packages/r-sandwich/package.py @@ -35,4 +35,6 @@ class RSandwich(RPackage): version('2.3-4', 'a621dbd8a57b6e1e036496642aadc2e5') + depends_on('r@2.0.0:') + depends_on('r-zoo', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-scales/package.py b/var/spack/repos/builtin/packages/r-scales/package.py index e3832f78e0..e88ef144cf 100644 --- a/var/spack/repos/builtin/packages/r-scales/package.py +++ b/var/spack/repos/builtin/packages/r-scales/package.py @@ -30,9 +30,10 @@ class RScales(RPackage): automatically determining breaks and labels for axes and legends.""" homepage = "https://github.com/hadley/scales" - url = "https://cran.r-project.org/src/contrib/scales_0.4.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/scales_0.4.1.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/scales" + version('0.4.1', '3fb2218866a7fe4c1f6e66790876f85a') version('0.4.0', '7b5602d9c55595901192248bca25c099') depends_on('r-rcolorbrewer', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-sparsem/package.py b/var/spack/repos/builtin/packages/r-sparsem/package.py index 370497e395..bcd11a5c1f 100644 --- a/var/spack/repos/builtin/packages/r-sparsem/package.py +++ b/var/spack/repos/builtin/packages/r-sparsem/package.py @@ -31,7 +31,8 @@ class RSparsem(RPackage): subsetting and Kronecker products.""" homepage = "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html" - url = "https://cran.r-project.org/src/contrib/SparseM_1.7.tar.gz" + url = "https://cran.r-project.org/src/contrib/SparseM_1.74.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/SparseM" - version('1.7', '7b5b0ab166a0929ef6dcfe1d97643601') + version('1.74', 'a16c9b7db172dfd2b7b6508c48e81a5d') + version('1.7', '7b5b0ab166a0929ef6dcfe1d97643601') diff --git a/var/spack/repos/builtin/packages/r-stringi/package.py b/var/spack/repos/builtin/packages/r-stringi/package.py index d89238f3d7..b116c328f5 100644 --- a/var/spack/repos/builtin/packages/r-stringi/package.py +++ b/var/spack/repos/builtin/packages/r-stringi/package.py @@ -37,9 +37,10 @@ class RStringi(RPackage): etc.""" homepage = "http://www.gagolewski.com/software/stringi/" - url = "https://cran.r-project.org/src/contrib/stringi_1.1.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/stringi_1.1.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/stringi" + version('1.1.2', '0ec2faa62643e1900734c0eaf5096648') version('1.1.1', '32b919ee3fa8474530c4942962a6d8d9') depends_on('icu4c') diff --git a/var/spack/repos/builtin/packages/r-stringr/package.py b/var/spack/repos/builtin/packages/r-stringr/package.py index de8d83b500..4accd04e51 100644 --- a/var/spack/repos/builtin/packages/r-stringr/package.py +++ b/var/spack/repos/builtin/packages/r-stringr/package.py @@ -33,9 +33,10 @@ class RStringr(RPackage): into the input of another.""" homepage = "https://cran.r-project.org/web/packages/stringr/index.html" - url = "https://cran.r-project.org/src/contrib/stringr_1.0.0.tar.gz" + url = "https://cran.r-project.org/src/contrib/stringr_1.1.0.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/stringr" + version('1.1.0', '47973a33944c6d5db9524b1e835b8a5d') version('1.0.0', '5ca977c90351f78b1b888b379114a7b4') depends_on('r-stringi', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-strucchange/package.py b/var/spack/repos/builtin/packages/r-strucchange/package.py new file mode 100644 index 0000000000..6d00d31402 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-strucchange/package.py @@ -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 RStrucchange(RPackage): + """Testing, monitoring and dating structural changes in (linear) + regression models.""" + + homepage = "https://cran.r-project.org/package=strucchange" + url = "https://cran.r-project.org/src/contrib/strucchange_1.5-1.tar.gz" + list_url = "https://cran.r-project.org/src/contrib/Archive/strucchange" + + version('1.5-1', 'fc751fc011df9c8df82d577298cb8395') + + depends_on('r@2.10.0:') + + depends_on('r-zoo', type=('build', 'run')) + depends_on('r-sandwich', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-survival/package.py b/var/spack/repos/builtin/packages/r-survival/package.py index 1df00f0c93..067cdcfd6b 100644 --- a/var/spack/repos/builtin/packages/r-survival/package.py +++ b/var/spack/repos/builtin/packages/r-survival/package.py @@ -31,9 +31,10 @@ class RSurvival(RPackage): models, and parametric accelerated failure time models.""" homepage = "https://cran.r-project.org/package=survival" - url = "https://cran.r-project.org/src/contrib/survival_2.39-5.tar.gz" + url = "https://cran.r-project.org/src/contrib/survival_2.40-1.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/survival" + version('2.40-1', 'a2474b656cd723791268e3114481b8a7') version('2.39-5', 'a3cc6b5762e8c5c0bb9e64a276710be2') depends_on('r-matrix', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-thdata/package.py b/var/spack/repos/builtin/packages/r-th-data/package.py index cf2b01e6e8..b9c5fab0d0 100644 --- a/var/spack/repos/builtin/packages/r-thdata/package.py +++ b/var/spack/repos/builtin/packages/r-th-data/package.py @@ -25,13 +25,14 @@ from spack import * -class RThdata(RPackage): +class RThData(RPackage): """Contains data sets used in other packages Torsten Hothorn maintains.""" homepage = "https://cran.r-project.org/package=TH.data" - url = "https://cran.r-project.org/src/contrib/TH.data_1.0-7.tar.gz" + url = "https://cran.r-project.org/src/contrib/TH.data_1.0-8.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/TH.data" + version('1.0-8', '2cc20acc8b470dff1202749b4bea55c4') version('1.0-7', '3e8b6b1a4699544f175215aed7039a94') depends_on('r-survival', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-tibble/package.py b/var/spack/repos/builtin/packages/r-tibble/package.py index 39dfc3893b..a06b33e7f2 100644 --- a/var/spack/repos/builtin/packages/r-tibble/package.py +++ b/var/spack/repos/builtin/packages/r-tibble/package.py @@ -30,11 +30,14 @@ class RTibble(RPackage): capabilities than traditional data frames.""" homepage = "https://github.com/hadley/tibble" - url = "https://cran.r-project.org/src/contrib/tibble_1.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/tibble_1.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/tibble" + version('1.2', 'bdbc3d67aa16860741add6d6ec20ea13') version('1.1', '2fe9f806109d0b7fadafb1ffafea4cb8') + depends_on('r@3.1.2:') + depends_on('r-assertthat', type=('build', 'run')) - depends_on('r-lazyeval', type=('build', 'run')) + depends_on('r-lazyeval@0.1.10:', type=('build', 'run')) depends_on('r-rcpp', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-withr/package.py b/var/spack/repos/builtin/packages/r-withr/package.py index 785050ed87..082b94e2a6 100644 --- a/var/spack/repos/builtin/packages/r-withr/package.py +++ b/var/spack/repos/builtin/packages/r-withr/package.py @@ -32,7 +32,10 @@ class RWithr(RPackage): dependencies to provide access to these functions.""" homepage = "http://github.com/jimhester/withr" - url = "https://cran.r-project.org/src/contrib/withr_1.0.1.tar.gz" + url = "https://cran.r-project.org/src/contrib/withr_1.0.2.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/withr" + version('1.0.2', 'ca52b729af9bbaa14fc8b7bafe38663c') version('1.0.1', 'ac38af2c6f74027c9592dd8f0acb7598') + + depends_on('r@3.0.2:') diff --git a/var/spack/repos/builtin/packages/r-xgboost/package.py b/var/spack/repos/builtin/packages/r-xgboost/package.py index 766191dcc1..4246d73e49 100644 --- a/var/spack/repos/builtin/packages/r-xgboost/package.py +++ b/var/spack/repos/builtin/packages/r-xgboost/package.py @@ -37,12 +37,19 @@ class RXgboost(RPackage): users are also allowed to define their own objectives easily.""" homepage = "https://github.com/dmlc/xgboost" - url = "https://cran.r-project.org/src/contrib/xgboost_0.4-4.tar.gz" + url = "https://cran.r-project.org/src/contrib/xgboost_0.6-4.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/xgboost" + version('0.6-4', '86e517e3ce39f8a01de796920f6b425e') version('0.4-4', 'c24d3076058101a71de4b8af8806697c') - depends_on('r-matrix', type=('build', 'run')) - depends_on('r-datatable', type=('build', 'run')) - depends_on('r-magrittr', type=('build', 'run')) + depends_on('r@3.3.0:') + + depends_on('r-matrix@1.1-0:', type=('build', 'run')) + depends_on('r-data-table@1.9.6:', type=('build', 'run')) + depends_on('r-magrittr@1.5:', type=('build', 'run')) + depends_on('r-stringi@0.5.2:', type=('build', 'run')) + + # This is not listed as required, but installation fails without it + # ERROR: dependency 'stringr' is not available for package 'xgboost' depends_on('r-stringr', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-zoo/package.py b/var/spack/repos/builtin/packages/r-zoo/package.py index 230c78a61a..7418d36a64 100644 --- a/var/spack/repos/builtin/packages/r-zoo/package.py +++ b/var/spack/repos/builtin/packages/r-zoo/package.py @@ -33,9 +33,10 @@ class RZoo(RPackage): methods to extend standard generics.""" homepage = "http://zoo.r-forge.r-project.org/" - url = "https://cran.r-project.org/src/contrib/zoo_1.7-13.tar.gz" + url = "https://cran.r-project.org/src/contrib/zoo_1.7-14.tar.gz" list_url = "https://cran.r-project.org/src/contrib/Archive/zoo" + version('1.7-14', '8c577a7c1e535c899ab14177b1039c32') version('1.7-13', '99521dfa4c668e692720cefcc5a1bf30') depends_on('r-lattice', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/readline/package.py b/var/spack/repos/builtin/packages/readline/package.py index ab9454b0fc..631a49183f 100644 --- a/var/spack/repos/builtin/packages/readline/package.py +++ b/var/spack/repos/builtin/packages/readline/package.py @@ -34,7 +34,7 @@ class Readline(AutotoolsPackage): recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.""" homepage = "http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" - url = "ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz" + url = "https://ftp.gnu.org/gnu/readline/readline-6.3.tar.gz" version('6.3', '33c8fb279e981274f485fd91da77e94a') diff --git a/var/spack/repos/builtin/packages/unixodbc/package.py b/var/spack/repos/builtin/packages/unixodbc/package.py index cba34b29c3..8ce11d27dd 100644 --- a/var/spack/repos/builtin/packages/unixodbc/package.py +++ b/var/spack/repos/builtin/packages/unixodbc/package.py @@ -31,6 +31,6 @@ class Unixodbc(AutotoolsPackage): SQL Servers and any Data Source with an ODBC Driver.""" homepage = "http://www.unixodbc.org/" - url = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz" + url = "http://www.unixodbc.org/unixODBC-2.3.4.tar.gz" version('2.3.4', 'bd25d261ca1808c947cb687e2034be81') diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py index 181302a34a..1d7515b4cf 100644 --- a/var/spack/repos/builtin/packages/util-macros/package.py +++ b/var/spack/repos/builtin/packages/util-macros/package.py @@ -31,6 +31,7 @@ class UtilMacros(AutotoolsPackage): of their configure scripts with autoconf.""" homepage = "http://cgit.freedesktop.org/xorg/util/macros/" - url = "https://www.x.org/archive/individual/util/util-macros-1.19.0.tar.bz2" + url = "https://www.x.org/archive/individual/util/util-macros-1.19.1.tar.bz2" + version('1.19.1', '6e76e546a4e580f15cebaf8019ef1625') version('1.19.0', '1cf984125e75f8204938d998a8b6c1e1') diff --git a/var/spack/repos/builtin/packages/xterm/package.py b/var/spack/repos/builtin/packages/xterm/package.py index a4977491ea..f4212021e9 100644 --- a/var/spack/repos/builtin/packages/xterm/package.py +++ b/var/spack/repos/builtin/packages/xterm/package.py @@ -31,7 +31,7 @@ class Xterm(AutotoolsPackage): that can't use the window system directly.""" homepage = "http://invisible-island.net/xterm/" - url = "ftp://invisible-island.net/xterm/xterm-327.tgz" + url = "http://invisible-island.net/xterm/xterm-327.tgz" version('327', '3c32e931adcad44e64e57892e75d9e02') |