369 lines
14 KiB
RPMSpec
369 lines
14 KiB
RPMSpec
Summary: A high-performance implementation of MPI
|
|
Name: mpich
|
|
Version: 3.2
|
|
Release: 2%{?dist}
|
|
License: MIT
|
|
Group: Development/Libraries
|
|
URL: http://www.mpich.org/
|
|
|
|
Source0: http://www.mpich.org/static/downloads/%{version}/%{name}-%{version}.tar.gz
|
|
Source1: mpich.macros
|
|
Source2: mpich.pth.py2
|
|
Source3: mpich.pth.py3
|
|
Patch0: mpich-modules.patch
|
|
Patch1: https://trac.mpich.org/projects/mpich/raw-attachment/ticket/2299/0001-pm-remshell-include-MPL-when-linking.patch
|
|
Patch2: 0002-pm-gforker-include-MPL-when-linking.patch
|
|
Patch3: 0003-soften-version-check.patch
|
|
|
|
BuildRequires: gcc-gfortran
|
|
BuildRequires: hwloc-devel >= 1.8
|
|
%ifnarch s390
|
|
BuildRequires: valgrind-devel
|
|
%endif
|
|
# For python[23]_sitearch
|
|
BuildRequires: python2-devel
|
|
BuildRequires: python3-devel
|
|
BuildRequires: rpm-mpi-hooks
|
|
BuildRequires: automake
|
|
Provides: mpi
|
|
Provides: mpich2 = %{version}
|
|
Obsoletes: mpich2 < 3.0
|
|
Requires: environment(modules)
|
|
|
|
%description
|
|
MPICH is a high-performance and widely portable implementation of the Message
|
|
Passing Interface (MPI) standard (MPI-1, MPI-2 and MPI-3). The goals of MPICH
|
|
are: (1) to provide an MPI implementation that efficiently supports different
|
|
computation and communication platforms including commodity clusters (desktop
|
|
systems, shared-memory systems, multicore architectures), high-speed networks
|
|
(10 Gigabit Ethernet, InfiniBand, Myrinet, Quadrics) and proprietary high-end
|
|
computing systems (Blue Gene, Cray) and (2) to enable cutting-edge research in
|
|
MPI through an easy-to-extend modular framework for other derived
|
|
implementations.
|
|
|
|
The mpich binaries in this RPM packages were configured to use the default
|
|
process manager (Hydra) using the default device (ch3). The ch3 device
|
|
was configured with support for the nemesis channel that allows for
|
|
shared-memory and TCP/IP sockets based communication.
|
|
|
|
This build also include support for using the 'module environment' to select
|
|
which MPI implementation to use when multiple implementations are installed.
|
|
If you want MPICH support to be automatically loaded, you need to install the
|
|
mpich-autoload package.
|
|
|
|
%package autoload
|
|
Summary: Load mpich automatically into profile
|
|
Group: System Environment/Base
|
|
Requires: mpich = %{version}-%{release}
|
|
Provides: mpich2-autoload = 3.0.1
|
|
Obsoletes: mpich2-autoload < 3.0
|
|
|
|
%description autoload
|
|
This package contains profile files that make mpich automatically loaded.
|
|
|
|
%package devel
|
|
Summary: Development files for mpich
|
|
Group: Development/Libraries
|
|
Provides: %{name}-devel-static = %{version}-%{release}
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires: pkgconfig
|
|
Requires: gcc-gfortran
|
|
Requires: rpm-mpi-hooks
|
|
Provides: mpich2-devel = 3.0.1
|
|
Obsoletes: mpich2-devel < 3.0
|
|
|
|
%description devel
|
|
Contains development headers and libraries for mpich
|
|
|
|
%package doc
|
|
Summary: Documentations and examples for mpich
|
|
Group: Documentation
|
|
BuildArch: noarch
|
|
Requires: %{name}-devel = %{version}-%{release}
|
|
Provides: mpich2-doc = 3.0.1
|
|
Obsoletes: mpich2-doc < 3.0
|
|
|
|
%description doc
|
|
Contains documentations, examples and man-pages for mpich
|
|
|
|
# We only compile with gcc, but other people may want other compilers.
|
|
# Set the compiler here.
|
|
%{!?opt_cc: %global opt_cc gcc}
|
|
%{!?opt_fc: %global opt_fc gfortran}
|
|
%{!?opt_f77: %global opt_f77 gfortran}
|
|
# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
|
|
# so uncomment and undefine to NOT use
|
|
%{!?opt_cc_cflags: %global opt_cc_cflags %{optflags}}
|
|
%{!?opt_fc_fflags: %global opt_fc_fflags %{optflags}}
|
|
#%%{!?opt_fc_fflags: %%global opt_fc_fflags %%{optflags} -I%%{_fmoddir}}
|
|
%{!?opt_f77_fflags: %global opt_f77_fflags %{optflags}}
|
|
|
|
%ifarch s390
|
|
%global m_option -m31
|
|
%else
|
|
%global m_option -m%{__isa_bits}
|
|
%endif
|
|
|
|
%ifarch %{arm} aarch64
|
|
%global m_option ""
|
|
%endif
|
|
|
|
%ifarch %{ix86} x86_64
|
|
%global selected_channels ch3:nemesis
|
|
%else
|
|
%global selected_channels ch3:sock
|
|
%endif
|
|
|
|
%ifarch %{ix86} x86_64 s390 %{arm} aarch64
|
|
%global XFLAGS -fPIC
|
|
%endif
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
%build
|
|
%configure \
|
|
--enable-sharedlibs=gcc \
|
|
--enable-shared \
|
|
--enable-static=no \
|
|
--enable-lib-depend \
|
|
--disable-rpath \
|
|
--disable-silent-rules \
|
|
--enable-fc \
|
|
--with-device=%{selected_channels} \
|
|
--with-pm=hydra:gforker \
|
|
--includedir=%{_includedir}/%{name}-%{_arch} \
|
|
--bindir=%{_libdir}/%{name}/bin \
|
|
--libdir=%{_libdir}/%{name}/lib \
|
|
--datadir=%{_datadir}/%{name} \
|
|
--mandir=%{_mandir}/%{name}-%{_arch} \
|
|
--docdir=%{_datadir}/%{name}/doc \
|
|
--htmldir=%{_datadir}/%{name}/doc \
|
|
--with-hwloc-prefix=system \
|
|
FC=%{opt_fc} \
|
|
F77=%{opt_f77} \
|
|
CFLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
CXXFLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
FCFLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
FFLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
LDFLAGS='-Wl,-z,noexecstack' \
|
|
MPICHLIB_CFLAGS="%{?opt_cc_cflags}" \
|
|
MPICHLIB_CXXFLAGS="%{optflags}" \
|
|
MPICHLIB_FCFLAGS="%{?opt_fc_fflags}" \
|
|
MPICHLIB_FFLAGS="%{?opt_f77_fflags}"
|
|
# MPICHLIB_LDFLAGS='-Wl,-z,noexecstack' \
|
|
# MPICH_MPICC_FLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
# MPICH_MPICXX_FLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
# MPICH_MPIFC_FLAGS="%{m_option} -O2 %{?XFLAGS}" \
|
|
# MPICH_MPIF77_FLAGS="%{m_option} -O2 %{?XFLAGS}"
|
|
# --with-openpa-prefix=embedded \
|
|
|
|
# FCFLAGS="%{?opt_fc_fflags} -I%{_fmoddir}/%{name} %{?XFLAGS}" \
|
|
|
|
#Try and work around 'unused-direct-shlib-dependency' rpmlint warnning
|
|
sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
|
|
|
|
make %{?_smp_mflags} VERBOSE=1
|
|
|
|
%install
|
|
%make_install
|
|
|
|
mkdir -p %{buildroot}/%{_fmoddir}/%{name}
|
|
mv %{buildroot}%{_includedir}/%{name}-*/*.mod %{buildroot}/%{_fmoddir}/%{name}/
|
|
|
|
# Install the module file
|
|
mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
|
|
sed -r 's|%{_bindir}|%{_libdir}/%{name}/bin|;
|
|
s|@LIBDIR@|%{_libdir}/%{name}|;
|
|
s|@MPINAME@|%{name}|;
|
|
s|@py2sitearch@|%{python2_sitearch}|;
|
|
s|@py3sitearch@|%{python3_sitearch}|;
|
|
s|@ARCH@|%{_arch}|;
|
|
s|@fortranmoddir@|%{_fmoddir}|;
|
|
' \
|
|
<src/packaging/envmods/mpich.module \
|
|
>%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{name}-%{_arch}
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
|
|
cat >%{buildroot}%{_sysconfdir}/profile.d/mpich-%{_arch}.sh <<EOF
|
|
# Load mpich environment module
|
|
module load mpi/%{name}-%{_arch}
|
|
EOF
|
|
cp -p %{buildroot}%{_sysconfdir}/profile.d/mpich-%{_arch}.{sh,csh}
|
|
|
|
# Install the RPM macros
|
|
install -pDm0644 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/macros.d/macros.%{name}
|
|
|
|
# Install the .pth files
|
|
mkdir -p %{buildroot}%{python2_sitearch}/%{name}
|
|
install -pDm0644 %{SOURCE2} %{buildroot}%{python2_sitearch}/%{name}.pth
|
|
mkdir -p %{buildroot}%{python3_sitearch}/%{name}
|
|
install -pDm0644 %{SOURCE3} %{buildroot}%{python3_sitearch}/%{name}.pth
|
|
|
|
find %{buildroot} -type f -name "*.la" -delete
|
|
|
|
%check
|
|
make check VERBOSE=1
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
%files
|
|
%license COPYRIGHT
|
|
%doc CHANGES README README.envvar RELEASE_NOTES
|
|
%dir %{_libdir}/%{name}
|
|
%dir %{_libdir}/%{name}/lib
|
|
%dir %{_libdir}/%{name}/bin
|
|
%{_libdir}/%{name}/lib/*.so.*
|
|
%{_libdir}/%{name}/bin/*
|
|
%dir %{python2_sitearch}/%{name}
|
|
%{python2_sitearch}/%{name}.pth
|
|
%dir %{python3_sitearch}/%{name}
|
|
%{python3_sitearch}/%{name}.pth
|
|
%dir %{_mandir}/%{name}-%{_arch}
|
|
%doc %{_mandir}/%{name}-%{_arch}/man1/
|
|
%{_sysconfdir}/modulefiles/mpi/
|
|
|
|
%files autoload
|
|
%{_sysconfdir}/profile.d/mpich-%{_arch}.*
|
|
|
|
%files devel
|
|
%{_includedir}/%{name}-%{_arch}/
|
|
%{_libdir}/%{name}/lib/pkgconfig/
|
|
%{_libdir}/%{name}/lib/*.so
|
|
%{_fmoddir}/%{name}/
|
|
%{_rpmconfigdir}/macros.d/macros.%{name}
|
|
%{_mandir}/%{name}-%{_arch}/man3/
|
|
|
|
%files doc
|
|
%dir %{_datadir}/%{name}
|
|
%{_datadir}/%{name}/doc/
|
|
|
|
%changelog
|
|
* Wed Dec 9 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.2-2
|
|
- Soften version check (#1289779)
|
|
|
|
* Tue Dec 1 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.2-1
|
|
- Update to latest version
|
|
|
|
* Mon Nov 16 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.1.4-9
|
|
- Update requires and fix MPI_FORTRAN_MOD_DIR var
|
|
|
|
* Mon Nov 16 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.1.4-8
|
|
- Move fortran .mod files to %%{_fmoddir}/mpich (#1154991)
|
|
- Move man pages to arch-specific dir (#1264359)
|
|
|
|
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-7
|
|
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
|
|
|
|
* Thu Aug 27 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.1.4-6
|
|
- Use .pth files to set the python path (https://fedorahosted.org/fpc/ticket/563)
|
|
- Cleanups to the spec file
|
|
|
|
* Sun Jul 26 2015 Sandro Mani <manisandro@gmail.com> - 3.1.4-5
|
|
- Require, BuildRequire: rpm-mpi-hooks
|
|
|
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-4
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
|
|
|
* Sat May 9 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.1.4-3
|
|
- Change MPI_SYCONFIG to /etc/mpich-x86_64 (#1196728)
|
|
|
|
* Fri Mar 13 2015 Orion Poplawski <orion@cora.nwra.com> - 3.1.4-2
|
|
- Set PKG_CONFIG_DIR (bug #1113627)
|
|
- Fix modulefile names and python paths (bug#1201343)
|
|
|
|
* Wed Mar 11 2015 Orion Poplawski <orion@cora.nwra.com> - 3.1.4-1
|
|
- Update to 3.1.4
|
|
- Own and set PKG_CONFIG_DIR (bug #1113627)
|
|
- Do not ship old modulefile location (bug #921534)
|
|
|
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1-4
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
|
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1-3
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
|
|
* Fri Feb 21 2014 Ville Skyttä <ville.skytta@iki.fi> - 3.1-2
|
|
- Install rpm macros to %%{_rpmconfigdir}/macros.d as non-%%config.
|
|
|
|
* Fri Feb 21 2014 Deji Akingunola <dakingun@gmail.com> - 3.1-1
|
|
- Update to 3.1
|
|
|
|
* Mon Jan 6 2014 Peter Robinson <pbrobinson@fedoraproject.org> 3.0.4-7
|
|
- Set the aarch64 compiler options
|
|
|
|
* Fri Dec 13 2013 Peter Robinson <pbrobinson@fedoraproject.org> 3.0.4-6
|
|
- Now have valgrind on ARMv7
|
|
- No valgrind on aarch64
|
|
|
|
* Fri Aug 23 2013 Orion Poplawski <orion@cora.nwra.com> - 3.0.4-5
|
|
- Add %%check
|
|
|
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.4-4
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
|
|
|
* Sat Jul 20 2013 Deji Akingunola <dakingun@gmail.com> - 3.0.4-3
|
|
- Add proper Provides and Obsoletes for the sub-packages
|
|
|
|
* Thu Jul 18 2013 Deji Akingunola <dakingun@gmail.com> - 3.0.4-2
|
|
- Fix some of the rpmlint warnings from package review (BZ #973493)
|
|
|
|
* Wed Jun 12 2013 Deji Akingunola <dakingun@gmail.com> - 3.0.4-1
|
|
- Update to 3.0.4
|
|
|
|
* Thu Feb 21 2013 Deji Akingunola <dakingun@gmail.com> - 3.0.2-1
|
|
- Update to 3.0.2
|
|
- Rename to mpich.
|
|
- Drop check for old alternatives' installation
|
|
|
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
|
|
* Thu Nov 1 2012 Orion Poplawski <orion@cora.nwra.com> - 1.5-1
|
|
- Update to 1.5
|
|
- Drop destdir-fix and mpicxx-und patches
|
|
- Update rpm macros to use the new module location
|
|
|
|
* Wed Oct 31 2012 Orion Poplawski <orion@cora.nwra.com> - 1.4.1p1-9
|
|
- Install module file in mpi subdirectory and conflict with other mpi modules
|
|
- Leave existing module file location for backwards compatibility for a while
|
|
|
|
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.1p1-8
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
|
* Wed Feb 15 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.4.1p1-7
|
|
- Rebuild for new hwloc
|
|
|
|
* Wed Feb 15 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.4.1p1-6
|
|
- Update ARM build configuration
|
|
|
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.1p1-5
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
|
|
|
* Mon Jan 2 2012 Jussi Lehtola <jussilehtola@fedoraproject.org> - 1.4.1p1-4
|
|
- Bump spec.
|
|
|
|
* Wed Nov 16 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 1.4.1p1-3
|
|
- Comply to MPI guidelines by separating autoloading into separate package
|
|
(BZ #647147).
|
|
|
|
* Tue Oct 18 2011 Deji Akingunola <dakingun@gmail.com> - 1.4.1p1-2
|
|
- Rebuild for hwloc soname bump.
|
|
|
|
* Sun Sep 11 2011 Deji Akingunola <dakingun@gmail.com> - 1.4.1p1-1
|
|
- Update to 1.4.1p1 patch update
|
|
- Add enable-lib-depend to configure flags
|
|
|
|
* Sat Aug 27 2011 Deji Akingunola <dakingun@gmail.com> - 1.4.1-1
|
|
- Update to 1.4.1 final
|
|
- Drop the mpd subpackage, the PM is no longer supported upstream
|
|
- Fix undefined symbols in libmpichcxx (again) (#732926)
|
|
|
|
* Wed Aug 03 2011 Jussi Lehtola <jussilehtola@fedoraproject.org> - 1.4-2
|
|
- Respect environment module guidelines wrt placement of module file.
|
|
|
|
* Fri Jun 17 2011 Deji Akingunola <dakingun@gmail.com> - 1.4-1
|
|
- Update to 1.4 final
|