summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/R/package.py33
-rw-r--r--var/spack/packages/dyninst/package.py7
-rw-r--r--var/spack/packages/libgcrypt/package.py19
-rw-r--r--var/spack/packages/libgpg-error/package.py17
-rw-r--r--var/spack/packages/libpng/package.py5
-rw-r--r--var/spack/packages/libxml2/package.py3
-rw-r--r--var/spack/packages/libxslt/package.py24
-rw-r--r--var/spack/packages/py-ipython/package.py1
-rw-r--r--var/spack/packages/py-libxml2/package.py1
-rw-r--r--var/spack/packages/py-matplotlib/package.py9
-rw-r--r--var/spack/packages/py-mpi4py/package.py1
-rw-r--r--var/spack/packages/py-nose/package.py3
-rw-r--r--var/spack/packages/py-pylint/package.py4
-rw-r--r--var/spack/packages/py-pyqt/package.py (renamed from var/spack/packages/py-pyqt4/package.py)16
-rw-r--r--var/spack/packages/py-pyside/package.py14
-rw-r--r--var/spack/packages/py-rpy2/package.py2
-rw-r--r--var/spack/packages/py-scientificpython/package.py6
-rw-r--r--var/spack/packages/py-shiboken/package.py24
-rw-r--r--var/spack/packages/py-sip/package.py7
-rw-r--r--var/spack/packages/py-virtualenv/package.py1
-rw-r--r--var/spack/packages/python/package.py52
-rw-r--r--var/spack/packages/qhull/package.py27
-rw-r--r--var/spack/packages/qt/package.py6
-rw-r--r--var/spack/packages/tcl/package.py22
-rw-r--r--var/spack/packages/tk/package.py22
25 files changed, 278 insertions, 48 deletions
diff --git a/var/spack/packages/R/package.py b/var/spack/packages/R/package.py
new file mode 100644
index 0000000000..2e6f65a742
--- /dev/null
+++ b/var/spack/packages/R/package.py
@@ -0,0 +1,33 @@
+from spack import *
+
+class R(Package):
+ """R is 'GNU S', a freely available language and environment for
+ statistical computing and graphics which provides a wide va
+ riety of statistical and graphical techniques: linear and
+ nonlinear modelling, statistical tests, time series analysis,
+ classification, clustering, etc. Please consult the R project
+ homepage for further information."""
+ homepage = "http://www.example.com"
+ url = "http://cran.cnr.berkeley.edu/src/base/R-3/R-3.1.2.tar.gz"
+
+ version('3.1.2', '3af29ec06704cbd08d4ba8d69250ae74')
+
+ depends_on("readline")
+ depends_on("ncurses")
+ depends_on("icu")
+ depends_on("glib")
+ depends_on("zlib")
+ depends_on("libtiff")
+ depends_on("jpeg")
+ depends_on("cairo")
+ depends_on("pango")
+ depends_on("freetype")
+ depends_on("tcl")
+ depends_on("tk")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix,
+ "--enable-R-shlib",
+ "--enable-BLAS-shlib")
+ make()
+ make("install")
diff --git a/var/spack/packages/dyninst/package.py b/var/spack/packages/dyninst/package.py
index 2e6f3e010a..f3d661f9a9 100644
--- a/var/spack/packages/dyninst/package.py
+++ b/var/spack/packages/dyninst/package.py
@@ -31,8 +31,9 @@ class Dyninst(Package):
url = "http://www.dyninst.org/sites/default/files/downloads/dyninst/8.1.2/DyninstAPI-8.1.2.tgz"
list_url = "http://www.dyninst.org/downloads/dyninst-8.x"
- version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7',
- url="http://www.paradyn.org/release8.2/DyninstAPI-8.2.1.tgz")
+# Doesn't build right with boost@1.55.0
+# version('8.2.1', 'abf60b7faabe7a2e4b54395757be39c7',
+# url="http://www.paradyn.org/release8.2/DyninstAPI-8.2.1.tgz")
version('8.1.2', 'bf03b33375afa66fe0efa46ce3f4b17a',
url="http://www.paradyn.org/release8.1.2/DyninstAPI-8.1.2.tgz")
version('8.1.1', 'd1a04e995b7aa70960cd1d1fac8bd6ac',
@@ -40,7 +41,7 @@ class Dyninst(Package):
depends_on("libelf")
depends_on("libdwarf")
- depends_on("boost@1.42:1.43")
+ depends_on("boost@1.42:")
# new version uses cmake
def install(self, spec, prefix):
diff --git a/var/spack/packages/libgcrypt/package.py b/var/spack/packages/libgcrypt/package.py
new file mode 100644
index 0000000000..1d0a57f317
--- /dev/null
+++ b/var/spack/packages/libgcrypt/package.py
@@ -0,0 +1,19 @@
+from spack import *
+
+class Libgcrypt(Package):
+ """Libgcrypt is a general purpose cryptographic library based on
+ the code from GnuPG. It provides functions for all cryptographic
+ building blocks: symmetric ciphers, hash algorithms, MACs, public
+ key algorithms, large integer functions, random numbers and a lot
+ of supporting functions. """
+ homepage = "http://www.gnu.org/software/libgcrypt/"
+ url = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.2.tar.bz2"
+
+ version('1.6.2', 'b54395a93cb1e57619943c082da09d5f')
+
+ depends_on("libgpg-error")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/libgpg-error/package.py b/var/spack/packages/libgpg-error/package.py
new file mode 100644
index 0000000000..6c1d1a10a7
--- /dev/null
+++ b/var/spack/packages/libgpg-error/package.py
@@ -0,0 +1,17 @@
+from spack import *
+
+class LibgpgError(Package):
+ """Libgpg-error is a small library that defines common error
+ values for all GnuPG components. Among these are GPG, GPGSM,
+ GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry,
+ SmartCard Daemon and possibly more in the future. """
+
+ homepage = "https://www.gnupg.org/related_software/libgpg-error"
+ url = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.18.tar.bz2"
+
+ version('1.18', '12312802d2065774b787cbfc22cc04e9')
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/libpng/package.py b/var/spack/packages/libpng/package.py
index affc14ea92..e02b08663e 100644
--- a/var/spack/packages/libpng/package.py
+++ b/var/spack/packages/libpng/package.py
@@ -3,12 +3,13 @@ from spack import *
class Libpng(Package):
"""libpng graphics file format"""
homepage = "http://www.libpng.org/pub/png/libpng.html"
- url = "http://prdownloads.sourceforge.net/libpng/libpng-1.6.16.tar.gz?download"
+ url = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz"
version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d')
+ version('1.6.15', '829a256f3de9307731d4f52dc071916d')
+ version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
-
make()
make("install")
diff --git a/var/spack/packages/libxml2/package.py b/var/spack/packages/libxml2/package.py
index 5eaed36d94..72199d8def 100644
--- a/var/spack/packages/libxml2/package.py
+++ b/var/spack/packages/libxml2/package.py
@@ -9,6 +9,9 @@ class Libxml2(Package):
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
+ depends_on('zlib')
+ depends_on('xz')
+
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--without-python")
diff --git a/var/spack/packages/libxslt/package.py b/var/spack/packages/libxslt/package.py
new file mode 100644
index 0000000000..f97332d020
--- /dev/null
+++ b/var/spack/packages/libxslt/package.py
@@ -0,0 +1,24 @@
+from spack import *
+
+class Libxslt(Package):
+ """Libxslt is the XSLT C library developed for the GNOME
+ project. XSLT itself is a an XML language to define
+ transformation for XML. Libxslt is based on libxml2 the XML C
+ library developed for the GNOME project. It also implements
+ most of the EXSLT set of processor-portable extensions
+ functions and some of Saxon's evaluate and expressions
+ extensions."""
+ homepage = "http://www.xmlsoft.org/XSLT/index.html"
+ url = "http://xmlsoft.org/sources/libxslt-1.1.28.tar.gz"
+
+ version('1.1.28', '9667bf6f9310b957254fdcf6596600b7')
+
+ depends_on("libxml2")
+ depends_on("xz")
+ depends_on("zlib")
+ depends_on("libgcrypt")
+
+ def install(self, spec, prefix):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/py-ipython/package.py b/var/spack/packages/py-ipython/package.py
index 731e661dfd..907ea9edcd 100644
--- a/var/spack/packages/py-ipython/package.py
+++ b/var/spack/packages/py-ipython/package.py
@@ -9,6 +9,7 @@ class PyIpython(Package):
extends('python')
depends_on('py-pygments')
+ depends_on('py-setuptools')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-libxml2/package.py b/var/spack/packages/py-libxml2/package.py
index e645acb5dd..59005428e4 100644
--- a/var/spack/packages/py-libxml2/package.py
+++ b/var/spack/packages/py-libxml2/package.py
@@ -9,6 +9,7 @@ class PyLibxml2(Package):
extends('python')
depends_on('libxml2')
+ depends_on('libxslt')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-matplotlib/package.py b/var/spack/packages/py-matplotlib/package.py
index 8b8684c563..04037f004e 100644
--- a/var/spack/packages/py-matplotlib/package.py
+++ b/var/spack/packages/py-matplotlib/package.py
@@ -8,7 +8,8 @@ class PyMatplotlib(Package):
version('1.4.2', '7d22efb6cce475025733c50487bd8898')
- extends('python')
+ extends('python', ignore=r'bin/nosetests.*$')
+
depends_on('py-pyside')
depends_on('py-ipython')
depends_on('py-pyparsing')
@@ -17,8 +18,12 @@ class PyMatplotlib(Package):
depends_on('py-pytz')
depends_on('py-nose')
depends_on('py-numpy')
- depends_on('qt')
+ depends_on('qt')
+ depends_on('bzip2')
+ depends_on('tcl')
+ depends_on('tk')
+ depends_on('qhull')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-mpi4py/package.py b/var/spack/packages/py-mpi4py/package.py
index fdea340dc2..8001689a18 100644
--- a/var/spack/packages/py-mpi4py/package.py
+++ b/var/spack/packages/py-mpi4py/package.py
@@ -7,6 +7,7 @@ class PyMpi4py(Package):
version('1.3.1', 'dbe9d22bdc8ed965c23a7ceb6f32fc3c')
extends('python')
+ depends_on('py-setuptools')
depends_on('mpi')
def install(self, spec, prefix):
diff --git a/var/spack/packages/py-nose/package.py b/var/spack/packages/py-nose/package.py
index 6df84e831d..155019289d 100644
--- a/var/spack/packages/py-nose/package.py
+++ b/var/spack/packages/py-nose/package.py
@@ -9,7 +9,8 @@ class PyNose(Package):
version('1.3.4', '6ed7169887580ddc9a8e16048d38274d')
- extends('python')
+ extends('python', ignore=r'bin/nosetests.*$')
+ depends_on('py-setuptools')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pylint/package.py b/var/spack/packages/py-pylint/package.py
index ebde861f94..7a6ee7dbbc 100644
--- a/var/spack/packages/py-pylint/package.py
+++ b/var/spack/packages/py-pylint/package.py
@@ -8,9 +8,9 @@ class PyPylint(Package):
version('1.4.1', 'df7c679bdcce5019389038847e4de622')
-# extends('python')
- extends('python', ignore=lambda f:re.match(r"site.py*", f))
+ extends('python')
depends_on('py-nose')
+ depends_on('py-setuptools')
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-pyqt4/package.py b/var/spack/packages/py-pyqt/package.py
index eeb1382560..8edca105bb 100644
--- a/var/spack/packages/py-pyqt4/package.py
+++ b/var/spack/packages/py-pyqt/package.py
@@ -1,18 +1,24 @@
from spack import *
-class PyPyqt4(Package):
- """PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework and runs on all platforms supported by Qt including Windows, MacOS/X and Linux."""
+class PyPyqt(Package):
+ """PyQt is a set of Python v2 and v3 bindings for Digia's Qt
+ application framework and runs on all platforms supported by Qt
+ including Windows, MacOS/X and Linux."""
homepage = "http://www.riverbankcomputing.com/software/pyqt/intro"
url = "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz"
version('4.11.3', '997c3e443165a89a559e0d96b061bf70')
extends('python')
- depends_on('qt')
depends_on('py-sip')
+ # TODO: allow qt5 when conditional deps are supported.
+ # TODO: Fix version matching so that @4 works like @:4
+ depends_on('qt@:4')
+
def install(self, spec, prefix):
- version_array = str(spec['python'].version).split('.')
- python('configure.py', '--confirm-license', '--destdir=%s/python%s.%s/site-packages' %(self.prefix.lib, version_array[0], version_array[1]))
+ python('configure.py',
+ '--confirm-license',
+ '--destdir=%s' % site_packages_dir)
make()
make('install')
diff --git a/var/spack/packages/py-pyside/package.py b/var/spack/packages/py-pyside/package.py
index 1fd037d75f..6583431124 100644
--- a/var/spack/packages/py-pyside/package.py
+++ b/var/spack/packages/py-pyside/package.py
@@ -1,5 +1,4 @@
from spack import *
-import spack.package
import os
class PyPyside(Package):
@@ -9,26 +8,33 @@ class PyPyside(Package):
version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d')
+ # TODO: make build dependency
+ # depends_on("cmake")
+
extends('python')
depends_on('py-setuptools')
depends_on('qt@:4')
-
def patch(self):
"""Undo PySide RPATH handling and add Spack RPATH."""
+ # Figure out the special RPATH
+ pypkg = self.spec['python'].package
+ rpath = self.rpath
+ rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'PySide'))
+
# Add Spack's standard CMake args to the sub-builds.
# They're called BY setup.py so we have to patch it.
filter_file(
r'OPTION_CMAKE,',
r'OPTION_CMAKE, ' + (
'"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", '
- '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(self.rpath)),
+ '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(rpath)),
'setup.py')
# PySide tries to patch ELF files to remove RPATHs
# Disable this and go with the one we set.
filter_file(
- r'rpath_cmd\(pyside_path, srcpath\)',
+ r'^\s*rpath_cmd\(pyside_path, srcpath\)',
r'#rpath_cmd(pyside_path, srcpath)',
'pyside_postinstall.py')
diff --git a/var/spack/packages/py-rpy2/package.py b/var/spack/packages/py-rpy2/package.py
index 3817059911..dd0c0672af 100644
--- a/var/spack/packages/py-rpy2/package.py
+++ b/var/spack/packages/py-rpy2/package.py
@@ -10,5 +10,7 @@ class PyRpy2(Package):
extends('python')
depends_on('py-setuptools')
+ depends_on('R')
+
def install(self, spec, prefix):
python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/packages/py-scientificpython/package.py b/var/spack/packages/py-scientificpython/package.py
index 73600e6cb9..020d830703 100644
--- a/var/spack/packages/py-scientificpython/package.py
+++ b/var/spack/packages/py-scientificpython/package.py
@@ -1,7 +1,11 @@
from spack import *
class PyScientificpython(Package):
- """ScientificPython is a collection of Python modules for scientific computing. It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, and parallelization."""
+ """ScientificPython is a collection of Python modules for
+ scientific computing. It contains support for geometry,
+ mathematical functions, statistics, physical units, IO,
+ visualization, and parallelization."""
+
homepage = "https://sourcesup.renater.fr/projects/scientific-py/"
url = "https://sourcesup.renater.fr/frs/download.php/4411/ScientificPython-2.8.1.tar.gz"
diff --git a/var/spack/packages/py-shiboken/package.py b/var/spack/packages/py-shiboken/package.py
index 47abe64e65..e4bf4ce07e 100644
--- a/var/spack/packages/py-shiboken/package.py
+++ b/var/spack/packages/py-shiboken/package.py
@@ -1,4 +1,5 @@
from spack import *
+import os
class PyShiboken(Package):
"""Shiboken generates bindings for C++ libraries using CPython source code."""
@@ -15,6 +16,29 @@ class PyShiboken(Package):
depends_on("libxml2")
depends_on("qt@:4.8")
+ def patch(self):
+ """Undo Shiboken RPATH handling and add Spack RPATH."""
+ # Add Spack's standard CMake args to the sub-builds.
+ # They're called BY setup.py so we have to patch it.
+ pypkg = self.spec['python'].package
+ rpath = self.rpath
+ rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'Shiboken'))
+
+ filter_file(
+ r'OPTION_CMAKE,',
+ r'OPTION_CMAKE, ' + (
+ '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", '
+ '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(rpath)),
+ 'setup.py')
+
+ # Shiboken tries to patch ELF files to remove RPATHs
+ # Disable this and go with the one we set.
+ filter_file(
+ r'^\s*rpath_cmd\(shiboken_path, srcpath\)',
+ r'#rpath_cmd(shiboken_path, srcpath)',
+ 'shiboken_postinstall.py')
+
+
def install(self, spec, prefix):
python('setup.py', 'install',
'--prefix=%s' % prefix,
diff --git a/var/spack/packages/py-sip/package.py b/var/spack/packages/py-sip/package.py
index 06aea35a74..6753bdd2a5 100644
--- a/var/spack/packages/py-sip/package.py
+++ b/var/spack/packages/py-sip/package.py
@@ -1,4 +1,5 @@
from spack import *
+import os
class PySip(Package):
"""SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries."""
@@ -10,6 +11,10 @@ class PySip(Package):
extends('python')
def install(self, spec, prefix):
- python('configure.py')
+ python('configure.py',
+ '--destdir=%s' % site_packages_dir,
+ '--bindir=%s' % spec.prefix.bin,
+ '--incdir=%s' % python_include_dir,
+ '--sipdir=%s' % os.path.join(spec.prefix.share, 'sip'))
make()
make('install')
diff --git a/var/spack/packages/py-virtualenv/package.py b/var/spack/packages/py-virtualenv/package.py
index c1b359e164..9d94c2dcda 100644
--- a/var/spack/packages/py-virtualenv/package.py
+++ b/var/spack/packages/py-virtualenv/package.py
@@ -9,6 +9,7 @@ class PyVirtualenv(Package):
version('1.11.6', 'f61cdd983d2c4e6aeabb70b1060d6f49')
extends('python')
+ depends_on('py-setuptools')
def clean(self):
if os.path.exists('build'):
diff --git a/var/spack/packages/python/package.py b/var/spack/packages/python/package.py
index 4b3b31eb6b..31a12ea653 100644
--- a/var/spack/packages/python/package.py
+++ b/var/spack/packages/python/package.py
@@ -1,6 +1,7 @@
import os
import re
from contextlib import closing
+from llnl.util.lang import match_predicate
from spack import *
import spack
@@ -43,6 +44,11 @@ class Python(Package):
@property
+ def python_include_dir(self):
+ return os.path.join('include', 'python%d.%d' % self.version[:2])
+
+
+ @property
def site_packages_dir(self):
return os.path.join(self.python_lib_dir, 'site-packages')
@@ -58,8 +64,9 @@ class Python(Package):
module.python = Executable(join_path(spec.prefix.bin, 'python'))
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
- module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
- module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir)
+ module.python_lib_dir = os.path.join(ext_spec.prefix, self.python_lib_dir)
+ module.python_include_dir = os.path.join(ext_spec.prefix, self.python_include_dir)
+ module.site_packages_dir = os.path.join(ext_spec.prefix, self.site_packages_dir)
# Make the site packages directory if it does not exist already.
mkdirp(module.site_packages_dir)
@@ -79,28 +86,24 @@ class Python(Package):
def python_ignore(self, ext_pkg, args):
"""Add some ignore files to activate/deactivate args."""
- orig_ignore = args.get('ignore', lambda f: False)
-
- def ignore(filename):
- # Always ignore easy-install.pth, as it needs to be merged.
- patterns = [r'easy-install\.pth$']
+ ignore_arg = args.get('ignore', lambda f: False)
- # Ignore pieces of setuptools installed by other packages.
- if ext_pkg.name != 'py-setuptools':
- patterns.append(r'/site\.pyc?$')
- patterns.append(r'setuptools\.pth')
- patterns.append(r'bin/easy_install[^/]*$')
- patterns.append(r'setuptools.*egg$')
+ # Always ignore easy-install.pth, as it needs to be merged.
+ patterns = [r'easy-install\.pth$']
- return (any(re.search(p, filename) for p in patterns) or
- orig_ignore(filename))
+ # Ignore pieces of setuptools installed by other packages.
+ if ext_pkg.name != 'py-setuptools':
+ patterns.append(r'/site\.pyc?$')
+ patterns.append(r'setuptools\.pth')
+ patterns.append(r'bin/easy_install[^/]*$')
+ patterns.append(r'setuptools.*egg$')
- return ignore
+ return match_predicate(ignore_arg, patterns)
- def write_easy_install_pth(self, extensions):
+ def write_easy_install_pth(self, exts):
paths = []
- for ext in extensions:
+ for ext in sorted(exts.values()):
ext_site_packages = os.path.join(ext.prefix, self.site_packages_dir)
easy_pth = "%s/easy-install.pth" % ext_site_packages
@@ -139,15 +142,16 @@ class Python(Package):
args.update(ignore=self.python_ignore(ext_pkg, args))
super(Python, self).activate(ext_pkg, **args)
- extensions = set(spack.install_layout.get_extensions(self.spec))
- extensions.add(ext_pkg.spec)
- self.write_easy_install_pth(extensions)
+ exts = spack.install_layout.extension_map(self.spec)
+ exts[ext_pkg.name] = ext_pkg.spec
+ self.write_easy_install_pth(exts)
def deactivate(self, ext_pkg, **args):
args.update(ignore=self.python_ignore(ext_pkg, args))
super(Python, self).deactivate(ext_pkg, **args)
- extensions = set(spack.install_layout.get_extensions(self.spec))
- extensions.remove(ext_pkg.spec)
- self.write_easy_install_pth(extensions)
+ exts = spack.install_layout.extension_map(self.spec)
+ if ext_pkg.name in exts: # Make deactivate idempotent.
+ del exts[ext_pkg.name]
+ self.write_easy_install_pth(exts)
diff --git a/var/spack/packages/qhull/package.py b/var/spack/packages/qhull/package.py
new file mode 100644
index 0000000000..9da4078a70
--- /dev/null
+++ b/var/spack/packages/qhull/package.py
@@ -0,0 +1,27 @@
+from spack import *
+
+class Qhull(Package):
+ """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
+ source code runs in 2-d, 3-d, 4-d, and higher dimensions. Qhull
+ implements the Quickhull algorithm for computing the convex
+ hull. It handles roundoff errors from floating point
+ arithmetic. It computes volumes, surface areas, and
+ approximations to the convex hull.
+
+ Qhull does not support triangulation of non-convex surfaces,
+ mesh generation of non-convex objects, medium-sized inputs in
+ 9-D and higher, alpha shapes, weighted Voronoi diagrams,
+ Voronoi volumes, or constrained Delaunay triangulations."""
+
+ homepage = "http://www.qhull.org"
+
+ version('1.0', 'd0f978c0d8dfb2e919caefa56ea2953c',
+ url="http://www.qhull.org/download/qhull-2012.1-src.tgz")
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake('..', *std_cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/packages/qt/package.py b/var/spack/packages/qt/package.py
index 446f7b67a4..30f46c08dc 100644
--- a/var/spack/packages/qt/package.py
+++ b/var/spack/packages/qt/package.py
@@ -78,9 +78,9 @@ class Qt(Package):
'-qt-xcb',
'-optimized-qmake',
'-no-pch',
-# phonon required for py-pyqt4
-# '-no-phonon',
-# '-no-phonon-backend',
+ # phonon required for py-pyqt
+ # '-no-phonon',
+ # '-no-phonon-backend',
'-no-openvg')
make()
make("install")
diff --git a/var/spack/packages/tcl/package.py b/var/spack/packages/tcl/package.py
new file mode 100644
index 0000000000..529adf7788
--- /dev/null
+++ b/var/spack/packages/tcl/package.py
@@ -0,0 +1,22 @@
+from spack import *
+
+class Tcl(Package):
+ """Tcl (Tool Command Language) is a very powerful but easy to
+ learn dynamic programming language, suitable for a very wide
+ range of uses, including web and desktop applications,
+ networking, administration, testing and many more. Open source
+ and business-friendly, Tcl is a mature yet evolving language
+ that is truly cross platform, easily deployed and highly
+ extensible."""
+ homepage = "http://www.tcl.tk"
+
+ version('8.6.3', 'db382feca91754b7f93da16dc4cdad1f',
+ url="http://prdownloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz")
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ with working_dir('unix'):
+ configure("--prefix=%s" % prefix)
+ make()
+ make("install")
diff --git a/var/spack/packages/tk/package.py b/var/spack/packages/tk/package.py
new file mode 100644
index 0000000000..96736f6f95
--- /dev/null
+++ b/var/spack/packages/tk/package.py
@@ -0,0 +1,22 @@
+from spack import *
+
+class Tk(Package):
+ """Tk is a graphical user interface toolkit that takes developing
+ desktop applications to a higher level than conventional
+ approaches. Tk is the standard GUI not only for Tcl, but for
+ many other dynamic languages, and can produce rich, native
+ applications that run unchanged across Windows, Mac OS X, Linux
+ and more."""
+ homepage = "http://www.tcl.tk"
+ url = "http://prdownloads.sourceforge.net/tcl/tk8.6.3-src.tar.gz"
+
+ version('src', '85ca4dbf4dcc19777fd456f6ee5d0221')
+
+ depends_on("tcl")
+
+ def install(self, spec, prefix):
+ with working_dir('unix'):
+ configure("--prefix=%s" % prefix,
+ "--with-tcl=%s" % spec['tcl'].prefix.lib)
+ make()
+ make("install")