boost/boost.spec
Philipp Thomas fd1ad15b68 Accepting request 431312 from home:adamm:branches:devel:libraries:c_c++
If accepting, don't forward to factory. Some more changes pending.
Plus we can see what breaks in the devel project first.

- update to version 1.62.0
  * new library: fiber: framework for userland-threads/fibers
  * new library: QVM: library for working with quaternions,
        vectors and matrices of static size
  * see http://www.boost.org/users/history/version_1_62_0.html
    for complete changelog
- remove boost-fix_include_config.patch - upstreamed
- gcc_path.patch - fix GCC search paths (bnc#996917)
  Boost assumes /usr/include/c++/x.y.z/ existence for GCC 4.x
  onward while our version of GCC only has /usr/include/c++/x.y
  for 4.x GCC and /usr/include/c++/x/ for 5.x onward.
- migrate to using %bcond_ instead of hardcoding macros
  for different Boost features
- better way to limit max number of compilation units than
  by reading /proc/meminfo and guesstimating.

OBS-URL: https://build.opensuse.org/request/show/431312
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=175
2016-09-30 09:33:49 +00:00

906 lines
28 KiB
RPMSpec

#
# spec file for package boost
#
# Copyright (c) 2016 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/
#
%define ver 1.62.0
%define file_version 1_62_0
%define docs_version 1.56.0
%define short_version 1_56
%define lib_appendix 1_62_0
%bcond_with build_docs
%bcond_without package_pdf
%bcond_without build_quickbook
%define build_docs 0
%define boost_l1 libboost_date_time%{lib_appendix} libboost_filesystem%{lib_appendix} libboost_graph%{lib_appendix}
%define boost_l2 libboost_iostreams%{lib_appendix} libboost_math%{lib_appendix} libboost_test%{lib_appendix}
%define boost_l3 libboost_program_options%{lib_appendix} libboost_python%{lib_appendix} libboost_python3-%{lib_appendix} libboost_serialization%{lib_appendix}
%define boost_l4 libboost_signals%{lib_appendix} libboost_system%{lib_appendix} libboost_thread%{lib_appendix}
%define boost_l5 libboost_wave%{lib_appendix} libboost_regex%{lib_appendix} libboost_regex%{lib_appendix}
%define boost_l6 libboost_random%{lib_appendix} libboost_chrono%{lib_appendix} libboost_locale%{lib_appendix}
%define boost_l7 libboost_timer%{lib_appendix} libboost_atomic%{lib_appendix} libboost_log%{lib_appendix} libboost_container%{lib_appendix}
%define most_libs %{boost_l1} %{boost_l2} %{boost_l3} %{boost_l4} %{boost_l5} %{boost_l6} %{boost_l7}
%define my_docdir %{_docdir}/boost-%{version}
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
%ifarch ia64 hppa
%bcond_with build_mpi
%else
%bcond_without build_mpi
%endif
# context hasn't been ported to most architectures yet
%ifarch %ix86 x86_64 %arm aarch64 mips ppc ppc64 ppc64le
%bcond_without build_context
%else
%bcond_with build_context
%endif
# needs newer GCC to compile runtime
%if %{with build_context} && 0%{?suse_version} > 1320
%bcond_without boost_fiber
%else
%bcond_with boost_fiber
%endif
%ifarch hppa
%bcond_with long_double
%else
%bcond_without long_double
%endif
%if %{with build_context}
%define context_libs libboost_context%{lib_appendix} libboost_coroutine%{lib_appendix}
%endif
%if %{with build_mpi}
%define mpi_libs libboost_graph_parallel%lib_appendix libboost_mpi%{lib_appendix}
%endif
%if %{with boost_fiber}
BuildRequires: gcc-c++ > 5
%define fiber_libs libboost_fiber%{lib_appendix}
%endif
%define all_libs %{most_libs} %{?context_libs} %{?mpi_libs} %{?fiber_libs}
Name: boost
%define package_name boost_1_62
Version: 1.62.0
Release: 0
Summary: Boost C++ Libraries
License: BSL-1.0
Group: Development/Libraries/C and C++
Url: http://www.boost.org
Source0: http://downloads.sourceforge.net/project/boost/boost/%{version}/boost_%{file_version}.tar.bz2
Source1: boost-rpmlintrc
Source3: http://downloads.sourceforge.net/project/boost/boost-docs/%{docs_version}/boost_%{short_version}_pdf.tar.bz2
Source4: existing_extra_docs
#Source5: NEWS
Source100: baselibs.conf
Patch1: boost-thread.patch
Patch2: boost-no_type_punning.patch
Patch3: boost-no_segfault_in_Regex_filter.patch
Patch4: boost-pool_check_overflow.patch
Patch5: boost-strict_aliasing.patch
Patch6: boost-use_std_xml_catalog.patch
Patch7: boost-rpmoptflags-only.patch
Patch9: boost-aarch64-flags.patch
Patch10: boost-disable-pch-on-aarch64.patch
Patch13: boost-visibility.patch
Patch14: boost-1.57.0-python-libpython_dep.patch
Patch15: boost-1.57.0-python-abi_letters.patch
Patch16: boost-1.55.0-python-test-PyImport_AppendInittab.patch
Patch100: gcc_path.patch
BuildRequires: chrpath
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: gcc-c++
%if 0%{?suse_version} <= 1320
# boost requires quadmath.h
BuildRequires: gcc-fortran
%endif
BuildRequires: libbz2-devel
BuildRequires: libexpat-devel
BuildRequires: libicu-devel >= 4.4
BuildRequires: python-devel
BuildRequires: python3-devel
#!BuildIgnore: python
BuildRequires: zlib-devel
Recommends: %{all_libs}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with build_mpi}
BuildRequires: openmpi-devel
%endif
%if %{with build_docs}
BuildRequires: docbook
BuildRequires: docbook-xsl-stylesheets
BuildRequires: doxygen
BuildRequires: libxslt-tools
BuildRequires: texlive-latex
%endif
%description
Boost provides free peer-reviewed portable C++ source libraries. The
emphasis is on libraries that work well with the C++ Standard Library.
One goal is to establish "existing practice" and provide reference
implementations so that the Boost libraries are suitable for eventual
standardization. Some of the libraries have already been proposed for
inclusion in the C++ Standards Committee's upcoming C++ Standard
Library Technical Report.
Although Boost was begun by members of the C++ Standards Committee
Library Working Group, membership has expanded to include nearly two
thousand members of the C++ community at large.
This package is mainly needed for updating from a prior version, the
dynamic libraries are found in their respective package. For development
using Boost, you also need the boost-devel package. For documentation,
see the boost-doc package.
%package -n %{package_name}-devel
Summary: Development package for Boost C++
Group: Development/Libraries/C and C++
Requires: %{all_libs}
Requires: libstdc++-devel
Provides: boost-devel = %version
Conflicts: otherproviders(boost-devel)
%description -n %{package_name}-devel
This package contains all that is needed to develop/compile
applications that use the Boost C++ libraries. For documentation see
the documentation packages (html, man or pdf).
%package -n boost-license%{lib_appendix}
Summary: Boost License
Group: Development/Libraries/C and C++
Provides: boost-license = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n boost-license%{lib_appendix}
This package contains the license boost is provided under.
%package -n %{package_name}-doc-html
Summary: HTML documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n %{package_name}-doc-html
This package contains the documentation of the boost dynamic libraries
in HTML format.
# %%package doc-man
# Summary: Man documentation for the Boost C++ Libraries
# Group: Development/Libraries/C and C++
# %%if 0%%{?suse_version} >= 1120
# BuildArch: noarch
# %%endif
#
# %%description doc-man
# This package contains the documentation of the boost dynamic libraries
# as man pages.
%if %{with package_pdf}
%package -n %{package_name}-doc-pdf
Summary: PDF documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n %{package_name}-doc-pdf
This package contains the documentation of the boost dynamic libraries
in PDF format.
%endif
%package -n libboost_atomic%{lib_appendix}
Summary: Run-Time component of boost atomic library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_atomic%{lib_appendix}
Run-Time support for Boost.Atomic, a library that provides atomic data types
and operations on these data types, as well as memory ordering constraints
required for coordinating multiple threads through atomic variables.
%package -n libboost_container%{lib_appendix}
Summary: Boost::Container Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_container%{lib_appendix}
This package contains the Boost Container runtime libraries.
%package -n libboost_context%{lib_appendix}
Summary: Run-Time component of boost context switching library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_context%{lib_appendix}
Run-Time support for Boost.Context, a foundational library that
provides a sort of cooperative multitasking on a single thread.
%package -n libboost_coroutine%{lib_appendix}
Summary: Boost::Coroutine Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_coroutine%{lib_appendix}
This package contains the Boost Coroutine runtime libraries.
%package -n libboost_date_time%{lib_appendix}
Summary: Boost::Date.Time Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_date_time%{lib_appendix}
This package contains the Boost Date.Time runtime libraries.
%package -n libboost_fiber%{lib_appendix}
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: boost-license%{lib_appendix}
%description -n libboost_fiber%{lib_appendix}
This package contains Boost::Fiber runtime library.
%package -n libboost_filesystem%{lib_appendix}
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: boost-license%{lib_appendix}
%description -n libboost_filesystem%{lib_appendix}
This package contains the Boost::Filesystem libraries.
%package -n libboost_graph%{lib_appendix}
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_graph%{lib_appendix}
This package contains the Boost::Graph Runtime libraries.
%package -n libboost_graph_parallel%{lib_appendix}
Summary: Boost graph::distributed runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_graph_parallel%{lib_appendix}
This package contains the boost::graph::distributed runtime libraries.
%package -n libboost_iostreams%{lib_appendix}
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_iostreams%{lib_appendix}
This package contains the Boost::IOStreams Runtime libraries.
%package -n libboost_log%{lib_appendix}
Summary: Run-Time component of boost logging library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_log%{lib_appendix}
Boost.Log library aims to make logging significantly easier for the
application developer. It provides a wide range of out-of-the-box
tools along with public interfaces for extending the library.
%package -n libboost_math%{lib_appendix}
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_math%{lib_appendix}
This package contains the Boost::Math Runtime libraries.
%if %{with build_mpi}
%package -n libboost_mpi%{lib_appendix}
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_mpi%{lib_appendix}
This package contains the Boost::MPI Runtime libraries.
%endif
%package -n libboost_test%{lib_appendix}
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_test%{lib_appendix}
This package contains the Boost::Test runtime libraries.
%package -n libboost_program_options%{lib_appendix}
Summary: Boost::ProgramOptions Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_program_options%{lib_appendix}
This package contains the Boost::ProgramOptions Runtime libraries.
%package -n libboost_python%{lib_appendix}
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_python%{lib_appendix}
This package contains the Boost::Python Runtime libraries.
%package -n libboost_python3-%{lib_appendix}
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_python3-%{lib_appendix}
This package contains the Boost::Python3 Runtime libraries.
%package -n libboost_serialization%{lib_appendix}
Summary: Boost::Serialization Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_serialization%{lib_appendix}
This package contains the Boost::Serialization Runtime libraries.
%package -n libboost_signals%{lib_appendix}
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_signals%{lib_appendix}
This package contains the Boost::Signals Runtime libraries.
%package -n libboost_system%{lib_appendix}
Summary: Boost::System Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_system%{lib_appendix}
This package contains the Boost::System runtime libraries.
%package -n libboost_thread%{lib_appendix}
Summary: Boost::Thread Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_thread%{lib_appendix}
This package contains the Boost::Thread runtime libraries.
%package -n libboost_wave%{lib_appendix}
Summary: Boost::Wave Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_wave%{lib_appendix}
This package contains the Boost::Wave runtime libraries.
%package -n libboost_regex%{lib_appendix}
Summary: The Boost::Regex runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_regex%{lib_appendix}
This package contains the Boost::Regex runtime library.
%package -n libboost_random%{lib_appendix}
Summary: The Boost::Random runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_random%{lib_appendix}
This package contains the Boost::Random runtime library.
%package -n libboost_chrono%{lib_appendix}
Summary: The Boost::Chrono runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_chrono%{lib_appendix}
This package contains the Boost::Chrono runtime library.
%package -n libboost_locale%{lib_appendix}
Summary: The Boost::Locale runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_locale%{lib_appendix}
This package contains the Boost::Locale runtime library.
%package -n libboost_timer%{lib_appendix}
Summary: The Boost::Timer runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_timer%{lib_appendix}
This package contains the Boost::Timer runtime library.
%package -n libboost_type_erasure%{lib_appendix}
Summary: The Boost::TypeErasure runtime library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_type_erasure%{lib_appendix}
This package contains the Boost::TypeErasure runtime library.
%if %{with build_quickbook}
%package -n %{package_name}-quickbook
Summary: Documentation tool geared towards C++
Group: Development/Tools/Doc Generators
Requires: boost-license%{lib_appendix}
Provides: quickbook = %version
Conflicts: otherproviders(quickbook)
%description -n %{package_name}-quickbook
QuickBook is a WikiWiki style documentation tool geared towards C++
documentation using simple rules and markup for simple formatting
tasks.
%endif
%prep
%setup -q -n boost_%{lib_appendix} -b 3
#everything in the tarball has the executable flag set ...
find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} +
%patch1 -p1
%patch2
%patch3
%patch4
%patch5
%patch6 -p1
%patch7
%patch9 -p1
%patch10 -p1
%patch13
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch100 -p1
#stupid build machinery copies .orig files
find . -name \*.orig -exec rm {} +
%build
find . -type f -exec chmod u+w {} +
# Create shared build instructions
cat << \EOF >.build
%if ! %{with long_double}
export LONG_DOUBLE_FLAGS="--disable-long-double"
%endif
BJAM_CONFIG="-d2 -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON3_VERSION=$(python3 -c 'import sys; print (sys.version[:3])')
PYTHON3_ABIFLAGS=m
export REGEX_FLAGS="--with-icu"
export EXPAT_INCLUDE=%{_includedir} EXPAT_LIBPATH=%{_libdir}
LIBRARIES_FLAGS=--with-libraries=all
%if ! %{with build_context}
# coroutine/coroutine2 depend on context
LIBRARIES_FLAGS+=" --without-libraries=context,coroutine,coroutine2"
%endif
%if ! %{with boost_fiber}
LIBRARIES_FLAGS+=" --without-libraries=fiber"
%endif
EOF
# Read shared build instructions
. ./.build
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
# use supplied bootstrap.sh instead of mucking with old bjam
# see also: https://svn.boost.org/trac/boost/ticket/9304
./bootstrap.sh $LIBRARIES_FLAGS \
--prefix=%{_prefix} --exec-prefix=%{_bindir} \
--libdir=%{_libdir} --includedir=%{_includedir} \
--with-toolset=gcc
# add specific wishes in user-config.jam
cat << EOF >user-config.jam
import os ;
local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
using gcc : : : <compileflags>\$(RPM_OPT_FLAGS) ;
using python
: $PYTHON_VERSION
: /usr/bin/python2
: /usr/include/python$PYTHON_VERSION
:
:
:
:
;
using python
: $PYTHON3_VERSION
: /usr/bin/python$PYTHON3_VERSION
: /usr/include/python$PYTHON3_VERSION$PYTHON3_ABIFLAGS
: /usr/lib/python$PYTHON3_VERSION
:
:
:
$PYTHON3_ABIFLAGS
;
EOF
%if %{with build_docs}
cat << EOF >>user-config.jam
using xsltproc ;
using boostbook
: %{_datadir}/xml/docbook/stylesheet/nwalsh/current
: %{_datadir}/xml/docbook/schema/dtd/4.2
;
using doxygen ;
EOF
%endif
%if %{with build_mpi}
cat << EOF >>user-config.jam
using mpi ;
EOF
%endif
# perform the compilation
./b2 -d+2 -q --prefix=%{_prefix} --libdir=%{_libdir} --user-config=./user-config.jam %{?_smp_mflags}
%if %{with build_quickbook}
pushd tools/quickbook
../../b2 --user-config=../../user-config.jam --v2 dist-bin
popd
%endif
%if %{with build_docs}
cd doc
../b2 --user-config=../user-config.jam --v2 man
%endif
%install
# Read shared build instructions
. ./.build
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
./b2 install \
--prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \
--libdir=%{buildroot}%{_libdir} --includedir=%{buildroot}%{_includedir} \
--user-config=./user-config.jam
# do not install the python module - as long as noone needs it, it requires more fixes
# see https://bugzilla.redhat.com/show_bug.cgi?id=801534 for details
rm -f %{buildroot}%{_libdir}/mpi.so
mkdir -p %{buildroot}%{my_docdir}
pushd %{buildroot}%{_libdir}
blibs=$(find . -name \*.so.%{version})
echo $blibs | xargs chrpath -d
for lib in ${blibs}; do
BASE=$(basename ${lib} .so.%{version})
SONAME_MT="$BASE-mt.so"
ln -sf ${lib} $SONAME_MT
done
popd
# install the man pages
# rm -rf doc/man/man3/boost::units::operator
# mv doc/man/man3/path.3 doc/man/man3/boost::property_tree::path.3
# mv doc/man/man3/string.3 doc/man/man3/boost::container::string.3
#
# for sec in 3 7 9; do
# install -d %%buildroot/%%{_mandir}/man${sec}
# done
# pushd doc/man
# rm -f *.manifest
# tar -cf - .| tar -C %%{buildroot}/%%{_mandir} -xvf -
# popd
#install doc files
dos2unix libs/ptr_container/doc/tutorial_example.html \
libs/parameter/doc/html/reference.html \
libs/parameter/doc/html/index.html \
libs/iostreams/doc/tree/tree.js \
libs/graph/doc/lengauer_tarjan_dominator.htm
find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \
tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf -
rm -rf %{buildroot}%{my_docdir}/boost
ln -s %{_includedir}/boost %{buildroot}%{my_docdir}
ln -s ../LICENSE_1_0.txt %{buildroot}%{my_docdir}/libs
find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} +
chmod -x ../boost_%{short_version}_pdf/*.pdf
rm -f %{buildroot}%{_libdir}/*.a
#symlink dupes
%fdupes %{buildroot}
%if %{with build_quickbook}
mkdir -p %{buildroot}%{_bindir}
install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%endif
%post -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_container%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_context%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_log%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_test%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_python%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_python3-%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_math%{lib_appendix} -p /sbin/ldconfig
%if %{with build_mpi}
%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
%endif
%post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_system%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_random%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_container%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_context%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_log%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_python%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_python3-%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig
%if %{with build_mpi}
%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
%endif
%postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_random%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
%files -n boost-license%{lib_appendix}
%defattr(-, root, root, -)
%dir %{my_docdir}
%doc %{my_docdir}/LICENSE_1_0.txt
%files -n libboost_atomic%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_atomic*.so.*
%files -n libboost_container%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_container*.so.*
%if %{with build_context}
%files -n libboost_context%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_context*.so.*
%files -n libboost_coroutine%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_coroutine*.so.*
%endif
%files -n libboost_date_time%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_date_time*.so.*
%if %{with boost_fiber}
%files -n libboost_fiber%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_fiber*.so.*
%endif
%files -n libboost_filesystem%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_filesystem*.so.*
%files -n libboost_graph%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_graph.so.*
%files -n libboost_graph_parallel%{lib_appendix}
%defattr(-,root,root)
%{_libdir}/libboost_graph_parallel.so.*
%files -n libboost_iostreams%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_iostreams*.so.*
%files -n libboost_log%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_log*.so.*
%files -n libboost_math%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_math_*.so.*
%if %{with build_mpi}
%files -n libboost_mpi%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_mpi*.so.*
%endif
%files -n libboost_test%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_prg_exec_monitor*.so.*
%{_libdir}/libboost_unit_test_framework*.so.*
%files -n libboost_program_options%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_program_options*.so.*
%files -n libboost_python%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_python.so.*
%files -n libboost_python3-%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_python3.so.*
%files -n libboost_serialization%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_*serialization*.so.*
%files -n libboost_signals%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_signals*.so.*
%files -n libboost_system%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_system*.so.*
%files -n libboost_thread%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_thread*.so.*
%files -n libboost_wave%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_wave*.so.*
%files -n libboost_regex%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_regex*.so.*
%files -n libboost_random%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_random*.so.*
%files -n libboost_chrono%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_chrono*.so.*
%files -n libboost_locale%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_locale*.so.*
%files -n libboost_timer%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_timer*.so.*
%files -n libboost_type_erasure%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_type_erasure*.so.*
%files -n %{package_name}-devel
%defattr(-, root, root, -)
%{_includedir}/boost
%{_libdir}/*.so
#%%{_datadir}/aclocal/*.m4
%files -n %{package_name}-doc-html
%defattr(-, root, root, -)
%doc %{my_docdir}/*
%exclude %{my_docdir}/LICENSE_1_0.txt
# %%files doc-man
# %%defattr(644, root, root, -)
# %%doc %%{_mandir}/man3/*.3.gz
# %%doc %%{_mandir}/man7/*.7.gz
# %%doc %%{_mandir}/man9/*.9.gz
%if %{with package_pdf}
%files -n %{package_name}-doc-pdf
%defattr(-, root, root, -)
%doc ../boost_%{short_version}_pdf/*.pdf
%endif
%files -n %{package_name}-quickbook
%defattr(-, root, root, -)
%{_bindir}/quickbook
%changelog