SHA256
1
0
forked from pool/paraview
paraview/paraview.spec
Atri Bhattacharya f19ba6e921 Accepting request 1156149 from home:vicentebolea:branches:science
- Update to version 5.12.0:
  * Save and load files on either the client or server
  * Internationalization support with translations
  * Importing and exporting of animation settings
  * Copy and paste available for filters in the Pipeline Browser
  * Widget colors linked to color palette
  * Fire Dynamics Simulator file reader
  * New “Toggle file sequence grouping” button in Open File dialog
  * Reorganized Color Map Editor
  * More info at <https://www.kitware.com/paraview-5-12-0-release-notes/>.
- Use internal jsoncpp with leap <= 15.5.
- Use internal token lib.
- Use internal FastFloat lib.
- Use external verdict with leap >= 15.5.
- Use external pugixml with leap >= 15.5.
- Always use external CLI11.
- Drop compatibility to leap 15.3.
- Always skip using RPATH in SUSE builds.

OBS-URL: https://build.opensuse.org/request/show/1156149
OBS-URL: https://build.opensuse.org/package/show/science/paraview?expand=0&rev=123
2024-03-08 17:09:37 +00:00

312 lines
10 KiB
RPMSpec

#
# spec file for package paraview
#
# Copyright (c) 2024 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/
#
%define major_ver 5
%define minor_ver 12
%define short_ver %{major_ver}.%{minor_ver}
%define shlib libparaview%{major_ver}_%{minor_ver}
%if 0%{?sle_version} <= 150400 && 0%{?is_opensuse}
%bcond_with pugixml
%bcond_with verdict
%else
%bcond_without pugixml
%bcond_without verdict
%endif
%if 0%{?sle_version} <= 150600 && 0%{?is_opensuse}
%bcond_with jsoncpp
%else
%bcond_without jsoncpp
%endif
%bcond_without nlohmann
%bcond_without proj
%bcond_without gl2ps
# Need patched version with HPDF_SHADING
%bcond_with haru
%define __builder ninja
Name: paraview
Version: %{short_ver}.0
Release: 0
Summary: Data analysis and visualization application
License: BSD-3-Clause
Group: Productivity/Scientific/Physics
URL: https://www.paraview.org
Source0: https://www.paraview.org/files/v%{short_ver}/ParaView-v%{version}.tar.xz
Source1: %{name}-rpmlintrc
# CAUTION: GettingStarted may or may not be updated with each minor version
Source2: https://www.paraview.org/files/v%{short_ver}/ParaViewGettingStarted-%{major_ver}.%{minor_ver}.0.pdf
# PATCH-FIX-UPSTREAM paraview-desktop-entry-fix.patch badshah400@gmail.com -- Fix desktop menu entry by inserting proper required categories
Patch0: paraview-desktop-entry-fix.patch
# PATCH-FIX-OPENSUSE fix-libharu-missing-m.patch -- missing libraries for linking (gh#libharu/libharu#213)
Patch2: fix-libharu-missing-m.patch
# We need to change the default soname for vtk modules.
Patch3: fix-soversion-soname.patch
BuildRequires: Mesa-devel
BuildRequires: cgns-devel
BuildRequires: cmake >= 3.13
BuildRequires: desktop-file-utils
BuildRequires: double-conversion-devel
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: gnuplot
BuildRequires: graphviz
BuildRequires: hdf5-devel
BuildRequires: libboost_graph-devel
BuildRequires: libboost_headers-devel
%if %{with gl2ps}
BuildRequires: gl2ps-devel >= 1.4.1
%endif
%if %{with haru}
BuildRequires: libharu-devel > 2.3.0
%endif
BuildRequires: libnetcdf_c++-devel
BuildRequires: ninja
BuildRequires: python3-Sphinx
BuildRequires: python3-Twisted
BuildRequires: python3-devel
BuildRequires: python3-matplotlib
BuildRequires: python3-qt5-devel
BuildRequires: readline-devel
BuildRequires: sqlite3
BuildRequires: utfcpp-devel
BuildRequires: wget
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Help)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5WebEngine)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(eigen3) >= 2.91.0
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(glew)
%if %{with jsoncpp}
BuildRequires: pkgconfig(jsoncpp) >= 1.9.4
%endif
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(liblz4) >= 1.7.3
BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpqxx)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(netcdf)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(sqlite3)
%if %{with nlohmann}
BuildRequires: pkgconfig(nlohmann_json)
%endif
%if %{with proj}
BuildRequires: pkgconfig(proj)
%endif
%if %{with pugixml}
BuildRequires: pkgconfig(pugixml) >= 1.11
%endif
%if %{with verdict}
BuildRequires: verdict-devel
%endif
BuildRequires: pkgconfig(CLI11)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(zlib)
Recommends: %{name}-plugins
Requires: gnuplot
Requires: graphviz
# Disable on aarch64 since GLES isn't supported for bundled vtk but is needed for paraview
ExcludeArch: aarch64
%description
ParaView is a data analysis and visualization application for
visualizing large data sets.
ParaView runs on distributed and shared memory systems alike. It uses VTK
(the Visualization Toolkit) as the data processing and rendering engine.
Data exploration can be done interactively in 3D or programmatically using
batch processing.
NOTE: The version in this package has NOT been compiled with MPI support.
%package -n %{shlib}
Summary: Shared libraries for Paraview
Group: Productivity/Scientific/Physics
%description -n %{shlib}
This package provides the shared libraries for paraview.
%package devel
Summary: Headers for building ParaView plugins or embedding Catalyst
Group: Development/Libraries/Other
Requires: %{shlib} = %{version}
Requires: cmake >= 3.3
Requires: glibc-devel
Requires: libboost_thread-devel
%description devel
This package contains headers and libraries required to build plugins
for ParaView or to embed ParaView Catalyst in a simulation program.
%package -n python3-paraview
Summary: Python bindings for Paraview
Group: Productivity/Scientific/Physics
Requires: python3
Requires: python3-Twisted
Requires: python3-matplotlib
Requires: python3-numpy
Requires: python3-qt5
%package devel-static
Summary: Static libraries for Paraview, needed to building plugins
Group: Productivity/Scientific/Physics
Requires: %{name}-devel = %{version}
%description devel-static
This package contains the static libraries for Paraview, needed, for
example, to build plugins for paraview.
%description -n python3-paraview
This package provides the python(3) bindings and modules for paraview.
%package plugins
Summary: Plugins for paraview
Group: Productivity/Scientific/Physics
Requires: %{name} = %{version}
%description plugins
This package provides the paraview plugins bundled with the upstream release.
%prep
%autosetup -p1 -n ParaView-v%{version}
# FIX env BASED HASHBANG
sed -Ei "1{s|#!/usr/bin/env python3|#!/usr/bin/python3|}" Clients/CommandLineExecutables/paraview-config.in
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%cmake -DCMAKE_INSTALL_LIBDIR=%{_lib} \
-DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \
-DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON \
%if 0%{?suse_version} <= 1500
-DCMAKE_SKIP_RPATH:BOOL=OFF \
%endif
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
-DVTK_IGNORE_CMAKE_CXX11_CHECKS:BOOL=ON \
-DCMAKE_CXX_EXTENSIONS:BOOL=OFF \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=ON \
-DPARAVIEW_USE_VTKM:BOOL=OFF \
-DPARAVIEW_USE_QT:BOOL=ON \
-DPARAVIEW_USE_PYTHON:BOOL=ON \
-DPARAVIEW_PYTHON_SITE_PACKAGES_SUFFIX=%{_lib}/python%{py3_ver}/site-packages/paraview \
-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \
-DPARAVIEW_ENABLE_WEB:BOOL=ON \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_OPENGL_HAS_OSMESA:BOOL=OFF \
-DBUILD_EXAMPLES:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DQtTesting_INSTALL_NO_DEVELOPMENT:BOOL=ON \
-DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF \
-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON \
-DPARAVIEW_BUILD_WITH_EXTERNAL:BOOL=ON \
-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_fast_float: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_jsoncpp=%{?with_jsoncpp:ON}%{!?with_jsoncpp:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=%{?with_haru:ON}%{!?with_haru:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_libproj=%{?with_proj:ON}%{!?with_proj:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_nlohmannjson=%{?with_nlohmann:ON}%{!?with_nlohmann:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=%{?with_pugixml:ON}%{!?with_pugixml:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_verdict=%{?with_verdict:ON}%{!?with_verdict:OFF} \
%{nil}
%cmake_build
%install
find . \( -name \*.txt -o -name \*.xml -o -name '*.[ch]' -o -name '*.[ch][px][px]' \) -exec chmod -x "{}" +
%cmake_install
# Unnecessary hash-bang
sed -i "1{\@/usr/bin/env@d}" %{buildroot}%{python3_sitearch}/paraview/vtkmodules/generate_pyi.py
# INSTALL DOCUMENTATION USED BY THE HELP MENU IN MAIN APP
install -Dm0644 %{S:2} %{buildroot}%{_datadir}/%{name}-%{short_ver}/doc/GettingStarted.pdf
%fdupes %{buildroot}/
%post -n %{shlib} -p /sbin/ldconfig
%postun -n %{shlib} -p /sbin/ldconfig
%files
%license %{_datadir}/licenses/ParaView/
%{_bindir}/*
# Part of paraview-devel-static
%exclude %{_bindir}/paraview-config
#
%exclude %{_bindir}/smTest*
%exclude %{_bindir}/vtk*
%{_datadir}/%{name}-%{short_ver}/
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_docdir}/paraview/
%dir %{_libdir}/vtk/
%dir %{_libdir}/vtk/hierarchy
%{_libdir}/vtk/hierarchy/ParaView/
%if %{without proj}
%{_datadir}/vtk-pv%{major_ver}.%{minor_ver}/
%endif
%files -n %{shlib}
%{_libdir}/*.so.*
%files plugins
%{_libdir}/%{name}-%{short_ver}/
%files devel
%{_libdir}/*.so
%{_libdir}/cmake/paraview-%{short_ver}/
%{_bindir}/smTest*
%{_bindir}/vtk*
%{_includedir}/%{name}*
%files devel-static
%{_bindir}/paraview-config
%{_libdir}/*.a
%files -n python3-paraview
%{python3_sitearch}/%{name}/
%changelog