diff options
author | Oliver Mader | 2017-01-11 14:26:32 +0100 |
---|---|---|
committer | Oliver Mader | 2017-01-11 14:26:32 +0100 |
commit | eee7360838c6e09d0ad0470e048191d3aebcdb18 (patch) | |
tree | 012ee0dbacb19e355e541b40deab439e592ac7a0 | |
download | aur-eee7360838c6e09d0ad0470e048191d3aebcdb18.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 83 | ||||
-rw-r--r-- | PKGBUILD | 193 | ||||
-rw-r--r-- | python-suffix.patch | 41 | ||||
-rw-r--r-- | soversion-sharedlibs.patch | 26 |
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) |