File openmpi-testsuite.spec of Package openmpi.7599
#
# spec file for package openmpi-testsuite
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
##########################################################################
# NOTE: If you modified openmpi.spec and/or openmpi.changes please run #
# pre_checkin.sh in this directory before submitting the package. #
# This will create the -testsuite spec and changes. #
##########################################################################
%if 0%{suse_version} > 1310
%define with_openib 1
%else
%define with_openib 0
%endif
%define build_static_devel 1
Name: openmpi-testsuite
Version: 1.10.6
Release: 0
Summary: A powerful implementaion of MPI
License: BSD-3-Clause
Group: Development/Libraries/Parallel
Url: http://www.open-mpi.org/
Source0: openmpi-%{version}.tar.bz2
Source1: mpivars.sh
Source2: mpivars.csh
Source3: baselibs.conf
Source4: openmpi-rpmlintrc
Patch1: openmpi-no_date_and_time.patch
Patch2: openmpi-no_network_in_build.patch
Patch3: openmpi-1.8.3-fix-bashisms.patch
Patch4: openmpi-etc-files.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: Modules
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: libtool
BuildRequires: mpi-selector
BuildRequires: zlib-devel
%if %{with_openib}
# For transition to rdma-core make sure the new packages are selected
# Once the transition is made the version check can be removed
BuildRequires: libibumad-devel >= 12
BuildRequires: libibverbs-devel >= 12
%endif
%ifarch x86_64
BuildRequires: numactl
%endif
%ifarch %{ix86} x86_64
%if %{with_openib}
BuildRequires: infinipath-psm-devel
%ifarch x86_64
BuildRequires: libfabric-devel
BuildRequires: libpsm2-devel
%endif
%endif
%endif
%if "%{name}" == "openmpi-testsuite"
BuildRequires: openmpi = %{version}
%endif
Requires: mpi-selector
Requires(preun): mpi-selector
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi
%define mpi_bindir %{mpi_prefix}/bin
%define mpi_libdir %{mpi_prefix}/%{_lib}
%define mpi_datadir %{mpi_prefix}/share
%define mpi_helpdir %{mpi_datadir}/openmpi
%define mpi_includedir %{mpi_prefix}/include
%define mpi_mandir %{mpi_prefix}/share/man
%description
%if "%{name}" == "openmpi-testsuite"
This package contains the test log in the documentation directory
%else
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
where the team found for them to excel in one or more areas,
such as latency or throughput.
This RPM contains all the tools necessary to compile, link, and run
Open MPI jobs.
%package libs
Summary: OpenMPI runtime libraries
Group: System/Libraries
%description libs
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
where the team found for them to excel in one or more areas,
such as latency or throughput.
This subpackage contains the OpenMPI shared libraries.
%package devel
Summary: SDK for openMPI
Group: Development/Libraries/Parallel
Requires: libstdc++-devel
Requires: openmpi = %{version}
%if %{with_openib}
Requires: libibumad-devel
Requires: libibverbs-devel
%endif
%description devel
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
where the team found for them to excel in one or more areas,
such as latency or throughput.
This RPM contains all the wrappers necessary to compile, link, and run
Open MPI jobs.
%if %{build_static_devel}
%package devel-static
Summary: Static openMPI libraries
Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version}
%description devel-static
OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations
where the team found for them to excel in one or more areas,
such as latency or throughput.
This RPM contains the static library files, which are packaged separately from
the dynamic library and headers.
%endif
%endif # !openmpi-testsuite
%prep
%setup -q -n openmpi-%{version}
%patch1
%patch2
%patch3 -p1
%patch4
%build
%if 0%{suse_version} >= 1315
# To force rebuilding Makefile.in
rm -f ompi/debuggers/Makefile.in
./autogen.sh
%endif
%configure --prefix="%{mpi_prefix}" \
--exec-prefix="%{mpi_prefix}" \
--bindir="%{mpi_bindir}" \
--datadir="%{mpi_datadir}" \
--includedir="%{mpi_includedir}" \
--libdir="%{mpi_libdir}" \
--mandir="%{mpi_mandir}" \
--disable-static \
--enable-builtin-atomics \
--with-libltdl=%{_prefix} \
%if %{with_openib}
--with-verbs \
%endif
--with-threads \
%ifarch %{ix86} x86_64
%if %with_openib
--with-psm \
%ifarch x86_64
--with-psm2 \
%endif
%endif
%endif
--with-package-string="Open MPI Distribution for SUSE" \
--enable-mpi-fortran=usempi \
--disable-silent-rules \
--enable-builtin-atomics
make %{?_smp_mflags}
%if "%{name}" == "openmpi-testsuite"
%check
make check
%install
%else
%install
make install DESTDIR="%buildroot"
# make and install mpivars files
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE1} \
> %{buildroot}%{mpi_bindir}/mpivars.sh
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE2} \
> %{buildroot}%{mpi_bindir}/mpivars.csh
for input in `find %{buildroot}/%{mpi_mandir} -type f` ; do
if test -f "$input.gz"; then
#echo "Remove old file $input.gz"
rm -f "$input.gz"
fi
if test -L "$input"; then
link=`perl -e 'print readlink($ARGV[0]);' -- "$input"`
test -d "$link" && continue
test -d "%{buildroot}/$link" && continue
rm -f "$input"
ln -sf "$link.gz" "$input.gz"
else
gzip -nf9 "$input"
fi
ls -l "$input.gz"
done
pushd %{buildroot}%{mpi_libdir}
rm libopen-trace-format.la
rm libotfaux.la
%if !%{build_static_devel}
find -name '*.la' -print0 | xargs -0 rm -f
%else
for f in libvt\*.la; do
sed -i 's%%-L.*.libs %%%%g' $f
done
%endif
popd
# GCC 5 builds the ignore-tkr extension and there is no way to
# turn that off
rm -f %{buildroot}%{mpi_libdir}/mpi_ext.mod
mkdir -p %{buildroot}%{_datadir}/modules/gnu-openmpi
%fdupes %{buildroot}%{mpi_mandir} %{buildroot}%{mpi_datadir}
cat << EOF > %{buildroot}%{_datadir}/modules/gnu-openmpi/%{version}
#%%Module
proc ModulesHelp { } {
global dotversion
puts stderr "\tLoads the gnu - openmpi %{version} Environment"
}
module-whatis "Loads the gnu openmpi %{version} Environment."
conflict gnu-openmpi
prepend-path PATH %{mpi_bindir}
prepend-path INCLUDE %{mpi_includedir}
prepend-path INCLUDE %{mpi_libdir}/lib64
prepend-path MANPATH %{mpi_mandir}
prepend-path LD_LIBRARY_PATH %{mpi_libdir}
EOF
cat << EOF > %{buildroot}%{_datadir}/modules/gnu-openmpi/.version
#%%Module1.0
set ModulesVersion "%{version}"
EOF
rm -f %{buildroot}%{mpi_mandir}/man1/mpiCC.1
ln -s mpicxx.1.gz %{buildroot}%{mpi_mandir}/man1/mpiCC.1.gz
#! openmpi-testsuite
%endif
%if "%{name}" == "openmpi"
%post
/usr/bin/mpi-selector \
--register %{name}-%{version} \
--source-dir %{mpi_bindir} \
--yes
/usr/bin/mpi-selector \
--system \
--set %{name}-%{version} \
--yes
%preun
/usr/bin/mpi-selector --unregister %{name}-%{version} --yes
/usr/bin/mpi-selector --system --query
if [ ! -z "`/usr/bin/mpi-selector --system --query`" ]; then
/usr/bin/mpi-selector --system --unset --yes %{name}-%{version}
fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%defattr(-, root, root)
%doc NEWS README AUTHORS LICENSE
%dir %{_libdir}/mpi
%dir %{_libdir}/mpi/gcc
%dir %{mpi_prefix}
%dir %{mpi_bindir}
%dir %{mpi_libdir}
%dir %{mpi_datadir}
%dir %{mpi_mandir}
#
%config %{_sysconfdir}/openmpi-default-hostfile
%config %{_sysconfdir}/openmpi-mca-params.conf
#
%dir /usr/share/modules/gnu-openmpi
/usr/share/modules/gnu-openmpi/.version
/usr/share/modules/gnu-openmpi/%{version}
#
%dir %{mpi_datadir}/openmpi/amca-param-sets
%if 0%{?suse_version} <= 1320
%dir %{mpi_datadir}/openmpi/doc
%endif
%if %with_openib
%{mpi_datadir}/openmpi/amca-param-sets/btl-openib-benchmark
%endif
%{mpi_datadir}/openmpi/amca-param-sets/example.conf
%if 0%{?suse_version} <= 1320
%{mpi_datadir}/openmpi/doc/COPYRIGHT-ptmalloc2.txt
%endif
#
%{mpi_bindir}/mpirun
%{mpi_bindir}/mpivars.csh
%{mpi_bindir}/mpivars.sh
%{mpi_bindir}/ompi-clean
%{mpi_bindir}/ompi-ps
%{mpi_bindir}/ompi-server
%{mpi_bindir}/ompi-top
%{mpi_bindir}/ompi_info
%{mpi_bindir}/orte-clean
%{mpi_bindir}/orte-dvm
%{mpi_bindir}/orte-info
%{mpi_bindir}/orte-ps
%{mpi_bindir}/orte-server
%{mpi_bindir}/orte-submit
%{mpi_bindir}/orte-top
%{mpi_bindir}/orted
%{mpi_bindir}/orterun
%{mpi_bindir}/oshmem_info
%{mpi_bindir}/oshrun
%{mpi_bindir}/shmemrun
#
%dir %{mpi_mandir}/man1
%{mpi_mandir}/man1/oshmem_info.1.gz
%{mpi_mandir}/man1/orte-clean.1.gz
%{mpi_mandir}/man1/orte-dvm.1.gz
%{mpi_mandir}/man1/orte-info.1.gz
%{mpi_mandir}/man1/orte-ps.1.gz
%{mpi_mandir}/man1/orte-server.1.gz
%{mpi_mandir}/man1/orte-submit.1.gz
%{mpi_mandir}/man1/orte-top.1.gz
%{mpi_mandir}/man1/orted.1.gz
%{mpi_mandir}/man1/orterun.1.gz
%{mpi_mandir}/man1/mpirun.1.gz
%{mpi_mandir}/man1/ompi-clean.1.gz
%{mpi_mandir}/man1/ompi-ps.1.gz
%{mpi_mandir}/man1/ompi-server.1.gz
%{mpi_mandir}/man1/ompi-top.1.gz
%{mpi_mandir}/man1/ompi_info.1.gz
%{mpi_mandir}/man1/shmemrun.1.gz
%{mpi_mandir}/man7
#
%dir %{mpi_helpdir}
%{mpi_helpdir}/help-coll-sync.txt
%{mpi_helpdir}/help-dash-host.txt
%{mpi_helpdir}/help-db-base.txt
%{mpi_helpdir}/help-errmgr-base.txt
%{mpi_helpdir}/help-ess-base.txt
%{mpi_helpdir}/help-ess-hnp.txt
%{mpi_helpdir}/help-hostfile.txt
%{mpi_helpdir}/help-mca-base.txt
%{mpi_helpdir}/help-mca-bml-r2.txt
%{mpi_helpdir}/help-mca-coll-base.txt
%{mpi_helpdir}/help-mca-op-base.txt
%{mpi_helpdir}/help-mca-var.txt
%{mpi_helpdir}/help-mpi-api.txt
%{mpi_helpdir}/help-mpi-btl-base.txt
%{mpi_helpdir}/help-mpi-btl-openib-cpc-base.txt
%{mpi_helpdir}/help-mpi-btl-openib-cpc-rdmacm.txt
%{mpi_helpdir}/help-mpi-btl-openib.txt
%{mpi_helpdir}/help-mpi-btl-sm.txt
%{mpi_helpdir}/help-mpi-btl-tcp.txt
%{mpi_helpdir}/help-mpi-coll-sm.txt
%{mpi_helpdir}/help-mpi-common-sm.txt
%{mpi_helpdir}/help-mpi-errors.txt
%{mpi_helpdir}/help-mpi-pml-bfo.txt
%{mpi_helpdir}/help-mpi-pml-ob1.txt
%{mpi_helpdir}/help-mpi-runtime.txt
%{mpi_helpdir}/help-mpool-base.txt
%{mpi_helpdir}/help-btl-vader.txt
%{mpi_helpdir}/help-mpi-coll-ml.txt
%{mpi_helpdir}/help-oshmem-info.txt
%{mpi_helpdir}/help-oshmem-memheap.txt
%{mpi_helpdir}/help-oshmem-spml-yoda.txt
%{mpi_helpdir}/help-oshmem-sshmem.txt
%if %with_openib
%ifarch %ix86 x86_64
%{mpi_helpdir}/help-mtl-psm.txt
%endif
%ifarch x86_64
%{mpi_helpdir}/help-mtl-psm2.txt
%{mpi_helpdir}/help-mpi-btl-usnic.txt
%{mpi_helpdir}/help-mtl-ofi.txt
%endif
%endif
%if %with_openib
%{mpi_datadir}/openmpi/help-ompi-common-verbs.txt
%endif
%{mpi_helpdir}/help-ompi-crcp-base.txt
%{mpi_helpdir}/help-ompi-dpm-base.txt
%{mpi_helpdir}/help-ompi-dpm-orte.txt
%{mpi_helpdir}/help-ompi-pubsub-orte.txt
%{mpi_helpdir}/help-oob-base.txt
%{mpi_helpdir}/help-oob-tcp.txt
%{mpi_helpdir}/help-opal-compress-base.txt
%{mpi_helpdir}/help-opal-compress-bzip.txt
%{mpi_helpdir}/help-opal-compress-gzip.txt
%{mpi_helpdir}/help-opal-crs-base.txt
%{mpi_helpdir}/help-opal-crs-none.txt
%{mpi_helpdir}/help-opal-hwloc-base.txt
%{mpi_helpdir}/help-opal-runtime.txt
%{mpi_helpdir}/help-opal-shmem-mmap.txt
%{mpi_helpdir}/help-opal-shmem-posix.txt
%{mpi_helpdir}/help-opal-shmem-sysv.txt
%{mpi_helpdir}/help-opal-util.txt
%{mpi_helpdir}/help-opal-wrapper.txt
%{mpi_helpdir}/help-opal_info.txt
%{mpi_helpdir}/help-orte-clean.txt
%{mpi_helpdir}/help-orte-filem-base.txt
%{mpi_helpdir}/help-orte-filem-raw.txt
%{mpi_helpdir}/help-orte-info.txt
%{mpi_helpdir}/help-orte-odls-base.txt
%{mpi_helpdir}/help-orte-odls-default.txt
%{mpi_helpdir}/help-orte-ps.txt
%{mpi_helpdir}/help-orte-rmaps-base.txt
%{mpi_helpdir}/help-orte-rmaps-md.txt
%{mpi_helpdir}/help-orte-rmaps-ppr.txt
%{mpi_helpdir}/help-orte-rmaps-resilient.txt
%{mpi_helpdir}/help-orte-rmaps-rr.txt
%{mpi_helpdir}/help-orte-rmaps-seq.txt
%{mpi_helpdir}/help-orte-runtime.txt
%{mpi_helpdir}/help-orte-server.txt
%{mpi_helpdir}/help-orte-snapc-base.txt
%{mpi_helpdir}/help-orte-sstore-base.txt
%{mpi_helpdir}/help-orte-top.txt
%{mpi_helpdir}/help-orted.txt
%{mpi_helpdir}/help-orterun.txt
%{mpi_helpdir}/help-oshmem-sshmem-mmap.txt
%{mpi_helpdir}/help-oshmem-sshmem-sysv.txt
%{mpi_helpdir}/help-plm-base.txt
%{mpi_helpdir}/help-plm-rsh.txt
%{mpi_helpdir}/help-plm-slurm.txt
%{mpi_helpdir}/help-ras-base.txt
%{mpi_helpdir}/help-ras-simulator.txt
%{mpi_helpdir}/help-ras-slurm.txt
%{mpi_helpdir}/help-regex.txt
%{mpi_helpdir}/help-rmaps_rank_file.txt
%{mpi_helpdir}/help-sec-base.txt
%{mpi_helpdir}/help-shmem-api.txt
%{mpi_helpdir}/help-shmem-runtime.txt
%{mpi_helpdir}/help-state-staged-hnp.txt
%ifarch %ix86 x86_64 ppc64
%{mpi_helpdir}/help-opal-timer-linux.txt
%endif
# Opal memory linux does not work on glibc > 2.25
%if 0%{suse_version} < 1330
%{mpi_datadir}/openmpi/doc/COPYRIGHT-ptmalloc2.txt
%{mpi_helpdir}/help-opal-memory-linux.txt
%endif
%if %with_openib
%{mpi_datadir}/openmpi/mca-btl-openib-device-params.ini
%endif
%{mpi_datadir}/openmpi/mca-coll-ml.config
%files libs
%defattr(-,root,root)
%dir %mpi_prefix/
%dir %mpi_libdir/
%mpi_libdir/*.so.*
%{mpi_libdir}/openmpi/*.so
%files devel
%defattr(-,root,root)
%doc %{mpi_datadir}/vampirtrace
%{_sysconfdir}/openmpi-totalview.tcl
#
%dir %{mpi_libdir}/pkgconfig
%dir %{mpi_libdir}/openmpi
#
%{mpi_bindir}/mpiCC
%{mpi_bindir}/mpiCC-vt
%{mpi_bindir}/mpic++
%{mpi_bindir}/mpic++-vt
%{mpi_bindir}/mpicc
%{mpi_bindir}/mpicc-vt
%{mpi_bindir}/mpicxx
%{mpi_bindir}/mpicxx-vt
%{mpi_bindir}/mpiexec
%{mpi_bindir}/mpif77
%{mpi_bindir}/mpif77-vt
%{mpi_bindir}/mpif90
%{mpi_bindir}/mpif90-vt
%{mpi_bindir}/mpifort
%{mpi_bindir}/mpifort-vt
%{mpi_bindir}/opal_wrapper
%{mpi_bindir}/opari
%{mpi_bindir}/ortecc
%{mpi_bindir}/oshcc
%{mpi_bindir}/oshfort
%{mpi_bindir}/otfaux
%{mpi_bindir}/otfconfig
%{mpi_bindir}/otfinfo
%{mpi_bindir}/otfmerge
%{mpi_bindir}/otfmerge-mpi
%{mpi_bindir}/otfprint
%{mpi_bindir}/otfprofile
%{mpi_bindir}/otfprofile-mpi
%{mpi_bindir}/otfshrink
%{mpi_bindir}/otfcompress
%{mpi_bindir}/otfdecompress
%{mpi_bindir}/shmemcc
%{mpi_bindir}/shmemfort
%{mpi_bindir}/vtCC
%{mpi_bindir}/vtc++
%{mpi_bindir}/vtcc
%{mpi_bindir}/vtcxx
%{mpi_bindir}/vtf77
%{mpi_bindir}/vtf90
%{mpi_bindir}/vtfilter
%{mpi_bindir}/vtfilter-mpi
%{mpi_bindir}/vtfiltergen
%{mpi_bindir}/vtfiltergen-mpi
%{mpi_bindir}/vtfort
%{mpi_bindir}/vtrun
%{mpi_bindir}/vtunify
%{mpi_bindir}/vtunify-mpi
%{mpi_bindir}/vtwrapper
%{mpi_libdir}/mpi.mod
#
%{mpi_mandir}/man1/mpiCC.1.gz
%{mpi_mandir}/man1/mpic++.1.gz
%{mpi_mandir}/man1/mpicc.1.gz
%{mpi_mandir}/man1/mpicxx.1.gz
%{mpi_mandir}/man1/mpiexec.1.gz
%{mpi_mandir}/man1/mpif77.1.gz
%{mpi_mandir}/man1/mpif90.1.gz
%{mpi_mandir}/man1/mpifort.1.gz
%{mpi_mandir}/man1/opal_wrapper.1.gz
%{mpi_mandir}/man1/oshcc.1.gz
%{mpi_mandir}/man1/oshfort.1.gz
%{mpi_mandir}/man1/oshrun.1.gz
%{mpi_mandir}/man1/shmemcc.1.gz
%{mpi_mandir}/man1/shmemfort.1.gz
%{mpi_mandir}/man3
#
%{mpi_helpdir}/mpiCC-vt-wrapper-data.txt
%{mpi_helpdir}/mpiCC-wrapper-data.txt
%{mpi_helpdir}/mpic++-vt-wrapper-data.txt
%{mpi_helpdir}/mpic++-wrapper-data.txt
%{mpi_helpdir}/mpicc-vt-wrapper-data.txt
%{mpi_helpdir}/mpicc-wrapper-data.txt
%{mpi_helpdir}/mpicxx-vt-wrapper-data.txt
%{mpi_helpdir}/mpicxx-wrapper-data.txt
%{mpi_helpdir}/mpif77-vt-wrapper-data.txt
%{mpi_helpdir}/mpif77-wrapper-data.txt
%{mpi_helpdir}/mpif90-vt-wrapper-data.txt
%{mpi_helpdir}/mpif90-wrapper-data.txt
%{mpi_helpdir}/mpifort-vt-wrapper-data.txt
%{mpi_helpdir}/mpifort-wrapper-data.txt
%{mpi_helpdir}/openmpi-valgrind.supp
%{mpi_helpdir}/ortecc-wrapper-data.txt
%{mpi_helpdir}/oshcc-wrapper-data.txt
%{mpi_helpdir}/oshfort-wrapper-data.txt
%{mpi_helpdir}/shmemcc-wrapper-data.txt
%{mpi_helpdir}/shmemfort-wrapper-data.txt
#
%{mpi_includedir}
%{mpi_libdir}/*.so
%{mpi_libdir}/pkgconfig/*.pc
%if %{build_static_devel}
%files devel-static
%defattr(-, root, root)
%{mpi_libdir}/*.la
%{mpi_libdir}/openmpi/*.la
%{mpi_libdir}/*.a
%endif
%else
%files
%defattr(-, root, root)
%doc README
%doc test/util/test-suite.log
%endif
%changelog