Update/Rebuild for MUMPS-5.3.5 on EPEL7

This commit is contained in:
Antonio T 2020-12-05 11:12:49 +01:00
parent d890f27303
commit eada8e54da
2 changed files with 52 additions and 79 deletions

View File

@ -3,7 +3,7 @@ From: Satish Balay <balay@mcs.anl.gov>
Date: Fri, 30 Mar 2018 09:53:12 -0500 Date: Fri, 30 Mar 2018 09:53:12 -0500
Subject: [PATCH] hypre: update to version 2.14.0 Subject: [PATCH] hypre: update to version 2.14.0
Reported-by: Antonio Trande <anto.trande@gmail.com> Reported-by: Antonio Trande <sagitter@fedoraproject.org>
--- ---
config/BuildSystem/config/packages/hypre.py | 2 +- config/BuildSystem/config/packages/hypre.py | 2 +-
src/mat/impls/hypre/mhypre.c | 2 +- src/mat/impls/hypre/mhypre.c | 2 +-
@ -13,26 +13,22 @@ diff --git a/config/BuildSystem/config/packages/hypre.py b/config/BuildSystem/co
index 1249b39..620e516 100644 index 1249b39..620e516 100644
--- a/config/BuildSystem/config/packages/hypre.py --- a/config/BuildSystem/config/packages/hypre.py
+++ b/config/BuildSystem/config/packages/hypre.py +++ b/config/BuildSystem/config/packages/hypre.py
@@ -4,7 +4,7 @@ import os @@ -5,7 +5,7 @@
class Configure(config.package.GNUPackage):
def __init__(self, framework): def __init__(self, framework):
config.package.GNUPackage.__init__(self, framework) config.package.GNUPackage.__init__(self, framework)
- self.gitcommit = 'v2.12.0' self.version = '2.19.0'
+ self.gitcommit = 'v2.15.1' - self.minversion = '2.14'
self.download = ['git://https://github.com/LLNL/hypre','https://github.com/LLNL/hypre/archive/'+self.gitcommit+'.tar.gz'] + self.minversion = '2.11.2'
self.functions = ['HYPRE_IJMatrixCreate'] self.versionname = 'HYPRE_RELEASE_VERSION'
self.includes = ['HYPRE.h'] self.versioninclude = 'HYPRE_config.h'
diff --git a/src/mat/impls/hypre/mhypre.c b/src/mat/impls/hypre/mhypre.c self.requiresversion = 1
index 8a51581..65595f2 100644 --- a/src/mat/impls/hypre/mhypre.c
--- a/src/mat/impls/hypre/mhypre.c
+++ b/src/mat/impls/hypre/mhypre.c +++ b/src/mat/impls/hypre/mhypre.c
@@ -1450,6 +1450,6 @@ PETSC_EXTERN PetscErrorCode MatCreate_HYPRE(Mat B) @@ -2131,6 +2131,6 @@
static PetscErrorCode hypre_array_destroy(void *ptr) static PetscErrorCode hypre_array_destroy(void *ptr)
{ {
PetscFunctionBegin; PetscFunctionBegin;
- hypre_TFree(ptr); - hypre_TFree(ptr,HYPRE_MEMORY_HOST);
+ hypre_TFree(ptr,HYPRE_MEMORY_HOST); + hypre_TFree(ptr);
PetscFunctionReturn(0); PetscFunctionReturn(0);
} }
--
2.10.5

View File

