Compare commits

...

10 Commits

Author SHA1 Message Date
David Abdurachmanov bc8956cea8
Disable Java for riscv64 to bootstrap
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2023-12-07 14:42:53 +02:00
Sandro Mani 669f31d926 Rebuild (gdal) 2023-11-15 15:03:19 +01:00
Orion Poplawski 54bf13eec1 No openmpi on i668 with openmpi 5 in Fedora 40+ 2023-11-01 19:48:44 -06:00
Orion Poplawski 6ac8d12b23 Move API docs to separate doc sub-package (bz#2247327) 2023-11-01 19:44:44 -06:00
Orion Poplawski 3b88f3fa84 Rebuild for openslide 4.0.0 2023-10-11 16:21:06 -06:00
Orion Poplawski e984408381 Use loops for mpi builds/intalls 2023-09-17 08:19:43 -06:00
Orion Poplawski 5f9a1f7ae7 Fix -devel deps on netcdf-*-devel 2023-09-10 15:53:22 -06:00
Yaakov Selkowitz b3db91756a Fix flatpak build
We neither need nor are building mpich and openmpi subpackages.
2023-09-06 10:02:21 -04:00
Fedora Release Engineering 9b75c31167 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:54:17 +00:00
Sandro Mani d7c5c6ec01 Rebuild (cgnslib) 2023-07-06 15:43:54 +02:00
1 changed files with 110 additions and 86 deletions

196
vtk.spec
View File

@ -9,13 +9,27 @@
# TODO - buid separate OSMesa version if desired
%bcond_with OSMesa
# No more Java on i686
%ifarch %{java_arches}
%ifnarch riscv64
%bcond_without java
%else
%bcond_with java
%endif
%if 0%{?flatpak}
%bcond_with mpich
%bcond_with openmpi
%else
%bcond_without mpich
# No openmpi on i668 with openmpi 5 in Fedora 40+
%if 0%{?fedora} >= 40
%ifarch %{ix86}
%bcond_with openmpi
%else
%bcond_without openmpi
%endif
%else
%bcond_without openmpi
%endif
%endif
# s390x on EL8 does not have xorg-x11-drv-dummy
%if 0%{?rhel}
%ifarch s390x
@ -40,7 +54,7 @@
Summary: The Visualization Toolkit - A high level 3D visualization library
Name: vtk
Version: 9.2.6
Release: 4%{?dist}
Release: 11.0.riscv64%{?dist}
License: BSD-3-Clause
Source0: https://www.vtk.org/files/release/9.2/VTK-%{version}.tar.gz
Source1: https://www.vtk.org/files/release/9.2/VTKData-%{version}.tar.gz
@ -274,7 +288,7 @@ Requires: %{name}-java%{?_isa} = %{version}-%{release}
%endif
Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release}
Requires: hdf5-devel%{?_isa}
Requires: netcdf-mpich-devel%{?_isa}
Requires: netcdf-cxx-devel%{?_isa}
%{vtk_devel_requires}
%description devel
@ -317,7 +331,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description qt
Qt bindings for VTK.
%global mpi_list %{nil}
%if %{with mpich}
%global mpi_list %mpi_list mpich
%package mpich
Summary: The Visualization Toolkit - mpich version
@ -343,6 +360,7 @@ Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-%{name}-mpich%{?_isa} = %{version}-%{release}
Requires: mpich-devel
Requires: hdf5-mpich-devel%{?_isa}
Requires: netcdf-mpich-devel%{?_isa}
%{vtk_devel_requires}
%description mpich-devel
@ -386,6 +404,7 @@ Qt bindings for VTK with mpich.
%endif
%if %{with openmpi}
%global mpi_list %mpi_list openmpi
%package openmpi
Summary: The Visualization Toolkit - openmpi version
@ -462,6 +481,13 @@ Obsoletes: vtkdata < 6.1.0-3
%description data
VTK data files for tests and examples.
%package doc
Summary: API documentation for VTK
BuildArch: noarch
%description doc
Generated API documentation for VTK
%package testing
Summary: Testing programs for VTK
Requires: %{name}%{?_isa} = %{version}-%{release}, %{name}-data = %{version}
@ -502,22 +528,6 @@ cp -a Examples vtk-examples
find vtk-examples -type f | xargs chmod -R a-x
%build
export CFLAGS="%{optflags} -D_UNICODE -DHAVE_UINTPTR_T"
export CXXFLAGS="%{optflags} -D_UNICODE -DHAVE_UINTPTR_T"
export CPPFLAGS=-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H
%if %{with java}
export JAVA_HOME=/usr/lib/jvm/java
%ifarch %{arm} s390x
# getting "java.lang.OutOfMemoryError: Java heap space" during the build
export JAVA_TOOL_OPTIONS=-Xmx2048m
%endif
%ifarch %{arm}
# Likely running out of memory during build
%global _smp_ncpus_max 2
%endif
%endif
%global vtk_cmake_options \\\
-DCMAKE_INSTALL_DOCDIR=share/doc/%{name} \\\
-DCMAKE_INSTALL_JARDIR=share/java \\\
@ -569,7 +579,25 @@ export JAVA_TOOL_OPTIONS=-Xmx2048m
# https://gitlab.kitware.com/cmake/cmake/issues/17223
#-DVTK_MODULE_ENABLE_VTK_IOPostgreSQL:STRING=YES \\\
%global _vpath_builddir build
# $mpi will be evaluated in the loops below
%global _vpath_builddir %{_vendor}-%{_target_os}-build-${mpi:-serial}
%build
export CFLAGS="%{optflags} -D_UNICODE -DHAVE_UINTPTR_T"
export CXXFLAGS="%{optflags} -D_UNICODE -DHAVE_UINTPTR_T"
export CPPFLAGS=-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H
%if %{with java}
export JAVA_HOME=/usr/lib/jvm/java
%ifarch %{arm} s390x
# getting "java.lang.OutOfMemoryError: Java heap space" during the build
export JAVA_TOOL_OPTIONS=-Xmx2048m
%endif
%ifarch %{arm}
# Likely running out of memory during build
%global _smp_ncpus_max 2
%endif
%endif
%cmake %{cmake_gen} \
%{vtk_cmake_options} \
-DVTK_BUILD_DOCUMENTATION:BOOL=ON \
@ -578,39 +606,24 @@ export JAVA_TOOL_OPTIONS=-Xmx2048m
%cmake_build -- --output-sync
%cmake_build --target DoxygenDoc
%if %{with mpich}
%global _vpath_builddir build-mpich
%_mpich_load
export CC=mpicc
export CXX=mpic++
%cmake %{cmake_gen} \
%{vtk_cmake_options} \
-DCMAKE_PREFIX_PATH:PATH=$MPI_HOME \
-DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DCMAKE_INSTALL_JNILIBDIR:PATH=lib/%{name} \
-DCMAKE_INSTALL_QMLDIR:PATH=lib/qt5/qml \
-DVTK_USE_MPI:BOOL=ON
%cmake_build -- --output-sync
%_mpich_unload
%endif
%if %{with openmpi}
%global _vpath_builddir build-openmpi
%_openmpi_load
export CC=mpicc
export CXX=mpic++
%cmake %{cmake_gen} \
%{vtk_cmake_options} \
-DCMAKE_PREFIX_PATH:PATH=$MPI_HOME \
-DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DCMAKE_INSTALL_JNILIBDIR:PATH=lib/%{name} \
-DCMAKE_INSTALL_QMLDIR:PATH=lib/qt5/qml \
-DVTK_USE_MPI:BOOL=ON
%cmake_build -- --output-sync
%_openmpi_unload
%endif
for mpi in %{mpi_list}
do
module load mpi/$mpi-%{_arch}
#CMAKE_INSTALL_LIBDIR -> ARCHIVE_DESTINATION must not be an absolute path
%cmake %{cmake_gen} \
%{vtk_cmake_options} \
-DCMAKE_PREFIX_PATH:PATH=$MPI_HOME \
-DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DCMAKE_INSTALL_JNILIBDIR:PATH=lib/%{name} \
-DCMAKE_INSTALL_QMLDIR:PATH=lib/qt5/qml \
-DVTK_USE_MPI:BOOL=ON
%cmake_build -- --output-sync
module purge
done
# Remove executable bits from sources (some of which are generated)
find . -name \*.c -or -name \*.cxx -or -name \*.h -or -name \*.hxx -or \
@ -618,10 +631,9 @@ find . -name \*.c -or -name \*.cxx -or -name \*.h -or -name \*.hxx -or \
%install
%global _vpath_builddir build
%cmake_install
pushd build
pushd %{_vpath_builddir}
# Gather list of non-java/python/qt libraries
ls %{buildroot}%{_libdir}/*.so.* \
| grep -Ev '(Java|Qt|Python)' | sed -e's,^%{buildroot},,' > libs.list
@ -639,35 +651,25 @@ done
# Fix up filelist paths
perl -pi -e's,^,%{_bindir}/,' testing.list
# Install data
mkdir -p %{buildroot}%{_datadir}/vtkdata
cp -alL ExternalData/* %{buildroot}%{_datadir}/vtkdata/
popd
%if %{with mpich}
%_mpich_load
%global _vpath_builddir build-mpich
%cmake_install
for mpi in %{mpi_list}
do
module load mpi/$mpi-%{_arch}
%cmake_install
# Gather list of non-java/pythonl/qt libraries
ls %{buildroot}%{_libdir}/mpich/lib/*.so.* \
| grep -Ev '(Java|Python|Qt)' | sed -e's,^%{buildroot},,' > build-mpich/libs.list
# Gather list of non-java/pythonl/qt libraries
ls %{buildroot}%{_libdir}/${mpi}/lib/*.so.* \
| grep -Ev '(Java|Python|Qt)' | sed -e's,^%{buildroot},,' > %{_vpath_builddir}/libs.list
# Move licenses since we cannot install them outside of CMAKE_INSTALL_PREFIX (MPI_HOME)
mv %{buildroot}%{_libdir}/mpich/share/licenses/vtk %{buildroot}%{_defaultlicensedir}/%{name}-mpich
%_mpich_unload
%endif
%if %{with openmpi}
%_openmpi_load
%global _vpath_builddir build-openmpi
%cmake_install
# Gather list of non-java/python//qt libraries
ls %{buildroot}%{_libdir}/openmpi/lib/*.so.* \
| grep -Ev '(Java|Python|Qt)' | sed -e's,^%{buildroot},,' > build-openmpi/libs.list
# Move licenses since we cannot install them outside of CMAKE_INSTALL_PREFIX (MPI_HOME)
mv %{buildroot}%{_libdir}/openmpi/share/licenses/vtk %{buildroot}%{_defaultlicensedir}/%{name}-openmpi
%_openmpi_unload
%endif
# Move licenses since we cannot install them outside of CMAKE_INSTALL_PREFIX (MPI_HOME)
mv %{buildroot}%{_libdir}/${mpi}/share/licenses/vtk %{buildroot}%{_defaultlicensedir}/%{name}-${mpi}
module purge
done
# Remove exec bit from non-scripts and %%doc
for file in `find %{buildroot} -type f -perm 0755 \
@ -681,9 +683,6 @@ find Utilities/Upgrading -type f -print0 | xargs -0 chmod -x
mkdir -p _docs
cp -pr --parents Wrapping/*/README* _docs/
# Install data
mkdir -p %{buildroot}%{_datadir}/vtkdata
cp -alL build/ExternalData/* %{buildroot}%{_datadir}/vtkdata/
# Make noarch data sub-package the same on all arches
# At the moment this only contains Java/Testing/Data/Baseline
rm -rf %{buildroot}%{_datadir}/vtkdata/Wrapping
@ -710,7 +709,6 @@ fi
$Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf -configdir . :99 &
export DISPLAY=:99
%endif
%global _vpath_builddir build
export FLEXIBLAS=netlib
%ctest --verbose || :
%if %{with xdummy}
@ -719,7 +717,7 @@ cat xorg.log
%endif
%files -f build/libs.list
%files -f %{_vendor}-%{_target_os}-build-serial/libs.list
%license %{_defaultlicensedir}/%{name}/
%doc README.md _docs/Wrapping
@ -734,7 +732,6 @@ cat xorg.log
%{_libdir}/cmake/%{name}/
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/hierarchy/
%{_docdir}/%{name}/
%files -n python%{python3_pkgversion}-vtk
%{python3_sitearch}/*
@ -757,7 +754,7 @@ cat xorg.log
%{_libdir}/qt5/qml/*
%if %{with mpich}
%files mpich -f build-mpich/libs.list
%files mpich -f %{_vendor}-%{_target_os}-build-mpich/libs.list
%license %{_defaultlicensedir}/%{name}-mpich/
%doc README.md _docs/Wrapping
@ -795,7 +792,7 @@ cat xorg.log
%endif
%if %{with openmpi}
%files openmpi -f build-openmpi/libs.list
%files openmpi -f %{_vendor}-%{_target_os}-build-openmpi/libs.list
%license %{_defaultlicensedir}/%{name}-openmpi/
%doc README.md _docs/Wrapping
@ -835,13 +832,40 @@ cat xorg.log
%files data
%{_datadir}/vtkdata
%files testing -f build/testing.list
%files doc
%{_docdir}/%{name}/
%files testing -f %{_vendor}-%{_target_os}-build-serial/testing.list
%files examples
%doc vtk-examples/Examples
%changelog
* Thu Dec 07 2023 David Abdurachmanov <davidlt@rivosinc.com> - 9.2.6-11.0.riscv64
- Disable Java for riscv64 to bootstrap
* Wed Nov 15 2023 Sandro Mani <manisandro@gmail.com> - 9.2.6-11
- Rebuild (gdal)
* Thu Nov 02 2023 Philip Matura <pfed@tura-home.de> - 9.2.6-10
- Move API docs to separate doc sub-package (bz#2247327)
* Wed Oct 11 2023 Orion Poplawski <orion@nwra.com> - 9.2.6-9
- Rebuild for openslide 4.0.0
* Sun Sep 17 2023 Orion Poplawski <orion@nwra.com> - 9.2.6-8
- Use loops for mpi builds/intalls
* Sun Sep 10 2023 Orion Poplawski <orion@nwra.com> - 9.2.6-7
- Fix -devel deps on netcdf-*-devel
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 9.2.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jul 06 2023 Sandro Mani <manisandro@gmail.com> - 9.2.6-5
- Rebuild (cgnslib)
* Fri Jun 16 2023 Python Maint <python-maint@redhat.com> - 9.2.6-4
- Rebuilt for Python 3.12