paraview/paraview.spec
Vicente Adolfo Bolea Sanchez 9c0981b5c0 - Update to version 5.13.2:
* Update Insitu logic to use script filename (instead of full
    path) when searching PYTHONPATH directories (details).
  * Fixed CLI error loading multiple-file series (details).
  * Fixed CLI error that was opening two copies of single file
    specified in command line (details).
  * Fixed pvbatch syntax warning messages (“invalid escape
    sequence”) (details).
  * Fixed spreadsheet view to update correctly when timestep is
    reset to 0 (details).
  * Fixed problems loading state file when remote volume rendering
    is used (details).
  * More info at:
    <https://www.kitware.com/paraview-5-13-2-release-notes/>.
- Use internal pegtl lib due to version incompatibility.
- Disable ZFP due to building problems with internal/external.
- Added sed command to fix linker flags in build.ninja.
- Removed unnecessary shebang at rtImageTest.py.
- Dropped patches:
  * 0001-Fix-missing-fmt-ranges.h-include-in-ioss-ThirdParty-.patch
- Add patches:
  * 0001-Add-missing-libm-link-library-for-bundled-ExodusII.patch

OBS-URL: https://build.opensuse.org/package/show/science/paraview?expand=0&rev=133
2025-01-07 17:09:51 +00:00

342 lines
11 KiB
RPMSpec

#
# spec file for package paraview
#
# Copyright (c) 2025 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 13
%define short_ver %{major_ver}.%{minor_ver}
%define shlib libparaview%{major_ver}_%{minor_ver}
%if 0%{?suse_version} <= 1500
%bcond_with fast_float
%bcond_with jsoncpp
%if 0%{?sle_version} <= 150400
%bcond_with pugixml
%bcond_with verdict
%else
%bcond_without pugixml
%bcond_without verdict
%endif
%if 0%{?sle_version} <= 150600
%bcond_with jsoncpp
%bcond_with fmt
%bcond_with haru
%else
%bcond_without fmt
%bcond_without haru
%endif
%else
%bcond_without fast_float
%bcond_without fmt
%bcond_without haru
%bcond_without jsoncpp
%bcond_without pugixml
%bcond_without verdict
%endif
%bcond_without nlohmann
%bcond_without proj
%bcond_without gl2ps
Name: paraview
Version: %{short_ver}.2
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}.2.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)
Patch1: fix-libharu-missing-m.patch
# We need to change the default soname for vtk modules.
Patch2: fix-soversion-soname.patch
# PATCH-FIX-UPSTREAM
Patch3: 0001-Add-missing-libm-link-library-for-bundled-ExodusII.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
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: protobuf21-devel
BuildRequires: python3-Sphinx
BuildRequires: python3-Twisted
BuildRequires: python3-devel
BuildRequires: python3-matplotlib
BuildRequires: python3-qt5-devel
BuildRequires: readline-devel
BuildRequires: utfcpp-devel
BuildRequires: wget
BuildRequires: pkgconfig(CLI11)
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)
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(proj) >= 5.0.0
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(zlib)
%if %{with fmt}
BuildRequires: fmt-10-devel
%endif
%if %{with gl2ps}
BuildRequires: gl2ps-devel >= 1.4.1
%endif
%if %{with haru}
BuildRequires: libharu-devel > 2.4.0
%endif
%if %{with fast_float}
BuildRequires: cmake(FastFloat)
%endif
%if %{with jsoncpp}
BuildRequires: pkgconfig(jsoncpp) >= 1.9.4
%endif
%if %{with nlohmann}
BuildRequires: pkgconfig(nlohmann_json)
%endif
%if %{with pugixml}
BuildRequires: pkgconfig(pugixml) >= 1.11
%endif
%if %{with verdict}
BuildRequires: verdict-devel
%endif
Requires: gnuplot
Requires: graphviz
Recommends: %{name}-plugins
# 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.13
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|#!%{_bindir}/env python3|#!%{_bindir}/python3|}" Clients/CommandLineExecutables/paraview-config.in
# Fix erroneous dependency on sqlite3 binary
sed -i -e '/set(vtk_sqlite_build_binary 1)/ s/.*/#\0/' CMakeLists.txt
# Allow other versions for fast_float
sed -i -e '/VERSION .*/ d' VTK/ThirdParty/fast_float/CMakeLists.txt
%build
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
%global __builder ninja
%cmake -DCMAKE_INSTALL_LIBDIR=%{_lib} \
-DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \
-DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON \
%if 0%{?suse_version} <= 1500 && 0%{?is_opensuse}
-DCMAKE_SKIP_RPATH:BOOL=OFF \
%endif
-DBUILD_EXAMPLES:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DCMAKE_CXX_EXTENSIONS:BOOL=OFF \
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
-DPARAVIEW_BUILD_WITH_EXTERNAL:BOOL=ON \
-DPARAVIEW_ENABLE_WEB:BOOL=ON \
-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON \
-DPARAVIEW_PYTHON_SITE_PACKAGES_SUFFIX=%{_lib}/python%{py3_ver}/site-packages/paraview \
-DPARAVIEW_USE_PYTHON:BOOL=ON \
-DPARAVIEW_USE_QT:BOOL=ON \
-DPARAVIEW_USE_VTKM:BOOL=OFF \
-DQtTesting_INSTALL_NO_DEVELOPMENT:BOOL=ON \
-DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF \
-DVTK_ENABLE_CATALYST:BOOL=ON \
-DVTK_OPENGL_HAS_OSMESA:BOOL=OFF \
-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_MODULE_ENABLE_VTK_libharu:BOOL=YES \
-DVTK_MODULE_ENABLE_VTK_pegtl:BOOL=YES \
-DVTK_MODULE_ENABLE_VTK_zfp:BOOL=NO \
-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_fast_float:BOOL=%{?with_fast_float:ON}%{!?with_fast_float:OFF} \
-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=%{?with_fmt:ON}%{!?with_fmt: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_pegtl=NO \
-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} \
-Wno-dev \
%{nil}
# ParaView >= 5.13.2 wrongly adds each option of CMAKE_SHARED_LINKER_FLAGS as a single
# option with multiple -Wl in betwen, this makes the build fail. Correct it manually
sed -i 's/,-Wl/ -Wl/g' ./build.ninja
sed -i 's/,-ffat-lto-objects/ -ffat-lto-objects/g' ./build.ninja
%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{\@%{_bindir}/env@d}" %{buildroot}%{python3_sitearch}/paraview/vtkmodules/generate_pyi.py
sed -i "1{\@%{_bindir}/env@d}" %{buildroot}%{python3_sitearch}/paraview/vtkmodules/test/rtImageTest.py
# INSTALL DOCUMENTATION USED BY THE HELP MENU IN MAIN APP
install -Dm0644 %{SOURCE2} %{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