#
# Conditional build:
-%bcond_with python #with boost-python support (not working now)
+%bcond_without python # with boost-python support (not working now)
#
-
-Name: boost
Summary: The Boost C++ Libraries
Summary(pl): Biblioteki C++ "Boost"
+Name: boost
Version: 1.30.2
Release: 0.1
License: Freely distributable
-URL: http://www.boost.org/
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++ %{?_with_python:python-devel:}
+Patch0: %{name}-python.patch
+URL: http://www.boost.org/
+BuildRequires: boost-jam >= 3.1.3
+BuildRequires: libstdc++-devel
+BuildRequires: perl-base
+%{?with_python:BuildRequires: python-devel >= 2.2}
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
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
+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
+"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
+%package devel
+Summary: Boost C++ development libraries and headers
+Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+# req'd by <boost/signal.hpp>
+Requires: %{name}-any-devel = %{version}-%{release}
+Requires: %{name}-mem_fn-devel = %{version}-%{release}
+Requires: %{name}-ref-devel = %{version}-%{release}
+# req'd by <boost/iterator_adaptors.hpp> (also included by <boost/signal.h>)
+Requires: %{name}-compressed_pair-devel = %{version}-%{release}
+Requires: %{name}-concept_check-devel = %{version}-%{release}
+Requires: libstdc++-devel
+
+%description devel
+Headers and static libraries for the Boost C++ libraries.
+
+%description devel -l pl
+Pliki nag³ówkowe i biblioteki statyczne bibliotek Boost C++.
+
%package python
Summary: Boost.Python library
Summary(pl): biblioteka Boost.Python
Group: Libraries
-Requires: boost python
+Requires: %{name} = %{version}-%{release}
+%pyrequires_eq python
%description python
Use the Boost Python Library to quickly and easily export a C++
%package python-devel
Summary: Boost.Python development headers
Summary(pl): Pliki nag³ówkowe dla Boost.Python
-Group: Libraries
-Requires: %{name}-devel
+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.
-%package devel
-Summary: Boost C++ development libraries and headers
-Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++
-Group: Libraries
-Requires: boost = %{version}
-Requires: libstdc++-devel
+%package python-static
+Summary: Static version of Boost.Python library
+Summary(pl): Statyczna wersja biblioteki Boost.Python
+Group: Development/Libraries
+Requires: %{name}-python-devel = %{version}-%{release}
-%description devel
-Headers and static libraries for the Boost C++ libraries.
+%description python-static
+Static version of Boost.Python library.
-%description devel -l pl
-Pliki nag³ówkowe i biblioteki statyczne bibliotek Boost C++.
+%description python-static -l pl
+Statyczna wersja biblioteki Boost.Python.
%package regex
Summary: Boost C++ regular expressions library
Summary(pl): Biblioteka wyra¿eñ regularnych Boost C++
Group: Libraries
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%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.
%package regex-devel
-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}
+Summary: Boost C++ Regex library headers.
+Summary(pl): Pliki nag³ówkowe Boost C++ Regex.
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-regex = %{version}-%{release}
%description regex-devel
-Boost C++ Regex headers and static libraries.
+Boost C++ Regex headers.
%description regex-devel -l pl
-Pliki nag³ówkowe i biblioteki statyczne dla Boost C++ Regex.
+Pliki nag³ówkowe dla Boost C++ Regex.
+
+%package regex-static
+Summary: Boost C++ Regex static libraries.
+Summary(pl): Biblioteki statyczne Boost C++ Regex.
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-regex = %{version}-%{release}
+
+%description regex-static
+Boost C++ Regex static libraries.
+
+%description regex-static -l pl
+Biblioteki statyczne dla Boost C++ Regex.
%package any-devel
-Group: Libraries
Summary: Header for Boost C++ "Any" Library
Summary(pl): Plik nag³ówkowy dla biblioteki Boost C++ "Any"
-Requires: %{name}-devel = %{version}
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
%description any-devel
The boost::any class, is a variant value type, which supports copying
dowolnego typu i bezpieczne, sprawdzone wydobycie jej warto¶ci
dok³adnie tego samego typu.
-Np. 5 jest trzymane jako int i nie jest niejawnie konwertowne ani jako
-"5" ani jako 5.0.
+Np. 5 jest trzymane jako int i nie jest niejawnie konwertowalne ani do
+"5" ani do 5.0.
%package array-devel
-Group: Libraries
Summary: STL compliant container wrapper for arrays of constant size
Summary(pl): Wrapper na STLowe kontenery dla tablic o sta³ym rozmiarze
-Requires: %{name}-devel = %{version}
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
%description array-devel
As replacement for ordinary arrays, the STL provides class vector<>.
However, vector<> provides the semantics of dynamic arrays. Thus, it
potrzebne. Ta biblioteka dostarcza wsparcie dla takich w³a¶nie tablic
o sta³ym rozmiarze.
-
-%package preprocessor-devel
+%package bind-devel
+Summary: Generalized binders for function/object/pointers
+Summary(pl): Uogólnione bindery dla funkcji/obiektów/wska¼ników
+Group: Development/Libraries
+Requires: %{name}-mem_fn-devel = %{version}-%{release}
+Requires: %{name}-ref-devel = %{version}-%{release}
+
+%description bind-devel
+boost::bind is a generalization of the standard functions std::bind1st
+and std::bind2nd.
+
+%description bind-devel -l pl
+boost::bind jest uogólnieniem standardowych funkcji std::bind1st i
+std::bind2nd.
+
+%package call_traits-devel
+Summary: Defines types for passing parameters
+Summary(pl): Definiowanie typów dla przekazywania parametrów
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-type_traits-devel = %{version}-%{release}
+
+%description call_traits-devel
+boost::call_traits<T> encapsulates the "best" method to pass a
+parameter of some type T to or from a function. The purpose of
+call_traits is to ensure that problems like "references to references"
+never occur, and that parameters are passed in the most efficient
+manner possible.
+
+%description call_traits-devel -l pl
+boost::call_traits<T> zawiera "najlepsz±" metodê przekazywania
+parametrów jakiego¶ typu T do lub z funkcji. Celem call_traits jest
+zapewnienie ¿e problemy takie jak "referencja referencji" nigdy nie
+wyst±pi± i ¿e parametry s± przekazywane w mo¿liwie najbardziej
+efektywny sposób.
+
+%package compatibility-devel
+Summary: Help for non-conforming standard libraries
+Summary(pl): Pomoc dla nie trzymaj±cych standardu bibliotek
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description compatibility-devel
+This library provides workarounds which allow the other Boost
+libraries to be used on otherwise non-conforming platforms.
+
+%description compatibility-devel -l pl
+Biblioteka dostarcza obej¶cie problemu platform nie trzymaj±cych
+standardu C++, pozwalaj±ce na u¿ywanie bibliotek Boost na tych
+platformach.
+
+%package compose-devel
+Summary: Functional composition adapters for the STL
+Summary(pl): Funkcjonalne adaptery kompozycji dla STL
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description compose-devel
+The boost::compose provides compose function object adapter extensions
+for use with the Standard Template Library (STL) portion of the C++
+Standard Library. If you aren't currently using the STL, this library
+won't be of any interest, but hard-core STL users will appreciate its
+usefulness.
+
+%description compose-devel -l pl
+boost::compose dostarcza rozszerzenie adaptera obiektu funkcji compose
+do u¿ytku z STL-ow± czê¶ci± Standardu C++. Je¿eli nie u¿ywasz STL,
+biblioteka bêdzie poza twoim zainteresowaniem, lecz hardkorowi
+u¿ytkownicy STL-a doceni± jej u¿yteczno¶æ.
+
+%package compressed_pair-devel
+Summary: Empty member optimization
+Summary(pl): Optymalizacja pustego elementu
+Group: Development/Libraries
+Requires: %{name}-call_traits-devel = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+
+%description compressed_pair-devel
+The class boost::compressed_pair is very similar to std::pair, but if
+either of the template arguments are empty classes, then the "empty
+base-class optimisation" is applied to compress the size of the pair.
+
+%description compressed_pair-devel -l pl
+Klasa boost::compressed_pair jest bardzo podobna do std::pair, ale
+je¿eli który¶ z argumentów wzorca jest pust± klas±, wtedy stosowana
+jest "optymalizacja pustej klasy bazowej" do kompresji pary.
+
+%package concept_check-devel
+Summary: Tools for generic programming
+Summary(pl): Narzêdzia dla programowania generycznego
+Group: Development/Libraries
+Requires: %{name}-static_assert-devel = %{version}-%{release}
+Requires: %{name}-type_traits-devel = %{version}-%{release}
+
+%description concept_check-devel
+The boost::concept_check library provides various tools for generic
+programming.
+
+%description concept_check-devel -l pl
+Biblioteka boost::concept_check dostarcza ró¿ne narzêdzia dla
+programowania generycznego.
+
+%package conversion-devel
+Summary: Numeric, polymorphic, and lexical casts
+Summary(pl): Numeryczne, polimorficzne i leksykalne rzutowania
+Group: Development/Libraries
+Requires: %{name}-type_traits-devel = %{version}-%{release}
+
+%description conversion-devel
+The boost::conversion library improves program safety and clarity by
+performing otherwise messy conversions. It includes cast-style
+function templates designed to complement the C++ Standard's built-in
+casts.
+
+%description conversion-devel -l pl
+Biblioteka boost::conversion zwiêksza bezpieczeñstwo i klarowno¶æ
+programu dokonuj±c konwersji które s± w innych przypadkach niechlujne.
+Biblioteka zawiera "rzutopodobne" wzorce funkcji uzupe³niaj±ce
+wbudowane w Standard C++ rzutowania.
+
+%package crc-devel
+Summary: CRC computing library.
+Summary(pl): Biblioteka obliczaj±ca CRC.
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description crc-devel
+The boost::crc library provides two implementations of CRC computation
+objects and functions. The implementations are template-based.
+
+%description crc-devel -l pl
+Bibliteka boost::crc dostarcza dwie implementacje obiektów i funkcji
+obliczaj±cych CRC. Implementacje s± oparte na wzorcach.
+
+%package date_time
+Summary: Date-Time library.
+Summary(pl): Biblioteka daty-czasu.
Group: Libraries
-Summary: Preprocessor metaprogramming tools including repetition and recursion.
-Summary(pl): Narzêdzia metaprogramowania preprocesora razem z repetycj± i rekursj±.
-%description preprocessor-devel
-This library provides preprocessor metaprogramming tools, including
-repetition and recursion.
-%description preprocessor-devel -l pl
-Biblioteka udostêpnia narzêdzia metaprogramowania preprocesora,
-w³±czaj±c w to repetycje i rekursjê.
+%description date_time
+A set of date-time libraries.
+
+%description date_time -l pl
+Zbiór bibliotek daty-czasu.
+
+%package date_time-devel
+Summary: Header files for boost::date_time library.
+Summary(pl): Pliki nag³ówkowe dla biblioteki boost::date_time.
+Group: Development/Libraries
+Requires: %{name}-date_time = %{version}-%{release}
+#TODO: make decision if do separate packages include it to main devel package
+#Requires: %{name}-operators-devel = %{version}-%{release}
+#Requires: %{name}-integer-devel = %{version}-%{release}
+#Requires: %{name}-tokenizer-devel = %{version}-%{release}
+Requires: %{name}-conversion-devel = %{version}-%{release}
+
+%description date_time-devel
+Header files for boost::date_time library.
+
+%description date_time-devel -l pl
+Pliki nag³ówkowe dla biblioteki boost::date_time
+
+%package date_time-static
+Summary: Static boost::date_time library.
+Summary(pl): Statyczna biblioteka boost::date_time.
+Group: Development/Libraries
+Requires: %{name}-date_time-devel = %{version}-%{release}
+
+%description date_time-static
+Static boost::date_time library.
+
+%description date_time-devel -l pl
+Statyczna biblioteka boost::date_time.
+
+
+%package mem_fn-devel
+Summary: Generalized binders for member functions
+Summary(pl): Uogólnione bindery dla metod
+Group: Development/Libraries
+Requires: %{name}-bind-devel = %{version}-%{release}
+
+%description mem_fn-devel
+boost::mem_fn is a generalization of the standard functions
+std::mem_fun and std::mem_fun_ref.
+
+%description mem_fn-devel -l pl
+boost::mem_fn jest uogólnieniem standardowych funkcji std::mem_fun i
+std::mem_fun_ref.
%package mpl-devel
-Group: Libraries
-Summary: Compile-time algorithms, sequences and metafunction classes.
-Summary(pl): Algorytmy czasu kompilacji, sekwencji i klas metafunkcji.
-Requires: %{name}-devel = %{version}
-Requires: %{name}-preprocessor-devel = %{version}
-Requires: %{name}-type_traits-devel = %{version}
-Requires: %{name}-utility-devel = %{version}
+Summary: Compile-time algorithms, sequences and metafunction classes
+Summary(pl): Algorytmy czasu kompilacji, sekwencji i klas metafunkcji
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-preprocessor-devel = %{version}-%{release}
+Requires: %{name}-type_traits-devel = %{version}-%{release}
+Requires: %{name}-utility-devel = %{version}-%{release}
+
%description mpl-devel
The boost-mpl library is a C++ template metaprogramming framework of
compile-time algorithms, sequences and metafunction classes.
Biblioteka boost-mpl jest szkieletem wzorców C++ dla algorytmów czasu
kompilacji, sekwencji i klas metafunkcji.
+%package preprocessor-devel
+Summary: Preprocessor metaprogramming tools including repetition and recursion
+Summary(pl): Narzêdzia metaprogramowania preprocesora razem z repetycj± i rekursj±
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
-%package type_traits-devel
-Group: Libraries
-Summary: Templates for fundamental properties of types.
-Summary(pl): Wzorce dla fundamentalnych w³a¶ciwo¶ci typów.
-Requires: %{name}-devel = %{version}
-Requires: %{name}-preprocessor-devel = %{version}
-Requires: %{name}-mpl-devel = %{version}
-Requires: %{name}-utility-devel = %{version}
-Requires: %{name}-static_assert-devel = %{version}
-
-%description type_traits-devel
-The boost-type_traits library defines three kinds of type trait:
- 1. The properties of a specific type.
- 2. The relationship between two types.
- 3. A transformation from one type to another.
+%description preprocessor-devel
+This library provides preprocessor metaprogramming tools, including
+repetition and recursion.
-%description type_traits-devel -l pl
-Biblioteka boost-type_traits definiuje trzy rodzaje cech typów:
- 1. w³a¶ciwo¶ci konkretnego typu.
- 2. powi±zania miêdzy dwoma typami.
- 3. transformacjê z jednego typu do drugiego.
+%description preprocessor-devel -l pl
+Biblioteka udostêpnia narzêdzia metaprogramowania preprocesora,
+w³±czaj±c w to repetycje i rekursjê.
-%package utility-devel
-Group: Libraries
-Summary: Useful utilities: classes and function templates.
-Summary(pl): U¿yteczne narzêdzia: klasy i wzorce funkcji
-Requires: %{name}-type_traits-devel = %{version}
+%package ref-devel
+Summary: Small library useful for passing references to function templates
+Summary(pl): Ma³a biblioteka u¿yteczna przy przekazywaniu referencji do wzorców funkcji
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-mpl-devel = %{version}-%{release}
+Requires: %{name}-utility-devel = %{version}-%{release}
-%description utility-devel
-Class noncopyable plus checked_delete(), checked_array_delete(),
-next(), prior() function templates, plus base-from-member idiom.
+%description ref-devel
+boost::ref library is a small library that is useful for passing
+references to function templates (algorithms) that would usually take
+copies of their arguments.
-%description utility-devel -l pl
-Klasy noncopyable i checked_delete, funkcje checked_array_delete(),
-next(), prior() oraz idiom base-from-member.
+%description ref-devel -l pl
+Biblioteka boost::ref jest ma³± bibliotek± która jest u¿yteczna w
+przypadku przekazywania referencji do wzorców funkcji (algorytmów)
+które zazwyczaj bior± kopiê swoich argumentów.
%package static_assert-devel
-Group: Libraries
-Summary: Static assertions (compile time assertions).
-Summary(pl): Statyczne asercje (asercje kompilacyjne).
+Summary: Static assertions (compile time assertions)
+Summary(pl): Statyczne asercje (asercje kompilacyjne)
+Group: Development/Libraries
Requires: %{name}-devel = %{version}
%description static_assert-devel
komunikatów o b³êdach. One b³yskawicznie powiedz± u¿ytkownikowi ¿e
biblioteka zosta³a u¿yta w sposób który nie jest zalecany.
+
+%package thread
+Summary: Portable C++ threads library.
+Summary(pl): Przeno¶na biblioteka w±tków C++.
+Group: Libraries
+
+%description thread
+Portable C++ threads library. Shared libraries.
+
+%description thread -l pl
+Przeno¶na biblioteka w±tków dla C++. Biblioteki dzielone.
+
+%package thread-devel
+Summary: Header files for boost::thread library.
+Summary(pl): Pliki nag³ówkowe dla biblioteki boost::thread.
+Group: Development/Libraries
+Requires: %{name}-thread = %{version}-%{release}
+Requires: %{name}-utility-devel = %{version}-%{release}
+#TODO:requires boost::function or boost::function to boost-devel
+
+%description thread-devel
+Header files for boost::thread library.
+
+%description thread-devel -l pl
+Pliki nag³ówkowe dla biblioteki boost::thread.
+
+%package type_traits-devel
+Summary: Templates for fundamental properties of types
+Summary(pl): Wzorce dla fundamentalnych w³a¶ciwo¶ci typów
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-mpl-devel = %{version}-%{release}
+Requires: %{name}-preprocessor-devel = %{version}-%{release}
+Requires: %{name}-utility-devel = %{version}-%{release}
+Requires: %{name}-static_assert-devel = %{version}-%{release}
+
+%description type_traits-devel
+The boost-type_traits library defines three kinds of type trait:
+ 1. The properties of a specific type.
+ 2. The relationship between two types.
+ 3. A transformation from one type to another.
+
+%description type_traits-devel -l pl
+Biblioteka boost-type_traits definiuje trzy rodzaje cech typów:
+ 1. w³a¶ciwo¶ci konkretnego typu.
+ 2. powi±zania miêdzy dwoma typami.
+ 3. transformacjê z jednego typu do drugiego.
+
+%package utility-devel
+Summary: Useful utilities: classes and function templates
+Summary(pl): U¿yteczne narzêdzia: klasy i wzorce funkcji
+Group: Development/Libraries
+Requires: %{name}-type_traits-devel = %{version}
+
+%description utility-devel
+Class noncopyable plus checked_delete(), checked_array_delete(),
+next(), prior() function templates, plus base-from-member idiom.
+
+%description utility-devel -l pl
+Klasy noncopyable i checked_delete, funkcje checked_array_delete(),
+next(), prior() oraz idiom base-from-member.
+
+%package static
+Summary: Static versions of Boost libraries
+Summary(pl): Statyczne wersje bibliotek Boost
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static versions of Boost libraries.
+
+%description static -l pl
+Statyczne wersje bibliotek Boost.
+
%package doc
Summary: Boost C++ Library documentation
Summary(pl): Dokumentacja dla biblioteki Boost C++
-Group: Libraries
-Requires: %{name}-devel = %{version}
+Group: Documentation
+Requires: %{name}-devel = %{version}-%{release}
%description doc
Documentation for the Boost C++ Library.
Dokumentacja dla biblioteki Boost C++.
%prep
-rm -rf $RPM_BUILD_ROOT
+%setup -q
+%patch0 -p1
-%setup -n boost-%{version} -q
+# don't know how to pass it through (b)jam -s (no way?)
+# due to oversophisticated build flags system
+%{__perl} -pi -e 's/ -O3 / %{rpmcflags} /' tools/build/gcc-tools.jam
%build
-%if %{?_with_python:1}%{!?_with_python:0}
+%if %{with python}
PYTHON_VERSION=`python -V 2>&1 | sed 's,.* \([0-9]\.[0-9]\)\(\.[0-9]\)\?.*,\1,'`
PYTHON_ROOT=%{_prefix}
%else
PYTHON_ROOT=
PYTHON_VERSION=
%endif
-bjam -sBUILD=release -sPYTHON_ROOT=$PYTHON_ROOT -sPYTHON_VERSION=$PYTHON_VERSION
+bjam \
+ -d2 \
+ -sBUILD=release \
+ -sPYTHON_ROOT=$PYTHON_ROOT \
+ -sPYTHON_VERSION=$PYTHON_VERSION
%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}}
+cp -rf boost $RPM_BUILD_ROOT%{_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
-
-#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
-
-#array-devel library
-egrep '/boost/array.hpp$' devel.list >array.list
-egrep -v '/boost/array.hpp$' devel.list > _devel.list
-mv {_,}devel.list
-
-#preprocessor-devel
-RFILES="%{_includedir}/boost/preprocessor"
-egrep "$RFILES" devel.list > preprocessor.list
-egrep -v $RFILES devel.list > _devel.list
-mv {_,}devel.list
-
-#mpl-devel
-RFILES="%{_includedir}/boost/mpl/"
-egrep "$RFILES" devel.list > mpl.list
-egrep -v "$RFILES" devel.list >_devel.list
-mv {_,}devel.list
-
-#type_traits-devel
-RFILES="%{_includedir}/boost/type_traits/"
-RFILES="$RFILES|%{_includedir}/boost/type_traits.hpp"
-egrep "$RFILES" devel.list > type_traits.list
-egrep -v "$RFILES" devel.list >_devel.list
-mv {_,}devel.list
-
-#utility-devel
-RFILES="%{_includedir}/boost/noncopyable.hpp"
-RFILES="$RFILES|%{_includedir}/boost/checked_delete.hpp"
-RFILES="$RFILES|%{_includedir}/boost/next_prior.hpp"
-RFILES="$RFILES|%{_includedir}/boost/utility(_fwd){0,1}.hpp"
-RFILES="$RFILES|%{_includedir}/boost/utility/"
-egrep "$RFILES" devel.list > utility.list
-egrep -v "$RFILES" devel.list >_devel.list
-mv {_,}devel.list
-
-#static_assert-devel
-RFILES="%{_includedir}/boost/static_assert.hpp"
-egrep "$RFILES" devel.list > static_assert.list
-egrep -v "$RFILES" devel.list >_devel.list
-mv {_,}devel.list
-
+install libs/*/build/bin/*.a/*/*/*/lib*.a $RPM_BUILD_ROOT%{_libdir}
+install libs/*/build/bin/*.so/*/*/*/*/{,*/}lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
+cp -df libs/*/build/bin/*.so/*/*/*/*/{,*/}lib*.so $RPM_BUILD_ROOT%{_libdir}
# documentation
install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
# 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'
+ for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
sub rewrite_link
{
my $link = shift;
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%if %{?_with_python:1}%{!?_with_python:0}
-%post python -p /sbin/ldconfig
+%post python -p /sbin/ldconfig
%postun python -p /sbin/ldconfig
-%endif
-%files -f master.list
-%defattr(644,root,root,755)
+%post regex -p /sbin/ldconfig
+%postun regex -p /sbin/ldconfig
-%if %{?_with_python:1}%{!?_with_python:0}
-%files python -f python.list
+%files
%defattr(644,root,root,755)
-%endif
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_signals.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_test_exec_monitor.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
-%files devel -f devel.list
+%files devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
+%attr(755,root,root) %{_libdir}/libboost_signals.so
+%attr(755,root,root) %{_libdir}/libboost_test_exec_monitor.so
+%attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
%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
+%{_includedir}/boost/assert.hpp
+%{_includedir}/boost/config
+%{_includedir}/boost/config.hpp
+%{_includedir}/boost/counting_iterator.hpp
+%{_includedir}/boost/cstd*.hpp
+%{_includedir}/boost/current_function.hpp
%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/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/random
-%dir %{_includedir}/boost/random/detail
-%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
+%{_includedir}/boost/detail/algorithm.hpp
+%{_includedir}/boost/detail/allocator.hpp
+%{_includedir}/boost/detail/atomic_count*.hpp
+%{_includedir}/boost/detail/binary_search.hpp
+%{_includedir}/boost/detail/catch_exceptions.hpp
+%{_includedir}/boost/detail/dynamic_bitset.hpp
+%{_includedir}/boost/detail/iterator.hpp
+%{_includedir}/boost/detail/lightweight_*.hpp
+%{_includedir}/boost/detail/limits.hpp
+%{_includedir}/boost/detail/lwm_*.hpp
+%{_includedir}/boost/detail/named_template_params.hpp
+%{_includedir}/boost/detail/numeric_traits.hpp
+%{_includedir}/boost/detail/quick_allocator.hpp
+%{_includedir}/boost/detail/select_type.hpp
+%{_includedir}/boost/detail/shared_*.hpp
+%{_includedir}/boost/detail/workaround.hpp
+%{_includedir}/boost/dynamic_bitset*.hpp
+%{_includedir}/boost/enable_shared_from_this.hpp
+%{_includedir}/boost/filesystem
+%{_includedir}/boost/format
+%{_includedir}/boost/format.hpp
+%{_includedir}/boost/function
+%{_includedir}/boost/function.hpp
+%{_includedir}/boost/function_output_iterator.hpp
+%{_includedir}/boost/functional.hpp
+%{_includedir}/boost/generator_iterator.hpp
+%{_includedir}/boost/graph
+%{_includedir}/boost/half_open_range.hpp
+%{_includedir}/boost/integer
+%{_includedir}/boost/integer*.hpp
+%{_includedir}/boost/intrusive_ptr.hpp
+%{_includedir}/boost/io
+%{_includedir}/boost/io_fwd.hpp
+%{_includedir}/boost/iterator*.hpp
+%{_includedir}/boost/lambda
+%{_includedir}/boost/last_value.hpp
+%{_includedir}/boost/limits.hpp
+%{_includedir}/boost/math
+%{_includedir}/boost/math_fwd.hpp
+%{_includedir}/boost/min_rand.hpp
+%{_includedir}/boost/multi_array
+%{_includedir}/boost/multi_array.hpp
+%{_includedir}/boost/nondet_random.hpp
+%{_includedir}/boost/numeric
+%{_includedir}/boost/operators.hpp
+%{_includedir}/boost/optional.hpp
+%{_includedir}/boost/pending
+%{_includedir}/boost/permutation_iterator.hpp
+%{_includedir}/boost/pool
+%{_includedir}/boost/progress.hpp
+%{_includedir}/boost/property_map*.hpp
+%{_includedir}/boost/random
+%{_includedir}/boost/random.hpp
+%{_includedir}/boost/rational.hpp
+%{_includedir}/boost/scoped_*.hpp
+%{_includedir}/boost/shared_*.hpp
+%{_includedir}/boost/signal.hpp
+%{_includedir}/boost/signals
+%{_includedir}/boost/smart_ptr.hpp
+%{_includedir}/boost/spirit
+%{_includedir}/boost/spirit.hpp
+%{_includedir}/boost/test
+%{_includedir}/boost/throw_exception.hpp
+%{_includedir}/boost/timer.hpp
+%{_includedir}/boost/token*.hpp
+%{_includedir}/boost/tuple
+%{_includedir}/boost/type.hpp
+%{_includedir}/boost/type_traits
+%{_includedir}/boost/utility
+%{_includedir}/boost/version.hpp
+%{_includedir}/boost/visit_each.hpp
+%{_includedir}/boost/weak_ptr.hpp
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libboost_filesystem.a
+%{_libdir}/libboost_prg_exec_monitor.a
+%{_libdir}/libboost_signals.a
+%{_libdir}/libboost_test_exec_monitor.a
+%{_libdir}/libboost_unit_test_framework.a
+
+%if %{with python}
+%files python
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_python.so.*.*.*
+
+%files python-devel
+%defattr(644,root,root,755)
+%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 regex
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
+
+%files regex-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_regex.so
+%{_includedir}/boost/cregex.hpp
+%{_includedir}/boost/regex.h
+%{_includedir}/boost/regex*.hpp
+%{_includedir}/boost/regex
+
+%files regex-static
+%defattr(644,root,root,755)
+%{_libdir}/libboost_regex.a
+
+%files any-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/any.hpp
+
+%files array-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/array.hpp
+
+%files bind-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/bind
+%{_includedir}/boost/bind.hpp
+
+%files call_traits-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/call_traits.hpp
+%{_includedir}/boost/detail/call_traits.hpp
+%{_includedir}/boost/detail/ob_call_traits.hpp
+
+%files compatibility-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/compatibility
+
+%files compose-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/compose.hpp
+
+%files compressed_pair-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/compressed_pair.hpp
+%{_includedir}/boost/detail/compressed_pair.hpp
+%{_includedir}/boost/detail/ob_compressed_pair.hpp
+
+%files concept_check-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/concept_archetype.hpp
+%{_includedir}/boost/concept_check.hpp
+
+%files conversion-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/cast.hpp
+%{_includedir}/boost/lexical_cast.hpp
+
+%files crc-devel
%defattr(644,root,root,755)
-%doc %{_docdir}/boost-%{version}
+%{_includedir}/boost/crc.hpp
-%files regex -f regex.list
+%files date_time
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
-%files regex-devel -f regex-devel.list
+%files date_time-devel
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_date_time.so
+%{_includedir}/boost/date_time
-%files any-devel -f any.list
+%files date_time-static
%defattr(644,root,root,755)
+%{_libdir}/libboost_date_time.a
-%files array-devel -f array.list
+%files mem_fn-devel
%defattr(644,root,root,755)
+%{_includedir}/boost/get_pointer.hpp
+%{_includedir}/boost/mem_fn.hpp
-%files preprocessor-devel -f preprocessor.list
+%files mpl-devel
%defattr(644,root,root,755)
+%{_includedir}/boost/mpl
-%files mpl-devel -f mpl.list
+%files preprocessor-devel
%defattr(644,root,root,755)
+%{_includedir}/boost/preprocessor
+%{_includedir}/boost/preprocessor.hpp
-%files type_traits-devel -f type_traits.list
+%files ref-devel
%defattr(644,root,root,755)
+%{_includedir}/boost/ref.hpp
-%files utility-devel -f utility.list
+%files static_assert-devel
%defattr(644,root,root,755)
+%{_includedir}/boost/static_assert.hpp
-%files static_assert-devel -f static_assert.list
+%files thread
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
+
+%files thread-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_thread.so
+%{_includedir}/boost/thread
+%{_includedir}/boost/thread.hpp
+
+
+%files type_traits-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/type_traits.hpp
+%{_includedir}/boost/type_traits
+
+%files utility-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/checked_delete.hpp
+%{_includedir}/boost/next_prior.hpp
+%{_includedir}/boost/noncopyable.hpp
+%{_includedir}/boost/utility*.hpp
+%{_includedir}/boost/utility
+
+%files doc
%defattr(644,root,root,755)
+%{_docdir}/boost-%{version}