9 Commits

Author SHA256 Message Date
0de26d06e3 Accepting request 1265556 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/1265556
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=36
2025-04-03 14:46:44 +00:00
ed256dcfb4 - Remove support for gnu-hpc build flavours
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=79
2025-03-30 15:33:43 +00:00
676e345393 - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=78
2025-03-24 16:00:26 +00:00
b2677afd16 Accepting request 1247233 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247233
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=35
2025-02-20 15:40:16 +00:00
751f748c71 - Update to 4.3.0
- Support MPI memory allocation kinds side document.
  - Support MPI ABI Proposal. Configure with --enable-mpi-abi and build with
    mpicc_abi. By default, mpicc still builds and links with MPICH ABI.
  - Added benchmark tests test/mpi/bench/p2p_{latency,bw}. 
  - Added CMA support in CH4 IPC.
  - Added IPC read algorithm for intranode Allgather and Allgatherv.
  - Added CVAR MPIR_CVAR_CH4_SHM_POSIX_TOPO_ENABLE to enable non-temporal memcpy
    for inter-numa shm communication.
  - Added CVAR MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT for debugging MPI deadlock issues.  
  - ch4:ucx now supports dynamic processes. MPI_Comm_spawn{_multiple} will work.
    MPI_Open_port will fail due to ucx port name exceeds current MPI_MAX_PORT_NAME
    of 256. One can work around by use an info hint "port_name_size" and use a
    larger port name buffer.
  - PMI-1 defines PMI_MAX_PORT_NAME, which may be different from MPI_MAX_PORT_NAME.
    This is used by "PMI_Lookup_name". Consequently, MPI_Lookup_name accepts info
    hint "port_name_size" that may be larger than MPI_MAX_PORT_NAME. If the port
    name does not fit in "port_name_size", it will return a truncation error.
  - Autogen default to use -yaksa-depth=2.
  - Default MPIR_CVAR_CH4_ROOTS_ONLY_PMI to on.
  - Added ch4 netmod API am_tag_send and am_tag_recv.
  - Added MPIR_CVAR_CH4_OFI_EAGER_THRESHOLD to force RNDV send mode.
  - Make check target will run ROMIO tests.
  - Add back handle conversion macros (f2c/c2f) to preserve ABI
    compatibility with older MPICH libraries
  - Fix compilation issue with g++ in -std=gnu++20 mode
  - Fix bug in MPI_ANY_SOURCE handling observed using the libfabric CXI
    provider
  - Add NIC information to error messages in ch4:ofi netmod
- Add romio-disable-tests.patch to disable romio tests

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=76
2025-02-19 20:17:01 +00:00
9a0939998e Accepting request 1193491 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1193491
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=34
2024-08-13 11:24:22 +00:00
5734d84e32 - Update to 4.2.2
-  Update embedded libfabric to v1.20.1 and fix compilation with GCC 14.
  -  Fix dataloop support for MPIX_Type_iov routines
  -  Fix crash in Hydra when system has many local ip addresses
  -  Fix RMA fallback check in ch4:ofi netmod
  -  Fix MPI_UNDEFINED handling in mpi_f08 module
  -  Fix Slurm environment variable inheritance in Hydra
  -  Fix multiple issues with large count support in ROMIO
  -  Fix potential hang in init using PMIx client and nonstandard keys
  -  Fix crash if PMIx client cannot get appnum from server during init
  -  Fix other build errors and warnings
  -  Disable flat_namespace to build libmpifort on macOS by default
  -  Prefix warning messages with "MPICH"
  -  Add --disable-doc configure option
  -  Fix support for building MPICH Fortran support with Xcode 15 on macOS
  -  Fix bug in MPI_WIN_SHARED_QUERY when window is not shared
  -  Fix bug in ch4/ofi gpu pipelining
  -  Fixes for Intel GPU support
  -  Fix memory leak in ch4/shm collectives
  -  Fix bug in MPI_COMM_SPLIT with intercommunicators and non-zero root
  -  Fix bug in DAOS ROMIO driver
  -  Fix bug in cycling error code array
  -  Return an error if there is failure to create a datatype in mpi_f08
     module for noncontiguous user data
  -  Return an error when shared memory segment creation fails
  -  Complete support MPI 4.1 specification
  -  Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).
     See paper "Frustrated With MPI+Threads? Try MPIxThreads!",
     https://doi.org/10.1145/3615318.3615320.
  -  Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=74
