#
+# TODO:
+# - think about building MPI.
+# - split shared libs from core package into -iostreams/-serialization.
+#
# Conditional build:
-%bcond_with python #with boost-python support (not working now)
+%bcond_without python # without boost-python support
#
-
-Name: boost
+%define fver %(echo %{version} | tr . _)
Summary: The Boost C++ Libraries
-Summary(pl): Biblioteki C++ "Boost"
-Version: 1.30.2
-Release: 0.1
-License: Freely distributable
-URL: http://www.boost.org/
+Summary(pl.UTF-8): Biblioteki C++ "Boost"
+Name: boost
+Version: 1.50.0
+Release: 1
+License: Boost Software License and others
Group: Libraries
-Source0: http://dl.sourceforge.net/boost/%{name}-%{version}.tar.bz2
-# Source0-md5: 4aed692a863bb4beaa0b70d6dc53bda5
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-BuildRequires: boost-jam >= 3.1.3 libstdc++-devel %{?_with_python:python-devel:}
+Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
+# Source0-md5: 52dd00be775e689f55a987baebccc462
+Patch0: %{name}-link.patch
+URL: http://www.boost.org/
+BuildRequires: bzip2-devel
+BuildRequires: expat-devel
+BuildRequires: libicu-devel
+BuildRequires: libstdc++-devel
+BuildRequires: perl-base
+%{?with_python:BuildRequires: python-devel >= 2.2}
+BuildRequires: rpm-pythonprov
+BuildRequires: zlib-devel
BuildConflicts: gcc = 5:3.3.1
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
The Boost web site provides free peer-reviewed portable C++ source
already been proposed for inclusion in the C++ Standards Committee's
upcoming C++ Standard Library Technical Report.
-%description -l pl
-Strona www.boost.org dostarcza darmowe biblioteki C++ wraz z kodem
-¼ród³owym. Nacisk po³o¿ono na biblioteki, które dobrze wspó³pracuj± ze
-standardow± bibliotek± C++. Celem jest ustanowienie "isniej±cej
-praktyki" i dostarczenie implementacji, tak ¿e biblioteki "Boost"
-nadaj± siê do ewentualnej standaryzacji. Niektóre z bibliotek ju¿
-zosta³y zg³oszone do komitetu standaryzacyjnego C++ w nadchodz±cym
-Raporcie Technicznym Biblioteki Standardowej C++
-
-# according to ldd (and automatically generated RPM dependencies) it
-# doesn't strictly require python, but IMHO it's cleaner to split it
-# this way
+%description -l pl.UTF-8
+Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z
+kodem źródłowym. Nacisk położono na biblioteki, które dobrze
+współpracują ze standardową biblioteką C++. Celem jest ustanowienie
+"istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki
+"Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek
+już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym
+Raporcie Technicznym Biblioteki Standardowej C++.
+
+%package devel
+Summary: Boost C++ development headers
+Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-date_time = %{version}-%{release}
+Requires: %{name}-filesystem = %{version}-%{release}
+Requires: %{name}-graph = %{version}-%{release}
+Requires: %{name}-program_options = %{version}-%{release}
+Requires: %{name}-regex = %{version}-%{release}
+Requires: %{name}-signals = %{version}-%{release}
+Requires: %{name}-system = %{version}-%{release}
+Requires: %{name}-test = %{version}-%{release}
+Requires: %{name}-thread = %{version}-%{release}
+Requires: %{name}-wave = %{version}-%{release}
+Requires: libstdc++-devel
+Obsoletes: boost-any-devel
+Obsoletes: boost-array-devel
+Obsoletes: boost-asio
+Obsoletes: boost-bind-devel
+Obsoletes: boost-call_traits-devel
+Obsoletes: boost-compatibility-devel
+Obsoletes: boost-compose-devel
+Obsoletes: boost-compressed_pair-devel
+Obsoletes: boost-concept_check-devel
+Obsoletes: boost-conversion-devel
+Obsoletes: boost-crc-devel
+Obsoletes: boost-date_time-devel
+Obsoletes: boost-filesystem-devel
+Obsoletes: boost-graph-devel
+Obsoletes: boost-mem_fn-devel
+Obsoletes: boost-mpl-devel
+Obsoletes: boost-preprocessor-devel
+Obsoletes: boost-program_options-devel
+Obsoletes: boost-ref-devel
+Obsoletes: boost-regex-devel
+Obsoletes: boost-signals-devel
+Obsoletes: boost-spirit-devel
+Obsoletes: boost-statechart-devel
+Obsoletes: boost-static_assert-devel
+Obsoletes: boost-test-devel
+Obsoletes: boost-thread-devel
+Obsoletes: boost-tr1-devel
+Obsoletes: boost-type_traits-devel
+Obsoletes: boost-typeof-devel
+Obsoletes: boost-uBLAS-devel
+Obsoletes: boost-utility-devel
+Obsoletes: boost-wave-devel
+Obsoletes: boost-xpressive-devel
+
+%description devel
+Header files for the Boost C++ libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek C++ Boost.
+
+%package static
+Summary: Static version of base Boost C++ libraries
+Summary(pl.UTF-8): Statyczne wersje podstawowych bibliotek C++ Boost
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Obsoletes: boost-static < 1.33
+
+%description static
+Static version of base Boost C++ libraries.
+
+%description static -l pl.UTF-8
+Statyczne wersje podstawowych bibliotek C++ Boost.
+
%package python
Summary: Boost.Python library
-Summary(pl): biblioteka Boost.Python
+Summary(pl.UTF-8): biblioteka Boost.Python
Group: Libraries
-Requires: boost python
+%pyrequires_eq python
%description python
Use the Boost Python Library to quickly and easily export a C++
classes in any way in order to use them with Boost.Python. The system
should simply ``reflect'' your C++ classes and functions into Python.
-%description python -l pl
-Biblioteka Boost Python s³u¿y do szybkiego i prostego eksportu
-biblioteki C++ do Pythona, tak ¿e interfejs Pythona jest bardzo
-podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, ¿eby
-narzucaæ jak najmniej wymagañ dotycz±cych konstrukcjii C++. W
-wiêkszo¶ci przypadków nie trzeba w ogóle zmieniaæ w³asnych klas C++,
-¿eby u¿ywaæ ich z Boost.Python. System powinien po prostu ,,odbiæ''
+%description python -l pl.UTF-8
+Biblioteka Boost Python służy do szybkiego i prostego eksportu
+biblioteki C++ do Pythona, tak że interfejs Pythona jest bardzo
+podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
+narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
+większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
+żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
klasy C++ i funkcje do Pythona.
%package python-devel
Summary: Boost.Python development headers
-Summary(pl): Pliki nag³ówkowe dla Boost.Python
-Group: Libraries
-Requires: %{name}-devel
+Summary(pl.UTF-8): Pliki nagłówkowe dla Boost.Python
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-python = %{version}-%{release}
%description python-devel
Headers for the Boost.Python library.
-%description python-devel -l pl
-Pliki nag³ówkowe dla biblioteki Boost.Python.
+%description python-devel -l pl.UTF-8
+Pliki nagłówkowe dla biblioteki Boost.Python.
-%package devel
-Summary: Boost C++ development libraries and headers
-Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++
+%package python-static
+Summary: Static version of Boost.Python library
+Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python
+Group: Development/Libraries
+Requires: %{name}-python-devel = %{version}-%{release}
+
+%description python-static
+Static version of Boost.Python library.
+
+%description python-static -l pl.UTF-8
+Statyczna wersja biblioteki Boost.Python.
+
+%package chrono
+Summary: Useful time utilities
Group: Libraries
-Requires: boost
+Obsoletes: boost < 1.33
-%description devel
-Headers and static libraries for the Boost C++ libraries.
+%description chrono
+Useful time utilities.
+
+%package date_time
+Summary: Date-Time library
+Summary(pl.UTF-8): Biblioteka daty-czasu
+Group: Libraries
+Obsoletes: boost < 1.33
+
+%description date_time
+A set of date-time libraries.
-%description devel -l pl
-Pliki nag³ówkowe i biblioteki statyczne bibliotek Boost C++.
+%description date_time -l pl.UTF-8
+Zbiór bibliotek daty-czasu.
+
+%package filesystem
+Summary: Portable paths, iteration over directories, and other useful filesystem operations
+Summary(pl.UTF-8): Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
+Group: Libraries
+Requires: %{name}-system = %{version}-%{release}
+Obsoletes: boost < 1.33
+
+%description filesystem
+The boost::filesystem library provides portable facilities to query
+and manipulate paths, files, and directories.
+
+%description filesystem -l pl.UTF-8
+Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
+operacjach na ścieżkach, plikach i katalogach.
+
+%package graph
+Summary: General purpose, generic C++ library for graph data structures and graph algorithms
+Summary(pl.UTF-8): Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
+Group: Libraries
+
+%description graph
+The boost::graph library provides portable facilities to operate on
+graph data structures using graph algorithms.
+
+%description graph -l pl.UTF-8
+Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
+strukturach danych typu graf za pomocą algorytmów związanych z
+grafami.
+
+%package locale
+Summary: Provide localization and Unicode handling tools for C++
+Group: Libraries
+
+%description locale
+Provide localization and Unicode handling tools for C++.
+
+%package program_options
+Summary: Access to program options, via conventional methods such as command line and config file
+Summary(pl.UTF-8): Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
+Group: Libraries
+
+%description program_options
+The program_options library allows program developers to obtain
+program options, that is (name, value) pairs from the user, via
+conventional methods such as command line and config file.
+
+%description program_options -l pl.UTF-8
+Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
+programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
+jak linia poleceń, czy plik konfiguracyjny.
%package regex
Summary: Boost C++ regular expressions library
-Summary(pl): Biblioteka wyra¿eñ regularnych Boost C++
+Summary(pl.UTF-8): Biblioteka wyrażeń regularnych Boost C++
Group: Libraries
-Requires: %{name} = %{version}
%description regex
-Shared libraries for Boost C++ regular expressions.
+Shared library for Boost C++ regular expressions.
-%description regex -l pl
-Biblioteka wyra¿eñ regularnych dla C++, biblioteki dzielone.
+%description regex -l pl.UTF-8
+Biblioteka wyrażeń regularnych dla C++, biblioteki dzielone.
-%package regex-devel
+%package signals
+Summary: Signals & slots callback implementation
+Summary(pl.UTF-8): Implementacja sygnałów i slotów
Group: Libraries
-Summary: Boost C++ Regex library headers and static libraries
-Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++ Regex
-Requires: %{name}-regex = %{version}
-Requires: %{name}-devel = %{version}
+Obsoletes: boost < 1.33
-%description regex-devel
-Boost C++ Regex headers and static libraries.
+%description signals
+The boost::signals library is an implementation of a signals and slots
+system.
-%description regex-devel -l pl
-Pliki nag³ówkowe i biblioteki statyczne dla Boost C++ Regex.
+%description signals -l pl.UTF-8
+Biblioteka boost::signals jest implementacją systemu sygnałów i
+slotów.
-%package any-devel
+%package system
+Summary: Support for getting system specific error codes
+Summary(pl.UTF-8): Wsparcie dla pobierania specyficznych dla systemu kodów błędów
Group: Libraries
-Summary: Header for Boost C++ "Any" Library
-Summary(pl): Plik nag³ówkowy dla biblioteki Boost C++ "Any"
-Requires: %{name}-devel = %{version}
-%description any-devel
-The boost::any class, is a variant value type, which supports copying
-of any value type and safe checked extraction of that value strictly
-against that type.
+%description system
+The Boost System library provides simple, light-weight error_code
+objects that encapsulate system-specific error code values, yet also
+provide access to more abstract and portable error conditions objects.
+
+%description system -l pl.UTF-8
+Biblioteka Boost System udostępnia proste, lekkie obiekty error_code
+obudowujące wartości kodów błędów specyficznych dla systemu, dając
+jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów
+błędów.
+
+%package test
+Summary: Support for program testing and execution monitoring
+Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu
+Group: Libraries
+Obsoletes: boost < 1.33
+
+%description test
+Support for simple program testing, full unit testing, and for program
+execution monitoring.
+
+%description test -l pl.UTF-8
+Wsparcie dla prostego testowania programu, pełnego testowania i
+monitorowania wykonania programu.
+
+%package timer
+Summary: Event timer, progress timer, and progress display classes
+Group: Libraries
+Obsoletes: boost < 1.33
+
+%description timer
+Event timer, progress timer, and progress display classes.
+
+%package thread
+Summary: Portable C++ threads library
+Summary(pl.UTF-8): Przenośna biblioteka wątków C++
+Group: Libraries
+Obsoletes: boost < 1.33
+
+%description thread
+Portable C++ threads library - shared library.
+
+%description thread -l pl.UTF-8
+Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
-I.e. 5 is held strictly as an int and is not implicitly convertible
-either to "5" or to 5.0.
+%package wave
+Summary: Boost.Wave - a standard compliant C++ preprocessor library
+Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
+Group: Development/Libraries
-%description any-devel -l pl
-Klasa boost::any jest typem, który umo¿liwia kopiowanie ze zmiennej
-dowolnego typu i bezpieczne, sprawdzone wydobycie jej warto¶ci
-dok³adnie tego samego typu.
+%description wave
+Boost.Wave - a standard compliant C++ preprocessor library.
-Np. 5 jest trzymane jako int i nie jest niejawnie konwertowne ani jako
-"5" ani jako 5.0.
+%description wave -l pl.UTF-8
+Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
%package doc
Summary: Boost C++ Library documentation
-Summary(pl): Dokumentacja dla biblioteki Boost C++
-Group: Libraries
-Requires: %{name}-devel = %{version}
+Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++
+Group: Documentation
+Requires: %{name}-devel = %{version}-%{release}
%description doc
Documentation for the Boost C++ Library.
-%description doc -l pl
+%description doc -l pl.UTF-8
Dokumentacja dla biblioteki Boost C++.
%prep
-rm -rf $RPM_BUILD_ROOT
+%setup -q -n %{name}_%{fver}
+%patch0 -p1
+
+# - don't know how to pass it through (b)jam -s (no way?)
+# due to oversophisticated build flags system.
+# - pass -fPIC due to <shared-linkable> removal.
+%{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/v2/tools/gcc.jam
+
+# cleanup -g switch to avoid override debuginfocflags.
+%{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/v2/tools/gcc.jam
+# link against shared expat library.
+%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
-%setup -n boost-%{version} -q
+cat << EOF > tools/build/v2/user-config.jam
+using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
+EOF
%build
-%if %{?_with_python:1}%{!?_with_python:0}
-PYTHON_VERSION=`python -V 2>&1 | sed 's,.* \([0-9]\.[0-9]\)\(\.[0-9]\)\?.*,\1,'`
+%if %{with python}
+PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]')
PYTHON_ROOT=%{_prefix}
%else
PYTHON_ROOT=
PYTHON_VERSION=
%endif
-bjam -sBUILD=release -sPYTHON_ROOT=$PYTHON_ROOT -sPYTHON_VERSION=$PYTHON_VERSION
+EXPAT_INCLUDE=%{_includedir} \
+EXPAT_LIBPATH=%{_libdir} \
+ICU_PATH=%{_prefix} \
+./bootstrap.sh --prefix=%{_prefix}
+./b2 \
+ -d2 --toolset=gcc \
+ variant=release debug-symbols=on inlining=on link=static,shared threading=multi
%install
rm -rf $RPM_BUILD_ROOT
-rm -f master.list regex.list regex-devel.list python.list devel.list python-devel.list doc.list any.list
-# include files
-install -d $RPM_BUILD_ROOT%{_includedir}
-for i in `find boost -type d`; do
- install -d $RPM_BUILD_ROOT%{_includedir}/$i
-done
-for i in `find boost -type f`; do
- install -m 644 $i $RPM_BUILD_ROOT%{_includedir}/$i
- if test "`echo $i | sed 's,python,,g'`" = "$i"; then
- echo %{_includedir}/$i >> devel.list
- else
- echo %{_includedir}/$i >> python-devel.list
- fi
-done
-# static libraries
-install -d $RPM_BUILD_ROOT%{_libdir}
-for i in `find libs -type f -name '*.a' | grep gcc`; do
- install -m 644 $i $RPM_BUILD_ROOT%{_libdir}/`basename $i`
- if test "`echo $i | sed 's,python,,g'`" = "$i"; then
- echo %{_libdir}/`basename $i` >> devel.list
- else
- echo %{_libdir}/`basename $i` >> python-devel.list
- fi
-done
-
+install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
-# dynamic libraries
-for i in `find libs -type f -name '*.so.%{version}' | grep gcc`; do
- install -m 755 $i $RPM_BUILD_ROOT%{_libdir}/`basename $i`
- #ldconfig fails to generate the symlinks for boost libs :-(
- LINK=`basename $i | sed 's,\.so\..*,.so,'`
- (cd $RPM_BUILD_ROOT%{_libdir} && ln -s `basename $i` $LINK)
- if test "`echo $i | sed 's,python,,g'`" = "$i"; then
- echo %{_libdir}/`basename $i` >> master.list
- echo %{_libdir}/$LINK >> master.list
- else
- echo %{_libdir}/`basename $i` >> python.list
- echo %{_libdir}/$LINK >> python.list
- fi
-done
+cp -rf boost $RPM_BUILD_ROOT%{_includedir}
-#regex library
-grep libboost_regex.so master.list > regex.list
-grep -v libboost_regex.so master.list >_master.list
-mv {_,}master.list
-#regex-devel
-RFILES="%{_includedir}/boost/cregex.hpp|"
-RFILES="$RFILES%{_includedir}/boost/regex/|"
-RFILES="$RFILES%{_includedir}/boost/regex.h(pp){0,1}|"
-RFILES="$RFILES%{_includedir}/boost/regex_fwd.hpp|"
-RFILES="$RFILES%{_libdir}/libboost_regex.a"
-
-egrep "$RFILES" devel.list > regex-devel.list
-egrep -v "$RFILES" devel.list > _devel.list
-mv {_,}devel.list
-
-#any-devel library
-grep any.hpp devel.list > any.list
-grep -v any.hpp devel.list > _devel.list
-mv {_,}devel.list
+install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
+install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
+cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
# documentation
install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
-install README $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
# as the documentation doesn't completely reside in a directory of its
# own, we need to find out ourselves... this looks for HTML files and
# then collects everything linked from those. this is certainly quite
# unoptimized wrt mkdir calls, but does it really matter?
-for i in `find -type f -name '*.htm*'`; do
+installdocs() {
+for i in $(find -type f -name '*.htm*'); do
# bjam docu is included in the boost-jam RPM
if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
- install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/`dirname $i`
- for LINKED in `perl - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
+ install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
+ for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
sub rewrite_link
{
my $link = shift;
$in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
print OUT;
- $in_link = /href|src=\s*$/;
+ $in_link = /href|src=\s*$/;
}
EOT`; do
- TARGET=`dirname $i`/$LINKED
+ TARGET=${i%/*}/$LINKED
# ignore non-existant linked files
if test -f $TARGET; then
- install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/`dirname $TARGET`
- install -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
+ install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
fi
done
fi
done
+}; installdocs
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%if %{?_with_python:1}%{!?_with_python:0}
-%post python -p /sbin/ldconfig
-%postun python -p /sbin/ldconfig
-%endif
+%post chrono -p /sbin/ldconfig
+%postun chrono -p /sbin/ldconfig
+
+%post date_time -p /sbin/ldconfig
+%postun date_time -p /sbin/ldconfig
+
+%post filesystem -p /sbin/ldconfig
+%postun filesystem -p /sbin/ldconfig
+
+%post graph -p /sbin/ldconfig
+%postun graph -p /sbin/ldconfig
+
+%post locale -p /sbin/ldconfig
+%postun locale -p /sbin/ldconfig
+
+%post python -p /sbin/ldconfig
+%postun python -p /sbin/ldconfig
+
+%post program_options -p /sbin/ldconfig
+%postun program_options -p /sbin/ldconfig
+
+%post regex -p /sbin/ldconfig
+%postun regex -p /sbin/ldconfig
+
+%post signals -p /sbin/ldconfig
+%postun signals -p /sbin/ldconfig
+
+%post system -p /sbin/ldconfig
+%postun system -p /sbin/ldconfig
+
+%post test -p /sbin/ldconfig
+%postun test -p /sbin/ldconfig
+
+%post wave -p /sbin/ldconfig
+%postun wave -p /sbin/ldconfig
+
+%post timer -p /sbin/ldconfig
+%postun timer -p /sbin/ldconfig
+
+%post thread -p /sbin/ldconfig
+%postun thread -p /sbin/ldconfig
-%files -f master.list
+%files
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
-%if %{?_with_python:1}%{!?_with_python:0}
-%files python -f python.list
+%files devel
%defattr(644,root,root,755)
-%endif
+%attr(755,root,root) %{_libdir}/libboost_chrono.so
+%attr(755,root,root) %{_libdir}/libboost_date_time.so
+%attr(755,root,root) %{_libdir}/libboost_filesystem.so
+%attr(755,root,root) %{_libdir}/libboost_graph.so
+%attr(755,root,root) %{_libdir}/libboost_iostreams.so
+%attr(755,root,root) %{_libdir}/libboost_locale.so
+%attr(755,root,root) %{_libdir}/libboost_math_*.so
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
+%attr(755,root,root) %{_libdir}/libboost_program_options.so
+%attr(755,root,root) %{_libdir}/libboost_regex.so
+%attr(755,root,root) %{_libdir}/libboost_random.so
+%attr(755,root,root) %{_libdir}/libboost_serialization.so
+%attr(755,root,root) %{_libdir}/libboost_signals.so
+%attr(755,root,root) %{_libdir}/libboost_system.so
+%attr(755,root,root) %{_libdir}/libboost_thread.so
+%attr(755,root,root) %{_libdir}/libboost_timer.so
+%attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
+%attr(755,root,root) %{_libdir}/libboost_wave.so
+%attr(755,root,root) %{_libdir}/libboost_wserialization.so
+%{_includedir}/boost
+%exclude %{_includedir}/boost/python
+%exclude %{_includedir}/boost/python.hpp
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libboost_chrono.a
+%{_libdir}/libboost_date_time.a
+%{_libdir}/libboost_exception.a
+%{_libdir}/libboost_filesystem.a
+%{_libdir}/libboost_graph.a
+%{_libdir}/libboost_iostreams.a
+%{_libdir}/libboost_locale.a
+%{_libdir}/libboost_math_*.a
+%{_libdir}/libboost_prg_exec_monitor.a
+%{_libdir}/libboost_program_options.a
+%{_libdir}/libboost_random.a
+%{_libdir}/libboost_regex.a
+%{_libdir}/libboost_serialization.a
+%{_libdir}/libboost_signals.a
+%{_libdir}/libboost_system.a
+%{_libdir}/libboost_test_exec_monitor.a
+%{_libdir}/libboost_timer.a
+%{_libdir}/libboost_thread.a
+%{_libdir}/libboost_unit_test_framework.a
+%{_libdir}/libboost_wave.a
+%{_libdir}/libboost_wserialization.a
+
+%if %{with python}
+%files python
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_python.so.*.*.*
-%files devel -f devel.list
+%files python-devel
%defattr(644,root,root,755)
-%dir %{_includedir}/boost
-%dir %{_includedir}/boost/bind
-%dir %{_includedir}/boost/compatibility
-%dir %{_includedir}/boost/compatibility/cpp_c_headers
-%dir %{_includedir}/boost/config
-%dir %{_includedir}/boost/config/compiler
-%dir %{_includedir}/boost/config/platform
-%dir %{_includedir}/boost/config/stdlib
-%dir %{_includedir}/boost/date_time
-%dir %{_includedir}/boost/date_time/gregorian
-%dir %{_includedir}/boost/date_time/posix_time
-%dir %{_includedir}/boost/detail
-%dir %{_includedir}/boost/filesystem
-%dir %{_includedir}/boost/format
-%dir %{_includedir}/boost/function
-%dir %{_includedir}/boost/function/detail
-%dir %{_includedir}/boost/graph
-%dir %{_includedir}/boost/graph/detail
-%dir %{_includedir}/boost/integer
-%dir %{_includedir}/boost/io
-%dir %{_includedir}/boost/lambda
-%dir %{_includedir}/boost/lambda/detail
-%dir %{_includedir}/boost/math
-%dir %{_includedir}/boost/math/special_functions
-%dir %{_includedir}/boost/mpl
-%dir %{_includedir}/boost/mpl/aux_
-%dir %{_includedir}/boost/mpl/aux_/config
-%dir %{_includedir}/boost/mpl/aux_/preprocessed
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/bcc
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/bcc551
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/gcc
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/msvc60
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/msvc70
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/mwcw
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/no_ctps
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/no_ttp
-%dir %{_includedir}/boost/mpl/aux_/preprocessed/plain
-%dir %{_includedir}/boost/mpl/aux_/preprocessor
-%dir %{_includedir}/boost/mpl/aux_/range_c
-%dir %{_includedir}/boost/mpl/limits
-%dir %{_includedir}/boost/mpl/list
-%dir %{_includedir}/boost/mpl/list/aux_
-%dir %{_includedir}/boost/mpl/list/aux_/preprocessed
-%dir %{_includedir}/boost/mpl/list/aux_/preprocessed/plain
-%dir %{_includedir}/boost/mpl/math
-%dir %{_includedir}/boost/mpl/vector
-%dir %{_includedir}/boost/mpl/vector/aux_
-%dir %{_includedir}/boost/mpl/vector/aux_/preprocessed
-%dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/no_ctps
-%dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/plain
-%dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/typeof_based
-%dir %{_includedir}/boost/multi_array
-%dir %{_includedir}/boost/numeric
-%dir %{_includedir}/boost/numeric/interval
-%dir %{_includedir}/boost/numeric/interval/compare
-%dir %{_includedir}/boost/numeric/interval/detail
-%dir %{_includedir}/boost/numeric/interval/ext
-%dir %{_includedir}/boost/numeric/ublas
-%dir %{_includedir}/boost/pending
-%dir %{_includedir}/boost/pending/detail
-%dir %{_includedir}/boost/pool
-%dir %{_includedir}/boost/pool/detail
-%dir %{_includedir}/boost/preprocessor
-%dir %{_includedir}/boost/preprocessor/arithmetic
-%dir %{_includedir}/boost/preprocessor/arithmetic/detail
-%dir %{_includedir}/boost/preprocessor/array
-%dir %{_includedir}/boost/preprocessor/comparison
-%dir %{_includedir}/boost/preprocessor/config
-%dir %{_includedir}/boost/preprocessor/control
-%dir %{_includedir}/boost/preprocessor/control/detail
-%dir %{_includedir}/boost/preprocessor/control/detail/edg
-%dir %{_includedir}/boost/preprocessor/control/detail/msvc
-%dir %{_includedir}/boost/preprocessor/debug
-%dir %{_includedir}/boost/preprocessor/detail
-%dir %{_includedir}/boost/preprocessor/facilities
-%dir %{_includedir}/boost/preprocessor/iteration
-%dir %{_includedir}/boost/preprocessor/iteration/detail
-%dir %{_includedir}/boost/preprocessor/iteration/detail/bounds
-%dir %{_includedir}/boost/preprocessor/iteration/detail/iter
-%dir %{_includedir}/boost/preprocessor/list
-%dir %{_includedir}/boost/preprocessor/list/detail
-%dir %{_includedir}/boost/preprocessor/list/detail/edg
-%dir %{_includedir}/boost/preprocessor/logical
-%dir %{_includedir}/boost/preprocessor/punctuation
-%dir %{_includedir}/boost/preprocessor/repetition
-%dir %{_includedir}/boost/preprocessor/repetition/detail
-%dir %{_includedir}/boost/preprocessor/repetition/detail/edg
-%dir %{_includedir}/boost/preprocessor/repetition/detail/msvc
-%dir %{_includedir}/boost/preprocessor/selection
-%dir %{_includedir}/boost/preprocessor/seq
-%dir %{_includedir}/boost/preprocessor/seq/detail
-%dir %{_includedir}/boost/preprocessor/slot
-%dir %{_includedir}/boost/preprocessor/slot/detail
-%dir %{_includedir}/boost/preprocessor/tuple
-%dir %{_includedir}/boost/random
-%dir %{_includedir}/boost/random/detail
-%dir %{_includedir}/boost/regex
-%dir %{_includedir}/boost/regex/v3
-%dir %{_includedir}/boost/signals
-%dir %{_includedir}/boost/signals/detail
-%dir %{_includedir}/boost/spirit
-%dir %{_includedir}/boost/spirit/attribute
-%dir %{_includedir}/boost/spirit/core
-%dir %{_includedir}/boost/spirit/core/composite
-%dir %{_includedir}/boost/spirit/core/composite/impl
-%dir %{_includedir}/boost/spirit/core/impl
-%dir %{_includedir}/boost/spirit/core/meta
-%dir %{_includedir}/boost/spirit/core/meta/impl
-%dir %{_includedir}/boost/spirit/core/non_terminal
-%dir %{_includedir}/boost/spirit/core/non_terminal/impl
-%dir %{_includedir}/boost/spirit/core/primitives
-%dir %{_includedir}/boost/spirit/core/primitives/impl
-%dir %{_includedir}/boost/spirit/core/scanner
-%dir %{_includedir}/boost/spirit/core/scanner/impl
-%dir %{_includedir}/boost/spirit/debug
-%dir %{_includedir}/boost/spirit/debug/impl
-%dir %{_includedir}/boost/spirit/dynamic
-%dir %{_includedir}/boost/spirit/dynamic/impl
-%dir %{_includedir}/boost/spirit/error_handling
-%dir %{_includedir}/boost/spirit/error_handling/impl
-%dir %{_includedir}/boost/spirit/iterator
-%dir %{_includedir}/boost/spirit/iterator/impl
-%dir %{_includedir}/boost/spirit/phoenix
-%dir %{_includedir}/boost/spirit/symbols
-%dir %{_includedir}/boost/spirit/symbols/impl
-%dir %{_includedir}/boost/spirit/tree
-%dir %{_includedir}/boost/spirit/tree/impl
-%dir %{_includedir}/boost/spirit/utility
-%dir %{_includedir}/boost/spirit/utility/impl
-%dir %{_includedir}/boost/spirit/utility/impl/chset
-%dir %{_includedir}/boost/test
-%dir %{_includedir}/boost/test/detail
-%dir %{_includedir}/boost/test/included
-%dir %{_includedir}/boost/thread
-%dir %{_includedir}/boost/thread/detail
-%dir %{_includedir}/boost/tuple
-%dir %{_includedir}/boost/tuple/detail
-%dir %{_includedir}/boost/type_traits
-%dir %{_includedir}/boost/type_traits/detail
-%dir %{_includedir}/boost/utility
-
-%if %{?_with_python:1}%{!?_with_python:0}
-%files python-devel -f python-devel.list
+%attr(755,root,root) %{_libdir}/libboost_python.so
+%{_includedir}/boost/python
+%{_includedir}/boost/python.hpp
+
+%files python-static
%defattr(644,root,root,755)
+%{_libdir}/libboost_python.a
%endif
-%files doc
+%files chrono
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
+
+%files date_time
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
+
+%files filesystem
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
+
+%files graph
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
+
+%files locale
%defattr(644,root,root,755)
-%doc %{_docdir}/boost-%{version}
+%attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
-%files regex -f regex.list
+%files program_options
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
-%files regex-devel -f regex-devel.list
+%files regex
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
-%files any-devel -f any.list
+%files signals
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_signals.so.*.*.*
+
+%files system
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
+
+%files test
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
+
+%files timer
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
+
+%files thread
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
+
+%files wave
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
+
+%files doc
%defattr(644,root,root,755)
+%{_docdir}/%{name}-%{version}