vtk/vtk.spec
Stefan Brüns 51b5f32e7a Accepting request 933606 from home:StefanBruens:branches:science
- Update to version 9.1.0, see:
  https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/release/9.1.md
- Drop upstream patches:
  + 0001-clean-up-some-old-opengl-es-stuff.patch
  + 0001-expose-1d-texture-options.patch
  + 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch
  + 0001-Allow-compilation-on-GLES-platforms.patch
  + 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch
  + 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch
  + 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch
  + 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch
  + 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch
  + vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch
  + vtk-std_numeric_limits.patch
- Rebase:
  + 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch
  + 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
  + 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch
- Replace openSUSE python hack with upstreamable solution:
  + vtk-opensuse-python-metadata.patch ->
    0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch,
    0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch
- Add:
  + 0001-Add-missing-libm-link-library-to-kissfft-module.patch
- Remove Leap 15.1 support from specfile
- Remove openmpi1 flavor, add openmpi4
- Drop GNU R dependency (removed with VTK 8.1.0)
- Add vtk-opensuse-python-metadata.patch:
  Installing without VTK_BUILD_WHEEL lacks the dist-info/egg-info
  metadata. When a user installs python packages which depend
  on vtk through pip (into the user home or into a virtualenv),
  pip does not recognize the files installed into site-packages
  without the metadata and pulls in a big manylinux wheel from
  PyPI. We introduce the necessary egg-info metadata in order to
  avoid this.
- python3-vtk: Don't own the arch site-packages (%python3_sitearch)
  and the toplevel __pycache__ dir, only our own python files.
- Move qt and python .so devel files to main devel package, adjust
  rpmlintrc: The devel files are not required by the
  python bindings (anymore?).
- Add vtk-std_numeric_limits.patch in order to fix gcc 11.1 build
  https://gitlab.kitware.com/vtk/vtk/-/issues/18194
- Require %{name}-qt in python3-%{name}: The Python bindings link
  to libvtkRenderingQt.so.1, but zypper fails to resolve the
  requirement to the correct (non-)mpi flavor -- boo#1187161
- Change description: The vtk-qt subpackage provides some Qt
  libraries, not a designer plugin.
- Support for QtWebkit was removed with vtk 9.0.0: Remove the build
  requirement.
- Add vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch to fix
  compilation with FreeType 2.10.3+
- Update to version 9.0.1:
  * Drop obsolete patches:
    + bundled_exodusii_add_missing_libpthread.patch
    + vtk-parallelgeometry-dependency.patch
    + vtk-qt-5.15-include-QPainterPath.patch
- Explicitly enable module RenderingContextOpenGL2 required for PCL
- Conditionally add pugixml-devel Requires in devel package
- Make devel package installable even when built without Java
- Remove CAPITALIZATION from comments
- Drop obsolete TK build dependency
- Drop unused wget build dependency
- Wrap devel-doc generation in bcond (keep defaulted to off), and
  drop the essentially empty package when disabled.
