- Various fixes on the specification
- Resolves: #559009 Tue Feb 2 2010 Petr Machata <pmachata@redhat.com> - 1.41.0-5 - Introduce support for both OpenMPI and MPICH2 - Resolves: #559009
This commit is contained in:
parent
c4b14f1243
commit
cba7e47852
345
boost.spec
345
boost.spec
@ -10,10 +10,14 @@
|
||||
%define disable_long_double 1
|
||||
%endif
|
||||
|
||||
# Configuration of MPI backends
|
||||
%bcond_without mpich2
|
||||
%bcond_without openmpi
|
||||
|
||||
Name: boost
|
||||
Summary: The free peer-reviewed portable C++ source libraries
|
||||
Version: 1.41.0
|
||||
Release: 4%{?dist}
|
||||
Release: 5%{?dist}
|
||||
License: Boost
|
||||
URL: http://sodium.resophonic.com/boost-cmake/%{version}.cmake0/
|
||||
Group: System Environment/Libraries
|
||||
@ -37,8 +41,6 @@ Requires: boost-date-time = %{version}-%{release}
|
||||
Requires: boost-filesystem = %{version}-%{release}
|
||||
Requires: boost-graph = %{version}-%{release}
|
||||
Requires: boost-iostreams = %{version}-%{release}
|
||||
Requires: boost-mpi = %{version}-%{release}
|
||||
Requires: boost-mpi-python = %{version}-%{release}
|
||||
Requires: boost-program-options = %{version}-%{release}
|
||||
Requires: boost-python = %{version}-%{release}
|
||||
Requires: boost-regex = %{version}-%{release}
|
||||
@ -49,6 +51,20 @@ Requires: boost-test = %{version}-%{release}
|
||||
Requires: boost-thread = %{version}-%{release}
|
||||
Requires: boost-wave = %{version}-%{release}
|
||||
|
||||
# OpenMPI packages
|
||||
%if %{with openmpi}
|
||||
Requires: boost-openmpi = %{version}-%{release}
|
||||
Requires: boost-openmpi-python = %{version}-%{release}
|
||||
Requires: boost-graph-openmpi = %{version}-%{release}
|
||||
%endif
|
||||
|
||||
# MPICH2 packages
|
||||
%if %{with mpich2}
|
||||
Requires: boost-mpich2 = %{version}-%{release}
|
||||
Requires: boost-mpich2-python = %{version}-%{release}
|
||||
Requires: boost-graph-mpich2 = %{version}-%{release}
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: cmake
|
||||
BuildRequires: libstdc++-devel
|
||||
@ -58,7 +74,6 @@ BuildRequires: zlib-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: mpich2-devel
|
||||
|
||||
Patch0: boost-cmake-soname.patch
|
||||
Patch1: boost-graph-compile.patch
|
||||
@ -125,24 +140,6 @@ math library. Now that boost math library is header-only, this
|
||||
package is empty. It's kept around only so that during yum-assisted
|
||||
update, old libraries from boost-math package aren't left around.
|
||||
|
||||
%package mpi
|
||||
Summary: Runtime component of boost mpi library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description mpi
|
||||
|
||||
Runtime support for Boost.MPI, library providing a clean C++ API over
|
||||
the MPICH2 implementation of MPI.
|
||||
|
||||
%package mpi-python
|
||||
Summary: Python runtime component of boost mpi library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description mpi-python
|
||||
|
||||
Python support for Boost.MPI, library providing a clean C++ API over
|
||||
the MPICH2 implementation of MPI.
|
||||
|
||||
%package program-options
|
||||
Summary: Runtime component of boost program_options library
|
||||
Group: System Environment/Libraries
|
||||
@ -261,6 +258,103 @@ This package contains the documentation in the HTML format of the Boost C++
|
||||
libraries. The documentation provides the same content as that on the Boost
|
||||
web page (http://www.boost.org/doc/libs/1_40_0).
|
||||
|
||||
|
||||
%if %{with openmpi}
|
||||
|
||||
%package openmpi
|
||||
Summary: Runtime component of Boost.MPI library
|
||||
Group: System Environment/Libraries
|
||||
Requires: openmpi
|
||||
BuildRequires: openmpi-devel
|
||||
|
||||
%description openmpi
|
||||
|
||||
Runtime support for Boost.MPI-OpenMPI, a library providing a clean C++
|
||||
API over the OpenMPI implementation of MPI.
|
||||
|
||||
%package openmpi-devel
|
||||
Summary: Shared library symlinks for Boost.MPI
|
||||
Group: System Environment/Libraries
|
||||
Requires: boost-devel = %{version}-%{release}
|
||||
Requires: boost-openmpi = %{version}-%{release}
|
||||
|
||||
%description openmpi-devel
|
||||
|
||||
Devel package for Boost.MPI-OpenMPI, a library providing a clean C++
|
||||
API over the OpenMPI implementation of MPI.
|
||||
|
||||
%package openmpi-python
|
||||
Summary: Python runtime component of Boost.MPI library
|
||||
Group: System Environment/Libraries
|
||||
Requires: boost-openmpi = %{version}-%{release}
|
||||
|
||||
%description openmpi-python
|
||||
|
||||
Python support for Boost.MPI-OpenMPI, a library providing a clean C++
|
||||
API over the OpenMPI implementation of MPI.
|
||||
|
||||
%package graph-openmpi
|
||||
Summary: Runtime component of parallel boost graph library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description graph-openmpi
|
||||
|
||||
Runtime support for the Parallel BGL graph library. The interface and
|
||||
graph components are generic, in the same sense as the the Standard
|
||||
Template Library (STL). This libraries in this package use OpenMPI
|
||||
backend to do the parallel work.
|
||||
|
||||
%endif
|
||||
|
||||
|
||||
%if %{with mpich2}
|
||||
|
||||
%package mpich2
|
||||
Summary: Runtime component of Boost.MPI library
|
||||
Group: System Environment/Libraries
|
||||
Requires: mpich2
|
||||
BuildRequires: mpich2-devel
|
||||
|
||||
%description mpich2
|
||||
|
||||
Runtime support for Boost.MPI-MPICH2, a library providing a clean C++
|
||||
API over the MPICH2 implementation of MPI.
|
||||
|
||||
%package mpich2-devel
|
||||
Summary: Shared library symlinks for Boost.MPI
|
||||
Group: System Environment/Libraries
|
||||
Requires: boost-devel = %{version}-%{release}
|
||||
Requires: boost-mpich2 = %{version}-%{release}
|
||||
|
||||
%description mpich2-devel
|
||||
|
||||
Devel package for Boost.MPI-MPICH2, a library providing a clean C++
|
||||
API over the MPICH2 implementation of MPI.
|
||||
|
||||
%package mpich2-python
|
||||
Summary: Python runtime component of Boost.MPI library
|
||||
Group: System Environment/Libraries
|
||||
Requires: boost-mpich2 = %{version}-%{release}
|
||||
|
||||
%description mpich2-python
|
||||
|
||||
Python support for Boost.MPI-MPICH2, a library providing a clean C++
|
||||
API over the MPICH2 implementation of MPI.
|
||||
|
||||
%package graph-mpich2
|
||||
Summary: Runtime component of parallel boost graph library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description graph-mpich2
|
||||
|
||||
Runtime support for the Parallel BGL graph library. The interface and
|
||||
graph components are generic, in the same sense as the the Standard
|
||||
Template Library (STL). This libraries in this package use MPICH2
|
||||
backend to do the parallel work.
|
||||
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{full_version}
|
||||
|
||||
@ -269,19 +363,54 @@ sed 's/_FEDORA_SONAME/%{sonamever}/' %{PATCH0} | %{__patch} -p0 --fuzz=0
|
||||
%patch2 -p0
|
||||
|
||||
%build
|
||||
%{__mkdir_p} build
|
||||
cd build
|
||||
|
||||
# Support for building tests.
|
||||
%define boost_testflags -DBUILD_TESTS="NONE"
|
||||
%if %{with tests}
|
||||
%define boost_testflags -DBUILD_TESTS="ALL"
|
||||
%endif
|
||||
|
||||
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo %{boost_testflags} \
|
||||
-DENABLE_SINGLE_THREADED=YES -DINSTALL_VERSIONED=OFF ..
|
||||
make VERBOSE=1 %{?_smp_mflags}
|
||||
cd %{_builddir}/%{full_version}
|
||||
( echo ============================= build serial ==================
|
||||
mkdir serial
|
||||
cd serial
|
||||
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo %{boost_testflags} \
|
||||
-DENABLE_SINGLE_THREADED=YES -DINSTALL_VERSIONED=OFF \
|
||||
-DWITH_MPI=OFF ..
|
||||
make VERBOSE=1 %{?_smp_mflags}
|
||||
)
|
||||
|
||||
# Build MPI parts of Boost with OpenMPI support
|
||||
%if %{with openmpi}
|
||||
%{_openmpi_load}
|
||||
# Work around the bug: https://bugzilla.redhat.com/show_bug.cgi?id=560224
|
||||
MPI_COMPILER=openmpi-%{_arch}
|
||||
export MPI_COMPILER
|
||||
( echo ============================= build $MPI_COMPILER ==================
|
||||
mkdir $MPI_COMPILER
|
||||
cd $MPI_COMPILER
|
||||
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo %{boost_testflags} \
|
||||
-DENABLE_SINGLE_THREADED=YES -DINSTALL_VERSIONED=OFF \
|
||||
-DBUILD_PROJECTS="serialization;python;mpi;graph_parallel" \
|
||||
-DBOOST_LIB_INSTALL_DIR=$MPI_LIB ..
|
||||
make VERBOSE=1 %{?_smp_mflags}
|
||||
)
|
||||
%{_openmpi_unload}
|
||||
%endif
|
||||
|
||||
# Build MPI parts of Boost with MPICH2 support
|
||||
%if %{with mpich2}
|
||||
%{_mpich2_load}
|
||||
( echo ============================= build $MPI_COMPILER ==================
|
||||
mkdir $MPI_COMPILER
|
||||
cd $MPI_COMPILER
|
||||
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo %{boost_testflags} \
|
||||
-DENABLE_SINGLE_THREADED=YES -DINSTALL_VERSIONED=OFF \
|
||||
-DBUILD_PROJECTS="serialization;python;mpi;graph_parallel" \
|
||||
-DBOOST_LIB_INSTALL_DIR=$MPI_LIB ..
|
||||
make VERBOSE=1 %{?_smp_mflags}
|
||||
)
|
||||
%{_mpich2_unload}
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
%if %{with tests}
|
||||
@ -310,20 +439,59 @@ fi
|
||||
cd %{_builddir}/%{full_version}
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
|
||||
cd %{_builddir}/%{full_version}/build
|
||||
DESTDIR=$RPM_BUILD_ROOT make VERBOSE=1 install
|
||||
|
||||
# Suppress the mpi.so library, as it not currently properly generated (some
|
||||
# dependencies are missing. It is temporary until upstream Boost-CMake
|
||||
# fixes that (see http://lists.boost.org/boost-cmake/2009/12/0859.php for
|
||||
# more details)
|
||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/mpi.so
|
||||
cd %{_builddir}/%{full_version}/
|
||||
|
||||
%if %{with openmpi}
|
||||
%{_openmpi_load}
|
||||
# Work around the bug: https://bugzilla.redhat.com/show_bug.cgi?id=560224
|
||||
MPI_COMPILER=openmpi-%{_arch}
|
||||
export MPI_COMPILER
|
||||
echo ============================= install $MPI_COMPILER ==================
|
||||
DESTDIR=$RPM_BUILD_ROOT make -C $MPI_COMPILER VERBOSE=1 install
|
||||
# Remove parts of boost that we don't want installed in MPI directory.
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/libboost_{python,{w,}serialization}*
|
||||
# Suppress the mpi.so python module, as it not currently properly
|
||||
# generated (some dependencies are missing. It is temporary until
|
||||
# upstream Boost-CMake fixes that (see
|
||||
# http://lists.boost.org/boost-cmake/2009/12/0859.php for more
|
||||
# details)
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/mpi.so
|
||||
# Kill any debug library versions that may show up un-invited.
|
||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*-d.*
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/*-d.*
|
||||
# Remove cmake configuration files used to build the Boost libraries
|
||||
find $RPM_BUILD_ROOT/$MPI_LIB -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%{_openmpi_unload}
|
||||
%endif
|
||||
|
||||
%if %{with mpich2}
|
||||
%{_mpich2_load}
|
||||
echo ============================= install $MPI_COMPILER ==================
|
||||
DESTDIR=$RPM_BUILD_ROOT make -C $MPI_COMPILER VERBOSE=1 install
|
||||
# Remove parts of boost that we don't want installed in MPI directory.
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/libboost_{python,{w,}serialization}*
|
||||
# Suppress the mpi.so python module, as it not currently properly
|
||||
# generated (some dependencies are missing. It is temporary until
|
||||
# upstream Boost-CMake fixes that (see
|
||||
# http://lists.boost.org/boost-cmake/2009/12/0859.php for more
|
||||
# details)
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/mpi.so
|
||||
# Kill any debug library versions that may show up un-invited.
|
||||
%{__rm} -f $RPM_BUILD_ROOT/$MPI_LIB/*-d.*
|
||||
# Remove cmake configuration files used to build the Boost libraries
|
||||
find $RPM_BUILD_ROOT/$MPI_LIB -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%{_mpich2_unload}
|
||||
%endif
|
||||
|
||||
echo ============================= install serial ==================
|
||||
DESTDIR=$RPM_BUILD_ROOT make -C serial VERBOSE=1 install
|
||||
# Kill any debug library versions that may show up un-invited.
|
||||
%{__rm} -f $RPM_BUILD_ROOT/%{_libdir}/*-d.*
|
||||
# Remove cmake configuration files used to build the Boost libraries
|
||||
find $RPM_BUILD_ROOT/%{_libdir} -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
|
||||
# Prepare the place to temporary store the generated documentation
|
||||
%{__rm} -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
|
||||
@ -346,12 +514,14 @@ done
|
||||
# Remove scripts used to generate include files
|
||||
find $RPM_BUILD_ROOT%{_includedir}/ \( -name '*.pl' -o -name '*.sh' \) -exec %{__rm} -f {} \;
|
||||
|
||||
# Remove cmake configuration files used to build the Boost libraries
|
||||
find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
|
||||
%clean
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
# MPI subpackages don't need the ldconfig magic. They are hidden by
|
||||
# default, in MPI backend-specific directory, and only show to the
|
||||
# user after the relevant environment module has been loaded.
|
||||
|
||||
%post date-time -p /sbin/ldconfig
|
||||
|
||||
%postun date-time -p /sbin/ldconfig
|
||||
@ -368,14 +538,6 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
|
||||
%postun iostreams -p /sbin/ldconfig
|
||||
|
||||
%post mpi -p /sbin/ldconfig
|
||||
|
||||
%postun mpi -p /sbin/ldconfig
|
||||
|
||||
%post mpi-python -p /sbin/ldconfig
|
||||
|
||||
%postun mpi-python -p /sbin/ldconfig
|
||||
|
||||
%post program-options -p /sbin/ldconfig
|
||||
|
||||
%postun program-options -p /sbin/ldconfig
|
||||
@ -413,6 +575,7 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%postun wave -p /sbin/ldconfig
|
||||
|
||||
|
||||
|
||||
%files
|
||||
|
||||
%files date-time
|
||||
@ -428,7 +591,8 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%files graph
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_graph*.so.%{sonamever}
|
||||
%{_libdir}/libboost_graph.so.%{sonamever}
|
||||
%{_libdir}/libboost_graph-mt.so.%{sonamever}
|
||||
|
||||
%files iostreams
|
||||
%defattr(-, root, root, -)
|
||||
@ -484,17 +648,6 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_wave*.so.%{sonamever}
|
||||
|
||||
%files mpi
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_mpi.so.%{sonamever}
|
||||
%{_libdir}/libboost_mpi-mt.so.%{sonamever}
|
||||
|
||||
%files mpi-python
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_mpi_python*.so.%{sonamever}
|
||||
|
||||
%files doc
|
||||
%defattr(-, root, root, -)
|
||||
%doc %{boost_docdir}/*
|
||||
@ -503,7 +656,7 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_includedir}/%{name}
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/libboost_*.so
|
||||
%{_datadir}/%{name}-%{version}
|
||||
%{_datadir}/cmake/%{name}/BoostConfig*.cmake
|
||||
|
||||
@ -511,8 +664,76 @@ find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/*.a
|
||||
%if %{with mpich2}
|
||||
%{_libdir}/mpich2/lib/*.a
|
||||
%endif
|
||||
%if %{with openmpi}
|
||||
%{_libdir}/openmpi/lib/*.a
|
||||
%endif
|
||||
|
||||
# OpenMPI packages
|
||||
%if %{with openmpi}
|
||||
|
||||
%files openmpi
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/libboost_mpi.so.%{sonamever}
|
||||
%{_libdir}/openmpi/lib/libboost_mpi-mt.so.%{sonamever}
|
||||
|
||||
%files openmpi-devel
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/libboost_*.so
|
||||
|
||||
%files openmpi-python
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/libboost_mpi_python*.so.%{sonamever}
|
||||
|
||||
%files graph-openmpi
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever}
|
||||
%{_libdir}/openmpi/lib/libboost_graph_parallel-mt.so.%{sonamever}
|
||||
|
||||
%endif
|
||||
|
||||
# MPICH2 packages
|
||||
%if %{with mpich2}
|
||||
|
||||
%files mpich2
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/mpich2/lib/libboost_mpi.so.%{sonamever}
|
||||
%{_libdir}/mpich2/lib/libboost_mpi-mt.so.%{sonamever}
|
||||
|
||||
%files mpich2-devel
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/mpich2/lib/libboost_*.so
|
||||
|
||||
%files mpich2-python
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/mpich2/lib/libboost_mpi_python*.so.%{sonamever}
|
||||
|
||||
%files graph-mpich2
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/mpich2/lib/libboost_graph_parallel.so.%{sonamever}
|
||||
%{_libdir}/mpich2/lib/libboost_graph_parallel-mt.so.%{sonamever}
|
||||
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jan 30 2010 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.41.0-5
|
||||
- Various fixes on the specification
|
||||
- Resolves: #559009
|
||||
|
||||
* Tue Feb 2 2010 Petr Machata <pmachata@redhat.com> - 1.41.0-5
|
||||
- Introduce support for both OpenMPI and MPICH2
|
||||
- Resolves: #559009
|
||||
|
||||
* Mon Jan 25 2010 Petr Machata <pmachata@redhat.com> - 1.41.0-4
|
||||
- Add a patch to build mapnik
|
||||
- Resolves: #558383
|
||||
|
Loading…
Reference in New Issue
Block a user