Summary: Portable MPI Model Implementation
-Summary(pl): Przeno¶na implementacja standardu MPI
+Summary(pl.UTF-8): Przenośna implementacja standardu MPI
Name: mpich
-Version: 1.2.6
+Version: 3.1.3
Release: 1
-License: Open source (MPICH), BSD-like (MPI-2-C++)
+License: BSD-like
Group: Development/Libraries
-Source0: ftp://ftp.mcs.anl.gov/pub/mpi/%{name}-%{version}.tar.bz2
-# Source0-md5: 4c4e2bc23b5f1b73b577bc630f782913
-Patch0: %{name}-fuckssh.patch
-Patch1: %{name}-opt.patch
-Patch2: http://squishy.monkeysoft.net/mpich/%{name}-1.2.5-oM.patch
-URL: http://www-unix.mcs.anl.gov/mpi/
-BuildRequires: gcc-g77
+Source0: http://www.mpich.org/static/downloads/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 93cb17f91ac758cbf9174ecb03563778
+Patch0: %{name}-sh.patch
+Patch1: %{name}-opalink.patch
+URL: http://www.mpich.org/
+BuildRequires: autoconf >= 2.63
+BuildRequires: automake >= 1:1.12.3
+BuildRequires: blcr-devel
+BuildRequires: ftb-devel
+BuildRequires: gcc-fortran
+BuildRequires: hwloc-devel >= 1.9.0
BuildRequires: libstdc++-devel
+BuildRequires: libtool >= 2:2
+BuildRequires: openpa-devel
+Requires: hwloc-libs >= 1.9.0
+Provides: mpi
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-MPICH is an open-source, portable implementation of the
-Message-Passing Interface Standard. It contains a complete
-implementation of version 1.2 of the MPI Standard and also significant
-parts of MPI-2, particularly in the area of parallel I/O.
+MPICH is a high-performance and widely portable implementation of the
+MPI-3.0 standard from the Argonne National Laboratory. This release
+has all MPI 3.0 functions and features required by the standard with
+the exception of support for the "external32" portable I/O format and
+user-defined data representations for I/O.
-%description -l pl
-MPICH jest wolnodostêpn± implementacj± standardu MPI (Message-Passing
-Interface). Zawiera pe³n± implementacjê wersji MPI 1.2 oraz znaczne
-czê¶ci wersji MPI-2, szczególnie w zakresie równoleg³ej komunikacji.
+This package contains MPICH shared libraries and runtime utilities,
+including Hydra PM.
+
+%description -l pl.UTF-8
+MPICH to wysoko wydajna i przenośna implementacja standardu MPI-3.0
+pochodząca z Argonne National Laboratory. To wydanie zawiera całą
+funkcjonalność i możliwości MPI 3.0 wymagane przez standard z
+wyjątkiem obsługi przenośnego formatu we-wy "external32" oraz
+definiowanych przez użytkownika reprezentacji danych dla we/wy.
+
+Ten pakiet zawiera biblioteki współdzielone MPICH oraz narzędzia
+uruchomieniowe, w tym Hydra PM.
+
+%package devel
+Summary: MPICH header files and development tools
+Summary(pl.UTF-8): Pliki nagłówkowe oraz narzędzia programistyczne MPICH
+Group: Development
+Requires: %{name} = %{version}-%{release}
+Provides: mpi-devel
+
+%description devel
+MPICH header files and development tools.
+
+%description devel
+Pliki nagłówkowe oraz narzędzia programistyczne MPICH.
+
+%package static
+Summary: MPICH static libraries
+Summary(pl.UTF-8): Biblioteki statyczne MPICH
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Provides: mpi-static
+
+%description static
+MPICH static libraries.
+
+%description static -l pl.UTF-8
+Biblioteki statyczne MPICH.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
-%patch2 -p1
%build
-# note: can't run autoconf - we must patch configure not only configure.in
-# also, don't change it to %%configure - it won't work
-# no configure options for sysconfdir and messagecat_dir :/
-sysconfdir=%{_sysconfdir} \
-messagecat_dir=%{_libdir} \
-./configure \
- --prefix=%{_prefix} \
- --exec_prefix=%{_prefix} \
- --includedir=%{_includedir} \
- --sharedlib=%{_libdir} \
- --libdir=%{_libdir} \
- --datadir=%{_datadir}/%{name} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --mandir=%{_mandir} \
- --docdir=%{_docdir} \
- -opt="%{rpmcflags}"
+%{__libtoolize}
+%{__aclocal} -I confdb
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%configure \
+ --disable-silent-rules \
+ --with-hwloc-prefix=system \
+ --with-openpa-prefix=system
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-# really awful
-DESTDIR=$RPM_BUILD_ROOT ; export DESTDIR
-%{__make} install
-
-# fix symlinks
-(cd $RPM_BUILD_ROOT%{_libdir}
-rm -f libfmpich.so libmpich.so libpmpich.so
-ln -sf libfmpich.so.*.* libfmpich.so
-ln -sf libmpich.so.*.* libmpich.so
-ln -sf libpmpich.so.*.* libpmpich.so
-)
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-mv -f $RPM_BUILD_ROOT%{_prefix}/examples/* \
- $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%{__rm} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/{cpi,cpi.o,examples.sln}
-(cd $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-rm -f mpirun MPI-2-C++/mpirun
-ln -sf %{_bindir}/mpirun mpirun
-ln -sf %{_bindir}/mpirun MPI-2-C++/mpirun
-)
+# see openpa.spec
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libopa.so
-# argh... where came that 4 from???
-for f in $RPM_BUILD_ROOT%{_mandir}/man4/*.4 ; do
- mv -f "$f" $RPM_BUILD_ROOT%{_mandir}/man3/`basename "$f" .4`.3
-done
-
-for f in HISTORY LICENSE README TODO ; do
- mv -f MPI-2-C++/$f $f.MPI-2-C++
-done
+# PDFs packaged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/mpich
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc doc/*.ps* COPYRIGHT README KnownBugs
-%attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_sbindir}/*
-%attr(755,root,root) %{_libdir}/lib*.so*
-%{_libdir}/lib*.a
-%{_libdir}/mpe_prof.o
-%{_sysconfdir}/mpichversion.c
-%{_sysconfdir}/mpichconf.h.dat
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/mpi*.conf
-%{_includedir}/*.h
-%{_includedir}/mpi2c++
-%{_mandir}/man1/*
-%{_mandir}/man3/*
-%{_datadir}/mpich
+%doc CHANGES COPYRIGHT README README.envvar RELEASE_NOTES doc/{installguide/install.pdf,logging/logging.pdf,userguide/user.pdf}
+%attr(755,root,root) %{_bindir}/hydra_nameserver
+%attr(755,root,root) %{_bindir}/hydra_persist
+%attr(755,root,root) %{_bindir}/hydra_pmi_proxy
+%attr(755,root,root) %{_bindir}/mpichversion
+%attr(755,root,root) %{_bindir}/mpiexec
+%attr(755,root,root) %{_bindir}/mpiexec.hydra
+%attr(755,root,root) %{_bindir}/mpirun
+%attr(755,root,root) %{_bindir}/mpivars
+%attr(755,root,root) %{_bindir}/parkill
+%attr(755,root,root) %{_libdir}/libmpi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpi.so.12
+%attr(755,root,root) %{_libdir}/libmpicxx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpicxx.so.12
+%attr(755,root,root) %{_libdir}/libmpifort.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpifort.so.12
+%{_mandir}/man1/hydra_nameserver.1*
+%{_mandir}/man1/hydra_persist.1*
+%{_mandir}/man1/hydra_pmi_proxy.1*
+%{_mandir}/man1/mpiexec.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mpic++
+%attr(755,root,root) %{_bindir}/mpicc
+%attr(755,root,root) %{_bindir}/mpicxx
+%attr(755,root,root) %{_bindir}/mpif77
+%attr(755,root,root) %{_bindir}/mpif90
+%attr(755,root,root) %{_bindir}/mpifort
+%attr(755,root,root) %{_libdir}/libmpi.so
+%attr(755,root,root) %{_libdir}/libmpicxx.so
+%attr(755,root,root) %{_libdir}/libmpifort.so
+%attr(755,root,root) %{_libdir}/libfmpich.so
+%attr(755,root,root) %{_libdir}/libmpich.so
+%attr(755,root,root) %{_libdir}/libmpichcxx.so
+%attr(755,root,root) %{_libdir}/libmpichf90.so
+%attr(755,root,root) %{_libdir}/libmpl.so
+%{_libdir}/libmpi.la
+%{_libdir}/libmpicxx.la
+%{_libdir}/libmpifort.la
+%{_includedir}/mpi*.h
+%{_includedir}/mpi*.mod
+%{_pkgconfigdir}/mpich.pc
+%{_mandir}/man1/mpicc.1*
+%{_mandir}/man1/mpicxx.1*
+%{_mandir}/man1/mpif77.1*
+%{_mandir}/man1/mpifort.1*
+%{_mandir}/man3/MPIX_*.3*
+%{_mandir}/man3/MPI_*.3*
%{_examplesdir}/%{name}-%{version}
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libmpi.a
+%{_libdir}/libmpicxx.a
+%{_libdir}/libmpifort.a