@ -9,10 +9,8 @@
%{?el7:%global _pkgdocdir %{_docdir}/%{name}} %{?el7:%global _pkgdocdir %{_docdir}/%{name}}
# #
%if 0%{?fedora}
%bcond_without mpich %bcond_without mpich
%bcond_without openmpi %bcond_without openmpi
%endif
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64 %if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%bcond_without arch64 %bcond_without arch64
@ -33,15 +31,6 @@
%global blasvar p %global blasvar p
%endif %endif
%if 0%{?rhel} && 0%{?rhel} >= 7
%bcond_without mpich
%bcond_without openmpi
%endif
%if 0%{?rhel} == 7
%global dts devtoolset-8-
%endif
# #
## PETSC looks incompatible with serial MUMPS ## PETSC looks incompatible with serial MUMPS
%bcond_without mumps_serial %bcond_without mumps_serial
@ -53,7 +42,7 @@
# #
## Suitesparse ## Suitesparse
## Currently, suitesparse-5.4.0 is available on Fedora 32+, but this version of PETSc needs at least 5.6.0 ## Currently, suitesparse-5.4.0 is available on Fedora 32+, but this version of PETSc needs the 5.6.0 at least
%bcond_with suitesparse %bcond_with suitesparse
%if 0%{?fedora} && 0%{?fedora} >= 32 %if 0%{?fedora} && 0%{?fedora} >= 32
%bcond_with suitesparse64 %bcond_with suitesparse64
@ -61,7 +50,19 @@
# #
## SuperLUDIST needs parmetis ## SuperLUDIST needs parmetis
%if 0%{?fedora} || 0%{?rhel} > 7
%bcond_without superludist %bcond_without superludist
%bcond_without cgns
%bcond_without hdf5
%else
# Needed superludist >= 6.1.1
%bcond_with superludist
# hdf5 is required by cgns
# and see rhbz#1904164
%bcond_with cgns
%bcond_with hdf5
%endif
%bcond_with superlumt %bcond_with superlumt
# #
@ -72,10 +73,6 @@
%endif %endif
# #
# hdf5' is required by 'cgns'
%bcond_without cgns
%bcond_without hdf5
# 'scalapack' is required by 'mumps' # 'scalapack' is required by 'mumps'
%if %{with openmpi} %if %{with openmpi}
%bcond_without mpi %bcond_without mpi
@ -184,9 +181,10 @@
--with-shared-libraries=1 \\\ --with-shared-libraries=1 \\\
--with-fortran-interfaces=1 \\\ --with-fortran-interfaces=1 \\\
--with-windows-graphics=0 \\\ --with-windows-graphics=0 \\\
--with-cc=mpicc \\\ --with-cc=${MPI_BIN}/mpicc \\\
--with-cxx=mpicxx \\\ --with-cxx=${MPI_BIN}/mpicxx \\\
--with-fc=mpif77 \\\ --with-fc=${MPI_BIN}/mpif90 \\\
--with-mpiexec="${MPI_BIN}/mpiexec -n `getconf _NPROCESSORS_ONLN` -env MPIEXEC_TIMEOUT 3000 --mca btl_base_warn_component_unused 0" \\\
--with-shared-ld=ld \\\ --with-shared-ld=ld \\\
--with-pic=1 \\\ --with-pic=1 \\\
--with-clib-autodetect=0 \\\ --with-clib-autodetect=0 \\\
@ -262,7 +260,7 @@
Name: petsc Name: petsc
Summary: Portable Extensible Toolkit for Scientific Computation Summary: Portable Extensible Toolkit for Scientific Computation
Version: %{releasever}.1 Version: %{releasever}.1
Release: 2%{?dist} Release: 3%{?dist}
License: BSD License: BSD
URL: https://www.mcs.anl.gov/petsc URL: https://www.mcs.anl.gov/petsc
Source0: https://www.mcs.anl.gov/petsc/mirror/release-snapshots/petsc-%{version}.tar.gz Source0: https://www.mcs.anl.gov/petsc/mirror/release-snapshots/petsc-%{version}.tar.gz
@ -274,7 +272,7 @@ Patch0: %{name}-3.11-no-rpath.patch
Patch1: %{name}-lib64.patch Patch1: %{name}-lib64.patch
# Reverting patch for Hypre-2.11.2 # Reverting patch for Hypre-2.11.2
Patch2: %{name}-3.11-hypre_2.11.2_reverting.patch Patch2: %{name}-3.14-hypre_2.11.2_reverting.patch
Patch3: %{name}-3.13-fix_mumps_includes.patch Patch3: %{name}-3.13-fix_mumps_includes.patch
Patch4: %{name}-3.13.0-fix_metis64.patch Patch4: %{name}-3.13.0-fix_metis64.patch
@ -301,15 +299,12 @@ BuildRequires: suitesparse-devel >= 5.6.0
%if %{with blas} %if %{with blas}
BuildRequires: %{blaslib}-devel BuildRequires: %{blaslib}-devel
%endif %endif
BuildRequires: %{?dts}gcc, %{?dts}gcc-c++, cmake3 BuildRequires: gcc, gcc-c++, cmake3
BuildRequires: %{?dts}gcc-gfortran BuildRequires: gcc-gfortran
BuildRequires: make
BuildRequires: libX11-devel BuildRequires: libX11-devel
%if 0%{?el7}
BuildRequires: python2-devel
%else
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: python3-setuptools BuildRequires: python3-setuptools
%endif
BuildRequires: pcre-devel BuildRequires: pcre-devel
%if 0%{?el7} %if 0%{?el7}
BuildRequires: pkgconfig BuildRequires: pkgconfig
@ -346,11 +341,7 @@ Portable Extensible Toolkit for Scientific Computation (developer files).
%package doc %package doc
Summary: Portable Extensible Toolkit for Scientific Computation (documentation files) Summary: Portable Extensible Toolkit for Scientific Computation (documentation files)
%if 0%{?el7}
BuildRequires: python2-sphinx
%else
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
%endif
BuildArch: noarch BuildArch: noarch
%description doc %description doc
Portable Extensible Toolkit for Scientific Computation. Portable Extensible Toolkit for Scientific Computation.
@ -507,15 +498,13 @@ pushd %{name}-%{version}
%patch7 -p1 %patch7 -p1
%if 0%{?fedora} || 0%{?rhel} >= 8
find . -name 'setup.py' | xargs pathfix.py -pn -i "%{__python3}" find . -name 'setup.py' | xargs pathfix.py -pn -i "%{__python3}"
find . -name 'configure' | xargs pathfix.py -pn -i "%{__python3}" find . -name 'configure' | xargs pathfix.py -pn -i "%{__python3}"
find config -name '*.py' | xargs pathfix.py -pn -i "%{__python3}" find config -name '*.py' | xargs pathfix.py -pn -i "%{__python3}"
find src/benchmarks/streams -name '*.py' | xargs pathfix.py -pn -i "%{__python3}" find src/benchmarks/streams -name '*.py' | xargs pathfix.py -pn -i "%{__python3}"
%endif
%if 0%{?el7} %if 0%{?el7}
%patch2 -R -p1 %patch2 -p1
%endif %endif
popd popd
@ -549,12 +538,7 @@ popd
%build %build
pushd %{name}-%{version} pushd %{name}-%{version}
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%configure --with-cc=/opt/rh/devtoolset-8/root/usr/bin/gcc --with-cxx=/opt/rh/devtoolset-8/root/usr/bin/g++ --with-fc=/opt/rh/devtoolset-8/root/usr/bin/gfortran \
%else
%configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \ %configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \
%endif
%{petsc_build_options} \ %{petsc_build_options} \
--with-64-bit-indices=0 \ --with-64-bit-indices=0 \
%if %{with blas} %if %{with blas}
@ -587,12 +571,7 @@ popd
%if %{with arch64} %if %{with arch64}
pushd build64 pushd build64
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%configure --with-cc=/opt/rh/devtoolset-8/root/usr/bin/gcc --with-cxx=/opt/rh/devtoolset-8/root/usr/bin/g++ --with-fc=/opt/rh/devtoolset-8/root/usr/bin/gfortran \
%else
%configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \ %configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \
%endif
%{petsc_build_options} \ %{petsc_build_options} \
--with-64-bit-indices=1 \ --with-64-bit-indices=1 \
%if %{with metis64} %if %{with metis64}
@ -621,14 +600,10 @@ popd
%if %{with openmpi} %if %{with openmpi}
pushd buildopenmpi_dir pushd buildopenmpi_dir
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%endif
%{_openmpi_load} %{_openmpi_load}
%configure \ %configure \
--FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lmpi_mpifh" \ --FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lmpi_mpifh" \
--LIBS=" -lmpi_mpifh" \ --LIBS=" -lmpi -lmpi_mpifh" \
%{petsc_mpibuild_options} \ %{petsc_mpibuild_options} \
%if %{with metis} %if %{with metis}
--with-metis=1 \ --with-metis=1 \
@ -654,14 +629,10 @@ popd
%if %{with mpich} %if %{with mpich}
pushd buildmpich_dir pushd buildmpich_dir
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%endif
%{_mpich_load} %{_mpich_load}
%configure \ %configure \
--FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lmpifort" \ --FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lfmpich -lmpichf90" \
--LIBS=" -lmpifort" \ --LIBS=" -lmpich -lfmpich -lmpichf90" \
%{petsc_mpibuild_options} \ %{petsc_mpibuild_options} \
%if %{with metis} %if %{with metis}
--with-metis=1 \ --with-metis=1 \
@ -836,17 +807,19 @@ cp -a %{name}-%{version}/docs/* $RPM_BUILD_ROOT%{_pkgdocdir}
%if %{with check} %if %{with check}
%check %check
%if %{with openmpi} %if %{with openmpi}
%{_openmpi_load} %{_openmpi_load}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildopenmpi_dir/%{_arch}/lib export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildopenmpi_dir/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildopenmpi_dir export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildopenmpi_dir
export PETSC_ARCH=%{_arch} export PETSC_ARCH=%{_arch}
export MPI_INTERFACE_HOSTNAME=localhost export MPI_INTERFACE_HOSTNAME=localhost
export OMPI_MCA_btl_base_warn_component_unused=0
%if %{with debug} %if %{with debug}
export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes" export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes"
export CFLAGS="-O0 -g -Wl,-z,now -fPIC" export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC" export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}"
xvfb-run -a make all test -C buildopenmpi_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildopenmpi_dir/lib/petsc/bin/petscmpiexec -valgrind' xvfb-run -a make all test -C buildopenmpi_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildopenmpi_dir/lib/petsc/bin/petscmpiexec -valgrind'
%else %else
xvfb-run -a make all test -C buildopenmpi_dir V=1 xvfb-run -a make all test -C buildopenmpi_dir V=1
@ -854,25 +827,24 @@ xvfb-run -a make all test -C buildopenmpi_dir V=1
%{_openmpi_unload} %{_openmpi_unload}
%endif %endif
%if 0%{?fedora} || 0%{?rhel} >= 7
%if %{with mpich} %if %{with mpich}
%{_mpich_load} %{_mpich_load}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildmpich_dir/%{_arch}/lib export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildmpich_dir/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildmpich_dir export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildmpich_dir
export PETSC_ARCH=%{_arch} export PETSC_ARCH=%{_arch}
export MPI_INTERFACE_HOSTNAME=localhost export MPI_INTERFACE_HOSTNAME=localhost
export OMPI_MCA_btl_base_warn_component_unused=0
%if %{with debug} %if %{with debug}
export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes" export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes"
export CFLAGS="-O0 -g -Wl,-z,now -fPIC" export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC" export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}"
xvfb-run -a make all test -C buildmpich_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildmpich_dir/lib/petsc/bin/petscmpiexec -valgrind' xvfb-run -a make all test -C buildmpich_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildmpich_dir/lib/petsc/bin/petscmpiexec -valgrind'
%else %else
xvfb-run -a make all test -C buildmpich_dir V=1 xvfb-run -a make all test -C buildmpich_dir V=1
%endif %endif
%{_mpich_unload} %{_mpich_unload}
%endif %endif
%endif
export LD_LIBRARY_PATH=%{_libdir}:%{_builddir}/%{name}-%{version}/%{name}-%{version}/%{_arch}/lib export LD_LIBRARY_PATH=%{_libdir}:%{_builddir}/%{name}-%{version}/%{name}-%{version}/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/%{name}-%{version} export PETSC_DIR=%{_builddir}/%{name}-%{version}/%{name}-%{version}
@ -883,9 +855,9 @@ export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=
export CFLAGS="-O0 -g -Wl,-z,now -fPIC" export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC" export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -valgrind' xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN` -valgrind'
%else %else
xvfb-run -a make all test -C %{name}-%{version} V=1 xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN`'
%endif %endif
%if %{with arch64} %if %{with arch64}
@ -902,9 +874,9 @@ export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=
export CFLAGS="-O0 -g -Wl,-z,now -fPIC" export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC" export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules" export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -valgrind' xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN` -valgrind'
%else %else
xvfb-run -a make all test -C build64 V=1 xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN`'
%endif %endif
%endif %endif
%endif %endif
@ -976,6 +948,11 @@ xvfb-run -a make all test -C build64 V=1
%endif %endif
%changelog %changelog
* Sat Dec 05 2020 Antonio Trande <sagitter@fedoraproject.org> - 3.14.1-3
- Update/Rebuild for MUMPS-5.3.5 on EPEL7
- Exclude superludist support on EPEL7
- Add Make BR
* Fri Nov 20 2020 Antonio Trande <sagitter@fedoraproject.org> - 3.14.1-2 * Fri Nov 20 2020 Antonio Trande <sagitter@fedoraproject.org> - 3.14.1-2
- Fix pkg-config files - Fix pkg-config files