SHA256
1
0
forked from pool/openmpi4

12 Commits

Author SHA256 Message Date
a8132fd761 Accepting request 1269646 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1269646
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi4?expand=0&rev=21
2025-04-16 18:37:26 +00:00
9ae38cd85a - Remove bad dependency from openmpi4-testsuite to openmpi4-testsuite-libs
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=50
2025-04-15 14:19:04 +00:00
ccc6316f59 Accepting request 1265559 from science:HPC
- Remove support for gnu-hpc build flavours.

- Disable gnu-hpc build flavours (bsc#1239982)

OBS-URL: https://build.opensuse.org/request/show/1265559
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi4?expand=0&rev=20
2025-04-03 14:45:51 +00:00
0dd0c24f3c Remove obsolete hpc macro file
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=48
2025-03-30 15:40:10 +00:00
7d29ea3cb0 - Remove support for gnu-hpc build flavours.
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=47
2025-03-30 15:32:22 +00:00
8a11d769e7 - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=46
2025-03-24 16:00:58 +00:00
2d029ddc5b Accepting request 1247231 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247231
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi4?expand=0&rev=19
2025-02-26 16:13:49 +00:00
59b72343ea - Update to 4.1.8 (jsc#PED-11356):
- Allocate and exchange OpenSHMEM base segment addresses earlier in
    startup.
  - Fixed file_seek calculation when using SEEK_END and io/ompio.
  - Protect against using CUDA without VMM support.
  - Change several variables in coll/adapt, coll/basic, coll/han,
    coll/hcoll, and coll/ucc from READONLY to ALL scope so that they can
    be set via the MPI_T interface.
  - Add version identifier to rules file in coll/tuned and extend the
    dynamic rules file to support the alltoall_algorithm_max_requests
    tuning parameter.
- Change default openmpi to openmpi5 for suse_version >= 1600
- Add Fix-type-mismatch-error.patch to fix a compilation error

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=44
2025-02-19 20:06:05 +00:00
e1b7bc7a4b Accepting request 1232847 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1232847
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi4?expand=0&rev=18
2024-12-22 16:58:58 +00:00
7d01296288 - Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
compilation with libfabric >= 2.0 (jsc#PED-9661, jsc#PED-10668)

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=42
2024-12-20 14:00:37 +00:00
21d30e766e Accepting request 1227160 from science:HPC
- Update to 4.1.7 (jsc#PED-11355):
  - Fix int overflow bug in UCC collectives routine, which would impact
    large message collectives.
  - Fix SHMEM bounds checking warnings
  - Fix memory leak in the fcoll/vulcan component
  - Fix memory leak when using non-contiguious datatyles with pml/cm
    (used when using Libfabric or Portals transports)
  - Change default locking protocol for ufs IO component to fix data
    sieving use case.
  - Fix bug in Fortran / C interface array calculation.
  - Fix potential initialization in UCX OpenSHMEM support
  - Add OpenSHMEM support for symmetric remote key handling to improve
    scalability of OpenSHMEM interface.
  - Add MCS Locks as default implementation for OpenSHMEM locks.
  - Fix bug to properly handle ORTE Prefix of "/".
  - Fix bug in I/O interface handling of soft links on Lustre
    filesystems.
  - Fix memory leak in UCX one-sided implementation.
  - Fix bug in rcache components that could lead to assert on macOS
    systems.
  - Fix mishandling of a NULL completion context in the OFI transport.
  - Tarballs are now built with the tar-pax format.
  - Set MPI_THREAD_SERIALIZED instead of MPI_THREAD_SINGLE as supported
    threading model when using UCX that supports
    UCS_THREAD_MODE_SERIALIZED.
  - Fix issue that would prevent using Libfabric 2.x releases.

OBS-URL: https://build.opensuse.org/request/show/1227160
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi4?expand=0&rev=17
2024-11-30 12:27:14 +00:00
20ec2e725e Accepting request 1227140 from home:NMorey:branches:science:HPC
- Update to 4.1.7 (jsc#PED-11355):
  - Fix int overflow bug in UCC collectives routine, which would impact
    large message collectives.
  - Fix SHMEM bounds checking warnings
  - Fix memory leak in the fcoll/vulcan component
  - Fix memory leak when using non-contiguious datatyles with pml/cm
    (used when using Libfabric or Portals transports)
  - Change default locking protocol for ufs IO component to fix data
    sieving use case.
  - Fix bug in Fortran / C interface array calculation.
  - Fix potential initialization in UCX OpenSHMEM support
  - Add OpenSHMEM support for symmetric remote key handling to improve
    scalability of OpenSHMEM interface.
  - Add MCS Locks as default implementation for OpenSHMEM locks.
  - Fix bug to properly handle ORTE Prefix of "/".
  - Fix bug in I/O interface handling of soft links on Lustre
    filesystems.
  - Fix memory leak in UCX one-sided implementation.
  - Fix bug in rcache components that could lead to assert on macOS
    systems.
  - Fix mishandling of a NULL completion context in the OFI transport.
  - Tarballs are now built with the tar-pax format.
  - Set MPI_THREAD_SERIALIZED instead of MPI_THREAD_SINGLE as supported
    threading model when using UCX that supports
    UCS_THREAD_MODE_SERIALIZED.
  - Fix issue that would prevent using Libfabric 2.x releases.

OBS-URL: https://build.opensuse.org/request/show/1227140
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi4?expand=0&rev=40
2024-11-28 14:43:59 +00:00
9 changed files with 168 additions and 251 deletions

View File

@ -0,0 +1,30 @@
commit fc4fb3a80615992277717e3e29ce585ebe1f2256
Author: Tomislav Janjusic <tomislavj@nvidia.com>
Date: Tue Feb 18 12:25:27 2025 -0600
Fix type mismatch error
Signed-off-by: Tomislav Janjusic <tomislavj@nvidia.com>
diff --git oshmem/mca/sshmem/base/sshmem_base_open.c oshmem/mca/sshmem/base/sshmem_base_open.c
index 1f0d1eb761e2..2694120e1cfe 100644
--- oshmem/mca/sshmem/base/sshmem_base_open.c
+++ oshmem/mca/sshmem/base/sshmem_base_open.c
@@ -31,7 +31,7 @@
* globals
*/
-void *mca_sshmem_base_start_address = UINTPTR_MAX;
+void *mca_sshmem_base_start_address = (void *)UINTPTR_MAX;
char * mca_sshmem_base_backing_file_dir = NULL;
@@ -49,7 +49,7 @@ mca_sshmem_base_register (mca_base_register_flag_t flags)
"base",
"start_address",
"Specify base address for shared memory region",
- MCA_BASE_VAR_TYPE_UNSIGNED_LONG_LONG,
+ MCA_BASE_VAR_TYPE_UNSIGNED_LONG,
NULL,
0,
MCA_BASE_VAR_FLAG_SETTABLE,

View File

@ -1,6 +1,4 @@
<multibuild>
<package>standard</package>
<package>testsuite</package>
<package>gnu-hpc</package>
<package>gnu-hpc-testsuite</package>
</multibuild>

View File

@ -1,5 +1,5 @@
<services>
<service name="tar_scm" mode="disabled">
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/open-mpi/ompi.git</param>
<param name="package-meta">no</param>
@ -8,9 +8,9 @@
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="revision">439b23db6288f0370f6fcc80c8c0a06ad86d6873</param>
<param name="revision">ea8f4d03089018f08451f42f2cfa2467570f395e</param>
</service>
<service name="recompress" mode="disabled">
<service name="recompress" mode="manual">
<param name="file">openmpi*.tar</param>
<param name="compression">bz2</param>
</service>

View File

@ -1,21 +0,0 @@
#
# openmpi
#
%hpc_openmpi_init(V:) \
%{-V: %define _mf_ver %{-V*}} \
%{expand: %%global hpc_openmpi_dep_version %%{?_mf_ver}%%{?!_mf_ver:3}} \
%{expand: %%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}} \
%{expand: %%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}} \
%{expand: %%global _hpc_openmpi_modules openmpi}
# We may have to add a version here.
%hpc_setup_openmpi \
module load openmpi
%hpc_openmpi_requires \
Requires: libopenmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
%hpc_openmpi_requires_devel \
Requires: openmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc-devel

View File

@ -0,0 +1,24 @@
commit 75b6dad5959ba75fcba8c64cc0a364d820e03ebc
Author: Nicolas Morey <nmorey@suse.com>
Date: Fri Dec 20 12:44:38 2024 +0100
mtl: ofi: fix missing definition of container_of
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git ompi/mca/mtl/ofi/mtl_ofi_request.h ompi/mca/mtl/ofi/mtl_ofi_request.h
index f68c2a91baa0..6d748fd59bdc 100644
--- ompi/mca/mtl/ofi/mtl_ofi_request.h
+++ ompi/mca/mtl/ofi/mtl_ofi_request.h
@@ -15,6 +15,11 @@
#include "mtl_ofi.h"
+#ifndef container_of
+#define container_of(ptr, type, field) \
+ ((type *) ((char *)ptr - offsetof(type, field)))
+#endif
+
#define TO_OFI_REQ(_ptr_ctx) \
container_of((_ptr_ctx), struct ompi_mtl_ofi_request_t, ctx)

BIN
openmpi-4.1.6.0.439b23db6288.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
openmpi-4.1.8.0.ea8f4d030890.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,71 @@
-------------------------------------------------------------------
Tue Apr 15 11:17:13 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove bad dependency from openmpi4-testsuite to openmpi4-testsuite-libs
-------------------------------------------------------------------
Sat Mar 29 14:42:02 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove support for gnu-hpc build flavours.
-------------------------------------------------------------------
Mon Mar 24 12:52:28 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Wed Feb 19 16:04:48 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.1.8 (jsc#PED-11356):
- Allocate and exchange OpenSHMEM base segment addresses earlier in
startup.
- Fixed file_seek calculation when using SEEK_END and io/ompio.
- Protect against using CUDA without VMM support.
- Change several variables in coll/adapt, coll/basic, coll/han,
coll/hcoll, and coll/ucc from READONLY to ALL scope so that they can
be set via the MPI_T interface.
- Add version identifier to rules file in coll/tuned and extend the
dynamic rules file to support the alltoall_algorithm_max_requests
tuning parameter.
- Change default openmpi to openmpi5 for suse_version >= 1600
- Add Fix-type-mismatch-error.patch to fix a compilation error
-------------------------------------------------------------------
Fri Dec 20 11:46:32 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
compilation with libfabric >= 2.0 (jsc#PED-9661, jsc#PED-10668)
-------------------------------------------------------------------
Tue Nov 26 07:12:00 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.1.7 (jsc#PED-11355):
- Fix int overflow bug in UCC collectives routine, which would impact
large message collectives.
- Fix SHMEM bounds checking warnings
- Fix memory leak in the fcoll/vulcan component
- Fix memory leak when using non-contiguious datatyles with pml/cm
(used when using Libfabric or Portals transports)
- Change default locking protocol for ufs IO component to fix data
sieving use case.
- Fix bug in Fortran / C interface array calculation.
- Fix potential initialization in UCX OpenSHMEM support
- Add OpenSHMEM support for symmetric remote key handling to improve
scalability of OpenSHMEM interface.
- Add MCS Locks as default implementation for OpenSHMEM locks.
- Fix bug to properly handle ORTE Prefix of "/".
- Fix bug in I/O interface handling of soft links on Lustre
filesystems.
- Fix memory leak in UCX one-sided implementation.
- Fix bug in rcache components that could lead to assert on macOS
systems.
- Fix mishandling of a NULL completion context in the OFI transport.
- Tarballs are now built with the tar-pax format.
- Set MPI_THREAD_SERIALIZED instead of MPI_THREAD_SINGLE as supported
threading model when using UCX that supports
UCS_THREAD_MODE_SERIALIZED.
- Fix issue that would prevent using Libfabric 2.x releases.
-------------------------------------------------------------------
Thu Sep 5 06:58:41 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file
# spec file for package openmpi4
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
@ -37,94 +37,41 @@
%global flavor @BUILD_FLAVOR@%{nil}
# Static libraries are disabled by default
# for non HPC builds
# To enable them, simply uncomment:
# % define build_static_devel 1
%global pname openmpi
%define _vers 4_1_6
%define m_f_ver 4
%bcond_with ringdisabled
%if "%flavor" == ""
ExclusiveArch: do_not_build
%{bcond_with hpc}
%define package_name %pname%{m_f_ver}
%else
# Trickery for OBS Staging. If _with_ringdisabled is set
# we only want to build the flavors required by other rings packages.
# Do not build any other ones
%if %{with ringdisabled}
%if "%flavor" != "standard"
%endif
# Trickery for OBS Staging. If _with_ringdisabled is set
# we only want to build the flavors required by other rings packages.
# Do not build any other ones
%if %{with ringdisabled} && "%flavor" != "standard"
ExclusiveArch: do_not_build
%endif
%endif
%if "%flavor" == "standard" || "%flavor" == "testsuite"
%define package_name %{pname}%{m_f_ver}
%bcond_with hpc
%if "%flavor" == "testsuite"
%define testsuite 1
%endif
%else
%bcond_without hpc
# Needs to be defined here to avoid hen/egg problem with test packages.
%define package_name %{pname}_%{_vers}-%{compiler_family}%{?c_f_ver}-hpc
%define build_static_devel 1
%endif
%endif
%if "%flavor" == "gnu-hpc"
%define compiler_family gnu
%undefine c_f_ver
%endif
%if "%flavor" == "gnu7-hpc"
%define compiler_family gnu
%define c_f_ver 7
%endif
%if "%flavor" == "gnu-hpc-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%if "%flavor" == "testsuite"
%define testsuite 1
%endif
%if "%flavor" == "gnu7-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%endif
%if 0%{?suse_version} >= 1320
%ifarch aarch64 %power64 x86_64 s390x
%define with_ucx 1
%endif
%endif
# Detect whether we are the default openMPI implemantation or not
%if "%{flavor}" == "standard" && (%{suse_version} > 1500 || 0%{?sle_version} > 150300)
%if "%{flavor}" == "standard" && (%{suse_version} > 1500 || 0%{?sle_version} > 150300) && (%{suse_version} < 1600)
%define default_openmpi 1
%else
%define default_openmpi 0
%endif
%if %{with hpc}
%{!?compiler_family:%global compiler_family gnu}
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m openmpi %{?mpi_f_ver:-V %{mpi_f_ver}}}
%global hpc_openmpi_dep_version %(VER=%m_f_ver; echo -n ${VER})
%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}
%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}
%{bcond_without pmix}
%{bcond_without hwloc}
ExcludeArch: i586 %arm s390
%else
%{bcond_with pmix}
%{bcond_with hwloc}
%endif
%define git_ver .0.439b23db6288
%define git_ver .0.ea8f4d030890
#############################################################################
#
@ -132,22 +79,23 @@ ExcludeArch: i586 %arm s390
#
#############################################################################
Name: %{package_name}%{?testsuite:-testsuite}
Version: 4.1.6
Name: openmpi4%{?testsuite:-testsuite}
Version: 4.1.8
Release: 0
Summary: An implementation of MPI/SHMEM (Version %{m_f_ver})
Summary: An implementation of MPI/SHMEM (Version 4)
License: BSD-3-Clause
Group: Development/Libraries/Parallel
URL: https://www.open-mpi.org/
Source0: openmpi-%{version}%{git_ver}.tar.bz2
Source2: openmpi4-rpmlintrc
Source3: macros.hpc-openmpi
Source4: mpivars.sh
Source5: mpivars.csh
Patch1: orted-mpir-add-version-to-shared-library.patch
Patch2: btl-openib-Add-VF-support-for-ConnectX-4-5-and-6.patch
Patch3: openmpi4-C99.diff
Patch4: test-datatype-partial.c-fix-compiler-warnings.patch
Patch5: mtl-ofi-fix-missing-definition-of-container_of.patch
Patch6: Fix-type-mismatch-error.patch
Provides: mpi
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
@ -164,7 +112,7 @@ BuildRequires: libtool
BuildRequires: net-tools
%if 0%{?testsuite}
BuildArch: noarch
BuildRequires: %{package_name} = %{version}
BuildRequires: openmpi4 = %{version}
%endif
%if 0%{?with_ucx}
BuildRequires: libucm-devel
@ -178,22 +126,14 @@ BuildRequires: hwloc-devel
%if %{with pmix}
BuildRequires: pmix-devel
%endif
%if %{without hpc}
BuildRequires: Modules
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: mpi-selector
Requires: mpi-selector
Requires(preun):mpi-selector
Requires: %{package_name}-libs = %{version}
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: lua-lmod
BuildRequires: suse-hpc
%if 0%{!?testsuite:1}
Requires: lib%{package_name} = %{version}
%endif
%hpc_requires
Requires(preun): mpi-selector
%if !0%{?testsuite}
Requires: %{name}-libs = %{version}
%endif
%ifarch x86_64
@ -203,7 +143,7 @@ BuildRequires: numactl
%endif
Requires: openmpi-runtime-config
Recommends: openmpi%{m_f_ver}-config
Recommends: %{name}-config
%if 0%{?default_openmpi}
Provides: openmpi = %{version}
%endif
@ -211,26 +151,14 @@ Provides: openmpi = %{version}
# Force ssh to make sure the install works out of the box
Requires: openssh
%if %{without hpc}
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi%{m_f_ver}
%define mpi_prefix %{_libdir}/mpi/gcc/%{name}
%define mpi_bindir %{mpi_prefix}/bin
%define mpi_libdir %{mpi_prefix}/%{_lib}
%define mpi_datadir %{mpi_prefix}/share
%define mpi_helpdir %{mpi_datadir}/%{pname}%{m_f_ver}
%define mpi_helpdir %{mpi_datadir}/%{name}
%define mpi_includedir %{mpi_prefix}/include
%define mpi_mandir %{mpi_prefix}/share/man
%else
%define mpi_prefix %hpc_prefix
%define mpi_bindir %hpc_bindir
%define mpi_libdir %hpc_libdir
%define mpi_datadir %hpc_datadir
%define mpi_helpdir %{mpi_datadir}/openmpi
%define mpi_includedir %hpc_includedir
%define mpi_mandir %hpc_mandir
%endif
%description
%if 0%{?testsuite}
@ -250,20 +178,19 @@ one-sided communication techniques.
This package provides general tools (mpirun, mpiexec, etc.) and the
Module Component Architecture (MCA) base and plugins necessary for
running Open MPI/OpenSHMEM version %{m_f_ver} jobs.
running Open MPI/OpenSHMEM version %{version} jobs.
%endif
%if 0%{!?testsuite:1}
%package %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
Summary: OpenMPI runtime libraries for OpenMPI %{?with_hpc:HPC} version %{version}
%package libs
Summary: OpenMPI runtime libraries for OpenMPI version %{version}
Group: System/Libraries
Requires: %{name} = %{version}
%if 0%{?default_openmpi}
Provides: openmpi-libs = %{version}
%endif
%{?with_hpc:%hpc_requires}
%description %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
%description libs
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
@ -275,22 +202,18 @@ programming API, which is a Partitioned Global Address Space (PGAS)
abstraction layer providing inter-process communication using
one-sided communication techniques.
This package provides the Open MPI/OpenSHMEM version %{m_f_ver}
This package provides the Open MPI/OpenSHMEM version %{version}
shared libraries.
%package devel
Summary: SDK for openMPI %{?with_hpc:HPC} version %{version}
Summary: SDK for openMPI version %{version}
Group: Development/Libraries/Parallel
Requires: libibumad-devel
Requires: libibverbs-devel
%if %{without hpc}
Requires: libstdc++-devel
%if 0%{?default_openmpi}
Provides: openmpi-devel = %{version}
%endif
%else
%hpc_requires_devel
%endif
Requires: %{name} = %{version}
%description devel
@ -306,11 +229,11 @@ abstraction layer providing inter-process communication using
one-sided communication techniques.
This package provides the development files for Open MPI/OpenSHMEM
version %{m_f_ver}, such as wrapper compilers and header files for
version %{version}, such as wrapper compilers and header files for
MPI/OpenSHMEM development.
%package docs
Summary: Documentation for Open MPI/SHMEM %{?with_hpc:HPC} version %{version}
Summary: Documentation for Open MPI/SHMEM version %{version}
Group: Documentation/Man
Requires: %{name} = %{version}
@ -333,11 +256,11 @@ Summary: Macros for openMPI version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
# Make sure no two openmpi macro file can be installed at once
Provides: %{pname}-macros-provider = %{version}
Conflicts: otherproviders(%{pname}-macros-provider)
Provides: openmpi-macros-provider = %{version}
Conflicts: otherproviders(openmpi-macros-provider)
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag
# to avoid issue with older packages
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
Conflicts: otherproviders(openmpi-hpc-macros-devel)
%if 0%{?default_openmpi}
Provides: openmpi-macros-devel = %{version}
@ -348,7 +271,7 @@ Macros for building RPM packages for OpenMPI version %{version}.
%if 0%{?build_static_devel}
%package devel-static
Summary: Static libraries for openMPI %{?with_hpc:HPC} version %{version}
Summary: Static libraries for openMPI version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
%if 0%{?default_openmpi}
@ -366,9 +289,8 @@ This RPM contains the static library files, which are packaged separately from
the dynamic library and headers.
%endif
%if %{without hpc}
%package -n %{pname}%{m_f_ver}-config
Summary: Runtime configuration files for openMPI %{?with_hpc:HPC} version %{version}
%package config
Summary: Runtime configuration files for openMPI version %{version}
Group: Development/Libraries/Parallel
Provides: openmpi-runtime-config = %{version}
Conflicts: otherproviders(openmpi-runtime-config)
@ -378,7 +300,7 @@ Provides: pmix-runtime-config = %{version}
Conflicts: otherproviders(pmix-runtime-config)
%endif
%description -n %{pname}%{m_f_ver}-config
%description config
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
@ -386,22 +308,9 @@ where the team found for them to excel in one or more areas,
such as latency or throughput.
This RPM contains the configuration files for OpenMPI runtime (Version 3).
%endif
%if %{with hpc}
%{hpc_master_package -L -a}
%{hpc_master_package -l}
%{hpc_master_package devel}
%{hpc_master_package docs}
%{hpc_master_package macros-devel}
%{hpc_master_package -a devel-static}
%endif # ?with_hpc
%endif # !testsuite
%if "%(echo %version | tr '.' '_')" != "%_vers"
%{error: Fix _vers variable to match package version!}
%endif
#############################################################################
#
# Prepatory Section
@ -409,19 +318,11 @@ This RPM contains the configuration files for OpenMPI runtime (Version 3).
#############################################################################
%prep
echo FLAVOR %{flavor}
%if %{with hpc}
echo with HPC
%endif
%if %{without hpc}
echo without HPC
%endif
%autosetup -p0 -n openmpi-%{version}%{git_ver}
%if %{without hpc}
cat > %{_sourcedir}/baselibs.conf <<EOF
openmpi%{m_f_ver}-libs
EOF
%endif
# Live patch the VERSION file
sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{version}%{git_ver}/' \
@ -439,12 +340,7 @@ export USER=OBS
export HOSTNAME=OBS
# OBS sets SOURCE_DATE_EPOCH
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%{?with_hpc:%hpc_debug}
./autogen.pl --force
%if %{with hpc}
%{hpc_setup}
%{hpc_configure} \
%else
%{configure} \
--prefix="%{mpi_prefix}" \
--exec-prefix="%{mpi_prefix}" \
@ -453,7 +349,6 @@ export HOSTNAME=OBS
--includedir="%{mpi_includedir}" \
--libdir="%{mpi_libdir}" \
--mandir="%{mpi_mandir}" \
%endif
%{?build_static_devel:--enable-static} \
%{!?build_static_devel:--disable-static} \
--enable-builtin-atomics \
@ -503,7 +398,6 @@ make check
#############################################################################
%install
%{?with_hpc:%{hpc_setup_compiler}}
make install DESTDIR="%buildroot"
# sanitize .la files
@ -536,7 +430,6 @@ rm -f %{buildroot}%{mpi_libdir}/mpi_ext.mod
%fdupes %{buildroot}%{mpi_datadir}
%fdupes %{buildroot}%{mpi_libdir}/pkgconfig
%if %{without hpc}
# make and install mpivars files
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \
> %{buildroot}%{mpi_bindir}/mpivars.sh
@ -573,56 +466,7 @@ cat <<EOF >%{buildroot}%{_rpmmacrodir}/macros.openmpi
%openmpi_devel_requires Requires: %{name}-devel
EOF
%else
%hpc_write_modules_files
#%%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the %{pname} library built with the %{compiler_family} toolchain."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} toolchain"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{SUMMARY:0}"
module-whatis "URL: %{url}"
set version %{version}
setenv MPI_DIR %{hpc_mpi_install_path}
prepend-path PATH %{hpc_bindir}
prepend-path MANPATH %{hpc_mandir}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
prepend-path MODULEPATH %{hpc_modulepath}
%{hpc_modulefile_add_pkgconfig_path}
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{mpi_bindir}/mpivars.sh
%hpc_setup_compiler
module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
sed -e "s/export/setenv/" -e "s/=/ /" \
%{buildroot}/%{mpi_bindir}/mpivars.sh > \
%{buildroot}/%{mpi_bindir}/mpivars.csh
mkdir -p %{buildroot}%{_rpmmacrodir}
mkdir -p %{buildroot}%{_rpmmacrodir}
cp %{S:3} %{buildroot}%{_rpmmacrodir}
# Drop the files that should go into %{pname}-config as we only package them
# in the non HPC build
rm -f %{buildroot}%{_sysconfdir}/openmpi-default-hostfile
rm -f %{buildroot}%{_sysconfdir}/openmpi-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/openmpi-totalview.tcl
%if %{without pmix}
rm -f %{buildroot}%{_sysconfdir}/pmix-mca-params.conf
%endif
%endif
%if %{without hpc}
%post
# Always register. We might be already registered in the case of an udate
# but mpi-selector handles it fine
@ -643,14 +487,6 @@ fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%else #!?with_hpc
# make it default
%post -n lib%{name} -p /sbin/ldconfig
%postun -n lib%{name} -p /sbin/ldconfig
%postun
%hpc_module_delete_if_default
%endif #!?with_hpc
%files
%defattr(-, root, root)
@ -663,17 +499,10 @@ fi
%dir %{mpi_mandir}
%{mpi_bindir}/mpivars.csh
%{mpi_bindir}/mpivars.sh
%if %{without hpc}
%dir %{_libdir}/mpi
%dir %{_libdir}/mpi/gcc
%dir %{_datadir}/modules/gnu-openmpi
%{_datadir}/modules/gnu-openmpi/%{version}
%else # with hpc
%hpc_mpi_dirs
%hpc_modules_files
%endif # with hpc
#
%{mpi_bindir}/mpirun
%{mpi_bindir}/ompi-clean
%{mpi_bindir}/ompi-server
@ -689,11 +518,8 @@ fi
%{mpi_bindir}/oshrun
%{mpi_bindir}/shmemrun
%endif
%if %{without hpc}
%{mpi_bindir}/aggregate_profile.pl
%{mpi_bindir}/profile2mat.pl
%endif
%dir %{mpi_datadir}/openmpi
%dir %{mpi_datadir}/openmpi/amca-param-sets
@ -707,7 +533,7 @@ fi
%{mpi_datadir}/pmix/help-*.txt
%endif
%files %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}}
%files libs
%defattr(-,root,root)
%dir %mpi_prefix/
%dir %mpi_libdir/
@ -726,10 +552,8 @@ fi
%{mpi_libdir}/*.so
%{mpi_libdir}/pkgconfig/*.pc
%{mpi_libdir}/mpi.mod
%if 0%{?suse_version} >= 1320
%{mpi_libdir}/mpi_f08*.mod
%{mpi_libdir}/pmpi_f08*.mod
%endif
%{mpi_bindir}/mpiCC
%{mpi_bindir}/mpic++
%{mpi_bindir}/mpicc
@ -763,11 +587,7 @@ fi
%files macros-devel
%defattr(-,root,root,-)
%if %{with hpc}
%{_rpmmacrodir}/macros.hpc-openmpi
%else
%{_rpmmacrodir}/macros.openmpi
%endif
%if 0%{?build_static_devel}
%files devel-static
@ -778,15 +598,13 @@ fi
%{mpi_libdir}/openmpi/*.a
%endif
%if %{without hpc}
%files -n %{pname}%{m_f_ver}-config
%files config
%config %{_sysconfdir}/openmpi-default-hostfile
%config %{_sysconfdir}/openmpi-mca-params.conf
%if %{without pmix}
%config %{_sysconfdir}/pmix-mca-params.conf
%endif
%{_sysconfdir}/openmpi-totalview.tcl
%endif
%endif # !?testsuite