代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/openmpi 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Name: openmpi
Version: 4.1.5
Release: 4
Summary: Open Source High Performance Computing
License: BSD-3-Clause
URL: http://www.open-mpi.org/
Source0: https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-%{version}.tar.bz2
Source1: openmpi.module.in
Source2: openmpi.pth.py3
Source3: macros.openmpi
Patch1000: add-riscv64-support.patch
%ifarch loongarch64
Patch1001: 0001-add-loongarch64-support-for-openmpi.patch
%endif
BuildRequires: gcc-c++, gcc-gfortran
BuildRequires: valgrind-devel
BuildRequires: hwloc-devel java-devel libfabric-devel papi-devel
BuildRequires: libibverbs-devel >= 1.1.3 opensm-devel > 3.3.0
BuildRequires: librdmacm librdmacm-devel rdma-core-devel pmix-devel
BuildRequires: hwloc-gui chrpath
BuildRequires: perl-generators perl(Getopt::Long)
BuildRequires: python3-devel libevent-devel
BuildRequires: automake libtool
%ifarch x86_64
BuildRequires: infinipath-psm-devel, libpsm2-devel zlib-devel
%endif
%ifarch loongarch64
BuildRequires: automake
%endif
Provides: mpi, %{name}-java
Requires: environment(modules), openssh-clients
Provides: bundled(libevent) = 2.0.22
Requires: java-headless
Obsoletes: %{name}-java
%description
The Open MPI Project is an open source Message Passing Interface
implementation that is developed and maintained by a consortium
of academic, research, and industry partners. Open MPI is
therefore able to combine the expertise, technologies, and
resources from all across the High Performance Computing
community in order to build the best MPI library available.
%ifarch aarch64
%global name_all openmpi-aarch64
%elifarch riscv64
%global name_all openmpi-riscv64
%elifarch ppc64le
%global name_all openmpi-ppc64le
%else
%global name_all openmpi-x86_64
%endif
#%global namearch openmpi-%{_arch}
%package devel
Summary: Development files for openmpi
Requires: %{name} = %{version}-%{release}, gcc-gfortran
Provides: mpi-devel
Requires: java-devel
Provides: %{name}-java-devel
Obsoletes: %{name}-java-devel
%description devel
This contains dynamic libraries and header files for the developing of openmpi.
%package -n python3-openmpi
Summary: openmpi python3 interface
Requires: %{name} = %{version}-%{release}
%description -n python3-openmpi
openmpi python3 interface
%package help
Summary: Including man files for openmpi
Requires: man
%description help
This contains man files for the using of openmpi.
%prep
%autosetup -n openmpi-%{version} -p1
./autogen.pl --force
%build
./configure \
--bindir=%{_bindir} \
--libdir=%{_libdir}/%{name}/lib \
--datadir=%{_libdir}/%{name}/share \
--docdir=%{_libdir}/%{name}/share/doc/openmpi \
--includedir=%{_includedir}/%{name_all} \
--sysconfdir=%{_sysconfdir}/%{name_all} \
--disable-silent-rules \
--enable-builtin-atomics \
--enable-memchecker \
--enable-mpi-thread-multiple \
--enable-mpi-cxx \
--enable-mpi-java \
--enable-mpi1-compatibility \
--with-sge \
--enable-memchecker \
--with-hwloc=/usr \
--with-pmix=external \
--with-libevent=external \
--mandir=%{_mandir}/%{name_all} \
CFLAGS="$RPM_OPT_FLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS" \
FC=gfortran \
FCFLAGS="$RPM_OPT_FLAGS" \
LDFLAGS="-Wl,-z,now"
%make_build
%install
%make_install
find %{buildroot}%{_libdir}/%{name}/lib -name \*.la -delete
find %{buildroot}%{_mandir}/%{name_all} -type f -exec gzip -9 {} \;
ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{name_all}/man1/mpiCC.1.gz
rm %{buildroot}%{_mandir}/%{name_all}/man1/mpiCC.1
mkdir %{buildroot}%{_mandir}/%{name_all}/man{2,4,5,6,8,9,n}
mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi
sed 's#@LIBDIR@#%{_libdir}/%{name}#;
s#@ETCDIR@#%{_sysconfdir}/%{name_all}#;
s#@FMODDIR@#%{_fmoddir}/%{name}#;
s#@INCDIR@#%{_includedir}/%{name_all}#;
s#@MANDIR@#%{_mandir}/%{name_all}#;
s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#;
s#@COMPILER@#openmpi-%{_arch}#;
s#@SUFFIX@#_openmpi#' \
<%{SOURCE1} \
>%{buildroot}%{_datadir}/modulefiles/mpi/%{name_all}
install -Dpm 644 %{SOURCE3} %{buildroot}/%{rpmmacrodir}/macros.%{name_all}
install -d %{buildroot}%{_fmoddir}/%{name}
for mod in %{buildroot}%{_libdir}/%{name}/lib/*.mod
do
modname=$(basename $mod)
ln -s ../../../%{name}/lib/${modname} %{buildroot}/%{_fmoddir}/%{name}/
done
install -d %{buildroot}%{_libdir}/pkgconfig
pushd %{buildroot}%{_libdir}/pkgconfig
ln -s ../%{name}/lib/pkgconfig/*.pc .
popd
sed -i -e s/-ldl// -e s/-lhwloc// \
%{buildroot}%{_libdir}/%{name}/share/%{name}/*-wrapper-data.txt
install -d %{buildroot}/%{python3_sitearch}/%{name}
install -pDm0644 %{SOURCE2} %{buildroot}/%{python3_sitearch}/openmpi.pth
file `find %{buildroot}%{_libdir}/openmpi/bin -type f` | grep -w ELF | awk -F : '{print $1}' |xargs chrpath -d
file `find %{buildroot}%{_libdir}/openmpi/lib -type f` | grep -w ELF | awk -F : '{print $1}' |xargs chrpath -d
mkdir -p %{buildroot}/etc/ld.so.conf.d
echo "%{_libdir}/openmpi/lib" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%check
make check
%files
%license LICENSE opal/mca/event/libevent2022/libevent/LICENSE
%dir %{_libdir}/%{name}
%dir %{_sysconfdir}/%{name_all}
%dir %{_libdir}/%{name}/lib
%dir %{_libdir}/%{name}/lib/openmpi
%dir %{_mandir}/%{name_all}
%dir %{_mandir}/%{name_all}/man*
%dir %{_libdir}/%{name}/share
%dir %{_libdir}/%{name}/share/openmpi
%config(noreplace) %{_sysconfdir}/%{name_all}/*
%config(noreplace) /etc/ld.so.conf.d/*
%{_datadir}/modulefiles/mpi/
%{_bindir}/mpiexec
%{_bindir}/mpirun
%{_bindir}/ompi*
%{_bindir}/orte-*
%{_bindir}/orted
%{_bindir}/orterun
%{_libdir}/%{name}/lib/*.so.*
%{_libdir}/%{name}/lib/openmpi/*
%{_libdir}/%{name}/lib/mpi.jar
%{_libdir}/%{name}/share/openmpi/help*.txt
%{_libdir}/%{name}/share/openmpi/amca-param-sets
%{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini
%files devel
%dir %{_includedir}/%{name_all}
%{_includedir}/%{name_all}/*
%{_libdir}/%{name}/share/doc/
%{_bindir}/mpic*
%{_bindir}/mpiCC
%{_bindir}/mpif*
%{_bindir}/opal*
%{_bindir}/ortecc
%{_bindir}/aggregate_profile.pl
%{_bindir}/profile2mat.pl
%{_bindir}/mpijava*
%{_libdir}/%{name}/lib/*.so
%{_libdir}/%{name}/lib/*.mod
%{_libdir}/%{name}/lib/pkgconfig/
%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
%{_libdir}/pkgconfig/*.pc
%{_fmoddir}/%{name}/
%{rpmmacrodir}/macros.%{name_all}
%files -n python3-openmpi
%dir %{python3_sitearch}/%{name}
%{python3_sitearch}/openmpi.pth
%files help
%{_mandir}/%{name_all}/man*/*
%changelog
* Tue Jan 16 2024 peng.zou <[email protected]> - 4.1.5-4
- Add ppc64le support
* Wed Jan 10 2024 xu_ping<[email protected]> - 4.1.5-3
- fix build error due to rdma-core separate some packages.
* Thu Jul 20 2023 Wenlong Zhang<[email protected]> - 4.1.5-2
- fix build error that automake can not be found
* Fri Apr 21 2023 wulei <[email protected]> - 4.1.5-1
- Upgrade package to version 4.1.5
* Tue Jan 03 2023 misaka00251 <[email protected]> - 4.1.4-3
- Add riscv64 support, patch from lvxiaoqian@iscas
* Fri Jul 29 2022 wangkai <[email protected]> - 4.1.4-2
- Reslove conflict with pmix-devel and update license
* Mon Jun 20 2022 wulei <[email protected]> - 4.1.4-1
- Upgrade to 4.1.1
* Thu Sep 9 2021 Pengju Jiang <[email protected]> - 2.1.1-20
- solve the strip and rpath problem of safe conversion
* Mon Nov 2 2020 wangxiao <[email protected]> - 2.1.1-19
- delete unnessary file
* Wed Oct 21 2020 wangxiao <[email protected]> - 2.1.1-18
- drop python2 subpackage
* Thu Sep 10 2020 Guoshuai Sun <[email protected]> - 2.1.1-17
- As rpm-mpi-hooks is not in buildrequire,we shouldn't pull it in devel packages
* Sat Jun 20 2020 Senlin Xia <[email protected]> - 2.1.1-16
- remove unnecessary buildrequire: rpm-mpi-hooks
* Tue Nov 26 2019 openEuler Buildteam <[email protected]> - 2-1.1-15
- Package init
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。