|
|
|
@ -1,17 +1,3 @@
|
|
|
|
|
%global _hardened_build 1
|
|
|
|
|
# We only compile with gcc, but other people may want other compilers.
|
|
|
|
|
# Set the compiler here.
|
|
|
|
|
%global opt_cc gcc
|
|
|
|
|
# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
|
|
|
|
|
# so uncomment and define to use
|
|
|
|
|
#global opt_cflags
|
|
|
|
|
%global opt_cxx g++
|
|
|
|
|
#global opt_cxxflags
|
|
|
|
|
%global opt_f77 gfortran
|
|
|
|
|
#global opt_fflags
|
|
|
|
|
%global opt_fc gfortran
|
|
|
|
|
#global opt_fcflags
|
|
|
|
|
|
|
|
|
|
# Optional name suffix to use...we leave it off when compiling with gcc, but
|
|
|
|
|
# for other compiled versions to install side by side, it will need a
|
|
|
|
|
# suffix in order to keep the names from conflicting.
|
|
|
|
@ -39,70 +25,107 @@
|
|
|
|
|
%bcond_without rdma
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
Name: openmpi%{?_cc_name_suffix}
|
|
|
|
|
Version: 4.0.4
|
|
|
|
|
Release: 1%{?dist}
|
|
|
|
|
Summary: Open Message Passing Interface
|
|
|
|
|
License: BSD and MIT and Romio
|
|
|
|
|
URL: http://www.open-mpi.org/
|
|
|
|
|
# No more Java on i686
|
|
|
|
|
%ifarch %{java_arches}
|
|
|
|
|
%bcond_without java
|
|
|
|
|
%else
|
|
|
|
|
%bcond_with java
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Run autogen - needed for some patches
|
|
|
|
|
%ifnarch riscv64
|
|
|
|
|
%bcond_with autogen
|
|
|
|
|
%else
|
|
|
|
|
%bcond_without autogen
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
Name: openmpi%{?_cc_name_suffix}
|
|
|
|
|
Version: 4.1.4
|
|
|
|
|
Release: 4.1.riscv64%{?dist}
|
|
|
|
|
Summary: Open Message Passing Interface
|
|
|
|
|
License: BSD and MIT and Romio
|
|
|
|
|
URL: http://www.open-mpi.org/
|
|
|
|
|
|
|
|
|
|
# We can't use %%{name} here because of _cc_name_suffix
|
|
|
|
|
Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2
|
|
|
|
|
Source1: openmpi.module.in
|
|
|
|
|
Source2: openmpi.pth.py2
|
|
|
|
|
Source3: openmpi.pth.py3
|
|
|
|
|
Source4: macros.openmpi
|
|
|
|
|
Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2
|
|
|
|
|
Source1: openmpi.module.in
|
|
|
|
|
Source2: openmpi.pth.py2
|
|
|
|
|
Source3: openmpi.pth.py3
|
|
|
|
|
Source4: macros.openmpi
|
|
|
|
|
|
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
BuildRequires: gcc-gfortran
|
|
|
|
|
BuildRequires: valgrind-devel
|
|
|
|
|
Patch10: 0001-Add-initial-support-for-riscv64.patch
|
|
|
|
|
|
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
BuildRequires: gcc-gfortran
|
|
|
|
|
BuildRequires: make
|
|
|
|
|
%if %{with autogen}
|
|
|
|
|
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
|
|
|
|
|
BuildRequires: opensm-devel > 3.3.0
|
|
|
|
|
BuildRequires: rdma-core-devel
|
|
|
|
|
%endif
|
|
|
|
|
# Doesn't compile:
|
|
|
|
|
# vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead'
|
|
|
|
|
# loop->getLoopHead()->getStartAddress(), loop_stmts );
|
|
|
|
|
#BuildRequires: dyninst-devel
|
|
|
|
|
BuildRequires: hwloc-devel
|
|
|
|
|
#BuildRequires: dyninst-devel
|
|
|
|
|
BuildRequires: hwloc-devel
|
|
|
|
|
# So configure can find lstopo
|
|
|
|
|
BuildRequires: hwloc-gui
|
|
|
|
|
BuildRequires: java-devel
|
|
|
|
|
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
|
|
|
|
|
BuildRequires: libevent-devel
|
|
|
|
|
%endif
|
|
|
|
|
BuildRequires: libfabric-devel
|
|
|
|
|
BuildRequires: libfabric-devel
|
|
|
|
|
%ifnarch s390 s390x
|
|
|
|
|
BuildRequires: papi-devel
|
|
|
|
|
BuildRequires: papi-devel
|
|
|
|
|
%endif
|
|
|
|
|
BuildRequires: orangefs-devel
|
|
|
|
|
BuildRequires: perl-generators
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
BuildRequires: perl(Getopt::Long)
|
|
|
|
|
BuildRequires: pmix-devel
|
|
|
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
|
|
|
BuildRequires: orangefs-devel
|
|
|
|
|
BuildRequires: perl-generators
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
BuildRequires: perl(Getopt::Long)
|
|
|
|
|
BuildRequires: pmix-devel
|
|
|
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
|
|
|
%ifarch x86_64
|
|
|
|
|
BuildRequires: infinipath-psm-devel
|
|
|
|
|
BuildRequires: libpsm2-devel
|
|
|
|
|
BuildRequires: infinipath-psm-devel
|
|
|
|
|
BuildRequires: libpsm2-devel
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with ucx}
|
|
|
|
|
BuildRequires: ucx-devel
|
|
|
|
|
BuildRequires: ucx-devel
|
|
|
|
|
%endif
|
|
|
|
|
BuildRequires: zlib-devel
|
|
|
|
|
BuildRequires: zlib-devel
|
|
|
|
|
%if !0%{?el7}
|
|
|
|
|
BuildRequires: rpm-mpi-hooks
|
|
|
|
|
BuildRequires: rpm-mpi-hooks
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
Provides: mpi
|
|
|
|
|
%if 0%{?rhel}
|
|
|
|
|
# Need this for /etc/profile.d/modules.sh
|
|
|
|
|
Requires: environment-modules
|
|
|
|
|
%ifarch riscv64
|
|
|
|
|
BuildRequires: automake
|
|
|
|
|
BuildRequires: autoconf
|
|
|
|
|
BuildRequires: libtool
|
|
|
|
|
BuildRequires: gettext
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
%endif
|
|
|
|
|
Requires: environment(modules)
|
|
|
|
|
|
|
|
|
|
Provides: mpi
|
|
|
|
|
%if 0%{?rhel} == 7
|
|
|
|
|
# Need this for /etc/profile.d/modules.sh
|
|
|
|
|
Requires: environment-modules
|
|
|
|
|
%endif
|
|
|
|
|
Requires: environment(modules)
|
|
|
|
|
# openmpi currently requires ssh to run
|
|
|
|
|
# https://svn.open-mpi.org/trac/ompi/ticket/4228
|
|
|
|
|
Requires: openssh-clients
|
|
|
|
|
Requires: openssh-clients
|
|
|
|
|
|
|
|
|
|
# Private openmpi libraries
|
|
|
|
|
%global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
|
|
|
|
@ -132,21 +155,23 @@ Requires: (python(abi) = %{python3_version} if python3)
|
|
|
|
|
%description devel
|
|
|
|
|
Contains development headers and libraries for openmpi.
|
|
|
|
|
|
|
|
|
|
%if %{with java}
|
|
|
|
|
%package java
|
|
|
|
|
Summary: Java library
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
Requires: java-headless
|
|
|
|
|
Summary: Java library
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
Requires: java-headless
|
|
|
|
|
|
|
|
|
|
%description java
|
|
|
|
|
Java library.
|
|
|
|
|
|
|
|
|
|
%package java-devel
|
|
|
|
|
Summary: Java development files for openmpi
|
|
|
|
|
Requires: %{name}-java = %{version}-%{release}
|
|
|
|
|
Requires: java-devel
|
|
|
|
|
Summary: Java development files for openmpi
|
|
|
|
|
Requires: %{name}-java = %{version}-%{release}
|
|
|
|
|
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
|
|
|
|
@ -154,28 +179,33 @@ Contains development wrapper for compiling Java with openmpi.
|
|
|
|
|
|
|
|
|
|
%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}
|
|
|
|
|
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}
|
|
|
|
|
Requires: python(abi) = %{python3_version}
|
|
|
|
|
Summary: OpenMPI support for Python 3
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
Requires: python(abi) = %{python3_version}
|
|
|
|
|
|
|
|
|
|
%description -n python%{python3_pkgversion}-openmpi
|
|
|
|
|
OpenMPI support for Python 3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
%autosetup -p1
|
|
|
|
|
%autosetup -p1 -n %{name}-%{version}
|
|
|
|
|
%if %{with autogen}
|
|
|
|
|
./autogen.pl --force
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
|
%set_build_flags
|
|
|
|
|
./configure --prefix=%{_libdir}/%{name} \
|
|
|
|
|
--mandir=%{_mandir}/%{namearch} \
|
|
|
|
|
--includedir=%{_includedir}/%{namearch} \
|
|
|
|
@ -183,22 +213,20 @@ OpenMPI support for Python 3.
|
|
|
|
|
--disable-silent-rules \
|
|
|
|
|
--enable-builtin-atomics \
|
|
|
|
|
--enable-mpi-cxx \
|
|
|
|
|
%if %{with java}
|
|
|
|
|
--enable-mpi-java \
|
|
|
|
|
%endif
|
|
|
|
|
--enable-mpi1-compatibility \
|
|
|
|
|
--with-sge \
|
|
|
|
|
%ifarch %{valgrind_arches}
|
|
|
|
|
--with-valgrind \
|
|
|
|
|
--enable-memchecker \
|
|
|
|
|
%endif
|
|
|
|
|
--with-hwloc=/usr \
|
|
|
|
|
%if !0%{?el7}
|
|
|
|
|
--with-libevent=external \
|
|
|
|
|
--with-pmix=external \
|
|
|
|
|
%endif
|
|
|
|
|
CC=%{opt_cc} CXX=%{opt_cxx} \
|
|
|
|
|
LDFLAGS='%{__global_ldflags}' \
|
|
|
|
|
CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
|
|
|
|
|
CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
|
|
|
|
|
FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}"
|
|
|
|
|
# --with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' \
|
|
|
|
|
|
|
|
|
|
%make_build V=1
|
|
|
|
|
|
|
|
|
@ -247,6 +275,9 @@ cd %{buildroot}%{_libdir}/pkgconfig
|
|
|
|
|
ln -s ../%{name}/lib/pkgconfig/*.pc .
|
|
|
|
|
cd -
|
|
|
|
|
|
|
|
|
|
# Create cmake dir
|
|
|
|
|
mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/
|
|
|
|
|
|
|
|
|
|
# Remove extraneous wrapper link libraries (bug 814798)
|
|
|
|
|
sed -i -e s/-ldl// -e s/-lhwloc// \
|
|
|
|
|
%{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
|
|
|
|
@ -281,6 +312,7 @@ make check
|
|
|
|
|
%{_libdir}/%{name}/bin/shmemrun
|
|
|
|
|
%endif
|
|
|
|
|
%{_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*
|
|
|
|
|
%if 0%{?el7}
|
|
|
|
@ -327,6 +359,7 @@ 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]*
|
|
|
|
@ -340,6 +373,7 @@ make check
|
|
|
|
|
%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
|
|
|
|
|
%{macrosdir}/macros.%{namearch}
|
|
|
|
|
|
|
|
|
|
%if %{with java}
|
|
|
|
|
%files java
|
|
|
|
|
%{_libdir}/%{name}/lib/mpi.jar
|
|
|
|
|
|
|
|
|
@ -349,6 +383,7 @@ make check
|
|
|
|
|
# Currently this only contaings openmpi/javadoc
|
|
|
|
|
%{_libdir}/%{name}/share/doc/
|
|
|
|
|
%{_mandir}/%{namearch}/man1/mpijavac.1.gz
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if %{with python2}
|
|
|
|
|
%files -n python2-openmpi
|
|
|
|
@ -362,6 +397,86 @@ make check
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
* Thu Nov 10 2022 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-4.1.riscv64
|
|
|
|
|
- Rebuild
|
|
|
|
|
|
|
|
|
|
* Fri Sep 23 2022 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-4.0.riscv64
|
|
|
|
|
- Add initial support for riscv64
|
|
|
|
|
- Fix valgrind check
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
|
|
|
|
|
* Sun Oct 10 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-0.1.rc1
|
|
|
|
|
- Update to 4.1.2rc1
|
|
|
|
|
|
|
|
|
|
* Fri Sep 03 2021 Sandro Mani <manisandro@gmail.com> - 4.1.1-4
|
|
|
|
|
- Also own %%{_libdir}/%%{name}/lib/cmake/
|
|
|
|
|
|
|
|
|
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.1.1-2
|
|
|
|
|
- Rebuilt for Python 3.10
|
|
|
|
|
|
|
|
|
|
* Tue Apr 27 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-1
|
|
|
|
|
- Update to 4.1.1
|
|
|
|
|
|
|
|
|
|
* Mon Apr 05 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.2.rc2
|
|
|
|
|
- Update to 4.1.1rc2
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
|
|
|
|
|
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-4
|
|
|
|
|
- Add upstream patch to fix AVX library linkage
|
|
|
|
|
|
|
|
|
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.0-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-2
|
|
|
|
|
- Use set_build_flags macro
|
|
|
|
|
- Drop old opt_ macros
|
|
|
|
|
|
|
|
|
|
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-1
|
|
|
|
|
- Update to 4.1.0
|
|
|
|
|
|
|
|
|
|
* Wed Sep 23 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-2
|
|
|
|
|
- Rebuild for libevent 2.1.12
|
|
|
|
|
|
|
|
|
|
* Wed Sep 02 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-1
|
|
|
|
|
- Update to 4.0.5
|
|
|
|
|
|
|
|
|
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.4-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 4.0.4-2
|
|
|
|
|
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
|
|
|
|
|
|
|
|
|
|
* Wed Jun 17 2020 Orion Poplawski <orion@nwra.com> - 4.0.4-1
|
|
|
|
|
- Update to 4.0.4
|
|
|
|
|
|
|
|
|
|