Import Debian changes 4.1.4-ok1

openmpi (4.1.4-ok1) yangtze; urgency=low

  * Initial release.
This commit is contained in:
Luoyaoming 2022-11-01 09:30:50 +08:00 committed by luoyaoming
parent b5b9027bc8
commit dd2dce49aa
51 changed files with 29863 additions and 0 deletions

26
debian/README.Debian vendored Normal file
View File

@ -0,0 +1,26 @@
Please be aware that as of release 4.1.0-5, Debian now sets the following:
OMPI_MCA_btl_base_warn_component_unused=0
btl = ^uct,openib
pml = ^ucx
osc = ^ucx
This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured
but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems
and turning this off prevents spurious warnings that were breaking higher-level libraries and
applications.
However the Libfabric EFA provider currently does not support applications calling fork()
when memory registrations are handled by the EFA provider. This is to prevent applications
from encountering potential data corruption or crashes when operating in this mode.
Most applications, including the majority of MPI and NCCL applications, will still function
with this constraint. Some applications do require fork() support, however,
these applications do not require memory registrations to be handled by the EFA provider.
If you wish to use OpenIB and know the application to be safe, comment out the exclude line.
Similarly, UCX is disabled by default as it gives spurious errors on missing RDMA fabric.
Please enable this if you have the appropriate hardware.
-- Alastair McKinstry <mckinstry@debian.org>, 2021-01-14

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
openmpi (4.1.4-ok1) yangtze; urgency=low
* Initial release.
-- Luoyaoming <luoyaoming@kylinos.cn> Tue, 01 Nov 2022 09:30:50 +0800

142
debian/control vendored Normal file
View File

@ -0,0 +1,142 @@
Source: openmpi
Section: net
Priority: optional
Maintainer: Openkylin Developers <packaging@lists.openkylin.top>
XSBC-Original-Maintainer: Alastair McKinstry <mckinstry@debian.org>
Uploaders: Luo Yaoming <luoyaoming@kylinos.cn>
Build-Depends: dpkg-dev (>= 1.16.1~),
dh-sequence-fortran-mod,
debhelper-compat (= 13),
libevent-dev,
libpmix-dev,
libucx-dev [amd64 arm64 ppc64el],
zlib1g-dev,
gfortran,
libhwloc-dev,
pkg-config,
libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !i386],
libfabric-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !sh4 !powerpc !x32 !i386],
libnuma-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
libpsm-infinipath1-dev [amd64 i386],
libpsm2-dev [amd64],
default-jdk [!hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !alpha !ppc64 !sparc64] <!nojava>,
flex
Build-Conflicts: libmpich-dev, libopenmpi-dev
Standards-Version: 4.6.1
Homepage: https://www.open-mpi.org/
Vcs-Browser: https://gitee/openkylin/openmpi
Vcs-Git: https://gitee/openkylin/openmpi.git
Package: openmpi-bin
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (>= ${source:Version}),
openssh-client | ssh-client
Conflicts: openmpi-bin
Multi-Arch: foreign
Breaks:
libopenmpi-dev (<< 4.0.5-0),
mpich (<< 3.3~b1-0),
libmpich-dev (<< 3.3~b1-0),
lam4-dev (<< 7.1.4-0),
Replaces: libopenmpi-dev (<< 4.0.5-0),
Suggests: gfortran | fortran-compiler
Description: high performance message passing library -- binaries
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-3.1 compliant implementation, Open
MPI offers advantages for system and software vendors, application developers
and computer science researchers.
.
Features:
* Full MPI-3.1 standards conformance
* Thread safety and concurrency
* Dynamic process spawning
* High performance on all platforms
* Reliable and fast job management
* Network and process fault tolerance
* Support network heterogeneity
* Single library supports all networks
* Run-time instrumentation
* Many job schedulers supported
* Internationalized error messages
* Component-based design, documented APIs
.
This package contains the Open MPI utility programs.
Package: libopenmpi-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}, ${misc:Depends},
libopenmpi3 (= ${binary:Version}),
openmpi-common (>= ${source:Version}),
libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !i386], libhwloc-dev,
libevent-dev,
libpmix-dev,
libjs-jquery,
libjs-jquery-ui,
zlib1g-dev,
openmpi-bin (>= 3.0.0-0)
Recommends: libcoarrays-openmpi-dev
Conflicts: libopenmpi-dev
Breaks:
openmpi-doc (<< 4.1.2~rc1-0),
lam4-dev (<< 7.1.4-0),
Suggests: openmpi-doc
Description: high performance message passing library -- header files
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-3 compliant implementation, Open
MPI offers advantages for system and software vendors, application developers
and computer science researchers.
.
This package contains the header files and compiler wrappers which are needed
to compile and link programs against libopenmpi.
Package: libopenmpi3
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}, ${misc:Depends}, libhwloc-plugins, libpmix2
Breaks: gromacs-openmpi (<< 2020~beta2-0), libeztrace0 (<< 1.1-8-0), starpu-contrib-examples (<< 1.3.2+dfsg-0), starpu-examples (<< 1.3.2+dfsg-0)
Description: high performance message passing library -- shared library
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-3.1 compliant implementation, Open
MPI offers advantages for system and software vendors, application developers
and computer science researchers.
.
This package contains the Open MPI shared libraries.
Package: openmpi-common
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}
Conflicts: openmpi-common
Description: high performance message passing library -- common files
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-3.1 compliant implementation, Open
MPI offers advantages for system and software vendors, application developers
and computer science researchers.
.
This package contains platform independent files for Open MPI.
Package: openmpi-doc
Section: doc
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}, libjs-jquery-ui
Conflicts: mpi-doc, lam-mpidoc, lam4-dev, openmpi-doc
Replaces: libopenmpi-dev (<< 4.1.2~rc1-0)
Breaks: libopenmpi-dev (<< 4.1.2~rc1-0)
Description: high performance message passing library -- man pages
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-3.1 compliant implementation, Open
MPI offers advantages for system and software vendors, application developers
and computer science researchers.
.
This package contains man pages describing the Message Passing Interface
standard.

17981
debian/copyright vendored Normal file

File diff suppressed because it is too large Load Diff

5
debian/gbp.conf vendored Normal file
View File

@ -0,0 +1,5 @@
[DEFAULT]
debian-branch = debian/latest
pristine-tar = False
upstream-branch = upstream/latest
upstream-tag = upstream/%(version)s

26
debian/libopenmpi-dev.README.Debian vendored Normal file
View File

