diff options
Diffstat (limited to 'var')
703 files changed, 27042 insertions, 2398 deletions
diff --git a/var/spack/repos/builtin.mock/packages/develop-test/package.py b/var/spack/repos/builtin.mock/packages/develop-test/package.py new file mode 100644 index 0000000000..0c693c60fb --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/develop-test/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 DevelopTest(Package): + """Dummy package with develop version""" + homepage = "http://www.openblas.net" + url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz" + + version('develop', git='https://github.com/dummy/repo.git') + version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9') + + def install(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py index 1f3553014b..6310a17bc9 100644 --- a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py +++ b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py @@ -31,8 +31,10 @@ class Externalvirtual(Package): version('1.0', '1234567890abcdef1234567890abcdef') version('2.0', '234567890abcdef1234567890abcdef1') + version('2.1', '34567890abcdef1234567890abcdef12') + version('2.2', '4567890abcdef1234567890abcdef123') - provides('stuff') + provides('stuff', when='@1.0:') def install(self, spec, prefix): pass diff --git a/var/spack/repos/builtin.mock/packages/othervirtual/package.py b/var/spack/repos/builtin.mock/packages/othervirtual/package.py new file mode 100644 index 0000000000..83bc07df98 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/othervirtual/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 Othervirtual(Package): + homepage = "http://somewhere.com" + url = "http://somewhere.com/stuff-1.0.tar.gz" + + version('1.0', '67890abcdef1234567890abcdef12345') + + provides('stuff') + + def install(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin/packages/ImageMagick/package.py b/var/spack/repos/builtin/packages/ImageMagick/package.py index b0ccba1009..0b474285ce 100644 --- a/var/spack/repos/builtin/packages/ImageMagick/package.py +++ b/var/spack/repos/builtin/packages/ImageMagick/package.py @@ -26,38 +26,32 @@ from spack import * class Imagemagick(Package): - """ImageMagick is a image processing library""" - homepage = "http://www.imagemagic.org" + """ImageMagick is a software suite to create, edit, compose, + or convert bitmap images.""" - # ------------------------------------------------------------------------- - # ImageMagick does not keep around anything but *-10 versions, so - # this URL may change. If you want the bleeding edge, you can - # uncomment it and see if it works but you may need to try to - # fetch a newer version (-6, -7, -8, -9, etc.) or you can stick - # wtih the older, stable, archived -10 versions below. - # - # TODO: would be nice if spack had a way to recommend avoiding a - # TODO: bleeding edge version, but not comment it out. - # ------------------------------------------------------------------------- - # version('6.9.0-6', 'c1bce7396c22995b8bdb56b7797b4a1b', - # url="http://www.imagemagick.org/download/ImageMagick-6.9.0-6.tar.bz2") + homepage = "http://www.imagemagick.org" + url = "https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz" - # ------------------------------------------------------------------------- - # *-10 versions are archived, so these versions should fetch reliably. - # ------------------------------------------------------------------------- - version( - '6.8.9-10', - 'aa050bf9785e571c956c111377bbf57c', - url="http://sourceforge.net/projects/imagemagick/files/old-sources/6.x/6.8/ImageMagick-6.8.9-10.tar.gz/download") + version('7.0.2-7', 'c59cdc8df50e481b2bd1afe09ac24c08') + version('7.0.2-6', 'aa5689129c39a5146a3212bf5f26d478') depends_on('jpeg') + depends_on('pango') depends_on('libtool', type='build') depends_on('libpng') depends_on('freetype') depends_on('fontconfig') depends_on('libtiff') + depends_on('ghostscript') + depends_on('ghostscript-fonts') + + def url_for_version(self, version): + return "https://github.com/ImageMagick/ImageMagick/archive/{0}.tar.gz".format(version) def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + gs_font_dir = join_path(spec['ghostscript-fonts'].prefix.share, "font") + configure('--prefix={0}'.format(prefix), + '--with-gs-font-dir={0}'.format(gs_font_dir)) make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/R/package.py b/var/spack/repos/builtin/packages/R/package.py index e880a3aa66..a0899084d0 100644 --- a/var/spack/repos/builtin/packages/R/package.py +++ b/var/spack/repos/builtin/packages/R/package.py @@ -58,7 +58,7 @@ class R(Package): # Concrete dependencies depends_on('readline') depends_on('ncurses') - depends_on('icu') + depends_on('icu4c') depends_on('glib') depends_on('zlib') depends_on('bzip2') diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py new file mode 100644 index 0000000000..76fa044982 --- /dev/null +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -0,0 +1,175 @@ +############################################################################## +# 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: Matteo Giantomassi <matteo.giantomassiNOSPAM AT uclouvain.be> +# Date: October 11, 2016 + +from spack import * + + +class Abinit(Package): + """ABINIT is a package whose main program allows one to find the total + energy, charge density and electronic structure of systems made of + electrons and nuclei (molecules and periodic solids) within + Density Functional Theory (DFT), using pseudopotentials and a planewave + or wavelet basis. ABINIT also includes options to optimize the geometry + according to the DFT forces and stresses, or to perform molecular dynamics + simulations using these forces, or to generate dynamical matrices, + Born effective charges, and dielectric tensors, based on Density-Functional + Perturbation Theory, and many more properties. Excited states can be + computed within the Many-Body Perturbation Theory (the GW approximation and + the Bethe-Salpeter equation), and Time-Dependent Density Functional Theory + (for molecules). In addition to the main ABINIT code, different utility + programs are provided. + """ + + homepage = "http://www.abinit.org" + url = "http://ftp.abinit.org/abinit-8.0.8b.tar.gz" + + # Versions before 8.0.8b are not supported. + version("8.0.8b", "abc9e303bfa7f9f43f95598f87d84d5d") + + variant('mpi', default=True, + description='Builds with MPI support. Requires MPI2+') + variant('openmp', default=False, + description='Enables OpenMP threads. Use threaded FFTW3') + variant('scalapack', default=False, + description='Enables scalapack support. Requires MPI') + # variant('elpa', default=False, + # description='Uses elpa instead of scalapack. Requires MPI') + + # TODO: To be tested. + # It was working before the last `git pull` but now all tests crash. + # For the time being, the default is netcdf3 and the internal fallbacks + variant('hdf5', default=False, + description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental') + + # Add dependencies + # currently one cannot forward options to virtual packages, see #1712. + # depends_on("blas", when="~openmp") + # depends_on("blas+openmp", when="+openmp") + depends_on('blas') + depends_on("lapack") + + # Require MPI2+ + depends_on("mpi@2:", when="+mpi") + + depends_on("scalapack", when="+scalapack+mpi") + # depends_on("elpa", when="+elpa+mpi~openmp") + # depends_on("elpa+openmp", when="+elpa+mpi+openmp") + + depends_on("fftw+float", when="~openmp") + depends_on("fftw+float+openmp", when="+openmp") + + depends_on("netcdf-fortran", when="+hdf5") + depends_on("hdf5+mpi", when='+mpi+hdf5') # required for NetCDF-4 support + + # pin libxc version + depends_on("libxc@2.2.1") + + def validate(self, spec): + """ + Checks if incompatible variants have been activated at the same time + + :param spec: spec of the package + :raises RuntimeError: in case of inconsistencies + """ + error = 'you cannot ask for \'+{variant}\' when \'+mpi\' is not active' + + if '+scalapack' in spec and '~mpi' in spec: + raise RuntimeError(error.format(variant='scalapack')) + + if '+elpa' in spec and ('~mpi' in spec or '~scalapack' in spec): + raise RuntimeError(error.format(variant='elpa')) + + def install(self, spec, prefix): + self.validate(spec) + + options = ['--prefix=%s' % prefix] + oapp = options.append + + if '+mpi' in spec: + # MPI version: + # let the configure script auto-detect MPI support from mpi_prefix + oapp("--with-mpi-prefix=%s" % spec["mpi"].prefix) + oapp("--enable-mpi=yes") + oapp("--enable-mpi-io=yes") + + # Activate OpenMP in Abinit Fortran code. + if '+openmp' in spec: + oapp('--enable-openmp=yes') + + # BLAS/LAPACK + if '+scalapack' in spec: + oapp("--with-linalg-flavor=custom+scalapack") + linalg = (spec['scalapack'].scalapack_libs + + spec['lapack'].lapack_libs + spec['blas'].blas_libs) + + # elif '+elpa' in spec: + else: + oapp("--with-linalg-flavor=custom") + linalg = spec['lapack'].lapack_libs + spec['blas'].blas_libs + + oapp("--with-linalg-libs=%s" % linalg.ld_flags) + + # FFTW3: use sequential or threaded version if +openmp + fftflavor, fftlibs = "fftw3", "-lfftw3 -lfftw3f" + if '+openmp' in spec: + fftflavor = "fftw3-threads" + fftlibs = "-lfftw3_omp -lfftw3 -lfftw3f" + + options.extend([ + "--with-fft-flavor=%s" % fftflavor, + "--with-fft-incs=-I%s" % spec["fftw"].prefix.include, + "--with-fft-libs=-L%s %s" % (spec["fftw"].prefix.lib, fftlibs), + ]) + oapp("--with-dft-flavor=atompaw+libxc") + + # LibXC library + options.extend([ + "with_libxc_incs=-I%s" % spec["libxc"].prefix.include, + "with_libxc_libs=-L%s -lxcf90 -lxc" % spec["libxc"].prefix.lib, + ]) + + # Netcdf4/HDF5 + if "+hdf5" in spec: + oapp("--with-trio-flavor=netcdf") + hdf_libs = "-L%s -lhdf5_hl -lhdf5" % spec["hdf5"].prefix.lib + options.extend([ + "--with-netcdf-incs=-I%s" % ( + spec["netcdf-fortran"].prefix.include), + "--with-netcdf-libs=-L%s -lnetcdff -lnetcdf %s" % ( + spec["netcdf-fortran"].prefix.lib, hdf_libs), + ]) + else: + # Use internal fallbacks (netcdf3) + oapp("--with-trio-flavor=netcdf-fallback") + + configure(*options) + make() + + # make("check") + # make("tests_in") + make("install") diff --git a/var/spack/repos/builtin/packages/adios/adios_1100.patch b/var/spack/repos/builtin/packages/adios/adios_1100.patch new file mode 100644 index 0000000000..7a9f857c32 --- /dev/null +++ b/var/spack/repos/builtin/packages/adios/adios_1100.patch @@ -0,0 +1,29 @@ +From 3b21a8a4150962c6938baeceacd04f619cea2fbc Mon Sep 17 00:00:00 2001 +From: Norbert Podhorszki <pnorbert@ornl.gov> +Date: Thu, 1 Sep 2016 16:26:23 -0400 +Subject: [PATCH] ifdef around 'bool' type. hdf5 1.10 defines bool and breaks + compiling bp2h5.c + +--- + utils/bp2h5/bp2h5.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/utils/bp2h5/bp2h5.c b/utils/bp2h5/bp2h5.c +index 9c500c7..fa746bd 100644 +--- a/utils/bp2h5/bp2h5.c ++++ b/utils/bp2h5/bp2h5.c +@@ -43,9 +43,11 @@ + #include "dmalloc.h" + #endif + +-typedef int bool; +-#define false 0 +-#define true 1 ++#ifndef bool ++ typedef int bool; ++# define false 0 ++# define true 1 ++#endif + + bool noindex = false; // do no print array indices with data + bool printByteAsChar = false; // print 8 bit integer arrays as string diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py index 59e0a451a9..e240ce0858 100644 --- a/var/spack/repos/builtin/packages/adios/package.py +++ b/var/spack/repos/builtin/packages/adios/package.py @@ -1,41 +1,131 @@ -import os +############################################################################## +# 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 Adios(Package): - """ - The Adaptable IO System (ADIOS) provides a simple, + """The Adaptable IO System (ADIOS) provides a simple, flexible way for scientists to describe the data in their code that may need to be written, - read, or processed outside of the running simulation + read, or processed outside of the running simulation. """ homepage = "http://www.olcf.ornl.gov/center-projects/adios/" - url = "https://github.com/ornladios/ADIOS/archive/v1.9.0.tar.gz" + url = "https://github.com/ornladios/ADIOS/archive/v1.10.0.tar.gz" + version('develop', git='https://github.com/ornladios/ADIOS.git', + branch='master') + version('1.10.0', 'eff450a4c0130479417cfd63186957f3') version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678') + variant('shared', default=True, + description='Builds a shared version of the library') + + variant('fortran', default=False, + description='Enable Fortran bindings support') + + variant('mpi', default=True, description='Enable MPI support') + variant('infiniband', default=False, description='Enable infiniband support') + + # transforms + variant('zlib', default=True, description='Enable szip transform support') + variant('szip', default=False, description='Enable szip transform support') + # transports and serial file converters + variant('hdf5', default=False, description='Enable parallel HDF5 transport and serial bp2h5 converter') + # Lots of setting up here for this package # module swap PrgEnv-intel PrgEnv-$COMP - # module load cray-netcdf/4.3.3.1 # module load cray-hdf5/1.8.14 # module load python/2.7.10 - depends_on('hdf5') - depends_on('mxml') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('python', type='build') + + depends_on('mpi', when='+mpi') + depends_on('mxml@2.9:') + # optional transformations + depends_on('zlib', when='+zlib') + depends_on('szip', when='+szip') + # optional transports & file converters + depends_on('hdf5@1.8:+mpi', when='+hdf5') + + # Fix ADIOS <=1.10.0 compile error on HDF5 1.10+ + # https://github.com/ornladios/ADIOS/commit/3b21a8a41509 + # https://github.com/LLNL/spack/issues/1683 + patch('adios_1100.patch', when='@:1.10.0^hdf5@1.10:') + + def validate(self, spec): + """ + Checks if incompatible variants have been activated at the same time + :param spec: spec of the package + :raises RuntimeError: in case of inconsistencies + """ + if '+fortran' in spec and not self.compiler.fc: + msg = 'cannot build a fortran variant without a fortran compiler' + raise RuntimeError(msg) def install(self, spec, prefix): - configure_args = ["--prefix=%s" % prefix, - "--with-mxml=%s" % spec['mxml'].prefix, - "--with-hdf5=%s" % spec['hdf5'].prefix, - "--with-netcdf=%s" % os.environ["NETCDF_DIR"], - "--with-infiniband=no", - "MPICC=cc", "MPICXX=CC", "MPIFC=ftn", - "CPPFLAGS=-DMPICH_IGNORE_CXX_SEEK"] - - if spec.satisfies('%gcc'): - configure_args.extend(["CC=gcc", "CXX=g++", "FC=gfortran"]) - - configure(*configure_args) + self.validate(spec) + # Handle compilation after spec validation + extra_args = [] + + # required, otherwise building its python bindings on ADIOS will fail + extra_args.append("CFLAGS=-fPIC") + + # always build external MXML, even in ADIOS 1.10.0+ + extra_args.append('--with-mxml=%s' % spec['mxml'].prefix) + + if '+shared' in spec: + extra_args.append('--enable-shared') + + if '+mpi' in spec: + extra_args.append('--with-mpi') + if '+infiniband' in spec: + extra_args.append('--with-infiniband') + else: + extra_args.append('--with-infiniband=no') + + if '+fortran' in spec: + extra_args.append('--enable-fortran') + else: + extra_args.append('--disable-fortran') + + if '+zlib' in spec: + extra_args.append('--with-zlib=%s' % spec['zlib'].prefix) + if '+szip' in spec: + extra_args.append('--with-szip=%s' % spec['szip'].prefix) + if '+hdf5' in spec: + extra_args.append('--with-phdf5=%s' % spec['hdf5'].prefix) + + sh = which('sh') + sh('./autogen.sh') + + configure("--prefix=%s" % prefix, + *extra_args) make() make("install") diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py new file mode 100644 index 0000000000..81a0e089e5 --- /dev/null +++ b/var/spack/repos/builtin/packages/ant/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 Ant(Package): + """Apache Ant is a Java library and command-line tool whose mission is to + drive processes described in build files as targets and extension points + dependent upon each other + """ + + homepage = "http://ant.apache.org/" + url = "http://apache.claz.org/ant/source/apache-ant-1.9.7-src.tar.gz" + + version('1.9.7', 'a2fd9458c76700b7be51ef12f07d4bb1') + + depends_on('jdk') + + def install(self, spec, prefix): + env['ANT_HOME'] = self.prefix + bash = which('bash') + bash('./build.sh', 'install') diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py index 891061c62f..804460ce14 100644 --- a/var/spack/repos/builtin/packages/antlr/package.py +++ b/var/spack/repos/builtin/packages/antlr/package.py @@ -26,6 +26,11 @@ from spack import * class Antlr(Package): + """ANTLR (ANother Tool for Language Recognition) is a powerful parser + generator for reading, processing, executing, or translating structured + text or binary files. It's widely used to build languages, tools, and + frameworks. From a grammar, ANTLR generates a parser that can build and + walk parse trees.""" homepage = "http://www.antlr.org" url = "https://github.com/antlr/antlr/tarball/v2.7.7" diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py index b1647798b5..48e436804f 100644 --- a/var/spack/repos/builtin/packages/ape/package.py +++ b/var/spack/repos/builtin/packages/ape/package.py @@ -45,6 +45,13 @@ class Ape(Package): '--with-libxc-prefix=%s' % spec['libxc'].prefix ]) + # When preprocessor expands macros (i.e. CFLAGS) defined as quoted + # strings the result may be > 132 chars and is terminated. + # This will look to a compiler as an Unterminated character constant + # and produce Line truncated errors. To vercome this, add flags to + # let compiler know that the entire line is meaningful. + # TODO: For the lack of better approach, assume that clang is mixed + # with GNU fortran. if spec.satisfies('%clang') or spec.satisfies('%gcc'): args.extend([ 'FCFLAGS=-O2 -ffree-line-length-none' diff --git a/var/spack/repos/builtin/packages/applewmproto/package.py b/var/spack/repos/builtin/packages/applewmproto/package.py new file mode 100644 index 0000000000..8d7e360bfb --- /dev/null +++ b/var/spack/repos/builtin/packages/applewmproto/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 Applewmproto(Package): + """Apple Rootless Window Management Extension. + + This extension defines a protcol that allows X window managers + to better interact with the Mac OS X Aqua user interface when + running X11 in a rootless mode.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/applewmproto" + url = "https://www.x.org/archive/individual/proto/applewmproto-1.4.2.tar.gz" + + version('1.4.2', 'ecc8a4424a893ce120f5652dba62e9e6') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/appres/package.py b/var/spack/repos/builtin/packages/appres/package.py new file mode 100644 index 0000000000..47a9c5bb54 --- /dev/null +++ b/var/spack/repos/builtin/packages/appres/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Appres(Package): + """The appres program prints the resources seen by an application (or + subhierarchy of an application) with the specified class and instance + names. It can be used to determine which resources a particular + program will load.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/appres" + url = "https://www.x.org/archive/individual/app/appres-1.0.4.tar.gz" + + version('1.0.4', 'f82aabe6bbb8960781b63c6945bb361b') + + depends_on('libx11') + depends_on('libxt') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py index 4356f60aca..2336da4520 100644 --- a/var/spack/repos/builtin/packages/armadillo/package.py +++ b/var/spack/repos/builtin/packages/armadillo/package.py @@ -33,6 +33,7 @@ class Armadillo(Package): homepage = "http://arma.sourceforge.net/" url = "http://sourceforge.net/projects/arma/files/armadillo-7.200.1.tar.xz" + version('7.500.0', '7d316fdf3c3c7ea92b64704180ae315d') version('7.200.2', 'b21585372d67a8876117fd515d8cf0a2') version('7.200.1', 'ed86d6df0058979e107502e1fe3e469e') @@ -46,18 +47,20 @@ class Armadillo(Package): depends_on('hdf5', when='+hdf5') def install(self, spec, prefix): + arpack = find_libraries(['libarpack'], root=spec[ + 'arpack-ng'].prefix.lib, shared=True) + superlu = find_libraries(['libsuperlu'], root=spec[ + 'superlu'].prefix, shared=False, recurse=True) cmake_args = [ # ARPACK support - '-DARPACK_LIBRARY={0}/libarpack.{1}'.format( - spec['arpack-ng'].prefix.lib, dso_suffix), + '-DARPACK_LIBRARY={0}'.format(arpack.joined()), # BLAS support - '-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_shared_lib), + '-DBLAS_LIBRARY={0}'.format(spec['blas'].blas_libs.joined()), # LAPACK support - '-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_shared_lib), + '-DLAPACK_LIBRARY={0}'.format(spec['lapack'].lapack_libs.joined()), # SuperLU support '-DSuperLU_INCLUDE_DIR={0}'.format(spec['superlu'].prefix.include), - '-DSuperLU_LIBRARY={0}/libsuperlu.a'.format( - spec['superlu'].prefix.lib64), + '-DSuperLU_LIBRARY={0}'.format(superlu.joined()), # HDF5 support '-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF') ] diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py index 728c2345f2..87ab2bbaac 100644 --- a/var/spack/repos/builtin/packages/arpack-ng/package.py +++ b/var/spack/repos/builtin/packages/arpack-ng/package.py @@ -26,8 +26,7 @@ from spack import * class ArpackNg(Package): - """ - ARPACK-NG is a collection of Fortran77 subroutines designed to solve large + """ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. Important Features: @@ -53,6 +52,7 @@ class ArpackNg(Package): arpack-ng is replacing arpack almost everywhere. """ + homepage = 'https://github.com/opencollab/arpack-ng' url = 'https://github.com/opencollab/arpack-ng/archive/3.3.0.tar.gz' @@ -88,17 +88,16 @@ class ArpackNg(Package): options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix) # Make sure we use Spack's blas/lapack: + lapack_libs = spec['lapack'].lapack_libs.joined(';') + blas_libs = spec['blas'].blas_libs.joined(';') + 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), + '-DLAPACK_INCLUDE_DIRS={0}'.format(spec['lapack'].prefix.include), + '-DLAPACK_LIBRARIES={0}'.format(lapack_libs), '-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) + '-DBLAS_INCLUDE_DIRS={0}'.format(spec['blas'].prefix.include), + '-DBLAS_LIBRARIES={0}'.format(blas_libs) ]) if '+mpi' in spec: @@ -129,19 +128,12 @@ class ArpackNg(Package): 'F77=%s' % spec['mpi'].mpif77 ]) - 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' - ]) + options.extend([ + '--with-blas={0}'.format(spec['blas'].blas_libs.ld_flags), + '--with-lapack={0}'.format(spec['lapack'].lapack_libs.ld_flags) + ]) + if '+shared' not in spec: + options.append('--enable-shared=no') bootstrap() configure(*options) diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py index be8db684f5..811d34afa8 100644 --- a/var/spack/repos/builtin/packages/asciidoc/package.py +++ b/var/spack/repos/builtin/packages/asciidoc/package.py @@ -26,8 +26,9 @@ from spack import * class Asciidoc(Package): - """ A presentable text document format for writing articles, UNIX man + """A presentable text document format for writing articles, UNIX man pages and other small to medium sized documents.""" + homepage = "http://asciidoc.org" url = "http://downloads.sourceforge.net/project/asciidoc/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz" diff --git a/var/spack/repos/builtin/packages/astyle/package.py b/var/spack/repos/builtin/packages/astyle/package.py index 815c184577..31e1efb591 100644 --- a/var/spack/repos/builtin/packages/astyle/package.py +++ b/var/spack/repos/builtin/packages/astyle/package.py @@ -25,28 +25,24 @@ from spack import * -class Astyle(Package): - """ - A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, +class Astyle(MakefilePackage): + """A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective-C, C#, and Java Source Code. """ + homepage = "http://astyle.sourceforge.net/" - url = "http://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/astyle_2.04_linux.tar.gz" + url = "http://downloads.sourceforge.net/project/astyle/astyle/astyle%202.04/astyle_2.04_linux.tar.gz" version('2.04', '30b1193a758b0909d06e7ee8dd9627f6') - def install(self, spec, prefix): + parallel = False - with working_dir('src'): - # we need to edit the makefile in place to set compiler: - make_file = join_path(self.stage.source_path, - 'build', 'gcc', 'Makefile') - filter_file(r'^CXX\s*=.*', 'CXX=%s' % spack_cxx, make_file) + def build_directory(self): + return join_path(self.stage.source_path, 'build', self.compiler.name) - make('-f', - make_file, - parallel=False) + def edit(self, spec, prefix): + makefile = join_path(self.build_directory(), 'Makefile') + filter_file(r'^CXX\s*=.*', 'CXX=%s' % spack_cxx, makefile) - mkdirp(self.prefix.bin) - install(join_path(self.stage.source_path, 'src', 'bin', 'astyle'), - self.prefix.bin) + def install_args(self): + return ['prefix={0}'.format(prefix)] diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py index d5b6933ec3..0a7d48774d 100644 --- a/var/spack/repos/builtin/packages/atk/package.py +++ b/var/spack/repos/builtin/packages/atk/package.py @@ -42,7 +42,7 @@ class Atk(Package): def url_for_version(self, version): """Handle atk's version-based custom URLs.""" url = 'http://ftp.gnome.org/pub/gnome/sources/atk' - return 'url+/%s/atk-%s.tar.xz' % (version.up_to(2), version) + return url + '/%s/atk-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py index f9d5da6166..89b61b3ecb 100644 --- a/var/spack/repos/builtin/packages/atlas/package.py +++ b/var/spack/repos/builtin/packages/atlas/package.py @@ -37,6 +37,9 @@ class Atlas(Package): """ homepage = "http://math-atlas.sourceforge.net/" + version('3.10.3', 'd6ce4f16c2ad301837cfb3dade2f7cef', + url='https://sourceforge.net/projects/math-atlas/files/Stable/3.10.3/atlas3.10.3.tar.bz2') + version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da', 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 @@ -51,6 +54,7 @@ class Atlas(Package): 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') + variant('pthread', default=False, description='Use multithreaded libraries') provides('blas') provides('lapack') @@ -107,18 +111,32 @@ class Atlas(Package): make("install") self.install_test() - def setup_dependent_package(self, module, dspec): + @property + def blas_libs(self): # 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) - + is_threaded = '+pthread' in self.spec if '+shared' in self.spec: - self.spec.blas_shared_lib = join_path(libdir, name) - self.spec.lapack_shared_lib = self.spec.blas_shared_lib + to_find = ['libtatlas'] if is_threaded else ['libsatlas'] + shared = True + else: + interfaces = [ + 'libptcblas', + 'libptf77blas' + ] if is_threaded else [ + 'libcblas', + 'libf77blas' + ] + to_find = ['liblapack'] + interfaces + ['libatlas'] + shared = False + return find_libraries( + to_find, root=self.prefix, shared=shared, recurse=True + ) + + @property + def lapack_libs(self): + return self.blas_libs def install_test(self): source_file = join_path(os.path.dirname(self.module.__file__), @@ -126,9 +144,8 @@ class Atlas(Package): 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"] + include_flags = ["-I%s" % self.spec.prefix.include] + link_flags = self.lapack_libs.ld_flags.split() 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/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py new file mode 100644 index 0000000000..17d0ef8209 --- /dev/null +++ b/var/spack/repos/builtin/packages/atompaw/package.py @@ -0,0 +1,63 @@ +############################################################################## +# 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 Atompaw(Package): + """A Projector Augmented Wave (PAW) code for generating + atom-centered functions. + + Official website: http://pwpaw.wfu.edu + + User's guide: ~/doc/atompaw-usersguide.pdf + """ + homepage = "http://users.wfu.edu/natalie/papers/pwpaw/man.html" + url = "http://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz" + + version('4.0.0.13', 'af4a042380356f6780183c4b325aad1d') + version('3.1.0.3', 'c996a277e11707887177f47bbb229aa6') + + depends_on("lapack") + depends_on("blas") + + # pin libxc version + depends_on("libxc@2.2.1") + + def install(self, spec, prefix): + options = ['--prefix=%s' % prefix] + + linalg = spec['lapack'].lapack_libs + spec['blas'].blas_libs + options.extend([ + "--with-linalg-libs=%s" % linalg.ld_flags, + "--enable-libxc", + "--with-libxc-incs=-I%s" % spec["libxc"].prefix.include, + "--with-libxc-libs=-L%s -lxcf90 -lxc" % spec["libxc"].prefix.lib, + ]) + + configure(*options) + make(parallel=False) # parallel build fails + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py index 2de1c390db..b6aba8c03f 100644 --- a/var/spack/repos/builtin/packages/autoconf/package.py +++ b/var/spack/repos/builtin/packages/autoconf/package.py @@ -25,15 +25,15 @@ from spack import * -class Autoconf(Package): - """ - Autoconf -- system configuration part of autotools - """ +class Autoconf(AutotoolsPackage): + """Autoconf -- system configuration part of autotools""" homepage = 'https://www.gnu.org/software/autoconf/' url = 'http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz' version('2.69', '82d05e03b93e45f5a39b828dc9c6c29b') version('2.62', '6c1f3b3734999035d77da5024aab4fbd') + version('2.59', 'd4d45eaa1769d45e59dcb131a4af17a0') + version('2.13', '9de56d4a161a723228220b0f425dc711') depends_on('m4', type='build') @@ -52,8 +52,3 @@ class Autoconf(Package): 'ifnames'] for name in executables: setattr(module, name, self._make_executable(name)) - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - make() - make("install") diff --git a/var/spack/repos/builtin/packages/bamtools/package.py b/var/spack/repos/builtin/packages/bamtools/package.py new file mode 100644 index 0000000000..7bb1985003 --- /dev/null +++ b/var/spack/repos/builtin/packages/bamtools/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 Bamtools(Package): + """C++ API & command-line toolkit for working with BAM data.""" + + homepage = "https://github.com/pezmaster31/bamtools" + url = "https://github.com/pezmaster31/bamtools/archive/v2.4.0.tar.gz" + + version('2.4.0', '6139d00c1b1fe88fe15d094d8a74d8b9') + version('2.3.0', 'd327df4ba037d6eb8beef65d7da75ebc') + version('2.2.3', '6eccd3e45e4ba12a68daa3298998e76d') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('..', *std_cmake_args) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/bash-completion/package.py b/var/spack/repos/builtin/packages/bash-completion/package.py new file mode 100644 index 0000000000..666a1bef13 --- /dev/null +++ b/var/spack/repos/builtin/packages/bash-completion/package.py @@ -0,0 +1,64 @@ +############################################################################## +# 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 BashCompletion(Package): + """Programmable completion functions for bash.""" + homepage = "https://github.com/scop/bash-completion" + url = "https://github.com/scop/bash-completion/archive/2.3.tar.gz" + + version('2.3', '67e50f5f3c804350b43f2b664c33dde811d24292') + version('develop', git='https://github.com/scop/bash-completion.git') + + # Build dependencies + depends_on('automake', type='build') + depends_on('autoconf', type='build') + depends_on('libtool', type='build') + + # Other dependencies + depends_on('bash@4.1:', type='run') + + def install(self, spec, prefix): + make_args = ['--prefix=%s' % prefix] + + autoreconf('-i') + configure(*make_args) + make() + # make("check") # optional, requires dejagnu and tcllib + make("install", + parallel=False) + + # Guidelines for individual user as provided by the author at + # https://github.com/scop/bash-completion + print('=====================================================') + print('Bash completion has been installed. To use it, please') + print('include the following lines in your ~/.bash_profile :') + print('') + print('# Use bash-completion, if available') + print('[[ $PS1 && -f %s/share/bash-completion/bash_completion ]] && \ ' % prefix) # NOQA: ignore=E501 + print(' . %s/share/bash-completion/bash_completion' % prefix) + print('') + print('=====================================================') diff --git a/var/spack/repos/builtin/packages/bazel/cc_configure.patch b/var/spack/repos/builtin/packages/bazel/cc_configure.patch new file mode 100644 index 0000000000..3e108c3b5e --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/cc_configure.patch @@ -0,0 +1,28 @@ +--- bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 14:00:32.118358387 +0200 ++++ bazel-0.3.1/tools/cpp/cc_configure.bzl 2016-10-13 13:52:45.342610147 +0200 +@@ -173,8 +173,23 @@ + else: + inc_dirs = result.stderr[index1 + 1:index2].strip() + +- return [repository_ctx.path(_cxx_inc_convert(p)) +- for p in inc_dirs.split("\n")] ++ default_inc_directories = [ ++ repository_ctx.path(_cxx_inc_convert(p)) ++ for p in inc_dirs.split("\n") ++ ] ++ ++ env = repository_ctx.os.environ ++ if "SPACK_DEPENDENCIES" in env: ++ for dep in env["SPACK_DEPENDENCIES"].split(":"): ++ path = dep + "/include" ++ # path = repository_ctx.os.path.join(dep, "include") ++ # if not repository_ctx.os.path.exists(path): ++ # continue ++ default_inc_directories.append( ++ repository_ctx.path(_cxx_inc_convert(path)) ++ ) ++ ++ return default_inc_directories + + def _add_option_if_supported(repository_ctx, cc, option): + """Checks that `option` is supported by the C compiler.""" diff --git a/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch b/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch new file mode 100644 index 0000000000..9be9f97d69 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/fix_env_handling.patch @@ -0,0 +1,119 @@ +diff -pu bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java +--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 11:56:01.565756979 +0200 ++++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java 2016-09-14 12:04:13.292839801 +0200 +@@ -92,5 +92,115 @@ public class BazelConfiguration extends + if (tmpdir != null) { + builder.put("TMPDIR", tmpdir); + } ++ ++ String spack_prefix = System.getenv("SPACK_PREFIX"); ++ if (spack_prefix != null) { ++ builder.put("SPACK_PREFIX", spack_prefix); ++ } ++ ++ String spack_env_path = System.getenv("SPACK_ENV_PATH"); ++ if (spack_env_path != null) { ++ builder.put("SPACK_ENV_PATH", spack_env_path); ++ } ++ ++ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); ++ if (spack_debug_log_dir != null) { ++ builder.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); ++ } ++ ++ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); ++ if (spack_compiler_spec != null) { ++ builder.put("SPACK_COMPILER_SPEC", spack_compiler_spec); ++ } ++ ++ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); ++ if (spack_cc_rpath_arg != null) { ++ builder.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); ++ } ++ ++ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); ++ if (spack_cxx_rpath_arg != null) { ++ builder.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); ++ } ++ ++ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); ++ if (spack_f77_rpath_arg != null) { ++ builder.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); ++ } ++ ++ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); ++ if (spack_fc_rpath_arg != null) { ++ builder.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); ++ } ++ ++ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); ++ if (spack_short_spec != null) { ++ builder.put("SPACK_SHORT_SPEC", spack_short_spec); ++ } ++ ++ String spack_cc = System.getenv("SPACK_CC"); ++ if (spack_cc != null) { ++ builder.put("SPACK_CC", spack_cc); ++ } ++ ++ String spack_cxx = System.getenv("SPACK_CXX"); ++ if (spack_cxx != null) { ++ builder.put("SPACK_CXX", spack_cxx); ++ } ++ ++ String spack_f77 = System.getenv("SPACK_F77"); ++ if (spack_f77 != null) { ++ builder.put("SPACK_F77", spack_f77); ++ } ++ ++ String spack_fc = System.getenv("SPACK_FC"); ++ if (spack_fc != null) { ++ builder.put("SPACK_FC", spack_fc); ++ } ++ ++ String spack_cflags = System.getenv("SPACK_CFLAGS"); ++ if (spack_cflags != null) { ++ builder.put("SPACK_CFLAGS", spack_cflags); ++ } ++ ++ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); ++ if (spack_cxxflags != null) { ++ builder.put("SPACK_CXXFLAGS", spack_cxxflags); ++ } ++ ++ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); ++ if (spack_fcflags != null) { ++ builder.put("SPACK_FCFLAGS", spack_fcflags); ++ } ++ ++ String spack_fflags = System.getenv("SPACK_FFLAGS"); ++ if (spack_fflags != null) { ++ builder.put("SPACK_FFLAGS", spack_fflags); ++ } ++ ++ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); ++ if (spack_ldflags != null) { ++ builder.put("SPACK_LDFLAGS", spack_ldflags); ++ } ++ ++ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); ++ if (spack_ldlibs != null) { ++ builder.put("SPACK_LDLIBS", spack_ldlibs); ++ } ++ ++ String spack_debug = System.getenv("SPACK_DEBUG"); ++ if (spack_debug != null) { ++ builder.put("SPACK_DEBUG", spack_debug); ++ } ++ ++ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); ++ if (spack_test_command != null) { ++ builder.put("SPACK_TEST_COMMAND", spack_test_command); ++ } ++ ++ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); ++ if (spack_dependencies != null) { ++ builder.put("SPACK_DEPENDENCIES", spack_dependencies); ++ } + } + } diff --git a/var/spack/repos/builtin/packages/bazel/link.patch b/var/spack/repos/builtin/packages/bazel/link.patch new file mode 100644 index 0000000000..69d100f62c --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/link.patch @@ -0,0 +1,133 @@ +--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-07-29 10:22:16.000000000 +0200 ++++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java 2016-10-13 15:21:35.036617890 +0200 +@@ -214,6 +214,130 @@ + .getParentDirectory() + .getPathString()); + } ++ ++ String path = System.getenv("PATH"); ++ result.put("PATH", path == null ? "/bin:/usr/bin" : path); ++ ++ String ldLibraryPath = System.getenv("LD_LIBRARY_PATH"); ++ if (ldLibraryPath != null) { ++ result.put("LD_LIBRARY_PATH", ldLibraryPath); ++ } ++ ++ String tmpdir = System.getenv("TMPDIR"); ++ if (tmpdir != null) { ++ result.put("TMPDIR", tmpdir); ++ } ++ ++ String spack_prefix = System.getenv("SPACK_PREFIX"); ++ if (spack_prefix != null) { ++ result.put("SPACK_PREFIX", spack_prefix); ++ } ++ ++ String spack_env_path = System.getenv("SPACK_ENV_PATH"); ++ if (spack_env_path != null) { ++ result.put("SPACK_ENV_PATH", spack_env_path); ++ } ++ ++ String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR"); ++ if (spack_debug_log_dir != null) { ++ result.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir); ++ } ++ ++ String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC"); ++ if (spack_compiler_spec != null) { ++ result.put("SPACK_COMPILER_SPEC", spack_compiler_spec); ++ } ++ ++ String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG"); ++ if (spack_cc_rpath_arg != null) { ++ result.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg); ++ } ++ ++ String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG"); ++ if (spack_cxx_rpath_arg != null) { ++ result.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg); ++ } ++ ++ String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG"); ++ if (spack_f77_rpath_arg != null) { ++ result.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg); ++ } ++ ++ String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG"); ++ if (spack_fc_rpath_arg != null) { ++ result.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg); ++ } ++ ++ String spack_short_spec = System.getenv("SPACK_SHORT_SPEC"); ++ if (spack_short_spec != null) { ++ result.put("SPACK_SHORT_SPEC", spack_short_spec); ++ } ++ ++ String spack_cc = System.getenv("SPACK_CC"); ++ if (spack_cc != null) { ++ result.put("SPACK_CC", spack_cc); ++ } ++ ++ String spack_cxx = System.getenv("SPACK_CXX"); ++ if (spack_cxx != null) { ++ result.put("SPACK_CXX", spack_cxx); ++ } ++ ++ String spack_f77 = System.getenv("SPACK_F77"); ++ if (spack_f77 != null) { ++ result.put("SPACK_F77", spack_f77); ++ } ++ ++ String spack_fc = System.getenv("SPACK_FC"); ++ if (spack_fc != null) { ++ result.put("SPACK_FC", spack_fc); ++ } ++ ++ String spack_cflags = System.getenv("SPACK_CFLAGS"); ++ if (spack_cflags != null) { ++ result.put("SPACK_CFLAGS", spack_cflags); ++ } ++ ++ String spack_cxxflags = System.getenv("SPACK_CXXFLAGS"); ++ if (spack_cxxflags != null) { ++ result.put("SPACK_CXXFLAGS", spack_cxxflags); ++ } ++ ++ String spack_fcflags = System.getenv("SPACK_FCFLAGS"); ++ if (spack_fcflags != null) { ++ result.put("SPACK_FCFLAGS", spack_fcflags); ++ } ++ ++ String spack_fflags = System.getenv("SPACK_FFLAGS"); ++ if (spack_fflags != null) { ++ result.put("SPACK_FFLAGS", spack_fflags); ++ } ++ ++ String spack_ldflags = System.getenv("SPACK_LDFLAGS"); ++ if (spack_ldflags != null) { ++ result.put("SPACK_LDFLAGS", spack_ldflags); ++ } ++ ++ String spack_ldlibs = System.getenv("SPACK_LDLIBS"); ++ if (spack_ldlibs != null) { ++ result.put("SPACK_LDLIBS", spack_ldlibs); ++ } ++ ++ String spack_debug = System.getenv("SPACK_DEBUG"); ++ if (spack_debug != null) { ++ result.put("SPACK_DEBUG", spack_debug); ++ } ++ ++ String spack_test_command = System.getenv("SPACK_TEST_COMMAND"); ++ if (spack_test_command != null) { ++ result.put("SPACK_TEST_COMMAND", spack_test_command); ++ } ++ ++ String spack_dependencies = System.getenv("SPACK_DEPENDENCIES"); ++ if (spack_dependencies != null) { ++ result.put("SPACK_DEPENDENCIES", spack_dependencies); ++ } ++ + return result.build(); + } + diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py new file mode 100644 index 0000000000..94ac73cbd2 --- /dev/null +++ b/var/spack/repos/builtin/packages/bazel/package.py @@ -0,0 +1,89 @@ +############################################################################## +# 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 * +from multiprocessing import cpu_count +from spack.util.environment import env_flag +from spack.build_environment import SPACK_NO_PARALLEL_MAKE + + +class Bazel(Package): + """Bazel is Google's own build tool""" + + homepage = "https://www.bazel.io" + url = "https://github.com/bazelbuild/bazel/archive/0.3.1.tar.gz" + + version('0.3.1', '5c959467484a7fc7dd2e5e4a1e8e866b') + version('0.3.0', '33a2cb457d28e1bee9282134769b9283') + version('0.2.3', '393a491d690e43caaba88005efe6da91') + version('0.2.2b', '75081804f073cbd194da1a07b16cba5f') + version('0.2.2', '644bc4ea7f429d835e74f255dc1054e6') + + depends_on('jdk@8:') + patch('fix_env_handling.patch') + patch('link.patch') + patch('cc_configure.patch') + + def install(self, spec, prefix): + bash = which('bash') + bash('-c', './compile.sh') + mkdir(prefix.bin) + install('output/bazel', prefix.bin) + + def setup_dependent_package(self, module, dep_spec): + class BazelExecutable(Executable): + """Special callable executable object for bazel so the user can + specify parallel or not on a per-invocation basis. Using + 'parallel' as a kwarg will override whatever the package's + global setting is, so you can either default to true or false + and override particular calls. + + Note that if the SPACK_NO_PARALLEL_MAKE env var is set it + overrides everything. + """ + + def __init__(self, name, command, jobs): + super(BazelExecutable, self).__init__(name) + self.bazel_command = command + self.jobs = jobs + + def __call__(self, *args, **kwargs): + disable = env_flag(SPACK_NO_PARALLEL_MAKE) + parallel = ((not disable) and + kwargs.get('parallel', self.jobs > 1)) + + jobs = "--jobs=1" + if parallel: + jobs = "--jobs=%d" % self.jobs + + args = (self.bazel_command,) + (jobs,) + args + + return super(BazelExecutable, self).__call__(*args, **kwargs) + + jobs = cpu_count() + if not dep_spec.package.parallel: + jobs = 1 + elif dep_spec.package.make_jobs: + jobs = dep_spec.package.make_jobs + module.bazel = BazelExecutable('bazel', 'build', jobs) diff --git a/var/spack/repos/builtin/packages/bdftopcf/package.py b/var/spack/repos/builtin/packages/bdftopcf/package.py new file mode 100644 index 0000000000..095f0c1bd4 --- /dev/null +++ b/var/spack/repos/builtin/packages/bdftopcf/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Bdftopcf(Package): + """bdftopcf is a font compiler for the X server and font server. Fonts + in Portable Compiled Format can be read by any architecture, although + the file is structured to allow one particular architecture to read + them directly without reformatting. This allows fast reading on the + appropriate machine, but the files are still portable (but read more + slowly) on other machines.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/bdftopcf" + url = "https://www.x.org/archive/individual/app/bdftopcf-1.0.5.tar.gz" + + version('1.0.5', '456416d33e0d41a96b5a3725d99e1be3') + + depends_on('libxfont') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/bedtools2/package.py b/var/spack/repos/builtin/packages/bedtools2/package.py new file mode 100644 index 0000000000..46f3185154 --- /dev/null +++ b/var/spack/repos/builtin/packages/bedtools2/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Bedtools2(Package): + """Collectively, the bedtools utilities are a swiss-army knife of + tools for a wide-range of genomics analysis tasks. The most + widely-used tools enable genome arithmetic: that is, set theory + on the genome.""" + + homepage = "https://github.com/arq5x/bedtools2" + url = "https://github.com/arq5x/bedtools2/archive/v2.26.0.tar.gz" + + version('2.26.0', '52227e7efa6627f0f95d7d734973233d') + version('2.25.0', '534fb4a7bf0d0c3f05be52a0160d8e3d') + + depends_on('zlib') + + def install(self, spec, prefix): + make("prefix=%s" % prefix, "install") diff --git a/var/spack/repos/builtin/packages/beforelight/package.py b/var/spack/repos/builtin/packages/beforelight/package.py new file mode 100644 index 0000000000..37a91f5614 --- /dev/null +++ b/var/spack/repos/builtin/packages/beforelight/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Beforelight(Package): + """The beforelight program is a sample implementation of a screen saver + for X servers supporting the MIT-SCREEN-SAVER extension. It is only + recommended for use as a code sample, as it does not include features + such as screen locking or configurability.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/beforelight" + url = "https://www.x.org/archive/individual/app/beforelight-1.0.5.tar.gz" + + version('1.0.5', 'f0433eb6df647f36bbb5b38fb2beb22a') + + depends_on('libx11') + depends_on('libxscrnsaver') + depends_on('libxt') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/bigreqsproto/package.py b/var/spack/repos/builtin/packages/bigreqsproto/package.py new file mode 100644 index 0000000000..61fd9c5121 --- /dev/null +++ b/var/spack/repos/builtin/packages/bigreqsproto/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 Bigreqsproto(Package): + """Big Requests Extension. + + This extension defines a protocol to enable the use of requests + that exceed 262140 bytes in length.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/bigreqsproto" + url = "https://www.x.org/archive/individual/proto/bigreqsproto-1.1.2.tar.gz" + + version('1.1.2', '9b83369ac7a5eb2bf54c8f34db043a0e') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py index e329e6fd7a..bf49ca9405 100644 --- a/var/spack/repos/builtin/packages/binutils/package.py +++ b/var/spack/repos/builtin/packages/binutils/package.py @@ -31,9 +31,9 @@ class Binutils(Package): homepage = "http://www.gnu.org/software/binutils/" url = "https://ftp.gnu.org/gnu/binutils/binutils-2.25.tar.bz2" - # 2.26 is incompatible with py-pillow build for some reason. + version('2.27', '2869c9bf3e60ee97c74ac2a6bf4e9d68') version('2.26', '64146a0faa3b411ba774f47d41de239f') - version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66', preferred=True) + version('2.25', 'd9f3303f802a5b6b0bb73a335ab89d66') version('2.24', 'e0f71a7b2ddab0f8612336ac81d9636b') version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e') version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764') diff --git a/var/spack/repos/builtin/packages/bitmap/package.py b/var/spack/repos/builtin/packages/bitmap/package.py new file mode 100644 index 0000000000..55fdacefd5 --- /dev/null +++ b/var/spack/repos/builtin/packages/bitmap/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 Bitmap(Package): + """bitmap, bmtoa, atobm - X bitmap (XBM) editor and converter utilities.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/bitmap" + url = "https://www.x.org/archive/individual/app/bitmap-1.0.8.tar.gz" + + version('1.0.8', '0ca600041bb0836ae7c9f5db5ce09091') + + depends_on('libx11') + depends_on('libxmu') + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + + depends_on('xbitmaps', type='build') + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch b/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch new file mode 100644 index 0000000000..4f4441bbe9 --- /dev/null +++ b/var/spack/repos/builtin/packages/bliss/Makefile.spack.patch @@ -0,0 +1,62 @@ +--- old/Makefile.spack ++++ new/Makefile.spack +@@ -0,0 +1,59 @@ ++# Set PREFIX to the install location for both building and installing ++# Set GMP_PREFIX to the location where GMP is installed ++ ++SRCS = \ ++ bliss_C.cc \ ++ defs.cc \ ++ graph.cc \ ++ heap.cc \ ++ orbit.cc \ ++ partition.cc \ ++ timer.cc \ ++ uintseqhash.cc \ ++ utils.cc ++ ++all: libbliss.la bliss libbliss_gmp.la bliss_gmp ++ ++libbliss.la: $(SRCS:%.cc=%.lo) ++ libtool --mode=link --tag=CXX c++ -g -O3 \ ++ -rpath $(PREFIX)/lib -o $@ $^ ++libbliss_gmp.la: $(SRCS:%.cc=%.gmp.lo) ++ libtool --mode=link --tag=CXX c++ -g -O3 \ ++ -rpath $(PREFIX)/lib -o $@ $^ -L$(GMP_PREFIX)/lib -lgmp ++ ++bliss: bliss.lo libbliss.la ++ libtool --mode=link --tag=CXX c++ -g -O3 -o $@ $^ ++ ++bliss_gmp: bliss.gmp.lo libbliss_gmp.la ++ libtool --mode=link --tag=CXX c++ -g -O3 -o $@ $^ ++ ++%.lo: %.cc ++ libtool --mode=compile --tag=CXX c++ -g -O3 -o $@ -c $*.cc ++%.gmp.lo: %.cc ++ libtool --mode=compile --tag=CXX c++ -g -O3 -o $@ \ ++ -c -DBLISS_USE_GMP $*.cc ++ ++install: ++ mkdir -p $(PREFIX)/bin ++ mkdir -p $(PREFIX)/include/bliss ++ mkdir -p $(PREFIX)/lib ++ libtool --mode=install cp bliss $(PREFIX)/bin/bliss ++ libtool --mode=install cp bliss_gmp $(PREFIX)/bin/bliss_gmp ++ libtool --mode=install cp bignum.hh $(PREFIX)/include/bliss/bignum.hh ++ libtool --mode=install cp bliss_C.h $(PREFIX)/include/bliss/bliss_C.h ++ libtool --mode=install cp defs.hh $(PREFIX)/include/bliss/defs.hh ++ libtool --mode=install cp graph.hh $(PREFIX)/include/bliss/graph.hh ++ libtool --mode=install cp heap.hh $(PREFIX)/include/bliss/heap.hh ++ libtool --mode=install cp kqueue.hh $(PREFIX)/include/bliss/kqueue.hh ++ libtool --mode=install cp kstack.hh $(PREFIX)/include/bliss/kstack.hh ++ libtool --mode=install cp orbit.hh $(PREFIX)/include/bliss/orbit.hh ++ libtool --mode=install cp partition.hh \ ++ $(PREFIX)/include/bliss/partition.hh ++ libtool --mode=install cp timer.hh $(PREFIX)/include/bliss/timer.hh ++ libtool --mode=install cp uintseqhash.hh \ ++ $(PREFIX)/include/bliss/uintseqhash.hh ++ libtool --mode=install cp utils.hh $(PREFIX)/include/bliss/utils.hh ++ libtool --mode=install cp libbliss.la $(PREFIX)/lib/libbliss.la ++ libtool --mode=install cp libbliss_gmp.la $(PREFIX)/lib/libbliss_gmp.la ++ ++.PHONY: all install diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py new file mode 100644 index 0000000000..a81a806807 --- /dev/null +++ b/var/spack/repos/builtin/packages/bliss/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Bliss(Package): + """bliss: A Tool for Computing Automorphism Groups and Canonical + Labelings of Graphs""" + + homepage = "http://www.tcs.hut.fi/Software/bliss/" + url = "http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip" + + version('0.73', '72f2e310786923b5c398ba0fc40b42ce') + + # Note: Bliss can also be built without gmp, but we don't support this yet + + depends_on("gmp") + depends_on("libtool", type='build') + + patch("Makefile.spack.patch") + + def install(self, spec, prefix): + # The Makefile isn't portable; use our own instead + makeargs = ["-f", "Makefile.spack", + "PREFIX=%s" % prefix, "GMP_PREFIX=%s" % spec["gmp"].prefix] + make(*makeargs) + make("install", *makeargs) diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py index c92e49a732..16ad3bc2ab 100644 --- a/var/spack/repos/builtin/packages/blitz/package.py +++ b/var/spack/repos/builtin/packages/blitz/package.py @@ -25,16 +25,9 @@ from spack import * -class Blitz(Package): +class Blitz(AutotoolsPackage): """N-dimensional arrays for C++""" homepage = "http://github.com/blitzpp/blitz" - url = "https://github.com/blitzpp/blitz/tarball/1.0.0" + url = "https://github.com/blitzpp/blitz/tarball/1.0.0" version('1.0.0', '9f040b9827fe22228a892603671a77af') - - # No dependencies - - def install(self, spec, prefix): - configure('--prefix=%s' % prefix) - make() - make("install") diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 690a05a150..309184101b 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -23,9 +23,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import spack import sys import os +from glob import glob class Boost(Package): @@ -42,6 +42,7 @@ class Boost(Package): list_url = "http://sourceforge.net/projects/boost/files/boost/" list_depth = 2 + version('1.62.0', '5fb94629535c19e48703bdb2b2e9490f') version('1.61.0', '6095876341956f65f9d35939ccea1a9f') version('1.60.0', '65a840e1a0b13a558ff19eeb2c4f0cbe') version('1.59.0', '6aa9a5c6a4ca1016edd0ed1178e3cb87') @@ -110,13 +111,16 @@ class Boost(Package): description="Additionally build shared libraries") variant('multithreaded', default=True, description="Build multi-threaded versions of libraries") - variant('singlethreaded', default=True, + variant('singlethreaded', default=False, description="Build single-threaded versions of libraries") - variant('icu_support', default=False, - description="Include ICU support (for regex/locale libraries)") - variant('graph', default=False, description="Build the Boost Graph library") - - depends_on('icu', when='+icu_support') + variant('icu', default=False, + description="Build with Unicode and ICU suport") + variant('graph', default=False, + description="Build the Boost Graph library") + variant('taggedlayout', default=False, + description="Augment library names with build options") + + depends_on('icu4c', when='+icu') depends_on('python', when='+python') depends_on('mpi', when='+mpi') depends_on('bzip2', when='+iostreams') @@ -143,6 +147,8 @@ class Boost(Package): 'icpc': 'intel', 'clang++': 'clang'} + if spec.satisfies('@1.47:'): + toolsets['icpc'] += '-linux' for cc, toolset in toolsets.iteritems(): if cc in self.compiler.cxx_names: return toolset @@ -150,6 +156,26 @@ class Boost(Package): # fallback to gcc if no toolset found return 'gcc' + def bjam_python_line(self, spec): + from os.path import dirname, splitext + pydir = 'python%s.%s*' % spec['python'].version.version[:2] + incs = join_path(spec['python'].prefix.include, pydir, "pyconfig.h") + incs = glob(incs) + incs = " ".join([dirname(u) for u in incs]) + + pylib = 'libpython%s.%s*' % spec['python'].version.version[:2] + all_libs = join_path(spec['python'].prefix.lib, pylib) + libs = [u for u in all_libs if splitext(u)[1] == dso_suffix] + if len(libs) == 0: + libs = [u for u in all_libs if splitext(u)[1] == '.a'] + + libs = " ".join(libs) + return 'using python : %s : %s : %s : %s ;\n' % ( + spec['python'].version.up_to(2), + join_path(spec['python'].prefix.bin, 'python'), + incs, libs + ) + def determine_bootstrap_options(self, spec, withLibs, options): boostToolsetId = self.determine_toolset(spec) options.append('--with-toolset=%s' % boostToolsetId) @@ -160,17 +186,22 @@ class Boost(Package): join_path(spec['python'].prefix.bin, 'python')) with open('user-config.jam', 'w') as f: - compiler_wrapper = join_path(spack.build_env_path, 'c++') - f.write("using {0} : : {1} ;\n".format(boostToolsetId, - compiler_wrapper)) + # Boost may end up using gcc even though clang+gfortran is set in + # compilers.yaml. Make sure this does not happen: + if not spec.satisfies('%intel'): + # using intel-linux : : spack_cxx in user-config.jam leads to + # error: at project-config.jam:12 + # error: duplicate initialization of intel-linux with the following parameters: # noqa + # error: version = <unspecified> + # error: previous initialization at ./user-config.jam:1 + f.write("using {0} : : {1} ;\n".format(boostToolsetId, + spack_cxx)) if '+mpi' in spec: f.write('using mpi : %s ;\n' % join_path(spec['mpi'].prefix.bin, 'mpicxx')) if '+python' in spec: - f.write('using python : %s : %s ;\n' % - (spec['python'].version, - join_path(spec['python'].prefix.bin, 'python'))) + f.write(self.bjam_python_line(spec)) def determine_b2_options(self, spec, options): if '+debug' in spec: @@ -198,16 +229,35 @@ class Boost(Package): if '+singlethreaded' in spec: threadingOpts.append('single') if not threadingOpts: - raise RuntimeError("""At least one of {singlethreaded, - multithreaded} must be enabled""") + raise RuntimeError("At least one of {singlethreaded, " + + "multithreaded} must be enabled") + + if '+taggedlayout' in spec: + layout = 'tagged' + else: + if len(threadingOpts) > 1: + raise RuntimeError("Cannot build both single and " + + "multi-threaded targets with system layout") + layout = 'system' options.extend([ - 'toolset=%s' % self.determine_toolset(spec), 'link=%s' % ','.join(linkTypes), - '--layout=tagged']) + '--layout=%s' % layout + ]) + + if not spec.satisfies('%intel'): + options.extend([ + 'toolset=%s' % self.determine_toolset(spec) + ]) return threadingOpts + def add_buildopt_symlinks(self, prefix): + with working_dir(prefix.lib): + for lib in os.listdir(os.curdir): + prefix, remainder = lib.split('.', 1) + symlink(lib, '%s-mt.%s' % (prefix, remainder)) + def install(self, spec, prefix): # On Darwin, Boost expects the Darwin libtool. However, one of the # dependencies may have pulled in Spack's GNU libtool, and these two @@ -266,11 +316,16 @@ class Boost(Package): threadingOpts = self.determine_b2_options(spec, b2_options) + b2('--clean') + # In theory it could be done on one call but it fails on # Boost.MPI if the threading options are not separated. for threadingOpt in threadingOpts: b2('install', 'threading=%s' % threadingOpt, *b2_options) + if '+multithreaded' in spec and '~taggedlayout' in spec: + self.add_buildopt_symlinks(prefix) + # The shared libraries are not installed correctly # on Darwin; correct this if (sys.platform == 'darwin') and ('+shared' in spec): diff --git a/var/spack/repos/builtin/packages/bpp-core/package.py b/var/spack/repos/builtin/packages/bpp-core/package.py index 40360a03b3..f716a2ee05 100644 --- a/var/spack/repos/builtin/packages/bpp-core/package.py +++ b/var/spack/repos/builtin/packages/bpp-core/package.py @@ -33,7 +33,7 @@ class BppCore(Package): version('2.2.0', '5789ed2ae8687d13664140cd77203477') - depends_on('cmake') + depends_on('cmake', type='build') def install(self, spec, prefix): cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args) diff --git a/var/spack/repos/builtin/packages/bpp-phyl/package.py b/var/spack/repos/builtin/packages/bpp-phyl/package.py index 62db8d5545..4ff77f1540 100644 --- a/var/spack/repos/builtin/packages/bpp-phyl/package.py +++ b/var/spack/repos/builtin/packages/bpp-phyl/package.py @@ -33,7 +33,7 @@ class BppPhyl(Package): version('2.2.0', '5c40667ec0bf37e0ecaba321be932770') - depends_on('cmake') + depends_on('cmake', type='build') depends_on('bpp-core') depends_on('bpp-seq') diff --git a/var/spack/repos/builtin/packages/bpp-seq/package.py b/var/spack/repos/builtin/packages/bpp-seq/package.py index 7132c668b3..15c99da2b1 100644 --- a/var/spack/repos/builtin/packages/bpp-seq/package.py +++ b/var/spack/repos/builtin/packages/bpp-seq/package.py @@ -33,7 +33,7 @@ class BppSeq(Package): version('2.2.0', '44adef0ff4d5ca4e69ccf258c9270633') - depends_on('cmake') + depends_on('cmake', type='build') depends_on('bpp-core') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py index 41e90e375d..d15030622e 100644 --- a/var/spack/repos/builtin/packages/bpp-suite/package.py +++ b/var/spack/repos/builtin/packages/bpp-suite/package.py @@ -34,9 +34,8 @@ class BppSuite(Package): version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4') - # FIXME: Add dependencies if required. - depends_on('cmake') - depends_on('texinfo') + depends_on('cmake', type='build') + depends_on('texinfo', type='build') depends_on('bpp-core') depends_on('bpp-seq') depends_on('bpp-phyl') diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py index ddb8d2fd03..12c7838f63 100644 --- a/var/spack/repos/builtin/packages/cairo/package.py +++ b/var/spack/repos/builtin/packages/cairo/package.py @@ -25,7 +25,7 @@ from spack import * -class Cairo(Package): +class Cairo(AutotoolsPackage): """Cairo is a 2D graphics library with support for multiple output devices.""" homepage = "http://cairographics.org" @@ -37,11 +37,10 @@ class Cairo(Package): depends_on("glib") depends_on("pixman") depends_on("freetype") + depends_on("pkg-config", type="build") depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig. - def install(self, spec, prefix): - configure("--prefix=%s" % prefix, - "--disable-trace", # can cause problems with libiberty - "--enable-tee") - make() - make("install") + def configure_args(self): + args = ["--disable-trace", # can cause problems with libiberty + "--enable-tee"] + return args diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index e5aed5ed65..113bef61b8 100644 --- a/var/spack/repos/builtin/packages/caliper/package.py +++ b/var/spack/repos/builtin/packages/caliper/package.py @@ -26,8 +26,7 @@ from spack import * class Caliper(Package): - """ - Caliper is a generic context annotation system. It gives programmers the + """Caliper is a generic context annotation system. It gives programmers the ability to provide arbitrary program context information to (performance) tools at runtime. """ diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index 9c9c035325..66e1197669 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -85,8 +85,9 @@ class Cantera(Package): # BLAS/LAPACK support if '+lapack' in spec: + lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs options.extend([ - 'blas_lapack_libs=lapack,blas', + 'blas_lapack_libs={0}'.format(','.join(lapack_blas.names)), 'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib) ]) @@ -95,8 +96,7 @@ class Cantera(Package): options.extend([ 'build_thread_safe=yes', 'boost_inc_dir={0}'.format(spec['boost'].prefix.include), - 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib), - 'boost_thread_lib=boost_thread-mt,boost_system-mt' + 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib) ]) else: options.append('build_thread_safe=no') diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py index 67cc48ab2a..5a5bfaa5f1 100644 --- a/var/spack/repos/builtin/packages/cask/package.py +++ b/var/spack/repos/builtin/packages/cask/package.py @@ -37,6 +37,8 @@ class Cask(Package): homepage = "http://cask.readthedocs.io/en/latest/" url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz" + version('0.8.1', '25196468a7ce634cfff14733678be6ba') + # version 0.8.0 is broken version('0.7.4', 'c973a7db43bc980dd83759a5864a1260') depends_on('emacs', type=nolink) diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index cbf36c3b61..06e752d199 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -57,14 +57,13 @@ class CbtfArgonavis(Package): version('1.6', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') - depends_on("cmake@3.0.2", type='build') + depends_on("cmake@3.0.2:", type='build') depends_on("boost@1.50.0:") depends_on("papi") - depends_on("mrnet@5.0.1:+lwthreads+krellpatch") + depends_on("mrnet@5.0.1:+lwthreads") depends_on("cbtf") depends_on("cbtf-krell") - depends_on("cuda@6.0.37") - # depends_on("cuda") + depends_on("cuda") parallel = False diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index 6f15c3f835..efcd7200d8 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -74,7 +74,7 @@ class CbtfKrell(Package): description="Build mpi experiment collector for mpich MPI.") # Dependencies for cbtf-krell - depends_on("cmake@3.0.2", type='build') + depends_on("cmake@3.0.2:", type='build') # For binutils service depends_on("binutils@2.24+krellpatch") @@ -82,7 +82,7 @@ class CbtfKrell(Package): # collectionTool depends_on("boost@1.50.0:") depends_on("dyninst@8.2.1:") - depends_on("mrnet@5.0.1:+lwthreads+krellpatch") + depends_on("mrnet@5.0.1:+lwthreads") depends_on("xerces-c@3.1.1:") depends_on("cbtf") @@ -138,34 +138,22 @@ class CbtfKrell(Package): # openmpi if '+openmpi' in spec: - MPIOptions.extend([ - '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix - ]) + MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix) # mpich if '+mpich' in spec: - MPIOptions.extend([ - '-DMPICH_DIR=%s' % spec['mpich'].prefix - ]) + MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix) # mpich2 if '+mpich2' in spec: - MPIOptions.extend([ - '-DMPICH2_DIR=%s' % spec['mpich2'].prefix - ]) + MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix) # mvapich if '+mvapich' in spec: - MPIOptions.extend([ - '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix - ]) + MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix) # mvapich2 if '+mvapich2' in spec: - MPIOptions.extend([ - '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix - ]) + MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix) # mpt if '+mpt' in spec: - MPIOptions.extend([ - '-DMPT_DIR=%s' % spec['mpt'].prefix - ]) + MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix) cmakeOptions.extend(MPIOptions) diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py index b614a325f9..2b4e887325 100644 --- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py +++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py @@ -55,9 +55,9 @@ class CbtfLanl(Package): version('1.6', branch='master', git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl') - depends_on("cmake@3.0.2", type='build') + depends_on("cmake@3.0.2:", type='build') # Dependencies for cbtf-krell - depends_on("mrnet@5.0.1:+lwthreads+krellpatch") + depends_on("mrnet@5.0.1:+lwthreads") depends_on("xerces-c@3.1.1:") depends_on("cbtf") depends_on("cbtf-krell") diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index bc3116bf2a..a711a918ca 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -63,9 +63,9 @@ class Cbtf(Package): variant('runtime', default=False, description="build only the runtime libraries and collectors.") - depends_on("cmake@3.0.2", type='build') + depends_on("cmake@3.0.2:", type='build') depends_on("boost@1.50.0:") - depends_on("mrnet@5.0.1:+lwthreads+krellpatch") + depends_on("mrnet@5.0.1:+lwthreads") depends_on("xerces-c@3.1.1:") # Work around for spack libxml2 package bug, take off python when fixed depends_on("libxml2+python") diff --git a/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch b/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch new file mode 100644 index 0000000000..4c97187a57 --- /dev/null +++ b/var/spack/repos/builtin/packages/cdd/Makefile.spack.patch @@ -0,0 +1,22 @@ +--- old/Makefile.spack ++++ new/Makefile.spack +@@ -0,0 +1,19 @@ ++# Set PREFIX to the install location for both building and installing ++ ++all: cdd dplex_test ++ ++cdd: cdd.lo cddio.lo cddarith.lo dplex.lo setoper.lo ++ libtool --mode=link --tag=CC cc -g -O2 -o $@ $^ ++ ++dplex_test: dplex.lo dplex_test.lo setoper.lo ++ libtool --mode=link --tag=CC cc -g -O2 -o $@ $^ ++ ++%.lo: %.c ++ libtool --mode=compile --tag=CC cc -g -O2 -c $*.c ++ ++install: ++ mkdir -p $(PREFIX)/bin ++ libtool --mode=install cp cdd $(PREFIX)/bin/cdd ++ libtool --mode=install cp dplex_test $(PREFIX)/bin/dplex_test ++ ++.PHONY: all install diff --git a/var/spack/repos/builtin/packages/cdd/package.py b/var/spack/repos/builtin/packages/cdd/package.py new file mode 100644 index 0000000000..4a0a0aefef --- /dev/null +++ b/var/spack/repos/builtin/packages/cdd/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +from spack import * + + +class Cdd(Package): + """The program cdd+ (cdd, respectively) is a C++ (ANSI C) + implementation of the Double Description Method [MRTT53] for + generating all vertices (i.e. extreme points) and extreme rays of + 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" + + version('0.61a', '22c24a7a9349dd7ec0e24531925a02d9') + + depends_on("libtool", type="build") + + patch("Makefile.spack.patch") + + def url_for_version(self, version): + url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cdd-{0}.tar.gz" + return url.format(version.joined) + + def install(self, spec, prefix): + # The Makefile isn't portable; use our own instead + makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix] + make(*makeargs) + make("install", *makeargs) diff --git a/var/spack/repos/builtin/packages/cddlib/package.py b/var/spack/repos/builtin/packages/cddlib/package.py new file mode 100644 index 0000000000..ced5f46d1f --- /dev/null +++ b/var/spack/repos/builtin/packages/cddlib/package.py @@ -0,0 +1,58 @@ +############################################################################## +# 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 Cddlib(Package): + """The C-library cddlib is a C implementation of the Double Description + Method of Motzkin et al. for generating all vertices (i.e. extreme points) + and extreme rays of a general convex polyhedron in R^d given by a system + of linear inequalities""" + homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/" + # This is the original download url. It is currently down [2016-08-23], + # but should be reinstated or updated once the issue is resolved. + # url = "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-094h.tar.gz" + url = "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz" + + def url_for_version(self, version): + # Since the commit id is part of the version, we can't + # auto-generate the string, and we need to explicitly list all + # known versions here. Currently, there is only one version. + if str(version) == '0.94h': + return "http://pkgs.fedoraproject.org/lookaside/pkgs/cddlib/cddlib-094h.tar.gz/1467d270860bbcb26d3ebae424690e7c/cddlib-094h.tar.gz" + raise InstallError("Unsupported version %s" % str(version)) + + version('0.94h', '1467d270860bbcb26d3ebae424690e7c') + + # Note: It should be possible to build cddlib also without gmp + + depends_on("gmp") + depends_on("libtool", type="build") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py index 7400c3a56c..775dc31cf3 100644 --- a/var/spack/repos/builtin/packages/cdo/package.py +++ b/var/spack/repos/builtin/packages/cdo/package.py @@ -30,13 +30,88 @@ class Cdo(Package): Climate and NWP model Data. """ homepage = "https://code.zmaw.de/projects/cdo" - url = "https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz" - version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2') + version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31', url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz') + version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2', url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz') - depends_on('netcdf') + variant('szip', default=True, description='Enable szip compression for GRIB1') + variant('hdf5', default=False, description='Enable HDF5 support') + variant('netcdf', default=True, description='Enable NetCDF support') + variant('udunits2', default=True, description='Enable UDUNITS2 support') + variant('grib', default=True, description='Enable GRIB_API support') + variant('libxml2', default=True, description='Enable libxml2 support') + variant('proj', default=True, description='Enable PROJ library for cartographic projections') + variant('curl', default=True, description='Enable curl support') + variant('fftw', default=True, description='Enable support for fftw3') + variant('magics', default=True, description='Enable Magics library support') + + depends_on('szip', when='+szip') + depends_on('netcdf', when='+netcdf') + depends_on('hdf5+threadsafe', when='+hdf5') + depends_on('udunits2', when='+udunits2') + depends_on('grib-api', when='+grib') + depends_on('libxml2', when='+libxml2') + depends_on('proj', when='+proj') + depends_on('curl', when='+curl') + depends_on('fftw', when='+fftw') + depends_on('magics', when='+magics') def install(self, spec, prefix): - configure('--prefix={0}'.format(prefix)) + config_args = ["--prefix=" + prefix, + "--enable-shared", + "--enable-static"] + + if '+szip' in spec: + config_args.append('--with-szlib=' + spec['szip'].prefix) + else: + config_args.append('--without-szlib') + + if '+hdf5' in spec: + config_args.append('--with-hdf5=' + spec['hdf5'].prefix) + else: + config_args.append('--without-hdf5') + + if '+netcdf' in spec: + config_args.append('--with-netcdf=' + spec['netcdf'].prefix) + else: + config_args.append('--without-netcdf') + + if '+udunits2' in spec: + config_args.append('--with-udunits2=' + spec['udunits2'].prefix) + else: + config_args.append('--without-udunits2') + + if '+grib' in spec: + config_args.append('--with-grib_api=' + spec['grib-api'].prefix) + else: + config_args.append('--without-grib_api') + + if '+libxml2' in spec: + config_args.append('--with-libxml2=' + spec['libxml2'].prefix) + else: + config_args.append('--without-libxml2') + + if '+proj' in spec: + config_args.append('--with-proj=' + spec['proj'].prefix) + else: + config_args.append('--without-proj') + + if '+curl' in spec: + config_args.append('--with-curl=' + spec['curl'].prefix) + else: + config_args.append('--without-curl') + + if '+fftw' in spec: + config_args.append('--with-fftw3') + else: + config_args.append('--without-fftw3') + + if '+magics' in spec: + config_args.append('--with-magics=' + spec['magics'].prefix) + else: + config_args.append('--without-magics') + + configure(*config_args) + make() make('install') diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py index 716e0103d1..0ce6ec593c 100644 --- a/var/spack/repos/builtin/packages/cereal/package.py +++ b/var/spack/repos/builtin/packages/cereal/package.py @@ -39,6 +39,7 @@ class Cereal(Package): homepage = "http://uscilab.github.io/cereal/" url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz" + version('1.2.1', '64476ed74c19068ee543b53ad3992261') version('1.2.0', 'e372c9814696481dbdb7d500e1410d2b') version('1.1.2', '34d4ad174acbff005c36d4d10e48cbb9') version('1.1.1', '0ceff308c38f37d5b5f6df3927451c27') diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py index c68b3ffc0d..79af31ae21 100644 --- a/var/spack/repos/builtin/packages/cfitsio/package.py +++ b/var/spack/repos/builtin/packages/cfitsio/package.py @@ -26,16 +26,17 @@ from spack import * class Cfitsio(Package): - """ - CFITSIO is a library of C and Fortran subroutines for reading and writing + """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format. """ + homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/' + version('3.370', 'abebd2d02ba5b0503c633581e3bfa116') - def url_for_version(self, v): + def url_for_version(self, version): url = 'ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio{0}.tar.gz' - return url.format(str(v).replace('.', '')) + return url.format(version.joined) def install(self, spec, prefix): configure('--prefix=' + prefix) diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py index e522b4a5a0..a16572246b 100644 --- a/var/spack/repos/builtin/packages/cgal/package.py +++ b/var/spack/repos/builtin/packages/cgal/package.py @@ -22,59 +22,87 @@ # 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 Cgal(Package): - """CGAL is a software project that provides easy access to efficient and - reliable geometric algorithms in the form of a C++ library. CGAL - is used in various areas needing geometric computation, such as - geographic information systems, computer aided design, molecular - biology, medical imaging, computer graphics, and robotics. - + """The Computational Geometry Algorithms Library (CGAL) is a C++ library + that aims to provide easy access to efficient and reliable algorithms in + computational geometry. CGAL is used in various areas needing geometric + computation, such as geographic information systems, computer aided design, + molecular biology, medical imaging, computer graphics, and robotics. """ homepage = 'http://www.cgal.org/' url = 'https://github.com/CGAL/cgal/archive/releases/CGAL-4.7.tar.gz' + version('4.9', '7b628db3e5614347f776c046b7666089') version('4.7', '4826714810f3b4c65cac96b90fb03b67') version('4.6.3', 'e8ee2ecc8d2b09b94a121c09257b576d') - # Installation instructions : - # http://doc.cgal.org/latest/Manual/installation.html variant('shared', default=True, description='Enables the build of shared libraries') variant('debug', default=False, description='Builds a debug version of the libraries') - depends_on('boost') - depends_on('mpfr') + # ---- See "7 CGAL Libraries" at: + # http://doc.cgal.org/latest/Manual/installation.html + + # The CORE library provides exact arithmetic for geometric computations. + # See: http://cs.nyu.edu/exact/core_pages/ + # http://cs.nyu.edu/exact/core_pages/svn-core.html + variant('core', default=False, + description='Build the CORE library for algebraic numbers') + variant('imageio', default=False, + description='Build utilities to read/write image files') + variant('demos', default=False, + description='Build CGAL demos') + + # Essential Third Party Libraries + depends_on('boost+thread+system') depends_on('gmp') + depends_on('mpfr') + + # Required for CGAL_ImageIO + # depends_on('opengl', when='+imageio') # not yet in Spack depends_on('zlib') - depends_on('cmake', type='build') - # FIXME : Qt5 dependency missing (needs Qt5 and OpenGL) - # FIXME : Optional third party libraries missing + # Optional to build CGAL_Qt5 (demos) + # depends_on('opengl', when='+demos') # not yet in Spack + depends_on('qt@5:', when='+demos') - def install(self, spec, prefix): + # Optional Third Party Libraries + # depends_on('leda') + # depends_on('mpfi') + # depends_on('rs') + # depends_on('rs3') + # depends_on('ntl') + # depends_on('eigen') + # depends_on('libqglviewer') + # depends_on('esbtl') + # depends_on('intel-tbb') - options = [] - options.extend(std_cmake_args) - # CGAL supports only Release and Debug build type. Any other build type - # will raise an error at configure time - if '+debug' in spec: - options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') - else: - options.append('-DCMAKE_BUILD_TYPE:STRING=Release') + # Build dependencies + depends_on('cmake', type='build') + + def install(self, spec, prefix): + # Installation instructions: + # http://doc.cgal.org/latest/Manual/installation.html - if '+shared' in spec: - options.append('-DBUILD_SHARED_LIBS:BOOL=ON') - else: - options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') + options = std_cmake_args + [ + # CGAL supports only Release and Debug build type. Any + # other build type will raise an error at configure time + '-DCMAKE_BUILD_TYPE:STRING=%s' % + ('Debug' if '+debug' in spec else 'Release'), + '-DBUILD_SHARED_LIBS:BOOL=%s' % + ('ON' if '+shared' in spec else 'OFF'), + '-DWITH_CGAL_Core:BOOL=%s' % + ('YES' if '+core' in spec else 'NO'), + '-DWITH_CGAL_ImageIO:BOOL=%s' % + ('YES' if '+imageio' in spec else 'NO'), + '-DWITH_CGAL_Qt5:BOOL=%s' % + ('YES' if '+demos' in spec else 'NO')] - build_directory = join_path(self.stage.path, 'spack-build') - source_directory = self.stage.source_path - with working_dir(build_directory, create=True): - cmake(source_directory, *options) + with working_dir('spack-build', create=True): + cmake('..', *options) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/charm/mpi.patch b/var/spack/repos/builtin/packages/charm/mpi.patch new file mode 100644 index 0000000000..e909d5f876 --- /dev/null +++ b/var/spack/repos/builtin/packages/charm/mpi.patch @@ -0,0 +1,19 @@ +--- old/src/scripts/configure ++++ new/src/scripts/configure +@@ -3293,10 +3293,16 @@ + test_link "whether -lmpi" "ok" "no" "-lmpi" + if test $pass -eq 1 + then + add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi"' "mpi lib" + else ++ test_link "whether -lmpi -lmpi_cxx" "ok" "no" "-lmpi -lmpi_cxx" ++ if test $pass -eq 1 ++ then ++ add_flag CMK_SYSLIBS='"$CMK_SYSLIBS -lmpi -lmpi_cxx"' "mpi lib" ++ else + echo "Error: can not find mpi library" + test_finish 1 ++ fi + fi + fi + else diff --git a/var/spack/repos/builtin/packages/charm/package.py b/var/spack/repos/builtin/packages/charm/package.py new file mode 100644 index 0000000000..1ec53c2138 --- /dev/null +++ b/var/spack/repos/builtin/packages/charm/package.py @@ -0,0 +1,190 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +import os +import platform +import shutil +import sys +from spack import * + + +class Charm(Package): + """Charm++ is a parallel programming framework in C++ supported by + an adaptive runtime system, which enhances user productivity and + allows programs to run portably from small multicore computers + (your laptop) to the largest supercomputers.""" + + homepage = "http://charmplusplus.org" + url = "http://charm.cs.illinois.edu/distrib/charm-6.7.1.tar.gz" + + version("6.7.1", "a8e20cf85e9c8721158f5bbd0ade48d9") + version("6.7.0", "35a39a7975f1954a7db2d76736158231") + version("6.6.1", "9554230f741e2599deaaac4d9d93d7ab") + version("6.6.0", "31e95901b3f7324d52107e6ad000fcc8") + version("6.5.1", "034d99458474a3ab96d8bede8a691a5d") + + # Support OpenMPI; see + # <https://charm.cs.illinois.edu/redmine/issues/1206> + patch("mpi.patch") + # Ignore compiler warnings while configuring + patch("strictpass.patch") + + # Communication mechanisms (choose exactly one) + # TODO: Support Blue Gene/Q PAMI, Cray GNI, Cray shmem, CUDA + variant("mpi", default=False, + description="Use MPI as communication mechanism") + variant("multicore", default=False, + description="Disable inter-node communication") + variant("net", default=False, + description="Use net communication mechanism") + variant("netlrts", default=True, + description="Use netlrts communication mechanism") + variant("verbs", default=False, + description="Use Infiniband as communication mechanism") + + # Other options + # Something is off with PAPI -- there are build errors. Maybe + # Charm++ expects a particular version? + variant("papi", default=False, description="Enable PAPI integration") + variant("smp", default=True, + description=( + "Enable SMP parallelism (does not work with +multicore)")) + variant("tcp", default=False, + description="Use TCP as transport mechanism (requires +net)") + + # Note: We could add variants for AMPI, LIBS, bigemulator, msa, Tau + # Note: We could support shared libraries + + depends_on("mpi", when="+mpi") + depends_on("papi", when="+papi") + + def install(self, spec, prefix): + target = "charm++" + + # Note: Turn this into a multi-valued variant, once these + # exist in Spack + if sum(["+mpi" in spec, + "+multicore" in spec, + "+net" in spec, + "+netlrts" in spec, + "+verbs" in spec]) != 1: + raise InstallError( + "Exactly one communication mechanism " + "(+mpi, +multicore, +net, +netlrts, or +verbs) " + "must be enabled") + if "+mpi" in spec: + comm = "mpi" + if "+multicore" in spec: + comm = "multicore" + if "+net" in spec: + comm = "net" + if "+netlrts" in spec: + comm = "netlrts" + if "+verbs" in spec: + comm = "verbs" + + plat = sys.platform + if plat.startswith("linux"): + plat = "linux" + mach = platform.machine() + + # Define Charm++ version names for various (plat, mach, comm) + # combinations. Note that not all combinations are supported. + versions = { + ("darwin", "i386", "multicore"): "multicore-darwin-x86", + ("darwin", "i386", "net"): "net-darwin-x86", + ("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64", + ("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64", + ("darwin", "x86_64", "net"): "net-darwin-x86_64", + ("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64", + ("linux", "i386", "mpi"): "mpi-linux", + ("linux", "i386", "multicore"): "multicore-linux32", + ("linux", "i386", "net"): "net-linux", + ("linux", "i386", "netlrts"): "netlrts-linux", + ("linux", "x86_64", "mpi"): "mpi-linux-x86_64", + ("linux", "x86_64", "multicore"): "multicore-linux64", + ("linux", "x86_64", "net"): "net-linux-x86_64", + ("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64", + ("linux", "x86_64", "verbs"): "verbs-linux-x86_64", + } + if (plat, mach, comm) not in versions: + raise InstallError( + "The communication mechanism %s is not supported " + "on a %s platform with a %s CPU" % + (comm, plat, mach)) + version = versions[(plat, mach, comm)] + + # We assume that Spack's compiler wrappers make this work. If + # not, then we need to query the compiler vendor from Spack + # here. + compiler = "gcc" + + options = [compiler, + "--with-production", # Note: turn this into a variant + "-j%d" % make_jobs, + "--destination=%s" % prefix] + if "+mpi" in spec: + options.append("--basedir=%s" % spec["mpi"].prefix) + if "+papi" in spec: + options.extend(["papi", "--basedir=%s" % spec["papi"].prefix]) + if "+smp" in spec: + if "+multicore" in spec: + # This is a Charm++ limitation; it would lead to a + # build error + raise InstallError("Cannot combine +smp with +multicore") + options.append("smp") + if "+tcp" in spec: + if "+net" not in spec: + # This is a Charm++ limitation; it would lead to a + # build error + raise InstallError( + "The +tcp variant requires " + "the +net communication mechanism") + options.append("tcp") + + # Call "make" via the build script + # Note: This builds Charm++ in the "tmp" subdirectory of the + # install directory. Maybe we could set up a symbolic link + # back to the build tree to prevent this? Alternatively, we + # could dissect the build script; the build instructions say + # this wouldn't be difficult. + build = Executable(join_path(".", "build")) + build(target, version, *options) + + # Charm++'s install script does not copy files, it only creates + # symbolic links. Fix this. + for dirpath, dirnames, filenames in os.walk(prefix): + for filename in filenames: + filepath = join_path(dirpath, filename) + if os.path.islink(filepath): + tmppath = filepath + ".tmp" + # Skip dangling symbolic links + try: + shutil.copy2(filepath, tmppath) + os.remove(filepath) + os.rename(tmppath, filepath) + except: + pass + shutil.rmtree(join_path(prefix, "tmp")) diff --git a/var/spack/repos/builtin/packages/charm/strictpass.patch b/var/spack/repos/builtin/packages/charm/strictpass.patch new file mode 100644 index 0000000000..44aa4fbd38 --- /dev/null +++ b/var/spack/repos/builtin/packages/charm/strictpass.patch @@ -0,0 +1,16 @@ +--- old/src/scripts/configure ++++ new/src/scripts/configure +@@ -2146,13 +2146,6 @@ + test_result $? "$1" "$2" "$3" + strictpass=$pass + strictfail=$fail +- if test $pass -eq 1 +- then +- if cat out | grep -i "warn" > /dev/null 2>&1 +- then +- strictpass="0" && strictfail="1" +- fi +- fi + cat out >> $charmout + /bin/rm -f out + } diff --git a/var/spack/repos/builtin/packages/cityhash/package.py b/var/spack/repos/builtin/packages/cityhash/package.py index d6d7f51558..85d948cc57 100644 --- a/var/spack/repos/builtin/packages/cityhash/package.py +++ b/var/spack/repos/builtin/packages/cityhash/package.py @@ -27,6 +27,8 @@ from spack.util.environment import * class Cityhash(Package): + """CityHash, a family of hash functions for strings.""" + homepage = "https://github.com/google/cityhash" url = "https://github.com/google/cityhash" diff --git a/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch new file mode 100644 index 0000000000..ca1d96574a --- /dev/null +++ b/var/spack/repos/builtin/packages/clhep/darwin/CLHEP.patch @@ -0,0 +1,11 @@ +--- CLHEP/CMakeLists.txt 2016-06-20 14:41:12.000000000 -0500 ++++ CLHEP/CMakeLists.txt 2016-06-20 14:40:57.000000000 -0500 +@@ -37,7 +37,7 @@ + # If Policy CMP0042 exists, use OLD to prefer the use of install names + # instead of the new @rpath default. + if(POLICY CMP0042) +- cmake_policy(SET CMP0042 NEW) ++ cmake_policy(SET CMP0042 OLD) + endif() + + set(CMAKE_MODULE_PATH diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py new file mode 100644 index 0000000000..02a9da9e27 --- /dev/null +++ b/var/spack/repos/builtin/packages/clhep/package.py @@ -0,0 +1,81 @@ +############################################################################## +# 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 Clhep(Package): + """CLHEP is a C++ Class Library for High Energy Physics. """ + homepage = "http://proj-clhep.web.cern.ch/proj-clhep/" + url = "http://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/tarFiles/clhep-2.2.0.5.tgz" + list_url = "https://proj-clhep.web.cern.ch/proj-clhep/DISTRIBUTION/" + + version('2.3.2.2', '567b304b0fa017e1e9fbf199f456ebe9') + version('2.3.1.1', '16efca7641bc118c9d217cc96fe90bf5') + version('2.3.1.0', 'b084934fc26a4182a08c09c292e19161') + version('2.3.0.0', 'a00399a2ca867f2be902c22fc71d7e2e') + version('2.2.0.8', '5a23ed3af785ac100a25f6cb791846af') + version('2.2.0.5', '1584e8ce6ebf395821aed377df315c7c') + version('2.2.0.4', '71d2c7c2e39d86a0262e555148de01c1') + + variant('debug', default=False, description="Switch to the debug version of CLHEP.") + variant('cxx11', default=True, description="Compile using c++11 dialect.") + variant('cxx14', default=False, description="Compile using c++14 dialect.") + + depends_on('cmake@2.8.12.2:', when='@2.2.0.4:2.3.0.0', type='build') + depends_on('cmake@3.2:', when='@2.3.0.1:', type='build') + + def patch(self): + filter_file('SET CMP0042 OLD', + 'SET CMP0042 NEW', + '%s/%s/CLHEP/CMakeLists.txt' + % (self.stage.path, self.spec.version)) + + def install(self, spec, prefix): + # Handle debug + # Pull out the BUILD_TYPE so we can change it (Release is default) + cmake_args = [arg for arg in std_cmake_args if 'BUILD_TYPE' not in arg] + build_type = 'Debug' if '+debug' in spec else 'MinSizeRel' + cmake_args.extend(['-DCMAKE_BUILD_TYPE=' + build_type]) + + if '+cxx11' in spec: + env['CXXFLAGS'] = self.compiler.cxx11_flag + cmake_args.append('-DCLHEP_BUILD_CXXSTD=' + + self.compiler.cxx11_flag) + + if '+cxx14' in spec: + env['CXXFLAGS'] = self.compiler.cxx14_flag + cmake_args.append('-DCLHEP_BUILD_CXXSTD=' + + self.compiler.cxx14_flag) + + # Note that the tar file is unusual in that there's a + # CLHEP directory (addtional layer) + cmake_args.append("../CLHEP") + + # Run cmake in a build directory + with working_dir('build', create=True): + cmake(*cmake_args) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch b/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch new file mode 100644 index 0000000000..afe6f871ec --- /dev/null +++ b/var/spack/repos/builtin/packages/cmake/intel-c-gnu11.patch @@ -0,0 +1,23 @@ +diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake +index eb9602a..edca154 100644 +--- a/Modules/Compiler/Intel-C.cmake ++++ b/Modules/Compiler/Intel-C.cmake +@@ -16,14 +16,14 @@ endif() + + if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0) + set(CMAKE_C11_STANDARD_COMPILE_OPTION "${_std}=c11") +- set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=c11") ++ set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=gnu11") + endif() + +-if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1) ++if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0) + set(CMAKE_C90_STANDARD_COMPILE_OPTION "${_std}=c89") +- set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=c89") ++ set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=gnu89") + set(CMAKE_C99_STANDARD_COMPILE_OPTION "${_std}=c99") +- set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=c99") ++ set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=gnu99") + endif() + + if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1) diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 90a7c20d19..93bdb72050 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -31,6 +31,7 @@ class Cmake(Package): homepage = 'https://www.cmake.org' url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz' + version('3.6.1', 'd6dd661380adacdb12f41b926ec99545') version('3.6.0', 'aa40fbecf49d99c083415c2411d12db9') version('3.5.2', '701386a1b5ec95f8d1075ecf96383e02') version('3.5.1', 'ca051f4a66375c89d1a524e726da0296') @@ -41,19 +42,28 @@ class Cmake(Package): version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f') version('2.8.10.2', '097278785da7182ec0aea8769d06860c') - variant('ncurses', default=True, - description='Enables the build of the ncurses gui') - variant('openssl', default=True, - description="Enables CMake's OpenSSL features") - variant('qt', default=False, description='Enables the build of cmake-gui') - variant('doc', default=False, - description='Enables the generation of html and man page docs') - - depends_on('ncurses', when='+ncurses') - depends_on('openssl', when='+openssl') - depends_on('qt', when='+qt') + variant('ownlibs', default=True, description='Use CMake-provided third-party libraries') + variant('qt', default=False, description='Enables the build of cmake-gui') + variant('doc', default=False, description='Enables the generation of html and man page documentation') + variant('openssl', default=True, description="Enables CMake's OpenSSL features") + variant('ncurses', default=True, description='Enables the build of the ncurses gui') + + depends_on('curl', when='~ownlibs') + depends_on('expat', when='~ownlibs') + # depends_on('jsoncpp', when='~ownlibs') # circular dependency + depends_on('zlib', when='~ownlibs') + depends_on('bzip2', when='~ownlibs') + depends_on('xz', when='~ownlibs') + depends_on('libarchive', when='~ownlibs') + depends_on('qt', when='+qt') depends_on('python@2.7.11:', when='+doc', type='build') - depends_on('py-sphinx', when='+doc', type='build') + depends_on('py-sphinx', when='+doc', type='build') + depends_on('openssl', when='+openssl') + depends_on('ncurses', when='+ncurses') + + # Cannot build with Intel, should be fixed in 3.6.2 + # https://gitlab.kitware.com/cmake/cmake/issues/16226 + patch('intel-c-gnu11.patch', when='@3.6.0:3.6.1') def url_for_version(self, version): """Handle CMake's version-based custom URLs.""" @@ -76,12 +86,27 @@ class Cmake(Package): # Consistency check self.validate(spec) - # configure, build, install: - options = ['--prefix=%s' % prefix] - options.append('--parallel=%s' % str(make_jobs)) + options = [ + '--prefix={0}'.format(prefix), + '--parallel={0}'.format(make_jobs)] + if spec.satisfies("@3:"): + options.append( + # jsoncpp requires CMake to build + # use CMake-provided library to avoid circular dependency + '--no-system-jsoncpp' + ) + + if '+ownlibs' in spec: + # Build and link to the CMake-provided third-party libraries + options.append('--no-system-libs') + else: + # Build and link to the Spack-installed third-party libraries + options.append('--system-libs') if '+qt' in spec: options.append('--qt-gui') + else: + options.append('--no-qt-gui') if '+doc' in spec: options.append('--sphinx-html') @@ -91,6 +116,10 @@ class Cmake(Package): options.append('--') options.append('-DCMAKE_USE_OPENSSL=ON') - configure(*options) + bootstrap = Executable('./bootstrap') + bootstrap(*options) + make() + if self.run_tests: + make('test') # some tests fail, takes forever make('install') diff --git a/var/spack/repos/builtin/packages/compiz/package.py b/var/spack/repos/builtin/packages/compiz/package.py new file mode 100644 index 0000000000..ec21f5b4f2 --- /dev/null +++ b/var/spack/repos/builtin/packages/compiz/package.py @@ -0,0 +1,63 @@ +############################################################################## +# 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 Compiz(Package): + """compiz - OpenGL window and compositing manager. + + Compiz is an OpenGL compositing manager that use + GLX_EXT_texture_from_pixmap for binding redirected top-level + windows to texture objects. It has a flexible plug-in system + and it is designed to run well on most graphics hardware.""" + + homepage = "http://www.compiz.org/" + url = "https://www.x.org/archive/individual/app/compiz-0.7.8.tar.gz" + + version('0.7.8', 'e99977d9170a7bd5d571004eed038428') + + depends_on('libxcb') + depends_on('libxcomposite') + depends_on('libxfixes') + depends_on('libxdamage') + depends_on('libxrandr') + depends_on('libxinerama') + depends_on('libice') + depends_on('libsm') + depends_on('libxml2') + depends_on('libxslt') + + # TODO: add dependencies + # libstartup-notification-1.0 >= 0.7 + depends_on('libxrender') + depends_on('libpng') + depends_on('glib') + depends_on('gconf') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/compositeproto/package.py b/var/spack/repos/builtin/packages/compositeproto/package.py new file mode 100644 index 0000000000..1b3fbda0af --- /dev/null +++ b/var/spack/repos/builtin/packages/compositeproto/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 Compositeproto(Package): + """Composite Extension. + + This package contains header files and documentation for the composite + extension. Library and server implementations are separate.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/compositeproto" + url = "https://www.x.org/archive/individual/proto/compositeproto-0.4.2.tar.gz" + + version('0.4.2', '2dea7c339432b3363faf2d29c208e7b5') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/constype/package.py b/var/spack/repos/builtin/packages/constype/package.py new file mode 100644 index 0000000000..dcf88fdd55 --- /dev/null +++ b/var/spack/repos/builtin/packages/constype/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Constype(Package): + """constype prints on the standard output the Sun code for the type of + display that the specified device is. + + It was originally written for SunOS, but has been ported to other + SPARC OS'es and to Solaris on both SPARC & x86.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/constype" + url = "https://www.x.org/archive/individual/app/constype-1.0.4.tar.gz" + + version('1.0.4', '2333b9ac9fd32e58b05afa651c4590a3') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py new file mode 100644 index 0000000000..429be8542d --- /dev/null +++ b/var/spack/repos/builtin/packages/converge/package.py @@ -0,0 +1,69 @@ +############################################################################## +# 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 * +from distutils.dir_util import copy_tree +import os + + +class Converge(Package): + """CONVERGE is a revolutionary computational fluid dynamics (CFD) program + that eliminates the grid generation bottleneck from the simulation process. + CONVERGE was developed by engine simulation experts and is straightforward + to use for both engine and non-engine simulations. Unlike many CFD + programs, CONVERGE automatically generates a perfectly orthogonal, + structured grid at runtime based on simple, user-defined grid control + parameters. This grid generation method completely eliminates the need to + manually generate a grid. In addition, CONVERGE offers many other features + to expedite the setup process and to ensure that your simulations are as + computationally efficient as possible. + + Note: CONVERGE is licensed software. You will need to create an account on + the CONVERGE homepage and download CONVERGE yourself. Spack will search + your current directory for the download file. Alternatively, add this file + to a mirror so that Spack can find it. For instructions on how to set up a + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" + + homepage = "https://www.convergecfd.com/" + url = "file://%s/converge_install_2.3.16.tar.gz" % os.getcwd() + + version('2.3.16', '8b80f1e73a63181c427c7732ad279986') + + variant('mpi', default=True, description='Build with MPI support') + + # The Converge Getting Started Guide recommends: + # MPICH: 3.1.4 + # HP-MPI: 2.0.3+ + # OpenMPI: 1.6.* + depends_on('mpi', when='+mpi') + + # Licensing + license_required = True + license_comment = '#' + license_files = ['license/license.lic'] + license_vars = ['RLM_LICENSE'] + license_url = 'http://www.reprisesoftware.com/RLM_License_Administration.pdf' + + def install(self, spec, prefix): + copy_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 5f59286323..3a175ea1a2 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -42,24 +42,23 @@ class Cp2k(Package): variant('mpi', default=True, description='Enable MPI support') variant('plumed', default=False, description='Enable PLUMED support') - depends_on('python') # Build dependency + depends_on('python', type='build') depends_on('lapack') depends_on('blas') depends_on('fftw') + depends_on('libint@:1.2', when='@3.0') depends_on('mpi', when='+mpi') depends_on('scalapack', when='+mpi') depends_on('plumed+shared+mpi', when='+plumed+mpi') depends_on('plumed+shared~mpi', when='+plumed~mpi') + depends_on('pexsi', when='+mpi') + depends_on('wannier90', when='+mpi') + depends_on('elpa', when='+mpi') - # TODO : add dependency on libint # TODO : add dependency on libsmm, libxsmm - # TODO : add dependency on elpa # TODO : add dependency on CUDA - # TODO : add dependency on PEXSI - # TODO : add dependency on QUIP - # TODO : add dependency on libwannier90 parallel = False @@ -88,14 +87,20 @@ class Cp2k(Package): } cppflags = [ '-D__FFTW3', + '-D__LIBINT', '-I' + spec['fftw'].prefix.include ] fcflags = copy.deepcopy(optflags[self.spec.compiler.name]) fcflags.extend([ '-I' + spec['fftw'].prefix.include ]) - ldflags = ['-L' + spec['fftw'].prefix.lib] - libs = [] + fftw = find_libraries(['libfftw3'], root=spec['fftw'].prefix.lib) + ldflags = [fftw.search_flags] + libs = [ + join_path(spec['libint'].prefix.lib, 'libint.so'), + join_path(spec['libint'].prefix.lib, 'libderiv.so'), + join_path(spec['libint'].prefix.lib, 'libr12.so') + ] if '+plumed' in self.spec: # Include Plumed.inc in the Makefile mkf.write('include {0}\n'.format( @@ -108,7 +113,8 @@ class Cp2k(Package): # Add required macro cppflags.extend(['-D__PLUMED2']) libs.extend([ - join_path(self.spec['plumed'].prefix.lib, 'libplumed.so') + join_path(self.spec['plumed'].prefix.lib, + 'libplumed.{0}'.format(dso_suffix)) ]) mkf.write('CC = {0.compiler.cc}\n'.format(self)) @@ -142,23 +148,47 @@ class Cp2k(Package): if '+mpi' in self.spec: cppflags.extend([ '-D__parallel', + '-D__LIBPEXSI', + '-D__WANNIER90', + '-D__ELPA3', '-D__SCALAPACK' ]) - ldflags.extend([ - '-L' + spec['scalapack'].prefix.lib + fcflags.extend([ + '-I' + join_path( + spec['elpa'].prefix, + 'include', + 'elpa-{0}'.format(str(spec['elpa'].version)), + 'modules' + ), + '-I' + join_path(spec['pexsi'].prefix, 'fortran') ]) - libs.extend(spec['scalapack'].scalapack_shared_libs) - + scalapack = spec['scalapack'].scalapack_libs + ldflags.append(scalapack.search_flags) + libs.extend([ + join_path(spec['elpa'].prefix.lib, + 'libelpa.{0}'.format(dso_suffix)), + join_path(spec['wannier90'].prefix.lib, 'libwannier.a'), + join_path(spec['pexsi'].prefix.lib, 'libpexsi.a'), + join_path(spec['superlu-dist'].prefix.lib, + 'libsuperlu_dist.a'), + join_path( + spec['parmetis'].prefix.lib, + 'libparmetis.{0}'.format(dso_suffix) + ), + join_path( + spec['metis'].prefix.lib, + 'libmetis.{0}'.format(dso_suffix) + ), + ]) + libs.extend(scalapack) + libs.extend(self.spec['mpi'].mpicxx_shared_libs) + libs.extend(self.compiler.stdcxx_libs) # LAPACK / BLAS - ldflags.extend([ - '-L' + spec['lapack'].prefix.lib, - '-L' + spec['blas'].prefix.lib - ]) - libs.extend([ - join_path(spec['fftw'].prefix.lib, 'libfftw3.so'), - spec['lapack'].lapack_shared_lib, - spec['blas'].blas_shared_lib - ]) + lapack = spec['lapack'].lapack_libs + blas = spec['blas'].blas_libs + + ldflags.append((lapack + blas).search_flags) + libs.extend([str(x) for x in (fftw, lapack, blas)]) # Write compiler flags to file mkf.write('CPPFLAGS = {0}\n'.format(' '.join(cppflags))) diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py index e9294a14a6..c92f262a9a 100644 --- a/var/spack/repos/builtin/packages/cryptopp/package.py +++ b/var/spack/repos/builtin/packages/cryptopp/package.py @@ -36,12 +36,15 @@ class Cryptopp(Package): """ homepage = "http://www.cryptopp.com" - base_url = "http://www.cryptopp.com" version('5.6.3', '3c5b70e2ec98b7a24988734446242d07') version('5.6.2', '7ed022585698df48e65ce9218f6c6a67') version('5.6.1', '96cbeba0907562b077e26bcffb483828') + def url_for_version(self, version): + url = "{0}/{1}{2}.zip" + return url.format(self.homepage, self.name, version.joined) + def install(self, spec, prefix): make() @@ -51,7 +54,3 @@ class Cryptopp(Package): mkdirp(prefix.lib) install('libcryptopp.a', prefix.lib) - - def url_for_version(self, version): - version_string = str(version).replace('.', '') - return '%s/cryptopp%s.zip' % (Cryptopp.base_url, version_string) diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py index 09237f87c3..9cea3c40e8 100644 --- a/var/spack/repos/builtin/packages/cube/package.py +++ b/var/spack/repos/builtin/packages/cube/package.py @@ -22,13 +22,11 @@ # 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 Cube(Package): - """ - Cube the profile viewer for Score-P and Scalasca profiles. It displays a + """Cube the profile viewer for Score-P and Scalasca profiles. It displays a multi-dimensional performance space consisting of the dimensions: - performance metric - call path @@ -45,14 +43,19 @@ class Cube(Package): version('4.2.3', '8f95b9531f5a8f8134f279c2767c9b20', url="http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz") - # TODO : add variant that builds GUI on top of Qt + variant('gui', default=False, description='Build CUBE GUI') depends_on('zlib') + depends_on('qt@4.6:', when='+gui') def install(self, spec, prefix): configure_args = ["--prefix=%s" % prefix, - "--without-paraver", - "--without-gui"] + "--without-paraver"] + + # TODO : need to handle cross compiling build + if '+gui' not in spec: + configure_args.append('--without-gui') + configure(*configure_args) - make(parallel=False) + make() make("install", parallel=False) diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index 558535bec6..36cf3058d7 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -39,7 +39,7 @@ class Cuda(Package): Type, select runfile and click Download. Spack will search your current directory for this file. Alternatively, add this file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html. Note: This package does not currently install the drivers necessary to run CUDA. These will need to be installed manually. See: diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py index 4954e435c0..a22ac52714 100644 --- a/var/spack/repos/builtin/packages/curl/package.py +++ b/var/spack/repos/builtin/packages/curl/package.py @@ -32,6 +32,8 @@ class Curl(Package): homepage = "http://curl.haxx.se" url = "http://curl.haxx.se/download/curl-7.46.0.tar.bz2" + version('7.50.3', 'bd177fd6deecce00cfa7b5916d831c5e') + version('7.50.2', '6e161179f7af4b9f8b6ea21420132719') version('7.50.1', '015f6a0217ca6f2c5442ca406476920b') version('7.49.1', '6bb1f7af5b58b30e4e6414b8c1abccab') version('7.47.1', '9ea3123449439bbd960cd25cf98796fb') diff --git a/var/spack/repos/builtin/packages/daal/package.py b/var/spack/repos/builtin/packages/daal/package.py index e13dd80e19..35cb6cbce8 100644 --- a/var/spack/repos/builtin/packages/daal/package.py +++ b/var/spack/repos/builtin/packages/daal/package.py @@ -9,7 +9,7 @@ class Daal(IntelInstaller): Note: You will have to add the download file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html""" + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "https://software.intel.com/en-us/daal" diff --git a/var/spack/repos/builtin/packages/damageproto/package.py b/var/spack/repos/builtin/packages/damageproto/package.py new file mode 100644 index 0000000000..84e0fac311 --- /dev/null +++ b/var/spack/repos/builtin/packages/damageproto/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 Damageproto(Package): + """X Damage Extension. + + This package contains header files and documentation for the X Damage + extension. Library and server implementations are separate.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/damageproto" + url = "https://www.x.org/releases/individual/proto/damageproto-1.2.1.tar.gz" + + version('1.2.1', 'bf8c47b7f48625230cff155180f8ddce') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py new file mode 100644 index 0000000000..640573fdc1 --- /dev/null +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -0,0 +1,65 @@ +# +# 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 DarshanRuntime(Package): + """Darshan (runtime) is a scalable HPC I/O characterization tool + designed to capture an accurate picture of application I/O behavior, + including properties such as patterns of access within files, with + minimum overhead. DarshanRuntime package should be installed on + systems where you intend to instrument MPI applications.""" + + homepage = "http://www.mcs.anl.gov/research/projects/darshan/" + url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" + + version('3.1.0', '439d717323e6265b2612ed127886ae52') + version('3.0.0', '732577fe94238936268d74d7d74ebd08') + + depends_on('mpi') + depends_on('zlib') + + variant('slurm', default=False, description='Use Slurm Job ID') + variant('cobalt', default=False, description='Use Coblat Job Id') + variant('pbs', default=False, description='Use PBS Job Id') + + def install(self, spec, prefix): + + job_id = 'NONE' + if '+slurm' in spec: + job_id = 'SLURM_JOBID' + if '+cobalt' in spec: + job_id = 'COBALT_JOBID' + if '+pbs' in spec: + job_id = 'PBS_JOBID' + + # TODO: BG-Q and other platform configure options + options = ['CC=%s' % spec['mpi'].mpicc, + '--with-mem-align=8', + '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH', + '--with-jobid-env=%s' % job_id, + '--with-zlib=%s' % spec['zlib'].prefix] + + with working_dir('spack-build', create=True): + configure = Executable('../darshan-runtime/configure') + configure('--prefix=%s' % prefix, *options) + make() + make('install') + + def setup_environment(self, spack_env, run_env): + # default path for log file, could be user or site specific setting + darshan_log_dir = '%s' % os.environ['HOME'] + run_env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir) diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py new file mode 100644 index 0000000000..3446104a83 --- /dev/null +++ b/var/spack/repos/builtin/packages/darshan-util/package.py @@ -0,0 +1,41 @@ +# +# 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 DarshanUtil(Package): + """Darshan (util) is collection of tools for parsing and summarizing log + files produced by Darshan (runtime) instrumentation. This package is + typically installed on systems (front-end) where you intend to analyze + log files produced by Darshan (runtime).""" + + homepage = "http://www.mcs.anl.gov/research/projects/darshan/" + url = "ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" + + version('3.1.0', '439d717323e6265b2612ed127886ae52') + version('3.0.0', '732577fe94238936268d74d7d74ebd08') + + depends_on('zlib') + + def install(self, spec, prefix): + + options = ['CC=%s' % self.compiler.cc, + '--with-zlib=%s' % spec['zlib'].prefix] + + with working_dir('spack-build', create=True): + configure = Executable('../darshan-util/configure') + configure('--prefix=%s' % prefix, *options) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/datamash/package.py b/var/spack/repos/builtin/packages/datamash/package.py index ef30c50ebe..85adeca996 100644 --- a/var/spack/repos/builtin/packages/datamash/package.py +++ b/var/spack/repos/builtin/packages/datamash/package.py @@ -26,8 +26,7 @@ from spack import * class Datamash(Package): - """ - GNU datamash is a command-line program which performs basic numeric, + """GNU datamash is a command-line program which performs basic numeric, textual and statistical operations on input textual data files. """ diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 939d8fc013..563f751e0b 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -23,15 +23,19 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import sys -class Dealii(Package): +class Dealii(CMakePackage): """C++ software library providing well-documented tools to build finite element codes for a broad variety of PDEs.""" homepage = "https://www.dealii.org" url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz" + # Don't add RPATHs to this package for the full build DAG. + # only add for immediate deps. + transitive_rpaths = False + + version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7') version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d') version('8.4.0', 'ac5dbf676096ff61e092ce98c80c2b00') version('8.3.0', 'fc6cdcb16309ef4bea338a4f014de6fa') @@ -67,11 +71,11 @@ class Dealii(Package): # Boost 1.58 is blacklisted, see # https://github.com/dealii/dealii/issues/1591 # Require at least 1.59 - # +python won't affect @:8.4.1 + # +python won't affect @:8.4.2 depends_on("boost@1.59.0:+thread+system+serialization+iostreams", - when='@:8.4.1~mpi') + when='@:8.4.2~mpi') depends_on("boost@1.59.0:+thread+system+serialization+iostreams+mpi", - when='@:8.4.1+mpi') + when='@:8.4.2+mpi') # since @8.5.0: (and @develop) python bindings are introduced: depends_on("boost@1.59.0:+thread+system+serialization+iostreams", when='@8.5.0:~mpi~python') @@ -102,8 +106,9 @@ class Dealii(Package): depends_on("netcdf-cxx", when='+netcdf+mpi') depends_on("oce", when='+oce') depends_on("p4est", when='+p4est+mpi') - depends_on("petsc+mpi", when='@8.5.0:+petsc+mpi') - depends_on("slepc", when='@8.5.0:+slepc+petsc+mpi') + depends_on("petsc+mpi", when='@8.4.2:+petsc+mpi') + depends_on('python', when='@8.5.0:+python') + depends_on("slepc", when='@8.4.2:+slepc+petsc+mpi') depends_on("petsc@:3.6.4+mpi", when='@:8.4.1+petsc+mpi') depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi') depends_on("trilinos", when='+trilinos+mpi') @@ -112,18 +117,16 @@ class Dealii(Package): depends_on("numdiff", when='@develop') depends_on("astyle@2.04", when='@develop') - def install(self, spec, prefix): - options = [] - options.extend(std_cmake_args) - + def build_type(self): # CMAKE_BUILD_TYPE should be DebugRelease | Debug | Release - for word in options[:]: - if word.startswith('-DCMAKE_BUILD_TYPE'): - options.remove(word) + return 'DebugRelease' - dsuf = 'dylib' if sys.platform == 'darwin' else 'so' + def cmake_args(self): + spec = self.spec + options = [] + + lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs options.extend([ - '-DCMAKE_BUILD_TYPE=DebugRelease', '-DDEAL_II_COMPONENT_EXAMPLES=ON', '-DDEAL_II_WITH_THREADS:BOOL=ON', '-DBOOST_DIR=%s' % spec['boost'].prefix, @@ -134,9 +137,7 @@ class Dealii(Package): '-DLAPACK_FOUND=true', '-DLAPACK_INCLUDE_DIRS=%s;%s' % ( spec['lapack'].prefix.include, spec['blas'].prefix.include), - '-DLAPACK_LIBRARIES=%s;%s' % ( - spec['lapack'].lapack_shared_lib, - spec['blas'].blas_shared_lib), + '-DLAPACK_LIBRARIES=%s' % lapack_blas.joined(';'), '-DMUPARSER_DIR=%s' % spec['muparser'].prefix, '-DUMFPACK_DIR=%s' % spec['suite-sparse'].prefix, '-DTBB_DIR=%s' % spec['tbb'].prefix, @@ -210,9 +211,9 @@ class Dealii(Package): '-DNETCDF_FOUND=true', '-DNETCDF_LIBRARIES=%s;%s' % ( join_path(spec['netcdf-cxx'].prefix.lib, - 'libnetcdf_c++.%s' % dsuf), + 'libnetcdf_c++.%s' % dso_suffix), join_path(spec['netcdf'].prefix.lib, - 'libnetcdf.%s' % dsuf)), + 'libnetcdf.%s' % dso_suffix)), '-DNETCDF_INCLUDE_DIRS=%s;%s' % ( spec['netcdf-cxx'].prefix.include, spec['netcdf'].prefix.include), @@ -233,124 +234,7 @@ class Dealii(Package): '-DDEAL_II_WITH_OPENCASCADE=OFF' ]) - cmake('.', *options) - make() - if self.run_tests: - make("test") - make("install") - - # run some MPI examples with different solvers from PETSc and Trilinos - if self.run_tests: - env['DEAL_II_DIR'] = prefix - print('=====================================') - print('============ EXAMPLES ===============') - print('=====================================') - # take bare-bones step-3 - print('=====================================') - print('============ Step-3 =================') - print('=====================================') - with working_dir('examples/step-3'): - cmake('.') - make('release') - make('run', parallel=False) - - # An example which uses Metis + PETSc - # FIXME: switch step-18 to MPI - with working_dir('examples/step-18'): - print('=====================================') - print('============= Step-18 ===============') - print('=====================================') - # list the number of cycles to speed up - filter_file(r'(end_time = 10;)', ('end_time = 3;'), - 'step-18.cc') - if '^petsc' in spec and '^metis' in spec: - cmake('.') - make('release') - make('run', parallel=False) - - # take step-40 which can use both PETSc and Trilinos - # FIXME: switch step-40 to MPI run - with working_dir('examples/step-40'): - print('=====================================') - print('========== Step-40 PETSc ============') - print('=====================================') - # list the number of cycles to speed up - filter_file(r'(const unsigned int n_cycles = 8;)', - ('const unsigned int n_cycles = 2;'), 'step-40.cc') - cmake('.') - if '^petsc' in spec: - make('release') - make('run', parallel=False) - - print('=====================================') - print('========= Step-40 Trilinos ==========') - print('=====================================') - # change Linear Algebra to Trilinos - # The below filter_file should be different for versions - # before and after 8.4.0 - if spec.satisfies('@8.4.0:'): - filter_file(r'(\/\/ #define FORCE_USE_OF_TRILINOS.*)', - ('#define FORCE_USE_OF_TRILINOS'), - 'step-40.cc') - else: - filter_file(r'(#define USE_PETSC_LA.*)', - ('// #define USE_PETSC_LA'), 'step-40.cc') - if '^trilinos+hypre' in spec: - make('release') - make('run', parallel=False) - - # the rest of the tests on step 40 only works for - # dealii version 8.4.0 and after - if spec.satisfies('@8.4.0:'): - print('=====================================') - print('=== Step-40 Trilinos SuperluDist ====') - print('=====================================') - # change to direct solvers - filter_file(r'(LA::SolverCG solver\(solver_control\);)', ('TrilinosWrappers::SolverDirect::AdditionalData data(false,"Amesos_Superludist"); TrilinosWrappers::SolverDirect solver(solver_control,data);'), 'step-40.cc') # noqa - filter_file( - r'(LA::MPI::PreconditionAMG preconditioner;)', - (''), 'step-40.cc') - filter_file( - r'(LA::MPI::PreconditionAMG::AdditionalData data;)', - (''), 'step-40.cc') - filter_file( - r'(preconditioner.initialize\(system_matrix, data\);)', - (''), 'step-40.cc') - filter_file( - r'(solver\.solve \(system_matrix, completely_distributed_solution, system_rhs,)', ('solver.solve (system_matrix, completely_distributed_solution, system_rhs);'), 'step-40.cc') # noqa - filter_file( - r'(preconditioner\);)', (''), 'step-40.cc') - if '^trilinos+superlu-dist' in spec: - make('release') - make('run', paralle=False) - - print('=====================================') - print('====== Step-40 Trilinos MUMPS =======') - print('=====================================') - # switch to Mumps - filter_file(r'(Amesos_Superludist)', - ('Amesos_Mumps'), 'step-40.cc') - if '^trilinos+mumps' in spec: - make('release') - make('run', parallel=False) - - print('=====================================') - print('============ Step-36 ================') - print('=====================================') - with working_dir('examples/step-36'): - if 'slepc' in spec: - cmake('.') - make('release') - make('run', parallel=False) - - print('=====================================') - print('============ Step-54 ================') - print('=====================================') - with working_dir('examples/step-54'): - if 'oce' in spec: - cmake('.') - make('release') - make('run', parallel=False) + return options def setup_environment(self, spack_env, env): env.set('DEAL_II_DIR', self.prefix) diff --git a/var/spack/repos/builtin/packages/dmxproto/package.py b/var/spack/repos/builtin/packages/dmxproto/package.py new file mode 100644 index 0000000000..34213bba5f --- /dev/null +++ b/var/spack/repos/builtin/packages/dmxproto/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 Dmxproto(Package): + """Distributed Multihead X (DMX) Extension. + + This extension defines a protocol for clients to access a front-end proxy + X server that controls multiple back-end X servers making up a large + display.""" + + homepage = "http://dmx.sourceforge.net/" + url = "https://www.x.org/archive/individual/proto/dmxproto-2.3.1.tar.gz" + + version('2.3.1', '7c52af95aac192e8de31bd9a588ce121') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/dri2proto/package.py b/var/spack/repos/builtin/packages/dri2proto/package.py index 65b86714f1..d05e7ea231 100644 --- a/var/spack/repos/builtin/packages/dri2proto/package.py +++ b/var/spack/repos/builtin/packages/dri2proto/package.py @@ -26,14 +26,21 @@ from spack import * class Dri2proto(Package): - """DRI2 Protocol Headers.""" - homepage = "http://http://cgit.freedesktop.org/xorg/proto/dri2proto/" - url = "http://xorg.freedesktop.org/releases/individual/proto/dri2proto-2.8.tar.gz" + """Direct Rendering Infrastructure 2 Extension. + + This extension defines a protocol to securely allow user applications to + access the video hardware without requiring data to be passed through the + X server.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/dri2proto/" + url = "https://www.x.org/releases/individual/proto/dri2proto-2.8.tar.gz" version('2.8', '19ea18f63d8ae8053c9fa84b60365b77') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) - make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/dri3proto/package.py b/var/spack/repos/builtin/packages/dri3proto/package.py new file mode 100644 index 0000000000..cd2594d5da --- /dev/null +++ b/var/spack/repos/builtin/packages/dri3proto/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 Dri3proto(Package): + """Direct Rendering Infrastructure 3 Extension. + + This extension defines a protocol to securely allow user applications to + access the video hardware without requiring data to be passed through the + X server.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/dri3proto/" + url = "https://www.x.org/releases/individual/proto/dri3proto-1.0.tar.gz" + + version('1.0', '25e84a49a076862277ee12aebd49ff5f') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 90c83bdc3a..420ab0fc68 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -28,10 +28,20 @@ from spack import * class Dyninst(Package): """API for dynamic binary instrumentation. Modify programs while they are executing without recompiling, re-linking, or re-executing.""" + homepage = "https://paradyn.org" - url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz" + url = "https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz" list_url = "http://www.dyninst.org/downloads/dyninst-8.x" + # version 9.2.1b was the latest git commit when trying to port to a + # ppc64le system to get fixes in computeAddrWidth independent of + # endianness. This version can be removed if the next release includes + # this change. The actual commit was + # b8596ad4023ec40ac07e669ff8ea3ec06e262703 + version('9.2.1b', git='https://github.com/dyninst/dyninst.git', + commit='859cb778e20b619443c943c96dd1851da763142b') + version('9.2.0', 'ad023f85e8e57837ed9de073b59d6bab', + url="https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz") version('9.1.0', '5c64b77521457199db44bec82e4988ac', url="http://www.paradyn.org/release9.1.0/DyninstAPI-9.1.0.tgz") version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7', @@ -41,30 +51,44 @@ class Dyninst(Package): version('8.1.1', 'd1a04e995b7aa70960cd1d1fac8bd6ac', url="http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz") + variant('stat_dysect', default=False, + description="patch for STAT's DySectAPI") + depends_on("libelf") depends_on("libdwarf") depends_on("boost@1.42:") depends_on('cmake', type='build') + patch('stat_dysect.patch', when='+stat_dysect') + patch('stackanalysis_h.patch', when='@9.2.0') + # new version uses cmake def install(self, spec, prefix): + if spec.satisfies('@:8.1'): + configure("--prefix=" + prefix) + make() + make("install") + return + libelf = spec['libelf'].prefix libdwarf = spec['libdwarf'].prefix with working_dir('spack-build', create=True): - cmake('..', - '-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include, - '-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib, - '-DBoost_NO_SYSTEM_PATHS=TRUE', - '-DLIBELF_INCLUDE_DIR=%s' % join_path( - libelf.include, 'libelf'), - '-DLIBELF_LIBRARIES=%s' % join_path( - libelf.lib, 'libelf.so'), - '-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include, - '-DLIBDWARF_LIBRARIES=%s' % join_path( - libdwarf.lib, 'libdwarf.so'), - *std_cmake_args) - + args = ['..', + '-DBoost_INCLUDE_DIR=%s' % spec['boost'].prefix.include, + '-DBoost_LIBRARY_DIR=%s' % spec['boost'].prefix.lib, + '-DBoost_NO_SYSTEM_PATHS=TRUE', + '-DLIBELF_INCLUDE_DIR=%s' % join_path( + libelf.include, 'libelf'), + '-DLIBELF_LIBRARIES=%s' % join_path( + libelf.lib, 'libelf.so'), + '-DLIBDWARF_INCLUDE_DIR=%s' % libdwarf.include, + '-DLIBDWARF_LIBRARIES=%s' % join_path( + libdwarf.lib, 'libdwarf.so')] + if spec.satisfies('arch=linux-redhat7-ppc64le'): + args.append('-Darch_ppc64_little_endian=1') + args += std_cmake_args + cmake(*args) make() make("install") diff --git a/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch new file mode 100644 index 0000000000..2c04d935d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/dyninst/stackanalysis_h.patch @@ -0,0 +1,11 @@ +--- a/dataflowAPI/h/stackanalysis.h 2016-06-29 14:54:14.000000000 -0700 ++++ b/dataflowAPI/h/stackanalysis.h 2016-08-02 09:50:13.619079000 -0700 +@@ -331,7 +331,7 @@ + + // To build intervals, we must replay the effect of each instruction. + // To avoid sucking enormous time, we keep those transfer functions around... +- typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs>> ++ typedef std::map<ParseAPI::Block *, std::map<Offset, TransferFuncs> > + InstructionEffects; + + DATAFLOW_EXPORT StackAnalysis(); diff --git a/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch new file mode 100644 index 0000000000..c15403683f --- /dev/null +++ b/var/spack/repos/builtin/packages/dyninst/stat_dysect.patch @@ -0,0 +1,96 @@ +From 3aebb41ce0ea5b578a1ebf6810446c660066c525 Mon Sep 17 00:00:00 2001 +From: Jesper Puge Nielsen <nielsen34@llnl.gov> +Date: Wed, 12 Aug 2015 21:07:52 -0700 +Subject: [PATCH] =?UTF-8?q?Exposed=20stackwalker=20and=20proc=20callback=20status=20to=20DySect +=20=C3c?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + dyninstAPI/h/BPatch_process.h | 13 +++++++++++++ + dyninstAPI/src/BPatch_process.C | 18 ++++++++++++++++++ + dyninstAPI/src/dynProcess.h | 3 ++- + 3 files changed, 33 insertions(+), 1 deletions(-) + +diff --git a/dyninstAPI/h/BPatch_process.h b/dyninstAPI/h/BPatch_process.h +index 5e01bbb..1316bb2 100644 +--- a/dyninstAPI/h/BPatch_process.h ++++ b/dyninstAPI/h/BPatch_process.h +@@ -225,6 +225,10 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace { + // + // this function should go away as soon as Paradyn links against Dyninst + PCProcess *lowlevel_process() const { return llproc; } ++ ++ // Expose walker from Dyninst proces ++ void *get_walker() const; ++ + // These internal funcs trigger callbacks registered to matching events + bool triggerStopThread(instPoint *intPoint, func_instance *intFunc, + int cb_ID, void *retVal); +@@ -281,6 +285,15 @@ class BPATCH_DLL_EXPORT BPatch_process : public BPatch_addressSpace { + + bool continueExecution(); + ++ // BPatch_process::keepStopped ++ // ++ // Changes the desired process stat to prevent ++ // Dyninst from resuming the process after ++ // handling the current event. ++ // Must be called from an event handler. ++ ++ void keepStopped(); ++ + // BPatch_process::terminateExecution + // + // Terminate mutatee process +diff --git a/dyninstAPI/src/BPatch_process.C b/dyninstAPI/src/BPatch_process.C +index 115f215..809e797 100644 +--- a/dyninstAPI/src/BPatch_process.C ++++ b/dyninstAPI/src/BPatch_process.C +@@ -507,6 +507,19 @@ bool BPatch_process::continueExecution() + } + + /* ++ * BPatch_process::keepStopped ++ * ++ * Changes the desired process stat to prevent ++ * Dyninst from resuming the process after ++ * handling the current event. ++ * Must be called from an event handler. ++ */ ++void BPatch_process::keepStopped() ++{ ++ llproc->setDesiredProcessState(PCProcess::ps_stopped); ++} ++ ++/* + * BPatch_process::terminateExecution + * + * Kill the thread. +@@ -1754,3 +1767,8 @@ bool BPatch_process::protectAnalyzedCode() + } + return ret; + } ++ ++void *BPatch_process::get_walker() const ++{ ++ return llproc->get_walker(); ++} +diff --git a/dyninstAPI/src/dynProcess.h b/dyninstAPI/src/dynProcess.h +index 54b0c6e..00721d1 100644 +--- a/dyninstAPI/src/dynProcess.h ++++ b/dyninstAPI/src/dynProcess.h +@@ -302,7 +302,8 @@ public: + // Stackwalking internals + bool walkStack(pdvector<Frame> &stackWalk, PCThread *thread); + bool getActiveFrame(Frame &frame, PCThread *thread); +- ++ Dyninst::Stackwalker::Walker *get_walker() { return stackwalker_; } ++ + void addSignalHandler(Address, unsigned); + bool isInSignalHandler(Address addr); + +-- +1.7.1 + diff --git a/var/spack/repos/builtin/packages/editres/package.py b/var/spack/repos/builtin/packages/editres/package.py new file mode 100644 index 0000000000..52ad33b133 --- /dev/null +++ b/var/spack/repos/builtin/packages/editres/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Editres(Package): + """Dynamic resource editor for X Toolkit applications.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/editres" + url = "https://www.x.org/archive/individual/app/editres-1.0.6.tar.gz" + + version('1.0.6', '310c504347ca499874593ac96e935353') + + depends_on('libxaw') + depends_on('libx11') + depends_on('libxt') + depends_on('libxmu') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py index 36d6850c1a..ec55d68683 100644 --- a/var/spack/repos/builtin/packages/eigen/package.py +++ b/var/spack/repos/builtin/packages/eigen/package.py @@ -26,17 +26,17 @@ from spack import * class Eigen(Package): - """ - Eigen is a C++ template library for linear algebra - - Matrices, vectors, numerical solvers, and related algorithms + """Eigen is a C++ template library for linear algebra matrices, + vectors, numerical solvers, and related algorithms. """ homepage = 'http://eigen.tuxfamily.org/' - url = 'http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2' + url = 'https://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2' - version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184', - url='http://bitbucket.org/eigen/eigen/get/3.2.7.tar.bz2') + version('3.2.10', 'a85bb68c82988648c3d53ba9768d7dcbcfe105f8') + version('3.2.9', '59ab81212f8eb2534b1545a9b42c38bf618a0d71') + version('3.2.8', '64f4aef8012a424c7e079eaf0be71793ab9bc6e0') + version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184') variant('debug', default=False, description='Builds the library in debug mode') diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py index b089e585dd..acaf863935 100644 --- a/var/spack/repos/builtin/packages/elk/package.py +++ b/var/spack/repos/builtin/packages/elk/package.py @@ -87,12 +87,12 @@ class Elk(Package): # BLAS/LAPACK support # Note: BLAS/LAPACK must be compiled with OpenMP support # if the +openmp variant is chosen - blas = 'blas.a' + blas = 'blas.a' lapack = 'lapack.a' if '+blas' in spec: - blas = spec['blas'].blas_shared_lib + blas = spec['blas'].blas_libs.joined() if '+lapack' in spec: - lapack = spec['lapack'].lapack_shared_lib + lapack = spec['lapack'].lapack_libs.joined() # lapack must come before blas config['LIB_LPK'] = ' '.join([lapack, blas]) diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index f28d63f6c3..b433bf40b0 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -34,8 +34,16 @@ class Elpa(Package): homepage = 'http://elpa.mpcdf.mpg.de/' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' - version('2015.11.001', 'de0f35b7ee7c971fd0dca35c900b87e6', - url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz') + version( + '2016.05.003', + '88a9f3f3bfb63e16509dd1be089dcf2c', + url='http://elpa.mpcdf.mpg.de/html/Releases/2016.05.003/elpa-2016.05.003.tar.gz' + ) + version( + '2015.11.001', + 'de0f35b7ee7c971fd0dca35c900b87e6', + url='http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' + ) variant('openmp', default=False, description='Activates OpenMP support') @@ -46,7 +54,24 @@ class Elpa(Package): def install(self, spec, prefix): - options = ["--prefix=%s" % prefix] + options = [ + 'CC={0}'.format(self.spec['mpi'].mpicc), + 'FC={0}'.format(self.spec['mpi'].mpifc), + 'CXX={0}'.format(self.spec['mpi'].mpicxx), + 'FCFLAGS={0}'.format( + spec['lapack'].lapack_libs.joined() + ), + 'LDFLAGS={0}'.format( + spec['lapack'].lapack_libs.joined() + ), + 'SCALAPACK_FCFLAGS={0}'.format( + spec['scalapack'].scalapack_libs.joined() + ), + 'SCALAPACK_LDFLAGS={0}'.format( + spec['scalapack'].scalapack_libs.joined() + ), + '--prefix={0}'.format(self.prefix) + ] if '+openmp' in spec: options.append("--enable-openmp") diff --git a/var/spack/repos/builtin/packages/encodings/package.py b/var/spack/repos/builtin/packages/encodings/package.py new file mode 100644 index 0000000000..67b21a6e07 --- /dev/null +++ b/var/spack/repos/builtin/packages/encodings/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Encodings(Package): + """X.org encodings font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/encodings" + url = "https://www.x.org/archive/individual/font/encodings-1.0.4.tar.gz" + + version('1.0.4', '1a631784ce204d667abcc329b851670c') + + depends_on('font-util') + + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py index 85594bab47..335fa1a3fe 100644 --- a/var/spack/repos/builtin/packages/environment-modules/package.py +++ b/var/spack/repos/builtin/packages/environment-modules/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import os class EnvironmentModules(Package): @@ -30,7 +31,7 @@ class EnvironmentModules(Package): modification of a user's environment via modulefiles.""" homepage = "https://sourceforge.net/p/modules/wiki/Home/" - url = "http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz" + url = "http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz" version('3.2.10', '8b097fdcb90c514d7540bb55a3cb90fb') @@ -40,22 +41,38 @@ class EnvironmentModules(Package): def install(self, spec, prefix): tcl_spec = spec['tcl'] + # We are looking for tclConfig.sh + tcl_config_name = 'tclConfig.sh' + tcl_config_dir_options = [tcl_spec.prefix.lib, + tcl_spec.prefix.lib64] + + tcl_config_found = False + for tcl_config_dir in tcl_config_dir_options: + tcl_config_found = os.path.exists( + join_path(tcl_config_dir, tcl_config_name)) + if tcl_config_found: + break + + if not tcl_config_found: + raise InstallError('Failed to locate ' + tcl_config_name) + # See: https://sourceforge.net/p/modules/bugs/62/ - CPPFLAGS = ['-DUSE_INTERP_ERRORLINE'] + cpp_flags = ['-DUSE_INTERP_ERRORLINE'] + config_args = [ "--without-tclx", "--with-tclx-ver=0.0", - "--prefix=%s" % prefix, + "--prefix=" + prefix, # It looks for tclConfig.sh - "--with-tcl=%s" % join_path(tcl_spec.prefix, 'lib'), - "--with-tcl-ver=%d.%d" % (tcl_spec.version.version[ - 0], tcl_spec.version.version[1]), + "--with-tcl=" + tcl_config_dir, + "--with-tcl-ver=%d.%d" % ( + tcl_spec.version.version[0], tcl_spec.version.version[1]), '--disable-debug', '--disable-dependency-tracking', '--disable-silent-rules', '--disable-versioning', - '--datarootdir=%s' % prefix.share, - 'CPPFLAGS=%s' % ' '.join(CPPFLAGS) + '--datarootdir=' + prefix.share, + 'CPPFLAGS=' + ' '.join(cpp_flags) ] configure(*config_args) diff --git a/var/spack/repos/builtin/packages/espresso/package.py b/var/spack/repos/builtin/packages/espresso/package.py index 447964f286..d2c825513c 100644 --- a/var/spack/repos/builtin/packages/espresso/package.py +++ b/var/spack/repos/builtin/packages/espresso/package.py @@ -23,17 +23,16 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * - import os class Espresso(Package): - """ - QE is an integrated suite of Open-Source computer codes for + """QE is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials. """ + homepage = 'http://quantum-espresso.org' url = 'http://www.qe-forge.org/gf/download/frsrelease/204/912/espresso-5.3.0.tar.gz' @@ -89,7 +88,7 @@ class Espresso(Package): # Add a list of directories to search search_list = [] - for name, dependency_spec in spec.dependencies.iteritems(): + for dependency_spec in spec.dependencies(): search_list.extend([dependency_spec.prefix.lib, dependency_spec.prefix.lib64]) diff --git a/var/spack/repos/builtin/packages/etsf_io/package.py b/var/spack/repos/builtin/packages/etsf_io/package.py new file mode 100644 index 0000000000..c1e6f2eded --- /dev/null +++ b/var/spack/repos/builtin/packages/etsf_io/package.py @@ -0,0 +1,67 @@ +############################################################################## +# 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 EtsfIo(Package): + """ETSF_IO is a library implementing the Nanoquanta/ETSF file + format specifications. + + ETSF_IO enables an architecture-independent exchange of crystallographic + data, electronic wavefunctions, densities and potentials, as well as + spectroscopic data. It is meant to be used by quantum-physical and + quantum-chemical applications relying upon Density Functional Theory (DFT). + """ + + homepage = "http://www.etsf.eu/resources/software/libraries_and_tools" + url = "https://launchpad.net/etsf-io/1.0/1.0.4/+download/etsf_io-1.0.4.tar.gz" + + version('1.0.4', '32d0f7143278bd925b334c69fa425da1') + + depends_on("netcdf-fortran") + depends_on("hdf5+mpi~cxx", when='+mpi') # required for NetCDF-4 support + + def install(self, spec, prefix): + options = ['--prefix=%s' % prefix] + oapp = options.append + + # Specify installation directory for Fortran module files + # Default is [INCLUDEDIR/FC_TYPE] + oapp("--with-moduledir=%s" % prefix.include) + + # Netcdf4/HDF + hdf_libs = "-L%s -lhdf5_hl -lhdf5" % spec["hdf5"].prefix.lib + options.extend([ + "--with-netcdf-incs=-I%s" % spec["netcdf-fortran"].prefix.include, + "--with-netcdf-libs=-L%s -lnetcdff -lnetcdf %s" % ( + spec["netcdf-fortran"].prefix.lib, hdf_libs), + ]) + + configure(*options) + + make() + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py new file mode 100644 index 0000000000..8c49e04634 --- /dev/null +++ b/var/spack/repos/builtin/packages/everytrace-example/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 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 EverytraceExample(CMakePackage): + """Get stack trace EVERY time a program exits.""" + + homepage = "https://github.com/citibeth/everytrace-example" + version('develop', + git='https://github.com/citibeth/everytrace-example.git', + branch='develop') + + depends_on('cmake', type='build') + depends_on('everytrace+mpi+fortran') + + # Currently the only MPI this everytrace works with. + depends_on('openmpi') + + def setup_environment(self, spack_env, env): + env.prepend_path('PATH', join_path(self.prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py new file mode 100644 index 0000000000..a3f3e2cfce --- /dev/null +++ b/var/spack/repos/builtin/packages/everytrace/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 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 Everytrace(CMakePackage): + """Get stack trace EVERY time a program exits.""" + + homepage = "https://github.com/citibeth/everytrace" + url = "https://github.com/citibeth/everytrace/tarball/0.2.0" + + version('0.2.0', '2af0e5b6255064d5191accebaa70d222') + version('develop', + git='https://github.com/citibeth/everytrace.git', branch='develop') + + variant('mpi', default=True, description='Enables MPI parallelism') + variant('fortran', default=True, + description='Enable use with Fortran programs') + + depends_on('cmake', type='build') + depends_on('mpi', when='+mpi') + + def cmake_args(self): + spec = self.spec + return [ + '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'), + '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO')] + + def setup_environment(self, spack_env, env): + env.prepend_path('PATH', join_path(self.prefix, 'bin')) diff --git a/var/spack/repos/builtin/packages/evieext/package.py b/var/spack/repos/builtin/packages/evieext/package.py new file mode 100644 index 0000000000..afc0245f50 --- /dev/null +++ b/var/spack/repos/builtin/packages/evieext/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 Evieext(Package): + """Extended Visual Information Extension (XEVIE). + + This extension defines a protocol for a client to determine information + about core X visuals beyond what the core protocol provides.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/evieproto" + url = "https://www.x.org/archive/individual/proto/evieext-1.1.1.tar.gz" + + version('1.1.1', '018a7d24d0c7926d594246320bcb6a86') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch b/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch new file mode 100644 index 0000000000..014381de88 --- /dev/null +++ b/var/spack/repos/builtin/packages/exodusii/cmake-exodus.patch @@ -0,0 +1,9 @@ +diff --git a/cmake-exodus b/cmake-exodus +index 67ccd34..9b749e3 100755 +--- a/cmake-exodus ++++ b/cmake-exodus +@@ -1,3 +1,4 @@ ++#!/bin/bash + EXTRA_ARGS=$@ + + ### The following assumes you are building in a subdirectory of ACCESS Root diff --git a/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch b/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch deleted file mode 100644 index 25355269ca..0000000000 --- a/var/spack/repos/builtin/packages/exodusii/exodus-cmake.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake-exodus b/cmake-exodus -index 787fd9d..ed073a2 100755 ---- a/cmake-exodus -+++ b/cmake-exodus -@@ -1,4 +1,6 @@ --EXTRA_ARGS=$@ -+#!/bin/bash -+ -+EXTRA_ARGS=-DSEACASProj_ENABLE_CXX11=OFF - - ### Change this to point to the compilers you want to use - CC=gcc diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py index 15fe1e89a6..67024673b2 100644 --- a/var/spack/repos/builtin/packages/exodusii/package.py +++ b/var/spack/repos/builtin/packages/exodusii/package.py @@ -27,10 +27,8 @@ from spack import * # TODO: Add support for a C++11 enabled installation that filters out the # TODO: "C++11-Disabled" flag (but only if the spec compiler supports C++11). -# TODO: Add support for parallel installation that uses MPI. - -# TODO: Create installation options for NetCDF that support larger page size -# TODO: suggested by Exodus (see the repository "README" file). +# TODO: Use variant forwarding to forward the 'mpi' variant to the direct +# TODO: dependencies 'hdf5' and 'netcdf'. class Exodusii(Package): @@ -46,34 +44,43 @@ class Exodusii(Package): homepage = "https://github.com/gsjaardema/seacas" url = "https://github.com/gsjaardema/seacas/archive/master.zip" - version('2016-02-08', - git='https://github.com/gsjaardema/seacas.git', commit='dcf3529') + version('2016-08-09', git='https://github.com/gsjaardema/seacas.git', commit='2ffeb1b') - depends_on('cmake@2.8.7:', type='build') - depends_on('hdf5~shared~mpi') - depends_on('netcdf~mpi') + variant('mpi', default=True, description='Enables MPI parallelism.') - patch('exodus-cmake.patch') + depends_on('cmake@2.8.11:', type='build') + depends_on('mpi', when='+mpi') - def patch(self): - ff = FileFilter('cmake-exodus') + # https://github.com/gsjaardema/seacas/blob/master/NetCDF-Mapping.md + depends_on('netcdf maxdims=65536 maxvars=524288') + depends_on('hdf5+shared') - ff.filter('CMAKE_INSTALL_PREFIX:PATH=${ACCESS}', - 'CMAKE_INSTALL_PREFIX:PATH=%s' % self.spec.prefix, - string=True) - ff.filter('NetCDF_DIR:PATH=${TPL}', - 'NetCDF_DIR:PATH=%s' % self.spec['netcdf'].prefix, - string=True) - ff.filter('HDF5_ROOT:PATH=${TPL}', - 'HDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix, - string=True) + patch('cmake-exodus.patch') def install(self, spec, prefix): - mkdirp('build') - cd('build') + cc_path = spec['mpi'].mpicc if '+mpi' in spec else self.compiler.cc + cxx_path = spec['mpi'].mpicxx if '+mpi' in spec else self.compiler.cxx + + config_args = std_cmake_args[:] + config_args.extend([ + # General Flags # + '-DSEACASProj_ENABLE_CXX11:BOOL=OFF', + '-DSEACASProj_ENABLE_Zoltan:BOOL=OFF', + '-DHDF5_ROOT:PATH={0}'.format(spec['hdf5'].prefix), + '-DNetCDF_DIR:PATH={0}'.format(spec['netcdf'].prefix), + + # MPI Flags # + '-DTPL_ENABLE_MPI={0}'.format('ON' if '+mpi' in spec else 'OFF'), + '-DCMAKE_C_COMPILER={0}'.format(cc_path), + '-DCMAKE_CXX_COMPILER={0}'.format(cxx_path), + ]) + + build_directory = join_path(self.stage.source_path, 'spack-build') + source_directory = self.stage.source_path - cmake_exodus = Executable('../cmake-exodus') - cmake_exodus() + with working_dir(build_directory, create=True): + mcmake = Executable(join_path(source_directory, 'cmake-exodus')) + mcmake(*config_args) - make() - make('install') + make() + make('install') diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py index 7d0fdae1d4..0262bf1e3f 100644 --- a/var/spack/repos/builtin/packages/expat/package.py +++ b/var/spack/repos/builtin/packages/expat/package.py @@ -28,15 +28,16 @@ from spack import * class Expat(Package): """<eXpat/> is an XML parser library written in C""" homepage = "http://expat.sourceforge.net/" - url = "http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz" - version('2.1.0', 'dd7dab7a5fea97d2a6a43f511449b7cd') - - depends_on('cmake', type='build') + version('2.2.0', '2f47841c829facb346eb6e3fab5212e2', + url="http://downloads.sourceforge.net/project/expat/expat/2.2.0/expat-2.2.0.tar.bz2") + version('2.1.0', 'dd7dab7a5fea97d2a6a43f511449b7cd', + url="http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz") def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) - with working_dir('spack-build', create=True): - cmake('..', *std_cmake_args) - make() - make('install') + make() + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py index 72bfbe6326..cb20a8109e 100644 --- a/var/spack/repos/builtin/packages/extrae/package.py +++ b/var/spack/repos/builtin/packages/extrae/package.py @@ -53,8 +53,8 @@ class Extrae(Package): programming models either alone or in conjunction with MPI : OpenMP, CUDA, OpenCL, pthread, OmpSs""" homepage = "http://www.bsc.es/computer-sciences/extrae" - url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.0.1.tar.bz2" - version('3.0.1', 'a6a8ca96cd877723cd8cc5df6bdb922b') + url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-3.3.0.tar.bz2" + version('3.3.0', 'f46e3f1a6086b5b3ac41c9585b42952d') depends_on("mpi") depends_on("dyninst") @@ -62,6 +62,9 @@ class Extrae(Package): depends_on("boost") depends_on("libdwarf") depends_on("papi") + depends_on("libelf") + depends_on("libxml2") + depends_on("binutils+libiberty") def install(self, spec, prefix): if 'openmpi' in spec: @@ -80,6 +83,9 @@ class Extrae(Package): "--with-papi=%s" % spec['papi'].prefix, "--with-dyninst-headers=%s" % spec[ 'dyninst'].prefix.include, + "--with-elf=%s" % spec['libelf'].prefix, + "--with-xml-prefix=%s" % spec['libxml2'].prefix, + "--with-binutils=%s" % spec['binutils'].prefix, "--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib) make() diff --git a/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch b/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch new file mode 100644 index 0000000000..52e36ab00b --- /dev/null +++ b/var/spack/repos/builtin/packages/fenics/hdf5~cxx-detection.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt 2016-08-16 02:30:13.466078087 +0200 ++++ b/CMakeLists.txt 2016-08-16 02:30:36.879586772 +0200 +@@ -553,7 +553,7 @@ + set(ENV{HDF5_ROOT} "$ENV{HDF5_DIR}") + endif() + set(HDF5_PREFER_PARALLEL TRUE) +- find_package(HDF5) ++ find_package(HDF5 COMPONENTS C) + set_package_properties(HDF5 PROPERTIES TYPE OPTIONAL + DESCRIPTION "Hierarchical Data Format 5 (HDF5)" + URL "https://www.hdfgroup.org/HDF5") diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py index eeeefc540d..1dc302fdff 100644 --- a/var/spack/repos/builtin/packages/fenics/package.py +++ b/var/spack/repos/builtin/packages/fenics/package.py @@ -62,17 +62,15 @@ class Fenics(Package): # variant('slepc4py', default=True, description='Uses SLEPc4py') # variant('pastix', default=True, description='Compile with Pastix') - patch('petsc-3.7.patch', when='^petsc@3.7:') + patch('petsc-3.7.patch', when='@1.6.1^petsc@3.7:') patch('petsc-version-detection.patch', when='@:1.6.1') + patch('hdf5~cxx-detection.patch') extends('python') - depends_on('py-numpy') - depends_on('py-ply') - depends_on('py-six') - depends_on('py-sphinx@1.0.1:', when='+doc') - depends_on('eigen@3.2.0:') - depends_on('boost') + depends_on('eigen@3.2.0:', type='build') + depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono') + depends_on('mpi', when='+mpi') depends_on('hdf5', when='+hdf5') depends_on('parmetis@4.0.2:^metis+real64', when='+parmetis') @@ -85,13 +83,28 @@ class Fenics(Package): depends_on('suite-sparse', when='+suite-sparse') depends_on('qt', when='+qt') - # This are the build dependencies - depends_on('py-setuptools') - depends_on('cmake@2.8.12:') - depends_on('swig@3.0.3:') + depends_on('py-ply', type=nolink) + depends_on('py-six', type=nolink) + depends_on('py-numpy', type=nolink) + depends_on('py-sympy', type=nolink) + depends_on('swig@3.0.3:', type=nolink) + depends_on('cmake@2.8.12:', type=nolink) + + depends_on('py-setuptools', type='build') + depends_on('py-sphinx@1.0.1:', when='+doc', type='build') releases = [ { + 'version': '2016.1.0', + 'md5': '92e8d00f6487a575987201f0b0d19173', + 'resources': { + 'ffc': '35457ae164e481ba5c9189ebae060a47', + 'fiat': 'ac0c49942831ee434301228842bcc280', + 'instant': '0e3dbb464c4d90d691f31f0fdd63d4f6', + 'ufl': '37433336e5c9b58d1d5ab4acca9104a7', + } + }, + { 'version': '1.6.0', 'md5': '35cb4baf7ab4152a40fb7310b34d5800', 'resources': { @@ -130,7 +143,7 @@ class Fenics(Package): def install(self, spec, prefix): for package in ['ufl', 'ffc', 'fiat', 'instant']: with working_dir(join_path('depends', package)): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) cmake_args = [ '-DCMAKE_BUILD_TYPE:STRING={0}'.format( diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py index 570cd1bbdd..53b635ba7c 100644 --- a/var/spack/repos/builtin/packages/fftw/package.py +++ b/var/spack/repos/builtin/packages/fftw/package.py @@ -22,8 +22,6 @@ # 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 * @@ -33,14 +31,17 @@ class Fftw(Package): size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT - library of choice for most applications. + library of choice for most applications.""" - """ homepage = "http://www.fftw.org" url = "http://www.fftw.org/fftw-3.3.4.tar.gz" + version('3.3.5', '6cc08a3b9c7ee06fdd5b9eb02e06f569') version('3.3.4', '2edab8c06b24feeb3b82bbb3ebf3e7b3') + patch('pfft-3.3.5.patch', when="@3.3.5+pfft_patches", level=0) + patch('pfft-3.3.4.patch', when="@3.3.4+pfft_patches", level=0) + variant( 'float', default=True, description='Produces a single precision version of the library') @@ -53,17 +54,25 @@ class Fftw(Package): '(works only with GCC and libquadmath)') variant('openmp', default=False, description="Enable OpenMP support.") variant('mpi', default=False, description='Activate MPI support') + variant( + 'pfft_patches', default=False, + description='Add extra transpose functions for PFFT compatibility') depends_on('mpi', when='+mpi') + depends_on('automake', type='build', when='+pfft_patches') + depends_on('autoconf', type='build', when='+pfft_patches') # TODO : add support for architecture specific optimizations as soon as # targets are supported def install(self, spec, prefix): - options = ['--prefix=%s' % prefix, - '--enable-shared', - '--enable-threads'] - # Add support for OpenMP + options = [ + '--prefix={0}'.format(prefix), + '--enable-shared', + '--enable-threads' + ] + + # Add support for OpenMP if '+openmp' in spec: # Note: Apple's Clang does not support OpenMP. if spec.satisfies('%clang'): @@ -76,19 +85,31 @@ class Fftw(Package): if '+mpi' in spec: options.append('--enable-mpi') + if '+pfft_patches' in spec: + autoreconf = which('autoreconf') + autoreconf('-ifv') + configure(*options) make() + if self.run_tests: + make("check") make("install") if '+float' in spec: configure('--enable-float', *options) make() + if self.run_tests: + make("check") make("install") if '+long_double' in spec: configure('--enable-long-double', *options) make() + if self.run_tests: + make("check") make("install") if '+quad' in spec: configure('--enable-quad-precision', *options) make() + if self.run_tests: + make("check") make("install") diff --git a/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch b/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch new file mode 100644 index 0000000000..4740a60ae4 --- /dev/null +++ b/var/spack/repos/builtin/packages/fftw/pfft-3.3.4.patch @@ -0,0 +1,865 @@ +--- mpi/conf.c 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/conf.c 2015-09-05 05:53:19.085516467 +0200 +@@ -29,6 +29,8 @@ static const solvtab s = + SOLVTAB(XM(transpose_pairwise_register)), + SOLVTAB(XM(transpose_alltoall_register)), + SOLVTAB(XM(transpose_recurse_register)), ++ SOLVTAB(XM(transpose_pairwise_transposed_register)), ++ SOLVTAB(XM(transpose_alltoall_transposed_register)), + SOLVTAB(XM(dft_rank_geq2_register)), + SOLVTAB(XM(dft_rank_geq2_transposed_register)), + SOLVTAB(XM(dft_serial_register)), + +--- mpi/Makefile.am 2013-03-18 13:10:45.000000000 +0100 ++++ mpi/Makefile.am 2015-09-05 05:53:19.084516437 +0200 +@@ -16,6 +16,7 @@ BUILT_SOURCES = fftw3-mpi.f03.in fftw3-m + CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03 + + TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h ++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c + DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h + RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h + RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h + +--- mpi/mpi-transpose.h 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/mpi-transpose.h 2015-09-05 05:53:19.085516467 +0200 +@@ -59,3 +59,5 @@ int XM(mkplans_posttranspose)(const prob + void XM(transpose_pairwise_register)(planner *p); + void XM(transpose_alltoall_register)(planner *p); + void XM(transpose_recurse_register)(planner *p); ++void XM(transpose_pairwise_transposed_register)(planner *p); ++void XM(transpose_alltoall_transposed_register)(planner *p); + +--- mpi/transpose-alltoall-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ mpi/transpose-alltoall-transposed.c 2015-09-05 05:53:19.085516467 +0200 +@@ -0,0 +1,280 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* plans for distributed out-of-place transpose using MPI_Alltoall, ++ and which destroy the input array (also if TRANSPOSED_IN is used) */ ++ ++#include "mpi-transpose.h" ++#include <string.h> ++ ++typedef struct { ++ solver super; ++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT, ++ which makes the first transpose out-of-place ++ but costs an extra copy and requires us ++ to destroy the input */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ ++ MPI_Comm comm; ++ int *send_block_sizes, *send_block_offsets; ++ int *recv_block_sizes, *recv_block_offsets; ++ ++ INT rest_Ioff, rest_Ooff; ++ ++ int equal_blocks; ++} P; ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ /* in contrast to transpose-alltoall this algorithm can not preserve the input, ++ * since we need at least one transpose before the (out-of-place) Alltoall */ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ return (1 ++ && p->I != p->O ++ && (!NO_DESTROY_INPUTP(plnr)) ++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out) ++ && ONLY_TRANSPOSEDP(p->flags) ++ ); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->equal_blocks ? "/e" : "", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ R *O; ++ int *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes; ++ int equal_blocks = 1; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */ ++ if (ego->copy_transposed_out) { ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_1d) ++ (bt * p->nx * vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ else /* first transpose is in-place */ ++ O = p->I; ++ } ++ else { /* transpose nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ /* Compute sizes/offsets of blocks to send for all-to-all command. */ ++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ if (db != p->block || dbt != p->tblock) ++ equal_blocks = 0; ++ ++ /* MPI requires type "int" here; apparently it ++ has no 64-bit API? Grrr. */ ++ sbs[pe] = (int) (b * dbt * vn); ++ sbo[pe] = (int) (pe * (b * p->tblock) * vn); ++ rbs[pe] = (int) (db * bt * vn); ++ rbo[pe] = (int) (pe * (p->block * bt) * vn); ++ } ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ pln->equal_blocks = equal_blocks; ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int copy_transposed_out) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->copy_transposed_out = copy_transposed_out; ++ return &(slv->super); ++} ++ ++void XM(transpose_alltoall_transposed_register)(planner *p) ++{ ++ int cto; ++ for (cto = 0; cto <= 1; ++cto) ++ REGISTER_SOLVER(p, mksolver(cto)); ++} + +--- mpi/transpose-pairwise.c 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/transpose-pairwise.c 2015-09-05 06:00:05.715433709 +0200 +@@ -53,7 +53,6 @@ static void transpose_chunks(int *sched, + { + if (sched) { + int i; +- MPI_Status status; + + /* TODO: explore non-synchronous send/recv? */ + +@@ -74,7 +73,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + +@@ -92,7 +91,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + } +@@ -350,6 +349,7 @@ nada: + X(plan_destroy_internal)(*cld3); + X(plan_destroy_internal)(*cld2rest); + X(plan_destroy_internal)(*cld2); ++ *cld2 = *cld2rest = *cld3 = NULL; + return 0; + } + +--- mpi/transpose-pairwise-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ mpi/transpose-pairwise-transposed.c 2015-09-05 06:00:07.280481042 +0200 +@@ -0,0 +1,510 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* Distributed transposes using a sequence of carefully scheduled ++ pairwise exchanges. This has the advantage that it can be done ++ in-place, or out-of-place while preserving the input, using buffer ++ space proportional to the local size divided by the number of ++ processes (i.e. to the total array size divided by the number of ++ processes squared). */ ++ ++#include "mpi-transpose.h" ++#include <string.h> ++ ++typedef struct { ++ solver super; ++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ INT rest_Ioff, rest_Ooff; ++ ++ int n_pes, my_pe, *sched; ++ INT *send_block_sizes, *send_block_offsets; ++ INT *recv_block_sizes, *recv_block_offsets; ++ MPI_Comm comm; ++ int preserve_input; ++} P; ++ ++static void transpose_chunks(int *sched, int n_pes, int my_pe, ++ INT *sbs, INT *sbo, INT *rbs, INT *rbo, ++ MPI_Comm comm, ++ R *I, R *O) ++{ ++ if (sched) { ++ int i; ++ ++ /* TODO: explore non-synchronous send/recv? */ ++ ++ if (I == O) { ++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS); ++ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) { ++ if (rbo[pe] != sbo[pe]) ++ memmove(O + rbo[pe], O + sbo[pe], ++ sbs[pe] * sizeof(R)); ++ } ++ else { ++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R)); ++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ ++ X(ifree)(buf); ++ } ++ else { /* I != O */ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) ++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R)); ++ else ++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ } ++} ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ if(ego->preserve_input) I = O; ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, I); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else if (ego->preserve_input) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, O); ++ } ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, I, O); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans; ++ the planner often prefers transpose-pairwise to transpose-alltoall, ++ at least with LAM MPI on my machine. */ ++ return (1 ++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr) ++ && p->I != p->O)) ++ && ONLY_TRANSPOSEDP(p->flags)); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->sched); ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->preserve_input==2 ?"/p":"", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++/* Given a process which_pe and a number of processes npes, fills ++ the array sched[npes] with a sequence of processes to communicate ++ with for a deadlock-free, optimum-overlap all-to-all communication. ++ (All processes must call this routine to get their own schedules.) ++ The schedule can be re-ordered arbitrarily as long as all processes ++ apply the same permutation to their schedules. ++ ++ The algorithm here is based upon the one described in: ++ J. A. M. Schreuder, "Constructing timetables for sport ++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980). ++ In a sport competition, you have N teams and want every team to ++ play every other team in as short a time as possible (maximum overlap ++ between games). This timetabling problem is therefore identical ++ to that of an all-to-all communications problem. In our case, there ++ is one wrinkle: as part of the schedule, the process must do ++ some data transfer with itself (local data movement), analogous ++ to a requirement that each team "play itself" in addition to other ++ teams. With this wrinkle, it turns out that an optimal timetable ++ (N parallel games) can be constructed for any N, not just for even ++ N as in the original problem described by Schreuder. ++*/ ++static void fill1_comm_sched(int *sched, int which_pe, int npes) ++{ ++ int pe, i, n, s = 0; ++ A(which_pe >= 0 && which_pe < npes); ++ if (npes % 2 == 0) { ++ n = npes; ++ sched[s++] = which_pe; ++ } ++ else ++ n = npes + 1; ++ for (pe = 0; pe < n - 1; ++pe) { ++ if (npes % 2 == 0) { ++ if (pe == which_pe) sched[s++] = npes - 1; ++ else if (npes - 1 == which_pe) sched[s++] = pe; ++ } ++ else if (pe == which_pe) sched[s++] = pe; ++ ++ if (pe != which_pe && which_pe < n - 1) { ++ i = (pe - which_pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe + i) % (n - 1); ++ ++ i = (which_pe - pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe - i + (n - 1)) % (n - 1); ++ } ++ } ++ A(s == npes); ++} ++ ++/* Sort the communication schedule sched for npes so that the schedule ++ on process sortpe is ascending or descending (!ascending). This is ++ necessary to allow in-place transposes when the problem does not ++ divide equally among the processes. In this case there is one ++ process where the incoming blocks are bigger/smaller than the ++ outgoing blocks and thus have to be received in ++ descending/ascending order, respectively, to avoid overwriting data ++ before it is sent. */ ++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending) ++{ ++ int *sortsched, i; ++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER); ++ fill1_comm_sched(sortsched, sortpe, npes); ++ if (ascending) ++ for (i = 0; i < npes; ++i) ++ sortsched[npes + sortsched[i]] = sched[i]; ++ else ++ for (i = 0; i < npes; ++i) ++ sortsched[2*npes - 1 - sortsched[i]] = sched[i]; ++ for (i = 0; i < npes; ++i) ++ sched[i] = sortsched[npes + i]; ++ X(ifree)(sortsched); ++} ++ ++/* make the plans to do the pre-MPI transpositions (shared with ++ transpose-alltoall-transposed) */ ++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr, ++ R *I, R *O, int my_pe, ++ plan **cld2, plan **cld2rest, plan **cld3, ++ INT *rest_Ioff, INT *rest_Ooff) ++{ ++ INT vn = p->vn; ++ INT b = XM(block)(p->nx, p->block, my_pe); ++ INT bt = p->tblock; ++ INT nyb = p->ny / bt; /* number of equal-sized blocks */ ++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */ ++ ++ *cld2 = *cld2rest = *cld3 = NULL; ++ *rest_Ioff = *rest_Ooff = 0; ++ ++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) { ++ INT ny = p->ny * vn; ++ bt *= vn; ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (nyb, bt, b * bt, ++ b, ny, bt, ++ bt, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ if (nyr > 0) { ++ *rest_Ioff = nyb * bt; ++ *rest_Ooff = nyb * b * bt; ++ bt = nyr * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_2d) ++ (b, ny, bt, ++ bt, 1, 1), ++ I + *rest_Ioff, ++ O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ } ++ } ++ else { ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_4d) ++ (nyb, b * bt * vn, b * bt * vn, ++ b, vn, bt * vn, ++ bt, b * vn, vn, ++ vn, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (b, vn, nyr * vn, ++ nyr, b * vn, vn, ++ vn, 1, 1), ++ I + *rest_Ioff, O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ ++ if (!(p->flags & TRANSPOSED_IN)) { ++ *cld3 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (p->ny, vn, b * vn, ++ b, p->ny * vn, vn, ++ vn, 1, 1), ++ I, I), ++ 0, 0, NO_SLOW); ++ if (!*cld3) goto nada; ++ } ++ } ++ ++ return 1; ++ ++nada: ++ X(plan_destroy_internal)(*cld3); ++ X(plan_destroy_internal)(*cld2rest); ++ X(plan_destroy_internal)(*cld2); ++ *cld2 = *cld2rest = *cld3 = NULL; ++ return 0; ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ INT *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1; ++ R *I, *O; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ UNUSED(ego); ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ I = p->I; O = p->O; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O; ++ ++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ ++ } ++ else { ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) ++ O = p->O; ++ else ++ O = p->I; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr); ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block), ++ XM(num_blocks)(p->ny, p->tblock)); ++ ++ /* Compute sizes/offsets of blocks to exchange between processors */ ++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ ++ sbs[pe] = b * dbt * vn; ++ sbo[pe] = pe * (b * p->tblock) * vn; ++ rbs[pe] = db * bt * vn; ++ rbo[pe] = pe * (p->block * bt) * vn; ++ ++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) { ++ A(sort_pe == -1); /* only one process should need sorting */ ++ sort_pe = pe; ++ ascending = db * p->tblock > p->block * dbt; ++ } ++ } ++ pln->n_pes = n_pes; ++ pln->my_pe = my_pe; ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ ++ if (my_pe >= n_pes) { ++ pln->sched = 0; /* this process is not doing anything */ ++ } ++ else { ++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS); ++ fill1_comm_sched(pln->sched, my_pe, n_pes); ++ if (sort_pe >= 0) ++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending); ++ } ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int preserve_input) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->preserve_input = preserve_input; ++ return &(slv->super); ++} ++ ++void XM(transpose_pairwise_transposed_register)(planner *p) ++{ ++ int preserve_input; ++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input) ++ REGISTER_SOLVER(p, mksolver(preserve_input)); ++} diff --git a/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch b/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch new file mode 100644 index 0000000000..360a3757f9 --- /dev/null +++ b/var/spack/repos/builtin/packages/fftw/pfft-3.3.5.patch @@ -0,0 +1,858 @@ +--- mpi/conf.c 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/conf.c 2015-09-05 05:53:19.085516467 +0200 +@@ -29,6 +29,8 @@ static const solvtab s = + SOLVTAB(XM(transpose_pairwise_register)), + SOLVTAB(XM(transpose_alltoall_register)), + SOLVTAB(XM(transpose_recurse_register)), ++ SOLVTAB(XM(transpose_pairwise_transposed_register)), ++ SOLVTAB(XM(transpose_alltoall_transposed_register)), + SOLVTAB(XM(dft_rank_geq2_register)), + SOLVTAB(XM(dft_rank_geq2_transposed_register)), + SOLVTAB(XM(dft_serial_register)), + +--- mpi/Makefile.am 2013-03-18 13:10:45.000000000 +0100 ++++ mpi/Makefile.am 2015-09-05 05:53:19.084516437 +0200 +@@ -16,6 +16,7 @@ BUILT_SOURCES = fftw3-mpi.f03.in fftw3-m + CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03 + + TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h ++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c + DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h + RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h + RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h + +--- mpi/mpi-transpose.h 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/mpi-transpose.h 2015-09-05 05:53:19.085516467 +0200 +@@ -59,3 +59,5 @@ int XM(mkplans_posttranspose)(const prob + void XM(transpose_pairwise_register)(planner *p); + void XM(transpose_alltoall_register)(planner *p); + void XM(transpose_recurse_register)(planner *p); ++void XM(transpose_pairwise_transposed_register)(planner *p); ++void XM(transpose_alltoall_transposed_register)(planner *p); + +--- mpi/transpose-alltoall-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ mpi/transpose-alltoall-transposed.c 2015-09-05 05:53:19.085516467 +0200 +@@ -0,0 +1,280 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* plans for distributed out-of-place transpose using MPI_Alltoall, ++ and which destroy the input array (also if TRANSPOSED_IN is used) */ ++ ++#include "mpi-transpose.h" ++#include <string.h> ++ ++typedef struct { ++ solver super; ++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT, ++ which makes the first transpose out-of-place ++ but costs an extra copy and requires us ++ to destroy the input */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ ++ MPI_Comm comm; ++ int *send_block_sizes, *send_block_offsets; ++ int *recv_block_sizes, *recv_block_offsets; ++ ++ INT rest_Ioff, rest_Ooff; ++ ++ int equal_blocks; ++} P; ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ I, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ if (ego->equal_blocks) ++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE, ++ ego->comm); ++ else ++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets, ++ FFTW_MPI_TYPE, ++ O, ego->recv_block_sizes, ego->recv_block_offsets, ++ FFTW_MPI_TYPE, ++ ego->comm); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ /* in contrast to transpose-alltoall this algorithm can not preserve the input, ++ * since we need at least one transpose before the (out-of-place) Alltoall */ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ return (1 ++ && p->I != p->O ++ && (!NO_DESTROY_INPUTP(plnr)) ++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out) ++ && ONLY_TRANSPOSEDP(p->flags) ++ ); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->equal_blocks ? "/e" : "", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ R *O; ++ int *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes; ++ int equal_blocks = 1; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */ ++ if (ego->copy_transposed_out) { ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_1d) ++ (bt * p->nx * vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ else /* first transpose is in-place */ ++ O = p->I; ++ } ++ else { /* transpose nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ p->I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ /* Compute sizes/offsets of blocks to send for all-to-all command. */ ++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ if (db != p->block || dbt != p->tblock) ++ equal_blocks = 0; ++ ++ /* MPI requires type "int" here; apparently it ++ has no 64-bit API? Grrr. */ ++ sbs[pe] = (int) (b * dbt * vn); ++ sbo[pe] = (int) (pe * (b * p->tblock) * vn); ++ rbs[pe] = (int) (db * bt * vn); ++ rbo[pe] = (int) (pe * (p->block * bt) * vn); ++ } ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ pln->equal_blocks = equal_blocks; ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int copy_transposed_out) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->copy_transposed_out = copy_transposed_out; ++ return &(slv->super); ++} ++ ++void XM(transpose_alltoall_transposed_register)(planner *p) ++{ ++ int cto; ++ for (cto = 0; cto <= 1; ++cto) ++ REGISTER_SOLVER(p, mksolver(cto)); ++} + +--- mpi/transpose-pairwise.c 2014-03-04 19:41:03.000000000 +0100 ++++ mpi/transpose-pairwise.c 2015-09-05 06:00:05.715433709 +0200 +@@ -53,7 +53,6 @@ static void transpose_chunks(int *sched, + { + if (sched) { + int i; +- MPI_Status status; + + /* TODO: explore non-synchronous send/recv? */ + +@@ -74,7 +73,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + +@@ -92,7 +91,7 @@ static void transpose_chunks(int *sched, + O + rbo[pe], (int) (rbs[pe]), + FFTW_MPI_TYPE, + pe, (pe * n_pes + my_pe) & 0xffff, +- comm, &status); ++ comm, MPI_STATUS_IGNORE); + } + } + } + +--- mpi/transpose-pairwise-transposed.c 1970-01-01 01:00:00.000000000 +0100 ++++ mpi/transpose-pairwise-transposed.c 2015-09-05 06:00:07.280481042 +0200 +@@ -0,0 +1,510 @@ ++/* ++ * Copyright (c) 2003, 2007-11 Matteo Frigo ++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology ++ * Copyright (c) 2012 Michael Pippig ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++/* Distributed transposes using a sequence of carefully scheduled ++ pairwise exchanges. This has the advantage that it can be done ++ in-place, or out-of-place while preserving the input, using buffer ++ space proportional to the local size divided by the number of ++ processes (i.e. to the total array size divided by the number of ++ processes squared). */ ++ ++#include "mpi-transpose.h" ++#include <string.h> ++ ++typedef struct { ++ solver super; ++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */ ++} S; ++ ++typedef struct { ++ plan_mpi_transpose super; ++ ++ plan *cld1, *cld2, *cld2rest, *cld3; ++ INT rest_Ioff, rest_Ooff; ++ ++ int n_pes, my_pe, *sched; ++ INT *send_block_sizes, *send_block_offsets; ++ INT *recv_block_sizes, *recv_block_offsets; ++ MPI_Comm comm; ++ int preserve_input; ++} P; ++ ++static void transpose_chunks(int *sched, int n_pes, int my_pe, ++ INT *sbs, INT *sbo, INT *rbs, INT *rbo, ++ MPI_Comm comm, ++ R *I, R *O) ++{ ++ if (sched) { ++ int i; ++ ++ /* TODO: explore non-synchronous send/recv? */ ++ ++ if (I == O) { ++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS); ++ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) { ++ if (rbo[pe] != sbo[pe]) ++ memmove(O + rbo[pe], O + sbo[pe], ++ sbs[pe] * sizeof(R)); ++ } ++ else { ++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R)); ++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ ++ X(ifree)(buf); ++ } ++ else { /* I != O */ ++ for (i = 0; i < n_pes; ++i) { ++ int pe = sched[i]; ++ if (my_pe == pe) ++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R)); ++ else ++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (my_pe * n_pes + pe) & 0xffff, ++ O + rbo[pe], (int) (rbs[pe]), ++ FFTW_MPI_TYPE, ++ pe, (pe * n_pes + my_pe) & 0xffff, ++ comm, MPI_STATUS_IGNORE); ++ } ++ } ++ } ++} ++ ++/* transpose locally to get contiguous chunks ++ this may take two transposes if the block sizes are unequal ++ (3 subplans, two of which operate on disjoint data) */ ++static void apply_pretranspose( ++ const P *ego, R *I, R *O ++ ) ++{ ++ plan_rdft *cld2, *cld2rest, *cld3; ++ ++ cld3 = (plan_rdft *) ego->cld3; ++ if (cld3) ++ cld3->apply(ego->cld3, O, O); ++ /* else TRANSPOSED_IN is true and user wants I transposed */ ++ ++ cld2 = (plan_rdft *) ego->cld2; ++ cld2->apply(ego->cld2, I, O); ++ cld2rest = (plan_rdft *) ego->cld2rest; ++ if (cld2rest) { ++ cld2rest->apply(ego->cld2rest, ++ I + ego->rest_Ioff, O + ego->rest_Ooff); ++ } ++} ++ ++static void apply(const plan *ego_, R *I, R *O) ++{ ++ const P *ego = (const P *) ego_; ++ plan_rdft *cld1 = (plan_rdft *) ego->cld1; ++ ++ if (cld1) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ if(ego->preserve_input) I = O; ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, I); ++ ++ /* transpose locally to get non-transposed output */ ++ cld1->apply(ego->cld1, I, O); ++ } /* else TRANSPOSED_OUT is true and user wants O transposed */ ++ else if (ego->preserve_input) { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, O); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, O, O); ++ } ++ else { ++ /* transpose locally to get contiguous chunks */ ++ apply_pretranspose(ego, I, I); ++ ++ /* transpose chunks globally */ ++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe, ++ ego->send_block_sizes, ego->send_block_offsets, ++ ego->recv_block_sizes, ego->recv_block_offsets, ++ ego->comm, I, O); ++ } ++} ++ ++static int applicable(const S *ego, const problem *p_, ++ const planner *plnr) ++{ ++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_; ++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans; ++ the planner often prefers transpose-pairwise to transpose-alltoall, ++ at least with LAM MPI on my machine. */ ++ return (1 ++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr) ++ && p->I != p->O)) ++ && ONLY_TRANSPOSEDP(p->flags)); ++} ++ ++static void awake(plan *ego_, enum wakefulness wakefulness) ++{ ++ P *ego = (P *) ego_; ++ X(plan_awake)(ego->cld1, wakefulness); ++ X(plan_awake)(ego->cld2, wakefulness); ++ X(plan_awake)(ego->cld2rest, wakefulness); ++ X(plan_awake)(ego->cld3, wakefulness); ++} ++ ++static void destroy(plan *ego_) ++{ ++ P *ego = (P *) ego_; ++ X(ifree0)(ego->sched); ++ X(ifree0)(ego->send_block_sizes); ++ MPI_Comm_free(&ego->comm); ++ X(plan_destroy_internal)(ego->cld3); ++ X(plan_destroy_internal)(ego->cld2rest); ++ X(plan_destroy_internal)(ego->cld2); ++ X(plan_destroy_internal)(ego->cld1); ++} ++ ++static void print(const plan *ego_, printer *p) ++{ ++ const P *ego = (const P *) ego_; ++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))", ++ ego->preserve_input==2 ?"/p":"", ++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3); ++} ++ ++/* Given a process which_pe and a number of processes npes, fills ++ the array sched[npes] with a sequence of processes to communicate ++ with for a deadlock-free, optimum-overlap all-to-all communication. ++ (All processes must call this routine to get their own schedules.) ++ The schedule can be re-ordered arbitrarily as long as all processes ++ apply the same permutation to their schedules. ++ ++ The algorithm here is based upon the one described in: ++ J. A. M. Schreuder, "Constructing timetables for sport ++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980). ++ In a sport competition, you have N teams and want every team to ++ play every other team in as short a time as possible (maximum overlap ++ between games). This timetabling problem is therefore identical ++ to that of an all-to-all communications problem. In our case, there ++ is one wrinkle: as part of the schedule, the process must do ++ some data transfer with itself (local data movement), analogous ++ to a requirement that each team "play itself" in addition to other ++ teams. With this wrinkle, it turns out that an optimal timetable ++ (N parallel games) can be constructed for any N, not just for even ++ N as in the original problem described by Schreuder. ++*/ ++static void fill1_comm_sched(int *sched, int which_pe, int npes) ++{ ++ int pe, i, n, s = 0; ++ A(which_pe >= 0 && which_pe < npes); ++ if (npes % 2 == 0) { ++ n = npes; ++ sched[s++] = which_pe; ++ } ++ else ++ n = npes + 1; ++ for (pe = 0; pe < n - 1; ++pe) { ++ if (npes % 2 == 0) { ++ if (pe == which_pe) sched[s++] = npes - 1; ++ else if (npes - 1 == which_pe) sched[s++] = pe; ++ } ++ else if (pe == which_pe) sched[s++] = pe; ++ ++ if (pe != which_pe && which_pe < n - 1) { ++ i = (pe - which_pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe + i) % (n - 1); ++ ++ i = (which_pe - pe + (n - 1)) % (n - 1); ++ if (i < n/2) ++ sched[s++] = (pe - i + (n - 1)) % (n - 1); ++ } ++ } ++ A(s == npes); ++} ++ ++/* Sort the communication schedule sched for npes so that the schedule ++ on process sortpe is ascending or descending (!ascending). This is ++ necessary to allow in-place transposes when the problem does not ++ divide equally among the processes. In this case there is one ++ process where the incoming blocks are bigger/smaller than the ++ outgoing blocks and thus have to be received in ++ descending/ascending order, respectively, to avoid overwriting data ++ before it is sent. */ ++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending) ++{ ++ int *sortsched, i; ++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER); ++ fill1_comm_sched(sortsched, sortpe, npes); ++ if (ascending) ++ for (i = 0; i < npes; ++i) ++ sortsched[npes + sortsched[i]] = sched[i]; ++ else ++ for (i = 0; i < npes; ++i) ++ sortsched[2*npes - 1 - sortsched[i]] = sched[i]; ++ for (i = 0; i < npes; ++i) ++ sched[i] = sortsched[npes + i]; ++ X(ifree)(sortsched); ++} ++ ++/* make the plans to do the pre-MPI transpositions (shared with ++ transpose-alltoall-transposed) */ ++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr, ++ R *I, R *O, int my_pe, ++ plan **cld2, plan **cld2rest, plan **cld3, ++ INT *rest_Ioff, INT *rest_Ooff) ++{ ++ INT vn = p->vn; ++ INT b = XM(block)(p->nx, p->block, my_pe); ++ INT bt = p->tblock; ++ INT nyb = p->ny / bt; /* number of equal-sized blocks */ ++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */ ++ ++ *cld2 = *cld2rest = *cld3 = NULL; ++ *rest_Ioff = *rest_Ooff = 0; ++ ++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) { ++ INT ny = p->ny * vn; ++ bt *= vn; ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (nyb, bt, b * bt, ++ b, ny, bt, ++ bt, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ if (nyr > 0) { ++ *rest_Ioff = nyb * bt; ++ *rest_Ooff = nyb * b * bt; ++ bt = nyr * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_2d) ++ (b, ny, bt, ++ bt, 1, 1), ++ I + *rest_Ioff, ++ O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ } ++ } ++ else { ++ *cld2 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_4d) ++ (nyb, b * bt * vn, b * bt * vn, ++ b, vn, bt * vn, ++ bt, b * vn, vn, ++ vn, 1, 1), ++ I, O), ++ 0, 0, NO_SLOW); ++ if (!*cld2) goto nada; ++ ++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn; ++ *cld2rest = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (b, vn, nyr * vn, ++ nyr, b * vn, vn, ++ vn, 1, 1), ++ I + *rest_Ioff, O + *rest_Ooff), ++ 0, 0, NO_SLOW); ++ if (!*cld2rest) goto nada; ++ ++ if (!(p->flags & TRANSPOSED_IN)) { ++ *cld3 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)( ++ X(mktensor_3d) ++ (p->ny, vn, b * vn, ++ b, p->ny * vn, vn, ++ vn, 1, 1), ++ I, I), ++ 0, 0, NO_SLOW); ++ if (!*cld3) goto nada; ++ } ++ } ++ ++ return 1; ++ ++nada: ++ X(plan_destroy_internal)(*cld3); ++ X(plan_destroy_internal)(*cld2rest); ++ X(plan_destroy_internal)(*cld2); ++ *cld2 = *cld2rest = *cld3 = NULL; ++ return 0; ++} ++ ++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr) ++{ ++ const S *ego = (const S *) ego_; ++ const problem_mpi_transpose *p; ++ P *pln; ++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0; ++ INT b, bt, vn, rest_Ioff, rest_Ooff; ++ INT *sbs, *sbo, *rbs, *rbo; ++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1; ++ R *I, *O; ++ static const plan_adt padt = { ++ XM(transpose_solve), awake, print, destroy ++ }; ++ ++ UNUSED(ego); ++ ++ if (!applicable(ego, p_, plnr)) ++ return (plan *) 0; ++ ++ p = (const problem_mpi_transpose *) p_; ++ vn = p->vn; ++ I = p->I; O = p->O; ++ ++ MPI_Comm_rank(p->comm, &my_pe); ++ MPI_Comm_size(p->comm, &n_pes); ++ ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ ++ ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O; ++ ++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */ ++ cld1 = X(mkplan_f_d)(plnr, ++ X(mkproblem_rdft_0_d)(X(mktensor_3d) ++ (bt, vn, p->nx * vn, ++ p->nx, bt * vn, vn, ++ vn, 1, 1), ++ I, O = p->O), ++ 0, 0, NO_SLOW); ++ if (XM(any_true)(!cld1, p->comm)) goto nada; ++ ++ } ++ else { ++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) ++ O = p->O; ++ else ++ O = p->I; ++ } ++ ++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe, ++ &cld2, &cld2rest, &cld3, ++ &rest_Ioff, &rest_Ooff), ++ p->comm)) goto nada; ++ ++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply); ++ ++ pln->cld1 = cld1; ++ pln->cld2 = cld2; ++ pln->cld2rest = cld2rest; ++ pln->rest_Ioff = rest_Ioff; ++ pln->rest_Ooff = rest_Ooff; ++ pln->cld3 = cld3; ++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr); ++ ++ MPI_Comm_dup(p->comm, &pln->comm); ++ ++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block), ++ XM(num_blocks)(p->ny, p->tblock)); ++ ++ /* Compute sizes/offsets of blocks to exchange between processors */ ++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS); ++ sbo = sbs + n_pes; ++ rbs = sbo + n_pes; ++ rbo = rbs + n_pes; ++ b = XM(block)(p->nx, p->block, my_pe); ++ bt = XM(block)(p->ny, p->tblock, my_pe); ++ for (pe = 0; pe < n_pes; ++pe) { ++ INT db, dbt; /* destination block sizes */ ++ db = XM(block)(p->nx, p->block, pe); ++ dbt = XM(block)(p->ny, p->tblock, pe); ++ ++ sbs[pe] = b * dbt * vn; ++ sbo[pe] = pe * (b * p->tblock) * vn; ++ rbs[pe] = db * bt * vn; ++ rbo[pe] = pe * (p->block * bt) * vn; ++ ++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) { ++ A(sort_pe == -1); /* only one process should need sorting */ ++ sort_pe = pe; ++ ascending = db * p->tblock > p->block * dbt; ++ } ++ } ++ pln->n_pes = n_pes; ++ pln->my_pe = my_pe; ++ pln->send_block_sizes = sbs; ++ pln->send_block_offsets = sbo; ++ pln->recv_block_sizes = rbs; ++ pln->recv_block_offsets = rbo; ++ ++ if (my_pe >= n_pes) { ++ pln->sched = 0; /* this process is not doing anything */ ++ } ++ else { ++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS); ++ fill1_comm_sched(pln->sched, my_pe, n_pes); ++ if (sort_pe >= 0) ++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending); ++ } ++ ++ X(ops_zero)(&pln->super.super.ops); ++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops); ++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops); ++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops); ++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops); ++ /* FIXME: should MPI operations be counted in "other" somehow? */ ++ ++ return &(pln->super.super); ++ ++ nada: ++ X(plan_destroy_internal)(cld3); ++ X(plan_destroy_internal)(cld2rest); ++ X(plan_destroy_internal)(cld2); ++ X(plan_destroy_internal)(cld1); ++ return (plan *) 0; ++} ++ ++static solver *mksolver(int preserve_input) ++{ ++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 }; ++ S *slv = MKSOLVER(S, &sadt); ++ slv->preserve_input = preserve_input; ++ return &(slv->super); ++} ++ ++void XM(transpose_pairwise_transposed_register)(planner *p) ++{ ++ int preserve_input; ++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input) ++ REGISTER_SOLVER(p, mksolver(preserve_input)); ++} diff --git a/var/spack/repos/builtin/packages/fish/package.py b/var/spack/repos/builtin/packages/fish/package.py index 0e85f410c1..fb784b7571 100644 --- a/var/spack/repos/builtin/packages/fish/package.py +++ b/var/spack/repos/builtin/packages/fish/package.py @@ -32,8 +32,7 @@ class Fish(Package): homepage = "http://fishshell.com/" url = "http://fishshell.com/files/2.2.0/fish-2.2.0.tar.gz" - list_url = "http://fishshell.com/files/" - list_depth = 2 + list_url = "http://fishshell.com/" version('2.2.0', 'a76339fd14ce2ec229283c53e805faac48c3e99d9e3ede9d82c0554acfc7b77a') diff --git a/var/spack/repos/builtin/packages/fixesproto/package.py b/var/spack/repos/builtin/packages/fixesproto/package.py new file mode 100644 index 0000000000..64852b40e2 --- /dev/null +++ b/var/spack/repos/builtin/packages/fixesproto/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 Fixesproto(Package): + """X Fixes Extension. + + The extension makes changes to many areas of the protocol to resolve + issues raised by application interaction with core protocol mechanisms + that cannot be adequately worked around on the client side of the wire.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/fixesproto" + url = "https://www.x.org/archive/individual/proto/fixesproto-5.0.tar.gz" + + version('5.0', '1b3115574cadd4cbea1f197faa7c1de4') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py new file mode 100644 index 0000000000..c39b17db2c --- /dev/null +++ b/var/spack/repos/builtin/packages/flint/package.py @@ -0,0 +1,66 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Flint(Package): + """FLINT (Fast Library for Number Theory).""" + + homepage = "http://www.flintlib.org" + url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz" + + version('2.5.2', 'cda885309362150196aed66a5e0f0383') + version('2.4.5', '6504b9deabeafb9313e57153a1730b33') + version('develop', git='https://github.com/wbhart/flint2.git') + + # Overlap in functionality between gmp and mpir + # All other dependencies must also be built with + # one or the other + # variant('mpir', default=False, + # description='Compile with the MPIR library') + + # Build dependencies + depends_on('autoconf', type='build') + + # Other dependencies + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir + + def install(self, spec, prefix): + options = [] + options = ["--prefix=%s" % prefix, + "--with-gmp=%s" % spec['gmp'].prefix, + "--with-mpfr=%s" % spec['mpfr'].prefix] + + # if '+mpir' in spec: + # options.extend([ + # "--with-mpir=%s" % spec['mpir'].prefix + # ]) + + configure(*options) + make() + if self.run_tests: + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py new file mode 100644 index 0000000000..bde6f352da --- /dev/null +++ b/var/spack/repos/builtin/packages/font-adobe-100dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontAdobe100dpi(Package): + """X.org adobe-100dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/adobe-100dpi" + url = "https://www.x.org/archive/individual/font/font-adobe-100dpi-1.0.3.tar.gz" + + version('1.0.3', 'ba61e7953f4f5cec5a8e69c262bbc7f9') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py new file mode 100644 index 0000000000..380fcf363e --- /dev/null +++ b/var/spack/repos/builtin/packages/font-adobe-75dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontAdobe75dpi(Package): + """X.org adobe-75dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/adobe-75dpi" + url = "https://www.x.org/archive/individual/font/font-adobe-75dpi-1.0.3.tar.gz" + + version('1.0.3', '7a414bb661949cec938938fd678cf649') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py new file mode 100644 index 0000000000..9782d259b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-adobe-utopia-100dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontAdobeUtopia100dpi(Package): + """X.org adobe-utopia-100dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/adobe-utopia-100dpi" + url = "https://www.x.org/archive/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.gz" + + version('1.0.4', '128416eccd59b850f77a9b803681da3c') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py new file mode 100644 index 0000000000..9b687a7814 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-adobe-utopia-75dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontAdobeUtopia75dpi(Package): + """X.org adobe-utopia-75dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/adobe-utopia-75dpi" + url = "https://www.x.org/archive/individual/font/font-adobe-utopia-75dpi-1.0.4.tar.gz" + + version('1.0.4', '74c73a5b73c6c3224b299f1fc033e508') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py b/var/spack/repos/builtin/packages/font-adobe-utopia-type1/package.py new file mode 100644 index 0000000000..14004e9883 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-adobe-utopia-type1/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 FontAdobeUtopiaType1(Package): + """X.org adobe-utopia-type1 font.""" + + homepage = "https://cgit.freedesktop.org/xorg/font/adobe-utopia-type1" + url = "https://www.x.org/archive/individual/font/font-adobe-utopia-type1-1.0.4.tar.gz" + + version('1.0.4', 'b0676c3495acabad519ee98a94163904') + + depends_on('font-util', type='build') + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-alias/package.py b/var/spack/repos/builtin/packages/font-alias/package.py new file mode 100644 index 0000000000..eb8c79fe2a --- /dev/null +++ b/var/spack/repos/builtin/packages/font-alias/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontAlias(Package): + """X.org alias font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/alias" + url = "https://www.x.org/archive/individual/font/font-alias-1.0.3.tar.gz" + + version('1.0.3', '535138efe0a95f5fe521be6a6b9c4888') + + depends_on('font-util') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-arabic-misc/package.py b/var/spack/repos/builtin/packages/font-arabic-misc/package.py new file mode 100644 index 0000000000..8307d58d6e --- /dev/null +++ b/var/spack/repos/builtin/packages/font-arabic-misc/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontArabicMisc(Package): + """X.org arabic-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/arabic-misc" + url = "https://www.x.org/archive/individual/font/font-arabic-misc-1.0.3.tar.gz" + + version('1.0.3', '918457df65ef93f09969c6ab01071789') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-100dpi/package.py b/var/spack/repos/builtin/packages/font-bh-100dpi/package.py new file mode 100644 index 0000000000..1d488a6cd9 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-100dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBh100dpi(Package): + """X.org bh-100dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-100dpi" + url = "https://www.x.org/archive/individual/font/font-bh-100dpi-1.0.3.tar.gz" + + version('1.0.3', '09e63a5608000531179e1ab068a35878') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-75dpi/package.py b/var/spack/repos/builtin/packages/font-bh-75dpi/package.py new file mode 100644 index 0000000000..22420dd887 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-75dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBh75dpi(Package): + """X.org bh-75dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-75dpi" + url = "https://www.x.org/archive/individual/font/font-bh-75dpi-1.0.3.tar.gz" + + version('1.0.3', '88fec4ebc4a265684bff3abdd066f14f') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py new file mode 100644 index 0000000000..173195a557 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-100dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBhLucidatypewriter100dpi(Package): + """X.org bh-lucidatypewriter-100dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-lucidatypewriter-100dpi" + url = "https://www.x.org/archive/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.gz" + + version('1.0.3', '5f716f54e497fb4ec1bb3a5d650ac6f7') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py new file mode 100644 index 0000000000..9066823bc3 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-lucidatypewriter-75dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBhLucidatypewriter75dpi(Package): + """X.org bh-lucidatypewriter-75dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-lucidatypewriter-75dpi" + url = "https://www.x.org/archive/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.gz" + + version('1.0.3', 'cab8a44ae329aab7141c7adeef0daf5a') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-ttf/package.py b/var/spack/repos/builtin/packages/font-bh-ttf/package.py new file mode 100644 index 0000000000..a10b88d355 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-ttf/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontBhTtf(Package): + """X.org bh-ttf font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-ttf" + url = "https://www.x.org/archive/individual/font/font-bh-ttf-1.0.3.tar.gz" + + version('1.0.3', '4ce741ec4edaa11cd38988d355a7578b') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bh-type1/package.py b/var/spack/repos/builtin/packages/font-bh-type1/package.py new file mode 100644 index 0000000000..fffc2e4095 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bh-type1/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontBhType1(Package): + """X.org bh-type1 font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bh-type1" + url = "https://www.x.org/archive/individual/font/font-bh-type1-1.0.3.tar.gz" + + version('1.0.3', '62d4e8f782a6a0658784072a5df5ac98') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py b/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py new file mode 100644 index 0000000000..e8e11ae627 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bitstream-100dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBitstream100dpi(Package): + """X.org bitstream-100dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-100dpi" + url = "https://www.x.org/archive/individual/font/font-bitstream-100dpi-1.0.3.tar.gz" + + version('1.0.3', 'c27bf37e9b8039f93bd90b8131ed37ad') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py b/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py new file mode 100644 index 0000000000..5dd033964b --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bitstream-75dpi/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontBitstream75dpi(Package): + """X.org bitstream-75dpi font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-75dpi" + url = "https://www.x.org/archive/individual/font/font-bitstream-75dpi-1.0.3.tar.gz" + + version('1.0.3', '4ff6c5d6aebe69371e27b09ad8313d25') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py b/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py new file mode 100644 index 0000000000..e746f241df --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bitstream-speedo/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontBitstreamSpeedo(Package): + """X.org bitstream-speedo font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-speedo" + url = "https://www.x.org/archive/individual/font/font-bitstream-speedo-1.0.2.tar.gz" + + version('1.0.2', 'f0a777b351cf5adefefcf4823e0c1c01') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-bitstream-type1/package.py b/var/spack/repos/builtin/packages/font-bitstream-type1/package.py new file mode 100644 index 0000000000..65289685c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-bitstream-type1/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontBitstreamType1(Package): + """X.org bitstream-type1 font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/bitstream-type1" + url = "https://www.x.org/archive/individual/font/font-bitstream-type1-1.0.3.tar.gz" + + version('1.0.3', 'ff91738c4d3646d7999e00aa9923f2a0') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py b/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py new file mode 100644 index 0000000000..07e1330fe6 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-cronyx-cyrillic/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontCronyxCyrillic(Package): + """X.org cronyx-cyrillic font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/cronyx-cyrillic" + url = "https://www.x.org/archive/individual/font/font-cronyx-cyrillic-1.0.3.tar.gz" + + version('1.0.3', '3119ba1bc7f775c162c96e17a912fe30') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-cursor-misc/package.py b/var/spack/repos/builtin/packages/font-cursor-misc/package.py new file mode 100644 index 0000000000..6fddc015e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-cursor-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontCursorMisc(Package): + """X.org cursor-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/cursor-misc" + url = "https://www.x.org/archive/individual/font/font-cursor-misc-1.0.3.tar.gz" + + version('1.0.3', 'a0bf70c7e498f1cd8e3fdf6154f2bb00') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-daewoo-misc/package.py b/var/spack/repos/builtin/packages/font-daewoo-misc/package.py new file mode 100644 index 0000000000..3dd3b59b14 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-daewoo-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontDaewooMisc(Package): + """X.org daewoo-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/daewoo-misc" + url = "https://www.x.org/archive/individual/font/font-daewoo-misc-1.0.3.tar.gz" + + version('1.0.3', '71a7e2796f045c9d217a19c4e6c25bc1') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-dec-misc/package.py b/var/spack/repos/builtin/packages/font-dec-misc/package.py new file mode 100644 index 0000000000..035ae3eb15 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-dec-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontDecMisc(Package): + """X.org dec-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/dec-misc" + url = "https://www.x.org/archive/individual/font/font-dec-misc-1.0.3.tar.gz" + + version('1.0.3', '5a9242f6b60ecf2b8c5b158322ca2a40') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-ibm-type1/package.py b/var/spack/repos/builtin/packages/font-ibm-type1/package.py new file mode 100644 index 0000000000..34bbe85cfb --- /dev/null +++ b/var/spack/repos/builtin/packages/font-ibm-type1/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontIbmType1(Package): + """X.org ibm-type1 font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/ibm-type1" + url = "https://www.x.org/archive/individual/font/font-ibm-type1-1.0.3.tar.gz" + + version('1.0.3', '2806116e4adcb89d3d5ff5faf65e57c1') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-isas-misc/package.py b/var/spack/repos/builtin/packages/font-isas-misc/package.py new file mode 100644 index 0000000000..b0575f8ffc --- /dev/null +++ b/var/spack/repos/builtin/packages/font-isas-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontIsasMisc(Package): + """X.org isas-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/isas-misc" + url = "https://www.x.org/archive/individual/font/font-isas-misc-1.0.3.tar.gz" + + version('1.0.3', 'ecc3b6fbe8f5721ddf5c7fc66f73e76f') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-jis-misc/package.py b/var/spack/repos/builtin/packages/font-jis-misc/package.py new file mode 100644 index 0000000000..a5bee3fe31 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-jis-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontJisMisc(Package): + """X.org jis-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/jis-misc" + url = "https://www.x.org/archive/individual/font/font-jis-misc-1.0.3.tar.gz" + + version('1.0.3', 'c48ee5749ae25075d2c7a6111c195e7b') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-micro-misc/package.py b/var/spack/repos/builtin/packages/font-micro-misc/package.py new file mode 100644 index 0000000000..930a299beb --- /dev/null +++ b/var/spack/repos/builtin/packages/font-micro-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontMicroMisc(Package): + """X.org micro-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/micro-misc" + url = "https://www.x.org/archive/individual/font/font-micro-misc-1.0.3.tar.gz" + + version('1.0.3', '4de3f0ce500aef85f198c52ace5e66ac') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py b/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py new file mode 100644 index 0000000000..4d25552732 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-misc-cyrillic/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontMiscCyrillic(Package): + """X.org misc-cyrillic font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/misc-cyrillic" + url = "https://www.x.org/archive/individual/font/font-misc-cyrillic-1.0.3.tar.gz" + + version('1.0.3', 'e7b13da5325f62dd3f630beade6d2656') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py b/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py new file mode 100644 index 0000000000..6ccdc4e482 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-misc-ethiopic/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontMiscEthiopic(Package): + """X.org misc-ethiopic font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/misc-ethiopic" + url = "https://www.x.org/archive/individual/font/font-misc-ethiopic-1.0.3.tar.gz" + + version('1.0.3', '02ddea9338d9d36804ad38f3daadb55a') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-misc-meltho/package.py b/var/spack/repos/builtin/packages/font-misc-meltho/package.py new file mode 100644 index 0000000000..eda84e2b32 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-misc-meltho/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontMiscMeltho(Package): + """X.org misc-meltho font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/misc-meltho" + url = "https://www.x.org/archive/individual/font/font-misc-meltho-1.0.3.tar.gz" + + version('1.0.3', '8380696483478449c39b04612f20eea8') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-misc-misc/package.py b/var/spack/repos/builtin/packages/font-misc-misc/package.py new file mode 100644 index 0000000000..c960d18b39 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-misc-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontMiscMisc(Package): + """X.org misc-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/misc-misc" + url = "https://www.x.org/archive/individual/font/font-misc-misc-1.1.2.tar.gz" + + version('1.1.2', '23a79b92275375315129b440206c85b9') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-mutt-misc/package.py b/var/spack/repos/builtin/packages/font-mutt-misc/package.py new file mode 100644 index 0000000000..a5d4cae060 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-mutt-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontMuttMisc(Package): + """X.org mutt-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/mutt-misc" + url = "https://www.x.org/archive/individual/font/font-mutt-misc-1.0.3.tar.gz" + + version('1.0.3', '6c2de53ba514f720e02af48eef28ff32') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-schumacher-misc/package.py b/var/spack/repos/builtin/packages/font-schumacher-misc/package.py new file mode 100644 index 0000000000..193fa2691e --- /dev/null +++ b/var/spack/repos/builtin/packages/font-schumacher-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontSchumacherMisc(Package): + """X.org schumacher-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/schumacher-misc" + url = "https://www.x.org/archive/individual/font/font-schumacher-misc-1.1.2.tar.gz" + + version('1.1.2', '1f3386a0a690ba8117fc05b501f9f91b') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py b/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py new file mode 100644 index 0000000000..5914a3c9de --- /dev/null +++ b/var/spack/repos/builtin/packages/font-screen-cyrillic/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontScreenCyrillic(Package): + """X.org screen-cyrillic font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/screen-cyrillic" + url = "https://www.x.org/archive/individual/font/font-screen-cyrillic-1.0.4.tar.gz" + + version('1.0.4', '4cadaf2ba4c4d0f4cb9b4e7b8f0a3019') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-sony-misc/package.py b/var/spack/repos/builtin/packages/font-sony-misc/package.py new file mode 100644 index 0000000000..145ee20971 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-sony-misc/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontSonyMisc(Package): + """X.org sony-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/sony-misc" + url = "https://www.x.org/archive/individual/font/font-sony-misc-1.0.3.tar.gz" + + version('1.0.3', '4026cb88e2253efc0b8376003780ccb6') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-sun-misc/package.py b/var/spack/repos/builtin/packages/font-sun-misc/package.py new file mode 100644 index 0000000000..dcf5b9e217 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-sun-misc/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontSunMisc(Package): + """X.org sun-misc font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/sun-misc" + url = "https://www.x.org/archive/individual/font/font-sun-misc-1.0.3.tar.gz" + + version('1.0.3', '87ce97ce0582e76bc4064a4d4d10db09') + + depends_on('font-util') + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py new file mode 100644 index 0000000000..0b310117c6 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-util/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontUtil(Package): + """X.Org font package creation/installation utilities.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/util" + url = "https://www.x.org/archive/individual/font/font-util-1.3.1.tar.gz" + + version('1.3.1', 'd153a9af216e4498fa171faea2c82514') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py b/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py new file mode 100644 index 0000000000..0af366c742 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-winitzki-cyrillic/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 FontWinitzkiCyrillic(Package): + """X.org winitzki-cyrillic font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/winitzki-cyrillic" + url = "https://www.x.org/archive/individual/font/font-winitzki-cyrillic-1.0.3.tar.gz" + + version('1.0.3', '777c667b080b33793528d5abf3247a48') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('bdftopcf', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/font-xfree86-type1/package.py b/var/spack/repos/builtin/packages/font-xfree86-type1/package.py new file mode 100644 index 0000000000..dceac106a9 --- /dev/null +++ b/var/spack/repos/builtin/packages/font-xfree86-type1/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class FontXfree86Type1(Package): + """X.org xfree86-type1 font.""" + + homepage = "http://cgit.freedesktop.org/xorg/font/xfree86-type1" + url = "https://www.x.org/archive/individual/font/font-xfree86-type1-1.0.4.tar.gz" + + version('1.0.4', '89c33c5176cd580de6636ad50ce7777b') + + depends_on('font-util') + + depends_on('fontconfig', type='build') + depends_on('mkfontdir', type='build') + depends_on('mkfontscale', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') + + # `make install` copies the files to the font-util installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/fontcacheproto/package.py b/var/spack/repos/builtin/packages/fontcacheproto/package.py new file mode 100644 index 0000000000..77feb87573 --- /dev/null +++ b/var/spack/repos/builtin/packages/fontcacheproto/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 Fontcacheproto(Package): + """X.org FontcacheProto protocol headers.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/fontcacheproto" + url = "https://www.x.org/archive/individual/proto/fontcacheproto-0.1.3.tar.gz" + + version('0.1.3', '5a91ab914ffbfbc856e6fcde52e6f3e3') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/fontconfig/package.py b/var/spack/repos/builtin/packages/fontconfig/package.py index 0d7e47f228..99c9b1f15d 100644 --- a/var/spack/repos/builtin/packages/fontconfig/package.py +++ b/var/spack/repos/builtin/packages/fontconfig/package.py @@ -25,7 +25,7 @@ from spack import * -class Fontconfig(Package): +class Fontconfig(AutotoolsPackage): """Fontconfig customizing font access""" homepage = "http://www.freedesktop.org/wiki/Software/fontconfig/" url = "http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.11.1.tar.gz" @@ -34,9 +34,8 @@ class Fontconfig(Package): depends_on('freetype') depends_on('libxml2') + depends_on('pkg-config', type='build') - def install(self, spec, prefix): - configure("--prefix=%s" % prefix, "--enable-libxml2") - - make() - make("install") + def configure_args(self): + args = ["--enable-libxml2", "--disable-docs"] + return args diff --git a/var/spack/repos/builtin/packages/fontsproto/package.py b/var/spack/repos/builtin/packages/fontsproto/package.py new file mode 100644 index 0000000000..c3771e18fa --- /dev/null +++ b/var/spack/repos/builtin/packages/fontsproto/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 Fontsproto(Package): + """X Fonts Extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/fontsproto" + url = "https://www.x.org/archive/individual/proto/fontsproto-2.1.3.tar.gz" + + version('2.1.3', '0415f0360e33f3202af67c6c46782251') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/fonttosfnt/package.py b/var/spack/repos/builtin/packages/fonttosfnt/package.py new file mode 100644 index 0000000000..016cab1ac8 --- /dev/null +++ b/var/spack/repos/builtin/packages/fonttosfnt/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Fonttosfnt(Package): + """Wrap a bitmap font in a sfnt (TrueType) wrapper.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/fonttosfnt" + url = "https://www.x.org/archive/individual/app/fonttosfnt-1.0.4.tar.gz" + + version('1.0.4', 'ba77fd047a9cca400f17db8c46b06ce8') + + depends_on('freetype') + depends_on('libfontenc') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/fslsfonts/package.py b/var/spack/repos/builtin/packages/fslsfonts/package.py new file mode 100644 index 0000000000..6e46bd6b5a --- /dev/null +++ b/var/spack/repos/builtin/packages/fslsfonts/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 Fslsfonts(Package): + """fslsfonts produces a list of fonts served by an X font server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/fslsfonts" + url = "https://www.x.org/archive/individual/app/fslsfonts-1.0.5.tar.gz" + + version('1.0.5', 'ef781bd6a7b529d3ed7a256055715730') + + depends_on('libfs') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/fstobdf/package.py b/var/spack/repos/builtin/packages/fstobdf/package.py new file mode 100644 index 0000000000..6358e33d2a --- /dev/null +++ b/var/spack/repos/builtin/packages/fstobdf/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Fstobdf(Package): + """The fstobdf program reads a font from a font server and prints a BDF + file on the standard output that may be used to recreate the font. + This is useful in testing servers, debugging font metrics, and + reproducing lost BDF files.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/fstobdf" + url = "https://www.x.org/archive/individual/app/fstobdf-1.0.6.tar.gz" + + version('1.0.6', '6d3f24673fcb9ce266f49dc140bbf250') + + depends_on('libx11') + depends_on('libfs') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/gcc/gcc-backport.patch b/var/spack/repos/builtin/packages/gcc/gcc-backport.patch new file mode 100644 index 0000000000..f9fab68f23 --- /dev/null +++ b/var/spack/repos/builtin/packages/gcc/gcc-backport.patch @@ -0,0 +1,138 @@ +2016-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> + + Backported from mainline + 2016-02-19 Jakub Jelinek <jakub@redhat.com> + Bernd Edlinger <bernd.edlinger@hotmail.de> + + * Make-lang.in: Invoke gperf with -L C++. + * cfns.gperf: Remove prototypes for hash and libc_name_p + inlines. + * cfns.h: Regenerated. + * except.c (nothrow_libfn_p): Adjust. + +Index: gcc/cp/Make-lang.in +=================================================================== +--- a/gcc/cp/Make-lang.in (revision 233574) ++++ b/gcc/cp/Make-lang.in (working copy) +@@ -111,7 +111,7 @@ else + # deleting the $(srcdir)/cp/cfns.h file. + $(srcdir)/cp/cfns.h: + endif +- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \ ++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \ + $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h + + # +Index: gcc/cp/cfns.gperf +=================================================================== +--- a/gcc/cp/cfns.gperf (revision 233574) ++++ b/gcc/cp/cfns.gperf (working copy) +@@ -1,3 +1,5 @@ ++%language=C++ ++%define class-name libc_name + %{ + /* Copyright (C) 2000-2015 Free Software Foundation, Inc. + +@@ -16,14 +18,6 @@ for more details. + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ +-#ifdef __GNUC__ +-__inline +-#endif +-static unsigned int hash (const char *, unsigned int); +-#ifdef __GNUC__ +-__inline +-#endif +-const char * libc_name_p (const char *, unsigned int); + %} + %% + # The standard C library functions, for feeding to gperf; the result is used +Index: gcc/cp/cfns.h +=================================================================== +--- a/gcc/cp/cfns.h (revision 233574) ++++ b/gcc/cp/cfns.h (working copy) +@@ -1,5 +1,5 @@ +-/* ANSI-C code produced by gperf version 3.0.3 */ +-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */ ++/* C++ code produced by gperf version 3.0.4 */ ++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */ + + #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ +@@ -28,7 +28,7 @@ + #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." + #endif + +-#line 1 "cfns.gperf" ++#line 3 "cfns.gperf" + + /* Copyright (C) 2000-2015 Free Software Foundation, Inc. + +@@ -47,26 +47,19 @@ for more details. + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ +-#ifdef __GNUC__ +-__inline +-#endif +-static unsigned int hash (const char *, unsigned int); +-#ifdef __GNUC__ +-__inline +-#endif +-const char * libc_name_p (const char *, unsigned int); + /* maximum key range = 391, duplicates = 0 */ + +-#ifdef __GNUC__ +-__inline +-#else +-#ifdef __cplusplus +-inline +-#endif +-#endif +-static unsigned int +-hash (register const char *str, register unsigned int len) ++class libc_name + { ++private: ++ static inline unsigned int hash (const char *str, unsigned int len); ++public: ++ static const char *libc_name_p (const char *str, unsigned int len); ++}; ++ ++inline unsigned int ++libc_name::hash (register const char *str, register unsigned int len) ++{ + static const unsigned short asso_values[] = + { + 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, +@@ -122,14 +115,8 @@ along with GCC; see the file COPYING3. If not see + return hval + asso_values[(unsigned char)str[len - 1]]; + } + +-#ifdef __GNUC__ +-__inline +-#ifdef __GNUC_STDC_INLINE__ +-__attribute__ ((__gnu_inline__)) +-#endif +-#endif + const char * +-libc_name_p (register const char *str, register unsigned int len) ++libc_name::libc_name_p (register const char *str, register unsigned int len) + { + enum + { +Index: gcc/cp/except.c +=================================================================== +--- a/gcc/cp/except.c (revision 233574) ++++ b/gcc/cp/except.c (working copy) +@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn) + unless the system headers are playing rename tricks, and if + they are, we don't want to be confused by them. */ + id = DECL_NAME (fn); +- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id)); ++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id), ++ IDENTIFIER_LENGTH (id)); + } + + /* Returns nonzero if an exception of type FROM will be caught by a diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 72a5cb22f8..18fe0d88f8 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -3,6 +3,7 @@ from spack import * from contextlib import closing from glob import glob import sys +from os.path import isfile class Gcc(Package): @@ -10,14 +11,17 @@ class Gcc(Package): Objective-C, Fortran, and Java.""" homepage = "https://gcc.gnu.org" - url = "http://open-source-box.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2" - list_url = 'http://open-source-box.org/gcc/' + url = "http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2" + list_url = 'http://ftp.gnu.org/gnu/gcc/' list_depth = 2 + version('6.2.0', '9768625159663b300ae4de2f4745fcc4') version('6.1.0', '8fb6cb98b8459f5863328380fbf06bd1') version('5.4.0', '4c626ac2a83ef30dfb9260e6f59c2b30') version('5.3.0', 'c9616fd448f980259c31de613e575719') version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467') + version('5.1.0', 'd5525b1127d07d215960e6051c5da35e') + version('4.9.4', '87c24a4090c1577ba817ec6882602491') version('4.9.3', '6f831b4d251872736e8e9cc09746f327') version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43') version('4.9.1', 'fddf71348546af523353bd43d34919c1') @@ -33,6 +37,9 @@ class Gcc(Package): variant('gold', default=sys.platform != 'darwin', description="Build the gold linker plugin for ld-based LTO") + variant('piclibs', + default=False, + description="Build PIC versions of libgfortran.a and libstdc++.a") depends_on("mpfr") depends_on("gmp") @@ -50,6 +57,9 @@ class Gcc(Package): else: provides('golang', when='@4.7.1:') + patch('piclibs.patch', when='+piclibs') + patch('gcc-backport.patch', when='@4.7:4.9.2,5:5.3') + def install(self, spec, prefix): # libjava/configure needs a minor fix to install into spack paths. filter_file(r"'@.*@'", "'@[[:alnum:]]*@'", 'libjava/configure', @@ -57,9 +67,23 @@ class Gcc(Package): enabled_languages = set(('c', 'c++', 'fortran', 'java', 'objc')) - if spec.satisfies("@4.7.1:") and sys.platform != 'darwin': + if spec.satisfies("@4.7.1:") and sys.platform != 'darwin' and \ + not (spec.satisfies('@:4.9.3') and 'ppc64le' in spec.architecture): enabled_languages.add('go') + # Fix a standard header file for OS X Yosemite that + # is GCC incompatible by replacing non-GCC compliant macros + if 'yosemite' in spec.architecture: + if isfile(r'/usr/include/dispatch/object.h'): + new_dispatch_dir = join_path(prefix, 'include', 'dispatch') + mkdirp(new_dispatch_dir) + cp = which('cp') + new_header = join_path(new_dispatch_dir, 'object.h') + cp(r'/usr/include/dispatch/object.h', new_header) + filter_file(r'typedef void \(\^dispatch_block_t\)\(void\)', + 'typedef void* dispatch_block_t', + new_header) + # Generic options to compile GCC options = ["--prefix=%s" % prefix, "--libdir=%s/lib64" % prefix, "--disable-multilib", diff --git a/var/spack/repos/builtin/packages/gcc/piclibs.patch b/var/spack/repos/builtin/packages/gcc/piclibs.patch new file mode 100644 index 0000000000..0ecb793067 --- /dev/null +++ b/var/spack/repos/builtin/packages/gcc/piclibs.patch @@ -0,0 +1,62 @@ +diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in +index 62b9f7a..7666fdb 100644 +--- a/libgfortran/Makefile.in ++++ b/libgfortran/Makefile.in +@@ -357,11 +357,11 @@ AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ + CC = @CC@ + CCDEPMODE = @CCDEPMODE@ +-CFLAGS = @CFLAGS@ ++CFLAGS = @CFLAGS@ -fPIC + CPP = @CPP@ +-CPPFLAGS = @CPPFLAGS@ ++CPPFLAGS = @CPPFLAGS@ -fPIC + CYGPATH_W = @CYGPATH_W@ +-DEFS = @DEFS@ ++DEFS = @DEFS@ -fPIC + DEPDIR = @DEPDIR@ + DSYMUTIL = @DSYMUTIL@ + DUMPBIN = @DUMPBIN@ +@@ -371,7 +371,7 @@ ECHO_T = @ECHO_T@ + EGREP = @EGREP@ + EXEEXT = @EXEEXT@ + FC = @FC@ +-FCFLAGS = @FCFLAGS@ ++FCFLAGS = @FCFLAGS@ -fPIC + FGREP = @FGREP@ + FPU_HOST_HEADER = @FPU_HOST_HEADER@ + GREP = @GREP@ +diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in +index bede542..9b3e442 100644 +--- a/libstdc++-v3/Makefile.in ++++ b/libstdc++-v3/Makefile.in +@@ -115,7 +115,7 @@ CC = @CC@ + CCODECVT_CC = @CCODECVT_CC@ + CCOLLATE_CC = @CCOLLATE_CC@ + CCTYPE_CC = @CCTYPE_CC@ +-CFLAGS = @CFLAGS@ ++CFLAGS = @CFLAGS@ -fPIC + CLOCALE_CC = @CLOCALE_CC@ + CLOCALE_H = @CLOCALE_H@ + CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ +@@ -124,7 +124,7 @@ CMESSAGES_H = @CMESSAGES_H@ + CMONEY_CC = @CMONEY_CC@ + CNUMERIC_CC = @CNUMERIC_CC@ + CPP = @CPP@ +-CPPFLAGS = @CPPFLAGS@ ++CPPFLAGS = @CPPFLAGS@ -fPIC + CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ + CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ + CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ +@@ -139,7 +139,7 @@ CYGPATH_W = @CYGPATH_W@ + C_INCLUDE_DIR = @C_INCLUDE_DIR@ + DBLATEX = @DBLATEX@ + DEBUG_FLAGS = @DEBUG_FLAGS@ +-DEFS = @DEFS@ ++DEFS = @DEFS@ -fPIC + DOT = @DOT@ + DOXYGEN = @DOXYGEN@ + DSYMUTIL = @DSYMUTIL@ +-- +2.8.3 + diff --git a/var/spack/repos/builtin/packages/gccmakedep/package.py b/var/spack/repos/builtin/packages/gccmakedep/package.py new file mode 100644 index 0000000000..ed2530d89e --- /dev/null +++ b/var/spack/repos/builtin/packages/gccmakedep/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 Gccmakedep(Package): + """X.org gccmakedep utilities.""" + + homepage = "https://cgit.freedesktop.org/xorg/util/gccmakedep/" + url = "https://www.x.org/archive/individual/util/gccmakedep-1.0.3.tar.gz" + + version('1.0.3', '127ddb6131eb4a56fdf6644a63ade788') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py new file mode 100644 index 0000000000..3b3abc71ed --- /dev/null +++ b/var/spack/repos/builtin/packages/gconf/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 Gconf(Package): + """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" + + version('3.2.6', '2b16996d0e4b112856ee5c59130e822c') + + depends_on('glib@2.14.0:') + depends_on('libxml2') + + # TODO: add missing dependencies + # gio-2.0 >= 2.31.0 + # gthread-2.0 + # gmodule-2.0 >= 2.7.0 + # gobject-2.0 >= 2.7.0 + # dbus-1 >= 1.0.0 + # dbus-glib-1 >= 0.74 + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index 4fdfafc992..4f54b3a841 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -26,14 +26,13 @@ from spack import * class Gdal(Package): - """ - GDAL is a translator library for raster and vector geospatial + """GDAL is a translator library for raster and vector geospatial data formats that is released under an X/MIT style Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single raster abstract data model and vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line - utilities for data translation and processing + utilities for data translation and processing. """ homepage = "http://www.gdal.org/" diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py index 9145009fa4..f90e4e7ff0 100644 --- a/var/spack/repos/builtin/packages/gdb/package.py +++ b/var/spack/repos/builtin/packages/gdb/package.py @@ -22,16 +22,15 @@ # 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 Gdb(Package): """GDB, the GNU Project debugger, allows you to see what is going on - `inside' another program while it executes -- or what another - program was doing at the moment it crashed. - + 'inside' another program while it executes -- or what another + program was doing at the moment it crashed. """ + homepage = "https://www.gnu.org/software/gdb" url = "http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.gz" @@ -42,9 +41,18 @@ class Gdb(Package): version('7.9', '8f8ced422fe462a00e0135a643544f17') version('7.8.2', '8b0ea8b3559d3d90b3ff4952f0aeafbc') + variant('python', default=True, description='Compile with Python support') + + # Required dependency depends_on('texinfo', type='build') + # Optional dependency + depends_on('python', when='+python') + def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + options = ['--prefix=%s' % prefix] + if '+python' in spec: + options.extend(['--with-python']) + configure(*options) make() make("install") diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py new file mode 100644 index 0000000000..239ef6d586 --- /dev/null +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -0,0 +1,85 @@ +############################################################################## +# 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 Geant4(Package): + """Geant4 is a toolkit for the simulation of the passage of particles + through matter. Its areas of application include high energy, nuclear + and accelerator physics, as well as studies in medical and space + science.""" + + homepage = "http://geant4.cern.ch/" + url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz" + + version('10.02.p01', 'b81f7082a15f6a34b720b6f15c6289cfe4ddbbbdcef0dc52719f71fac95f7f1c') + version('10.01.p03', '4fb4175cc0dabcd517443fbdccd97439') + + variant('qt', default=False, description='Enable Qt support') + + depends_on('cmake@3.5:', type='build') + + depends_on("clhep@2.3.1.1~cxx11+cxx14", when="@10.02.p01") + depends_on("clhep@2.2.0.4~cxx11+cxx14", when="@10.01.p03") + depends_on("expat") + depends_on("zlib") + depends_on("xerces-c") + depends_on("qt@4.8:", when="+qt") + + def install(self, spec, prefix): + cmake_args = list(std_cmake_args) + cmake_args.append('-DXERCESC_ROOT_DIR:STRING=%s' % + spec['xerces-c'].prefix) + cmake_args.append('-DGEANT4_BUILD_CXXSTD=c++14') + + cmake_args += ['-DGEANT4_USE_GDML=ON', + '-DGEANT4_USE_SYSTEM_EXPAT=ON', + '-DGEANT4_USE_SYSTEM_ZLIB=ON', + '-DGEANT4_USE_SYSTEM_CLHEP=ON'] + + # fixme: turn off data for now and maybe each data set should + # go into a separate package to cut down on disk usage between + # different code versions using the same data versions. + cmake_args.append('-DGEANT4_INSTALL_DATA=OFF') + + # http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch02s03.html + # fixme: likely things that need addressing: + # -DGEANT4_USE_OPENGL_X11=ON + + if '+qt' in spec: + cmake_args.append('-DGEANT4_USE_QT=ON') + + build_directory = join_path(self.stage.path, 'spack-build') + source_directory = self.stage.source_path + + with working_dir(build_directory, create=True): + cmake(source_directory, *cmake_args) + make() + make("install") + + def url_for_version(self, version): + """Handle Geant4's unusual version string.""" + return "http://geant4.cern.ch/support/source/geant4.%s.tar.gz" % version diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py new file mode 100644 index 0000000000..0f82ed5fb6 --- /dev/null +++ b/var/spack/repos/builtin/packages/ghostscript-fonts/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 GhostscriptFonts(Package): + """Ghostscript Fonts""" + + homepage = "http://ghostscript.com/" + url = "ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz" + + version('8.11', '6865682b095f8c4500c54b285ff05ef6') + + def install(self, spec, prefix): + install_tree('.', join_path(prefix.share, 'font')) diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py index c22b90088e..f63ebac0c1 100644 --- a/var/spack/repos/builtin/packages/ghostscript/package.py +++ b/var/spack/repos/builtin/packages/ghostscript/package.py @@ -26,16 +26,20 @@ from spack import * class Ghostscript(Package): - """an interpreter for the PostScript language and for PDF. """ + """An interpreter for the PostScript language and for PDF.""" + homepage = "http://ghostscript.com/" - url = "http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.18.tar.gz" + url = "http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.18.tar.gz" version('9.18', '33a47567d7a591c00a253caddd12a88a') parallel = False + depends_on('libtiff') + def install(self, spec, prefix): - configure("--prefix=%s" % prefix, "--enable-shared") + configure('--prefix={0}'.format(prefix), + '--with-system-libtiff') make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/git-lfs/package.py b/var/spack/repos/builtin/packages/git-lfs/package.py new file mode 100644 index 0000000000..25e440ff6d --- /dev/null +++ b/var/spack/repos/builtin/packages/git-lfs/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 GitLfs(Package): + """Git LFS is a system for managing and versioning large files in + association with a Git repository. Instead of storing the large files + within the Git repository as blobs, Git LFS stores special "pointer + files" in the repository, while storing the actual file contents on a + Git LFS server.""" + + homepage = "https://git-lfs.github.com" + git_url = "https://github.com/github/git-lfs.git" + + version('1.4.1', git=git_url, tag='v1.4.1') + version('1.3.1', git=git_url, tag='v1.3.1') + + # TODO: Implement this by following the instructions at this location: + # https://github.com/github/git-lfs/blob/master/CONTRIBUTING.md#building + # variant('test', default=True, description='Build and run tests as part of the build.') # NOQA: E501 + + depends_on('go@1.5:', type='build') + depends_on('git@1.8.2:', type='run') + + def install(self, spec, prefix): + bootstrap_script = Executable(join_path('script', 'bootstrap')) + bootstrap_script() + + mkdirp(prefix.bin) + install(join_path('bin', 'git-lfs'), prefix.bin) diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py index 3cc879088d..ac97ad392b 100644 --- a/var/spack/repos/builtin/packages/git/package.py +++ b/var/spack/repos/builtin/packages/git/package.py @@ -22,6 +22,7 @@ # 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 sys from spack import * @@ -32,6 +33,13 @@ class Git(Package): homepage = "http://git-scm.com" url = "https://github.com/git/git/tarball/v2.7.1" + version('2.9.3', 'b0edfc0f3cb046aec7ed68a4b7282a75') + version('2.9.2', '3ff8a9b30fd5c99a02e6d6585ab543fc') + version('2.9.1', 'a5d806743a992300b45f734d1667ddd2') + version('2.9.0', 'bf33a13c2adc05bc9d654c415332bc65') + version('2.8.4', '86afb10254c3803894c9863fb5896bb6') + version('2.8.3', '0e19f31f96f9364fd247b8dc737dacfd') + version('2.8.2', '3d55550880af98f6e35c7f1d7c5aecfe') version('2.8.1', '1308448d95afa41a4135903f22262fc8') version('2.8.0', 'eca687e46e9750121638f258cff8317b') version('2.7.3', 'fa1c008b56618c355a32ba4a678305f6') @@ -47,28 +55,33 @@ class Git(Package): # version('2.5.4', '3eca2390cf1fa698b48e2a233563a76b') # version('2.2.1', 'ff41fdb094eed1ec430aed8ee9b9849c') - depends_on("openssl") depends_on("autoconf", type='build') depends_on("curl") depends_on("expat") depends_on("gettext") - depends_on("zlib") + depends_on("libiconv") + depends_on("openssl") depends_on("pcre") depends_on("perl") + depends_on("zlib") def install(self, spec, prefix): env['LDFLAGS'] = "-L%s" % spec['gettext'].prefix.lib + " -lintl" configure_args = [ "--prefix=%s" % prefix, - "--with-libpcre=%s" % spec['pcre'].prefix, - "--with-openssl=%s" % spec['openssl'].prefix, - "--with-zlib=%s" % spec['zlib'].prefix, "--with-curl=%s" % spec['curl'].prefix, "--with-expat=%s" % spec['expat'].prefix, + "--with-iconv=%s" % spec['libiconv'].prefix, + "--with-libpcre=%s" % spec['pcre'].prefix, + "--with-openssl=%s" % spec['openssl'].prefix, "--with-perl=%s" % join_path(spec['perl'].prefix.bin, 'perl'), + "--with-zlib=%s" % spec['zlib'].prefix, ] which('autoreconf')('-i') configure(*configure_args) + if sys.platform == "darwin": + # Don't link with -lrt; the system has no (and needs no) librt + filter_file(r' -lrt$', '', 'Makefile') make() make("install") diff --git a/var/spack/repos/builtin/packages/icu/package.py b/var/spack/repos/builtin/packages/glew/package.py index b8d366b905..5df7c8642f 100644 --- a/var/spack/repos/builtin/packages/icu/package.py +++ b/var/spack/repos/builtin/packages/glew/package.py @@ -25,24 +25,27 @@ from spack import * -class Icu(Package): - """The International Components for Unicode (ICU) package is a - mature, widely used set of C/C++ libraries providing Unicode and - Globalization support for software applications. ICU is widely - portable and gives applications the same results on all - platforms.""" - # FIXME: add a proper url for your package's homepage here. - homepage = "http://www.example.com" - url = "http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz" - - version('54.1', 'e844caed8f2ca24c088505b0d6271bc0') - - def url_for_version(self, version): - return "http://download.icu-project.org/files/icu4c/%s/icu4c-%s-src.tgz" % ( - version, str(version).replace('.', '_')) +class Glew(Package): + """The OpenGL Extension Wrangler Library.""" + + homepage = "http://glew.sourceforge.net/" + url = "https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download" + + version('2.0.0', '2a2cd7c98f13854d2fcddae0d2b20411') + + depends_on("cmake", type='build') def install(self, spec, prefix): - with working_dir("source"): - configure("--prefix=%s" % prefix) + options = [] + options.extend(std_cmake_args) + + with working_dir('build'): + cmake('./cmake/', *options) + + # https://github.com/Homebrew/legacy-homebrew/issues/22025 + # Note: This file is generated only after cmake is run + filter_file(r'Requires: glu', + (''), '../glew.pc') + make() make("install") diff --git a/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch b/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch new file mode 100644 index 0000000000..cfcfe424be --- /dev/null +++ b/var/spack/repos/builtin/packages/glib/no-Werror=format-security.patch @@ -0,0 +1,16 @@ +--- a/configure.ac 2016-08-16 11:57:34.000000000 -0400 ++++ b/configure.ac 2016-08-16 11:57:36.000000000 -0400 +@@ -3357,11 +3357,11 @@ + enable_compile_warnings=yes) + AS_IF([test "x$enable_compile_warnings" = xyes], [ + CC_CHECK_FLAGS_APPEND([GLIB_WARN_CFLAGS], [CFLAGS], [\ + -Wall -Wstrict-prototypes -Werror=declaration-after-statement \ + -Werror=missing-prototypes -Werror=implicit-function-declaration \ +- -Werror=pointer-arith -Werror=init-self -Werror=format-security \ +- -Werror=format=2 -Werror=missing-include-dirs]) ++ -Werror=pointer-arith -Werror=init-self \ ++ -Werror=missing-include-dirs]) + ]) + AC_SUBST(GLIB_WARN_CFLAGS) + + # diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 2720831e4f..4d8085baf2 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import os class Glib(Package): @@ -30,20 +31,28 @@ class Glib(Package): providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading and an object system.""" + homepage = "https://developer.gnome.org/glib/" url = "http://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.1.tar.xz" version('2.49.4', 'e2c87c03017b0cd02c4c73274b92b148') + version('2.48.1', '67bd3b75c9f6d5587b457dc01cdcd5bb') version('2.42.1', '89c4119e50e767d3532158605ee9121a') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('pkg-config+internal_glib', type='build') depends_on('libffi') depends_on('zlib') - depends_on('pkg-config', type='build') depends_on('gettext') - depends_on('pcre+utf', when='@2.49:') + depends_on('pcre+utf', when='@2.48:') # The following patch is needed for gcc-6.1 patch('g_date_strftime.patch', when='@2.42.1') + # Clang doesn't seem to acknowledge the pragma lines to disable the -Werror + # around a legitimate usage. + patch('no-Werror=format-security.patch') def url_for_version(self, version): """Handle glib's version-based custom URLs.""" @@ -51,6 +60,16 @@ class Glib(Package): return url + '/%s/glib-%s.tar.xz' % (version.up_to(2), version) def install(self, spec, prefix): + autoreconf = which("autoreconf") + autoreconf("--install", "--verbose", "--force", + "-I", "config", + "-I", os.path.join(spec['pkg-config'].prefix, + "share", "aclocal"), + "-I", os.path.join(spec['automake'].prefix, + "share", "aclocal"), + "-I", os.path.join(spec['libtool'].prefix, + "share", "aclocal"), + ) configure("--prefix=%s" % prefix) make() make("install", parallel=False) diff --git a/var/spack/repos/builtin/packages/globus_toolkit/package.py b/var/spack/repos/builtin/packages/globus_toolkit/package.py new file mode 100644 index 0000000000..5cec13a5af --- /dev/null +++ b/var/spack/repos/builtin/packages/globus_toolkit/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 GlobusToolkit(Package): + """The Globus Toolkit is an open source software toolkit used for building + grids""" + + homepage = "http://toolkit.globus.org" + url = "http://toolkit.globus.org/ftppub/gt6/installers/src/globus_toolkit-6.0.1470089956.tar.gz" + + version('6.0.1470089956', 'b77fe3cc5a5844df995688b0e630d077') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/glproto/package.py b/var/spack/repos/builtin/packages/glproto/package.py new file mode 100644 index 0000000000..462e529067 --- /dev/null +++ b/var/spack/repos/builtin/packages/glproto/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 Glproto(Package): + """OpenGL Extension to the X Window System. + + This extension defines a protocol for the client to send 3D rendering + commands to the X server.""" + + homepage = "https://www.x.org/wiki/" + url = "https://www.x.org/archive/individual/proto/glproto-1.4.17.tar.gz" + + version('1.4.17', 'd69554c1b51a83f2c6976a640819911b') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py new file mode 100644 index 0000000000..ca296350a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/gmake/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 Gmake(Package): + """GNU Make.""" + + homepage = "http://gnu.org/gnu/make" + url = "ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz" + + version('4.0', 'b5e558f981326d9ca1bfdb841640721a') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + with working_dir(prefix.bin): + symlink('make', 'gmake') diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py index d85330dd6e..eacd3a6733 100644 --- a/var/spack/repos/builtin/packages/gmp/package.py +++ b/var/spack/repos/builtin/packages/gmp/package.py @@ -25,21 +25,24 @@ from spack import * -class Gmp(Package): - """GMP is a free library for arbitrary precision arithmetic, operating - on signed integers, rational numbers, and floating-point numbers.""" - +class Gmp(AutotoolsPackage): + """GMP is a free library for arbitrary precision arithmetic, + operating on signed integers, rational numbers, and + floating-point numbers.""" homepage = "https://gmplib.org" - url = "https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2" + url = "https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2" version('6.1.1', '4c175f86e11eb32d8bf9872ca3a8e11d') version('6.1.0', '86ee6e54ebfc4a90b643a65e402c4048') version('6.0.0a', 'b7ff2d88cae7f8085bd5006096eed470') version('6.0.0', '6ef5869ae735db9995619135bd856b84') - depends_on("m4", type='build') + depends_on('m4', type='build') + + def configure_args(self): + args = ['--enable-cxx'] + # We need this flag if we want all the following checks to pass. + if self.spec.compiler.name == 'intel': + args.append('CXXFLAGS=-no-ftz') - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - make() - make("install") + return args diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py index 72f490e2f4..dd142866e5 100644 --- a/var/spack/repos/builtin/packages/gmsh/package.py +++ b/var/spack/repos/builtin/packages/gmsh/package.py @@ -26,8 +26,7 @@ from spack import * class Gmsh(Package): - """ - Gmsh is a free 3D finite element grid generator with a built-in CAD engine + """Gmsh is a free 3D finite element grid generator with a built-in CAD engine and post-processor. Its design goal is to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization capabilities. Gmsh is built around four modules: geometry, mesh, solver and @@ -35,6 +34,7 @@ class Gmsh(Package): either interactively using the graphical user interface or in ASCII text files using Gmsh's own scripting language. """ + homepage = 'http://gmsh.info' url = 'http://gmsh.info/src/gmsh-2.11.0-source.tgz' @@ -87,9 +87,9 @@ class Gmsh(Package): options.append('-DENABLE_OS_SPECIFIC_INSTALL=OFF') # Make sure GMSH picks up correct BlasLapack by providing linker flags - options.append('-DBLAS_LAPACK_LIBRARIES=%s %s' % - (to_link_flags(spec['lapack'].lapack_shared_lib), - to_link_flags(spec['blas'].blas_shared_lib))) + blas_lapack = spec['lapack'].lapack_libs + spec['blas'].blas_libs + options.append( + '-DBLAS_LAPACK_LIBRARIES={0}'.format(blas_lapack.ld_flags)) # Gmsh does not have an option to compile against external metis. # Its own Metis, however, fails to build diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py index b0e2109fd3..d48c7c9756 100644 --- a/var/spack/repos/builtin/packages/go-bootstrap/package.py +++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py @@ -1,3 +1,27 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## import os import shutil import glob @@ -17,25 +41,37 @@ class GoBootstrap(Package): extendable = True - # temporary fix until tags are pulled correctly + # NOTE: Go@1.4.2 is the only supported bootstrapping compiler because all + # later versions require a Go compiler to build. + # See: https://golang.org/doc/install/source version('1.4.2', git='https://go.googlesource.com/go', tag='go1.4.2') - variant('test', - default=True, - description="Run tests as part of build, a good idea but quite" - " time consuming") + variant('test', default=True, description='Build and run tests as part of the build.') provides('golang@:1.4.2') - depends_on('git') + depends_on('git', type='alldeps') + + # NOTE: Older versions of Go attempt to download external files that have + # since been moved while running the test suite. This patch modifies the + # test files so that these tests don't cause false failures. + # See: https://github.com/golang/go/issues/15694 + @when('@:1.4.3') + def patch(self): + test_suite_file = FileFilter(join_path('src', 'run.bash')) + test_suite_file.filter( + r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$', + r'# \1\2\3', + ) + + @when('@1.5.0:') + def patch(self): + pass def install(self, spec, prefix): bash = which('bash') with working_dir('src'): - if '+test' in spec: - bash('all.bash') - else: - bash('make.bash') + bash('{0}.bash'.format('all' if '+test' in spec else 'make')) try: os.makedirs(prefix) diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index ff2c2f6781..5fa3017ab5 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -1,3 +1,27 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## import os import shutil import glob @@ -12,28 +36,39 @@ class Go(Package): extendable = True - version('1.5.4', git='https://go.googlesource.com/go', tag='go1.5.4') version('1.6.2', git='https://go.googlesource.com/go', tag='go1.6.2') + version('1.5.4', git='https://go.googlesource.com/go', tag='go1.5.4') + version('1.4.2', git='https://go.googlesource.com/go', tag='go1.4.2') - variant('test', - default=True, - description="Run tests as part of build, a good idea but quite" - " time consuming") + variant('test', default=True, description='Build and run tests as part of the build.') provides('golang') - # to-do, make non-c self-hosting compilers feasible without backflips + depends_on('git', type='alldeps') + # TODO: Make non-c self-hosting compilers feasible without backflips # should be a dep on external go compiler depends_on('go-bootstrap', type='build') - depends_on('git') + + # NOTE: Older versions of Go attempt to download external files that have + # since been moved while running the test suite. This patch modifies the + # test files so that these tests don't cause false failures. + # See: https://github.com/golang/go/issues/15694 + @when('@:1.4.3') + def patch(self): + test_suite_file = FileFilter(join_path('src', 'run.bash')) + test_suite_file.filter( + r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$', + r'# \1\2\3', + ) + + @when('@1.5.0:') + def patch(self): + pass def install(self, spec, prefix): bash = which('bash') with working_dir('src'): - if '+test' in spec: - bash('all.bash') - else: - bash('make.bash') + bash('{0}.bash'.format('all' if '+test' in spec else 'make')) try: os.makedirs(prefix) diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py new file mode 100644 index 0000000000..952ec21661 --- /dev/null +++ b/var/spack/repos/builtin/packages/gobject-introspection/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 GobjectIntrospection(Package): + """The GObject Introspection is used to describe the program APIs and + collect them in a uniform, machine readable format.Cairo is a 2D graphics + library with support for multiple output""" + + homepage = "https://wiki.gnome.org/Projects/GObjectIntrospection" + url = "http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/1.48/gobject-introspection-1.48.0.tar.xz" + + version('1.48.0', '01301fa9019667d48e927353e08bc218') + + # version 1.48.0 build fails with glib 2.49.4 + depends_on("glib@2.48.1") + depends_on("python") + depends_on("cairo") + depends_on("bison", type="build") + depends_on("flex", type="build") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + # we need to filter this file to avoid an overly long hashbang line + filter_file('@PYTHON@', 'python', + 'tools/g-ir-tool-template.in') + make() + make("install") diff --git a/var/spack/repos/builtin/packages/gource/package.py b/var/spack/repos/builtin/packages/gource/package.py new file mode 100644 index 0000000000..d8ae8b6506 --- /dev/null +++ b/var/spack/repos/builtin/packages/gource/package.py @@ -0,0 +1,63 @@ +############################################################################## +# 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 Gource(Package): + """Software version control visualization.""" + + homepage = "http://gource.io" + url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz" + + version('0.44', '79cda1bfaad16027d59cce55455bfab88b57c69d') + + depends_on('automake', type='build') + depends_on('autoconf', type='build') + depends_on('libtool', type='build') + depends_on('glm', type='build') + depends_on('pkg-config', type='build') + + depends_on('freetype@2.0:') + depends_on('pcre') + depends_on('boost@1.46:+filesystem+system') + depends_on('glew') + depends_on('jpeg') + depends_on('libpng') + depends_on('pcre') + depends_on('sdl2') + depends_on('sdl2_image') + + def install(self, spec, prefix): + make_args = ['--prefix=%s' % prefix, + '--disable-dependency-tracking', + '--without-x', + '--with-boost=%s' % spec['boost'].prefix] + + autoreconf('-i') + configure(*make_args) + make() + + make("install", + parallel=False) diff --git a/var/spack/repos/builtin/packages/gperf/package.py b/var/spack/repos/builtin/packages/gperf/package.py index 0e54d0e037..0ae07b33fc 100644 --- a/var/spack/repos/builtin/packages/gperf/package.py +++ b/var/spack/repos/builtin/packages/gperf/package.py @@ -39,6 +39,8 @@ class Gperf(Package): version('3.0.4', 'c1f1db32fb6598d6a93e6e88796a8632') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + # make('check') # fails tests + make('install') diff --git a/var/spack/repos/builtin/packages/grackle/Make.mach.template b/var/spack/repos/builtin/packages/grackle/Make.mach.template new file mode 100644 index 0000000000..83abaa26d1 --- /dev/null +++ b/var/spack/repos/builtin/packages/grackle/Make.mach.template @@ -0,0 +1,71 @@ +MACH_TEXT = Generic Linux +MACH_VALID = 1 +MACH_FILE = Make.mach.@ARCHITECTURE + +#----------------------------------------------------------------------- +# Install paths (local variables) +#----------------------------------------------------------------------- + +LOCAL_HDF5_INSTALL = @HDF5_ROOT + +#----------------------------------------------------------------------- +# Compiler settings +#----------------------------------------------------------------------- + +MACH_CC_NOMPI = @CC # C compiler +MACH_CXX_NOMPI = @CXX # C++ compiler +MACH_FC_NOMPI = @F77 # Fortran 77 +MACH_F90_NOMPI = @FC # Fortran 90 +MACH_LD_NOMPI = @FC # Linker +@LINK_VARIABLES_DEFINITION + +#----------------------------------------------------------------------- +# Machine-dependent defines +#----------------------------------------------------------------------- + +MACH_DEFINES = -DLINUX -DH5_USE_16_API -fPIC + +#----------------------------------------------------------------------- +# Compiler flag settings +#----------------------------------------------------------------------- + +MACH_CPPFLAGS = -P -traditional +MACH_CFLAGS = +MACH_CXXFLAGS = +MACH_FFLAGS = -fno-second-underscore -ffixed-line-length-132 +MACH_F90FLAGS = -fno-second-underscore +MACH_LDFLAGS = @STDCXX_LIB + +#----------------------------------------------------------------------- +# Optimization flags +#----------------------------------------------------------------------- + +MACH_OPT_WARN = -Wall -g +MACH_OPT_DEBUG = -g +MACH_OPT_HIGH = -O2 +MACH_OPT_AGGRESSIVE = -O3 -g + +#----------------------------------------------------------------------- +# Includes +#----------------------------------------------------------------------- + +LOCAL_INCLUDES_HDF5 = -I@HDF5_ROOT/include # HDF5 includes + +MACH_INCLUDES = $(LOCAL_INCLUDES_HDF5) + +#----------------------------------------------------------------------- +# Libraries +#----------------------------------------------------------------------- + +LOCAL_LIBS_HDF5 = -L@HDF5_ROOT/lib -lhdf5 # HDF5 libraries +LOCAL_LIBS_MACH = # Machine-dependent libraries + +MACH_LIBS = $(LOCAL_LIBS_HDF5) $(LOCAL_LIBS_MACH) + +#----------------------------------------------------------------------- +# Installation +#----------------------------------------------------------------------- + +MACH_INSTALL_PREFIX = @PREFIX +MACH_INSTALL_LIB_DIR = +MACH_INSTALL_INCLUDE_DIR = diff --git a/var/spack/repos/builtin/packages/grackle/package.py b/var/spack/repos/builtin/packages/grackle/package.py new file mode 100644 index 0000000000..7e3777158f --- /dev/null +++ b/var/spack/repos/builtin/packages/grackle/package.py @@ -0,0 +1,89 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +import os.path +import shutil +import inspect + +from spack import * + + +class Grackle(Package): + """Grackle is a chemistry and radiative cooling library for astrophysical + simulations with interfaces for C, C++, and Fortran codes. It is a + generalized and trimmed down version of the chemistry network of the Enzo + simulation code + """ + homepage = 'http://grackle.readthedocs.io/en/grackle-2.2/' + url = 'https://bitbucket.org/grackle/grackle/get/grackle-2.0.1.tar.bz2' + + version('2.2', 'ec49ed1db5a42db21f478285150c2ba3') + version('2.0.1', 'a9624ad13a60c592c1a0a4ea8e1ae86d') + + depends_on('libtool', when='@2.2') + + depends_on('mpi') + depends_on('hdf5+mpi') + + parallel = False + + def install(self, spec, prefix): + template_name = '{0.architecture}-{0.compiler.name}' + grackle_architecture = template_name.format(spec) + link_variables = 'MACH_AR = ar' if spec.version < Version(2.2) else 'MACH_LIBTOOL = libtool' # NOQA: ignore=E501 + substitutions = { + '@ARCHITECTURE': grackle_architecture, + '@CC': spec['mpi'].mpicc, + '@CXX': spec['mpi'].mpicxx, + '@FC': spec['mpi'].mpifc, + '@F77': spec['mpi'].mpif77, + '@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs), + '@HDF5_ROOT': spec['hdf5'].prefix, + '@PREFIX': prefix, + '@LINK_VARIABLES_DEFINITION': link_variables + } + + template = join_path( + os.path.dirname(inspect.getmodule(self).__file__), + 'Make.mach.template' + ) + makefile = join_path( + self.stage.source_path, + 'src', + 'clib', + 'Make.mach.{0}'.format(grackle_architecture) + ) + shutil.copy(template, makefile) + for key, value in substitutions.items(): + filter_file(key, value, makefile) + + configure() + with working_dir('src/clib'): + make('clean') + make('machine-{0}'.format(grackle_architecture)) + make('opt-high') + make('show-config') + make() + mkdirp(prefix.lib) + make('install') diff --git a/var/spack/repos/builtin/packages/grandr/package.py b/var/spack/repos/builtin/packages/grandr/package.py new file mode 100644 index 0000000000..8097d4fa01 --- /dev/null +++ b/var/spack/repos/builtin/packages/grandr/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 Grandr(Package): + """RandR user interface using GTK+ libraries.""" + + homepage = "https://cgit.freedesktop.org/xorg/app/grandr" + url = "https://www.x.org/archive/individual/app/grandr-0.1.tar.gz" + + version('0.1', '707109a105f2ab1bb216e6e6a5a10ba4') + + depends_on('gtkplus@2.0.0:') + depends_on('gconf') + depends_on('xrandr@1.2:') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py index 0c3cd9b649..1e0eb2bf3b 100644 --- a/var/spack/repos/builtin/packages/graphlib/package.py +++ b/var/spack/repos/builtin/packages/graphlib/package.py @@ -27,10 +27,11 @@ from spack import * class Graphlib(Package): """Library to create, manipulate, and export graphs Graphlib.""" - homepage = "http://https://github.com/lee218llnl/graphlib" - url = "https://github.com/lee218llnl/graphlib/archive/v2.0.0.tar.gz" + homepage = "https://github.com/LLNL/graphlib" + url = "https://github.com/LLNL/graphlib/archive/v2.0.0.tar.gz" version('2.0.0', '43c6df84f1d38ba5a5dce0ae19371a70') + version('3.0.0', '625d199f97ab1b84cbc8daabcaee5e2a') depends_on('cmake', type='build') diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py index b37121248c..bb23513d2f 100644 --- a/var/spack/repos/builtin/packages/graphviz/package.py +++ b/var/spack/repos/builtin/packages/graphviz/package.py @@ -24,9 +24,10 @@ ############################################################################## from spack import * import sys +import shutil -class Graphviz(Package): +class Graphviz(AutotoolsPackage): """Graph Visualization Software""" homepage = "http://www.graphviz.org" url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz" @@ -46,11 +47,13 @@ class Graphviz(Package): depends_on("swig") depends_on("python") depends_on("ghostscript") + depends_on("freetype") + depends_on("libtool", type='build') depends_on("pkg-config", type='build') - def install(self, spec, prefix): - options = ['--prefix=%s' % prefix] - if '+perl' not in spec: + def configure_args(self): + options = [] + if '+perl' not in self.spec: options.append('--disable-perl') # On OSX fix the compiler error: @@ -59,7 +62,9 @@ class Graphviz(Package): # include <X11/Xlib.h> if sys.platform == 'darwin': options.append('CFLAGS=-I/opt/X11/include') + options.append('--with-ltdl-lib=%s/lib' % self.spec['libtool'].prefix) - configure(*options) - make() - make("install") + # A hack to patch config.guess in the libltdl sub directory + shutil.copyfile('./config/config.guess', 'libltdl/config/config.guess') + + return options diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py new file mode 100644 index 0000000000..8b81e14a27 --- /dev/null +++ b/var/spack/repos/builtin/packages/grib-api/package.py @@ -0,0 +1,80 @@ +############################################################################## +# 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 GribApi(Package): + """The ECMWF GRIB API is an application program interface accessible from + C, FORTRAN and Python programs developed for encoding and decoding WMO + FM-92 GRIB edition 1 and edition 2 messages.""" + + homepage = "https://software.ecmwf.int/wiki/display/GRIB/Home" + url = "https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz" + + version('1.17.0', 'bca7114d2c3100501a08190a146818d2') + version('1.16.0', '8c7fdee03344e4379d400ae20976a460') + + variant('netcdf', default=False, description='Enable netcdf encoding/decoding using netcdf library') + variant('jpeg', default=True, description='Enable jpeg 2000 for grib 2 decoding/encoding') + variant('png', default=False, description='Enable png for decoding/encoding') + + depends_on('cmake', type='build') + depends_on('libpng', when='+png') + depends_on('netcdf', when='+netcdf') + depends_on('jasper', when='+jpeg') + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + options.append('-DBUILD_SHARED_LIBS=BOTH') + + # We will add python support later. + options.append('-DENABLE_PYTHON=OFF') + + # Disable FORTRAN interface if we don't have it. + if (self.compiler.f77 is None) or (self.compiler.fc is None): + options.append('-DENABLE_FORTRAN=OFF') + + if '+netcdf' in spec: + options.append('-DENABLE_NETCDF=ON') + options.append('-DNETCDF_PATH=%s' % spec['netcdf'].prefix) + else: + options.append('-DENABLE_NETCDF=OFF') + + if '+jpeg' in spec: + options.append('-DENABLE_JPG=ON') + options.append('-DJASPER_PATH=%s' % spec['jasper'].prefix) + else: + options.append('-DENABLE_JPG=OFF') + + if '+png' in spec: + options.append('-DENABLE_PNG=ON') + else: + options.append('-DENABLE_PNG=OFF') + + with working_dir('spack-build', create=True): + cmake('..', *options) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index d39c9738ef..d079188db6 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -22,11 +22,10 @@ # 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 Gromacs(Package): +class Gromacs(CMakePackage): """GROMACS (GROningen MAchine for Chemical Simulations) is a molecular dynamics package primarily designed for simulations of proteins, lipids and nucleic acids. It was originally developed in the Biophysical @@ -57,7 +56,7 @@ class Gromacs(Package): depends_on('plumed+mpi', when='+plumed+mpi') depends_on('plumed~mpi', when='+plumed~mpi') depends_on('fftw') - depends_on('cmake', type='build') + depends_on('cmake@2.8.8:', type='build') # TODO : add GPU support @@ -65,28 +64,22 @@ class Gromacs(Package): if '+plumed' in self.spec: self.spec['plumed'].package.apply_patch(self) - def install(self, spec, prefix): + def cmake_args(self): options = [] - if '+mpi' in spec: + if '+mpi' in self.spec: options.append('-DGMX_MPI:BOOL=ON') - if '+double' in spec: + if '+double' in self.spec: options.append('-DGMX_DOUBLE:BOOL=ON') - if '~shared' in spec: + if '~shared' in self.spec: options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') - if '+debug' in spec: + if '+debug' in self.spec: options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') else: options.append('-DCMAKE_BUILD_TYPE:STRING=Release') - options.extend(std_cmake_args) - - with working_dir('spack-build', create=True): - - cmake('..', *options) - make() - make('install') + return options diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py index 574d3b9402..da17c4a330 100644 --- a/var/spack/repos/builtin/packages/gsl/package.py +++ b/var/spack/repos/builtin/packages/gsl/package.py @@ -38,6 +38,7 @@ class Gsl(Package): homepage = "http://www.gnu.org/software/gsl" url = "http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-2.1.tar.gz" + version('2.2.1', '3d90650b7cfe0a6f4b29c2d7b0f86458') version('2.1', 'd8f70abafd3e9f0bae03c52d1f4e8de5') version('2.0', 'ae44cdfed78ece40e73411b63a78c375') version('1.16', 'e49a664db13d81c968415cd53f62bc8b') diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py index c85bbe4094..183662dd0e 100644 --- a/var/spack/repos/builtin/packages/gtkplus/package.py +++ b/var/spack/repos/builtin/packages/gtkplus/package.py @@ -37,6 +37,7 @@ class Gtkplus(Package): depends_on("atk") depends_on("gdk-pixbuf") depends_on("pango") + depends_on("glib") def patch(self): # remove disable deprecated flag. diff --git a/var/spack/repos/builtin/packages/h5hut/package.py b/var/spack/repos/builtin/packages/h5hut/package.py new file mode 100644 index 0000000000..1501384493 --- /dev/null +++ b/var/spack/repos/builtin/packages/h5hut/package.py @@ -0,0 +1,70 @@ +############################################################################## +# 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 H5hut(Package): + """H5hut (HDF5 Utility Toolkit) + High-Performance I/O Library for Particle-based Simulations + """ + + homepage = "https://amas.psi.ch/H5hut/" + url = "https://amas.psi.ch/H5hut/raw-attachment/wiki/DownloadSources/H5hut-1.99.13.tar.gz" + + version("1.99.13", "2a07a449afe50534de006ac6954a421a") + + variant("fortran", default=True, description="Enable Fortran support") + variant("mpi", default=False, description="Enable MPI support") + + depends_on("autoconf @2.60:", type="build") + depends_on("automake", type="build") + depends_on("hdf5 +mpi", when="+mpi") + depends_on("hdf5 @1.8:") + # h5hut +mpi uses the obsolete function H5Pset_fapl_mpiposix: + depends_on("hdf5 @:1.8.12", when="+mpi") + depends_on("libtool", type="build") + depends_on("mpi", when="+mpi") + + def install(self, spec, prefix): + autogen = Executable("./autogen.sh") + autogen() + configopts = ["--prefix={0}".format(prefix)] + if "+fortran" in spec: + if not self.compiler.fc: + raise RuntimeError( + "Cannot build Fortran variant without a Fortran compiler") + configopts.append("--enable-fortran") + if "+mpi" in spec: + configopts.extend([ + "--enable-parallel", + "CC=%s" % spec["mpi"].mpicc, + "CXX=%s" % spec["mpi"].mpicxx]) + if "+fortran" in spec: + configopts.append("FC=%s" % spec["mpi"].mpifc) + configure(*configopts) + + make() + make("install") diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py new file mode 100644 index 0000000000..fdcac10335 --- /dev/null +++ b/var/spack/repos/builtin/packages/hadoop/package.py @@ -0,0 +1,53 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Alfredo Gimenez, gimenez1@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 Hadoop(Package): + """The Apache Hadoop software library is a framework that + allows for the distributed processing of large data sets + across clusters of computers using simple programming models. + """ + + homepage = "http://hadoop.apache.org/" + url = "http://mirrors.ocf.berkeley.edu/apache/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz" + + version('2.6.4', '37019f13d7dcd819727be158440b9442') + + depends_on('jdk', type='run') + + def install(self, spec, prefix): + + def install_dir(dirname): + install_tree(dirname, join_path(prefix, dirname)) + + install_dir('bin') + install_dir('etc') + install_dir('include') + install_dir('lib') + install_dir('libexec') + install_dir('sbin') + install_dir('share') diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index f8d73d651b..7c98c2a96a 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -32,8 +32,9 @@ class Harfbuzz(Package): version('0.9.37', 'bfe733250e34629a188d82e3b971bc1e') + depends_on("pkg-config", type="build") depends_on("glib") - depends_on("icu") + depends_on("icu4c") depends_on("freetype") depends_on("cairo") depends_on("zlib") diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py index aafb345be6..2554bd0f96 100644 --- a/var/spack/repos/builtin/packages/hdf/package.py +++ b/var/spack/repos/builtin/packages/hdf/package.py @@ -34,24 +34,24 @@ class Hdf(Package): list_url = "https://www.hdfgroup.org/ftp/HDF/releases/" list_depth = 3 + version('4.2.12', '79fd1454c899c05e34a3da0456ab0c1c') version('4.2.11', '063f9928f3a19cc21367b71c3b8bbf19') variant('szip', default=False, description="Enable szip support") - depends_on("jpeg") - depends_on("szip", when='+szip') - depends_on("zlib") + depends_on('jpeg@6b:') + depends_on('szip', when='+szip') + depends_on('zlib@1.1.4:') - def url_for_version(self, version): - return "https://www.hdfgroup.org/ftp/HDF/releases/HDF" + str( - version) + "/src/hdf-" + str(version) + ".tar.gz" + depends_on('bison', type='build') + depends_on('flex', type='build') def install(self, spec, prefix): config_args = [ 'CFLAGS=-fPIC', - '--prefix=%s' % prefix, - '--with-jpeg=%s' % spec['jpeg'].prefix, - '--with-zlib=%s' % spec['zlib'].prefix, + '--prefix={0}'.format(prefix), + '--with-jpeg={0}'.format(spec['jpeg'].prefix), + '--with-zlib={0}'.format(spec['zlib'].prefix), '--disable-netcdf', # must be disabled to build NetCDF with HDF4 '--enable-fortran', '--disable-shared', # fortran and shared libs are not compatible @@ -59,11 +59,17 @@ class Hdf(Package): '--enable-production' ] - # SZip support + # Szip support if '+szip' in spec: - config_args.append('--with-szlib=%s' % spec['szip'].prefix) + config_args.append('--with-szlib={0}'.format(spec['szip'].prefix)) + else: + config_args.append('--without-szlib') configure(*config_args) make() - make("install") + + if self.run_tests: + make('check') + + make('install') diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py index b9c19dff62..088c1e9d9b 100644 --- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py +++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py @@ -49,9 +49,10 @@ def _install_shlib(name, src, dst): class Hdf5Blosc(Package): """Blosc filter for HDF5""" homepage = "https://github.com/Blosc/hdf5-blosc" - url = "https://github.com/Blosc/hdf5-blosc/archive/master.zip" + url = "https://github.com/Blosc/hdf5-blosc" - version('master', '02c04acbf4bec66ec8a35bf157d1c9de') + version('master', git='https://github.com/Blosc/hdf5-blosc', + branch='master') depends_on("c-blosc") depends_on("hdf5") diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index aedaf18218..2820a3a304 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -27,10 +27,10 @@ from spack import * import shutil -class Hdf5(Package): +class Hdf5(AutotoolsPackage): """HDF5 is a data model, library, and file format for storing and managing - data. It supports an unlimited variety of datatypes, and is designed for - flexible and efficient I/O and for high volume and complex data. + data. It supports an unlimited variety of datatypes, and is designed for + flexible and efficient I/O and for high volume and complex data. """ homepage = "http://www.hdfgroup.org/HDF5/" @@ -43,6 +43,7 @@ class Hdf5(Package): version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618') version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24') version('1.8.13', 'c03426e9e77d7766944654280b467289') + version('1.8.12', 'd804802feb99b87fc668a90e6fa34411') variant('debug', default=False, description='Builds a debug version of the library') @@ -52,22 +53,24 @@ class Hdf5(Package): variant('cxx', default=True, description='Enable C++ support') variant('fortran', default=True, description='Enable Fortran support') - variant('mpi', default=False, description='Enable MPI support') + variant('mpi', default=True, description='Enable MPI support') variant('szip', default=False, description='Enable szip support') variant('threadsafe', default=False, description='Enable thread-safe capabilities') - depends_on("mpi", when='+mpi') - depends_on("szip", when='+szip') - depends_on("zlib") + depends_on('mpi', when='+mpi') + depends_on('szip', when='+szip') + depends_on('zlib@1.1.2:') - def validate(self, spec): + @AutotoolsPackage.precondition('configure') + def validate(self): """ Checks if incompatible variants have been activated at the same time :param spec: spec of the package :raises RuntimeError: in case of inconsistencies """ + spec = self.spec if '+fortran' in spec and not self.compiler.fc: msg = 'cannot build a fortran variant without a fortran compiler' raise RuntimeError(msg) @@ -76,8 +79,8 @@ class Hdf5(Package): msg = 'cannot use variant +threadsafe with either +cxx or +fortran' raise RuntimeError(msg) - def install(self, spec, prefix): - self.validate(spec) + def configure_args(self): + spec = self.spec # Handle compilation after spec validation extra_args = [] @@ -120,16 +123,14 @@ class Hdf5(Package): # this is not actually a problem. extra_args.extend([ "--enable-parallel", - "CC=%s" % join_path(spec['mpi'].prefix.bin, "mpicc"), + "CC=%s" % spec['mpi'].mpicc ]) if '+cxx' in spec: - extra_args.append("CXX=%s" % join_path(spec['mpi'].prefix.bin, - "mpic++")) + extra_args.append("CXX=%s" % spec['mpi'].mpicxx) if '+fortran' in spec: - extra_args.append("FC=%s" % join_path(spec['mpi'].prefix.bin, - "mpifort")) + extra_args.append("FC=%s" % spec['mpi'].mpifc) if '+szip' in spec: extra_args.append("--with-szlib=%s" % spec['szip'].prefix) @@ -140,17 +141,13 @@ class Hdf5(Package): '--disable-hl', ]) - configure( - "--prefix=%s" % prefix, - "--with-zlib=%s" % spec['zlib'].prefix, - *extra_args) - make() - make("install") - self.check_install(spec) - - def check_install(self, spec): - "Build and run a small program to test the installed HDF5 library" - print "Checking HDF5 installation..." + return ["--with-zlib=%s" % spec['zlib'].prefix] + extra_args + + @AutotoolsPackage.sanity_check('install') + def check_install(self): + # Build and run a small program to test the installed HDF5 library + spec = self.spec + print("Checking HDF5 installation...") checkdir = "spack-check" with working_dir(checkdir, create=True): source = r""" @@ -172,7 +169,7 @@ HDF5 version {version} {version} with open("check.c", 'w') as f: f.write(source) if '+mpi' in spec: - cc = which(join_path(spec['mpi'].prefix.bin, "mpicc")) + cc = which('%s' % spec['mpi'].mpicc) else: cc = which('cc') # TODO: Automate these path and library settings @@ -187,15 +184,15 @@ HDF5 version {version} {version} output = "" success = output == expected if not success: - print "Produced output does not match expected output." - print "Expected output:" - print '-' * 80 - print expected - print '-' * 80 - print "Produced output:" - print '-' * 80 - print output - print '-' * 80 + print("Produced output does not match expected output.") + print("Expected output:") + print('-' * 80) + print(expected) + print('-' * 80) + print("Produced output:") + print('-' * 80) + print(output) + print('-' * 80) raise RuntimeError("HDF5 install check failed") shutil.rmtree(checkdir) diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py new file mode 100644 index 0000000000..ab80dcf6ba --- /dev/null +++ b/var/spack/repos/builtin/packages/hepmc/package.py @@ -0,0 +1,55 @@ +############################################################################## +# 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 Hepmc(Package): + """The HepMC package is an object oriented, C++ event record for + High Energy Physics Monte Carlo generators and simulation.""" + + homepage = "http://hepmc.web.cern.ch/hepmc/" + url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz" + + version('2.06.09', 'c47627ced4255b40e731b8666848b087') + version('2.06.08', 'a2e889114cafc4f60742029d69abd907') + version('2.06.07', '11d7035dccb0650b331f51520c6172e7') + version('2.06.06', '102e5503537a3ecd6ea6f466aa5bc4ae') + version('2.06.05', '2a4a2a945adf26474b8bdccf4f881d9c') + + depends_on("cmake", type='build') + + def install(self, spec, prefix): + build_directory = join_path(self.stage.path, 'spack-build') + source_directory = self.stage.source_path + options = [source_directory] + options.append('-Dmomentum:STRING=GEV') + options.append('-Dlength:STRING=MM') + options.extend(std_cmake_args) + + with working_dir(build_directory, create=True): + cmake(*options) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/heppdt/package.py b/var/spack/repos/builtin/packages/heppdt/package.py new file mode 100644 index 0000000000..54c846ae33 --- /dev/null +++ b/var/spack/repos/builtin/packages/heppdt/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Heppdt(Package): + """The HepPID library contains translation methods for particle ID's + to and from various Monte Carlo generators and the PDG standard + numbering scheme. We realize that the generators adhere closely + to the standard, but there are occasional differences.""" + homepage = "http://lcgapp.cern.ch/project/simu/HepPDT/" + url = "http://lcgapp.cern.ch/project/simu/HepPDT/download/HepPDT-2.06.01.tar.gz" + + version('3.04.01', 'a8e93c7603d844266b62d6f189f0ac7e') + version('3.04.00', '2d2cd7552d3e9539148febacc6287db2') + version('3.03.02', '0b85f1809bb8b0b28a46f23c718b2773') + version('3.03.01', 'd411f3bfdf9c4350d802241ba2629cc2') + version('3.03.00', 'cd84d0a0454be982dcd8c285e060a7b3') + version('2.06.01', '5688b4bdbd84b48ed5dd2545a3dc33c0') + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + + make() + make("install") diff --git a/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py new file mode 100644 index 0000000000..64b5d17851 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py @@ -0,0 +1,39 @@ +# +# 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 HpctoolkitExternals(Package): + """HPCToolkit performance analysis tool has many prerequisites and + HpctoolkitExternals package provides all these prerequisites.""" + + homepage = "http://hpctoolkit.org" + + # Note: No precise release tags/branches provided + version('5.4', + git='https://github.com/HPCToolkit/hpctoolkit-externals.git', + commit='3d2953623357bb06e9a4b51eca90a4b039c2710e') + + parallel = False + + def install(self, spec, prefix): + + options = ['CC=%s' % self.compiler.cc, + 'CXX=%s' % self.compiler.cxx] + + with working_dir('spack-build', create=True): + configure = Executable('../configure') + configure('--prefix=%s' % prefix, *options) + make('install') diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py new file mode 100644 index 0000000000..aac22ef829 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -0,0 +1,55 @@ +# +# 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 Hpctoolkit(Package): + """HPCToolkit is an integrated suite of tools for measurement and analysis + of program performance on computers ranging from multicore desktop systems + to the nation's largest supercomputers. By using statistical sampling of + timers and hardware performance counters, HPCToolkit collects accurate + measurements of a program's work, resource consumption, and inefficiency + and attributes them to the full calling context in which they occur.""" + + homepage = "http://hpctoolkit.org" + + # Note: No precise release tags/branches provided + version('5.4', git='https://github.com/HPCToolkit/hpctoolkit.git', + commit='d9ca2112762e5a06ea31b5295d793e4a83272d19') + + variant('mpi', default=True, description='Enable MPI supoort') + variant('papi', default=True, description='Enable PAPI counter support') + + depends_on('hpctoolkit-externals') + depends_on('papi', when='+papi') + depends_on('mpi', when='+mpi') + + def install(self, spec, prefix): + + options = ['CC=%s' % self.compiler.cc, + 'CXX=%s' % self.compiler.cxx, + '--with-externals=%s' % spec['hpctoolkit-externals'].prefix] + + if '+mpi' in spec: + options.extend(['MPICXX=%s' % spec['mpi'].mpicxx]) + + if '+papi' in spec: + options.extend(['--with-papi=%s' % spec['papi'].prefix]) + + # TODO: BG-Q configure option + with working_dir('spack-build', create=True): + configure = Executable('../configure') + configure('--prefix=%s' % prefix, *options) + make('install') diff --git a/var/spack/repos/builtin/packages/hpl/package.py b/var/spack/repos/builtin/packages/hpl/package.py index efd5c8bb1d..fa0013de17 100644 --- a/var/spack/repos/builtin/packages/hpl/package.py +++ b/var/spack/repos/builtin/packages/hpl/package.py @@ -78,7 +78,7 @@ class Hpl(Package): 'MPlib = -L{0}'.format(spec['mpi'].prefix.lib), # Linear Algebra library (BLAS or VSIPL) 'LAinc = {0}'.format(spec['blas'].prefix.include), - 'LAlib = {0}'.format(spec['blas'].blas_shared_lib), + 'LAlib = {0}'.format(spec['blas'].blas_libs.joined()), # F77 / C interface 'F2CDEFS = -DAdd_ -DF77_INTEGER=int -DStringSunStyle', # HPL includes / libraries / specifics diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py index 686e959719..fe75c256f8 100644 --- a/var/spack/repos/builtin/packages/hpx5/package.py +++ b/var/spack/repos/builtin/packages/hpx5/package.py @@ -37,15 +37,16 @@ class Hpx5(Package): applications enabling scientists to write code that performs and scales better than contemporary runtimes.""" homepage = "http://hpx.crest.iu.edu" - url = "http://hpx.crest.iu.edu/release/hpx-2.0.0.tar.gz" + url = "http://hpx.crest.iu.edu/release/hpx-3.1.0.tar.gz" + version('3.1.0', '9e90b8ac46788c009079632828c77628') version('2.0.0', '3d2ff3aab6c46481f9ec65c5b2bfe7a6') version('1.3.0', '2260ecc7f850e71a4d365a43017d8cee') version('1.2.0', '4972005f85566af4afe8b71afbf1480f') version('1.1.0', '646afb460ecb7e0eea713a634933ce4f') version('1.0.0', '8020822adf6090bd59ed7fe465f6c6cb') - variant('debug', default=False, description='Build a debug version of HPX-5') + variant('debug', default=False, description='Build debug version of HPX-5') variant('photon', default=False, description='Enable Photon support') variant('mpi', default=False, description='Enable MPI support') diff --git a/var/spack/repos/builtin/packages/hsakmt/package.py b/var/spack/repos/builtin/packages/hsakmt/package.py new file mode 100644 index 0000000000..0daad4afed --- /dev/null +++ b/var/spack/repos/builtin/packages/hsakmt/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 Hsakmt(Package): + """hsakmt is a thunk library that provides a userspace interface to amdkfd + (AMD's HSA Linux kernel driver). It is the HSA equivalent of libdrm.""" + + homepage = "https://cgit.freedesktop.org/amd/hsakmt/" + url = "https://www.x.org/archive/individual/lib/hsakmt-1.0.0.tar.gz" + + version('1.0.0', '9beb20104e505300daf541266c4c3c3d') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/htop/package.py b/var/spack/repos/builtin/packages/htop/package.py new file mode 100644 index 0000000000..3df0a35356 --- /dev/null +++ b/var/spack/repos/builtin/packages/htop/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 Htop(Package): + """htop is an interactive text-mode process viewer for Unix systems.""" + + homepage = "https://github.com/hishamhm/htop" + url = "https://hisham.hm/htop/releases/2.0.2/htop-2.0.2.tar.gz" + + version('2.0.2', '7d354d904bad591a931ad57e99fea84a') + + depends_on('ncurses') + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py index c163628840..111c424b22 100644 --- a/var/spack/repos/builtin/packages/hwloc/package.py +++ b/var/spack/repos/builtin/packages/hwloc/package.py @@ -42,6 +42,7 @@ class Hwloc(Package): list_url = "http://www.open-mpi.org/software/hwloc/" list_depth = 3 + version('1.11.4', 'b6f23eb59074fd09fdd84905d50b103d') version('1.11.3', 'c1d36a9de6028eac1d18ea4782ef958f') version('1.11.2', 'e4ca55c2a5c5656da4a4e37c8fc51b23') version('1.11.1', 'feb4e416a1b25963ed565d8b42252fdc') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index fdc236dcf4..3c288e7933 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -35,6 +35,7 @@ class Hypre(Package): homepage = "http://computation.llnl.gov/project/linear_solvers/software.php" url = "http://computation.llnl.gov/project/linear_solvers/download/hypre-2.10.0b.tar.gz" + version('2.11.1', '3f02ef8fd679239a6723f60b7f796519') version('2.10.1', 'dc048c4cabb3cd549af72591474ad674') version('2.10.0b', '768be38793a35bb5d055905b271f5b8e') @@ -54,20 +55,16 @@ class Hypre(Package): os.environ['CXX'] = spec['mpi'].mpicxx os.environ['F77'] = spec['mpi'].mpif77 - # Since +shared does not build on macOS and also Atlas does not have - # a single static lib to build against, link against shared libs with - # a hope that --whole-archive linker option (or alike) was used - # to command the linker to include whole static libs' content into the - # shared lib # Note: --with-(lapack|blas)_libs= needs space separated list of names + lapack = spec['lapack'].lapack_libs + blas = spec['blas'].blas_libs + configure_args = [ '--prefix=%s' % prefix, - '--with-lapack-libs=%s' % to_lib_name( - spec['lapack'].lapack_shared_lib), - '--with-lapack-lib-dirs=%s' % spec['lapack'].prefix.lib, - '--with-blas-libs=%s' % to_lib_name( - spec['blas'].blas_shared_lib), - '--with-blas-lib-dirs=%s' % spec['blas'].prefix.lib + '--with-lapack-libs=%s' % ' '.join(lapack.names), + '--with-lapack-lib-dirs=%s' % ' '.join(lapack.directories), + '--with-blas-libs=%s' % ' '.join(blas.names), + '--with-blas-lib-dirs=%s' % ' '.join(blas.directories) ] if '+shared' in self.spec: diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py index 8e83058e94..172204a75b 100644 --- a/var/spack/repos/builtin/packages/ibmisc/package.py +++ b/var/spack/repos/builtin/packages/ibmisc/package.py @@ -34,7 +34,7 @@ class Ibmisc(CMakePackage): depends_on('blitz', when='+blitz') depends_on('netcdf-cxx4', when='+netcdf') depends_on('udunits2', when='+udunits2') - depends_on('googletest', when='+googletest') + depends_on('googletest', when='+googletest', type='build') depends_on('py-cython', when='+python', type=nolink) depends_on('py-numpy', when='+python', type=nolink) depends_on('boost', when='+boost') @@ -43,7 +43,7 @@ class Ibmisc(CMakePackage): depends_on('cmake', type='build') depends_on('doxygen', type='build') - def configure_args(self): + def cmake_args(self): spec = self.spec return [ '-DUSE_EVERYTRACE=%s' % ('YES' if '+everytrace' in spec else 'NO'), diff --git a/var/spack/repos/builtin/packages/iceauth/package.py b/var/spack/repos/builtin/packages/iceauth/package.py new file mode 100644 index 0000000000..59c6e0e7b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/iceauth/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Iceauth(Package): + """The iceauth program is used to edit and display the authorization + information used in connecting with ICE. It operates very much + like the xauth program for X11 connection authentication records.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/iceauth" + url = "https://www.x.org/archive/individual/app/iceauth-1.0.7.tar.gz" + + version('1.0.7', '183e834ec8bd096ac084ad4acbc29f51') + + depends_on('libice') + + depends_on('xproto@7.0.22:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/ico/package.py b/var/spack/repos/builtin/packages/ico/package.py new file mode 100644 index 0000000000..5e523575ca --- /dev/null +++ b/var/spack/repos/builtin/packages/ico/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Ico(Package): + """ico is a simple animation program that may be used for testing various + X11 operations and extensions. It displays a wire-frame rotating + polyhedron, with hidden lines removed, or a solid-fill polyhedron with + hidden faces removed.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/ico" + url = "https://www.x.org/archive/individual/app/ico-1.0.4.tar.gz" + + version('1.0.4', '8833b2da01a7f919b0db8e5a49184c0f') + + depends_on('libx11@0.99.1:') + + depends_on('xproto@7.0.22:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py index 2bcf86cd13..e2fcb7bd5f 100644 --- a/var/spack/repos/builtin/packages/icu4c/package.py +++ b/var/spack/repos/builtin/packages/icu4c/package.py @@ -27,18 +27,24 @@ from spack import * class Icu4c(Package): """ICU is a mature, widely used set of C/C++ and Java libraries providing - Unicode and Globalization support for software applications. - - """ + Unicode and Globalization support for software applications. ICU4C is the + C/C++ interface.""" homepage = "http://site.icu-project.org/" - url = "http://downloads.sourceforge.net/project/icu/ICU4C/54.1/icu4c-54_1-src.tgz" + url = "http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz" + + version('57.1', '976734806026a4ef8bdd17937c8898b9') - version('54_1', 'e844caed8f2ca24c088505b0d6271bc0') + def url_for_version(self, version): + base_url = "http://download.icu-project.org/files/icu4c" + return "{0}/{1}/icu4c-{2}-src.tgz".format( + base_url, version, version.underscored) def install(self, spec, prefix): - cd("source") - configure("--prefix=%s" % prefix) + with working_dir('source'): + configure('--prefix={0}'.format(prefix), + '--enable-rpath') - make() - make("install") + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/imake/package.py b/var/spack/repos/builtin/packages/imake/package.py new file mode 100644 index 0000000000..32542b0391 --- /dev/null +++ b/var/spack/repos/builtin/packages/imake/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Imake(Package): + """The imake build system.""" + + homepage = "http://www.snake.net/software/imake-stuff/" + url = "https://www.x.org/archive/individual/util/imake-1.0.7.tar.gz" + + version('1.0.7', '186ca7b8ff0de8752f2a2d0426542363') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/inputproto/package.py b/var/spack/repos/builtin/packages/inputproto/package.py new file mode 100644 index 0000000000..915986ef68 --- /dev/null +++ b/var/spack/repos/builtin/packages/inputproto/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 Inputproto(Package): + """X Input Extension. + + This extension defines a protocol to provide additional input devices + management such as graphic tablets.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/inputproto" + url = "https://www.x.org/archive/individual/proto/inputproto-2.3.2.tar.gz" + + version('2.3.2', '6450bad6f8d5ebe354b01b734d1fd7ca') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/intel-gpu-tools/package.py b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py new file mode 100644 index 0000000000..132e29839b --- /dev/null +++ b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py @@ -0,0 +1,67 @@ +############################################################################## +# 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 IntelGpuTools(Package): + """Intel GPU Tools is a collection of tools for development and testing of + the Intel DRM driver. There are many macro-level test suites that get used + against the driver, including xtest, rendercheck, piglit, and oglconform, + but failures from those can be difficult to track down to kernel changes, + and many require complicated build procedures or specific testing + environments to get useful results. Therefore, Intel GPU Tools includes + low-level tools and tests specifically for development and testing of the + Intel DRM Driver.""" + + homepage = "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/" + url = "https://www.x.org/archive/individual/app/intel-gpu-tools-1.16.tar.gz" + + version('1.16', '3996f10fc86a28ec59e1cf7b227dad78') + + depends_on('libdrm@2.4.64:') + depends_on('libpciaccess@0.10:') + depends_on('cairo@1.12.0:') + depends_on('glib') + + depends_on('flex', type='build') + depends_on('bison', type='build') + depends_on('python@3:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + # xrandr ? + + # gtk-doc-tools + # libunwind-dev + # python-docutils + # x11proto-dri2-dev + # xutils-dev + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py index 65db3351a1..e03c9fab3f 100644 --- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py +++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py @@ -1,3 +1,27 @@ +############################################################################## +# 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 import re @@ -11,25 +35,17 @@ class IntelParallelStudio(IntelInstaller): Note: You will have to add the download file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html""" + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe" - # TODO: can also try the online installer (will download files on demand) - version('composer.2016.2', '1133fb831312eb519f7da897fec223fa', - url="file://%s/parallel_studio_xe_2016_composer_edition_update2.tgz" - % os.getcwd()) - version('professional.2016.2', '70be832f2d34c9bf596a5e99d5f2d832', - url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd()) - version('cluster.2016.2', '70be832f2d34c9bf596a5e99d5f2d832', - url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd()) - version('composer.2016.3', '3208eeabee951fc27579177b593cefe9', - url="file://%s/parallel_studio_xe_2016_composer_edition_update3.tgz" - % os.getcwd()) - version('professional.2016.3', 'eda19bb0d0d19709197ede58f13443f3', - url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd()) - version('cluster.2016.3', 'eda19bb0d0d19709197ede58f13443f3', - url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd()) + version('professional.2017.0', '34c98e3329d6ac57408b738ae1daaa01') + version('composer.2016.3', '3208eeabee951fc27579177b593cefe9') + version('professional.2016.3', 'eda19bb0d0d19709197ede58f13443f3') + version('cluster.2016.3', 'eda19bb0d0d19709197ede58f13443f3') + version('composer.2016.2', '1133fb831312eb519f7da897fec223fa') + version('professional.2016.2', '70be832f2d34c9bf596a5e99d5f2d832') + version('cluster.2016.2', '70be832f2d34c9bf596a5e99d5f2d832') variant('rpath', default=True, description="Add rpath to .cfg files") variant('newdtags', default=False, @@ -45,6 +61,10 @@ class IntelParallelStudio(IntelInstaller): variant('tools', default=True, description="Install the Intel Advisor, " "VTune Amplifier, and Inspector tools") + variant('shared', default=True, description='Builds shared library') + variant('ilp64', default=False, description='64 bit integers') + variant('openmp', default=False, description='OpenMP multithreading layer') + provides('mpi', when='@cluster:+mpi') provides('mkl', when='+mkl') provides('daal', when='+daal') @@ -55,6 +75,47 @@ class IntelParallelStudio(IntelInstaller): provides('lapack', when='+mkl') # TODO: MKL also provides implementation of Scalapack. + @property + def blas_libs(self): + shared = True if '+shared' in self.spec else False + suffix = dso_suffix if '+shared' in self.spec else 'a' + mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501 + mkl_threading = ['libmkl_sequential'] + if '+openmp' in self.spec: + mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501 + # TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++'] + mkl_libs = find_libraries( + mkl_integer + ['libmkl_core'] + mkl_threading, + root=join_path(self.prefix.lib, 'intel64'), + shared=shared + ) + system_libs = [ + 'libpthread.{0}'.format(suffix), + 'libm.{0}'.format(suffix), + 'libdl.{0}'.format(suffix) + ] + return mkl_libs + system_libs + + @property + def lapack_libs(self): + return self.blas_libs + + def url_for_version(self, version): + """Assume the tarball is in the current directory.""" + + version_tuple = str(version).split('.') + + url = "file://{0}/parallel_studio_xe_{1}".format( + os.getcwd(), version_tuple[1]) + + if version_tuple[0] == 'composer': + url += "_composer_edition" + + if version_tuple[2] != '0': + url += "_update{0}".format(version_tuple[2]) + + return url + ".tgz" + def check_variants(self, spec): error_message = '\t{variant} can not be turned off if "+all" is set' @@ -123,15 +184,24 @@ class IntelParallelStudio(IntelInstaller): "license.lic")) if spec.satisfies('+tools') and (spec.satisfies('@cluster') or spec.satisfies('@professional')): - os.mkdir(os.path.join(self.prefix, "inspector_xe/licenses")) + inspector_dir = "inspector_xe/licenses" + advisor_dir = "advisor_xe/licenses" + vtune_amplifier_dir = "vtune_amplifier_xe/licenses" + + year = int(str(self.version).split('.')[1]) + if year >= 2017: + inspector_dir = "inspector/licenses" + advisor_dir = "advisor/licenses" + + os.mkdir(os.path.join(self.prefix, inspector_dir)) os.symlink(self.global_license_file, os.path.join( - self.prefix, "inspector_xe/licenses", "license.lic")) - os.mkdir(os.path.join(self.prefix, "advisor_xe/licenses")) + self.prefix, inspector_dir, "license.lic")) + os.mkdir(os.path.join(self.prefix, advisor_dir)) os.symlink(self.global_license_file, os.path.join( - self.prefix, "advisor_xe/licenses", "license.lic")) - os.mkdir(os.path.join(self.prefix, "vtune_amplifier_xe/licenses")) + self.prefix, advisor_dir, "license.lic")) + os.mkdir(os.path.join(self.prefix, vtune_amplifier_dir)) os.symlink(self.global_license_file, os.path.join( - self.prefix, "vtune_amplifier_xe/licenses", "license.lic")) + self.prefix, vtune_amplifier_dir, "license.lic")) if (spec.satisfies('+all') or spec.satisfies('+mpi')) and \ spec.satisfies('@cluster'): @@ -171,24 +241,6 @@ class IntelParallelStudio(IntelInstaller): os.symlink(os.path.join(self.prefix.man, "common", "man1"), os.path.join(self.prefix.man, "man1")) - def setup_dependent_package(self, module, dspec): - # For now use Single Dynamic Library: - # To set the threading layer at run time, use the - # mkl_set_threading_layer function or set MKL_THREADING_LAYER - # variable to one of the following values: INTEL, SEQUENTIAL, PGI. - # To set interface layer at run time, use the mkl_set_interface_layer - # function or set the MKL_INTERFACE_LAYER variable to LP64 or ILP64. - - # Otherwise one would need to specify several libraries - # (e.g. mkl_intel_lp64;mkl_sequential;mkl_core), which reflect - # different interface and threading layers. - - name = 'libmkl_rt.%s' % dso_suffix - libdir = find_library_path(name, self.prefix.lib64, self.prefix.lib) - - self.spec.blas_shared_lib = join_path(libdir, name) - self.spec.lapack_shared_lib = self.spec.blas_shared_lib - def setup_environment(self, spack_env, run_env): # TODO: Determine variables needed for the professional edition. diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py index 26134a12ae..5b9c26df0e 100644 --- a/var/spack/repos/builtin/packages/intel/package.py +++ b/var/spack/repos/builtin/packages/intel/package.py @@ -77,7 +77,7 @@ class Intel(IntelInstaller): Note: You will have to add the download file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html""" + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe" diff --git a/var/spack/repos/builtin/packages/ipopt/package.py b/var/spack/repos/builtin/packages/ipopt/package.py index d5981e9975..bd1e5f36ef 100644 --- a/var/spack/repos/builtin/packages/ipopt/package.py +++ b/var/spack/repos/builtin/packages/ipopt/package.py @@ -53,9 +53,8 @@ class Ipopt(Package): mumps_flags = "-ldmumps -lmumps_common -lpord -lmpiseq" mumps_libcmd = "-L%s " % mumps_dir.lib + mumps_flags - # By convention, spack links blas & lapack libs to libblas & liblapack - blas_lib = "-L%s" % blas_dir.lib + " -lblas" - lapack_lib = "-L%s" % lapack_dir.lib + " -llapack" + blas_lib = spec['blas'].blas_libs.ld_flags + lapack_lib = spec['lapack'].lapack_libs.ld_flags configure_args = [ "--prefix=%s" % prefix, diff --git a/var/spack/repos/builtin/packages/ipp/package.py b/var/spack/repos/builtin/packages/ipp/package.py index 2bd931d5bd..93c5284695 100644 --- a/var/spack/repos/builtin/packages/ipp/package.py +++ b/var/spack/repos/builtin/packages/ipp/package.py @@ -9,7 +9,7 @@ class Ipp(IntelInstaller): Note: You will have to add the download file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html""" + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "https://software.intel.com/en-us/intel-ipp" diff --git a/var/spack/repos/builtin/packages/itstool/package.py b/var/spack/repos/builtin/packages/itstool/package.py new file mode 100644 index 0000000000..b8b2b4459f --- /dev/null +++ b/var/spack/repos/builtin/packages/itstool/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 Itstool(Package): + """ITS Tool allows you to translate your XML documents with PO files, using + rules from the W3C Internationalization Tag Set (ITS) to determine what + to translate and how to separate it into PO file messages.""" + + homepage = "http://itstool.org/" + url = "http://files.itstool.org/itstool/itstool-2.0.2.tar.bz2" + + version('2.0.2', 'd472d877a7bc49899a73d442085b2f93') + version('2.0.1', '40935cfb08228488bd45575e5f001a34') + version('2.0.0', 'd8c702c3e8961db83d04182c2aa4730b') + version('1.2.0', 'c0925f6869e33af8e7fe56848c129152') + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/jansson/package.py b/var/spack/repos/builtin/packages/jansson/package.py new file mode 100644 index 0000000000..8ba7829bbc --- /dev/null +++ b/var/spack/repos/builtin/packages/jansson/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 Jansson(CMakePackage): + """Jansson is a C library for encoding, decoding and manipulating JSON + data.""" + + homepage = "http://www.digip.org/jansson/" + url = "https://github.com/akheron/jansson/archive/v2.9.tar.gz" + + version('2.9', 'd2db25c437b359fc5a065ed938962237') + + depends_on('cmake', type='build') diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py index 63bf6514cb..518a469435 100644 --- a/var/spack/repos/builtin/packages/jdk/package.py +++ b/var/spack/repos/builtin/packages/jdk/package.py @@ -26,10 +26,7 @@ # Author: Justin Too <too1@llnl.gov> # import distutils.dir_util - -import spack from spack import * -import llnl.util.tty as tty class Jdk(Package): @@ -37,11 +34,6 @@ class Jdk(Package): in the form of a binary product aimed at Java developers.""" homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html" - version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf', - url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz") - version('8u92-linux-x64', '65a1cc17ea362453a6e0eb4f13be76e4', - url="http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz") - # Oracle requires that you accept their License Agreement in order # to access the Java packages in download.oracle.com. In order to # automate this process, we need to utilize these additional curl @@ -53,18 +45,18 @@ class Jdk(Package): '-H', # specify required License Agreement cookie 'Cookie: oraclelicense=accept-securebackup-cookie'] - def do_fetch(self, mirror_only=False): - # Add our custom curl commandline options - tty.msg( - "[Jdk] Adding required commandline options to curl " + - "before performing fetch: %s" % - (self.curl_options)) - - for option in self.curl_options: - spack.curl.add_default_arg(option) - - # Now perform the actual fetch - super(Jdk, self).do_fetch(mirror_only) + version('8u66-linux-x64', '88f31f3d642c3287134297b8c10e61bf', + url="http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz", + curl_options=curl_options) + version('8u92-linux-x64', '65a1cc17ea362453a6e0eb4f13be76e4', + url="http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz", + curl_options=curl_options) def install(self, spec, prefix): distutils.dir_util.copy_tree(".", prefix) + + def setup_environment(self, spack_env, run_env): + run_env.set('JAVA_HOME', self.spec.prefix) + + def setup_dependent_environment(self, spack_env, run_env, dependent_spec): + spack_env.set('JAVA_HOME', self.spec.prefix) diff --git a/var/spack/repos/builtin/packages/jemalloc/package.py b/var/spack/repos/builtin/packages/jemalloc/package.py index f5a983b7a9..e13d4292f8 100644 --- a/var/spack/repos/builtin/packages/jemalloc/package.py +++ b/var/spack/repos/builtin/packages/jemalloc/package.py @@ -31,6 +31,8 @@ class Jemalloc(Package): homepage = "http://www.canonware.com/jemalloc/" url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2" + version('4.2.1', '094b0a7b8c77c464d0dc8f0643fd3901') + version('4.2.0', 'e6b5d5a1ea93a04207528d274efdd144') version('4.1.0', 'c4e53c947905a533d5899e5cc3da1f94') version('4.0.4', '687c5cc53b9a7ab711ccd680351ff988') diff --git a/var/spack/repos/builtin/packages/jsoncpp/package.py b/var/spack/repos/builtin/packages/jsoncpp/package.py new file mode 100644 index 0000000000..5169b338ee --- /dev/null +++ b/var/spack/repos/builtin/packages/jsoncpp/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Jsoncpp(Package): + """JsonCpp is a C++ library that allows manipulating JSON values, + including serialization and deserialization to and from strings. + It can also preserve existing comment in unserialization/serialization + steps, making it a convenient format to store user input files.""" + + homepage = "https://github.com/open-source-parsers/jsoncpp" + url = "https://github.com/open-source-parsers/jsoncpp/archive/1.7.3.tar.gz" + + version('1.7.3', 'aff6bfb5b81d9a28785429faa45839c5') + + depends_on('cmake', type='build') + # depends_on('python', type='test') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('..', '-DBUILD_SHARED_LIBS=ON', *std_cmake_args) + + make() + if self.run_tests: + make('test') # Python needed to run tests + make('install') diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index 536ce69236..033e27fb64 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -24,6 +24,8 @@ ############################################################################## from spack import * +import os +import sys class Julia(Package): @@ -33,31 +35,45 @@ class Julia(Package): version('master', git='https://github.com/JuliaLang/julia.git', branch='master') + version('release-0.5', + git='https://github.com/JuliaLang/julia.git', branch='release-0.5') + version('0.5.0', 'b61385671ba74767ab452363c43131fb', preferred=True) version('release-0.4', git='https://github.com/JuliaLang/julia.git', branch='release-0.4') - version('0.4.6', 'd88db18c579049c23ab8ef427ccedf5d', preferred=True) + version('0.4.7', '75a7a7dd882b7840829d8f165e9b9078') + version('0.4.6', 'd88db18c579049c23ab8ef427ccedf5d') version('0.4.5', '69141ff5aa6cee7c0ec8c85a34aa49a6') version('0.4.3', '8a4a59fd335b05090dd1ebefbbe5aaac') + # TODO: Split these out into jl-hdf5, jl-mpi packages etc. + variant("cxx", default=False, description="Prepare for Julia Cxx package") + variant("hdf5", default=False, description="Install Julia HDF5 package") + variant("mpi", default=False, description="Install Julia MPI package") + variant("plot", default=False, + description="Install Julia plotting packages") + variant("python", default=False, + description="Install Julia Python package") + patch('gc.patch', when='@0.4:0.4.5') - patch('gc.patch', when='@release-0.4') patch('openblas.patch', when='@0.4:0.4.5') + variant('binutils', default=sys.platform != 'darwin', + description="Build via binutils") + # Build-time dependencies: - # depends_on("awk", type='build') - # depends_on("m4", type='build') - # depends_on("pkg-config", type='build') + # depends_on("awk") + depends_on("m4", type="build") + # depends_on("pkg-config") # Combined build-time and run-time dependencies: - depends_on("binutils", type=nolink) - depends_on("cmake @2.8:", type=nolink) - depends_on("git", type=nolink) - depends_on("openssl", type=nolink) - depends_on("python @2.7:2.999", type=nolink) - - # I think that Julia requires the dependencies above, but it - # builds fine (on my system) without these. We should enable them - # as necessary. + # (Yes, these are run-time dependencies used by Julia's package manager.) + depends_on("binutils", when='+binutils') + depends_on("cmake @2.8:") + depends_on("curl") + depends_on("git", when='@:0.4') + depends_on("git", when='@release-0.4') + depends_on("openssl") + depends_on("python @2.7:2.999") # Run-time dependencies: # depends_on("arpack") @@ -93,10 +109,15 @@ class Julia(Package): # USE_SYSTEM_LIBGIT2=0 # Run-time dependencies for Julia packages: - depends_on("hdf5", type='run') - depends_on("mpi", type='run') + depends_on("hdf5", when="+hdf5", type="run") + depends_on("mpi", when="+mpi", type="run") + depends_on("py-matplotlib", when="+plot", type="run") def install(self, spec, prefix): + # Julia needs git tags + if os.path.isfile(".git/shallow"): + git = which("git") + git("fetch", "--unshallow") # Explicitly setting CC, CXX, or FC breaks building libuv, one # of Julia's dependencies. This might be a Darwin-specific # problem. Given how Spack sets up compilers, Julia should @@ -107,12 +128,109 @@ class Julia(Package): # "CXX=c++", # "FC=fc", # "USE_SYSTEM_ARPACK=1", + "override USE_SYSTEM_CURL=1", # "USE_SYSTEM_FFTW=1", # "USE_SYSTEM_GMP=1", # "USE_SYSTEM_MPFR=1", # "USE_SYSTEM_PCRE=1", "prefix=%s" % prefix] + if "+cxx" in spec: + if "@master" not in spec: + raise InstallError( + "Variant +cxx requires the @master version of Julia") + options += [ + "BUILD_LLVM_CLANG=1", + "LLVM_ASSERTIONS=1", + "USE_LLVM_SHLIB=1"] with open('Make.user', 'w') as f: f.write('\n'.join(options) + '\n') make() make("install") + + # Julia's package manager needs a certificate + curl = which("curl") + cacert_file = join_path(prefix, "etc", "curl", "cacert.pem") + curl("--create-dirs", + "--output", cacert_file, + "https://curl.haxx.se/ca/cacert.pem") + + # Put Julia's compiler cache into a private directory + cachedir = join_path(prefix, "var", "julia", "cache") + mkdirp(cachedir) + + # Store Julia packages in a private directory + pkgdir = join_path(prefix, "var", "julia", "pkg") + mkdirp(pkgdir) + + # Configure Julia + with open(join_path(prefix, "etc", "julia", "juliarc.jl"), + "a") as juliarc: + if "@master" in spec or "@release-0.5" in spec or "@0.5:" in spec: + # This is required for versions @0.5: + juliarc.write( + '# Point package manager to working certificates\n') + juliarc.write('LibGit2.set_ssl_cert_locations("%s")\n' % + cacert_file) + juliarc.write('\n') + juliarc.write('# Put compiler cache into a private directory\n') + juliarc.write('empty!(Base.LOAD_CACHE_PATH)\n') + juliarc.write('unshift!(Base.LOAD_CACHE_PATH, "%s")\n' % cachedir) + juliarc.write('\n') + juliarc.write('# Put Julia packages into a private directory\n') + juliarc.write('ENV["JULIA_PKGDIR"] = "%s"\n' % pkgdir) + juliarc.write('\n') + + # Install some commonly used packages + julia = Executable(join_path(prefix.bin, "julia")) + julia("-e", 'Pkg.init(); Pkg.update()') + + # Install HDF5 + if "+hdf5" in spec: + with open(join_path(prefix, "etc", "julia", "juliarc.jl"), + "a") as juliarc: + juliarc.write('# HDF5\n') + juliarc.write('push!(Libdl.DL_LOAD_PATH, "%s")\n' % + spec["hdf5"].prefix.lib) + juliarc.write('\n') + julia("-e", 'Pkg.add("HDF5"); using HDF5') + julia("-e", 'Pkg.add("JLD"); using JLD') + + # Install MPI + if "+mpi" in spec: + with open(join_path(prefix, "etc", "julia", "juliarc.jl"), + "a") as juliarc: + juliarc.write('# MPI\n') + juliarc.write('ENV["JULIA_MPI_C_COMPILER"] = "%s"\n' % + join_path(spec["mpi"].prefix.bin, "mpicc")) + juliarc.write('ENV["JULIA_MPI_Fortran_COMPILER"] = "%s"\n' % + join_path(spec["mpi"].prefix.bin, "mpifort")) + juliarc.write('\n') + julia("-e", 'Pkg.add("MPI"); using MPI') + + # Install Python + if "+python" in spec or "+plot" in spec: + with open(join_path(prefix, "etc", "julia", "juliarc.jl"), + "a") as juliarc: + juliarc.write('# Python\n') + juliarc.write('ENV["PYTHON"] = "%s"\n' % spec["python"].prefix) + juliarc.write('\n') + # Python's OpenSSL package installer complains: + # Error: PREFIX too long: 166 characters, but only 128 allowed + # Error: post-link failed for: openssl-1.0.2g-0 + julia("-e", 'Pkg.add("PyCall"); using PyCall') + + if "+plot" in spec: + julia("-e", 'Pkg.add("PyPlot"); using PyPlot') + julia("-e", 'Pkg.add("Colors"); using Colors') + # These require maybe Gtk and ImageMagick + julia("-e", 'Pkg.add("Plots"); using Plots') + julia("-e", 'Pkg.add("PlotRecipes"); using PlotRecipes') + julia("-e", 'Pkg.add("UnicodePlots"); using UnicodePlots') + julia("-e", """\ +using Plots +using UnicodePlots +unicodeplots() +plot(x->sin(x)*cos(x), linspace(0, 2pi)) +""") + + julia("-e", 'Pkg.status()') diff --git a/var/spack/repos/builtin/packages/kbproto/package.py b/var/spack/repos/builtin/packages/kbproto/package.py new file mode 100644 index 0000000000..356d1c6b4f --- /dev/null +++ b/var/spack/repos/builtin/packages/kbproto/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 Kbproto(Package): + """X Keyboard Extension. + + This extension defines a protcol to provide a number of new capabilities + and controls for text keyboards.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/kbproto" + url = "https://www.x.org/archive/individual/proto/kbproto-1.0.7.tar.gz" + + version('1.0.7', '19acc5f02ae80381e216f443134e0bbb') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/launchmon/package.py b/var/spack/repos/builtin/packages/launchmon/package.py index d7c96a03d8..c2b289da4f 100644 --- a/var/spack/repos/builtin/packages/launchmon/package.py +++ b/var/spack/repos/builtin/packages/launchmon/package.py @@ -36,6 +36,8 @@ class Launchmon(Package): depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') + depends_on('libgcrypt') + depends_on('libgpg-error') def install(self, spec, prefix): configure( diff --git a/var/spack/repos/builtin/packages/lbxproxy/package.py b/var/spack/repos/builtin/packages/lbxproxy/package.py new file mode 100644 index 0000000000..3de3ade0c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/lbxproxy/package.py @@ -0,0 +1,58 @@ +############################################################################## +# 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 Lbxproxy(Package): + """lbxproxy accepts client connections, multiplexes them over a single + connection to the X server, and performs various optimizations on the + X protocol to make it faster over low bandwidth and/or high latency + connections. + + Note that the X server source from X.Org no longer supports the LBX + extension, so this program is only useful in connecting to older + X servers.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/lbxproxy" + url = "https://www.x.org/archive/individual/app/lbxproxy-1.0.3.tar.gz" + + version('1.0.3', '50a2a1ae15e8edf7582f76bcdf6b8197') + + depends_on('libxext') + depends_on('liblbxutil') + depends_on('libx11') + depends_on('libice') + + depends_on('xtrans', type='build') + depends_on('xproxymanagementprotocol', type='build') + depends_on('bigreqsproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libapplewm/package.py b/var/spack/repos/builtin/packages/libapplewm/package.py new file mode 100644 index 0000000000..85408053ad --- /dev/null +++ b/var/spack/repos/builtin/packages/libapplewm/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 Libapplewm(Package): + """AppleWM is a simple library designed to interface with the Apple-WM + extension. This extension allows X window managers to better interact with + the Mac OS X Aqua user interface when running X11 in a rootless mode.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libAppleWM" + url = "https://www.x.org/archive/individual/lib/libAppleWM-1.4.1.tar.gz" + + version('1.4.1', '52c587641eb57f00978d28d98d487af8') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('applewmproto@1.4:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + # Crashes with this error message on Linux: + # HIServices/Processes.h: No such file or directory + # May only build properly on macOS? + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libarchive/package.py b/var/spack/repos/builtin/packages/libarchive/package.py index 0cf3932957..e439bf894f 100644 --- a/var/spack/repos/builtin/packages/libarchive/package.py +++ b/var/spack/repos/builtin/packages/libarchive/package.py @@ -28,14 +28,30 @@ from spack import * class Libarchive(Package): """libarchive: C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats.""" + homepage = "http://www.libarchive.org" url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" + version('3.2.1', 'afa257047d1941a565216edbf0171e72') version('3.1.2', 'efad5a503f66329bb9d2f4308b5de98a') version('3.1.1', '1f3d883daf7161a0065e42a15bbf168f') version('3.1.0', '095a287bb1fd687ab50c85955692bf3a') + depends_on('zlib') + depends_on('bzip2') + depends_on('lzma') + depends_on('lz4') + depends_on('xz') + depends_on('lzo') + depends_on('nettle') + depends_on('openssl') + depends_on('libxml2') + depends_on('expat') + def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + if self.run_tests: + make('check') # cannot build test suite with Intel compilers + make('install') diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py index 7fb47f8dcd..1964f03b95 100644 --- a/var/spack/repos/builtin/packages/libcerf/package.py +++ b/var/spack/repos/builtin/packages/libcerf/package.py @@ -38,6 +38,12 @@ class Libcerf(Package): version('1.3', 'b3504c467204df71e62aeccf73a25612') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + options = [] + # Clang reports unused functions as errors, see + # http://clang.debian.net/status.php?version=3.8.1&key=UNUSED_FUNCTION + if spec.satisfies('%clang'): + options.append('CFLAGS=-Wno-unused-function') + + configure('--prefix=%s' % prefix, *options) make() make("install") diff --git a/var/spack/repos/builtin/packages/libdmx/package.py b/var/spack/repos/builtin/packages/libdmx/package.py new file mode 100644 index 0000000000..fa469fd423 --- /dev/null +++ b/var/spack/repos/builtin/packages/libdmx/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libdmx(Package): + """libdmx - X Window System DMX (Distributed Multihead X) extension + library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libdmx" + url = "https://www.x.org/archive/individual/lib/libdmx-1.1.3.tar.gz" + + version('1.1.3', 'eed755e7cdb161e05f70e955f2b0ef4d') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('dmxproto@2.2.99.1:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py index 543eab11b3..ab9661269e 100644 --- a/var/spack/repos/builtin/packages/libdrm/package.py +++ b/var/spack/repos/builtin/packages/libdrm/package.py @@ -30,16 +30,21 @@ class Libdrm(Package): rendering manager, on Linux, BSD and other operating systems that support the ioctl interface.""" - homepage = "http://dri.freedesktop.org/libdrm/" # no real website... + homepage = "http://dri.freedesktop.org/libdrm/" url = "http://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz" + version('2.4.70', 'a8c275bce5f3d71a5ca25e8fb60df084') version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6') version('2.4.33', '86e4e3debe7087d5404461e0032231c8') - depends_on('libpciaccess') + depends_on('libpciaccess@0.10:') + depends_on('libpthread-stubs') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix), + '--enable-static', + 'LIBS=-lrt') # This fixes a bug with `make check` make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py index 3304d27bdb..5af4ab705d 100644 --- a/var/spack/repos/builtin/packages/libelf/package.py +++ b/var/spack/repos/builtin/packages/libelf/package.py @@ -25,7 +25,7 @@ from spack import * -class Libelf(Package): +class Libelf(AutotoolsPackage): """libelf lets you read, modify or create ELF object files in an architecture-independent way. The library takes care of size and endian issues, e.g. you can process a file for SPARC @@ -39,12 +39,11 @@ class Libelf(Package): provides('elf') - def install(self, spec, prefix): - configure("--prefix=" + prefix, - "--enable-shared", - "--disable-dependency-tracking", - "--disable-debug") - make() + def configure_args(self): + args = ["--enable-shared", + "--disable-dependency-tracking", + "--disable-debug"] + return args - # The mkdir commands in libelf's install can fail in parallel - make("install", parallel=False) + def install(self, spec, prefix): + make('install', parallel=False) diff --git a/var/spack/repos/builtin/packages/libemos/package.py b/var/spack/repos/builtin/packages/libemos/package.py new file mode 100644 index 0000000000..0275c7ede9 --- /dev/null +++ b/var/spack/repos/builtin/packages/libemos/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libemos(Package): + """The Interpolation library (EMOSLIB) includes Interpolation software and + BUFR & CREX encoding/decoding routines.""" + + homepage = "https://software.ecmwf.int/wiki/display/EMOS/Emoslib" + url = "https://software.ecmwf.int/wiki/download/attachments/3473472/libemos-4.4.2-Source.tar.gz" + + version('4.4.2', 'f15a9aff0f40861f3f046c9088197376') + + depends_on('cmake', type='build') + depends_on('grib-api') + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + options.append('-DGRIB_API_PATH=%s' % spec['grib_api'].prefix) + + # To support long pathnames that spack generates + options.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none') + + with working_dir('spack-build', create=True): + cmake('..', *options) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libfontenc/package.py b/var/spack/repos/builtin/packages/libfontenc/package.py new file mode 100644 index 0000000000..1c7fa196d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/libfontenc/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 Libfontenc(Package): + """libfontenc - font encoding library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libfontenc" + url = "https://www.x.org/archive/individual/lib/libfontenc-1.1.3.tar.gz" + + version('1.1.3', '0ffa28542aa7d246299b1f7211cdb768') + + depends_on('zlib') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libfs/package.py b/var/spack/repos/builtin/packages/libfs/package.py new file mode 100644 index 0000000000..96bf62afd7 --- /dev/null +++ b/var/spack/repos/builtin/packages/libfs/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libfs(Package): + """libFS - X Font Service client library. + + This library is used by clients of X Font Servers (xfs), such as + xfsinfo, fslsfonts, and the X servers themselves.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libFS" + url = "https://www.x.org/archive/individual/lib/libFS-1.0.7.tar.gz" + + version('1.0.7', 'd8c1246f5b3d0e7ccf2190d3bf2ecb73') + + depends_on('xproto@7.0.17:', type='build') + depends_on('fontsproto', type='build') + depends_on('xtrans', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py index acfdebb972..6329adf8f3 100644 --- a/var/spack/repos/builtin/packages/libgd/package.py +++ b/var/spack/repos/builtin/packages/libgd/package.py @@ -40,18 +40,33 @@ class Libgd(Package): homepage = "https://github.com/libgd/libgd" url = "https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz" + version('2.2.3', 'a67bd15fa33d4aac0a1c7904aed19f49') version('2.1.1', 'e91a1a99903e460e7ba00a794e72cc1e') + # Build dependencies + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('gettext', type='build') + depends_on('pkg-config', type='build') + depends_on('libpng') - depends_on('cmake', type='build') + depends_on('libtiff') + depends_on('fontconfig') def install(self, spec, prefix): - - with working_dir('spack-build', create=True): - cmake('..', - '-DENABLE_JPEG:BOOL=ON', - '-DENABLE_PNG:BOOL=ON', - '-DENABLE_TIFF:BOOL=ON', - *std_cmake_args) - make() - make("install") + autoreconf("--install", "--force", + "-I", "m4", + "-I", join_path(spec['gettext'].prefix, + "share", "aclocal"), + "-I", join_path(spec['pkg-config'].prefix, + "share", "aclocal"), + "-I", join_path(spec['automake'].prefix, + "share", "aclocal"), + "-I", join_path(spec['libtool'].prefix, + "share", "aclocal") + ) + configure('--prefix={0}'.format(prefix)) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/libice/package.py b/var/spack/repos/builtin/packages/libice/package.py new file mode 100644 index 0000000000..1f6fd2f901 --- /dev/null +++ b/var/spack/repos/builtin/packages/libice/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 Libice(Package): + """libICE - Inter-Client Exchange Library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libICE" + url = "https://www.x.org/archive/individual/lib/libICE-1.0.9.tar.gz" + + version('1.0.9', '95812d61df8139c7cacc1325a26d5e37') + + depends_on('xproto', type='build') + depends_on('xtrans', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libiconv/gets.patch b/var/spack/repos/builtin/packages/libiconv/gets.patch new file mode 100644 index 0000000000..7c4b5562ec --- /dev/null +++ b/var/spack/repos/builtin/packages/libiconv/gets.patch @@ -0,0 +1,13 @@ +--- a/srclib/stdio.in.h ++++ b/srclib/stdio.in.h +@@ -692,10 +692,6 @@ + # undef gets + # endif + _GL_CXXALIASWARN (gets); +-/* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ +-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + + diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py index f2eeb07b26..72f67ec80d 100644 --- a/var/spack/repos/builtin/packages/libiconv/package.py +++ b/var/spack/repos/builtin/packages/libiconv/package.py @@ -23,9 +23,10 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import shutil -class Libiconv(Package): +class Libiconv(AutotoolsPackage): """GNU libiconv provides an implementation of the iconv() function and the iconv program for character set conversion.""" @@ -34,10 +35,14 @@ class Libiconv(Package): version('1.14', 'e34509b1623cec449dfeb73d7ce9c6c6') - def install(self, spec, prefix): - configure('--prefix={0}'.format(prefix), - '--enable-extra-encodings') + # We cannot set up a warning for gets(), since gets() is not part + # of C11 any more and thus might not exist. + patch("gets.patch") - make() - make('check') - make('install') + def configure_args(self): + args = ['--enable-extra-encodings'] + + # A hack to patch config.guess in the libcharset sub directory + shutil.copyfile('./build-aux/config.guess', + 'libcharset/build-aux/config.guess') + return args diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py new file mode 100644 index 0000000000..2ad5e93191 --- /dev/null +++ b/var/spack/repos/builtin/packages/libint/package.py @@ -0,0 +1,104 @@ +############################################################################## +# 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 Libint(Package): + """Libint is a high-performance library for computing + Gaussian integrals in quantum mechanics.""" + + homepage = "https://github.com/evaleev/libint" + url = "https://github.com/evaleev/libint/archive/v2.1.0.tar.gz" + + version('2.1.0', 'd0dcb985fe32ddebc78fe571ce37e2d6') + version('1.1.6', '990f67b55f49ecc18f32c58da9240684') + version('1.1.5', '379b7d0718ff398715d6898807adf628') + + # Build dependencies + depends_on('autoconf@2.52:', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + + # Libint 2 dependencies + depends_on('boost', when='@2:') + depends_on('gmp', when='@2:') + + def url_for_version(self, version): + base_url = "https://github.com/evaleev/libint/archive" + if version == Version('1.0.0'): + return "{0}/LIBINT_1_00.tar.gz".format(base_url) + elif version < Version('2.1.0'): + return "{0}/release-{1}.tar.gz".format(base_url, version.dashed) + else: + return "{0}/v{1}.tar.gz".format(base_url, version) + + def install(self, spec, prefix): + # Generate configure + libtoolize() + aclocal('-I', 'lib/autoconf') + autoconf() + + config_args = [ + '--prefix={0}'.format(prefix), + '--enable-shared' + ] + + # Optimizations for the Intel compiler, suggested by CP2K + optflags = '-O2' + if self.compiler.name == 'intel': + optflags += ' -xAVX -axCORE-AVX2 -ipo' + if which('xiar'): + env['AR'] = 'xiar' + + env['CFLAGS'] = optflags + env['CXXFLAGS'] = optflags + + # Optimization flag names have changed in libint 2 + if self.version < Version('2.0.0'): + config_args.extend([ + '--with-cc-optflags={0}'.format(optflags), + '--with-cxx-optflags={0}'.format(optflags) + ]) + else: + config_args.extend([ + '--with-cxx-optflags={0}'.format(optflags), + '--with-cxxgen-optflags={0}'.format(optflags) + ]) + + # Options required by CP2K, removed in libint 2 + if self.version < Version('2.0.0'): + config_args.extend([ + '--with-libint-max-am=5', + '--with-libderiv-max-am1=4' + ]) + + configure(*config_args) + make() + + # Testing suite was added in libint 2 + if self.version >= Version('2.0.0'): + make('check') + + make('install') diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index 6252a88542..3fe159d7b9 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -26,20 +26,25 @@ from spack import * class LibjpegTurbo(Package): - """libjpeg-turbo is a fork of the original IJG libjpeg which uses - SIMD to accelerate baseline JPEG compression and - decompression. libjpeg is a library that implements JPEG image - encoding, decoding and transcoding.""" + """libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to + accelerate baseline JPEG compression and decompression. libjpeg is a + library that implements JPEG image encoding, decoding and + transcoding.""" + homepage = "http://libjpeg-turbo.virtualgl.org" url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz" + version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257') version('1.3.1', '2c3a68129dac443a72815ff5bb374b05') - # Can use either of these. - depends_on("yasm", type='build') + # Can use either of these. But in the current version of the package + # only nasm is used. In order to use yasm an environmental variable + # NASM must be set. + # TODO: Implement the selection between two supported assemblers. + # depends_on("yasm", type='build') depends_on("nasm", type='build') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure("--prefix=" + prefix) make() make("install") diff --git a/var/spack/repos/builtin/packages/liblbxutil/package.py b/var/spack/repos/builtin/packages/liblbxutil/package.py new file mode 100644 index 0000000000..1de59defd6 --- /dev/null +++ b/var/spack/repos/builtin/packages/liblbxutil/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 Liblbxutil(Package): + """liblbxutil - Low Bandwith X extension (LBX) utility routines.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/liblbxutil" + url = "https://www.x.org/archive/individual/lib/liblbxutil-1.1.0.tar.gz" + + version('1.1.0', '2735cd23625d4cc870ec4eb7ca272788') + + depends_on('xextproto@7.0.99.1:', type='build') + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + # There is a bug in the library that causes the following messages: + # undefined symbol: Xfree + # undefined symbol: Xalloc + # See https://bugs.freedesktop.org/show_bug.cgi?id=8421 + # Adding a dependency on libxdmcp and adding LIBS=-lXdmcp did not fix it + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py new file mode 100644 index 0000000000..ea81f5da73 --- /dev/null +++ b/var/spack/repos/builtin/packages/libmesh/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 Libmesh(Package): + """The libMesh library provides a framework for the numerical simulation of + partial differential equations using arbitrary unstructured + discretizations on serial and parallel platforms.""" + + homepage = "http://libmesh.github.io/" + url = "https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.bz2" + + version('1.0.0', 'cb464fc63ea0b71b1e69fa3f5d4f93a4') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/liboldx/package.py b/var/spack/repos/builtin/packages/liboldx/package.py new file mode 100644 index 0000000000..9e85f1ed65 --- /dev/null +++ b/var/spack/repos/builtin/packages/liboldx/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 Liboldx(Package): + """X version 10 backwards compatibility.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/liboldX/" + url = "https://www.x.org/archive/individual/lib/liboldX-1.0.1.tar.gz" + + version('1.0.1', 'ea7c4b6a19bf2d04100e2580abf83fae') + + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py index a65b81b69b..f4a3cf7157 100644 --- a/var/spack/repos/builtin/packages/libpciaccess/package.py +++ b/var/spack/repos/builtin/packages/libpciaccess/package.py @@ -29,11 +29,13 @@ class Libpciaccess(Package): """Generic PCI access library.""" homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/" - url = "http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.4.tar.bz2" + url = "http://xorg.freedesktop.org/archive/individual/lib/libpciaccess-0.13.4.tar.gz" - version('0.13.4', 'ace78aec799b1cf6dfaea55d3879ed9f') + version('0.13.4', 'cc1fad87da60682af1d5fa43a5da45a4') - depends_on('libtool') + depends_on('libtool', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') def install(self, spec, prefix): # libpciaccess does not support OS X @@ -42,6 +44,7 @@ class Libpciaccess(Package): mkdir(prefix.lib) return - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/libpng/package.py b/var/spack/repos/builtin/packages/libpng/package.py index 1afe4911e6..c3a595d12d 100644 --- a/var/spack/repos/builtin/packages/libpng/package.py +++ b/var/spack/repos/builtin/packages/libpng/package.py @@ -30,6 +30,7 @@ class Libpng(Package): homepage = "http://www.libpng.org/pub/png/libpng.html" url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz" + version('1.6.24', '65213080dd30a9b16193d9b83adc1ee9') version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d') version('1.6.15', '829a256f3de9307731d4f52dc071916d') version('1.6.14', '2101b3de1d5f348925990f9aa8405660') @@ -37,9 +38,10 @@ class Libpng(Package): version('1.4.19', '89bcbc4fc8b31f4a403906cf4f662330') version('1.2.56', '9508fc59d10a1ffadd9aae35116c19ee') - depends_on('zlib') + depends_on('zlib@1.0.4:') # 1.2.5 or later recommended def install(self, spec, prefix): configure("--prefix=%s" % prefix) make() + make("check") make("install") diff --git a/var/spack/repos/builtin/packages/libpthread-stubs/package.py b/var/spack/repos/builtin/packages/libpthread-stubs/package.py index ea36758a83..fdaf327c2a 100644 --- a/var/spack/repos/builtin/packages/libpthread-stubs/package.py +++ b/var/spack/repos/builtin/packages/libpthread-stubs/package.py @@ -27,14 +27,14 @@ from spack import * class LibpthreadStubs(Package): """The libpthread-stubs package provides weak aliases for pthread - functions not provided in libc or otherwise available by - default. """ - homepage = "http://xcb.freedesktop.org/" - url = "http://xcb.freedesktop.org/dist/libpthread-stubs-0.1.tar.bz2" + functions not provided in libc or otherwise available by default.""" - version('0.3', 'e8fa31b42e13f87e8f5a7a2b731db7ee') + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.gz" + + version('0.3', 'a09d928c4af54fe5436002345ef71138') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) - make() - make("install") + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/libquo/package.py b/var/spack/repos/builtin/packages/libquo/package.py new file mode 100644 index 0000000000..8856913bb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/libquo/package.py @@ -0,0 +1,68 @@ +############################################################################## +# 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 Libquo(Package): + """A high-level, easy to use programming interface tailored specifically + for MPI/MPI+X codes that may benefit from evolving process binding + policies during their execution. QUO allows for arbitrary process binding + policies to be enacted and reverted during the execution of an MPI/MPI+X + application as different computational phases are entered and exited, + respectively.""" + + homepage = "https://github.com/losalamos/libquo" + url = "https://github.com/losalamos/libquo/archive/v1.2.9.tar.gz" + + version('1.2.9', 'ca82ab33f13e2b89983f81e7c02e98c2') + + depends_on('mpi') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + + def install(self, spec, prefix): + autoreconf_options = [ + '--install', + '--verbose', + '--force', + '-I', 'config', + '-I', os.path.join(spec['automake'].prefix, + 'share', 'aclocal'), + '-I', os.path.join(spec['libtool'].prefix, + 'share', 'aclocal') + ] + autoreconf(*autoreconf_options) + + configure_options = [ + '--prefix={0}'.format(prefix), + 'CC=%s' % join_path(spec['mpi'].prefix.bin, "mpicc"), + 'FC=%s' % join_path(spec['mpi'].prefix.bin, "mpif90") + ] + configure(*configure_options) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libsigsegv/package.py b/var/spack/repos/builtin/packages/libsigsegv/package.py index 715d24bcf7..6c8b27478a 100644 --- a/var/spack/repos/builtin/packages/libsigsegv/package.py +++ b/var/spack/repos/builtin/packages/libsigsegv/package.py @@ -30,6 +30,8 @@ class Libsigsegv(Package): homepage = "https://www.gnu.org/software/libsigsegv/" url = "ftp://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.10.tar.gz" + patch('patch.new_config_guess', when='@2.10') + version('2.10', '7f96fb1f65b3b8cbc1582fb7be774f0f') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess b/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess new file mode 100644 index 0000000000..3ecc7458f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/libsigsegv/patch.new_config_guess @@ -0,0 +1,1187 @@ +--- a/build-aux/config.guess 2010-11-06 04:18:40.000000000 -0700 ++++ b/build-aux/config.guess 2016-10-18 13:38:39.950379000 -0700 +@@ -1,14 +1,12 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. ++# Copyright 1992-2016 Free Software Foundation, Inc. + +-timestamp='2010-09-24' ++timestamp='2016-10-02' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -17,26 +15,22 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see <http://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +- +-# Originally written by Per Bothner. Please send patches (context +-# diff format) to <config-patches@gnu.org> and include a ChangeLog +-# entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. + # + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess ++# ++# Please send patches to <config-patches@gnu.org>. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,9 +50,7 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +-Software Foundation, Inc. ++Copyright 1992-2016 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -92,7 +84,7 @@ + exit 1 + fi + +-trap 'exit 1' HUP INT TERM ++trap 'exit 1' 1 2 15 + + # CC_FOR_BUILD -- compiler used by this script. Note that the use of a + # compiler to aid in system detection is discouraged as it requires +@@ -106,7 +98,7 @@ + + set_cc_for_build=' + trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; + : ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || +@@ -140,12 +132,33 @@ + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include <features.h> ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ++ ;; ++esac ++ + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -155,19 +168,29 @@ + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" +- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ +- /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ ++ /sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || \ ++ echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; ++ earmv*) ++ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` ++ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` ++ machine=${arch}${endian}-unknown ++ ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched +- # to ELF recently, or will in the future. ++ # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in ++ earm*) ++ os=netbsdelf ++ ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +@@ -181,7 +204,14 @@ + fi + ;; + *) +- os=netbsd ++ os=netbsd ++ ;; ++ esac ++ # Determine ABI tags. ++ case "${UNAME_MACHINE_ARCH}" in ++ earm*) ++ expr='s/^earmv[0-9]/-eabi/;s/eb$//' ++ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release +@@ -194,18 +224,26 @@ + release='-gnu' + ;; + *) +- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. +- echo "${machine}-${os}${release}" ++ echo "${machine}-${os}${release}${abi}" ++ exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; ++ *:LibertyBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} ++ exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; +@@ -218,13 +256,16 @@ + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; ++ *:Sortix:*:*) ++ echo ${UNAME_MACHINE}-unknown-sortix ++ exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -234,43 +275,46 @@ + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") +- UNAME_MACHINE="alpha" ;; ++ UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") +- UNAME_MACHINE="alpha" ;; ++ UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") +- UNAME_MACHINE="alpha" ;; ++ UNAME_MACHINE=alpha ;; + "EV5 (21164)") +- UNAME_MACHINE="alphaev5" ;; ++ UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") +- UNAME_MACHINE="alphaev56" ;; ++ UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") +- UNAME_MACHINE="alphapca56" ;; ++ UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") +- UNAME_MACHINE="alphapca57" ;; ++ UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") +- UNAME_MACHINE="alphaev6" ;; ++ UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") +- UNAME_MACHINE="alphaev67" ;; ++ UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") +- UNAME_MACHINE="alphaev68" ;; ++ UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") +- UNAME_MACHINE="alphaev68" ;; ++ UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") +- UNAME_MACHINE="alphaev68" ;; ++ UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") +- UNAME_MACHINE="alphaev69" ;; ++ UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") +- UNAME_MACHINE="alphaev7" ;; ++ UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") +- UNAME_MACHINE="alphaev79" ;; ++ UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -296,12 +340,12 @@ + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -339,16 +383,16 @@ + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build +- SUN_ARCH="i386" ++ SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then +- SUN_ARCH="x86_64" ++ SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +@@ -373,7 +417,7 @@ + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` +- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} +@@ -395,23 +439,23 @@ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -481,8 +525,8 @@ + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -495,7 +539,7 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -559,8 +603,9 @@ + else + IBM_ARCH=powerpc + fi +- if [ -x /usr/bin/oslevel ] ; then +- IBM_REV=`/usr/bin/oslevel` ++ if [ -x /usr/bin/lslpp ] ; then ++ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | ++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi +@@ -595,58 +640,58 @@ + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; +- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH=hppa2.0n ;; ++ 64) HP_ARCH=hppa2.0w ;; ++ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c + +- #define _HPUX_SOURCE +- #include <stdlib.h> +- #include <unistd.h> +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF +- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac +- if [ ${HP_ARCH} = "hppa2.0w" ] ++ if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + +@@ -659,12 +704,12 @@ + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + +- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then +- HP_ARCH="hppa2.0w" ++ HP_ARCH=hppa2.0w + else +- HP_ARCH="hppa64" ++ HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} +@@ -731,22 +776,22 @@ + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -769,15 +814,15 @@ + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) +- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` ++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -789,30 +834,35 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ *:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) +- case ${UNAME_MACHINE} in ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +@@ -849,15 +899,22 @@ + exit ;; + *:GNU:*:*) + # the GNU system +- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland +- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +@@ -867,52 +924,62 @@ + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; +- esac ++ esac + objdump --private-headers /bin/sh | grep -q ld.so.1 +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ e2k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) +- LIBC=gnu +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ k1om:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build +@@ -931,54 +998,69 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; +- or32:Linux:*:*) +- echo or32-unknown-linux-gnu ++ mips64el:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ openrisc*:Linux:*:*) ++ echo or1k-unknown-linux-${LIBC} ++ exit ;; ++ or32:Linux:*:* | or1k*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) +- echo sparc-unknown-linux-gnu ++ echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu ++ echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} ++ exit ;; ++ riscv32:Linux:*:* | riscv64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) +- echo ${UNAME_MACHINE}-ibm-linux ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) +- echo ${UNAME_MACHINE}-tilera-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) +- echo ${UNAME_MACHINE}-dec-linux-gnu ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. +@@ -987,11 +1069,11 @@ + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1023,7 +1105,7 @@ + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1051,13 +1133,13 @@ + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i586. ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub +- # prints for the "djgpp" host, or else GDB configury will decide that ++ # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp +- exit ;; ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1092,8 +1174,8 @@ + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ +@@ -1136,10 +1218,10 @@ + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm +@@ -1165,11 +1247,11 @@ + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1182,6 +1264,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1200,6 +1285,9 @@ + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; ++ SX-ACE:SUPER-UX:*:*) ++ echo sxace-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; +@@ -1208,24 +1296,36 @@ + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown +- case $UNAME_PROCESSOR in +- i386) +- eval $set_cc_for_build +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +- grep IS_64BIT_ARCH >/dev/null +- then +- UNAME_PROCESSOR="x86_64" +- fi +- fi ;; +- unknown) UNAME_PROCESSOR=powerpc ;; +- esac ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then ++ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi ++ elif test "$UNAME_PROCESSOR" = i386 ; then ++ # Avoid executing cc on OS X 10.9, as it ships with a stub ++ # that puts up a graphical alert prompting to install ++ # developer tools. Any system running Mac OS X 10.7 or ++ # later (Darwin 11 and later) is required to have a 64-bit ++ # processor. This is not true of the ARM version of Darwin ++ # that Apple uses in portable devices. ++ UNAME_PROCESSOR=x86_64 ++ fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` +- if test "$UNAME_PROCESSOR" = "x86"; then ++ if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi +@@ -1237,7 +1337,7 @@ + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1256,7 +1356,7 @@ + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. +- if test "$cputype" = "386"; then ++ if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" +@@ -1282,13 +1382,13 @@ + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1298,7 +1398,7 @@ + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) +- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos +@@ -1306,174 +1406,28 @@ + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +-esac +- +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- +-eval $set_cc_for_build +-cat >$dummy.c <<EOF +-#ifdef _SEQUENT_ +-# include <sys/types.h> +-# include <sys/utsname.h> +-#endif +-main () +-{ +-#if defined (sony) +-#if defined (MIPSEB) +- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, +- I don't know.... */ +- printf ("mips-sony-bsd\n"); exit (0); +-#else +-#include <sys/param.h> +- printf ("m68k-sony-newsos%s\n", +-#ifdef NEWSOS4 +- "4" +-#else +- "" +-#endif +- ); exit (0); +-#endif +-#endif +- +-#if defined (__arm) && defined (__acorn) && defined (__unix) +- printf ("arm-acorn-riscix\n"); exit (0); +-#endif +- +-#if defined (hp300) && !defined (hpux) +- printf ("m68k-hp-bsd\n"); exit (0); +-#endif +- +-#if defined (NeXT) +-#if !defined (__ARCHITECTURE__) +-#define __ARCHITECTURE__ "m68k" +-#endif +- int version; +- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; +- if (version < 4) +- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); +- else +- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); +- exit (0); +-#endif +- +-#if defined (MULTIMAX) || defined (n16) +-#if defined (UMAXV) +- printf ("ns32k-encore-sysv\n"); exit (0); +-#else +-#if defined (CMU) +- printf ("ns32k-encore-mach\n"); exit (0); +-#else +- printf ("ns32k-encore-bsd\n"); exit (0); +-#endif +-#endif +-#endif +- +-#if defined (__386BSD__) +- printf ("i386-pc-bsd\n"); exit (0); +-#endif +- +-#if defined (sequent) +-#if defined (i386) +- printf ("i386-sequent-dynix\n"); exit (0); +-#endif +-#if defined (ns32000) +- printf ("ns32k-sequent-dynix\n"); exit (0); +-#endif +-#endif +- +-#if defined (_SEQUENT_) +- struct utsname un; +- +- uname(&un); +- +- if (strncmp(un.version, "V2", 2) == 0) { +- printf ("i386-sequent-ptx2\n"); exit (0); +- } +- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ +- printf ("i386-sequent-ptx1\n"); exit (0); +- } +- printf ("i386-sequent-ptx\n"); exit (0); +- +-#endif +- +-#if defined (vax) +-# if !defined (ultrix) +-# include <sys/param.h> +-# if defined (BSD) +-# if BSD == 43 +- printf ("vax-dec-bsd4.3\n"); exit (0); +-# else +-# if BSD == 199006 +- printf ("vax-dec-bsd4.3reno\n"); exit (0); +-# else +- printf ("vax-dec-bsd\n"); exit (0); +-# endif +-# endif +-# else +- printf ("vax-dec-bsd\n"); exit (0); +-# endif +-# else +- printf ("vax-dec-ultrix\n"); exit (0); +-# endif +-#endif +- +-#if defined (alliant) && defined (i860) +- printf ("i860-alliant-bsd\n"); exit (0); +-#endif +- +- exit (1); +-} +-EOF +- +-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && +- { echo "$SYSTEM_NAME"; exit; } +- +-# Apollos put the system type in the environment. +- +-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } +- +-# Convex versions that predate uname can use getsysinfo(1) +- +-if [ -x /usr/convex/getsysinfo ] +-then +- case `getsysinfo -f cpu_type` in +- c1*) +- echo c1-convex-bsd +- exit ;; +- c2*) +- if getsysinfo -f scalar_acc +- then echo c32-convex-bsd +- else echo c2-convex-bsd +- fi +- exit ;; +- c34*) +- echo c34-convex-bsd +- exit ;; +- c38*) +- echo c38-convex-bsd ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx + exit ;; +- c4*) +- echo c4-convex-bsd ++ amd64:Isilon\ OneFS:*:*) ++ echo x86_64-unknown-onefs + exit ;; +- esac +-fi ++esac + + cat >&2 <<EOF + $0: unable to guess system type + +-This script, last modified $timestamp, has failed to recognize +-the operating system you are using. It is advised that you +-download the most up to date version of the config scripts from ++This script (version $timestamp), has failed to recognize the ++operating system you are using. If your script is old, overwrite ++config.guess and config.sub with the latest versions from: + +- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess + and +- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +-If the version you run ($0) is already up to date, please +-send the following data and any information you think might be +-pertinent to <config-patches@gnu.org> in order to provide the needed +-information to handle your system. ++If $0 has already been updated, send the following data and any ++information you think might be pertinent to config-patches@gnu.org to ++provide the necessary information to handle your system. + + config.guess timestamp = $timestamp + diff --git a/var/spack/repos/builtin/packages/libsm/package.py b/var/spack/repos/builtin/packages/libsm/package.py new file mode 100644 index 0000000000..4affd50127 --- /dev/null +++ b/var/spack/repos/builtin/packages/libsm/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libsm(Package): + """libSM - X Session Management Library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libSM" + url = "https://www.x.org/archive/individual/lib/libSM-1.2.2.tar.gz" + + version('1.2.2', '18e5084ed9500b1b47719fd1758f0ec8') + + depends_on('libice@1.0.5:') + + depends_on('xproto', type='build') + depends_on('xtrans', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libsodium/package.py b/var/spack/repos/builtin/packages/libsodium/package.py index 1c930e21dd..805881ce07 100644 --- a/var/spack/repos/builtin/packages/libsodium/package.py +++ b/var/spack/repos/builtin/packages/libsodium/package.py @@ -29,14 +29,22 @@ class Libsodium(Package): """Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing and more.""" homepage = "https://download.libsodium.org/doc/" - url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.3.tar.gz" + url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.11.tar.gz" + version('1.0.11', 'b58928d035064b2a46fb564937b83540') + version('1.0.10', 'ea89dcbbda0b2b6ff6a1c476231870dd') version('1.0.3', 'b3bcc98e34d3250f55ae196822307fab') version('1.0.2', 'dc40eb23e293448c6fc908757738003f') version('1.0.1', '9a221b49fba7281ceaaf5e278d0f4430') version('1.0.0', '3093dabe4e038d09f0d150cef064b2f7') version('0.7.1', 'c224fe3923d1dcfe418c65c8a7246316') + def url_for_version(self, version): + url = 'https://download.libsodium.org/libsodium/releases/' + if version < Version('1.0.4'): + url += 'old/' + return url + 'libsodium-{0}.tar.gz'.format(version) + def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py new file mode 100644 index 0000000000..c87dae19be --- /dev/null +++ b/var/spack/repos/builtin/packages/libsplash/package.py @@ -0,0 +1,64 @@ +############################################################################## +# 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 Libsplash(Package): + """libSplash aims at developing a HDF5-based I/O library for HPC + simulations. It is created as an easy-to-use frontend for the standard HDF5 + library with support for MPI processes in a cluster environment. While the + standard HDF5 library provides detailed low-level control, libSplash + simplifies tasks commonly found in large-scale HPC simulations, such as + iterative computations and MPI distributed processes. + """ + + homepage = "https://github.com/ComputationalRadiationPhysics/libSplash" + url = "https://github.com/ComputationalRadiationPhysics/libSplash/archive/v1.4.0.tar.gz" + + version('dev', branch='dev', + git='https://github.com/ComputationalRadiationPhysics/libSplash.git') + version('master', branch='master', + git='https://github.com/ComputationalRadiationPhysics/libSplash.git') + version('1.6.0', 'c05bce95abfe1ae4cd9d9817acf58d94') + version('1.5.0', 'c1efec4c20334242c8a3b6bfdc0207e3') + version('1.4.0', '2de37bcef6fafa1960391bf44b1b50e0') + version('1.3.1', '524580ba088d97253d03b4611772f37c') + version('1.2.4', '3fccb314293d22966beb7afd83b746d0') + + variant('mpi', default=True, + description='Enable parallel I/O (one-file aggregation) support') + + depends_on('cmake', type='build') + depends_on('hdf5@1.8.6:') + depends_on('hdf5+mpi', when='+mpi') + depends_on('mpi', when='+mpi') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('-DCMAKE_INSTALL_PREFIX=%s' % prefix, + '..', *std_cmake_args) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py index cef9fcaae5..70c371b3b8 100644 --- a/var/spack/repos/builtin/packages/libtiff/package.py +++ b/var/spack/repos/builtin/packages/libtiff/package.py @@ -25,19 +25,14 @@ from spack import * -class Libtiff(Package): +class Libtiff(AutotoolsPackage): """libtiff graphics format library""" - homepage = "http://www.remotesensing.org/libtiff/" - url = "http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" + homepage = "http://www.simplesystems.org/libtiff/" + url = "ftp://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz" + version('4.0.6', 'd1d2e940dea0b5ad435f21f03d96dd72') version('4.0.3', '051c1068e6a0627f461948c365290410') depends_on('jpeg') depends_on('zlib') depends_on('xz') - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - - make() - make("install") diff --git a/var/spack/repos/builtin/packages/libuuid/package.py b/var/spack/repos/builtin/packages/libuuid/package.py index 553f0dddb8..b8f6b1cc3a 100644 --- a/var/spack/repos/builtin/packages/libuuid/package.py +++ b/var/spack/repos/builtin/packages/libuuid/package.py @@ -27,7 +27,7 @@ from spack import * class Libuuid(Package): """Portable uuid C library""" - # FIXME: add a proper url for your package's homepage here. + homepage = "http://sourceforge.net/projects/libuuid/" url = "http://downloads.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flibuuid%2F&ts=1433881396&use_mirror=iweb" @@ -36,6 +36,5 @@ class Libuuid(Package): def install(self, spec, prefix): configure("--prefix=%s" % prefix) - # FIXME: Add logic to build and install here make() make("install") diff --git a/var/spack/repos/builtin/packages/libwebsockets/package.py b/var/spack/repos/builtin/packages/libwebsockets/package.py new file mode 100644 index 0000000000..904ad887ec --- /dev/null +++ b/var/spack/repos/builtin/packages/libwebsockets/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 Libwebsockets(CMakePackage): + """C library for lightweight websocket clients and servers.""" + + homepage = "https://github.com/warmcat/libwebsockets" + url = "https://github.com/warmcat/libwebsockets/archive/v2.1.0.tar.gz" + + version('2.1.0', '4df3be57dee43aeebd54a3ed56568f50') + version('2.0.3', 'a025156d606d90579e65d53ccd062a94') + version('1.7.9', '7b3692ead5ae00fd0e1d56c080170f07') + + depends_on('cmake', type='build') + depends_on('zlib') + depends_on('openssl') diff --git a/var/spack/repos/builtin/packages/libwindowswm/package.py b/var/spack/repos/builtin/packages/libwindowswm/package.py new file mode 100644 index 0000000000..3836e0d419 --- /dev/null +++ b/var/spack/repos/builtin/packages/libwindowswm/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Libwindowswm(Package): + """WindowsWM - Cygwin/X rootless window management extension. + + WindowsWM is a simple library designed to interface with the + Windows-WM extension. This extension allows X window managers to + better interact with the Cygwin XWin server when running X11 in a + rootless mode.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libWindowsWM" + url = "https://www.x.org/archive/individual/lib/libWindowsWM-1.0.1.tar.gz" + + version('1.0.1', 'f260e124706ff6209c566689528667c6') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('windowswmproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libx11/package.py b/var/spack/repos/builtin/packages/libx11/package.py new file mode 100644 index 0000000000..c5df2e0f83 --- /dev/null +++ b/var/spack/repos/builtin/packages/libx11/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 Libx11(Package): + """libX11 - Core X11 protocol client library.""" + + homepage = "https://www.x.org/" + url = "https://www.x.org/archive/individual/lib/libX11-1.6.3.tar.gz" + + version('1.6.3', '7d16653fe7c36209799175bb3dc1ae46') + + depends_on('libxcb@1.1.92:') + + depends_on('xproto@7.0.17:', type='build') + depends_on('xextproto', type='build') + depends_on('xtrans', type='build') + depends_on('kbproto', type='build') + depends_on('inputproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxau/package.py b/var/spack/repos/builtin/packages/libxau/package.py index b9215bc601..eb1f1326c6 100644 --- a/var/spack/repos/builtin/packages/libxau/package.py +++ b/var/spack/repos/builtin/packages/libxau/package.py @@ -27,18 +27,21 @@ from spack import * class Libxau(Package): """The libXau package contains a library implementing the X11 - Authorization Protocol. This is useful for restricting client - access to the display.""" - homepage = "http://xcb.freedesktop.org/" - url = "http://ftp.x.org/pub/individual/lib/libXau-1.0.8.tar.bz2" + Authorization Protocol. This is useful for restricting client + access to the display.""" - version('1.0.8', '685f8abbffa6d145c0f930f00703b21b') + homepage = "https://cgit.freedesktop.org/xorg/lib/libXau/" + url = "https://www.x.org/archive/individual/lib/libXau-1.0.8.tar.gz" - depends_on('xproto') - depends_on('pkg-config', type='build') + version('1.0.8', 'a85cd601d82bc79c0daa280917572e20') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + configure('--prefix={0}'.format(prefix)) make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxaw/package.py b/var/spack/repos/builtin/packages/libxaw/package.py new file mode 100644 index 0000000000..9f92ff57d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxaw/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxaw(Package): + """Xaw is the X Athena Widget Set. + Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw" + url = "https://www.x.org/archive/individual/lib/libXaw-1.0.13.tar.gz" + + version('1.0.13', '6c522476024df5872cddc5f1562fb656') + + depends_on('libx11') + depends_on('libxext') + depends_on('libxt') + depends_on('libxmu') + depends_on('libxpm') + + depends_on('xproto', type='build') + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxaw3d/package.py b/var/spack/repos/builtin/packages/libxaw3d/package.py new file mode 100644 index 0000000000..498f57cbca --- /dev/null +++ b/var/spack/repos/builtin/packages/libxaw3d/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Libxaw3d(Package): + """Xaw3d is the X 3D Athena Widget Set. + Xaw3d is a widget set based on the X Toolkit Intrinsics (Xt) Library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw3d" + url = "https://www.x.org/archive/individual/lib/libXaw3d-1.6.2.tar.gz" + + version('1.6.2', 'e51e00b734853e555ae9b367d213de45') + + depends_on('libx11') + depends_on('libxt') + depends_on('libxmu') + depends_on('libxext') + depends_on('libxpm') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index 9ea4d1c326..d773395e6c 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -32,11 +32,28 @@ class Libxc(Package): homepage = "http://www.tddft.org/programs/octopus/wiki/index.php/Libxc" url = "http://www.tddft.org/programs/octopus/down.php?file=libxc/libxc-2.2.2.tar.gz" + version('3.0.0', '8227fa3053f8fc215bd9d7b0d36de03c') version('2.2.2', 'd9f90a0d6e36df6c1312b6422280f2ec') + version('2.2.1', '38dc3a067524baf4f8521d5bb1cd0b8f') def install(self, spec, prefix): - configure('--prefix=%s' % prefix, + # Optimizations for the Intel compiler, suggested by CP2K + optflags = '-O2' + if self.compiler.name == 'intel': + optflags += ' -xAVX -axCORE-AVX2 -ipo' + if which('xiar'): + env['AR'] = 'xiar' + + env['CFLAGS'] = optflags + env['FCFLAGS'] = optflags + + configure('--prefix={0}'.format(prefix), '--enable-shared') make() - make("install") + + # libxc provides a testsuite, but many tests fail + # http://www.tddft.org/pipermail/libxc/2013-February/000032.html + # make('check') + + make('install') diff --git a/var/spack/repos/builtin/packages/libxcb/package.py b/var/spack/repos/builtin/packages/libxcb/package.py index 82ddb2742e..9fa1c6f97c 100644 --- a/var/spack/repos/builtin/packages/libxcb/package.py +++ b/var/spack/repos/builtin/packages/libxcb/package.py @@ -31,17 +31,21 @@ class Libxcb(Package): access to the protocol, improved threading support, and extensibility.""" - homepage = "http://xcb.freedesktop.org/" - url = "http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz" + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz" + version('1.12', '95eee7c28798e16ba5443f188b27a476') version('1.11', '1698dd837d7e6e94d029dbe8b3a82deb') version('1.11.1', '118623c15a96b08622603a71d8789bf3') - depends_on("python", type='build') - depends_on("xcb-proto") - depends_on("pkg-config", type='build') - depends_on("libpthread-stubs") - depends_on('libxau') + depends_on('libpthread-stubs') + depends_on('libxau@0.99.2:') + depends_on('libxdmcp') + + depends_on('xcb-proto', type='build') + depends_on('python@2:2.8', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') def patch(self): filter_file( @@ -50,9 +54,8 @@ class Libxcb(Package): 'src/xcb.h') def install(self, spec, prefix): - env['PKG_CONFIG_PATH'] = env[ - 'PKG_CONFIG_PATH'] + ':/usr/lib64/pkgconfig' - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxcomposite/package.py b/var/spack/repos/builtin/packages/libxcomposite/package.py new file mode 100644 index 0000000000..48cba00250 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxcomposite/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxcomposite(Package): + """libXcomposite - client library for the Composite extension to the + X11 protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXcomposite" + url = "https://www.x.org/archive/individual/lib/libXcomposite-0.4.4.tar.gz" + + version('0.4.4', 'af860b1554a423735d831e6f29ac1ef5') + + depends_on('libx11') + depends_on('libxfixes') + + depends_on('compositeproto@0.4:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxcursor/package.py b/var/spack/repos/builtin/packages/libxcursor/package.py new file mode 100644 index 0000000000..215452ef52 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxcursor/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxcursor(Package): + """libXcursor - X Window System Cursor management library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXcursor" + url = "https://www.x.org/archive/individual/lib/libXcursor-1.1.14.tar.gz" + + version('1.1.14', '39c8423de190d64f1c52fbc00022e52c') + + depends_on('libxrender@0.8.2:') + depends_on('libxfixes') + depends_on('libx11') + + depends_on('fixesproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxdamage/package.py b/var/spack/repos/builtin/packages/libxdamage/package.py new file mode 100644 index 0000000000..448ac21945 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxdamage/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxdamage(Package): + """This package contains the library for the X Damage extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXdamage" + url = "https://www.x.org/archive/individual/lib/libXdamage-1.1.4.tar.gz" + + version('1.1.4', '95867778da012623815214769007c0d7') + + depends_on('libxfixes') + depends_on('libx11') + + depends_on('damageproto@1.1:', type='build') + depends_on('fixesproto', type='build') + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxdmcp/package.py b/var/spack/repos/builtin/packages/libxdmcp/package.py new file mode 100644 index 0000000000..c05d4b8771 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxdmcp/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 Libxdmcp(Package): + """libXdmcp - X Display Manager Control Protocol library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXdmcp" + url = "https://www.x.org/archive/individual/lib/libXdmcp-1.1.2.tar.gz" + + version('1.1.2', 'ab0d6a38f0344a05d698ec7d48cfa5a8') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxevie/package.py b/var/spack/repos/builtin/packages/libxevie/package.py new file mode 100644 index 0000000000..b9f0e41631 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxevie/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxevie(Package): + """Xevie - X Event Interception Extension (XEvIE).""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXevie" + url = "https://www.x.org/archive/individual/lib/libXevie-1.0.3.tar.gz" + + version('1.0.3', '100e6485cabfe6e788e09c110ca680d8') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xproto', type='build') + depends_on('xextproto', type='build') + depends_on('evieext', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxext/package.py b/var/spack/repos/builtin/packages/libxext/package.py new file mode 100644 index 0000000000..192ab3957a --- /dev/null +++ b/var/spack/repos/builtin/packages/libxext/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxext(Package): + """libXext - library for common extensions to the X11 protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXext" + url = "https://www.x.org/archive/individual/lib/libXext-1.3.3.tar.gz" + + version('1.3.3', '93f5ec084c998efbfb0befed22f9b57f') + + depends_on('libx11@1.6:') + + depends_on('xproto@7.0.13:', type='build') + depends_on('xextproto@7.1.99:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxfixes/package.py b/var/spack/repos/builtin/packages/libxfixes/package.py new file mode 100644 index 0000000000..6b8b599a85 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxfixes/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxfixes(Package): + """This package contains header files and documentation for the XFIXES + extension. Library and server implementations are separate.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXfixes" + url = "https://www.x.org/archive/individual/lib/libXfixes-5.0.2.tar.gz" + + version('5.0.2', '3636e59f8f5fa2e469d556d49f30e98d') + + depends_on('libx11@1.6:') + + depends_on('xproto', type='build') + depends_on('fixesproto@5.0:', type='build') + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxfont/package.py b/var/spack/repos/builtin/packages/libxfont/package.py new file mode 100644 index 0000000000..1ebf321c9f --- /dev/null +++ b/var/spack/repos/builtin/packages/libxfont/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 Libxfont(Package): + """libXfont provides the core of the legacy X11 font system, handling the + index files (fonts.dir, fonts.alias, fonts.scale), the various font file + formats, and rasterizing them. It is used by the X servers, the + X Font Server (xfs), and some font utilities (bdftopcf for instance), + but should not be used by normal X11 clients. X11 clients access fonts + via either the new API's in libXft, or the legacy API's in libX11.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont" + url = "https://www.x.org/archive/individual/lib/libXfont-1.5.2.tar.gz" + + version('1.5.2', 'e8c616db0e59df4614980915e79bb05e') + + depends_on('libfontenc') + depends_on('freetype') + + depends_on('xtrans', type='build') + depends_on('xproto', type='build') + depends_on('fontsproto@2.1.3:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxfont2/package.py b/var/spack/repos/builtin/packages/libxfont2/package.py new file mode 100644 index 0000000000..8611e65ebb --- /dev/null +++ b/var/spack/repos/builtin/packages/libxfont2/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 Libxfont2(Package): + """libXfont provides the core of the legacy X11 font system, handling the + index files (fonts.dir, fonts.alias, fonts.scale), the various font file + formats, and rasterizing them. It is used by the X servers, the + X Font Server (xfs), and some font utilities (bdftopcf for instance), + but should not be used by normal X11 clients. X11 clients access fonts + via either the new API's in libXft, or the legacy API's in libX11.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont" + url = "https://www.x.org/archive/individual/lib/libXfont2-2.0.1.tar.gz" + + version('2.0.1', '6ae5ae1f9fb1213b04f14a802a1d721c') + + depends_on('libfontenc') + depends_on('freetype') + + depends_on('xtrans', type='build') + depends_on('xproto', type='build') + depends_on('fontsproto@2.1.3:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxfontcache/package.py b/var/spack/repos/builtin/packages/libxfontcache/package.py new file mode 100644 index 0000000000..5421f093ca --- /dev/null +++ b/var/spack/repos/builtin/packages/libxfontcache/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxfontcache(Package): + """Xfontcache - X-TrueType font cache extension client library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXfontcache" + url = "https://www.x.org/archive/individual/lib/libXfontcache-1.0.5.tar.gz" + + version('1.0.5', '5030fc9c7f16dbb52f92a8ba2c574f5c') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('fontcacheproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxft/package.py b/var/spack/repos/builtin/packages/libxft/package.py new file mode 100644 index 0000000000..b1b8f853d0 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxft/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxft(Package): + """X FreeType library. + + Xft version 2.1 was the first stand alone release of Xft, a library that + connects X applications with the FreeType font rasterization library. Xft + uses fontconfig to locate fonts so it has no configuration files.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXft" + url = "https://www.x.org/archive/individual/lib/libXft-2.3.2.tar.gz" + + version('2.3.2', '3a2c1ce2641817dace55cd2bfe10b0f0') + + depends_on('freetype@2.1.6:') + depends_on('fontconfig@2.5.92:') + depends_on('libx11') + depends_on('libxrender@0.8.2:') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxi/package.py b/var/spack/repos/builtin/packages/libxi/package.py new file mode 100644 index 0000000000..4e9a273579 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxi/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxi(Package): + """libXi - library for the X Input Extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXi" + url = "https://www.x.org/archive/individual/lib/libXi-1.7.6.tar.gz" + + version('1.7.6', 'f3828f9d7893068f6f6f10fe15b31afa') + + depends_on('libx11@1.6:') + depends_on('libxext@1.0.99.1:') + depends_on('libxfixes@5:') + + depends_on('xproto@7.0.13:', type='build') + depends_on('xextproto@7.0.3:', type='build') + depends_on('inputproto@2.2.99.1:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxinerama/package.py b/var/spack/repos/builtin/packages/libxinerama/package.py new file mode 100644 index 0000000000..a001c41ca7 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxinerama/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxinerama(Package): + """libXinerama - API for Xinerama extension to X11 Protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXinerama" + url = "https://www.x.org/archive/individual/lib/libXinerama-1.1.3.tar.gz" + + version('1.1.3', '7224a1baa9733a54053550a3fb4be118') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('xineramaproto@1.1.99.1:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxkbfile/package.py b/var/spack/repos/builtin/packages/libxkbfile/package.py new file mode 100644 index 0000000000..af8029a024 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxkbfile/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 Libxkbfile(Package): + """XKB file handling routines.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libxkbfile" + url = "https://www.x.org/archive/individual/lib/libxkbfile-1.0.9.tar.gz" + + version('1.0.9', '5aab87eba67f37dd910a19be5c1129ee') + + depends_on('libx11') + + depends_on('kbproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxkbui/package.py b/var/spack/repos/builtin/packages/libxkbui/package.py new file mode 100644 index 0000000000..d0c132d970 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxkbui/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxkbui(Package): + """X.org libxkbui library.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libxkbui/" + url = "https://www.x.org/archive/individual/lib/libxkbui-1.0.2.tar.gz" + + version('1.0.2', 'a6210171defde64d9e8bcf6a6f6074b0') + + depends_on('libx11') + depends_on('libxt') + depends_on('libxkbfile') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py index 0f4810fa8a..0b55fe4d30 100644 --- a/var/spack/repos/builtin/packages/libxml2/package.py +++ b/var/spack/repos/builtin/packages/libxml2/package.py @@ -32,6 +32,7 @@ class Libxml2(Package): homepage = "http://xmlsoft.org" url = "http://xmlsoft.org/sources/libxml2-2.9.2.tar.gz" + version('2.9.4', 'ae249165c173b1ff386ee8ad676815f5') version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788') variant('python', default=False, description='Enable Python support') @@ -44,13 +45,16 @@ class Libxml2(Package): def install(self, spec, prefix): if '+python' in spec: - python_args = ["--with-python=%s" % spec['python'].prefix, - "--with-python-install-dir=%s" % site_packages_dir] + python_args = [ + '--with-python={0}'.format(spec['python'].prefix), + '--with-python-install-dir={0}'.format(site_packages_dir) + ] else: - python_args = ["--without-python"] + python_args = ['--without-python'] - configure("--prefix=%s" % prefix, - *python_args) + configure('--prefix={0}'.format(prefix), *python_args) make() - make("install") + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxmu/package.py b/var/spack/repos/builtin/packages/libxmu/package.py new file mode 100644 index 0000000000..dbba5f168d --- /dev/null +++ b/var/spack/repos/builtin/packages/libxmu/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 Libxmu(Package): + """This library contains miscellaneous utilities and is not part of the + Xlib standard. It contains routines which only use public interfaces so + that it may be layered on top of any proprietary implementation of Xlib + or Xt.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXmu" + url = "https://www.x.org/archive/individual/lib/libXmu-1.1.2.tar.gz" + + version('1.1.2', 'd5be323b02e6851607205c8e941b4e61') + + depends_on('libxt') + depends_on('libxext') + depends_on('libx11') + + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxp/package.py b/var/spack/repos/builtin/packages/libxp/package.py new file mode 100644 index 0000000000..10aaccc54f --- /dev/null +++ b/var/spack/repos/builtin/packages/libxp/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxp(Package): + """libXp - X Print Client Library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXp" + url = "https://www.x.org/archive/individual/lib/libXp-1.0.3.tar.gz" + + version('1.0.3', '1157da663b28e110f440ce64cede6e18') + + depends_on('libx11@1.6:') + depends_on('libxext') + depends_on('libxau') + + depends_on('xextproto', type='build') + depends_on('printproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py index 10ca8158c2..b726e74b0b 100644 --- a/var/spack/repos/builtin/packages/libxpm/package.py +++ b/var/spack/repos/builtin/packages/libxpm/package.py @@ -26,9 +26,9 @@ from spack import * class Libxpm(Package): - """Xpm file format library""" + """libXpm - X Pixmap (XPM) image file format library.""" - homepage = "https://www.x.org/" + homepage = "http://cgit.freedesktop.org/xorg/lib/libXpm" url = "https://www.x.org/archive//individual/lib/libXpm-3.5.11.tar.gz" version('3.5.11', '7c67c878ee048206b070bc0b24154f04') @@ -37,8 +37,14 @@ class Libxpm(Package): version('3.5.8', '2d81d6633e67ac5562e2fbee126b2897') version('3.5.7', '7bbc8f112f7143ed6961a58ce4e14558') + depends_on('libx11') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + configure('--prefix={0}'.format(prefix)) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/libxpresent/package.py b/var/spack/repos/builtin/packages/libxpresent/package.py new file mode 100644 index 0000000000..e65d4353a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxpresent/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxpresent(Package): + """This package contains header files and documentation for the Present + extension. Library and server implementations are separate.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libXpresent/" + url = "https://www.x.org/archive/individual/lib/libXpresent-1.0.0.tar.gz" + + version('1.0.0', '2f543a595c3e6a519e2e38d079002958') + + depends_on('libx11') + + depends_on('xproto', type='build') + depends_on('presentproto@1.0:', type='build') + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxprintapputil/package.py b/var/spack/repos/builtin/packages/libxprintapputil/package.py new file mode 100644 index 0000000000..fc66b76ac0 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxprintapputil/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxprintapputil(Package): + """Xprint application utility routines.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libXprintAppUtil/" + url = "https://www.x.org/archive/individual/lib/libXprintAppUtil-1.0.1.tar.gz" + + version('1.0.1', '3adb71fa34a2d4e75d8b840310318f76') + + depends_on('libx11') + depends_on('libxp') + depends_on('libxprintutil') + depends_on('libxau') + + depends_on('printproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxprintutil/package.py b/var/spack/repos/builtin/packages/libxprintutil/package.py new file mode 100644 index 0000000000..8eb768958f --- /dev/null +++ b/var/spack/repos/builtin/packages/libxprintutil/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxprintutil(Package): + """Xprint application utility routines.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libXprintUtil/" + url = "https://www.x.org/archive/individual/lib/libXprintUtil-1.0.1.tar.gz" + + version('1.0.1', '2f02e812f3e419534ced6fcb5860825f') + + depends_on('libx11') + depends_on('libxp') + depends_on('libxt') + depends_on('libxau') + + depends_on('printproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxrandr/package.py b/var/spack/repos/builtin/packages/libxrandr/package.py new file mode 100644 index 0000000000..56c36c0c7b --- /dev/null +++ b/var/spack/repos/builtin/packages/libxrandr/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Libxrandr(Package): + """libXrandr - X Resize, Rotate and Reflection extension library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXrandr" + url = "https://www.x.org/archive/individual/lib/libXrandr-1.5.0.tar.gz" + + version('1.5.0', 'e2fafff575b94ba0b15983eb4df93656') + + depends_on('libx11@1.6:') + depends_on('libxext') + depends_on('libxrender') + + depends_on('randrproto@1.5:', type='build') + depends_on('xextproto', type='build') + depends_on('renderproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxrender/package.py b/var/spack/repos/builtin/packages/libxrender/package.py new file mode 100644 index 0000000000..c5a6dac1be --- /dev/null +++ b/var/spack/repos/builtin/packages/libxrender/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 Libxrender(Package): + """libXrender - library for the Render Extension to the X11 protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXrender" + url = "https://www.x.org/archive/individual/lib/libXrender-0.9.9.tar.gz" + + version('0.9.9', '0c797c4f2a7b782896bc223e6dac4333') + + depends_on('libx11@1.6:') + + depends_on('renderproto@0.9:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxres/package.py b/var/spack/repos/builtin/packages/libxres/package.py new file mode 100644 index 0000000000..6d0684c4b8 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxres/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxres(Package): + """libXRes - X-Resource extension client library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXRes" + url = "https://www.x.org/archive/individual/lib/libXres-1.0.7.tar.gz" + + version('1.0.7', '7fad9ab34201bb4adffcbf0cd7e87a89') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('resourceproto@1.0:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxscrnsaver/package.py b/var/spack/repos/builtin/packages/libxscrnsaver/package.py new file mode 100644 index 0000000000..c9ca6ac1c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxscrnsaver/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Libxscrnsaver(Package): + """XScreenSaver - X11 Screen Saver extension client library""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXScrnSaver" + url = "https://www.x.org/archive/individual/lib/libXScrnSaver-1.2.2.tar.gz" + + version('1.2.2', '79227e7d8c0dad27654c526de3d6fef3') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('scrnsaverproto@1.2:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxshmfence/package.py b/var/spack/repos/builtin/packages/libxshmfence/package.py index fe5d5667e9..d4f4c85203 100644 --- a/var/spack/repos/builtin/packages/libxshmfence/package.py +++ b/var/spack/repos/builtin/packages/libxshmfence/package.py @@ -26,16 +26,24 @@ from spack import * class Libxshmfence(Package): - """This is a tiny library that exposes a event API on top of Linux - futexes.""" + """libxshmfence - Shared memory 'SyncFence' synchronization primitive. - homepage = "http://keithp.com/blogs/dri3_extension/" # not really... + This library offers a CPU-based synchronization primitive compatible + with the X SyncFence objects that can be shared between processes + using file descriptor passing.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libxshmfence/" url = "http://xorg.freedesktop.org/archive/individual/lib/libxshmfence-1.2.tar.gz" version('1.2', 'f0b30c0fc568b22ec524859ee28556f1') + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/libxstream/package.py b/var/spack/repos/builtin/packages/libxstream/package.py new file mode 100644 index 0000000000..3201b58620 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxstream/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Libxstream(Package): + '''LIBXSTREAM is a library to work with streams, events, and code regions + that are able to run asynchronous while preserving the usual stream + conditions.''' + + homepage = 'https://github.com/hfp/libxstream' + url = 'https://github.com/hfp/libxstream.git' + + version('0.9.0', git='https://github.com/hfp/libxstream.git') + + def patch(self): + kwargs = {'ignore_absent': False, 'backup': True, 'string': True} + makefile = FileFilter('Makefile.inc') + + makefile.filter('CC =', 'CC ?=', **kwargs) + makefile.filter('CXX =', 'CXX ?=', **kwargs) + makefile.filter('FC =', 'FC ?=', **kwargs) + + def install(self, spec, prefix): + make() + install_tree('lib', prefix.lib) + install_tree('include', prefix.include) + install_tree('documentation', prefix.share + '/libxstream/doc/') diff --git a/var/spack/repos/builtin/packages/libxt/package.py b/var/spack/repos/builtin/packages/libxt/package.py new file mode 100644 index 0000000000..c657c866b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxt/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxt(Package): + """libXt - X Toolkit Intrinsics library.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXt" + url = "https://www.x.org/archive/individual/lib/libXt-1.1.5.tar.gz" + + version('1.1.5', '77d317fbc508dd6adefb59d57a663032') + + depends_on('libsm') + depends_on('libice') + depends_on('libx11') + + depends_on('xproto', type='build') + depends_on('kbproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxtrap/package.py b/var/spack/repos/builtin/packages/libxtrap/package.py new file mode 100644 index 0000000000..4589f98a87 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxtrap/package.py @@ -0,0 +1,58 @@ +############################################################################## +# 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 Libxtrap(Package): + """libXTrap is the Xlib-based client API for the DEC-XTRAP extension. + + XTrap was a proposed standard extension for X11R5 which facilitated the + capturing of server protocol and synthesizing core input events. + + Digital participated in the X Consortium's xtest working group which chose + to evolve XTrap functionality into the XTEST & RECORD extensions for X11R6. + + As X11R6 was released in 1994, XTrap has now been deprecated for over + 15 years, and uses of it should be quite rare.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXTrap" + url = "https://www.x.org/archive/individual/lib/libXTrap-1.0.1.tar.gz" + + version('1.0.1', 'fde266b82ee14da3e4f4f81c9584c1ea') + + depends_on('libx11') + depends_on('libxt') + depends_on('libxext') + + depends_on('trapproto', type='build') + depends_on('xextproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxtst/package.py b/var/spack/repos/builtin/packages/libxtst/package.py new file mode 100644 index 0000000000..0d16643f94 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxtst/package.py @@ -0,0 +1,59 @@ +############################################################################## +# 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 Libxtst(Package): + """libXtst provides the Xlib-based client API for the XTEST & RECORD + extensions. + + The XTEST extension is a minimal set of client and server extensions + required to completely test the X11 server with no user intervention. + This extension is not intended to support general journaling and + playback of user actions. + + The RECORD extension supports the recording and reporting of all + core X protocol and arbitrary X extension protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXtst" + url = "https://www.x.org/archive/individual/lib/libXtst-1.2.2.tar.gz" + + version('1.2.2', 'efef3b1e44bd8074a601c0c5ce0788f4') + + depends_on('libx11') + depends_on('libxext@1.0.99.4:') + depends_on('libxi') + + depends_on('recordproto@1.13.99.1:', type='build') + depends_on('xextproto@7.0.99.3:', type='build') + depends_on('inputproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxv/package.py b/var/spack/repos/builtin/packages/libxv/package.py new file mode 100644 index 0000000000..03f10a1842 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxv/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxv(Package): + """libXv - library for the X Video (Xv) extension to the + X Window System.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXv" + url = "https://www.x.org/archive/individual/lib/libXv-1.0.10.tar.gz" + + version('1.0.10', 'e7182673b4bbe3ca00ac932e22edc038') + + depends_on('libx11@1.6:') + depends_on('libxext') + + depends_on('xextproto', type='build') + depends_on('videoproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxvmc/package.py b/var/spack/repos/builtin/packages/libxvmc/package.py new file mode 100644 index 0000000000..9d5695c2c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxvmc/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxvmc(Package): + """X.org libXvMC library.""" + + homepage = "https://cgit.freedesktop.org/xorg/lib/libXvMC" + url = "https://www.x.org/archive/individual/lib/libXvMC-1.0.9.tar.gz" + + version('1.0.9', 'a28c0780373537f4774565309b31a69e') + + depends_on('libx11@1.6:') + depends_on('libxext') + depends_on('libxv') + + depends_on('xextproto', type='build') + depends_on('videoproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxxf86dga/package.py b/var/spack/repos/builtin/packages/libxxf86dga/package.py new file mode 100644 index 0000000000..292c5d213b --- /dev/null +++ b/var/spack/repos/builtin/packages/libxxf86dga/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxxf86dga(Package): + """libXxf86dga - Client library for the XFree86-DGA extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86dga" + url = "https://www.x.org/archive/individual/lib/libXxf86dga-1.1.4.tar.gz" + + version('1.1.4', '8ed1c8674e730e8d333dfe4b9f2097d9') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xproto', type='build') + depends_on('xextproto', type='build') + depends_on('xf86dgaproto@2.0.99.2:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxxf86misc/package.py b/var/spack/repos/builtin/packages/libxxf86misc/package.py new file mode 100644 index 0000000000..0247f8b57c --- /dev/null +++ b/var/spack/repos/builtin/packages/libxxf86misc/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxxf86misc(Package): + """libXxf86misc - Extension library for the XFree86-Misc X extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86misc" + url = "https://www.x.org/archive/individual/lib/libXxf86misc-1.0.3.tar.gz" + + version('1.0.3', 'c8d8743e146bcd2aa9856117ac5ef6c0') + + depends_on('libx11') + depends_on('libxext') + + depends_on('xproto', type='build') + depends_on('xextproto', type='build') + depends_on('xf86miscproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/libxxf86vm/package.py b/var/spack/repos/builtin/packages/libxxf86vm/package.py new file mode 100644 index 0000000000..feec5ff3d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxxf86vm/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Libxxf86vm(Package): + """libXxf86vm - Extension library for the XFree86-VidMode X extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86vm" + url = "https://www.x.org/archive/individual/lib/libXxf86vm-1.1.4.tar.gz" + + version('1.1.4', '675bd0c521472628d5796602f625ef51') + + depends_on('libx11@1.6:') + depends_on('libxext') + + depends_on('xproto', type='build') + depends_on('xextproto', type='build') + depends_on('xf86vidmodeproto@2.2.99.1:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/listres/package.py b/var/spack/repos/builtin/packages/listres/package.py new file mode 100644 index 0000000000..c6b3d149f6 --- /dev/null +++ b/var/spack/repos/builtin/packages/listres/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Listres(Package): + """The listres program generates a list of X resources for a widget + in an X client written using a toolkit based on libXt.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/listres" + url = "https://www.x.org/archive/individual/app/listres-1.0.3.tar.gz" + + version('1.0.3', '77cafc32e8e02cca2d4453e73e0c0e7d') + + depends_on('libxaw') + depends_on('libxt') + depends_on('libxmu') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index 61ea8daac4..06572ea312 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -22,9 +22,10 @@ # 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 +from spack import * + class Llvm(Package): """The LLVM Project is a collection of modular and reusable compiler and @@ -32,11 +33,13 @@ class Llvm(Package): with traditional virtual machines, though it does provide helpful libraries that can be used to build them. The name "LLVM" itself is not an acronym; it is the full name of the project. - """ + homepage = 'http://llvm.org/' url = 'http://llvm.org/releases/3.7.1/llvm-3.7.1.src.tar.xz' + family = 'compiler' # Used by lmod + # currently required by mesa package version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz') @@ -111,7 +114,7 @@ class Llvm(Package): 'destination': 'projects', 'placement': 'libcxxabi', }, - 'clang': { + 'cfe': { 'url': base_url % {'pkg': 'cfe'}, 'destination': 'tools', 'placement': 'clang', @@ -141,63 +144,93 @@ class Llvm(Package): { 'version': 'trunk', 'repo': 'http://llvm.org/svn/llvm-project/llvm/trunk', - 'resources': { - 'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk', - 'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk', - 'polly': 'http://llvm.org/svn/llvm-project/polly/trunk', - 'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk', - 'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk', - 'clang': 'http://llvm.org/svn/llvm-project/cfe/trunk', - 'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk', - 'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk', - 'llvm-libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk', - } - }, - { - 'version': '3.8.0', - 'md5': '07a7a74f3c6bd65de4702bf941b511a0', - 'resources': { - 'compiler-rt': 'd6fcbe14352ffb708e4d1ac2e48bb025', - 'openmp': '8fd7cc35d48051613cf1e750e9f22e40', - 'polly': '1b3b20f52d34a4024e21a4ea7112caa7', - 'libcxx': 'd6e0bdbbee39f7907ad74fd56d03b88a', - 'libcxxabi': 'bbe6b4d72c7c5978550d370af529bcf7', - 'clang': 'cc99e7019bb74e6459e80863606250c5', - 'clang-tools-extra': 'c2344f50e0eea0b402f0092a80ddc036', - 'lldb': 'a5da35ed9cc8c8817ee854e3dbfba00e', - 'llvm-libunwind': '162ade468607f153cca12be90b5194fa', - } - }, - { - 'version': '3.7.1', - 'md5': 'bf8b3a2c79e61212c5409041dfdbd319', - 'resources': { - 'compiler-rt': '1c6975daf30bb3b0473b53c3a1a6ff01', - 'openmp': 'b4ad08cda4e5c22e42b66062b140438e', - 'polly': '3a2a7367002740881637f4d47bca4dc3', - 'libcxx': 'f9c43fa552a10e14ff53b94d04bea140', - 'libcxxabi': '52d925afac9f97e9dcac90745255c169', - 'clang': '0acd026b5529164197563d135a8fd83e', - 'clang-tools-extra': '5d49ff745037f061a7c86aeb6a24c3d2', - 'lldb': 'a106d8a0d21fc84d76953822fbaf3398', - 'llvm-libunwind': '814bd52c9247c5d04629658fbcb3ab8c', - } - }, - { - 'version': '3.7.0', - 'md5': 'b98b9495e5655a672d6cb83e1a180f8e', 'resources': { - 'compiler-rt': '383c10affd513026f08936b5525523f5', - 'openmp': 'f482c86fdead50ba246a1a2b0bbf206f', - 'polly': '32f93ffc9cc7e042df22089761558f8b', - 'libcxx': '46aa5175cbe1ad42d6e9c995968e56dd', - 'libcxxabi': '5aa769e2fca79fa5335cfae8f6258772', - 'clang': '8f9d27335e7331cf0a4711e952f21f01', - 'clang-tools-extra': 'd5a87dacb65d981a427a536f6964642e', - 'lldb': 'e5931740400d1dc3e7db4c7ba2ceff68', - 'llvm-libunwind': '9a75392eb7eb8ed5c0840007e212baf5', - } - }, + 'compiler-rt': 'http://llvm.org/svn/llvm-project/compiler-rt/trunk', + 'openmp': 'http://llvm.org/svn/llvm-project/openmp/trunk', + 'polly': 'http://llvm.org/svn/llvm-project/polly/trunk', + 'libcxx': 'http://llvm.org/svn/llvm-project/libcxx/trunk', + 'libcxxabi': 'http://llvm.org/svn/llvm-project/libcxxabi/trunk', + 'cfe': 'http://llvm.org/svn/llvm-project/cfe/trunk', + 'clang-tools-extra': 'http://llvm.org/svn/llvm-project/clang-tools-extra/trunk', + 'lldb': 'http://llvm.org/svn/llvm-project/lldb/trunk', + 'llvm-libunwind': 'http://llvm.org/svn/llvm-project/libunwind/trunk', + } + }, + { + 'version': '3.9.0', + 'md5': 'f2093e98060532449eb7d2fcfd0bc6c6', + 'resources': { + 'compiler-rt': 'b7ea34c9d744da16ffc0217b6990d095', + 'openmp': '5390164f2374e1444e82393541ecf6c7', + 'polly': '1cf328cbae25267749b68cfa6f113674', + 'libcxx': '0a11efefd864ce6f321194e441f7e569', + 'libcxxabi': 'd02642308e22e614af6b061b9b4fedfa', + 'cfe': '29e1d86bee422ab5345f5e9fb808d2dc', + 'clang-tools-extra': 'f4f663068c77fc742113211841e94d5e', + 'lldb': '968d053c3c3d7297983589164c6999e9', + 'llvm-libunwind': '3e5c87c723a456be599727a444b1c166', + } + }, + { + 'version': '3.8.1', + 'md5': '538467e6028bbc9259b1e6e015d25845', + 'resources': { + 'compiler-rt': 'f140db073d2453f854fbe01cc46f3110', + 'openmp': '078b8d4c51ad437a4f8b5989f5ec4156', + 'polly': '8a40e697a4ba1c8b640b85d074bd6e25', + 'libcxx': '1bc60150302ff76a0d79d6f9db22332e', + 'libcxxabi': '3c63b03ba2f30a01279ca63384a67773', + 'cfe': '4ff2f8844a786edb0220f490f7896080', + 'clang-tools-extra': '6e49f285d0b366cc3cab782d8c92d382', + 'lldb': '9e4787b71be8e432fffd31e13ac87623', + 'llvm-libunwind': 'd66e2387e1d37a8a0c8fe6a0063a3bab', + } + }, + { + 'version': '3.8.0', + 'md5': '07a7a74f3c6bd65de4702bf941b511a0', + 'resources': { + 'compiler-rt': 'd6fcbe14352ffb708e4d1ac2e48bb025', + 'openmp': '8fd7cc35d48051613cf1e750e9f22e40', + 'polly': '1b3b20f52d34a4024e21a4ea7112caa7', + 'libcxx': 'd6e0bdbbee39f7907ad74fd56d03b88a', + 'libcxxabi': 'bbe6b4d72c7c5978550d370af529bcf7', + 'cfe': 'cc99e7019bb74e6459e80863606250c5', + 'clang-tools-extra': 'c2344f50e0eea0b402f0092a80ddc036', + 'lldb': 'a5da35ed9cc8c8817ee854e3dbfba00e', + 'llvm-libunwind': '162ade468607f153cca12be90b5194fa', + } + }, + { + 'version': '3.7.1', + 'md5': 'bf8b3a2c79e61212c5409041dfdbd319', + 'resources': { + 'compiler-rt': '1c6975daf30bb3b0473b53c3a1a6ff01', + 'openmp': 'b4ad08cda4e5c22e42b66062b140438e', + 'polly': '3a2a7367002740881637f4d47bca4dc3', + 'libcxx': 'f9c43fa552a10e14ff53b94d04bea140', + 'libcxxabi': '52d925afac9f97e9dcac90745255c169', + 'cfe': '0acd026b5529164197563d135a8fd83e', + 'clang-tools-extra': '5d49ff745037f061a7c86aeb6a24c3d2', + 'lldb': 'a106d8a0d21fc84d76953822fbaf3398', + 'llvm-libunwind': '814bd52c9247c5d04629658fbcb3ab8c', + } + }, + { + 'version': '3.7.0', + 'md5': 'b98b9495e5655a672d6cb83e1a180f8e', + 'resources': { + 'compiler-rt': '383c10affd513026f08936b5525523f5', + 'openmp': 'f482c86fdead50ba246a1a2b0bbf206f', + 'polly': '32f93ffc9cc7e042df22089761558f8b', + 'libcxx': '46aa5175cbe1ad42d6e9c995968e56dd', + 'libcxxabi': '5aa769e2fca79fa5335cfae8f6258772', + 'cfe': '8f9d27335e7331cf0a4711e952f21f01', + 'clang-tools-extra': 'd5a87dacb65d981a427a536f6964642e', + 'lldb': 'e5931740400d1dc3e7db4c7ba2ceff68', + 'llvm-libunwind': '9a75392eb7eb8ed5c0840007e212baf5', + } + }, { 'version': '3.6.2', 'md5': '0c1ee3597d75280dee603bae9cbf5cc2', @@ -206,7 +239,7 @@ class Llvm(Package): 'openmp': '65dd5863b9b270960a96817e9152b123', 'libcxx': '22214c90697636ef960a49aef7c1823a', 'libcxxabi': '17518e361e4e228f193dd91e8ef54ba2', - 'clang': 'ff862793682f714bb7862325b9c06e20', + 'cfe': 'ff862793682f714bb7862325b9c06e20', 'clang-tools-extra': '3ebc1dc41659fcec3db1b47d81575e06', 'lldb': '51e5eb552f777b950bb0ff326e60d5f0', } @@ -219,7 +252,7 @@ class Llvm(Package): 'openmp': '121ddb10167d7fc38b1f7e4b029cf059', 'libcxx': '406f09b1dab529f3f7879f4d548329d2', 'libcxxabi': 'b22c707e8d474a99865ad3c521c3d464', - 'clang': '93f9532f8f7e6f1d8e5c1116907051cb', + 'cfe': '93f9532f8f7e6f1d8e5c1116907051cb', 'clang-tools-extra': 'f13f31ed3038acadc6fa63fef812a246', 'lldb': 'cc5ea8a414c62c33e760517f8929a204', } diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py index 69965bc423..c2daca80a5 100644 --- a/var/spack/repos/builtin/packages/lmod/package.py +++ b/var/spack/repos/builtin/packages/lmod/package.py @@ -27,14 +27,14 @@ from glob import glob class Lmod(Package): - """ - Lmod is a Lua based module system that easily handles the MODULEPATH + """Lmod is a Lua based module system that easily handles the MODULEPATH Hierarchical problem. Environment Modules provide a convenient way to dynamically change the users' environment through modulefiles. This includes easily adding or removing directories to the PATH environment variable. Modulefiles for Library packages provide environment variables that specify where the library and header files can be found. """ + homepage = 'https://www.tacc.utexas.edu/research-development/tacc-projects/lmod' url = 'https://github.com/TACC/Lmod/archive/6.4.1.tar.gz' diff --git a/var/spack/repos/builtin/packages/lndir/package.py b/var/spack/repos/builtin/packages/lndir/package.py new file mode 100644 index 0000000000..a7ce892502 --- /dev/null +++ b/var/spack/repos/builtin/packages/lndir/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 Lndir(Package): + """lndir - create a shadow directory of symbolic links to another + directory tree.""" + + homepage = "http://cgit.freedesktop.org/xorg/util/lndir" + url = "https://www.x.org/archive/individual/util/lndir-1.0.3.tar.gz" + + version('1.0.3', '7173b2e4832658d319c2980a7c834205') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch b/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch new file mode 100644 index 0000000000..d4d5e66528 --- /dev/null +++ b/var/spack/repos/builtin/packages/lrslib/Makefile.spack.patch @@ -0,0 +1,60 @@ +--- old/Makefile.spack ++++ new/Makefile.spack +@@ -0,0 +1,57 @@ ++# Set PREFIX to the install location for both building and installing ++# Set BOOST_PREFIX to the location where BOOST is installed ++# Set GMP_PREFIX to the location where GMP is installed ++ ++all: liblrsgmp.la \ ++ 2nash fourier lrs lrs1 lrsnash redund redund1 setnash setnash2 ++ ++liblrsgmp.la: lrslib-GMP.lo lrsgmp-GMP.lo ++ libtool --mode=link --tag=CC cc -g -O3 \ ++ -rpath $(PREFIX)/lib -o $@ $^ \ ++ -L$(GMP_PREFIX)/lib -lgmp ++ ++lrs1: lrs-LONG.lo lrslib-LONG.lo lrslong-LONG.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++redund1: redund-LONG.lo lrslib-LONG.lo lrslong-LONG.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++lrs: lrs-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo liblrsgmp.la ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++redund: redund-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo liblrsgmp.la ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++fourier: fourier-GMP.lo lrslib-GMP.lo lrsgmp-GMP.lo liblrsgmp.la ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++lrsnash: lrsnash-GMP.lo lrsnashlib-GMP.lo lrslib-GMP.lo lrsmp-GMP.lo \ ++ liblrsgmp.la ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++2nash: 2nash.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++setnash: setupnash.lo lrslib.lo lrsmp.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++setnash2: setupnash2.lo lrslib.lo lrsmp.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++ ++%.lo: %.c ++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -c $*.c ++%-GMP.lo: %.c ++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -DGMP -c $*.c ++%-LONG.lo: %.c ++ libtool --mode=compile --tag=CC cc -g -O3 -o $@ -DLRSLONG -c $*.c ++ ++install: ++ mkdir -p $(PREFIX)/bin ++ mkdir -p $(PREFIX)/include ++ mkdir -p $(PREFIX)/lib ++ libtool --mode=install cp 2nash $(PREFIX)/bin/2nash ++ libtool --mode=install cp fourier $(PREFIX)/bin/fourier ++ libtool --mode=install cp lrs $(PREFIX)/bin/lrs ++ libtool --mode=install cp lrs1 $(PREFIX)/bin/lrs1 ++ libtool --mode=install cp lrsnash $(PREFIX)/bin/lrsnash ++ libtool --mode=install cp redund $(PREFIX)/bin/redund ++ libtool --mode=install cp redund1 $(PREFIX)/bin/redund1 ++ libtool --mode=install cp setnash $(PREFIX)/bin/setnash ++ libtool --mode=install cp setnash2 $(PREFIX)/bin/setnash2 ++ libtool --mode=install cp lrsgmp.h $(PREFIX)/include/lrsgmp.h ++ libtool --mode=install cp lrslib.h $(PREFIX)/include/lrslib.h ++ libtool --mode=install cp liblrsgmp.la $(PREFIX)/lib/liblrsgmp.la ++ ++.PHONY: all install diff --git a/var/spack/repos/builtin/packages/lrslib/package.py b/var/spack/repos/builtin/packages/lrslib/package.py new file mode 100644 index 0000000000..3825867bb6 --- /dev/null +++ b/var/spack/repos/builtin/packages/lrslib/package.py @@ -0,0 +1,61 @@ +############################################################################## +# 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 Lrslib(Package): + """lrslib Ver 6.2 is a self-contained ANSI C implementation of the + reverse search algorithm for vertex enumeration/convex hull + problems and comes with a choice of three arithmetic packages""" + homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html" + url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-062.tar.gz" + + version('6.2', 'be5da7b3b90cc2be628dcade90c5d1b9') + version('6.1', '0b3687c8693cd7d1f234a3f65e147551') + version('6.0', 'd600a2e62969ad03f7ab2f85f1b3709c') + version('5.1', 'cca323eee8bf76f598a13d7bf67cc13d') + version('4.3', '86dd9a45d20a3a0069f77e61be5b46ad') + + # Note: lrslib can also be built with Boost, and probably without gmp + + # depends_on("boost") + depends_on("gmp") + depends_on("libtool", type="build") + + patch("Makefile.spack.patch") + + def url_for_version(self, version): + url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-0{0}.tar.gz" + return url.format(version.joined) + + def install(self, spec, prefix): + # The Makefile isn't portable; use our own instead + makeargs = ["-f", "Makefile.spack", + "PREFIX=%s" % prefix, + # "BOOST_PREFIX=%s" % spec["boost"].prefix, + "GMP_PREFIX=%s" % spec["gmp"].prefix] + make(*makeargs) + make("install", *makeargs) diff --git a/var/spack/repos/builtin/packages/lua-luafilesystem/package.py b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py index a61b9dd675..9e0e449813 100644 --- a/var/spack/repos/builtin/packages/lua-luafilesystem/package.py +++ b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py @@ -26,8 +26,7 @@ from spack import * class LuaLuafilesystem(Package): - """ - LuaFileSystem is a Lua library developed to complement the set of + """LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution. LuaFileSystem offers a portable way to access the underlying directory @@ -35,6 +34,7 @@ class LuaLuafilesystem(Package): LuaFileSystem is free software and uses the same license as Lua 5.1 """ + homepage = 'http://keplerproject.github.io/luafilesystem' url = 'https://github.com/keplerproject/luafilesystem/archive/v_1_6_3.tar.gz' diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py index ca0a481a83..4da2c99e04 100644 --- a/var/spack/repos/builtin/packages/lua/package.py +++ b/var/spack/repos/builtin/packages/lua/package.py @@ -62,16 +62,18 @@ class Lua(Package): else: target = 'linux' make('INSTALL_TOP=%s' % prefix, - 'MYLDFLAGS=-L%s -L%s ' % ( + 'MYLDFLAGS=-L%s -L%s' % ( spec['readline'].prefix.lib, spec['ncurses'].prefix.lib), 'MYLIBS=-lncurses', + 'CC=%s -std=gnu99' % spack_cc, target) make('INSTALL_TOP=%s' % prefix, - 'MYLDFLAGS=-L%s -L%s ' % ( + 'MYLDFLAGS=-L%s -L%s' % ( spec['readline'].prefix.lib, spec['ncurses'].prefix.lib), 'MYLIBS=-lncurses', + 'CC=%s -std=gnu99' % spack_cc, 'install') with working_dir(os.path.join('luarocks', 'luarocks')): diff --git a/var/spack/repos/builtin/packages/luit/package.py b/var/spack/repos/builtin/packages/luit/package.py new file mode 100644 index 0000000000..54fd740bdc --- /dev/null +++ b/var/spack/repos/builtin/packages/luit/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 Luit(Package): + """Luit is a filter that can be run between an arbitrary application and + a UTF-8 terminal emulator such as xterm. It will convert application + output from the locale's encoding into UTF-8, and convert terminal + input from UTF-8 into the locale's encoding.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/luit" + url = "https://www.x.org/archive/individual/app/luit-1.1.1.tar.gz" + + version('1.1.1', '04128a52f68c05129f709196819ddad3') + + depends_on('libfontenc') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix), + # see http://www.linuxquestions.org/questions/linux-from-scratch-13/can't-compile-luit-xorg-applications-4175476308/ # noqa + 'CFLAGS=-U_XOPEN_SOURCE -D_XOPEN_SOURCE=600') + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/lulesh/package.py b/var/spack/repos/builtin/packages/lulesh/package.py new file mode 100644 index 0000000000..e880d4fa14 --- /dev/null +++ b/var/spack/repos/builtin/packages/lulesh/package.py @@ -0,0 +1,55 @@ +############################################################################## +# 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 Lulesh(Package): + """Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH) + """ + + homepage = "https://codesign.llnl.gov/lulesh.php" + url = "https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz" + + version("2.0.3", "336644a8750f71c7c6b9d2960976e7aa") + + patch("remove_defaults.patch") + + variant('mpip', default=False) + + depends_on("mpi", type="build") + depends_on("mpip", when="+mpip") + + def install(self, spec, prefix): + if '+mpip' in spec: + os.environ["LDFLAGS"] = " -lmpiP -ldwarf -lelf" + + if os.uname()[4] == "x86_64": + os.environ["LDFLAGS"] += " -lunwind" + + os.environ["CXX"] = spec['mpi'].mpicxx + " -DUSE_MPI=1" + os.environ["PREFIX"] = prefix + make() + make("install") diff --git a/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch b/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch new file mode 100644 index 0000000000..36cce25ba1 --- /dev/null +++ b/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch @@ -0,0 +1,60 @@ +--- a/Makefile ++++ b/Makefile +@@ -1,17 +1,9 @@ + #default build suggestion of MPI + OPENMP with gcc on Livermore machines you might have to change the compiler name + +-SHELL = /bin/sh + .SUFFIXES: .cc .o + + LULESH_EXEC = lulesh2.0 + +-MPI_INC = /opt/local/include/openmpi +-MPI_LIB = /opt/local/lib +- +-SERCXX = g++ -DUSE_MPI=0 +-MPICXX = mpig++ -DUSE_MPI=1 +-CXX = $(MPICXX) +- + SOURCES2.0 = \ + lulesh.cc \ + lulesh-comm.cc \ +@@ -20,28 +12,6 @@ + lulesh-init.cc + OBJECTS2.0 = $(SOURCES2.0:.cc=.o) + +-#Default build suggestions with OpenMP for g++ +-CXXFLAGS = -g -O3 -fopenmp -I. -Wall +-LDFLAGS = -g -O3 -fopenmp +- +-#Below are reasonable default flags for a serial build +-#CXXFLAGS = -g -O3 -I. -Wall +-#LDFLAGS = -g -O3 +- +-#common places you might find silo on the Livermore machines. +-#SILO_INCDIR = /opt/local/include +-#SILO_LIBDIR = /opt/local/lib +-#SILO_INCDIR = ./silo/4.9/1.8.10.1/include +-#SILO_LIBDIR = ./silo/4.9/1.8.10.1/lib +- +-#If you do not have silo and visit you can get them at: +-#silo: https://wci.llnl.gov/codes/silo/downloads.html +-#visit: https://wci.llnl.gov/codes/visit/download.html +- +-#below is and example of how to make with silo, hdf5 to get vizulization by default all this is turned off. All paths are Livermore specific. +-#CXXFLAGS = -g -DVIZ_MESH -I${SILO_INCDIR} -Wall -Wno-pragmas +-#LDFLAGS = -g -L${SILO_LIBDIR} -Wl,-rpath -Wl,${SILO_LIBDIR} -lsiloh5 -lhdf5 +- + .cc.o: lulesh.h + @echo "Building $<" + $(CXX) -c $(CXXFLAGS) -o $@ $< +@@ -56,6 +26,7 @@ + /bin/rm -f *.o *~ $(OBJECTS) $(LULESH_EXEC) + /bin/rm -rf *.dSYM + +-tar: clean +- cd .. ; tar cvf lulesh-2.0.tar LULESH-2.0 ; mv lulesh-2.0.tar LULESH-2.0 +- ++install: lulesh2.0 ++ @echo "Installing" ++ mkdir -p $(PREFIX)/bin ++ install --mode=755 lulesh2.0 $(PREFIX)/bin/ diff --git a/var/spack/repos/builtin/packages/lz4/package.py b/var/spack/repos/builtin/packages/lz4/package.py new file mode 100644 index 0000000000..de7e566e70 --- /dev/null +++ b/var/spack/repos/builtin/packages/lz4/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 Lz4(Package): + """LZ4 is lossless compression algorithm, providing compression speed + at 400 MB/s per core, scalable with multi-cores CPU. It also features + an extremely fast decoder, with speed in multiple GB/s per core, + typically reaching RAM speed limits on multi-core systems.""" + + homepage = "http://cyan4973.github.io/lz4/" + url = "https://github.com/Cyan4973/lz4/archive/r131.tar.gz" + + version('131', '42b09fab42331da9d3fb33bd5c560de9') + + # depends_on('valgrind', type='test') + + def install(self, spec, prefix): + make() + if self.run_tests: + make('test') # requires valgrind to be installed + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/lzma/package.py b/var/spack/repos/builtin/packages/lzma/package.py new file mode 100644 index 0000000000..3eb97a2d9f --- /dev/null +++ b/var/spack/repos/builtin/packages/lzma/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 Lzma(AutotoolsPackage): + """LZMA Utils are legacy data compression software with high compression + ratio. LZMA Utils are no longer developed, although critical bugs may be + fixed as long as fixing them doesn't require huge changes to the code. + + Users of LZMA Utils should move to XZ Utils. XZ Utils support the legacy + .lzma format used by LZMA Utils, and can also emulate the command line + tools of LZMA Utils. This should make transition from LZMA Utils to XZ + Utils relatively easy.""" + + homepage = "http://tukaani.org/lzma/" + url = "http://tukaani.org/lzma/lzma-4.32.7.tar.gz" + + version('4.32.7', '2a748b77a2f8c3cbc322dbd0b4c9d06a') diff --git a/var/spack/repos/builtin/packages/lzo/package.py b/var/spack/repos/builtin/packages/lzo/package.py index 0961bbb58c..e9c98842f4 100644 --- a/var/spack/repos/builtin/packages/lzo/package.py +++ b/var/spack/repos/builtin/packages/lzo/package.py @@ -25,11 +25,11 @@ from spack import * -class Lzo(Package): +class Lzo(AutotoolsPackage): """Real-time data compression library""" homepage = 'https://www.oberhumer.com/opensource/lzo/' - url = 'https://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz' + url = 'http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz' version('2.09', 'c7ffc9a103afe2d1bba0b015e7aa887f') version('2.08', 'fcec64c26a0f4f4901468f360029678f') @@ -37,13 +37,8 @@ class Lzo(Package): version('2.06', '95380bd4081f85ef08c5209f4107e9f8') version('2.05', 'c67cda5fa191bab761c7cb06fe091e36') - def install(self, spec, prefix): - configure_args = [ - '--prefix={0}'.format(prefix), + def configure_args(self): + return [ '--disable-dependency-tracking', '--enable-shared' ] - configure(*configure_args) - make() - make('check') - make('install') diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index b3bb5e61ce..f7150727fe 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import sys class M4(Package): @@ -47,6 +48,11 @@ class M4(Package): else: configure_args.append('--without-libsigsegv-prefix') + # http://lists.gnu.org/archive/html/bug-m4/2016-09/msg00002.html + if (sys.platform == "darwin") and (spec.satisfies('%gcc')) and \ + (spec.architecture.platform_os.version == "10.12"): + configure_args.append('ac_cv_type_struct_sched_param=yes') + configure("--prefix=%s" % prefix, *configure_args) make() make("install") diff --git a/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch b/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch new file mode 100644 index 0000000000..e2e2a5d1ba --- /dev/null +++ b/var/spack/repos/builtin/packages/magics/no_hardcoded_python.patch @@ -0,0 +1,5 @@ +--- a/tools/xml2mv.py 2016-06-27 17:49:27.000000000 +0200 ++++ a/tools/xml2mv.py 2016-09-13 16:25:17.246960456 +0200 +@@ -1 +1 @@ +-#!/usr/bin/python ++#!/usr/bin/env python diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py new file mode 100644 index 0000000000..cd793ae051 --- /dev/null +++ b/var/spack/repos/builtin/packages/magics/package.py @@ -0,0 +1,115 @@ +############################################################################## +# 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 Magics(Package): + """Magics is the latest generation of the ECMWF's Meteorological plotting + software MAGICS. Although completely redesigned in C++, it is intended + to be as backwards-compatible as possible with the Fortran interface.""" + + homepage = "https://software.ecmwf.int/wiki/display/MAGP/Magics" + url = "https://software.ecmwf.int/wiki/download/attachments/3473464/Magics-2.29.0-Source.tar.gz" + + # Maintainers of Magics do not keep tarballs of minor releases. Once the + # next minor released is published the previous one becomes unavailable. + # That is why the preferred version is the latest stable one. + version('2.29.4', '91c561f413316fb665b3bb563f3878d1') + version('2.29.0', 'db20a4d3c51a2da5657c31ae3de59709', preferred=True) + + # The patch changes the hardcoded path to python in shebang to enable the + # usage of the first python installation that appears in $PATH + patch('no_hardcoded_python.patch') + + # The patch reorders includes and adds namespaces where necessary to + # resolve ambiguity of invocations of isnan and isinf functions. The + # patch is not needed since the version 2.29.1 + patch('resolve_isnan_ambiguity.patch', when='@2.29.0') + + variant('bufr', default=False, description='Enable BUFR support') + variant('netcdf', default=False, description='Enable NetCDF support') + variant('cairo', default=True, description='Enable cairo support[png/jpeg]') + variant('metview', default=False, description='Enable metview support') + variant('qt', default=False, description='Enable metview support with qt') + + depends_on('cmake', type='build') + depends_on('pkg-config', type='build') + + # Currently python is only necessary to run + # building preprocessing scripts. + depends_on('python', type='build') + depends_on('grib-api') + depends_on('proj') + depends_on('boost') + depends_on('expat') + depends_on('pango', when='+cairo') + depends_on('netcdf-cxx', when='+netcdf') + depends_on('libemos', when='+bufr') + depends_on('qt', when='+metview+qt') + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + options.append('-DENABLE_ODB=OFF') + options.append('-DENABLE_PYTHON=OFF') + options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix) + options.append('-DPROJ4_PATH=%s' % spec['proj'].prefix) + options.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix) + options.append('-DENABLE_TESTS=OFF') + + if '+bufr' in spec: + options.append('-DENABLE_BUFR=ON') + options.append('-DLIBEMOS_PATH=%s' % spec['libemos'].prefix) + else: + options.append('-DENABLE_BUFR=OFF') + + if '+netcdf' in spec: + options.append('-DENABLE_NETCDF=ON') + options.append('-DNETCDF_PATH=%s' % spec['netcdf-cxx'].prefix) + else: + options.append('-DENABLE_NETCDF=OFF') + + if '+cairo' in spec: + options.append('-DENABLE_CAIRO=ON') + else: + options.append('-DENABLE_CAIRO=OFF') + + if '+metview' in spec: + if '+qt' in spec: + options.append('-DENABLE_METVIEW=ON') + if spec['qt'].version.up_to(1) == '5': + options.append('-DENABLE_QT5=ON') + else: + options.append('-DENABLE_METVIEW_NO_QT=ON') + else: + options.append('-DENABLE_METVIEW=OFF') + + if (self.compiler.f77 is None) or (self.compiler.fc is None): + options.append('-DENABLE_FORTRAN=OFF') + + with working_dir('spack-build', create=True): + cmake('..', *options) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch b/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch new file mode 100644 index 0000000000..54b96ae88e --- /dev/null +++ b/var/spack/repos/builtin/packages/magics/resolve_isnan_ambiguity.patch @@ -0,0 +1,73 @@ +--- a/src/common/Polyline.cc 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/common/Polyline.cc 2016-09-14 13:31:35.784617803 +0200 +@@ -31,2 +30,0 @@ +-#include "TeCoord2D.h" +-#include "TeGeometryAlgorithms.h" +--- a/src/decoders/GribRegularInterpretor.cc 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/decoders/GribRegularInterpretor.cc 2016-09-14 13:43:41.673614590 +0200 +@@ -2083,2 +2083,2 @@ +- if (isnan(val1)) { +- if (isnan(val2)) { ++ if (std::isnan(val1)) { ++ if (std::isnan(val2)) { +@@ -2090 +2090 @@ +- if (isnan(val2)) { ++ if (std::isnan(val2)) { +@@ -2101 +2101 @@ +- if (isnan(val) || isinf(val) || isinf(-val)) { ++ if (std::isnan(val) || std::isinf(val) || std::isinf(-val)) { +@@ -2105 +2105 @@ +- if (isnan(val)) ++ if (std::isnan(val)) +--- a/src/decoders/GribSatelliteInterpretor.cc 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/decoders/GribSatelliteInterpretor.cc 2016-09-14 13:48:55.243699910 +0200 +@@ -33,5 +32,0 @@ +-#include "TeProjection.h" +-#include "TeDataTypes.h" +-#include "TeRasterParams.h" +-#include "TeDecoderMemory.h" +-#include "TeRasterRemap.h" +--- a/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/decoders/NetcdfGeoMatrixInterpretor.cc 2016-09-14 13:52:37.481201085 +0200 +@@ -93 +93 @@ +- if ( !isnan(*d) ) { ++ if ( !std::isnan(*d) ) { +--- a/src/decoders/NetcdfOrcaInterpretor.cc 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/decoders/NetcdfOrcaInterpretor.cc 2016-09-14 13:51:16.248650570 +0200 +@@ -210,2 +210,2 @@ +- if ( isnan(val1) ) { +- if ( isnan(val2) ) { ++ if ( std::isnan(val1) ) { ++ if ( std::isnan(val2) ) { +@@ -218 +218 @@ +- if ( isnan(val2) ) { ++ if ( std::isnan(val2) ) { +@@ -226 +226 @@ +- if (isnan(val) || isinf(val) || isinf(-val) ) { ++ if (std::isnan(val) || std::isinf(val) || std::isinf(-val) ) { +@@ -230 +230 @@ +- if (isnan(val) ) val = missing; ++ if (std::isnan(val) ) val = missing; +@@ -296 +296 @@ +- if (isnan(value) ) ++ if (std::isnan(value) ) +--- a/src/terralib/kernel/TeCentroid.cpp 2016-04-28 14:38:09.000000000 +0200 ++++ b/src/terralib/kernel/TeCentroid.cpp 2016-09-14 14:17:31.675996554 +0200 +@@ -23,0 +24,2 @@ ++#include "TeGeometryAlgorithms.h" ++ +@@ -30 +31,0 @@ +-#include "TeGeometryAlgorithms.h" +--- a/src/terralib/kernel/TeDatabase.h 2014-11-07 17:39:24.000000000 +0100 ++++ b/src/terralib/kernel/TeDatabase.h 2016-09-14 14:20:01.041100590 +0200 +@@ -33,0 +34 @@ ++#include "TeGeometry.h" +@@ -38 +38,0 @@ +-#include "TeGeometry.h" +--- a/src/terralib/kernel/TeOverlayUtils.h 2014-11-07 17:39:24.000000000 +0100 ++++ b/src/terralib/kernel/TeOverlayUtils.h 2016-09-14 14:21:51.649920405 +0200 +@@ -37,0 +38,2 @@ ++#include "TeGeometry.h"
++
+@@ -44 +45,0 @@ +-#include "TeGeometry.h"
diff --git a/var/spack/repos/builtin/packages/makedepend/package.py b/var/spack/repos/builtin/packages/makedepend/package.py new file mode 100644 index 0000000000..5675793abc --- /dev/null +++ b/var/spack/repos/builtin/packages/makedepend/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 Makedepend(Package): + """makedepend - create dependencies in makefiles.""" + + homepage = "http://cgit.freedesktop.org/xorg/util/makedepend" + url = "https://www.x.org/archive/individual/util/makedepend-1.0.5.tar.gz" + + version('1.0.5', 'efb2d7c7e22840947863efaedc175747') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/matio/package.py b/var/spack/repos/builtin/packages/matio/package.py index c141f7e8af..a33b23a4e9 100644 --- a/var/spack/repos/builtin/packages/matio/package.py +++ b/var/spack/repos/builtin/packages/matio/package.py @@ -25,15 +25,26 @@ from spack import * -class Matio(Package): +class Matio(AutotoolsPackage): """matio is an C library for reading and writing Matlab MAT files""" homepage = "http://sourceforge.net/projects/matio/" - url = "http://downloads.sourceforge.net/project/matio/matio/1.5.2/matio-1.5.2.tar.gz" + url = "http://downloads.sourceforge.net/project/matio/matio/1.5.9/matio-1.5.9.tar.gz" + version('1.5.9', 'aab5b4219a3c0262afe7eeb7bdd2f463') version('1.5.2', '85b007b99916c63791f28398f6a4c6f1') - def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + variant("zlib", default=True, + description='support for compressed mat files') + variant("hdf5", default=True, + description='support for version 7.3 mat files via hdf5') - make() - make("install") + depends_on("zlib", when="+zlib") + depends_on("hdf5", when="+hdf5") + + def configure_args(self): + args = [] + if '+zlib' in self.spec: + args.append("--with-zlib=%s" % self.spec['zlib'].prefix) + if '+hdf5' in self.spec: + args.append("--with-hdf5=%s" % self.spec['hdf5'].prefix) + return args diff --git a/var/spack/repos/builtin/packages/maven/package.py b/var/spack/repos/builtin/packages/maven/package.py new file mode 100644 index 0000000000..c4e0a1d0a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/maven/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 * +from distutils.dir_util import copy_tree + + +class Maven(Package): + """Apache Maven is a software project management and comprehension tool.""" + + homepage = "https://maven.apache.org/index.html" + url = "http://www.gtlib.gatech.edu/pub/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz" + + version('3.3.9', '516923b3955b6035ba6b0a5b031fbd8b') + + depends_on('jdk') + + def install(self, spec, prefix): + # install pre-built distribution + copy_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py index e1a42c0d9a..493ea59f0b 100644 --- a/var/spack/repos/builtin/packages/mbedtls/package.py +++ b/var/spack/repos/builtin/packages/mbedtls/package.py @@ -35,6 +35,7 @@ class Mbedtls(Package): homepage = "https://tls.mbed.org" url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz" + version('2.3.0', '98158e1160a0825a3e8db38881a177a0') version('2.2.1', '73a38f96898d6d03e32f55dd9f9a67be') version('2.2.0', 'eaf4586c1ef93ae872e606b6c1203942') version('2.1.4', '40cdf67b6c6d92c9cbcfd552d39ea3ae') diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py new file mode 100644 index 0000000000..ea77953f15 --- /dev/null +++ b/var/spack/repos/builtin/packages/mercurial/package.py @@ -0,0 +1,69 @@ +############################################################################## +# 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 llnl.util.tty as tty +import os + + +class Mercurial(Package): + """Mercurial is a free, distributed source control management tool.""" + + homepage = "https://www.mercurial-scm.org" + url = "https://www.mercurial-scm.org/release/mercurial-3.9.tar.gz" + + version('3.9.1', '3759dd10edb8c1a6dfb8ff0ce82658ce') + version('3.9', 'e2b355da744e94747daae3a5339d28a0') + version('3.8.4', 'cec2c3db688cb87142809089c6ae13e9') + version('3.8.3', '97aced7018614eeccc9621a3dea35fda') + version('3.8.2', 'c38daa0cbe264fc621dc3bb05933b0b3') + version('3.8.1', '172a8c588adca12308c2aca16608d7f4') + + extends('python') + depends_on('python@2.6:2.8') + depends_on('py-docutils', type='build') + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) + + # Configuration of HTTPS certificate authorities + # https://www.mercurial-scm.org/wiki/CACertificates + hgrc_filename = join_path(prefix.etc, 'mercurial', 'hgrc') + mkdirp(os.path.dirname(hgrc_filename)) + + with open(hgrc_filename, 'w') as hgrc: + if os.path.exists('/etc/ssl/certs/ca-certificates.crt'): + # Debian/Ubuntu/Gentoo/Arch Linux + hgrc.write('[web]\ncacerts = /etc/ssl/certs/ca-certificates.crt') # noqa + elif os.path.exists('/etc/pki/tls/certs/ca-bundle.crt'): + # Fedora/RHEL/CentOS + hgrc.write('[web]\ncacerts = /etc/pki/tls/certs/ca-bundle.crt') + elif os.path.exists('/etc/ssl/ca-bundle.pem'): + # openSUSE/SLE + hgrc.write('[web]\ncacerts = /etc/ssl/ca-bundle.pem') + else: + tty.warn('CA certificate not found. You may not be able to ' + 'connect to an HTTPS server. If your CA certificate ' + 'is in a non-standard location, you should add it to ' + '{0}'.format(hgrc_filename)) diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index 299b9a9267..f19bb466fd 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -30,28 +30,38 @@ class Mesa(Package): specification - a system for rendering interactive 3D graphics.""" homepage = "http://www.mesa3d.org" - url = "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/8.0.5/MesaLib-8.0.5.tar.gz" + url = "ftp://ftp.freedesktop.org/pub/mesa/12.0.3/mesa-12.0.3.tar.gz" - # version('10.4.4', '8d863a3c209bf5116b2babfccccc68ce') - version('8.0.5', 'cda5d101f43b8784fa60bdeaca4056f2') + version('12.0.3', '60c5f9897ddc38b46f8144c7366e84ad') - # mesa 7.x, 8.x, 9.x - depends_on("libdrm@2.4.33") - depends_on("llvm@3.0") - depends_on("libxml2+python") + # General dependencies + depends_on('python@2.6.4:') + depends_on('py-mako@0.3.4:') + depends_on('flex@2.5.35:', type='build') + depends_on('bison@2.4.1:', type='build') - # patch("llvm-fixes.patch") # using newer llvm + # For DRI and hardware acceleration + depends_on('libpthread-stubs') + depends_on('libdrm') + depends_on('openssl') + depends_on('libxcb@1.9.3:') + depends_on('libxshmfence@1.1:') + depends_on('libx11') + depends_on('libxext') + depends_on('libxdamage') + depends_on('libxfixes') - # mesa 10.x - # depends_on("py-mako") - # depends_on("flex", type='build') - # depends_on("bison", type='build') - # depends_on("dri2proto") - # depends_on("libxcb") - # depends_on("libxshmfence") + depends_on('glproto@1.4.14:', type='build') + depends_on('dri2proto@2.6:', type='build') + depends_on('dri3proto@1.0:', type='build') + depends_on('presentproto@1.0:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + # TODO: Add package for systemd, provides libudev + # Using the system package manager to install systemd didn't work for me def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py index 9f8ed5c9e8..ca48a47817 100644 --- a/var/spack/repos/builtin/packages/metis/package.py +++ b/var/spack/repos/builtin/packages/metis/package.py @@ -43,16 +43,12 @@ class Metis(Package): version('5.0.2', 'acb521a4e8c2e6dd559a7f9abd0468c5') version('4.0.3', 'd3848b454532ef18dc83e4fb160d1e10') - variant('shared', default=True, - description='Enables the build of shared libraries') - variant('debug', default=False, - description='Builds the library in debug mode') - variant('gdb', default=False, description='Enables gdb support') + variant('shared', default=True, description='Enables the build of shared libraries.') + variant('debug', default=False, description='Builds the library in debug mode.') + variant('gdb', default=False, description='Enables gdb support.') - variant('idx64', default=False, - description='Use int64_t as default index type') - variant('real64', default=False, - description='Use double precision floating point types') + variant('idx64', default=False, description='Sets the bit width of METIS\'s index type to 64.') + variant('real64', default=False, description='Sets the bit width of METIS\'s real type to 64.') depends_on('cmake@2.8:', when='@5:', type='build') @@ -63,12 +59,37 @@ class Metis(Package): return '%s/%smetis-%s.tar.gz' % (Metis.base_url, verdir, version) @when('@:4') + def patch(self): + pass + + @when('@5:') + def patch(self): + source_path = self.stage.source_path + metis_header = FileFilter(join_path(source_path, 'include', 'metis.h')) + + metis_header.filter( + r'(\b)(IDXTYPEWIDTH )(\d+)(\b)', + r'\1\2{0}\4'.format('64' if '+idx64' in self.spec else '32'), + ) + metis_header.filter( + r'(\b)(REALTYPEWIDTH )(\d+)(\b)', + r'\1\2{0}\4'.format('64' if '+real64' in self.spec else '32'), + ) + + # Make clang 7.3 happy. + # Prevents "ld: section __DATA/__thread_bss extends beyond end of file" + # See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059 + # and https://github.com/Homebrew/homebrew-science/blob/master/metis.rb + if self.spec.satisfies('%clang@7.3.0'): + filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24', + join_path(source_path, 'GKlib', 'error.c')) + + @when('@:4') def install(self, spec, prefix): # Process library spec and options - unsupp_vars = [v for v in ('+gdb', '+idx64', '+real64') if v in spec] - if unsupp_vars: - msg = 'Given variants %s are unsupported by METIS 4!' % unsupp_vars - raise InstallError(msg) + if any('+{0}'.format(v) in spec for v in ['gdb', 'idx64', 'real64']): + raise InstallError('METIS@:4 does not support the following ' + 'variants: gdb, idx64, real64.') options = ['COPTIONS=-fPIC'] if '+debug' in spec: @@ -118,49 +139,48 @@ class Metis(Package): join_path('Programs', 'io.o'), join_path('Test', 'mtest.c'), '-o', '%s/mtest' % prefix.bin, '-lmetis', '-lm') - test_bin = lambda testname: join_path(prefix.bin, testname) - test_graph = lambda graphname: join_path(prefix.share, graphname) - - graph = test_graph('4elt.graph') - os.system('%s %s' % (test_bin('mtest'), graph)) - os.system('%s %s 40' % (test_bin('kmetis'), graph)) - os.system('%s %s' % (test_bin('onmetis'), graph)) - graph = test_graph('test.mgraph') - os.system('%s %s 2' % (test_bin('pmetis'), graph)) - os.system('%s %s 2' % (test_bin('kmetis'), graph)) - os.system('%s %s 5' % (test_bin('kmetis'), graph)) - graph = test_graph('metis.mesh') - os.system('%s %s 10' % (test_bin('partnmesh'), graph)) - os.system('%s %s 10' % (test_bin('partdmesh'), graph)) - os.system('%s %s' % (test_bin('mesh2dual'), graph)) - - # FIXME: The following code should replace the testing code in the - # block above since it causes installs to fail when one or more of the - # Metis tests fail, but it currently doesn't work because the 'mtest', - # 'onmetis', and 'partnmesh' tests return error codes that trigger - # false positives for failure. - """ - Executable(test_bin('mtest'))(test_graph('4elt.graph')) - Executable(test_bin('kmetis'))(test_graph('4elt.graph'), '40') - Executable(test_bin('onmetis'))(test_graph('4elt.graph')) - - Executable(test_bin('pmetis'))(test_graph('test.mgraph'), '2') - Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '2') - Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '5') - - Executable(test_bin('partnmesh'))(test_graph('metis.mesh'), '10') - Executable(test_bin('partdmesh'))(test_graph('metis.mesh'), '10') - Executable(test_bin('mesh2dual'))(test_graph('metis.mesh')) - """ + if self.run_tests: + test_bin = lambda testname: join_path(prefix.bin, testname) + test_graph = lambda graphname: join_path(prefix.share, graphname) + + graph = test_graph('4elt.graph') + os.system('%s %s' % (test_bin('mtest'), graph)) + os.system('%s %s 40' % (test_bin('kmetis'), graph)) + os.system('%s %s' % (test_bin('onmetis'), graph)) + graph = test_graph('test.mgraph') + os.system('%s %s 2' % (test_bin('pmetis'), graph)) + os.system('%s %s 2' % (test_bin('kmetis'), graph)) + os.system('%s %s 5' % (test_bin('kmetis'), graph)) + graph = test_graph('metis.mesh') + os.system('%s %s 10' % (test_bin('partnmesh'), graph)) + os.system('%s %s 10' % (test_bin('partdmesh'), graph)) + os.system('%s %s' % (test_bin('mesh2dual'), graph)) + + # FIXME: The following code should replace the testing code in the + # block above since it causes installs to fail when one or more of + # the Metis tests fail, but it currently doesn't work because the + # 'mtest', 'onmetis', and 'partnmesh' tests return error codes that + # trigger false positives for failure. + """ + Executable(test_bin('mtest'))(test_graph('4elt.graph')) + Executable(test_bin('kmetis'))(test_graph('4elt.graph'), '40') + Executable(test_bin('onmetis'))(test_graph('4elt.graph')) + + Executable(test_bin('pmetis'))(test_graph('test.mgraph'), '2') + Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '2') + Executable(test_bin('kmetis'))(test_graph('test.mgraph'), '5') + + Executable(test_bin('partnmesh'))(test_graph('metis.mesh'), '10') + Executable(test_bin('partdmesh'))(test_graph('metis.mesh'), '10') + Executable(test_bin('mesh2dual'))(test_graph('metis.mesh')) + """ @when('@5:') def install(self, spec, prefix): - options = [] - options.extend(std_cmake_args) - - build_directory = join_path(self.stage.path, 'spack-build') source_directory = self.stage.source_path + build_directory = join_path(source_directory, 'build') + options = std_cmake_args[:] options.append('-DGKLIB_PATH:PATH=%s/GKlib' % source_directory) options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix) @@ -172,26 +192,24 @@ class Metis(Package): if '+gdb' in spec: options.append('-DGDB:BOOL=ON') - metis_header = join_path(source_directory, 'include', 'metis.h') - if '+idx64' in spec: - filter_file('IDXTYPEWIDTH 32', 'IDXTYPEWIDTH 64', metis_header) - if '+real64' in spec: - filter_file('REALTYPEWIDTH 32', 'REALTYPEWIDTH 64', metis_header) - - # Make clang 7.3 happy. - # Prevents "ld: section __DATA/__thread_bss extends beyond end of file" - # See upstream LLVM issue https://llvm.org/bugs/show_bug.cgi?id=27059 - # and https://github.com/Homebrew/homebrew-science/blob/master/metis.rb - if spec.satisfies('%clang@7.3.0'): - filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24', - join_path(source_directory, 'GKlib', 'error.c')) - with working_dir(build_directory, create=True): cmake(source_directory, *options) make() make('install') - # now run some tests: + # install GKlib headers, which will be needed for ParMETIS + GKlib_dist = join_path(prefix.include, 'GKlib') + mkdirp(GKlib_dist) + hfiles = glob.glob(join_path(source_directory, 'GKlib', '*.h')) + for hfile in hfiles: + install(hfile, GKlib_dist) + + if self.run_tests: + # FIXME: On some systems, the installed binaries for METIS cannot + # be executed without first being read. + ls = which('ls') + ls('-a', '-l', prefix.bin) + for f in ['4elt', 'copter2', 'mdual']: graph = join_path(source_directory, 'graphs', '%s.graph' % f) Executable(join_path(prefix.bin, 'graphchk'))(graph) @@ -202,10 +220,3 @@ class Metis(Package): Executable(join_path(prefix.bin, 'gpmetis'))(graph, '2') graph = join_path(source_directory, 'graphs', 'metis.mesh') Executable(join_path(prefix.bin, 'mpmetis'))(graph, '2') - - # install GKlib headers, which will be needed for ParMETIS - GKlib_dist = join_path(prefix.include, 'GKlib') - mkdirp(GKlib_dist) - hfiles = glob.glob(join_path(source_directory, 'GKlib', '*.h')) - for hfile in hfiles: - install(hfile, GKlib_dist) diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index fd91f705eb..9aa4ab8cf0 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -23,8 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * -import glob -import string class Mfem(Package): @@ -35,11 +33,11 @@ class Mfem(Package): version('3.2', '2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340', - url='http://goo.gl/Y9T75B', expand=False, preferred=True) + url='http://goo.gl/Y9T75B', preferred=True, extension='.tar.gz') version('3.1', '841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57', - url='http://goo.gl/xrScXn', expand=False) + url='http://goo.gl/xrScXn', extension='.tar.gz') # version('3.1', git='https://github.com/mfem/mfem.git', # commit='dbae60fe32e071989b52efaaf59d7d0eb2a3b574') @@ -48,8 +46,11 @@ class Mfem(Package): variant('suite-sparse', default=False, description='Activate support for SuiteSparse') variant('mpi', default=False, description='Activate support for MPI') + variant('superlu-dist', default=False, + description='Activate support for SuperLU_Dist') variant('lapack', default=False, description='Activate support for LAPACK') variant('debug', default=False, description='Build debug version') + variant('netcdf', default=False, description='Activate NetCDF support') depends_on('blas', when='+lapack') depends_on('lapack', when='+lapack') @@ -68,6 +69,12 @@ class Mfem(Package): depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:') depends_on('cmake', when='^metis@5:', type='build') + depends_on('superlu-dist', when='@3.2: +superlu-dist') + + depends_on('netcdf', when='@3.2: +netcdf') + depends_on('zlib', when='@3.2: +netcdf') + depends_on('hdf5', when='@3.2: +netcdf') + def check_variants(self, spec): if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec): raise InstallError('mfem+mpi must be built with +hypre ' + @@ -81,6 +88,12 @@ class Mfem(Package): raise InstallError('To work around CMake bug with clang, must ' + 'build mfem with mfem[+variants] %clang ' + '^cmake %gcc to force CMake to build with gcc') + if '@:3.1' in spec and '+superlu-dist' in spec: + raise InstallError('MFEM does not support SuperLU_DIST for ' + + 'versions 3.1 and earlier') + if '@:3.1' in spec and '+netcdf' in spec: + raise InstallError('MFEM does not support NetCDF for versions' + + '3.1 and earlier') return def install(self, spec, prefix): @@ -89,8 +102,7 @@ class Mfem(Package): options = ['PREFIX=%s' % prefix] if '+lapack' in spec: - lapack_lib = '-L{0} -llapack -L{1} -lblas'.format( - spec['lapack'].prefix.lib, spec['blas'].prefix.lib) + lapack_lib = (spec['lapack'].lapack_libs + spec['blas'].blas_libs).ld_flags # NOQA: ignore=E501 options.extend([ 'MFEM_USE_LAPACK=YES', 'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include, @@ -103,7 +115,14 @@ class Mfem(Package): 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib + ' -lHYPRE']) - if '+metis' in spec: + if 'parmetis' in spec: + metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib + metis_str = 'MFEM_USE_METIS_5=YES' + options.extend([metis_str, + 'METIS_DIR=%s' % spec['parmetis'].prefix, + 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include, + 'METIS_LIB=%s' % metis_lib]) + elif 'metis' in spec: metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib if spec['metis'].satisfies('@5:'): metis_str = 'MFEM_USE_METIS_5=YES' @@ -115,14 +134,27 @@ class Mfem(Package): 'METIS_OPT=-I%s' % spec['metis'].prefix.include, 'METIS_LIB=%s' % metis_lib]) - if '+mpi' in spec: + if 'mpi' in spec: options.extend(['MFEM_USE_MPI=YES']) + if '+superlu-dist' in spec: + superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib + superlu_lib += ' -lsuperlu_dist' + sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include + options.extend(['MFEM_USE_SUPERLU=YES', + 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix, + sl_inc, + 'SUPERLU_LIB=%s' % superlu_lib]) + if '+suite-sparse' in spec: ssp = spec['suite-sparse'].prefix ss_lib = '-L%s' % ssp.lib - ss_lib += (' -lumfpack -lcholmod -lcolamd -lamd -lcamd' + - ' -lccolamd -lsuitesparseconfig') + + if '@3.2:' in spec: + ss_lib += ' -lklu -lbtf' + + ss_lib += (' -lumfpack -lcholmod -lcolamd' + + ' -lamd -lcamd -lccolamd -lsuitesparseconfig') no_librt_archs = ['darwin-i686', 'darwin-x86_64'] no_rt = any(map(lambda a: spec.satisfies('=' + a), @@ -136,16 +168,23 @@ class Mfem(Package): 'SUITESPARSE_OPT=-I%s' % ssp.include, 'SUITESPARSE_LIB=%s' % ss_lib]) + if '+netcdf' in spec: + np = spec['netcdf'].prefix + zp = spec['zlib'].prefix + h5p = spec['hdf5'].prefix + nlib = '-L%s -lnetcdf ' % np.lib + nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib + nlib += '-L%s -lz' % zp.lib + options.extend(['MFEM_USE_NETCDF=YES', + 'NETCDF_DIR=%s' % np, + 'HDF5_DIR=%s' % h5p, + 'ZLIB_DIR=%s' % zp, + 'NETCDF_OPT=-I%s' % np.include, + 'NETCDF_LIB=%s' % nlib]) + if '+debug' in spec: options.extend(['MFEM_DEBUG=YES']) - # Dirty hack to cope with URL redirect - tgz_file = string.split(self.url, '/')[-1] - tar = which('tar') - tar('xzvf', tgz_file) - cd(glob.glob('mfem*')[0]) - # End dirty hack to cope with URL redirect - make('config', *options) make('all') diff --git a/var/spack/repos/builtin/packages/mkfontdir/package.py b/var/spack/repos/builtin/packages/mkfontdir/package.py new file mode 100644 index 0000000000..15c85b24e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/mkfontdir/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Mkfontdir(Package): + """mkfontdir creates the fonts.dir files needed by the legacy X server + core font system. The current implementation is a simple wrapper script + around the mkfontscale program, which must be built and installed first.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/mkfontdir" + url = "https://www.x.org/archive/individual/app/mkfontdir-1.0.7.tar.gz" + + version('1.0.7', '52a5bc129f3f3ac54e7115608cec3cdc') + + depends_on('mkfontscale', type='run') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/mkfontscale/package.py b/var/spack/repos/builtin/packages/mkfontscale/package.py new file mode 100644 index 0000000000..4c907831b6 --- /dev/null +++ b/var/spack/repos/builtin/packages/mkfontscale/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Mkfontscale(Package): + """mkfontscale creates the fonts.scale and fonts.dir index files used by the + legacy X11 font system.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/mkfontscale" + url = "https://www.x.org/archive/individual/app/mkfontscale-1.1.2.tar.gz" + + version('1.1.2', 'fab4e1598b8948c124ec7a9f06d30e5b') + + depends_on('libfontenc') + depends_on('freetype') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/mkl/package.py b/var/spack/repos/builtin/packages/mkl/package.py index 71a233ff3e..4a9a8785f7 100644 --- a/var/spack/repos/builtin/packages/mkl/package.py +++ b/var/spack/repos/builtin/packages/mkl/package.py @@ -9,7 +9,7 @@ class Mkl(IntelInstaller): Note: You will have to add the download file to a mirror so that Spack can find it. For instructions on how to set up a - mirror, see http://software.llnl.gov/spack/mirrors.html. + mirror, see http://spack.readthedocs.io/en/latest/mirrors.html. To set the threading layer at run time set MKL_THREADING_LAYER variable to one of the following values: INTEL (default), SEQUENTIAL, PGI. @@ -24,13 +24,41 @@ class Mkl(IntelInstaller): version('11.3.3.210', 'f72546df27f5ebb0941b5d21fd804e34', url="file://%s/l_mkl_11.3.3.210.tgz" % os.getcwd()) + variant('shared', default=True, description='Builds shared library') + variant('ilp64', default=False, description='64 bit integers') + variant('openmp', default=False, description='OpenMP multithreading layer') + # virtual dependency provides('blas') provides('lapack') # TODO: MKL also provides implementation of Scalapack. - def install(self, spec, prefix): + @property + def blas_libs(self): + shared = True if '+shared' in self.spec else False + suffix = dso_suffix if '+shared' in self.spec else 'a' + mkl_integer = ['libmkl_intel_ilp64'] if '+ilp64' in self.spec else ['libmkl_intel_lp64'] # NOQA: ignore=E501 + mkl_threading = ['libmkl_sequential'] + if '+openmp' in self.spec: + mkl_threading = ['libmkl_intel_thread', 'libiomp5'] if '%intel' in self.spec else ['libmkl_gnu_thread'] # NOQA: ignore=E501 + # TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++'] + mkl_libs = find_libraries( + mkl_integer + ['libmkl_core'] + mkl_threading, + root=join_path(self.prefix.lib, 'intel64'), + shared=shared + ) + system_libs = [ + 'libpthread.{0}'.format(suffix), + 'libm.{0}'.format(suffix), + 'libdl.{0}'.format(suffix) + ] + return mkl_libs + system_libs + + @property + def lapack_libs(self): + return self.blas_libs + def install(self, spec, prefix): self.intel_prefix = os.path.join(prefix, "pkg") IntelInstaller.install(self, spec, prefix) @@ -38,32 +66,6 @@ class Mkl(IntelInstaller): for f in os.listdir(mkl_dir): os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f)) - # Unfortunately MKL libs are natively distrubted in prefix/lib/intel64. - # To make MKL play nice with Spack, symlink all files to prefix/lib: - mkl_lib_dir = os.path.join(prefix, "lib", "intel64") - for f in os.listdir(mkl_lib_dir): - os.symlink(os.path.join(mkl_lib_dir, f), - os.path.join(self.prefix, "lib", f)) - - def setup_dependent_package(self, module, dspec): - # For now use Single Dynamic Library: - # To set the threading layer at run time, use the - # mkl_set_threading_layer function or set MKL_THREADING_LAYER - # variable to one of the following values: INTEL, SEQUENTIAL, PGI. - # To set interface layer at run time, use the mkl_set_interface_layer - # function or set the MKL_INTERFACE_LAYER variable to LP64 or ILP64. - - # Otherwise one would need to specify several libraries - # (e.g. mkl_intel_lp64;mkl_sequential;mkl_core), which reflect - # different interface and threading layers. - - name = 'libmkl_rt.%s' % dso_suffix - libdir = find_library_path(name, self.prefix.lib64, self.prefix.lib) - - # Now set blas/lapack libs: - self.spec.blas_shared_lib = join_path(libdir, name) - self.spec.lapack_shared_lib = self.spec.blas_shared_lib - def setup_dependent_environment(self, spack_env, run_env, dependent_spec): # set up MKLROOT for everyone using MKL package spack_env.set('MKLROOT', self.prefix) diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py index 893a543e97..4dfc5432d2 100644 --- a/var/spack/repos/builtin/packages/moab/package.py +++ b/var/spack/repos/builtin/packages/moab/package.py @@ -37,7 +37,7 @@ class Moab(Package): homepage = "https://bitbucket.org/fathomteam/moab" url = "http://ftp.mcs.anl.gov/pub/fathom/moab-4.6.3.tar.gz" - version('4.9.1', 'bcb8bee3e58c076c7f31884db119088e') + version('4.9.1', '19cc2189fa266181ad9109b18d0b2ab8') version('4.9.0', '40695d0a159040683cfa05586ad4a7c2') version('4.8.2', '1dddd10f162fce3cfffaedc48f6f467d') diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py index 71cacd5dfe..2fe3900981 100644 --- a/var/spack/repos/builtin/packages/mpc/package.py +++ b/var/spack/repos/builtin/packages/mpc/package.py @@ -35,12 +35,12 @@ class Mpc(Package): version('1.0.3', 'd6a1d5f8ddea3abd2cc3e98f58352d26') version('1.0.2', '68fadff3358fb3e7976c7a398a0af4c3') - depends_on("gmp") - depends_on("mpfr") + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir def url_for_version(self, version): if version < Version("1.0.1"): - return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version + return "http://www.multiprecision.org/mpc/download/mpc-%s.tar.gz" % version # NOQA else: return "ftp://ftp.gnu.org/gnu/mpc/mpc-%s.tar.gz" % version diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py index 5777cd1926..4612d03849 100644 --- a/var/spack/repos/builtin/packages/mpfr/package.py +++ b/var/spack/repos/builtin/packages/mpfr/package.py @@ -35,7 +35,7 @@ class Mpfr(Package): version('3.1.3', '5fdfa3cfa5c86514ee4a241a1affa138') version('3.1.2', 'ee2c3ac63bf0c2359bf08fc3ee094c19') - depends_on('gmp') + depends_on('gmp') # mpir is a drop-in replacement for this def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index 90670ee517..958fbe762c 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -23,11 +23,13 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import os -class Mpich(Package): +class Mpich(AutotoolsPackage): """MPICH is a high performance and widely portable implementation of - the Message Passing Interface (MPI) standard.""" + 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" list_url = "http://www.mpich.org/static/downloads/" @@ -41,10 +43,10 @@ class Mpich(Package): version('3.1', '5643dd176499bfb7d25079aaff25f2ec') version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0') - variant('verbs', default=False, - description='Build support for OpenFabrics verbs.') - variant('pmi', default=True, description='Build with PMI support') - variant('hydra', default=True, description='Build the hydra process manager') + variant('hydra', default=True, description='Build the hydra process manager') + variant('pmi', default=True, description='Build with PMI support') + variant('romio', default=True, description='Enable ROMIO MPI I/O implementation') + variant('verbs', default=False, description='Build support for OpenFabrics verbs.') provides('mpi@:3.0', when='@3:') provides('mpi@:1.3', when='@1:') @@ -62,62 +64,68 @@ class Mpich(Package): spack_env.set('MPICH_FC', spack_fc) def setup_dependent_package(self, module, dep_spec): - self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') - self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') - self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') - self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') - - def install(self, spec, prefix): - config_args = ["--prefix=" + prefix, - "--with-pmi=" + ("yes" if '+pmi' in spec else 'no'), - "--with-pm=" + ('hydra' if '+hydra' in spec else 'no'), - "--enable-shared"] - - # Variants - if '+verbs' in spec: - config_args.append("--with-ibverbs") + # Is this a Cray machine? (TODO: We need a better test than this.) + if os.environ.get('CRAYPE_VERSION'): + self.spec.mpicc = spack_cc + self.spec.mpicxx = spack_cxx + self.spec.mpifc = spack_fc + self.spec.mpif77 = spack_f77 else: - config_args.append("--without-ibverbs") - - # TODO: Spack should make it so that you can't actually find - # these compilers if they're "disabled" for the current - # compiler configuration. - if not self.compiler.f77: - config_args.append("--disable-f77") - - if not self.compiler.fc: - config_args.append("--disable-fc") - - if not self.compiler.fc and not self.compiler.f77: - config_args.append("--disable-fortran") - - configure(*config_args) - make() - make("install") - - self.filter_compilers() - + self.spec.mpicc = join_path(self.prefix.bin, 'mpicc') + self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') + self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') + self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') + + self.spec.mpicxx_shared_libs = [ + join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)), + join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) + ] + + @AutotoolsPackage.precondition('autoreconf') + def die_without_fortran(self): + # Until we can pass variants such as +fortran through virtual + # dependencies depends_on('mpi'), require Fortran compiler to + # avoid delayed build errors in dependents. + if (self.compiler.f77 is None) or (self.compiler.fc is None): + raise InstallError( + 'Mpich requires both C and Fortran compilers!' + ) + + def configure_args(self): + spec = self.spec + return [ + '--enable-shared', + '--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'), + '--with-pmi={0}'.format('yes' if '+pmi' in spec else 'no'), + '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'), + '--{0}-ibverbs'.format('with' if '+verbs' in spec else 'without') + ] + + @AutotoolsPackage.sanity_check('install') def filter_compilers(self): """Run after install to make the MPI compilers use the - compilers that Spack built the package with. - - If this isn't done, they'll have CC, CXX, F77, and FC set - to Spack's generic cc, c++, f77, and f90. We want them to - be bound to whatever compiler they were built with. - """ - bin = self.prefix.bin - mpicc = join_path(bin, 'mpicc') - mpicxx = join_path(bin, 'mpicxx') - mpif77 = join_path(bin, 'mpif77') - mpif90 = join_path(bin, 'mpif90') + compilers that Spack built the package with. + + If this isn't done, they'll have CC, CXX, F77, and FC set + to Spack's generic cc, c++, f77, and f90. We want them to + be bound to whatever compiler they were built with.""" + + mpicc = join_path(self.prefix.bin, 'mpicc') + mpicxx = join_path(self.prefix.bin, 'mpicxx') + mpif77 = join_path(self.prefix.bin, 'mpif77') + mpif90 = join_path(self.prefix.bin, 'mpif90') # Substitute Spack compile wrappers for the real # underlying compiler - kwargs = {'ignore_absent': True, 'backup': False, 'string': True} - filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs) + kwargs = { + 'ignore_absent': True, + 'backup': False, + 'string': True + } + filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs) filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs) filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs) - filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs) + filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs) # Remove this linking flag if present # (it turns RPATH into RUNPATH) diff --git a/var/spack/repos/builtin/packages/mpip/package.py b/var/spack/repos/builtin/packages/mpip/package.py new file mode 100644 index 0000000000..78e1dca68a --- /dev/null +++ b/var/spack/repos/builtin/packages/mpip/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 * +import os + + +class Mpip(Package): + """mpiP: Lightweight, Scalable MPI Profiling""" + homepage = "http://mpip.sourceforge.net/" + url = "http://downloads.sourceforge.net/project/mpip/mpiP/mpiP-3.4.1/mpiP-3.4.1.tar.gz" + + version("3.4.1", "1168adc83777ac31d6ebd385823aabbd") + + depends_on("libelf", type="build") + depends_on("libdwarf", type="build") + depends_on('libunwind', when=os.uname()[4] == "x86_64", type="build") + depends_on("mpi", type="build") + + def install(self, spec, prefix): + configure("--prefix=" + prefix, "--without-f77") + make() + make("install") diff --git a/var/spack/repos/builtin/packages/mpir/package.py b/var/spack/repos/builtin/packages/mpir/package.py new file mode 100644 index 0000000000..b939a690b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpir/package.py @@ -0,0 +1,62 @@ +############################################################################## +# 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 Mpir(Package): + """Multiple Precision Integers and Rationals.""" + + homepage = "https://github.com/wbhart/mpir" + url = "https://github.com/wbhart/mpir/archive/mpir-2.7.0.tar.gz" + + version('2.7.0', '985b5d57bd0e74c74125ee885b9c8f71') + version('2.6.0', 'ec17d6a7e026114ceb734b2466aa0a91') + version('develop', git='https://github.com/wbhart/mpir.git') + + # This setting allows mpir to act as a drop-in replacement for gmp + variant('gmp_compat', default=False, + description='Compile with GMP library compatibility') + + # Build dependencies + depends_on('autoconf', type='build') + + # Other dependencies + depends_on('yasm') + + def install(self, spec, prefix): + # We definitely don't want to have MPIR build its + # own version of YASM. This tries to install it + # to a system directory. + options = ['--prefix={0}'.format(prefix), + '--with-system-yasm'] + + if '+gmp_compat' in spec: + options.extend(['--enable-gmpcompat']) + + configure(*options) + make() + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py index 490e99dd83..9da9e29a2e 100644 --- a/var/spack/repos/builtin/packages/mrnet/package.py +++ b/var/spack/repos/builtin/packages/mrnet/package.py @@ -37,13 +37,6 @@ class Mrnet(Package): version('4.1.0', '5a248298b395b329e2371bf25366115c') version('4.0.0', 'd00301c078cba57ef68613be32ceea2f') - # Add a patch that brings mrnet-5.0.1 up to date with the current - # development tree The development tree contains fixes needed for the - # krell based tools - variant('krellpatch', default=False, - description="Build MRNet with krell openspeedshop based patch.") - patch('krell-5.0.1.patch', when='@5.0.1+krellpatch') - variant('lwthreads', default=False, description="Also build the MRNet LW threadsafe libraries") parallel = False @@ -51,8 +44,8 @@ class Mrnet(Package): depends_on("boost") def install(self, spec, prefix): - # Build the MRNet LW thread safe libraries when the krelloptions - # variant is present + # Build the MRNet LW thread safe libraries when the + # lwthreads variant is present if '+lwthreads' in spec: configure("--prefix=%s" % prefix, "--enable-shared", "--enable-ltwt-threadsafe") diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index 32bc42a9c3..fcb6549d29 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -34,6 +34,9 @@ class Mumps(Package): homepage = "http://mumps.enseeiht.fr" url = "http://mumps.enseeiht.fr/MUMPS_5.0.1.tar.gz" + version('5.0.2', '591bcb2c205dcb0283872608cdf04927') + # Alternate location if main server is down. + # version('5.0.1', 'b477573fdcc87babe861f62316833db0', url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz') version('5.0.1', 'b477573fdcc87babe861f62316833db0') variant('mpi', default=True, @@ -61,6 +64,7 @@ class Mumps(Package): depends_on('metis@5:', when='+metis') depends_on('parmetis', when="+parmetis") depends_on('blas') + depends_on('lapack') depends_on('scalapack', when='+mpi') depends_on('mpi', when='+mpi') @@ -75,9 +79,9 @@ class Mumps(Package): raise RuntimeError( 'You cannot use the variants parmetis or ptscotch without mpi') - makefile_conf = ["LIBBLAS = %s" % to_link_flags( - self.spec['blas'].blas_shared_lib) - ] + lapack_blas = (self.spec['lapack'].lapack_libs + + self.spec['blas'].blas_libs) + makefile_conf = ["LIBBLAS = %s" % lapack_blas.joined()] orderings = ['-Dpord'] @@ -136,11 +140,12 @@ class Mumps(Package): 'OPTC = %s -O ' % fpic]) if '+mpi' in self.spec: + scalapack = self.spec['scalapack'].scalapack_libs makefile_conf.extend( ["CC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpicc'), "FC = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'), "FL = %s" % join_path(self.spec['mpi'].prefix.bin, 'mpif90'), - "SCALAP = %s" % self.spec['scalapack'].fc_link, + "SCALAP = %s" % scalapack.ld_flags, "MUMPS_TYPE = par"]) else: makefile_conf.extend( @@ -151,7 +156,13 @@ class Mumps(Package): # TODO: change the value to the correct one according to the # compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER - makefile_conf.append("CDEFS = -DAdd_") + if self.compiler.name == 'intel': + # Intel Fortran compiler provides the main() function so + # C examples linked with the Fortran compiler require a + # hack defined by _DMAIN_COMP (see examples/c_example.c) + makefile_conf.append("CDEFS = -DAdd_ -DMAIN_COMP") + else: + makefile_conf.append("CDEFS = -DAdd_") if '+shared' in self.spec: if sys.platform == 'darwin': diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 17124a0572..18f2ebe0bb 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -28,12 +28,12 @@ from spack import * class Mvapich2(Package): """MVAPICH2 is an MPI implementation for Infiniband networks.""" homepage = "http://mvapich.cse.ohio-state.edu/" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2b.tar.gz" + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz" - version('2.2b', '5651e8b7a72d7c77ca68da48f3a5d108') - version('2.2a', 'b8ceb4fc5f5a97add9b3ff1b9cbe39d2') - version('2.0', '9fbb68a4111a8b6338e476dc657388b4') - version('1.9', '5dc58ed08fd3142c260b70fe297e127c') + version('2.2', '939b65ebe5b89a5bc822cdab0f31f96e') + version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6') + version('2.0', '9fbb68a4111a8b6338e476dc657388b4') + version('1.9', '5dc58ed08fd3142c260b70fe297e127c') patch('ad_lustre_rwcontig_open_source.patch', when='@1.9') @@ -93,6 +93,7 @@ class Mvapich2(Package): ########## # FIXME : CUDA support is missing + depends_on('bison') depends_on('libpciaccess') def url_for_version(self, version): @@ -225,8 +226,19 @@ class Mvapich2(Package): self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx') self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') + self.spec.mpicxx_shared_libs = [ + join_path(self.prefix.lib, 'libmpicxx.{0}'.format(dso_suffix)), + join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) + ] def install(self, spec, prefix): + # Until we can pass variants such as +fortran through virtual + # dependencies depends_on('mpi'), require Fortran compiler to + # avoid delayed build errors in dependents. + if (self.compiler.f77 is None) or (self.compiler.fc is None): + raise InstallError('Mvapich2 requires both C and Fortran ', + 'compilers!') + # we'll set different configure flags depending on our # environment configure_args = [ diff --git a/var/spack/repos/builtin/packages/mxml/package.py b/var/spack/repos/builtin/packages/mxml/package.py index 113c48c18f..29e3b27d6e 100644 --- a/var/spack/repos/builtin/packages/mxml/package.py +++ b/var/spack/repos/builtin/packages/mxml/package.py @@ -26,10 +26,9 @@ from spack import * class Mxml(Package): - """ - Mini-XML is a small XML library that you can use to read and write XML + """Mini-XML is a small XML library that you can use to read and write XML and XML-like data files in your application without requiring large - non-standard libraries + non-standard libraries. """ homepage = "http://www.msweet.org" diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py index 792e3fe3c7..66cb2a6a54 100644 --- a/var/spack/repos/builtin/packages/nag/package.py +++ b/var/spack/repos/builtin/packages/nag/package.py @@ -30,7 +30,7 @@ class Nag(Package): """The NAG Fortran Compiler.""" homepage = "http://www.nag.com/nagware/np.asp" - version('6.1', '1e29d9d435b7ccc2842a320150b28ba4') + version('6.1', 'f49bd548e0d5e2458b2dabb3ee01341a') version('6.0', '3fa1e7f7b51ef8a23e6c687cdcad9f96') # Licensing @@ -43,8 +43,8 @@ class Nag(Package): def url_for_version(self, version): # TODO: url and checksum are architecture dependent # TODO: We currently only support x86_64 - return 'http://www.nag.com/downloads/impl/npl6a%sna_amd64.tgz' % str( - version).replace('.', '') + url = 'http://www.nag.com/downloads/impl/npl6a{0}na_amd64.tgz' + return url.format(version.joined) def install(self, spec, prefix): # Set installation directories diff --git a/var/spack/repos/builtin/packages/xorg-util-macros/package.py b/var/spack/repos/builtin/packages/nano/package.py index cd50d46826..3e87ec8ffe 100644 --- a/var/spack/repos/builtin/packages/xorg-util-macros/package.py +++ b/var/spack/repos/builtin/packages/nano/package.py @@ -25,15 +25,16 @@ from spack import * -class XorgUtilMacros(Package): - """The m4 macros used by all of the Xorg packages.""" +class Nano(Package): + """Tiny little text editor""" - homepage = "http://www.example.com" - url = "http://ftp.x.org/pub/individual/util/util-macros-1.19.0.tar.bz2" + homepage = "http://www.nano-editor.org" + url = "https://www.nano-editor.org/dist/v2.6/nano-2.6.3.tar.gz" - version('1.19.0', '1cf984125e75f8204938d998a8b6c1e1') + version('2.6.3', '1213c7f17916e65afefc95054c1f90f9') + version('2.6.2', '58568a4b8a33841d774c25f285fc11c1') def install(self, spec, prefix): configure("--prefix=%s" % prefix) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py new file mode 100644 index 0000000000..0d5eed251b --- /dev/null +++ b/var/spack/repos/builtin/packages/nauty/package.py @@ -0,0 +1,89 @@ +############################################################################## +# 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 shutil +from spack import * + + +class Nauty(Package): + """nauty and Traces are programs for computing automorphism groups of + graphsq and digraphs""" + homepage = "http://pallini.di.uniroma1.it/index.html" + url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz" + + version('2.6r7', 'b2b18e03ea7698db3fbe06c5d76ad8fe') + version('2.6r5', '91b03a7b069962e94fc9aac8831ce8d2') + version('2.5r9', 'e8ecd08b0892a1fb13329c147f08de6d') + + def url_for_version(self, version): + url = "http://pallini.di.uniroma1.it/nauty{0}.tar.gz" + return url.format(version.joined) + + def install(self, spec, prefix): + configure('--prefix=%s' % prefix) + make() + + exes = [ + "NRswitchg", + "addedgeg", + "amtog", + "biplabg", + "catg", + "complg", + "converseg", + "copyg", + "countg", + "cubhamg", + "deledgeg", + "delptg", + "directg", + "dreadnaut", + "dretodot", + "dretog", + "genbg", + "genbgL", + "geng", + "genquarticg", + "genrang", + "genspecialg", + "gentourng", + "gentreeg", + "hamheuristic", + "labelg", + "linegraphg", + "listg", + "multig", + "newedgeg", + "pickg", + "planarg", + "ranlabg", + "shortg", + "subdivideg", + "twohamg", + "vcolg", + "watercluster2"] + mkdirp(prefix.bin) + for exe in exes: + shutil.copyfile(exe, join_path(prefix.bin, exe)) diff --git a/var/spack/repos/builtin/packages/ncdu/package.py b/var/spack/repos/builtin/packages/ncdu/package.py index 2147319d3f..0842a592cc 100644 --- a/var/spack/repos/builtin/packages/ncdu/package.py +++ b/var/spack/repos/builtin/packages/ncdu/package.py @@ -26,8 +26,7 @@ from spack import * class Ncdu(Package): - """ - Ncdu is a disk usage analyzer with an ncurses interface. It is designed + """Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire gaphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py new file mode 100644 index 0000000000..7d31c7a8f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -0,0 +1,233 @@ +############################################################################## +# 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 +import shutil +import tempfile + + +class Ncl(Package): + """NCL is an interpreted language designed specifically for + scientific data analysis and visualization. Supports NetCDF 3/4, + GRIB 1/2, HDF 4/5, HDF-EOD 2/5, shapefile, ASCII, binary. + Numerous analysis functions are built-in.""" + + homepage = "https://www.ncl.ucar.edu" + + version('6.3.0', '4834df63d3b56778441246303ab921c4', + url='https://www.earthsystemgrid.org/download/fileDownload.html?' + 'logicalFileId=bec58cb3-cd9b-11e4-bb80-00c0f03d5b7c', + extension='tar.gz') + patch('spack_ncl.patch') + + # This installation script is implemented according to this manual: + # http://www.ncl.ucar.edu/Download/build_from_src.shtml + + variant('hdf4', default=False, description='Enable HDF4 support.') + variant('gdal', default=False, description='Enable GDAL support.') + variant('triangle', default=True, description='Enable Triangle support.') + variant('udunits2', default=True, description='Enable UDUNITS-2 support.') + variant('openmp', default=True, description='Enable OpenMP support.') + + # Non-optional dependencies according to the manual: + depends_on('jpeg') + depends_on('netcdf') + depends_on('cairo') + + # Also, the manual says that ncl requires zlib, but that comes as a + # mandatory dependency of libpng, which is a mandatory dependency of cairo. + + # In Spack, we do not have an option to compile netcdf without netcdf-4 + # support, so we will tell the ncl configuration script that we want + # support for netcdf-4, but the script assumes that hdf5 is compiled with + # szip support. We introduce this restriction with the following dependency + # statement. + depends_on('hdf5@:1.8+szip') + + # In Spack, we also do not have an option to compile netcdf without DAP + # support, so we will tell the ncl configuration script that we have it. + + # Some of the optional dependencies according to the manual: + depends_on('hdf', when='+hdf4') + depends_on('gdal', when='+gdal') + depends_on('udunits2', when='+udunits2') + + # We need src files of triangle to appear in ncl's src tree if we want + # triangle's features. + resource( + name='triangle', + url='http://www.netlib.org/voronoi/triangle.zip', + md5='10aff8d7950f5e0e2fb6dd2e340be2c9', + placement='triangle_src', + when='+triangle') + + def install(self, spec, prefix): + + if (self.compiler.fc is None) or (self.compiler.cc is None): + raise InstallError('NCL package requires both ' + 'C and Fortran compilers.') + + self.prepare_site_config() + self.prepare_install_config() + self.prepare_src_tree() + make('Everything', parallel=False) + + def setup_environment(self, spack_env, run_env): + run_env.set('NCARG_ROOT', self.spec.prefix) + + def prepare_site_config(self): + fc_flags = [] + cc_flags = [] + c2f_flags = [] + + if '+openmp' in self.spec: + fc_flags.append(self.compiler.openmp_flag) + cc_flags.append(self.compiler.openmp_flag) + + if self.compiler.name == 'gcc': + fc_flags.append('-fno-range-check') + c2f_flags.extend(['-lgfortran']) + elif self.compiler.name == 'intel': + fc_flags.append('-fp-model precise') + cc_flags.append('-fp-model precise') + c2f_flags.extend(['-lifcore', '-lifport']) + + with open('./config/Spack', 'w') as f: + f.writelines([ + '#define HdfDefines\n', + '#define CppCommand \'/usr/bin/env cpp -traditional\'\n', + '#define CCompiler cc\n', + '#define FCompiler fc\n', + ('#define CtoFLibraries ' + ' '.join(c2f_flags) + '\n' + if len(c2f_flags) > 0 + else ''), + ('#define CtoFLibrariesUser ' + ' '.join(c2f_flags) + '\n' + if len(c2f_flags) > 0 + else ''), + ('#define CcOptions ' + ' '.join(cc_flags) + '\n' + if len(cc_flags) > 0 + else ''), + ('#define FcOptions ' + ' '.join(fc_flags) + '\n' + if len(fc_flags) > 0 + else ''), + '#define BuildShared NO' + ]) + + def prepare_install_config(self): + # Remove the results of the previous configuration attempts. + self.delete_files('./Makefile', './config/Site.local') + + # Generate an array of answers that will be passed to the interactive + # configuration script. + config_answers = [ + # Enter Return to continue + '\n', + # Build NCL? + 'y\n', + # Parent installation directory : + '\'' + self.spec.prefix + '\'\n', + # System temp space directory : + '\'' + tempfile.mkdtemp(prefix='ncl_ncar_') + '\'\n', + # Build NetCDF4 feature support (optional)? + 'y\n' + ] + + if '+hdf4' in self.spec: + config_answers.extend([ + # Build HDF4 support (optional) into NCL? + 'y\n', + # Also build HDF4 support (optional) into raster library? + 'y\n', + # Did you build HDF4 with szip support? + 'y\n' if self.spec.satisfies('^hdf+szip') else 'n\n' + ]) + else: + config_answers.extend([ + # Build HDF4 support (optional) into NCL? + 'n\n', + # Also build HDF4 support (optional) into raster library? + 'n\n' + ]) + + config_answers.extend([ + # Build Triangle support (optional) into NCL + 'y\n' if '+triangle' in self.spec else 'n\n', + # If you are using NetCDF V4.x, did you enable NetCDF-4 support? + 'y\n', + # Did you build NetCDF with OPeNDAP support? + 'y\n', + # Build GDAL support (optional) into NCL? + 'y\n' if '+gdal' in self.spec else 'n\n', + # Build Udunits-2 support (optional) into NCL? + 'y\n' if '+uduints2' in self.spec else 'n\n', + # Build Vis5d+ support (optional) into NCL? + 'n\n', + # Build HDF-EOS2 support (optional) into NCL? + 'n\n', + # Build HDF5 support (optional) into NCL? + 'y\n', + # Build HDF-EOS5 support (optional) into NCL? + 'n\n', + # Build GRIB2 support (optional) into NCL? + 'n\n', + # Enter local library search path(s) : + # The paths will be passed by the Spack wrapper. + ' \n', + # Enter local include search path(s) : + # All other paths will be passed by the Spack wrapper. + '\'' + join_path(self.spec['freetype'].prefix.include, + 'freetype2') + '\'\n', + # Go back and make more changes or review? + 'n\n', + # Save current configuration? + 'y\n' + ]) + + config_answers_filename = 'spack-config.in' + config_script = Executable('./Configure') + + with open(config_answers_filename, 'w') as f: + f.writelines(config_answers) + + with open(config_answers_filename, 'r') as f: + config_script(input=f) + + def prepare_src_tree(self): + if '+triangle' in self.spec: + triangle_src = join_path(self.stage.source_path, 'triangle_src') + triangle_dst = join_path(self.stage.source_path, 'ni', 'src', + 'lib', 'hlu') + shutil.copy(join_path(triangle_src, 'triangle.h'), triangle_dst) + shutil.copy(join_path(triangle_src, 'triangle.c'), triangle_dst) + + @staticmethod + def delete_files(*filenames): + for filename in filenames: + if os.path.exists(filename): + try: + os.remove(filename) + except OSError, e: + raise InstallError('Failed to delete file %s: %s' % ( + e.filename, e.strerror)) diff --git a/var/spack/repos/builtin/packages/ncl/spack_ncl.patch b/var/spack/repos/builtin/packages/ncl/spack_ncl.patch new file mode 100644 index 0000000000..ebbecc43ba --- /dev/null +++ b/var/spack/repos/builtin/packages/ncl/spack_ncl.patch @@ -0,0 +1,30 @@ +--- a/config/ymake 2015-03-16 22:21:42.000000000 +0100 ++++ b/config/ymake 2016-10-14 13:44:49.530646098 +0200 +@@ -537,0 +538,3 @@ ++# We want to have our own definitions for spack ++set sysincs = Spack ++ +--- a/Configure 2015-03-16 22:22:17.000000000 +0100 ++++ b/Configure 2016-10-14 13:49:42.157631106 +0200 +@@ -1137,5 +1137,13 @@ +- if (! -d $incs[1]) then +- echo " *** Warning: <$incs[1]> does not exist" +- echo "" +- goto proc_locincdir +- else ++ ++ # We don't want our path(s) to be preprocessed by cpp ++ # inside ymake script. That is why we pass them in quotes (') ++ # to this script. But if we do so, the following condition ++ # is always false. That is why we comment it out and promise ++ # to pass only correct path(s). You might want to do the same ++ # thing for the libraries search path(s). ++ ++ # if (! -d $incs[1]) then ++ # echo " *** Warning: <$incs[1]> does not exist" ++ # echo "" ++ # goto proc_locincdir ++ # else +@@ -1143 +1151 @@ +- endif ++ # endif diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index 16d72b4593..28dfe8f059 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -32,22 +32,29 @@ class Nco(Package): homepage = "https://sourceforge.net/projects/nco" url = "https://github.com/nco/nco/archive/4.5.5.tar.gz" + version('4.6.1', 'ef43cc989229c2790a9094bd84728fd8') version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce') # See "Compilation Requirements" at: # http://nco.sourceforge.net/#bld + variant('mpi', default=True) depends_on('netcdf') - depends_on('antlr@2.7.7+cxx') # (required for ncap2) - depends_on('gsl') # (desirable for ncap2) - depends_on('udunits2') # (allows dimensional unit transformations) - # depends_on('opendap') # (enables network transparency), + depends_on('antlr@2.7.7+cxx') # required for ncap2 + depends_on('gsl') # desirable for ncap2 + depends_on('udunits2') # allows dimensional unit transformations + # depends_on('opendap') # enables network transparency def install(self, spec, prefix): + # Workaround until variant forwarding works properly + if '+mpi' in spec and spec.satisfies('^netcdf~mpi'): + raise RuntimeError('Invalid spec. Package netcdf requires ' + 'netcdf+mpi, but spec asked for netcdf~mpi.') + opts = [ '--prefix=%s' % prefix, - '--disable-openmp', # TODO: Make this a variant - '--disable-dap', # TODO: Make this a variant + '--disable-openmp', # TODO: Make this a variant + '--disable-dap', # TODO: Make this a variant '--disable-esmf'] configure(*opts) make() diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py index aaacbac7b1..e4fd5bf269 100644 --- a/var/spack/repos/builtin/packages/ncurses/package.py +++ b/var/spack/repos/builtin/packages/ncurses/package.py @@ -50,7 +50,10 @@ class Ncurses(Package): "--enable-widec", "--enable-overwrite", "--disable-lib-suffixes", - "--without-ada"] + "--without-ada", + "--enable-pc-files", + "--with-pkg-config-libdir={0}/lib/pkgconfig".format(prefix) + ] configure(*opts) make() make("install") diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index f61e6984b5..5c3cf300d2 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -32,14 +32,13 @@ class Ncview(Package): version('2.1.7', 'debd6ca61410aac3514e53122ab2ba07') - depends_on("netcdf") - depends_on("udunits2") - - # OS Dependencies - # Ubuntu: apt-get install libxaw7-dev - # CentOS 7: yum install libXaw-devel + depends_on('netcdf') + depends_on('udunits2') + depends_on('libpng') + depends_on('libxaw') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py index ab40c14340..b1e406157b 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf/package.py @@ -27,8 +27,8 @@ from spack import * class Netcdf(Package): """NetCDF is a set of software libraries and self-describing, - machine-independent data formats that support the creation, access, - and sharing of array-oriented scientific data. + machine-independent data formats that support the creation, access, + and sharing of array-oriented scientific data. """ @@ -41,21 +41,48 @@ class Netcdf(Package): variant('mpi', default=True, description='Enables MPI parallelism') variant('hdf4', default=False, description='Enable HDF4 support') + # These variants control the number of dimensions (i.e. coordinates and + # attributes) and variables (e.g. time, entity ID, number of coordinates) + # that can be used in any particular NetCDF file. + variant('maxdims', default=1024, + description='Defines the maximum dimensions of NetCDF files.') + variant('maxvars', default=8192, + description='Defines the maximum variables of NetCDF files.') depends_on("m4", type='build') depends_on("hdf", when='+hdf4') # Required for DAP support - depends_on("curl") + depends_on("curl@7.18.0:") # Required for NetCDF-4 support - depends_on("zlib") - depends_on('hdf5@:1.8+mpi', when='@:4.4.0+mpi') - depends_on('hdf5+mpi', when='@4.4.1:+mpi') - depends_on('hdf5@:1.8~mpi', when='@:4.4.0~mpi') - depends_on('hdf5~mpi', when='@4.4.1:~mpi') + depends_on("zlib@1.2.5:") + depends_on('hdf5') + + # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later + # https://github.com/Unidata/netcdf-c/issues/250 + depends_on('hdf5@:1.8', when='@:4.4.0') + + def patch(self): + try: + max_dims = int(self.spec.variants['maxdims'].value) + max_vars = int(self.spec.variants['maxvars'].value) + except (ValueError, TypeError): + raise TypeError('NetCDF variant values max[dims|vars] must be ' + 'integer values.') + + ff = FileFilter(join_path('include', 'netcdf.h')) + ff.filter(r'^(#define\s+NC_MAX_DIMS\s+)\d+(.*)$', + r'\1{0}\2'.format(max_dims)) + ff.filter(r'^(#define\s+NC_MAX_VARS\s+)\d+(.*)$', + r'\1{0}\2'.format(max_vars)) def install(self, spec, prefix): + # Workaround until variant forwarding works properly + if '+mpi' in spec and spec.satisfies('^hdf5~mpi'): + raise RuntimeError('Invalid spec. Package netcdf requires ' + 'hdf5+mpi, but spec asked for hdf5~mpi.') + # Environment variables CPPFLAGS = [] LDFLAGS = [] @@ -99,7 +126,7 @@ class Netcdf(Package): LDFLAGS.append("-L%s/lib" % spec['hdf'].prefix) LIBS.append("-l%s" % "jpeg") - if 'szip' in spec: + if '+szip' in spec: CPPFLAGS.append("-I%s/include" % spec['szip'].prefix) LDFLAGS.append("-L%s/lib" % spec['szip'].prefix) LIBS.append("-l%s" % "sz") @@ -114,4 +141,8 @@ class Netcdf(Package): configure(*config_args) make() + + if self.run_tests: + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/netlib-lapack/package.py b/var/spack/repos/builtin/packages/netlib-lapack/package.py index 08c94a5c9b..4b03259cbd 100644 --- a/var/spack/repos/builtin/packages/netlib-lapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-lapack/package.py @@ -1,4 +1,4 @@ -############################################################################## +############################################################################# # Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. # Produced at the Lawrence Livermore National Laboratory. # @@ -36,6 +36,7 @@ class NetlibLapack(Package): homepage = "http://www.netlib.org/lapack/" url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz" + version('3.6.1', '421b2cb72e15f237e144428f9c460ee0') version('3.6.0', 'f2f6c67134e851fe189bb3ca1fbb5101') version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf') version('3.4.2', '61bf1a8a4469d4bdb7604f5897179478') @@ -66,6 +67,20 @@ class NetlibLapack(Package): '${CMAKE_CURRENT_SOURCE_DIR}/cmake/', 'CBLAS/CMakeLists.txt', string=True) + @property + def blas_libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + ['libblas'], root=self.prefix, shared=shared, recurse=True + ) + + @property + def lapack_libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + ['liblapack'], root=self.prefix, shared=shared, recurse=True + ) + def install_one(self, spec, prefix, shared): cmake_args = [ '-DBUILD_SHARED_LIBS:BOOL=%s' % ('ON' if shared else 'OFF'), @@ -75,13 +90,20 @@ class NetlibLapack(Package): if spec.satisfies('@3.6.0:'): cmake_args.extend(['-DCBLAS=ON']) # always build CBLAS + if self.compiler.name == 'intel': + # Intel compiler finds serious syntax issues when trying to + # build CBLAS and LapackE + cmake_args.extend(['-DCBLAS=OFF']) + cmake_args.extend(['-DLAPACKE:BOOL=OFF']) + + # deprecated routines are commonly need by, for example, suitesparse + # Note that OpenBLAS spack is built with deprecated routines + cmake_args.extend(['-DBUILD_DEPRECATED:BOOL=ON']) + if '+external-blas' in spec: - # TODO : mechanism to specify the library should be more general, - # TODO : but this allows to have an hook to an external blas cmake_args.extend([ '-DUSE_OPTIMIZED_BLAS:BOOL=ON', - '-DBLAS_LIBRARIES:PATH=%s' % join_path( - spec['blas'].prefix.lib, 'libblas.a') + '-DBLAS_LIBRARIES:PATH=%s' % spec['blas'].blas_libs.joined(';') ]) cmake_args.extend(std_cmake_args) @@ -99,18 +121,3 @@ class NetlibLapack(Package): # Build shared libraries if requested. if '+shared' in spec: self.install_one(spec, prefix, True) - - def setup_dependent_package(self, module, dspec): - # This is WIP for a prototype interface for virtual packages. - # We can update this as more builds start depending on BLAS/LAPACK. - libdir = find_library_path( - 'libblas.a', self.prefix.lib64, self.prefix.lib) - - self.spec.blas_static_lib = join_path(libdir, 'libblas.a') - self.spec.lapack_static_lib = join_path(libdir, 'liblapack.a') - - if '+shared' in self.spec: - self.spec.blas_shared_lib = join_path( - libdir, 'libblas.%s' % dso_suffix) - self.spec.lapack_shared_lib = join_path( - libdir, 'liblapack.%s' % dso_suffix) diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py index 49b8633209..578d2d8988 100644 --- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py @@ -28,10 +28,11 @@ import sys class NetlibScalapack(Package): """ScaLAPACK is a library of high-performance linear algebra routines for - parallel distributed memory machines""" + parallel distributed memory machines + """ homepage = "http://www.netlib.org/scalapack/" - url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz" + url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz" version('2.0.2', '2f75e600a2ba155ed9ce974a1c4b536f') version('2.0.1', '17b8cde589ea0423afe1ec43e7499161') @@ -39,33 +40,47 @@ class NetlibScalapack(Package): # versions before 2.0.0 are not using cmake and requires blacs as # a separated package - variant('shared', default=True, - description='Build the shared library version') - variant('fpic', default=False, description="Build with -fpic compiler option") + variant( + 'shared', + default=True, + description='Build the shared library version' + ) + variant( + 'fpic', + default=False, + description='Build with -fpic compiler option' + ) provides('scalapack') depends_on('mpi') depends_on('lapack') + depends_on('blas') depends_on('cmake', when='@2.0.0:', type='build') + @property + def scalapack_libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + ['libscalapack'], root=self.prefix, shared=shared, recurse=True + ) + def install(self, spec, prefix): options = [ "-DBUILD_SHARED_LIBS:BOOL=%s" % ('ON' if '+shared' in spec else 'OFF'), "-DBUILD_STATIC_LIBS:BOOL=%s" % ('OFF' if '+shared' in spec else - 'ON'), - # forces scalapack to use find_package(LAPACK): - "-DUSE_OPTIMIZED_LAPACK_BLAS:BOOL=ON", + 'ON') ] # Make sure we use Spack's Lapack: + blas = spec['blas'].blas_libs + lapack = spec['lapack'].lapack_libs 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), + '-DLAPACK_LIBRARIES=%s' % (lapack.joined(';')), + '-DBLAS_LIBRARIES=%s' % (blas.joined(';')) ]) if '+fpic' in spec: @@ -84,12 +99,3 @@ class NetlibScalapack(Package): # The shared libraries are not installed correctly on Darwin: if (sys.platform == 'darwin') and ('+shared' in spec): fix_darwin_install_name(prefix.lib) - - def setup_dependent_package(self, module, dependent_spec): - spec = self.spec - lib_suffix = dso_suffix if '+shared' in spec else 'a' - - spec.fc_link = '-L%s -lscalapack' % spec.prefix.lib - spec.cc_link = spec.fc_link - spec.libraries = [join_path(spec.prefix.lib, - 'libscalapack.%s' % lib_suffix)] diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py index 02e9ef5f1e..7e2b758bc0 100644 --- a/var/spack/repos/builtin/packages/nettle/package.py +++ b/var/spack/repos/builtin/packages/nettle/package.py @@ -29,14 +29,19 @@ class Nettle(Package): """The Nettle package contains the low-level cryptographic library that is designed to fit easily in many contexts.""" - homepage = "http://www.example.com" + homepage = "https://www.lysator.liu.se/~nisse/nettle/" url = "http://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz" + version('3.2', 'afb15b4764ebf1b4e6d06c62bd4d29e4') version('2.7', '2caa1bd667c35db71becb93c5d89737f') depends_on('gmp') + depends_on('m4', type='build') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/nmap/package.py b/var/spack/repos/builtin/packages/nmap/package.py new file mode 100644 index 0000000000..f4576cde53 --- /dev/null +++ b/var/spack/repos/builtin/packages/nmap/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 Nmap(AutotoolsPackage): + """Nmap ("Network Mapper") is a free and open source (license) + utility for network discovery and security auditing. + It also provides ncat an updated nc""" + + homepage = "https://nmap.org" + url = "https://nmap.org/dist/nmap-7.31.tar.bz2" + + version('7.31', 'f2f6660142a777862342a58cc54258ea') + version('7.30', '8d86797d5c9e56de571f9630c0e6b5f8') diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py new file mode 100644 index 0000000000..a8b9f3d3e2 --- /dev/null +++ b/var/spack/repos/builtin/packages/nwchem/package.py @@ -0,0 +1,170 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import sys +import os + + +class Nwchem(Package): + """High-performance computational chemistry software""" + + homepage = "http://www.nwchem-sw.org" + url = "http://www.nwchem-sw.org/images/Nwchem-6.6.revision27746-src.2015-10-20.tar.gz" + + version('6.6', 'c581001c004ea5e5dfacb783385825e3', + url='http://www.nwchem-sw.org/images/Nwchem-6.6.revision27746-src.2015-10-20.tar.gz') + + depends_on('blas') + depends_on('lapack') + depends_on('mpi') + depends_on('scalapack') + + depends_on('python@2.7:2.8', type=nolink) + + # patches for 6.6-27746: + urls_for_patches = { + '@6.6': [ + ('http://www.nwchem-sw.org/images/Tddft_mxvec20.patch.gz', 'f91c6a04df56e228fe946291d2f38c9a'), + ('http://www.nwchem-sw.org/images/Tools_lib64.patch.gz', 'b71e8dbad27f1c97b60a53ec34d3f6e0'), + ('http://www.nwchem-sw.org/images/Config_libs66.patch.gz', 'cc4be792e7b5128c3f9b7b1167ade2cf'), + ('http://www.nwchem-sw.org/images/Cosmo_meminit.patch.gz', '1d94685bf3b72d8ecd40c46334348ca7'), + ('http://www.nwchem-sw.org/images/Sym_abelian.patch.gz', 'b19cade61c787916a73a4aaf6e2445d6'), + ('http://www.nwchem-sw.org/images/Xccvs98.patch.gz', 'b9aecc516a3551dcf871cb2f066598cb'), + ('http://www.nwchem-sw.org/images/Dplot_tolrho.patch.gz', '0a5bdad63d2d0ffe46b28db7ad6d9cec'), + ('http://www.nwchem-sw.org/images/Driver_smalleig.patch.gz', 'c3f609947220c0adb524b02c316b5564'), + ('http://www.nwchem-sw.org/images/Ga_argv.patch.gz', '7a665c981cfc17187455e1826f095f6f'), + ('http://www.nwchem-sw.org/images/Raman_displ.patch.gz', 'ed334ca0b2fe81ce103ef8cada990c4c'), + ('http://www.nwchem-sw.org/images/Ga_defs.patch.gz', '0c3cab4d5cbef5acac16ffc5e6f869ef'), + ('http://www.nwchem-sw.org/images/Zgesvd.patch.gz', '8fd5a11622968ef4351bd3d5cddce8f2'), + ('http://www.nwchem-sw.org/images/Cosmo_dftprint.patch.gz', '64dcf27f3c6ced2cadfb504fa66e9d08'), + ('http://www.nwchem-sw.org/images/Txs_gcc6.patch.gz', '56595a7252da051da13f94edc54fe059'), + ('http://www.nwchem-sw.org/images/Gcc6_optfix.patch.gz', 'c6642c21363c09223784b47b8636047d'), + ('http://www.nwchem-sw.org/images/Util_gnumakefile.patch.gz', 'af74ea2e32088030137001ce5cb047c5'), + ('http://www.nwchem-sw.org/images/Util_getppn.patch.gz', '8dec8ee198bf5ec4c3a22a6dbf31683c'), + ('http://www.nwchem-sw.org/images/Gcc6_macs_optfix.patch.gz', 'a891a2713aac8b0423c8096461c243eb'), + ('http://www.nwchem-sw.org/images/Notdir_fc.patch.gz', '2dc997d4ab3719ac7964201adbc6fd79') + ] + } + # Iterate over patches + for condition, urls in urls_for_patches.iteritems(): + for url, md5 in urls: + patch(url, when=condition, level=0, md5=md5) + + def install(self, spec, prefix): + scalapack = spec['scalapack'].scalapack_libs + lapack = spec['lapack'].lapack_libs + blas = spec['blas'].blas_libs + # see http://www.nwchem-sw.org/index.php/Compiling_NWChem + args = [] + args.extend([ + 'NWCHEM_TOP=%s' % self.stage.source_path, + # NWCHEM is picky about FC and CC. They should NOT be full path. + # see http://www.nwchem-sw.org/index.php/Special:AWCforum/sp/id7524 + 'CC=%s' % os.path.basename(spack_cc), + 'FC=%s' % os.path.basename(spack_fc), + 'USE_MPI=y', + 'MPI_LOC=%s' % spec['mpi'].prefix, + 'USE_PYTHONCONFIG=y', + 'PYTHONVERSION=%s' % spec['python'].version.up_to(2), + 'PYTHONHOME=%s' % spec['python'].prefix, + 'BLASOPT=%s' % ((lapack + blas).ld_flags), + 'BLAS_LIB=%s' % blas.ld_flags, + 'LAPACK_LIB=%s' % lapack.ld_flags, + 'USE_SCALAPACK=y', + 'SCALAPACK=%s' % scalapack.ld_flags, + 'NWCHEM_MODULES=all python', + 'NWCHEM_LONG_PATHS=Y' # by default NWCHEM_TOP is 64 char max + ]) + + # TODO: query if blas/lapack/scalapack uses 64bit Ints + # A flag to distinguish between 32bit and 64bit integers in linear + # algebra (Blas, Lapack, Scalapack) + use32bitLinAlg = True + + if use32bitLinAlg: + args.extend([ + 'USE_64TO32=y', + 'BLAS_SIZE=4', + 'LAPACK_SIZE=4', + 'SCALAPACK_SIZE=4' + ]) + else: + args.extend([ + 'BLAS_SIZE=8', + 'LAPACK_SIZE=8' + 'SCALAPACK_SIZE=8' + ]) + + if sys.platform == 'darwin': + target = 'MACX64' + args.extend([ + 'CFLAGS_FORGA=-DMPICH_NO_ATTR_TYPE_TAGS' + ]) + else: + target = 'LINUX64' + + args.extend(['NWCHEM_TARGET=%s' % target]) + + with working_dir('src'): + make('nwchem_config', *args) + if use32bitLinAlg: + make('64_to_32', *args) + make(*args) + + # need to install by hand. Follow Ubuntu: + # http://packages.ubuntu.com/trusty/all/nwchem-data/filelist + # http://packages.ubuntu.com/trusty/amd64/nwchem/filelist + share_path = join_path(prefix, 'share', 'nwchem') + mkdirp(prefix.bin) + + install_tree('data', share_path) + install_tree(join_path('basis', 'libraries'), + join_path(share_path, 'libraries')) + install_tree(join_path('nwpw', 'libraryps'), + join_path(share_path, 'libraryps')) + + b_path = join_path(self.stage.source_path, 'bin', + target, 'nwchem') + chmod = which('chmod') + chmod('+x', b_path) + install(b_path, prefix.bin) + + # Finally, make user's life easier by creating a .nwchemrc file + # to point to the required data files. + nwchemrc = """\ + nwchem_basis_library {data}/libraries/ + nwchem_nwpw_library {data}/libraryps/ + ffield amber + amber_1 {data}/amber_s/ + amber_2 {data}/amber_q/ + amber_3 {data}/amber_x/ + amber_4 {data}/amber_u/ + spce {data}/solvents/spce.rst + charmm_s {data}/charmm_s/ + charmm_x {data}/charmm_x/ +""".format(data=share_path) + with open(".nwchemrc", 'w') as f: + f.write(nwchemrc) + install(".nwchemrc", share_path) diff --git a/var/spack/repos/builtin/packages/oce/package.py b/var/spack/repos/builtin/packages/oce/package.py index 4f9f7b2e12..2d518d83c3 100644 --- a/var/spack/repos/builtin/packages/oce/package.py +++ b/var/spack/repos/builtin/packages/oce/package.py @@ -54,6 +54,11 @@ class Oce(Package): # https://github.com/tpaviot/oce/commit/61cb965b9ffeca419005bc15e635e67589c421dd.patch patch('null.patch', when='@0.16:0.17.1') + # fix build with Xcode 8 "previous definition of CLOCK_REALTIME" + # reported 27 Sep 2016 https://github.com/tpaviot/oce/issues/643 + if (platform.system() == "Darwin") and (platform.mac_ver()[0] == '10.12'): + patch('sierra.patch') + def install(self, spec, prefix): options = [] options.extend(std_cmake_args) diff --git a/var/spack/repos/builtin/packages/oce/sierra.patch b/var/spack/repos/builtin/packages/oce/sierra.patch new file mode 100644 index 0000000000..8db3af5e37 --- /dev/null +++ b/var/spack/repos/builtin/packages/oce/sierra.patch @@ -0,0 +1,45 @@ +diff --git a/adm/cmake/TKernel/CMakeLists.txt b/adm/cmake/TKernel/CMakeLists.txt +index 54e241e..72873c6 100644 +--- a/adm/cmake/TKernel/CMakeLists.txt ++++ b/adm/cmake/TKernel/CMakeLists.txt +@@ -29,7 +29,7 @@ if(WIN32) + set(TOOLKIT_LIBS ${TOOLKIT_LIBS} ${CSF_SOCKETLibs_LIB} ${CSF_advapi32_LIB} ${CSF_gdi32_LIB} ${CSF_user32_LIB} ${CSF_kernel32_LIB} ${CSF_psapi_LIB}) + else(WIN32) + #Â Â An implementation for Mac OS X has been added in src/OSD/gettime_osx.h +- if(NOT APPLE) ++ if(APPLE) + include( CheckFunctionExists ) + check_function_exists( clock_gettime CLOCK_GETTIME_IN_LIBC ) + if(NOT CLOCK_GETTIME_IN_LIBC) +@@ -40,7 +40,7 @@ else(WIN32) + endif(NOT CLOCK_GETTIME_IN_LIBRT) + set(TOOLKIT_LIBS ${TOOLKIT_LIBS} rt) + endif(NOT CLOCK_GETTIME_IN_LIBC) +- endif(NOT APPLE) ++ endif(APPLE) + endif(WIN32) + + # Adde-DHAVE_TBB in TKernel in order to benefit from Standard_MMgrTBBalloc +@@ -70,4 +70,3 @@ if (OCE_BUILD_TKERNEL_WITH_INSTALL_RPATH) + set_target_properties_install_rpath(${TOOLKIT} "${OCE_INSTALL_LIB_DIR_RPATH};${OCE_INSTALL_PACKAGE_LIB_DIR_RPATH}") + set_target_properties(${TOOLKIT} PROPERTIES BUILD_WITH_INSTALL_RPATH ON) + endif () +- +diff --git a/src/OSD/OSD_Chronometer.cxx b/src/OSD/OSD_Chronometer.cxx +index 444f844..25970d0 100644 +--- a/src/OSD/OSD_Chronometer.cxx ++++ b/src/OSD/OSD_Chronometer.cxx +@@ -51,7 +51,7 @@ + #include <mach/mach.h> + #endif + +-#if defined(__APPLE__) && defined(__MACH__) ++#if defined(__OOOOPPLE__) && defined(__MACH__) + #include "gettime_osx.h" + #endif + +@@ -283,4 +283,3 @@ void OSD_Chronometer::Show (Standard_Real& user, + system = Cumul_sys; + if (!StopSav) Start(); + } +- diff --git a/var/spack/repos/builtin/packages/oclock/package.py b/var/spack/repos/builtin/packages/oclock/package.py new file mode 100644 index 0000000000..84da93c36e --- /dev/null +++ b/var/spack/repos/builtin/packages/oclock/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Oclock(Package): + """oclock is a simple analog clock using the SHAPE extension to make + a round (possibly transparent) window.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/oclock" + url = "https://www.x.org/archive/individual/app/oclock-1.0.3.tar.gz" + + version('1.0.3', 'f25b05d987ef8ed6dd5a887c82eace62') + + depends_on('libx11') + depends_on('libxmu') + depends_on('libxext') + depends_on('libxt') + depends_on('libxkbfile') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index 6fa2e0368f..adb760f06d 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -46,13 +46,13 @@ class Octopus(Package): # FEAST, Libfm, PFFT, ISF, PNFFT def install(self, spec, prefix): + lapack = spec['lapack'].lapack_libs + blas = spec['blas'].blas_libs args = [] args.extend([ '--prefix=%s' % prefix, - '--with-blas=%s' % to_link_flags( - spec['blas'].blas_shared_lib), - '--with-lapack=%s' % to_link_flags( - spec['lapack'].lapack_shared_lib), + '--with-blas=%s' % blas.ld_flags, + '--with-lapack=%s' % lapack.ld_flags, '--with-gsl-prefix=%s' % spec['gsl'].prefix, '--with-libxc-prefix=%s' % spec['libxc'].prefix, 'CC=%s' % spec['mpi'].mpicc, @@ -70,10 +70,13 @@ class Octopus(Package): # --with-berkeleygw-prefix=${prefix} ]) - # Supposedly configure does not pick up the required flags for gfortran - # Without it there are: - # Error: Line truncated @ global.F90:157:132 - # Error: Unterminated character constant @ global.F90:157:20 + # When preprocessor expands macros (i.e. CFLAGS) defined as quoted + # strings the result may be > 132 chars and is terminated. + # This will look to a compiler as an Unterminated character constant + # and produce Line truncated errors. To vercome this, add flags to + # let compiler know that the entire line is meaningful. + # TODO: For the lack of better approach, assume that clang is mixed + # with GNU fortran. if spec.satisfies('%clang') or spec.satisfies('%gcc'): args.extend([ 'FCFLAGS=-O2 -ffree-line-length-none' diff --git a/var/spack/repos/builtin/packages/opari2/package.py b/var/spack/repos/builtin/packages/opari2/package.py index e901f8ed39..20c67716a4 100644 --- a/var/spack/repos/builtin/packages/opari2/package.py +++ b/var/spack/repos/builtin/packages/opari2/package.py @@ -22,13 +22,11 @@ # 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 Opari2(Package): - """ - OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid + """OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and runtime library calls with calls to the POMP2 measurement interface. OPARI2 will provide you with a new initialization method that allows for multi-directory and parallel builds diff --git a/var/spack/repos/builtin/packages/openblas/openblas_icc.patch b/var/spack/repos/builtin/packages/openblas/openblas_icc.patch new file mode 100644 index 0000000000..fb379aea41 --- /dev/null +++ b/var/spack/repos/builtin/packages/openblas/openblas_icc.patch @@ -0,0 +1,253 @@ +diff --git a/kernel/x86_64/cscal_microk_bulldozer-2.c b/kernel/x86_64/cscal_microk_bulldozer-2.c +index f470cf8..3abffc4 100644 +--- a/kernel/x86_64/cscal_microk_bulldozer-2.c ++++ b/kernel/x86_64/cscal_microk_bulldozer-2.c +@@ -120,7 +120,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -212,7 +212,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -289,7 +289,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -334,7 +334,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/cscal_microk_haswell-2.c b/kernel/x86_64/cscal_microk_haswell-2.c +index 0424de3..48e3395 100644 +--- a/kernel/x86_64/cscal_microk_haswell-2.c ++++ b/kernel/x86_64/cscal_microk_haswell-2.c +@@ -120,7 +120,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", //"0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -212,7 +212,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", // "0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -289,7 +289,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -334,7 +334,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", //"0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/cscal_microk_steamroller-2.c b/kernel/x86_64/cscal_microk_steamroller-2.c +index 763e7ad..8346e17 100644 +--- a/kernel/x86_64/cscal_microk_steamroller-2.c ++++ b/kernel/x86_64/cscal_microk_steamroller-2.c +@@ -121,7 +121,7 @@ static void cscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", //"0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -213,7 +213,7 @@ static void cscal_kernel_16_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", //"0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -290,7 +290,7 @@ static void cscal_kernel_16_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -335,7 +335,7 @@ static void cscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "0", "1", ++ : "cc", //"0", "1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/dscal.c b/kernel/x86_64/dscal.c +index bbc1c96..b6bde6c 100644 +--- a/kernel/x86_64/dscal.c ++++ b/kernel/x86_64/dscal.c +@@ -141,7 +141,7 @@ static void dscal_kernel_inc_8(BLASLONG n, FLOAT *alpha, FLOAT *x, BLASLONG inc_ + "r" (alpha), // 3 + "r" (inc_x), // 4 + "r" (inc_x3) // 5 +- : "cc", "%0", "%1", "%2", ++ : "cc", //"%0", "%1", "%2", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/zscal_microk_bulldozer-2.c b/kernel/x86_64/zscal_microk_bulldozer-2.c +index 28fe734..03882d6 100644 +--- a/kernel/x86_64/zscal_microk_bulldozer-2.c ++++ b/kernel/x86_64/zscal_microk_bulldozer-2.c +@@ -120,7 +120,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -212,7 +212,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -289,7 +289,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -334,7 +334,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/zscal_microk_haswell-2.c b/kernel/x86_64/zscal_microk_haswell-2.c +index a93308e..b1a34c1 100644 +--- a/kernel/x86_64/zscal_microk_haswell-2.c ++++ b/kernel/x86_64/zscal_microk_haswell-2.c +@@ -120,7 +120,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -212,7 +212,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -289,7 +289,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -334,7 +334,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +diff --git a/kernel/x86_64/zscal_microk_steamroller-2.c b/kernel/x86_64/zscal_microk_steamroller-2.c +index d611bf5..97b07ad 100644 +--- a/kernel/x86_64/zscal_microk_steamroller-2.c ++++ b/kernel/x86_64/zscal_microk_steamroller-2.c +@@ -121,7 +121,7 @@ static void zscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -213,7 +213,7 @@ static void zscal_kernel_8_zero_r( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -290,7 +290,7 @@ static void zscal_kernel_8_zero_i( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", +@@ -335,7 +335,7 @@ static void zscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) + "r" (n), // 0 + "r" (x), // 1 + "r" (alpha) // 2 +- : "cc", "%0", "%1", ++ : "cc", //"%0", "%1", + "%xmm0", "%xmm1", "%xmm2", "%xmm3", + "%xmm4", "%xmm5", "%xmm6", "%xmm7", + "%xmm8", "%xmm9", "%xmm10", "%xmm11", diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index 37f7a7005d..efdbc1d8b2 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -30,8 +30,9 @@ import os class Openblas(Package): """OpenBLAS: An optimized BLAS library""" homepage = "http://www.openblas.net" - url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz" + url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz" + version('0.2.19', '28c998054fd377279741c6f0b9ea7941') version('0.2.18', '805e7f660877d588ea7e3792cda2ee65') version('0.2.17', '664a12807f2a2a7cda4781e3ab2ae0e1') version('0.2.16', 'fef46ab92463bdbb1479dcec594ef6dc') @@ -49,6 +50,20 @@ class Openblas(Package): provides('lapack') patch('make.patch') + # This patch is in a pull request to OpenBLAS that has not been handled + # https://github.com/xianyi/OpenBLAS/pull/915 + patch('openblas_icc.patch', when='%intel') + + @property + def blas_libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + ['libopenblas'], root=self.prefix, shared=shared, recurse=True + ) + + @property + def lapack_libs(self): + return self.blas_libs def install(self, spec, prefix): # As of 06/2016 there is no mechanism to specify that packages which @@ -99,41 +114,11 @@ class Openblas(Package): # no quotes around prefix (spack doesn't use a shell) make('install', "PREFIX=%s" % prefix, *make_defs) - # Blas virtual package should provide blas.a and libblas.a - with working_dir(prefix.lib): - symlink('libopenblas.a', 'blas.a') - symlink('libopenblas.a', 'libblas.a') - if '+shared' in spec: - symlink('libopenblas.%s' % dso_suffix, - 'libblas.%s' % dso_suffix) - - # Lapack virtual package should provide liblapack.a - with working_dir(prefix.lib): - symlink('libopenblas.a', 'liblapack.a') - if '+shared' in spec: - symlink('libopenblas.%s' % dso_suffix, - 'liblapack.%s' % dso_suffix) - # Openblas may pass its own test but still fail to compile Lapack # symbols. To make sure we get working Blas and Lapack, do a small # test. self.check_install(spec) - def setup_dependent_package(self, module, dspec): - # This is WIP for a prototype interface for virtual packages. - # We can update this as more builds start depending on BLAS/LAPACK. - libdir = find_library_path('libopenblas.a', - self.prefix.lib64, - self.prefix.lib) - - self.spec.blas_static_lib = join_path(libdir, 'libopenblas.a') - self.spec.lapack_static_lib = self.spec.blas_static_lib - - if '+shared' in self.spec: - self.spec.blas_shared_lib = join_path(libdir, 'libopenblas.%s' % - dso_suffix) - self.spec.lapack_shared_lib = self.spec.blas_shared_lib - def check_install(self, spec): source_file = join_path(os.path.dirname(self.module.__file__), 'test_cblas_dgemm.c') @@ -141,10 +126,10 @@ class Openblas(Package): 'test_cblas_dgemm.output') include_flags = ["-I%s" % join_path(spec.prefix, "include")] - link_flags = ["-L%s" % join_path(spec.prefix, "lib"), - "-llapack", - "-lblas", - "-lpthread"] + link_flags = self.lapack_libs.ld_flags.split() + if self.compiler.name == 'intel': + link_flags.extend(["-lifcore"]) + link_flags.extend(["-lpthread"]) if '+openmp' in spec: link_flags.extend([self.compiler.openmp_flag]) diff --git a/var/spack/repos/builtin/packages/opencoarrays/package.py b/var/spack/repos/builtin/packages/opencoarrays/package.py new file mode 100644 index 0000000000..eb76960024 --- /dev/null +++ b/var/spack/repos/builtin/packages/opencoarrays/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 Opencoarrays(CMakePackage): + """OpenCoarrays is an open-source software project that produces an + application binary interface (ABI) supporting coarray Fortran (CAF) + compilers, an application programming interface (API) that supports users + of non-CAF compilers, and an associated compiler wrapper and program + launcher. + """ + + homepage = "http://www.opencoarrays.org/" + url = "https://github.com/sourceryinstitute/opencoarrays/releases/download/1.7.4/OpenCoarrays-1.7.4.tar.gz" + + version('1.7.4', '85ba87def461e3ff5a164de2e6482930') + version('1.6.2', '5a4da993794f3e04ea7855a6678981ba') + + depends_on('cmake', type='build') + depends_on('mpi') + + provides('coarrays') + + def cmake_args(self): + args = [] + args.append("-DCMAKE_C_COMPILER=%s" % self.spec['mpi'].mpicc) + args.append("-DCMAKE_Fortran_COMPILER=%s" % self.spec['mpi'].mpifc) + return args diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py index 8f592342b0..03cc7ba427 100644 --- a/var/spack/repos/builtin/packages/opencv/package.py +++ b/var/spack/repos/builtin/packages/opencv/package.py @@ -76,7 +76,7 @@ class Opencv(Package): depends_on('vtk', when='+vtk') depends_on('qt', when='+qt') depends_on('jdk', when='+java') - depends_on('py-numpy', when='+python') + depends_on('py-numpy', when='+python', type='nolink') extends('python', when='+python') diff --git a/var/spack/repos/builtin/packages/openjpeg/package.py b/var/spack/repos/builtin/packages/openjpeg/package.py index 1bc5b04f6f..988ebc155d 100644 --- a/var/spack/repos/builtin/packages/openjpeg/package.py +++ b/var/spack/repos/builtin/packages/openjpeg/package.py @@ -25,17 +25,18 @@ from spack import * -class Openjpeg(Package): - """ - OpenJPEG is an open-source JPEG 2000 codec written in C language. +class Openjpeg(CMakePackage): + """OpenJPEG is an open-source JPEG 2000 codec written in C language. + It has been developed in order to promote the use of JPEG 2000, a still-image compression standard from the Joint Photographic Experts Group (JPEG). Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a JPEG 2000 Reference Software. """ + homepage = "https://github.com/uclouvain/openjpeg" - url = "https://github.com/uclouvain/openjpeg/archive/version.2.1.tar.gz" + url = "https://github.com/uclouvain/openjpeg/archive/version.2.1.tar.gz" version('2.1', '3e1c451c087f8462955426da38aa3b3d') version('2.0.1', '105876ed43ff7dbb2f90b41b5a43cfa5') @@ -44,9 +45,3 @@ class Openjpeg(Package): version('1.5.1', 'd774e4b5a0db5f0f171c4fc0aabfa14e') depends_on('cmake', type='build') - - def install(self, spec, prefix): - cmake('.', *std_cmake_args) - - make() - make("install") diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index b0efe27def..72b9b8dbd2 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -23,9 +23,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## import os - -import llnl.util.tty as tty - from spack import * @@ -50,12 +47,14 @@ def _verbs_dir(): class Openmpi(Package): - """Open MPI is a project combining technologies and resources from - several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) - in order to build the best MPI library available. A completely - new MPI-2 compliant implementation, Open MPI offers advantages - for system and software vendors, application developers and - computer science researchers. + """The Open MPI Project is an open source Message Passing Interface + implementation that is developed and maintained by a consortium + of academic, research, and industry partners. Open MPI is + therefore able to combine the expertise, technologies, and + resources from all across the High Performance Computing + community in order to build the best MPI library available. + Open MPI offers advantages for system and software vendors, + application developers and computer science researchers. """ homepage = "http://www.open-mpi.org" @@ -63,6 +62,7 @@ class Openmpi(Package): list_url = "http://www.open-mpi.org/software/ompi/" list_depth = 3 + version('2.0.1', '6f78155bd7203039d2448390f3b51c96') version('2.0.0', 'cdacc800cb4ce690c1f1273cb6366674') version('1.10.3', 'e2fe4513200e2aaa1500b762342c674b') version('1.10.2', 'b2f43d9635d2d52826e5ef9feb97fd4c') @@ -127,21 +127,10 @@ class Openmpi(Package): self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++') self.spec.mpifc = join_path(self.prefix.bin, 'mpif90') self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77') - - def setup_environment(self, spack_env, run_env): - # As of 06/2016 there is no mechanism to specify that packages which - # depends on MPI need C or/and Fortran implementation. For now - # require both. - if (self.compiler.f77 is None) or (self.compiler.fc is None): - tty.warn('OpenMPI : FORTRAN compiler not found') - tty.warn('OpenMPI : FORTRAN bindings will be disabled') - spack_env.unset('FC') - spack_env.unset('F77') - # Setting an attribute here and using it in the 'install' - # method is needed to ensure tty.warn is actually displayed - # to user and not redirected to spack-build.out - self.config_extra = ['--enable-mpi-fortran=none', - '--disable-oshmem-fortran'] + self.spec.mpicxx_shared_libs = [ + join_path(self.prefix.lib, 'libmpi_cxx.{0}'.format(dso_suffix)), + join_path(self.prefix.lib, 'libmpi.{0}'.format(dso_suffix)) + ] @property def verbs(self): @@ -154,11 +143,22 @@ class Openmpi(Package): return 'verbs' def install(self, spec, prefix): + # Until we can pass variants such as +fortran through virtual + # dependencies depends_on('mpi'), require Fortran compiler to + # avoid delayed build errors in dependents. + if (self.compiler.f77 is None) or (self.compiler.fc is None): + raise InstallError('OpenMPI requires both C and Fortran ', + 'compilers!') + config_args = ["--prefix=%s" % prefix, "--with-hwloc=%s" % spec['hwloc'].prefix, "--enable-shared", "--enable-static"] + # for Open-MPI 2.0:, C++ bindings are disabled by default. + if self.spec.satisfies('@2.0:'): + config_args.extend(['--enable-mpi-cxx']) + if getattr(self, 'config_extra', None) is not None: config_args.extend(self.config_extra) diff --git a/var/spack/repos/builtin/packages/openscenegraph/package.py b/var/spack/repos/builtin/packages/openscenegraph/package.py new file mode 100644 index 0000000000..565941ff0e --- /dev/null +++ b/var/spack/repos/builtin/packages/openscenegraph/package.py @@ -0,0 +1,77 @@ +############################################################################## +# 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 Openscenegraph(Package): + """OpenSceneGraph is an open source, high performance 3D graphics toolkit + that's used in a variety of visual simulation applications.""" + + homepage = "http://www.openscenegraph.org" + url = "http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.3.zip" + + version('3.2.3', '02ffdad7744c747d8fad0d7babb58427') + version('3.1.5', '1c90b851b109849c985006486ef59822') + + variant('debug', default=False, description='Builds a debug version of the library') + variant('shared', default=True, description='Builds a shared version of the library') + + depends_on('cmake@2.8.7:', type='build') + depends_on('qt@4:') + depends_on('zlib') + + def install(self, spec, prefix): + build_type = 'Debug' if '+debug' in spec else 'Release' + shared_status = 'ON' if '+shared' in spec else 'OFF' + + cmake_args = std_cmake_args[:] + cmake_args.extend([ + '-DCMAKE_BUILD_TYPE={0}'.format(build_type), + '-DDYNAMIC_OPENSCENEGRAPH={0}'.format(shared_status), + '-DDYNAMIC_OPENTHREADS={0}'.format(shared_status), + ]) + + # NOTE: This is necessary in order to allow OpenSceneGraph to compile + # despite containing a number of implicit bool to int conversions. + if spec.satisfies('%gcc'): + cmake_args.extend([ + '-DCMAKE_C_FLAGS=-fpermissive', + '-DCMAKE_CXX_FLAGS=-fpermissive', + ]) + + with working_dir('spack-build', create=True): + cmake( + '..', + '-DZLIB_INCLUDE_DIR={0}'.format(spec['zlib'].prefix.include), + '-DZLIB_LIBRARY={0}/libz.{1}'.format(spec['zlib'].prefix.lib, + dso_suffix), + '-DBUILD_OSG_APPLICATIONS=OFF', + '-DOSG_NOTIFY_DISABLED=ON', + '-DLIB_POSTFIX=', + *cmake_args + ) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index 5e141060b2..c9707f760c 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -22,97 +22,105 @@ # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## -########################################################################## +############################################################################## # Copyright (c) 2015-2016 Krell Institute. All Rights Reserved. # -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA -########################################################################## +############################################################################## from spack import * +import os +import os.path class Openspeedshop(Package): """OpenSpeedShop is a community effort by The Krell Institute with - current direct funding from DOEs NNSA. It builds on top of a broad - list of community infrastructures, most notably Dyninst and MRNet - from UW, libmonitor from Rice, and PAPI from UTK. OpenSpeedShop is an - open source multi platform Linux performance tool which is targeted - to support performance analysis of applications running on both - single node and large scale IA64, IA32, EM64T, AMD64, PPC, ARM, Blue - Gene and Cray platforms. OpenSpeedShop development is hosted by the - Krell Institute. The infrastructure and base components of - OpenSpeedShop are released as open source code primarily under LGPL. - + current direct funding from DOEs NNSA. It builds on top of a + broad list of community infrastructures, most notably Dyninst + and MRNet from UW, libmonitor from Rice, and PAPI from UTK. + OpenSpeedShop is an open source multi platform Linux performance + tool which is targeted to support performance analysis of + applications running on both single node and large scale IA64, + IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and + Cray platforms. OpenSpeedShop development is hosted by the Krell + Institute. The infrastructure and base components of OpenSpeedShop + are released as open source code primarily under LGPL. """ homepage = "http://www.openspeedshop.org" - url = "https://github.com/OpenSpeedShop" + url = "https://github.com/OpenSpeedShop" version('2.2', '16cb051179c2038de4e8a845edf1d573') # Use when the git repository is available version('2.2', branch='master', git='https://github.com/OpenSpeedShop/openspeedshop.git') # Optional mirror template - # url="file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.2.tar.gz" - # version('2.2', '643337740dc6c2faca60f42d3620b0e1') + # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.2.tar.gz" + # version('2.2', '517a7798507241ad8abd8b0626a4d2cf') parallel = False - variant('offline', default=True, + variant('offline', default=False, description="build with offline instrumentor enabled.") - variant('cbtf', default=False, + variant('cbtf', default=True, description="build with cbtf instrumentor enabled.") variant('runtime', default=False, description="build only the runtime libraries and collectors.") variant('frontend', default=False, - description="build only the front-end tool using the runtime_dir " - "to point to the target build.") + description="build only the FE tool using the runtime_dir \ + to point to target build.") variant('cuda', default=False, description="build with cuda packages included.") variant('ptgf', default=False, description="build with the PTGF based gui package enabled.") variant('rtfe', default=False, - description="build for generic cluster platforms that have " - "different processors on the fe and be nodes.") + description="build for clusters heterogeneous processors \ + on fe/be nodes.") # MPI variants variant('openmpi', default=False, - description="Build mpi experiment collector for openmpi MPI.") + description="Build mpi collector for openmpi \ + MPI when variant is enabled.") variant('mpt', default=False, - description="Build mpi experiment collector for SGI MPT MPI.") + description="Build mpi collector for SGI \ + MPT MPI when variant is enabled.") variant('mvapich2', default=False, - description="Build mpi experiment collector for mvapich2 MPI.") + description="Build mpi collector for mvapich2\ + MPI when variant is enabled.") variant('mvapich', default=False, - description="Build mpi experiment collector for mvapich MPI.") + description="Build mpi collector for mvapich\ + MPI when variant is enabled.") variant('mpich2', default=False, - description="Build mpi experiment collector for mpich2 MPI.") + description="Build mpi collector for mpich2\ + MPI when variant is enabled.") variant('mpich', default=False, - description="Build mpi experiment collector for mpich MPI.") - - depends_on("cmake@3.0.2", type='build') - # Dependencies for openspeedshop that are common to all the variants of - # the OpenSpeedShop build - depends_on("bison") - depends_on("flex") - depends_on("binutils@2.24+krellpatch") + description="Build mpi collector for mpich\ + MPI when variant is enabled.") + + depends_on("cmake@3.0.2:", type='build') + # Dependencies for openspeedshop that are common to all + # the variants of the OpenSpeedShop build + depends_on("bison", type='build') + depends_on("flex", type='build') + depends_on("binutils@2.24+krellpatch", type='build') depends_on("libelf") depends_on("libdwarf") depends_on("sqlite") depends_on("boost@1.50.0:") - depends_on("dyninst@9.1.0") - depends_on("python") + depends_on("dyninst@9.1.0:") + depends_on("libxml2+python") depends_on("qt@3.3.8b+krellpatch") # Dependencies only for the openspeedshop offline package. @@ -130,16 +138,16 @@ class Openspeedshop(Package): depends_on("cbtf", when='+cbtf') depends_on("cbtf-krell", when='+cbtf') depends_on("cbtf-argonavis", when='+cbtf+cuda') - depends_on("mrnet@5.0.1:+lwthreads+krellpatch", when='+cbtf') + depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf') def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions): - # Sets build type parameters into cmakeOptions the options that will - # enable the cbtf-krell built type settings + # Sets build type parameters into cmakeOptions the + # options that will enable the cbtf-krell built type settings compile_flags = "-O2 -g" BuildTypeOptions = [] - # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the - # stdcmakeargs + # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it + # to be, not the stdcmakeargs for word in cmakeOptions[:]: if word.startswith('-DCMAKE_BUILD_TYPE'): cmakeOptions.remove(word) @@ -147,67 +155,130 @@ class Openspeedshop(Package): cmakeOptions.remove(word) if word.startswith('-DCMAKE_C_FLAGS'): cmakeOptions.remove(word) - BuildTypeOptions.extend([ - '-DCMAKE_BUILD_TYPE=None', - '-DCMAKE_CXX_FLAGS=%s' % compile_flags, - '-DCMAKE_C_FLAGS=%s' % compile_flags - ]) + BuildTypeOptions.extend(['-DCMAKE_BUILD_TYPE=None', + '-DCMAKE_CXX_FLAGS=%s' % compile_flags, + '-DCMAKE_C_FLAGS=%s' % compile_flags]) cmakeOptions.extend(BuildTypeOptions) + def set_defaultbase_cmakeOptions(self, spec, cmakeOptions): + # Appends to cmakeOptions the options that will enable + # the appropriate base level options to the openspeedshop + # cmake build. + python_vers = format(spec['python'].version.up_to(2)) + python_pv = '/python' + python_vers + python_pvs = '/libpython' + python_vers + '.' + format(dso_suffix) + + BaseOptions = [] + + BaseOptions.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix) + BaseOptions.append('-DLIBELF_DIR=%s' % spec['libelf'].prefix) + BaseOptions.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix) + BaseOptions.append( + '-DPYTHON_EXECUTABLE=%s' + % join_path(spec['python'].prefix + '/bin/python')) + BaseOptions.append( + '-DPYTHON_INCLUDE_DIR=%s' + % join_path(spec['python'].prefix.include) + python_pv) + BaseOptions.append( + '-DPYTHON_LIBRARY=%s' + % join_path(spec['python'].prefix.lib) + python_pvs) + BaseOptions.append('-DBoost_NO_SYSTEM_PATHS=TRUE') + BaseOptions.append('-DBoost_NO_BOOST_CMAKE=TRUE') + BaseOptions.append('-DBOOST_ROOT=%s' % spec['boost'].prefix) + BaseOptions.append('-DBoost_DIR=%s' % spec['boost'].prefix) + BaseOptions.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib) + BaseOptions.append('-DDYNINST_DIR=%s' % spec['dyninst'].prefix) + + cmakeOptions.extend(BaseOptions) + def set_mpi_cmakeOptions(self, spec, cmakeOptions): - # Appends to cmakeOptions the options that will enable the appropriate - # MPI implementations + # Appends to cmakeOptions the options that will enable + # the appropriate MPI implementations MPIOptions = [] # openmpi if '+openmpi' in spec: - MPIOptions.extend([ - '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix - ]) + MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix) # mpich if '+mpich' in spec: - MPIOptions.extend([ - '-DMPICH_DIR=%s' % spec['mpich'].prefix - ]) + MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix) # mpich2 if '+mpich2' in spec: - MPIOptions.extend([ - '-DMPICH2_DIR=%s' % spec['mpich2'].prefix - ]) + MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix) # mvapich if '+mvapich' in spec: - MPIOptions.extend([ - '-DMVAPICH_DIR=%s' % spec['mvapich'].prefix - ]) + MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix) # mvapich2 if '+mvapich2' in spec: - MPIOptions.extend([ - '-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix - ]) + MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix) # mpt if '+mpt' in spec: - MPIOptions.extend([ - '-DMPT_DIR=%s' % spec['mpt'].prefix - ]) + MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix) cmakeOptions.extend(MPIOptions) - def install(self, spec, prefix): - - # openmpi_prefix_path = "/opt/openmpi-1.8.2" - # mvapich_prefix_path = "/usr/local/tools/mvapich-gnu" - # '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix, - # '-DOPENMPI_DIR=%s' % openmpi_prefix_path, - # '-DMVAPICH_DIR=%s' % mvapich_prefix_path, + def setup_environment(self, spack_env, run_env): + """Set up the compile and runtime environments for a package.""" + + # Common settings to both offline and cbtf versions + # of OpenSpeedShop + run_env.prepend_path('PATH', self.prefix.bin) + + # Find Dyninst library path, this is needed to + # set the DYNINSTAPI_RT_LIB library which is + # required for OpenSpeedShop to find loop level + # performance information + dyninst_libdir = find_libraries(['libdyninstAPI_RT'], + root=self.spec['dyninst'].prefix, + shared=True, recurse=True) + + # Set Dyninst RT library path to support OSS loop resolution code + run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir) + + # Find openspeedshop library path + oss_libdir = find_libraries(['libopenss-framework'], + root=self.spec['openspeedshop'].prefix, + shared=True, recurse=True) + run_env.prepend_path('LD_LIBRARY_PATH', + os.path.dirname(oss_libdir.joined())) + + # Settings specific to the version, checking here + # for the cbtf instrumentor + if '+cbtf' in self.spec: + cbtf_mc = '/sbin/cbtf_mrnet_commnode' + cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' + run_env.set('XPLAT_RSH', 'ssh') + run_env.set('MRNET_COMM_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + + run_env.set('CBTF_MRNET_BACKEND_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) + + run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) + + elif '+offline' in self.spec: + # Had to use this form of syntax self.prefix.lib and + # self.prefix.lib64 returned None all the time + run_env.set('OPENSS_RAWDATA_DIR', '.') + run_env.set('OPENSS_PLUGIN_PATH', + join_path(oss_libdir + '/openspeedshop')) + run_env.prepend_path('PATH', self.spec['papi'].prefix.bin) + run_env.prepend_path('PATH', self.spec['libdwarf'].prefix.bin) + + if '+mpich' in self.spec: + run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich') + if '+mpich2' in self.spec: + run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich2') + if '+mvapich2' in self.spec: + run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2') + if '+openmpi' in self.spec: + run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi') - # FIXME: How do we make this dynamic in spack? - # FIXME: That is, can we specify the paths to cuda dynamically? - # WAITING for external package support. - # if '+cuda' in spec: - # cuda_prefix_path = "/usr/local/cuda-6.0" - # cupti_prefix_path = "/usr/local/cuda-6.0/extras/CUPTI" + def install(self, spec, prefix): if '+offline' in spec: instrumentor_setting = "offline" @@ -217,18 +288,17 @@ class Openspeedshop(Package): cmakeOptions = [] cmakeOptions.extend([ '-DCMAKE_INSTALL_PREFIX=%s' % prefix, - '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, - '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, - '-DPAPI_DIR=%s' % spec['papi'].prefix]) + '-DINSTRUMENTOR=%s' % instrumentor_setting, + '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, + '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, + '-DPAPI_DIR=%s' % spec['papi'].prefix]) # Add any MPI implementations coming from variant settings self.set_mpi_cmakeOptions(spec, cmakeOptions) cmakeOptions.extend(std_cmake_args) - # Adjust the build options to the favored ones for this - # build + # Adjust the build options to the favored + # ones for this build self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) cmake('..', *cmakeOptions) @@ -239,50 +309,35 @@ class Openspeedshop(Package): else: cmake_prefix_path = join_path(spec['dyninst'].prefix) with working_dir('build', create=True): - - # python_vers=join_path(spec['python'].version[:2]) - # '-DOPENMPI_DIR=%s' % openmpi_prefix_path, - # '-DMVAPICH_DIR=%s' % mvapich_prefix_path, - # '-DMPICH_DIR=%s' % spec['mpich'].prefix, - # '-DMPICH2_DIR=%s' % spec['mpich2'].prefix, - # '-DBoost_NO_SYSTEM_PATHS=TRUE', - # '-DBOOST_ROOT=%s' % spec['boost'].prefix, - # '-DOPENMPI_DIR=%s' % spec['openmpi'].prefix, - - python_vers = '%d.%d' % spec['python'].version[:2] - cmakeOptions = [] - cmakeOptions.extend([ - '-DCMAKE_INSTALL_PREFIX=%s' % prefix, - '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64, - '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DBINUTILS_DIR=%s' % spec['binutils'].prefix, - '-DLIBELF_DIR=%s' % spec['libelf'].prefix, - '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix, - '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, - '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, - '-DPAPI_DIR=%s' % spec['papi'].prefix, - '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, - '-DQTLIB_DIR=%s' % spec['qt'].prefix, - '-DPYTHON_EXECUTABLE=%s' % join_path( - spec['python'].prefix, '/bin/python'), - '-DPYTHON_INCLUDE_DIR=%s' % join_path( - spec['python'].prefix.include, - 'python' + python_vers), - '-DPYTHON_LIBRARY=%s' % join_path( - spec['python'].prefix.lib, - 'libpython' + python_vers + '.so'), - '-DBoost_NO_SYSTEM_PATHS=TRUE', - '-DBOOST_ROOT=%s' % spec['boost'].prefix, - '-DDYNINST_DIR=%s' % spec['dyninst'].prefix]) + + # Appends base options to cmakeOptions + self.set_defaultbase_cmakeOptions(spec, cmakeOptions) + + cmakeOptions.extend( + ['-DCMAKE_INSTALL_PREFIX=%s' + % prefix, + '-DCMAKE_PREFIX_PATH=%s' + % cmake_prefix_path, + '-DINSTRUMENTOR=%s' + % instrumentor_setting, + '-DLIBMONITOR_DIR=%s' + % spec['libmonitor'].prefix, + '-DLIBUNWIND_DIR=%s' + % spec['libunwind'].prefix, + '-DPAPI_DIR=%s' + % spec['papi'].prefix, + '-DSQLITE3_DIR=%s' + % spec['sqlite'].prefix, + '-DQTLIB_DIR=%s' + % spec['qt'].prefix]) # Add any MPI implementations coming from variant settings self.set_mpi_cmakeOptions(spec, cmakeOptions) cmakeOptions.extend(std_cmake_args) - # Adjust the build options to the favored ones for this - # build + # Adjust the build options to the favored + # ones for this build self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) cmake('..', *cmakeOptions) @@ -293,74 +348,37 @@ class Openspeedshop(Package): elif '+cbtf' in spec: instrumentor_setting = "cbtf" - cmake_prefix_path = ':'.join(spec['cbtf'].prefix, - spec['cbtf-krell'].prefix, - spec['dyninst'].prefix) - # resolve_symbols = "symtabapi" - # runtime_platform_cray = "cray" - # if '+cray' in spec: - # if '+runtime' in spec: - # #-DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_INSTALL_DIR} \ - # with working_dir('build_cbtf_cray_runtime', create=True): - # python_vers='%d.%d' % spec['python'].version[:2] - # cmake('..', - # '-DCMAKE_INSTALL_PREFIX=%s' % prefix, - # '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64, - # '-DRUNTIME_PLATFORM=%s' % runtime_platform_cray, - # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, - # '-DRESOLVE_SYMBOLS=%s' % resolve_symbols, - # '-DINSTRUMENTOR=%s' % instrumentor_setting, - # '-DCBTF_DIR=%s' % spec['cbtf'].prefix, - # '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, - # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s' % spec['cbtf-krell'].prefix, - # '-DBINUTILS_DIR=%s' % spec['binutils'].prefix, - # '-DLIBELF_DIR=%s' % spec['libelf'].prefix, - # '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix, - # '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, - # '-DPAPI_DIR=%s' % spec['papi'].prefix, - # '-DDYNINST_DIR=%s' % spec['dyninst'].prefix, - # '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix, - # '-DMRNET_DIR=%s' % spec['mrnet'].prefix, - # '-DBoost_NO_SYSTEM_PATHS=TRUE', - # '-DBOOST_ROOT=%s' % spec['boost'].prefix, - # *std_cmake_args) - - # make("clean") - # make() - # make("install") - - # elif '+mic' in spec: - # comment out else and shift over the default case below - # until arch detection is in else: + cmake_prefix_path = join_path(spec['cbtf'].prefix) \ + + ':' + join_path(spec['cbtf-krell'].prefix)\ + + ':' + join_path(spec['dyninst'].prefix) if '+runtime' in spec: with working_dir('build_cbtf_runtime', create=True): - python_vers = '%d.%d' % spec['python'].version[:2] - cmake( - '..', - '-DCMAKE_INSTALL_PREFIX=%s' % prefix, - '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64, - '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DBINUTILS_DIR=%s' % spec['binutils'].prefix, - '-DLIBELF_DIR=%s' % spec['libelf'].prefix, - '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix, - '-DCBTF_DIR=%s' % spec['cbtf'].prefix, - '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, - '-DPYTHON_EXECUTABLE=%s' % join_path( - spec['python'].prefix, 'bin', 'python'), - '-DPYTHON_INCLUDE_DIR=%s' % join_path( - spec['python'].prefix.include, - 'python' + python_vers), - '-DPYTHON_LIBRARY=%s' % join_path( - spec['python'].prefix.lib, - 'libpython' + python_vers + '.so'), - '-DBoost_NO_SYSTEM_PATHS=TRUE', - '-DBOOST_ROOT=%s' % spec['boost'].prefix, - '-DDYNINST_DIR=%s' % spec['dyninst'].prefix, - '-DMRNET_DIR=%s' % spec['mrnet'].prefix, - *std_cmake_args) + cmakeOptions = [] + + # Appends base options to cmakeOptions + self.set_defaultbase_cmakeOptions(spec, cmakeOptions) + + cmakeOptions.extend( + ['-DCMAKE_INSTALL_PREFIX=%s' + % prefix, + '-DCMAKE_PREFIX_PATH=%s' + % cmake_prefix_path, + '-DINSTRUMENTOR=%s' + % instrumentor_setting, + '-DCBTF_DIR=%s' + % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' + % spec['cbtf-krell'].prefix, + '-DMRNET_DIR=%s' + % spec['mrnet'].prefix]) + + # Adjust the build options to the + # favored ones for this build + self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) + + cmake('..', *cmakeOptions) make("clean") make() @@ -368,96 +386,35 @@ class Openspeedshop(Package): else: with working_dir('build_cbtf', create=True): - python_vers = '%d.%d' % spec['python'].version[:2] - # python_vers=join_path(spec['python'].version[:2]) - cmake( - '..', - '-DCMAKE_INSTALL_PREFIX=%s' % prefix, - '-DCMAKE_LIBRARY_PATH=%s' % prefix.lib64, - '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DBINUTILS_DIR=%s' % spec['binutils'].prefix, - '-DLIBELF_DIR=%s' % spec['libelf'].prefix, - '-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix, - '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, - '-DCBTF_DIR=%s' % spec['cbtf'].prefix, - '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, - '-DQTLIB_DIR=%s' % spec['qt'].prefix, - '-DPYTHON_EXECUTABLE=%s' % join_path( - spec['python'].prefix, 'bin', 'python'), - '-DPYTHON_INCLUDE_DIR=%s' % join_path( - spec['python'].prefix.include, - 'python' + python_vers), - '-DPYTHON_LIBRARY=%s' % join_path( - spec['python'].prefix.lib, - 'libpython' + python_vers + '.so'), - '-DBoost_NO_SYSTEM_PATHS=TRUE', - '-DBOOST_ROOT=%s' % spec['boost'].prefix, - '-DDYNINST_DIR=%s' % spec['dyninst'].prefix, - '-DMRNET_DIR=%s' % spec['mrnet'].prefix, - *std_cmake_args) + cmakeOptions = [] + + # Appends base options to cmakeOptions + self.set_defaultbase_cmakeOptions(spec, cmakeOptions) + + cmakeOptions.extend( + ['-DCMAKE_INSTALL_PREFIX=%s' + % prefix, + '-DCMAKE_PREFIX_PATH=%s' + % cmake_prefix_path, + '-DINSTRUMENTOR=%s' + % instrumentor_setting, + '-DSQLITE3_DIR=%s' + % spec['sqlite'].prefix, + '-DCBTF_DIR=%s' + % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' + % spec['cbtf-krell'].prefix, + '-DQTLIB_DIR=%s' + % spec['qt'].prefix, + '-DMRNET_DIR=%s' + % spec['mrnet'].prefix]) + + # Adjust the build options to the favored + # ones for this build + self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions) + + cmake('..', *cmakeOptions) make("clean") make() make("install") - -# if '+frontend' in spec: -# with working_dir('build_frontend', create=True): -# tbd - -# if '+cbtf' in spec: -# if cray build type detected: -# if '+runtime' in spec: -# with working_dir('build_cray_cbtf_compute', create=True): -# tbd -# else: -# with working_dir('build_cray_cbtf_frontend', create=True): -# tbd -# with working_dir('build_cray_osscbtf_frontend', create=True): -# tbd -# fi -# elif '+intelmic' in spec: -# if '+runtime' in spec: -# with working_dir('build_intelmic_cbtf_compute', create=True): -# tbd -# else: -# with working_dir('build_intelmic_cbtf_frontend', create=True): -# tbd -# with working_dir('build_intelmic_osscbtf_frontend', create=True): -# fi -# else -# with working_dir('build_cluster_cbtf', create=True): -# tbd -# with working_dir('build_cluster osscbtf', create=True): -# tbd -# fi -# elif '+offline' in spec: -# if cray build type detected: -# if '+runtime' in spec: -# with working_dir('build_cray_ossoff_compute', create=True): -# tbd -# else: -# with working_dir('build_cray_ossoff_frontend', create=True): -# tbd -# fi -# elif '+intelmic' in spec: -# if '+runtime' in spec: -# with working_dir('build_intelmic_ossoff_compute', create=True): -# tbd -# else: -# with working_dir('build_intelmic_ossoff_frontend', create=True): -# tbd -# fi -# elif bgq build type detected: -# if '+runtime' in spec: -# with working_dir('build_bgq_ossoff_compute', create=True): -# tbd -# else: -# with working_dir('build_bgq_ossoff_frontend', create=True): -# tbd -# fi -# else -# with working_dir('build_cluster ossoff', create=True): -# tbd -# fi -# fi diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index 8d9049a8f7..12b5ed9c52 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -36,24 +36,21 @@ class Openssl(Package): homepage = "http://www.openssl.org" url = "ftp://openssl.org/source/openssl-1.0.1h.tar.gz" - version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf') - version('1.0.1r', '1abd905e079542ccae948af37e393d28') - version('1.0.1t', '9837746fcf8a6727d46d22ca35953da1') - version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a') - version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5') - version('1.0.2f', 'b3bf73f507172be9292ea2a8c28b659d') - version('1.0.2g', 'f3c710c045cdee5fd114feb69feba7aa') + version('1.0.2j', '96322138f0b69e61b7212bc53d5e912b') + version('1.0.2i', '678374e63f8df456a697d3e5e5a931fb') version('1.0.2h', '9392e65072ce4b614c1392eefc1f23d0') + version('1.0.2g', 'f3c710c045cdee5fd114feb69feba7aa') + version('1.0.2f', 'b3bf73f507172be9292ea2a8c28b659d') + version('1.0.2e', '5262bfa25b60ed9de9f28d5d52d77fc5') + version('1.0.2d', '38dd619b2e77cbac69b99f52a053d25a') + version('1.0.1u', '130bb19745db2a5a09f22ccbbf7e69d0') + version('1.0.1t', '9837746fcf8a6727d46d22ca35953da1') + version('1.0.1r', '1abd905e079542ccae948af37e393d28') + version('1.0.1h', '8d6d684a9430d5cc98a62a5d8fbda8cf') depends_on("zlib") parallel = False - def url_for_version(self, version): - if '@system' in self.spec: - return '@system (reserved version for system openssl)' - else: - return super(Openssl, self).url_for_version(self.version) - def handle_fetch_error(self, error): tty.warn("Fetching OpenSSL failed. This may indicate that OpenSSL has " "been updated, and the version in your instance of Spack is " diff --git a/var/spack/repos/builtin/packages/opium/package.py b/var/spack/repos/builtin/packages/opium/package.py index 2c81d92cc0..521f917230 100644 --- a/var/spack/repos/builtin/packages/opium/package.py +++ b/var/spack/repos/builtin/packages/opium/package.py @@ -29,7 +29,7 @@ class Opium(Package): """DFT pseudopotential generation project""" homepage = "https://opium.sourceforge.net/index.html" - url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz" + url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz" version('3.8', 'f710c0f869e70352b4a510c31e13bf9f') @@ -37,12 +37,8 @@ class Opium(Package): depends_on('lapack') def install(self, spec, prefix): - options = [ - 'LDFLAGS=%s %s' % ( - to_link_flags(spec['lapack'].lapack_shared_lib), - to_link_flags(spec['blas'].blas_shared_lib) - ) - ] + libs = spec['lapack'].lapack_libs + spec['blas'].blas_libs + options = ['LDFLAGS=%s' % libs.ld_flags] configure(*options) with working_dir("src", create=False): diff --git a/var/spack/repos/builtin/packages/panda/package.py b/var/spack/repos/builtin/packages/panda/package.py new file mode 100644 index 0000000000..e30c2c869d --- /dev/null +++ b/var/spack/repos/builtin/packages/panda/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 Panda(Package): + """PANDA: Parallel AdjaceNcy Decomposition Algorithm""" + homepage = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/index.html" + url = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/downloads/current_panda.tar" + + version('current', 'b06dc312ee56e13eefea9c915b70fcef') + + # Note: Panda can also be built without MPI support + + depends_on("cmake", type="build") + depends_on("mpi") + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake("..", *std_cmake_args) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index 2da20e9dc2..5cf3edb8da 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -38,8 +38,10 @@ class Pango(Package): version('1.36.8', '217a9a753006275215fa9fa127760ece') version('1.40.1', '6fc88c6529890d6c8e03074d57a3eceb') + depends_on("pkg-config", type="build") depends_on("harfbuzz") depends_on("cairo") + depends_on("glib") def install(self, spec, prefix): configure("--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py index 5c4abe1730..90a7490e75 100644 --- a/var/spack/repos/builtin/packages/papi/package.py +++ b/var/spack/repos/builtin/packages/papi/package.py @@ -41,6 +41,7 @@ class Papi(Package): homepage = "http://icl.cs.utk.edu/papi/index.html" url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" + version('5.5.0', '5e1244a04ca031d4cc29b46ce3dd05b5') version('5.4.3', '3211b5a5bb389fe692370f5cf4cc2412') version('5.4.1', '9134a99219c79767a11463a76b0b01a2') version('5.3.0', '367961dd0ab426e5ae367c2713924ffb') diff --git a/var/spack/repos/builtin/packages/parallel/package.py b/var/spack/repos/builtin/packages/parallel/package.py index 2306dace55..81c0195651 100644 --- a/var/spack/repos/builtin/packages/parallel/package.py +++ b/var/spack/repos/builtin/packages/parallel/package.py @@ -26,8 +26,7 @@ from spack import * class Parallel(Package): - """ - GNU parallel is a shell tool for executing jobs in parallel using + """GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. """ diff --git a/var/spack/repos/builtin/packages/paraver/package.py b/var/spack/repos/builtin/packages/paraver/package.py index 1b6e3ce8e6..0a2ffdbb84 100644 --- a/var/spack/repos/builtin/packages/paraver/package.py +++ b/var/spack/repos/builtin/packages/paraver/package.py @@ -32,9 +32,11 @@ class Paraver(Package): is expressed on its input trace format. Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" homepage = "http://www.bsc.es/computer-sciences/performance-tools/paraver" - url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.5.3.tar.gz" + url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.6.2.tar.gz" - version('4.5.3', '625de9ec0d639acd18d1aaa644b38f72') + # NOTE: Paraver provides only latest version for download. + # Don't keep/add older versions. + version('4.6.2', 'c54e124382b597574628b00e31649803') depends_on("boost") # depends_on("extrae") diff --git a/var/spack/repos/builtin/packages/parmetis/package.py b/var/spack/repos/builtin/packages/parmetis/package.py index 2750df2bdb..74e00cc9e0 100644 --- a/var/spack/repos/builtin/packages/parmetis/package.py +++ b/var/spack/repos/builtin/packages/parmetis/package.py @@ -38,21 +38,19 @@ class Parmetis(Package): version('4.0.3', 'f69c479586bf6bb7aff6a9bc0c739628') version('4.0.2', '0912a953da5bb9b5e5e10542298ffdce') - variant('shared', default=True, - description='Enables the build of shared libraries') - variant('debug', default=False, - description='Builds the library in debug mode') - variant('gdb', default=False, description='Enables gdb support') + variant('shared', default=True, description='Enables the build of shared libraries.') + variant('debug', default=False, description='Builds the library in debug mode.') + variant('gdb', default=False, description='Enables gdb support.') - depends_on('cmake@2.8:', type='build') # build dependency + depends_on('cmake@2.8:', type='build') depends_on('mpi') depends_on('metis@5:') patch('enable_external_metis.patch') # bug fixes from PETSc developers - # https://bitbucket.org/petsc/pkg-parmetis/commits/1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b/raw/ + # https://bitbucket.org/petsc/pkg-parmetis/commits/1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b/raw/ # NOQA: E501 patch('pkg-parmetis-1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b.patch') - # https://bitbucket.org/petsc/pkg-parmetis/commits/82409d68aa1d6cbc70740d0f35024aae17f7d5cb/raw/ + # https://bitbucket.org/petsc/pkg-parmetis/commits/82409d68aa1d6cbc70740d0f35024aae17f7d5cb/raw/ # NOQA: E501 patch('pkg-parmetis-82409d68aa1d6cbc70740d0f35024aae17f7d5cb.patch') def url_for_version(self, version): @@ -60,12 +58,10 @@ class Parmetis(Package): return '%s/%sparmetis-%s.tar.gz' % (Parmetis.base_url, verdir, version) def install(self, spec, prefix): - options = [] - options.extend(std_cmake_args) - - build_directory = join_path(self.stage.path, 'spack-build') source_directory = self.stage.source_path + build_directory = join_path(source_directory, 'build') + options = std_cmake_args[:] options.extend([ '-DGKLIB_PATH:PATH=%s/GKlib' % spec['metis'].prefix.include, '-DMETIS_PATH:PATH=%s' % spec['metis'].prefix, diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py index cd1f679062..c391f491eb 100644 --- a/var/spack/repos/builtin/packages/patchelf/package.py +++ b/var/spack/repos/builtin/packages/patchelf/package.py @@ -30,10 +30,12 @@ class Patchelf(Package): ELF executables.""" homepage = "https://nixos.org/patchelf.html" - url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz" + url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz" + list_url = "http://nixos.org/releases/patchelf/" list_depth = 2 + version('0.9', '3c265508526760f233620f35d79c79fc') version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py index 6f306ab0f9..a2236e682b 100644 --- a/var/spack/repos/builtin/packages/pcre/package.py +++ b/var/spack/repos/builtin/packages/pcre/package.py @@ -32,10 +32,10 @@ class Pcre(Package): homepage = "http://www.pcre.org""" url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2" - version('8.36', 'b767bc9af0c20bc9c1fe403b0d41ad97') + version('8.39', 'e3fca7650a0556a2647821679d81f585') version('8.38', '00aabbfe56d5a48b270f999b508c5ad2') - patch("intel.patch") + patch("intel.patch", when='@8.38') variant('utf', default=True, description='Enable support for UTF-8/16/32, ' diff --git a/var/spack/repos/builtin/packages/pdt/package.py b/var/spack/repos/builtin/packages/pdt/package.py index 074d28540b..bed01aeefb 100644 --- a/var/spack/repos/builtin/packages/pdt/package.py +++ b/var/spack/repos/builtin/packages/pdt/package.py @@ -22,7 +22,6 @@ # 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 * @@ -36,14 +35,16 @@ class Pdt(Package): """ homepage = "https://www.cs.uoregon.edu/research/pdt/home.php" + url = "http://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdtoolkit-3.22.1.tar.gz" - version('3.21', '3092ca0d8833b69992c17e63ae66c263') - version('3.19', '5c5e1e6607086aa13bf4b1b9befc5864') - - def url_for_version(self, version): - return 'https://www.cs.uoregon.edu/research/tau/pdt_releases/pdtoolkit-%s.tar.gz' % (version) + version('3.22.1', 'b56b9b3e621161c7fd9e4908b944840d') + version('3.22', '982d667617802962a1f7fe6c4c31184f') + version('3.21', '3092ca0d8833b69992c17e63ae66c263') + version('3.20', 'c3edabe202926abe04552e33cd39672d') + version('3.19', '5c5e1e6607086aa13bf4b1b9befc5864') + version('3.18.1', 'e401534f5c476c3e77f05b7f73b6c4f2') def install(self, spec, prefix): configure('-prefix=%s' % prefix) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 66e1abdf1a..4ac96b8127 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -22,13 +22,14 @@ # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## + import os +import sys from spack import * class Petsc(Package): - """ - PETSc is a suite of data structures and routines for the scalable + """PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. """ @@ -36,6 +37,7 @@ class Petsc(Package): homepage = "http://www.mcs.anl.gov/petsc/index.html" url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.5.3.tar.gz" + version('3.7.4', 'aaf94fa54ef83022c14091f10866eedf') version('3.7.2', '50da49867ce7a49e7a0c1b37f4ec7b34') version('3.6.4', '7632da2375a3df35b8891c9526dbdde7') version('3.6.3', '91dd3522de5a5ef039ff8f50800db606') @@ -73,7 +75,7 @@ class Petsc(Package): depends_on('python @2.6:2.7') # Other dependencies - depends_on('boost', when='+boost') + depends_on('boost', when='@:3.5+boost') depends_on('metis@5:', when='+metis') depends_on('hdf5+mpi', when='+hdf5+mpi') @@ -115,10 +117,17 @@ class Petsc(Package): '--with-mpi=1', '--with-mpi-dir=%s' % self.spec['mpi'].prefix, ] + if sys.platform != "darwin": + compiler_opts.extend([ + '--with-cpp=cpp', + '--with-cxxcpp=cpp', + ]) return compiler_opts def install(self, spec, prefix): - options = ['--with-ssl=0'] + options = ['--with-ssl=0', + '--download-c2html=0', + '--download-hwloc=0'] options.extend(self.mpi_dependent_options()) options.extend([ '--with-precision=%s' % ( @@ -126,9 +135,15 @@ class Petsc(Package): '--with-scalar-type=%s' % ( 'complex' if '+complex' in spec else 'real'), '--with-shared-libraries=%s' % ('1' if '+shared' in spec else '0'), - '--with-debugging=%s' % ('1' if '+debug' in spec else '0'), - '--with-blas-lapack-dir=%s' % spec['lapack'].prefix + '--with-debugging=%s' % ('1' if '+debug' in spec else '0') ]) + # Make sure we use exactly the same Blas/Lapack libraries + # across the DAG. To that end list them explicitly + lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs + options.extend([ + '--with-blas-lapack-lib=%s' % lapack_blas.joined() + ]) + # Activates library support if needed for library in ('metis', 'boost', 'hdf5', 'hypre', 'parmetis', 'mumps', 'scalapack'): diff --git a/var/spack/repos/builtin/packages/pexsi/make.inc b/var/spack/repos/builtin/packages/pexsi/make.inc new file mode 100644 index 0000000000..a8020fb370 --- /dev/null +++ b/var/spack/repos/builtin/packages/pexsi/make.inc @@ -0,0 +1,79 @@ +# Different compiling and linking options. +SUFFIX = linux + +# Compiler and tools +################################################################ +CC = @MPICC +CXX = @MPICXX +FC = @MPIFC +LOADER = @MPICXX + + +AR = ar +ARFLAGS = rvcu +# For System V based machine without ranlib, like Cray and SGI, +# use touch instead. +RANLIB = @RANLIB + +CP = cp +RM = rm +RMFLAGS = -f +################################################################ + +# PEXSI directory +PEXSI_DIR = @PEXSI_STAGE + +# Required libraries directories +DSUPERLU_DIR = @SUPERLU_PREFIX +METIS_DIR = @METIS_PREFIX +PARMETIS_DIR = @PARMETIS_PREFIX +LAPACK_DIR = @LAPACK_PREFIX +BLAS_DIR = @BLAS_PREFIX + +# Includes +PEXSI_INCLUDE = -I${PEXSI_DIR}/include +DSUPERLU_INCLUDE = -I${DSUPERLU_DIR}/include +INCLUDES = ${PEXSI_INCLUDE} ${DSUPERLU_INCLUDE} + +# Libraries +CPP_LIB = @STDCXX_LIB @MPICXX_LIB +#GFORTRAN_LIB = /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a +LAPACK_LIB = @LAPACK_LIBS +BLAS_LIB = @BLAS_LIBS +DSUPERLU_LIB = ${DSUPERLU_DIR}/lib/libsuperlu_dist.a +PEXSI_LIB = ${PEXSI_DIR}/src/libpexsi_${SUFFIX}.a + +# Graph partitioning libraries +METIS_LIB = -L${METIS_DIR}/lib -lmetis +PARMETIS_LIB = -L${PARMETIS_DIR}/libparmetis -lparmetis + +# Different compiling and linking options. +COMPILE_DEF = -DDEBUG=0 -DRELEASE +COMPILE_FLAG = -O3 -w + +LIBS = ${PEXSI_LIB} ${DSUPERLU_LIB} ${PARMETIS_LIB} ${METIS_LIB} ${LAPACK_LIB} ${BLAS_LIB} ${GFORTRAN_LIB} + +COMPILE_DEF += -DAdd_ + +CPPFLAG = -std=c++11 + +CFLAGS = ${COMPILE_FLAG} ${PROFILE_FLAG} ${INCLUDES} +FFLAGS = ${COMPILE_FLAG} ${PROFILE_FLAG} ${INCLUDES} +CXXFLAGS = ${COMPILE_FLAG} ${CPPFLAG} ${PROFILE_FLAG} ${INCLUDES} +CCDEFS = ${COMPILE_DEF} +CPPDEFS = ${COMPILE_DEF} +LOADOPTS = ${PROFILE_FLAG} ${LIBS} +FLOADOPTS = ${PROFILE_FLAG} ${LIBS} ${CPP_LIB} + +# Generate auto-dependencies +%.d: %.c + @set -e; rm -f $@; \ + $(CC) -M $(CCDEFS) $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@;\ + rm -f $@.$$$$ + +%.d: %.cpp + @set -e; rm -f $@; \ + $(CXX) -M $(CPPDEFS) $(CXXFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@;\ + rm -f $@.$$$$ diff --git a/var/spack/repos/builtin/packages/pexsi/package.py b/var/spack/repos/builtin/packages/pexsi/package.py new file mode 100644 index 0000000000..9fc71d4c52 --- /dev/null +++ b/var/spack/repos/builtin/packages/pexsi/package.py @@ -0,0 +1,103 @@ +############################################################################## +# 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 inspect +import os.path +import shutil + +from spack import * + + +class Pexsi(Package): + """The PEXSI library is written in C++, and uses message passing interface + (MPI) to parallelize the computation on distributed memory computing + systems and achieve scalability on more than 10,000 processors. + + The Pole EXpansion and Selected Inversion (PEXSI) method is a fast + method for electronic structure calculation based on Kohn-Sham density + functional theory. It efficiently evaluates certain selected elements + of matrix functions, e.g., the Fermi-Dirac function of the KS Hamiltonian, + which yields a density matrix. It can be used as an alternative to + diagonalization methods for obtaining the density, energy and forces + in electronic structure calculations. + """ + homepage = 'https://math.berkeley.edu/~linlin/pexsi/index.html' + url = 'https://math.berkeley.edu/~linlin/pexsi/download/pexsi_v0.9.0.tar.gz' + + version('0.9.0', '0c1a2de891ba1445dfc184b2fa270ed8') + + depends_on('parmetis') + depends_on('superlu-dist@3.3', when='@0.9.0') + + parallel = False + + def install(self, spec, prefix): + + substitutions = { + '@MPICC': self.spec['mpi'].mpicc, + '@MPICXX': self.spec['mpi'].mpicxx, + '@MPIFC': self.spec['mpi'].mpifc, + '@MPICXX_LIB': ' '.join(self.spec['mpi'].mpicxx_shared_libs), + '@RANLIB': 'ranlib', + '@PEXSI_STAGE': self.stage.source_path, + '@SUPERLU_PREFIX': self.spec['superlu-dist'].prefix, + '@METIS_PREFIX': self.spec['metis'].prefix, + '@PARMETIS_PREFIX': self.spec['parmetis'].prefix, + '@LAPACK_PREFIX': self.spec['lapack'].prefix, + '@BLAS_PREFIX': self.spec['blas'].prefix, + '@LAPACK_LIBS': self.spec['lapack'].lapack_libs.joined(), + '@BLAS_LIBS': self.spec['lapack'].blas_libs.joined(), + '@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs) + } + + template = join_path( + os.path.dirname(inspect.getmodule(self).__file__), + 'make.inc' + ) + makefile = join_path( + self.stage.source_path, + 'make.inc' + ) + shutil.copy(template, makefile) + for key, value in substitutions.items(): + filter_file(key, value, makefile) + + make() + # 'make install' does not exist, despite what documentation says + mkdirp(self.prefix.lib) + install( + join_path(self.stage.source_path, 'src', 'libpexsi_linux.a'), + join_path(self.prefix.lib, 'libpexsi.a') + ) + install_tree( + join_path(self.stage.source_path, 'include'), + self.prefix.include + ) + # fortran "interface" + make('-C', 'fortran') + install_tree( + join_path(self.stage.source_path, 'fortran'), + join_path(self.prefix, 'fortran') + ) diff --git a/var/spack/repos/builtin/packages/pfft/package.py b/var/spack/repos/builtin/packages/pfft/package.py new file mode 100644 index 0000000000..575f0af3c5 --- /dev/null +++ b/var/spack/repos/builtin/packages/pfft/package.py @@ -0,0 +1,64 @@ +############################################################################## +# 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 Pfft(AutotoolsPackage): + """PFFT is a software library for computing massively parallel, + fast Fourier transformations on distributed memory architectures. + PFFT can be understood as a generalization of FFTW-MPI to + multidimensional data decomposition.""" + + homepage = "https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software.php.en" + url = "https://www-user.tu-chemnitz.de/~potts/workgroup/pippig/software/pfft-1.0.8-alpha.tar.gz" + + version('1.0.8-alpha', '46457fbe8e38d02ff87d439b63dc0709') + + depends_on('fftw+mpi+pfft_patches') + depends_on('mpi') + + def install(self, spec, prefix): + options = ['--prefix={0}'.format(prefix)] + if not self.compiler.f77 or not self.compiler.fc: + options.append("--disable-fortran") + + configure(*options) + make() + if self.run_tests: + make("check") + make("install") + + if '+float' in spec['fftw']: + configure('--enable-float', *options) + make() + if self.run_tests: + make("check") + make("install") + if '+long_double' in spec['fftw']: + configure('--enable-long-double', *options) + make() + if self.run_tests: + make("check") + make("install") diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py index c58d563682..6fa8457dc9 100644 --- a/var/spack/repos/builtin/packages/pgi/package.py +++ b/var/spack/repos/builtin/packages/pgi/package.py @@ -36,7 +36,7 @@ class Pgi(Package): architecture) to the format: pgi-<version>.tar.gz. Spack will search your current directory for a file of this format. Alternatively, add this file to a mirror so that Spack can find it. For instructions on how to - set up a mirror, see http://software.llnl.gov/spack/mirrors.html""" + set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "http://www.pgroup.com/" url = "file://%s/pgi-16.3.tar.gz" % os.getcwd() diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py new file mode 100644 index 0000000000..dbf949f000 --- /dev/null +++ b/var/spack/repos/builtin/packages/piranha/package.py @@ -0,0 +1,73 @@ +############################################################################## +# 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 Piranha(Package): + """Piranha is a computer-algebra library for the symbolic manipulation of + sparse multivariate polynomials and other closely-related symbolic objects + (such as Poisson series).""" + + homepage = "https://bluescarni.github.io/piranha/sphinx/" + url = "https://github.com/bluescarni/piranha/archive/v0.5.tar.gz" + + version('0.5', '99546bae2be115737b6316751eb0b84d') + version('develop', git='https://github.com/bluescarni/piranha.git') + + variant('python', default=True, + description='Build the Python bindings') + + # Build dependencies + depends_on('cmake@3.0:', type='build') + extends('python', when='+pyranha') + depends_on('python@2.6:', type='build', when='+pyranha') + + # Other dependencies + depends_on('boost+iostreams+regex+serialization', + when='~python') + depends_on('boost+iostreams+regex+serialization+python', + when='+python') + depends_on('bzip2') + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpfr') # Could also be built against mpir + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + # Python bindings + options.extend([ + '-DBUILD_PYRANHA=%s' % ( + 'ON' if '+python' in spec else 'OFF'), + '-DBUILD_TESTS:BOOL=ON', + ]) + + with working_dir('spack-build', create=True): + cmake('..', *options) + + make() + make('install') + if self.run_tests: + make('test') diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py index 3d7e332a3f..c780fd64aa 100644 --- a/var/spack/repos/builtin/packages/pixman/package.py +++ b/var/spack/repos/builtin/packages/pixman/package.py @@ -23,21 +23,32 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import sys class Pixman(Package): """The Pixman package contains a library that provides low-level - pixel manipulation features such as image compositing and - trapezoid rasterization.""" + pixel manipulation features such as image compositing and + trapezoid rasterization.""" + homepage = "http://www.pixman.org" url = "http://cairographics.org/releases/pixman-0.32.6.tar.gz" + version('0.34.0', 'e80ebae4da01e77f68744319f01d52a3') version('0.32.6', '3a30859719a41bd0f5cccffbfefdd4c2') - depends_on("libpng") + depends_on('pkg-config', type='build') + depends_on('libpng') def install(self, spec, prefix): - configure("--prefix=%s" % prefix, - "--disable-gtk") + config_args = ["--prefix=" + prefix, + "--disable-gtk"] + + if sys.platform == "darwin": + config_args.append("--disable-mmx") + + configure(*config_args) + make() - make("install") + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py index 45e8e8b74e..a98f65fb07 100644 --- a/var/spack/repos/builtin/packages/pkg-config/package.py +++ b/var/spack/repos/builtin/packages/pkg-config/package.py @@ -30,23 +30,27 @@ class PkgConfig(Package): and libraries""" homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/" - url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz" + url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz" version('0.29.1', 'f739a28cae4e0ca291f82d1d41ef107d') version('0.28', 'aa3c86e67551adc3ac865160e34a2a0d') parallel = False + variant('internal_glib', default=True, + description='Builds with internal glib') # The following patch is needed for gcc-6.1 patch('g_date_strftime.patch') def install(self, spec, prefix): - configure("--prefix={0}".format(prefix), - "--enable-shared", - # There's a bootstrapping problem here; - # glib uses pkg-config as well, so break - # the cycle by using the internal glib. - "--with-internal-glib") + args = ["--prefix={0}".format(prefix), + "--enable-shared"] + if "+internal_glib" in spec: + # There's a bootstrapping problem here; + # glib uses pkg-config as well, so break + # the cycle by using the internal glib. + args.append("--with-internal-glib") + configure(*args) make() make("install") diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py index b670b4c2b8..60dfdf7405 100644 --- a/var/spack/repos/builtin/packages/plumed/package.py +++ b/var/spack/repos/builtin/packages/plumed/package.py @@ -45,10 +45,20 @@ class Plumed(Package): version('2.2.3', 'a6e3863e40aac07eb8cf739cbd14ecf8') + # Variants. PLUMED by default builds a number of optional modules. + # The ones listed here are not built by default for various reasons, + # such as stability, lack of testing, or lack of demand. + variant('crystallization', default=False, + description='Build support for optional crystallization module.') + variant('imd', default=False, + description='Build support for optional imd module.') + variant('manyrestraints', default=False, + description='Build support for optional manyrestraints module.') variant('shared', default=True, description='Builds shared libraries') variant('mpi', default=True, description='Activates MPI support') variant('gsl', default=True, description='Activates GSL support') + # Dependencies. LAPACK and BLAS are recommended but not essential. depends_on('zlib') depends_on('blas') depends_on('lapack') @@ -56,6 +66,8 @@ class Plumed(Package): depends_on('mpi', when='+mpi') depends_on('gsl', when='+gsl') + depends_on('autoconf', type='build') + # Dictionary mapping PLUMED versions to the patches it provides # interactively plumed_patches = { @@ -88,6 +100,12 @@ class Plumed(Package): module.plumed = Executable(join_path(self.spec.prefix.bin, 'plumed')) def install(self, spec, prefix): + # This part is needed to avoid linking with gsl cblas + # interface which will mask the cblas interface + # provided by optimized libraries due to linking order + filter_file('-lgslcblas', '', 'configure.ac') + autoreconf('-ivf') + # From plumed docs : # Also consider that this is different with respect to what some other # configure script does in that variables such as MPICXX are @@ -96,17 +114,45 @@ class Plumed(Package): # with MPI you should use: # # > ./configure CXX="$MPICXX" - configure_opts = [ - 'CXX={0}'.format(spec['mpi'].mpicxx) - ] if '+mpi' in self.spec else [] + configure_opts = ['--prefix=' + prefix] + + # If using MPI then ensure the correct compiler wrapper is used. + if '+mpi' in spec: + configure_opts.extend([ + '--enable-mpi', + 'CXX={0}'.format(spec['mpi'].mpicxx) + ]) + + # If the MPI dependency is provided by the intel-mpi package then + # the following additional argument is required to allow it to + # build. + if spec.satisfies('^intel-mpi'): + configure_opts.extend([ + 'STATIC_LIBS=-mt_mpi' + ]) + # Additional arguments configure_opts.extend([ - '--prefix={0}'.format(prefix), '--enable-shared={0}'.format('yes' if '+shared' in spec else 'no'), - '--enable-mpi={0}'.format('yes' if '+mpi' in spec else 'no'), '--enable-gsl={0}'.format('yes' if '+gsl' in spec else 'no') ]) + # Construct list of optional modules + module_opts = [] + module_opts.extend([ + '+crystallization' if ( + '+crystallization' in spec) else '-crystallization', + '+imd' if '+imd' in spec else '-imd', + '+manyrestraints' if ( + '+manyrestraints' in spec) else '-manyrestraints' + ]) + + # If we have specified any optional modules then add the argument to + # enable or disable them. + if module_opts: + configure_opts.extend([ + '--enable-modules={0}'.format("".join(module_opts))]) + configure(*configure_opts) make() make('install') diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py new file mode 100644 index 0000000000..4c0370a7ef --- /dev/null +++ b/var/spack/repos/builtin/packages/pngwriter/package.py @@ -0,0 +1,58 @@ +############################################################################## +# 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 Pngwriter(Package): + """PNGwriter is a very easy to use open source graphics library that uses + PNG as its output format. The interface has been designed to be as simple + and intuitive as possible. It supports plotting and reading pixels in the + RGB (red, green, blue), HSV (hue, saturation, value/brightness) and CMYK + (cyan, magenta, yellow, black) colour spaces, basic shapes, scaling, + bilinear interpolation, full TrueType antialiased and rotated text support, + bezier curves, opening existing PNG images and more. + """ + + homepage = "http://pngwriter.sourceforge.net/" + url = "https://github.com/pngwriter/pngwriter/archive/0.5.6.tar.gz" + + version('dev', branch='dev', + git='https://github.com/pngwriter/pngwriter.git') + version('master', branch='master', + git='https://github.com/pngwriter/pngwriter.git') + version('0.5.6', 'c13bd1fdc0e331a246e6127b5f262136') + + depends_on('cmake', type='build') + depends_on('libpng') + depends_on('zlib') + depends_on('freetype') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('-DCMAKE_INSTALL_PREFIX=%s' % prefix, + '..', *std_cmake_args) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/polymake/package.py b/var/spack/repos/builtin/packages/polymake/package.py new file mode 100644 index 0000000000..c0bb9082ae --- /dev/null +++ b/var/spack/repos/builtin/packages/polymake/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 * + + +class Polymake(Package): + """polymake is open source software for research in polyhedral geometry""" + homepage = "https://polymake.org/doku.php" + url = "https://polymake.org/lib/exe/fetch.php/download/polymake-3.0r1.tar.bz2" + + version('3.0r2', '08584547589f052ea50e2148109202ab') + version('3.0r1', '63ecbecf9697c6826724d8a041d2cac0') + + # Note: Could also be built with nauty instead of bliss + + depends_on("bliss") + depends_on("boost") + depends_on("cddlib") + depends_on("gmp") + depends_on("lrslib") + depends_on("mpfr") + depends_on("ppl") + + def install(self, spec, prefix): + configure("--prefix=%s" % prefix, + "--with-bliss=%s" % spec["bliss"].prefix, + "--with-boost=%s" % spec["boost"].prefix, + "--with-cdd=%s" % spec["cddlib"].prefix, + "--with-gmp=%s" % spec["gmp"].prefix, + "--with-lrs=%s" % spec["lrslib"].prefix, + "--with-mpfr=%s" % spec["mpfr"].prefix, + "--with-ppl=%s" % spec["ppl"].prefix) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/porta/Makefile.spack.patch b/var/spack/repos/builtin/packages/porta/Makefile.spack.patch new file mode 100644 index 0000000000..1cd8fcc3c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/porta/Makefile.spack.patch @@ -0,0 +1,23 @@ +--- old/src/Makefile.spack ++++ new/src/Makefile.spack +@@ -0,0 +1,20 @@ ++# Set PREFIX to the install location for both building and installing ++ ++all: valid xporta ++ ++valid: common.lo arith.lo inout.lo log.lo valid.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++ ++xporta: common.lo arith.lo inout.lo log.lo \ ++ porta.lo four_mot.lo portsort.lo largecalc.lo mp.lo ++ libtool --mode=link --tag=CC cc -g -O3 -o $@ $^ ++ ++%.lo: %.c ++ libtool --mode=compile --tag=CC cc -g -O3 -c $*.c ++ ++install: ++ mkdir -p $(PREFIX)/bin ++ libtool --mode=install cp valid $(PREFIX)/bin/valid ++ libtool --mode=install cp xporta $(PREFIX)/bin/xporta ++ ++.PHONY: all install diff --git a/var/spack/repos/builtin/packages/porta/package.py b/var/spack/repos/builtin/packages/porta/package.py new file mode 100644 index 0000000000..b620daf78f --- /dev/null +++ b/var/spack/repos/builtin/packages/porta/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 Porta(Package): + """PORTA is a collection of routines for analyzing polytopes and + polyhedra""" + homepage = "http://porta.zib.de" + url = "http://porta.zib.de/porta-1.4.1.tgz" + + version('1.4.1', '585179bf19d214ed364663a5d17bd5fc') + + depends_on("libtool", type="build") + + patch("Makefile.spack.patch") + + def install(self, spec, prefix): + with working_dir("src"): + make("-f", "Makefile.spack", "PREFIX=%s" % prefix) + make("-f", "Makefile.spack", "PREFIX=%s" % prefix, "install") diff --git a/var/spack/repos/builtin/packages/presentproto/package.py b/var/spack/repos/builtin/packages/presentproto/package.py new file mode 100644 index 0000000000..ca145abb6b --- /dev/null +++ b/var/spack/repos/builtin/packages/presentproto/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 Presentproto(Package): + """Present protocol specification and Xlib/Xserver headers.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/presentproto/" + url = "https://www.x.org/archive/individual/proto/presentproto-1.0.tar.gz" + + version('1.0', '57eaf4bb58e86476ec89cfb42d675961') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/printproto/package.py b/var/spack/repos/builtin/packages/printproto/package.py new file mode 100644 index 0000000000..151924dd49 --- /dev/null +++ b/var/spack/repos/builtin/packages/printproto/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Printproto(Package): + """Xprint extension to the X11 protocol - a portable, network-transparent + printing system.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/printproto" + url = "https://www.x.org/archive/individual/proto/printproto-1.0.5.tar.gz" + + version('1.0.5', '5afeb3a7de8a14b417239a14ea724268') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/proxymngr/package.py b/var/spack/repos/builtin/packages/proxymngr/package.py new file mode 100644 index 0000000000..896f4a516b --- /dev/null +++ b/var/spack/repos/builtin/packages/proxymngr/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Proxymngr(Package): + """The proxy manager (proxymngr) is responsible for resolving requests from + xfindproxy (and other similar clients), starting new proxies when + appropriate, and keeping track of all of the available proxy services. + The proxy manager strives to reuse existing proxies whenever possible.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/proxymngr" + url = "https://www.x.org/archive/individual/app/proxymngr-1.0.4.tar.gz" + + version('1.0.4', 'a165cf704f6a413f0bacf65ea470331f') + + depends_on('libice') + depends_on('libxt') + depends_on('lbxproxy') + + depends_on('xproto@7.0.17:', type='build') + depends_on('xproxymanagementprotocol', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py index 6296d0cee6..566aa50f44 100644 --- a/var/spack/repos/builtin/packages/psi4/package.py +++ b/var/spack/repos/builtin/packages/psi4/package.py @@ -32,7 +32,7 @@ class Psi4(Package): a variety of molecular properties.""" homepage = "http://www.psicode.org/" - url = "https://github.com/psi4/psi4/archive/0.5.tar.gz" + url = "https://github.com/psi4/psi4/archive/0.5.tar.gz" version('0.5', '53041b8a9be3958384171d0d22f9fdd0') @@ -62,9 +62,10 @@ class Psi4(Package): def install(self, spec, prefix): cmake_args = [ '-DBLAS_TYPE={0}'.format(spec['blas'].name.upper()), - '-DBLAS_LIBRARIES={0}'.format(spec['blas'].blas_shared_lib), + '-DBLAS_LIBRARIES={0}'.format(spec['blas'].blas_libs.joined()), '-DLAPACK_TYPE={0}'.format(spec['lapack'].name.upper()), - '-DLAPACK_LIBRARIES={0}'.format(spec['lapack'].lapack_shared_lib), + '-DLAPACK_LIBRARIES={0}'.format( + spec['lapack'].lapack_libs.joined()), '-DBOOST_INCLUDEDIR={0}'.format(spec['boost'].prefix.include), '-DBOOST_LIBRARYDIR={0}'.format(spec['boost'].prefix.lib), '-DENABLE_CHEMPS2=OFF' @@ -90,9 +91,9 @@ class Psi4(Package): kwargs = {'ignore_absent': True, 'backup': False, 'string': True} - cc_files = ['bin/psi4-config'] + cc_files = ['bin/psi4-config'] cxx_files = ['bin/psi4-config', 'include/psi4/psiconfig.h'] - template = 'share/psi4/plugin/Makefile.template' + template = 'share/psi4/plugin/Makefile.template' for filename in cc_files: filter_file(os.environ['CC'], self.compiler.cc, diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py index 1071a3c209..d0b6857aaf 100644 --- a/var/spack/repos/builtin/packages/py-3to2/package.py +++ b/var/spack/repos/builtin/packages/py-3to2/package.py @@ -37,4 +37,4 @@ class Py3to2(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py index ca59105b4c..73e144b00e 100644 --- a/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py +++ b/var/spack/repos/builtin/packages/py-SQLAlchemy/package.py @@ -36,4 +36,4 @@ class PySqlalchemy(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-alabaster/package.py b/var/spack/repos/builtin/packages/py-alabaster/package.py new file mode 100644 index 0000000000..24cb5dce22 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-alabaster/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyAlabaster(Package): + """Alabaster is a visually (c)lean, responsive, configurable theme + for the Sphinx documentation system.""" + + homepage = "https://pypi.python.org/pypi/alabaster" + url = "https://pypi.python.org/packages/source/a/alabaster/alabaster-0.7.9.tar.gz" + + version('0.7.9', 'b29646a8bbe7aa52830375b7d17b5d7a', + url="https://pypi.python.org/packages/71/c3/70da7d8ac18a4f4c502887bd2549e05745fa403e2cd9d06a8a9910a762bc/alabaster-0.7.9.tar.gz") + + extends('python') + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py index 2549972a6d..64312da9dc 100644 --- a/var/spack/repos/builtin/packages/py-argcomplete/package.py +++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py @@ -36,4 +36,4 @@ class PyArgcomplete(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py index a47b7ffa33..ff5683c705 100644 --- a/var/spack/repos/builtin/packages/py-astroid/package.py +++ b/var/spack/repos/builtin/packages/py-astroid/package.py @@ -42,4 +42,4 @@ class PyAstroid(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py index 25dce87e49..1565db0bdd 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -56,6 +56,5 @@ class PyAstropy(Package): depends_on('expat') def install(self, spec, prefix): - python('setup.py', 'build', '--use-system-cfitsio', - '--use-system-expat') - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('build', '--use-system-cfitsio', '--use-system-expat') + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py index f6c08e2728..6d093f32f6 100644 --- a/var/spack/repos/builtin/packages/py-autopep8/package.py +++ b/var/spack/repos/builtin/packages/py-autopep8/package.py @@ -1,16 +1,53 @@ +############################################################################## +# 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 PyAutopep8(Package): - """Automatic pep8 formatter""" + """autopep8 automatically formats Python code to conform to the + PEP 8 style guide.""" + homepage = "https://github.com/hhatto/autopep8" - url = "https://github.com/hhatto/autopep8/archive/ver1.2.2.tar.gz" + url = "https://github.com/hhatto/autopep8/archive/v1.2.4.tar.gz" + version('1.2.4', '0458db85159a9e1b45f3e71ce6c158da') version('1.2.2', 'def3d023fc9dfd1b7113602e965ad8e1') - extends('python') + extends('python', ignore='bin/pep8') + depends_on('python@2.6:2.7,3.2:') + + depends_on('py-pycodestyle@1.5.7:1.7.0', type=nolink) + depends_on('py-setuptools', type='build') - depends_on('py-pep8', type=nolink) + + def url_for_version(self, version): + url = "https://github.com/hhatto/autopep8/archive/{0}{1}.tar.gz" + if version >= Version('1.2.3'): + return url.format('v', version) + else: + return url.format('ver', version) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py new file mode 100644 index 0000000000..8beb216fd3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-babel/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 PyBabel(Package): + """Babel is an integrated collection of utilities that assist in + internationalizing and localizing Python applications, with an + emphasis on web-based applications.""" + + homepage = "http://babel.pocoo.org/en/latest/" + url = "https://pypi.python.org/packages/source/B/Babel/Babel-2.3.4.tar.gz" + + version('2.3.4', 'afa20bc55b0e991833030129ad498f35', + url="https://pypi.python.org/packages/6e/96/ba2a2462ed25ca0e651fb7b66e7080f5315f91425a07ea5b34d7c870c114/Babel-2.3.4.tar.gz") + + extends('python') + + depends_on('py-setuptools', type='build') + depends_on('py-pytz', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py index 9c7f6454df..3f5bf989c1 100644 --- a/var/spack/repos/builtin/packages/py-basemap/package.py +++ b/var/spack/repos/builtin/packages/py-basemap/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import os class PyBasemap(Package): @@ -37,10 +38,83 @@ class PyBasemap(Package): extends('python') depends_on('py-setuptools', type='build') depends_on('py-numpy', type=nolink) - depends_on('py-matplotlib+gui', type=nolink) + depends_on('py-matplotlib', type=nolink) depends_on('pil', type=nolink) depends_on("geos") def install(self, spec, prefix): env['GEOS_DIR'] = spec['geos'].prefix - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) + + # We are not sure if this fix is needed before Python 3.5.2. + # If it is needed, this test should be changed. + # See: https://github.com/LLNL/spack/pull/1964 + if spec['python'].version >= Version('3.5.2'): + # Use symlinks to join the two mpl_toolkits/ directories into + # one, inside of basemap. This is because Basemap tries to + # "add to" an existing package in Matplotlib, which is only + # legal Python for "Implicit Namespace Packages": + # https://www.python.org/dev/peps/pep-0420/ + # https://github.com/Homebrew/homebrew-python/issues/112 + # In practice, Python will see only the basemap version of + # mpl_toolkits + path_m = find_package_dir( + spec['py-matplotlib'].prefix, 'mpl_toolkits') + path_b = find_package_dir(spec.prefix, 'mpl_toolkits') + link_dir(path_m, path_b) + + +def find_package_dir(spack_package_root, name): + + """Finds directory with a specific name, somewhere inside a Spack + package. + + spack_package_root: + Root directory to start searching + oldname: + Original name of package (not fully qualified, just the leaf) + newname: + What to rename it to + + """ + for root, dirs, files in os.walk(spack_package_root): + path = os.path.join(root, name) + + # Make sure it's a directory + if not os.path.isdir(path): + continue + + # Make sure it's really a package + if not os.path.exists(os.path.join(path, '__init__.py')): + continue + + return path + + return None + + +def link_dir(src_root, dest_root, link=os.symlink): + """Link all files in src_root into directory dest_root""" + + for src_path, dirnames, filenames in os.walk(src_root): + if not filenames: + continue # avoid explicitly making empty dirs + + # Avoid internal Python stuff + src_leaf = os.path.split(src_path)[1] + if src_leaf.startswith('__'): + continue + + # Make sure the destination directory exists + dest_path = os.path.join(dest_root, src_path[len(src_root) + 1:]) + try: + os.makedirs(dest_path) + except: + pass + + # Link all files from src to dest directory + for fname in filenames: + src = os.path.join(src_path, fname) + dst = os.path.join(dest_path, fname) + if not os.path.exists(dst): + link(src, dst) diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py index 64368fe70d..71014b5bdb 100644 --- a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py +++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py @@ -37,5 +37,7 @@ class PyBeautifulsoup4(Package): extends('python') + depends_on('py-setuptools', type='build') + def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py index c3edf9735b..9e1b693a0d 100644 --- a/var/spack/repos/builtin/packages/py-biopython/package.py +++ b/var/spack/repos/builtin/packages/py-biopython/package.py @@ -41,4 +41,4 @@ class PyBiopython(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py index e6fc6aa983..700c0ff4b3 100644 --- a/var/spack/repos/builtin/packages/py-blessings/package.py +++ b/var/spack/repos/builtin/packages/py-blessings/package.py @@ -37,4 +37,4 @@ class PyBlessings(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py index ad2ee749d3..20d78846bb 100644 --- a/var/spack/repos/builtin/packages/py-bottleneck/package.py +++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py @@ -36,4 +36,4 @@ class PyBottleneck(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-cclib/package.py b/var/spack/repos/builtin/packages/py-cclib/package.py new file mode 100644 index 0000000000..33b1d25c7e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cclib/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 PyCclib(Package): + """Open source library for parsing and interpreting the results of + computational chemistry packages""" + + homepage = "https://cclib.github.io/" + url = "https://github.com/cclib/cclib/releases/download/v1.5/cclib-1.5.tar.gz" + + version('1.5', 'c06940101c4796bce82036b13fecb73c') + + extends('python') + + depends_on('py-numpy@1.5:', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py index 3c1044783f..5cd983b343 100644 --- a/var/spack/repos/builtin/packages/py-cffi/package.py +++ b/var/spack/repos/builtin/packages/py-cffi/package.py @@ -22,6 +22,8 @@ # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## +import os + from spack import * @@ -39,4 +41,12 @@ class PyCffi(Package): depends_on('libffi') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + # This sets the compiler (and flags) that distutils will use + # to create the final shared library. It will use the + # compiler specified by the environment variable 'CC' for all + # other compilation. We are setting the 'LDSHARED" to the + # spack compiler wrapper plus a few extra flags necessary for + # building the shared library. + os.environ['LDSHARED'] = "{0} -shared -pthread".format(spack_cc) + + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py new file mode 100644 index 0000000000..1ad4ed619e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-configparser/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 PyConfigparser(Package): + """This library brings the updated configparser from Python 3.5 to + Python 2.6-3.5.""" + + homepage = "https://pypi.python.org/pypi/configparser" + url = "https://pypi.python.org/packages/source/c/configparser/configparser-3.5.0.tar.gz" + + version('3.5.0', 'cfdd915a5b7a6c09917a64a573140538', + url="https://pypi.python.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz") + + extends('python') + depends_on('python@2.6:2.7,3.4:') + + depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=nolink) + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py index c2a698b0bd..8cd8440b7e 100644 --- a/var/spack/repos/builtin/packages/py-coverage/package.py +++ b/var/spack/repos/builtin/packages/py-coverage/package.py @@ -27,7 +27,7 @@ from spack import * class PyCoverage(Package): """ Testing coverage checker for python """ - # FIXME: add a proper url for your package's homepage here. + homepage = "http://nedbatchelder.com/code/coverage/" url = "https://pypi.python.org/packages/source/c/coverage/coverage-4.0a6.tar.gz" @@ -38,4 +38,4 @@ class PyCoverage(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py index 5f50e3b6c2..5b0394a138 100644 --- a/var/spack/repos/builtin/packages/py-csvkit/package.py +++ b/var/spack/repos/builtin/packages/py-csvkit/package.py @@ -44,4 +44,4 @@ class PyCsvkit(Package): depends_on('py-openpyxl', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py new file mode 100644 index 0000000000..16da057f21 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cycler/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 PyCycler(Package): + """Composable style cycles.""" + + homepage = "http://matplotlib.org/cycler/" + url = "https://github.com/matplotlib/cycler/archive/v0.10.0.tar.gz" + + version('0.10.0', '83dd0df7810e838b59e4dd9fa6e2d198') + + extends('python') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 4b3e1cabe1..e532286081 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -40,4 +40,4 @@ class PyCython(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py index 4bc2c6fc99..c72046b627 100644 --- a/var/spack/repos/builtin/packages/py-dask/package.py +++ b/var/spack/repos/builtin/packages/py-dask/package.py @@ -37,4 +37,4 @@ class PyDask(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py index 40945232c1..f147e2357b 100644 --- a/var/spack/repos/builtin/packages/py-dateutil/package.py +++ b/var/spack/repos/builtin/packages/py-dateutil/package.py @@ -39,4 +39,4 @@ class PyDateutil(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py index 7f83bce75e..eff893cc82 100644 --- a/var/spack/repos/builtin/packages/py-dbf/package.py +++ b/var/spack/repos/builtin/packages/py-dbf/package.py @@ -37,4 +37,4 @@ class PyDbf(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py index 9101b07a0d..30f764edc3 100644 --- a/var/spack/repos/builtin/packages/py-decorator/package.py +++ b/var/spack/repos/builtin/packages/py-decorator/package.py @@ -39,4 +39,4 @@ class PyDecorator(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-docutils/package.py b/var/spack/repos/builtin/packages/py-docutils/package.py index 3a938d918b..114131df90 100644 --- a/var/spack/repos/builtin/packages/py-docutils/package.py +++ b/var/spack/repos/builtin/packages/py-docutils/package.py @@ -40,4 +40,4 @@ class PyDocutils(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py index 397f737cb1..2045ec9d59 100644 --- a/var/spack/repos/builtin/packages/py-emcee/package.py +++ b/var/spack/repos/builtin/packages/py-emcee/package.py @@ -38,4 +38,4 @@ class PyEmcee(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py new file mode 100644 index 0000000000..2f294bac12 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-enum34/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 PyEnum34(Package): + """Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4.""" + + homepage = "https://pypi.python.org/pypi/enum34" + url = "https://pypi.python.org/packages/source/e/enum34/enum34-1.1.6.tar.gz" + + version('1.1.6', '5f13a0841a61f7fc295c514490d120d0', + url="https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz") + + extends('python') + depends_on('python@2.4:2.8,3.3:') + + depends_on('py-ordereddict', when='^python@:2.6.999', type=nolink) + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py index 9d4b93dad4..ed490cb396 100644 --- a/var/spack/repos/builtin/packages/py-epydoc/package.py +++ b/var/spack/repos/builtin/packages/py-epydoc/package.py @@ -36,4 +36,4 @@ class PyEpydoc(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py index 2fabe03d66..8bb36bc02f 100644 --- a/var/spack/repos/builtin/packages/py-flake8/package.py +++ b/var/spack/repos/builtin/packages/py-flake8/package.py @@ -28,13 +28,40 @@ from spack import * class PyFlake8(Package): """Flake8 is a wrapper around PyFlakes, pep8 and Ned Batchelder's McCabe script.""" - homepage = "http://flake8.readthedocs.io/en/latest/" - url = "https://pypi.python.org/packages/source/f/flake8/flake8-2.5.4.tar.gz" - version('2.5.4', 'a4585b3569b95c3f66acb8294a7f06ef') + homepage = "https://github.com/PyCQA/flake8" + url = "https://github.com/PyCQA/flake8/archive/3.0.4.tar.gz" - extends('python') - depends_on('py-setuptools', type='build') + version('3.0.4', 'cf2a7d8c92070f7b62253404ffb54df7') + version('2.5.4', '366dd1de6c300254c830b81e66979f06') + + extends('python', ignore='bin/(pyflakes|pycodestyle)') + depends_on('python@2.7:2.8,3.4:') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-flake8 requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + # pyflakes >= 0.8.1, != 1.2.0, != 1.2.1, != 1.2.2, < 1.3.0 + depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=nolink) # noqa + # pyflakes >= 0.8.1, < 1.1 + depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=nolink) + + # pycodestyle >= 2.0.0, < 2.1.0 + depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=nolink) + # pep8 >= 1.5.7, != 1.6.0, != 1.6.1, != 1.6.2 + depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=nolink) + + # mccabe >= 0.5.0, < 0.6.0 + depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=nolink) + # mccabe >= 0.2.1, < 0.5 + depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=nolink) + + depends_on('py-configparser', when='^python@:3.3.999', type=nolink) + depends_on('py-enum34', when='^python@:3.1.999', type=nolink) + + # TODO: Add test dependencies + # depends_on('py-nose', type='test') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py index c3d37f6b98..b82a37cae9 100644 --- a/var/spack/repos/builtin/packages/py-funcsigs/package.py +++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py @@ -37,4 +37,4 @@ class PyFuncsigs(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py index ea8d26c796..e7eb7bebdd 100644 --- a/var/spack/repos/builtin/packages/py-genshi/package.py +++ b/var/spack/repos/builtin/packages/py-genshi/package.py @@ -39,4 +39,4 @@ class PyGenshi(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py index a448a66e51..cc273103f2 100644 --- a/var/spack/repos/builtin/packages/py-gnuplot/package.py +++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py @@ -37,4 +37,4 @@ class PyGnuplot(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index 90a67c51bd..0579787ba2 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -56,11 +56,10 @@ class PyH5py(Package): depends_on('py-six', type=nolink) def install(self, spec, prefix): - python('setup.py', 'configure', - '--hdf5={0}'.format(spec['hdf5'].prefix)) + setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix)) if '+mpi' in spec: env['CC'] = spec['mpi'].mpicc - python('setup.py', 'configure', '--mpi') + setup_py('configure', '--mpi') - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-imagesize/package.py b/var/spack/repos/builtin/packages/py-imagesize/package.py new file mode 100644 index 0000000000..941e64610e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-imagesize/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyImagesize(Package): + """Parses image file headers and returns image size. Supports PNG, JPEG, + JPEG2000, and GIF image file formats.""" + + homepage = "https://pypi.python.org/pypi/imagesize" + url = "https://pypi.python.org/packages/source/i/imagesize/imagesize-0.7.1.tar.gz" + + version('0.7.1', '976148283286a6ba5f69b0f81aef8052', + url="https://pypi.python.org/packages/53/72/6c6f1e787d9cab2cc733cf042f125abec07209a58308831c9f292504e826/imagesize-0.7.1.tar.gz") + + extends('python') + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py index d7446c06d4..c58b722e3b 100644 --- a/var/spack/repos/builtin/packages/py-iminuit/package.py +++ b/var/spack/repos/builtin/packages/py-iminuit/package.py @@ -43,4 +43,4 @@ class PyIminuit(Package): depends_on('py-cython', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py index ac3291e21e..d7ee2e3c95 100644 --- a/var/spack/repos/builtin/packages/py-ipython/package.py +++ b/var/spack/repos/builtin/packages/py-ipython/package.py @@ -39,4 +39,4 @@ class PyIpython(Package): depends_on('py-setuptools', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py index 32acf75131..60ee91c9b6 100644 --- a/var/spack/repos/builtin/packages/py-jdcal/package.py +++ b/var/spack/repos/builtin/packages/py-jdcal/package.py @@ -36,4 +36,4 @@ class PyJdcal(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py index 943edf521a..8ef4f568c5 100644 --- a/var/spack/repos/builtin/packages/py-jinja2/package.py +++ b/var/spack/repos/builtin/packages/py-jinja2/package.py @@ -22,29 +22,28 @@ # 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 depends_on, extends, version, nolink -from spack import Package +from spack import * class PyJinja2(Package): - """ - Jinja2 is a template engine written in pure Python. It provides + """Jinja2 is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions - and an optional sandboxed environment. - """ + and an optional sandboxed environment.""" homepage = "http://jinja.pocoo.org/" - url = "https://github.com/pallets/jinja/archive/2.8.tar.gz" + url = "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.8.tar.gz" - version('2.8', '4114200650d7630594e3bc70af23f59e') - version('2.7.3', '55b87bdc8e585b8b5b86734eefce2621') - version('2.7.2', '8e8f226809ae6363009b9296e30adf30') - version('2.7.1', '69b6675553c81b1087f95cae7f2179bb') - version('2.7', 'ec70433f325051dcedacbb2465028a35') + version('2.8', 'edb51693fe22c53cee5403775c71a99e') + version('2.7.3', 'b9dffd2f3b43d673802fe857c8445b1a') + version('2.7.2', 'df1581455564e97010e38bc792012aa5') + version('2.7.1', '282aed153e69f970d6e76f78ed9d027a') + version('2.7', 'c2fb12cbbb523c57d3d15bfe4dc0e8fe') - extends("python") - depends_on("py-setuptools", type='build') - depends_on("py-markupsafe", type=nolink) + extends('python') + + depends_on('py-setuptools', type='build') + depends_on('py-markupsafe', type=nolink) + depends_on('py-babel@0.8:', type=nolink) # optional, required for i18n def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py index b873625bdb..856276ec89 100644 --- a/var/spack/repos/builtin/packages/py-lockfile/package.py +++ b/var/spack/repos/builtin/packages/py-lockfile/package.py @@ -45,4 +45,4 @@ class PyLockfile(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py index ac1b933e43..e66cdc8479 100644 --- a/var/spack/repos/builtin/packages/py-logilab-common/package.py +++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py @@ -38,4 +38,4 @@ class PyLogilabCommon(Package): depends_on("py-six", type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-macs2/package.py b/var/spack/repos/builtin/packages/py-macs2/package.py new file mode 100644 index 0000000000..df5b00555f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-macs2/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 PyMacs2(Package): + """MACS2 Model-based Analysis of ChIP-Seq""" + + homepage = "https://github.com/taoliu/MACS" + url = "https://pypi.python.org/packages/9f/99/a8ac96b357f6b0a6f559fe0f5a81bcae12b98579551620ce07c5183aee2c/MACS2-2.1.1.20160309.tar.gz" + + version('2.1.1.20160309', '2008ba838f83f34f8e0fddefe2a3a0159f4a740707c68058f815b31ddad53d26') + + extends('python') + depends_on('python@2.7:2.8') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-macs2 requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + depends_on('py-numpy@1.6:', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py index 18a8dc0e68..460666081e 100644 --- a/var/spack/repos/builtin/packages/py-mako/package.py +++ b/var/spack/repos/builtin/packages/py-mako/package.py @@ -32,10 +32,15 @@ class PyMako(Package): homepage = "https://pypi.python.org/pypi/mako" url = "https://pypi.python.org/packages/source/M/Mako/Mako-1.0.1.tar.gz" + version('1.0.4', 'c5fc31a323dd4990683d2f2da02d4e20') version('1.0.1', '9f0aafd177b039ef67b90ea350497a54') - depends_on('py-setuptools', type='build') extends('python') + depends_on('py-setuptools', type='build') + # depends_on('py-mock', type='test') # TODO: Add test deptype + # depends_on('py-pytest', type='test') # TODO: Add test deptype + depends_on('py-markupsafe@0.9.2:', type=nolink) + def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-markupsafe/package.py b/var/spack/repos/builtin/packages/py-markupsafe/package.py index 0a039d1d47..5ba5bfb997 100644 --- a/var/spack/repos/builtin/packages/py-markupsafe/package.py +++ b/var/spack/repos/builtin/packages/py-markupsafe/package.py @@ -22,29 +22,27 @@ # 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 depends_on, extends, version -from spack import Package +from spack import * class PyMarkupsafe(Package): - """ - MarkupSafe is a library for Python that implements a unicode - string that is aware of HTML escaping rules and can be used - to implement automatic string escaping. It is used by Jinja 2, - the Mako templating engine, the Pylons web framework and many more. - """ + """MarkupSafe is a library for Python that implements a unicode + string that is aware of HTML escaping rules and can be used to + implement automatic string escaping. It is used by Jinja 2, the + Mako templating engine, the Pylons web framework and many more.""" homepage = "http://www.pocoo.org/projects/markupsafe/" - url = "https://github.com/pallets/markupsafe/archive/0.23.tar.gz" + url = "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz" - version('0.23', '1a0dadc95169832367c9dcf142155cde') - version('0.22', '7a2ac7427b58def567628d06dc328396') - version('0.21', 'aebcd93ee05269773c8b80bb6c86fc2f') - version('0.20', '0c1fef97c8fd6a986d708f08d7f84a02') - version('0.19', '64b05361adb92c11839fc470e308c593') + version('0.23', 'f5ab3deee4c37cd6a922fb81e730da6e') + version('0.22', 'cb3ec29fd5361add24cfd0c6e2953b3e') + version('0.21', 'fde838d9337fa51744283f46a1db2e74') + version('0.20', '7da066d9cb191a70aa85d0a3d43565d1') + version('0.19', 'ccb3f746c807c5500850987006854a6d') - extends("python") - depends_on("py-setuptools", type='build') + extends('python') + + depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index c454a47ec3..38859ebe15 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -27,55 +27,95 @@ import os class PyMatplotlib(Package): - """Python plotting package.""" + """matplotlib is a python 2D plotting library which produces publication + quality figures in a variety of hardcopy formats and interactive + environments across platforms.""" + homepage = "https://pypi.python.org/pypi/matplotlib" - url = "https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.2.tar.gz" + url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-1.4.2.tar.gz" - version('1.4.2', '7d22efb6cce475025733c50487bd8898') + version('1.5.3', 'ba993b06113040fee6628d74b80af0fd') + version('1.5.1', 'f51847d8692cb63df64cd0bd0304fd20') version('1.4.3', '86af2e3e3c61849ac7576a6f5ca44267') + version('1.4.2', '7d22efb6cce475025733c50487bd8898') + + # See: http://matplotlib.org/users/installing.html - variant('gui', default=False, description='Enable GUI') + # Variants enabled by default for a standard configuration + variant('tk', default=True, description='Enable Tk GUI') + variant('image', default=True, + description='Enable reading/saving JPEG, BMP and TIFF files') + + # Variants optionally available to user variant('ipython', default=False, description='Enable ipython support') + variant('qt', default=False, description='Enable Qt GUI') + variant('latex', default=False, + description='Enable LaTeX text rendering support') + variant('animation', default=False, + description='Enable animation support') + # Python 2.7, 3.4, or 3.5 extends('python', ignore=r'bin/nosetests.*$|bin/pbr$') + # ------ Required dependencies depends_on('py-setuptools', type='build') - depends_on('py-pyside', when='+gui', type=nolink) - depends_on('py-ipython', when='+ipython', type=nolink) + + depends_on('libpng@1.2:') + depends_on('freetype@2.3:') + + depends_on('py-numpy@1.6:', type=nolink) + depends_on('py-dateutil@1.1:', type=nolink) depends_on('py-pyparsing', type=nolink) - depends_on('py-six', type=nolink) - depends_on('py-dateutil', type=nolink) depends_on('py-pytz', type=nolink) - depends_on('py-nose', type=nolink) - depends_on('py-numpy', type=nolink) - depends_on('py-mock', type=nolink) - depends_on('py-pbr', type=nolink) - depends_on('py-funcsigs', type=nolink) - - depends_on('pkg-config', type='build') - depends_on('freetype') - depends_on('qt', when='+gui') - depends_on('bzip2') - depends_on('tcl', when='+gui') - depends_on('tk', when='+gui') - depends_on('qhull') + depends_on('py-cycler@0.9:', type=nolink) + + # ------ Optional GUI frameworks + depends_on('tk@8.3:', when='+tk') # not 8.6.0 or 8.6.1 + depends_on('qt', when='+qt') + depends_on('py-pyside', when='+qt', type=nolink) + + # --------- Optional external programs + # ffmpeg/avconv or mencoder + depends_on('ImageMagick', when='+animation') + + # --------- Optional dependencies + depends_on('pkg-config', type='build') # why not... + depends_on('py-pillow', when='+image', type=nolink) + depends_on('py-ipython', when='+ipython') + depends_on('ghostscript', when='+latex', type='run') + depends_on('texlive', when='+latex', type='run') + + # Testing dependencies + depends_on('py-nose') # type='test' + depends_on('py-mock') # type='test' + + # Required libraries that ship with matplotlib + # depends_on('agg@2.4:') + depends_on('qhull@2012.1:') + # depends_on('ttconv') + depends_on('py-six@1.9.0:', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('build') + setup_py('install', '--prefix={0}'.format(prefix)) - if str(self.version) in ['1.4.2', '1.4.3']: - # hack to fix configuration file + if '+qt' in spec or '+tk' in spec: + # Set backend in matplotlib configuration file config_file = None for p, d, f in os.walk(prefix.lib): for file in f: if file.find('matplotlibrc') != -1: config_file = join_path(p, 'matplotlibrc') - print config_file - if config_file is None: - raise InstallError('could not find config file') - filter_file(r'backend : pyside', - 'backend : Qt4Agg', - config_file) - filter_file(r'#backend.qt4 : PyQt4', - 'backend.qt4 : PySide', - config_file) + if not config_file: + raise InstallError('Could not find matplotlibrc') + + kwargs = {'ignore_absent': False, 'backup': False, 'string': False} + rc = FileFilter(config_file) + + # Only make Qt4 be the default backend if Tk is turned off + if '+qt' in spec and '+tk' not in spec: + rc.filter('^backend.*', 'backend : Qt4Agg', **kwargs) + + # Additional options in case user is doing Qt4: + if '+qt' in spec: + rc.filter('^#backend.qt4.*', 'backend.qt4 : PySide', **kwargs) diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py new file mode 100644 index 0000000000..ec913acb16 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mccabe/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 PyMccabe(Package): + """Ned's script to check McCabe complexity.""" + + homepage = "https://github.com/PyCQA/mccabe" + url = "https://github.com/PyCQA/mccabe/archive/0.5.2.tar.gz" + + version('0.5.2', '3cdf2d7faa1464b18905fe9a7063a632') + version('0.5.1', '864b364829156701bec797712be8ece0') + version('0.5.0', '71c0ce5e5c4676753525154f6c5d3af8') + version('0.4.0', '9cf5712e5f1785aaa27273a4328babe4') + version('0.3.1', '45c48c0978e6fc1f31fedcb918178abb') + version('0.3', 'c583f58ea28be12842c001473d77504d') + version('0.2.1', 'fcba311ebd999f48359a8ab28da94b30') + version('0.2', '36d4808c37e187dbb1fe2373a0ac6645') + version('0.1', '3c9e8e72612a9c01d865630cc569150a') + + extends('python') + depends_on('python@2.7:2.8,3.3:') + + depends_on('py-setuptools', type='build') + + # TODO: Add test dependencies + # depends_on('py-pytest', type='test') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py index 399c10005e..2daee1ed9a 100644 --- a/var/spack/repos/builtin/packages/py-mistune/package.py +++ b/var/spack/repos/builtin/packages/py-mistune/package.py @@ -43,4 +43,4 @@ class PyMistune(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py index 2c70535f19..d397b72329 100644 --- a/var/spack/repos/builtin/packages/py-mock/package.py +++ b/var/spack/repos/builtin/packages/py-mock/package.py @@ -40,4 +40,4 @@ class PyMock(Package): depends_on('py-setuptools@17.1:', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py index 1f0e52804e..11b1584397 100644 --- a/var/spack/repos/builtin/packages/py-mpi4py/package.py +++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py @@ -43,4 +43,4 @@ class PyMpi4py(Package): depends_on('mpi') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py index e5bae34694..846852aeb5 100644 --- a/var/spack/repos/builtin/packages/py-mpmath/package.py +++ b/var/spack/repos/builtin/packages/py-mpmath/package.py @@ -35,4 +35,4 @@ class PyMpmath(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py index f5631916f6..e72b281665 100644 --- a/var/spack/repos/builtin/packages/py-mx/package.py +++ b/var/spack/repos/builtin/packages/py-mx/package.py @@ -40,4 +40,4 @@ class PyMx(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-mysqldb1/package.py b/var/spack/repos/builtin/packages/py-mysqldb1/package.py index 693fda6dbb..14534a57ca 100644 --- a/var/spack/repos/builtin/packages/py-mysqldb1/package.py +++ b/var/spack/repos/builtin/packages/py-mysqldb1/package.py @@ -36,4 +36,4 @@ class PyMysqldb1(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py index 81f9fe4d09..03096586b9 100644 --- a/var/spack/repos/builtin/packages/py-nestle/package.py +++ b/var/spack/repos/builtin/packages/py-nestle/package.py @@ -41,4 +41,4 @@ class PyNestle(Package): depends_on('py-scipy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-netcdf/package.py b/var/spack/repos/builtin/packages/py-netcdf/package.py index e4f67d75a6..d238855d1e 100644 --- a/var/spack/repos/builtin/packages/py-netcdf/package.py +++ b/var/spack/repos/builtin/packages/py-netcdf/package.py @@ -35,7 +35,8 @@ class PyNetcdf(Package): extends('python') depends_on('py-numpy', type=nolink) depends_on('py-cython', type=nolink) + depends_on('py-setuptools', type=nolink) depends_on('netcdf') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py index 79ad420f8f..aaeaac9674 100644 --- a/var/spack/repos/builtin/packages/py-networkx/package.py +++ b/var/spack/repos/builtin/packages/py-networkx/package.py @@ -39,4 +39,4 @@ class PyNetworkx(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py index eb3dd77219..f1872c85b4 100644 --- a/var/spack/repos/builtin/packages/py-nose/package.py +++ b/var/spack/repos/builtin/packages/py-nose/package.py @@ -40,4 +40,4 @@ class PyNose(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py index b3b2e1d47d..51b4ef2e92 100644 --- a/var/spack/repos/builtin/packages/py-numexpr/package.py +++ b/var/spack/repos/builtin/packages/py-numexpr/package.py @@ -37,4 +37,4 @@ class PyNumexpr(Package): depends_on('py-numpy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index f800b5e834..22b4d98b9d 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -32,9 +32,12 @@ class PyNumpy(Package): sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities""" + homepage = "http://www.numpy.org/" - url = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz" + url = "https://pypi.io/packages/source/n/numpy/numpy-1.9.1.tar.gz" + version('1.11.2', '03bd7927c314c43780271bf1ab795ebc') + version('1.11.1', '2f44a895a8104ffac140c3a70edbd450') version('1.11.0', 'bc56fb9fc2895aa4961802ffbdb31d0b') version('1.10.4', 'aed294de0aa1ac7bd3f9745f4f1968ad') version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645') @@ -44,6 +47,7 @@ class PyNumpy(Package): variant('lapack', default=True) extends('python') + depends_on('python@2.6:2.8,3.2:') depends_on('py-nose', type='build') depends_on('py-setuptools', type='build') depends_on('blas', when='+blas') @@ -62,21 +66,21 @@ class PyNumpy(Package): 'numpy/core/include') def install(self, spec, prefix): - libraries = [] - library_dirs = [] + # for build notes see http://www.scipy.org/scipylib/building/linux.html + lapackblas = LibraryList('') + if '+lapack' in spec: + lapackblas += spec['lapack'].lapack_libs if '+blas' in spec: - libraries.append('blas') - library_dirs.append(spec['blas'].prefix.lib) - if '+lapack' in spec: - libraries.append('lapack') - library_dirs.append(spec['lapack'].prefix.lib) + lapackblas += spec['blas'].blas_libs if '+blas' in spec or '+lapack' in spec: with open('site.cfg', 'w') as f: f.write('[DEFAULT]\n') - f.write('libraries=%s\n' % ','.join(libraries)) - f.write('library_dirs=%s\n' % ':'.join(library_dirs)) - f.write('rpath=%s\n' % ':'.join(library_dirs)) + f.write('libraries=%s\n' % ','.join(lapackblas.names)) + f.write('library_dirs=%s\n' % ':'.join(lapackblas.directories)) + if not ((platform.system() == "Darwin") and + (platform.mac_ver()[0] == '10.12')): + f.write('rpath=%s\n' % ':'.join(lapackblas.directories)) - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py index fa32cb879f..94949076ef 100644 --- a/var/spack/repos/builtin/packages/py-openpyxl/package.py +++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py @@ -39,4 +39,4 @@ class PyOpenpyxl(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py new file mode 100644 index 0000000000..6e038b789c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ordereddict/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 PyOrdereddict(Package): + """A drop-in substitute for Py2.7's new collections. + OrderedDict that works in Python 2.4-2.6.""" + + homepage = "https://pypi.python.org/pypi/ordereddict" + url = "https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz" + + version('1.1', 'a0ed854ee442051b249bfad0f638bbec') + + extends('python') + depends_on('python@2.4:2.6.999') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 37234ae652..ae797cee40 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -51,4 +51,4 @@ class PyPandas(Package): depends_on('py-bottleneck', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py index a0cfe0e5a5..0251e436b1 100644 --- a/var/spack/repos/builtin/packages/py-pbr/package.py +++ b/var/spack/repos/builtin/packages/py-pbr/package.py @@ -38,4 +38,4 @@ class PyPbr(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py deleted file mode 100644 index 87d1da9ab0..0000000000 --- a/var/spack/repos/builtin/packages/py-pep8/package.py +++ /dev/null @@ -1,15 +0,0 @@ -from spack import * - - -class PyPep8(Package): - """python pep8 format checker""" - homepage = "https://github.com/PyCQA/pycodestyle" - url = "https://github.com/PyCQA/pycodestyle/archive/1.7.0.tar.gz" - - version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9') - - extends('python') - 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-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py index 51d9cc2046..4a5b015e60 100644 --- a/var/spack/repos/builtin/packages/py-periodictable/package.py +++ b/var/spack/repos/builtin/packages/py-periodictable/package.py @@ -39,4 +39,4 @@ class PyPeriodictable(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py index 8a99c0473b..9e43e4526e 100644 --- a/var/spack/repos/builtin/packages/py-pexpect/package.py +++ b/var/spack/repos/builtin/packages/py-pexpect/package.py @@ -35,4 +35,4 @@ class PyPexpect(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py index d5b3313a98..a4ad03f34d 100644 --- a/var/spack/repos/builtin/packages/py-phonopy/package.py +++ b/var/spack/repos/builtin/packages/py-phonopy/package.py @@ -40,4 +40,4 @@ class PyPhonopy(Package): depends_on('py-pyyaml', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--home=%s' % prefix) + setup_py('install', '--home=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py index 2b3cce26d3..f5d684962d 100644 --- a/var/spack/repos/builtin/packages/py-pil/package.py +++ b/var/spack/repos/builtin/packages/py-pil/package.py @@ -37,7 +37,10 @@ class PyPil(Package): provides('pil') + # py-pil currently only works with Python2. + # If you are using Python 3, try using py-pillow instead. extends('python') + depends_on('python@1.5.2:2.8') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 1d8b3faa6f..3125a822b4 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -32,7 +32,7 @@ class PyPillow(Package): capabilities.""" homepage = "https://python-pillow.org/" - url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz" + url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz" # TODO: This version should be deleted once the next release comes out. # TODO: It fixes a bug that prevented us from linking to Tk/Tcl. @@ -129,5 +129,5 @@ class PyPillow(Package): variants = ['jpeg', 'zlib', 'tiff', 'freetype', 'lcms', 'jpeg2000'] build_args = list(map(variant_to_flag, variants)) - python('setup.py', 'build_ext', *build_args) - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('build_ext', *build_args) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py index 47cd3b5dc8..d249de64fa 100644 --- a/var/spack/repos/builtin/packages/py-ply/package.py +++ b/var/spack/repos/builtin/packages/py-ply/package.py @@ -35,4 +35,4 @@ class PyPly(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py index e0a332a6bf..5173864f62 100644 --- a/var/spack/repos/builtin/packages/py-pmw/package.py +++ b/var/spack/repos/builtin/packages/py-pmw/package.py @@ -36,4 +36,4 @@ class PyPmw(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py index cf814733d4..55a323a0d6 100644 --- a/var/spack/repos/builtin/packages/py-prettytable/package.py +++ b/var/spack/repos/builtin/packages/py-prettytable/package.py @@ -22,16 +22,15 @@ # 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 depends_on, extends, version -from spack import Package +from spack import * class PyPrettytable(Package): - """ - PrettyTable is a simple Python library designed to make + """PrettyTable is a simple Python library designed to make it quick and easy to represent tabular data in visually - appealing ASCII tables + appealing ASCII tables. """ + homepage = "https://code.google.com/archive/p/prettytable/" url = "https://pypi.python.org/packages/e0/a1/36203205f77ccf98f3c6cf17cf068c972e6458d7e58509ca66da949ca347/prettytable-0.7.2.tar.gz" @@ -41,4 +40,4 @@ class PyPrettytable(Package): depends_on("py-setuptools", type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-proj/package.py b/var/spack/repos/builtin/packages/py-proj/package.py new file mode 100644 index 0000000000..2835bfcca8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-proj/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Written by David Beckingsale, david@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 General Public License (as published by +# the Free Software Foundation) version 2.1 dated 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 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 PyProj(Package): + """Python interface to the PROJ.4 Library.""" + homepage = "http://jswhit.github.io/pyproj/" + url = "https://github.com/jswhit/pyproj/tarball/v1.9.5.1rel" + + # This is not a tagged release of pyproj. + # The changes in this "version" fix some bugs, especially with Python3 use. + version('1.9.5.1.1', 'd035e4bc704d136db79b43ab371b27d2', + url='https://www.github.com/jswhit/pyproj/tarball/0be612cc9f972e38b50a90c946a9b353e2ab140f') + + version('1.9.5.1', 'a4b80d7170fc82aee363d7f980279835') + + extends('python') + + depends_on('py-cython', type='build') + depends_on('py-setuptools', type='build') + + # NOTE: py-proj does NOT depends_on('proj'). + # The py-proj git repo actually includes the correct version of PROJ.4, + # which is built internally as part of the py-proj build. + # Adding depends_on('proj') will cause mysterious build errors. + + def install(self, spec, prefix): + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index dd2b5651de..d1186775bb 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -47,4 +47,4 @@ class PyProtobuf(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pudb/package.py b/var/spack/repos/builtin/packages/py-pudb/package.py new file mode 100644 index 0000000000..dd2c751389 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pudb/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 PyPudb(Package): + """Full-screen console debugger for Python""" + + homepage = "http://mathema.tician.de/software/pudb" + url = "https://pypi.io/packages/source/p/pudb/pudb-2016.2.tar.gz" + + version('2016.2', '4573b70163329c1cb59836a357bfdf7c') + + extends('python') + + depends_on('py-setuptools', type='build') + depends_on('py-urwid@1.1.1:', type=nolink) + depends_on('py-pygments@1.0:', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py new file mode 100644 index 0000000000..f624aaf389 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-py/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 PyPy(Package): + """library with cross-python path, ini-parsing, io, code, log facilities""" + + homepage = "http://pylib.readthedocs.io/en/latest/" + url = "https://pypi.python.org/packages/source/p/py/py-1.4.31.tar.gz" + + version('1.4.31', '5d2c63c56dc3f2115ec35c066ecd582b') + + extends('python') + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py new file mode 100644 index 0000000000..efc3645745 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-py2cairo/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 PyPy2cairo(Package): + """bindings for the Cairo for Python 2, + to be used in Python.""" + + homepage = "https://pypi.python.org/pypi/pycairo" + url = "https://cairographics.org/releases/py2cairo-1.10.0.tar.bz2" + + version('1.10.0', '20337132c4ab06c1146ad384d55372c5') + + extends('python') + depends_on("cairo") + depends_on("pixman") + + def install(self, spec, prefix): + python('waf', 'configure', '--prefix=%s' % prefix) + python('waf', 'build') + python('waf', 'install') diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py index a79c2e477b..aed0859021 100644 --- a/var/spack/repos/builtin/packages/py-py2neo/package.py +++ b/var/spack/repos/builtin/packages/py-py2neo/package.py @@ -27,9 +27,10 @@ from spack import Package class PyPy2neo(Package): - """FIXME: put a proper description of your package here.""" - # FIXME: add a proper url for your package's homepage here. - homepage = "http://www.example.com" + """Py2neo is a client library and toolkit for working with Neo4j from + within Python applications and from the command line.""" + + homepage = "http://py2neo.org/" url = "https://github.com/nigelsmall/py2neo/archive/py2neo-2.0.8.tar.gz" version('2.0.8', 'e3ec5172a9e006515ef4155688a05a55') @@ -42,4 +43,4 @@ class PyPy2neo(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pychecker/package.py b/var/spack/repos/builtin/packages/py-pychecker/package.py index e81c3dbc9b..b1f8aad33f 100644 --- a/var/spack/repos/builtin/packages/py-pychecker/package.py +++ b/var/spack/repos/builtin/packages/py-pychecker/package.py @@ -35,4 +35,4 @@ class PyPychecker(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py new file mode 100644 index 0000000000..964822aac9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPycodestyle(Package): + """pycodestyle is a tool to check your Python code against some of the + style conventions in PEP 8. Note: formerly called pep8.""" + + homepage = "https://github.com/PyCQA/pycodestyle" + url = "https://github.com/PyCQA/pycodestyle/archive/2.0.0.tar.gz" + + version('2.0.0', '5c3e90001f538bf3b7896d60e92eb6f6') + version('1.7.0', '31070a3a6391928893cbf5fa523eb8d9') + version('1.6.2', '8df18246d82ddd3d19ffe7518f983955') + version('1.6.1', '9d59bdc7c60f46f7cee86c732e28aa1a') + version('1.6', '340fa7e39bb44fb08db6eddf7cdc880a') + version('1.5.7', '6d0f5fc7d95755999bc9275cad5cbf3e') + version('1.5.6', 'c5c30e3d267b48bf3dfe7568e803a813') + version('1.5.5', 'cfa12df9b86b3a1dfb13aced1927e12f') + version('1.5.4', '3977a760829652543544074c684610ee') + + extends('python') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-pycodestyle requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py index ef1b772ffc..e7b91f4495 100644 --- a/var/spack/repos/builtin/packages/py-pycparser/package.py +++ b/var/spack/repos/builtin/packages/py-pycparser/package.py @@ -36,4 +36,4 @@ class PyPycparser(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py index da157d3679..b2203ae04c 100644 --- a/var/spack/repos/builtin/packages/py-pydatalog/package.py +++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py @@ -35,4 +35,4 @@ class PyPydatalog(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py index bf781daf83..96a5645541 100644 --- a/var/spack/repos/builtin/packages/py-pyelftools/package.py +++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py @@ -36,4 +36,4 @@ class PyPyelftools(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py new file mode 100644 index 0000000000..50bc8ab462 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPyflakes(Package): + """A simple program which checks Python source files for errors..""" + + homepage = "https://github.com/PyCQA/pyflakes" + url = "https://github.com/PyCQA/pyflakes/archive/1.3.0.tar.gz" + + version('1.3.0', 'a76173deb7a84fe860c0b60e2fbcdfe2') + version('1.2.3', '2ac2e148a5c46b6bb06c4785be76f7cc') + version('1.2.2', 'fe759b9381a6500e67a2ddbbeb5161a4') + version('1.2.1', '444a06b256e0a70e41c11698b7190e84') + version('1.2.0', '5d1c87bf09696c4c35dc3103f2a1185c') + version('1.1.0', '4e18bf78c0455ebcd41e5d6104392c88') + version('1.0.0', 'e2ea22a825c5100f12e54b71771cde71') + version('0.9.2', 'd02d5f68e944085fd6ec163a34737a96') + version('0.9.1', '8108d2248e93ca6a315fa2dd31ee9bb1') + version('0.9.0', '43c2bcee88606bde55dbf25a253ef886') + + extends('python') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-pyflakes requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pygments/package.py b/var/spack/repos/builtin/packages/py-pygments/package.py index 2d22bd9f03..c61b080e14 100644 --- a/var/spack/repos/builtin/packages/py-pygments/package.py +++ b/var/spack/repos/builtin/packages/py-pygments/package.py @@ -27,14 +27,17 @@ from spack import * class PyPygments(Package): """Pygments is a syntax highlighting package written in Python.""" + homepage = "https://pypi.python.org/pypi/pygments" url = "https://pypi.python.org/packages/source/P/Pygments/Pygments-2.0.1.tar.gz" + version('2.1.3', 'ed3fba2467c8afcda4d317e4ef2c6150') version('2.0.1', 'e0daf4c14a4fe5b630da765904de4d6c') version('2.0.2', '238587a1370d62405edabd0794b3ec4a') extends('python') + depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pygobject/package.py b/var/spack/repos/builtin/packages/py-pygobject/package.py new file mode 100644 index 0000000000..675eb8f004 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygobject/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 PyPygobject(AutotoolsPackage): + """bindings for the GLib, and GObject, + to be used in Python.""" + + homepage = "https://pypi.python.org/pypi/pygobject" + url = "https://pypi.python.org/packages/6d/15/97c8b5ccca2be14cf59a2f79e15e3a82a1c3408a6b76b4107689a8b94846/pygobject-2.28.3.tar.bz2" + + version('2.28.3', 'aa64900b274c4661a5c32e52922977f9') + + extends('python') + depends_on("libffi") + depends_on('glib') + depends_on('py-py2cairo') + depends_on('gobject-introspection') + + patch('pygobject-2.28.6-introspection-1.patch') + + def install(self, spec, prefix): + make('install', parallel=False) diff --git a/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch new file mode 100644 index 0000000000..ef96ba3352 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygobject/pygobject-2.28.6-introspection-1.patch @@ -0,0 +1,35 @@ +Submitted By: Andrew Benton <andy@benton.eu.com> +Date: 2012-03-29 +Initial Package Version: 2.28.6 +Upstream Status: not submitted +Origin: me +Description: Fixes compiling with a recent version of gobject-introspection + +--- pygobject-2.28.6/gi/pygi-info.c-orig 2012-03-29 02:27:37.494228732 +0100 ++++ pygobject-2.28.6/gi/pygi-info.c 2012-03-29 02:26:37.735132310 +0100 +@@ -162,9 +162,6 @@ + case GI_INFO_TYPE_CONSTANT: + type = &PyGIConstantInfo_Type; + break; +- case GI_INFO_TYPE_ERROR_DOMAIN: +- type = &PyGIErrorDomainInfo_Type; +- break; + case GI_INFO_TYPE_UNION: + type = &PyGIUnionInfo_Type; + break; +@@ -481,7 +478,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +@@ -860,7 +856,6 @@ + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: diff --git a/var/spack/repos/builtin/packages/py-pygtk/package.py b/var/spack/repos/builtin/packages/py-pygtk/package.py new file mode 100644 index 0000000000..56e0b39fd5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygtk/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 PyPygtk(AutotoolsPackage): + """bindings for the Gtk in Python""" + homepage = "http://www.pygtk.org/" + url = "http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.24/pygtk-2.24.0.tar.gz" + + version('2.24.0', 'd27c7f245a9e027f6b6cd9acb7468e36') + + extends('python') + depends_on("libffi") + depends_on('cairo') + depends_on('glib') + depends_on('gtkplus') + depends_on('py-pygobject') + depends_on('py-py2cairo') + + def install(self, spec, prefix): + make('install', parallel=False) diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py index c505d44530..10f60f0ab9 100644 --- a/var/spack/repos/builtin/packages/py-pylint/package.py +++ b/var/spack/repos/builtin/packages/py-pylint/package.py @@ -38,4 +38,4 @@ class PyPylint(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py index 6fef71304c..90d1f957b6 100644 --- a/var/spack/repos/builtin/packages/py-pypar/package.py +++ b/var/spack/repos/builtin/packages/py-pypar/package.py @@ -39,4 +39,4 @@ class PyPypar(Package): def install(self, spec, prefix): with working_dir('source'): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py index 67d255b02d..c3b4432d33 100644 --- a/var/spack/repos/builtin/packages/py-pyparsing/package.py +++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py @@ -35,4 +35,4 @@ class PyPyparsing(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py index 1cb3e4745f..e575864fab 100644 --- a/var/spack/repos/builtin/packages/py-pyside/package.py +++ b/var/spack/repos/builtin/packages/py-pyside/package.py @@ -31,13 +31,16 @@ class PyPyside(Package): homepage = "https://pypi.python.org/pypi/pyside" url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz" - version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d') + version('1.2.4', '3cb7174c13bd45e3e8f77638926cb8c0') # rpath problems + version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d', preferred=True) depends_on('cmake', type='build') extends('python') depends_on('py-setuptools', type='build') - depends_on('qt@:4') + depends_on('qt@4.5:4.9') + depends_on('libxml2@2.6.32:') + depends_on('libxslt@1.1.19:') def patch(self): """Undo PySide RPATH handling and add Spack RPATH.""" @@ -58,12 +61,23 @@ class PyPyside(Package): # PySide tries to patch ELF files to remove RPATHs # Disable this and go with the one we set. - filter_file( - r'^\s*rpath_cmd\(pyside_path, srcpath\)', - r'#rpath_cmd(pyside_path, srcpath)', - 'pyside_postinstall.py') + if self.spec.satisfies('@1.2.4:'): + rpath_file = 'setup.py' + else: + rpath_file = 'pyside_postinstall.py' + + filter_file(r'(^\s*)(rpath_cmd\(.*\))', r'\1#\2', rpath_file) + + # TODO: rpath handling for PySide 1.2.4 still doesn't work. + # PySide can't find the Shiboken library, even though it comes + # bundled with it and is installed in the same directory. + + # PySide does not provide official support for + # Python 3.5, but it should work fine + filter_file("'Programming Language :: Python :: 3.4'", + "'Programming Language :: Python :: 3.4',\r\n " + "'Programming Language :: Python :: 3.5'", + "setup.py") def install(self, spec, prefix): - python('setup.py', 'install', - '--prefix=%s' % prefix, - '--jobs=%s' % make_jobs) + setup_py('install', '--prefix=%s' % prefix, '--jobs=%s' % make_jobs) diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py index f87e74211f..289d76242b 100644 --- a/var/spack/repos/builtin/packages/py-pytables/package.py +++ b/var/spack/repos/builtin/packages/py-pytables/package.py @@ -42,4 +42,4 @@ class PyPytables(Package): def install(self, spec, prefix): env["HDF5_DIR"] = spec['hdf5'].prefix - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py new file mode 100644 index 0000000000..4208b9d3ec --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyPytest(Package): + """pytest: simple powerful testing with Python.""" + + homepage = "http://doc.pytest.org/en/latest/" + url = "https://pypi.python.org/packages/source/p/pytest/pytest-3.0.2.tar.gz" + + version('3.0.2', '61dc36e65a6f6c11c53b1388e043a9f5', + url="https://pypi.python.org/packages/2b/05/e20806c99afaff43331f5fd8770bb346145303882f98ef3275fa1dd66f6d/pytest-3.0.2.tar.gz") + + extends('python') + + depends_on('py-setuptools', type='build') + depends_on('py-py@1.4.29:', type=nolink) + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py index a30dc00ba4..c696b7490b 100644 --- a/var/spack/repos/builtin/packages/py-python-daemon/package.py +++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py @@ -47,4 +47,4 @@ class PyPythonDaemon(Package): depends_on("py-lockfile", type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py index 96f686d591..486b86a467 100644 --- a/var/spack/repos/builtin/packages/py-pytz/package.py +++ b/var/spack/repos/builtin/packages/py-pytz/package.py @@ -27,14 +27,19 @@ from spack import * class PyPytz(Package): """World timezone definitions, modern and historical.""" + homepage = "https://pypi.python.org/pypi/pytz" url = "https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.gz" + version('2016.6.1', 'b6c28a3b968bc1d8badfb61b93874e03', + url="https://pypi.python.org/packages/5d/8e/6635d8f3f9f48c03bb925fab543383089858271f9cfd1216b83247e8df94/pytz-2016.6.1.tar.gz") version('2014.10', 'eb1cb941a20c5b751352c52486aa1dd7') version('2015.4', '417a47b1c432d90333e42084a605d3d8') version('2016.3', 'abae92c3301b27bd8a9f56b14f52cb29') extends('python') + depends_on('py-setuptools', type='build') + def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 8da391fac1..d760fcaae9 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -35,4 +35,4 @@ class PyPyyaml(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py index 047214c58e..9b0bd437c0 100644 --- a/var/spack/repos/builtin/packages/py-restview/package.py +++ b/var/spack/repos/builtin/packages/py-restview/package.py @@ -38,4 +38,4 @@ class PyRestview(Package): depends_on('py-pygments', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py index f86d813766..9db55e949b 100644 --- a/var/spack/repos/builtin/packages/py-rpy2/package.py +++ b/var/spack/repos/builtin/packages/py-rpy2/package.py @@ -44,4 +44,4 @@ class PyRpy2(Package): depends_on('R') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scientificpython/package.py b/var/spack/repos/builtin/packages/py-scientificpython/package.py index e2273dc164..6e8b9d38c1 100644 --- a/var/spack/repos/builtin/packages/py-scientificpython/package.py +++ b/var/spack/repos/builtin/packages/py-scientificpython/package.py @@ -38,4 +38,4 @@ class PyScientificpython(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % 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 fbeb5c95ca..124d2ec4b7 100644 --- a/var/spack/repos/builtin/packages/py-scikit-image/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py @@ -45,4 +45,4 @@ class PyScikitImage(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py index 3cd7ea74f3..09318a6c56 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -41,4 +41,4 @@ class PyScikitLearn(Package): depends_on('py-scipy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index cab516e1df..71bf83c3f0 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -26,26 +26,29 @@ from spack import * class PyScipy(Package): - """Scientific Library for Python.""" + """SciPy (pronounced "Sigh Pie") is a Scientific Library for Python. + It provides many user-friendly and efficient numerical routines such + as routines for numerical integration and optimization.""" + homepage = "http://www.scipy.org/" - url = "https://pypi.python.org/packages/source/s/scipy/scipy-0.15.0.tar.gz" + url = "https://pypi.python.org/packages/source/s/scipy/scipy-0.15.0.tar.gz" + version('0.18.1', '5fb5fb7ccb113ab3a039702b6c2f3327', + url="https://pypi.python.org/packages/22/41/b1538a75309ae4913cdbbdc8d1cc54cae6d37981d2759532c1aa37a41121/scipy-0.18.1.tar.gz") version('0.17.0', '5ff2971e1ce90e762c59d2cd84837224') version('0.15.1', 'be56cd8e60591d6332aac792a5880110') version('0.15.0', '639112f077f0aeb6d80718dc5019dc7a') extends('python') + depends_on('python@2.6:2.8,3.2:') depends_on('py-nose', type='build') - depends_on('py-numpy+blas+lapack', type=nolink) + # Known not to work with 2.23, 2.25 + depends_on('binutils@2.26:', type='build') + depends_on('py-numpy@1.7.1:+blas+lapack', type=nolink) + depends_on('blas') + depends_on('lapack') def install(self, spec, prefix): - if 'atlas' in spec: - # libatlas.so actually isn't always installed, but this - # seems to make the build autodetect things correctly. - env['ATLAS'] = join_path( - spec['atlas'].prefix.lib, 'libatlas.' + dso_suffix) - else: - env['BLAS'] = spec['blas'].blas_shared_lib - env['LAPACK'] = spec['lapack'].lapack_shared_lib - - python('setup.py', 'install', '--prefix=%s' % prefix) + # NOTE: scipy picks up Blas/Lapack from numpy, see + # http://www.scipy.org/scipylib/building/linux.html#step-4-build-numpy-1-5-0 + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index 08d5e5d552..d696fdf776 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -32,6 +32,8 @@ class PySetuptools(Package): homepage = "https://pypi.python.org/pypi/setuptools" url = "https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.tar.gz" + version('25.2.0', 'a0dbb65889c46214c691f6c516cf959c', + url="https://pypi.python.org/packages/9f/32/81c324675725d78e7f6da777483a3453611a427db0145dfb878940469692/setuptools-25.2.0.tar.gz") version('20.7.0', '5d12b39bf3e75e80fdce54e44b255615') version('20.6.7', '45d6110f3ec14924e44c33411db64fe6') version('20.5', 'fadc1e1123ddbe31006e5e43e927362b') @@ -43,4 +45,4 @@ class PySetuptools(Package): extends('python') def install(self, spec, prefix): - setup_py('install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py index 0713f26ebc..c6c23acd33 100644 --- a/var/spack/repos/builtin/packages/py-shiboken/package.py +++ b/var/spack/repos/builtin/packages/py-shiboken/package.py @@ -64,6 +64,4 @@ class PyShiboken(Package): 'shiboken_postinstall.py') def install(self, spec, prefix): - python('setup.py', 'install', - '--prefix=%s' % prefix, - '--jobs=%s' % make_jobs) + setup_py('install', '--prefix=%s' % prefix, '--jobs=%s' % make_jobs) diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py index da0c7aa003..e7b7177586 100644 --- a/var/spack/repos/builtin/packages/py-six/package.py +++ b/var/spack/repos/builtin/packages/py-six/package.py @@ -27,14 +27,16 @@ from spack import * class PySix(Package): """Python 2 and 3 compatibility utilities.""" + homepage = "https://pypi.python.org/pypi/six" url = "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz" - version('1.9.0', '476881ef4012262dfc8adc645ee786c4') version('1.10.0', '34eed507548117b2ab523ab14b2f8b55') + version('1.9.0', '476881ef4012262dfc8adc645ee786c4') extends('python') + depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py index feb3856e8b..d5e32fd5e2 100644 --- a/var/spack/repos/builtin/packages/py-sncosmo/package.py +++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py @@ -48,4 +48,4 @@ class PySncosmo(Package): depends_on('py-nestle', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py new file mode 100644 index 0000000000..44c0548932 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-snowballstemmer/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 PySnowballstemmer(Package): + """This package provides 16 stemmer algorithms (15 + Poerter + English stemmer) generated from Snowball algorithms.""" + + homepage = "https://pypi.python.org/pypi/snowballstemmer" + url = "https://pypi.python.org/packages/source/s/snowballstemmer/snowballstemmer-1.2.1.tar.gz" + + version('1.2.1', '643b019667a708a922172e33a99bf2fa') + + extends('python') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py new file mode 100644 index 0000000000..9c57628e2c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/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 PySphinxRtdTheme(Package): + """ReadTheDocs.org theme for Sphinx.""" + + homepage = "https://pypi.python.org/pypi/sphinx_rtd_theme" + url = "https://pypi.python.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-0.1.10a0.tar.gz" + + version('0.1.10a0', '83bd95cae55aa8b773a8cc3a41094282', + url="https://pypi.python.org/packages/da/6b/1b75f13d8aa3333f19c6cdf1f0bc9f52ea739cae464fbee050307c121857/sphinx_rtd_theme-0.1.10a0.tar.gz") + + extends('python') + + depends_on('py-setuptools', type='build') + + def install(self, spec, prefix): + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index 2295a6a0c3..923962a2dc 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -30,9 +30,25 @@ class PySphinx(Package): homepage = "http://sphinx-doc.org" url = "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-1.3.1.tar.gz" + version('1.4.5', '5c2cd2dac45dfa6123d067e32a89e89a', + url='https://pypi.python.org/packages/8b/78/eeea2b837f911cdc301f5f05163f9729a2381cadd03ccf35b25afe816c90/Sphinx-1.4.5.tar.gz') version('1.3.1', '8786a194acf9673464c5455b11fd4332') - extends('python') + extends('python', ignore='bin/(pybabel|pygmentize)') + + # Most Python packages only require py-setuptools as a build dependency. + # However, py-sphinx requires py-setuptools during runtime as well. + depends_on('py-setuptools', type=nolink) + + depends_on('py-six@1.4:', type=nolink) + depends_on('py-jinja2@2.3:', type=nolink) + depends_on('py-pygments@2.0:', type=nolink) + depends_on('py-docutils@0.11:', type=nolink) + depends_on('py-snowballstemmer@1.1:', type=nolink) + depends_on('py-babel@1.3:', type=nolink) # not 2.0 + depends_on('py-alabaster@0.7:', type=nolink) + depends_on('py-imagesize', when='@1.4:', type=nolink) + depends_on('py-sphinx-rtd-theme@0.1:', type=nolink) # optional as of 1.4 def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-storm/package.py b/var/spack/repos/builtin/packages/py-storm/package.py index 0e972480f3..74fb2add0d 100644 --- a/var/spack/repos/builtin/packages/py-storm/package.py +++ b/var/spack/repos/builtin/packages/py-storm/package.py @@ -37,4 +37,4 @@ class PyStorm(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py new file mode 100644 index 0000000000..7f7cd84a77 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-symengine/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PySymengine(Package): + """Python wrappers for SymEngine, a symbolic manipulation library.""" + + homepage = "https://github.com/symengine/symengine.py" + url = "https://github.com/symengine/symengine.py/archive/v0.2.0.tar.gz" + + version('0.2.0', 'e1d114fa12be4c8c7e9f24007e07718c') + version('develop', git='https://github.com/symengine/symengine.py.git') + + # Build dependencies + extends('python') + depends_on('python@2.7:2.8,3.3:') + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.19.1:') + depends_on('cmake@2.8.7:', type='build') + depends_on('symengine@0.2.0:') + + def install(self, spec, prefix): + python('setup.py', 'install', '--prefix=%s --symengine-dir=%s' % + (prefix, spec['symengine'].prefix)) diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py index 3d8b86ac4d..7d1b016263 100644 --- a/var/spack/repos/builtin/packages/py-sympy/package.py +++ b/var/spack/repos/builtin/packages/py-sympy/package.py @@ -37,4 +37,4 @@ class PySympy(Package): depends_on('py-mpmath', when='@1.0:') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py index 03e9528ad7..c195d08fd9 100644 --- a/var/spack/repos/builtin/packages/py-tappy/package.py +++ b/var/spack/repos/builtin/packages/py-tappy/package.py @@ -37,4 +37,4 @@ class PyTappy(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py index 672a3ee587..e20de3ff79 100644 --- a/var/spack/repos/builtin/packages/py-tuiview/package.py +++ b/var/spack/repos/builtin/packages/py-tuiview/package.py @@ -26,10 +26,10 @@ from spack import * class PyTuiview(Package): + """TuiView is a lightweight raster GIS with powerful raster attribute + table manipulation abilities. """ - TuiView is a lightweight raster GIS with powerful raster attribute - table manipulation abilities. - """ + homepage = "https://bitbucket.org/chchrsc/tuiview" url = "https://bitbucket.org/chchrsc/tuiview/get/tuiview-1.1.7.tar.gz" @@ -41,4 +41,4 @@ class PyTuiview(Package): depends_on("gdal") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py index edf1e7b0d7..80023c2123 100644 --- a/var/spack/repos/builtin/packages/py-twisted/package.py +++ b/var/spack/repos/builtin/packages/py-twisted/package.py @@ -38,4 +38,4 @@ class PyTwisted(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py index 174ab0ca5f..ddd50a37d4 100644 --- a/var/spack/repos/builtin/packages/py-unittest2/package.py +++ b/var/spack/repos/builtin/packages/py-unittest2/package.py @@ -38,4 +38,4 @@ class PyUnittest2(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py index 95e6dcbff0..4aee545d74 100644 --- a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py +++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py @@ -39,4 +39,4 @@ class PyUnittest2py3k(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py index 943fb250f6..61dec3f1cd 100644 --- a/var/spack/repos/builtin/packages/py-urwid/package.py +++ b/var/spack/repos/builtin/packages/py-urwid/package.py @@ -37,4 +37,4 @@ class PyUrwid(Package): extends("python") def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py index 0ed567df95..f373067144 100644 --- a/var/spack/repos/builtin/packages/py-virtualenv/package.py +++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py @@ -38,4 +38,4 @@ class PyVirtualenv(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py index 9588b879fa..ddc10d3e22 100644 --- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py +++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py @@ -40,4 +40,4 @@ class PyWcsaxes(Package): depends_on('py-astropy', type=nolink) def install(self, spec, prefix): - python('setup.py', 'install', '--prefix={0}'.format(prefix)) + setup_py('install', '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py index f0ad340835..ce495bf6d0 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -37,4 +37,4 @@ class PyWheel(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py index 81c3c928c0..9638b8a36b 100644 --- a/var/spack/repos/builtin/packages/py-xlrd/package.py +++ b/var/spack/repos/builtin/packages/py-xlrd/package.py @@ -37,4 +37,4 @@ class PyXlrd(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-xpyb/package.py b/var/spack/repos/builtin/packages/py-xpyb/package.py new file mode 100644 index 0000000000..49c6343c45 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-xpyb/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class PyXpyb(Package): + """xpyb provides a Python binding to the X Window System protocol + via libxcb.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xpyb-1.3.1.tar.gz" + + version('1.3.1', '75d567e25517fb883a56f10b77fd2757') + + extends('python') + + depends_on('libxcb@1.5:') + + depends_on('xcb-proto@1.7.1:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/py-yapf/package.py b/var/spack/repos/builtin/packages/py-yapf/package.py index bc26b82b07..eab4d54abc 100644 --- a/var/spack/repos/builtin/packages/py-yapf/package.py +++ b/var/spack/repos/builtin/packages/py-yapf/package.py @@ -37,4 +37,4 @@ class PyYapf(Package): depends_on('py-setuptools', type='build') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py new file mode 100644 index 0000000000..646bd4db2f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-yt/package.py @@ -0,0 +1,78 @@ +############################################################################## +# 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 PyYt(Package): + """Volumetric Data Analysis + + yt is a python package for analyzing and visualizing + volumetric, multi-resolution data from astrophysical + simulations, radio telescopes, and a burgeoning + interdisciplinary community. + """ + homepage = "http://yt-project.org" + url = "https://bitbucket.org/yt_analysis/yt" + + version("3.3.1", hg="https://bitbucket.org/yt_analysis/yt", + tag="yt-3.3.1", commit="9bc3d0e9b750c923d44d73c447df64fc431f5838") + version("3.2.3", hg="https://bitbucket.org/yt_analysis/yt", + tag="yt-3.2.3", commit="83d2c1e9313e7d83eb5b96888451ff2646fd8ff3") + version("3.1.0", hg="https://bitbucket.org/yt_analysis/yt", + tag="yt-3.1.0", commit="fd7cdc4836188a3badf81adb477bcc1b9632e485") + version("3.0.2", hg="https://bitbucket.org/yt_analysis/yt", + tag="yt-3.0.2", commit="511887af4c995a78fe606e58ce8162c88380ecdc") + version("2.6.3", hg="https://bitbucket.org/yt_analysis/yt", + tag="yt-2.6.3", commit="816186f16396a16853810ac9ebcde5057d8d5b1a") + version("development", hg="https://bitbucket.org/yt_analysis/yt", + branch="yt") + + variant("astropy", default=True, description="enable astropy support") + variant("h5py", default=True, description="enable h5py support") + variant("scipy", default=True, description="enable scipy support") + + extends("python") + + depends_on("py-astropy", type="nolink", when="+astropy") + depends_on("py-cython", type="nolink") + depends_on("py-h5py", type="nolink", when="+h5py") + depends_on("py-ipython", type="nolink") + depends_on("py-matplotlib", type="nolink") + depends_on("py-numpy", type="nolink") + depends_on("py-scipy", type="nolink", when="+scipy") + depends_on("py-setuptools", type="build") + depends_on("py-sympy", type="nolink") + depends_on("python @2.7:2.999,3.4:") + + def install(self, spec, prefix): + setup_py("install", "--prefix=%s" % prefix) + self.check_install(spec, prefix) + + def check_install(self, spec, prefix): + # The Python interpreter path can be too long for this + # yt = Executable(join_path(prefix.bin, "yt")) + # yt("--help") + python(join_path(prefix.bin, "yt"), "--help") diff --git a/var/spack/repos/builtin/packages/python/ncurses.patch b/var/spack/repos/builtin/packages/python/ncurses.patch new file mode 100644 index 0000000000..9054c03e7b --- /dev/null +++ b/var/spack/repos/builtin/packages/python/ncurses.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2016-08-30 15:39:59.334926574 -0500 ++++ b/setup.py 2016-08-30 15:46:57.227946339 -0500 +@@ -745,8 +745,6 @@ + # use the same library for the readline and curses modules. + if 'curses' in readline_termcap_library: + curses_library = readline_termcap_library +- elif self.compiler.find_library_file(lib_dirs, 'ncursesw'): +- curses_library = 'ncursesw' + elif self.compiler.find_library_file(lib_dirs, 'ncurses'): + curses_library = 'ncurses' + elif self.compiler.find_library_file(lib_dirs, 'curses'): diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index c4e6754969..370e14b2ae 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -74,6 +74,8 @@ class Python(Package): depends_on("tk", when="+tk") depends_on("tcl", when="+tk") + patch('ncurses.patch') + @when('@2.7,3.4:') def patch(self): # NOTE: Python's default installation procedure makes it possible for a @@ -110,6 +112,8 @@ class Python(Package): 'CPPFLAGS=-I{0}'.format(' -I'.join(dp.include for dp in dep_pfxs)), 'LDFLAGS=-L{0}'.format(' -L'.join(dp.lib for dp in dep_pfxs)), ] + if spec.satisfies("platform=darwin") and ('%gcc' in spec): + config_args.append('--disable-toolbox-glue') if '+ucs4' in spec: if spec.satisfies('@:2.7'): @@ -133,6 +137,8 @@ class Python(Package): # TODO: Once better testing support is integrated, add the following tests # https://wiki.python.org/moin/TkInter # + # Note: Only works if ForwardX11Trusted is enabled, i.e. `ssh -Y` + # # if '+tk' in spec: # env['TK_LIBRARY'] = join_path(spec['tk'].prefix.lib, # 'tk{0}'.format(spec['tk'].version.up_to(2))) @@ -196,8 +202,27 @@ class Python(Package): def setup_dependent_environment(self, spack_env, run_env, extension_spec): """Set PYTHONPATH to include site-packages dir for the extension and any other python extensions it depends on.""" - pythonhome = self.prefix - spack_env.set('PYTHONHOME', pythonhome) + # The python executable for version 3 may be python3 or python + # See https://github.com/LLNL/spack/pull/2173#issuecomment-257170199 + pythonex = 'python{0}'.format('3' if self.spec.satisfies('@3') else '') + if os.path.isdir(self.prefix.bin): + base = self.prefix.bin + else: + base = self.prefix + if not os.path.isfile(os.path.join(base, pythonex)): + if self.spec.satisfies('@3'): + python = Executable(os.path.join(base, 'python')) + version = python('-c', 'import sys; print(sys.version)', + output=str) + if version.startswith('3'): + pythonex = 'python' + else: + raise RuntimeError('Cannot locate python executable') + else: + raise RuntimeError('Cannot locate python executable') + python = Executable(os.path.join(base, pythonex)) + prefix = python('-c', 'import sys; print(sys.prefix)', output=str) + spack_env.set('PYTHONHOME', prefix.strip('\n')) python_paths = [] for d in extension_spec.traverse(deptype=nolink, deptype_query='run'): @@ -321,7 +346,7 @@ sys.__egginsert = p + len(new) super(Python, self).activate(ext_pkg, **args) - exts = spack.install_layout.extension_map(self.spec) + exts = spack.store.layout.extension_map(self.spec) exts[ext_pkg.name] = ext_pkg.spec self.write_easy_install_pth(exts) @@ -329,7 +354,7 @@ sys.__egginsert = p + len(new) args.update(ignore=self.python_ignore(ext_pkg, args)) super(Python, self).deactivate(ext_pkg, **args) - exts = spack.install_layout.extension_map(self.spec) + exts = spack.store.layout.extension_map(self.spec) # Make deactivate idempotent if ext_pkg.name in exts: del exts[ext_pkg.name] diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py index 2733d8b652..4456c16bd2 100644 --- a/var/spack/repos/builtin/packages/qhull/package.py +++ b/var/spack/repos/builtin/packages/qhull/package.py @@ -25,7 +25,7 @@ from spack import * -class Qhull(Package): +class Qhull(CMakePackage): """Qhull computes the convex hull, Delaunay triangulation, Voronoi diagram, halfspace intersection about a point, furt hest-site Delaunay triangulation, and furthest-site Voronoi diagram. The @@ -37,19 +37,10 @@ class Qhull(Package): homepage = "http://www.qhull.org" - version('7.2.0', 'e6270733a826a6a7c32b796e005ec3dc', + version('2015.2', 'e6270733a826a6a7c32b796e005ec3dc', url="http://www.qhull.org/download/qhull-2015-src-7.2.0.tgz") - version('1.0', 'd0f978c0d8dfb2e919caefa56ea2953c', + version('2012.1', 'd0f978c0d8dfb2e919caefa56ea2953c', url="http://www.qhull.org/download/qhull-2012.1-src.tgz") - # https://github.com/qhull/qhull/pull/5 - patch('qhull-iterator.patch', when='@1.0') - - depends_on('cmake', type='build') - - def install(self, spec, prefix): - with working_dir('spack-build', create=True): - cmake('..', *std_cmake_args) - make() - make("install") + depends_on('cmake@2.6:', type='build') diff --git a/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch b/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch deleted file mode 100644 index 88e931d84f..0000000000 --- a/var/spack/repos/builtin/packages/qhull/qhull-iterator.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 93f4b306c54bb5be7724dcc19c6e747b62ac76dd Mon Sep 17 00:00:00 2001 -From: Ben Boeckel <mathstuf@gmail.com> -Date: Thu, 28 May 2015 11:12:25 -0400 -Subject: [PATCH] iterator: use the header - -Standard libraries are doing funky things with inline namespaces which -make these declarations impossible to get right. Just include the -header. ---- - src/libqhullcpp/QhullIterator.h | 3 +-- - src/libqhullcpp/QhullLinkedList.h | 5 +---- - 2 files changed, 2 insertions(+), 6 deletions(-) - -diff --git a/src/libqhullcpp/QhullIterator.h b/src/libqhullcpp/QhullIterator.h -index 9dde894..49f3a3b 100644 ---- a/src/libqhullcpp/QhullIterator.h -+++ b/src/libqhullcpp/QhullIterator.h -@@ -14,10 +14,9 @@ extern "C" { - } - - #include <assert.h> -+#include <iterator> - #include <string> - #include <vector> --//! Avoid dependence on <iterator> --namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; } - - namespace orgQhull { - -diff --git a/src/libqhullcpp/QhullLinkedList.h b/src/libqhullcpp/QhullLinkedList.h -index d828ac6..00b9008 100644 ---- a/src/libqhullcpp/QhullLinkedList.h -+++ b/src/libqhullcpp/QhullLinkedList.h -@@ -9,10 +9,7 @@ - #ifndef QHULLLINKEDLIST_H - #define QHULLLINKEDLIST_H - --namespace std { -- struct bidirectional_iterator_tag; -- struct random_access_iterator_tag; --}//std -+#include <iterator> - - #include "QhullError.h" - extern "C" { diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py new file mode 100644 index 0000000000..347cf4d6ee --- /dev/null +++ b/var/spack/repos/builtin/packages/qt-creator/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 * +import os + + +class QtCreator(Package): + """The Qt Creator IDE.""" + homepage = 'https://www.qt.io/ide/' + url = 'http://download.qt.io/official_releases/qtcreator/4.1/4.1.0/qt-creator-opensource-src-4.1.0.tar.gz' + + list_url = 'http://download.qt.io/official_releases/qtcreator/' + list_depth = 3 + + version('4.1.0', '657727e4209befa4bf5889dff62d9e0a') + + depends_on("qt") + + def install(self, spec, prefix): + os.environ['INSTALL_ROOT'] = self.prefix + qmake = which('qmake') + qmake('-r') + make() + make("install") diff --git a/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch b/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch new file mode 100644 index 0000000000..e6a27d5fab --- /dev/null +++ b/var/spack/repos/builtin/packages/qt/btn_trigger_happy.patch @@ -0,0 +1,17 @@ +--- a/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp 2016-08-08 11:34:44.517184658 -0500 ++++ b/qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp 2016-08-08 11:36:42.371995567 -0500 +@@ -262,10 +262,10 @@ + m_buttonsMap[BTN_TR2] = QGamepadManager::ButtonR2; + m_buttonsMap[BTN_THUMB] = m_buttonsMap[BTN_THUMBL] = QGamepadManager::ButtonL3; + m_buttonsMap[BTN_THUMBR] = QGamepadManager::ButtonR3; +- m_buttonsMap[BTN_TRIGGER_HAPPY1] = QGamepadManager::ButtonLeft; +- m_buttonsMap[BTN_TRIGGER_HAPPY2] = QGamepadManager::ButtonRight; +- m_buttonsMap[BTN_TRIGGER_HAPPY3] = QGamepadManager::ButtonUp; +- m_buttonsMap[BTN_TRIGGER_HAPPY4] = QGamepadManager::ButtonDown; ++ m_buttonsMap[0x2c0] = QGamepadManager::ButtonLeft; ++ m_buttonsMap[0x2c1] = QGamepadManager::ButtonRight; ++ m_buttonsMap[0x2c2] = QGamepadManager::ButtonUp; ++ m_buttonsMap[0x2c3] = QGamepadManager::ButtonDown; + + if (m_productId) + m_backend->saveSettings(m_productId, QVariant()); diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index e496a3e4d5..6447d7d6d4 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -24,12 +24,17 @@ ############################################################################## from spack import * import os +import sys class Qt(Package): """Qt is a comprehensive cross-platform C++ application framework.""" homepage = 'http://qt.io' + url = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz' + list_url = 'http://download.qt.io/archive/qt/' + list_depth = 4 + version('5.7.0', '9a46cce61fc64c20c3ac0a0e0fa41b42') version('5.5.1', '59f0216819152b77536cf660b015d784') version('5.4.2', 'fa1c4d819b401b267eb246a543a63ea5') version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6') @@ -40,90 +45,118 @@ class Qt(Package): # Add patch for compile issues with qt3 found with use in the # OpenSpeedShop project - variant('krellpatch', default=False, - description="Build with openspeedshop based patch.") + variant('krellpatch', default=False, description="Build with openspeedshop based patch.") variant('mesa', default=False, description="Depend on mesa.") variant('gtk', default=False, description="Build with gtkplus.") + variant('webkit', default=False, description="Build the Webkit extension") + variant('examples', default=False, description="Build examples.") + variant('dbus', default=False, description="Build with D-Bus support.") patch('qt3krell.patch', when='@3.3.8b+krellpatch') - # Use system openssl for security. - # depends_on("openssl") + # https://github.com/xboxdrv/xboxdrv/issues/188 + patch('btn_trigger_happy.patch', when='@5.7.0:') + + patch('qt4-corewlan-new-osx.patch', when='@4') + patch('qt4-pcre-include-conflict.patch', when='@4') + patch('qt4-el-capitan.patch', when='@4') + # Use system openssl for security. + depends_on("openssl") depends_on("glib") depends_on("gtkplus", when='+gtk') depends_on("libxml2") depends_on("zlib") - depends_on("dbus", when='@4:') + depends_on("dbus", when='@4:+dbus') depends_on("libtiff") depends_on("libpng@1.2.56", when='@3') depends_on("libpng", when='@4:') depends_on("libmng") depends_on("jpeg") - - # Webkit - # depends_on("gperf") - # depends_on("flex", type='build') - # depends_on("bison", type='build') - # depends_on("ruby") - # depends_on("icu4c") + depends_on("icu4c") # OpenGL hardware acceleration depends_on("mesa", when='@4:+mesa') - depends_on("libxcb") + depends_on("libxcb", when=sys.platform != 'darwin') + + # Webkit + depends_on("flex", when='+webkit', type='build') + depends_on("bison", when='+webkit', type='build') + depends_on("gperf", when='+webkit') + depends_on("fontconfig", when='+webkit') + + # Multimedia + # depends_on("gstreamer", when='+multimedia') + # depends_on("pulse", when='+multimedia') + # depends_on("flac", when='+multimedia') + # depends_on("ogg", when='+multimedia') def url_for_version(self, version): - url = "http://download.qt.io/archive/qt/" + # URL keeps getting more complicated with every release + url = self.list_url + + if version >= Version('4.0'): + url += version.up_to(2) + '/' + else: + url += version.up_to(1) + '/' + + if version >= Version('4.8'): + url += str(version) + '/' if version >= Version('5'): - url += "%s/%s/single/qt-everywhere-opensource-src-%s.tar.gz" % \ - (version.up_to(2), version, version) - elif version >= Version('4.8'): - url += "%s/%s/qt-everywhere-opensource-src-%s.tar.gz" % \ - (version.up_to(2), version, version) - elif version >= Version('4.6'): - url += "%s/qt-everywhere-opensource-src-%s.tar.gz" % \ - (version.up_to(2), version) - elif version >= Version('4.0'): - url += "%s/qt-x11-opensource-src-%s.tar.gz" % \ - (version.up_to(2), version) - elif version >= Version('3'): - url += "%s/qt-x11-free-%s.tar.gz" % \ - (version.up_to(1), version) + url += 'single/' + + url += 'qt-' + + if version >= Version('4.6'): + url += 'everywhere-' elif version >= Version('2.1'): - url += "%s/qt-x11-%s.tar.gz" % \ - (version.up_to(1), version) - else: - url += "%s/qt-%s.tar.gz" % \ - (version.up_to(1), version) + url += 'x11-' + + if version >= Version('4.0'): + url += 'opensource-src-' + elif version >= Version('3'): + url += 'free-' + + url += str(version) + '.tar.gz' return url - def setup_environment(self, spack_env, env): - env.set('QTDIR', self.prefix) + def setup_environment(self, spack_env, run_env): + run_env.set('QTDIR', self.prefix) def setup_dependent_environment(self, spack_env, run_env, dspec): spack_env.set('QTDIR', self.prefix) + def setup_dependent_package(self, module, ext_spec): + module.qmake = Executable(join_path(self.spec.prefix.bin, 'qmake')) + def patch(self): if self.spec.satisfies('@4'): - qmake_conf = 'mkspecs/common/g++-base.conf' - qmake_unix_conf = 'mkspecs/common/g++-unix.conf' - elif self.spec.satisfies('@5'): - qmake_conf = 'qtbase/mkspecs/common/g++-base.conf' - qmake_unix_conf = 'qtbase/mkspecs/common/g++-unix.conf' - else: - return - - # Fix qmake compilers in the default mkspec - filter_file(r'^QMAKE_COMPILER *=.*$', - 'QMAKE_COMPILER = cc', qmake_conf) - filter_file(r'^QMAKE_CC *=.*$', - 'QMAKE_CC = cc', qmake_conf) - filter_file(r'^QMAKE_CXX *=.*$', - 'QMAKE_CXX = c++', qmake_conf) - filter_file(r'^QMAKE_LFLAGS_NOUNDEF *\+?=.*$', - 'QMAKE_LFLAGS_NOUNDEF =', qmake_unix_conf) + # Fix qmake compilers in the default mkspec + filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc', + 'mkspecs/common/g++-base.conf') + filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++', + 'mkspecs/common/g++-base.conf') + + # Necessary to build with GCC 6 and other modern compilers + # http://stackoverflow.com/questions/10354371/ + filter_file('(^QMAKE_CXXFLAGS .*)', r'\1 -std=gnu++98', + 'mkspecs/common/gcc-base.conf') + + filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ', + 'mkspecs/common/g++-unix.conf') + elif self.spec.satisfies('@5:'): + # Fix qmake compilers in the default mkspec + filter_file('^QMAKE_COMPILER .*', 'QMAKE_COMPILER = cc', + 'qtbase/mkspecs/common/g++-base.conf') + filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc', + 'qtbase/mkspecs/common/g++-base.conf') + filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++', + 'qtbase/mkspecs/common/g++-base.conf') + + filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ', + 'qtbase/mkspecs/common/g++-unix.conf') @property def common_config_args(self): @@ -136,7 +169,6 @@ class Qt(Package): '-shared', '-confirm-license', '-openssl-linked', - '-dbus-linked', '-optimized-qmake', '-no-openvg', '-no-pch', @@ -144,10 +176,45 @@ class Qt(Package): '-no-nis' ] - if '+gtk' in self.spec: - config_args.append('-gtkstyle') + if '~examples' in self.spec: + config_args.extend(['-nomake', 'examples']) + + if '@4' in self.spec: + config_args.append('-no-phonon') + + if '+dbus' in self.spec: + config_args.append('-dbus-linked') else: - config_args.append('-no-gtkstyle') + config_args.append('-no-dbus') + + if '@5:' in self.spec and sys.platform == 'darwin': + config_args.extend([ + '-no-xinput2', + '-no-xcb-xlib', + '-no-pulseaudio', + '-no-alsa', + ]) + + if '@4' in self.spec and sys.platform == 'darwin': + sdkpath = which('xcrun')('--show-sdk-path', + # XXX(macos): 10.11 SDK fails to configure + '--sdk', 'macosx10.9', + output=str) + config_args.extend([ + '-sdk', sdkpath.strip(), + ]) + use_clang_platform = False + if self.spec.compiler.name == 'clang' and \ + str(self.spec.compiler.version).endwith('-apple'): + use_clang_platform = True + # No one uses gcc-4.2.1 anymore; this is clang. + if self.spec.compiler.name == 'gcc' and \ + str(self.spec.compiler.version) == '4.2.1': + use_clang_platform = True + if use_clang_platform: + config_args.extend([ + '-platform', 'unsupported/macx-clang', + ]) return config_args @@ -156,7 +223,7 @@ class Qt(Package): @when('@3') def configure(self): - # An user report that this was necessary to link Qt3 on ubuntu + # A user reported that this was necessary to link Qt3 on ubuntu os.environ['LD_LIBRARY_PATH'] = os.getcwd() + '/lib' configure('-prefix', self.prefix, '-v', @@ -168,18 +235,37 @@ class Qt(Package): @when('@4') def configure(self): configure('-fast', - '-no-webkit', + '-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'), + '-{0}webkit'.format('' if '+webkit' in self.spec else 'no-'), + '-arch', str(self.spec.architecture.target), *self.common_config_args) - @when('@5') + @when('@5.0:5.6') def configure(self): + webkit_args = [] if '+webkit' in self.spec else ['-skip', 'qtwebkit'] configure('-no-eglfs', '-no-directfb', - '-qt-xcb', - # If someone wants to get a webkit build working, be my - # guest! - '-skip', 'qtwebkit', - *self.common_config_args) + '-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'), + *(webkit_args + self.common_config_args)) + + @when('@5.7:') + def configure(self): + config_args = self.common_config_args + + if not sys.platform == 'darwin': + config_args.extend([ + '-qt-xcb', + ]) + + if '~webkit' in self.spec: + config_args.extend([ + '-skip', 'webengine', + ]) + + configure('-no-eglfs', + '-no-directfb', + '-{0}gtk'.format('' if '+gtk' in self.spec else 'no-'), + *config_args) def install(self, spec, prefix): self.configure() diff --git a/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch b/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch new file mode 100644 index 0000000000..370edf7fa5 --- /dev/null +++ b/var/spack/repos/builtin/packages/qt/qt4-corewlan-new-osx.patch @@ -0,0 +1,16 @@ +diff -Nr -U5 qt-everywhere-opensource-src-4.8.6/src/plugins/bearer/corewlan/corewlan.pro qt-everywhere-opensource-src-4.8.6.corewlan-new-osx/src/plugins/bearer/corewlan/corewlan.pro +--- qt-everywhere-opensource-src-4.8.6/src/plugins/bearer/corewlan/corewlan.pro 2014-04-10 14:37:12.000000000 -0400 ++++ qt-everywhere-opensource-src-4.8.6.corewlan-new-osx/src/plugins/bearer/corewlan/corewlan.pro 2015-12-02 12:21:34.608585392 -0500 +@@ -3,11 +3,11 @@ + + QT = core network + LIBS += -framework Foundation -framework SystemConfiguration + + contains(QT_CONFIG, corewlan) { +- isEmpty(QMAKE_MAC_SDK)|contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10\.[67]\.sdk") { ++ isEmpty(QMAKE_MAC_SDK)|contains(QMAKE_MAC_SDK, ".*MacOSX10\.([6789]|1[01])\.sdk") { + LIBS += -framework CoreWLAN -framework Security + } + } + + HEADERS += qcorewlanengine.h \ diff --git a/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch b/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch new file mode 100644 index 0000000000..35f154d3b0 --- /dev/null +++ b/var/spack/repos/builtin/packages/qt/qt4-el-capitan.patch @@ -0,0 +1,31 @@ +From 27aa46933bb32a88c310fe5918a49a3f34d65dfe Mon Sep 17 00:00:00 2001 +From: Mike McQuaid <mike@mikemcquaid.com> +Date: Sun, 13 Sep 2015 11:55:59 +0100 +Subject: [PATCH] Fix El Capitan build. + +--- + src/gui/painting/qpaintengine_mac.cpp | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/src/gui/painting/qpaintengine_mac.cpp b/src/gui/painting/qpaintengine_mac.cpp +index 4aa0668..63b646d 100644 +--- a/src/gui/painting/qpaintengine_mac.cpp ++++ b/src/gui/painting/qpaintengine_mac.cpp +@@ -340,13 +340,7 @@ CGColorSpaceRef QCoreGraphicsPaintEngine::macDisplayColorSpace(const QWidget *wi + } + + // Get the color space from the display profile. +- CGColorSpaceRef colorSpace = 0; +- CMProfileRef displayProfile = 0; +- CMError err = CMGetProfileByAVID((CMDisplayIDType)displayID, &displayProfile); +- if (err == noErr) { +- colorSpace = CGColorSpaceCreateWithPlatformColorSpace(displayProfile); +- CMCloseProfile(displayProfile); +- } ++ CGColorSpaceRef colorSpace = CGDisplayCopyColorSpace(displayID); + + // Fallback: use generic DeviceRGB + if (colorSpace == 0) +-- +2.3.8 (Apple Git-58) + diff --git a/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch b/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch new file mode 100644 index 0000000000..854e564bfb --- /dev/null +++ b/var/spack/repos/builtin/packages/qt/qt4-pcre-include-conflict.patch @@ -0,0 +1,16 @@ +diff -U5 -Nru qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h +--- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h 2014-04-10 14:37:12.000000000 -0400 ++++ qt-everywhere-opensource-src-4.8.6.pcre/src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.h 2016-08-29 15:30:02.216546252 -0400 +@@ -32,11 +32,11 @@ + + #include "MacroAssembler.h" + #include "RegexPattern.h" + #include <UString.h> + +-#include <pcre.h> ++#include <pcre/pcre.h> + struct JSRegExp; // temporary, remove when fallback is removed. + + #if CPU(X86) && !COMPILER(MSVC) + #define YARR_CALL __attribute__ ((regparm (3))) + #else diff --git a/var/spack/repos/builtin/packages/qthreads/ldflags.patch b/var/spack/repos/builtin/packages/qthreads/ldflags.patch deleted file mode 100644 index 0c15eab386..0000000000 --- a/var/spack/repos/builtin/packages/qthreads/ldflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/configure -+++ b/configure -@@ -40456,7 +40456,7 @@ - hwloc_saved_LDFLAGS="$LDFLAGS" - if test "x$with_hwloc" != x; then - CPPFLAGS="-I$with_hwloc/include $CPPFLAGS" -- LDFLAGS="-L$with_hwloc/lib $CPPFLAGS" -+ LDFLAGS="-L$with_hwloc/lib $LDFLAGS" - fi - - diff --git a/var/spack/repos/builtin/packages/qthreads/package.py b/var/spack/repos/builtin/packages/qthreads/package.py index 2eaff0a240..aa2f0ac67a 100644 --- a/var/spack/repos/builtin/packages/qthreads/package.py +++ b/var/spack/repos/builtin/packages/qthreads/package.py @@ -37,16 +37,20 @@ class Qthreads(Package): either full or empty, and a thread can wait for any word to attain either state.""" homepage = "http://www.cs.sandia.gov/qthreads/" - url = "https://qthreads.googlecode.com/files/qthread-1.10.tar.bz2" - version('1.10', '5af8c8bbe88c2a6d45361643780d1671') + url = "https://github.com/Qthreads/qthreads/releases/download/1.10/qthread-1.10.tar.bz2" + version("1.11", "68b5f9a41cfd1a2ac112cc4db0612326") + version("1.10", "d1cf3cf3f30586921359f7840171e551") - patch("ldflags.patch") - patch("restrict.patch") - patch("trap.patch") + patch("restrict.patch", when="@:1.10") + patch("trap.patch", when="@:1.10") + + depends_on("hwloc") def install(self, spec, prefix): configure("--prefix=%s" % prefix, - "--enable-guard-pages") + "--enable-guard-pages", + "--with-topology=hwloc", + "--with-hwloc=%s" % spec["hwloc"].prefix) make() make("install") diff --git a/var/spack/repos/builtin/packages/r-datatable/package.py b/var/spack/repos/builtin/packages/r-datatable/package.py index 8b50643341..fb0b2f1053 100644 --- a/var/spack/repos/builtin/packages/r-datatable/package.py +++ b/var/spack/repos/builtin/packages/r-datatable/package.py @@ -39,7 +39,7 @@ class RDatatable(Package): extends('R') - depends_on('r-chron') + depends_on('r-chron', type='nolink') def install(self, spec, prefix): R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir), diff --git a/var/spack/repos/builtin/packages/r-stringi/package.py b/var/spack/repos/builtin/packages/r-stringi/package.py index 22774dedec..cc57caf8cd 100644 --- a/var/spack/repos/builtin/packages/r-stringi/package.py +++ b/var/spack/repos/builtin/packages/r-stringi/package.py @@ -44,7 +44,7 @@ class RStringi(Package): extends('R') - depends_on('icu') + depends_on('icu4c') def install(self, spec, prefix): R('CMD', 'INSTALL', '--library={0}'.format(self.module.r_lib_dir), diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index e9db4b4fc8..dccf9a581c 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -32,6 +32,7 @@ class Raja(Package): version('git', git='https://github.com/LLNL/RAJA.git', branch="master") def install(self, spec, prefix): - cmake('.', *std_cmake_args) - make() - make('install') + with working_dir('build', create=True): + cmake('..', *std_cmake_args) + make() + make('install') diff --git a/var/spack/repos/builtin/packages/randrproto/package.py b/var/spack/repos/builtin/packages/randrproto/package.py new file mode 100644 index 0000000000..ecff886a3b --- /dev/null +++ b/var/spack/repos/builtin/packages/randrproto/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 Randrproto(Package): + """X Resize and Rotate Extension (RandR). + + This extension defines a protocol for clients to dynamically change X + screens, so as to resize, rotate and reflect the root window of a screen. + """ + + homepage = "http://cgit.freedesktop.org/xorg/proto/randrproto" + url = "https://www.x.org/archive/individual/proto/randrproto-1.5.0.tar.gz" + + version('1.5.0', '863d6ee3e0b2708f75d968470ed31eb9') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/recordproto/package.py b/var/spack/repos/builtin/packages/recordproto/package.py new file mode 100644 index 0000000000..02018a76ff --- /dev/null +++ b/var/spack/repos/builtin/packages/recordproto/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 Recordproto(Package): + """X Record Extension. + + This extension defines a protocol for the recording and playback of user + actions in the X Window System.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/recordproto" + url = "https://www.x.org/archive/individual/proto/recordproto-1.14.2.tar.gz" + + version('1.14.2', '868235e1e150e68916d5a316ebc4ccc4') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/rendercheck/package.py b/var/spack/repos/builtin/packages/rendercheck/package.py new file mode 100644 index 0000000000..07cc809e9a --- /dev/null +++ b/var/spack/repos/builtin/packages/rendercheck/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Rendercheck(Package): + """rendercheck is a program to test a Render extension implementation + against separate calculations of expected output.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/rendercheck" + url = "https://www.x.org/archive/individual/app/rendercheck-1.5.tar.gz" + + version('1.5', '92ddef6d01f02529521af103f9b9bf60') + + depends_on('libxrender') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/renderproto/package.py b/var/spack/repos/builtin/packages/renderproto/package.py new file mode 100644 index 0000000000..10be4c941c --- /dev/null +++ b/var/spack/repos/builtin/packages/renderproto/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 Renderproto(Package): + """X Rendering Extension. + + This extension defines the protcol for a digital image composition as + the foundation of a new rendering model within the X Window System.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/renderproto" + url = "https://www.x.org/archive/individual/proto/renderproto-0.11.1.tar.gz" + + version('0.11.1', '9b103359123e375bb7760f7dbae3dece') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/resourceproto/package.py b/var/spack/repos/builtin/packages/resourceproto/package.py new file mode 100644 index 0000000000..4e0a495d83 --- /dev/null +++ b/var/spack/repos/builtin/packages/resourceproto/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 Resourceproto(Package): + """X Resource Extension. + + This extension defines a protocol that allows a client to query the + X server about its usage of various resources.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/resourceproto" + url = "https://www.x.org/archive/individual/proto/resourceproto-1.2.0.tar.gz" + + version('1.2.0', '33091d5358ec32dd7562a1aa225a70aa') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/rgb/package.py b/var/spack/repos/builtin/packages/rgb/package.py new file mode 100644 index 0000000000..ddc5419305 --- /dev/null +++ b/var/spack/repos/builtin/packages/rgb/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 Rgb(Package): + """X color name database. + + This package includes both the list mapping X color names to RGB values + (rgb.txt) and, if configured to use a database for color lookup, the + rgb program to convert the text file into the binary database format. + + The "others" subdirectory contains some alternate color databases.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/rgb" + url = "https://www.x.org/archive/individual/app/rgb-1.0.6.tar.gz" + + version('1.0.6', '9759d058108f39066bbdf1d5d6de048c') + + depends_on('xorg-server') + + depends_on('xproto', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/root/math_uint.patch b/var/spack/repos/builtin/packages/root/math_uint.patch new file mode 100644 index 0000000000..ff4a38b91c --- /dev/null +++ b/var/spack/repos/builtin/packages/root/math_uint.patch @@ -0,0 +1,115 @@ +From 5f3faffdd869bce5e254ae70f69290e4651a061d Mon Sep 17 00:00:00 2001 +From: Lorenzo Moneta <Lorenzo.Moneta@cern.ch> +Date: Mon, 4 Jan 2016 15:38:23 +0100 +Subject: [PATCH] Fix ROOT-7886. Use unsigned int instead of uint + +--- + math/mathcore/inc/Math/Delaunay2D.h | 2 +- + math/mathcore/src/Delaunay2D.cxx | 30 +++++++++++++++--------------- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/math/mathcore/inc/Math/Delaunay2D.h b/math/mathcore/inc/Math/Delaunay2D.h +index 6255e78..472bded 100644 +--- a/math/mathcore/inc/Math/Delaunay2D.h ++++ b/math/mathcore/inc/Math/Delaunay2D.h +@@ -273,7 +273,7 @@ class Delaunay2D { + double fYCellStep; //! inverse denominator to calculate X cell = fNCells / (fYNmax - fYNmin) + std::set<UInt_t> fCells[(fNCells+1)*(fNCells+1)]; //! grid cells with containing triangles + +- inline unsigned int Cell(uint x, uint y) const { ++ inline unsigned int Cell(UInt_t x, UInt_t y) const { + return x*(fNCells+1) + y; + } + +diff --git a/math/mathcore/src/Delaunay2D.cxx b/math/mathcore/src/Delaunay2D.cxx +index c4d4680..9a82858 100644 +--- a/math/mathcore/src/Delaunay2D.cxx ++++ b/math/mathcore/src/Delaunay2D.cxx +@@ -190,7 +190,7 @@ void Delaunay2D::DoFindTriangles() { + + Triangle tri; + +- auto transform = [&] (const uint i) { ++ auto transform = [&] (const unsigned int i) { + tri.x[i] = face.vertex(i)->point().x(); + tri.y[i] = face.vertex(i)->point().y(); + tri.idx[i] = face.vertex(i)->info(); +@@ -326,7 +326,7 @@ void Delaunay2D::DoFindTriangles() { + for(int t = 0; t < out.numberoftriangles; ++t){ + Triangle tri; + +- auto transform = [&] (const uint v) { ++ auto transform = [&] (const unsigned int v) { + //each triangle as numberofcorners vertices ( = 3) + tri.idx[v] = out.trianglelist[t*out.numberofcorners + v]; + +@@ -354,14 +354,14 @@ void Delaunay2D::DoFindTriangles() { + auto bx = std::minmax({tri.x[0], tri.x[1], tri.x[2]}); + auto by = std::minmax({tri.y[0], tri.y[1], tri.y[2]}); + +- uint cellXmin = CellX(bx.first); +- uint cellXmax = CellX(bx.second); ++ unsigned int cellXmin = CellX(bx.first); ++ unsigned int cellXmax = CellX(bx.second); + +- uint cellYmin = CellY(by.first); +- uint cellYmax = CellY(by.second); ++ unsigned int cellYmin = CellY(by.first); ++ unsigned int cellYmax = CellY(by.second); + +- for(uint i = cellXmin; i <= cellXmax; ++i) +- for(uint j = cellYmin; j <= cellYmax; ++j){ ++ for(unsigned int i = cellXmin; i <= cellXmax; ++i) ++ for(unsigned int j = cellYmin; j <= cellYmax; ++j){ + //printf("(%u,%u) = %u\n", i, j, Cell(i,j)); + fCells[Cell(i,j)].insert(t); + } +@@ -382,7 +382,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) + /// FindAllTriangles(); + + //see comment in header for CGAL fallback section +- auto bayCoords = [&] (const uint t) -> std::tuple<double, double, double> { ++ auto bayCoords = [&] (const unsigned int t) -> std::tuple<double, double, double> { + double la = ( (fTriangles[t].y[1] - fTriangles[t].y[2])*(xx - fTriangles[t].x[2]) + + (fTriangles[t].x[2] - fTriangles[t].x[1])*(yy - fTriangles[t].y[2]) ) * fTriangles[t].invDenom; + double lb = ( (fTriangles[t].y[2] - fTriangles[t].y[0])*(xx - fTriangles[t].x[2]) +@@ -401,7 +401,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) + if(cX < 0 || cX > fNCells || cY < 0 || cY > fNCells) + return fZout; //TODO some more fancy interpolation here + +- for(uint t : fCells[Cell(cX, cY)]){ ++ for(unsigned int t : fCells[Cell(cX, cY)]){ + auto coords = bayCoords(t); + + if(inTriangle(coords)){ +@@ -415,7 +415,7 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) + + //debugging + +- /*for(uint t = 0; t < fNdt; ++t){ ++ /*for(unsigned int t = 0; t < fNdt; ++t){ + auto coords = bayCoords(t); + + if(inTriangle(coords)){ +@@ -423,17 +423,17 @@ double Delaunay2D::DoInterpolateNormalized(double xx, double yy) + //brute force found a triangle -> grid not + printf("Found triangle %u for (%f,%f) -> (%u,%u)\n", t, xx,yy, cX, cY); + printf("Triangles in grid cell: "); +- for(uint x : fCells[Cell(cX, cY)]) ++ for(unsigned int x : fCells[Cell(cX, cY)]) + printf("%u ", x); + printf("\n"); + + printf("Triangle %u is in cells: ", t); +- for(uint i = 0; i <= fNCells; ++i) +- for(uint j = 0; j <= fNCells; ++j) ++ for(unsigned int i = 0; i <= fNCells; ++i) ++ for(unsigned int j = 0; j <= fNCells; ++j) + if(fCells[Cell(i,j)].count(t)) + printf("(%u,%u) ", i, j); + printf("\n"); +- for(uint i = 0; i < 3; ++i) ++ for(unsigned int i = 0; i < 3; ++i) + printf("\tpoint %u (%u): (%f,%f) -> (%u,%u)\n", i, fTriangles[t].idx[i], fTriangles[t].x[i], fTriangles[t].y[i], CellX(fTriangles[t].x[i]), CellY(fTriangles[t].y[i])); + + //we found the triangle -> interpolate using the barycentric interpolation diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py new file mode 100644 index 0000000000..0f66dcebaa --- /dev/null +++ b/var/spack/repos/builtin/packages/root/package.py @@ -0,0 +1,89 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +from spack import * +import sys + + +class Root(Package): + """ROOT is a data analysis framework.""" + homepage = "https://root.cern.ch" + url = "https://root.cern.ch/download/root_v6.07.02.source.tar.gz" + + version('6.06.06', '4308449892210c8d36e36924261fea26') + version('6.06.04', '55a2f98dd4cea79c9c4e32407c2d6d17') + version('6.06.02', 'e9b8b86838f65b0a78d8d02c66c2ec55') + + if sys.platform == 'darwin': + patch('math_uint.patch', when='@6.06.02') + patch('root6-60606-mathmore.patch', when='@6.06.06') + + variant('graphviz', default=False, description='Enable graphviz support') + + depends_on("cmake", type='build') + depends_on("pcre") + depends_on("fftw") + depends_on("graphviz", when="+graphviz") + depends_on("python") + depends_on("gsl") + depends_on("libxml2+python") + depends_on("jpeg") + if sys.platform != 'darwin': + depends_on("libpng") + depends_on("openssl") + depends_on("freetype") + + def install(self, spec, prefix): + build_directory = join_path(self.stage.path, 'spack-build') + source_directory = self.stage.source_path + options = [source_directory] + if '+debug' in spec: + options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') + else: + options.append('-DCMAKE_BUILD_TYPE:STRING=Release') + options.append('-Dcxx14=on') + options.append('-Dcocoa=off') + options.append('-Dbonjour=off') + options.append('-Dx11=on') + options.extend(std_cmake_args) + if sys.platform == 'darwin': + darwin_options = [ + '-Dcastor=OFF', + '-Drfio=OFF', + '-Ddcache=OFF'] + options.extend(darwin_options) + with working_dir(build_directory, create=True): + cmake(*options) + make() + make("install") + + def setup_dependent_environment(self, spack_env, run_env, dspec): + spack_env.set('ROOTSYS', self.prefix) + spack_env.set('ROOT_VERSION', 'v6') + spack_env.prepend_path('PYTHONPATH', self.prefix.lib) + + def url_for_version(self, version): + """Handle ROOT's unusual version string.""" + return "https://root.cern.ch/download/root_v%s.source.tar.gz" % version diff --git a/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch new file mode 100644 index 0000000000..d009a5af0d --- /dev/null +++ b/var/spack/repos/builtin/packages/root/root6-60606-mathmore.patch @@ -0,0 +1,29 @@ +diff --git a/math/mathmore/inc/Math/QuantFuncMathMore.h b/math/mathmore/inc/Math/QuantFuncMathMore.h +index fd6679c..03ccc03 100644 +--- a/math/mathmore/inc/Math/QuantFuncMathMore.h ++++ b/math/mathmore/inc/Math/QuantFuncMathMore.h +@@ -25,17 +25,6 @@ + **********************************************************************/ + + +-#if defined(__CINT__) && !defined(__MAKECINT__) +-// avoid to include header file when using CINT +-#ifndef _WIN32 +-#include "../lib/libMathMore.so" +-#else +-#include "../bin/libMathMore.dll" +-#endif +- +-#else +- +- + #ifndef ROOT_Math_QuantFuncMathMore + #define ROOT_Math_QuantFuncMathMore + +@@ -190,5 +179,3 @@ namespace MathMore { + + + #endif // ROOT_Math_QuantFuncMathMore +- +-#endif // if defined (__CINT__) && !defined(__MAKECINT__) + diff --git a/var/spack/repos/builtin/packages/rstart/package.py b/var/spack/repos/builtin/packages/rstart/package.py new file mode 100644 index 0000000000..7b80e88ae7 --- /dev/null +++ b/var/spack/repos/builtin/packages/rstart/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Rstart(Package): + """This package includes both the client and server sides implementing + the protocol described in the "A Flexible Remote Execution Protocol + Based on rsh" paper found in the specs/ subdirectory. + + This software has been deprecated in favor of the X11 forwarding + provided in common ssh implementations.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/rstart" + url = "https://www.x.org/archive/individual/app/rstart-1.0.5.tar.gz" + + version('1.0.5', '32db3625cb5e841e17d6bc696f21edfb') + + depends_on('xproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py index 6b0b224785..b82a7e55d6 100644 --- a/var/spack/repos/builtin/packages/samtools/package.py +++ b/var/spack/repos/builtin/packages/samtools/package.py @@ -42,7 +42,8 @@ class Samtools(Package): def install(self, spec, prefix): if self.spec.version >= Version('1.3.1'): - configure('--prefix={0}'.format(prefix), '--with-ncurses') + configure('--prefix={0}'.format(prefix), '--with-ncurses', + 'CURSES_LIB=-lncurses') make() make('install') else: diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py new file mode 100644 index 0000000000..0d675ef8ff --- /dev/null +++ b/var/spack/repos/builtin/packages/sbt/package.py @@ -0,0 +1,18 @@ +from spack import * +import shutil + + +class Sbt(Package): + """Scala Build Tool""" + + homepage = "http://http://www.scala-sbt.org" + url = "http://http://www.scala-sbt.org/download.html" + + version('0.13.12', 'cec3071d46ef13334c8097cc3467ff28', + url='https://dl.bintray.com/sbt/native-packages/sbt/0.13.12/sbt-0.13.12.tgz') + + depends_on('jdk') + + def install(self, spec, prefix): + shutil.copytree('bin', join_path(prefix, 'bin'), symlinks=True) + shutil.copytree('conf', join_path(prefix, 'conf'), symlinks=True) diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py index 2c32bde4a1..d20e529384 100644 --- a/var/spack/repos/builtin/packages/scons/package.py +++ b/var/spack/repos/builtin/packages/scons/package.py @@ -35,4 +35,4 @@ class Scons(Package): extends('python') def install(self, spec, prefix): - python('setup.py', 'install', '--prefix=%s' % prefix) + setup_py('install', '--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index d40e08740f..e0f7972304 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -22,15 +22,13 @@ # 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 Scorep(Package): - """ - The Score-P measurement infrastructure is a highly scalable and easy-to-use - tool suite for profiling, event tracing, and online analysis of HPC - applications. + """The Score-P measurement infrastructure is a highly scalable and + easy-to-use tool suite for profiling, event tracing, and online analysis + of HPC applications. """ homepage = "http://www.vi-hps.org/projects/score-p" diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py index 17335603e6..7edfb44a4d 100644 --- a/var/spack/repos/builtin/packages/screen/package.py +++ b/var/spack/repos/builtin/packages/screen/package.py @@ -26,8 +26,7 @@ from spack import * class Screen(Package): - """ - Screen is a full-screen window manager that multiplexes a physical + """Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. """ diff --git a/var/spack/repos/builtin/packages/scripts/package.py b/var/spack/repos/builtin/packages/scripts/package.py new file mode 100644 index 0000000000..7086cfd6fe --- /dev/null +++ b/var/spack/repos/builtin/packages/scripts/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 Scripts(Package): + """Various X related scripts.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/scripts" + url = "https://www.x.org/archive/individual/app/scripts-1.0.1.tar.gz" + + version('1.0.1', '1e8294a126a2a7556b21025a8d933e8b') + + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/scrnsaverproto/package.py b/var/spack/repos/builtin/packages/scrnsaverproto/package.py new file mode 100644 index 0000000000..3675fd0eff --- /dev/null +++ b/var/spack/repos/builtin/packages/scrnsaverproto/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 Scrnsaverproto(Package): + """MIT Screen Saver Extension. + + This extension defines a protocol to control screensaver features + and also to query screensaver info on specific windows.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/scrnsaverproto" + url = "https://www.x.org/archive/individual/proto/scrnsaverproto-1.2.2.tar.gz" + + version('1.2.2', '21704f1bad472d94abd22fea5704bb48') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py new file mode 100644 index 0000000000..98f8861fed --- /dev/null +++ b/var/spack/repos/builtin/packages/sdl2/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 Sdl2(Package): + """Simple DirectMedia Layer is a cross-platform development library designed + to provide low level access to audio, keyboard, mouse, joystick, and + graphics hardware via OpenGL and Direct3D.""" + + homepage = "https://wiki.libsdl.org/FrontPage" + url = "https://libsdl.org/release/SDL2-2.0.5.tar.gz" + + version('2.0.5', 'd4055424d556b4a908aa76fad63abd3c') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('..', *std_cmake_args) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/sdl2_image/package.py b/var/spack/repos/builtin/packages/sdl2_image/package.py new file mode 100644 index 0000000000..5df207ac55 --- /dev/null +++ b/var/spack/repos/builtin/packages/sdl2_image/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Sdl2Image(Package): + """SDL is designed to provide the bare bones of creating a graphical + program. """ + + homepage = "http://sdl.beuc.net/sdl.wiki/SDL_image" + url = "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz" + + version('2.0.1', 'd94b94555ba022fa249a53a021dc3606') + + depends_on('sdl2') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/sessreg/package.py b/var/spack/repos/builtin/packages/sessreg/package.py new file mode 100644 index 0000000000..2ab505cc7a --- /dev/null +++ b/var/spack/repos/builtin/packages/sessreg/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 Sessreg(Package): + """Sessreg is a simple program for managing utmp/wtmp entries for X + sessions. It was originally written for use with xdm, but may also be + used with other display managers such as gdm or kdm.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/sessreg" + url = "https://www.x.org/archive/individual/app/sessreg-1.1.0.tar.gz" + + version('1.1.0', '5d7eb499043c7fdd8d53c5ba43660312') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def patch(self): + kwargs = {'string': True} + filter_file('$(CPP) $(DEFS)', '$(CPP) -P $(DEFS)', + 'man/Makefile.in', **kwargs) + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/setxkbmap/package.py b/var/spack/repos/builtin/packages/setxkbmap/package.py new file mode 100644 index 0000000000..db365530c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/setxkbmap/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Setxkbmap(Package): + """setxkbmap is an X11 client to change the keymaps in the X server for a + specified keyboard to use the layout determined by the options listed + on the command line.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/setxkbmap" + url = "https://www.x.org/archive/individual/app/setxkbmap-1.3.1.tar.gz" + + version('1.3.1', 'fdfc0fc643a50fb0b5fa7546e4d28868') + + depends_on('libxkbfile') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/showfont/package.py b/var/spack/repos/builtin/packages/showfont/package.py new file mode 100644 index 0000000000..232988193b --- /dev/null +++ b/var/spack/repos/builtin/packages/showfont/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Showfont(Package): + """showfont displays data about a font from an X font server. + The information shown includes font information, font properties, + character metrics, and character bitmaps.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/showfont" + url = "https://www.x.org/archive/individual/app/showfont-1.0.5.tar.gz" + + version('1.0.5', 'cea973363df01fb27a87e939600137fd') + + depends_on('libfs') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py index 5113c88bdf..691d53a9f1 100644 --- a/var/spack/repos/builtin/packages/silo/package.py +++ b/var/spack/repos/builtin/packages/silo/package.py @@ -41,7 +41,8 @@ class Silo(Package): variant('silex', default=False, description='Builds Silex, a GUI for viewing Silo files') - depends_on('hdf5') + # silo uses the obsolete function H5Pset_fapl_mpiposix: + depends_on("hdf5 @:1.8.12") depends_on('qt', when='+silex') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py index fd6c42d9fc..e208400eea 100644 --- a/var/spack/repos/builtin/packages/slepc/package.py +++ b/var/spack/repos/builtin/packages/slepc/package.py @@ -34,6 +34,7 @@ class Slepc(Package): homepage = "http://www.grycap.upv.es/slepc" url = "http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz" + version('3.7.3', '3ef9bcc645a10c1779d56b3500472ceb66df692e389d635087d30e7c46424df9') version('3.7.1', '670216f263e3074b21e0623c01bc0f562fdc0bffcd7bd42dd5d8edbe73a532c2') version('3.6.3', '384939d009546db37bc05ed81260c8b5ba451093bf891391d32eb7109ccff876') version('3.6.2', '2ab4311bed26ccf7771818665991b2ea3a9b15f97e29fd13911ab1293e8e65df') diff --git a/var/spack/repos/builtin/packages/smproxy/package.py b/var/spack/repos/builtin/packages/smproxy/package.py new file mode 100644 index 0000000000..5bdde800d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/smproxy/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Smproxy(Package): + """smproxy allows X applications that do not support X11R6 session + management to participate in an X11R6 session.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/smproxy" + url = "https://www.x.org/archive/individual/app/smproxy-1.0.6.tar.gz" + + version('1.0.6', '012c259f5a89e5c636037446d44eb354') + + depends_on('libsm') + depends_on('libice') + depends_on('libxt') + depends_on('libxmu') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py new file mode 100644 index 0000000000..10b0ebed7f --- /dev/null +++ b/var/spack/repos/builtin/packages/spark/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 Alfredo Gimenez, gimenez1@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 shutil + + +class Spark(Package): + """Apache Spark is a fast and general engine + for large-scale data processing. + """ + + homepage = "http://spark.apache.org" + url = "http://mirrors.ocf.berkeley.edu/apache/spark/spark-2.0.0/spark-2.0.0-bin-without-hadoop.tgz" + + variant('hadoop', default=False, + description='Build with Hadoop') + + depends_on('jdk', type=('build', 'run')) + depends_on('hadoop', when='+hadoop', type=('build', 'run')) + + version('2.0.0', '8a5307d973da6949a385aefb6ff747bb') + version('1.6.2', '304394fbe2899211217f0cd9e9b2b5d9') + version('1.6.1', 'fcf4961649f15af1fea78c882e65b001') + + def install(self, spec, prefix): + + def install_dir(dirname): + install_tree(dirname, join_path(prefix, dirname)) + + install_dir('bin') + install_dir('conf') + install_dir('jars') + install_dir('python') + install_dir('R') + install_dir('sbin') + install_dir('yarn') + + # required for spark to recognize binary distribution + shutil.copy('RELEASE', prefix) + + @when('+hadoop') + def setup_environment(self, spack_env, run_env): + + env['JAVA_HOME'] = self.spec['jdk'].prefix + # spack_env.set('JAVA_HOME', self.spec['jdk'].prefix) + + hadoop_bin_path = join_path(self.spec['hadoop'].prefix.bin, 'hadoop') + hadoop_bin = Executable(hadoop_bin_path) + hadoop_classpath = hadoop_bin('classpath', return_output=True) + + run_env.set('SPARK_DIST_CLASSPATH', hadoop_classpath) diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py index 513f8ec6d4..c57ee72323 100644 --- a/var/spack/repos/builtin/packages/sqlite/package.py +++ b/var/spack/repos/builtin/packages/sqlite/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +from spack import architecture class Sqlite(Package): @@ -33,9 +34,17 @@ class Sqlite(Package): homepage = "www.sqlite.org" version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed', - url='http://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') + url='https://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz') + + def get_arch(self): + arch = architecture.Arch() + arch.platform = architecture.platform() + return str(arch.platform.target('default_target')) def install(self, spec, prefix): - configure("--prefix=" + prefix) + config = ["--prefix=" + prefix] + if self.get_arch() == 'ppc64le': + config.append("--build=powerpc64le-redhat-linux-gnu") + configure(*config) make() make("install") diff --git a/var/spack/repos/builtin/packages/star-ccm-plus/package.py b/var/spack/repos/builtin/packages/star-ccm-plus/package.py new file mode 100644 index 0000000000..ba1516b62a --- /dev/null +++ b/var/spack/repos/builtin/packages/star-ccm-plus/package.py @@ -0,0 +1,78 @@ +############################################################################## +# 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 glob +import os + + +class StarCcmPlus(Package): + """STAR-CCM+ (Computational Continuum Mechanics) CFD solver.""" + + homepage = "http://mdx.plm.automation.siemens.com/star-ccm-plus" + + version('11.06.010_02', 'd349c6ac8293d8e6e7a53533d695588f') + + variant('docs', default=False, description='Install the documentation') + + # Licensing + license_required = True + license_vars = ['CDLMD_LICENSE_FILE', 'LM_LICENSE_FILE'] + + def url_for_version(self, version): + return "file://{0}/STAR-CCM+{1}_linux-x86_64.tar.gz".format( + os.getcwd(), version) + + def install(self, spec, prefix): + # There is a known issue with the LaunchAnywhere application. + # Specifically, it cannot handle long prompts or prompts + # containing special characters and backslashes. It results in + # the following error message: + # + # An internal LaunchAnywhere application error has occured and this + # application cannot proceed. (LAX) + # + # Stack Trace: + # java.lang.IllegalArgumentException: Malformed \uxxxx encoding. + # at java.util.Properties.loadConvert(Unknown Source) + # at java.util.Properties.load0(Unknown Source) + # at java.util.Properties.load(Unknown Source) + # at com.zerog.common.java.util.PropertiesUtil.loadProperties( + # Unknown Source) + # at com.zerog.lax.LAX.<init>(Unknown Source) + # at com.zerog.lax.LAX.main(Unknown Source) + # + # https://www.maplesoft.com/support/faqs/detail.aspx?sid=35272 + env['PS1'] = '>' + env['PROMPT_COMMAND'] = '' + + installer = Executable(glob.glob('*.bin')[0]) + + installer( + '-i', 'silent', + '-DINSTALLDIR={0}'.format(prefix), + '-DINSTALLFLEX=false', + '-DADDSYSTEMPATH=false', + '-DNODOC={0}'.format('false' if '+docs' in spec else 'true') + ) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index ec2fae5e9b..eae4971ace 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -27,22 +27,36 @@ from spack import * class Stat(Package): """Library to create, manipulate, and export graphs Graphlib.""" + homepage = "http://paradyn.org/STAT/STAT.html" url = "https://github.com/lee218llnl/stat/archive/v2.0.0.tar.gz" version('2.2.0', '26bd69dd57a15afdd5d0ebdb0b7fb6fc') version('2.1.0', 'ece26beaf057aa9134d62adcdda1ba91') version('2.0.0', 'c7494210b0ba26b577171b92838e1a9b') + version('3.0.0', 'a97cb235c266371c4a26329112de48a2', + url='https://github.com/LLNL/STAT/releases/download/v3.0.0/STAT-3.0.0.tar.gz') + # TODO: dysect requires Dyninst patch for version 3.0.0b variant('dysect', default=False, description="enable DySectAPI") + variant('examples', default=False, description="enable examples") + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') depends_on('libelf') depends_on('libdwarf') - depends_on('dyninst') - depends_on('graphlib') + depends_on('dyninst', when='~dysect') + depends_on('dyninst@8.2.1+stat_dysect', when='+dysect') + depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0') + depends_on('graphlib@3.0.0', when='@3:') depends_on('graphviz', type=alldeps) depends_on('launchmon') depends_on('mrnet') + depends_on('python') + depends_on('py-pygtk') + depends_on('swig') + depends_on('mpi', when='+examples') patch('configure_mpicxx.patch', when='@2.1.0') @@ -50,8 +64,6 @@ class Stat(Package): configure_args = [ "--enable-gui", "--prefix=%s" % prefix, - # Examples require MPI: avoid this dependency. - "--disable-examples", "--with-launchmon=%s" % spec['launchmon'].prefix, "--with-mrnet=%s" % spec['mrnet'].prefix, "--with-graphlib=%s" % spec['graphlib'].prefix, @@ -60,7 +72,8 @@ class Stat(Package): ] if '+dysect' in spec: configure_args.append('--enable-dysectapi') + if '~examples' in spec: + configure_args.append('--disable-examples') configure(*configure_args) - make(parallel=False) make("install") diff --git a/var/spack/repos/builtin/packages/sublime-text/package.py b/var/spack/repos/builtin/packages/sublime-text/package.py new file mode 100644 index 0000000000..81d8690db8 --- /dev/null +++ b/var/spack/repos/builtin/packages/sublime-text/package.py @@ -0,0 +1,59 @@ +############################################################################## +# 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 * +from distutils.dir_util import copy_tree + + +class SublimeText(Package): + """Sublime Text is a sophisticated text editor for code, markup and + prose.""" + + homepage = "http://www.sublimetext.com/" + url = "https://download.sublimetext.com/sublime_text_3_build_3126_x64.tar.bz2" + + version('3126', 'acc34252b0ea7dff1f581c5db1564dcb') + version('2.0.2', '699cd26d7fe0bada29eb1b2cd7b50e4b') + + # Sublime text comes as a pre-compiled binary. + # Since we can't link to Spack packages, we'll just have to + # add them as runtime dependencies. + + # depends_on('libgobject', type='run') + depends_on('glib', type='run') + depends_on('libx11', type='run') + depends_on('pcre', type='run') + depends_on('libffi', type='run') + depends_on('libxcb', type='run') + depends_on('libxau', type='run') + + def url_for_version(self, version): + if version.up_to(1) == '2': + return "https://download.sublimetext.com/Sublime%20Text%20{0}%20x64.tar.bz2".format(version) + else: + return "https://download.sublimetext.com/sublime_text_3_build_{0}_x64.tar.bz2".format(version) + + def install(self, spec, prefix): + # Sublime text comes as a pre-compiled binary. + copy_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index 26d143e4aa..02b7d96378 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -46,6 +46,9 @@ class Subversion(Package): # depends_on('perl') # depends_on('ruby') + # Installation has race cases. + parallel = False + def install(self, spec, prefix): # configure, build, install: diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index a71bfd8bd4..aa22e1ecce 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -36,6 +36,7 @@ class SuiteSparse(Package): version('4.5.1', 'f0ea9aad8d2d1ffec66a5b6bfeff5319') variant('tbb', default=True, description='Build with Intel TBB') + variant('fpic', default=True, description='Build position independent code (required to link with shared libraries)') depends_on('blas') depends_on('lapack') @@ -62,7 +63,21 @@ class SuiteSparse(Package): 'CC=cc', 'CXX=c++', 'F77=f77', + 'CUDA_ROOT =', + 'GPU_BLAS_PATH =', + 'GPU_CONFIG =', + 'CUDA_PATH =', + 'CUDART_LIB =', + 'CUBLAS_LIB =', + 'CUDA_INC_PATH =', + 'NV20 =', + 'NV30 =', + 'NV35 =', + 'NVCC = echo', + 'NVCCFLAGS =', ]) + if '+fpic' in spec: + make_args.extend(['CFLAGS=-fPIC', 'FFLAGS=-fPIC']) # use Spack's metis in CHOLMOD/Partition module, # otherwise internal Metis will be compiled @@ -80,8 +95,8 @@ class SuiteSparse(Package): # Make sure Spack's Blas/Lapack is used. Otherwise System's # Blas/Lapack might be picked up. - blas = to_link_flags(spec['blas'].blas_shared_lib) - lapack = to_link_flags(spec['lapack'].lapack_shared_lib) + blas = spec['blas'].blas_libs.ld_flags + lapack = spec['lapack'].lapack_libs.ld_flags if '@4.5.1' in spec: # adding -lstdc++ is clearly an ugly way to do this, but it follows # with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py index 7582954ab1..6ee247b7ea 100644 --- a/var/spack/repos/builtin/packages/sundials/package.py +++ b/var/spack/repos/builtin/packages/sundials/package.py @@ -31,7 +31,7 @@ class Sundials(Package): Solvers)""" homepage = "http://computation.llnl.gov/casc/sundials/" - url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz" + url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz" version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95') @@ -79,9 +79,9 @@ class Sundials(Package): if '+lapack' in spec: cmake_args.extend([ '-DLAPACK_ENABLE=ON', - '-DLAPACK_LIBRARIES={0};{1}'.format( - spec['lapack'].lapack_shared_lib, - spec['blas'].blas_shared_lib + '-DLAPACK_LIBRARIES={0}'.format( + (spec['lapack'].lapack_libs + + spec['blas'].blas_libs).joined(';') ) ]) else: @@ -113,7 +113,7 @@ class Sundials(Package): elif '+pthread' in spec: cmake_args.append('-DSUPERLUMT_THREAD_TYPE=Pthread') else: - msg = 'You must choose either +openmp or +pthread when ' + msg = 'You must choose either +openmp or +pthread when ' msg += 'building with SuperLU_MT' raise RuntimeError(msg) else: diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index 4b3354e379..e9c345eeb2 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -30,13 +30,16 @@ class SuperluDist(Package): """A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.""" homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" - url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz" + url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_dist_4.1.tar.gz" + version('5.1.1', '12638c631733a27dcbd87110e9f9cb1e') + version('5.1.0', '6bb86e630bd4bd8650243aed8fd92eb9') version('5.0.0', '2b53baf1b0ddbd9fcf724992577f0670') version('4.3', 'ee66c84e37b4f7cc557771ccc3dc43ae') version('4.2', 'ae9fafae161f775fbac6eba11e530a65') version('4.1', '4edee38cc29f687bd0c8eb361096a455') version('4.0', 'c0b98b611df227ae050bc1635c6940e0') + version('3.3', 'f4805659157d93a962500902c219046b') depends_on('mpi') depends_on('blas') @@ -45,15 +48,14 @@ class SuperluDist(Package): depends_on('metis@5:') def install(self, spec, prefix): + lapack_blas = spec['lapack'].lapack_libs + spec['blas'].blas_libs makefile_inc = [] makefile_inc.extend([ 'PLAT = _mac_x', 'DSuperLUroot = %s' % self.stage.source_path, 'DSUPERLULIB = $(DSuperLUroot)/lib/libsuperlu_dist.a', 'BLASDEF = -DUSE_VENDOR_BLAS', - 'BLASLIB = %s %s' % - (to_link_flags(spec['lapack'].lapack_shared_lib), - to_link_flags(spec['blas'].blas_shared_lib)), + 'BLASLIB = %s' % lapack_blas.ld_flags, 'METISLIB = -L%s -lmetis' % spec['metis'].prefix.lib, 'PARMETISLIB = -L%s -lparmetis' % spec['parmetis'].prefix.lib, 'FLIBS =', @@ -61,14 +63,13 @@ class SuperluDist(Package): 'ARCH = ar', 'ARCHFLAGS = cr', 'RANLIB = true', - 'CC = %s' % spec['mpi'].mpicc, - 'CFLAGS = -fPIC -std=c99 -O2 -I%s -I%s' % - (spec['parmetis'].prefix.include, - spec['metis'].prefix.include), + 'CC = {0}'.format(self.spec['mpi'].mpicc), + 'CFLAGS = -fPIC -std=c99 -O2 -I%s -I%s' % ( + spec['parmetis'].prefix.include, spec['metis'].prefix.include), 'NOOPTS = -fPIC -std=c99', - 'FORTRAN = %s' % spec['mpi'].mpif77, + 'FORTRAN = {0}'.format(self.spec['mpi'].mpif77), 'F90FLAGS = -O2', - 'LOADER = %s' % spec['mpi'].mpif77, + 'LOADER = {0}'.format(self.spec['mpi'].mpif77), 'LOADOPTS =', 'CDEFS = -DAdd_' ]) diff --git a/var/spack/repos/builtin/packages/superlu-mt/package.py b/var/spack/repos/builtin/packages/superlu-mt/package.py index e849273e08..ea94c2d4c5 100644 --- a/var/spack/repos/builtin/packages/superlu-mt/package.py +++ b/var/spack/repos/builtin/packages/superlu-mt/package.py @@ -86,7 +86,7 @@ class SuperluMt(Package): if '+blas' in spec: config.extend([ 'BLASDEF = -DUSE_VENDOR_BLAS', - 'BLASLIB = -L{0} -lblas'.format(spec['blas'].prefix.lib) + 'BLASLIB = {0}'.format(spec['blas'].blas_libs.ld_flags) ]) else: config.append('BLASLIB = ../lib/libblas$(PLAT).a') diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py index c634c1d1ba..d9cff650b6 100644 --- a/var/spack/repos/builtin/packages/superlu/package.py +++ b/var/spack/repos/builtin/packages/superlu/package.py @@ -42,7 +42,7 @@ class Superlu(Package): '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', # BLAS support '-Denable_blaslib=OFF', - '-DBLAS_blas_LIBRARY={0}'.format(spec['blas'].blas_shared_lib) + '-DBLAS_blas_LIBRARY={0}'.format(spec['blas'].blas_libs.joined()) ] cmake_args.extend(std_cmake_args) diff --git a/var/spack/repos/builtin/packages/swiftsim/package.py b/var/spack/repos/builtin/packages/swiftsim/package.py index 636aa26bd2..1c424b5ca0 100644 --- a/var/spack/repos/builtin/packages/swiftsim/package.py +++ b/var/spack/repos/builtin/packages/swiftsim/package.py @@ -22,15 +22,12 @@ # 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 llnl.util.tty as tty -class Swiftsim(Package): - """ - SPH With Inter-dependent Fine-grained Tasking (SWIFT) provides +class Swiftsim(AutotoolsPackage): + """SPH With Inter-dependent Fine-grained Tasking (SWIFT) provides astrophysicists with a state of the art framework to perform particle based simulations. """ @@ -61,20 +58,15 @@ class Swiftsim(Package): tty.warn('This is needed to clone SWIFT repository') spack_env.set('GIT_SSL_NO_VERIFY', 1) - def install(self, spec, prefix): - # Generate configure from configure.ac - # and Makefile.am + def autoreconf(self, spec, prefix): libtoolize() aclocal() autoconf() autogen = Executable('./autogen.sh') autogen() - # Configure and install - options = ['--prefix=%s' % prefix, - '--enable-mpi' if '+mpi' in spec else '--disable-mpi', - '--with-metis={0}'.format(spec['metis'].prefix), - '--enable-optimization'] - configure(*options) - make() - make("install") + def configure_args(self): + return ['--prefix=%s' % self.prefix, + '--enable-mpi' if '+mpi' in self.spec else '--disable-mpi', + '--with-metis={0}'.format(self.spec['metis'].prefix), + '--enable-optimization'] diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py new file mode 100644 index 0000000000..f3fc13474c --- /dev/null +++ b/var/spack/repos/builtin/packages/symengine/package.py @@ -0,0 +1,113 @@ +############################################################################## +# 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 Symengine(Package): + """SymEngine is a fast symbolic manipulation library, written in C++.""" + + homepage = "https://github.com/symengine/symengine" + url = "https://github.com/symengine/symengine/archive/v0.2.0.tar.gz" + + version('0.2.0', '45401561add36a13c1f0b0c5f8d7422d') + version('0.1.0', '41ad7daed61fc5a77c285eb6c7303425') + version('develop', git='https://github.com/symengine/symengine.git') + + variant('flint', default=True, + description='Compile with Flint integer library') + variant('mpc', default=True, + description='Compile with MPC library') + variant('mpfr', default=True, + description='Compile with MPFR library') + variant('piranha', default=False, + description='Compile with Piranha integer library') + variant('thread_safe', default=True, + description='Enable thread safety option') + variant('openmp', default=False, + description='Enable OpenMP support') + variant('shared', default=True, + description='Enables the build of shared libraries') + + # Build dependencies + depends_on('cmake', type='build') + + # Other dependencies + depends_on('gmp') # mpir is a drop-in replacement for this + depends_on('mpc', when='+mpc') # Could also be built against mpir + depends_on('mpfr', when='+mpfr') # Could also be built against mpir + depends_on('flint', when='+flint') # Could also be built against mpir + depends_on('piranha', when='+piranha~flint') # Could also be built against mpir # NOQA + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + # CMAKE_BUILD_TYPE should be Debug | Release + for word in options[:]: + if word.startswith('-DCMAKE_BUILD_TYPE'): + options.remove(word) + + # See https://github.com/symengine/symengine/blob/master/README.md + # for build options + options.extend([ + '-DCMAKE_BUILD_TYPE=Release', + '-DWITH_SYMENGINE_RCP:BOOL=ON', + '-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % ( + 'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'), + '-DBUILD_TESTS:BOOL=ON', + '-DBUILD_BENCHMARKS:BOOL=ON', + '-DWITH_MPC:BOOL=%s' % ( + 'ON' if '+mpc' in spec else 'OFF'), + '-DWITH_MPFR:BOOL=%s' % ( + 'ON' if '+mpfr' in spec else 'OFF'), + '-DINTEGER_CLASS:STRING=gmp', + '-DWITH_OPENMP:BOOL=%s' % ( + 'ON' if '+openmp' in spec else 'OFF'), + '-DBUILD_SHARED_LIBS:BOOL=%s' % ( + 'ON' if '+shared' in spec else 'OFF'), + ]) + + if '+flint' in spec: + options.extend([ + '-DWITH_FLINT:BOOL=ON', + '-DINTEGER_CLASS:STRING=flint' + ]) + elif '+piranha' in spec: + options.extend([ + '-DWITH_PIRANHA:BOOL=ON', + '-DINTEGER_CLASS:STRING=piranha' + ]) + else: + options.extend([ + '-DINTEGER_CLASS:STRING=gmp' + ]) + + with working_dir('spack-build', create=True): + cmake('..', *options) + + make() + make('install') + if self.run_tests: + ctest() diff --git a/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch b/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch new file mode 100644 index 0000000000..503a61ff65 --- /dev/null +++ b/var/spack/repos/builtin/packages/sympol/lrs_mp_close.patch @@ -0,0 +1,10 @@ +--- old/sympol/raycomputationlrs.cpp ++++ new/sympol/raycomputationlrs.cpp +@@ -66,7 +66,6 @@ + return true; + } + +- lrs_mp_close(); + + if (RayComputationLRS::ms_fIn != NULL) { + if (std::fclose(RayComputationLRS::ms_fIn)) { diff --git a/var/spack/repos/builtin/packages/sympol/package.py b/var/spack/repos/builtin/packages/sympol/package.py new file mode 100644 index 0000000000..7ce4995f03 --- /dev/null +++ b/var/spack/repos/builtin/packages/sympol/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Sympol(Package): + """SymPol is a C++ tool to work with symmetric polyhedra""" + homepage = "http://www.math.uni-rostock.de/~rehn/software/sympol.html" + url = "http://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz" + + version('0.1.8', '7cba1997f8532c754cb7259bf70caacb') + + depends_on("cmake", type='build') + + depends_on("bliss") + depends_on("boost") + depends_on("gmp") + depends_on("lrslib") + + patch("lrs_mp_close.patch") + + def install(self, spec, prefix): + cmake(".", *std_cmake_args) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/szip/package.py b/var/spack/repos/builtin/packages/szip/package.py index b2ca6f3995..91934f7d03 100644 --- a/var/spack/repos/builtin/packages/szip/package.py +++ b/var/spack/repos/builtin/packages/szip/package.py @@ -25,24 +25,21 @@ from spack import * -class Szip(Package): - """An implementation of the extended-Rice lossless compression algorithm. - It provides lossless compression of scientific data, and is provided - with HDF software products. +class Szip(AutotoolsPackage): + """Szip is an implementation of the extended-Rice lossless + compression algorithm. + It provides lossless compression of scientific data, and is + provided with HDF software products. """ homepage = "https://www.hdfgroup.org/doc_resource/SZIP/" - url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz" + url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz" version('2.1', '902f831bcefb69c6b635374424acbead') - def install(self, spec, prefix): - configure('--prefix=%s' % prefix, - '--enable-production', - '--enable-shared', - '--enable-static', - '--enable-encoding') - - make() - make("install") + def configure_args(self): + return ['--enable-production', + '--enable-shared', + '--enable-static', + '--enable-encoding'] diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py index f5995cb007..7b6313827f 100644 --- a/var/spack/repos/builtin/packages/tar/package.py +++ b/var/spack/repos/builtin/packages/tar/package.py @@ -25,11 +25,11 @@ from spack import * -class Tar(Package): +class Tar(AutotoolsPackage): """GNU Tar provides the ability to create tar archives, as well as various other kinds of manipulation.""" homepage = "https://www.gnu.org/software/tar/" - url = "https://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz" + url = "https://ftp.gnu.org/gnu/tar/tar-1.28.tar.gz" version('1.29', 'cae466e6e58c7292355e7080248f244db3a4cf755f33f4fa25ca7f9a7ed09af0') version('1.28', '6ea3dbea1f2b0409b234048e021a9fd7') @@ -38,8 +38,3 @@ class Tar(Package): # https://github.com/Homebrew/homebrew-core/commit/aef9a1792de4648d0322b4b04d32287532f046bb # TODO: when=sys.platform=='darwin' ? patch('gnutar-configure-xattrs.patch', when='@1.28') - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - make() - make('install') diff --git a/var/spack/repos/builtin/packages/taskd/package.py b/var/spack/repos/builtin/packages/taskd/package.py index d13f480374..bfe77aaa5c 100644 --- a/var/spack/repos/builtin/packages/taskd/package.py +++ b/var/spack/repos/builtin/packages/taskd/package.py @@ -27,7 +27,7 @@ from spack import * class Taskd(Package): """TaskWarrior task synchronization daemon""" - # FIXME: add a proper url for your package's homepage here. + homepage = "http://www.taskwarrior.org" url = "http://taskwarrior.org/download/taskd-1.1.0.tar.gz" diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index a77df8d37c..991841f137 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -22,21 +22,18 @@ # 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 -import os.path - +import glob from llnl.util.filesystem import join_path class Tau(Package): - """ - A portable profiling and tracing toolkit for performance + """A portable profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, UPC, Java, Python. """ + homepage = "http://www.cs.uoregon.edu/research/tau" url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.25.tar.gz" @@ -149,3 +146,15 @@ class Tau(Package): dest = join_path(self.prefix, d) if os.path.isdir(src) and not os.path.exists(dest): os.symlink(join_path(subdir, d), dest) + + def setup_environment(self, spack_env, run_env): + pattern = join_path(self.prefix.lib, 'Makefile.*') + files = glob.glob(pattern) + + # This function is called both at install time to set up + # the build environment and after install to generate the associated + # module file. In the former case there is no `self.prefix.lib` + # directory to inspect. The conditional below will set `TAU_MAKEFILE` + # in the latter case. + if files: + run_env.set('TAU_MAKEFILE', files[0]) diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py new file mode 100644 index 0000000000..624942498e --- /dev/null +++ b/var/spack/repos/builtin/packages/tethex/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Tethex(Package): + """Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D) + Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes + can be used in software packages working with hexahedrals only - for + example, deal.II. + """ + + homepage = "https://github.com/martemyev/tethex" + url = "https://github.com/martemyev/tethex/archive/v0.0.7.tar.gz" + + version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184') + version('develop', git='https://github.com/martemyev/tethex.git') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + cmake('.') + make() + + # install by hand + mkdirp(prefix.bin) + install('tethex', prefix.bin) diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py index 64158e74cb..36b3fad2f6 100644 --- a/var/spack/repos/builtin/packages/texlive/package.py +++ b/var/spack/repos/builtin/packages/texlive/package.py @@ -32,8 +32,10 @@ class Texlive(Package): homepage = "http://www.tug.org/texlive" - version('live', 'e671eea7f142c438959493cc42a2a59b', - url="http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz") + # pull from specific site because the texlive mirrors do not all + # update in synchrony. + version('live', '6d171d370f3a2f2b936b9b0c87e8d0fe', + url="http://ctan.math.utah.edu/ctan/tex-archive/systems/texlive/tlnet/install-tl-unx.tar.gz") # There does not seem to be a complete list of schemes. # Examples include: @@ -47,7 +49,7 @@ class Texlive(Package): variant('scheme', default="small", description='Package subset to install (e.g. full, small, basic)') - depends_on('perl') + depends_on('perl', type='build') def install(self, spec, prefix): env = os.environ diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index 573ee38a79..89c9751486 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -35,9 +35,10 @@ class Tmux(Package): homepage = "http://tmux.github.io" url = "https://github.com/tmux/tmux/releases/download/2.2/tmux-2.2.tar.gz" - version('1.9a', 'b07601711f96f1d260b390513b509a2d') - version('2.1', '74a2855695bccb51b6e301383ad4818c') + version('2.3', 'fcfd1611d705d8b31df3c26ebc93bd3e') version('2.2', 'bd95ee7205e489c62c616bb7af040099') + version('2.1', '74a2855695bccb51b6e301383ad4818c') + version('1.9a', 'b07601711f96f1d260b390513b509a2d') depends_on('libevent') depends_on('ncurses') diff --git a/var/spack/repos/builtin/packages/transset/package.py b/var/spack/repos/builtin/packages/transset/package.py new file mode 100644 index 0000000000..0f60738741 --- /dev/null +++ b/var/spack/repos/builtin/packages/transset/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 Transset(Package): + """transset is an utility for setting opacity property.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/transset" + url = "https://www.x.org/archive/individual/app/transset-1.0.1.tar.gz" + + version('1.0.1', '4bbee6f6ea6fbd403280b4bb311db6dc') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/trapproto/package.py b/var/spack/repos/builtin/packages/trapproto/package.py new file mode 100644 index 0000000000..eebab74410 --- /dev/null +++ b/var/spack/repos/builtin/packages/trapproto/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 Trapproto(Package): + """X.org TrapProto protocol headers.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/trapproto" + url = "https://www.x.org/archive/individual/proto/trapproto-3.4.3.tar.gz" + + version('3.4.3', '1344759ae8d7d923e64f5eec078a679b') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/tree/package.py b/var/spack/repos/builtin/packages/tree/package.py index 8e0e176c4c..795f8c997e 100644 --- a/var/spack/repos/builtin/packages/tree/package.py +++ b/var/spack/repos/builtin/packages/tree/package.py @@ -23,6 +23,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## from spack import * +import sys class Tree(Package): @@ -39,8 +40,24 @@ class Tree(Package): version('1.7.0', 'abe3e03e469c542d8e157cdd93f4d8a6') def install(self, spec, prefix): - filter_file(r'^prefix =.*', 'prefix = %s' % prefix, 'Makefile') - filter_file(r'^CFLAGS', '# use spack settings instead... CFLAGS', - 'Makefile') - make() - make('install') + objs = [ + 'tree.o', + 'unix.o', + 'html.o', + 'xml.o', + 'json.o', + 'hash.o', + 'color.o' + ] + if (sys.platform == 'darwin'): + objs.append('strverscmp.o') + + args = [ + 'prefix=%s' % prefix, + 'CC=%s' % spack_cc, + 'CFLAGS=', + 'OBJS=%s' % ' '.join(objs), + 'install' + ] + + make(*args) diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index d39e45f054..07393f9e9b 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -36,25 +36,30 @@ import sys # https://github.com/trilinos/Trilinos/issues/175 -class Trilinos(Package): +class Trilinos(CMakePackage): """The Trilinos Project is an effort to develop algorithms and enabling technologies within an object-oriented software framework for the solution of large-scale, complex multi-physics engineering and scientific problems. A unique design feature of Trilinos is its focus on packages. """ homepage = "https://trilinos.org/" - url = "http://trilinos.csbsju.edu/download/files/trilinos-12.2.1-Source.tar.gz" + base_url = "https://github.com/trilinos/Trilinos/archive" - version('12.6.4', 'db25056617c688f6f25092376a03200f') - version('12.6.3', '960f5f4d3f7c3da818e5a5fb4684559eff7e0c25f959ef576561b8a52f0e4d1e') - version('12.6.2', '0c076090508170ddee5efeed317745027f9418319720dc40a072e478775279f9') - version('12.6.1', 'adcf2d3aab74cdda98f88fee19cd1442604199b0515ee3da4d80cbe8f37d00e4') - version('12.4.2', '7c830f7f0f68b8ad324690603baf404e') - version('12.2.1', '6161926ea247863c690e927687f83be9') - version('12.0.1', 'bd99741d047471e127b8296b2ec08017') - version('11.14.3', '2f4f83f8333e4233c57d0f01c4b57426') - version('11.14.2', 'a43590cf896c677890d75bfe75bc6254') - version('11.14.1', '40febc57f76668be8b6a77b7607bb67f') + version('12.8.1', '01c0026f1e2050842857db941060ecd5') + version('12.6.4', 'c2ea7b5aa0d10bcabdb9b9a6e3bac3ea') + version('12.6.3', '8de5cc00981a0ca0defea6199b2fe4c1') + version('12.6.2', 'dc7f9924872778798149ecadd81605a5') + version('12.6.1', '8aecea78546e7558f63ecc9a3b2949da') + version('12.4.2', '4c25a757d86bde3531090bd900a2cea8') + version('12.2.1', '85d011f7f99a776a9c6c2625e8cb721c') + version('12.0.1', 'bcb3fdefd14d05dd6aa65ba4c5b9aa0e') + version('11.14.3', 'dea62e57ebe51a886bee0b10a2176969') + version('11.14.2', 'e7c3cdbbfe3279a8a68838b873ad6d51') + version('11.14.1', 'b7760b142eef66c79ed13de7c9560f81') + + def url_for_version(self, version): + return '%s/trilinos-release-%s.tar.gz' % \ + (Trilinos.base_url, version.dashed) variant('metis', default=True, description='Compile with METIS and ParMETIS') @@ -84,7 +89,6 @@ class Trilinos(Package): depends_on('boost', when='+boost') depends_on('matio') depends_on('glm') - depends_on('swig') depends_on('metis@5:', when='+metis') depends_on('suite-sparse', when='+suite-sparse') @@ -106,6 +110,8 @@ class Trilinos(Package): depends_on('hypre~internal-superlu', when='+hypre') depends_on('hdf5+mpi', when='+hdf5') depends_on('python', when='+python') + depends_on('py-numpy', when='+python') + depends_on('swig', when='+python') patch('umfpack_from_suitesparse.patch') @@ -118,15 +124,17 @@ class Trilinos(Package): raise RuntimeError('The superlu-dist variant can only be used' + ' with Trilinos @12.0.1:') - def install(self, spec, prefix): + def cmake_args(self): + spec = self.spec self.variants_check() cxx_flags = [] options = [] - options.extend(std_cmake_args) mpi_bin = spec['mpi'].prefix.bin # Note: -DXYZ_LIBRARY_NAMES= needs semicolon separated list of names + blas = spec['blas'].blas_libs + lapack = spec['lapack'].lapack_libs options.extend([ '-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON', '-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON', @@ -140,20 +148,27 @@ class Trilinos(Package): '-DTPL_ENABLE_MPI:BOOL=ON', '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix, '-DTPL_ENABLE_BLAS=ON', - '-DBLAS_LIBRARY_NAMES=%s' % to_lib_name( - spec['blas'].blas_shared_lib), - '-DBLAS_LIBRARY_DIRS=%s' % spec['blas'].prefix.lib, + '-DBLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names), + '-DBLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories), '-DTPL_ENABLE_LAPACK=ON', - '-DLAPACK_LIBRARY_NAMES=%s' % to_lib_name( - spec['lapack'].lapack_shared_lib), - '-DLAPACK_LIBRARY_DIRS=%s' % spec['lapack'].prefix.lib, + '-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names), + '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories), '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON', '-DTrilinos_ENABLE_CXX11:BOOL=ON', '-DTPL_ENABLE_Netcdf:BOOL=ON', '-DTPL_ENABLE_HYPRE:BOOL=%s' % ( - 'ON' if '+hypre' in spec else 'OFF') + 'ON' if '+hypre' in spec else 'OFF'), + '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix ]) + if spec.satisfies('%intel') and spec.satisfies('@12.6.2'): + # Panzer uses some std:chrono that is not recognized by Intel + # Don't know which (maybe all) Trilinos versions this applies to + # Don't know which (maybe all) Intel versions this applies to + options.extend([ + '-DTrilinos_ENABLE_Panzer:BOOL=OFF' + ]) + if '+hdf5' in spec: options.extend([ '-DTPL_ENABLE_HDF5:BOOL=ON', @@ -172,20 +187,25 @@ class Trilinos(Package): else: options.extend(['-DTPL_ENABLE_Boost:BOOL=OFF']) - # Fortran lib - libgfortran = os.path.dirname(os.popen( - '%s --print-file-name libgfortran.a' % - join_path(mpi_bin, 'mpif90')).read()) - options.extend([ - '-DTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % ( - libgfortran), - '-DTrilinos_ENABLE_Fortran=ON' - ]) + if '+hdf5' in spec: + options.extend([ + '-DTPL_ENABLE_HDF5:BOOL=ON', + '-DHDF5_INCLUDE_DIRS:PATH=%s' % spec['hdf5'].prefix.include, + '-DHDF5_LIBRARY_DIRS:PATH=%s' % spec['hdf5'].prefix.lib + ]) + else: + options.extend(['-DTPL_ENABLE_HDF5:BOOL=OFF']) - # for build-debug only: - # options.extend([ - # '-DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE' - # ]) + # Fortran lib + if spec.satisfies('%gcc') or spec.satisfies('%clang'): + libgfortran = os.path.dirname(os.popen( + '%s --print-file-name libgfortran.a' % + join_path(mpi_bin, 'mpif90')).read()) + options.extend([ + '-DTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % ( + libgfortran), + '-DTrilinos_ENABLE_Fortran=ON' + ]) # suite-sparse related if '+suite-sparse' in spec: @@ -306,27 +326,20 @@ class Trilinos(Package): options.extend([ '-DTrilinos_ENABLE_FEI=OFF' ]) + return options - with working_dir('spack-build', create=True): - cmake('..', *options) - make() - make('install') - - # When trilinos is built with Python, libpytrilinos is included - # through cmake configure files. Namely, Trilinos_LIBRARIES in - # TrilinosConfig.cmake contains pytrilinos. This leads to a - # run-time error: Symbol not found: _PyBool_Type and prevents - # Trilinos to be used in any C++ code, which links executable - # against the libraries listed in Trilinos_LIBRARIES. See - # https://github.com/Homebrew/homebrew-science/issues/2148#issuecomment-103614509 - # A workaround it to remove PyTrilinos from the COMPONENTS_LIST : - if '+python' in self.spec: - filter_file(r'(SET\(COMPONENTS_LIST.*)(PyTrilinos;)(.*)', - (r'\1\3'), - '%s/cmake/Trilinos/TrilinosConfig.cmake' % - prefix.lib) - - # The shared libraries are not installed correctly on Darwin; - # correct this - if (sys.platform == 'darwin') and ('+shared' in spec): - fix_darwin_install_name(prefix.lib) + @CMakePackage.sanity_check('install') + def filter_python(self): + # When trilinos is built with Python, libpytrilinos is included + # through cmake configure files. Namely, Trilinos_LIBRARIES in + # TrilinosConfig.cmake contains pytrilinos. This leads to a + # run-time error: Symbol not found: _PyBool_Type and prevents + # Trilinos to be used in any C++ code, which links executable + # against the libraries listed in Trilinos_LIBRARIES. See + # https://github.com/Homebrew/homebrew-science/issues/2148#issuecomment-103614509 + # A workaround is to remove PyTrilinos from the COMPONENTS_LIST : + if '+python' in self.spec: + filter_file(r'(SET\(COMPONENTS_LIST.*)(PyTrilinos;)(.*)', + (r'\1\3'), + '%s/cmake/Trilinos/TrilinosConfig.cmake' % + self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/turbomole/package.py b/var/spack/repos/builtin/packages/turbomole/package.py index 6ccce23f97..b2d7e90057 100644 --- a/var/spack/repos/builtin/packages/turbomole/package.py +++ b/var/spack/repos/builtin/packages/turbomole/package.py @@ -29,14 +29,14 @@ import subprocess class Turbomole(Package): """TURBOMOLE: Program Package for ab initio Electronic Structure - Calculations. NB: Requires a license to download.""" - - # NOTE: Turbomole requires purchase of a license to download. Go to the - # NOTE: Turbomole home page, http://www.turbomole-gmbh.com, for details. - # NOTE: Spack will search the current directory for this file. It is - # NOTE: probably best to add this file to a Spack mirror so that it can be - # NOTE: found from anywhere. For information on setting up a Spack mirror - # NOTE: see http://software.llnl.gov/spack/mirrors.html + Calculations. + + Note: Turbomole requires purchase of a license to download. Go to the + Turbomole home page, http://www.turbomole-gmbh.com, for details. + Spack will search the current directory for this file. It is + probably best to add this file to a Spack mirror so that it can be + found from anywhere. For information on setting up a Spack mirror + see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "http://www.turbomole-gmbh.com/" diff --git a/var/spack/repos/builtin/packages/twm/package.py b/var/spack/repos/builtin/packages/twm/package.py new file mode 100644 index 0000000000..3e37f4903d --- /dev/null +++ b/var/spack/repos/builtin/packages/twm/package.py @@ -0,0 +1,56 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Twm(Package): + """twm is a window manager for the X Window System. It provides + titlebars, shaped windows, several forms of icon management, + user-defined macro functions, click-to-type and pointer-driven + keyboard focus, and user-specified key and pointer button bindings.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/twm" + url = "https://www.x.org/archive/individual/app/twm-1.0.9.tar.gz" + + version('1.0.9', 'e98fcb32f774ac1ff7bf82101b79f61e') + + depends_on('libx11') + depends_on('libxext') + depends_on('libxt') + depends_on('libxmu') + depends_on('libice') + depends_on('libsm') + + depends_on('xproto@7.0.17:', type='build') + depends_on('bison', type='build') + depends_on('flex', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/uberftp/package.py b/var/spack/repos/builtin/packages/uberftp/package.py new file mode 100644 index 0000000000..b1b7dada6f --- /dev/null +++ b/var/spack/repos/builtin/packages/uberftp/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 Uberftp(Package): + """UberFTP is an interactive (text-based) client for GridFTP""" + + homepage = "http://toolkit.globus.org/grid_software/data/uberftp.php" + url = "https://github.com/JasonAlt/UberFTP/archive/Version_2_8.tar.gz" + + version('2_8', 'bc7a159955a9c4b9f5f42f3d2b8fc830') + version('2_7', 'faaea2d6e1958c1105cfc9147824e03c') + version('2_6', '784210976f259f9d19c0798c19778d34') + + depends_on('globus_toolkit') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py new file mode 100644 index 0000000000..486d4463b0 --- /dev/null +++ b/var/spack/repos/builtin/packages/util-macros/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 UtilMacros(Package): + """This is a set of autoconf macros used by the configure.ac scripts in + other Xorg modular packages, and is needed to generate new versions + of their configure scripts with autoconf.""" + + homepage = "http://cgit.freedesktop.org/xorg/util/macros/" + url = "https://www.x.org/archive/individual/util/util-macros-1.19.0.tar.bz2" + + version('1.19.0', '1cf984125e75f8204938d998a8b6c1e1') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/veclibfort/package.py b/var/spack/repos/builtin/packages/veclibfort/package.py new file mode 100644 index 0000000000..b906d4f9c9 --- /dev/null +++ b/var/spack/repos/builtin/packages/veclibfort/package.py @@ -0,0 +1,70 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import sys + + +class Veclibfort(Package): + """Lightweight but flexible shim designed to rectify the incompatibilities + between the Accelerate/vecLib BLAS and LAPACK libraries shipped with macOS + and FORTRAN code compiled with modern compilers such as GNU Fortran.""" + + homepage = "https://github.com/mcg1969/vecLibFort" + url = "https://github.com/mcg1969/vecLibFort/archive/0.4.2.tar.gz" + + version('0.4.2', '83395ffcbe8a2122c3f726a5c3a7cf93') + version('develop', git='https://github.com/mcg1969/vecLibFort.git') + + variant('shared', default=True, + description="Build shared libraries as well as static libs.") + + # virtual dependency + provides('blas') + provides('lapack') + + @property + def blas_libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + ['libvecLibFort'], root=self.prefix, shared=shared, recurse=True + ) + + @property + def lapack_libs(self): + return self.blas_libs + + def install(self, spec, prefix): + if sys.platform != 'darwin': + raise InstallError('vecLibFort can be installed on macOS only') + + make('all') + make('PREFIX=%s' % prefix, 'install') + + # test + fc = which('fc') + flags = ['-o', 'tester', '-O', 'tester.f90'] + flags.extend(self.lapack_libs.ld_flags.split()) + fc(*flags) + Executable('./tester')() diff --git a/var/spack/repos/builtin/packages/videoproto/package.py b/var/spack/repos/builtin/packages/videoproto/package.py new file mode 100644 index 0000000000..93b0e61ca4 --- /dev/null +++ b/var/spack/repos/builtin/packages/videoproto/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 Videoproto(Package): + """X Video Extension. + + This extension provides a protocol for a video output mechanism, + mainly to rescale video playback in the video controller hardware.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/videoproto" + url = "https://www.x.org/archive/individual/proto/videoproto-2.3.3.tar.gz" + + version('2.3.3', 'd984100603ee2420072f27bb491f4b7d') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/viewres/package.py b/var/spack/repos/builtin/packages/viewres/package.py new file mode 100644 index 0000000000..3a32555075 --- /dev/null +++ b/var/spack/repos/builtin/packages/viewres/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Viewres(Package): + """viewres displays a tree showing the widget class hierarchy of the + Athena Widget Set (libXaw).""" + + homepage = "http://cgit.freedesktop.org/xorg/app/viewres" + url = "https://www.x.org/archive/individual/app/viewres-1.0.4.tar.gz" + + version('1.0.4', 'a3c7fe561945951f848e319680753760') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index 01eccfab57..26aeb4aad9 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -38,6 +38,7 @@ class Vim(Package): url = "ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2" list_url = "http://ftp.vim.org/pub/vim/unix/" + version('8.0', '808d2ebdab521e18bc5e0eaede0db867') version('7.4', '607e135c559be642f210094ad023dc65') version('7.3', '5b9510a17074e2b37d8bb38ae09edbf2') version('7.2', 'f0901284b338e448bfd79ccca0041254') @@ -66,19 +67,21 @@ class Vim(Package): variant('gui', default=False, description="build with gui (gvim)") # virtual dependency? + depends_on('ncurses', when="@8.0:") + def install(self, spec, prefix): feature_set = None for fs in self.feature_sets: if "+" + fs in spec: if feature_set is not None: - tty.error( + raise InstallError( "Only one feature set allowed, specified %s and %s" % (feature_set, fs)) feature_set = fs if '+gui' in spec: if feature_set is not None: - if feature_set is not 'huge': - tty.error( + if feature_set != 'huge': + raise InstallError( "+gui variant requires 'huge' feature set, " "%s was specified" % feature_set) feature_set = 'huge' diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index d88caeb00a..ba1224daee 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -31,29 +31,34 @@ class Visit(Package): homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/" url = "http://portal.nersc.gov/project/visit/releases/2.10.1/visit2.10.1.tar.gz" - version('2.10.1', '3cbca162fdb0249f17c4456605c4211e') + version('2.10.3', 'a1082a6f6dab3e2dcb58993603456c2b') version('2.10.2', '253de0837a9d69fb689befc98ea4d068') + version('2.10.1', '3cbca162fdb0249f17c4456605c4211e') - depends_on("vtk@6.1.0~opengl2") - depends_on("qt@4.8.6") - depends_on("python") - depends_on("silo+shared") + depends_on('cmake', type='build') + depends_on('vtk@6.1.0~opengl2') + depends_on('qt@4.8.6') + depends_on('python') + depends_on('silo+shared') + depends_on('hdf5~mpi') def install(self, spec, prefix): - with working_dir('spack-build', create=True): + qt_bin = spec['qt'].prefix.bin + python_bin = spec['python'].prefix.bin - feature_args = std_cmake_args[:] - feature_args.extend([ - "-DVTK_MAJOR_VERSION=6", - "-DVTK_MINOR_VERSION=1", - "-DVISIT_LOC_QMAKE_EXE:FILEPATH=%s/qmake-qt4" % spec[ - 'qt'].prefix.bin, - "-DPYTHON_EXECUTABLE:FILEPATH=%s/python" % spec[ - 'python'].prefix.bin, - "-DVISIT_SILO_DIR:PATH=%s" % spec['silo'].prefix, - "-DVISIT_HDF5_DIR:PATH=%s" % spec['hdf5'].prefix]) - - cmake('../src', *feature_args) + with working_dir('spack-build', create=True): + cmake_args = std_cmake_args[:] + cmake_args.extend([ + '-DVTK_MAJOR_VERSION=6', + '-DVTK_MINOR_VERSION=1', + '-DVISIT_USE_GLEW=OFF', + '-DVISIT_LOC_QMAKE_EXE:FILEPATH={0}/qmake-qt4'.format(qt_bin), + '-DPYTHON_EXECUTABLE:FILEPATH={0}/python'.format(python_bin), + '-DVISIT_SILO_DIR:PATH={0}'.format(spec['silo'].prefix), + '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix), + '-DVISIT_VTK_DIR:PATH={0}'.format(spec['vtk'].prefix), + ]) + cmake(join_path('..', 'src'), *cmake_args) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/vizglow/package.py b/var/spack/repos/builtin/packages/vizglow/package.py new file mode 100644 index 0000000000..9e4506b05a --- /dev/null +++ b/var/spack/repos/builtin/packages/vizglow/package.py @@ -0,0 +1,58 @@ +############################################################################## +# 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 glob +import os + + +class Vizglow(Package): + """VizGlow software tool is used for high-fidelity multi-dimensional + modeling of non-equilibrium plasma discharges. + + Note: VizGlow is licensed software. You will need to create an account on + the EsgeeTech homepage and download VizGlow yourself. Spack will search + your current directory for a file of this format. Alternatively, add this + file to a mirror so that Spack can find it. For instructions on how to + set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" + + homepage = "http://esgeetech.com/products/vizglow-plasma-modeling/" + + version('2.2a-15', 'be2b5044f30f2b2c3bbe87a0037bf228', expand=False, + url="file://{0}/VizGlow_v2.2alpha15-Linux-x86_64-R31October2016-Install".format(os.getcwd())) + + # Licensing + license_required = True + license_comment = '#' + license_files = ['esgeelm.lic'] + license_vars = ['ESGEE_LICENSE_FILE'] + + def install(self, spec, prefix): + installer = glob.glob('VizGlow*Install')[0] + + chmod = which('chmod') + chmod('+x', installer) + + installer = Executable(installer) + installer('--mode', 'silent', '--prefix', prefix) diff --git a/var/spack/repos/builtin/packages/vtk/gcc.patch b/var/spack/repos/builtin/packages/vtk/gcc.patch new file mode 100644 index 0000000000..37ba5ac45a --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk/gcc.patch @@ -0,0 +1,21 @@ +--- old/CMake/vtkCompilerExtras.cmake ++++ new/CMake/vtkCompilerExtras.cmake +@@ -26,6 +26,8 @@ + execute_process(COMMAND ${CMAKE_C_COMPILER} --version + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) ++ ++ string (REPLACE ";" "" _gcc_version_info "${_gcc_version_info}") + + string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" + _gcc_version "${_gcc_version_info}") +--- old/CMake/GenerateExportHeader.cmake ++++ new/CMake/GenerateExportHeader.cmake +@@ -166,6 +166,7 @@ + execute_process(COMMAND ${CMAKE_C_COMPILER} --version + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) ++ string (REPLACE ";" "" _gcc_version_info "${_gcc_version_info}") + string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]" + _gcc_version "${_gcc_version_info}") + # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 087c0e93eb..c2d5ff399f 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -22,6 +22,7 @@ # 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 * @@ -29,60 +30,70 @@ class Vtk(Package): """The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing and visualization. """ + homepage = "http://www.vtk.org" - url = "http://www.vtk.org/files/release/6.1/VTK-6.1.0.tar.gz" + base_url = "http://www.vtk.org/files/release" - version("7.0.0", "5fe35312db5fb2341139b8e4955c367d", - url="http://www.vtk.org/files/release/7.0/VTK-7.0.0.tar.gz") + version('7.0.0', '5fe35312db5fb2341139b8e4955c367d') + version('6.3.0', '0231ca4840408e9dd60af48b314c5b6d') + version('6.1.0', '25e4dfb3bad778722dcaec80cd5dab7d') - version("6.3.0", '0231ca4840408e9dd60af48b314c5b6d', - url="http://www.vtk.org/files/release/6.3/VTK-6.3.0.tar.gz") + # VTK7 defaults to OpenGL2 rendering backend + variant('opengl2', default=True, description='Build with OpenGL2 instead of OpenGL as rendering backend') + variant('python', default=False, description='Build the python modules') - version('6.1.0', '25e4dfb3bad778722dcaec80cd5dab7d') + patch('gcc.patch') depends_on('cmake', type='build') - depends_on("qt") + depends_on('qt') - # VTK7 defaults to OpenGL2 rendering backend - variant('opengl2', default=True, - description='Build with OpenGL instead of OpenGL2 backend') + extends('python', when='+python') + depends_on('python', when='+python') + + def url_for_version(self, ver): + return '{0}/{1}/VTK-{2}.tar.gz'.format(Vtk.base_url, ver.up_to(2), ver) def install(self, spec, prefix): def feature_to_bool(feature, on='ON', off='OFF'): - if feature in spec: - return on - return off + return on if '+{0}'.format(feature) in spec else off with working_dir('spack-build', create=True): - cmake_args = [ - "..", - "-DBUILD_SHARED_LIBS=ON", - # Disable wrappers for other languages. - "-DVTK_WRAP_PYTHON=OFF", - "-DVTK_WRAP_JAVA=OFF", - "-DVTK_WRAP_TCL=OFF"] - cmake_args.extend(std_cmake_args) + opengl_ver = 'OpenGL{0}'.format('2' if '+opengl2' in spec else '') + qt_ver = spec['qt'].version.up_to(1) + qt_bin = spec['qt'].prefix.bin - # Enable Qt support here. + cmake_args = std_cmake_args[:] cmake_args.extend([ - "-DQT_QMAKE_EXECUTABLE:PATH=%s/qmake" % spec['qt'].prefix.bin, - "-DVTK_Group_Qt:BOOL=ON", - # Ignore webkit because it's hard to build w/Qt - "-DVTK_Group_Qt=OFF", - "-DModule_vtkGUISupportQt:BOOL=ON", - "-DModule_vtkGUISupportQtOpenGL:BOOL=ON" - ]) + '-DBUILD_SHARED_LIBS=ON', + '-DVTK_RENDERING_BACKEND:STRING={0}'.format(opengl_ver), + + # Enable/Disable wrappers for Python. + '-DVTK_WRAP_PYTHON={0}'.format(feature_to_bool('python')), - if spec['qt'].satisfies('@5'): - cmake_args.append("-DVTK_QT_VERSION:STRING=5") + # Disable wrappers for other languages. + '-DVTK_WRAP_JAVA=OFF', + '-DVTK_WRAP_TCL=OFF', + + # Enable Qt support here. + '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver), + '-DQT_QMAKE_EXECUTABLE:PATH={0}/qmake'.format(qt_bin), + '-DVTK_Group_Qt:BOOL=ON', + ]) - if spec.satisfies("@6.1.0"): - cmake_args.append("-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY") - cmake_args.append("-DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY") + # NOTE: The following definitions are required in order to allow + # VTK to build with qt~webkit versions (see the documentation for + # more info: http://www.vtk.org/Wiki/VTK/Tutorials/QtSetup). + if '~webkit' in spec['qt']: + cmake_args.extend([ + '-DVTK_Group_Qt:BOOL=OFF', + '-DModule_vtkGUISupportQt:BOOL=ON', + '-DModule_vtkGUISupportQtOpenGL:BOOL=ON', + ]) - cmake_args.append('-DVTK_RENDERING_BACKEND:STRING=%s' % - feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL')) + if spec.satisfies('@:6.1.0'): + cmake_args.append('-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY') + cmake_args.append('-DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY') - cmake(*cmake_args) + cmake('..', *cmake_args) make() - make("install") + make('install') diff --git a/var/spack/repos/builtin/packages/wannier90/make.sys b/var/spack/repos/builtin/packages/wannier90/make.sys new file mode 100644 index 0000000000..f96fa23fb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/wannier90/make.sys @@ -0,0 +1,7 @@ +F90 = @F90 +COMMS=mpi +MPIF90=@MPIF90 +FCOPTS=-O2 -fpic +LDOPTS=-O2 -fpic + +LIBS = @LIBS diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py new file mode 100644 index 0000000000..119d2cf769 --- /dev/null +++ b/var/spack/repos/builtin/packages/wannier90/package.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 inspect +import os.path +import shutil + +from spack import * + + +class Wannier90(Package): + """Wannier90 calculates maximally-localised Wannier functions (MLWFs). + + Wannier90 is released under the GNU General Public License. + """ + homepage = 'http://wannier.org' + url = 'http://wannier.org/code/wannier90-2.0.1.tar.gz' + + version('2.0.1', '4edd742506eaba93317249d33261fb22') + + depends_on('mpi') + depends_on('lapack') + depends_on('blas') + + parallel = False + + def install(self, spec, prefix): + + lapack = self.spec['lapack'].lapack_libs + blas = self.spec['blas'].blas_libs + substitutions = { + '@F90': spack_fc, + '@MPIF90': self.spec['mpi'].mpifc, + '@LIBS': (lapack + blas).joined() + } + ####### + # TODO : this part is replicated in PEXSI + # TODO : and may be a common pattern for Editable Makefiles + # TODO : see #1186 + template = join_path( + os.path.dirname(inspect.getmodule(self).__file__), + 'make.sys' + ) + makefile = join_path( + self.stage.source_path, + 'make.sys' + ) + + shutil.copy(template, makefile) + for key, value in substitutions.items(): + filter_file(key, value, makefile) + ###### + + make('wannier') + mkdirp(self.prefix.bin) + install( + join_path(self.stage.source_path, 'wannier90.x'), + join_path(self.prefix.bin, 'wannier90.x') + ) + + make('post') + install( + join_path(self.stage.source_path, 'postw90.x'), + join_path(self.prefix.bin, 'postw90.x') + ) + + make('lib') + mkdirp(self.prefix.lib) + install( + join_path(self.stage.source_path, 'libwannier.a'), + join_path(self.prefix.lib, 'libwannier.a') + ) + + make('w90chk2chk') + install( + join_path(self.stage.source_path, 'w90chk2chk.x'), + join_path(self.prefix.bin, 'w90chk2chk.x') + ) + + make('w90vdw') + install( + join_path(self.stage.source_path, 'utility', 'w90vdw', 'w90vdw.x'), + join_path(self.prefix.bin, 'w90vdw.x') + ) + + make('w90pov') + install( + join_path(self.stage.source_path, 'utility', 'w90pov', 'w90pov'), + join_path(self.prefix.bin, 'w90pov') + ) + + install_tree( + join_path(self.stage.source_path, 'pseudo'), + join_path(self.prefix.bin, 'pseudo') + ) diff --git a/var/spack/repos/builtin/packages/windowswmproto/package.py b/var/spack/repos/builtin/packages/windowswmproto/package.py new file mode 100644 index 0000000000..f163d1afb0 --- /dev/null +++ b/var/spack/repos/builtin/packages/windowswmproto/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 Windowswmproto(Package): + """This module provides the definition of the WindowsWM extension to the + X11 protocol, used for coordination between an X11 server and the + Microsoft Windows native window manager. + + WindowsWM is only intended to be used on Cygwin when running a + rootless XWin server.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/windowswmproto" + url = "https://www.x.org/archive/individual/proto/windowswmproto-1.0.4.tar.gz" + + version('1.0.4', '558db92a8e4e1b07e9c62eca3f04dd8d') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/x11perf/package.py b/var/spack/repos/builtin/packages/x11perf/package.py new file mode 100644 index 0000000000..91db1e8a59 --- /dev/null +++ b/var/spack/repos/builtin/packages/x11perf/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class X11perf(Package): + """Simple X server performance benchmarker.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/x11perf" + url = "https://www.x.org/archive/individual/app/x11perf-1.6.0.tar.gz" + + version('1.6.0', '8dcdb74db8c70dca4b4eab11dc33dd31') + + depends_on('libx11') + depends_on('libxmu') + depends_on('libxrender') + depends_on('libxft') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xauth/package.py b/var/spack/repos/builtin/packages/xauth/package.py new file mode 100644 index 0000000000..6d6a03c899 --- /dev/null +++ b/var/spack/repos/builtin/packages/xauth/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 Xauth(Package): + """The xauth program is used to edit and display the authorization + information used in connecting to the X server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xauth" + url = "https://www.x.org/archive/individual/app/xauth-1.0.9.tar.gz" + + version('1.0.9', 'def3b4588504ee3d8ec7be607826df02') + + depends_on('libx11') + depends_on('libxau') + depends_on('libxext') + depends_on('libxmu') + + depends_on('xproto@7.0.17:') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + # make('check') # TODO: add package for cmdtest build dependency + make('install') diff --git a/var/spack/repos/builtin/packages/xbacklight/package.py b/var/spack/repos/builtin/packages/xbacklight/package.py new file mode 100644 index 0000000000..f1a9ecc124 --- /dev/null +++ b/var/spack/repos/builtin/packages/xbacklight/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xbacklight(Package): + """Xbacklight is used to adjust the backlight brightness where supported. + It uses the RandR extension to find all outputs on the X server + supporting backlight brightness control and changes them all in the + same way.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xbacklight" + url = "https://www.x.org/archive/individual/app/xbacklight-1.2.1.tar.gz" + + version('1.2.1', 'e8e4c86b0f867e23aa3532618a697609') + + depends_on('libxcb') + depends_on('xcb-util') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xbiff/package.py b/var/spack/repos/builtin/packages/xbiff/package.py new file mode 100644 index 0000000000..f5c53c5997 --- /dev/null +++ b/var/spack/repos/builtin/packages/xbiff/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 Xbiff(Package): + """xbiff provides graphical notification of new e-mail. + It only handles mail stored in a filesystem accessible file, + not via IMAP, POP or other remote access protocols.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xbiff" + url = "https://www.x.org/archive/individual/app/xbiff-1.0.3.tar.gz" + + version('1.0.3', '779c888cb45da82a612e7f47971df9ab') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxext') + depends_on('libx11') + + depends_on('xbitmaps', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xbitmaps/package.py b/var/spack/repos/builtin/packages/xbitmaps/package.py new file mode 100644 index 0000000000..1c6fb79d3a --- /dev/null +++ b/var/spack/repos/builtin/packages/xbitmaps/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xbitmaps(Package): + """The xbitmaps package contains bitmap images used by multiple + applications built in Xorg.""" + + homepage = "https://cgit.freedesktop.org/xorg/data/bitmaps/" + url = "https://www.x.org/archive/individual/data/xbitmaps-1.1.1.tar.gz" + + version('1.1.1', '288bbe310db67280a9e2e5ebc5602595') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xcalc/package.py b/var/spack/repos/builtin/packages/xcalc/package.py new file mode 100644 index 0000000000..a470d1c9d0 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcalc/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xcalc(Package): + """xcalc is a scientific calculator X11 client that can emulate a TI-30 + or an HP-10C.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xcalc" + url = "https://www.x.org/archive/individual/app/xcalc-1.0.6.tar.gz" + + version('1.0.6', 'a192ebb5e5f33925c71713501173d8e0') + + depends_on('libxaw') + depends_on('libxt') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-demo/package.py b/var/spack/repos/builtin/packages/xcb-demo/package.py new file mode 100644 index 0000000000..62433e3b32 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-demo/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 XcbDemo(Package): + """xcb-demo: A collection of demo programs that use the XCB library.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-demo-0.1.tar.gz" + + version('0.1', '803c5c91d54e734e6f6fa3f04f2463ff') + + depends_on('libxcb') + depends_on('xcb-util') + depends_on('xcb-util-image') + depends_on('xcb-util-wm') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + # FIXME: crashes with the following error message + # X11/XCB/xcb.h: No such file or directory + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-proto/package.py b/var/spack/repos/builtin/packages/xcb-proto/package.py index 587983f6bd..d2ac54d34f 100644 --- a/var/spack/repos/builtin/packages/xcb-proto/package.py +++ b/var/spack/repos/builtin/packages/xcb-proto/package.py @@ -26,15 +26,19 @@ from spack import * class XcbProto(Package): - """Protocol for libxcb""" + """xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to + generate the majority of its code and API.""" homepage = "http://xcb.freedesktop.org/" url = "http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.gz" + version('1.12', '5ee1ec124ea8d56bd9e83b8e9e0b84c4') version('1.11', 'c8c6cb72c84f58270f4db1f39607f66a') + extends('python') + def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) - make() - make("install") + # make('check') # fails xmllint validation + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-cursor/package.py b/var/spack/repos/builtin/packages/xcb-util-cursor/package.py new file mode 100644 index 0000000000..b25fb181a6 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-cursor/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 XcbUtilCursor(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.gz" + + version('0.1.3', '4b0768fa497127131a47f07e5c8cf745') + + depends_on('libxcb@1.4:') + depends_on('xcb-util-renderutil') + depends_on('xcb-util-image') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-errors/package.py b/var/spack/repos/builtin/packages/xcb-util-errors/package.py new file mode 100644 index 0000000000..c287a0ec6e --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-errors/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 XcbUtilErrors(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.gz" + + version('1.0', 'dc4a6ce073a81a0b7e614a2988f275cc') + + depends_on('libxcb@1.4:') + + depends_on('xcb-proto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-image/package.py b/var/spack/repos/builtin/packages/xcb-util-image/package.py new file mode 100644 index 0000000000..4413c7e11d --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-image/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class XcbUtilImage(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.gz" + + version('0.4.0', '32c9c2f72ebd58a2b2e210f27fee86f7') + + depends_on('libxcb@1.4:') + depends_on('xcb-util') + + depends_on('xproto@7.0.8:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py new file mode 100644 index 0000000000..0de6391b18 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 XcbUtilKeysyms(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.gz" + + version('0.4.0', '2decde7b02b4b3bde99a02c17b64d5dc') + + depends_on('libxcb@1.4:') + + depends_on('xproto@7.0.8:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py new file mode 100644 index 0000000000..d41c88206c --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class XcbUtilRenderutil(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.gz" + + version('0.3.9', 'ac18c1b70ae69845e112f1d987926436') + + depends_on('libxcb@1.4:') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util-wm/package.py b/var/spack/repos/builtin/packages/xcb-util-wm/package.py new file mode 100644 index 0000000000..ef3db06aec --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util-wm/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class XcbUtilWm(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.gz" + + version('0.4.1', '0831399918359bf82930124fa9fd6a9b') + + depends_on('libxcb@1.4:') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcb-util/package.py b/var/spack/repos/builtin/packages/xcb-util/package.py new file mode 100644 index 0000000000..820592a319 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcb-util/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class XcbUtil(Package): + """The XCB util modules provides a number of libraries which sit on top + of libxcb, the core X protocol library, and some of the extension + libraries. These experimental libraries provide convenience functions + and interfaces which make the raw X protocol more usable. Some of the + libraries also provide client-side code which is not strictly part of + the X protocol but which have traditionally been provided by Xlib.""" + + homepage = "https://xcb.freedesktop.org/" + url = "https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.gz" + + version('0.4.0', '157d82738aa89934b6adaf3ca508a0f5') + + depends_on('libxcb@1.4:') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xclipboard/package.py b/var/spack/repos/builtin/packages/xclipboard/package.py new file mode 100644 index 0000000000..d9af19da71 --- /dev/null +++ b/var/spack/repos/builtin/packages/xclipboard/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Xclipboard(Package): + """xclipboard is used to collect and display text selections that are + sent to the CLIPBOARD by other clients. It is typically used to save + CLIPBOARD selections for later use. It stores each CLIPBOARD + selection as a separate string, each of which can be selected.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xclipboard" + url = "https://www.x.org/archive/individual/app/xclipboard-1.1.3.tar.gz" + + version('1.1.3', 'cee91df9df1b5d63034681546fd78c0b') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt@1.1:') + depends_on('libx11') + depends_on('libxkbfile') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xclock/package.py b/var/spack/repos/builtin/packages/xclock/package.py new file mode 100644 index 0000000000..5bd38826db --- /dev/null +++ b/var/spack/repos/builtin/packages/xclock/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 Xclock(Package): + """xclock is the classic X Window System clock utility. It displays + the time in analog or digital form, continuously updated at a + frequency which may be specified by the user.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xclock" + url = "https://www.x.org/archive/individual/app/xclock-1.0.7.tar.gz" + + version('1.0.7', 'bbade10e6234d8db276212014e8c77fa') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libx11') + depends_on('libxrender') + depends_on('libxft') + depends_on('libxkbfile') + depends_on('libxt') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcmiscproto/package.py b/var/spack/repos/builtin/packages/xcmiscproto/package.py new file mode 100644 index 0000000000..2b15d1b3e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcmiscproto/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 Xcmiscproto(Package): + """XC-MISC Extension. + + This extension defines a protocol that provides Xlib two ways to query + the server for available resource IDs.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xcmiscproto" + url = "https://www.x.org/archive/individual/proto/xcmiscproto-1.2.2.tar.gz" + + version('1.2.2', 'ded6cd23fb2800df93ebf2b3f3b01119') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xcmsdb/package.py b/var/spack/repos/builtin/packages/xcmsdb/package.py new file mode 100644 index 0000000000..4d12e3a843 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcmsdb/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xcmsdb(Package): + """xcmsdb is used to load, query, or remove Device Color Characterization + data stored in properties on the root window of the screen as + specified in section 7, Device Color Characterization, of the + X11 Inter-Client Communication Conventions Manual (ICCCM).""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xcmsdb" + url = "https://www.x.org/archive/individual/app/xcmsdb-1.0.5.tar.gz" + + version('1.0.5', 'e7b1699c831b44d7005bff45977ed56a') + + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcompmgr/package.py b/var/spack/repos/builtin/packages/xcompmgr/package.py new file mode 100644 index 0000000000..fc5bbb4b9c --- /dev/null +++ b/var/spack/repos/builtin/packages/xcompmgr/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 Xcompmgr(Package): + """xcompmgr is a sample compositing manager for X servers supporting the + XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables basic + eye-candy effects.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xcompmgr" + url = "https://www.x.org/archive/individual/app/xcompmgr-1.1.7.tar.gz" + + version('1.1.7', '4992895c8934bbc99bb2447dfe5081f2') + + depends_on('libxcomposite') + depends_on('libxfixes') + depends_on('libxdamage') + depends_on('libxrender') + depends_on('libxext') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xconsole/package.py b/var/spack/repos/builtin/packages/xconsole/package.py new file mode 100644 index 0000000000..f86fe753b6 --- /dev/null +++ b/var/spack/repos/builtin/packages/xconsole/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xconsole(Package): + """xconsole displays in a X11 window the messages which are usually sent + to /dev/console.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xconsole" + url = "https://www.x.org/archive/individual/app/xconsole-1.0.6.tar.gz" + + version('1.0.6', '46cb988e31a0cf9a02c2bbc4a82bd572') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt@1.0:') + depends_on('libx11') + + depends_on('xproto@7.0.17:') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xcursor-themes/package.py b/var/spack/repos/builtin/packages/xcursor-themes/package.py new file mode 100644 index 0000000000..7c38c9999c --- /dev/null +++ b/var/spack/repos/builtin/packages/xcursor-themes/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 XcursorThemes(Package): + """This is a default set of cursor themes for use with libXcursor, + originally created for the XFree86 Project, and now shipped as part + of the X.Org software distribution.""" + + homepage = "http://cgit.freedesktop.org/xorg/data/cursors" + url = "https://www.x.org/archive/individual/data/xcursor-themes-1.0.4.tar.gz" + + version('1.0.4', 'c82628f35e9950ba225050ad5803b92a') + + depends_on('libxcursor') + + depends_on('xcursorgen', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') + + # `make install` copies the files to the libxcursor installation. + # Create a fake directory to convince Spack that we actually + # installed something. + mkdir(prefix.lib) diff --git a/var/spack/repos/builtin/packages/xcursorgen/package.py b/var/spack/repos/builtin/packages/xcursorgen/package.py new file mode 100644 index 0000000000..4e43844646 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcursorgen/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xcursorgen(Package): + """xcursorgen prepares X11 cursor sets for use with libXcursor.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xcursorgen" + url = "https://www.x.org/archive/individual/app/xcursorgen-1.0.6.tar.gz" + + version('1.0.6', '669df84fc30d89c12ce64b95aba26677') + + depends_on('libx11') + depends_on('libxcursor') + depends_on('libpng@1.2.0:') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xdbedizzy/package.py b/var/spack/repos/builtin/packages/xdbedizzy/package.py new file mode 100644 index 0000000000..7a8f97401f --- /dev/null +++ b/var/spack/repos/builtin/packages/xdbedizzy/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xdbedizzy(Package): + """xdbedizzy is a demo of the X11 Double Buffer Extension (DBE) + creating a double buffered spinning scene.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xdbedizzy" + url = "https://www.x.org/archive/individual/app/xdbedizzy-1.1.0.tar.gz" + + version('1.1.0', '969be2f6bc62455431ab027f99720dc3') + + depends_on('libx11') + depends_on('libxext') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xditview/package.py b/var/spack/repos/builtin/packages/xditview/package.py new file mode 100644 index 0000000000..3fececd12e --- /dev/null +++ b/var/spack/repos/builtin/packages/xditview/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xditview(Package): + """xditview displays ditroff output on an X display.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xditview" + url = "https://www.x.org/archive/individual/app/xditview-1.0.4.tar.gz" + + version('1.0.4', '46dffbbc4de3039fdecabb73d10d6a4f') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xdm/package.py b/var/spack/repos/builtin/packages/xdm/package.py new file mode 100644 index 0000000000..d42ced9a57 --- /dev/null +++ b/var/spack/repos/builtin/packages/xdm/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 Xdm(Package): + """X Display Manager / XDMCP server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xdm" + url = "https://www.x.org/archive/individual/app/xdm-1.1.11.tar.gz" + + version('1.1.11', 'aaf8c3d05d4a1e689d2d789c99a6023c') + + depends_on('libxmu') + depends_on('libx11') + depends_on('libxau') + depends_on('libxinerama') + depends_on('libxft') + depends_on('libxpm') + depends_on('libxaw') + depends_on('libxdmcp') + depends_on('libxt') + depends_on('libxext') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xdpyinfo/package.py b/var/spack/repos/builtin/packages/xdpyinfo/package.py new file mode 100644 index 0000000000..c69af3b357 --- /dev/null +++ b/var/spack/repos/builtin/packages/xdpyinfo/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 Xdpyinfo(Package): + """xdpyinfo is a utility for displaying information about an X server. + + It is used to examine the capabilities of a server, the predefined + values for various parameters used in communicating between clients + and the server, and the different types of screens, visuals, and X11 + protocol extensions that are available.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xdpyinfo" + url = "https://www.x.org/archive/individual/app/xdpyinfo-1.3.2.tar.gz" + + version('1.3.2', 'dab410719d36c9df690cf3a8cd7d117e') + + depends_on('libxext') + depends_on('libx11') + depends_on('libxtst') + depends_on('libxcb') + + depends_on('xproto@7.0.22:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xdriinfo/package.py b/var/spack/repos/builtin/packages/xdriinfo/package.py new file mode 100644 index 0000000000..7548175f6f --- /dev/null +++ b/var/spack/repos/builtin/packages/xdriinfo/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xdriinfo(Package): + """xdriinfo - query configuration information of X11 DRI drivers.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xdriinfo" + url = "https://www.x.org/archive/individual/app/xdriinfo-1.0.5.tar.gz" + + version('1.0.5', '34a4a9ae69c60f4c2566bf9ea4bcf311') + + depends_on('libx11') + depends_on('expat') + depends_on('libxshmfence') + depends_on('libxext') + depends_on('libxdamage') + depends_on('libxfixes') + depends_on('pcre') + + depends_on('glproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xedit/package.py b/var/spack/repos/builtin/packages/xedit/package.py new file mode 100644 index 0000000000..da5f28809f --- /dev/null +++ b/var/spack/repos/builtin/packages/xedit/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xedit(Package): + """Xedit is a simple text editor for X.""" + + homepage = "https://cgit.freedesktop.org/xorg/app/xedit" + url = "https://www.x.org/archive/individual/app/xedit-1.2.2.tar.gz" + + version('1.2.2', '9fb9d6f63b574e5a4937384fbe6579c1') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt@1.0:') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xerces-c/package.py b/var/spack/repos/builtin/packages/xerces-c/package.py index d0c2d3d497..9f3ad8a4dc 100644 --- a/var/spack/repos/builtin/packages/xerces-c/package.py +++ b/var/spack/repos/builtin/packages/xerces-c/package.py @@ -26,9 +26,9 @@ from spack import * class XercesC(Package): - """ Xerces-C++ is a validating XML parser written in a portable subset of C++. - Xerces-C++ makes it easy to give your application the ability to read and - write XML data. A shared library is provided for parsing, generating, + """Xerces-C++ is a validating XML parser written in a portable subset of + C++. Xerces-C++ makes it easy to give your application the ability to read + and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs. """ diff --git a/var/spack/repos/builtin/packages/xev/package.py b/var/spack/repos/builtin/packages/xev/package.py new file mode 100644 index 0000000000..5727d4e428 --- /dev/null +++ b/var/spack/repos/builtin/packages/xev/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Xev(Package): + """xev creates a window and then asks the X server to send it X11 events + whenever anything happens to the window (such as it being moved, + resized, typed in, clicked in, etc.). You can also attach it to an + existing window. It is useful for seeing what causes events to occur + and to display the information that they contain; it is essentially a + debugging and development tool, and should not be needed in normal + usage.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xev" + url = "https://www.x.org/archive/individual/app/xev-1.2.2.tar.gz" + + version('1.2.2', 'fdb374f77cdad8e104b989a0148c4c1f') + + depends_on('libxrandr@1.2:') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xextproto/package.py b/var/spack/repos/builtin/packages/xextproto/package.py new file mode 100644 index 0000000000..97e65ff17b --- /dev/null +++ b/var/spack/repos/builtin/packages/xextproto/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 Xextproto(Package): + """X Protocol Extensions.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xextproto" + url = "https://www.x.org/archive/individual/proto/xextproto-7.3.0.tar.gz" + + version('7.3.0', '37b700baa8c8ea7964702d948dd13821') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xeyes/package.py b/var/spack/repos/builtin/packages/xeyes/package.py new file mode 100644 index 0000000000..cfea92fda3 --- /dev/null +++ b/var/spack/repos/builtin/packages/xeyes/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xeyes(Package): + """xeyes - a follow the mouse X demo, using the X SHAPE extension""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xeyes" + url = "https://www.x.org/archive/individual/app/xeyes-1.1.1.tar.gz" + + version('1.1.1', '2c0522bce5c61bbe784d2b3491998d31') + + depends_on('libx11') + depends_on('libxt') + depends_on('libxext') + depends_on('libxmu') + depends_on('libxrender@0.4:') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xf86bigfontproto/package.py b/var/spack/repos/builtin/packages/xf86bigfontproto/package.py new file mode 100644 index 0000000000..6c1dc8f37d --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86bigfontproto/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 Xf86bigfontproto(Package): + """X.org XF86BigFontProto protocol headers.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86bigfontproto" + url = "https://www.x.org/archive/individual/proto/xf86bigfontproto-1.2.0.tar.gz" + + version('1.2.0', '91b0733ff4cbe55808d96073258aa3d1') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xf86dga/package.py b/var/spack/repos/builtin/packages/xf86dga/package.py new file mode 100644 index 0000000000..8add6fbca7 --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86dga/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 Xf86dga(Package): + """dga is a simple test client for the XFree86-DGA extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xf86dga" + url = "https://www.x.org/archive/individual/app/xf86dga-1.0.3.tar.gz" + + version('1.0.3', '3b87bb916c9df68cf5e4e969307b25b5') + + depends_on('libx11') + depends_on('libxxf86dga@1.1:') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xf86dgaproto/package.py b/var/spack/repos/builtin/packages/xf86dgaproto/package.py new file mode 100644 index 0000000000..05b64c9534 --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86dgaproto/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 Xf86dgaproto(Package): + """X.org XF86DGAProto protocol headers.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86dgaproto" + url = "https://www.x.org/archive/individual/proto/xf86dgaproto-2.1.tar.gz" + + version('2.1', '1fe79dc07857ad3e1fb8b8f2bdd70d1b') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xf86driproto/package.py b/var/spack/repos/builtin/packages/xf86driproto/package.py new file mode 100644 index 0000000000..655d1bc60b --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86driproto/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 Xf86driproto(Package): + """XFree86 Direct Rendering Infrastructure Extension. + + This extension defines a protocol to allow user applications to access + the video hardware without requiring data to be passed through the X + server.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xf86driproto" + url = "https://www.x.org/archive/individual/proto/xf86driproto-2.1.1.tar.gz" + + version('2.1.1', '3ba16a48d8d9f9f746f9bd281ba8fb3f') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xf86miscproto/package.py b/var/spack/repos/builtin/packages/xf86miscproto/package.py new file mode 100644 index 0000000000..4b7e279077 --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86miscproto/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 Xf86miscproto(Package): + """This package includes the protocol definitions of the "XFree86-Misc" + extension to the X11 protocol. The "XFree86-Misc" extension is + supported by the XFree86 X server and versions of the Xorg X server + prior to Xorg 1.6.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xf86miscproto" + url = "https://www.x.org/archive/individual/proto/xf86miscproto-0.9.3.tar.gz" + + version('0.9.3', 'c6432f04f84929c94fa05b3a466c489d') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xf86rushproto/package.py b/var/spack/repos/builtin/packages/xf86rushproto/package.py new file mode 100644 index 0000000000..bdd192970b --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86rushproto/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 Xf86rushproto(Package): + """X.org XF86RushProto protocol headers.""" + + homepage = "https://cgit.freedesktop.org/xorg/proto/xf86rushproto" + url = "https://www.x.org/archive/individual/proto/xf86rushproto-1.1.2.tar.gz" + + version('1.1.2', '6a6389473332ace01146cccfef228576') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py new file mode 100644 index 0000000000..ece389f9e6 --- /dev/null +++ b/var/spack/repos/builtin/packages/xf86vidmodeproto/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 Xf86vidmodeproto(Package): + """XFree86 Video Mode Extension. + + This extension defines a protocol for dynamically configuring modelines + and gamma.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto" + url = "https://www.x.org/archive/individual/proto/xf86vidmodeproto-2.3.1.tar.gz" + + version('2.3.1', '99016d0fe355bae0bb23ce00fb4d4a2c') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xfd/package.py b/var/spack/repos/builtin/packages/xfd/package.py new file mode 100644 index 0000000000..669cd83bf5 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfd/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xfd(Package): + """xfd - display all the characters in a font using either the + X11 core protocol or libXft2.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfd" + url = "https://www.x.org/archive/individual/app/xfd-1.1.2.tar.gz" + + version('1.1.2', '12fe8f7c3e71352bf22124ad56d4ceaf') + + depends_on('libxaw') + depends_on('fontconfig') + depends_on('libxft') + depends_on('libxrender') + depends_on('libxmu') + depends_on('libxt') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xfindproxy/package.py b/var/spack/repos/builtin/packages/xfindproxy/package.py new file mode 100644 index 0000000000..e4b83433c4 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfindproxy/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Xfindproxy(Package): + """xfindproxy is used to locate available X11 proxy services. + + It utilizes the Proxy Management Protocol to communicate with a proxy + manager. The proxy manager keeps track of all available proxy + services, starts new proxies when necessary, and makes sure that + proxies are shared whenever possible.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfindproxy" + url = "https://www.x.org/archive/individual/app/xfindproxy-1.0.4.tar.gz" + + version('1.0.4', 'd0a7b53ae5827b342bccd3ebc7ec672f') + + depends_on('libice') + depends_on('libxt') + + depends_on('xproto', type='build') + depends_on('xproxymanagementprotocol', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xfontsel/package.py b/var/spack/repos/builtin/packages/xfontsel/package.py new file mode 100644 index 0000000000..772ff8d570 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfontsel/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xfontsel(Package): + """xfontsel application provides a simple way to display the X11 core + protocol fonts known to your X server, examine samples of each, and + retrieve the X Logical Font Description ("XLFD") full name for a font.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfontsel" + url = "https://www.x.org/archive/individual/app/xfontsel-1.0.5.tar.gz" + + version('1.0.5', '72a35e7fa786eb2b0194d75eeb4a02e3') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xfs/package.py b/var/spack/repos/builtin/packages/xfs/package.py new file mode 100644 index 0000000000..72429dee90 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfs/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xfs(Package): + """X Font Server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfs" + url = "https://www.x.org/archive/individual/app/xfs-1.1.4.tar.gz" + + version('1.1.4', '0818a2e0317e0f0a1e8a15ca811827e2') + + depends_on('libxfont@1.4.5:') + depends_on('font-util') + + depends_on('xproto@7.0.17:', type='build') + depends_on('xtrans', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xfsinfo/package.py b/var/spack/repos/builtin/packages/xfsinfo/package.py new file mode 100644 index 0000000000..b31ad1c1e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfsinfo/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xfsinfo(Package): + """xfsinfo is a utility for displaying information about an X font + server. It is used to examine the capabilities of a server, the + predefined values for various parameters used in communicating between + clients and the server, and the font catalogues and alternate servers + that are available.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfsinfo" + url = "https://www.x.org/archive/individual/app/xfsinfo-1.0.5.tar.gz" + + version('1.0.5', '36b64a3f37b87c759c5d17634e129fb9') + + depends_on('libfs') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xfwp/package.py b/var/spack/repos/builtin/packages/xfwp/package.py new file mode 100644 index 0000000000..5f073a8806 --- /dev/null +++ b/var/spack/repos/builtin/packages/xfwp/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xfwp(Package): + """xfwp proxies X11 protocol connections, such as through a firewall.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xfwp" + url = "https://www.x.org/archive/individual/app/xfwp-1.0.3.tar.gz" + + version('1.0.3', 'e23cc01894ae57e5959ca6a56d0f4f94') + + depends_on('libice') + + depends_on('xproto', type='build') + depends_on('xproxymanagementprotocol', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + # FIXME: fails with the error message: + # io.c:1039:7: error: implicit declaration of function 'swab' + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xgamma/package.py b/var/spack/repos/builtin/packages/xgamma/package.py new file mode 100644 index 0000000000..b8abec293a --- /dev/null +++ b/var/spack/repos/builtin/packages/xgamma/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xgamma(Package): + """xgamma allows X users to query and alter the gamma correction of a + monitor via the X video mode extension (XFree86-VidModeExtension).""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xgamma" + url = "https://www.x.org/archive/individual/app/xgamma-1.0.6.tar.gz" + + version('1.0.6', 'ac4f91bf1d9aa0433152ba6196288cc6') + + depends_on('libx11') + depends_on('libxxf86vm') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xgc/package.py b/var/spack/repos/builtin/packages/xgc/package.py new file mode 100644 index 0000000000..608e6e0360 --- /dev/null +++ b/var/spack/repos/builtin/packages/xgc/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xgc(Package): + """xgc is an X11 graphics demo that shows various features of the X11 + core protocol graphics primitives.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xgc" + url = "https://www.x.org/archive/individual/app/xgc-1.0.5.tar.gz" + + version('1.0.5', '605557a9c138f6dc848c87a21bc7c7fc') + + depends_on('libxaw') + depends_on('libxt') + + depends_on('flex', type='build') + depends_on('bison', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xhost/package.py b/var/spack/repos/builtin/packages/xhost/package.py new file mode 100644 index 0000000000..f01c481ee7 --- /dev/null +++ b/var/spack/repos/builtin/packages/xhost/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xhost(Package): + """xhost is used to manage the list of host names or user names + allowed to make connections to the X server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xhost" + url = "https://www.x.org/archive/individual/app/xhost-1.0.7.tar.gz" + + version('1.0.7', 'de34b4ba5194634dbeb29a1f008f495a') + + depends_on('libx11') + depends_on('libxmu') + depends_on('libxau') + + depends_on('xproto@7.0.22:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xineramaproto/package.py b/var/spack/repos/builtin/packages/xineramaproto/package.py new file mode 100644 index 0000000000..baededbb25 --- /dev/null +++ b/var/spack/repos/builtin/packages/xineramaproto/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 Xineramaproto(Package): + """X Xinerama Extension. + + This is an X extension that allows multiple physical screens controlled + by a single X server to appear as a single screen.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/xineramaproto" + url = "https://www.x.org/archive/individual/proto/xineramaproto-1.2.1.tar.gz" + + version('1.2.1', 'e0e148b11739e144a546b8a051b17dde') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xinit/package.py b/var/spack/repos/builtin/packages/xinit/package.py new file mode 100644 index 0000000000..9f3bc09229 --- /dev/null +++ b/var/spack/repos/builtin/packages/xinit/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xinit(Package): + """The xinit program is used to start the X Window System server and a + first client program on systems that are not using a display manager + such as xdm.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xinit" + url = "https://www.x.org/archive/individual/app/xinit-1.3.4.tar.gz" + + version('1.3.4', '91c5697345016ec7841f5e5fccbe7a4c') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xinput/package.py b/var/spack/repos/builtin/packages/xinput/package.py new file mode 100644 index 0000000000..3c4fb35503 --- /dev/null +++ b/var/spack/repos/builtin/packages/xinput/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xinput(Package): + """xinput is a utility to configure and test XInput devices.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xinput" + url = "https://www.x.org/archive/individual/app/xinput-1.6.2.tar.gz" + + version('1.6.2', '6684f6015298d22936438173be3b7ef5') + + depends_on('libx11') + depends_on('libxext') + depends_on('libxi@1.5.99.1:') + depends_on('libxrandr') + depends_on('libxinerama') + + depends_on('inputproto@2.1.99.1:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkbcomp/package.py b/var/spack/repos/builtin/packages/xkbcomp/package.py new file mode 100644 index 0000000000..e6e8875fa7 --- /dev/null +++ b/var/spack/repos/builtin/packages/xkbcomp/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Xkbcomp(Package): + """The X Keyboard (XKB) Extension essentially replaces the core protocol + definition of a keyboard. The extension makes it possible to specify + clearly and explicitly most aspects of keyboard behaviour on a per-key + basis, and to track more closely the logical and physical state of a + keyboard. It also includes a number of keyboard controls designed to + make keyboards more accessible to people with physical impairments.""" + + homepage = "https://www.x.org/wiki/XKB/" + url = "https://www.x.org/archive/individual/app/xkbcomp-1.3.1.tar.gz" + + version('1.3.1', '9e8ca110ed40d4703f8f73d99bc81576') + + depends_on('libx11') + depends_on('libxkbfile') + + depends_on('xproto@7.0.17:', type='build') + depends_on('bison', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkbdata/package.py b/var/spack/repos/builtin/packages/xkbdata/package.py new file mode 100644 index 0000000000..fc84631e36 --- /dev/null +++ b/var/spack/repos/builtin/packages/xkbdata/package.py @@ -0,0 +1,43 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xkbdata(Package): + """The XKB data files for the various keyboard models, layouts, + and locales.""" + + homepage = "https://www.x.org/wiki/XKB/" + url = "https://www.x.org/archive/individual/data/xkbdata-1.0.1.tar.gz" + + version('1.0.1', 'a7e0fbc9cc84c621243c777694388064') + + depends_on('xkbcomp', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkbevd/package.py b/var/spack/repos/builtin/packages/xkbevd/package.py new file mode 100644 index 0000000000..462d989db2 --- /dev/null +++ b/var/spack/repos/builtin/packages/xkbevd/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xkbevd(Package): + """XKB event daemon demo.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xkbevd" + url = "https://www.x.org/archive/individual/app/xkbevd-1.1.4.tar.gz" + + version('1.1.4', '0e9e05761551b1e58bd541231f90ae87') + + depends_on('libxkbfile') + depends_on('libx11') + + depends_on('bison', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkbprint/package.py b/var/spack/repos/builtin/packages/xkbprint/package.py new file mode 100644 index 0000000000..dc92ac4126 --- /dev/null +++ b/var/spack/repos/builtin/packages/xkbprint/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xkbprint(Package): + """xkbprint generates a printable or encapsulated PostScript description + of an XKB keyboard description.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xkbprint" + url = "https://www.x.org/archive/individual/app/xkbprint-1.0.4.tar.gz" + + version('1.0.4', '4dd9d4fdbdc08f70dc402da149e4d5d8') + + depends_on('libxkbfile') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkbutils/package.py b/var/spack/repos/builtin/packages/xkbutils/package.py new file mode 100644 index 0000000000..a4c6c97578 --- /dev/null +++ b/var/spack/repos/builtin/packages/xkbutils/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xkbutils(Package): + """xkbutils is a collection of small utilities utilizing the XKeyboard + (XKB) extension to the X11 protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xkbutils" + url = "https://www.x.org/archive/individual/app/xkbutils-1.0.4.tar.gz" + + version('1.0.4', '6b898346b84e07c2f13b097193ca0413') + + depends_on('libxaw') + depends_on('libxt') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('inputproto', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkeyboard-config/package.py b/var/spack/repos/builtin/packages/xkeyboard-config/package.py new file mode 100644 index 0000000000..3ad7ea197c --- /dev/null +++ b/var/spack/repos/builtin/packages/xkeyboard-config/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 * + + +class XkeyboardConfig(Package): + """This project provides a consistent, well-structured, frequently + released, open source database of keyboard configuration data. The + project is targeted to XKB-based systems.""" + + homepage = "https://www.freedesktop.org/wiki/Software/XKeyboardConfig/" + url = "https://www.x.org/archive/individual/data/xkeyboard-config/xkeyboard-config-2.18.tar.gz" + + version('2.18', '96c43e04dbfbb1e6e6abd4678292062c') + + depends_on('libx11@1.4.3:') + + depends_on('libxslt', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('intltool@0.30:', type='build') + depends_on('xproto@7.0.20:', type='build') + + # TODO: missing dependencies + # xgettext + # msgmerge + # msgfmt + # gmsgfmt + # perl@5.8.1: + # perl XML::Parser + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xkill/package.py b/var/spack/repos/builtin/packages/xkill/package.py new file mode 100644 index 0000000000..061d756eec --- /dev/null +++ b/var/spack/repos/builtin/packages/xkill/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xkill(Package): + """xkill is a utility for forcing the X server to close connections to + clients. This program is very dangerous, but is useful for aborting + programs that have displayed undesired windows on a user's screen.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xkill" + url = "https://www.x.org/archive/individual/app/xkill-1.0.4.tar.gz" + + version('1.0.4', 'b04c15bfd0b619f1e4ff3e44607e738d') + + depends_on('libx11') + depends_on('libxmu') + + depends_on('xproto@7.0.22:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xload/package.py b/var/spack/repos/builtin/packages/xload/package.py new file mode 100644 index 0000000000..2fc91043b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/xload/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xload(Package): + """xload displays a periodically updating histogram of the + system load average.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xload" + url = "https://www.x.org/archive/individual/app/xload-1.1.2.tar.gz" + + version('1.1.2', '0af9a68193849b16f8168f096682efb4') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xlogo/package.py b/var/spack/repos/builtin/packages/xlogo/package.py new file mode 100644 index 0000000000..77f5bd3639 --- /dev/null +++ b/var/spack/repos/builtin/packages/xlogo/package.py @@ -0,0 +1,53 @@ +############################################################################## +# 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 Xlogo(Package): + """The xlogo program simply displays the X Window System logo.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xlogo" + url = "https://www.x.org/archive/individual/app/xlogo-1.0.4.tar.gz" + + version('1.0.4', '4c4f82c196a55a90800a77906f4353fb') + + depends_on('libsm') + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt@1.0:') + depends_on('libxext') + depends_on('libx11') + depends_on('libxft') + depends_on('libxrender') + depends_on('libxt') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xlsatoms/package.py b/var/spack/repos/builtin/packages/xlsatoms/package.py new file mode 100644 index 0000000000..8722b57c8c --- /dev/null +++ b/var/spack/repos/builtin/packages/xlsatoms/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 Xlsatoms(Package): + """xlsatoms lists the interned atoms defined on an X11 server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xlsatoms" + url = "https://www.x.org/archive/individual/app/xlsatoms-1.1.2.tar.gz" + + version('1.1.2', '1f32e2b8c2135b5867291517848cb396') + + depends_on('libxcb', when='@1.1:') + depends_on('libx11', when='@:1.0') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xlsclients/package.py b/var/spack/repos/builtin/packages/xlsclients/package.py new file mode 100644 index 0000000000..3714de2706 --- /dev/null +++ b/var/spack/repos/builtin/packages/xlsclients/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xlsclients(Package): + """xlsclients is a utility for listing information about the client + applications running on a X11 server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xlsclients" + url = "https://www.x.org/archive/individual/app/xlsclients-1.1.3.tar.gz" + + version('1.1.3', '093c748d98b61dbddcaf3de1740fbd26') + + depends_on('libxcb@1.6:', when='@1.1:') + depends_on('libx11', when='@:1.0') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xlsfonts/package.py b/var/spack/repos/builtin/packages/xlsfonts/package.py new file mode 100644 index 0000000000..011ca5aa0e --- /dev/null +++ b/var/spack/repos/builtin/packages/xlsfonts/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xlsfonts(Package): + """xlsfonts lists fonts available from an X server via the X11 + core protocol.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xlsfonts" + url = "https://www.x.org/archive/individual/app/xlsfonts-1.0.5.tar.gz" + + version('1.0.5', '074cc44e5238c6a501523ef06caba517') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmag/package.py b/var/spack/repos/builtin/packages/xmag/package.py new file mode 100644 index 0000000000..27843299c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/xmag/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xmag(Package): + """xmag displays a magnified snapshot of a portion of an X11 screen.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xmag" + url = "https://www.x.org/archive/individual/app/xmag-1.0.6.tar.gz" + + version('1.0.6', '2827ae4b293535623b9f7b659c506dcd') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xman/package.py b/var/spack/repos/builtin/packages/xman/package.py new file mode 100644 index 0000000000..629a457edc --- /dev/null +++ b/var/spack/repos/builtin/packages/xman/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xman(Package): + """xman is a graphical manual page browser using the Athena Widgets (Xaw) + toolkit.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xman" + url = "https://www.x.org/archive/individual/app/xman-1.1.4.tar.gz" + + version('1.1.4', 'f4238c79ee7227ea193898fc159f31e5') + + depends_on('libxaw') + depends_on('libxt') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmessage/package.py b/var/spack/repos/builtin/packages/xmessage/package.py new file mode 100644 index 0000000000..9b2ee5102e --- /dev/null +++ b/var/spack/repos/builtin/packages/xmessage/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xmessage(Package): + """xmessage displays a message or query in a window. The user can click + on an "okay" button to dismiss it or can select one of several buttons + to answer a question. xmessage can also exit after a specified time.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xmessage" + url = "https://www.x.org/archive/individual/app/xmessage-1.0.4.tar.gz" + + version('1.0.4', '69df5761fbec14c782948065a6f36028') + + depends_on('libxaw') + depends_on('libxt') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmh/package.py b/var/spack/repos/builtin/packages/xmh/package.py new file mode 100644 index 0000000000..cdde63e149 --- /dev/null +++ b/var/spack/repos/builtin/packages/xmh/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 Xmh(Package): + """The xmh program provides a graphical user interface to the + MH Message Handling System. To actually do things with your + mail, it makes calls to the MH package.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xmh" + url = "https://www.x.org/archive/individual/app/xmh-1.0.3.tar.gz" + + version('1.0.3', '7547c5a5ab7309a1b10e8ecf48e60105') + + depends_on('libxaw') + depends_on('libxmu') + depends_on('libxt') + depends_on('libx11') + + depends_on('xbitmaps@1.1.0:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmlto/package.py b/var/spack/repos/builtin/packages/xmlto/package.py new file mode 100644 index 0000000000..0dbc81de32 --- /dev/null +++ b/var/spack/repos/builtin/packages/xmlto/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 Xmlto(Package): + """Utility xmlto is a simple shell script for converting XML files to various + formats. It serves as easy to use command line frontend to make fine output + without remembering many long options and searching for the syntax of the + backends.""" + + homepage = "http://cyberelk.net/tim/software/xmlto/" + url = "https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.28.tar.gz" + + version('0.0.28', 'a1fefad9d83499a15576768f60f847c6') + + # FIXME: missing a lot of dependencies + depends_on('libxslt') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmodmap/package.py b/var/spack/repos/builtin/packages/xmodmap/package.py new file mode 100644 index 0000000000..abe40dbb43 --- /dev/null +++ b/var/spack/repos/builtin/packages/xmodmap/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xmodmap(Package): + """The xmodmap program is used to edit and display the keyboard modifier + map and keymap table that are used by client applications to convert + event keycodes into keysyms. It is usually run from the user's + session startup script to configure the keyboard according to personal + tastes.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xmodmap" + url = "https://www.x.org/archive/individual/app/xmodmap-1.0.9.tar.gz" + + version('1.0.9', '771cf86bcdc3589e7add2e761f675099') + + depends_on('libx11') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xmore/package.py b/var/spack/repos/builtin/packages/xmore/package.py new file mode 100644 index 0000000000..8f8ccd7138 --- /dev/null +++ b/var/spack/repos/builtin/packages/xmore/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 Xmore(Package): + """xmore - plain text display program for the X Window System.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xmore" + url = "https://www.x.org/archive/individual/app/xmore-1.0.2.tar.gz" + + version('1.0.2', '40b1850494f8af0939a1989c399efa11') + + depends_on('libxaw') + depends_on('libxt') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xorg-cf-files/package.py b/var/spack/repos/builtin/packages/xorg-cf-files/package.py new file mode 100644 index 0000000000..c7b22d904f --- /dev/null +++ b/var/spack/repos/builtin/packages/xorg-cf-files/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 XorgCfFiles(Package): + """The xorg-cf-files package contains the data files for the imake utility, + defining the known settings for a wide variety of platforms (many of which + have not been verified or tested in over a decade), and for many of the + libraries formerly delivered in the X.Org monolithic releases.""" + + homepage = "http://cgit.freedesktop.org/xorg/util/cf" + url = "https://www.x.org/archive/individual/util/xorg-cf-files-1.0.6.tar.gz" + + version('1.0.6', 'c0ce98377c70d95fb48e1bd856109bf8') + + depends_on('pkg-config@0.9.0:', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xorg-docs/package.py b/var/spack/repos/builtin/packages/xorg-docs/package.py new file mode 100644 index 0000000000..5c320bba7b --- /dev/null +++ b/var/spack/repos/builtin/packages/xorg-docs/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 XorgDocs(Package): + """This package provides miscellaneous documentation for the X Window + System that doesn't better fit into other packages. + + The preferred documentation format for these documents is DocBook XML.""" + + homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-docs" + url = "https://www.x.org/archive/individual/doc/xorg-docs-1.7.1.tar.gz" + + version('1.7.1', 'ca689ccbf8ebc362afbe5cc5792a4abd') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + depends_on('xorg-sgml-doctools@1.8:', type='build') + depends_on('xmlto', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xorg-gtest/package.py b/var/spack/repos/builtin/packages/xorg-gtest/package.py new file mode 100644 index 0000000000..6978d610d3 --- /dev/null +++ b/var/spack/repos/builtin/packages/xorg-gtest/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 XorgGtest(Package): + """Provides a Google Test environment for starting and stopping + a X server for testing purposes.""" + + homepage = "https://people.freedesktop.org/~cndougla/xorg-gtest/" + url = "https://www.x.org/archive/individual/test/xorg-gtest-0.7.1.tar.bz2" + + version('0.7.1', '31beb4d7d2b4eba7f9265fa0cb4c6428') + + depends_on('libx11') + depends_on('libxi') + depends_on('xorg-server') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + # TODO: may be missing evemu package? + # TODO: what is the difference between xorg-gtest and googletest packages? + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xorg-server/package.py b/var/spack/repos/builtin/packages/xorg-server/package.py new file mode 100644 index 0000000000..9d9b49f9c2 --- /dev/null +++ b/var/spack/repos/builtin/packages/xorg-server/package.py @@ -0,0 +1,108 @@ +############################################################################## +# 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 XorgServer(Package): + """X.Org Server is the free and open source implementation of the display + server for the X Window System stewarded by the X.Org Foundation.""" + + homepage = "http://cgit.freedesktop.org/xorg/xserver" + url = "https://www.x.org/archive/individual/xserver/xorg-server-1.18.99.901.tar.gz" + + version('1.18.99.901', 'd0242b95991c221c4fcc0d283aba7a42') + + depends_on('pixman@0.27.2:') + depends_on('font-util') + depends_on('libxshmfence@1.1:') + depends_on('libdrm@2.3.0:') + depends_on('libx11') + # depends_on('gl@9.2.0:') + + depends_on('dri2proto@2.8:', type='build') + depends_on('dri3proto@1.0:', type='build') + depends_on('glproto@1.4.17:', type='build') + + depends_on('flex', type='build') + depends_on('bison', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + # TODO: add missing dependencies + # $LIBSELINUX $REQUIRED_MODULES $REQUIRED_LIBS + # $LIBPCIACCESS $DGAPROTO $XORG_MODULES epoxy xdmcp xau xfixes x11-xcb + # xcb-aux xcb-image xcb-ewmh xcb-icccm $WINDOWSWMPROTO windowsdriproto + # khronos-opengl-registry + # $APPLEWMPROTO $LIBAPPLEWM xfixes $LIBDMX $LIBXEXT $LIBDMX xmu $LIBXEXT + # $LIBDMX $LIBXI $LIBXEXT $LIBXTST $LIBXEXT xres $LIBXEXT $LIBXEXT + # $XEPHYR_REQUIRED_LIBS + + # VIDEOPROTO="videoproto" + # COMPOSITEPROTO="compositeproto >= 0.4" + # RECORDPROTO="recordproto >= 1.13.99.1" + # SCRNSAVERPROTO="scrnsaverproto >= 1.1" + # RESOURCEPROTO="resourceproto >= 1.2.0" + # DRIPROTO="xf86driproto >= 2.1.0" + # XINERAMAPROTO="xineramaproto" + # BIGFONTPROTO="xf86bigfontproto >= 1.2.0" + # DGAPROTO="xf86dgaproto >= 2.0.99.1" + # DMXPROTO="dmxproto >= 2.2.99.1" + # VIDMODEPROTO="xf86vidmodeproto >= 2.2.99.1" + # WINDOWSWMPROTO="windowswmproto" + # APPLEWMPROTO="applewmproto >= 1.4" + + # XPROTO="xproto >= 7.0.28" + # RANDRPROTO="randrproto >= 1.5.0" + # RENDERPROTO="renderproto >= 0.11" + # XEXTPROTO="xextproto >= 7.2.99.901" + # INPUTPROTO="inputproto >= 2.3" + # KBPROTO="kbproto >= 1.0.3" + # FONTSPROTO="fontsproto >= 2.1.3" + # FIXESPROTO="fixesproto >= 5.0" + # DAMAGEPROTO="damageproto >= 1.1" + # XCMISCPROTO="xcmiscproto >= 1.2.0" + # BIGREQSPROTO="bigreqsproto >= 1.1.0" + # XTRANS="xtrans >= 1.3.5" + # PRESENTPROTO="presentproto >= 1.0" + + # LIBAPPLEWM="applewm >= 1.4" + # LIBDMX="dmx >= 1.0.99.1" + # LIBDRI="dri >= 7.8.0" + # LIBEGL="egl" + # LIBGBM="gbm >= 10.2.0" + # LIBXEXT="xext >= 1.0.99.4" + # LIBXFONT="xfont2 >= 2.0.0" + # LIBXI="xi >= 1.2.99.1" + # LIBXTST="xtst >= 1.0.99.2" + # LIBPCIACCESS="pciaccess >= 0.12.901" + # LIBUDEV="libudev >= 143" + # LIBSELINUX="libselinux >= 2.0.86" + # LIBDBUS="dbus-1 >= 1.0" + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py new file mode 100644 index 0000000000..c2e5797efa --- /dev/null +++ b/var/spack/repos/builtin/packages/xorg-sgml-doctools/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 XorgSgmlDoctools(Package): + """This package provides a common set of SGML entities and XML/CSS style + sheets used in building/formatting the documentation provided in other + X.Org packages.""" + + homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools" + url = "https://www.x.org/archive/individual/doc/xorg-sgml-doctools-1.11.tar.gz" + + version('1.11', '51cf4c6b476e2b98a068fea6975b9b21') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xphelloworld/package.py b/var/spack/repos/builtin/packages/xphelloworld/package.py new file mode 100644 index 0000000000..6d445d69be --- /dev/null +++ b/var/spack/repos/builtin/packages/xphelloworld/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 Xphelloworld(Package): + """Xprint sample applications.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xphelloworld" + url = "https://www.x.org/archive/individual/app/xphelloworld-1.0.1.tar.gz" + + version('1.0.1', 'b1851337a8e850d5c8e5a5ca5e3033da') + + depends_on('libx11') + depends_on('libxaw') + depends_on('libxprintapputil') + depends_on('libxprintutil') + depends_on('libxp') + depends_on('libxt') + + # FIXME: xphelloworld requires libxaw8, but libxaw only provides 6 and 7. + # It looks like xprint support was removed from libxaw at some point. + # But even the oldest version of libxaw doesn't build libxaw8. + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xplsprinters/package.py b/var/spack/repos/builtin/packages/xplsprinters/package.py new file mode 100644 index 0000000000..55de272a33 --- /dev/null +++ b/var/spack/repos/builtin/packages/xplsprinters/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xplsprinters(Package): + """List Xprint printers.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xplsprinters" + url = "https://www.x.org/archive/individual/app/xplsprinters-1.0.1.tar.gz" + + version('1.0.1', '8e5698b5a2a2a0fc78caeb23909dd284') + + depends_on('libxp') + depends_on('libxprintutil') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xpr/package.py b/var/spack/repos/builtin/packages/xpr/package.py new file mode 100644 index 0000000000..669693e084 --- /dev/null +++ b/var/spack/repos/builtin/packages/xpr/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xpr(Package): + """xpr takes as input a window dump file produced by xwd + and formats it for output on various types of printers.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xpr" + url = "https://www.x.org/archive/individual/app/xpr-1.0.4.tar.gz" + + version('1.0.4', '6adfa60f458474c0c226454c233fc32f') + + depends_on('libxmu') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py new file mode 100644 index 0000000000..4578c3c191 --- /dev/null +++ b/var/spack/repos/builtin/packages/xprehashprinterlist/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 Xprehashprinterlist(Package): + """Rehash list of Xprint printers.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xprehashprinterlist" + url = "https://www.x.org/archive/individual/app/xprehashprinterlist-1.0.1.tar.gz" + + version('1.0.1', '395578955634e4b2daa5b78f6fa9222c') + + depends_on('libxp') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xprop/package.py b/var/spack/repos/builtin/packages/xprop/package.py new file mode 100644 index 0000000000..0e1a591bcb --- /dev/null +++ b/var/spack/repos/builtin/packages/xprop/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xprop(Package): + """xprop is a command line tool to display and/or set window and font + properties of an X server.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xprop" + url = "https://www.x.org/archive/individual/app/xprop-1.2.2.tar.gz" + + version('1.2.2', 'db03a6bcf7b0d0c2e691ea3083277cbc') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xproto/package.py b/var/spack/repos/builtin/packages/xproto/package.py index dbceaa1575..67074a6993 100644 --- a/var/spack/repos/builtin/packages/xproto/package.py +++ b/var/spack/repos/builtin/packages/xproto/package.py @@ -26,17 +26,24 @@ from spack import * class Xproto(Package): - """The Xorg protocol headers provide the header files required to - build the system, and to allow other applications to build against - the installed X Window system.""" - homepage = "http://www.x.org/" - url = "https://www.x.org/archive//individual/proto/xproto-7.0.29.tar.gz" + """X Window System Core Protocol. + + This package provides the headers and specification documents defining + the X Window System Core Protocol, Version 11. + + It also includes a number of headers that aren't purely protocol related, + but are depended upon by many other X Window System packages to provide + common definitions and porting layer.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/x11proto" + url = "https://www.x.org/archive/individual/proto/xproto-7.0.29.tar.gz" version('7.0.29', '16a78dd2c5ad73011105c96235f6a0af') - depends_on("xorg-util-macros") + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') def install(self, spec, prefix): - configure('--prefix=%s' % prefix) - make() - make("install") + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py new file mode 100644 index 0000000000..e5bfcb8cbc --- /dev/null +++ b/var/spack/repos/builtin/packages/xproxymanagementprotocol/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 Xproxymanagementprotocol(Package): + """The Proxy Management Protocol is an ICE based protocol that provides a + way for application servers to easily locate proxy services available to + them.""" + + homepage = "http://cgit.freedesktop.org/xorg/proto/pmproto" + url = "https://www.x.org/archive/individual/proto/xproxymanagementprotocol-1.0.3.tar.gz" + + version('1.0.3', 'c4ab05a6174b4e9b6ae5b7cfbb6d718e') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xrandr/package.py b/var/spack/repos/builtin/packages/xrandr/package.py new file mode 100644 index 0000000000..35e21c6047 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrandr/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xrandr(Package): + """xrandr - primitive command line interface to X11 Resize, Rotate, and + Reflect (RandR) extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xrandr" + url = "https://www.x.org/archive/individual/app/xrandr-1.5.0.tar.gz" + + version('1.5.0', 'fe9cf76033fe5d973131eac67b6a3118') + + depends_on('libxrandr@1.5:') + depends_on('libxrender') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xrdb/package.py b/var/spack/repos/builtin/packages/xrdb/package.py new file mode 100644 index 0000000000..93847a19a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrdb/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xrdb(Package): + """xrdb - X server resource database utility.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xrdb" + url = "https://www.x.org/archive/individual/app/xrdb-1.1.0.tar.gz" + + version('1.1.0', 'd48983e561ef8b4b2e245feb584c11ce') + + depends_on('libxmu') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xrefresh/package.py b/var/spack/repos/builtin/packages/xrefresh/package.py new file mode 100644 index 0000000000..f99810beea --- /dev/null +++ b/var/spack/repos/builtin/packages/xrefresh/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 Xrefresh(Package): + """xrefresh - refresh all or part of an X screen.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xrefresh" + url = "https://www.x.org/archive/individual/app/xrefresh-1.0.5.tar.gz" + + version('1.0.5', 'e41c5148d894406484af59887257c465') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py new file mode 100644 index 0000000000..db076dbc56 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrootd/package.py @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +from spack import * + + +class Xrootd(Package): + """The XROOTD project aims at giving high performance, scalable fault + tolerant access to data repositories of many kinds.""" + homepage = "http://xrootd.org" + url = "http://xrootd.org/download/v4.3.0/xrootd-4.3.0.tar.gz" + + version('4.3.0', '39c2fab9f632f35e12ff607ccaf9e16c') + + depends_on('cmake', type='build') + + def install(self, spec, prefix): + options = [] + options.extend(std_cmake_args) + + build_directory = join_path(self.stage.path, 'spack-build') + source_directory = self.stage.source_path + + if '+debug' in spec: + options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') + + with working_dir(build_directory, create=True): + cmake(source_directory, *options) + make() + make("install") diff --git a/var/spack/repos/builtin/packages/xrx/package.py b/var/spack/repos/builtin/packages/xrx/package.py new file mode 100644 index 0000000000..4457c2f164 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrx/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 * + + +class Xrx(Package): + """The remote execution (RX) service specifies a MIME format for invoking + applications remotely, for example via a World Wide Web browser. This + RX format specifies a syntax for listing network services required by + the application, for example an X display server. The requesting Web + browser must identify specific instances of the services in the request + to invoke the application.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xrx" + url = "https://www.x.org/archive/individual/app/xrx-1.0.4.tar.gz" + + version('1.0.4', 'dd4b8bf6eca5fc5be5df30c14050074c') + + depends_on('libx11') + depends_on('libxt') + depends_on('libxext') + depends_on('libxau') + depends_on('libice') + depends_on('libxaw') + + depends_on('xtrans', type='build') + depends_on('xproxymanagementprotocol', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xscope/package.py b/var/spack/repos/builtin/packages/xscope/package.py new file mode 100644 index 0000000000..cf33c9767e --- /dev/null +++ b/var/spack/repos/builtin/packages/xscope/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 Xscope(Package): + """XSCOPE -- a program to monitor X11/Client conversations.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xscope" + url = "https://www.x.org/archive/individual/app/xscope-1.4.1.tar.gz" + + version('1.4.1', 'c476fb73b354f4a5c388f3814052ce0d') + + depends_on('xproto@7.0.17:', type='build') + depends_on('xtrans', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xset/package.py b/var/spack/repos/builtin/packages/xset/package.py new file mode 100644 index 0000000000..462bea8cfe --- /dev/null +++ b/var/spack/repos/builtin/packages/xset/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xset(Package): + """User preference utility for X.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xset" + url = "https://www.x.org/archive/individual/app/xset-1.2.3.tar.gz" + + version('1.2.3', '1a76965ed0e8cb51d3fa04d458cb3d8f') + + depends_on('libxmu') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xsetmode/package.py b/var/spack/repos/builtin/packages/xsetmode/package.py new file mode 100644 index 0000000000..f05fd0f123 --- /dev/null +++ b/var/spack/repos/builtin/packages/xsetmode/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 Xsetmode(Package): + """Set the mode for an X Input device.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xsetmode" + url = "https://www.x.org/archive/individual/app/xsetmode-1.0.0.tar.gz" + + version('1.0.0', '0dc2a917138d0345c00e016ac720e085') + + depends_on('libxi') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py new file mode 100644 index 0000000000..e9bf2fc9fe --- /dev/null +++ b/var/spack/repos/builtin/packages/xsetpointer/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xsetpointer(Package): + """Set an X Input device as the main pointer.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xsetpointer" + url = "https://www.x.org/archive/individual/app/xsetpointer-1.0.1.tar.gz" + + version('1.0.1', 'bb206b6875f2428c2281e1165b6c7f88') + + depends_on('libxi') + depends_on('libx11') + + depends_on('inputproto@1.4:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xsetroot/package.py b/var/spack/repos/builtin/packages/xsetroot/package.py new file mode 100644 index 0000000000..3e62d41e9b --- /dev/null +++ b/var/spack/repos/builtin/packages/xsetroot/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xsetroot(Package): + """xsetroot - root window parameter setting utility for X.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xsetroot" + url = "https://www.x.org/archive/individual/app/xsetroot-1.1.1.tar.gz" + + version('1.1.1', '8c794914a2d0456317288c41451dbee3') + + depends_on('libxmu') + depends_on('libx11') + depends_on('libxcursor') + + depends_on('xbitmaps', type='build') + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xsm/package.py b/var/spack/repos/builtin/packages/xsm/package.py new file mode 100644 index 0000000000..9d9c896365 --- /dev/null +++ b/var/spack/repos/builtin/packages/xsm/package.py @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xsm(Package): + """X Session Manager.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xsm" + url = "https://www.x.org/archive/individual/app/xsm-1.0.3.tar.gz" + + version('1.0.3', '60a2e5987d8e49a568599ba8fe59c8db') + + depends_on('libx11') + depends_on('libxt@1.1.0:') + depends_on('libice') + depends_on('libsm') + depends_on('libxaw') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xstdcmap/package.py b/var/spack/repos/builtin/packages/xstdcmap/package.py new file mode 100644 index 0000000000..bb19bdff1a --- /dev/null +++ b/var/spack/repos/builtin/packages/xstdcmap/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xstdcmap(Package): + """The xstdcmap utility can be used to selectively define standard colormap + properties. It is intended to be run from a user's X startup script to + create standard colormap definitions in order to facilitate sharing of + scarce colormap resources among clients using PseudoColor visuals.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xstdcmap" + url = "https://www.x.org/archive/individual/app/xstdcmap-1.0.3.tar.gz" + + version('1.0.3', '70c1fd18b79c3ea1dae136e2eabe1c82') + + depends_on('libxmu') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xtrans/package.py b/var/spack/repos/builtin/packages/xtrans/package.py new file mode 100644 index 0000000000..ed46059d9d --- /dev/null +++ b/var/spack/repos/builtin/packages/xtrans/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 Xtrans(Package): + """xtrans is a library of code that is shared among various X packages to + handle network protocol transport in a modular fashion, allowing a + single place to add new transport types. It is used by the X server, + libX11, libICE, the X font server, and related components.""" + + homepage = "http://cgit.freedesktop.org/xorg/lib/libxtrans" + url = "https://www.x.org/archive//individual/lib/xtrans-1.3.5.tar.gz" + + version('1.3.5', '6e4eac1b7c6591da0753052e1eccfb58') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make('install') diff --git a/var/spack/repos/builtin/packages/xtrap/package.py b/var/spack/repos/builtin/packages/xtrap/package.py new file mode 100644 index 0000000000..405ec2f848 --- /dev/null +++ b/var/spack/repos/builtin/packages/xtrap/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 Xtrap(Package): + """XTrap sample clients.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xtrap" + url = "https://www.x.org/archive/individual/app/xtrap-1.0.2.tar.gz" + + version('1.0.2', '601e4945535d2d25eb1bc640332e2363') + + depends_on('libx11') + depends_on('libxtrap') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xts/package.py b/var/spack/repos/builtin/packages/xts/package.py new file mode 100644 index 0000000000..c3993cf391 --- /dev/null +++ b/var/spack/repos/builtin/packages/xts/package.py @@ -0,0 +1,60 @@ +############################################################################## +# 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 Xts(Package): + """This is a revamped version of X Test Suite (XTS) which removes some of + the ugliness of building and running the tests.""" + + homepage = "https://www.x.org/wiki/XorgTesting/" + url = "https://www.x.org/archive/individual/test/xts-0.99.1.tar.gz" + + version('0.99.1', '1e5443fede389be606f3745a71483bac') + + depends_on('libx11') + depends_on('libxext') + depends_on('libxi') + depends_on('libxtst') + depends_on('libxau') + depends_on('libxt') + depends_on('libxmu') + depends_on('libxaw') + + depends_on('xtrans', type='build') + depends_on('bdftopcf', type='build') + depends_on('mkfontdir', type='build') + depends_on('perl', type='build') + depends_on('xset', type='build') + depends_on('xdpyinfo', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + # FIXME: Crashes during compilation + # error: redeclaration of enumerator 'XawChainTop' + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xvidtune/package.py b/var/spack/repos/builtin/packages/xvidtune/package.py new file mode 100644 index 0000000000..ac5352df5f --- /dev/null +++ b/var/spack/repos/builtin/packages/xvidtune/package.py @@ -0,0 +1,50 @@ +############################################################################## +# 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 Xvidtune(Package): + """xvidtune is a client interface to the X server video mode + extension (XFree86-VidModeExtension).""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xvidtune" + url = "https://www.x.org/archive/individual/app/xvidtune-1.0.3.tar.gz" + + version('1.0.3', 'e0c31d78741ae4aab2f4bfcc2abd4a3d') + + depends_on('libxxf86vm') + depends_on('libxt') + depends_on('libxaw') + depends_on('libxmu') + depends_on('libx11') + + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xvinfo/package.py b/var/spack/repos/builtin/packages/xvinfo/package.py new file mode 100644 index 0000000000..359f1f23de --- /dev/null +++ b/var/spack/repos/builtin/packages/xvinfo/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xvinfo(Package): + """xvinfo prints out the capabilities of any video adaptors associated + with the display that are accessible through the X-Video extension.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xvinfo" + url = "https://www.x.org/archive/individual/app/xvinfo-1.1.3.tar.gz" + + version('1.1.3', '6890a19226c07344ae12e7a2ef12f2c6') + + depends_on('libxv') + depends_on('libx11') + + depends_on('xproto@7.0.25:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xwd/package.py b/var/spack/repos/builtin/packages/xwd/package.py new file mode 100644 index 0000000000..d1f9ee1dfb --- /dev/null +++ b/var/spack/repos/builtin/packages/xwd/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xwd(Package): + """xwd - dump an image of an X window.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xwd" + url = "https://www.x.org/archive/individual/app/xwd-1.0.6.tar.gz" + + version('1.0.6', 'd6c132f5f00188ce2a1393f12bd34ad4') + + depends_on('libx11') + depends_on('libxkbfile') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xwininfo/package.py b/var/spack/repos/builtin/packages/xwininfo/package.py new file mode 100644 index 0000000000..bba97ca671 --- /dev/null +++ b/var/spack/repos/builtin/packages/xwininfo/package.py @@ -0,0 +1,48 @@ +############################################################################## +# 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 Xwininfo(Package): + """xwininfo prints information about windows on an X server. Various + information is displayed depending on which options are selected.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xwininfo" + url = "https://www.x.org/archive/individual/app/xwininfo-1.1.3.tar.gz" + + version('1.1.3', 'd26623fe240659a320367bc453f1d301') + + depends_on('libxcb@1.6:') + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xwud/package.py b/var/spack/repos/builtin/packages/xwud/package.py new file mode 100644 index 0000000000..a30d55b7c6 --- /dev/null +++ b/var/spack/repos/builtin/packages/xwud/package.py @@ -0,0 +1,47 @@ +############################################################################## +# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the LICENSE file for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Xwud(Package): + """xwud allows X users to display in a window an image saved in a + specially formatted dump file, such as produced by xwd.""" + + homepage = "http://cgit.freedesktop.org/xorg/app/xwud" + url = "https://www.x.org/archive/individual/app/xwud-1.0.4.tar.gz" + + version('1.0.4', 'bb44485a37496f0121e5843bcf5bb01b') + + depends_on('libx11') + + depends_on('xproto@7.0.17:', type='build') + depends_on('pkg-config@0.9.0:', type='build') + depends_on('util-macros', type='build') + + def install(self, spec, prefix): + configure('--prefix={0}'.format(prefix)) + + make() + make('install') diff --git a/var/spack/repos/builtin/packages/xz/package.py b/var/spack/repos/builtin/packages/xz/package.py index a8ab959a62..8b0609f50e 100644 --- a/var/spack/repos/builtin/packages/xz/package.py +++ b/var/spack/repos/builtin/packages/xz/package.py @@ -37,6 +37,9 @@ class Xz(Package): version('5.2.2', 'f90c9a0c8b259aee2234c4e0d7fd70af') def install(self, spec, prefix): - configure("--prefix=%s" % prefix) + configure('--prefix={0}'.format(prefix)) + make() - make("install") + if self.run_tests: + make('check') + make('install') diff --git a/var/spack/repos/builtin/packages/zeromq/package.py b/var/spack/repos/builtin/packages/zeromq/package.py index 6a657dc39c..cafd3c2125 100644 --- a/var/spack/repos/builtin/packages/zeromq/package.py +++ b/var/spack/repos/builtin/packages/zeromq/package.py @@ -30,6 +30,7 @@ class Zeromq(Package): homepage = "http://zguide.zeromq.org/" url = "http://download.zeromq.org/zeromq-4.1.2.tar.gz" + version('4.1.4', 'a611ecc93fffeb6d058c0e6edf4ad4fb') version('4.1.2', '159c0c56a895472f02668e692d122685') version('4.1.1', '0a4b44aa085644f25c177f79dc13f253') version('4.0.7', '9b46f7e7b0704b83638ef0d461fd59ab') @@ -37,6 +38,7 @@ class Zeromq(Package): version('4.0.5', '73c39f5eb01b9d7eaf74a5d899f1d03d') depends_on("libsodium") + depends_on("libsodium@:1.0.3", when='@:4.1.2') def install(self, spec, prefix): configure("--with-libsodium", "--prefix=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py index 6d799fb05a..dfe7b4fdc1 100644 --- a/var/spack/repos/builtin/packages/zlib/package.py +++ b/var/spack/repos/builtin/packages/zlib/package.py @@ -25,17 +25,11 @@ from spack import * -class Zlib(Package): +class Zlib(AutotoolsPackage): """A free, general-purpose, legally unencumbered lossless data-compression library.""" homepage = "http://zlib.net" - url = "http://zlib.net/zlib-1.2.8.tar.gz" + url = "http://zlib.net/zlib-1.2.8.tar.gz" version('1.2.8', '44d667c142d7cda120332623eab69f40') - - def install(self, spec, prefix): - configure("--prefix=%s" % prefix) - - make() - make("install") diff --git a/var/spack/repos/builtin/packages/zoltan/package.py b/var/spack/repos/builtin/packages/zoltan/package.py index 0094395968..8d4dd321b0 100644 --- a/var/spack/repos/builtin/packages/zoltan/package.py +++ b/var/spack/repos/builtin/packages/zoltan/package.py @@ -22,10 +22,11 @@ # 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 re import os import glob -from spack import * class Zoltan(Package): @@ -47,23 +48,28 @@ class Zoltan(Package): version('3.6', '9cce794f7241ecd8dbea36c3d7a880f9') version('3.3', '5eb8f00bda634b25ceefa0122bd18d65') - variant('debug', default=False, - description='Builds a debug version of the library') - variant('shared', default=True, - description='Builds a shared version of the library') + variant('debug', default=False, description='Builds a debug version of the library.') + variant('shared', default=True, description='Builds a shared version of the library.') - variant('fortran', default=True, description='Enable Fortran support') - variant('mpi', default=False, description='Enable MPI support') + variant('fortran', default=True, description='Enable Fortran support.') + variant('mpi', default=True, description='Enable MPI support.') depends_on('mpi', when='+mpi') + def url_for_version(self, version): + return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version) + def install(self, spec, prefix): - config_args = [ - '--enable-f90interface' - if '+fortan' in spec else '--disable-f90interface', + # FIXME: The older Zoltan versions fail to compile the F90 MPI wrappers + # because of some complicated generic type problem. + if spec.satisfies('@:3.6+fortran+mpi'): + raise RuntimeError(('Cannot build Zoltan v{0} with +fortran and ' + '+mpi; please disable one of these features ' + 'or upgrade versions.').format(self.version)) - '--enable-mpi' - if '+mpi' in spec else '--disable-mpi', + config_args = [ + self.get_config_flag('f90interface', 'fortran'), + self.get_config_flag('mpi', 'mpi'), ] config_cflags = [ '-O0' if '+debug' in spec else '-O3', @@ -71,49 +77,70 @@ class Zoltan(Package): ] if '+shared' in spec: - config_args.append('--with-ar=$(CXX) -shared $(LDFLAGS) -o') config_args.append('RANLIB=echo') + config_args.append('--with-ar=$(CXX) -shared $(LDFLAGS) -o') config_cflags.append('-fPIC') + if spec.satisfies('%gcc'): + config_args.append('--with-libs={0}'.format('-lgfortran')) if '+mpi' in spec: - config_args.append('CC=%s/mpicc' % spec['mpi'].prefix.bin) - config_args.append('CXX=%s/mpicxx' % spec['mpi'].prefix.bin) - config_args.append('--with-mpi=%s' % spec['mpi'].prefix) - config_args.append('--with-mpi-compilers=%s' % - spec['mpi'].prefix.bin) + config_args.append('CC={0}'.format(spec['mpi'].mpicc)) + config_args.append('CXX={0}'.format(spec['mpi'].mpicxx)) + config_args.append('FC={0}'.format(spec['mpi'].mpifc)) + + mpi_libs = ' -l'.join(self.get_mpi_libs()) + config_args.append('--with-mpi={0}'.format(spec['mpi'].prefix)) + config_args.append('--with-mpi-libs=-l{0}'.format(mpi_libs)) # NOTE: Early versions of Zoltan come packaged with a few embedded # library packages (e.g. ParMETIS, Scotch), which messes with Spack's # ability to descend directly into the package's source directory. + source_directory = self.stage.source_path if spec.satisfies('@:3.6'): - cd('Zoltan_v%s' % self.version) - - mkdirp('build') - cd('build') - - config_zoltan = Executable('../configure') - config_zoltan( - '--prefix=%s' % pwd(), - '--with-cflags=%s' % ' '.join(config_cflags), - '--with-cxxflags=%s' % ' '.join(config_cflags), - *config_args) - - make() - make('install') + zoltan_directory = 'Zoltan_v{0}'.format(self.version) + source_directory = join_path(source_directory, zoltan_directory) + + build_directory = join_path(source_directory, 'build') + with working_dir(build_directory, create=True): + config = Executable(join_path(source_directory, 'configure')) + config( + '--prefix={0}'.format(prefix), + '--with-cflags={0}'.format(' '.join(config_cflags)), + '--with-cxxflags={0}'.format(' '.join(config_cflags)), + '--with-fcflags={0}'.format(' '.join(config_cflags)), + *config_args + ) + + # NOTE: Earlier versions of Zoltan cannot be built in parallel + # because they contain nested Makefile dependency bugs. + make(parallel=not spec.satisfies('@:3.6+fortran')) + make('install') # NOTE: Unfortunately, Zoltan doesn't provide any configuration # options for the extension of the output library files, so this # script must change these extensions as a post-processing step. if '+shared' in spec: - for libpath in glob.glob('lib/*.a'): - libdir, libname = (os.path.dirname(libpath), - os.path.basename(libpath)) - move(libpath, os.path.join( - libdir, re.sub(r'\.a$', '.so', libname))) - - mkdirp(prefix) - move('include', prefix) - move('lib', prefix) - - def url_for_version(self, version): - return '%s/zoltan_distrib_v%s.tar.gz' % (Zoltan.base_url, version) + for lib_path in glob.glob(join_path(prefix, 'lib', '*.a')): + lib_static_name = os.path.basename(lib_path) + lib_shared_name = re.sub(r'\.a$', '.{0}'.format(dso_suffix), + lib_static_name) + move(lib_path, join_path(prefix, 'lib', lib_shared_name)) + + def get_config_flag(self, flag_name, flag_variant): + flag_pre = 'en' if '+{0}'.format(flag_variant) in self.spec else 'dis' + return '--{0}able-{1}'.format(flag_pre, flag_name) + + # NOTE: Zoltan assumes that it's linking against an MPI library that can + # be found with '-lmpi,' which isn't the case for many MPI packages. This + # function finds the names of the actual libraries for Zoltan's MPI dep. + def get_mpi_libs(self): + mpi_libs = set() + + for lib_path in glob.glob(join_path(self.spec['mpi'].prefix.lib, '*')): + mpi_lib_match = re.match( + r'^(lib)((\w*)mpi(\w*))\.((a)|({0}))$'.format(dso_suffix), + os.path.basename(lib_path)) + if mpi_lib_match: + mpi_libs.add(mpi_lib_match.group(2)) + + return list(mpi_libs) diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py index 4c27cd3ec2..a70d307be9 100644 --- a/var/spack/repos/builtin/packages/zsh/package.py +++ b/var/spack/repos/builtin/packages/zsh/package.py @@ -26,11 +26,11 @@ from spack import * class Zsh(Package): + """Zsh is a shell designed for interactive use, although it is also a + powerful scripting language. Many of the useful features of bash, ksh, and + tcsh were incorporated into zsh; many original features were added. """ - Zsh is a shell designed for interactive use, although it is also a powerful - scripting language. Many of the useful features of bash, ksh, and tcsh were - incorporated into zsh; many original features were added. - """ + homepage = "http://www.zsh.org" url = "http://downloads.sourceforge.net/project/zsh/zsh/5.1.1/zsh-5.1.1.tar.gz" |