diff options
-rw-r--r-- | .SRCINFO | 84 | ||||
-rw-r--r-- | .shellcheckrc | 6 | ||||
-rw-r--r-- | PKGBUILD | 150 | ||||
-rw-r--r-- | vtk-freetype-2.10.3.patch | 18 |
4 files changed, 258 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c1093238d765 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,84 @@ +pkgbase = vtk8 + pkgdesc = A software system for 3D computer graphics, image processing, and visualization + pkgver = 8.2.0 + pkgrel = 21 + url = https://www.vtk.org/ + arch = x86_64 + license = BSD + makedepends = cmake + makedepends = boost + makedepends = doxygen + makedepends = ffmpeg + makedepends = gdal + makedepends = gnuplot + makedepends = java-environment + makedepends = openmpi + makedepends = python-matplotlib + makedepends = qt5-base + makedepends = qt5-tools + makedepends = qt5-webkit + makedepends = qt5-x11extras + makedepends = tk + makedepends = unixodbc + makedepends = wget + makedepends = double-conversion + makedepends = eigen + makedepends = expat + makedepends = freetype2 + makedepends = glew + makedepends = hdf5 + makedepends = libjpeg + makedepends = jsoncpp + makedepends = libxml2 + makedepends = lz4 + makedepends = xz + makedepends = python-mpi4py + makedepends = netcdf + makedepends = libogg + makedepends = pdal + makedepends = libpng + makedepends = libtheora + makedepends = libtiff + makedepends = zlib + makedepends = sqlite + depends = gcc-libs + depends = double-conversion + optdepends = gnuplot: plotting tools + optdepends = graphviz: drawing tools + optdepends = java-runtime: java bindings + optdepends = python: python bindings + optdepends = python-mpi4py: OpenMPI python support + optdepends = python-matplotlib: for Matplotlib rendering + optdepends = openmpi: OpenMPI support + optdepends = qt5-x11extras + optdepends = qt5-webkit: WebKit support + optdepends = tk: tcl bindings + optdepends = ffmpeg + optdepends = gdal + optdepends = glew + optdepends = hdf5 + optdepends = jsoncpp + optdepends = lz4 + optdepends = netcdf + optdepends = pdal + optdepends = sqlite + optdepends = unixodbc + provides = vtk=8.2.0 + conflicts = vtk + options = staticlibs + source = https://www.vtk.org//files/release/8.2/VTK-8.2.0.tar.gz + source = https://www.vtk.org//files/release/8.2/VTKData-8.2.0.tar.gz + source = https://www.vtk.org//files/release/8.2/VTKLargeData-8.2.0.tar.gz + source = vtk-python-3.8.patch::https://gitlab.kitware.com/vtk/vtk/merge_requests/5883.patch + source = vtk-gcc10.patch::https://gitlab.kitware.com/vtk/vtk/-/commit/a9079bdc.patch + source = vtk-qt5.15.patch::https://gitlab.kitware.com/vtk/vtk/-/commit/797f2869.patch + source = vtk-freetype-2.10.3.patch + sha512sums = 521bd4dabedbc24b0e80a314a34ecd7554b04af28a7973245e3a9cf99a09b995d1b8ac42305c8e53369f226a0a6da3cdb29105ba2c90b46492736ef717760286 + sha512sums = 517d0f6dfdb0c61f59df933f06d3a28c8a48ea684aaff311456213fe493e2a20128886144325fc4edfa376b2d375a2dae6c60ad6e3d5d2f4a7b0ac1d8545c87b + sha512sums = 8a7ea3d5870b1e4ccb31c77b4c270d00208349da1b2938e957210db3ec1449b678c66edc2faee1d4514aca6d725f642abc91e10ab0c151f6743cad1c53485588 + sha512sums = 05a367dbb21c95f6e03e30c1c520357f60c54074d341b592de8161280c9b90e9e70c19f6b474921cc2f4d2ec17d08a2e76d7dc94c8cef111c72a241684a57b34 + sha512sums = b62127f078686f24501bc3ba2954bdcec846e7d7d1bdaf5f1b9d47ff86881035b81d6e065472228d46521a6ecafbc113adf3a8b8a97ab01a70fe88f47a971d3d + sha512sums = ce4c8822ca4a18f0aa94991ea4df27b340e30ca38d8931cb2929c2226e8cb3a34b15c4ebe4fcb2fa5f940ab132ffe925fdef0236429face93a46d633f272c329 + sha512sums = 01df3947425b510f9c64e72ab2020b02f28141421ad29be94bf118cd7b56cc22702ae329db05bc336284d3edcf3b71d254de10a2784296c691447ee356c76683 + +pkgname = vtk8 diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 000000000000..426d75bb9e30 --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1,6 @@ +# allow unsafe `cd ` +disable=SC2164 +# allow unused variable (pkgname,pkgver etc.) +disable=SC2034 +# allow uninitialized variable (srcdir,pkgdir) +disable=SC2154 diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..8b5a0b64d6d8 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,150 @@ +#!/bin/hint/bash +# Maintainer : bartus <arch-user-repoᘓbartus.33mail.com> + +# og.Maintainer: Evgeniy Alekseev <arcanis at archlinux dot org> +# og.Maintainer: Bruno Pagani <archange at archlinux dot org> +# Contributor: Ray Rashif <schiv at archlinux dot org> +# Contributor: Andrzej Giniewicz <gginiu at gmail dot com> +# Contributor: Thomas Dziedzic <gostrc at gmail> + +pkgname=vtk8 +pkgver=8.2.0 +pkgrel=21 +provides=(vtk=$pkgver) +conflicts=(vtk) +pkgdesc="A software system for 3D computer graphics, image processing, and visualization" +arch=(x86_64) +url="https://www.vtk.org/" +license=(BSD) +depends=(gcc-libs double-conversion) +makedepends=(cmake boost doxygen ffmpeg gdal gnuplot + java-environment openmpi python-matplotlib qt5-base + qt5-tools qt5-webkit qt5-x11extras tk unixodbc wget + double-conversion eigen expat freetype2 glew hdf5 + libjpeg jsoncpp libxml2 lz4 xz python-mpi4py netcdf + libogg pdal libpng libtheora libtiff zlib + sqlite) +optdepends=('gnuplot: plotting tools' + 'graphviz: drawing tools' + 'java-runtime: java bindings' + 'python: python bindings' + 'python-mpi4py: OpenMPI python support' + 'python-matplotlib: for Matplotlib rendering' + 'openmpi: OpenMPI support' + 'qt5-x11extras' + 'qt5-webkit: WebKit support' + 'tk: tcl bindings' + ffmpeg + gdal + glew + hdf5 + jsoncpp + lz4 + netcdf + pdal + sqlite + unixodbc) +source=("${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz" + "${url}/files/release/${pkgver%.*}/VTKData-${pkgver}.tar.gz" + "${url}/files/release/${pkgver%.*}/VTKLargeData-${pkgver}.tar.gz" + vtk-python-3.8.patch::"https://gitlab.kitware.com/vtk/vtk/merge_requests/5883.patch" + vtk-gcc10.patch::"https://gitlab.kitware.com/vtk/vtk/-/commit/a9079bdc.patch" + vtk-qt5.15.patch::"https://gitlab.kitware.com/vtk/vtk/-/commit/797f2869.patch" + vtk-freetype-2.10.3.patch) +options=(staticlibs) +sha512sums=('521bd4dabedbc24b0e80a314a34ecd7554b04af28a7973245e3a9cf99a09b995d1b8ac42305c8e53369f226a0a6da3cdb29105ba2c90b46492736ef717760286' + '517d0f6dfdb0c61f59df933f06d3a28c8a48ea684aaff311456213fe493e2a20128886144325fc4edfa376b2d375a2dae6c60ad6e3d5d2f4a7b0ac1d8545c87b' + '8a7ea3d5870b1e4ccb31c77b4c270d00208349da1b2938e957210db3ec1449b678c66edc2faee1d4514aca6d725f642abc91e10ab0c151f6743cad1c53485588' + '05a367dbb21c95f6e03e30c1c520357f60c54074d341b592de8161280c9b90e9e70c19f6b474921cc2f4d2ec17d08a2e76d7dc94c8cef111c72a241684a57b34' + 'b62127f078686f24501bc3ba2954bdcec846e7d7d1bdaf5f1b9d47ff86881035b81d6e065472228d46521a6ecafbc113adf3a8b8a97ab01a70fe88f47a971d3d' + 'ce4c8822ca4a18f0aa94991ea4df27b340e30ca38d8931cb2929c2226e8cb3a34b15c4ebe4fcb2fa5f940ab132ffe925fdef0236429face93a46d633f272c329' + '01df3947425b510f9c64e72ab2020b02f28141421ad29be94bf118cd7b56cc22702ae329db05bc336284d3edcf3b71d254de10a2784296c691447ee356c76683') + +prepare() { + cd VTK-${pkgver} + + # Fix build with python 3.8 + patch -p1 -i ../vtk-python-3.8.patch + + # Fix build with GCC 10 + patch -d ThirdParty/exodusII/vtkexodusII -p1 -i "$srcdir"/vtk-gcc10.patch + sed -e 's|REGEX MATCH \"\[3-9\]|REGEX MATCH \"[1-9][0-9]|' -i CMake/VTKGenerateExportHeader.cmake + + # Fix build with Qt 5.15 + patch -p1 -i ../vtk-qt5.15.patch + + # Fix build with Java 12 + sed -i 's/VTK_JAVA_SOURCE_VERSION "1.6"/VTK_JAVA_SOURCE_VERSION "1.7"/ + s/VTK_JAVA_TARGET_VERSION "1.6"/VTK_JAVA_TARGET_VERSION "1.7"/' Wrapping/Java/CMakeLists.txt + + # Fix build with FreeType 2.10.3 + patch -p1 -i ../vtk-freetype-2.10.3.patch + + # Fix build with HDF5 1.12.1 + sed -i 's/typedef int hid_t;/typedef int64_t hid_t;/' ThirdParty/xdmf3/vtkxdmf3/core/XdmfHDF5Controller.hpp +} + +build() { + # to help cmake find java + export JAVA_HOME=/usr/lib/jvm/default + + # GL2PS blocked by http://www.vtk.org/Bug/view.php?id=16083 + # LIBHARU blocked by https://github.com/libharu/libharu/pull/157 + # exodusII,kissfft,verdict,VPIC,xdmf2/3,zfp not packaged in Arch + # Note: VTK explicitly disables system GLEW dependency, it uses embedded sources with modifications + local VTK_USE_SYSTEM_LIB="" + # Common with ParaView + for lib in DOUBLECONVERSION EIGEN EXPAT FREETYPE GLEW HDF5 JPEG JSONCPP LIBXML2 LZ4 LZMA MPI4PY NETCDF OGG PNG THEORA TIFF ZLIB; do + VTK_USE_SYSTEM_LIB+="-DVTK_USE_SYSTEM_${lib}=ON " + done + for lib in SQLITE; do + VTK_USE_SYSTEM_LIB+="-DVTK_USE_SYSTEM_${lib}=ON " + done + + local _tkver=$(echo 'puts $tcl_version' | tclsh) + + cmake -B build -S VTK-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_DOCUMENTATION=OFF \ + -DDOXYGEN_KEEP_TEMP=ON \ + -DDOCUMENTATION_HTML_HELP=OFF \ + -DDOCUMENTATION_HTML_TARZ=OFF \ + -DBUILD_EXAMPLES=ON \ + -DXDMF_STATIC_AND_SHARED=OFF \ + -DVTK_USE_FFMPEG_ENCODER=ON \ + -DVTK_BUILD_ALL_MODULES=ON \ + -DModule_vtkIOPDAL=ON \ + -DVTK_USE_LARGE_DATA=ON \ + -DVTK_QT_VERSION="5" \ + -DVTK_WRAP_JAVA=ON \ + -DVTK_WRAP_PYTHON=ON \ + -DVTK_WRAP_TCL=ON \ + -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \ + -DVTK_PYTHON_VERSION="3" \ + -DVTK_CUSTOM_LIBRARY_SUFFIX="" \ + -DVTK_INSTALL_INCLUDE_DIR=include/vtk \ + -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl"${_tkver}"/vtk/ \ + "${VTK_USE_SYSTEM_LIB}" \ + -Wno-dev + make -C build +} + +package() { + make -C build DESTDIR="${pkgdir}" install + + # 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-${pkgver%.*}/java + + # Install license + install -Dm644 VTK-${pkgver}/Copyright.txt -t "${pkgdir}"/usr/share/licenses/${pkgname%8}/ + + # Fix path of QtDesigner plugin + install -dv "${pkgdir}"/usr/lib/qt + mv "${pkgdir}"/usr/plugins "${pkgdir}"/usr/lib/qt/plugins +} diff --git a/vtk-freetype-2.10.3.patch b/vtk-freetype-2.10.3.patch new file mode 100644 index 000000000000..9de2f8384a6c --- /dev/null +++ b/vtk-freetype-2.10.3.patch @@ -0,0 +1,18 @@ +diff --git a/ThirdParty/freetype/vtk_freetype.h.in b/ThirdParty/freetype/vtk_freetype.h.in +index c3f6f4f3..fd525e55 100644 +--- a/ThirdParty/freetype/vtk_freetype.h.in ++++ b/ThirdParty/freetype/vtk_freetype.h.in +@@ -20,6 +20,13 @@ + + #ifdef VTK_USE_SYSTEM_FREETYPE + # include <ft2build.h> ++#ifndef FT_CALLBACK_DEF ++#ifdef __cplusplus ++#define FT_CALLBACK_DEF( x ) extern "C" x ++#else ++#define FT_CALLBACK_DEF( x ) static x ++#endif ++#endif /* FT_CALLBACK_DEF */ + #else + # include <vtkfreetype/include/ft2build.h> + #endif |