## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 3; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Enable debug outputs %bcond_with debug # # Enable pthread support %bcond_with pthread # # Enable Python support # sundials4py is in beta and is subject to breaking changes # sundials4py needs Numpy-2, unavailable on RHEL %if 0%{?fedora} %bcond_without python %else %bcond_with python %endif # # https://github.com/LLNL/sundials/issues/97 %define _lto_cflags %{nil} %global with_mpich 1 %ifarch %{ix86} %global with_openmpi 0 %else %global with_openmpi 1 %endif %if 0%{?flatpak} %global with_mpich 0 %global with_openmpi 0 %endif ## BLAS ## %if 0%{?fedora} || 0%{?rhel} >= 9 %global blaslib flexiblas %global blasvar %{nil} %else %global blaslib openblas %global blasvar o %endif ########### %global with_hypre 1 %global with_openmpicheck 1 %global with_mpichcheck 1 ########### %global with_sercheck 1 ## SuperLUMT ## %global with_superlumt 1 ########### ## superlu_dist ## %global with_superludist 0 ########### ## 64bit integer cannot use PETSc64 because MPI must be enabled %if 0%{?fedora} || 0%{?rhel} >= 10 %ifarch %{arm} %{ix86} %global with_64bit_integer 0 %global with_klu 1 %global with_superlumt 1 %global with_klu64 0 %global with_fortran 0 %global with_petsc 1 %endif %ifarch s390x x86_64 %{power64} %{arm64} riscv64 %global with_64bit_integer 1 %global with_klu 1 %global with_klu64 0 %global with_klu64_serial 1 %global with_fortran 1 %global with_petsc 1 %global with_superlumt 1 %global with_superlumt64_serial 1 %endif %endif ########## ########## %if 0%{?rhel} && 0%{?rhel} == 8 %global with_klu 1 %global with_fortran 0 %global with_petsc 1 %global with_petsc64 0 %endif ########## ########## %if 0%{?rhel} && 0%{?rhel} == 9 %global with_klu 1 %global with_klu64 0 %global with_fortran 1 %global with_petsc 1 %global with_petsc64 0 %endif ########## # SOVERSIONs (*_SOVERSION from CMakeLists.txt): %global arkodelib_SOVERSION 6 %global cvodelib_SOVERSION 7 %global cvodeslib_SOVERSION 7 %global idalib_SOVERSION 7 %global idaslib_SOVERSION 6 %global kinsollib_SOVERSION 7 %global nveclib_SOVERSION 7 %global sunmatrixlib_SOVERSION 5 %global sunlinsollib_SOVERSION 5 %global sunnonlinsollib_SOVERSION 4 %global sundialslib_SOVERSION 7 %global sundomeigestpower_SOVERSION 1 Summary: Suite of nonlinear solvers Name: sundials Version: 7.9.0 Release: %autorelease License: BSD-3-Clause URL: https://computation.llnl.gov/projects/%{name}/ Source0: https://github.com/LLNL/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz # This patch rename superLUMT library Patch0: %{name}-5.5.0-set_superlumt_name.patch # This patch rename superLUMT64 library Patch1: %{name}-5.5.0-set_superlumt64_name.patch Patch3: %{name}-7.9.0-klu64.patch Patch4: %{name}-7.9.0-set_python_cmake_flags.patch Patch5: %{name}-7.9.0-find_petsc64.patch # Prefer PETSc's MPI libraries over serial libraries in system directories. Patch6: %{name}-7.9.0-petsc-library-hints.patch BuildRequires: make %if 0%{?with_fortran} BuildRequires: gcc-gfortran %endif BuildRequires: python3-devel BuildRequires: gcc, gcc-c++ %if 0%{?epel} BuildRequires: epel-rpm-macros %endif BuildRequires: cmake >= 3.10 BuildRequires: %{blaslib}-devel %if 0%{?with_superlumt64_serial} BuildRequires: SuperLUMT64-devel > 0:4.0.2-1 %endif %if 0%{?with_superlumt} BuildRequires: SuperLUMT-devel > 0:4.0.2-1 %endif # KLU support %if 0%{?with_klu64} || 0%{?with_klu64_serial} BuildRequires: suitesparse64-devel %endif %if 0%{?with_klu} BuildRequires: suitesparse-devel %endif ########## %if 0%{?with_fortran} BuildRequires: gcc-gfortran%{?_isa} %endif %description SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. SUNDIALS was implemented with the goal of providing robust time integrators and nonlinear solvers that can easily be incorporated into existing simulation codes. The primary design goals were to require minimal information from the user, allow users to easily supply their own data structures underneath the solvers, and allow for easy incorporation of user-supplied linear solvers and preconditioners. %package devel Summary: Suite of nonlinear solvers (developer files) Requires: %{name}%{?_isa} = %{version}-%{release} Provides: %{name}-fortran-static = %{version}-%{release} Provides: %{name}-examples = %{version}-%{release} %description devel SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the developer files (dynamic libraries, header files, static libraries and example files). # Python binding is in beta and is subject to breaking changes %if %{with python} %package -n python3-sundials4py Summary: Python binding of Sundials BuildRequires: python3-pip BuildRequires: pyproject-rpm-macros BuildRequires: python3-nanobind BuildRequires: python3-scikit-build-core >= 0.4.3 BuildRequires: python3-pytest BuildRequires: python3-numpy >= 2.0.0 BuildRequires: python3-matplotlib Requires: %{name}-devel%{?_isa} = %{version}-%{release} %py_provides python3-sundials %description -n python3-sundials4py Official Python bindings for the SUNDIALS suite of nonlinear and differential/algebraic equation solvers. sundials4py is in beta and is subject to breaking changes. %endif ############################################################################# ####### %if 0%{?with_64bit_integer} %package -n sundials64 Summary: Suite of nonlinear solvers (64bit integer) %description -n sundials64 SUNDIALS (64bit integer) is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the developer files (dynamic libraries, header files, static libraries and example files). %package -n sundials64-devel Summary: Suite of nonlinear solvers (64bit integer, developer files) Requires: %{name}64%{?_isa} = %{version}-%{release} %if 0%{?with_klu64_serial} Requires: suitesparse64-devel%{?_isa} Requires: %{blaslib}-devel%{?_isa} %endif Provides: %{name}64-fortran-static = %{version}-%{release} Provides: %{name}64-examples = %{version}-%{release} %description -n sundials64-devel SUNDIALS (64bit integer) is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the developer files (dynamic libraries, header files, static libraries and example files). %endif ############################################################################# ######### %if 0%{?with_openmpi} %package openmpi Summary: Suite of nonlinear solvers BuildRequires: openmpi-devel BuildRequires: hypre-openmpi-devel %if 0%{?with_petsc} BuildRequires: petsc-openmpi-devel >= 3.10 BuildRequires: scalapack-openmpi-devel BuildRequires: hdf5-openmpi-devel %endif %if 0%{?with_superludist} BuildRequires: superlu_dist-openmpi-devel %endif %if 0%{?with_fortran} BuildRequires: gcc-gfortran%{?_isa} %endif %description openmpi SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the Sundials Fortran parallel OpenMPI libraries. %package openmpi-devel Summary: Suite of nonlinear solvers Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} Provides: %{name}-openmpi-fortran-static = %{version}-%{release} %description openmpi-devel SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the Sundials parallel OpenMPI devel libraries and header files. %if 0%{?with_fortran} Requires: gcc-gfortran%{?_isa} %endif %endif ###### ############################################################################### ###### %if 0%{?with_mpich} %package mpich Summary: Suite of nonlinear solvers BuildRequires: mpich-devel BuildRequires: hypre-mpich-devel %if 0%{?with_petsc} BuildRequires: petsc-mpich-devel >= 3.10 BuildRequires: scalapack-mpich-devel BuildRequires: hdf5-mpich-devel %endif %if 0%{?with_superludist} BuildRequires: superlu_dist-mpich-devel %endif %if 0%{?with_fortran} BuildRequires: gcc-gfortran%{?_isa} %endif %description mpich SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the Sundials parallel MPICH libraries. %package mpich-devel Summary: Suite of nonlinear solvers Requires: %{name}-mpich%{?_isa} = %{version}-%{release} Provides: %{name}-mpich-fortran-static = %{version}-%{release} %description mpich-devel SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the Sundials parallel MPICH devel libraries and header files. %if 0%{?with_fortran} Requires: gcc-gfortran%{?_isa} %endif %endif ###### ############################################################################# %package doc Summary: Suite of nonlinear solvers (documentation) BuildArch: noarch Obsoletes: sundials-doc < 0:6.6.2-5 Requires: python3-sundials4py Requires: python3-sphinx-latex %description doc SUNDIALS is a SUite of Non-linear DIfferential/ALgebraic equation Solvers for use in writing mathematical software. This package contains the documentation source files. %prep %setup -qc pushd %{name}-%{version} %patch -P 6 -p1 -b .petsc_library_hints popd %if 0%{?with_64bit_integer} cp -a %{name}-%{version} %{name}64-%{version} pushd %{name}64-%{version} %if 0%{?with_superlumt64_serial} %patch -P 1 -p1 -b .set_superlumt64_name %endif %if 0%{?with_klu64_serial} %patch -P 3 -p1 -b .klu64 %endif %if 0%{?with_petsc64_serial} %patch -P 5 -p1 -b .petsc64 %endif popd %endif pushd %{name}-%{version} %patch -P 0 -p1 -b .set_superlumt_name %if %{with python} %patch -P 4 -p1 -b .backup %endif mv src/arkode/README.md src/README-arkode.md mv src/cvode/README.md src/README-cvode.md mv src/cvodes/README.md src/README-cvodes.md mv src/ida/README.md src/README-ida.md mv src/idas/README.md src/README.idas.md mv src/kinsol/README.md src/README-kinsol.md popd %if %{with python} cp -a %{name}-%{version} %{name}-%{version}-python #generate_buildrequires pushd %{name}-%{version}-python %pyproject_buildrequires popd %endif %if 0%{?with_openmpi} cp -a %{name}-%{version} buildopenmpi_dir %endif %if 0%{?with_mpich} cp -a %{name}-%{version} buildmpich_dir %endif %build %global _smp_ncpus_max 1 %if 0%{?with_superlumt} export LIBSUPERLUMTLINK=-lsuperlu_mt %endif export LIBBLASLINK=-l%{blaslib}%{blasvar} export INCBLAS=%{_includedir}/%{blaslib} export CFLAGS="%{build_cflags}" export FFLAGS="%{build_fflags} -fPIC" %define _vpath_srcdir %{name}-%{version} mkdir -p %{name}-%{version}/build %define _vpath_builddir %{name}-%{version}/build %cmake \ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ %if 0%{?with_klu} -DSUNDIALS_ENABLE_KLU:BOOL=ON -DKLU_LIBRARY_DIR:PATH=%{_libdir} \ -DKLU_LIBRARY:FILEPATH=%{_libdir}/libklu.so \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/suitesparse \ -DAMD_LIBRARY=%{_libdir}/libamd.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ %endif %if 0%{?with_superlumt} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif -DSUNDIALS_ENABLE_PETSC:BOOL=OFF \ -DBLAS_LIBRARIES:FILEPATH=%{_libdir}/lib%{blaslib}%{blasvar}.so \ -DSUNDIALS_ENABLE_PROFILING:BOOL=OFF \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $LIBBLASLINK $LIBSUPERLUMTLINK" \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ -DSUNDIALS_ENABLE_LAPACK:BOOL=OFF \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="%{__global_ldflags}" \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ -DPYTHON_EXECUTABLE:FILEPATH=%{__python3} \ -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON \ -DSUNDIALS_ENABLE_MPI:BOOL=OFF \ %if 0%{?with_fortran} -DF77_INTERFACE_ENABLE:BOOL=ON \ -DSUNDIALS_ENABLE_FORTRAN:BOOL=ON \ -DFortran_INSTALL_MODDIR:PATH=%{_fmoddir}/%{name} \ %endif %if 0%{?with_sercheck} -DSUNDIALS_ENABLE_F90_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_F77_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_CXX_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_C_EXAMPLES:BOOL=ON \ %endif -DUSE_GENERIC_MATH:BOOL=ON \ -DSUNDIALS_ENABLE_OPENMP:BOOL=ON \ %if %{with pthread} -DSUNDIALS_ENABLE_PTHREAD:BOOL=ON \ %endif -DSUNDIALS_INDEX_SIZE:STRING=32 \ -DSUNDIALS_PRECISION:STRING=double \ -DSUNDIALS_ENABLE_SUPERLUDIST:BOOL=OFF \ -DSUNDIALS_ENABLE_HYPRE:BOOL=OFF \ -DSUNDIALS_EXAMPLES_INSTALL_PATH:PATH=%{_libexecdir}/%{name}-%{version}/examples \ -DSUNDIALS_ENABLE_MONITORING:BOOL=ON \ -DSUNDIALS_ENABLE_PYTHON:BOOL=OFF %define _vpath_srcdir %{name}-%{version} %define _vpath_builddir %{name}-%{version}/build %cmake_build %if %{with python} pushd %{name}-%{version}-python %pyproject_wheel popd %endif ############################################################################# ####### %if 0%{?with_64bit_integer} %if 0%{?with_superlumt64_serial} export LIBSUPERLUMTLINK=-lsuperlu_mt64 %endif export LIBBLASLINK=-l%{blaslib}%{blasvar}64 export INCBLAS=%{_includedir}/%{blaslib}64 export CFLAGS="%{build_cflags}" export FFLAGS="%{build_fflags} -fPIC" export LDFLAGS="%{__global_ldflags}" %define _vpath_srcdir %{name}64-%{version} mkdir -p %{name}64-%{version}/build %define _vpath_builddir %{name}64-%{version}/build # A separate SONAME is required for the incompatible 64-bit index ABI. # This build uses Release, so the postfix covers all C and Fortran libraries, # their internal dependencies, and the installed CMake imported targets. %cmake \ -DCMAKE_RELEASE_POSTFIX:STRING=64 \ -DSUNDIALS_INDEX_SIZE:STRING=64 \ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ %if 0%{?with_klu64_serial} -DSUNDIALS_ENABLE_KLU:BOOL=ON \ -DKLU_LIBRARY:FILEPATH=%{_libdir}/libklu64.so \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/SuiteSparse64 \ -DAMD_LIBRARY=%{_libdir}/libamd64.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf64.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DSUITESPARSECONFIG_LIBRARY:FILEPATH=%{_libdir}/libsuitesparseconfig64.so \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd64.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ %endif %if 0%{?with_superlumt64_serial} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT64 \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt64.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif -DSUNDIALS_ENABLE_PETSC:BOOL=OFF \ -DBLAS_LIBRARIES:FILEPATH=%{_libdir}/lib%{blaslib}%{blasvar}64.so \ -DSUNDIALS_ENABLE_PROFILING:BOOL=OFF \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $LIBBLASLINK $LIBSUPERLUMTLINK" \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir}/sundials64 \ -DSUNDIALS_ENABLE_LAPACK:BOOL=OFF \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="%{__global_ldflags}" \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ -DSUNDIALS_INSTALL_CMAKEDIR:PATH=%{_lib}/cmake/sundials64 \ -DPYTHON_EXECUTABLE:FILEPATH=%{__python3} \ -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON \ -DSUNDIALS_ENABLE_MPI:BOOL=OFF \ %if 0%{?with_fortran} -DF77_INTERFACE_ENABLE:BOOL=ON \ -DSUNDIALS_ENABLE_FORTRAN:BOOL=ON \ -DFortran_INSTALL_MODDIR:PATH=%{_fmoddir}/%{name}64 \ %endif %if 0%{?with_sercheck} -DSUNDIALS_ENABLE_F90_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_F77_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_CXX_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_C_EXAMPLES:BOOL=ON \ %endif -DUSE_GENERIC_MATH:BOOL=ON \ -DSUNDIALS_ENABLE_OPENMP:BOOL=ON \ %if %{with pthread} -DSUNDIALS_ENABLE_PTHREAD:BOOL=ON \ %endif -DSUNDIALS_PRECISION:STRING=double \ -DSUNDIALS_ENABLE_SUPERLUDIST:BOOL=OFF \ -DSUNDIALS_ENABLE_HYPRE:BOOL=OFF \ -DSUNDIALS_EXAMPLES_INSTALL_PATH:PATH=%{_libexecdir}/%{name}64-%{version}/examples \ -DSUNDIALS_ENABLE_MONITORING:BOOL=ON \ -DSUNDIALS_ENABLE_PYTHON:BOOL=OFF %define _vpath_srcdir %{name}64-%{version} %define _vpath_builddir %{name}64-%{version}/build %cmake_build %endif ############################################################################# ####### %if 0%{?with_openmpi} %{_openmpi_load} ## Blas export LIBBLASLINK=-l%{blaslib}%{blasvar} export INCBLAS=%{_includedir}/%{blaslib} ## ## SuperLUMT %if 0%{?with_superlumt64} export LIBSUPERLUMTLINK=-lsuperlu_mt64 %endif %if 0%{?with_superlumt} export LIBSUPERLUMTLINK=-lsuperlu_mt %endif ## Hypre %if 0%{?with_hypre} export LIBHYPRELINK="-L$MPI_LIB -lHYPRE" %endif ## # Force MPI compilers export CC=$MPI_BIN/mpicc export CXX=$MPI_BIN/mpic++ %if 0%{?fedora} export FC=$MPI_BIN/mpifort %else export FC=$MPI_BIN/mpif77 %endif ## export CFLAGS="%{build_cflags}" export FFLAGS="%{build_fflags} -fPIC" %define _vpath_srcdir buildopenmpi_dir mkdir -p buildopenmpi_dir/build %define _vpath_builddir buildopenmpi_dir/build %cmake \ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ %if 0%{?with_klu64} -DSUNDIALS_INDEX_SIZE:STRING=64 \ -DSUNDIALS_ENABLE_KLU=ON -DKLU_LIBRARY_DIR:PATH=%{_libdir} -DKLU_LIBRARY=%{_libdir}/libklu64.so \ -DAMD_LIBRARY=%{_libdir}/libamd64.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf64.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd64.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/SuiteSparse64 \ %if 0%{?with_petsc64} -DSUNDIALS_ENABLE_PETSC:BOOL=ON \ -DPETSC_INCLUDES:STRING=-I%{_includedir}/petsc64 \ -DPETSC_LIBRARIES:STRING="-L%{_libdir} -lpetsc64" \ %endif %if 0%{?with_superlumt} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT64 \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt64.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif %endif %if 0%{?with_klu} -DSUNDIALS_INDEX_SIZE:STRING=32 \ -DSUNDIALS_ENABLE_KLU=ON -DKLU_LIBRARY_DIR:PATH=%{_libdir} -DKLU_LIBRARY=%{_libdir}/libklu.so \ -DAMD_LIBRARY=%{_libdir}/libamd.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/suitesparse \ %if 0%{?with_petsc} -DSUNDIALS_ENABLE_PETSC:BOOL=ON \ -DPETSC_INCLUDES:STRING=-I$MPI_INCLUDE/petsc \ -DPETSC_LIBRARIES:STRING="-L$MPI_LIB -lpetsc" \ %endif %if 0%{?with_superlumt} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif %endif -DSUNDIALS_ENABLE_PROFILING:BOOL=OFF \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $LIBBLASLINK $LIBSUPERLUMTLINK $LIBHYPRELINK" \ -DMPI_INCLUDE_PATH:PATH=$MPI_INCLUDE \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=$MPI_INCLUDE \ -DSUNDIALS_ENABLE_LAPACK:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib}/openmpi/lib \ -DPYTHON_EXECUTABLE:FILEPATH=%{__python3} \ -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON \ -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ -DSUNDIALS_ENABLE_MPI:BOOL=ON \ %if 0%{?with_fortran} %if 0%{?fedora} -DMPI_Fortran_COMPILER:STRING=$MPI_BIN/mpifort \ %else -DMPI_Fortran_COMPILER:STRING=$MPI_BIN/mpif77 \ %endif -DF77_INTERFACE_ENABLE:BOOL=ON \ %if 0%{?with_openmpicheck} -DSUNDIALS_ENABLE_F90_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_F77_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_CXX_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_C_EXAMPLES:BOOL=ON \ %endif %if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64 -DSUNDIALS_ENABLE_FORTRAN:BOOL=ON \ %endif -DFortran_INSTALL_MODDIR:PATH=$MPI_FORTRAN_MOD_DIR/%{name} \ %endif -DUSE_GENERIC_MATH:BOOL=ON \ -DSUNDIALS_ENABLE_OPENMP:BOOL=ON \ %if %{with pthread} -DSUNDIALS_ENABLE_PTHREAD:BOOL=ON \ %endif %if 0%{?with_superludist} -DSUNDIALS_ENABLE_SUPERLUDIST:BOOL=ON \ -DSUPERLUDIST_INCLUDE_DIR:PATH=$MPI_INCLUDE/superlu_dist \ -DSUPERLUDIST_LIBRARY_DIR:PATH=$MPI_LIB \ -DSUPERLUDIST_LIBRARIES:STRING=libsuperlu_dist.so \ %endif %if 0%{?with_hypre} -DSUNDIALS_ENABLE_HYPRE:BOOL=ON \ -DHYPRE_INCLUDE_DIR:PATH=$MPI_INCLUDE/hypre \ -DHYPRE_LIBRARY_DIR:PATH=$MPI_LIB \ %endif -DSUNDIALS_EXAMPLES_INSTALL_PATH:PATH=%{_libexecdir}/%{name}-%{version}/examples \ -DSUNDIALS_ENABLE_MONITORING:BOOL=ON %define _vpath_srcdir buildopenmpi_dir %define _vpath_builddir buildopenmpi_dir/build %cmake_build %{_openmpi_unload} %endif ###### ########################################################################### %if 0%{?with_mpich} %{_mpich_load} ## Blas export LIBBLASLINK=-l%{blaslib}%{blasvar} export INCBLAS=%{_includedir}/%{blaslib} ## ## SuperLUMT %if 0%{?with_superlumt64} export LIBSUPERLUMTLINK=-lsuperlu_mt64 %endif %if 0%{?with_superlumt} export LIBSUPERLUMTLINK=-lsuperlu_mt %endif ## Hypre %if 0%{?with_hypre} export LIBHYPRELINK="-L$MPI_LIB -lHYPRE" %endif ## # Force MPI compilers export CC=$MPI_BIN/mpicc export CXX=$MPI_BIN/mpic++ %if 0%{?fedora} export FC=$MPI_BIN/mpifort %else export FC=$MPI_BIN/mpif77 %endif ## export CFLAGS="%{build_cflags}" export FFLAGS="%{build_fflags} -fPIC" %define _vpath_srcdir buildmpich_dir mkdir -p buildmpich_dir/build %define _vpath_builddir buildmpich_dir/build %cmake \ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -I$INCBLAS" \ %if 0%{?with_klu64} -DSUNDIALS_INDEX_SIZE:STRING=64 \ -DSUNDIALS_ENABLE_KLU=ON -DKLU_LIBRARY_DIR:PATH=%{_libdir} -DKLU_LIBRARY=%{_libdir}/libklu64.so \ -DAMD_LIBRARY=%{_libdir}/libamd64.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf64.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd64.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/suitesparse \ %if 0%{?with_superlumt} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT64 \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt64.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif %if 0%{?with_petsc64} -DSUNDIALS_ENABLE_PETSC:BOOL=ON \ -DPETSC_INCLUDES:STRING=-I%{_includedir}/petsc64 \ -DPETSC_LIBRARIES:STRING="-L%{_libdir} -lpetsc64" \ %endif %endif %if 0%{?with_klu} -DSUNDIALS_INDEX_SIZE:STRING=32 \ -DSUNDIALS_ENABLE_KLU=ON -DKLU_LIBRARY_DIR:PATH=%{_libdir} -DKLU_LIBRARY=%{_libdir}/libklu.so \ -DAMD_LIBRARY=%{_libdir}/libamd.so -DAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DBTF_LIBRARY=%{_libdir}/libbtf.so -DBTF_LIBRARY_DIR:PATH=%{_libdir} \ -DCOLAMD_LIBRARY=%{_libdir}/libcolamd.so -DCOLAMD_LIBRARY_DIR:PATH=%{_libdir} \ -DKLU_INCLUDE_DIR:PATH=%{_includedir}/suitesparse \ %if 0%{?with_superlumt} -DSUNDIALS_ENABLE_SUPERLUMT:BOOL=ON \ -DSUPERLUMT_INCLUDE_DIR:PATH=%{_includedir}/SuperLUMT \ -DSUPERLUMT_LIBRARY_DIR:PATH=%{_libdir} \ -DSUPERLUMT_LIBRARY:FILEPATH=%{_libdir}/libsuperlu_mt.so \ -DSUPERLUMT_THREAD_TYPE:STRING=OpenMP \ %endif %if 0%{?with_petsc} -DSUNDIALS_ENABLE_PETSC:BOOL=ON \ -DPETSC_INCLUDES:STRING=-I$MPI_INCLUDE/petsc \ -DPETSC_LIBRARIES:STRING="-L$MPI_LIB -lpetsc" \ %endif %endif -DSUNDIALS_ENABLE_PROFILING:BOOL=OFF \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} $LIBBLASLINK $LIBSUPERLUMTLINK $LIBHYPRELINK" \ -DSUNDIALS_ENABLE_LAPACK:BOOL=OFF \ -DMPI_INCLUDE_PATH:PATH=$MPI_INCLUDE \ -DCMAKE_INSTALL_INCLUDEDIR:PATH=$MPI_INCLUDE \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib}/mpich/lib \ -DPYTHON_EXECUTABLE:FILEPATH=%{__python3} \ -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=ON \ -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \ -DSUNDIALS_ENABLE_MPI:BOOL=ON \ %if 0%{?with_fortran} %if 0%{?fedora} -DMPI_Fortran_COMPILER:STRING=$MPI_BIN/mpifort \ %else -DMPI_Fortran_COMPILER:STRING=$MPI_BIN/mpif77 \ %endif -DF77_INTERFACE_ENABLE:BOOL=ON \ %if 0%{?with_openmpicheck} -DSUNDIALS_ENABLE_F90_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_F77_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_CXX_EXAMPLES:BOOL=ON \ -DSUNDIALS_ENABLE_C_EXAMPLES:BOOL=ON \ %endif %if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64 -DSUNDIALS_ENABLE_FORTRAN:BOOL=ON \ %endif -DFortran_INSTALL_MODDIR:PATH=$MPI_FORTRAN_MOD_DIR/%{name} \ %endif -DUSE_GENERIC_MATH:BOOL=ON \ -DSUNDIALS_ENABLE_OPENMP:BOOL=ON \ %if %{with pthread} -DSUNDIALS_ENABLE_PTHREAD:BOOL=ON \ %endif %if 0%{?with_hypre} -DSUNDIALS_ENABLE_HYPRE:BOOL=ON \ -DHYPRE_INCLUDE_DIR:PATH=$MPI_INCLUDE/hypre \ -DHYPRE_LIBRARY_DIR:PATH=$MPI_LIB \ %endif -DSUNDIALS_EXAMPLES_INSTALL_PATH:PATH=%{_libexecdir}/%{name}-%{version}/examples \ -DSUNDIALS_ENABLE_MONITORING:BOOL=ON %define _vpath_srcdir buildmpich_dir %define _vpath_builddir buildmpich_dir/build %cmake_build %{_mpich_unload} %endif ###### ############################################################################# %install %if 0%{?with_openmpi} %{_openmpi_load} %define _vpath_srcdir buildopenmpi_dir %define _vpath_builddir buildopenmpi_dir/build %cmake_install rm -f %{buildroot}$MPI_INCLUDE/%{name}/LICENSE rm -f %{buildroot}$MPI_INCLUDE/%{name}/NOTICE %{_openmpi_unload} %endif %if 0%{?with_mpich} %{_mpich_load} %define _vpath_srcdir buildmpich_dir %define _vpath_builddir buildmpich_dir/build %cmake_install rm -f %{buildroot}$MPI_INCLUDE/%{name}/LICENSE rm -f %{buildroot}$MPI_INCLUDE/%{name}/NOTICE %{_mpich_unload} %endif ############################################################################# ####### %if 0%{?with_64bit_integer} %define _vpath_srcdir %{name}64-%{version} %define _vpath_builddir %{name}64-%{version}/build %cmake_install # Upstream's installed example templates spell out library names rather than # querying the CMake targets. Keep their link flags and find_library calls # consistent with CMAKE_RELEASE_POSTFIX. SUNDIALS:: target names are unchanged. find %{buildroot}%{_libexecdir}/%{name}64-%{version}/examples \ -type f \( -name Makefile -o -name CMakeLists.txt \) \ -exec sed -i -E 's/(sundials_[[:alnum:]_]+)/\164/g' {} + %endif ############################################################################# %define _vpath_srcdir %{name}-%{version} %define _vpath_builddir %{name}-%{version}/build %cmake_install # Remove files in bad position rm -f %{buildroot}%{_prefix}/LICENSE rm -f %{buildroot}%{_includedir}/%{name}/LICENSE rm -f %{buildroot}%{_includedir}/%{name}/NOTICE %if %{with python} pushd %{name}-%{version}-python %pyproject_install %pyproject_save_files -l sundials4py -L popd # Duplicated static libraries and header files rm -rf %{buildroot}%{python3_sitearch}/%{_lib} rm -rf %{buildroot}%{python3_sitearch}/include %endif %check %if 0%{?with_openmpi} %if 0%{?with_openmpicheck} %{_openmpi_load} %define _vpath_builddir buildopenmpi_dir %define _vpath_builddir buildopenmpi_dir/build export LD_LIBRARY_PATH=%{buildroot}$MPI_LIB %if %{with debug} %ctest -VV --debug %else %ctest %endif %endif %{_openmpi_unload} %endif ## if with_openmpicheck ## if with_openmpi %if 0%{?with_mpich} %if 0%{?with_mpichcheck} %{_mpich_load} %define _vpath_builddir buildmpich_dir %define _vpath_builddir buildmpich_dir/build export LD_LIBRARY_PATH=%{buildroot}$MPI_LIB %if %{with debug} %ctest -VV --debug %else %ctest %endif %endif %{_mpich_unload} %endif ## if with_mpichcheck ## if with_mpich %if 0%{?with_sercheck} %define _vpath_srcdir %{name}-%{version} %define _vpath_builddir %{name}-%{version}/build export LD_LIBRARY_PATH=%{buildroot}%{_libdir} %if %{with debug} %ctest -VV --debug %else %ctest %endif %endif ############################################################################# ####### %if 0%{?with_64bit_integer} %define _vpath_srcdir %{name}64-%{version} %define _vpath_builddir %{name}64-%{version}/build export LD_LIBRARY_PATH=%{buildroot}%{_libdir} %if %{with debug} %ctest -VV --debug %else %ctest %endif %endif ############################################################################# %if %{with python} pushd %{name}-%{version}-python %pyproject_check_import # Render example plots without requiring a graphical display. MPLBACKEND=Agg %pytest popd %endif %files # Match only unsuffixed libraries here; exclusions also collect ILP64 build IDs. %license %{name}-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %doc %{name}-%{version}/src/README-arkode.md %doc %{name}-%{version}/src/README-cvode.md %doc %{name}-%{version}/src/README-cvodes.md %doc %{name}-%{version}/src/README-ida.md %doc %{name}-%{version}/src/README.idas.md %doc %{name}-%{version}/src/README-kinsol.md %{_libdir}/libsundials_core.so.%{sundialslib_SOVERSION}* %{_libdir}/libsundials_arkode.so.%{arkodelib_SOVERSION}* %{_libdir}/libsundials_cvode.so.%{cvodelib_SOVERSION}* %{_libdir}/libsundials_cvodes.so.%{cvodeslib_SOVERSION}* %{_libdir}/libsundials_ida.so.%{idalib_SOVERSION}* %{_libdir}/libsundials_idas.so.%{idaslib_SOVERSION}* %{_libdir}/libsundials_kinsol.so.%{kinsollib_SOVERSION}* %{_libdir}/libsundials_nvecopenmp.so.%{nveclib_SOVERSION}* %{_libdir}/libsundials_nvecmanyvector.so.%{nveclib_SOVERSION}* %if %{with pthread} %{_libdir}/libsundials_nvecpthreads.so.%{nveclib_SOVERSION}* %endif %{_libdir}/libsundials_nvecserial.so.%{nveclib_SOVERSION}* %{_libdir}/libsundials_sunlinsol*[!0-9].so.%{sunlinsollib_SOVERSION}* %{_libdir}/libsundials_sunmatrix*[!0-9].so.%{sunmatrixlib_SOVERSION}* %{_libdir}/libsundials_sunnonlinsol*[!0-9].so.%{sunnonlinsollib_SOVERSION}* %{_libdir}/libsundials_sundomeigestpower.so.%{sundomeigestpower_SOVERSION}* %if 0%{?with_fortran} %{_libdir}/libsundials_f*[_mod].so.* %endif %files devel %{_libdir}/libsundials_*[!0-9].a %{_libdir}/libsundials_core.so %{_libdir}/libsundials_ida.so %{_libdir}/libsundials_idas.so %{_libdir}/libsundials_cvode.so %{_libdir}/libsundials_cvodes.so %{_libdir}/libsundials_arkode.so %{_libdir}/libsundials_kinsol.so %{_libdir}/libsundials_nvecserial.so %{_libdir}/libsundials_nvecopenmp.so %{_libdir}/libsundials_nvecmanyvector.so %{_libdir}/libsundials_sundomeigestpower.so %{_libdir}/cmake/sundials/ %if %{with pthread} %{_libdir}/libsundials_nvecpthreads.so %endif %{_libdir}/libsundials_sunmatrix*[!0-9].so %{_libdir}/libsundials_sunlinsol*[!0-9].so %{_libdir}/libsundials_sunnonlinsol*[!0-9].so %if 0%{?with_fortran} %{_libdir}/libsundials_f*[_mod].so %{_fmoddir}/%{name}/ %if %{with pthread} %{_libdir}/libsundials_fnvecpthreads.so %endif %endif %{_includedir}/nvector/ %{_includedir}/sunmatrix/ %{_includedir}/sunadjointcheckpointscheme/ %{_includedir}/sunnonlinsol/ %{_includedir}/sunlinsol/ %{_includedir}/sunadaptcontroller/ %{_includedir}/sunmemory/ %{_includedir}/arkode/ %{_includedir}/cvode/ %{_includedir}/cvodes/ %{_includedir}/ida/ %{_includedir}/idas/ %{_includedir}/kinsol/ %{_includedir}/sundomeigest %dir %{_includedir}/sundials %{_includedir}/sundials/priv/ %{_includedir}/sundials/sundials_adjointcheckpointscheme.h %{_includedir}/sundials/sundials_adjointstepper.h %{_includedir}/sundials/sundials_stepper.h %{_includedir}/sundials/sundials_export.h %{_includedir}/sundials/sundials_band.h %{_includedir}/sundials/sundials_dense.h %{_includedir}/sundials/sundials_domeigestimator.h %{_includedir}/sundials/sundials_direct.h %{_includedir}/sundials/sundials_futils.h %{_includedir}/sundials/sundials_iterative.h %{_includedir}/sundials/sundials_linearsolver.h %{_includedir}/sundials/sundials_math.h %{_includedir}/sundials/sundials_matrix.h %{_includedir}/sundials/sundials_memory.h %{_includedir}/sundials/sundials_nonlinearsolver.h %{_includedir}/sundials/sundials_mpi_types.h %{_includedir}/sundials/sundials_nvector.h %{_includedir}/sundials/sundials_types.h %{_includedir}/sundials/sundials_version.h %{_includedir}/sundials/sundials_config.h %{_includedir}/sundials/sundials_base.hpp %{_includedir}/sundials/sundials_context.h %{_includedir}/sundials/sundials_context.hpp %{_includedir}/sundials/sundials_convertibleto.hpp %{_includedir}/sundials/sundials_linearsolver.hpp %{_includedir}/sundials/sundials_logger.h %{_includedir}/sundials/sundials_matrix.hpp %{_includedir}/sundials/sundials_memory.hpp %{_includedir}/sundials/sundials_nonlinearsolver.hpp %{_includedir}/sundials/sundials_nvector.hpp %{_includedir}/sundials/sundials_profiler.h %{_includedir}/sundials/sundials_adaptcontroller.h %{_includedir}/sundials/sundials_profiler.hpp %{_includedir}/sundials/sundials_core.h* %{_includedir}/sundials/sundials_errors.h %{_includedir}/sundials/sundials_types_deprecated.h %{_includedir}/sundials/sundials_adaptcontroller.hpp %{_includedir}/sundials/sundials_adjointcheckpointscheme.hpp %{_includedir}/sundials/sundials_adjointstepper.hpp %{_includedir}/sundials/sundials_classview.hpp %{_includedir}/sundials/sundials_domeigestimator.hpp %{_includedir}/sundials/sundials_logger.hpp %{_includedir}/sundials/sundials_stepper.hpp %{_libexecdir}/%{name}-%{version}/ %if %{with python} %files -n python3-sundials4py -f %{pyproject_files} %license %{name}-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %endif ############################################################################# ####### %if 0%{?with_64bit_integer} %files -n sundials64 %license %{name}64-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %doc %{name}-%{version}/src/README-arkode.md %doc %{name}-%{version}/src/README-cvode.md %doc %{name}-%{version}/src/README-cvodes.md %doc %{name}-%{version}/src/README-ida.md %doc %{name}-%{version}/src/README.idas.md %doc %{name}-%{version}/src/README-kinsol.md %{_libdir}/libsundials_core64.so.%{sundialslib_SOVERSION}* %{_libdir}/libsundials_arkode*64.so.%{arkodelib_SOVERSION}* %{_libdir}/libsundials_cvode*64.so.%{cvodelib_SOVERSION}* %{_libdir}/libsundials_ida64.so.%{idalib_SOVERSION}* %{_libdir}/libsundials_idas64.so.%{idaslib_SOVERSION}* %{_libdir}/libsundials_kinsol64.so.%{kinsollib_SOVERSION}* %{_libdir}/libsundials_nvecopenmp64.so.%{nveclib_SOVERSION}* %{_libdir}/libsundials_nvecmanyvector64.so.%{nveclib_SOVERSION}* %if %{with pthread} %{_libdir}/libsundials_nvecpthreads64.so.%{nveclib_SOVERSION}* %endif %{_libdir}/libsundials_nvecserial64.so.%{nveclib_SOVERSION}* %{_libdir}/libsundials_sunlinsol*64.so.%{sunlinsollib_SOVERSION}* %{_libdir}/libsundials_sunmatrix*64.so.%{sunmatrixlib_SOVERSION}* %{_libdir}/libsundials_sunnonlinsol*64.so.%{sunnonlinsollib_SOVERSION}* %{_libdir}/libsundials_sundomeigestpower64.so.%{sundomeigestpower_SOVERSION}* %if 0%{?with_fortran} %{_libdir}/libsundials_f*[_mod]64.so.* %endif %files -n sundials64-devel %{_libdir}/libsundials_*64.a %{_libdir}/libsundials_core64.so %{_libdir}/libsundials_ida*64.so %{_libdir}/libsundials_cvode*64.so %{_libdir}/libsundials_arkode*64.so %{_libdir}/libsundials_kinsol64.so %{_libdir}/libsundials_nvecserial64.so %{_libdir}/libsundials_nvecopenmp64.so %{_libdir}/libsundials_nvecmanyvector64.so %{_libdir}/libsundials_sundomeigestpower64.so %{_libdir}/cmake/sundials64/ %if %{with pthread} %{_libdir}/libsundials_nvecpthreads64.so %endif %{_libdir}/libsundials_sunmatrix*64.so %{_libdir}/libsundials_sunlinsol*64.so %{_libdir}/libsundials_sunnonlinsol*64.so %if 0%{?with_fortran} %{_libdir}/libsundials_f*[_mod]64.so %{_fmoddir}/%{name}64/ %if %{with pthread} %{_libdir}/libsundials_fnvecpthreads64.so %endif %endif %{_includedir}/%{name}64/nvector/ %{_includedir}/%{name}64/sunmatrix/ %{_includedir}/%{name}64/sunadjointcheckpointscheme/ %{_includedir}/%{name}64/sunnonlinsol/ %{_includedir}/%{name}64/sunlinsol/ %{_includedir}/%{name}64/sunadaptcontroller/ %{_includedir}/%{name}64/sunmemory/ %{_includedir}/%{name}64/arkode/ %{_includedir}/%{name}64/cvode/ %{_includedir}/%{name}64/cvodes/ %{_includedir}/%{name}64/ida/ %{_includedir}/%{name}64/idas/ %{_includedir}/%{name}64/kinsol/ %{_includedir}/%{name}64/sundomeigest %{_includedir}/%{name}64/sundials/ %{_libexecdir}/%{name}64-%{version}/ %endif ############################################################################# %if 0%{?with_openmpi} %files openmpi %license %{name}-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %doc %{name}-%{version}/src/README-arkode.md %doc %{name}-%{version}/src/README-cvode.md %doc %{name}-%{version}/src/README-cvodes.md %doc %{name}-%{version}/src/README-ida.md %doc %{name}-%{version}/src/README.idas.md %doc %{name}-%{version}/src/README-kinsol.md %{_libdir}/openmpi/lib/libsundials_nvecparallel.so.* %{_libdir}/openmpi/lib/libsundials_nvecparhyp.so.* %if 0%{?with_petsc} %{_libdir}/openmpi/lib/libsundials_nvecpetsc.so.* %endif %if %{with pthread} %{_libdir}/openmpi/lib/libsundials_nvecmpipthreads.so.* %endif %{_libdir}/openmpi/lib/libsundials_sundomeigestpower.so.* %{_libdir}/openmpi/lib/libsundials_nvecmpiplusx.so.* %{_libdir}/openmpi/lib/libsundials_core.so.* %{_libdir}/openmpi/lib/libsundials_kinsol.so.* %{_libdir}/openmpi/lib/libsundials_ida*.so.* %{_libdir}/openmpi/lib/libsundials_cvode*.so.* %{_libdir}/openmpi/lib/libsundials_arkode*.so.* %{_libdir}/openmpi/lib/libsundials_nvecserial.so.* %{_libdir}/openmpi/lib/libsundials_nvecopenmp.so.* %{_libdir}/openmpi/lib/libsundials_sunmatrix*.so.* %{_libdir}/openmpi/lib/libsundials_sunlinsol*.so.* %{_libdir}/openmpi/lib/libsundials_sunnonlinsol*.so.* %{_libdir}/openmpi/lib/libsundials_nvecmanyvector.so.* %{_libdir}/openmpi/lib/libsundials_nvecmpimanyvector.so.* %if %{with pthread} %{_libdir}/openmpi/lib/libsundials_nvecpthreads.so.* %endif %if 0%{?with_fortran} %{_libdir}/openmpi/lib/libsundials_f*[_mod].so.* %endif %files openmpi-devel %{_libdir}/openmpi/lib/*.a %{_includedir}/openmpi-%{_arch}/nvector/ %{_includedir}/openmpi-%{_arch}/sundials/ %{_includedir}/openmpi-%{_arch}/arkode/ %{_includedir}/openmpi-%{_arch}/cvode/ %{_includedir}/openmpi-%{_arch}/cvodes/ %{_includedir}/openmpi-%{_arch}/sundomeigest/ %{_includedir}/openmpi-%{_arch}/ida/ %{_includedir}/openmpi-%{_arch}/idas/ %{_includedir}/openmpi-%{_arch}/kinsol/ %{_includedir}/openmpi-%{_arch}/sunadjointcheckpointscheme/ %{_includedir}/openmpi-%{_arch}/sunlinsol/ %{_includedir}/openmpi-%{_arch}/sunmatrix/ %{_includedir}/openmpi-%{_arch}/sunnonlinsol/ %{_includedir}/openmpi-%{_arch}/sunmemory/ %{_includedir}/openmpi-%{_arch}/sunadaptcontroller/ %if 0%{?with_fortran} %{_fmoddir}/openmpi/%{name}/ %{_libdir}/openmpi/lib/libsundials_f*[_mod].so %endif %{_libdir}/openmpi/lib/libsundials_nvecparallel.so %{_libdir}/openmpi/lib/libsundials_nvecparhyp.so %if 0%{?with_petsc} %{_libdir}/openmpi/lib/libsundials_nvecpetsc.so %endif %if %{with pthread} %{_libdir}/openmpi/lib/libsundials_nvecmpipthreads.so %{_libdir}/openmpi/lib/libsundials_nvecpthreads.so %endif %{_libdir}/openmpi/lib/libsundials_sundomeigestpower.so %{_libdir}/openmpi/lib/libsundials_nvecmpiplusx.so %{_libdir}/openmpi/lib/libsundials_core.so %{_libdir}/openmpi/lib/libsundials_kinsol.so %{_libdir}/openmpi/lib/libsundials_ida*.so %{_libdir}/openmpi/lib/libsundials_cvode*.so %{_libdir}/openmpi/lib/libsundials_arkode*.so %{_libdir}/openmpi/lib/libsundials_nvecserial.so %{_libdir}/openmpi/lib/libsundials_nvecopenmp.so %{_libdir}/openmpi/lib/libsundials_sunmatrix*.so %{_libdir}/openmpi/lib/libsundials_sunlinsol*.so %{_libdir}/openmpi/lib/libsundials_sunnonlinsol*.so %{_libdir}/openmpi/lib/libsundials_nvecmanyvector.so %{_libdir}/openmpi/lib/libsundials_nvecmpimanyvector.so %{_libdir}/openmpi/lib/cmake/sundials/ %endif %if 0%{?with_mpich} %files mpich %license %{name}-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %doc %{name}-%{version}/src/README-arkode.md %doc %{name}-%{version}/src/README-cvode.md %doc %{name}-%{version}/src/README-cvodes.md %doc %{name}-%{version}/src/README-ida.md %doc %{name}-%{version}/src/README.idas.md %doc %{name}-%{version}/src/README-kinsol.md %{_libdir}/mpich/lib/libsundials_nvecparallel.so.* %{_libdir}/mpich/lib/libsundials_nvecparhyp.so.* %if 0%{?with_petsc} %{_libdir}/mpich/lib/libsundials_nvecpetsc.so.* %endif %if %{with pthread} %{_libdir}/mpich/lib/libsundials_nvecmpipthreads.so.* %endif %{_libdir}/mpich/lib/libsundials_nvecmpiplusx.so.* %{_libdir}/mpich/lib/libsundials_core.so.* %{_libdir}/mpich/lib/libsundials_kinsol.so.* %{_libdir}/mpich/lib/libsundials_ida*.so.* %{_libdir}/mpich/lib/libsundials_cvode*.so.* %{_libdir}/mpich/lib/libsundials_arkode*.so.* %{_libdir}/mpich/lib/libsundials_nvecserial.so.* %{_libdir}/mpich/lib/libsundials_nvecopenmp.so.* %{_libdir}/mpich/lib/libsundials_sunmatrix*.so.* %{_libdir}/mpich/lib/libsundials_sunlinsol*.so.* %{_libdir}/mpich/lib/libsundials_sunnonlinsol*.so.* %{_libdir}/mpich/lib/libsundials_nvecmanyvector.so.* %{_libdir}/mpich/lib/libsundials_nvecmpimanyvector.so.* %{_libdir}/mpich/lib/libsundials_sundomeigestpower.so.* %if %{with pthread} %{_libdir}/mpich/lib/libsundials_nvecpthreads.so.* %endif %if 0%{?with_fortran} %{_libdir}/mpich/lib/libsundials_f*[_mod].so.* %endif %files mpich-devel %{_includedir}/mpich-%{_arch}/nvector/ %{_includedir}/mpich-%{_arch}/sundials/ %{_includedir}/mpich-%{_arch}/arkode/ %{_includedir}/mpich-%{_arch}/cvode/ %{_includedir}/mpich-%{_arch}/cvodes/ %{_includedir}/mpich-%{_arch}/sundomeigest/ %{_includedir}/mpich-%{_arch}/ida/ %{_includedir}/mpich-%{_arch}/idas/ %{_includedir}/mpich-%{_arch}/kinsol/ %{_includedir}/mpich-%{_arch}/sunadjointcheckpointscheme/ %{_includedir}/mpich-%{_arch}/sunlinsol/ %{_includedir}/mpich-%{_arch}/sunmatrix/ %{_includedir}/mpich-%{_arch}/sunnonlinsol/ %{_includedir}/mpich-%{_arch}/sunmemory/ %{_includedir}/mpich-%{_arch}/sunadaptcontroller/ %if 0%{?with_fortran} %{_fmoddir}/mpich/%{name}/ %{_libdir}/mpich/lib/libsundials_f*[_mod].so %endif %{_libdir}/mpich/lib/*.a %{_libdir}/mpich/lib/libsundials_nvecparallel.so %{_libdir}/mpich/lib/libsundials_nvecparhyp.so %if 0%{?with_petsc} %{_libdir}/mpich/lib/libsundials_nvecpetsc.so %endif %if %{with pthread} %{_libdir}/mpich/lib/libsundials_nvecmpipthreads.so %{_libdir}/mpich/lib/libsundials_nvecpthreads.so %endif %{_libdir}/mpich/lib/libsundials_sundomeigestpower.so %{_libdir}/mpich/lib/libsundials_nvecmpiplusx.so %{_libdir}/mpich/lib/libsundials_core.so %{_libdir}/mpich/lib/libsundials_kinsol.so %{_libdir}/mpich/lib/libsundials_ida*.so %{_libdir}/mpich/lib/libsundials_cvode*.so %{_libdir}/mpich/lib/libsundials_arkode*.so %{_libdir}/mpich/lib/libsundials_nvecserial.so %{_libdir}/mpich/lib/libsundials_nvecopenmp.so %{_libdir}/mpich/lib/libsundials_sunmatrix*.so %{_libdir}/mpich/lib/libsundials_sunlinsol*.so %{_libdir}/mpich/lib/libsundials_sunnonlinsol*.so %{_libdir}/mpich/lib/libsundials_nvecmanyvector.so %{_libdir}/mpich/lib/libsundials_nvecmpimanyvector.so %{_libdir}/mpich/lib/cmake/sundials/ %endif %files doc %license %{name}-%{version}/LICENSE %doc %{name}-%{version}/CHANGELOG.md %doc %{name}-%{version}/CITATIONS.md %doc %{name}-%{version}/NOTICE %doc %{name}-%{version}/README.md %doc %{name}-%{version}/CONTRIBUTING.md %doc %{name}-%{version}/doc/ %changelog ## START: Generated by rpmautospec * Sat Sep 26 2026 Antonio Trande - 7.9.0-3 - Build sundials4py on Fedora only * Fri Sep 25 2026 Antonio Trande - 7.9.0-2 - Move ILP64 libraries into public system directory| Enable KLU64 support * Sat Sep 19 2026 Antonio Trande - 7.9.0-1 - Release 7.9.0 | Add sundials 64bit integer sub-packages * Wed Jul 22 2026 Python Maint - 7.8.0-3 - Rebuilt for Python 3.15.0b4 ABI change * Fri Jul 17 2026 Fedora Release Engineering - 7.8.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild * Fri Jul 10 2026 Antonio Trande - 7.8.0-1 - Release 7.8.0 * Wed Jun 03 2026 Python Maint - 7.6.0-4 - Rebuilt for Python 3.15 * Wed May 20 2026 Antonio Trande - 7.6.0-3 - Rebuild for petsc-3.25.1 * Fri Apr 17 2026 Orion Poplawski - 7.6.0-2 - Rebuild for hdf5 2.1 * Tue Feb 03 2026 Antonio Trande - 7.6.0-1 - Relase 7.6.0 including Python binding * Sat Jan 17 2026 Fedora Release Engineering - 7.5.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Wed Oct 22 2025 Antonio Trande - 7.5.0-2 - Fix lib nevcpetsc installation * Thu Oct 16 2025 Antonio Trande - 7.5.0-1 - Release 7.5.0 * Fri Jul 25 2025 Fedora Release Engineering - 7.3.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Sun Jul 20 2025 Antonio Trande - 7.3.0-3 - Fix rhbz#2381140 * Fri May 09 2025 Yaakov Selkowitz - 7.3.0-2 - Fix flatpak build * Sun Apr 27 2025 Antonio Trande - 7.3.0-1 - Release 7.3.0 * Sun Jan 19 2025 Fedora Release Engineering - 7.1.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Fri Dec 20 2024 Antonio Trande - 7.1.1-2 - Install sundials_futils.h file * Fri Dec 20 2024 Antonio Trande - 7.1.1-1 - Release 7.1.1 * Sun Nov 10 2024 Songsong Zhang - 6.7.0-5 - Add SuperLUMT BuildRequires for RISC-V * Sat Jul 20 2024 Fedora Release Engineering - 6.7.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Mon May 20 2024 Antonio Trande - 6.7.0-3 - Rebuild for SuperLUMT-4.0.1 * Tue Apr 23 2024 David Bold - 6.7.0-2 - Only the -devel packages should pull in gcc * Fri Mar 01 2024 Antonio Trande - 6.7.0-1 - Release 6.7.0 * Sun Feb 04 2024 Orion Poplawski - 6.6.2-7 - Rebuild with suitesparse 7.6.0 * Sat Jan 27 2024 Fedora Release Engineering - 6.6.2-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Fri Jan 19 2024 Antonio Trande - 6.6.2-5 - Fix Obsoletes tag * Fri Jan 19 2024 Antonio Trande - 6.6.2-4 - Fix rhbz#2258767 * Sat Nov 11 2023 Orion Poplawski - 6.6.2-3 - Apply upstream patch to fix sonames * Wed Nov 08 2023 Antonio Trande - 6.6.2-2 - Disable openmpi builds in i686 architecture * Wed Nov 08 2023 Antonio Trande - 6.6.2-1 - Release 6.6.2 * Sun Oct 15 2023 Antonio Trande - 6.6.1-3 - Release 6.6.1| Add missing header file * Sun Oct 15 2023 Antonio Trande - 6.6.1-2 - Release 6.6.1| PDF guides not installed * Sun Oct 15 2023 Antonio Trande - 6.6.1-1 - Release 6.6.1 * Sun Aug 13 2023 Antonio Trande - 6.5.1-7 - Rebuild for petsc-3.19.4| Disable MPICH tests * Sun Jul 23 2023 Antonio Trande - 6.5.1-6 - Active SUNDIALS_BUILD_WITH_PROFILING option * Sun Jul 23 2023 Antonio Trande - 6.5.1-5 - Set _smp_ncpus_max equal to 1 for all architectures * Sun Jul 23 2023 Antonio Trande - 6.5.1-4 - Set _smp_ncpus_max equal to 2 for all architectures * Sat Jul 22 2023 Fedora Release Engineering - 6.5.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Wed Apr 19 2023 Antonio Trande - 6.5.1-2 - Fix ctest commands * Wed Apr 19 2023 Antonio Trande - 6.5.1-1 - Release 6.5.1 * Fri Mar 03 2023 Antonio Trande - 5.8.0-34 - Bump build release number * Fri Mar 03 2023 Antonio Trande - 5.8.0-33 - Fix installed files in EPEL9 * Fri Mar 03 2023 Antonio Trande - 5.8.0-32 - Disable PETSc in EPEL9 * Fri Mar 03 2023 Antonio Trande - 5.8.0-31 - Enable only KLU64 in EPEL9 * Fri Mar 03 2023 Antonio Trande - 5.8.0-30 - Fix klu64 libraries * Fri Mar 03 2023 Antonio Trande - 5.8.0-29 - Fix PETSc support in EPEL9 * Sat Feb 25 2023 Antonio Trande - 5.8.0-28 - Disable superlu_dist support * Sat Feb 25 2023 Antonio Trande - 5.8.0-27 - Rebuild (rhbz#2171312)| Enable KLU-64 in EPEL9 (rhbz#20673760) * Sat Jan 21 2023 Fedora Release Engineering - 5.8.0-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sat Jan 14 2023 Antonio Trande - 5.8.0-25 - Enable KLU support in EPEL9 * Wed Jan 04 2023 Antonio Trande - 5.8.0-24 - Build in EPEL9| Disable KLU support in EPEL9 * Sun Nov 13 2022 Antonio Trande - 5.8.0-23 - Use single job with ctest /2 * Sun Nov 13 2022 Antonio Trande - 5.8.0-22 - Use single job with ctest * Sun Nov 13 2022 Antonio Trande - 5.8.0-21 - Enable OpenMPI tests * Sat Oct 29 2022 Antonio Trande - 5.8.0-20 - Disable OpenMPI tests * Sat Oct 29 2022 Antonio Trande - 5.8.0-19 - Use multiple jobs for testing * Sat Jul 23 2022 Fedora Release Engineering - 5.8.0-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Sat Apr 23 2022 Antonio Trande - 5.8.0-17 - Disable test_sunlinsol_klu of serial library * Sat Apr 23 2022 Antonio Trande - 5.8.0-16 - Disable test_sunlinsol_klu * Sat Apr 23 2022 Antonio Trande - 5.8.0-15 - Rebuild for PETSc-3.17.0 * Sat Jan 22 2022 Fedora Release Engineering - 5.8.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Sat Nov 20 2021 Antonio Trande - 5.8.0-13 - Rebuild for MPI upgrades on epel8 | Enable suitesparse support on epel8 /4 * Sat Nov 20 2021 Antonio Trande - 5.8.0-12 - Rebuild for MPI upgrades on epel8 | Enable suitesparse support /3 * Sat Nov 20 2021 Antonio Trande - 5.8.0-11 - Rebuild for MPI upgrades on epel8 | Enable suitesparse support /2 * Sat Nov 20 2021 Antonio Trande - 5.8.0-10 - Rebuild for MPI upgrades on epel8 | Enable suitesparse support * Sat Nov 06 2021 Antonio Trande - 5.8.0-9 - Disable debug build |Exclude test_sunnonlinsol_petscsnes * Sat Nov 06 2021 Antonio Trande - 5.8.0-8 - Enable debug build * Sat Nov 06 2021 Antonio Trande - 5.8.0-7 - Build on epel8 |MPI builds on epel8 * Sat Nov 06 2021 Antonio Trande - 5.8.0-6 - Build on epel8 |Enable PETSc support * Sat Nov 06 2021 Antonio Trande - 5.8.0-5 - Build on epel8 |Disable KLU support in epel8 * Sat Nov 06 2021 Antonio Trande - 5.8.0-4 - Build on epel8 |Remove old lines in SPEC file * Sat Nov 06 2021 Antonio Trande - 5.8.0-3 - RPMAUTOSPEC: unresolvable merge ## END: Generated by rpmautospec