@ -0,0 +1,26 @@
Open MPI for Debian - Developer Notes
-------------------------------------
MPI Alternatives
----------------
The current Open MPI version of Debian uses the Debian Alternatives system.
Although Open MPI might replace most of the existing MPI implementations in the
future (see http://www.open-mpi.org/faq/?category=general#why), we decided to
not affect any other MPI implementation already installed on your system.
You can setup Open MPI as default MPI implementation by selecting openmpi as
the "mpi" alternative:
update-alternatives --config mpi
Please note that there is a bug in update-alternatives (namely #388313) that
may cause trouble when you install several development packages of other
MPI implementations, i.e. LAM or MPICH.
If you would like to build Debian packages that link against multiple MPI
implementations, we recommend to point your build system to the locations
under /usr/lib instead of relying on update-alternatives. This may also allow
parallel builds.
-- Debian Open MPI Team <pkg-openmpi-maintainers@lists.alioth.debian.org>, Mon, 21 Jul 2008 16:34:30 +0200

1
debian/libopenmpi-dev.dirs vendored Normal file
View File

@ -0,0 +1 @@
/usr/share/man/man1

1
debian/libopenmpi-dev.fortran-mod vendored Normal file
View File

@ -0,0 +1 @@
/usr/lib/*/openmpi/lib/*.mod openmpi

7
debian/libopenmpi-dev.install vendored Normal file
View File

@ -0,0 +1,7 @@
## Library headers
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/*
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/* /usr/lib/${DEB_HOST_MULTIARCH}/fortran/${env:GFORTRAN_VERSION}/openmpi
## .so symlinks
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/lib*.so
## pkg-config .pc files
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/*.pc

46
debian/libopenmpi-dev.links vendored Normal file
View File

@ -0,0 +1,46 @@
## SONAME symlinks
/usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_mpifh.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempif08.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempi_ignore_tkr.so
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so
## Convenience link for header files, see bug #493875
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/ usr/include/${DEB_HOST_MULTIARCH}/openmpi
# pkg-config
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-fort.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-fort.pc
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/orte.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/orte.pc
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi.pc
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-c.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-c.pc
# opal.pc bug #814515: opal.pc conflicts with libopal-dev
#usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/opal.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/opal.pc
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-cxx.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-cxx.pc
# Historical links; use $LIBDIR/openmpi/lib instead
# libmpi.so is handled by the mpi-${DEB_HOST_MULTIARCH} alternative
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so
# JS
#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js
#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.3.1.js
#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css
#/usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js
#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css
#/usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js

18
debian/libopenmpi-dev.postinst.in vendored Normal file
View File

@ -0,0 +1,18 @@
#!/bin/sh
set -e
if [ "$1" = "configure" ]; then
update-alternatives \
--install /usr/include/@DEB_HOST_MULTIARCH@/mpi mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include 50 \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi.so libmpi.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi.so \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi++.so libmpi++.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi_cxx.so \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi.pc mpi.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi.pc \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-fort.pc mpi-fort.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-fort.pc \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-c.pc mpi-c.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-c.pc \
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-cxx.pc mpi-cxx.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-cxx.pc
fi
#DEBHELPER#

12
debian/libopenmpi-dev.prerm.in vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -e
# do not touch the alternative while being deconfigured
# this is a M-A:same package which gets regularily deconfigured
# during upgrades if multiple architectures are installed
if [ "$1" = "remove" ]; then
update-alternatives --remove mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include
fi
#DEBHELPER#

14
debian/libopenmpi3.install vendored Normal file
View File

@ -0,0 +1,14 @@
# Shared libraries
usr/lib/*/openmpi/lib/libmpi_mpifh*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libmpi_usempif08*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libmpi_usempi_ignore_tkr*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libmca_common_sm.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libmpi_cxx.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libmpi.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libompitrace.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libopen-pal.so.* /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/*/openmpi/lib/libopen-rte.so.* /usr/lib/${DEB_HOST_MULTIARCH}
## Plugins
usr/lib/*/openmpi/lib/openmpi3/*.so
# usr/lib/*/openmpi/lib/libopen-orted-mpir.so
usr/lib/*/openmpi/lib/ompi_monitoring_prof.so

14
debian/libopenmpi3.links vendored Normal file
View File

@ -0,0 +1,14 @@
# Compatibility links to /usr/bin
# SONAME symlinks
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40.30.4 usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40

46
debian/not-installed vendored Normal file
View File

@ -0,0 +1,46 @@
/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/openmpi3/*.la
/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/*.la
# Installed, but dh_install doesn't handle the mv well
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so.50
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/liboshmem.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ompio.so.41
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ucx.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_java.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_verbs.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so.40
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/mpi.jar
usr/bin/shmemrun
usr/bin/mpirun.openmpi
usr/bin/oshrun
usr/share/man/man1/ompi-server.1
usr/share/man/man1/mpijavac.1
usr/share/man/man1/oshc++.1
usr/share/man/man1/orte-info.1
usr/share/man/man1/oshcxx.1
usr/share/man/man1/shmemCC.1
usr/share/man/man1/shmemcc.1
usr/share/man/man1/shmemfort.1
usr/share/man/man1/shmemcxx.1
usr/share/man/man1/orte-server.1
usr/share/man/man1/oshmem_info.1
usr/share/man/man1/shmemrun.1
usr/share/man/man1/oshcc.1
usr/share/man/man1/oshrun.1
usr/share/man/man1/oshCC.1
usr/share/man/man1/oshfort.1
usr/share/man/man1/shmemc++.1
### TODO:
# Need to handle binary-indep builds with dh_missing
/usr/bin/*
/usr/lib/*/openmpi/lib/*
usr/share/pmix/*
# These will not be installed on binary-only builds
usr/share/doc/openmpi/javadoc-openmpi/*

52
debian/openmpi-bin.README.Debian vendored Normal file
View File

@ -0,0 +1,52 @@
Open MPI for Debian
-------------------
InfiniBand support
------------------
InfiniBand and UCX support is build into the package and enabled by default.
On Debian, OpenMPI sets the following:
OMPI_MCA_btl_base_warn_component_unused=0
btl = ^uct,openib
pml = ^ucx
osc = ^ucx
This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured
but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems
and turning this off prevents spurious warnings that were breaking higher-level libraries and
applications.
However the Libfabric EFA provider currently does not support applications calling fork()
when memory registrations are handled by the EFA provider. This is to prevent applications
from encountering potential data corruption or crashes when operating in this mode.
Most applications, including the majority of MPI and NCCL applications, will still function
with this constraint. Some applications do require fork() support, however,
these applications do not require memory registrations to be handled by the EFA provider.
If you wish to use OpenIB and know the application to be safe, comment out the exclude line.
Please see https://github.com/ofiwg/libfabric/issues/6332 for details.
Similarly UCX is disabled due to spurious warnings about missing devices on systems without RDMA.
Please enable as required.
MPI Alternatives
----------------
The current Open MPI version of Debian uses the Debian Alternatives system.
Open MPI is considered the default MPI implementation in Debian. MPICH2 is
also available. You can check which MPI is the default on your system with
update-alternatives --list mpirun
and list all installed implementations with
update-alternatives --display mpirun
If you have several implementations installed and Open MPI is not the default
on your system, you can enable it explicitly with
update-alternatives --set mpirun /usr/bin/mpirun.openmpi
-- Alastair McKinstry <mckinstry@debian.org>, Sat, 9 Jan 2021 13:34:35 +0000

1
debian/openmpi-bin.dirs vendored Normal file
View File

@ -0,0 +1 @@
usr/share/man/man1

41
debian/openmpi-bin.install vendored Normal file
View File

@ -0,0 +1,41 @@
## Configuration files
etc/openmpi/*
## Executables
usr/bin/aggregate_profile
usr/bin/profile2mat
usr/bin/ompi-clean
usr/bin/ompi_info
usr/bin/ompi-server
usr/bin/orte-server
usr/bin/orte-clean
usr/bin/orted
usr/bin/orterun
usr/bin/orte-info
usr/bin/ortecc
usr/bin/mpiexec.openmpi
usr/bin/mpirun.openmpi
## Compiler wrappers (symlinks) and man pages
usr/bin/mpic++.openmpi
usr/share/man/man1/mpic++.openmpi.1
usr/bin/mpicc.openmpi
usr/share/man/man1/mpicc.openmpi.1
usr/bin/mpiCC.openmpi
# NOTE: mpiCC.openmpi.1 is installed as symlink
usr/bin/mpicxx.openmpi
usr/share/man/man1/mpicxx.openmpi.1
usr/bin/mpif77.openmpi
usr/share/man/man1/mpif77.openmpi.1
usr/bin/mpif90.openmpi
usr/share/man/man1/mpif90.openmpi.1
usr/bin/mpifort.openmpi
usr/share/man/man1/mpifort.openmpi.1
usr/bin/opalc++
usr/share/man/man1/opalc++.1
usr/bin/opalcc
usr/share/man/man1/opalcc.1
## Wrappers and man pages
usr/bin/opal_wrapper
usr/share/man/man1/opal_wrapper.1
# NOTE: There's no man page for opal_wrapper_script (upstream, lintian warning)
usr/share/man/man1/ompi-server.1
usr/share/man/man1/orte-info.1

9
debian/openmpi-bin.links vendored Normal file
View File

@ -0,0 +1,9 @@
usr/share/man/man1/mpiexec.openmpi.1 usr/share/man/man1/mpirun.openmpi.1
## Man pages (link provided by upstream, needs recreation because of renaming):
usr/share/man/man1/mpic++.openmpi.1 usr/share/man/man1/mpiCC.openmpi.1
# Missing links
usr/share/man/man1/opal_wrapper.1 usr/share/man/man1/opalCC.1
usr/share/man/man1/opal_wrapper.1 usr/share/man/man1/opalc++.1
usr/share/man/man1/opal_wrapper.1 usr/share/man/man1/orteCC.1
usr/share/man/man1/opal_wrapper.1 usr/share/man/man1/ortec++.1
usr/share/man/man1/opal_wrapper.1 usr/share/man/man1/ortecc.1

8
debian/openmpi-bin.manpages vendored Normal file
View File

@ -0,0 +1,8 @@
debian/tmp/usr/share/man/man1/ompi-clean.1
debian/tmp/usr/share/man/man1/ompi_info.1
debian/tmp/usr/share/man/man1/orte-clean.1
debian/tmp/usr/share/man/man1/orted.1
# Note: Those are identical and could by symlinked
debian/tmp/usr/share/man/man1/orterun.1
debian/tmp/usr/share/man/man1/mpiexec.openmpi.1
debian/tmp/usr/share/man/man1/mpirun.openmpi.1

31
debian/openmpi-bin.postinst vendored Normal file
View File

@ -0,0 +1,31 @@
#!/bin/sh
set -e
if [ "$1" = "configure" ]; then
update-alternatives \
--install /usr/bin/mpirun mpirun /usr/bin/mpirun.openmpi 50 \
--slave /usr/share/man/man1/mpirun.1.gz mpirun.1.gz /usr/share/man/man1/mpirun.openmpi.1.gz \
--slave /usr/bin/mpiexec mpiexec /usr/bin/mpiexec.openmpi \
--slave /usr/share/man/man1/mpiexec.1.gz mpiexec.1.gz /usr/share/man/man1/mpiexec.openmpi.1.gz
update-alternatives \
--install /usr/bin/mpicc mpi /usr/bin/mpicc.openmpi 50 \
--slave /usr/bin/mpic++ mpic++ /usr/bin/mpic++.openmpi \
--slave /usr/bin/mpicxx mpicxx /usr/bin/mpic++.openmpi \
--slave /usr/bin/mpiCC mpiCC /usr/bin/mpic++.openmpi \
--slave /usr/bin/mpif77 mpif77 /usr/bin/mpif77.openmpi \
--slave /usr/bin/mpif90 mpif90 /usr/bin/mpif90.openmpi \
--slave /usr/bin/mpifort mpifort /usr/bin/mpifort.openmpi \
--slave /usr/share/man/man1/mpicc.1.gz mpicc.1.gz /usr/share/man/man1/mpicc.openmpi.1.gz \
--slave /usr/share/man/man1/mpic++.1.gz mpic++.1.gz /usr/share/man/man1/mpic++.openmpi.1.gz \
--slave /usr/share/man/man1/mpicxx.1.gz mpicxx.1.gz /usr/share/man/man1/mpicxx.openmpi.1.gz \
--slave /usr/share/man/man1/mpiCC.1.gz mpiCC.1.gz /usr/share/man/man1/mpiCC.openmpi.1.gz \
--slave /usr/share/man/man1/mpif77.1.gz mpif77.1.gz /usr/share/man/man1/mpif77.openmpi.1.gz \
--slave /usr/share/man/man1/mpif90.1.gz mpif90.1.gz /usr/share/man/man1/mpif90.openmpi.1.gz \
--slave /usr/share/man/man1/mpifort.1.gz mpifort.1.gz /usr/share/man/man1/mpifort.openmpi.1.gz
fi
#DEBHELPER#

10
debian/openmpi-bin.prerm vendored Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh
set -e
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
update-alternatives --remove mpirun /usr/bin/mpirun.openmpi
update-alternatives --remove mpi /usr/bin/mpicc.openmpi
fi
#DEBHELPER#

4
debian/openmpi-common.install vendored Normal file
View File

@ -0,0 +1,4 @@
## Aggregate MCA (AMCA) Parameter Sets
usr/share/openmpi/amca-param-sets/*
## Help files and other stuff
usr/share/openmpi/*

7
debian/openmpi-common.links vendored Normal file
View File

@ -0,0 +1,7 @@
usr/share/openmpi/mpic++-wrapper-data.txt usr/share/openmpi/mpic++.openmpi-wrapper-data.txt
usr/share/openmpi/mpicc-wrapper-data.txt usr/share/openmpi/mpicc.openmpi-wrapper-data.txt
usr/share/openmpi/mpicxx-wrapper-data.txt usr/share/openmpi/mpicxx.openmpi-wrapper-data.txt
usr/share/openmpi/mpiCC-wrapper-data.txt usr/share/openmpi/mpiCC.openmpi-wrapper-data.txt
usr/share/openmpi/mpif77-wrapper-data.txt usr/share/openmpi/mpif77.openmpi-wrapper-data.txt
usr/share/openmpi/mpif90-wrapper-data.txt usr/share/openmpi/mpif90.openmpi-wrapper-data.txt
usr/share/openmpi/mpifort-wrapper-data.txt usr/share/openmpi/mpifort.openmpi-wrapper-data.txt

1
debian/openmpi-doc.install vendored Normal file
View File

@ -0,0 +1 @@
usr/share/man/man7/*

2
debian/openmpi-doc.manpages vendored Normal file
View File

@ -0,0 +1,2 @@
debian/tmp/usr/share/man/man7/*
debian/tmp/usr/share/man/man3/*

152
debian/patches/build_hurd vendored Normal file
View File

@ -0,0 +1,152 @@
Description: Fix build problems on hurd-i386
This patch allows Open MPI to build on Debian GNU/HURD.
.
Also, the memory:linux MCA component is disabled, since its use of POSIX API
in malloc hooks called very early at startup causes troubles.
.
Also changes by Samuel Thibault <sthibault@debian.org>
See bugs.debian.org/846965
Author: Pino Toscano <pino@debian.org>
Forwarded: partially
Last-Update: 2018-10-24
Index: openmpi-4.1.0/opal/util/stacktrace.c
===================================================================
--- openmpi-4.1.0.orig/opal/util/stacktrace.c
+++ openmpi-4.1.0/opal/util/stacktrace.c
@@ -588,8 +588,12 @@ int opal_util_register_stackhandlers (vo
/* Setup the signals to catch */
memset(&act, 0, sizeof(act));
+#ifdef SA_SIGINFO
act.sa_sigaction = show_stackframe;
act.sa_flags = SA_SIGINFO;
+#else
+ act.sa_handler = show_stackframe_handler;
+#endif
#ifdef SA_ONESHOT
act.sa_flags |= SA_ONESHOT;
#else
Index: openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c
===================================================================
--- openmpi-4.1.0.orig/orte/mca/odls/base/odls_base_default_fns.c
+++ openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c
@@ -859,7 +859,11 @@ static int setup_path(orte_app_context_t
* again not match getcwd! This is beyond our control - we are only
* ensuring they start out matching.
*/
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+ basedir = get_current_dir_name();
+#else
getcwd(dir, sizeof(dir));
+#endif
*wdir = strdup(dir);
opal_setenv("PWD", dir, true, &app->env);
/* update the initial wdir value too */
@@ -1068,7 +1072,11 @@ void orte_odls_base_default_launch_local
orte_app_context_t *app;
orte_proc_t *child=NULL;
int rc=ORTE_SUCCESS;
- char basedir[MAXPATHLEN];
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+ char *basedir=NULL;
+#else
+ char basedir[MAXPATHLEN];
+#endif
int j, idx;
int total_num_local_procs = 0;
orte_odls_launch_local_t *caddy = (orte_odls_launch_local_t*)cbdata;
@@ -2064,7 +2072,11 @@ int orte_odls_base_default_restart_proc(
* bouncing around as we execute this app, but we will always return
* to this place as our default directory
*/
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
+ basedir = get_current_dir_name();
+#else
getcwd(basedir, sizeof(basedir));
+#endif
/* find this child's jobdat */
if (NULL == (jobdat = orte_get_job_data_object(child->name.jobid))) {
Index: openmpi-4.1.0/ompi/include/ompi_config.h
===================================================================
--- openmpi-4.1.0.orig/ompi/include/ompi_config.h
+++ openmpi-4.1.0/ompi/include/ompi_config.h
@@ -28,6 +28,10 @@
#include "opal_config.h"
+#ifndef PATH_MAX /* Hurd */
+#define PATH_MAX 65535
+#endif
+
#define OMPI_IDENT_STRING OPAL_IDENT_STRING
/***********************************************************************
Index: openmpi-4.1.0/opal/mca/base/mca_base_var.c
===================================================================
--- openmpi-4.1.0.orig/opal/mca/base/mca_base_var.c
+++ openmpi-4.1.0/opal/mca/base/mca_base_var.c
@@ -51,6 +51,14 @@
#include "opal/util/opal_environ.h"
#include "opal/runtime/opal.h"
+#ifndef MAXPATHLEN /* Hurd */
+#define MAXPATHLEN 65535
+#endif
+
+#ifndef PATH_MAX /* Hurd */
+#define PATH_MAX 65535
+#endif
+
/*
* local variables
*/
Index: openmpi-4.1.0/orte/include/orte_config.h
===================================================================
--- openmpi-4.1.0.orig/orte/include/orte_config.h
+++ openmpi-4.1.0/orte/include/orte_config.h
@@ -26,6 +26,13 @@
#include "opal_config.h"
+#ifndef PATH_MAX /* Hurd */
+#define PATH_MAX 65535
+#endif
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 65535
+#endif
+
#define ORTE_IDENT_STRING OPAL_IDENT_STRING
# if OPAL_C_HAVE_VISIBILITY
Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
===================================================================
--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
+++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
@@ -32,6 +32,10 @@
static ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh);
static ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh);
+#ifndef IOV_MAX
+#define IOV_MAX 1024
+#endif
+
ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh )
{
ssize_t bytes_read=0, ret_code=0;
Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
===================================================================
--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
+++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
@@ -33,6 +33,10 @@
static ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh );
static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh );
+#ifndef IOV_MAX
+#define IOV_MAX 1024
+#endif
+
ssize_t mca_fbtl_posix_pwritev(ompio_file_t *fh )
{
ssize_t bytes_written=0, ret_code=0;

17
debian/patches/fix-underlinking.patch vendored Normal file
View File

@ -0,0 +1,17 @@
Desciption: Fix underlinking
Prevents symbol lookup error: ../openmpi4/mca_mtl_ofi.so:
undefined symbol: fi_dupinfo when linked with --as-needed
Bug-Debian: https://bugs.debian.org/899104
Author: Graham Inggs <ginggs@debian.org>
Last-Update: 2018-05-23
Index: openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am
===================================================================
--- openmpi-4.1.0.orig/ompi/mca/mtl/ofi/Makefile.am
+++ openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am
@@ -1,4 +1,4 @@
-#
+
# Copyright (c) 2013-2015 Intel, Inc. All rights reserved
#
# Copyright (c) 2014-2019 Cisco Systems, Inc. All rights reserved

240
debian/patches/hppa.patch vendored Normal file
View File

@ -0,0 +1,240 @@
Author: Helge Deller <deller@gmx.de>
Description: Support for the HPPA architecture
Bug-Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776730
Last-Updated: 2016-09-04
Forwarded: no
Index: openmpi-4.1.0/config/opal_config_asm.m4
===================================================================
--- openmpi-4.1.0.orig/config/opal_config_asm.m4
+++ openmpi-4.1.0/config/opal_config_asm.m4
@@ -1104,6 +1104,12 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
[AC_MSG_ERROR([No atomic primitives available for $host])])
;;
+ hppa*)
+ opal_cv_asm_arch="HPPA"
+ OPAL_ASM_SUPPORT_64BIT=0
+ OPAL_GCC_INLINE_ASSIGN='"copy 0,%0" : "=&r"(ret)'
+ ;;
+
mips-*|mips64*)
# Should really find some way to make sure that we are on
# a MIPS III machine (r4000 and later)
Index: openmpi-4.1.0/opal/include/opal/sys/architecture.h
===================================================================
--- openmpi-4.1.0.orig/opal/include/opal/sys/architecture.h
+++ openmpi-4.1.0/opal/include/opal/sys/architecture.h
@@ -36,6 +36,7 @@
#define OPAL_X86_64 0030
#define OPAL_POWERPC32 0050
#define OPAL_POWERPC64 0051
+#define OPAL_HPPA 0120
#define OPAL_SPARC 0060
#define OPAL_SPARCV9_32 0061
#define OPAL_SPARCV9_64 0062
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h
===================================================================
--- /dev/null
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h
@@ -0,0 +1,95 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+ * University Research and Technology
+ * Corporation. All rights reserved.
+ * Copyright (c) 2004-2013 The University of Tennessee and The University
+ * of Tennessee Research Foundation. All rights
+ * reserved.
+ * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+ * University of Stuttgart. All rights reserved.
+ * Copyright (c) 2004-2005 The Regents of the University of California.
+ * All rights reserved.
+ * Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
+ * Copyright (c) 2014 Los Alamos National Security, LLC. All rights
+ * reserved.
+ * $COPYRIGHT$
+ *
+ * Additional copyrights may follow
+ *
+ * $HEADER$
+ */
+
+#ifndef OPAL_SYS_ARCH_ATOMIC_H
+#define OPAL_SYS_ARCH_ATOMIC_H 1
+
+/**********************************************************************
+ *
+ * Memory Barriers
+ *
+ *********************************************************************/
+#define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
+
+static inline void opal_atomic_mb(void)
+{
+ __sync_synchronize();
+}
+
+static inline void opal_atomic_rmb(void)
+{
+ __sync_synchronize();
+}
+
+static inline void opal_atomic_wmb(void)
+{
+ __sync_synchronize();
+}
+
+#if OPAL_WANT_SMP_LOCKS
+#define MB() opal_atomic_mb()
+#else
+#define MB()
+#endif
+
+/**********************************************************************
+ *
+ * Atomic math operations
+ *
+ *********************************************************************/
+
+#define OPAL_HAVE_ATOMIC_CMPSET_32 1
+static inline int opal_atomic_cmpset_acq_32( volatile int32_t *addr,
+ int32_t oldval, int32_t newval)
+{
+ return __sync_bool_compare_and_swap(addr, oldval, newval);
+}
+
+
+static inline int opal_atomic_cmpset_rel_32( volatile int32_t *addr,
+ int32_t oldval, int32_t newval)
+{
+ return __sync_bool_compare_and_swap(addr, oldval, newval);}
+
+static inline int opal_atomic_cmpset_32( volatile int32_t *addr,
+ int32_t oldval, int32_t newval)
+{
+ return __sync_bool_compare_and_swap(addr, oldval, newval);
+}
+
+#define OPAL_HAVE_ATOMIC_MATH_32 1
+
+#define OPAL_HAVE_ATOMIC_ADD_32 1
+static inline int32_t opal_atomic_add_32(volatile int32_t *addr, int32_t delta)
+{
+ return __sync_add_and_fetch(addr, delta);
+}
+
+#define OPAL_HAVE_ATOMIC_SUB_32 1
+static inline int32_t opal_atomic_sub_32(volatile int32_t *addr, int32_t delta)
+{
+ return __sync_sub_and_fetch(addr, delta);
+}
+
+#define OPAL_HAVE_ATOMIC_CMPSET_64 0
+
+#endif /* ! OPAL_SYS_ARCH_ATOMIC_H */
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am
===================================================================
--- /dev/null
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am
@@ -0,0 +1,23 @@
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+# University Research and Technology
+# Corporation. All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+# of Tennessee Research Foundation. All rights
+# reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+# University of Stuttgart. All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+# All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+
+# This makefile.am does not stand on its own - it is included from opal/include/Makefile.am
+
+headers += \
+ opal/sys/hppa/atomic.h \
+ opal/sys/hppa/timer.h
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h
===================================================================
--- /dev/null
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+ * University Research and Technology
+ * Corporation. All rights reserved.
+ * Copyright (c) 2004-2005 The University of Tennessee and The University
+ * of Tennessee Research Foundation. All rights
+ * reserved.
+ * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+ * University of Stuttgart. All rights reserved.
+ * Copyright (c) 2004-2005 The Regents of the University of California.
+ * All rights reserved.
+ * $COPYRIGHT$
+ *
+ * Additional copyrights may follow
+ *
+ * $HEADER$
+ */
+
+#ifndef OPAL_SYS_ARCH_TIMER_H
+#define OPAL_SYS_ARCH_TIMER_H 1
+
+
+typedef uint64_t opal_timer_t;
+
+static inline opal_timer_t
+opal_sys_timer_get_cycles(void)
+{
+ return 0;
+}
+
+#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
+
+#endif /* ! OPAL_SYS_ARCH_TIMER_H */
Index: openmpi-4.1.0/opal/include/opal/sys/timer.h
===================================================================
--- openmpi-4.1.0.orig/opal/include/opal/sys/timer.h
+++ openmpi-4.1.0/opal/include/opal/sys/timer.h
@@ -90,6 +90,8 @@ BEGIN_C_DECLS
#include "opal/sys/sparcv9/timer.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
#include "opal/sys/mips/timer.h"
+#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
+#include "opal/sys/hppa/timer.h"
#endif
#ifndef DOXYGEN
Index: openmpi-4.1.0/opal/mca/timer/linux/configure.m4
===================================================================
--- openmpi-4.1.0.orig/opal/mca/timer/linux/configure.m4
+++ openmpi-4.1.0/opal/mca/timer/linux/configure.m4
@@ -47,7 +47,7 @@ AC_DEFUN([MCA_opal_timer_linux_CONFIG],[
[timer_linux_happy="no"])])
case "${host}" in
- i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*)
+ i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*|hppa*-*linux*)
AS_IF([test "$timer_linux_happy" = "yes"],
[AS_IF([test -r "/proc/cpuinfo"],
[timer_linux_happy="yes"],
Index: openmpi-4.1.0/opal/include/opal/sys/atomic.h
===================================================================
--- openmpi-4.1.0.orig/opal/include/opal/sys/atomic.h
+++ openmpi-4.1.0/opal/include/opal/sys/atomic.h
@@ -169,6 +169,8 @@ enum {
#include "opal/sys/ia32/atomic.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
#include "opal/sys/ia64/atomic.h"
+#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
+#include "opal/sys/hppa/atomic.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
#include "opal/sys/mips/atomic.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32

11
debian/patches/ia64.patch vendored Normal file
View File

@ -0,0 +1,11 @@
--- a/opal/include/opal/sys/timer.h
+++ b/opal/include/opal/sys/timer.h
@@ -78,8 +78,6 @@
#include "opal/sys/arm64/timer.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA32
#include "opal/sys/ia32/timer.h"
-#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
-#include "opal/sys/ia64/timer.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
#include "opal/sys/powerpc/timer.h"
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC64

26
debian/patches/libdir.patch vendored Normal file
View File

@ -0,0 +1,26 @@
Author: Alastair McKinstry <mckinstry@debian.org>
Description: Change install libdir to openmpi3
This is needed to ensure that libopenmpi2, libopenmpi3 do not collide.
Last-Updated: 2019-03-09
Forwarded: no
Index: openmpi-4.1.0/configure.ac
===================================================================
--- openmpi-4.1.0.orig/configure.ac
+++ openmpi-4.1.0/configure.ac
@@ -1444,11 +1444,13 @@ esac
# easier to deal with the problem of opal, orte, and ompi built from
# their own tarballs, with their own PACKAGE variables.
opaldatadir='${datadir}/openmpi'
-opallibdir='${libdir}/openmpi'
+opallibdir='${libdir}/openmpi3'
opalincludedir='${includedir}/openmpi'
+pkglibdir='${libdir}/openmpi3'
AC_SUBST(opaldatadir)
AC_SUBST(opallibdir)
AC_SUBST(opalincludedir)
+AC_SUBST(pkglibdir)
OPAL_SET_MCA_PREFIX([OMPI_MCA_])
OPAL_SET_MCA_CMD_LINE_ID([mca])

73
debian/patches/manpage_macros vendored Normal file
View File

@ -0,0 +1,73 @@
Description: Fix problems in manpages
In some man page headers, a macro (-*-) is used which makes lintian
choke and probably should not be there anyway.
Author: Alastair McKinstry <mckinstry@debian.org>
Forwarded: no
Last-Update: 2018-04-08
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
===================================================================
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
@@ -32,7 +32,7 @@ Length of the string and/or buffer for n
.SH OUTPUT PARAMETERS
.ft R
-.TP li
+.TP 1i
num
number of discrete values represented by this enumeration.
.TP 1i
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
===================================================================
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
@@ -131,7 +131,7 @@ MPI_T_PVAR_CLASS_GENERIC
Variable does not fit into any other class. Can by represented by an type supported by the MPI tool
information interface (see DATATYPE). Starting value is variable specific.
-For more information see MPI-3 \[char 167] 14.3.7.
+For more information see MPI-3 \[char167] 14.3.7.
.SH DATATYPE
.ft R
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in
===================================================================
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_Get.3in
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in
@@ -104,7 +104,7 @@ window object used for communication (ha
.SH OUTPUT PARAMETER
.ft R
-.TP li
+.TP 1i
request
MPI_Rget: RMA request
.TP 1i
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
===================================================================
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
@@ -36,7 +36,7 @@ Length of the string and/or buffer for n
.SH OUTPUT PARAMETERS
.ft R
-.TP li
+.TP 1i
value
Variable value.
.TP 1i
Index: openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in
===================================================================
--- openmpi-4.1.0.orig/orte/mca/sstore/orte_sstore.7in
+++ openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in
@@ -12,8 +12,7 @@
.\" **************************
.SH NAME
.
-Open RTE MCA File Management (SStore) Framework \- Overview of Open RTE's SStore
-framework, and selected modules. #PACKAGE_NAME# #PACKAGE_VERSION#
+ORTE_SSTORE \- Overview of Open RTE's SStore framework, and selected modules
.
.\" **************************
.\" Description Section

20
debian/patches/mpifort.patch vendored Normal file
View File

@ -0,0 +1,20 @@
Index: openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
===================================================================
--- openmpi-4.0.2.orig/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
+++ openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
@@ -12,6 +12,7 @@ language=Fortran
compiler_env=FC
compiler_flags_env=FCFLAGS
compiler=@FC@
+compiler_version=@COMPILER_VERSION@
preprocessor_flags=
compiler_flags=@OMPI_WRAPPER_EXTRA_FCFLAGS@
linker_flags=@OMPI_WRAPPER_EXTRA_FC_LDFLAGS@
@@ -24,5 +25,5 @@ libs_static=@OMPI_FORTRAN_USEMPIF08_LIB@
dyn_lib_file=lib@OMPI_LIBMPI_NAME@.@OPAL_DYN_LIB_SUFFIX@
static_lib_file=lib@OMPI_LIBMPI_NAME@.a
required_file=@OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@
-includedir=${includedir}
-libdir=${libdir}
+includedir=${libdir}/../../fortran/@COMPILER_VERSION@/openmpi
+libdir=${libdir}/fortran/@FC@

26
debian/patches/no-warning-unused.patch vendored Normal file
View File

@ -0,0 +1,26 @@
Description: Turn off warning that openfabric is not available
because it breaks some overlying layers/appications in Debian.
Also exclude openfabric/openib by default.
See: #979041
Author: Alastair McKinstry <mckinstry@debian.org>
Last-Updated: 2021-09-02
Forwarded: not-needed
--- a/opal/etc/openmpi-mca-params.conf
+++ b/opal/etc/openmpi-mca-params.conf
@@ -57,3 +57,14 @@
# See "ompi_info --param all all --level 9" for a full listing of Open
# MPI MCA parameters available and their default values.
+
+# Silence this warning on Debian, as many systems don't have openfabric
+# but the warning breaks higher layers or application
+btl_base_warn_component_unused=0
+# Avoid openib an in case applications use fork: see https://github.com/ofiwg/libfabric/issues/6332
+# If you wish to use openib and know your application is safe, remove the following:
+# Similarly for UCX: https://github.com/open-mpi/ompi/issues/8367
+mtl = ^ofi
+btl = ^uct,openib,ofi
+pml = ^ucx
+osc = ^ucx,pt2pt
\ No newline at end of file

23
debian/patches/opal_fifo.patch vendored Normal file
View File

@ -0,0 +1,23 @@
Description: fix test-suite to build on ppc64el
Test suite hangs on ppc64el. This is due to a bug in test/class/opal_fifo.c.
thread_test() must end with pthread_exit(NULL), not return NULL.
Author: Thibaut Paumard <thibaut@debian.org>
Origin: Vendor
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848218
Forwarded: no
Last-Update: 2016-12-15
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: openmpi-4.1.0/test/class/opal_fifo.c
===================================================================
--- openmpi-4.1.0.orig/test/class/opal_fifo.c
+++ openmpi-4.1.0/test/class/opal_fifo.c
@@ -63,7 +63,7 @@ static void *thread_test (void *arg) {
printf ("Atomics thread finished. Time: %d s %d us %d nsec/poppush\n", (int) total.tv_sec,
(int)total.tv_usec, (int)(timing / 1e-9));
- return NULL;
+ pthread_exit(NULL);
}
static void *thread_test_exhaust (void *arg) {

26
debian/patches/pkg-config.patch vendored Normal file
View File

@ -0,0 +1,26 @@
Description: Enable non-gfortran compilation
Author: Alastair McKinstry <mckinstry@debian.org>
Last-Updated: 2020-01-13
Forwarded: no
Index: openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in
===================================================================
--- openmpi-4.0.2.orig/ompi/tools/wrappers/ompi-fort.pc.in
+++ openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in
@@ -11,11 +11,15 @@ exec_prefix=@exec_prefix@
includedir=@includedir@
libdir=@libdir@
pkgincludedir=@opalincludedir@
+# override $fortran with --define-variable when building on non-gfortran compile
+fortran=gfortran
+fortrandir=${libdir}/../../fortran/${fortran}
+
#
# Note that -lopen-pal and all the EXTRA_LIBS are only necessary when
# static linking (they're pulled in by libopen-rte.so's implicit
# dependencies), so only list these in Libs.private.
#
-Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@
+Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@
Libs.private: -lopen-rte -lopen-pal @OMPI_WRAPPER_EXTRA_LIBS@
Cflags: -I${includedir} @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_FCFLAGS@

12
debian/patches/series vendored Normal file
View File

@ -0,0 +1,12 @@
pkg-config.patch
mpifort.patch
manpage_macros
build_hurd
libdir.patch
hppa.patch
opal_fifo.patch
verbose-ompi-rules.patch
fix-underlinking.patch
#version-script.patch
no-warning-unused.patch
ia64.patch

16
debian/patches/verbose-ompi-rules.patch vendored Normal file
View File

@ -0,0 +1,16 @@
Description: Makefile.ompi-rules: don't set silent building
Author: Adrian Bunk <bunk@debian.org>
Index: openmpi-4.1.0/Makefile.ompi-rules
===================================================================
--- openmpi-4.1.0.orig/Makefile.ompi-rules
+++ openmpi-4.1.0/Makefile.ompi-rules
@@ -53,7 +53,7 @@ endif
# A little verbosity magic; "make" will show the terse output. "make
# V=1" will show the actual commands used (just like the other
# Automake-generated compilation/linker rules).
-V=0
+#V=0
OMPI_V_LN_S = $(ompi__v_LN_S_$V)
ompi__v_LN_S_ = $(ompi__v_LN_S_$AM_DEFAULT_VERBOSITY)

10263
debian/patches/version-script.patch vendored Normal file

File diff suppressed because it is too large Load Diff

330
debian/rules vendored Executable file
View File

@ -0,0 +1,330 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
DESTDIR:=$(CURDIR)/debian/tmp/
BUILDDIR_FLANG=debian/build-flang
BUILDDIR_GFORTRAN=debian/build-gfortran
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH)
AUTOGENERATED:= libopenmpi-dev.postinst libopenmpi-dev.prerm
### Arch-specific stuff
# No ibverbs support available on kFreeBSD, Hurd
NO_VERBS_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x i386
NO_FABRIC_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x sh4 powerpc x32 i386
PSM_ARCH:= amd64 i386
PSM2_ARCH:= amd64
UCX_ARCH:= amd64 ppc64el arm64
ATOMICS_ARCH:= s390x riscv64
NO_CMA_ARCH:= s390x mipsel hppa alpha armhf armel m68k sparc64
NO_JAVA_ARCH:= hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386 ppc64 alpha sparc64
NO_TEST_ARCH:= hppa hurd-i386
UCX:= $(if $(filter $(DEB_TARGET_ARCH), $(UCX_ARCH)), --with-ucx, )
VERBS:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_VERBS_ARCH)), , --with-verbs )
FABRIC:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_FABRIC_ARCH)), , --with-libfabric )
PSM:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM_ARCH)), --with-psm, )
PSM2:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM2_ARCH)), --with-psm2, )
ATOMICS:= $(if $(filter $(DEB_TARGET_ARCH), $(ATOMICS_ARCH)), --enable-builtin-atomics, )
CMA:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_CMA_ARCH)), --without-cma , )
DO_TEST:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_TEST_ARCH)), false, true)
BTL_TESTS:= $(if $(DO_TEST), --enable-opal-btl-usnic-unit-tests, )
DO_FLANG:=$(if $(wildcard /usr/bin/flang),true, false)
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
JAVA := $(if $(filter $(DEB_TARGET_ARCH), $(NO_JAVA_ARCH)), \
,--with-jdk-dir=/usr/lib/jvm/default-java --enable-mpi-java )
endif
FLANG_FCFLAGS= $(filter '-g', $(shell dpkg-buildflags --get FCFLAGS))
FLANG_LIBDIR= $(LIBDIR)/fortran/flang
FLANG_VERSION=$(shell basename $(shell readlink /usr/bin/flang))
# GFORTRAN_VERSION:=$(shell basename $(shell readlink -f /usr/bin/gfortran))
export GFORTRAN_VERSION=gfortran-mod-15
# FC set to f77 by default in make
# Read default compiler name unless FC is actually set
ifeq ($(FC),f77)
FC:=$(shell basename $(shell readlink /etc/alternatives/f95))
endif
# Drop '-g' flag with flang. Known failure with 2018122 version
ifneq ($(filter flang,$(FC)),)
FCFLAGS=$(shell dpkg-buildflags --get FCLAGS | sed -e 's/-g //')
endif
ifeq (sparc,$(DEB_HOST_GNU_CPU))
CFLAGS += -mcpu=v9
endif
# Use -O3 recommended by upstream
CFLAGS += -O3
CXXFLAGS += -O3
FCFLAGS += -O3
# Flags for the static build: see bug #502232
#STATIC_CONFIG_PARAMS = --enable-static
STATIC_CONFIG_PARAMS =
# Do not embed build username or build system hostname, see README
export HOSTNAME=hostname
export USER=username
%:
dh $@
extra_flags = \
--disable-silent-rules \
--disable-wrapper-runpath \
--with-package-string="Debian OpenMPI" \
$(VERBS) $(FABRIC) $(PSM) $(PSM2) $(CMA) \
$(UCX) \
--with-pmix=$(LIBDIR)/pmix2 \
$(ATOMICS) \
$(JAVA) \
$(STATIC_CONFIG_PARAMS) \
$(BTL_TESTS) \
--with-libevent=external \
--with-hwloc=external \
--disable-silent-rules \
--enable-mpi-cxx \
--enable-ipv6 \
--with-devel-headers \
--with-slurm \
--with-sge \
--without-tm \
--sysconfdir=/etc/openmpi \
--libdir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/lib \
--includedir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/include
override_dh_auto_clean:
dh_clean
rm -f $(patsubst %, debian/%, ${AUTOGENERATED})
find . -name .libs -exec rm -rf {} \; || true
find . -name .dirstamp -delete
find . -type l -delete
find . -name '*.o' -delete
override_dh_update_autotools_config:
(cd config && autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh)
./autogen.pl --force
override_dh_auto_configure:
for f in ${AUTOGENERATED} ; do \
sed -e 's%@DEB_HOST_MULTIARCH@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in | \
sed -e 's/@GFORTRAN_VERSION@/${GFORTRAN_VERSION}/' > debian/$$f ; \
done
dh_auto_configure --builddirectory=$(BUILDDIR_GFORTRAN) -- $(extra_flags)
$(DO_FLANG) && dh_auto_configure --builddirectory=$(BUILDDIR_FLANG) \
-- $(extra_flags) FC=flang FCFLAGS="$(FLANG_FCFLAGS)" || true
override_dh_auto_build:
dh_auto_build --builddirectory=$(BUILDDIR_GFORTRAN)
$(DO_FLANG) && dh_auto_build --builddirectory=$(BUILDDIR_FLANG) || true
override_dh_install:
dh_auto_install --builddirectory=$(BUILDDIR_GFORTRAN)
$(DO_FLANG) && find $(BUILDDIR_FLANG) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true
# Rename the compiler and startup wrappers.
for f in mpic++ mpicc mpiCC mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \
if test -f $(DESTDIR)/usr/bin/$${f}; then \
mv $(DESTDIR)/usr/bin/$${f} $(DESTDIR)/usr/bin/$${f}.openmpi ; \
fi; \
done
# Rename some files
mv $(DESTDIR)/usr/bin/aggregate_profile.pl $(DESTDIR)/usr/bin/aggregate_profile
mv $(DESTDIR)/usr/bin/profile2mat.pl $(DESTDIR)/usr/bin/profile2mat
# Strip rpath from pc,wrapper files
for f in ompi-c.pc ompi-cxx.pc ompi-f77.pc ompi-f90.pc ompi-fort.pc ompi.pc opal.pc orte.pc ; do \
sed -e 's/-Wl,-rpath -Wl,$${libdir}//' < $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} > debian/tmp.x ; \
mv debian/tmp.x $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} ; \
done
find . -name '*wrapper-data.txt' | while read f; do \
sed -e 's/-Wl,-rpath -Wl,@{libdir}//' < $$f | \
sed -e 's/@COMPILER_VERSION@/${GFORTRAN_VERSION}/' > debian/tmp.x ; \
mv debian/tmp.x $$f ; done
# Rename the compiler wrapper man pages.
for f in mpic++ mpicc mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \
if test -f $(DESTDIR)/usr/share/man/man1/$${f}.1; then \
echo DEBUG7 $${f} ;\
mv $(DESTDIR)/usr/share/man/man1/$${f}.1 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.1 ; \
fi; \
if test -f $(DESTDIR)/usr/share/man/man1/$${f}.3; then \
echo DEBUG8 $${f} ;\
mv $(DESTDIR)/usr/share/man/man3/$${f}.3 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.3 ; \
fi; \
done
cd $(DESTDIR)/usr/share/man/man3; \
for f in *.3; do \
mv $$f $$(echo $$f|sed -e "s|\.3|.openmpi.3|g"); \
done; \
mkdir -p $(DESTDIR)/$(LIBDIR)/openmpi/lib/
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0
gcc -shared -fPIC -Wl,-soname,libmpi_mpifh-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-gfortran.so.40.30.0 \
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0
gcc -shared -fPIC -Wl,-soname,libmpi_usempi_ignore_tkr-gfortran.so.40 \
-o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 \
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0
gcc -shared -fPIC -Wl,-soname,libmpi_usempif08-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-gfortran.so.40.30.0 \
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0
# Flang, if present
$(DO_FLANG) && ( \
mkdir -p $(DESTDIR)/$(FLANG_MODDIR) ; \
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext/*.mod openmpi ; \
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-ignore-tkr/*.mod openmpi ; \
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/*.mod openmpi ; \
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/mod/*.mod openmpi ; \
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext-use-mpi/*.mod openmpi ; \
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempif08.so ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so ; \
) || true
# patchelf --set-soname libmpi_mpifh-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \
# patchelf --set-soname libmpi_usempi_ignore_tkr-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \
# patchelf --set-soname libmpi_usempif08-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \
# Strip rpath info from all executables and libraries.
find $(DESTDIR) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true
# Rename orte-bootproxy.sh to orte-bootproxy
if test -f $(DESTDIR)/usr/bin/orte-bootproxy.sh; then \
mv $(DESTDIR)/usr/bin/orte-bootproxy.sh $(DESTDIR)/usr/bin/orte-bootproxy; \
fi
# Remove dangling symlink(s)
rm -f $(DESTDIR)/usr/share/man/man1/mpiCC.1
rm -f $(DESTDIR)/usr/share/man/man1/orteCC.1
# Remove COPYRIGHT file of ptmalloc2. It's reproduced in debian/copyright.
rm -fr $(DESTDIR)/usr/share/openmpi/doc/
# Remove pmi2, pmix now in separate package
rm -rf $(DESTDIR)/usr/lib/*/openmpi/include/pmi*
# Remove buggy ${pkgincludedir} refs from pkg-config files. #837062
find . -name '*.pc' -type f | while read f ; do \
cat $${f} | sed -e 's%-I$${pkgincludedir}[a-zA-Z0-9/]* %%g' > x ; \
mv x $${f}; done
# sanitize build paths for bit-reproducibility
if test $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; then \
sed -e 's%${CURDIR}%/build/openmpi%g' < $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h \
> $(DESTDIR)/x ; \
mv $(DESTDIR)/x /$(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; \
fi
# Continue as usual
dh_install
# oshmem, shmem only built on Linux so do by hand or it may fail ...
# mkdir -p debian/libopenmpi3/$(LIBDIR)/openmpi/lib
if test -f $(DESTDIR)/usr/bin/oshmem_info ; then \
dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/oshrun ;\
dh_install -p openmpi-bin /usr/bin/oshmem_info ; \
dh_install -p openmpi-bin /usr/bin/oshcxx ;\
dh_install -p openmpi-bin /usr/bin/oshcc ;\
dh_install -p openmpi-bin /usr/bin/oshc++ ;\
dh_install -p openmpi-bin /usr/bin/oshfort ; \
dh_install -p openmpi-bin /usr/bin/oshCC ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshfort.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshrun.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshmem_info.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcc.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshCC.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshc++.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcxx.1 ; \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/liboshmem.so.40.30.2 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/liboshmem.so.40.30.2 $(LIBDIR)/liboshmem.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/openmpi/lib/liboshmem.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/liboshmem.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 ; then \
dh_install -p openmpi-bin /usr/bin/mpijavac ; \
dh_install -p openmpi-bin usr/bin/mpijavac.pl ; \
dh_installman openmpi-bin $(DESTDIR)/usr/share/man/man1/mpijavac.1 ; \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 $(LIBDIR); \
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_java.so.40.30.0 $(LIBDIR)/libmpi_java.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/openmpi/lib/libmpi_java.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/libmpi_java.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 ; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 $(LIBDIR); \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ucx.so.40.30.2 $(LIBDIR)/libmca_common_ucx.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/libmca_common_ucx.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 ; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_monitoring.so.50.20.0 $(LIBDIR)/libmca_common_monitoring.so.50 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/libmca_common_monitoring.so ; \
fi
# No longer needed ?
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 ; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ofi.so.10.0.2 $(LIBDIR)/libmca_common_ofi.so.10 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/libmca_common_ofi.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ompio.so.41.29.4 $(LIBDIR)/libmca_common_ompio.so.41 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/libmca_common_ompio.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 ; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_verbs.so.40.30.0 $(LIBDIR)/libmca_common_verbs.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/libmca_common_verbs.so ; \
fi
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 ; then \
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 $(LIBDIR) ; \
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_libfabric.so.40.30.0 $(LIBDIR)/libmca_common_libfabric.so.40 ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so ; \
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/libmca_common_libfabric.so ; \
fi
# If shmemrun exists, its a broken link so use -h to test
if test -h $(DESTDIR)/usr/bin/shmemrun ; then \
dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/shmemrun ;\
dh_install -p openmpi-bin usr/bin/shmemcc ; \
dh_install -p openmpi-bin usr/bin/shmemcxx ; \
dh_install -p openmpi-bin usr/bin/shmemc++ ; \
dh_install -p openmpi-bin /usr/bin/shmemCC ; \
dh_install -p openmpi-bin /usr/bin/shmemfort ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcc.1 ;\
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemc++.1 ;\
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemfort.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemrun.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemCC.1 ; \
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcxx.1 ; \
fi
override_dh_fixperms-arch:
chmod 0644 debian/libopenmpi*/$(LIBDIR)/fortran/*/openmpi/*.mod
rm -f debian/libopenmpi-dev/usr/lib/*/openmpi/lib/ompi_monitoring_prof.so
dh_fixperms
override_dh_auto_test:
$(DO_TEST) && dh_auto_test || echo "Tests disabled on ${NO_TEST_ARCH} systems for the moment"
override_dh_shlibdeps:
dh_shlibdeps -l$(DESTDIR)/$(LIBDIR)/openmpi/lib -- --ignore-missing-info
override_dh_installdocs:
dh_installdocs --all NEWS README
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
dh_installdocs -p openmpi-doc debian/tmp/usr/share/doc/openmpi/javadoc-openmpi
dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js
dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.5.1.js
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js
endif

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

9
debian/tests/check_shared_objs vendored Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
# Ensure all mca shared objects, etc are ok
ompi_info --all 2>&1 | grep "cannot open shared object file"
[ $? -eq 1 ]

11
debian/tests/control vendored Normal file
View File

@ -0,0 +1,11 @@
Tests: hello1
Depends: gcc, openmpi-bin, libopenmpi-dev
Tests: hello2
Depends: gfortran, libopenmpi-dev, openmpi-bin
Tests: hello4
Depends: gfortran, libopenmpi-dev, openmpi-bin
Tests: check_shared_objs
Depends: openmpi-bin

28
debian/tests/hello.c vendored Normal file
View File

@ -0,0 +1,28 @@
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
// Initialize the MPI environment
MPI_Init(NULL, NULL);
// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
// Print off a hello world message
printf("Hello world from processor %s, rank %d out of %d processors\n",
processor_name, world_rank, world_size);
// Finalize the MPI environment.
MPI_Finalize();
}

11
debian/tests/hello.f vendored Normal file
View File

@ -0,0 +1,11 @@
C Fortran example
program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end

11
debian/tests/hello.f90 vendored Normal file
View File

@ -0,0 +1,11 @@
! Fortran example
program hello
use mpi
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end

11
debian/tests/hello1 vendored Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
set -e
### Compile and run a simple MPI application
cd debian/tests
mpicc -o hello hello.c
mpirun -n 1 ./hello
rm ./hello

13
debian/tests/hello2 vendored Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
set -e
cd debian/tests
### Compile and run a simple MPI application
mpif90 -o hello hello.f90
mpirun -n 1 ./hello
rm ./hello

10
debian/tests/hello3 vendored Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
set -e
### Compile and run a simple MPI application, via pkg-config
cc -o hello `pkg-config mpi --libs --cflags` hello.c
mpirun -n 1 ./hello

11
debian/tests/hello4 vendored Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
set -e
### Compile and run a simple MPI application
cd debian/tests
mpif77 -o hello hello.f
mpirun -n 1 ./hello
rm ./hello

2
debian/watch vendored Normal file
View File

@ -0,0 +1,2 @@
version=3
http://www.open-mpi.org/software/ompi/ .*/.*/openmpi-([\d+\.]+)\.tar\.gz