- Fix build on ARM/Qt GLES (boo#1172723):
  * set VTK_OPENGL_USE_GLES
  * Add 0001-clean-up-some-old-opengl-es-stuff.patch
  * Add 0001-expose-1d-texture-options.patch
  * Add 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch
  * Rebase 0001-Allow-compilation-on-GLES-platforms.patch
  * Add 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch
  * Add 0001-Use-2D-textures-for-1D-texture-emulation-on-GLES.patch
  * Add 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch
  * Add 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
  * Add 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
  * Add 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch
  * Add 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch
  * Add 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch
- Add 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch
- Add 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch
- Drop -ffat-lto-objects to avoid wasting disk space
- Update _constraints to avoid OOM errors
- Add vtk-qt-5.15-include-QPainterPath.patch: Include QPainterPath
  to fix build failures against Qt 5.15; patch taken from
  upstream, see
  <https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6943>.
- The %%cmake macro sets CMAKE_SKIP_RPATH=ON for Leap 15.x which
  causes build failures; set it to OFF and set
  CMAKE_SKIP_INSTALL_RPATH=ON for openSUSE <= 1500. See
  <https://discourse.vtk.org/t/building-fails-generating-wrap-hierarchy-for-vtk-commoncore-unable-to-open-libvtkwrappingtools-so-1>.
- Build without pegtl for distributions where pegtl > 2.0 is
  unavailable (Leap 15.1).
- Disable java bindings for Leap 15.1 only where cmake still
  searches for the javah binary (and setting it to %{_bindir}/true
  seems to no longer work).
- Run ld post scripts for vtk-qt.
- Update to version 9.0.0 
  * See https://discourse.vtk.org/t/vtk-9-0-0/3205.
- Rebase patches still required for building:
  * bundled_exodusii_add_missing_libpthread.patch: Update to
    upstream patch
    (https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6865).
  * bundled_libharu_add_missing_libm.patch
- Pass VTK_PYTHON_OPTIONAL_LINK:BOOL=OFF to cmake to link against
  the system python library explicitly.
- Add vtk-parallelgeometry-dependency.patch to fix a missing
  dependency for vtkparallelgeometry (see
  https://discourse.vtk.org/t/building-vtk-9-0-fails-when-using-mpi-support/3227).
- Comment out 0001-Allow-compilation-on-GLES-platforms.patch that
  no longer applies and needs extensive rebasing.
- Drop patches incorporated or otherwise fixed upstream:
  * 0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch
  * 0001-Add-libogg-to-IOMovie-target-link-libraries.patch
  * python38.patch
  * reproducible.patch
- Adapt to changes in upstream's cmake script:
  * Replace old options by their newer versions where applicable.
  * Pass VTK_USE_EXTERNAL=ON to use system libraries by default
    except for gl2ps, haru, and pugixml.
- New BuildRequires: pegtl-devel and utfcpp-devel.
- No longer needed to pass
  Java_JAVAH_EXECUTABLE:PATH=%{_bindir}/true to cmake; script does
  not look for javah any more.
- Use autosetup to set up and patch sources: simplifies applying
  changing list of patches; use an if guard to avoid patch needing
  rebase while not running into conflict with factory bot.
- Use system gl2ps for openSUSE > 1500.
- Fix serial builds broken due to disabling the building of
  examples; instead of commenting out sections of the specfile
  related to examples, use %bcond_with to disable building
  examples by default and the corresponding conditionals where
  appropriate.
- add reproducible.patch to override build date and to sort entries
  (boo#1047218, boo#1041090)
- Disable building examples to prevent vtkLocalExample.java
  randomly missing from vtk.jar (boo#1138295, see also upstream
  recommendation in
  https://gitlab.kitware.com/vtk/vtk/issues/17619).
- Remove -DVTK_PYTHON_SITE_PACKAGES_SUFFIX silently added with the
  last change. As it specifies the path relative to the install
  prefix, setting it to the absolute python_sitearch is obviously
  wrong. As VTK figures out the correct path by itself, it is
  completely unnecessary.
- Add patch to fix building with python 3.8:
  * python38.patch
- Add openmpi3 flavor.
- Disable openmpi1 for SLE/Leap 15.2, openmpi3 for SLE <= 15.1
- Adjust disk _constraints.
- Drop vtk-fix-file-contains-date-time.patch, GCC honors
  SOURCE_DATE_EPOCH.
- Drop unused netcdf-c++-devel BuildRequires.
- Adapt to openmpi -> openmpi1 rename on Tumbleweed.
- Spec file cleanup, remove conditionals for Leap 42.x.
- Apply proj4 compatibility patch also on Leap.
- Use -ffat-lto-objects when building static libraries.
- Add more explicit dependencies to vtk-devel.
- Add an explicit 'Requires: double-conversion-devel' for vtk-devel.
  The double-conversion library is mentioned in vtkdoubleconversion.cmake
  but isn't automatically installed.
- Update to version 8.2.0
  * Removed support for TCL and Qt4
  * Removed all VTK_OVERRIDE, VTK_FINAL, VTK_DELETE_FUNCTION macros as
    C++11 is now required.
  * vtkAbstractArray gained support for runtime user defined free functions,
    allowing for custom allocator memory to be used with VTK.
  * The vtkGeovis classes are now deprecated.
  See https://blog.kitware.com/vtk-8-2-0/ for a more exhaustive list.
- Packaging changes:
  * Python bindings for MPI flavors are now installed below the MPI prefix
    and thus no longer conflict with each other. To use these, the
    PYTHONPATH currently has to be amended manually.
  * Removed several devel Requires: from the devel package. This reduces the
    dependency chain (e.g. java-devel) for all packages building against VTK,
    but may require to specify some dependencies explicitly, depending on
    the used VTK modules and bindings.
- Patch updates/additions:
  * Rebase vtk-fix-file-contains-date-time.patch
  * Rebase 0001-Allow-compilation-on-GLES-platforms.patch
  * Drop obsolete fix_qt5_example_cmake.patch
  * Add bundled_libharu_add_missing_libm.patch
  * Add bundled_exodusii_add_missing_libpthread.patch
  * Add 0001-Add-libogg-to-IOMovie-target-link-libraries.patch
  * Add 0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch
- Correct names of built packages, the mpi flavors were lacking the
  flavor specific name infix, i.e. all flavors were named identically.
- Add openmpi2 flavor
- BuildRequire netcdf-{mpi_flavor}-devel for MPI flavors
- Add Conflicts between flavors of python3 subpackage (all flavors
  install into python_sitearch).
- Convert openmpi package to multibuild flavor
- Use correct mpi version - openmpi currently means openmpi, and not openmpi2/3
  Otherwise, VTK depends on openmpi1 (HDF5, netcdf) and openmpi2/3 (direct)
- Remove several mpi BuildRequires in serial flavor
- 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
- Update to version 8.1.2
  * Issue error if vtkAlgorithm::GetInputConnection called on wrong port
  * Added explicit cast to pacify UBSan’s “implicit-integer-truncation”
  * Make some orientation marker widget methods virtual 
  * vtkImageBlend bug fix for compound mode
  * vtkFlyingEdges2D: Properly color multiple isocontour values
  * Invoke DeletePointEvent before deleting vtkSeedWidget seed
  * Fix compilation issue due to Python3.7 API change 
  * Fix bug where re-enabling seed widget wouldn't move existing seeds
- Fix python dependencies
- Test to make sure python package is importable
- Split out MPI version since the MPI version cannot be used
  outside an MPI environment.
- Build vtkData as part of the main package.  This makes sure the
  data is extracted into the correct format.
- Drop post[un] scripts for devel and java subpackages; they are
  only needed for the versioned shlib.
- Update to version 8.1.1:
  * Fixed thin border around vtkImageResliceMapper
    rendering
  * Fixed vtkImageResliceMapper showing a black
    polygon when slice is out of bounds.
  * Fixed conflict between Process.h and process.h
  * Fixed building VTK 8.1 against 10.13 SDK
    resulting in linker errors when trying to use
    resulting libraries on older SDK
  * Fixed vtkCellPicker::IntersectActorWithLine maybe
    using invalid cell id when picking composite data
- Add fix_qt5_example_cmake.patch
  Fixes use of removed cmake macro in some examples
  See: https://gitlab.kitware.com/vtk/vtk/issues/17336
- Use modern cmake spec file macros
- Run spec cleaner
- Other spec file cleanups
- Support parallel HDF5.
- Drop support for qt4.  Any version of openSUSE with a recent
  enough version of cmake to build the package supports Qt5.
- Drop checks for old versions of openSUSE that have too old
  of a cmake to build.
- Use split libboost*-devel BuildRequires for TW and Leap/SLE 15
- Fix build with jdk10
  * give a bogus javah path "%{_bindir}/true", since the cmake
    checks the javah binary although the build does not use it.
- Drop vtk-Rinterface-uintptr_t.patch as the related plugin has
  been retired.
- Drop vtk-compat_gl: Building against OpenGL1 has now been
  deprecated with version 8.1.0, and the examples don't build
  against it already; so, drop all specfile and related
  modifications catering to OpenGL1 bindings.
- Update to version 8.1.0:
  * Full release notes at https://blog.kitware.com/vtk-8-1-0/.
- Turn OFF building against system libharu, since libharu
  upstream seems dead, while vtk's included libharu has new
  features essential for building vtk 8.1. Drop BuildRequires on
  libharu.
- Does not build against java 10, so ensure at most java 9 is
  used by using appropriate versioning for java-devel
  BuildRequires.
- Drop cmake options no longer used for build.
- Drop VERBOSE=1 for make: it makes the compilation too verbose
  making brp checks for code warnings too slow to execute; this
  reduces build time by nearly half.
- Enforce Qt4 for openSUSE <= 1320 explicitly because Qt5 is now
  the default option.
- Move BuildRequires:  libQtWebKit-devel (Qt4) inside the else
  version < 13.2 
- Add conflict between the -devel-doc variants.
- Setup MPI environment before building.
- Rectify RPM groups again.
- Move the vtk binary to the tcl subpackage, it is an interactive
  TCL shell, and depends on the TCL bindings. It can be used
  standalone from the devel package. Dito for its MPI variant, i.e.
  the pvtk binary.
- Move all libvtk*Java.so to the java subpackage. These are part of
  the Java bindings, i.e. runtime dependencies. Otherwise, the java
  subpacakge depends on the devel subpackage.
- Add the tcl and java subpackage to the devel requires again.
  Although not stricly necessary until building java or tcl packages,
  the cmake files have a hard dependency on several build artifacts
  provided by the tcl and java subpackages. Split devel packages
  for the bindings would be preferred, but this is not supported by
  the upstream build system.
- Remove the openmpi-devel requires in the python subpackage, the
  mpi runtime libraries are provided by openmpi-libs, which is
  picked up automatically.
- Split the API documentation from the development subpackage. The
  documentation amounts to almost 1 GByte of data, not necessary
  when just building packages.
- Drop vtk-compat_gl-rpmlintrc: openSUSE:Factory bots don't accept
  conditional sources and one rpmlintrc file is sufficient for
  both main and linked packages anyway.
- do not exclude libViewsGeovisJava.so from devel package 
  This library is required for development.
- package vtk binary in devel package.
- VTKTargets-debug.cmake tests for the existance of the library (line 3394)
  and the binary (line 3404) and causes an error if the files do
  not exist
- Remove the various subpackage Requires from the devel package
  again. The qt subpackage contains a Qt Designer plugin and no
  dependency at all. Package the vtkWrap{Tcl,Java,Python} wrapper
  generators in the devel package, as these are useless without
  the vtk headers files.
- Fix description/summary of vtk-qt subpackage
- devel subpackage should require -tcl, -java and -qt subpackages
  since the *.cmake files refer to files in those subpackages
- Add 0001-Allow-compilation-on-GLES-platforms.patch
  The QOpenGLFunctions_3_2_Core class providing the framebuffer
  blit functions is not available on GLES 2 builds of Qt5. Let Qt
  handle the framebuffer blit, and just use the GLES/GL subset
  provided by QOpenGLFunctions for the remainder.
  Fix for https://gitlab.kitware.com/vtk/vtk/issues/17113
- Update to version 8.0.1:  
  * Fix QVTKOpenGLWidget rendering issues on Windows machines with
    certain Intel graphics chips. This was a significant issue
    that broke all rendering and resulted in a black screen.
  * Fix data array range caching per finite component which would
    otherwise cause considerable slow-downs when using data
    arrays.
  * Fix button and slider widgets to work in multi-viewport render
    windows. Without this change the widgets would either be
    placed in the wrong viewport or be non-interactive completely.
  * Fix image XY sampling in the volume mapper when depth peeling
    is enabled.
  * Fix z-fighting issues with dual depth peeling between two
    layers of geometry that are too close.
  * Fix crash when reparenting the QVTKWidget to a different
    window. The application would crash due to lack of OpenGL
    resources for the reparented widget.
- Suppress romlint error about shlib-policy-name-error for
  %{name}-java -- libvtkViewsGeovisJava.so packaged therein
  is not a versioned shared lib, and only used by vtk's java
  bindings, so there is no point in enforcing the shared lib
  packaging policy for this subpackage.
- Move libvtkViewsGeovisJava.so to the %{name}-java subpackage,
  this is not really a devel file.
- Fix RPM groups. Use POSIX-compliant find call.
- Implement shared library packaging policy for vtk:
  + Rename %{name} to %{shlib}.
  + Move all shared library objects to %{shlib} package.
  + Remove no longer needed Requires from %{name}-devel package;
    e.g.: %{name}-java contains the java binaries and jar object
    now, and no longer the lib*Java.so file which has been moved
    into %{shlib}.
  + Adapt conflicts for vtk-compat_gl accordingly.
  + Install libraries to /usr/lib(64) instead of
    /usr/lib(64)/vtk.
  + Do away with python3-%{name}-qt subpackage and
    Obsolete/Provide it from %{shlib} as it only contained a
    shared lib object.
- Use system mpi4py; add BuildRequires on python3-mpi4py.
- liblz4 >= 1.7.3 now required (since version 8.0); adapt
  BuildRequires accordingly.
- Trim descriptions and rectify RPM groups.
- add liblz4-devel and libharu-devel also to Requires of devel package
  (fixes linking errors in other packages)
- Update to version 8.0.0: 
  * Read about changes here: https://blog.kitware.com/vtk-8-0-0/
  * API changes:
    http://www.vtk.org/Wiki/VTK/API_Changes_7_1_0_to_8_0_0
- Add BuildRequires on liblz4-devel, libharu-devel, mandatory
  requirements for version 8.0.0.
- Run make DoxygenDoc to generate documentation.
- add a separate package vtk-compat_gl compile using rendering backend
  OpenGL for systems without brand new graphic cards
- default package vtk still uses new rendering backend default OpenGL2
- Update to version 7.1.0: See news item at
  https://blog.kitware.com/kitware-plans-to-spotlight-new-vtk-and-paraview-releases-at-sc16/
- Drop patch vtk-gcc6.patch, upstreamed.
- Turn off usage of system DIY2, this library is not yet packaged
  for openSUSE.
- Disable mkg3states binary also for openSUSE:Leap versions.
- Update file list for upstream installation changes.
- Use bundled gl2ps, as it no longer builds against the system
  one (requires svn trunk version of gl2ps).
- CMake >= 3.4 is now required (earlier versions don't support
  NAMES_PER_DIR in find_program).
- Enable use of SYSTEM_LIBRARIES for openSUSE:Leap versions too
  (only 13.2 requires this turned off as of now).
- Refresh vtk-Rinterface-uintptr_t.patch to fix further issues
  with uintptr_t redefinition by defining the HAVE_UINTPTR_T
  macro using cmake functions; removing the #include of stdint.h
  is not needed any more since we will not be using the defs from
  Rinterface.h anyway (boo#985386). Although this really causes a
  build failure for the i586 arch, where the redefinition of
  unitptr_t in Rinterface.h conflicts with the stdint.h defintion,
  the patch is applied generally because the redefinition is not
  needed in any case. Patch sent upstream.
- Add freetype2-devel as a Requires for vtk-devel.
- Apply vtk-gcc6.patch also to python-vtk.
- Fixed RPATH error for Factory by passing the option
  CMAKE_NO_BUILTIN_CHRPATH:BOOL=ON to cmake. 
- add vtk-gcc6.patch: Fix build with gcc 6
- skip RPATH setting
- openmpi-libs will be installed with openmpi-devel if necessary.
  No such package on openSUSE 13.1.
- Add disk constraints 
- Update to version 7.0.0:
  + See https://blog.kitware.com/vtk-7-0-0/ for a detailed
    article describing all the changes in this version.
- Add vtk-Rinterface-uintptr_t.patch to fix building: uintptr_t
  is already defined in the R headers, uintptr_t definition in
  <stdint.h> conflicts with the R definition and causes builds to
  fail. This patch fixes the problem by commenting out the call
  to include stdint.h (it was only being used for this solitary
  symbol).
- Use python 3 for building, rename python- subpackages
  accordingly to python3-.
- Update file lists in accordance with added/dropped binaries
  upstream; affects vtk-examples, vtk-devel.
- Drop conditionals referencing outdated openSUSE version 12.3.
- Update rpmlintrc file to suppress rpmlint warnings for
  "no-manual-page-for-binary": upstream does not supply manuals
  for its binaries and does not plan to.
- vtkdata should be a Recommends for vtk-examples, not Requires.
- Update to version 6.3.0:
  - See list of changes at
    http://www.vtk.org/Bug/changelog_page.php?version_id=118
    or blog post at
    http://www.kitware.com/blog/home/post/963.
- python-vtk also needs openmpi-devel at runtime.
- python-vtk should have Requires on openmpi-libs to enable its
  parallelized modules to work.
- use qt5 for factory 
- Add libxml2-devel/netcdf-devel/libnetcdf_c++-devel Requires to vtk-devel
- Add jsoncpp-devel Requires to vtk-devel (for openSUSE > 13.2):
  vtkjsoncpp.cmake has
  set(vtkjsoncpp_LIBRARIES "/usr/lib64/libjsoncpp.so").
- Update to version 6.2.0:
  + See http://www.kitware.com/blog/home/post/858 for a list of
    changes.
- Drop patches incorporated upstream:
  + vtk-install-missing-modules.patch
  + vtk-Mesa10.3-build-failures.patch
  + vtk-system.patch.
- Update filelist to incorporate new files installed by upstream.
- Use system hdf5 and netcdf on all openSUSE versions.
- Build on openSUSE > 13.2 with system libraries ON (except
  for libproj4); all required depndencies for this purpose are
  now in Factory.
- Add rpmlintrc file to suppress
  "devel-files-in-non-devel-package" warning; python-vtk needs
  these devel files for its own functioning.
- Add MPI support
- Add vtk-Mesa10.3-build-failures.patch to workaround build
  failures when compiling against Mesa >= 10.3; patch taken from
  upstream git and rebased; applied only for openSUSE >= 13.2.
- Update to version 6.1.0:
  + See http://www.kitware.com/news/home/browse/502 for a list of
    changes
- Rebase patches:
  + vtk-system.patch
  + vtk-install-missing-modules.patch
- Packaging changes:
  + Re-enable R bindings for 13.1 and above
  + Turn off building test modules for now as it leads to build
    issues (DBUILD_TESTING:BOOL=OFF)
  + Turn off usage of system libraries for now
    (DVTK_USE_SYSTEM_LIBRARIES:BOOL=OFF), as usage of system
    libraries now introduces dependency on json-cpp which is not
    available for openSUSE (yet)
  + Python modules are now installed by vtk's cmake script;
    hence, pass system python dirs to cmake by using cmake
    variable DVTK_INSTALL_PYTHON_MODULE_DIR instead of
    DVTK_PYTHON_SETUP_ARGS used previously
  + vtkpython is now installed by cmake script automatically;
    hence remove the manual copying to /usr/bin used earlier
  + Python libraries are now stripped automatically on install;
    chrpath no longer needed on these
  + Python object files are now installed in
    %python_sitearch
  + Skip examples no longer installed as a result of test modules
    being turned off
  + Install new binaries (mkg3states) and bundled data files
    (/usr/share/vtk-6.1)
  + Cleanup spec file:
    - Remove support for EOL openSUSE versions (12.1 and earlier)
      by dropping appropriate conditionals
    - Fix minor formatting issues.
- Disable R bindings for Factory, since it causes weird build
  failures in openSUSE:Factory, (strangely no failures in devel
  project) until the reason behind the failure is found and fixed. 
- Update to version 6.0.0:
  + Lengthy list of changes, see 
    http://www.kitware.com/blog/home/post/515 for a summary
- Also build R language bindings, introduces dependency on R-base
- Drop patches for already being incorporated upstream:
  + vtk-pythondestdir.patch
  + vtk-sqldatabaseschema.patch
  + vtk-soversion2.patch
- Rebase patches for updated version:
  + vtk-fix-file-contains-date-time.patch
  + vtk-system.patch
- Add vtk-install-missing-modules.patch to install cmake modules
  missed by the upstream packaging, will be required esp. when
  we will be able to use the system installed vtk to build
  paraview in the future; patch taken from Fedora
- Remove unused cmake variables during configuration
- Install all examples (several more added in current version)
- Install vtk.conf file in /etc/ld.so.conf.d to enable vtk find
  its libraries
- Testing binaries are no longer installed separately.
- Update to version 5.10.1:
  + Fix netCDF symbol mangling, which allows applications to use
    an external netCDF library and VTK's internal copy
    simultaneously
  + Fixes for STL and SLC readers that prevent crashes and file
    handle resource exhaustion
  + Fix compilation on FreeBSD operating system
  + A handful of fixes in VTK's Qt interface kit
  + Fixes for interpreted language wrapping including a bug which
    prevented java wrapping of VTK on power PC macs, and
    compatibility with Tcl 8.6
- Add vtk-fix-file-contains-date-time.patch to fix rpmlint
  warning about a packaged file containing DATE and TIME.
- build python-qt and java binding for openSUSE version higher than
  11.2 which fixes build on SLE 11
- Update to version 5.10.0: See
  http://www.kitware.com/news/home/browse/408
  for a detailed list of changes
- Dropped patches:
  + vtk-boost149.patch: implemented upstream
- Patch vtk-sqldatabaseschema.patch now only required for
  openSUSE 11.4
- Minor rebasing of existing patches so they apply cleanly
- No longer use verbose make.
- Remove openmotif dependency 
- Use the gl2ps and hdf5 system libraries for building in openSUSE > 12.1.
- Updated Mesa and XOrg dependencies for openSUSE > 12.1.
- Removed the following dependencies which are not needed:
  MesaGLw-devel, freeglut-devel, gcc-java, libgcj-devel and sqlite3-devel.
- Removed postgresql-devel dependency (wasn't enabled and fails to compile
  anyway - added a note about it).
- Removed build time references so build-compare can do its work.
- Compile the package out-of-source.
- Use the generic "VTK_USE_SYSTEM_LIBRARIES" cmake variable for enabling the
  use of system libraries instead of doing it with a per package variable.
- Fix compilation with boost 1.49 and enable boost again 
- Cleaned up spec file formatting
- Build and package python-qt (python-sip) bindings
- Link libraries to library directory instead of moving them to
  avoid breaking the find vtk cmake macro
- Force enable of various additional optional components
- Removed redundant packages (readme and logo) from backends
- Make the devel package depend on the backends, since it does not
  work properly without them
- Disable boost building on factory due to an icompatibility with
  boosswt 1.4.9+.  See http://vtk.org/Bug/view.php?id=12988
- Reverted the source file change since it didn't work
- Changed the license text a little
- Switched to approved license text (fix for RPMLINT warning)
- Escaped some macros in comments (fix for RPMLINT warnings)
- Made the source file a tiny bit easier to use
- updated to 5.8.0
- removed patches:
* vtk-Balloon-Representation.patch (applied in upstream)
* vtk-gcc43.patch (applied in upstream)
* vtk-gcc46.patch (applied in upstream)
* vtk-libpng14.patch (applied in upstream)
* vtk-python27-compat.patch (applied in upstream)
* vtk-soversion.patch (applied in upstream)
* vtk-string-length.patch (not needed anymore)
* vtk-testcxxjavaremove.patch (applied in upstream)
- Add explicit libQtWebKit-devel BuildRequires to fix build
failures on openSUSE 11.3
- Make description of sub-package vtk-qt more detailed
- Spec file clean up
- fix the missing soname for libVTKnetcdf_cxx
- Fix the broken vtk-qt package
- Fix dependencies for openSUSE 11.2 and SLE 11
- Fix build problems with openSUSE 11.4
- Restored vtk-string-length.patch to solve buffer overflow errors
during string copy operations
- Added vtk-sqldatabaseschema.patch (from upstream) to fix
compilation errors with python enabled
- Update to version 5.6.1, rebase existing patches and remove
unnecessary ones
- Add vtk-python2.7-compat.patch to fix build problems with
python 2.7
- Add vtk-gcc4.3.patch to fix building issues with gcc 4.3
------------------------------------------------------------------
- Extended buffer size in VTK/Utilities/kwsys/SystemInformation.cxx

OBS-URL: https://build.opensuse.org/request/show/933606
OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=171
2021-11-25 00:25:01 +00:00

610 lines
19 KiB
RPMSpec

#
# spec file
#
# Copyright (c) 2021 SUSE LLC
#
# 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/
#
%global flavor @BUILD_FLAVOR@%{nil}
%bcond_with examples
%bcond_with documentation
%ifarch %arm aarch64
%bcond_without gles
%else
%bcond_with gles
%endif
%define pkgname vtk
# pugixml and gl2ps in Leap 15.x are too old
%if 0%{?suse_version} <= 1500
%bcond_with pugixml
%bcond_with gl2ps
%else
%bcond_without pugixml
%bcond_without gl2ps
%endif
%bcond_without java
%bcond_without pegtl
# Need patched version with HPDF_SHADING
%bcond_with haru
%if "%{flavor}" == ""
%define my_suffix %{nil}
%define my_prefix %_prefix
%define my_bindir %_bindir
%define my_libdir %_libdir
%define my_incdir %_includedir
%define my_datadir %_datadir
%endif
%if "%{flavor}" == "openmpi2"
%define my_suffix -openmpi2
%define mpi_flavor openmpi2
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
%endif
%if "%{flavor}" == "openmpi3"
%{?DisOMPI3}
%define my_suffix -openmpi3
%define mpi_flavor openmpi3
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
%endif
%if "%{flavor}" == "openmpi4"
%{?DisOMPI4}
%define my_suffix -openmpi4
%define mpi_flavor openmpi4
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
%endif
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
%if %{with mpi}
%define my_prefix %{mpiprefix}
%define my_bindir %{my_prefix}/bin
%define my_libdir %{my_prefix}/%{_lib}/
%define my_incdir %{my_prefix}/include/
%define my_datadir %{my_prefix}/share/
%endif
%define vtklib lib%{pkgname}1%{?my_suffix}
%define shlib %{vtklib}
Name: vtk%{?my_suffix}
Version: 9.1.0
Release: 0
%define series 9.1
Summary: The Visualization Toolkit - A high level 3D visualization library
# 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
License: BSD-3-Clause
Group: Productivity/Scientific/Other
URL: https://vtk.org/
Source: https://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
Source99: vtk-rpmlintrc
# PATCH-FIX-OPENSUSE bundled_libharu_add_missing_libm.patch stefan.bruens@rwth-aachen.de -- Add missing libm for linking (gh#libharu/libharu#213)
Patch1: bundled_libharu_add_missing_libm.patch
# PATCH-FIX-OPENSUSE -- Fix building with Qt GLES builds
Patch7: 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch
# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds
Patch8: 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds
Patch9: 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
# PATCH-FIX-UPSTREAM
Patch10: 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch
# PATCH-FIX-UPSTREAM -- Always create python package metadata (egg-info)
Patch17: 0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch
# PATCH-FIX-UPSTREAM -- Copy generated metadata to the right directory
Patch18: 0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch
# PATCH-FIX-UPSTREAM
Patch19: 0001-Add-missing-libm-link-library-to-kissfft-module.patch
BuildRequires: cgns-devel
BuildRequires: chrpath
BuildRequires: cmake >= 3.12
BuildRequires: double-conversion-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: hdf5-devel
BuildRequires: libboost_graph-devel
BuildRequires: libboost_graph_parallel-devel
BuildRequires: libboost_serialization-devel
BuildRequires: libjpeg-devel
BuildRequires: libmysqlclient-devel
BuildRequires: libtiff-devel
BuildRequires: python3-devel
BuildRequires: python3-numpy-devel
BuildRequires: python3-qt5-devel
BuildRequires: python3-setuptools
BuildRequires: utfcpp-devel
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(Qt5OpenGLExtensions)
BuildRequires: pkgconfig(Qt5Sql)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(eigen3) >= 3.3.9
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(freetype2) >= 2.11.0
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavdevice)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libiodbc)
BuildRequires: pkgconfig(liblz4) >= 1.8.0
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libswscale)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(netcdf)
BuildRequires: pkgconfig(proj) >= 5.0.0
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(zlib)
%if %{with documentation}
BuildRequires: doxygen
BuildRequires: gnuplot
BuildRequires: graphviz
%endif
%if %{with gl2ps}
BuildRequires: gl2ps-devel > 1.4.0
%endif
%if %{with haru}
BuildRequires: libharu-devel > 2.3.0
%endif
%if %{with java}
BuildRequires: java-devel
%endif
%if %{with mpi}
BuildRequires: %{mpi_flavor}-devel
BuildRequires: hdf5-%{mpi_flavor}-devel
BuildRequires: libboost_mpi-devel
BuildRequires: netcdf-%{mpi_flavor}-devel
BuildRequires: python3-mpi4py-devel
%endif
%if %{with pugixml}
BuildRequires: pkgconfig(pugixml)
%endif
%if %{with pegtl}
BuildRequires: pegtl-devel >= 2.0.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
Conflicts: libvtkcompat_gl1
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
# not strictly necessary, but required by VTKs cmake files
Group: Development/Libraries/C and C++
%{?with_java:Requires: %{name}-java = %{version}}
Requires: %{name}-qt = %{version}
Requires: %{shlib} = %{version}
Requires: cgns-devel
Requires: cmake >= 3.4
Requires: double-conversion-devel
Requires: gcc-c++
%{?with_gl2ps:Requires: gl2ps-devel}
Requires: hdf5-devel
%{?with_mpi:Requires: hdf5-%{mpi_flavor}-devel}
Requires: libjpeg-devel
Requires: libmysqlclient-devel
Requires: libnetcdf_c++-devel
Requires: libtiff-devel
Requires: python3-%{name} = %{version}
Requires: utfcpp-devel
%{?with_mpi:Requires: %{mpi_flavor}}
%{?with_mpi:Requires: %{mpi_flavor}-devel}
Requires: pkgconfig(Qt5Core)
Requires: pkgconfig(Qt5OpenGL)
Requires: pkgconfig(Qt5OpenGLExtensions)
Requires: pkgconfig(Qt5Sql)
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(liblzma)
Requires: pkgconfig(libpng)
Requires: pkgconfig(libswscale)
Requires: pkgconfig(netcdf)
Requires: pkgconfig(theora)
Requires: pkgconfig(zlib)
%if %{with pegtl}
Requires: pegtl-devel
%endif
%if %{with pugixml}
Requires: pugixml-devel
%endif
Conflicts: vtk-compat_gl-devel
%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}
Conflicts: vtk-compat_gl-java
%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
# explicitly require the correct mpi flavor, because the automatic
# rpm requirements generator for shared libs fails to distinguish
# between them -- boo#1187161
Requires: %{name}-qt = %{version}
Requires: %{shlib} = %{version}
%{?with_mpi:Requires: python3-mpi4py}
Requires: python3-numpy
Requires: python3-qt5
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 libraries for VTK
Group: Development/Libraries/C and C++
Requires: %{shlib} = %{version}
Conflicts: vtk-compat_gl-qt
%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 the Qt libraries for VTK.
# The examples work with any VTK flavor, just package these once
%if "%{flavor}" == ""
%package examples
Summary: Examples for VTK
Group: Documentation/Other
Recommends: vtkdata = %{version}
Conflicts: vtk-compat_gl-examples
%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.
%endif
%prep
%setup -n VTK-%{version}
%patch1 -p1
%if %{with gles}
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%endif
%patch17 -p1
%patch18 -p1
%patch19 -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
%if %{with mpi}
source %{mpiprefix}/bin/mpivars.sh
export CC=mpicc
export CXX=mpicxx
%else
export CC=gcc
export CXX=g++
%endif
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
# The %%cmake macro sets CMAKE_SKIP_RPATH=ON for Leap 15.x which causes build failures
# https://discourse.vtk.org/t/building-fails-generating-wrap-hierarchy-for-vtk-commoncore-unable-to-open-libvtkwrappingtools-so-1
# Disable ioss module for MPI flavors, fails to build with 9.1.0, see MR 8565.
%cmake \
-DCMAKE_INSTALL_PREFIX:PATH=%{my_prefix} \
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{series} \
-DCMAKE_INSTALL_QMLDIR:PATH=%{my_libdir}/qt5/qml \
-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \
-DVTK_BUILD_TESTING:BOOL=ON \
-DVTK_BUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \
-DVTK_BUILD_DOCUMENTATION:BOOL=%{?with_documentation:ON}%{!?with_documentation:OFF} \
-DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
%if 0%{?suse_version} <= 1500
-DCMAKE_SKIP_RPATH:BOOL=OFF \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
%endif
-DVTK_MODULE_ENABLE_VTK_TestingCore=WANT \
-DVTK_MODULE_ENABLE_VTK_TestingRendering=WANT \
-DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
-DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
-DVTK_GROUP_ENABLE_Imaging=WANT \
%if %{with mpi}
-DVTK_USE_MPI:BOOL=ON \
-DVTK_GROUP_ENABLE_MPI=WANT \
%else
-DVTK_USE_MPI:BOOL=OFF \
%endif
-DVTK_GROUP_ENABLE_Qt=WANT \
-DVTK_GROUP_ENABLE_Rendering=WANT \
-DVTK_GROUP_ENABLE_StandAlone=WANT \
-DVTK_GROUP_ENABLE_Views=WANT \
-DVTK_PYTHON_VERSION=3 \
-DVTK_WRAP_JAVA:BOOL=%{?with_java:ON}%{!?with_java:OFF} \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DOpenGL_GL_PREFERENCE:STRING='GLVND' \
-DVTK_OPENGL_USE_GLES:BOOL=%{?with_gles:ON}%{!?with_gles:OFF} \
-DVTK_USE_EXTERNAL:BOOL=ON \
-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=%{?with_gl2ps:ON}%{!?with_gl2ps:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=%{?with_haru:ON}%{!?with_haru:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=%{?with_pugixml:ON}%{!?with_pugixml:OFF} \
-DVTK_MODULE_ENABLE_VTK_ioss:BOOL=%{!?with_mpi:WANT}%{?with_mpi:NO} \
-DVTK_MODULE_ENABLE_VTK_pegtl=%{?with_pegtl:YES}%{!?with_pegtl:NO} \
-DVTK_MODULE_ENABLE_VTK_zfp:BOOL=NO \
%{nil}
%cmake_build
# 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
%if %{with examples}
# 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
%if "%{flavor}" == ""
for file in `cat examples.list`; do
install -p build/bin/$file %{buildroot}%{my_bindir}
done
perl -pi -e's,^,%{my_bindir}/,' examples.list
%endif
%endif
# Move licenses to licensedir instead of %%{my_datadir}/licenses
mkdir -p %{buildroot}%{_licensedir}
mv %{buildroot}%{my_datadir}/licenses/VTK %{buildroot}%{_licensedir}/%{name}
%if ! %{with mpi}
# Generate and install python distribution metadata
pushd build/%{_lib}/python%{python3_version}/site-packages/
python3 setup.py install_egg_info -d %{buildroot}%{python3_sitearch}
popd
%endif
%fdupes %{buildroot}
%check
# Make sure the python library is at least importable
%if %{with mpi}
source %{mpiprefix}/bin/mpivars.sh
export _PYTHON_MPI_PREFIX=`echo %{buildroot}%{my_libdir}/py*/site-packages/`
export PYTHONPATH=$_PYTHON_MPI_PREFIX:$PYTHONPATH
%endif
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{my_libdir}
export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitearch}
python3 -c "import vtk"
find %{buildroot} . -name vtk.cpython-3*.pyc -print -delete # drop unreproducible time-based .pyc file
%post -n %{shlib} -p /sbin/ldconfig
%postun -n %{shlib} -p /sbin/ldconfig
%if %{with java}
%post java -p /sbin/ldconfig
%postun java -p /sbin/ldconfig
%endif
%post qt -p /sbin/ldconfig
%postun qt -p /sbin/ldconfig
%post -n python3-%{name} -p /sbin/ldconfig
%postun -n python3-%{name} -p /sbin/ldconfig
%files -n %{shlib}
%license Copyright.txt
%{my_libdir}/lib*.so.*
%exclude %{my_libdir}/libvtk*Qt*.so.*
%exclude %{my_libdir}/libvtk*Java.so.1
%exclude %{my_libdir}/libvtk*Python*.so.1
%files devel
%license Copyright.txt
%license %{_datadir}/licenses/%{name}/
%if %{without gles}
%{my_bindir}/vtkProbeOpenGLVersion
%endif
%{my_bindir}/%{pkgname}ParseJava
%{my_bindir}/%{pkgname}WrapHierarchy
%{my_bindir}/%{pkgname}WrapJava
%{my_bindir}/%{pkgname}WrapPython
%{my_bindir}/%{pkgname}WrapPythonInit
%{my_libdir}/*.so
%{my_libdir}/vtk/
%{?with_mpi: %dir %{my_libdir}/cmake/}
%{my_libdir}/cmake/%{pkgname}-%{series}/
%{my_incdir}/%{pkgname}-%{series}/
# VTK JNI
%exclude %{my_libdir}/libvtk*Java.so
%if %{with documentation}
%files devel-doc
%license Copyright.txt
%{_docdir}/%{name}-%{series}
%endif
%if %{with java}
%files java
%license Copyright.txt
%{my_libdir}/libvtk*Java.so
%{my_libdir}/libvtk*Java.so.1
%{my_libdir}/java/
%endif
%files -n python3-%{name}
%license Copyright.txt
%{my_bindir}/%{pkgname}python
%if %{with mpi}
%{my_bindir}/p%{pkgname}python
%{my_libdir}/py*
%else
%{python3_sitearch}/vtk.py
%{python3_sitearch}/vtk-%{version}*-info
%{python3_sitearch}/vtkmodules
%endif
%{my_libdir}/libvtk*Python*.so.1
%files qt
%license Copyright.txt
%{my_libdir}/libvtk*Qt*.so.*
%if %{with mpi}
%dir %{my_libdir}/qt5
%{my_libdir}/qt5/qml
%else
%{_libqt5_archdatadir}/qml
%endif
%if %{with examples}
%if "%{flavor}" == ""
%files examples -f examples.list
%license Copyright.txt
%endif
%endif
%changelog