summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMark Olesen <Mark.Olesen@gmx.net>2017-03-28 15:09:22 +0200
committerAdam J. Stewart <ajstewart426@gmail.com>2017-03-28 08:09:22 -0500
commit89d08c5be4006f5a11901e555a72678a45a556eb (patch)
tree489bd2100bfff49c7e444f4bbd236679a0482ef4 /var
parentc20cd73b4a7c750f4d3b9614a37ffb79a47ce76c (diff)
downloadspack-89d08c5be4006f5a11901e555a72678a45a556eb.tar.gz
spack-89d08c5be4006f5a11901e555a72678a45a556eb.tar.bz2
spack-89d08c5be4006f5a11901e555a72678a45a556eb.tar.xz
spack-89d08c5be4006f5a11901e555a72678a45a556eb.zip
CONFIG: update versions for paraview (#3537)
- drop old TCL support from paraview build. - add +plugins variant to have include directories installed. This is enabled by default since the additional diskspace for includes is really minimal and since this also allows re-use of the VTK libraries from ParaView without necessarily requiring a separate VTK installation. - +opengl2 is now the default. As per all newer VTK and paraview versions. BUG: broken install for paraview-5.0.1 with includes and without python - incorrect conditional for ui_pqExportStateWizard.h when python is disabled and includes are to be installed. gcc compiler detection patch. These have both been fixed in paraview 5.3.0 ENH: refactor as a CMakePackage. - Note that "spack install paraview" works as expected, but "spack build paraview" fails in weird unrelated ways.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/paraview/gcc-compiler-pv501.patch22
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py150
-rw-r--r--var/spack/repos/builtin/packages/paraview/stl-reader-pv440.patch11
-rw-r--r--var/spack/repos/builtin/packages/paraview/ui_pqExportStateWizard.patch11
4 files changed, 126 insertions, 68 deletions
diff --git a/var/spack/repos/builtin/packages/paraview/gcc-compiler-pv501.patch b/var/spack/repos/builtin/packages/paraview/gcc-compiler-pv501.patch
new file mode 100644
index 0000000000..bb3be1832f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/gcc-compiler-pv501.patch
@@ -0,0 +1,22 @@
+--- ParaView-5.0.1.orig/VTK/CMake/vtkCompilerExtras.cmake 2016-03-28 17:07:10.000000000 +0200
++++ ParaView-5.0.1/VTK/CMake/vtkCompilerExtras.cmake 2016-12-13 17:21:25.382720945 +0100
+@@ -32,7 +32,7 @@
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
+
+- string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
++ string (REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
+ _gcc_version "${_gcc_version_info}")
+ if(NOT _gcc_version)
+ string (REGEX REPLACE ".*\\(GCC\\).*([34]\\.[0-9]).*" "\\1.0"
+--- ParaView-5.0.1.orig/VTK/CMake/GenerateExportHeader.cmake 2016-03-28 17:07:10.000000000 +0200
++++ ParaView-5.0.1/VTK/CMake/GenerateExportHeader.cmake 2016-12-13 17:21:25.382720945 +0100
+@@ -166,7 +166,7 @@
+ execute_process(COMMAND ${CMAKE_C_COMPILER} ARGS --version
+ OUTPUT_VARIABLE _gcc_version_info
+ ERROR_VARIABLE _gcc_version_info)
+- string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]*"
++ string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
+ _gcc_version "${_gcc_version_info}")
+ # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
+ # patch level, handle this here:
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 252f58247f..d21b700e09 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -25,32 +25,36 @@
from spack import *
-class Paraview(Package):
+class Paraview(CMakePackage):
+ """ParaView is an open-source, multi-platform data analysis and
+ visualization application."""
+
homepage = 'http://www.paraview.org'
- url = 'http://www.paraview.org/files/v5.0/ParaView-v'
- _url_str = 'http://www.paraview.org/files/v%s/ParaView-v%s-source.tar.gz'
+ url = "http://www.paraview.org/files/v5.3/ParaView-v5.3.0.tar.gz"
+ _urlfmt = 'http://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.gz'
+ version('5.3.0', '68fbbbe733aa607ec13d1db1ab5eba71')
+ version('5.2.0', '4570d1a2a183026adb65b73c7125b8b0')
+ version('5.1.2', '44fb32fc8988fcdfbc216c9e40c3e925')
+ version('5.0.1', 'fdf206113369746e2276b95b257d2c9b')
version('4.4.0', 'fa1569857dd680ebb4d7ff89c2227378')
- version('5.0.0', '4598f0b421460c8bbc635c9a1c3bdbee')
+ variant('plugins', default=True,
+ description='Install include files for plugins support')
variant('python', default=False, description='Enable Python support')
-
- variant('tcl', default=False, description='Enable TCL support')
-
variant('mpi', default=True, description='Enable MPI support')
-
variant('osmesa', default=False, description='Enable OSMesa support')
- variant('qt', default=False, description='Enable Qt support')
- variant('opengl2', default=False, description='Enable OpenGL2 backend')
+ variant('qt', default=False, description='Enable Qt (gui) support')
+ variant('opengl2', default=True, description='Enable OpenGL2 backend')
depends_on('python@2:2.7', when='+python')
depends_on('py-numpy', when='+python', type='run')
depends_on('py-matplotlib', when='+python', type='run')
- depends_on('tcl', when='+tcl')
depends_on('mpi', when='+mpi')
depends_on('qt@:4', when='+qt')
+ # TODO# depends_on('qt@:4', when='@:5.2.0+qt')
+ # TODO# depends_on('qt@5', when='@5.3.0:+qt')
- depends_on('cmake', type='build')
depends_on('bzip2')
depends_on('freetype')
# depends_on('hdf5+mpi', when='+mpi')
@@ -65,61 +69,71 @@ class Paraview(Package):
# depends_on('sqlite') # external version not supported
depends_on('zlib')
+ patch('stl-reader-pv440.patch', when='@4.4.0')
+
+ # Broken gcc-detection - improved in 5.1.0, redundant later
+ patch('gcc-compiler-pv501.patch', when='@:5.0.1')
+
+ # Broken installation (ui_pqExportStateWizard.h) - fixed in 5.2.0
+ patch('ui_pqExportStateWizard.patch', when='@:5.1.2')
+
def url_for_version(self, version):
"""Handle ParaView version-based custom URLs."""
- return self._url_str % (version.up_to(2), version)
-
- 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'))
- if '+python' in spec:
- feature_args.append(
- '-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python'
- % spec['python'].prefix)
- feature_args.append('-DPARAVIEW_USE_MPI:BOOL=%s' %
- feature_to_bool('+mpi'))
- if '+mpi' in spec:
- feature_args.append(
- '-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix)
- 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)
-
- if 'darwin' in self.spec.architecture:
- feature_args.append('-DVTK_USE_X:BOOL=OFF')
- feature_args.append(
- '-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON')
-
- cmake('..',
- '-DCMAKE_INSTALL_PREFIX:PATH=%s' % prefix,
- '-DBUILD_TESTING:BOOL=OFF',
- '-DVTK_USE_SYSTEM_FREETYPE:BOOL=ON',
- '-DVTK_USE_SYSTEM_HDF5:BOOL=OFF',
- '-DVTK_USE_SYSTEM_JPEG:BOOL=ON',
- '-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON',
- '-DVTK_USE_SYSTEM_NETCDF:BOOL=OFF',
- '-DVTK_USE_SYSTEM_TIFF:BOOL=ON',
- '-DVTK_USE_SYSTEM_ZLIB:BOOL=ON',
- *feature_args)
- make()
- make('install')
+ if version < Version('5.1.0'):
+ return self._urlfmt.format(version.up_to(2), version, '-source')
+ else:
+ return self._urlfmt.format(version.up_to(2), version, '')
+
+ def cmake_args(self):
+ """Populate cmake arguments for ParaView."""
+ spec = self.spec
+
+ def variant_bool(feature, on='ON', off='OFF'):
+ """Ternary for spec variant to ON/OFF string"""
+ if feature in spec:
+ return on
+ return off
+
+ def nvariant_bool(feature):
+ """Negated ternary for spec variant to OFF/ON string"""
+ return variant_bool(feature, on='OFF', off='ON')
+
+ rendering = variant_bool('+opengl2', 'OpenGL2', 'OpenGL')
+ includes = variant_bool('+plugins')
+
+ cmake_args = [
+ '-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % variant_bool('+qt'),
+ '-DVTK_OPENGL_HAS_OSMESA:BOOL=%s' % variant_bool('+osmesa'),
+ '-DVTK_USE_X:BOOL=%s' % nvariant_bool('+osmesa'),
+ '-DVTK_RENDERING_BACKEND:STRING=%s' % rendering,
+ '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=%s' % includes,
+ '-DBUILD_TESTING:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_FREETYPE:BOOL=ON',
+ '-DVTK_USE_SYSTEM_HDF5:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_JPEG:BOOL=ON',
+ '-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON',
+ '-DVTK_USE_SYSTEM_NETCDF:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_TIFF:BOOL=ON',
+ '-DVTK_USE_SYSTEM_ZLIB:BOOL=ON',
+ ]
+
+ if '+python' in spec:
+ cmake_args.extend([
+ '-DPARAVIEW_ENABLE_PYTHON:BOOL=ON',
+ '-DPYTHON_EXECUTABLE:FILEPATH=%s/bin/python'
+ % spec['python'].prefix
+ ])
+
+ if '+mpi' in spec:
+ cmake_args.extend([
+ '-DPARAVIEW_USE_MPI:BOOL=ON',
+ '-DMPIEXEC:FILEPATH=%s/bin/mpiexec' % spec['mpi'].prefix
+ ])
+
+ if 'darwin' in self.spec.architecture:
+ cmake_args.extend([
+ '-DVTK_USE_X:BOOL=OFF',
+ '-DPARAVIEW_DO_UNIX_STYLE_INSTALLS:BOOL=ON',
+ ])
+
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/paraview/stl-reader-pv440.patch b/var/spack/repos/builtin/packages/paraview/stl-reader-pv440.patch
new file mode 100644
index 0000000000..06907fd895
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/stl-reader-pv440.patch
@@ -0,0 +1,11 @@
+--- ParaView-4.4.0.orig/VTK/IO/Geometry/vtkSTLReader.cxx 2015-09-11 19:59:24.000000000 +0200
++++ ParaView-4.4.0/VTK/IO/Geometry/vtkSTLReader.cxx 2016-06-19 12:59:50.769770143 +0200
+@@ -448,7 +448,7 @@
+ done = done || (fscanf(fp,"%s", line)==EOF);
+ }
+ }
+- if (!done)
++ else if (!done)
+ {
+ done = (fgets(line, 255, fp) == 0);
+ lineCount++;
diff --git a/var/spack/repos/builtin/packages/paraview/ui_pqExportStateWizard.patch b/var/spack/repos/builtin/packages/paraview/ui_pqExportStateWizard.patch
new file mode 100644
index 0000000000..2983af56ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/ui_pqExportStateWizard.patch
@@ -0,0 +1,11 @@
+--- ParaView-5.0.1.orig/Qt/Components/CMakeLists.txt 2016-03-28 17:07:03.000000000 +0200
++++ ParaView-5.0.1/Qt/Components/CMakeLists.txt 2016-12-13 17:38:42.713553032 +0100
+@@ -656,7 +656,7 @@
+ #the pqSGExportStateWizard has subclasses that directly access
+ #the UI file, and currently we don't have a clean way to break this hard
+ #dependency, so for no we install this ui file.
+-if(PARAVIEW_INSTALL_DEVELOPMENT_FILES)
++if(PARAVIEW_INSTALL_DEVELOPMENT_FILES AND PARAVIEW_ENABLE_PYTHON)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_pqExportStateWizard.h"
+ DESTINATION "${VTK_INSTALL_INCLUDE_DIR}")
+ endif()