summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Mader2017-01-11 14:26:32 +0100
committerOliver Mader2017-01-11 14:26:32 +0100
commiteee7360838c6e09d0ad0470e048191d3aebcdb18 (patch)
tree012ee0dbacb19e355e541b40deab439e592ac7a0
downloadaur-eee7360838c6e09d0ad0470e048191d3aebcdb18.tar.gz
Initial commit
-rw-r--r--.SRCINFO83
-rw-r--r--PKGBUILD193
-rw-r--r--python-suffix.patch41
-rw-r--r--soversion-sharedlibs.patch26
4 files changed, 343 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..778f81b6577a
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,83 @@
+pkgbase = vtk-multi-python
+ pkgver = 7.1.0
+ pkgrel = 3
+ url = http://www.vtk.org/
+ arch = i686
+ arch = x86_64
+ license = BSD
+ makedepends = boost
+ makedepends = cmake
+ makedepends = ninja
+ makedepends = java-environment
+ makedepends = doxygen
+ makedepends = gnuplot
+ makedepends = tk
+ makedepends = wget
+ makedepends = python2-matplotlib
+ makedepends = python2-twisted
+ makedepends = python2-mpi4py
+ makedepends = python2-autobahn
+ makedepends = python-matplotlib
+ makedepends = python-twisted
+ makedepends = python-mpi4py
+ makedepends = python-autobahn
+ makedepends = unixodbc
+ makedepends = gdal
+ makedepends = openmpi
+ makedepends = mariadb
+ makedepends = glew
+ makedepends = ffmpeg
+ makedepends = lesstif
+ makedepends = qt5-base
+ makedepends = qt5-x11extras
+ makedepends = qt5-tools
+ makedepends = qt5-webkit
+ makedepends = jsoncpp
+ depends = gcc-libs
+ optdepends = java-runtime: java bindings
+ optdepends = tk: tcl bindings
+ optdepends = gnuplot: plotting tools
+ optdepends = graphviz: drawing tools
+ optdepends = openmpi: OpenMPI support
+ optdepends = qt5-x11extras
+ optdepends = qt5-webkit: WebKit support
+ optdepends = unixodbc
+ optdepends = glew
+ optdepends = gdal
+ optdepends = mariadb
+ optdepends = ffmpeg
+ optdepends = jsoncpp
+ options = staticlibs
+ options = !emptydirs
+ source = http://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gz
+ source = http://www.vtk.org/files/release/7.1/VTKData-7.1.0.tar.gz
+ source = http://www.vtk.org/files/release/7.1/VTKLargeData-7.1.0.tar.gz
+ source = soversion-sharedlibs.patch
+ source = python-suffix.patch
+ sha1sums = d3701ff23cb935e107e00174cf75d45a7a9cbdda
+ sha1sums = d67694b32b8720a081fefac3a26b317b81e785c2
+ sha1sums = bfcf4f87e53f81b7e6bd980e7b0137cef156f66c
+ sha1sums = a597aa42e6f623b346c16db36aea31df29bdd8da
+ sha1sums = 823f10356ddc86d22629ee5a804f22145af91b6d
+
+pkgname = vtk
+ pkgdesc = A software system for 3D computer graphics, image processing, and visualization
+
+pkgname = python2-vtk
+ pkgdesc = Python bindings for VTK
+ depends = vtk
+ depends = python2-matplotlib
+ depends = python2-twisted
+ depends = python2-autobahn
+ depends = python2-mpi4py
+
+pkgname = python-vtk
+ pkgdesc = Python bindings for VTK
+ depends = vtk
+ depends = python-matplotlib
+ depends = python-twisted
+ depends = python-autobahn
+ depends = python-mpi4py
+ depends = gdal
+ depends = unixodbc
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..b9cb3eb83074
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,193 @@
+# $Id$
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Andrzej Giniewicz <gginiu@gmail.com>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Oliver Mader <b52@reaktor42.de>
+
+pkgbase='vtk-multi-python'
+pkgname=('vtk' 'python2-vtk' 'python-vtk')
+pkgver=7.1.0
+_majorver=7.1
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://www.vtk.org/'
+license=('BSD')
+depends=('gcc-libs')
+makedepends=('boost' 'cmake' 'ninja' 'java-environment' 'doxygen' 'gnuplot' 'tk' 'wget' 'python2-matplotlib' 'python2-twisted' 'python2-mpi4py' 'python2-autobahn' 'python-matplotlib' 'python-twisted' 'python-mpi4py' 'python-autobahn' 'unixodbc' 'gdal' 'openmpi' 'mariadb' 'glew' 'ffmpeg' 'lesstif' 'qt5-base' 'qt5-x11extras' 'qt5-tools' 'qt5-webkit' 'jsoncpp')
+optdepends=('java-runtime: java bindings'
+ 'tk: tcl bindings'
+ 'gnuplot: plotting tools'
+ 'graphviz: drawing tools'
+ 'openmpi: OpenMPI support'
+ 'qt5-x11extras'
+ 'qt5-webkit: WebKit support'
+ 'unixodbc'
+ 'glew'
+ 'gdal'
+ 'mariadb'
+ 'ffmpeg'
+ 'jsoncpp')
+source=("http://www.vtk.org/files/release/${_majorver}/VTK-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${_majorver}/VTKData-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${_majorver}/VTKLargeData-${pkgver}.tar.gz"
+ 'soversion-sharedlibs.patch'
+ 'python-suffix.patch')
+options=(staticlibs !emptydirs)
+sha1sums=('d3701ff23cb935e107e00174cf75d45a7a9cbdda'
+ 'd67694b32b8720a081fefac3a26b317b81e785c2'
+ 'bfcf4f87e53f81b7e6bd980e7b0137cef156f66c'
+ 'a597aa42e6f623b346c16db36aea31df29bdd8da'
+ '823f10356ddc86d22629ee5a804f22145af91b6d')
+
+prepare() {
+ cd "${srcdir}/VTK-${pkgver}"
+
+ patch -p1 -i "${srcdir}/soversion-sharedlibs.patch"
+ patch -p1 -i "${srcdir}/python-suffix.patch"
+}
+
+build() {
+ cd "${srcdir}"
+
+ rm -rf build-py2 build-py3
+ mkdir build-py2 build-py3
+
+ # to help cmake find java
+ export JAVA_HOME=/usr/lib/jvm/default
+
+ # flags to enable using system libs
+ local cmake_system_flags=""
+ # TODO: try to use system provided XDMF2, XDMF3, LIBPROJ4 NETCDF, HDF5
+ # VTK fails to compile with recent netcdf-cxx package, VTK should be ported to the latest API
+ # VTK does not work with XDMF2 compiled from git. TODO: make vtk compatible with system XDMF library.
+ # Note: VTK explicitly disables system GLEW dependency, it uses embedded sources with modifications
+ # Note: system HDF5 is incompatible
+ for lib in EXPAT FREETYPE JPEG PNG TIFF ZLIB LIBXML2 OGGTHEORA TWISTED ZOPE SIX AUTOBAHN MPI4PY JSONCPP GLEW; do
+ cmake_system_flags+="-DVTK_USE_SYSTEM_${lib}:BOOL=ON "
+ done
+
+ cd build-py2
+
+ local _tkver=$(echo 'puts $tcl_version' | tclsh)
+
+ # flags to use python2 instead of python which is 3.x.x on archlinux
+ # system gl2ps is not used because of http://www.vtk.org/Bug/view.php?id=16083
+ local cmake_system_python_flags="-DPYTHON_EXECUTABLE:PATH=/usr/bin/python2 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python2.7 -DPYTHON_LIBRARY:PATH=/usr/lib/libpython2.7.so"
+
+ cmake \
+ -Wno-dev \
+ -DVTK_USE_SYSTEM_HDF5:BOOL=OFF \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
+ -DBUILD_DOCUMENTATION:BOOL=ON \
+ -DDOCUMENTATION_HTML_HELP:BOOL=ON \
+ -DDOCUMENTATION_HTML_TARZ:BOOL=ON \
+ -DBUILD_EXAMPLES:BOOL=ON \
+ -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \
+ -DVTK_BUILD_ALL_MODULES:BOOL=ON \
+ -DVTK_USE_LARGE_DATA:BOOL=ON \
+ -DVTK_QT_VERSION:STRING="5" \
+ -DVTK_WRAP_JAVA:BOOL=ON \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \
+ -DVTK_CUSTOM_LIBRARY_SUFFIX="" \
+ -DVTK_INSTALL_INCLUDE_DIR:PATH=include/vtk \
+ -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \
+ ${cmake_system_flags} \
+ ${cmake_system_python_flags} \
+ -DCMAKE_BUILD_TYPE=Release \
+ "${srcdir}/VTK-$pkgver" \
+ -GNinja
+
+ ninja
+
+ cd ../build-py3
+
+ local cmake_system_python_flags="-DPYTHON_EXECUTABLE:PATH=/usr/bin/python -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.6m -DPYTHON_LIBRARY:PATH=/usr/lib/libpython3.6m.so"
+
+ cmake \
+ -Wno-dev \
+ -DVTK_USE_SYSTEM_HDF5:BOOL=OFF \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
+ -DBUILD_DOCUMENTATION:BOOL=ON \
+ -DDOCUMENTATION_HTML_HELP:BOOL=ON \
+ -DDOCUMENTATION_HTML_TARZ:BOOL=ON \
+ -DBUILD_EXAMPLES:BOOL=ON \
+ -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \
+ -DVTK_BUILD_ALL_MODULES:BOOL=ON \
+ -DVTK_USE_LARGE_DATA:BOOL=ON \
+ -DVTK_QT_VERSION:STRING="5" \
+ -DVTK_WRAP_JAVA:BOOL=ON \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \
+ -DVTK_CUSTOM_LIBRARY_SUFFIX="" \
+ -DVTK_INSTALL_INCLUDE_DIR:PATH=include/vtk \
+ -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \
+ ${cmake_system_flags} \
+ ${cmake_system_python_flags} \
+ -DCMAKE_BUILD_TYPE=Release \
+ "${srcdir}/VTK-$pkgver" \
+ -GNinja
+
+ ninja
+}
+
+package_vtk() {
+ pkgdesc='A software system for 3D computer graphics, image processing, and visualization'
+
+ cd "${srcdir}/build-py3"
+
+ DESTDIR="${pkgdir}" ninja install
+
+ # Python stuff in seperate packages
+ find "${pkgdir}" -ipath "${pkgdir}"'*python*' \( -type f -o -type l \) -delete
+
+ # Move the vtk.jar to the arch-specific location
+ install -dv "${pkgdir}/usr/share/java/vtk"
+ mv -v "${pkgdir}/usr/lib/vtk.jar" "${pkgdir}/usr/share/java/vtk"
+ rm -rf "${pkgdir}/usr/lib/vtk-${_majorver}/java"
+
+ # Install license
+ install -dv "${pkgdir}/usr/share/licenses/vtk"
+ install -m644 "${srcdir}/VTK-$pkgver/Copyright.txt" "${pkgdir}/usr/share/licenses/vtk"
+
+ # Fix path of QtDesigner plugin
+ install -dv "${pkgdir}/usr/lib/qt5"
+ mv "$pkgdir"/usr/plugins "$pkgdir"/usr/lib/qt5/plugins
+}
+
+package_python-vtk() {
+ pkgdesc='Python bindings for VTK'
+ depends=('vtk' 'python-matplotlib' 'python-twisted' 'python-autobahn' 'python-mpi4py' 'gdal' 'unixodbc')
+
+ cd "${srcdir}/build-py3"
+
+ DESTDIR="${pkgdir}" ninja install
+
+ find "${pkgdir}" ! -ipath "${pkgdir}"'*python*' \( -type f -o -type l \) -delete
+}
+
+package_python2-vtk() {
+ pkgdesc='Python bindings for VTK'
+ depends=('vtk' 'python2-matplotlib' 'python2-twisted' 'python2-autobahn' 'python2-mpi4py')
+
+ cd "${srcdir}/build-py2"
+
+ DESTDIR="${pkgdir}" ninja install
+
+ find "${pkgdir}" ! \( -path '*/usr/lib/python2.7/*' -o -name 'vtkpython' -o -name 'pvtkpython' -o -name '*Python27*' -o -name '*Py27*' \) \( -type f -o -type l \) -delete
+
+ mv "${pkgdir}/usr/bin/vtkpython" "${pkgdir}/usr/bin/vtkpython2"
+ mv "${pkgdir}/usr/bin/pvtkpython" "${pkgdir}/usr/bin/pvtkpython2"
+
+ sed -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \
+ -i $(find "${pkgdir}" -name '*.py')
+}
+
diff --git a/python-suffix.patch b/python-suffix.patch
new file mode 100644
index 000000000000..69e992a6e74a
--- /dev/null
+++ b/python-suffix.patch
@@ -0,0 +1,41 @@
+diff -Naurp VTK-7.1.0.orig/CMake/vtkModuleMacros.cmake VTK-7.1.0/CMake/vtkModuleMacros.cmake
+--- VTK-7.1.0.orig/CMake/vtkModuleMacros.cmake 2017-01-11 13:25:54.749566881 +0100
++++ VTK-7.1.0/CMake/vtkModuleMacros.cmake 2017-01-11 13:39:14.654326081 +0100
+@@ -706,6 +706,27 @@ VTK_AUTOINIT(${vtk-module})
+ #endif")
+ endif()
+
++ # If module has vtkPython as a dependency, add PyXY to OUTPUT_NAME
++ set(_stack ${vtk-module})
++ set(_link_depends)
++ while(_stack)
++ list(GET _stack 0 _front)
++ list(REMOVE_AT _stack 0)
++ list(APPEND _stack ${${_front}_LINK_DEPENDS})
++ list(APPEND _link_depends ${${_front}_LINK_DEPENDS})
++ endwhile()
++ if(_link_depends)
++ list(FIND _link_depends vtkPython _index)
++ if(${_index} GREATER -1)
++ find_package(PythonLibs REQUIRED)
++ set(_py_suffix Py${PYTHON_MAJOR_VERSION}${PYTHON_MINOR_VERSION})
++ get_property(_output_name TARGET ${vtk-module} PROPERTY OUTPUT_NAME)
++ string(REPLACE "${vtk-module}" "${vtk-module}${_py_suffix}"
++ _output_name "${_output_name}")
++ set_property(TARGET ${vtk-module} PROPERTY OUTPUT_NAME ${_output_name})
++ endif()
++ endif()
++
+ # Generate the export macro header for symbol visibility/Windows DLL declspec
+ if(target_suffix)
+ set(${vtk-module}${target_suffix}_EXPORT_CODE
+diff -Naurp VTK-7.1.0.orig/Wrapping/PythonCore/CMakeLists.txt VTK-7.1.0/Wrapping/PythonCore/CMakeLists.txt
+--- VTK-7.1.0.orig/Wrapping/PythonCore/CMakeLists.txt 2017-01-11 13:25:56.542938555 +0100
++++ VTK-7.1.0/Wrapping/PythonCore/CMakeLists.txt 2017-01-11 13:39:38.301621247 +0100
+@@ -44,6 +44,3 @@ set(${vtk-module}_INCLUDE_DIRS)
+
+ set(XY ${PYTHON_MAJOR_VERSION}${PYTHON_MINOR_VERSION})
+ vtk_module_library(${vtk-module} ${Module_SRCS})
+-get_property(output_name TARGET ${vtk-module} PROPERTY OUTPUT_NAME)
+-string(REPLACE "Python" "Python${XY}" output_name "${output_name}")
+-set_property(TARGET ${vtk-module} PROPERTY OUTPUT_NAME ${output_name})
diff --git a/soversion-sharedlibs.patch b/soversion-sharedlibs.patch
new file mode 100644
index 000000000000..3157a3405bc4
--- /dev/null
+++ b/soversion-sharedlibs.patch
@@ -0,0 +1,26 @@
+diff -Naurp VTK-7.1.0.orig/CMake/vtkModuleMacros.cmake VTK-7.1.0/CMake/vtkModuleMacros.cmake
+--- VTK-7.1.0.orig/CMake/vtkModuleMacros.cmake 2017-01-11 13:25:54.749566881 +0100
++++ VTK-7.1.0/CMake/vtkModuleMacros.cmake 2017-01-11 13:34:22.100415955 +0100
+@@ -414,8 +414,8 @@ endfunction()
+ function(vtk_target_name _name)
+ get_property(_type TARGET ${_name} PROPERTY TYPE)
+ if(NOT "${_type}" STREQUAL EXECUTABLE AND NOT VTK_JAVA_INSTALL)
+- set_property(TARGET ${_name} PROPERTY VERSION 1)
+- set_property(TARGET ${_name} PROPERTY SOVERSION 1)
++ set_property(TARGET ${_name} PROPERTY VERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}.${VTK_BUILD_VERSION})
++ set_property(TARGET ${_name} PROPERTY SOVERSION ${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION})
+ endif()
+ if("${_name}" MATCHES "^[Vv][Tt][Kk]")
+ set(_vtk "")
+diff -Naurp VTK-7.1.0.orig/Rendering/Tk/CMakeLists.txt VTK-7.1.0/Rendering/Tk/CMakeLists.txt
+--- VTK-7.1.0.orig/Rendering/Tk/CMakeLists.txt 2017-01-11 13:25:56.109595957 +0100
++++ VTK-7.1.0/Rendering/Tk/CMakeLists.txt 2017-01-11 13:35:31.808573343 +0100
+@@ -118,7 +118,7 @@ if(TK_FOUND AND VTK_USE_TK)
+ vtk_target_install(vtkRenderingPythonTkWidgets)
+
+ set_property(TARGET vtkRenderingPythonTkWidgets PROPERTY OUTPUT_NAME
+- vtkRenderingPythonTkWidgets-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION})
++ vtkRenderingPythonTkWidgets)
+
+ set(Module_PYTHON_LIBS ${VTK_TK_LIBRARIES})
+ if(VTK_USE_X)