summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/bzip2/package.py58
-rw-r--r--var/spack/packages/clang/package.py13
-rw-r--r--var/spack/packages/dbus/package.py4
-rw-r--r--var/spack/packages/gcc/package.py68
-rw-r--r--var/spack/packages/libxml2/package.py3
-rw-r--r--var/spack/packages/llvm/package.py17
-rw-r--r--var/spack/packages/ncurses/package.py2
-rw-r--r--var/spack/packages/paraview/package.py72
-rw-r--r--var/spack/packages/py-sphinx/package.py13
-rw-r--r--var/spack/packages/xz/package.py8
-rw-r--r--var/spack/packages/zsh/package.py10
11 files changed, 202 insertions, 66 deletions
diff --git a/var/spack/packages/bzip2/package.py b/var/spack/packages/bzip2/package.py
index d88336664d..638ba1fa4d 100644
--- a/var/spack/packages/bzip2/package.py
+++ b/var/spack/packages/bzip2/package.py
@@ -1,36 +1,60 @@
from spack import *
-from glob import glob
class Bzip2(Package):
"""bzip2 is a freely available, patent free high-quality data
compressor. It typically compresses files to within 10% to 15%
of the best available techniques (the PPM family of statistical
compressors), whilst being around twice as fast at compression
- and six times faster at decompression."""
+ and six times faster at decompression.
+
+ """
homepage = "http://www.bzip.org"
url = "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
version('1.0.6', '00b516f4704d4a7cb50a1d97e6e8e15b')
- def install(self, spec, prefix):
- # No configure system -- have to filter the makefile for this package.
- filter_file(r'CC=gcc', 'CC=cc', 'Makefile', string=True)
+ def patch(self):
+ mf = FileFilter('Makefile-libbz2_so')
+ mf.filter(r'^CC=gcc', 'CC=cc')
+
+ # Below stuff patches the link line to use RPATHs on Mac OS X.
+ if 'darwin' in self.spec.architecture:
+ v = self.spec.version
+ v1, v2, v3 = (v.up_to(i) for i in (1,2,3))
+
+ mf.filter('$(CC) -shared -Wl,-soname -Wl,libbz2.so.{0} -o libbz2.so.{1} $(OBJS)'.format(v2, v3),
+ '$(CC) -dynamiclib -Wl,-install_name -Wl,@rpath/libbz2.{0}.dylib -current_version {1} -compatibility_version {2} -o libbz2.{3}.dylib $(OBJS)'.format(v1, v2, v3, v3), string=True)
+
+ mf.filter('$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.{0}'.format(v3),
+ '$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.{0}.dylib'.format(v3), string=True)
+ mf.filter('rm -f libbz2.so.{0}'.format(v2),
+ 'rm -f libbz2.{0}.dylib'.format(v2), string=True)
+ mf.filter('ln -s libbz2.so.{0} libbz2.so.{1}'.format(v3, v2),
+ 'ln -s libbz2.{0}.dylib libbz2.{1}.dylib'.format(v3, v2), string=True)
+
+
+ def install(self, spec, prefix):
make('-f', 'Makefile-libbz2_so')
make('clean')
make("install", "PREFIX=%s" % prefix)
- bzip2_exe = join_path(prefix.bin, 'bzip2')
- install('bzip2-shared', bzip2_exe)
- for i, libfile in enumerate(glob('libbz2.so*')):
- install(libfile, prefix.lib)
- if i == 0:
- symlink(join_path(prefix.lib, libfile), join_path(prefix.lib, 'libbz2.so'))
+ install('bzip2-shared', join_path(prefix.bin, 'bzip2'))
+
+ v1, v2, v3 = (self.spec.version.up_to(i) for i in (1,2,3))
+ if 'darwin' in self.spec.architecture:
+ lib = 'libbz2.dylib'
+ lib1, lib2, lib3 = ('libbz2.{0}.dylib'.format(v) for v in (v1, v2, v3))
+ else:
+ lib = 'libbz2.so'
+ lib1, lib2, lib3 = ('libbz2.so.{0}'.format(v) for v in (v1, v2, v3))
- bunzip2 = join_path(prefix.bin, 'bunzip2')
- remove(bunzip2)
- symlink(bzip2_exe, bunzip2)
+ install(lib3, join_path(prefix.lib, lib3))
+ with working_dir(prefix.lib):
+ for l in (lib, lib1, lib2):
+ symlink(lib3, l)
- bzcat = join_path(prefix.bin, 'bzcat')
- remove(bzcat)
- symlink(bzip2_exe, bzcat)
+ with working_dir(prefix.bin):
+ force_remove('bunzip2', 'bzcat')
+ symlink('bzip2', 'bunzip2')
+ symlink('bzip2', 'bzcat')
diff --git a/var/spack/packages/clang/package.py b/var/spack/packages/clang/package.py
index 4f10385dbd..4f977bf9a4 100644
--- a/var/spack/packages/clang/package.py
+++ b/var/spack/packages/clang/package.py
@@ -28,11 +28,16 @@ class Clang(Package):
"""The goal of the Clang project is to create a new C, C++,
Objective C and Objective C++ front-end for the LLVM compiler.
"""
- homepage = "http://clang.llvm.org"
- list_url = "http://llvm.org/releases/download.html"
+ homepage = 'http://clang.llvm.org'
+ url = 'http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz'
- depends_on("llvm")
- version('3.4.2', '87945973b7c73038871c5f849a818588', url='http://llvm.org/releases/3.4.2/cfe-3.4.2.src.tar.xz')
+ depends_on('llvm@3.7.0', when='@3.7.0')
+ depends_on('llvm@3.6.2', when='@3.6.2')
+ depends_on('llvm@3.5.1', when='@3.5.1')
+
+ version('3.7.0', '8f9d27335e7331cf0a4711e952f21f01', url='http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz')
+ version('3.6.2', 'ff862793682f714bb7862325b9c06e20', url='http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz')
+ version('3.5.1', '93f9532f8f7e6f1d8e5c1116907051cb', url='http://llvm.org/releases/3.5.1/cfe-3.5.1.src.tar.xz')
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
diff --git a/var/spack/packages/dbus/package.py b/var/spack/packages/dbus/package.py
index f7f394498c..f7c302d611 100644
--- a/var/spack/packages/dbus/package.py
+++ b/var/spack/packages/dbus/package.py
@@ -20,7 +20,9 @@ class Dbus(Package):
version('1.8.2', 'd6f709bbec0a022a1847c7caec9d6068')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure(
+ "--prefix=%s" % prefix,
+ "--disable-systemd")
make()
make("install")
diff --git a/var/spack/packages/gcc/package.py b/var/spack/packages/gcc/package.py
index 2fc6794b70..a49a1348aa 100644
--- a/var/spack/packages/gcc/package.py
+++ b/var/spack/packages/gcc/package.py
@@ -36,21 +36,25 @@ class Gcc(Package):
list_url = 'http://open-source-box.org/gcc/'
list_depth = 2
+ DEPENDS_ON_ISL_PREDICATE = '@5.0:'
+
+ version('5.2.0', 'a51bcfeb3da7dd4c623e27207ed43467')
+ version('4.9.3', '6f831b4d251872736e8e9cc09746f327')
version('4.9.2', '4df8ee253b7f3863ad0b86359cd39c43')
version('4.9.1', 'fddf71348546af523353bd43d34919c1')
+ version('4.8.5', '80d2c2982a3392bb0b89673ff136e223')
version('4.8.4', '5a84a30839b2aca22a2d723de2a626ec')
version('4.7.4', '4c696da46297de6ae77a82797d2abe28')
version('4.6.4', 'b407a3d1480c11667f293bfb1f17d1a4')
version('4.5.4', '27e459c2566b8209ab064570e1b378f7')
-
+
depends_on("mpfr")
depends_on("gmp")
depends_on("mpc") # when @4.5:
- depends_on("libelf")
depends_on("binutils~libiberty")
# Save these until we can do optional deps.
- #depends_on("isl")
+ depends_on("isl", when=DEPENDS_ON_ISL_PREDICATE)
#depends_on("ppl")
#depends_on("cloog")
@@ -62,23 +66,31 @@ class Gcc(Package):
if spec.satisfies("@4.7.1:"):
enabled_languages.add('go')
+ # Generic options to compile GCC
+ options = ["--prefix=%s" % prefix,
+ "--libdir=%s/lib64" % prefix,
+ "--disable-multilib",
+ "--enable-languages=" + ','.join(enabled_languages),
+ "--with-mpc=%s" % spec['mpc'].prefix,
+ "--with-mpfr=%s" % spec['mpfr'].prefix,
+ "--with-gmp=%s" % spec['gmp'].prefix,
+ "--enable-lto",
+ "--with-gnu-ld",
+ "--with-gnu-as",
+ "--with-quad"]
+ # Binutils
+ binutils_options = ["--with-stage1-ldflags=%s" % self.rpath_args,
+ "--with-boot-ldflags=%s" % self.rpath_args,
+ "--with-ld=%s/bin/ld" % spec['binutils'].prefix,
+ "--with-as=%s/bin/as" % spec['binutils'].prefix]
+ options.extend(binutils_options)
+ # Isl
+ if spec.satisfies(Gcc.DEPENDS_ON_ISL_PREDICATE):
+ isl_options = ["--with-isl=%s" % spec['isl'].prefix]
+ options.extend(isl_options)
+
# Rest of install is straightforward.
- configure("--prefix=%s" % prefix,
- "--libdir=%s/lib64" % prefix,
- "--disable-multilib",
- "--enable-languages=" + ','.join(enabled_languages),
- "--with-mpc=%s" % spec['mpc'].prefix,
- "--with-mpfr=%s" % spec['mpfr'].prefix,
- "--with-gmp=%s" % spec['gmp'].prefix,
- "--with-libelf=%s" % spec['libelf'].prefix,
- "--with-stage1-ldflags=%s" % self.rpath_args,
- "--with-boot-ldflags=%s" % self.rpath_args,
- "--enable-lto",
- "--with-gnu-ld",
- "--with-ld=%s/bin/ld" % spec['binutils'].prefix,
- "--with-gnu-as",
- "--with-as=%s/bin/as" % spec['binutils'].prefix,
- "--with-quad")
+ configure(*options)
make()
make("install")
@@ -100,13 +112,11 @@ class Gcc(Package):
return
gcc = Executable(join_path(self.prefix.bin, 'gcc'))
- lines = gcc('-dumpspecs', return_output=True).split("\n")
- for i, line in enumerate(lines):
- if line.startswith("*link:"):
- specs_file = join_path(self.spec_dir, 'specs')
- with closing(open(specs_file, 'w')) as out:
- out.write(lines[i] + "\n")
- out.write("-rpath %s/lib:%s/lib64 \\\n"
- % (self.prefix, self.prefix))
- out.write(lines[i+1] + "\n")
- set_install_permissions(specs_file)
+ lines = gcc('-dumpspecs', return_output=True).strip().split("\n")
+ specs_file = join_path(self.spec_dir, 'specs')
+ with closing(open(specs_file, 'w')) as out:
+ for line in lines:
+ out.write(line + "\n")
+ if line.startswith("*link:"):
+ out.write("-rpath %s/lib:%s/lib64 \\\n"% (self.prefix, self.prefix))
+ set_install_permissions(specs_file)
diff --git a/var/spack/packages/libxml2/package.py b/var/spack/packages/libxml2/package.py
index 3a0af6b368..df311bfaba 100644
--- a/var/spack/packages/libxml2/package.py
+++ b/var/spack/packages/libxml2/package.py
@@ -14,7 +14,8 @@ class Libxml2(Package):
depends_on('xz')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix)
+ configure("--prefix=%s" % prefix,
+ "--with-python=%s" % spec['python'].prefix)
make()
make("install")
diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py
index 9d2be690bb..a6759c3033 100644
--- a/var/spack/packages/llvm/package.py
+++ b/var/spack/packages/llvm/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
+
class Llvm(Package):
"""The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies. Despite its name, LLVM has little to do with
@@ -31,14 +32,14 @@ class Llvm(Package):
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/"
- list_url = "http://llvm.org/releases/download.html"
+ homepage = 'http://llvm.org/'
+ url = 'http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz'
+ version('3.7.0', 'b98b9495e5655a672d6cb83e1a180f8e', url='http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz')
+ version('3.6.2', '0c1ee3597d75280dee603bae9cbf5cc2', url='http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz')
version('3.5.1', '2d3d8004f38852aa679e5945b8ce0b14', url='http://llvm.org/releases/3.5.1/llvm-3.5.1.src.tar.xz')
- version('3.4.2', 'a20669f75967440de949ac3b1bad439c', url='http://llvm.org/releases/3.4.2/llvm-3.4.2.src.tar.gz')
- version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005', url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
- version('2.9', '793138412d2af2c7c7f54615f8943771', url='http://llvm.org/releases/2.9/llvm-2.9.tgz')
- version('2.8', '220d361b4d17051ff4bb21c64abe05ba', url='http://llvm.org/releases/2.8/llvm-2.8.tgz')
+
+ depends_on('python@2.7:')
def install(self, spec, prefix):
env['CXXFLAGS'] = self.compiler.cxx11_flag
@@ -46,9 +47,7 @@ class Llvm(Package):
with working_dir('spack-build', create=True):
cmake('..',
'-DLLVM_REQUIRES_RTTI=1',
- '-DPYTHON_EXECUTABLE=/usr/bin/python',
- '-DPYTHON_INCLUDE_DIR=/usr/include/python2.6',
- '-DPYTHON_LIBRARY=/usr/lib64/libpython2.6.so',
+ '-DPYTHON_EXECUTABLE=%s/bin/python' % spec['python'].prefix,
*std_cmake_args)
make()
make("install")
diff --git a/var/spack/packages/ncurses/package.py b/var/spack/packages/ncurses/package.py
index 8f5763bfdd..cc180bbae1 100644
--- a/var/spack/packages/ncurses/package.py
+++ b/var/spack/packages/ncurses/package.py
@@ -11,6 +11,8 @@ class Ncurses(Package):
version('5.9', '8cb9c412e5f2d96bc6f459aa8c6282a1',
url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz')
+ version('6.0', 'ee13d052e1ead260d7c28071f46eefb1',
+ url='http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.0.tar.gz')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
diff --git a/var/spack/packages/paraview/package.py b/var/spack/packages/paraview/package.py
new file mode 100644
index 0000000000..a0ff812ca2
--- /dev/null
+++ b/var/spack/packages/paraview/package.py
@@ -0,0 +1,72 @@
+from spack import *
+
+class Paraview(Package):
+ homepage = 'http://www.paraview.org'
+ url = 'http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz'
+
+ version('4.4.0', 'fa1569857dd680ebb4d7ff89c2227378', url='http://www.paraview.org/files/v4.4/ParaView-v4.4.0-source.tar.gz')
+
+ variant('python', default=False, description='Enable Python support')
+ variant('matplotlib', default=False, description='Enable Matplotlib support')
+ variant('numpy', default=False, description='Enable NumPy support')
+
+ variant('tcl', default=False, description='Enable TCL support')
+
+ variant('mpi', default=False, description='Enable MPI support')
+
+ variant('osmesa', default=False, description='Enable OSMesa support')
+ variant('qt', default=False, description='Enable Qt support')
+
+ depends_on('python', when='+python')
+ depends_on('py-numpy', when='+python+numpy')
+ depends_on('py-matplotlib', when='+python+matplotlib')
+ depends_on('tcl', when='+tcl')
+ depends_on('mpi', when='+mpi')
+ depends_on('qt', when='+qt')
+
+ depends_on('bzip2')
+ depends_on('freetype')
+ depends_on('hdf5') # drags in mpi
+ depends_on('jpeg')
+ depends_on('libpng')
+ depends_on('libtiff')
+ #depends_on('libxml2') # drags in python
+ depends_on('netcdf')
+ #depends_on('protobuf') # version mismatches?
+ #depends_on('sqlite') # external version not supported
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ def feature_to_bool(feature, on='ON', off='OFF'):
+ if feature in spec:
+ return on
+ return off
+
+ def nfeature_to_bool(feature):
+ return feature_to_bool(feature, on='OFF', off='ON')
+
+ feature_args = std_cmake_args[:]
+ feature_args.append('-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % feature_to_bool('+qt'))
+ feature_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=%s' % feature_to_bool('+python'))
+ feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' % feature_to_bool('+mpi'))
+ feature_args.append('-DVTK_ENABLE_TCL_WRAPPING:BOOL=%s' % feature_to_bool('+tcl'))
+ feature_args.append('-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' % feature_to_bool('+osmesa'))
+ feature_args.append('-DVTK_USE_X:BOOL=%s' % nfeature_to_bool('+osmesa'))
+ feature_args.append('-DVTK_RENDERING_BACKEND:STRING=%s' % feature_to_bool('+opengl2', 'OpenGL2', 'OpenGL'))
+
+ feature_args.extend(std_cmake_args)
+
+ cmake('..',
+ '-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
+ '-DBUILD_TESTING:BOOL=OFF',
+ '-DVTK_USER_SYSTEM_FREETYPE:BOOL=ON',
+ '-DVTK_USER_SYSTEM_HDF5:BOOL=ON',
+ '-DVTK_USER_SYSTEM_JPEG:BOOL=ON',
+ #'-DVTK_USER_SYSTEM_LIBXML2:BOOL=ON',
+ '-DVTK_USER_SYSTEM_NETCDF:BOOL=ON',
+ '-DVTK_USER_SYSTEM_TIFF:BOOL=ON',
+ '-DVTK_USER_SYSTEM_ZLIB:BOOL=ON',
+ *feature_args)
+ make()
+ make('install')
diff --git a/var/spack/packages/py-sphinx/package.py b/var/spack/packages/py-sphinx/package.py
new file mode 100644
index 0000000000..ec2e89a098
--- /dev/null
+++ b/var/spack/packages/py-sphinx/package.py
@@ -0,0 +1,13 @@
+from spack import *
+
+class PySphinx(Package):
+ """Sphinx Documentation Generator."""
+ homepage = "http://sphinx-doc.org"
+ url = "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-1.3.1.tar.gz"
+
+ version('1.3.1', '8786a194acf9673464c5455b11fd4332')
+
+ extends('python')
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/xz/package.py b/var/spack/packages/xz/package.py
index 88c5793018..ba6c9733a7 100644
--- a/var/spack/packages/xz/package.py
+++ b/var/spack/packages/xz/package.py
@@ -8,9 +8,13 @@ class Xz(Package):
homepage = "http://tukaani.org/xz/"
url = "http://tukaani.org/xz/xz-5.2.0.tar.bz2"
- version('5.2.0', '867cc8611760240ebf3440bd6e170bb9')
-
+ version('5.2.0', '867cc8611760240ebf3440bd6e170bb9',
+ url = 'http://tukaani.org/xz/xz-5.2.0.tar.bz2')
+ version('5.2.2', 'f90c9a0c8b259aee2234c4e0d7fd70af',
+ url = 'http://tukaani.org/xz/xz-5.2.2.tar.bz2')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")
+
diff --git a/var/spack/packages/zsh/package.py b/var/spack/packages/zsh/package.py
index 99ef9de2e5..06665f0c83 100644
--- a/var/spack/packages/zsh/package.py
+++ b/var/spack/packages/zsh/package.py
@@ -1,11 +1,15 @@
from spack import *
class Zsh(Package):
- """ The ZSH shell """
+ """
+ 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://www.zsh.org/pub/zsh-5.0.8.tar.bz2"
+ url = "http://downloads.sourceforge.net/project/zsh/zsh/5.1.1/zsh-5.1.1.tar.gz"
- version('5.0.8', 'e6759e8dd7b714d624feffd0a73ba0fe')
+ version('5.1.1', checksum='8ba28a9ef82e40c3a271602f18343b2f')
depends_on("pcre")