diff --git a/.gitignore b/.gitignore index 98ccb0c..d89aa68 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,6 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-5.0.3.tar.bz2 /openmpi-5.0.5.tar.bz2 /openmpi-5.0.6.tar.bz2 +/openmpi-5.0.8.tar.bz2 +/openmpi-5.0.9.tar.bz2 +/openmpi-5.0.10.tar.bz2 diff --git a/13117.patch b/13117.patch deleted file mode 100644 index 0082455..0000000 --- a/13117.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 2ea6bfb8d6b32a4a2ddc79dbf1043d0cef8e221c Mon Sep 17 00:00:00 2001 -From: Orion Poplawski -Date: Sat, 1 Mar 2025 14:25:18 -0700 -Subject: [PATCH] Latest Fedora has dropped the arch suffix from the openjdk - directory - ---- - config/ompi_setup_java.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/config/ompi_setup_java.m4 b/config/ompi_setup_java.m4 -index b0212b230e7..02029b83dd6 100644 ---- a/config/ompi_setup_java.m4 -+++ b/config/ompi_setup_java.m4 -@@ -101,7 +101,7 @@ AC_DEFUN([_OMPI_SETUP_JAVA],[ - if test "$ompi_java_found" = "0"; then - # Various Linux - if test -z "$JAVA_HOME"; then -- ompi_java_dir='/usr/lib/jvm/java-*-openjdk-*/include/' -+ ompi_java_dir='/usr/lib/jvm/java-*-openjdk*/include/' - else - ompi_java_dir=$JAVA_HOME/include - fi diff --git a/openmpi-braces.patch b/openmpi-braces.patch new file mode 100644 index 0000000..61b3c59 --- /dev/null +++ b/openmpi-braces.patch @@ -0,0 +1,16 @@ +diff --git a/oshmem/mca/memheap/base/memheap_base_frame.c b/oshmem/mca/memheap/base/memheap_base_frame.c +index 53a71b27a9..82658e0979 100644 +--- a/oshmem/mca/memheap/base/memheap_base_frame.c ++++ b/oshmem/mca/memheap/base/memheap_base_frame.c +@@ -33,9 +33,9 @@ + + int mca_memheap_base_output = -1; + int mca_memheap_base_key_exchange = 1; +-opal_list_t mca_memheap_base_components_opened = {{0}}; ++opal_list_t mca_memheap_base_components_opened = {}; + int mca_memheap_base_already_opened = 0; +-mca_memheap_map_t mca_memheap_base_map = {{{{0}}}}; ++mca_memheap_map_t mca_memheap_base_map = {}; + int mca_memheap_num_segments_warn = 32; + + static int mca_memheap_base_register(mca_base_register_flag_t flags) diff --git a/openmpi-drop-recommonmark.patch b/openmpi-drop-recommonmark.patch new file mode 100644 index 0000000..9ee88a1 --- /dev/null +++ b/openmpi-drop-recommonmark.patch @@ -0,0 +1,31 @@ +diff -ru openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4 +--- openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 2026-02-23 21:21:40.731399193 +0100 ++++ openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4 2026-07-27 17:10:12.450825327 +0200 +@@ -115,7 +115,7 @@ + author = 'Testing' + import sphinx_rtd_theme + # Note the extra quoting needed for square brackets because this is m4 +-extensions = [[ 'recommonmark', 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]] ++extensions = [[ 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]] + html_theme = 'sphinx_rtd_theme' + EOF + echo "Hello world" > index.rst +diff -ru openmpi-5.0.10/docs/conf.py openmpi-5.0.10-new/docs/conf.py +--- openmpi-5.0.10/docs/conf.py 2026-02-23 21:21:10.775279351 +0100 ++++ openmpi-5.0.10-new/docs/conf.py 2026-07-27 17:10:34.017830912 +0200 +@@ -174,7 +174,6 @@ + # ones. + import sphinx_rtd_theme + extensions = [ +- 'recommonmark', + "sphinx_rtd_theme", + "sphinx.ext.extlinks", + ] +diff -ru openmpi-5.0.10/docs/requirements.txt openmpi-5.0.10-new/docs/requirements.txt +--- openmpi-5.0.10/docs/requirements.txt 2026-02-23 21:21:10.811279501 +0100 ++++ openmpi-5.0.10-new/docs/requirements.txt 2026-07-27 17:10:43.482113314 +0200 +@@ -1,4 +1,3 @@ + sphinx>=4.2.0 +-recommonmark + docutils + sphinx-rtd-theme diff --git a/openmpi-inline.patch b/openmpi-inline.patch new file mode 100644 index 0000000..dd901e8 --- /dev/null +++ b/openmpi-inline.patch @@ -0,0 +1,13 @@ +diff --git a/ompi/mca/part/persist/part_persist.h b/ompi/mca/part/persist/part_persist.h +index ccc8f8f197..86fb9bac42 100644 +--- a/ompi/mca/part/persist/part_persist.h ++++ b/ompi/mca/part/persist/part_persist.h +@@ -490,7 +490,7 @@ mca_part_persist_psend_init(const void* buf, + return err; + } + +-__opal_attribute_always_inline__ static inline int ++static inline int + mca_part_persist_start(size_t count, ompi_request_t** requests) + { + int err = OMPI_SUCCESS; diff --git a/openmpi.module.in b/openmpi.module.in index cdd31b9..71cdbc3 100644 --- a/openmpi.module.in +++ b/openmpi.module.in @@ -14,8 +14,6 @@ setenv MPI_FORTRAN_MOD_DIR @FMODDIR@ setenv MPI_INCLUDE @INCDIR@ setenv MPI_LIB @LIBDIR@/lib setenv MPI_MAN @MANDIR@ -setenv MPI_PYTHON_SITEARCH @PY2SITEARCH@ -setenv MPI_PYTHON2_SITEARCH @PY2SITEARCH@ setenv MPI_PYTHON3_SITEARCH @PY3SITEARCH@ setenv MPI_COMPILER @COMPILER@ setenv MPI_SUFFIX @SUFFIX@ diff --git a/openmpi.pth.py2 b/openmpi.pth.py2 deleted file mode 100644 index a2dc353..0000000 --- a/openmpi.pth.py2 +++ /dev/null @@ -1 +0,0 @@ -import sys, os; s = os.getenv('MPI_PYTHON2_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/openmpi.spec b/openmpi.spec index 5e71ec4..c0ecb85 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -5,25 +5,14 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) -%if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 -%bcond_with python2 -%else -%bcond_without python2 -%endif - -%ifarch aarch64 ppc64le x86_64 +# ucx on ppc64le/power10 is broken https://github.com/openucx/ucx/issues/10780 +%ifarch aarch64 x86_64 %bcond_without ucx %else %bcond_with ucx %endif -# ARM 32-bit is not supported by rdma -# https://bugzilla.redhat.com/show_bug.cgi?id=1780584 -%ifarch %{arm} -%bcond_with rdma -%else %bcond_without rdma -%endif # No more Java on i686 %ifarch %{java_arches} @@ -57,23 +46,33 @@ %bcond autogen 1 Name: openmpi%{?_cc_name_suffix} -Version: 5.0.6 +Version: 5.0.10 Release: %autorelease Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. -License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio +# main code is BSD-3-Clause-Open-MPI +# 3rd-party/romio341 is mpich2 +# 3rd-party/treematch is BSD-3-Clause +# oshmem/mca/memheap/ptmalloc/malloc.c is LicenseRef-Fedora-Public-Domain +# opal/util/qsort.c is BSD-4-Clause-UC +# java/ (in subpackage) is Apache-2.0 +# 3rd-party/openpmix/src/mca/psec/munge/psec_munge.c is LGPL-2.0-or-later +# doc/ see bellow in subpackage +License: BSD-3-Clause-Open-MPI AND mpich2 AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain AND BSD-4-Clause-UC 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/v5.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in -Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi - -# Fix JAVA_HOME search -Patch: https://github.com/open-mpi/ompi/pull/13117.patch +# Fix always inline failure - https://github.com/open-mpi/ompi/pull/13756 +Patch: openmpi-inline.patch +# Fix brace initialization - https://github.com/open-mpi/ompi/pull/13758 +Patch: openmpi-braces.patch +# Drop unused recommonmark - https://github.com/open-mpi/ompi/pull/14215 +Patch: openmpi-drop-recommonmark.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -87,7 +86,6 @@ BuildRequires: perl(File::Find) BuildRequires: valgrind-devel %endif %if %{with rdma} -BuildRequires: opensm-devel > 3.3.0 BuildRequires: rdma-core-devel %endif # Doesn't compile: @@ -95,18 +93,14 @@ BuildRequires: rdma-core-devel # loop->getLoopHead()->getStartAddress(), loop_stmts ); #BuildRequires: dyninst-devel BuildRequires: hwloc-devel -# So configure can find lstopo -BuildRequires: hwloc-gui %if %{with java} -BuildRequires: java-devel +BuildRequires: java-25-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 s390x BuildRequires: papi-devel @@ -120,8 +114,6 @@ BuildRequires: perl(Getopt::Long) %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 %if %{with psm2} @@ -131,21 +123,14 @@ BuildRequires: libpsm2-devel BuildRequires: ucx-devel %endif 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 -# Need this for /etc/profile.d/modules.sh -Requires: environment-modules -%endif Requires: environment(modules) Requires: prrte # openmpi currently requires ssh to run @@ -169,19 +154,18 @@ researchers. For more information, see http://www.open-mpi.org/ . Summary: Development files for openmpi Requires: %{name} = %{version}-%{release}, gcc-gfortran Provides: mpi-devel -%if !0%{?el7} Requires: rpm-mpi-hooks # 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) -%endif %description devel Contains development headers and libraries for openmpi. %package doc Summary: HTML documentation for openmpi +License: BSD-3-Clause AND BSD-3-Clause-Open-MPI AND mpich2 AND MIT AND (MIT OR GPL-2.0-or-later) AND (OFL-1.1 AND MIT) BuildArch: noarch %description doc @@ -190,16 +174,18 @@ HTML documentation for openmpi. %if %{with java} %package java Summary: Java library +License: Apache-2.0 Requires: %{name} = %{version}-%{release} -Requires: java-headless +Requires: java-25-headless %description java Java library. %package java-devel Summary: Java development files for openmpi +License: Apache-2.0 Requires: %{name}-java = %{version}-%{release} -Requires: java-devel +Requires: java-25-devel %description java-devel Contains development wrapper for compiling Java with openmpi. @@ -209,17 +195,6 @@ Contains development wrapper for compiling Java with openmpi. # particular package, version, compiler %global namearch openmpi-%{_arch}%{?_cc_name_suffix} -%if %{with python2} -%package -n python2-openmpi -Summary: OpenMPI support for Python 2 -BuildRequires: python2-devel -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python2_version} - -%description -n python2-openmpi -OpenMPI support for Python 2. -%endif - %package -n python%{python3_pkgversion}-openmpi Summary: OpenMPI support for Python 3 Requires: %{name} = %{version}-%{release} @@ -259,12 +234,10 @@ OpenMPI support for Python 3. --enable-memchecker \ %endif --with-hwloc=/usr \ -%if !0%{?el7} --with-libevent=external \ %if %{with pmix} --with-pmix=external \ %endif -%endif %make_build V=1 @@ -281,11 +254,6 @@ sed 's#@LIBDIR@#%{_libdir}/%{name}#; s#@FMODDIR@#%{_fmoddir}/%{name}#; s#@INCDIR@#%{_includedir}/%{namearch}#; s#@MANDIR@#%{_mandir}/%{namearch}#; -%if %{with python2} - s#@PY2SITEARCH@#%{python2_sitearch}/%{name}#; -%else - /@PY2SITEARCH@/d; -%endif s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#; s#@COMPILER@#openmpi-%{_arch}%{?_cc_name_suffix}#; s#@SUFFIX@#%{?_cc_name_suffix}_openmpi#' \ @@ -321,19 +289,11 @@ sed -i -e s/-ldl// -e s/-lhwloc// \ %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt # install .pth files -%if %{with python2} -mkdir -p %{buildroot}/%{python2_sitearch}/%{name} -install -pDm0644 %{SOURCE2} %{buildroot}/%{python2_sitearch}/openmpi.pth -%endif mkdir -p %{buildroot}/%{python3_sitearch}/%{name} install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth %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 @@ -343,7 +303,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %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* @@ -372,9 +331,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %{_mandir}/%{namearch}/man7/Open-MPI.7* %{_libdir}/%{name}/lib/*.so.40* %{_libdir}/%{name}/lib/*.so.80* -%if 0%{?el7} -%{_libdir}/%{name}/lib/pmix/ -%endif %{_mandir}/%{namearch}/man1/mpirun.1* %{_mandir}/%{namearch}/man1/mpisync.1* %{_mandir}/%{namearch}/man1/ompi* @@ -387,9 +343,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %dir %{_libdir}/%{name}/share/openmpi %{_libdir}/%{name}/share/openmpi/amca-param-sets %{_libdir}/%{name}/share/openmpi/help*.txt -%if 0%{?el7} -%{_libdir}/%{name}/share/pmix/ -%endif %files devel %dir %{_includedir}/%{namearch} @@ -436,12 +389,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %{_mandir}/%{namearch}/man1/mpijavac.1.gz %endif -%if %{with python2} -%files -n python2-openmpi -%dir %{python2_sitearch}/%{name} -%{python2_sitearch}/openmpi.pth -%endif - %files -n python%{python3_pkgversion}-openmpi %dir %{python3_sitearch}/%{name} %{python3_sitearch}/openmpi.pth diff --git a/sources b/sources index 435b836..34f655a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.6.tar.bz2) = 097f7bb18d506b362f16d46df308b387e3173068ba8688739db756919453e1fe947c6d8c2e098481617d8c6bbecb8990002db42f284b1732a80ef3edaaa29f20 +SHA512 (openmpi-5.0.10.tar.bz2) = 24d29c2e88549e5a59f47dac0a2327db99644c59fd2991441d0ec23edb95aa7328fcd67bd44601ce9f11b0af90d36fddf82643e23f0f6e7c013c99f9bbd9738e