Hello community,
here is the log from the commit of package petsc for openSUSE:Factory checked in at 2019-07-05 13:48:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/petsc (Old)
and /work/SRC/openSUSE:Factory/.petsc.new.4615 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "petsc"
Fri Jul 5 13:48:42 2019 rev:14 rq:688860 version:3.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/petsc/petsc.changes 2018-05-16 18:44:48.540321966 +0200
+++ /work/SRC/openSUSE:Factory/.petsc.new.4615/petsc.changes 2019-07-05 13:48:43.437453845 +0200
@@ -1,0 +2,26 @@
+Tue Mar 26 15:29:56 UTC 2019 - Stefan Brüns
+
+- Disable pastix also in openmpi flavor, same as for serial and HPC flavors.
+ Pastix is only built with openmpi, and not available in Factory.
+
+-------------------------------------------------------------------
+Wed Mar 20 18:15:58 UTC 2019 - Stefan Brüns
+
+- Fix building non-MPI flavors of packages depending on petsc
+ Add petsc-fix-nonmpi.patch
+- Do not move headers to /usr/include and symlink, causes problems with
+ -isystem
+
+-------------------------------------------------------------------
+Wed Mar 13 23:34:19 UTC 2019 - Stefan Brüns
+
+- Fix spec for non-HPC, reenable serial and non-HPC openmpi build.
+- Disable HYPRE for non-HPC, same as for HPC.
+
+-------------------------------------------------------------------
+Wed Feb 13 11:40:48 UTC 2019 - Egbert Eich
+
+- Consolidate use of openmpi1, openmpi2, openmpi3.
+- Do not build non-HPC on SLE.
+
+-------------------------------------------------------------------
New:
----
petsc-fix-nonmpi.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ petsc.spec ++++++
--- /var/tmp/diff_new_pack.PX4j5W/_old 2019-07-05 13:48:44.473455443 +0200
+++ /var/tmp/diff_new_pack.PX4j5W/_new 2019-07-05 13:48:44.477455449 +0200
@@ -1,7 +1,7 @@
#
# spec file for package petsc
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -25,6 +25,11 @@
ExcludeArch: s390 s390x
+# Fails to link during configure, as it omits SuperLU from the link libraries
+%bcond_with hypre
+# Only available as openmpi flavor, and not in Factory
+%bcond_with pastix
+
%if 0%{?is_opensuse} || 0%{?is_backports}
%undefine DisOMPI3
%else
@@ -48,6 +53,13 @@
%if "%flavor" == "openmpi"
%define mpi_family openmpi
+%define mpi_vers 1
+%{bcond_with hpc}
+%endif
+
+%if "%flavor" == "openmpi2"
+%define mpi_family openmpi
+%define mpi_vers 2
%{bcond_with hpc}
%endif
@@ -129,13 +141,22 @@
%{bcond_without hpc}
%endif
+%if !0%{?is_opensuse} && !0%{?with_hpc:1}
+ExclusiveArch: do_not_build
+%endif
+
%if %{without hpc}
%if 0%{!?package_name:1}
-%define package_name() %{pname}%{?with_mpi:-%{mpi_family}}
+%define package_name() %{pname}%{?with_mpi:-%{mpi_family}%{?mpi_ext}}
%endif
-%define libname() lib%{pname}%{so_ver}%{?with_mpi:-%{mpi_family}}
+%define libname() lib%{pname}%{so_ver}%{?with_mpi:-%{mpi_family}%{?mpi_ext}}
%else
-%{hpc_init -c %compiler_family -m %mpi_family %{?c_f_ver:-v %{c_f_ver}} %{?mpi_ver:-V %{mpi_ver}} %{?ext:-e %{ext}}}
+%{hpc_init -c %compiler_family -m %mpi_family %{?c_f_ver:-v %{c_f_ver}} %{?mpi_vers:-V %{mpi_vers}} %{?ext:-e %{ext}}}
+
+# For compatibility package names
+%if "%{mpi_family}" != "openmpi" || "%{mpi_ver}" != "1"
+%define mpi_ext %{?mpi_ver}
+%endif
%define package_name() %{hpc_package_name %_vers}
%define libname() lib%{pname}%{expand:%%{hpc_package_name_tail %{**}}}
@@ -152,9 +173,9 @@
%if %{without mpi}
%define p_base %{_prefix}/
%else
-%{!?mpi_family:%global mpi_family openmpi}
-%define p_base %{_libdir}/mpi/gcc/%{mpi_family}/
-%define n_pref %{?with_mpi:%{mpi_family}-}
+ %{?with_mpi:%{!?mpi_family:error "No MPI family specified!"}}
+
+%define p_base %{_libdir}/mpi/gcc/%{mpi_family}%{?mpi_ext}/
%endif # mpi
%define p_prefix %{p_libdir}/petsc/%{version}/%petsc_arch
%else # hpc
@@ -163,7 +184,7 @@
%endif
%define p_libdir %{p_base}%_lib
-%define p_include %{p_base}include
+%define p_include %{p_prefix}/include
%define petsc_arch linux-gnu-c-opt
@@ -181,6 +202,8 @@
Patch3: petsc-3.3-fix-error-detection-in-makefile.patch
Patch4: petsc-3.7-fix-pastix-detection.patch
Patch5: Python-Fix-a-number-of-scripts-to-by-Python-3-compliant.patch
+# PATCH-FIX-UPSTREAM [rebased] -- Fix building non-MPI flavors of packages depending on petsc
+Patch6: petsc-fix-nonmpi.patch
Url: http://www.mcs.anl.gov/petsc/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{!?makedoc:1}
@@ -198,18 +221,25 @@
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: lapack-devel
-BuildRequires: metis-devel
BuildRequires: suitesparse-devel
%if %{with mpi}
-BuildRequires: %{mpi_family}-devel
-BuildRequires: blacs-%{mpi_family}-devel
-BuildRequires: hdf5-%{mpi_family}-devel
-BuildRequires: hypre-%{mpi_family}-devel
-BuildRequires: libptscotch-%{mpi_family}-devel
-BuildRequires: libptscotch-parmetis-%{mpi_family}-devel
-BuildRequires: pastix-%{mpi_family}-devel
-BuildRequires: scalapack-%{mpi_family}-devel
+BuildRequires: %{mpi_family}%{?mpi_ext}-devel
+BuildRequires: blacs-%{mpi_family}%{?mpi_ext}-devel
+BuildRequires: hdf5-%{mpi_family}%{?mpi_ext}-devel
+%if %{with hypre}
+BuildRequires: hypre-%{mpi_family}%{?mpi_ext}-devel
+BuildRequires: superlu-devel
+%endif
+BuildRequires: ptscotch-%{mpi_family}%{?mpi_ext}-devel
+BuildRequires: ptscotch-parmetis-%{mpi_family}%{?mpi_ext}-devel
+#!BuildIgnore: metis-devel
+%if %{with pastix}
+BuildRequires: pastix-%{mpi_family}%{?mpi_ext}-devel
+%endif
+BuildRequires: scalapack-%{mpi_family}%{?mpi_ext}-devel
+ %else
+BuildRequires: metis-devel
%endif
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
@@ -258,12 +288,12 @@
Requires: metis-devel
%else
Requires: %{libname %_vers} = %{version}
-Requires: blacs-%{mpi_family}-devel
-Requires: hdf5-%{mpi_family}-devel
-Requires: hypre-%{mpi_family}-devel
-Requires: libptscotch-%{mpi_family}-devel
-Requires: libptscotch-parmetis-%{mpi_family}-devel
-Requires: scalapack-%{mpi_family}-devel
+Requires: blacs-%{mpi_family}%{?mpi_ext}-devel
+Requires: hdf5-%{mpi_family}%{?mpi_ext}-devel
+Requires: hypre-%{mpi_family}%{?mpi_ext}-devel
+Requires: ptscotch-%{mpi_family}%{?mpi_ext}-devel
+Requires: ptscotch-parmetis-%{mpi_family}%{?mpi_ext}-devel
+Requires: scalapack-%{mpi_family}%{?mpi_ext}-devel
%endif
%else # with hpc
Requires: %{libname %_vers} = %{version}
@@ -310,6 +340,7 @@
%patch3 -p1 -b .error-detect
%patch4 -p1 -b .pastix-detect
%patch5 -p1
+%patch6 -p1
%if 0%{?makedoc:1}
%files doc
@@ -363,22 +394,27 @@
--with-mpi=1 \
--with-mpi-dir=%{p_base}\
--with-blacs=1 \
- --with-blacs-include=%{p_include} \
+ --with-blacs-include=%{p_base}/include \
--with-blacs-lib=[%{p_libdir}/libblacs.so] \
+ %if %{with pastix}
--with-pastix=1 \
--with-pastix-pkg-config=%{p_libdir}/pkgconfig \
+ %endif
--with-ptscotch=1 \
- --with-ptscotch-include=%{p_include} \
+ --with-ptscotch-include=%{p_base}/include \
--with-ptscotch-lib=[%{p_libdir}/libptscotch.so,%{p_libdir}/libptscotcherr.so,%{p_libdir}/libptscotcherrexit.so,%{p_libdir}/libptscotchparmetis.so] \
--with-scalapack=1 \
- --with-scalapack-include=%{p_include} \
+ --with-scalapack-include=%{p_base}/include \
--with-scalapack-lib=[%{p_libdir}/libscalapack.so] \
+ %if %{with hypre}
+ --with-superlu=1 \
--with-hypre=1 \
- --with-hypre-include=%{p_include}/hypre \
+ --with-hypre-include=%{p_base}/include/hypre \
--with-hypre-lib=%{p_libdir}/libHYPRE.so \
+ %endif
--with-hdf5=1 \
--with-hdf5-lib=%{p_libdir}/libhdf5.so \
- --with-hdf5-include=%{p_include}
+ --with-hdf5-include=%{p_base}/include
%endif
%else # with hpc
--with-blas-lapack-lib=$OPENBLAS_LIB/libopenblas.so \
@@ -415,10 +451,6 @@
rm -rf %{buildroot}%{p_prefix}/lib/petsc/conf/*.py
rm -rf %{buildroot}%{p_prefix}/lib/petsc/conf/modules
-# move include dirs outside ptesc dir
-mv %{buildroot}%{p_prefix}/include %{buildroot}%{p_base}/
-ln -s %{p_include} %{buildroot}%{p_prefix}/include
-
# create symlink for libs between %%libdir and petscdir
pushd %{buildroot}%{p_libdir}
for f in petsc/%{version}/%petsc_arch/lib/*.so*; do
@@ -428,7 +460,7 @@
# Module files
mkdir -p %{buildroot}/usr/share/modules/%{name}-%{petsc_arch}
-cat << EOF > %{buildroot}/usr/share/modules/%{name}-%{petsc_arch}/%version%{?with_mpi:-%{mpi_family}}
+cat << EOF > %{buildroot}/usr/share/modules/%{name}-%{petsc_arch}/%version%{?with_mpi:-%{mpi_family}%{?mpi_ext}}
#%%Module
proc ModulesHelp { } {
global dotversion
@@ -494,13 +526,13 @@
puts stderr " "
puts stderr "This module loads the PETSc library built with the %{compiler_family} compiler"
-puts stderr "toolchain and the %{mpi_family} MPI stack."
+puts stderr "toolchain and the %{mpi_family}%{?mpi_vers} MPI stack."
puts stderr " "
puts stderr "\nVersion %{version}\n"
}
-module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family} MPI"
+module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family}%{?mpi_vers} MPI"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{SUMMARY:0}"
@@ -578,7 +610,6 @@
%{?with_hpc:%{hpc_module_delete_if_default}}
%files -n %{libname %_vers}
-%defattr(-,root,root,-)
%doc docs/manual.pdf
%if %{without hpc}
%dir %{p_libdir}/petsc
@@ -586,18 +617,17 @@
%else
%hpc_dirs
%hpc_modules_files
+%{dirname:%{hpc_python_sitearch_no_singlespec}}
%endif # with hpc
%dir %{p_prefix}
%dir %{p_prefix}/lib
%{p_libdir}/*.so.*
%{!?with_hpc:%{p_prefix}/lib/*.so.*}
%{p_prefix}/share
-%{dirname:%{hpc_python_sitearch_no_singlespec}}
%exclude %{p_prefix}/share/petsc/examples
%exclude %{p_prefix}/share/petsc/saws
%files %{?n_pre}devel
-%defattr(-,root,root,-)
%{p_prefix}/bin
%exclude %{p_prefix}/bin/saws
%{p_prefix}/include
@@ -608,13 +638,12 @@
%if %{without hpc}
%{p_prefix}/lib/*.so
%dir %{_datadir}/modules/%{name}-%{petsc_arch}
-%{_datadir}/modules/%{name}-%{petsc_arch}/%version%{?with_mpi:-%{mpi_family}}
+%{_datadir}/modules/%{name}-%{petsc_arch}/%version%{?with_mpi:-%{mpi_family}%{?mpi_ext}}
%endif
%{p_prefix}/share/petsc/examples
%if %{with hpc}
%files saws
-%defattr(-,root,root,-)
%{p_prefix}/bin/saws
%{p_prefix}/share/petsc/saws
%endif
++++++ _multibuild ++++++
--- /var/tmp/diff_new_pack.PX4j5W/_old 2019-07-05 13:48:44.529455529 +0200
+++ /var/tmp/diff_new_pack.PX4j5W/_new 2019-07-05 13:48:44.529455529 +0200
@@ -1,7 +1,7 @@
<multibuild>
<package>doc</package>
- <!-- <package>serial</package> -->
- <!-- <package>openmpi</package> -->
+ <package>serial</package>
+ <package>openmpi</package>
<package>gnu-openmpi-hpc</package>
<package>gnu-openmpi2-hpc</package>
<package>gnu-openmpi3-hpc</package>
++++++ petsc-fix-nonmpi.patch ++++++
From e771154c37bc6fe9f87d08fde802125c02a241e3 Mon Sep 17 00:00:00 2001
From: Jed Brown
Date: Wed, 25 Apr 2018 14:16:55 -0600
Subject: [PATCH] Include instead of requiring extra -I on
command-line
This makes a PETSc --with-mpi=0 behave more predictably for people who
do not want to know about MPI.
---
include/petscsys.h | 6 +++++-
src/benchmarks/streams/MPIVersion.c | 2 --
src/dm/examples/tests/ex42.c | 3 +--
src/tao/leastsquares/examples/tutorials/chwirut2.c | 1 -
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/petscsys.h b/include/petscsys.h
index 6d893c0a8e..43e07d644a 100644
--- a/include/petscsys.h
+++ b/include/petscsys.h
@@ -127,7 +127,11 @@ void assert_never_put_petsc_headers_inside_an_extern_c(int); void assert_never_p
#if !defined(OMPI_WANT_MPI_INTERFACE_WARNING)
# define OMPI_WANT_MPI_INTERFACE_WARNING 0
#endif
-#include
+#if defined(PETSC_HAVE_MPIUNI)
+# include
+#else
+# include
+#endif
/*
Perform various sanity checks that the correct mpi.h is being included at compile time.
diff --git a/src/benchmarks/streams/MPIVersion.c b/src/benchmarks/streams/MPIVersion.c
index 569e107b21..6fe8a7aeec 100644
--- a/src/benchmarks/streams/MPIVersion.c
+++ b/src/benchmarks/streams/MPIVersion.c
@@ -73,8 +73,6 @@ static double bytes[4] = {
3 * sizeof(double) * N
};
-#include
-
int main(int argc,char **args)
{
int quantum, checktick(void);
diff --git a/src/dm/examples/tests/ex42.c b/src/dm/examples/tests/ex42.c
index 5e9d7a0200..216980c5b9 100644
--- a/src/dm/examples/tests/ex42.c
+++ b/src/dm/examples/tests/ex42.c
@@ -2,9 +2,8 @@
static char help[] = "Test VTK Rectilinear grid (.vtr) viewer support\n\n";
-#include
#include
-#include "petscdmda.h"
+#include
/*
Write 3D DMDA vector with coordinates in VTK VTR format
diff --git a/src/tao/leastsquares/examples/tutorials/chwirut2.c b/src/tao/leastsquares/examples/tutorials/chwirut2.c
index 2868aee2cf..7c94e4f1d0 100644
--- a/src/tao/leastsquares/examples/tutorials/chwirut2.c
+++ b/src/tao/leastsquares/examples/tutorials/chwirut2.c
@@ -9,7 +9,6 @@
*/
#include
-#include
/*