As described in changelog.
This commit is contained in:
parent
f030191f27
commit
688d01bf1a
7
macros.openmpi
Normal file
7
macros.openmpi
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
%_openmpi_load \
|
||||||
|
. /etc/profile.d/modules.sh; \
|
||||||
|
module load openmpi-%{_arch}; \
|
||||||
|
export CFLAGS="$CFLAGS %{optflags}";
|
||||||
|
%_openmpi_unload \
|
||||||
|
. /etc/profile.d/modules.sh; \
|
||||||
|
module unload openmpi-%{_arch};
|
13
openmpi-bz515567.patch
Normal file
13
openmpi-bz515567.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: ompi/mca/btl/openib/mca-btl-openib-device-params.ini
|
||||||
|
===================================================================
|
||||||
|
--- ompi/mca/btl/openib/mca-btl-openib-device-params.ini (revision 21744)
|
||||||
|
+++ ompi/mca/btl/openib/mca-btl-openib-device-params.ini (working copy)
|
||||||
|
@@ -212,7 +212,7 @@
|
||||||
|
|
||||||
|
[Chelsio T3]
|
||||||
|
vendor_id = 0x1425
|
||||||
|
-vendor_part_id = 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0030,0x0031,0x0032
|
||||||
|
+vendor_part_id = 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0030,0x0031,0x0032,0x0035,0x0036
|
||||||
|
use_eager_rdma = 1
|
||||||
|
mtu = 2048
|
||||||
|
receive_queues = P,65536,256,192,128
|
@ -2,10 +2,15 @@
|
|||||||
#
|
#
|
||||||
# OpenMPI module for use with 'environment-modules' package:
|
# OpenMPI module for use with 'environment-modules' package:
|
||||||
#
|
#
|
||||||
prepend-path PATH @LIBDIR@/@MPIDIR@/bin
|
prepend-path PATH @LIBDIR@/bin
|
||||||
prepend-path LD_LIBRARY_PATH @LIBDIR@/@MPIDIR@/lib
|
prepend-path LD_LIBRARY_PATH @LIBDIR@/lib
|
||||||
setenv CFLAGS "-I@LIBDIR@/@MPIDIR@/include @MODEFLAG@"
|
setenv MPI_BIN @LIBDIR@/bin
|
||||||
setenv LDFLAGS "-L@LIBDIR@/@MPIDIR@/lib -lmpi"
|
setenv MPI_SYSCONFIG @ETCDIR@
|
||||||
setenv MPI_BIN @LIBDIR@/@MPIDIR@/bin
|
setenv MPI_FORTRAN_MOD_DIR @FMODDIR@
|
||||||
setenv MPI_LIB @LIBDIR@/@MPIDIR@/lib
|
setenv MPI_INCLUDE @INCDIR@
|
||||||
setenv MPI_HOME @LIBDIR@/@MPIDIR@
|
setenv MPI_LIB @LIBDIR@/lib
|
||||||
|
setenv MPI_MAN @MANDIR@
|
||||||
|
setenv MPI_PYTHON_SITEARCH @PYSITEARCH@
|
||||||
|
setenv MPI_COMPILER @COMPILER@
|
||||||
|
setenv MPI_SUFFIX @SUFFIX@
|
||||||
|
setenv MPI_HOME @LIBDIR@@
|
||||||
|
170
openmpi.spec
170
openmpi.spec
@ -11,31 +11,42 @@
|
|||||||
%define opt_fc gfortran
|
%define opt_fc gfortran
|
||||||
#define opt_fcflags
|
#define opt_fcflags
|
||||||
|
|
||||||
|
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||||
# Optional name suffix to use...we leave it off when compiling with gcc, but
|
# Optional name suffix to use...we leave it off when compiling with gcc, but
|
||||||
# for other compiled versions to install side by side, it will need a
|
# for other compiled versions to install side by side, it will need a
|
||||||
# suffix in order to keep the names from conflicting.
|
# suffix in order to keep the names from conflicting.
|
||||||
#define cc_name_suffix -gcc
|
#define _cc_name_suffix -gcc
|
||||||
|
|
||||||
Name: openmpi%{?cc_name_suffix}
|
Name: openmpi%{?_cc_name_suffix}
|
||||||
Version: 1.3.3
|
Version: 1.3.3
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: Open Message Passing Interface
|
Summary: Open Message Passing Interface
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://www.open-mpi.org/
|
URL: http://www.open-mpi.org/
|
||||||
Source0: http://www.open-mpi.org/software/ompi/v1.3/downloads/%{name}-%{version}.tar.bz2
|
# We can't use %{name} here because of _cc_name_suffix
|
||||||
|
Source0: http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-%{version}.tar.bz2
|
||||||
Source1: openmpi.pc.in
|
Source1: openmpi.pc.in
|
||||||
Source2: openmpi.module.in
|
Source2: openmpi.module.in
|
||||||
|
Source3: macros.openmpi
|
||||||
|
Patch0: openmpi-bz515567.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: gcc-gfortran, libtool, numactl-devel, valgrind-devel
|
BuildRequires: gcc-gfortran, libtool, numactl-devel, valgrind-devel
|
||||||
BuildRequires: libibverbs-devel, opensm-devel > 3.3.0
|
BuildRequires: libibverbs-devel, opensm-devel > 3.3.0
|
||||||
|
BuildRequires: librdmacm librdmacm-devel
|
||||||
#%ifnarch ppc
|
#%ifnarch ppc
|
||||||
#BuildRequires: compat-dapl-devel
|
#BuildRequires: compat-dapl-devel
|
||||||
#%endif
|
#%endif
|
||||||
Provides: mpi
|
Provides: mpi
|
||||||
Requires: environment-modules
|
Requires: environment-modules
|
||||||
|
# Requires: openmpi-common = %{version}-%{release}
|
||||||
Obsoletes: openmpi-libs
|
Obsoletes: openmpi-libs
|
||||||
|
|
||||||
|
# s390 is unlikely to have the hardware we want, and some of the -devel
|
||||||
|
# packages we require aren't available there.
|
||||||
|
ExcludeArch: s390 s390x
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Open MPI is an open source, freely available implementation of both the
|
Open MPI is an open source, freely available implementation of both the
|
||||||
MPI-1 and MPI-2 standards, combining technologies and resources from
|
MPI-1 and MPI-2 standards, combining technologies and resources from
|
||||||
@ -45,6 +56,14 @@ compliant implementation, Open MPI offers advantages for system and
|
|||||||
software vendors, application developers, and computer science
|
software vendors, application developers, and computer science
|
||||||
researchers. For more information, see http://www.open-mpi.org/ .
|
researchers. For more information, see http://www.open-mpi.org/ .
|
||||||
|
|
||||||
|
#%package common
|
||||||
|
#Summary: Common files for openmpi
|
||||||
|
#Group: Development/Libraries
|
||||||
|
#BuildArch: noarch
|
||||||
|
|
||||||
|
#%description common
|
||||||
|
#contains files that are common across installations of op
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for openmpi
|
Summary: Development files for openmpi
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -83,18 +102,22 @@ Contains development headers and libraries for openmpi
|
|||||||
|
|
||||||
# We set this to for convenience, since this is the unique dir we use for this
|
# We set this to for convenience, since this is the unique dir we use for this
|
||||||
# particular package, version, compiler
|
# particular package, version, compiler
|
||||||
%define mpidir %{name}/%{version}-%{opt_cc}
|
%define namearch openmpi-%{_arch}%{?_cc_name_suffix}
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q -n openmpi-%{version}
|
||||||
|
%patch0 -p0 -b .bz515567
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
XFLAGS="-fPIC"
|
XFLAGS="-fPIC"
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
./configure --prefix=%{_libdir}/%{mpidir} --with-libnuma=/usr \
|
./configure --prefix=%{_libdir}/%{name} --with-libnuma=/usr \
|
||||||
--with-openib=/usr --enable-mpirun-prefix-by-default \
|
--with-openib=/usr --enable-mpirun-prefix-by-default \
|
||||||
--mandir=%{_libdir}/%{mpidir}/man --enable-mpi-threads \
|
--mandir=%{_mandir}/%{namearch} \
|
||||||
--with-ft=cr --with-valgrind \
|
--includedir=%{_includedir}/%{namearch} \
|
||||||
|
--sysconfdir=%{_sysconfdir}/%{namearch} \
|
||||||
|
--enable-mpi-threads \
|
||||||
|
--with-valgrind \
|
||||||
--with-wrapper-cflags="%{?opt_cflags} %{?modeflag}" \
|
--with-wrapper-cflags="%{?opt_cflags} %{?modeflag}" \
|
||||||
--with-wrapper-cxxflags="%{?opt_cxxflags} %{?modeflag}" \
|
--with-wrapper-cxxflags="%{?opt_cxxflags} %{?modeflag}" \
|
||||||
--with-wrapper-fflags="%{?opt_fflags} %{?modeflag}" \
|
--with-wrapper-fflags="%{?opt_fflags} %{?modeflag}" \
|
||||||
@ -112,77 +135,96 @@ make %{?_smp_mflags}
|
|||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
make install DESTDIR=%{buildroot}
|
make install DESTDIR=%{buildroot}
|
||||||
find %{buildroot}%{_libdir}/%{mpidir}/lib -name \*.la | xargs rm
|
find %{buildroot}%{_libdir}/%{name}/lib -name \*.la | xargs rm
|
||||||
find %{buildroot}%{_libdir}/%{mpidir}/man -type f | xargs gzip -9
|
find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9
|
||||||
ln -s mpicc.1.gz %{buildroot}%{_libdir}/%{mpidir}/man/man1/mpiCC.1.gz
|
ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz
|
||||||
rm -f %{buildroot}%{_libdir}/%{mpidir}/man/man1/mpiCC.1
|
rm -f %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
|
||||||
rm -f %{buildroot}%{_libdir}/%{mpidir}/share/vampirtrace/doc/opari/lacsi01.ps.gz
|
rm -f %{buildroot}%{_libdir}/%{name}/share/vampirtrace/doc/opari/lacsi01.ps.gz
|
||||||
|
|
||||||
# Make the pkgconfig file
|
# Make the pkgconfig file
|
||||||
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
||||||
sed 's#@NAME@#'%{name}'#g;s#@VERSION@#'%{version}'#g;s#@LIBDIR@#'%{_libdir}'#g;s#@CC@#'%{opt_cc}'#g;s#@MPIDIR@#'%{mpidir}'#g;s#@MODEFLAG@#'%{?modeflag}'#g' < %SOURCE1 > %{buildroot}/%{_libdir}/pkgconfig/%{name}%{?cc_name_suffix}.pc
|
sed 's#@NAME@#'%{name}'#g;s#@VERSION@#'%{version}'#g;s#@LIBDIR@#'%{_libdir}'#g;s#@CC@#'%{opt_cc}'#g;s#@MPIDIR@#'%{name}'#g;s#@MODEFLAG@#'%{?modeflag}'#g' < %SOURCE1 > %{buildroot}/%{_libdir}/pkgconfig/%{name}.pc
|
||||||
# Make the environment-modules file
|
# Make the environment-modules file
|
||||||
mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles
|
mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles
|
||||||
sed 's#@LIBDIR@#'%{_libdir}'#g;s#@MPIDIR@#'%{mpidir}'#g;s#@MODEFLAG@#'%{?modeflag}'#g' < %SOURCE2 > %{buildroot}/%{_datadir}/Modules/modulefiles/%{name}-%{_arch}%{?cc_name_suffix}
|
# Since we're doing our own substitution here, use our own definitions.
|
||||||
|
sed 's#@LIBDIR@#'%{_libdir}/%{name}'#g;s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;s#@INCDIR@#'%{_includedir}/%{namearch}'#g;s#@MANDIR@#'%{_mandir}/%{namearch}'#g;s#@PYSITEARCH@#'%{python_sitearch}/%{name}'#g;s#@COMPILER@#openmpi-'%{_arch}%{_cc_name_suffix}'#g;s#@SUFFIX@#'%{?_cc_name_suffix}'_openmpi#g' < %SOURCE2 > %{buildroot}/%{_datadir}/Modules/modulefiles/%{namearch}
|
||||||
|
# make the rpm config file
|
||||||
|
mkdir -p %{buildroot}/%{_sysconfdir}/rpm
|
||||||
|
cp %SOURCE3 %{buildroot}/%{_sysconfdir}/rpm/macros.%{namearch}
|
||||||
|
mkdir -p %{buildroot}/%{_fmoddir}/%{namearch}
|
||||||
|
mkdir -p %{buildroot}/%{python_sitearch}/openmpi%{?_cc_name_suffix}
|
||||||
%clean
|
%clean
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%dir %{_libdir}/%{name}
|
%dir %{_libdir}/%{name}
|
||||||
%dir %{_libdir}/%{mpidir}
|
%dir %{_sysconfdir}/%{namearch}
|
||||||
%dir %{_libdir}/%{mpidir}/etc
|
%dir %{_libdir}/%{name}/bin
|
||||||
%dir %{_libdir}/%{mpidir}/bin
|
%dir %{_libdir}/%{name}/lib
|
||||||
%dir %{_libdir}/%{mpidir}/lib
|
%dir %{_libdir}/%{name}/lib/openmpi
|
||||||
%dir %{_libdir}/%{mpidir}/lib/openmpi
|
%dir %{_mandir}/%{namearch}
|
||||||
%dir %{_libdir}/%{mpidir}/man
|
%dir %{_mandir}/%{namearch}/man1
|
||||||
%dir %{_libdir}/%{mpidir}/man/man1
|
%dir %{_mandir}/%{namearch}/man7
|
||||||
%dir %{_libdir}/%{mpidir}/man/man7
|
%dir %{_fmoddir}/%{namearch}
|
||||||
%dir %{_libdir}/%{mpidir}/share
|
%dir %{python_sitearch}/%{name}
|
||||||
%dir %{_libdir}/%{mpidir}/share/openmpi
|
%config(noreplace) %{_sysconfdir}/%{namearch}/*
|
||||||
%config(noreplace) %{_libdir}/%{mpidir}/etc/*
|
%{_libdir}/%{name}/bin/mpi[er]*
|
||||||
%{_libdir}/%{mpidir}/bin/mpi[er]*
|
%{_libdir}/%{name}/bin/ompi*
|
||||||
%{_libdir}/%{mpidir}/bin/ompi*
|
#%{_libdir}/%{name}/bin/opal-*
|
||||||
%{_libdir}/%{mpidir}/bin/opal-*
|
%{_libdir}/%{name}/bin/opari
|
||||||
%{_libdir}/%{mpidir}/bin/opari
|
%{_libdir}/%{name}/bin/orte*
|
||||||
%{_libdir}/%{mpidir}/bin/orte*
|
%{_libdir}/%{name}/bin/otf*
|
||||||
%{_libdir}/%{mpidir}/bin/otf*
|
%{_libdir}/%{name}/lib/*.so.*
|
||||||
%{_libdir}/%{mpidir}/lib/openmpi/*
|
%{_mandir}/%{namearch}/man1/mpi[er]*
|
||||||
%{_libdir}/%{mpidir}/lib/*.so.*
|
%{_mandir}/%{namearch}/man1/ompi*
|
||||||
%{_libdir}/%{mpidir}/man/man1/mpi[er]*
|
#%{_mandir}/%{namearch}/man1/opal-*
|
||||||
%{_libdir}/%{mpidir}/man/man1/ompi*
|
%{_mandir}/%{namearch}/man1/orte*
|
||||||
%{_libdir}/%{mpidir}/man/man1/opal-*
|
%{_mandir}/%{namearch}/man7/ompi*
|
||||||
%{_libdir}/%{mpidir}/man/man1/orte*
|
%{_mandir}/%{namearch}/man7/orte*
|
||||||
%{_libdir}/%{mpidir}/man/man7/ompi*
|
%{_libdir}/%{name}/lib/openmpi/*
|
||||||
%{_libdir}/%{mpidir}/man/man7/orte*
|
%{_datadir}/Modules/modulefiles/%{namearch}
|
||||||
%{_libdir}/%{mpidir}/share/openmpi/doc
|
#%files common
|
||||||
%{_libdir}/%{mpidir}/share/openmpi/amca-param-sets
|
%dir %{_libdir}/%{name}/share
|
||||||
%{_libdir}/%{mpidir}/share/openmpi/help*
|
%dir %{_libdir}/%{name}/share/openmpi
|
||||||
%{_libdir}/%{mpidir}/share/openmpi/mca*
|
%{_libdir}/%{name}/share/openmpi/doc
|
||||||
%{_datadir}/Modules/modulefiles/*
|
%{_libdir}/%{name}/share/openmpi/amca-param-sets
|
||||||
|
%{_libdir}/%{name}/share/openmpi/help*
|
||||||
|
%{_libdir}/%{name}/share/openmpi/mca*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%dir %{_libdir}/%{mpidir}/include
|
%dir %{_includedir}/%{namearch}
|
||||||
%dir %{_libdir}/%{mpidir}/man/man3
|
%dir %{_mandir}/%{namearch}/man3
|
||||||
%dir %{_libdir}/%{mpidir}/share/vampirtrace
|
%dir %{_libdir}/%{name}/share/vampirtrace
|
||||||
%{_libdir}/pkgconfig/%{name}%{?cc_name_suffix}.pc
|
%{_libdir}/pkgconfig/%{name}.pc
|
||||||
%{_libdir}/%{mpidir}/bin/mpi[cCf]*
|
%{_libdir}/%{name}/bin/mpi[cCf]*
|
||||||
%{_libdir}/%{mpidir}/bin/vt*
|
%{_libdir}/%{name}/bin/vt*
|
||||||
%{_libdir}/%{mpidir}/bin/opal_*
|
%{_libdir}/%{name}/bin/opal_*
|
||||||
%{_libdir}/%{mpidir}/include/*
|
%{_includedir}/%{namearch}/*
|
||||||
%{_libdir}/%{mpidir}/lib/*.so
|
%{_libdir}/%{name}/lib/*.so
|
||||||
%{_libdir}/%{mpidir}/lib/lib*.a
|
%{_libdir}/%{name}/lib/lib*.a
|
||||||
%{_libdir}/%{mpidir}/lib/mpi.mod
|
%{_libdir}/%{name}/lib/mpi.mod
|
||||||
%{_libdir}/%{mpidir}/man/man1/mpi[cCf]*
|
%{_mandir}/%{namearch}/man1/mpi[cCf]*
|
||||||
%{_libdir}/%{mpidir}/man/man1/opal_*
|
%{_mandir}/%{namearch}/man1/opal_*
|
||||||
%{_libdir}/%{mpidir}/man/man3/*
|
%{_mandir}/%{namearch}/man3/*
|
||||||
%{_libdir}/%{mpidir}/man/man7/opal*
|
%{_mandir}/%{namearch}/man7/opal*
|
||||||
%{_libdir}/%{mpidir}/share/openmpi/mpi*
|
%{_libdir}/%{name}/share/openmpi/mpi*
|
||||||
%{_libdir}/%{mpidir}/share/vampirtrace/*
|
%{_libdir}/%{name}/share/vampirtrace/*
|
||||||
|
%{_sysconfdir}/rpm/macros.%{namearch}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 9 2009 Jay Fenlason <fenlason@redhat.com> - 1.3.3-4
|
||||||
|
- Modify packaging to conform to
|
||||||
|
https://fedoraproject.org/wiki/PackagingDrafts/MPI (bz521334).
|
||||||
|
- remove --with-ft=cr from configure, as it was apparently causing problems
|
||||||
|
for some people.
|
||||||
|
- Add librdmacm-devel and librdmacm to BuildRequires (related bz515565).
|
||||||
|
- Add openmpi-bz515567.patch to add support for the latest Chelsio device IDs
|
||||||
|
(related bz515567).
|
||||||
|
- Add exclude-arch (s390 s390x) because we don't have required -devel packages
|
||||||
|
there.
|
||||||
|
|
||||||
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.3-3
|
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.3-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user