summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/mpileaks/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ack/package.py51
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/package.py39
-rw-r--r--var/spack/repos/builtin/packages/atlas/package.py68
-rw-r--r--var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c49
-rw-r--r--var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output12
-rw-r--r--var/spack/repos/builtin/packages/kdiff3/package.py44
-rw-r--r--var/spack/repos/builtin/packages/libxau/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl/package.py75
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pytables/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-image/package.py1
-rw-r--r--var/spack/repos/builtin/packages/r-jsonlite/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-mime/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-rcpp/package.py3
-rw-r--r--var/spack/repos/builtin/packages/texlive/package.py57
17 files changed, 398 insertions, 26 deletions
diff --git a/var/spack/repos/builtin.mock/packages/mpileaks/package.py b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
index bc26f539ba..10fbf3845e 100644
--- a/var/spack/repos/builtin.mock/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Mpileaks(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
@@ -35,6 +36,8 @@ class Mpileaks(Package):
variant('debug', default=False, description='Debug variant')
variant('opt', default=False, description='Optimized variant')
+ variant('shared', default=True, description='Build shared library')
+ variant('static', default=True, description='Build static library')
depends_on("mpi")
depends_on("callpath")
diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py
new file mode 100644
index 0000000000..70249aebac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ack/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ack(Package):
+ """ack 2.14 is a tool like grep, optimized for programmers.
+
+ Designed for programmers with large heterogeneous trees of
+ source code, ack is written purely in portable Perl 5 and takes
+ advantage of the power of Perl's regular expressions."""
+
+ homepage = "http://beyondgrep.com/"
+ url = "http://beyondgrep.com/ack-2.14-single-file"
+
+ version('2.14', 'e74150a1609d28a70b450ef9cc2ed56b', expand=False)
+
+ depends_on('perl')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ ack = 'ack-{0}-single-file'.format(self.version)
+
+ # rewrite the script's #! line to call the perl dependency
+ shbang = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
+ filter_file(r'^#!/usr/bin/env perl', shbang, ack)
+
+ install(ack, join_path(prefix.bin, "ack"))
+ set_executable(join_path(prefix.bin, "ack"))
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index d5dc703c06..2874930cdd 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -86,10 +86,19 @@ class ArpackNg(Package):
options.extend(std_cmake_args)
options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
- # TODO:
- # Arpack calls directly find_package(BLAS REQUIRED) and
- # find_package(LAPACK REQUIRED). Make sure correct Blas/Lapack are
- # picked up.
+ # Make sure we use Spack's blas/lapack:
+ options.extend([
+ '-DLAPACK_FOUND=true',
+ '-DLAPACK_INCLUDE_DIRS=%s' % spec['lapack'].prefix.include,
+ '-DLAPACK_LIBRARIES=%s' % (
+ spec['lapack'].lapack_shared_lib if '+shared' in spec else
+ spec['lapack'].lapack_static_lib),
+ '-DBLAS_FOUND=true',
+ '-DBLAS_INCLUDE_DIRS=%s' % spec['blas'].prefix.include,
+ '-DBLAS_LIBRARIES=%s' % (
+ spec['blas'].blas_shared_lib if '+shared' in spec else
+ spec['blas'].blas_static_lib)
+ ])
if '+mpi' in spec:
options.append('-DMPI=ON')
@@ -101,9 +110,8 @@ class ArpackNg(Package):
cmake('.', *options)
make()
- # TODO: make test does not work
- # make('test')
-
+ if self.run_tests:
+ make('test')
make('install')
@when('@3.3.0')
@@ -120,10 +128,23 @@ class ArpackNg(Package):
'F77=%s' % spec['mpi'].mpif77
])
- if '~shared' in spec:
- options.append('--enable-shared=no')
+ if '+shared' in spec:
+ options.extend([
+ '--with-blas=%s' % to_link_flags(
+ spec['blas'].blas_shared_lib),
+ '--with-lapack=%s' % to_link_flags(
+ spec['lapack'].lapack_shared_lib)
+ ])
+ else:
+ options.extend([
+ '--with-blas=%s' % spec['blas'].blas_static_lib,
+ '--with-lapack=%s' % spec['lapack'].lapack_static_lib,
+ '--enable-shared=no'
+ ])
bootstrap()
configure(*options)
make()
+ if self.run_tests:
+ make('check')
make('install')
diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py
index c43d92c34f..f9d5da6166 100644
--- a/var/spack/repos/builtin/packages/atlas/package.py
+++ b/var/spack/repos/builtin/packages/atlas/package.py
@@ -23,20 +23,24 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+from spack.package_test import *
from spack.util.executable import Executable
import os.path
+
class Atlas(Package):
- """
- Automatically Tuned Linear Algebra Software, generic shared ATLAS is an approach for the automatic generation and
- optimization of numerical software. Currently ATLAS supplies optimized versions for the complete set of linear
- algebra kernels known as the Basic Linear Algebra Subroutines (BLAS), and a subset of the linear algebra routines
- in the LAPACK library.
+ """Automatically Tuned Linear Algebra Software, generic shared ATLAS is an
+ approach for the automatic generation and optimization of numerical
+ software. Currently ATLAS supplies optimized versions for the complete set
+ of linear algebra kernels known as the Basic Linear Algebra Subroutines
+ (BLAS), and a subset of the linear algebra routines in the LAPACK library.
"""
homepage = "http://math-atlas.sourceforge.net/"
version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
- url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
+ url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.2/atlas3.10.2.tar.bz2', preferred=True)
+ # not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
+ # Lapack routines. Stick with 3.5.0 until this is fixed.
resource(name='lapack',
url='http://www.netlib.org/lapack/lapack-3.5.0.tgz',
md5='b1d3e3e425b2e44a06760ff173104bdf',
@@ -44,7 +48,7 @@ class Atlas(Package):
when='@3:')
version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
- url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
+ url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2')
variant('shared', default=True, description='Builds shared library')
@@ -66,9 +70,24 @@ class Atlas(Package):
options = []
if '+shared' in spec:
- options.append('--shared')
+ options.extend([
+ '--shared'
+ ])
+ # TODO: for non GNU add '-Fa', 'alg', '-fPIC' ?
+
+ # configure for 64-bit build
+ options.extend([
+ '-b', '64'
+ ])
- # Lapack resource
+ # set compilers:
+ options.extend([
+ '-C', 'ic', spack_cc,
+ '-C', 'if', spack_f77
+ ])
+
+ # Lapack resource to provide full lapack build. Note that
+ # ATLAS only provides a few LAPACK routines natively.
lapack_stage = self.stage[1]
lapack_tarfile = os.path.basename(lapack_stage.fetcher.url)
lapack_tarfile_path = join_path(lapack_stage.path, lapack_tarfile)
@@ -81,4 +100,35 @@ class Atlas(Package):
make('check')
make('ptcheck')
make('time')
+ if '+shared' in spec:
+ with working_dir('lib'):
+ make('shared_all')
+
make("install")
+ self.install_test()
+
+ def setup_dependent_package(self, module, dspec):
+ # libsatlas.[so,dylib,dll ] contains all serial APIs (serial lapack,
+ # serial BLAS), and all ATLAS symbols needed to support them. Whereas
+ # libtatlas.[so,dylib,dll ] is parallel (multithreaded) version.
+ name = 'libsatlas.%s' % dso_suffix
+ libdir = find_library_path(name,
+ self.prefix.lib64,
+ self.prefix.lib)
+
+ if '+shared' in self.spec:
+ self.spec.blas_shared_lib = join_path(libdir, name)
+ self.spec.lapack_shared_lib = self.spec.blas_shared_lib
+
+ def install_test(self):
+ source_file = join_path(os.path.dirname(self.module.__file__),
+ 'test_cblas_dgemm.c')
+ blessed_file = join_path(os.path.dirname(self.module.__file__),
+ 'test_cblas_dgemm.output')
+
+ include_flags = ["-I%s" % join_path(self.spec.prefix, "include")]
+ link_flags = ["-L%s" % join_path(self.spec.prefix, "lib"),
+ "-lsatlas"]
+
+ output = compile_c_and_execute(source_file, include_flags, link_flags)
+ compare_output_file(output, blessed_file)
diff --git a/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
new file mode 100644
index 0000000000..2cb90fb883
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.c
@@ -0,0 +1,49 @@
+#include <cblas.h>
+#include <stdio.h>
+
+double m[] = {
+ 3, 1, 3,
+ 1, 5, 9,
+ 2, 6, 5
+};
+
+double x[] = {
+ -1, 3, -3
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ void dgesv_(int *n, int *nrhs, double *a, int *lda,
+ int *ipivot, double *b, int *ldb, int *info);
+
+#ifdef __cplusplus
+}
+#endif
+
+int main(void) {
+ int i;
+ // blas:
+ double A[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
+ double B[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0};
+ double C[9] = {.5, .5, .5, .5, .5, .5, .5, .5, .5};
+ cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans,
+ 3, 3, 2, 1, A, 3, B, 3, 2, C, 3);
+ for (i = 0; i < 9; i++)
+ printf("%f\n", C[i]);
+
+ // lapack:
+ int ipiv[3];
+ int j;
+ int info;
+ int n = 1;
+ int nrhs = 1;
+ int lda = 3;
+ int ldb = 3;
+ dgesv_(&n,&nrhs, &m[0], &lda, ipiv, &x[0], &ldb, &info);
+ for (i=0; i<3; ++i)
+ printf("%5.1f\n", x[i]);
+
+ return 0;
+}
diff --git a/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output
new file mode 100644
index 0000000000..01404462c4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atlas/test_cblas_dgemm.output
@@ -0,0 +1,12 @@
+11.000000
+-9.000000
+5.000000
+-9.000000
+21.000000
+-1.000000
+5.000000
+-1.000000
+3.000000
+ -0.3
+ 3.0
+ -3.0
diff --git a/var/spack/repos/builtin/packages/kdiff3/package.py b/var/spack/repos/builtin/packages/kdiff3/package.py
new file mode 100644
index 0000000000..48f4b9c379
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kdiff3/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 Kdiff3(Package):
+ """Compare and merge 2 or 3 files or directories."""
+ homepage = "http://kdiff3.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/kdiff3/kdiff3/0.9.98/kdiff3-0.9.98.tar.gz"
+
+ version('0.9.98', 'b52f99f2cf2ea75ed5719315cbf77446')
+
+ depends_on("qt@5.2.0:")
+
+ def install(self, spec, prefix):
+ # make is done inside
+ configure('qt4')
+
+ # there is no make install, bummer...
+ mkdirp(self.prefix.bin)
+ install(join_path(self.stage.source_path, 'releaseQt', 'kdiff3'),
+ self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/libxau/package.py b/var/spack/repos/builtin/packages/libxau/package.py
index 55816ecdbd..b9215bc601 100644
--- a/var/spack/repos/builtin/packages/libxau/package.py
+++ b/var/spack/repos/builtin/packages/libxau/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Libxau(Package):
"""The libXau package contains a library implementing the X11
Authorization Protocol. This is useful for restricting client
@@ -34,11 +35,10 @@ class Libxau(Package):
version('1.0.8', '685f8abbffa6d145c0f930f00703b21b')
depends_on('xproto')
+ depends_on('pkg-config', type='build')
def install(self, spec, prefix):
- # FIXME: Modify the configure line to suit your build system here.
configure('--prefix=%s' % prefix)
- # FIXME: Add logic to build and install here
make()
make("install")
diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py
new file mode 100644
index 0000000000..d71a7492ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# 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
+##############################################################################
+#
+# Author: George Hartzell <hartzell@alerce.com>
+# Date: July 21, 2016
+# Author: Justin Too <justin@doubleotoo.com>
+# Date: September 6, 2015
+#
+from spack import *
+
+
+class Perl(Package):
+ """Perl 5 is a highly capable, feature-rich programming language with over
+ 27 years of development."""
+ homepage = "http://www.perl.org"
+ url = "http://www.cpan.org/src/5.0/perl-5.22.2.tar.gz"
+
+ version('5.24.0', 'c5bf7f3285439a2d3b6a488e14503701')
+ version('5.22.2', '5767e2a10dd62a46d7b57f74a90d952b')
+ version('5.20.3', 'd647d0ea5a7a8194c34759ab9f2610cd')
+ # 5.18.4 fails with gcc-5
+ # https://rt.perl.org/Public/Bug/Display.html?id=123784
+ # version('5.18.4' , '1f9334ff730adc05acd3dd7130d295db')
+
+ # Installing cpanm alongside the core makes it safe and simple for
+ # people/projects to install their own sets of perl modules. Not
+ # having it in core increases the "energy of activation" for doing
+ # things cleanly.
+ variant('cpanm', default=True,
+ description='Optionally install cpanm with the core packages.')
+
+ resource(
+ name="cpanm",
+ url="http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7042.tar.gz",
+ md5="e87f55fbcb3c13a4754500c18e89219f",
+ destination="cpanm",
+ placement="cpanm"
+ )
+
+ def install(self, spec, prefix):
+ configure = Executable('./Configure')
+ configure("-des", "-Dprefix=" + prefix)
+ make()
+ if self.run_tests:
+ make("test")
+ make("install")
+
+ if '+cpanm' in spec:
+ with working_dir(join_path('cpanm', 'cpanm')):
+ perl = Executable(join_path(prefix.bin, 'perl'))
+ perl('Makefile.PL')
+ make()
+ make('install')
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index f96cb9b4cd..90a67c51bd 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -43,6 +43,7 @@ class PyH5py(Package):
# Build dependencies
depends_on('py-cython@0.19:', type='build')
depends_on('pkg-config', type='build')
+ depends_on('py-setuptools', type='build')
depends_on('hdf5@1.8.4:')
depends_on('hdf5+mpi', when='+mpi')
depends_on('mpi', when='+mpi')
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index d545717628..79ad420f8f 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -24,8 +24,10 @@
##############################################################################
from spack import *
+
class PyNetworkx(Package):
- """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks."""
+ """NetworkX is a Python package for the creation, manipulation, and study
+ of the structure, dynamics, and functions of complex networks."""
homepage = "http://networkx.github.io/"
url = "https://pypi.python.org/packages/source/n/networkx/networkx-1.11.tar.gz"
@@ -34,6 +36,7 @@ class PyNetworkx(Package):
extends('python')
depends_on('py-decorator', type=nolink)
+ depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py
index 58ed067b21..f87e74211f 100644
--- a/var/spack/repos/builtin/packages/py-pytables/package.py
+++ b/var/spack/repos/builtin/packages/py-pytables/package.py
@@ -23,10 +23,11 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import re
+
class PyPytables(Package):
- """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data."""
+ """PyTables is a package for managing hierarchical datasets and designed to
+ efficiently and easily cope with extremely large amounts of data."""
homepage = "http://www.pytables.org/"
url = "https://github.com/PyTables/PyTables/archive/v.3.2.2.tar.gz"
@@ -37,6 +38,7 @@ class PyPytables(Package):
depends_on('py-numpy', type=nolink)
depends_on('py-numexpr', type=nolink)
depends_on('py-cython', type=nolink)
+ depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
env["HDF5_DIR"] = spec['hdf5'].prefix
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index 26c286e4be..fbeb5c95ca 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -42,6 +42,7 @@ class PyScikitImage(Package):
depends_on('py-six', type=nolink)
depends_on('py-scipy', type=nolink)
depends_on('py-matplotlib', type=nolink)
+ depends_on('py-setuptools', type='build')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/r-jsonlite/package.py b/var/spack/repos/builtin/packages/r-jsonlite/package.py
index 6e231ed345..d1cb4b52c1 100644
--- a/var/spack/repos/builtin/packages/r-jsonlite/package.py
+++ b/var/spack/repos/builtin/packages/r-jsonlite/package.py
@@ -38,9 +38,10 @@ class RJsonlite(Package):
use with dynamic data in systems and applications."""
homepage = "https://github.com/jeroenooms/jsonlite"
- url = "https://cran.r-project.org/src/contrib/jsonlite_0.9.21.tar.gz"
+ url = "https://cran.r-project.org/src/contrib/jsonlite_1.0.tar.gz"
list_url = "https://cran.r-project.org/src/contrib/Archive/jsonlite"
+ version('1.0', 'c8524e086de22ab39b8ac8000220cc87')
version('0.9.21', '4fc382747f88a79ff0718a0d06bed45d')
extends('R')
diff --git a/var/spack/repos/builtin/packages/r-mime/package.py b/var/spack/repos/builtin/packages/r-mime/package.py
index fb079f44c5..5e78889a76 100644
--- a/var/spack/repos/builtin/packages/r-mime/package.py
+++ b/var/spack/repos/builtin/packages/r-mime/package.py
@@ -30,9 +30,10 @@ class RMime(Package):
from /etc/mime.types in UNIX-type systems."""
homepage = "https://github.com/yihui/mime"
- url = "https://cran.r-project.org/src/contrib/mime_0.4.tar.gz"
+ url = "https://cran.r-project.org/src/contrib/mime_0.5.tar.gz"
list_url = "https://cran.r-project.org/src/contrib/Archive/mime"
+ version('0.5', '87e00b6d57b581465c19ae869a723c4d')
version('0.4', '789cb33e41db2206c6fc7c3e9fbc2c02')
extends('R')
diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py
index 2428f4af3b..94580a8700 100644
--- a/var/spack/repos/builtin/packages/r-rcpp/package.py
+++ b/var/spack/repos/builtin/packages/r-rcpp/package.py
@@ -37,9 +37,10 @@ class RRcpp(Package):
last two."""
homepage = "http://dirk.eddelbuettel.com/code/rcpp.html"
- url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.5.tar.gz"
+ url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.6.tar.gz"
list_url = "https://cran.r-project.org/src/contrib/Archive/Rcpp"
+ version('0.12.6', 'db4280fb0a79cd19be73a662c33b0a8b')
version('0.12.5', 'f03ec05b4e391cc46e7ce330e82ff5e2')
extends('R')
diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py
new file mode 100644
index 0000000000..d44a6e311e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/texlive/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Texlive(Package):
+ """TeX Live is a free software distribution for the TeX typesetting
+ system"""
+
+ homepage = "http://www.tug.org/texlive"
+
+ version('live', 'e671eea7f142c438959493cc42a2a59b', url="http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz")
+
+ # There does not seem to be a complete list of schemes.
+ # Examples include:
+ # full scheme (everything)
+ # medium scheme (small + more packages and languages)
+ # small scheme (basic + xetex, metapost, a few languages)
+ # basic scheme (plain and latex)
+ # minimal scheme (plain only)
+ # See:
+ # https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-25025r6
+ variant('scheme', default="small",
+ description='Package subset to install (e.g. full, small, basic)')
+
+ depends_on('perl')
+
+ def install(self, spec, prefix):
+ env = os.environ
+ env['TEXLIVE_INSTALL_PREFIX'] = prefix
+ perl = which('perl')
+ scheme = spec.variants['scheme'].value
+ perl('./install-tl', '-scheme', scheme,
+ '-portable', '-profile', '/dev/null')