2024-08-12 16:29:03 +00:00
82176c5905 Accepting request 1183208 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1183208
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=33
2024-06-25 21:09:34 +00:00
c03905df39 - Remove unneeded sysfsutil dependency
- Do no build hpc flavours on 32b systems

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=72
2024-06-25 14:27:35 +00:00
7 changed files with 162 additions and 315 deletions

View File

@@ -3,8 +3,4 @@
<package>testsuite</package>
<package>ofi</package>
<package>ofi-testsuite</package>
<package>gnu-hpc</package>
<package>gnu-hpc-testsuite</package>
<package>gnu-hpc-ofi</package>
<package>gnu-hpc-ofi-testsuite</package>
</multibuild>

View File

@@ -1,20 +0,0 @@
#
# mpich
#
%hpc_mpich_init(V:) \
%{-V: %define _mf_ver %{-V*}} \
%{expand: %%global hpc_mpich_dep_version %%{?_mf_ver}} \
%{expand: %%global hpc_mpich_dir mpich%{hpc_mpich_dep_version}} \
%global hpc_mpich_pack_version %{hpc_mpich_dep_version} \
%{expand: %%global _hpc_mpich_modules mpich}
# We may have to add a version here.
%hpc_setup_mpich \
module load mpich
%hpc_mpich_requires \
Requires: mpich%{hpc_mpich_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
%hpc_mpich_requires_devel \
Requires: mpich%{hpc_mpich_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc-devel

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3492e98adab62b597ef0d292fb2459b6123bc80070a8aa0a30be6962075a12f0
size 39250122

BIN
mpich-4.3.0.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,128 @@
-------------------------------------------------------------------
Sat Mar 29 14:25:11 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove support for gnu-hpc build flavours
-------------------------------------------------------------------
Mon Mar 24 12:49:48 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Wed Feb 19 15:24:58 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.3.0
- Support MPI memory allocation kinds side document.
- Support MPI ABI Proposal. Configure with --enable-mpi-abi and build with
mpicc_abi. By default, mpicc still builds and links with MPICH ABI.
- Added benchmark tests test/mpi/bench/p2p_{latency,bw}.
- Added CMA support in CH4 IPC.
- Added IPC read algorithm for intranode Allgather and Allgatherv.
- Added CVAR MPIR_CVAR_CH4_SHM_POSIX_TOPO_ENABLE to enable non-temporal memcpy
for inter-numa shm communication.
- Added CVAR MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT for debugging MPI deadlock issues.
- ch4:ucx now supports dynamic processes. MPI_Comm_spawn{_multiple} will work.
MPI_Open_port will fail due to ucx port name exceeds current MPI_MAX_PORT_NAME
of 256. One can work around by use an info hint "port_name_size" and use a
larger port name buffer.
- PMI-1 defines PMI_MAX_PORT_NAME, which may be different from MPI_MAX_PORT_NAME.
This is used by "PMI_Lookup_name". Consequently, MPI_Lookup_name accepts info
hint "port_name_size" that may be larger than MPI_MAX_PORT_NAME. If the port
name does not fit in "port_name_size", it will return a truncation error.
- Autogen default to use -yaksa-depth=2.
- Default MPIR_CVAR_CH4_ROOTS_ONLY_PMI to on.
- Added ch4 netmod API am_tag_send and am_tag_recv.
- Added MPIR_CVAR_CH4_OFI_EAGER_THRESHOLD to force RNDV send mode.
- Make check target will run ROMIO tests.
- Add back handle conversion macros (f2c/c2f) to preserve ABI
compatibility with older MPICH libraries
- Fix compilation issue with g++ in -std=gnu++20 mode
- Fix bug in MPI_ANY_SOURCE handling observed using the libfabric CXI
provider
- Add NIC information to error messages in ch4:ofi netmod
- Add romio-disable-tests.patch to disable romio tests
as they cannot be ran within %check
-------------------------------------------------------------------
Mon Aug 12 10:30:53 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.2.2
- Update embedded libfabric to v1.20.1 and fix compilation with GCC 14.
- Fix dataloop support for MPIX_Type_iov routines
- Fix crash in Hydra when system has many local ip addresses
- Fix RMA fallback check in ch4:ofi netmod
- Fix MPI_UNDEFINED handling in mpi_f08 module
- Fix Slurm environment variable inheritance in Hydra
- Fix multiple issues with large count support in ROMIO
- Fix potential hang in init using PMIx client and nonstandard keys
- Fix crash if PMIx client cannot get appnum from server during init
- Fix other build errors and warnings
- Disable flat_namespace to build libmpifort on macOS by default
- Prefix warning messages with "MPICH"
- Add --disable-doc configure option
- Fix support for building MPICH Fortran support with Xcode 15 on macOS
- Fix bug in MPI_WIN_SHARED_QUERY when window is not shared
- Fix bug in ch4/ofi gpu pipelining
- Fixes for Intel GPU support
- Fix memory leak in ch4/shm collectives
- Fix bug in MPI_COMM_SPLIT with intercommunicators and non-zero root
- Fix bug in DAOS ROMIO driver
- Fix bug in cycling error code array
- Return an error if there is failure to create a datatype in mpi_f08
module for noncontiguous user data
- Return an error when shared memory segment creation fails
- Complete support MPI 4.1 specification
- Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).
See paper "Frustrated With MPI+Threads? Try MPIxThreads!",
https://doi.org/10.1145/3615318.3615320.
- Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov
- Experimental op MPIX_EQUAL for MPI_Reduce and MPI_Allreduce (intra
communicator only)
- Use --with-{pmi,pmi2,pmix]=[path] to configure external PMI library.
Convenience options for Slurm and cray deprecated. Use --with-pmi=oldcray
for older Cray environment.
- Error checking default changed to runtime (used to be all).
- Use the error handler bound to MPI_COMM_SELF as the default error handler.
- Use ierror instead of ierr in "use mpi" Fortran interface. This affects
user code if they call with explicit keyword, e.g. call MPI_Init(ierr=arg).
"ierror" is the correct name specified in the MPI specification. We only
added subroutine interface in "mpi.mod" since 4.1.
- Handle conversion functions, such as MPI_Comm_c2f, MPI_Comm_f2c, etc., are
no longer macros. MPI-4.1 require these to be actual functions.
- Yaksa updated to auto detect the GPU architecture and only build for
the detected arch. This applies to CUDA and HIP support.
- MPI_Win_shared_query can be used on windows created by MPI_Win_create,
MPI_Win_allocate, in addition to windows created by MPI_Win_allocate_shared.
MPI_Win_allocate will create shared memory whenever feasible, including between
spawned processes on the same node.
- Fortran mpi.mod support Type(c_ptr) buffer output for MPI_Alloc_mem,
MPI_Win_allocate, and MPI_Win_allocate_shared.
- New functions added in MPI-4.1: MPI_Remove_error_string, MPI_Remove_error_code,
and MPI_Remove_error_class
- New functions added in MPI-4.1: MPI_Request_get_status_all,
MPI_Request_get_status_any, and MPI_Request_get_status_some.
- New function added in MPI-4.1: MPI_Type_get_value_index.
- New functions added in MPI-4.1: MPI_Comm_attach_buffer, MPI_Session_attach_buffer,
MPI_Comm_detach_buffer, MPI_Session_detach_buffer,
MPI_Buffer_flush, MPI_Comm_flush_buffer, MPI_Session_flush_buffer,
MPI_Buffer_iflush, MPI_Comm_iflush_buffer, and MPI_Session_iflush_buffer.
Also added constant MPI_BUFFER_AUTOMATIC to allow automatic buffers.
- Support for "mpi_memory_alloc_kinds" info key. Memory allocation kind
requests can be made via argument to mpiexec, or as info during
session creation. Kinds supported are "mpi" (with standard defined
restrictors) and "system". Queries for supported kinds can be made on
MPI objects such as sessions, comms, windows, or files. MPI 4.1 states
that supported kinds can also be found in MPI_INFO_ENV, but it was
decided at the October 2023 meeting that this was a mistake and will
be removed in an erratum.
- Fix potential crash in GPU memory hooks
-------------------------------------------------------------------
Tue Jun 25 13:15:12 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Remove unneeded sysfsutil dependency
- Do no build hpc flavours on 32b systems
-------------------------------------------------------------------
Wed May 22 11:59:42 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package mpich
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,185 +24,25 @@
# % define build_static_devel 1
%define pname mpich
%define vers 4.1.2
%define _vers 4_1_2
%if "%{flavor}" == ""
ExclusiveArch: do_not_build
%{bcond_with hpc}
%endif
%if "%{flavor}" == "standard"
%define build_flavor ucx
%{bcond_with hpc}
%endif
%if "%{flavor}" == "testsuite"
%define build_flavor ucx
%define testsuite 1
%{bcond_with hpc}
%endif
%if "%{flavor}" == "ofi"
%define build_flavor ofi
%{bcond_with hpc}
%endif
%if "%{flavor}" == "ofi-testsuite"
%define build_flavor ofi
%define testsuite 1
%{bcond_with hpc}
%endif
%if "%flavor" == "gnu-hpc"
%define compiler_family gnu
%undefine c_f_ver
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-ofi"
%define compiler_family gnu
%undefine c_f_ver
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu-hpc-ofi-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc"
%define compiler_family gnu
%define c_f_ver 7
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 7
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu7-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc"
%define compiler_family gnu
%define c_f_ver 8
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 8
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 8
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu8-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 8
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc"
%define compiler_family gnu
%define c_f_ver 9
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 9
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 9
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu9-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 9
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc"
%define compiler_family gnu
%define c_f_ver 10
%define build_flavor ucx
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 10
%define testsuite 1
%define build_flavor ucx
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-ofi"
%define compiler_family gnu
%define c_f_ver 10
%define build_flavor ofi
%define build_static_devel 1
%{bcond_without hpc}
%endif
%if "%flavor" == "gnu10-hpc-ofi-testsuite"
%define compiler_family gnu
%define c_f_ver 10
%define testsuite 1
%define build_flavor ofi
%{bcond_without hpc}
%endif
%if "%{build_flavor}" != "ucx"
@@ -217,7 +57,6 @@ ExclusiveArch: do_not_build
%endif
%endif
%if %{without hpc}
%define module_name mpich%{?pack_suff}
%define p_prefix /usr/%_lib/mpi/gcc/%{module_name}
%define p_bindir %{p_prefix}/bin
@@ -228,36 +67,21 @@ ExclusiveArch: do_not_build
%define p_libexecdir %{p_prefix}/%{_lib}
%define _moduledir /usr/share/modules/gnu-%{module_name}
%define package_name %{pname}%{?pack_suff}
%else
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m mpich %{?pack_suff:-e %{build_flavor}} %{?mpi_f_ver:-V %{mpi_f_ver}}}
%define p_prefix %{hpc_prefix}
%define p_bindir %{hpc_bindir}
%define p_datadir %{hpc_datadir}
%define p_includedir %{hpc_includedir}
%define p_mandir %{hpc_mandir}
%define p_libdir %{hpc_libdir}
%define p_libexecdir %{hpc_libexecdir}
%define package_name %{pname}%{?pack_suff}_%{_vers}-%{compiler_family}%{?c_f_ver}-hpc
%global hpc_mpich_dep_version %(VER=%{?m_f_ver}; echo -n ${VER})
%global hpc_mpich_dir mpich
%global hpc_mpich_pack_version %{hpc_mpich_dep_version}
%endif
Name: %{package_name}%{?testsuite:-testsuite}
Version: %{vers}
Version: 4.3.0
Release: 0
Summary: High-performance and widely portable implementation of MPI
License: MIT
Group: Development/Libraries/Parallel
URL: http://www.mpich.org/
Source0: http://www.mpich.org/static/downloads/%{version}/mpich-%{vers}.tar.gz
Source0: http://www.mpich.org/static/downloads/%{version}/mpich-%{version}.tar.gz
Source1: mpivars.sh
Source2: mpivars.csh
Source3: macros.hpc-mpich
Source100: _multibuild
Patch1: autogen-only-deal-with-json-yaksa-if-enabled.patch
Patch2: autoconf-pull-dynamic-and-not-static-libs-from-pkg-config.patch
Patch3: romio-disable-tests.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
@@ -275,7 +99,6 @@ BuildRequires: libtool
BuildRequires: libtool
BuildRequires: mpi-selector
BuildRequires: python3-devel
BuildRequires: sysfsutils
%if "%{build_flavor}" == "ofi"
BuildRequires: libfabric-devel
@@ -291,19 +114,12 @@ ExcludeArch: %ix86 %arm
%endif
Provides: mpi
%if %{without hpc}
BuildRequires: Modules
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: mpi-selector
Requires: mpi-selector
Requires(preun):mpi-selector
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: lua-lmod
BuildRequires: suse-hpc
%hpc_requires
%endif
Requires(preun): mpi-selector
%if 0%{?testsuite}
BuildRequires: %package_name = %{version}
@@ -326,15 +142,11 @@ The goals of MPICH are:
%if 0%{!?testsuite:1}
%package devel
Summary: SDK for MPICH %{?with_hpc:HPC} version %{version}
Summary: SDK for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
%if %{without hpc}
Requires: libstdc++-devel
%else
%hpc_requires_devel
%endif
Requires: %{name} = %{version}
Requires: libstdc++-devel
%description devel
MPICH is a freely available, portable implementation of MPI, the
@@ -344,21 +156,9 @@ headers and libraries needed for developing MPI applications.
This RPM contains all the wrappers necessary to compile, link, and run
Open MPI jobs.
%if %{with hpc}
%package macros-devel
Summary: HPC Macros for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
Provides: %{pname}-hpc-macros-devel = %{version}
Conflicts: otherproviders(%{pname}-hpc-macros-devel)
%description macros-devel
HPC Macros for building RPM packages for MPICH version %{version}.
%endif
%if 0%{?build_static_devel}
%package devel-static
Summary: Static libraries for MPICH %{?with_hpc:HPC} version %{version}
Summary: Static libraries for MPICH version %{version}
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
@@ -371,23 +171,10 @@ This RPM contains the static library files, which are packaged separately from
the dynamic library and headers.
%endif
%if %{with hpc}
%{hpc_master_package -L -a}
%{hpc_master_package -a devel}
%{hpc_master_package macros-devel}
%{hpc_master_package -a devel-static}
%endif # ?with_hpc
%endif # ! testsuite
%prep
echo FLAVOR %{flavor}
%if %{with hpc}
echo with HPC
%endif
%if %{without hpc}
echo without HPC
%endif
%autosetup -p0 -n mpich-%{version}%{?rc_ver}
# Make sure prebuilt dependencies are used and not mpich submodules
@@ -397,17 +184,12 @@ rm -R modules/{ucx,libfabric,json-c}
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
# GCC10 needs an extra flag to allow badly passed parameters
%if 0%{?suse_version} > 1500 || 0%{?hpc_gnu_dep_version} >= 10
%if 0%{?suse_version} > 1500
export FFLAGS="-fallow-argument-mismatch $FFLAGS"
export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
%endif
./autogen.sh --without-ucx --without-ofi --without-json
%{?with_hpc:%hpc_debug}
%if %{with hpc}
%{hpc_setup}
%{hpc_configure} \
%else
%configure \
--prefix=%{p_prefix} \
--exec-prefix=%{p_prefix} \
@@ -417,7 +199,6 @@ export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
--libdir=%{p_libdir} \
--libexecdir=%{p_libexecdir} \
--mandir=%{p_mandir} \
%endif
--docdir=%{_datadir}/doc/%{name} \
--disable-rpath \
--disable-wrapper-rpath \
@@ -477,7 +258,6 @@ make check
%else
%if %{without hpc}
# make and install mpivars files
install -m 0755 -d %{buildroot}%{_bindir}
sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:1} > %{buildroot}%{p_bindir}/mpivars.sh
@@ -507,47 +287,6 @@ cat << EOF > %{buildroot}%{_moduledir}/.version
set ModulesVersion "%{version}"
EOF
%else # with hpc
install -d -m 755 %{buildroot}%{_rpmmacrodir}
cp %{S:3} %{buildroot}%{_rpmmacrodir}
%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}
prepend-path PATH %{hpc_bindir}
prepend-path MANPATH %{hpc_mandir}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
prepend-path MODULEPATH %{hpc_modulepath}
prepend-path MPI_DIR %{hpc_prefix}
%{hpc_modulefile_add_pkgconfig_path}
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{p_bindir}/mpivars.sh
%hpc_setup_compiler
module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
sed -e "s/export/setenv/" -e "s/=/ /" \
%{buildroot}/%{p_bindir}/mpivars.sh > \
%{buildroot}/%{p_bindir}/mpivars.csh
mkdir -p %{buildroot}%{_sysconfdir}/rpm
%endif # with hpc
find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
@@ -555,18 +294,15 @@ find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
%post
/sbin/ldconfig
%if %{without hpc}
# Always register. We might be already registered in the case of an udate
# but mpi-selector handles it fine
/usr/bin/mpi-selector \
--register %{name}%{?pack_suff} \
--source-dir %{p_bindir} \
--yes
%endif
%postun
/sbin/ldconfig
%if %{without hpc}
# Only unregister when uninstalling
if [ "$1" = "0" ]; then
/usr/bin/mpi-selector --unregister %{name}%{?pack_suff} --yes
@@ -575,23 +311,15 @@ if [ "$1" = "0" ]; then
/usr/bin/mpi-selector --system --unset --yes
fi
fi
%else
%hpc_module_delete_if_default
%endif
%files
%defattr(-,root,root)
%doc CHANGES COPYRIGHT README README.envvar RELEASE_NOTES
%if %{without hpc}
%dir /usr/%_lib/mpi
%dir /usr/%_lib/mpi/gcc
%dir /usr/share/modules
%dir %{_moduledir}
%{_moduledir}
%else
%hpc_mpi_dirs
%hpc_modules_files
%endif
%doc %{_datadir}/doc/*
%dir %{p_prefix}
%dir %{p_bindir}
@@ -619,12 +347,6 @@ fi
%{p_libdir}/*.a
%endif
%if %{with hpc}
%files macros-devel
%defattr(-,root,root)
%config %{_rpmmacrodir}/macros.hpc-mpich
%endif # with hpc
%endif # !testsuite
%changelog

24
romio-disable-tests.patch Normal file
View File

@@ -0,0 +1,24 @@
commit 064abd16295dd402a436d9e9e3a1ad887c6fafb6
Author: Nicolas Morey <nmorey@suse.com>
Date: Wed Feb 19 19:45:08 2025 +0100
romio: disable tests
Tests assumes mpich to be fully installed which does not work
for %check
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git src/mpi/romio/Makefile.am src/mpi/romio/Makefile.am
index a6429766fd47..eb9ccd4f2f81 100644
--- src/mpi/romio/Makefile.am
+++ src/mpi/romio/Makefile.am
@@ -56,7 +56,7 @@ nodist_include_HEADERS += include/mpio.h include/mpiof.h
# ------------------------------------------------------------------------
-SUBDIRS = $(external_subdirs) . test
+SUBDIRS = $(external_subdirs) .
DIST_SUBDIRS = test test-internal $(external_dist_subdirs)
# for the sake of parallel make and avoiding an excessive number of convenience