From 51d8d340008d1786bafd52ae1b909977d9fa53aa Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 17 May 2022 06:26:38 -0400 Subject: [PATCH] import mpich-3.4.2-1.el9 --- .gitignore | 1 + .mpich.metadata | 1 + SOURCES/0001-Drop-real128.patch | 74 +++ .../0001-Revert-Remove-use-of-vasprintf.patch | 268 +++++++++ SOURCES/fix_wrapper_flags.patch | 160 ++++++ SOURCES/mpich-modules.patch | 33 ++ SOURCES/mpich.macros | 7 + SOURCES/mpich.pth.py2 | 1 + SOURCES/mpich.pth.py3 | 1 + SPECS/mpich.spec | 515 ++++++++++++++++++ 10 files changed, 1061 insertions(+) create mode 100644 .gitignore create mode 100644 .mpich.metadata create mode 100644 SOURCES/0001-Drop-real128.patch create mode 100644 SOURCES/0001-Revert-Remove-use-of-vasprintf.patch create mode 100644 SOURCES/fix_wrapper_flags.patch create mode 100644 SOURCES/mpich-modules.patch create mode 100644 SOURCES/mpich.macros create mode 100644 SOURCES/mpich.pth.py2 create mode 100644 SOURCES/mpich.pth.py3 create mode 100644 SPECS/mpich.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..41e3811 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mpich-3.4.2.tar.gz diff --git a/.mpich.metadata b/.mpich.metadata new file mode 100644 index 0000000..3e0bf6d --- /dev/null +++ b/.mpich.metadata @@ -0,0 +1 @@ +5843e96ee87061297bd59f0511f864b5f63b91e1 SOURCES/mpich-3.4.2.tar.gz diff --git a/SOURCES/0001-Drop-real128.patch b/SOURCES/0001-Drop-real128.patch new file mode 100644 index 0000000..355bd87 --- /dev/null +++ b/SOURCES/0001-Drop-real128.patch @@ -0,0 +1,74 @@ +From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= + +Date: Wed, 28 Aug 2019 10:57:55 +0000 +Subject: [PATCH] Drop real128 + +https://github.com/pmodels/mpich/issues/4005 +--- + .../fortran/use_mpi_f08/mpi_f08_types.f90 | 24 ------------------- + 1 file changed, 24 deletions(-) + +diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 +index f8b0fa811..46bdf6972 100644 +--- a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 ++++ b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 +@@ -248,10 +248,8 @@ interface MPI_Sizeof + module procedure MPI_Sizeof_xint64 + module procedure MPI_Sizeof_xreal32 + module procedure MPI_Sizeof_xreal64 +- module procedure MPI_Sizeof_xreal128 + module procedure MPI_Sizeof_xcomplex32 + module procedure MPI_Sizeof_xcomplex64 +- module procedure MPI_Sizeof_xcomplex128 + end interface + + private :: MPI_Sizeof_character +@@ -263,10 +261,8 @@ private :: MPI_Sizeof_xint32 + private :: MPI_Sizeof_xint64 + private :: MPI_Sizeof_xreal32 + private :: MPI_Sizeof_xreal64 +-private :: MPI_Sizeof_xreal128 + private :: MPI_Sizeof_xcomplex32 + private :: MPI_Sizeof_xcomplex64 +-private :: MPI_Sizeof_xcomplex128 + + contains + +@@ -350,16 +346,6 @@ subroutine MPI_Sizeof_xreal64 (x, size, ierror) + ierror = 0 + end subroutine MPI_Sizeof_xreal64 + +-subroutine MPI_Sizeof_xreal128 (x, size, ierror) +- use,intrinsic :: iso_fortran_env, only: real128 +- real(real128),dimension(..) :: x +- integer, intent(out) :: size +- integer, optional, intent(out) :: ierror +- +- size = storage_size(x)/8 +- ierror = 0 +-end subroutine MPI_Sizeof_xreal128 +- + subroutine MPI_Sizeof_xcomplex32 (x, size, ierror) + use,intrinsic :: iso_fortran_env, only: real32 + complex(real32),dimension(..) :: x +@@ -380,16 +366,6 @@ subroutine MPI_Sizeof_xcomplex64 (x, size, ierror) + ierror = 0 + end subroutine MPI_Sizeof_xcomplex64 + +-subroutine MPI_Sizeof_xcomplex128 (x, size, ierror) +- use,intrinsic :: iso_fortran_env, only: real128 +- complex(real128),dimension(..) :: x +- integer, intent(out) :: size +- integer, optional, intent(out) :: ierror +- +- size = storage_size(x)/8 +- ierror = 0 +-end subroutine MPI_Sizeof_xcomplex128 +- + subroutine MPI_Status_f2f08(f_status, f08_status, ierror) + integer, intent(in) :: f_status(MPI_STATUS_SIZE) + type(MPI_Status), intent(out) :: f08_status +-- +2.21.0 + diff --git a/SOURCES/0001-Revert-Remove-use-of-vasprintf.patch b/SOURCES/0001-Revert-Remove-use-of-vasprintf.patch new file mode 100644 index 0000000..c11f090 --- /dev/null +++ b/SOURCES/0001-Revert-Remove-use-of-vasprintf.patch @@ -0,0 +1,268 @@ +From 6c286621ff551eed1dca5afaf08aeaa41eabd96d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 30 Jan 2021 13:05:26 +0100 +Subject: [PATCH] Revert "Remove use of vasprintf" + +This reverts commit 1f0713f80303154d07d9221a7398b6fbc5c0fa6d. + +$ valgrind ./modules/json-c/tests/test_json_pointer +==56== Memcheck, a memory error detector +==56== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==56== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info +==56== Command: ./modules/json-c/tests/test_json_pointer +==56== +PASSED - GET - LOADED TEST JSON +{ "foo": [ "bar", "baz" ], "": 0, "a\/b": 1, "c%d": 2, "e^f": 3, "g|h": 4, "i\\j": 5, "k\"l": 6, " ": 7, "m~n": 8 } +PASSED - GET - ENTIRE OBJECT WORKED +PASSED - GET - /foo == ['bar', 'baz'] +PASSED - GET - /foo/0 == 'bar' +PASSED - GET - / == 0 +PASSED - GET - /a~1b == 1 +PASSED - GET - /c%d == 2 +PASSED - GET - /e^f == 3 +PASSED - GET - /g|h == 4 +PASSED - GET - /i\j == 5 +PASSED - GET - /k"l == 6 +PASSED - GET - / == 7 +PASSED - GET - /m~0n == 8 +PASSED - GET - LOADED TEST JSON +{ "foo": [ "bar", "baz" ], "": 0, "a\/b": 1, "c%d": 2, "e^f": 3, "g|h": 4, "i\\j": 5, "k\"l": 6, " ": 7, "m~n": 8 } +PASSED - GET - MISSING / +PASSED - GET - NULL INPUTS +==56== Invalid write of size 1 +==56== at 0x48D0F75: _IO_default_xsputn (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x48B954F: __vfprintf_internal (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x48C54F3: __vsprintf_internal (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x110C34: UnknownInlinedFun (stdio2.h:52) +==56== by 0x110C34: json_vasprintf.constprop.0 (vasprintf_compat.h:34) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid write of size 1 +==56== at 0x48C54F9: __vsprintf_internal (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x110C34: UnknownInlinedFun (stdio2.h:52) +==56== by 0x110C34: json_vasprintf.constprop.0 (vasprintf_compat.h:34) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a29 is 2 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x483F800: __strchr_sse2 (vg_replace_strmem.c:248) +==56== by 0x10CCDC: json_pointer_get_recursive (json_pointer.c:152) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid write of size 1 +==56== at 0x10CCE5: json_pointer_get_recursive (json_pointer.c:154) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x483FBE4: __strlen_sse2 (vg_replace_strmem.c:461) +==56== by 0x10CB0B: string_replace_all_occurrences_with_char (json_pointer.c:30) +==56== by 0x10CD47: UnknownInlinedFun (json_pointer.c:100) +==56== by 0x10CD47: json_pointer_get_recursive (json_pointer.c:157) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x4844510: strstr (vg_replace_strmem.c:1642) +==56== by 0x10CB53: string_replace_all_occurrences_with_char (json_pointer.c:33) +==56== by 0x10CD47: UnknownInlinedFun (json_pointer.c:100) +==56== by 0x10CD47: json_pointer_get_recursive (json_pointer.c:157) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x483FBE4: __strlen_sse2 (vg_replace_strmem.c:461) +==56== by 0x10CB0B: string_replace_all_occurrences_with_char (json_pointer.c:30) +==56== by 0x10CD5B: UnknownInlinedFun (json_pointer.c:101) +==56== by 0x10CD5B: json_pointer_get_recursive (json_pointer.c:157) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x4844510: strstr (vg_replace_strmem.c:1642) +==56== by 0x10CB53: string_replace_all_occurrences_with_char (json_pointer.c:33) +==56== by 0x10CD5B: UnknownInlinedFun (json_pointer.c:101) +==56== by 0x10CD5B: json_pointer_get_recursive (json_pointer.c:157) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +==56== Invalid read of size 1 +==56== at 0x483FBE4: __strlen_sse2 (vg_replace_strmem.c:461) +==56== by 0x10DAD3: lh_char_hash (linkhash.c:480) +==56== by 0x10CDCA: UnknownInlinedFun (linkhash.h:346) +==56== by 0x10CDCA: UnknownInlinedFun (linkhash.c:625) +==56== by 0x10CDCA: UnknownInlinedFun (linkhash.c:630) +==56== by 0x10CDCA: UnknownInlinedFun (json_object.c:547) +==56== by 0x10CDCA: UnknownInlinedFun (json_object.c:535) +==56== by 0x10CDCA: UnknownInlinedFun (json_pointer.c:103) +==56== by 0x10CDCA: json_pointer_get_recursive (json_pointer.c:157) +==56== by 0x110F07: json_pointer_getf.constprop.0 (json_pointer.c:223) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== Address 0x4a24a27 is 0 bytes after a block of size 7 alloc'd +==56== at 0x483C805: malloc (vg_replace_malloc.c:307) +==56== by 0x110C12: json_vasprintf.constprop.0 (vasprintf_compat.h:31) +==56== by 0x110EBF: json_pointer_getf.constprop.0 (json_pointer.c:211) +==56== by 0x10AAE7: UnknownInlinedFun (test_json_pointer.c:199) +==56== by 0x10AAE7: main (test_json_pointer.c:314) +==56== +test_json_pointer: test_json_pointer.c:200: test_wrong_inputs_get: Assertion `errno == EINVAL' failed. +==56== +==56== Process terminating with default action of signal 6 (SIGABRT) +==56== at 0x488A282: raise (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x48738A3: abort (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x4873788: __assert_fail_base.cold (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x4882A05: __assert_fail (in /usr/lib64/libc-2.32.9000.so) +==56== by 0x10B8F8: UnknownInlinedFun (test_json_pointer.c:200) +==56== by 0x10B8F8: main (test_json_pointer.c:314) +==56== +==56== HEAP SUMMARY: +==56== in use at exit: 2,307 bytes in 29 blocks +==56== total heap usage: 130 allocs, 101 frees, 10,302 bytes allocated +==56== +==56== LEAK SUMMARY: +==56== definitely lost: 0 bytes in 0 blocks +==56== indirectly lost: 0 bytes in 0 blocks +==56== possibly lost: 0 bytes in 0 blocks +==56== still reachable: 2,307 bytes in 29 blocks +==56== suppressed: 0 bytes in 0 blocks +==56== Rerun with --leak-check=full to see details of leaked memory +==56== +==56== For lists of detected and suppressed errors, rerun with: -s +==56== ERROR SUMMARY: 10 errors from 9 contexts (suppressed: 0 from 0) +Aborted (core dumped) +--- + configure.ac | 2 +- + json_pointer.c | 4 ++-- + printbuf.c | 2 +- + vasprintf_compat.h | 4 +++- + 4 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9eb80bcf1c..f61fcccf24 100644 +--- a/modules/json-c/configure.ac ++++ b/modules/json-c/configure.ac +@@ -81,7 +81,7 @@ AS_IF([test "x$ac_cv___thread" != xno], + AC_FUNC_VPRINTF + AC_FUNC_MEMCMP + AC_CHECK_FUNCS([realloc]) +-AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf open strncasecmp setlocale) ++AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open strncasecmp setlocale) + AC_CHECK_DECLS([INFINITY], [], [], [[#include ]]) + AC_CHECK_DECLS([nan], [], [], [[#include ]]) + AC_CHECK_DECLS([isnan], [], [], [[#include ]]) +diff --git a/modules/json-c/json_pointer.c b/modules/json-c/json_pointer.c +index 3b43eb2f40..9531c036c8 100644 +--- a/modules/json-c/json_pointer.c ++++ b/modules/json-c/json_pointer.c +@@ -208,7 +208,7 @@ int json_pointer_getf(struct json_object *obj, struct json_object **res, const c + } + + va_start(args, path_fmt); +- rc = json_vasprintf(&path_copy, path_fmt, args); ++ rc = vasprintf(&path_copy, path_fmt, args); + va_end(args); + + if (rc < 0) +@@ -287,7 +287,7 @@ int json_pointer_setf(struct json_object **obj, struct json_object *value, const + + /* pass a working copy to the recursive call */ + va_start(args, path_fmt); +- rc = json_vasprintf(&path_copy, path_fmt, args); ++ rc = vasprintf(&path_copy, path_fmt, args); + va_end(args); + + if (rc < 0) +diff --git a/modules/json-c/printbuf.c b/modules/json-c/printbuf.c +index b326293b01..6c77b5defd 100644 +--- a/modules/json-c/printbuf.c ++++ b/modules/json-c/printbuf.c +@@ -129,7 +129,7 @@ int sprintbuf(struct printbuf *p, const char *msg, ...) + would have been written - this code handles both cases. */ + if(size == -1 || size > 127) { + va_start(ap, msg); +- if((size = json_vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; } ++ if((size = vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; } + va_end(ap); + printbuf_memappend(p, t, size); + free(t); +diff --git a/modules/json-c/vasprintf_compat.h b/modules/json-c/vasprintf_compat.h +index b57f30f64c..43dbf8939c 100644 +--- a/modules/json-c/vasprintf_compat.h ++++ b/modules/json-c/vasprintf_compat.h +@@ -8,8 +8,9 @@ + + #include "snprintf_compat.h" + ++#if !defined(HAVE_VASPRINTF) + /* CAW: compliant version of vasprintf */ +-static int json_vasprintf(char **buf, const char *fmt, va_list ap) ++static int vasprintf(char **buf, const char *fmt, va_list ap) + { + #ifndef WIN32 + static char _T_emptybuffer = '\0'; +@@ -40,5 +41,6 @@ static int json_vasprintf(char **buf, const char *fmt, va_list ap) + + return chars; + } ++#endif /* !HAVE_VASPRINTF */ + + #endif /* __vasprintf_compat_h */ diff --git a/SOURCES/fix_wrapper_flags.patch b/SOURCES/fix_wrapper_flags.patch new file mode 100644 index 0000000..e555d6d --- /dev/null +++ b/SOURCES/fix_wrapper_flags.patch @@ -0,0 +1,160 @@ +diff -Naur mpich-3.3.2.orig/src/env/mpicc.bash.in mpich-3.3.2/src/env/mpicc.bash.in +--- mpich-3.3.2.orig/src/env/mpicc.bash.in 2020-08-06 00:42:51.089874000 +0000 ++++ mpich-3.3.2/src/env/mpicc.bash.in 2020-08-06 00:49:34.849138000 +0000 +@@ -214,13 +214,13 @@ + fi + fi + +-final_cflags="@MPICH_MPICC_CFLAGS@ @WRAPPER_CFLAGS@" +-final_cppflags="@MPICH_MPICC_CPPFLAGS@ @WRAPPER_CPPFLAGS@" +-final_ldflags="@MPICH_MPICC_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_cflags="@MPICH_MPICC_CFLAGS@ " ++final_cppflags="@MPICH_MPICC_CPPFLAGS@ " ++final_ldflags="@MPICH_MPICC_LDFLAGS@ " + final_libs="@MPICH_MPICC_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # ----------------------------------------------------------------------- +diff -Naur mpich-3.3.2.orig/src/env/mpicc.sh.in mpich-3.3.2/src/env/mpicc.sh.in +--- mpich-3.3.2.orig/src/env/mpicc.sh.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpicc.sh.in 2020-08-06 00:49:34.849138000 +0000 +@@ -223,13 +223,13 @@ + fi + fi + +-final_cflags="@MPICH_MPICC_CFLAGS@ @WRAPPER_CFLAGS@" +-final_cppflags="@MPICH_MPICC_CPPFLAGS@ @WRAPPER_CPPFLAGS@" +-final_ldflags="@MPICH_MPICC_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_cflags="@MPICH_MPICC_CFLAGS@ " ++final_cppflags="@MPICH_MPICC_CPPFLAGS@ " ++final_ldflags="@MPICH_MPICC_LDFLAGS@ " + final_libs="@MPICH_MPICC_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # ----------------------------------------------------------------------- +diff -Naur mpich-3.3.2.orig/src/env/mpicxx.bash.in mpich-3.3.2/src/env/mpicxx.bash.in +--- mpich-3.3.2.orig/src/env/mpicxx.bash.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpicxx.bash.in 2020-08-06 00:49:34.849138000 +0000 +@@ -220,13 +220,13 @@ + fi + fi + +-final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ @WRAPPER_CXXFLAGS@" +-final_cppflags="@MPICH_MPICXX_CPPFLAGS@ @WRAPPER_CPPFLAGS@" +-final_ldflags="@MPICH_MPICXX_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ " ++final_cppflags="@MPICH_MPICXX_CPPFLAGS@ " ++final_ldflags="@MPICH_MPICXX_LDFLAGS@ " + final_libs="@MPICH_MPICXX_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler +diff -Naur mpich-3.3.2.orig/src/env/mpicxx.sh.in mpich-3.3.2/src/env/mpicxx.sh.in +--- mpich-3.3.2.orig/src/env/mpicxx.sh.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpicxx.sh.in 2020-08-06 00:49:34.850138000 +0000 +@@ -229,13 +229,13 @@ + fi + fi + +-final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ @WRAPPER_CXXFLAGS@" +-final_cppflags="@MPICH_MPICXX_CPPFLAGS@ @WRAPPER_CPPFLAGS@" +-final_ldflags="@MPICH_MPICXX_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ " ++final_cppflags="@MPICH_MPICXX_CPPFLAGS@ " ++final_ldflags="@MPICH_MPICXX_LDFLAGS@ " + final_libs="@MPICH_MPICXX_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler +diff -Naur mpich-3.3.2.orig/src/env/mpif77.bash.in mpich-3.3.2/src/env/mpif77.bash.in +--- mpich-3.3.2.orig/src/env/mpif77.bash.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpif77.bash.in 2020-08-06 00:49:34.852138000 +0000 +@@ -272,12 +272,12 @@ + fi + fi + +-final_fflags="@MPICH_MPIF77_FFLAGS@ @WRAPPER_FFLAGS@" +-final_ldflags="@MPICH_MPIF77_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_fflags="@MPICH_MPIF77_FFLAGS@ " ++final_ldflags="@MPICH_MPIF77_LDFLAGS@ " + final_libs="@MPICH_MPIF77_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler +diff -Naur mpich-3.3.2.orig/src/env/mpif77.sh.in mpich-3.3.2/src/env/mpif77.sh.in +--- mpich-3.3.2.orig/src/env/mpif77.sh.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpif77.sh.in 2020-08-06 00:49:34.852138000 +0000 +@@ -294,12 +294,12 @@ + fi + fi + +-final_fflags="@MPICH_MPIF77_FFLAGS@ @WRAPPER_FFLAGS@" +-final_ldflags="@MPICH_MPIF77_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_fflags="@MPICH_MPIF77_FFLAGS@ " ++final_ldflags="@MPICH_MPIF77_LDFLAGS@ " + final_libs="@MPICH_MPIF77_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler +diff -Naur mpich-3.3.2.orig/src/env/mpifort.bash.in mpich-3.3.2/src/env/mpifort.bash.in +--- mpich-3.3.2.orig/src/env/mpifort.bash.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpifort.bash.in 2020-08-06 00:49:34.854138000 +0000 +@@ -313,12 +313,12 @@ + FCMODDIRS="${FCMODINC}$modincdir" + fi + +-final_fcflags="@MPICH_MPIFORT_FCFLAGS@ @WRAPPER_FCFLAGS@" +-final_ldflags="@MPICH_MPIFORT_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_fcflags="@MPICH_MPIFORT_FCFLAGS@ " ++final_ldflags="@MPICH_MPIFORT_LDFLAGS@ " + final_libs="@MPICH_MPIFORT_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler +diff -Naur mpich-3.3.2.orig/src/env/mpifort.sh.in mpich-3.3.2/src/env/mpifort.sh.in +--- mpich-3.3.2.orig/src/env/mpifort.sh.in 2020-08-06 00:42:51.090874000 +0000 ++++ mpich-3.3.2/src/env/mpifort.sh.in 2020-08-06 00:49:34.854138000 +0000 +@@ -330,12 +330,12 @@ + FCMODDIRS="${FCMODINC}$modincdir" + fi + +-final_fcflags="@MPICH_MPIFORT_FCFLAGS@ @WRAPPER_FCFLAGS@" +-final_ldflags="@MPICH_MPIFORT_LDFLAGS@ @WRAPPER_LDFLAGS@" ++final_fcflags="@MPICH_MPIFORT_FCFLAGS@ " ++final_ldflags="@MPICH_MPIFORT_LDFLAGS@ " + final_libs="@MPICH_MPIFORT_LIBS@" + if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then + final_ldflags="${final_ldflags} @LDFLAGS@" +- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@" ++ final_libs="${final_libs} @LIBS@ " + fi + + # A temporary statement to invoke the compiler diff --git a/SOURCES/mpich-modules.patch b/SOURCES/mpich-modules.patch new file mode 100644 index 0000000..d8d4ab2 --- /dev/null +++ b/SOURCES/mpich-modules.patch @@ -0,0 +1,33 @@ +--- mpich-3.2.1/src/packaging/envmods/mpich.module.in.orig 2017-11-11 03:19:44.000000000 +0100 ++++ mpich-3.2.1/src/packaging/envmods/mpich.module.in 2018-04-04 14:14:16.553160669 +0200 +@@ -3,12 +3,23 @@ + # MPICH module for use with 'environment-modules' package: + # + ++# Only allow one mpi module to be loaded at a time ++conflict mpi ++ + # Define prefix so PATH and MANPATH can be updated. +-setenv prefix @prefix@ +-setenv exec_prefix @exec_prefix@ ++setenv MPI_BIN @LIBDIR@/bin ++setenv MPI_SYSCONFIG @sysconfdir@/@MPINAME@-@ARCH@ ++setenv MPI_FORTRAN_MOD_DIR @fortranmoddir@/@MPINAME@ ++setenv MPI_INCLUDE @includedir@ ++setenv MPI_LIB @libdir@ ++setenv MPI_MAN @mandir@ ++setenv MPI_PYTHON_SITEARCH @py2sitearch@/@MPINAME@ ++setenv MPI_PYTHON2_SITEARCH @py2sitearch@/@MPINAME@ ++setenv MPI_PYTHON3_SITEARCH @py3sitearch@/@MPINAME@ ++setenv MPI_COMPILER @MPINAME@-@ARCH@ ++setenv MPI_SUFFIX _@MPINAME@ ++setenv MPI_HOME @LIBDIR@ + prepend-path PATH @bindir@ +-prepend-path MANPATH @mandir@ +- +-# Undefine prefix and exec_prefix which are too generic environment variables. +-unsetenv prefix +-unsetenv exec_prefix ++prepend-path LD_LIBRARY_PATH @libdir@ ++prepend-path MANPATH :@mandir@ ++prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig diff --git a/SOURCES/mpich.macros b/SOURCES/mpich.macros new file mode 100644 index 0000000..85443f4 --- /dev/null +++ b/SOURCES/mpich.macros @@ -0,0 +1,7 @@ +%_mpich_load \ + . /etc/profile.d/modules.sh; \ + module load mpi/mpich-%{_arch}; \ + export CFLAGS="$CFLAGS %{optflags}"; +%_mpich_unload \ + . /etc/profile.d/modules.sh; \ + module unload mpi/mpich-%{_arch}; diff --git a/SOURCES/mpich.pth.py2 b/SOURCES/mpich.pth.py2 new file mode 100644 index 0000000..a2dc353 --- /dev/null +++ b/SOURCES/mpich.pth.py2 @@ -0,0 +1 @@ +import sys, os; s = os.getenv('MPI_PYTHON2_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/SOURCES/mpich.pth.py3 b/SOURCES/mpich.pth.py3 new file mode 100644 index 0000000..ced8c64 --- /dev/null +++ b/SOURCES/mpich.pth.py3 @@ -0,0 +1 @@ +import sys, os; s = os.getenv('MPI_PYTHON3_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/SPECS/mpich.spec b/SPECS/mpich.spec new file mode 100644 index 0000000..4ad1ea3 --- /dev/null +++ b/SPECS/mpich.spec @@ -0,0 +1,515 @@ +Summary: A high-performance implementation of MPI +Name: mpich +Version: 3.4.2 +Release: 1%{?dist} +License: MIT +URL: https://www.mpich.org/ + +Source0: https://www.mpich.org/static/downloads/%{version}/%{name}-%{version}.tar.gz +Source1: mpich.macros +Source2: mpich.pth.py2 +Source3: mpich.pth.py3 +Patch0: mpich-modules.patch +Patch1: 0001-Drop-real128.patch +# Drop build flags, e.g. -specs... and -lto from mpi wrappers (mpicc and mpicxx) +# for discussion see: +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/7TFWEKTDWBYBHEGMIWBVI3AVGORZGNBS/ +Patch3: fix_wrapper_flags.patch +# https://github.com/pmodels/mpich/issues/4534 +Patch4: 0001-Revert-Remove-use-of-vasprintf.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: gcc-gfortran +BuildRequires: hwloc-devel >= 2.0 +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +# For ./maint/extractcvars +BuildRequires: perl(lib) +%ifnarch s390 %{mips} +BuildRequires: valgrind-devel +%endif +# For %%{python3_sitearch} +BuildRequires: python3-devel +BuildRequires: rpm-mpi-hooks +Provides: mpi +Provides: mpich2 = %{version} +Obsoletes: mpich2 < 3.0 +Requires: environment(modules) + +# Make sure this package is rebuilt with correct Python version when updating +# Otherwise mpi.req from rpm-mpi-hooks doesn't work +# https://bugzilla.redhat.com/show_bug.cgi?id=1705296 +Requires: (python(abi) = %{python3_version} if python3) + +%description +MPICH is a high-performance and widely portable implementation of the Message +Passing Interface (MPI) standard (MPI-1, MPI-2 and MPI-3). The goals of MPICH +are: (1) to provide an MPI implementation that efficiently supports different +computation and communication platforms including commodity clusters (desktop +systems, shared-memory systems, multicore architectures), high-speed networks +(10 Gigabit Ethernet, InfiniBand, Myrinet, Quadrics) and proprietary high-end +computing systems (Blue Gene, Cray) and (2) to enable cutting-edge research in +MPI through an easy-to-extend modular framework for other derived +implementations. + +The mpich binaries in this RPM packages were configured to use the default +process manager (Hydra) using the default device (ch3). The ch3 device +was configured with support for the nemesis channel that allows for +shared-memory and TCP/IP sockets based communication. + +This build also include support for using the 'module environment' to select +which MPI implementation to use when multiple implementations are installed. +If you want MPICH support to be automatically loaded, you need to install the +mpich-autoload package. + +%package autoload +Summary: Load mpich automatically into profile +Requires: mpich = %{version}-%{release} +Provides: mpich2-autoload = 3.0.1 +Obsoletes: mpich2-autoload < 3.0 + +%description autoload +This package contains profile files that make mpich automatically loaded. + +%package devel +Summary: Development files for mpich +Provides: %{name}-devel-static = %{version}-%{release} +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig +Requires: gcc-gfortran +Requires: rpm-mpi-hooks +Requires: redhat-rpm-config +Provides: mpich2-devel = 3.0.1 +Obsoletes: mpich2-devel < 3.0 + +%description devel +Contains development headers and libraries for mpich + +%package doc +Summary: Documentations and examples for mpich +BuildArch: noarch +Requires: %{name}-devel = %{version}-%{release} +Provides: mpich2-doc = 3.0.1 +Obsoletes: mpich2-doc < 3.0 + +%description doc +Contains documentations, examples and man-pages for mpich + +%package -n python3-mpich +Summary: mpich support for Python 3 +Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python3_version} + +%description -n python3-mpich +mpich support for Python 3. + +%prep +%setup + +%patch0 -p1 + +%ifarch %{arm} +%patch1 -p1 +%endif + +%patch3 -p1 + +%patch4 -p1 + +%build +./autogen.sh + +CONFIGURE_OPTS=( + --enable-sharedlibs=gcc + --enable-shared + --enable-static=no + --enable-lib-depend + --disable-rpath + --disable-silent-rules + --enable-fortran + --with-gnu-ld + --with-device=ch3:nemesis + --with-pm=hydra:gforker + --includedir=%{_includedir}/%{name}-%{_arch} + --bindir=%{_libdir}/%{name}/bin + --libdir=%{_libdir}/%{name}/lib + --datadir=%{_datadir}/%{name} + --mandir=%{_mandir}/%{name}-%{_arch} + --docdir=%{_datadir}/%{name}/doc + --htmldir=%{_datadir}/%{name}/doc + --with-hwloc-prefix=system +) + +# Set -fallow-argument-mismatch for #1795817 +%configure "${CONFIGURE_OPTS[@]}" FFLAGS="$FFLAGS -fallow-argument-mismatch" + +# Remove rpath +sed -r -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -r -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +#Try and work around 'unused-direct-shlib-dependency' rpmlint warnning +sed -i -e 's| -shared | -Wl,--as-needed\0|g' libtool + +# work-around libtool error: cannot determine absolute directory name of 'system/lib' +mkdir -p system/lib + +%make_build VERBOSE=1 + +%install +%make_install + +mkdir -p %{buildroot}%{_fmoddir}/%{name} +mv %{buildroot}%{_includedir}/%{name}-*/*.mod %{buildroot}%{_fmoddir}/%{name}/ +sed -r -i 's|^modincdir=.*|modincdir=%{_fmoddir}/%{name}|' %{buildroot}%{_libdir}/%{name}/bin/mpifort + +# Install the module file +mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi +sed -r 's|%{_bindir}|%{_libdir}/%{name}/bin|; + s|@LIBDIR@|%{_libdir}/%{name}|; + s|@MPINAME@|%{name}|; + s|@py2sitearch@|%{python2_sitearch}|; + s|@py3sitearch@|%{python3_sitearch}|; + s|@ARCH@|%{_arch}|; + s|@fortranmoddir@|%{_fmoddir}|; + ' \ + %{buildroot}%{_datadir}/modulefiles/mpi/%{name}-%{_arch} + +mkdir -p %{buildroot}%{_sysconfdir}/profile.d +cat >%{buildroot}%{_sysconfdir}/profile.d/mpich-%{_arch}.sh < - 3.4.2-1 +- Update to latest version 3.4.2 +- Related: rhbz#2015398 + +* Mon Aug 09 2021 Mohan Boddu +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Aug 6 2021 Florian Weimer - 3.4.1-3 +- Rebuild to pick up new build flags from redhat-rpm-config (#1984652) + +* Fri Apr 16 2021 Mohan Boddu +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Zbigniew Jędrzejewski-Szmek - 3.4.1-1 +- Update to latest version (#1912981) + +* Tue Jan 5 2021 Zbigniew Jędrzejewski-Szmek - 3.4-1 +- Update to latest version (#1912981) + +* Tue Jan 26 2021 Fedora Release Engineering - 3.3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Sep 15 2020 Zbigniew Jędrzejewski-Szmek - 3.3.2-8 +- Do not require non-loopback addresses in mpirun (#1839007) + +* Thu Aug 06 2020 Christoph Junghans - 3.3.2-7 +- Drop build flag from mpi wrappers + +* Tue Jul 28 2020 Fedora Release Engineering - 3.3.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon May 25 2020 Miro Hrončok - 3.3.2-5 +- Rebuilt for Python 3.9 + +* Fri Feb 14 2020 Christoph Junghans - 3.3.2-4 +- Add 4320.patch to fix #1793563 and #1799473 + +* Thu Jan 30 2020 Zbigniew Jędrzejewski-Szmek - 3.3.2-3 +- Add requirement for redhat-rpm-config (#1795674) + +* Wed Jan 29 2020 Fedora Release Engineering - 3.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sun Nov 17 2019 Zbigniew Jędrzejewski-Szmek - 3.3.2-1 +- Subpackage python2-mpich has been removed (#1773126) + +* Sun Nov 17 2019 Zbigniew Jędrzejewski-Szmek - 3.3.2-1 +- Update to latest version (#1772152). This is a bugfix release: + https://github.com/pmodels/mpich/blob/v3.3.2/CHANGES. + +* Wed Aug 28 2019 Zbigniew Jędrzejewski-Szmek - 3.3.1-1 +- Really upgrade to 3.3.1 (#1745252) + +* Sat Aug 24 2019 Zbigniew Jędrzejewski-Szmek - 3.2.1-1 +- "Upgrade" back to 3.2.1 (#1745252) + (I made a typo, and instead of *upgrading* to 3.3.1, I made a downgrade + to 3.1.1. Too bad that we don't have *any* automatic check that would + warn about this in Fedora. Version 3.3.1 requires a newer hwloc, but + some of the dependencies are not ready to switch. So let's "upgrade" + back to 3.2.1, and plan to 3.3.1 next week.) + +* Mon Aug 19 2019 Miro Hrončok - 3.1.1-2 +- Rebuilt for Python 3.8 + +* Tue Jul 30 2019 Zbigniew Jędrzejewski-Szmek - 3.1.1-1 +- Update to latest version (#1718376) + +* Thu Jul 25 2019 Fedora Release Engineering - 3.2.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed May 8 2019 Zbigniew Jędrzejewski-Szmek - 3.2.1-12 +- Require main package and appropriate python version from python subpackages + +* Tue May 7 2019 Zbigniew Jędrzejewski-Szmek - 3.2.1-11 +- Add a guard for python3 version (#1705296) +- Module files are moved to /usr/share/modulefiles/mpi/ + +* Tue May 7 2019 Zbigniew Jędrzejewski-Szmek - 3.2.1-10 +- Drop all custom compilation and link flags (#1573088) + +* Fri Feb 01 2019 Fedora Release Engineering - 3.2.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 3.2.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 3.2.1-7 +- Rebuilt for Python 3.7 + +* Tue Jun 19 2018 Miro Hrončok - 3.2.1-6 +- Rebuilt for Python 3.7 + +* Wed Apr 4 2018 Zbigniew Jędrzejewski-Szmek - 3.2.1-5 +- Update MANPATH so that normal man pages can still be found (#1533717) + +* Thu Feb 08 2018 Fedora Release Engineering - 3.2.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Ralf Corsépius - 3.2.1-3 +- Rebuilt for GCC-8.0.1. + +* Sun Nov 12 2017 Zbigniew Jędrzejewski-Szmek - 3.2.1-2 +- Update $modincdir in mpifort after moving .mod files (#1301533) +- Move compiler wrappers to mpich-devel (#1353621) +- Remove bogus rpath (#1361586) + +* Sun Nov 12 2017 Zbigniew Jędrzejewski-Szmek - 3.2.1-1 +- Update to latest bugfix release (#1512188) + +* Thu Aug 03 2017 Fedora Release Engineering - 3.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 3.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro Hrončok - 3.2-7 +- Rebuild for Python 3.6 + +* Wed Nov 2 2016 Orion Poplawski - 3.2-7 +- Split python support into sub-packages + +* Wed Mar 30 2016 Michal Toman - 3.2-6 +- Fix build on MIPS + +* Thu Feb 04 2016 Fedora Release Engineering - 3.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 22 2016 Orion Poplawski - 3.2-4 +- Add patch to allow -host localhost to work on builders + +* Wed Jan 20 2016 Orion Poplawski - 3.2-3 +- Use nemesis channel on all platforms + +* Wed Dec 9 2015 Zbigniew Jędrzejewski-Szmek - 3.2-2 +- Soften version check (#1289779) + +* Tue Dec 1 2015 Zbigniew Jędrzejewski-Szmek - 3.2-1 +- Update to latest version + +* Mon Nov 16 2015 Zbigniew Jędrzejewski-Szmek - 3.1.4-9 +- Update requires and fix MPI_FORTRAN_MOD_DIR var + +* Mon Nov 16 2015 Zbigniew Jędrzejewski-Szmek - 3.1.4-8 +- Move fortran .mod files to %%{_fmoddir}/mpich (#1154991) +- Move man pages to arch-specific dir (#1264359) + +* Tue Nov 10 2015 Fedora Release Engineering - 3.1.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Aug 27 2015 Zbigniew Jędrzejewski-Szmek - 3.1.4-6 +- Use .pth files to set the python path (https://fedorahosted.org/fpc/ticket/563) +- Cleanups to the spec file + +* Sun Jul 26 2015 Sandro Mani - 3.1.4-5 +- Require, BuildRequire: rpm-mpi-hooks + +* Wed Jun 17 2015 Fedora Release Engineering - 3.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 9 2015 Zbigniew Jędrzejewski-Szmek - 3.1.4-3 +- Change MPI_SYCONFIG to /etc/mpich-x86_64 (#1196728) + +* Fri Mar 13 2015 Orion Poplawski - 3.1.4-2 +- Set PKG_CONFIG_DIR (bug #1113627) +- Fix modulefile names and python paths (bug#1201343) + +* Wed Mar 11 2015 Orion Poplawski - 3.1.4-1 +- Update to 3.1.4 +- Own and set PKG_CONFIG_DIR (bug #1113627) +- Do not ship old modulefile location (bug #921534) + +* Sun Aug 17 2014 Fedora Release Engineering - 3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Feb 21 2014 Ville Skyttä - 3.1-2 +- Install rpm macros to %%{_rpmconfigdir}/macros.d as non-%%config. + +* Fri Feb 21 2014 Deji Akingunola - 3.1-1 +- Update to 3.1 + +* Mon Jan 6 2014 Peter Robinson 3.0.4-7 +- Set the aarch64 compiler options + +* Fri Dec 13 2013 Peter Robinson 3.0.4-6 +- Now have valgrind on ARMv7 +- No valgrind on aarch64 + +* Fri Aug 23 2013 Orion Poplawski - 3.0.4-5 +- Add %%check + +* Sat Aug 03 2013 Fedora Release Engineering - 3.0.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Jul 20 2013 Deji Akingunola - 3.0.4-3 +- Add proper Provides and Obsoletes for the sub-packages + +* Thu Jul 18 2013 Deji Akingunola - 3.0.4-2 +- Fix some of the rpmlint warnings from package review (BZ #973493) + +* Wed Jun 12 2013 Deji Akingunola - 3.0.4-1 +- Update to 3.0.4 + +* Thu Feb 21 2013 Deji Akingunola - 3.0.2-1 +- Update to 3.0.2 +- Rename to mpich. +- Drop check for old alternatives' installation + +* Thu Feb 14 2013 Fedora Release Engineering - 1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Nov 1 2012 Orion Poplawski - 1.5-1 +- Update to 1.5 +- Drop destdir-fix and mpicxx-und patches +- Update rpm macros to use the new module location + +* Wed Oct 31 2012 Orion Poplawski - 1.4.1p1-9 +- Install module file in mpi subdirectory and conflict with other mpi modules +- Leave existing module file location for backwards compatibility for a while + +* Fri Jul 20 2012 Fedora Release Engineering - 1.4.1p1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Feb 15 2012 Peter Robinson - 1.4.1p1-7 +- Rebuild for new hwloc + +* Wed Feb 15 2012 Peter Robinson - 1.4.1p1-6 +- Update ARM build configuration + +* Fri Jan 13 2012 Fedora Release Engineering - 1.4.1p1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Jan 2 2012 Jussi Lehtola - 1.4.1p1-4 +- Bump spec. + +* Wed Nov 16 2011 Jussi Lehtola - 1.4.1p1-3 +- Comply to MPI guidelines by separating autoloading into separate package + (BZ #647147). + +* Tue Oct 18 2011 Deji Akingunola - 1.4.1p1-2 +- Rebuild for hwloc soname bump. + +* Sun Sep 11 2011 Deji Akingunola - 1.4.1p1-1 +- Update to 1.4.1p1 patch update +- Add enable-lib-depend to configure flags + +* Sat Aug 27 2011 Deji Akingunola - 1.4.1-1 +- Update to 1.4.1 final +- Drop the mpd subpackage, the PM is no longer supported upstream +- Fix undefined symbols in libmpichcxx (again) (#732926) + +* Wed Aug 03 2011 Jussi Lehtola - 1.4-2 +- Respect environment module guidelines wrt placement of module file. + +* Fri Jun 17 2011 Deji Akingunola - 1.4-1 +- Update to 1.4 final