6d43a74ef0
- Add python3-vtk to vtk-devel Requires, same as for vtk-java/tcl - Remove empty testing subpackage - Fix path to VTK_DATA_ROOT default directory OBS-URL: https://build.opensuse.org/request/show/657683 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=131
489 lines
16 KiB
RPMSpec
489 lines
16 KiB
RPMSpec
#
|
|
# spec file for package vtk-openmpi
|
|
#
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define compat_gl 0
|
|
%define pkgname vtk
|
|
%define vtklib lib%{pkgname}1-openmpi
|
|
%define shlib %{vtklib}
|
|
|
|
%if 0%{?sle_version} <= 150000
|
|
%define mpiver openmpi2
|
|
%else
|
|
%define mpiver openmpi3
|
|
%endif
|
|
%define mpiprefix %{_libdir}/mpi/gcc/%{mpiver}
|
|
|
|
Name: vtk-openmpi
|
|
Version: 8.1.2
|
|
Release: 0
|
|
%define series 8.1
|
|
# This is a variant BSD license, a cross between BSD and ZLIB.
|
|
# For all intents, it has the same rights and restrictions as BSD.
|
|
# http://fedoraproject.org/wiki/Licensing/BSD#VTKBSDVariant
|
|
Summary: The Visualization Toolkit - A high level 3D visualization library
|
|
License: BSD-3-Clause
|
|
Group: Productivity/Scientific/Other
|
|
URL: http://vtk.org/
|
|
Source: http://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz
|
|
# FIXME See if packaging can be tweaked to accommodate python-vtk's devel files in a devel package later
|
|
# We need to use the compat conditionals here to avoid Factory's source validator from tripping up
|
|
Source1: vtk-rpmlintrc
|
|
# PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME
|
|
Patch1: vtk-fix-file-contains-date-time.patch
|
|
# PATCH-FIX-OPENSUSE 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds
|
|
Patch3: 0001-Allow-compilation-on-GLES-platforms.patch
|
|
# PATCH-FIX-UPSTREAM fix_qt5_example_cmake.patch -- Fix for recent Qt5 version https://gitlab.kitware.com/vtk/vtk/issues/17336
|
|
Patch4: fix_qt5_example_cmake.patch
|
|
BuildRequires: %{mpiver}
|
|
BuildRequires: %{mpiver}-devel
|
|
BuildRequires: R-base-devel
|
|
BuildRequires: chrpath
|
|
BuildRequires: cmake >= 3.4
|
|
BuildRequires: doxygen
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gl2ps-devel
|
|
BuildRequires: gnuplot
|
|
BuildRequires: graphviz
|
|
BuildRequires: hdf5-devel
|
|
BuildRequires: hdf5-openmpi-devel
|
|
BuildRequires: java-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libmysqlclient-devel
|
|
BuildRequires: libnetcdf_c++-devel
|
|
BuildRequires: libtiff-devel
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3-mpi4py-devel
|
|
BuildRequires: python3-numpy-devel
|
|
BuildRequires: python3-qt5-devel
|
|
BuildRequires: wget
|
|
BuildRequires: pkgconfig(Qt5Core)
|
|
BuildRequires: pkgconfig(Qt5OpenGL)
|
|
BuildRequires: pkgconfig(Qt5OpenGLExtensions)
|
|
BuildRequires: pkgconfig(Qt5Sql)
|
|
BuildRequires: pkgconfig(Qt5WebKitWidgets)
|
|
BuildRequires: pkgconfig(Qt5Widgets)
|
|
BuildRequires: pkgconfig(expat)
|
|
BuildRequires: pkgconfig(freetype2)
|
|
BuildRequires: pkgconfig(gl)
|
|
BuildRequires: pkgconfig(jsoncpp)
|
|
BuildRequires: pkgconfig(libavcodec)
|
|
BuildRequires: pkgconfig(libavdevice)
|
|
BuildRequires: pkgconfig(libavformat)
|
|
BuildRequires: pkgconfig(libavutil)
|
|
BuildRequires: pkgconfig(libiodbc)
|
|
BuildRequires: pkgconfig(liblz4) >= 1.7.3
|
|
BuildRequires: pkgconfig(libpng)
|
|
BuildRequires: pkgconfig(libswscale)
|
|
BuildRequires: pkgconfig(netcdf)
|
|
BuildRequires: pkgconfig(tcl)
|
|
BuildRequires: pkgconfig(theora)
|
|
BuildRequires: pkgconfig(tk)
|
|
BuildRequires: pkgconfig(x11)
|
|
BuildRequires: pkgconfig(xt)
|
|
BuildRequires: pkgconfig(zlib)
|
|
%if 0%{?suse_version} >= 1500
|
|
BuildRequires: libboost_graph-devel
|
|
BuildRequires: libboost_graph_parallel-devel
|
|
BuildRequires: libboost_mpi-devel
|
|
BuildRequires: libboost_serialization-devel
|
|
%else
|
|
BuildRequires: boost-devel
|
|
%endif
|
|
Provides: python3-%{name}-qt = %{version}
|
|
%if %{?sles_version}
|
|
BuildRequires: libxml2-devel
|
|
%else
|
|
BuildRequires: pkgconfig(libxml-2.0)
|
|
%endif
|
|
|
|
%description
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
%package -n %{shlib}
|
|
Summary: The Visualization Toolkit - A high level 3D visualization library
|
|
Group: System/Libraries
|
|
Provides: %{name} = %{version}
|
|
|
|
%description -n %{shlib}
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides the shared libraries for VTK.
|
|
|
|
%package devel
|
|
Summary: VTK header files for building C++ code
|
|
Group: Development/Libraries/C and C++
|
|
# not strictly necessary, but required by VTKs cmake files
|
|
Requires: %{mpiver}
|
|
Requires: %{mpiver}-devel
|
|
Requires: %{name}-java = %{version}
|
|
Requires: %{name}-tcl = %{version}
|
|
Requires: %{shlib} = %{version}
|
|
Requires: python3-%{name} = %{version}
|
|
Requires: R-base-devel
|
|
Requires: cmake >= 3.4
|
|
Requires: gcc-c++
|
|
Requires: gl2ps-devel
|
|
Requires: gnuplot
|
|
Requires: graphviz
|
|
Requires: hdf5-devel
|
|
Requires: hdf5-openmpi-devel
|
|
Requires: java-devel
|
|
Requires: libjpeg-devel
|
|
Requires: libmysqlclient-devel
|
|
Requires: libnetcdf_c++-devel
|
|
Requires: libtiff-devel
|
|
Requires: pkgconfig(Qt5Core)
|
|
Requires: pkgconfig(Qt5OpenGL)
|
|
Requires: pkgconfig(Qt5OpenGLExtensions)
|
|
Requires: pkgconfig(Qt5Sql)
|
|
Requires: pkgconfig(Qt5WebKitWidgets)
|
|
Requires: pkgconfig(Qt5Widgets)
|
|
Requires: pkgconfig(expat)
|
|
Requires: pkgconfig(freetype2)
|
|
Requires: pkgconfig(gl)
|
|
Requires: pkgconfig(jsoncpp)
|
|
Requires: pkgconfig(libavcodec)
|
|
Requires: pkgconfig(libavdevice)
|
|
Requires: pkgconfig(libavformat)
|
|
Requires: pkgconfig(libavutil)
|
|
Requires: pkgconfig(libiodbc)
|
|
Requires: pkgconfig(liblz4) >= 1.7.3
|
|
Requires: pkgconfig(libpng)
|
|
Requires: pkgconfig(libswscale)
|
|
Requires: pkgconfig(netcdf)
|
|
Requires: pkgconfig(tcl)
|
|
Requires: pkgconfig(theora)
|
|
Requires: pkgconfig(tk)
|
|
Requires: pkgconfig(x11)
|
|
Requires: pkgconfig(xt)
|
|
Requires: pkgconfig(zlib)
|
|
|
|
%description devel
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This provides development libraries and header files required to
|
|
compile C++ programs that use VTK to do 3D visualisation.
|
|
|
|
%package devel-doc
|
|
Summary: VTK API documentation
|
|
Group: Documentation/HTML
|
|
|
|
%description devel-doc
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This provides the VTK API documentation useful for developing
|
|
programs that use VTK to do 3D visualisation.
|
|
|
|
%package java
|
|
Summary: Java bindings for VTK
|
|
Group: Development/Libraries/Java
|
|
Requires: %{shlib} = %{version}
|
|
|
|
%description java
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides java bindings for VTK.
|
|
|
|
%package -n python3-%{name}
|
|
Summary: Python bindings for VTK
|
|
Group: Development/Libraries/Python
|
|
Requires: %{shlib} = %{version}
|
|
Requires: python3-mpi4py
|
|
Requires: python3-numpy
|
|
Requires: python3-qt5
|
|
Conflicts: python3-vtk
|
|
Conflicts: python3-vtk-compat_gl
|
|
|
|
%description -n python3-%{name}
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides python 3.x bindings for VTK.
|
|
|
|
%package qt
|
|
Summary: Qt Designer plugin for QVTKWidget
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{shlib} = %{version}
|
|
|
|
%description qt
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides a Qt Designer plugin for the QVTKWidget.
|
|
|
|
%package tcl
|
|
Summary: Tcl bindings for VTK
|
|
Group: Development/Languages/Tcl
|
|
Requires: %{shlib} = %{version}
|
|
|
|
%description tcl
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides tcl bindings for VTK.
|
|
|
|
%package examples
|
|
Summary: Examples for VTK
|
|
Group: Documentation/Other
|
|
Requires: %{shlib} = %{version}
|
|
Recommends: vtkdata = %{version}
|
|
|
|
%description examples
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package contains many examples showing how to use VTK.
|
|
Examples are available in the C++, Tcl, Python and Java programming
|
|
languages.
|
|
|
|
|
|
%prep
|
|
%setup -q -n VTK-%{version}
|
|
%patch1 -p1
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
|
|
# Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata
|
|
# otherwise it will break on symlinks.
|
|
grep -rl '\.\./\.\./\.\./\.\./VTKData' . | xargs -r perl -pi -e's,\.\./\.\./\.\./\.\./VTKData,%{_datadir}/vtkdata,g'
|
|
|
|
%build
|
|
source %{mpiprefix}/bin/mpivars.sh
|
|
|
|
export CFLAGS="%{optflags}"
|
|
export CXXFLAGS="%{optflags}"
|
|
|
|
# FindJava.cmake looks for javah executable. However,
|
|
# the build never invokes the tool. Define a bogus
|
|
# Java_JAVAH_EXECUTABLE in order to be able to build
|
|
# with JDK10 that does not have this tool, deprecated
|
|
# since JDK8.
|
|
%cmake \
|
|
-DBUILD_DOCUMENTATION:BOOL=ON \
|
|
-DBUILD_EXAMPLES:BOOL=ON \
|
|
-DBUILD_TESTING:BOOL=OFF \
|
|
-DCMAKE_C_COMPILER:PATH=%{mpiprefix}/bin/mpicc \
|
|
-DCMAKE_CXX_COMPILER::PATH=%{mpiprefix}/bin/mpicxx \
|
|
-DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
|
|
-DJava_JAVAH_EXECUTABLE:PATH=%{_bindir}/true \
|
|
-DModule_vtkTestingCore:BOOL=ON \
|
|
-DModule_vtkTestingRendering:BOOL=ON \
|
|
-DOpenGL_GL_PREFERENCE:STRING='GLVND' \
|
|
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
|
|
-DVTK_EXTERNAL_LIBHARU_IS_SHARED:BOOL=OFF \
|
|
-DVTK_Group_Imaging:BOOL=ON \
|
|
-DVTK_Group_MPI:BOOL=ON \
|
|
-DVTK_Group_Qt:BOOL=ON \
|
|
-DVTK_Group_Rendering:BOOL=ON \
|
|
-DVTK_Group_StandAlone:BOOL=ON \
|
|
-DVTK_Group_Tk:BOOL=ON \
|
|
-DVTK_Group_Views:BOOL=ON \
|
|
-DVTK_INSTALL_ARCHIVE_DIR:PATH=%{_lib} \
|
|
-DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \
|
|
-DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \
|
|
-DVTK_INSTALL_QT_DIR:STRING=%{_lib}/qt5/plugins/designer \
|
|
-DVTK_INSTALL_PYTHON_MODULE_DIR:PATH=%( realpath --relative-to=%{mpiprefix} %{python3_sitearch} ) \
|
|
-DVTK_INSTALL_TCL_DIR:PATH=share/tcl/%{pkgname} \
|
|
-DVTK_PYTHON_VERSION=3 \
|
|
-DVTK_QT_VERSION=5 \
|
|
-DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON \
|
|
-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON \
|
|
-DVTK_USE_SYSTEM_DIY2=OFF \
|
|
-DVTK_USE_SYSTEM_GL2PS=OFF \
|
|
-DVTK_USE_SYSTEM_HDF5:BOOL=ON \
|
|
-DVTK_USE_SYSTEM_LIBHARU:BOOL=OFF \
|
|
-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF \
|
|
-DVTK_USE_SYSTEM_MPI4PY=ON \
|
|
-DVTK_USE_SYSTEM_NETCDF:BOOL=ON \
|
|
-DVTK_WRAP_JAVA:BOOL=ON \
|
|
-DVTK_WRAP_PYTHON:BOOL=ON \
|
|
-DVTK_WRAP_PYTHON_SIP:BOOL=ON \
|
|
-DVTK_WRAP_TCL:BOOL=ON \
|
|
-DCMAKE_INSTALL_PREFIX:PATH=%{mpiprefix}/ \
|
|
-DINCLUDE_INSTALL_DIR:PATH=%{mpiprefix}/include/ \
|
|
-DCMAKE_INSTALL_LIBDIR:PATH=%{mpiprefix}/%{_lib} \
|
|
-DLIB_INSTALL_DIR:PATH=%{mpiprefix}/%{_lib} \
|
|
-DSHARE_INSTALL_PREFIX:PATH=%{mpiprefix}/share/ \
|
|
-DVTK_INSTALL_DOC_DIR:PATH=%( realpath --relative-to=%{mpiprefix} %{_docdir}/%{name}-%{series} )
|
|
|
|
%make_jobs
|
|
make %{?_smp_mflags} DoxygenDoc
|
|
|
|
# Remove executable bits from sources (some of which are generated)
|
|
find . -name \*.c -o -name \*.cxx -o -name \*.h -o -name \*.hxx -o -name \*.gif -exec chmod -x "{}" "+"
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
# List of executable examples
|
|
cat > examples.list << EOF
|
|
AmbientSpheres
|
|
Arrays
|
|
BalloonWidget
|
|
BandedContours
|
|
Cone
|
|
Cone2
|
|
Cone3
|
|
Cone4
|
|
Cone5
|
|
Cone6
|
|
Cube
|
|
Cylinder
|
|
Delaunay3D
|
|
Delaunay3DAlpha
|
|
DiffuseSpheres
|
|
DumpXMLFile
|
|
FilledContours
|
|
FixedPointVolumeRayCastMapperCT
|
|
GPURenderDemo
|
|
Generate2DAMRDataSetWithPulse
|
|
Generate3DAMRDataSetWithPulse
|
|
GenerateCubesFromLabels
|
|
GenerateModelsFromLabels
|
|
HierarchicalBoxPipeline
|
|
ImageSlicing
|
|
LabeledMesh
|
|
Medical1
|
|
Medical2
|
|
Medical3
|
|
Medical4
|
|
MultiBlock
|
|
ParticleReader
|
|
RGrid
|
|
SGrid
|
|
Slider
|
|
Slider2D
|
|
SpecularSpheres
|
|
TubesWithVaryingRadiusAndColors
|
|
finance
|
|
EOF
|
|
|
|
# Install examples
|
|
for file in `cat examples.list`; do
|
|
install -p build/bin/$file %{buildroot}%{mpiprefix}/bin
|
|
done
|
|
perl -pi -e's,^,%{mpiprefix}/bin/,' examples.list
|
|
|
|
%fdupes -s %{buildroot}
|
|
|
|
%check
|
|
# Make sure the python library is at least importable
|
|
source %{_libdir}/mpi/gcc/%{mpiver}/bin/mpivars.sh
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{mpiprefix}/%{_lib}
|
|
export PYTHONPATH=%{buildroot}%{python3_sitearch}
|
|
python3 -c "import vtk"
|
|
|
|
%post -n %{shlib} -p /sbin/ldconfig
|
|
%postun -n %{shlib} -p /sbin/ldconfig
|
|
|
|
%post -n python3-%{name} -p /sbin/ldconfig
|
|
%postun -n python3-%{name} -p /sbin/ldconfig
|
|
|
|
%files -n %{shlib}
|
|
%license Copyright.txt
|
|
%{_libdir}/mpi/gcc/%{mpiver}/%{_lib}/lib*.so.*
|
|
|
|
%files devel
|
|
%license Copyright.txt
|
|
%{mpiprefix}/bin/%{pkgname}EncodeString
|
|
%{mpiprefix}/bin/%{pkgname}HashSource
|
|
%{mpiprefix}/bin/%{pkgname}ParseJava
|
|
%{mpiprefix}/bin/%{pkgname}WrapHierarchy
|
|
%{mpiprefix}/bin/%{pkgname}WrapJava
|
|
%{mpiprefix}/bin/%{pkgname}WrapPython
|
|
%{mpiprefix}/bin/%{pkgname}WrapPythonInit
|
|
%{mpiprefix}/bin/%{pkgname}WrapTcl
|
|
%{mpiprefix}/bin/%{pkgname}WrapTclInit
|
|
%{mpiprefix}/%{_lib}/*.so
|
|
%dir %{mpiprefix}/%{_lib}/cmake/
|
|
%{mpiprefix}/%{_lib}/cmake/%{pkgname}/
|
|
%{mpiprefix}/%{_lib}/libvtkWrappingTools.a
|
|
%{mpiprefix}/include/%{pkgname}-%{series}/
|
|
# VTK JNI bindings
|
|
%exclude %{mpiprefix}/%{_lib}/libvtk*Java.so
|
|
%exclude %{mpiprefix}/%{_lib}/libvtkRenderingPythonTkWidgets*.so
|
|
%exclude %{mpiprefix}/share/tcl/vtk/vtktcl.c
|
|
|
|
%files devel-doc
|
|
%license Copyright.txt
|
|
%{_docdir}/%{name}-%{series}
|
|
|
|
%files java
|
|
%license Copyright.txt
|
|
%{mpiprefix}/%{_lib}/%{pkgname}.jar
|
|
%{mpiprefix}/%{_lib}/libvtk*Java.so
|
|
|
|
%files -n python3-%{name}
|
|
%license Copyright.txt
|
|
%{mpiprefix}/bin/%{pkgname}python
|
|
%{mpiprefix}/bin/p%{pkgname}python
|
|
%{mpiprefix}/%{_lib}/libvtkRenderingPythonTkWidgets*.so
|
|
%{python3_sitearch}/%{pkgname}/
|
|
|
|
%files tcl
|
|
%license Copyright.txt
|
|
%{mpiprefix}/bin/%{pkgname}
|
|
%{mpiprefix}/bin/p%{pkgname}
|
|
%{mpiprefix}/share/tcl
|
|
%{mpiprefix}/share/tcl/%{pkgname}/
|
|
|
|
%files qt
|
|
%license Copyright.txt
|
|
%dir %{mpiprefix}/%{_lib}/qt5/
|
|
%dir %{mpiprefix}/%{_lib}/qt5/plugins/
|
|
%dir %{mpiprefix}/%{_lib}/qt5/plugins/designer/
|
|
%{mpiprefix}/%{_lib}/qt5/plugins/designer/libQVTKWidgetPlugin.so
|
|
|
|
%files examples -f examples.list
|
|
%license Copyright.txt
|
|
|
|
%changelog
|