1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

net/openmpi: upgrade to v5.0.1

Release notes available at
	<https://www-lb.open-mpi.org/software/ompi/major-changes.php>.

Notes:
- The MPI C++ bindings were deprecated in the MPI-2.2 standard in 2009, and
  removed from the MPI-3.0 standard in 2012.  The MPI C++ bindings were then
  removed from Open MPI v5.0.0 in 2022;

- ofi (libfabric) was explicitly disabled in this port - I don’t know why
  but kept it this way;

- ROMIO has been disabled (See <https://github.com/open-mpi/ompi/issues/9715>);

- 32 bits platforms are not supported: this port has been repocopied to
  net/openmpi4 for them.
This commit is contained in:
Thierry Thomas 2024-01-26 10:27:16 +01:00
parent 3e61f8fcd4
commit 0728e016e0
5 changed files with 2513 additions and 475 deletions

View File

@ -1,8 +1,7 @@
PORTNAME= openmpi
PORTVERSION= 4.1.5
PORTREVISION= 4
PORTVERSION= 5.0.1
CATEGORIES= net parallel
MASTER_SITES= http://www.open-mpi.org/software/ompi/v${PORTVERSION:R}/downloads/
MASTER_SITES= https://download.open-mpi.org/release/open-mpi/v${PORTVERSION:R}/
MAINTAINER= ports@FreeBSD.org
COMMENT= High Performance Message Passing Library
@ -11,50 +10,52 @@ WWW= https://www.open-mpi.org/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
NOT_FOR_ARCHS= armv6 armv7 i386 powerpc
NOT_FOR_ARCHS_REASON= Not supported on 32-bits - see net/openmpi4
LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 \
libltdl.so:devel/libltdl \
libevent.so:devel/libevent \
libmunge.so:security/munge
libmunge.so:security/munge \
libze_loader.so:devel/level-zero
# :keepla because port uses lt_dlopen
USES= fortran gmake libtool:keepla localbase perl5 \
USES= compiler:c11 fortran gmake libtool:keepla localbase perl5 \
pkgconfig shebangfix tar:bzip2
HAS_CONFIGURE= yes
CONFLICTS_INSTALL= openmpi4-4*
USE_PERL5= build
MPIBASE?= mpi
MPIDIR?= ${MPIBASE}/${PKGBASE}
PLIST_SUB+= MPIBASE=${MPIBASE}
PLIST_SUB+= MPIDIR=${MPIDIR}
# Workaround for https://github.com/open-mpi/ompi/issues/7516
CONFIGURE_ENV+= DISABLE_gds_ds12=1 DISABLE_gds_ds21=1
CONFIGURE_ARGS+= --prefix=${PREFIX}/${MPIDIR} \
--mandir=${PREFIX}/${MPIDIR}/share/man \
--program-prefix= \
GNU_CONFIGURE= yes
GNU_CONFIGURE_PREFIX= ${PREFIX}/${MPIDIR}
GNU_CONFIGURE_MANPREFIX=${PREFIX}/${MPIDIR}/share
CONFIGURE_ARGS+= --program-prefix= \
--with-hwloc=external \
--with-libltdl \
--without-ofi \
--enable-mpi-fortran=usempi \
--enable-mpi-cxx \
--enable-cxx-exceptions \
--enable-mpi-fortran=usempif08 \
--with-libevent=external \
--enable-mca-no-build=verbs,btl_openib,oob_ud \
--without-verbs \
--with-wrapper-ldflags=-Wl,-rpath=-Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \
ompi_cv_fortran_ignore_tkr_data=0
--with-wrapper-ldflags=-Wl,-rpath=-Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER}
CFLAGS+= ${CFLAGS_F2018}
# See <https://github.com/open-mpi/ompi/issues/9715>
CONFIGURE_ARGS+= --disable-io-romio
USE_LDCONFIG= ${PREFIX}/${MPIDIR}/lib
TEST_TARGET= check
MANDIRS= ${PREFIX}/${MPIDIR}/share/man
SHEBANG_FILES= ompi/mca/common/monitoring/profile2mat.pl \
ompi/mca/common/monitoring/aggregate_profile.pl
OPTIONS_DEFINE= AVX DEBUG IPV6 SLURM TORQUE
OPTIONS_DEFINE= AVX DEBUG DOCS IPV6 SLURM TORQUE
OPTIONS_DEFAULT= SLURM
OPTIONS_EXCLUDE_aarch64= AVX
OPTIONS_EXCLUDE_armv6= AVX SLURM
@ -77,33 +78,20 @@ AVX_CONFIGURE_OFF= --enable-mca-no-build=op-avx
DEBUG_CONFIGURE_ENABLE= debug
DEBUG_INSTALL_TARGET_OFF= install-strip
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}recommonmark>0:textproc/py-recommonmark@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
DOCS_USES= python:build
IPV6_CONFIGURE_ENABLE= ipv6
TORQUE_CONFIGURE_WITH= tm
TORQUE_LIB_DEPENDS= libtorque.so:sysutils/torque
TORQUE_PLIST_FILES= ${MPIDIR}/lib/openmpi/mca_plm_tm.so \
${MPIDIR}/lib/openmpi/mca_plm_tm.la \
${MPIDIR}/lib/openmpi/mca_ras_tm.la \
${MPIDIR}/lib/openmpi/mca_ras_tm.so \
${MPIDIR}/lib/openmpi/mca_ess_tm.so \
${MPIDIR}/lib/openmpi/mca_ess_tm.la \
${MPIDIR}/share/openmpi/help-plm-tm.txt \
${MPIDIR}/share/openmpi/help-ras-tm.txt
SLURM_CONFIGURE_WITH= slurm
SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
SLURM_PLIST_FILES= ${MPIDIR}/lib/openmpi/mca_ess_slurm.la \
${MPIDIR}/lib/openmpi/mca_ess_slurm.so \
${MPIDIR}/lib/openmpi/mca_plm_slurm.la \
${MPIDIR}/lib/openmpi/mca_plm_slurm.so \
${MPIDIR}/lib/openmpi/mca_ras_slurm.la \
${MPIDIR}/lib/openmpi/mca_ras_slurm.so \
${MPIDIR}/lib/openmpi/mca_schizo_slurm.la \
${MPIDIR}/lib/openmpi/mca_schizo_slurm.so \
${MPIDIR}/share/openmpi/help-plm-slurm.txt \
${MPIDIR}/share/openmpi/help-ras-slurm.txt
.include <bsd.port.options.mk>
.include <bsd.port.pre.mk>
.if ${FORTRAN_DEFAULT} == gfortran && ${GCC_DEFAULT} >= 10
FCFLAGS+= -fallow-argument-mismatch
@ -115,17 +103,19 @@ PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE="@comment "
PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE=""
.endif
post-patch:
@${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${LOCALBASE}/libdata/pkgconfig|g' \
${WRKSRC}/ompi/tools/wrappers/Makefile.am \
${WRKSRC}/ompi/tools/wrappers/Makefile.in \
${WRKSRC}/opal/tools/wrappers/Makefile.am \
${WRKSRC}/opal/tools/wrappers/Makefile.in \
${WRKSRC}/orte/tools/wrappers/Makefile.am \
${WRKSRC}/orte/tools/wrappers/Makefile.in \
${WRKSRC}/opal/mca/pmix/pmix3x/pmix/Makefile.am \
${WRKSRC}/opal/mca/pmix/pmix3x/pmix/Makefile.in
@${REINPLACE_CMD} 's|define MCA_hwloc_external_.*header "|&${LOCALBASE}/include/|' \
${WRKSRC}/configure
.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 170
PLIST_SUB+= SHORTFLOAT=""
.else
PLIST_SUB+= SHORTFLOAT="@comment "
.endif
.include <bsd.port.mk>
LIBDIR2FIX= oshmem/tools/wrappers opal/tools/wrappers \
3rd-party/openpmix ompi/tools/wrappers
pre-configure:
.for d in ${LIBDIR2FIX}
${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${LOCALBASE}/libdata/pkgconfig|g' \
${WRKSRC}/${d}/Makefile.in
.endfor
.include <bsd.port.post.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1677228694
SHA256 (openmpi-4.1.5.tar.bz2) = a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3
SIZE (openmpi-4.1.5.tar.bz2) = 10045426
TIMESTAMP = 1705771645
SHA256 (openmpi-5.0.1.tar.bz2) = e357043e65fd1b956a47d0dae6156a90cf0e378df759364936c1781f1a25ef80
SIZE (openmpi-5.0.1.tar.bz2) = 29740669

View File

@ -1,20 +0,0 @@
--- opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c.orig 2020-04-12 11:49:10 UTC
+++ opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c
@@ -79,6 +79,9 @@ static int _mmap_segment_create(pmix_pshmem_seg_t *sm_
if (0 != (rc = posix_fallocate(sm_seg->seg_id, 0, size))) {
pmix_output_verbose(2, pmix_globals.debug_output,
"sys call posix_fallocate(2) fail\n");
+ if (EINVAL == rc) {
+ goto ftruncate;
+ }
if (ENOSPC == rc) {
rc = PMIX_ERR_OUT_OF_RESOURCE;
goto out;
@@ -98,6 +101,7 @@ static int _mmap_segment_create(pmix_pshmem_seg_t *sm_
goto map_memory;
}
#endif
+ftruncate:
if (0 != ftruncate(sm_seg->seg_id, size)) {
pmix_output_verbose(2, pmix_globals.debug_output,
"sys call ftruncate(2) fail\n");

View File

@ -1,8 +1,12 @@
Open MPI is a project combining technologies and resources from several
other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to
build the best MPI library available. A completely new MPI-2 compliant
build the best MPI library available. A completely new MPI-3.1 compliant
implementation, Open MPI offers advantages for system and software
vendors, application developers and computer science researchers.
Open MPI is based on an open component architecture allowing modular
replacement of many system components without recompilation.
On 32 bits platforms, please see the legacy version net/openmpi4.
See also <https://github.com/open-mpi/ompi>.

File diff suppressed because it is too large Load Diff