Compare commits

...

No commits in common. 'c9' and 'c10-beta' have entirely different histories.
c9 ... c10-beta

2
.gitignore vendored

@ -1 +1 @@
SOURCES/openmpi-4.1.1.tar.bz2
SOURCES/openmpi-5.0.2.tar.bz2

@ -1 +1 @@
fa4dc97da18c8c26d5aadb85262a0f2d52b1aa90 SOURCES/openmpi-4.1.1.tar.bz2
18b05755c842b2a0a87b1baa2a6ea34e8fd516c7 SOURCES/openmpi-5.0.2.tar.bz2

@ -1,367 +0,0 @@
From 63c80c7692e55f634cbca6f67cc5c9cdef3a04d2 Mon Sep 17 00:00:00 2001
From: Honggang Li <honli@redhat.com>
Date: Mon, 28 Jun 2021 21:38:13 +0800
Subject: [PATCH] Revert "ucx: check supported transports and devices for
setting priority"
This reverts commit c36d7459b6331c4da825cad5a64326e7c1a272aa.
---
contrib/platform/mellanox/optimized.conf | 2 -
ompi/mca/pml/ucx/pml_ucx_component.c | 15 +-
opal/mca/common/ucx/common_ucx.c | 202 +----------------------
opal/mca/common/ucx/common_ucx.h | 15 --
opal/mca/common/ucx/configure.m4 | 2 -
5 files changed, 2 insertions(+), 234 deletions(-)
diff --git a/contrib/platform/mellanox/optimized.conf b/contrib/platform/mellanox/optimized.conf
index 543fd8d1e224..b86b37c9e2fa 100644
--- a/contrib/platform/mellanox/optimized.conf
+++ b/contrib/platform/mellanox/optimized.conf
@@ -61,8 +61,6 @@
coll = ^ml
hwloc_base_binding_policy = core
btl = self
-pml_ucx_tls = any
-pml_ucx_devices = any
# Basic behavior to smooth startup
mca_base_component_show_load_errors = 0
orte_abort_timeout = 10
diff --git a/ompi/mca/pml/ucx/pml_ucx_component.c b/ompi/mca/pml/ucx/pml_ucx_component.c
index 6aed6c41d11d..ed9cc6573e8e 100644
--- a/ompi/mca/pml/ucx/pml_ucx_component.c
+++ b/ompi/mca/pml/ucx/pml_ucx_component.c
@@ -107,26 +107,13 @@ static mca_pml_base_module_t*
mca_pml_ucx_component_init(int* priority, bool enable_progress_threads,
bool enable_mpi_threads)
{
- opal_common_ucx_support_level_t support_level;
int ret;
- support_level = opal_common_ucx_support_level(ompi_pml_ucx.ucp_context);
- if (support_level == OPAL_COMMON_UCX_SUPPORT_NONE) {
- return NULL;
- }
-
if ( (ret = mca_pml_ucx_init(enable_mpi_threads)) != 0) {
return NULL;
}
- /*
- * If found supported devices - set to the configured (high) priority.
- * Otherwise - Found only supported transports (which could be exposed by
- * unsupported devices), so set a priority lower than ob1.
- */
- *priority = (support_level == OPAL_COMMON_UCX_SUPPORT_DEVICE) ?
- ompi_pml_ucx.priority : 19;
- PML_UCX_VERBOSE(2, "returning priority %d", *priority);
+ *priority = ompi_pml_ucx.priority;
return &ompi_pml_ucx.super;
}
diff --git a/opal/mca/common/ucx/common_ucx.c b/opal/mca/common/ucx/common_ucx.c
index ac7a17d799a5..ae8e66877ab6 100644
--- a/opal/mca/common/ucx/common_ucx.c
+++ b/opal/mca/common/ucx/common_ucx.c
@@ -14,11 +14,8 @@
#include "opal/mca/base/mca_base_framework.h"
#include "opal/mca/pmix/pmix.h"
#include "opal/memoryhooks/memory.h"
-#include "opal/util/argv.h"
#include <ucm/api/ucm.h>
-#include <fnmatch.h>
-#include <stdio.h>
/***********************************************************************/
@@ -28,8 +25,7 @@ opal_common_ucx_module_t opal_common_ucx = {
.verbose = 0,
.progress_iterations = 100,
.registered = 0,
- .opal_mem_hooks = 0,
- .tls = NULL
+ .opal_mem_hooks = 0
};
static void opal_common_ucx_mem_release_cb(void *buf, size_t length,
@@ -40,15 +36,10 @@ static void opal_common_ucx_mem_release_cb(void *buf, size_t length,
OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *component)
{
- static const char *default_tls = "rc_verbs,ud_verbs,rc_mlx5,dc_mlx5,cuda_ipc,rocm_ipc";
- static const char *default_devices = "mlx*";
static int registered = 0;
static int hook_index;
static int verbose_index;
static int progress_index;
- static int tls_index;
- static int devices_index;
-
if (!registered) {
verbose_index = mca_base_var_register("opal", "opal_common", "ucx", "verbose",
"Verbose level of the UCX components",
@@ -69,29 +60,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *
OPAL_INFO_LVL_3,
MCA_BASE_VAR_SCOPE_LOCAL,
&opal_common_ucx.opal_mem_hooks);
-
- opal_common_ucx.tls = malloc(sizeof(*opal_common_ucx.tls));
- *opal_common_ucx.tls = strdup(default_tls);
- tls_index = mca_base_var_register("opal", "opal_common", "ucx", "tls",
- "List of UCX transports which should be supported on the system, to enable "
- "selecting the UCX component. Special values: any (any available). "
- "A '^' prefix negates the list. "
- "For example, in order to exclude on shared memory and TCP transports, "
- "please set to '^posix,sysv,self,tcp,cma,knem,xpmem'.",
- MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
- OPAL_INFO_LVL_3,
- MCA_BASE_VAR_SCOPE_LOCAL,
- opal_common_ucx.tls);
-
- opal_common_ucx.devices = malloc(sizeof(*opal_common_ucx.devices));
- *opal_common_ucx.devices = strdup(default_devices);
- devices_index = mca_base_var_register("opal", "opal_common", "ucx", "devices",
- "List of device driver pattern names, which, if supported by UCX, will "
- "bump its priority above ob1. Special values: any (any available)",
- MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
- OPAL_INFO_LVL_3,
- MCA_BASE_VAR_SCOPE_LOCAL,
- opal_common_ucx.devices);
registered = 1;
}
if (component) {
@@ -107,14 +75,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *
component->mca_type_name,
component->mca_component_name,
"opal_mem_hooks", 0);
- mca_base_var_register_synonym(tls_index, component->mca_project_name,
- component->mca_type_name,
- component->mca_component_name,
- "tls", 0);
- mca_base_var_register_synonym(devices_index, component->mca_project_name,
- component->mca_type_name,
- component->mca_component_name,
- "devices", 0);
}
}
@@ -163,166 +123,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_deregister(void)
opal_output_close(opal_common_ucx.output);
}
-#if HAVE_DECL_OPEN_MEMSTREAM
-static bool opal_common_ucx_check_device(const char *device_name, char **device_list)
-{
- char sysfs_driver_link[PATH_MAX];
- char driver_path[PATH_MAX];
- char *ib_device_name;
- char *driver_name;
- char **list_item;
- ssize_t ret;
-
- /* mlx5_0:1 */
- ret = sscanf(device_name, "%m[^:]%*d", &ib_device_name);
- if (ret != 1) {
- return false;
- }
-
- sysfs_driver_link[sizeof(sysfs_driver_link) - 1] = '\0';
- snprintf(sysfs_driver_link, sizeof(sysfs_driver_link) - 1,
- "/sys/class/infiniband/%s/device/driver", ib_device_name);
- free(ib_device_name);
-
- driver_path[sizeof(driver_path) - 1] = '\0';
- ret = readlink(sysfs_driver_link, driver_path, sizeof(driver_path) - 1);
- if (ret < 0) {
- MCA_COMMON_UCX_VERBOSE(2, "readlink(%s) failed: %s", sysfs_driver_link,
- strerror(errno));
- return false;
- }
-
- driver_name = basename(driver_path);
- for (list_item = device_list; *list_item != NULL; ++list_item) {
- if (!fnmatch(*list_item, driver_name, 0)) {
- MCA_COMMON_UCX_VERBOSE(2, "driver '%s' matched by '%s'",
- driver_path, *list_item);
- return true;
- }
- }
-
- return false;
-}
-#endif
-
-OPAL_DECLSPEC opal_common_ucx_support_level_t
-opal_common_ucx_support_level(ucp_context_h context)
-{
- opal_common_ucx_support_level_t support_level = OPAL_COMMON_UCX_SUPPORT_NONE;
- static const char *support_level_names[] = {
- [OPAL_COMMON_UCX_SUPPORT_NONE] = "none",
- [OPAL_COMMON_UCX_SUPPORT_TRANSPORT] = "transports only",
- [OPAL_COMMON_UCX_SUPPORT_DEVICE] = "transports and devices"
- };
-#if HAVE_DECL_OPEN_MEMSTREAM
- char *rsc_tl_name, *rsc_device_name;
- char **tl_list, **device_list, **list_item;
- bool is_any_tl, is_any_device;
- bool found_tl, negate;
- char line[128];
- FILE *stream;
- char *buffer;
- size_t size;
- int ret;
-#endif
-
- is_any_tl = !strcmp(*opal_common_ucx.tls, "any");
- is_any_device = !strcmp(*opal_common_ucx.devices, "any");
-
- /* Check for special value "any" */
- if (is_any_tl && is_any_device) {
- MCA_COMMON_UCX_VERBOSE(1, "ucx is enabled on any transport or device",
- *opal_common_ucx.tls);
- support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE;
- goto out;
- }
-
-#if HAVE_DECL_OPEN_MEMSTREAM
- /* Split transports list */
- negate = ('^' == (*opal_common_ucx.tls)[0]);
- tl_list = opal_argv_split(*opal_common_ucx.tls + (negate ? 1 : 0), ',');
- if (tl_list == NULL) {
- MCA_COMMON_UCX_VERBOSE(1, "failed to split tl list '%s', ucx is disabled",
- *opal_common_ucx.tls);
- goto out;
- }
-
- /* Split devices list */
- device_list = opal_argv_split(*opal_common_ucx.devices, ',');
- if (device_list == NULL) {
- MCA_COMMON_UCX_VERBOSE(1, "failed to split devices list '%s', ucx is disabled",
- *opal_common_ucx.devices);
- goto out_free_tl_list;
- }
-
- /* Open memory stream to dump UCX information to */
- stream = open_memstream(&buffer, &size);
- if (stream == NULL) {
- MCA_COMMON_UCX_VERBOSE(1, "failed to open memory stream for ucx info (%s), "
- "ucx is disabled", strerror(errno));
- goto out_free_device_list;
- }
-
- /* Print ucx transports information to the memory stream */
- ucp_context_print_info(context, stream);
-
- /* Rewind and read transports/devices list from the stream */
- fseek(stream, 0, SEEK_SET);
- while ((support_level != OPAL_COMMON_UCX_SUPPORT_DEVICE) &&
- (fgets(line, sizeof(line), stream) != NULL)) {
- rsc_tl_name = NULL;
- ret = sscanf(line,
- /* "# resource 6 : md 5 dev 4 flags -- rc_verbs/mlx5_0:1" */
- "# resource %*d : md %*d dev %*d flags -- %m[^/ \n\r]/%m[^/ \n\r]",
- &rsc_tl_name, &rsc_device_name);
- if (ret != 2) {
- free(rsc_tl_name);
- continue;
- }
-
- /* Check if 'rsc_tl_name' is found provided list */
- found_tl = is_any_tl;
- for (list_item = tl_list; !found_tl && (*list_item != NULL); ++list_item) {
- found_tl = !strcmp(*list_item, rsc_tl_name);
- }
-
- /* Check if the transport has a match (either positive or negative) */
- assert(!(is_any_tl && negate));
- if (found_tl != negate) {
- if (is_any_device ||
- opal_common_ucx_check_device(rsc_device_name, device_list)) {
- MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched both transport and device list",
- rsc_tl_name, rsc_device_name);
- support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE;
- } else {
- MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched transport list but not device list",
- rsc_tl_name, rsc_device_name);
- support_level = OPAL_COMMON_UCX_SUPPORT_TRANSPORT;
- }
- } else {
- MCA_COMMON_UCX_VERBOSE(2, "%s/%s: did not match transport list",
- rsc_tl_name, rsc_device_name);
- }
-
- free(rsc_device_name);
- free(rsc_tl_name);
- }
-
- MCA_COMMON_UCX_VERBOSE(2, "support level is %s", support_level_names[support_level]);
- fclose(stream);
- free(buffer);
-
-out_free_device_list:
- opal_argv_free(device_list);
-out_free_tl_list:
- opal_argv_free(tl_list);
-out:
-#else
- MCA_COMMON_UCX_VERBOSE(2, "open_memstream() was not found, ucx is disabled");
-#endif
- return support_level;
-}
-
void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status)
{
}
diff --git a/opal/mca/common/ucx/common_ucx.h b/opal/mca/common/ucx/common_ucx.h
index 92cdd738ef98..202131ac8907 100644
--- a/opal/mca/common/ucx/common_ucx.h
+++ b/opal/mca/common/ucx/common_ucx.h
@@ -88,8 +88,6 @@ typedef struct opal_common_ucx_module {
int progress_iterations;
int registered;
bool opal_mem_hooks;
- char **tls;
- char **devices;
} opal_common_ucx_module_t;
typedef struct opal_common_ucx_del_proc {
@@ -97,23 +95,10 @@ typedef struct opal_common_ucx_del_proc {
size_t vpid;
} opal_common_ucx_del_proc_t;
-typedef enum {
- /* No supported transports found (according to configured list of supported
- transports) */
- OPAL_COMMON_UCX_SUPPORT_NONE,
-
- /* Have supported transports but not supported devices */
- OPAL_COMMON_UCX_SUPPORT_TRANSPORT,
-
- /* Have both supported transports and supported devices */
- OPAL_COMMON_UCX_SUPPORT_DEVICE,
-} opal_common_ucx_support_level_t;
-
extern opal_common_ucx_module_t opal_common_ucx;
OPAL_DECLSPEC void opal_common_ucx_mca_register(void);
OPAL_DECLSPEC void opal_common_ucx_mca_deregister(void);
-OPAL_DECLSPEC opal_common_ucx_support_level_t opal_common_ucx_support_level(ucp_context_h context);
OPAL_DECLSPEC void opal_common_ucx_mca_proc_added(void);
OPAL_DECLSPEC void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status);
OPAL_DECLSPEC int opal_common_ucx_mca_pmix_fence(ucp_worker_h worker);
diff --git a/opal/mca/common/ucx/configure.m4 b/opal/mca/common/ucx/configure.m4
index af8628a889c6..27e07c2005b2 100644
--- a/opal/mca/common/ucx/configure.m4
+++ b/opal/mca/common/ucx/configure.m4
@@ -18,8 +18,6 @@ AC_DEFUN([MCA_opal_common_ucx_CONFIG],[
[common_ucx_happy="yes"],
[common_ucx_happy="no"])
- AC_CHECK_DECLS([open_memstream], [], [], [[#include <stdio.h>]])
-
AS_IF([test "$common_ucx_happy" = "yes"],
[$1],
[$2])
--
2.31.1

@ -1,33 +0,0 @@
From 266189935aef4fce825d0db831b4b53accc62c32 Mon Sep 17 00:00:00 2001
From: Jeff Squyres <jsquyres@cisco.com>
Date: Tue, 22 Jun 2021 22:28:37 -0400
Subject: [PATCH] fbtl-posix: link to common_ompio
The posix fbtl calls mca_common_ompio_progress(), which resides in
common/ompio (i.e., libmca_common_ompio.la). So add that into
mca_fbtl_posix_la_LIBADD (like we do in a few other OMPIO-based
components). Failure to do this *can* lead to the posix fbtl
component failing to load (depending on whether other OMPIO-based
components that pull in libmca_common_ompio were loaded first).
Thanks to Honggang Li for raising the issue.
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
---
ompi/mca/fbtl/posix/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ompi/mca/fbtl/posix/Makefile.am b/ompi/mca/fbtl/posix/Makefile.am
index a7b0624d3ec..1ce19cb09b7 100644
--- a/ompi/mca/fbtl/posix/Makefile.am
+++ b/ompi/mca/fbtl/posix/Makefile.am
@@ -34,7 +34,8 @@ mcacomponentdir = $(ompilibdir)
mcacomponent_LTLIBRARIES = $(component_install)
mca_fbtl_posix_la_SOURCES = $(sources)
mca_fbtl_posix_la_LDFLAGS = -module -avoid-version
-mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la
+mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \
+ $(OMPI_TOP_BUILDDIR)/ompi/mca/common/ompio/libmca_common_ompio.la
noinst_LTLIBRARIES = $(component_noinst)
libmca_fbtl_posix_la_SOURCES = $(sources)

@ -1,7 +1,7 @@
%_openmpi_load \
. /etc/profile.d/modules.sh; \
module load mpi/openmpi-%{_arch}; \
export OMPI_MCA_rmaps_base_oversubscribe=1
export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
%_openmpi_unload \
. /etc/profile.d/modules.sh; \
module unload mpi/openmpi-%{_arch};

@ -6,6 +6,7 @@ conflict mpi
prepend-path PATH @LIBDIR@/bin
prepend-path LD_LIBRARY_PATH @LIBDIR@/lib
prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig
prepend-path CMAKE_PREFIX_PATH @LIBDIR@
prepend-path MANPATH :@MANDIR@
setenv MPI_BIN @LIBDIR@/bin
setenv MPI_SYSCONFIG @ETCDIR@

@ -25,25 +25,52 @@
%bcond_without rdma
%endif
# No more Java on i686
%ifarch %{java_arches}
%bcond_without java
%else
%bcond_with java
%endif
%if %{defined rhel}
%bcond_with orangefs
%bcond_with sphinx
%else
%bcond_without orangefs
%bcond_without sphinx
%endif
%ifarch x86_64
%if 0%{?rhel} >= 10
%bcond_with psm2
%else
%bcond_without psm2
%endif
%else
%bcond_with psm2
%endif
# Some RCs require unreleased pmix version - at least let us test builds
%bcond_without pmix
# Run autogen - needed for some patches
%bcond_without autogen
%bcond_with autogen
Name: openmpi%{?_cc_name_suffix}
Epoch: 2
Version: 4.1.1
Release: 7%{?dist}
Version: 5.0.2
Release: 5%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
ExcludeArch: %{ix86}
# We can't use %%{name} here because of _cc_name_suffix
Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2
Source0: https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-%{version}.tar.bz2
Source1: openmpi.module.in
Source2: openmpi.pth.py2
Source3: openmpi.pth.py3
Source4: macros.openmpi
Patch1: 266189935aef4fce825d0db831b4b53accc62c32.patch
Patch2: 0001-Revert-ucx-check-supported-transports-and-devices-fo.patch
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
@ -53,7 +80,9 @@ BuildRequires: libtool
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(File::Find)
%endif
%ifarch %{valgrind_arches}
BuildRequires: valgrind-devel
%endif
%if %{with rdma}
BuildRequires: opensm-devel > 3.3.0
BuildRequires: rdma-core-devel
@ -65,21 +94,34 @@ BuildRequires: rdma-core-devel
BuildRequires: hwloc-devel
# So configure can find lstopo
BuildRequires: hwloc-gui
%if %{with java}
BuildRequires: java-devel
%else
Obsoletes: %{name}-java < %{version}-%{release}
Obsoletes: %{name}-java-devel < %{version}-%{release}
%endif
# Old libevent causes issues
%if !0%{?el7}
BuildRequires: libevent-devel
%endif
BuildRequires: libfabric-devel
%ifnarch s390 s390x
%ifnarch s390x
BuildRequires: papi-devel
%endif
%if %{with orangefs}
BuildRequires: orangefs-devel
%endif
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Getopt::Long)
BuildRequires: pmix-devel
%if %{with pmix}
BuildRequires: pmix-devel >= 4.2.7
%endif
# For configure to find /usr/bin/prte
BuildRequires: prrte
BuildRequires: prrte-devel
BuildRequires: python%{python3_pkgversion}-devel
%ifarch x86_64
%if %{with psm2}
BuildRequires: libpsm2-devel
%endif
%if %{with ucx}
@ -89,6 +131,12 @@ BuildRequires: zlib-devel
%if !0%{?el7}
BuildRequires: rpm-mpi-hooks
%endif
%if %{with sphinx}
# For docs
BuildRequires: /usr/bin/sphinx-build
BuildRequires: python3-recommonmark
BuildRequires: python3-sphinx_rtd_theme
%endif
Provides: mpi
%if 0%{?rhel} == 7
@ -96,6 +144,7 @@ Provides: mpi
Requires: environment-modules
%endif
Requires: environment(modules)
Requires: prrte
# openmpi currently requires ssh to run
# https://svn.open-mpi.org/trac/ompi/ticket/4228
Requires: openssh-clients
@ -128,6 +177,14 @@ Requires: (python(abi) = %{python3_version} if python3)
%description devel
Contains development headers and libraries for openmpi.
%package doc
Summary: HTML documentation for openmpi
BuildArch: noarch
%description doc
HTML documentation for openmpi.
%if %{with java}
%package java
Summary: Java library
Requires: %{name} = %{epoch}:%{version}-%{release}
@ -143,6 +200,7 @@ Requires: java-devel
%description java-devel
Contains development wrapper for compiling Java with openmpi.
%endif
# We set this to for convenience, since this is the unique dir we use for this
# particular package, version, compiler
@ -183,17 +241,27 @@ OpenMPI support for Python 3.
--sysconfdir=%{_sysconfdir}/%{namearch} \
--disable-silent-rules \
--enable-builtin-atomics \
--enable-mpi-cxx \
--enable-ipv6 \
%if %{with java}
--enable-mpi-java \
%endif
--enable-mpi1-compatibility \
%if %{with sphinx}
--enable-sphinx \
%endif
--with-prrte=external \
--with-sge \
%ifarch %{valgrind_arches}
--with-valgrind \
--enable-memchecker \
%endif
--with-hwloc=/usr \
%if !0%{?el7}
--with-libevent=external \
%if %{with pmix}
--with-pmix=external \
%endif
%endif
%make_build V=1
@ -201,10 +269,6 @@ OpenMPI support for Python 3.
%make_install
find %{buildroot}%{_libdir}/%{name}/lib -name \*.la | xargs rm
find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9
ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz
# Remove dangling symlink
rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
# Make the environment-modules file
mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi
@ -242,6 +306,13 @@ cd %{buildroot}%{_libdir}/pkgconfig
ln -s ../%{name}/lib/pkgconfig/*.pc .
cd -
# Create cmake dir
mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/
# Create directories for OpenMPI packages with development files
mkdir -p %{buildroot}%{_libdir}/%{name}/lib/openmpi/cmake
mkdir -p %{buildroot}%{_libdir}/%{name}/include
# Remove extraneous wrapper link libraries (bug 814798)
sed -i -e s/-ldl// -e s/-lhwloc// \
%{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
@ -255,7 +326,12 @@ mkdir -p %{buildroot}/%{python3_sitearch}/%{name}
install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth
%check
make check
fail=1
# Failing on s390x - https://github.com/open-mpi/ompi/issues/10988
%ifarch s390x
fail=0
%endif
make check || ( cat test/*/test-suite.log && exit $fail )
%files
%license LICENSE
@ -264,58 +340,61 @@ make check
%dir %{_libdir}/%{name}/bin
%dir %{_libdir}/%{name}/lib
%dir %{_libdir}/%{name}/lib/openmpi
%dir %{_libdir}/%{name}/lib/openmpi/cmake
%dir %{_libdir}/%{name}/include
%dir %{_mandir}/%{namearch}
%dir %{_mandir}/%{namearch}/man*
%config(noreplace) %{_sysconfdir}/%{namearch}/*
%{_libdir}/%{name}/bin/mpi[er]*
%{_libdir}/%{name}/bin/ompi*
%{_libdir}/%{name}/bin/orte[-dr_]*
%if %{with ucx}
%{_libdir}/%{name}/bin/oshmem_info
%endif
%{_libdir}/%{name}/bin/oshrun
%{_libdir}/%{name}/bin/shmemrun
%if %{without pmix}
%{_libdir}/%{name}/bin/pattrs
%{_libdir}/%{name}/bin/pctrl
%{_libdir}/%{name}/bin/pevent
%{_libdir}/%{name}/bin/plookup
%{_libdir}/%{name}/bin/pmix_info
%{_libdir}/%{name}/bin/pmixcc
%{_libdir}/%{name}/bin/pps
%{_libdir}/%{name}/bin/pquery
%{_libdir}/%{name}/lib/libpmix.so.2*
%{_libdir}/%{name}/lib/pmix/
%{_libdir}/%{name}/share/pmix/
%{_mandir}/%{namearch}/man1/pmix_info.1*
%{_mandir}/%{namearch}/man5/openpmix.5*
%endif
%{_mandir}/%{namearch}/man7/Open-MPI.7*
%{_libdir}/%{name}/lib/*.so.40*
%{_libdir}/%{name}/lib/libmca_common_ofi.so.10*
%{_libdir}/%{name}/lib/libmca*.so.41*
%{_libdir}/%{name}/lib/libmca*.so.50*
%{_libdir}/%{name}/lib/*.so.80*
%if 0%{?el7}
%{_libdir}/%{name}/lib/pmix/
%endif
%{_mandir}/%{namearch}/man1/mpi[er]*
%{_mandir}/%{namearch}/man1/mpirun.1*
%{_mandir}/%{namearch}/man1/mpisync.1*
%{_mandir}/%{namearch}/man1/ompi*
%{_mandir}/%{namearch}/man1/orte[-dr_]*
%if %{with ucx}
%{_mandir}/%{namearch}/man1/oshmem_info*
%{_mandir}/%{namearch}/man1/oshrun*
%{_mandir}/%{namearch}/man1/shmemrun*
%endif
%{_mandir}/%{namearch}/man7/ompi_*
%{_mandir}/%{namearch}/man7/opal_*
%{_mandir}/%{namearch}/man7/orte*
%{_libdir}/%{name}/lib/openmpi/*
%{_datadir}/modulefiles/mpi/
%dir %{_libdir}/%{name}/share
%dir %{_libdir}/%{name}/share/openmpi
%{_libdir}/%{name}/share/openmpi/amca-param-sets
%{_libdir}/%{name}/share/openmpi/help*.txt
%if %{with rdma}
%{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini
%endif
%if 0%{?el7}
%{_libdir}/%{name}/share/pmix/
%endif
%files devel
%dir %{_includedir}/%{namearch}
%{_libdir}/%{name}/bin/aggregate_profile.pl
%{_libdir}/%{name}/bin/mpi[cCf]*
%{_libdir}/%{name}/bin/opal_*
%{_libdir}/%{name}/bin/orte[cCf]*
%if %{with ucx}
%{_libdir}/%{name}/bin/osh[cCf]*
%endif
%{_libdir}/%{name}/bin/profile2mat.pl
%if %{with ucx}
%{_libdir}/%{name}/bin/shmem[cCf]*
%endif
@ -323,11 +402,13 @@ make check
%{_fmoddir}/%{name}/
%{_libdir}/%{name}/lib/*.so
%{_libdir}/%{name}/lib/*.mod
%{_libdir}/%{name}/lib/cmake/
%{_libdir}/%{name}/lib/pkgconfig/
%{_libdir}/pkgconfig/*.pc
%{_mandir}/%{namearch}/man1/mpi[cCf]*
%if %{with ucx}
%{_mandir}/%{namearch}/man1/osh[cCf]*
%{_mandir}/%{namearch}/man1/oshmem-wrapper-compiler.1*
%{_mandir}/%{namearch}/man1/shmem[cCf]*
%endif
%{_mandir}/%{namearch}/man1/opal_*
@ -336,15 +417,21 @@ make check
%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
%{macrosdir}/macros.%{namearch}
%files doc
%license LICENSE
%doc %{_libdir}/%{name}/share/doc/
%exclude %{_libdir}/%{name}/share/doc/openmpi/javadoc-openmpi
%if %{with java}
%files java
%{_libdir}/%{name}/lib/mpi.jar
%files java-devel
%{_libdir}/%{name}/bin/mpijavac
%{_libdir}/%{name}/bin/mpijavac.pl
# Currently this only contaings openmpi/javadoc
%{_libdir}/%{name}/share/doc/
%doc %{_libdir}/%{name}/share/doc/openmpi/javadoc-openmpi
%{_mandir}/%{namearch}/man1/mpijavac.1.gz
%endif
%if %{with python2}
%files -n python2-openmpi
@ -358,41 +445,119 @@ make check
%changelog
* Fri Jul 21 2023 Kamal Heib <kheib@redhat.com> - 2:4.1.1-7
- Increase Epoch tag
- Resolves: rhbz#2159637, rhbz#2218121, rhbz#2216042
* Fri Jul 26 2024 Brian Stinson <bstinson@redhat.com> - 5.0.2-5
- After bumping the epoch, we need to change the subpackage requires to use it
* Thu Jul 25 2024 Brian Stinson <bstinson@redhat.com> - 2:5.0.2-4
- Bump the epoch to support upgrade path from previous versions of RHEL
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 5.0.2-3
- Bump release for June 2024 mass rebuild
* Mon Mar 04 2024 David Abdurachmanov <davidlt@rivosinc.com> - 5.0.2-2
- Add support for riscv64
* Wed Feb 07 2024 Orion Poplawski <orion@nwra.com> - 5.0.2-1
- Update to 5.0.2
* Wed Jan 24 2024 Orion Poplawski <orion@nwra.com> - 5.0.1-3
- Drop unused BR on infinipath-psm
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Dec 21 2023 Orion Poplawski <orion@nwra.com> - 5.0.1-1
- Update to 5.0.1
* Tue Oct 31 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 5.0.0-2
- Disable building docs in RHEL builds
* Fri Oct 27 2023 Orion Poplawski <orion@nwra.com> - 5.0.0-1
- Update to 5.0.0
- Drops 32-bit i686 support
- Drops C++ bindings
- Add doc sub-package
* Thu Oct 12 2023 Cristian Le <fedora@lecris.me> - 4.1.5-8
- Added CMAKE_PREFIX_PATH to module file
* Sat Sep 30 2023 Benson Muite <benson_muite@emailplus.org> - 4.1.5-7
- Add include and cmake directories for development files for OpenMPI packages
* Fri Sep 22 2023 Orion Poplawski <orion@nwra.com> - 4.1.5-6
- Rebuild for pmix 4.1.3 (bz#2240042)
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Jul 10 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 4.1.5-4
- Disable PSM2 in RHEL 10 builds
* Thu Jun 22 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 4.1.5-3
- Disable PSM, OrangeFS in RHEL builds
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 4.1.5-2
- Rebuilt for Python 3.12
* Sun Feb 26 2023 Orion Poplawski <orion@nwra.com> - 4.1.5-1
- Update to 4.1.5
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Nov 11 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-7
- Re-enable IPv6 support - was not the issue
* Fri Nov 11 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-6
- Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137)
* Fri Aug 19 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 4.1.4-5
- Enable IPv6 support (bz#2119845)
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sun Jul 10 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-3
- Drop java for i686 (bz#2104085)
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 4.1.4-2
- Rebuilt for Python 3.11
* Sun May 29 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-1
- Update to 4.1.4
* Sat Apr 16 2022 Orion Poplawski <orion@nwra.com> - 4.1.3-1
- Update to 4.1.3
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.1.2-3
- Rebuilt for java-17-openjdk as system jdk
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 29 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-1
- Update to 4.1.2
* Thu Jul 20 2023 Kamal Heib <kheib@redhat.com> - 1:4.1.1-6
- Revert v4.1.5
- Bump version
- Resolves: rhbz#2159637, rhbz#2218121, rhbz#2216042
* Sun Oct 10 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-0.1.rc1
- Update to 4.1.2rc1
* Thu Feb 17 2022 Honggang Li <honli@redhat.com> - 4.1.1-5
- Revert v4.1.2
- Add Epoch tag
- Resolves: rhbz#2055184
* Fri Sep 03 2021 Sandro Mani <manisandro@gmail.com> - 4.1.1-4
- Also own %%{_libdir}/%%{name}/lib/cmake/
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.1.1-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jul 20 2021 Honggang Li <honli@redhat.com> - 4.1.1-3
- Enable gating test
- Related: rhbz#1869443
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.1.1-2
- Rebuilt for Python 3.10
* Thu Jul 15 2021 Honggang Li <honli@redhat.com> - 4.1.1-2
* Tue Apr 27 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-1
- Update to 4.1.1
- Enable psm2 support
- fbtl-posix: link to common_ompio
- Revert upstream commit c36d7459b6331c4d
- Resolve: rhbz#1869443
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.1.0-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Apr 05 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.2.rc2
- Update to 4.1.1rc2
* Mon Mar 08 2021 Honggang Li <honli@redhat.com> - 4.1.0-6
- RHEL9 Beta no longer supports PSM, PSM2 or orangeFS
- Resolve: rhbz#1915778
* Thu Feb 11 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.1.rc1
- Update to 4.1.1rc1
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-5
- Add upstream patch for generalized requests

Loading…
Cancel
Save