#
# TODO:
-# - /usr/include/boost/detail/atomic_cont_gcc.hpp includes bits/atomicity.h
-# but new libstdc++ has ext/atomicity.h
+# - pass %{__cxx}
#
# Conditional build:
%bcond_without python # without boost-python support
Summary: The Boost C++ Libraries
Summary(pl.UTF-8): Biblioteki C++ "Boost"
Name: boost
-Version: 1.33.1
-Release: 10
+Version: 1.34.1
+Release: 2
License: Boost Software License and others
Group: Libraries
Source0: http://dl.sourceforge.net/boost/%{name}_%{_fver}.tar.bz2
-# Source0-md5: 2b999b2fb7798e1737d1fff8fac602ef
-Patch0: %{name}-python.patch
-Patch1: %{name}-archive_iterator_segv.patch
-Patch2: %{name}-atomicity.patch
+# Source0-md5: 2d938467e8a448a2c9763e0a9f8ca7e5
URL: http://www.boost.org/
-BuildRequires: boost-jam >= 3.1.3
+BuildRequires: boost-jam >= 3.1.12
BuildRequires: bzip2-devel
BuildRequires: libicu-devel
BuildRequires: libstdc++-devel
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-ref-devel = %{version}-%{release}
Requires: libstdc++-devel
# temporary Provides (until CVS HEAD stops using it)?
+Provides: boost-call_traits-devel = %{version}-%{release}
Provides: boost-concept_check-devel = %{version}-%{release}
Provides: boost-conversion-devel = %{version}-%{release}
Provides: boost-mpl-devel = %{version}-%{release}
Provides: boost-preprocessor-devel = %{version}-%{release}
+Provides: boost-ref-devel = %{version}-%{release}
Provides: boost-static_assert-devel = %{version}-%{release}
Provides: boost-type_traits-devel = %{version}-%{release}
Provides: boost-utility-devel = %{version}-%{release}
+Obsoletes: boost-call_traits-devel
Obsoletes: boost-compose-devel
Obsoletes: boost-concept_check-devel
Obsoletes: boost-conversion-devel
Obsoletes: boost-mpl-devel
Obsoletes: boost-preprocessor-devel
+Obsoletes: boost-ref-devel
Obsoletes: boost-static_assert-devel
Obsoletes: boost-type_traits-devel
Obsoletes: boost-utility-devel
Summary: Generalized binders for function/object/pointers and member functions
Summary(pl.UTF-8): Uogólnione bindery dla funkcji/obiektów/wskaźników oraz metod
Group: Development/Libraries
-Requires: %{name}-ref-devel = %{version}-%{release}
+Requires: %{name}-signals-devel = %{version}-%{release}
Provides: boost-mem_fn-devel = %{version}-%{release}
Obsoletes: boost-compose-devel
Obsoletes: boost-mem_fn-devel
std::bind2nd. Ten pakiet zawiera także boost::mem_fn, który jest
uogólnieniem standardowych funkcji std::mem_fun i std::mem_fun_ref.
-%package call_traits-devel
-Summary: Defines types for passing parameters
-Summary(pl.UTF-8): Definiowanie typów dla przekazywania parametrów
-Group: Development/Libraries
-Requires: %{name}-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.UTF-8
-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.UTF-8): Pomoc dla nie trzymających standardu bibliotek
Summary: Empty member optimization
Summary(pl.UTF-8): Optymalizacja pustego elementu
Group: Development/Libraries
-Requires: %{name}-call_traits-devel = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
%description compressed_pair-devel
%description filesystem-static -l pl.UTF-8
Biblioteka statyczna boost::filesystem.
+%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 graph-devel
+Summary: Header files for boost::graph
+Summary(pl.UTF-8): Pliki nagłówkowe dla boost::graph
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-graph = %{version}-%{release}
+
+%description graph-devel
+Header files for boost::graph library.
+
+%description graph-devel -l pl.UTF-8
+Pliki nagłówkowe dla biblioteki boost::graph.
+
+%package graph-static
+Summary: Static boost::graph library
+Summary(pl.UTF-8): Biblioteka statyczna boost::graph
+Group: Development/Libraries
+Requires: %{name}-graph-devel = %{version}-%{release}
+
+%description graph-static
+Static boost::graph library.
+
+%description graph-static -l pl.UTF-8
+Biblioteka statyczna boost::graph.
+
%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
%description program_options-static -l pl.UTF-8
Biblioteka statyczna boost::program_options.
-%package ref-devel
-Summary: Small library useful for passing references to function templates
-Summary(pl.UTF-8): Mała biblioteka użyteczna przy przekazywaniu referencji do wzorców funkcji
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%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 ref-devel -l pl.UTF-8
-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 signals
Summary: Signals & slots callback implementation
Summary(pl.UTF-8): Implementacja sygnałów i slotów
Requires: %{name}-bind-devel = %{version}-%{release}
#Requires: %{name}-iterator_adaptors-devel = %{version}-%{release}
#Requires: %{name}-operators-devel = %{version}-%{release}
-Requires: %{name}-ref-devel = %{version}-%{release}
#Requires: %{name}-smart_ptr-devel = %{version}-%{release}
%description signals-devel
Summary(pl.UTF-8): Szkielet parsera LL
Group: Development/Libraries
Requires: %{name}-compressed_pair-devel = %{version}-%{release}
-Requires: %{name}-ref-devel = %{version}-%{release}
Requires: %{name}-regex-devel = %{version}-%{release}
Requires: %{name}-thread-devel = %{version}-%{release}
#TODO:
Szkielet parsera LL reprezentujący parsery jako gramatyki EBNF
bezpośrednio w kodzie C++.
+%package statechart-devel
+Summary: C++ library for finite state machines
+Summary(pl.UTF-8): Biblioteka C++ do automatów skończonych
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description statechart-devel
+C++ library for finite state machines.
+
+%description statechart-devel -l pl.UTF-8
+Biblioteka C++ do automatów skończonych.
+
%package test
Summary: Support for program testing and execution monitoring
Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu
Summary: Header files for boost::test
Summary(pl.UTF-8): Pliki nagłówkowe dla boost::test
Group: Development/Libraries
-Requires: %{name}-call_traits-devel = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Requires: %{name}-test = %{version}-%{release}
#TODO:
%description thread-static -l pl.UTF-8
Przenośna biblioteka wątków dla C++ - biblioteka statyczna.
+%package tr1-devel
+Summary: An implementation of the C++ Technical Report on Standard Library Extensions
+Summary(pl.UTF-8): Implementacja C++ TR dla rozszerzeń biblioteki standardowej
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description tr1-devel
+The TR1 library provides an implementation of the C++ Technical Report
+on Standard Library Extensions. This library does not itself implement
+the TR1 components, rather it's a thin wrapper that will include your
+standard library's TR1 implementation (if it has one), otherwise it
+will include the Boost Library equivalents, and import them into
+namespace std::tr1.
+
+%description tr1-devel -l pl.UTF-8
+Biblioteka TR1 udostępnia implementację C++ Technical Report on
+Standard Library Extensions (raporto technicznego dotyczącego
+rozszerzeń biblioteki standardowej C++). Biblioteka jako taka nie
+implementuje komponentów TR1, lecz jest cienkim opakowaniem
+zawierającym implementację TR1 z zainstalowanej biblioteki
+standardowej (jeśli taka jest) lub zawiera odpowiedniki z biblioteki
+Boost zaimportowane do przestrzeni nazw std::tr1.
+
+%package typeof-devel
+Summary: Emulates C++ typeid()
+Summary(pl.UTF-8): Emulacja typeid() z C++
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description typeof-devel
+Emulates C++ typeid().
+
+%description typeof-devel -l pl.UTF-8
+Emulacja typeid() z C++.
+
%package uBLAS-devel
Summary: Basic linear algebra for dense, packed and sparse matrices
Summary(pl.UTF-8): Prosta liniowa algebra dla gęstych, upakowanych i rzadkich macierzy
i rzadkich wektorów oraz gęstych, jednostkowych, trójkątnych,
diagonalnych, symetrycznych, hermitowskich i rzadkich macierzy.
+%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
+Requires: %{name}-devel = %{version}-%{release}
+
+%description wave
+Boost.Wave - a standard compliant C++ preprocessor library.
+
+%description wave -l pl.UTF-8
+Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
+
%package wave-devel
Summary: Boost.Wave - a standard compliant C++ preprocessor library
Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
%description wave-devel
Boost.Wave - a standard compliant C++ preprocessor library.
+Development files.
%description wave-devel -l pl.UTF-8
+Boost.Wave - zgodna ze standardem biblioteka preprocesora C++. Pliki
+dla developera.
+
+%package wave-static
+Summary: Boost.Wave - a standard compliant C++ preprocessor library
+Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
+Group: Development/Libraries
+Requires: %{name}-wave-devel = %{version}-%{release}
+
+%description wave-static
+Boost.Wave - a standard compliant C++ preprocessor library. Static
+library.
+
+%description wave-static -l pl.UTF-8
Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
+Biblioteka statyczna.
+
+%package xpressive-devel
+Summary: Object-oriented regular expression template library for C++
+Summary(pl.UTF-8): Zorientowana obiektowo biblioteka szablonów wyrażeń regularnych dla C++
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description xpressive-devel
+xpressive is an advanced, object-oriented regular expression template
+library for C++. Regular expressions can be written as strings that
+are parsed at run-time, or as expression templates that are parsed at
+compile-time. Regular expressions can refer to each other and to
+themselves recursively, allowing you to build arbitrarily complicated
+grammars out of them.
+
+%description xpressive-devel -l pl.UTF-8
+xpressive to zaawansowana, zorientowana obiektowo biblioteka szablonów
+wyrażeń regularnych dla C++. Wyrażenia regularne mogą być pisane jako
+łańcuchy znaków analizowane w czasie działania lub szablony wyrażeń
+analizowane w czasie kompilacji. Wyrażenia regularne mogą odwoływać
+się do siebie nawzajem i rekurencyjnie do siebie samych, co pozwala na
+tworzenie z nich dowolnie złożonych gramatyk.
%package doc
Summary: Boost C++ Library documentation
%prep
%setup -q -n %{name}_%{_fver}
-%patch0 -p1
-%patch1 -p1
-%patch2 -p0
-# don't know how to pass it through (b)jam -s (no way?)
-# due to oversophisticated build flags system
-%{__perl} -pi -e 's/ -O3 / %{rpmcxxflags} /' tools/build/v1/gcc-tools.jam
+# - 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.
+%{__perl} -pi -e 's/ -O3 / %{rpmcxxflags} -fPIC /' tools/build/v2/tools/gcc.jam
%ifarch alpha
# -pthread gcc parameter doesn't add _REENTRANT to cpp macros on alpha (only)
PYTHON_VERSION=
%endif
bjam \
- -d2 \
- -sGXX="%{__cxx}" \
- -sGCC="%{__cc}" \
- -sHAVE_ICU=1 -sICU_PATH=/usr \
- -sBUILD="release <threading>multi <shared-linkable>true <inlining>on <debug-symbols>on" \
- -sPYTHON_ROOT=$PYTHON_ROOT \
- -sPYTHON_VERSION=$PYTHON_VERSION
+ -d2 --toolset=gcc \
+ variant=release threading=multi inlining=on debug-symbols=on
%install
rm -rf $RPM_BUILD_ROOT
cp -rf boost $RPM_BUILD_ROOT%{_includedir}
-install bin/boost/libs/*/build/*.a/*/release/inlining-on/shared-linkable-true/*/lib*.a $RPM_BUILD_ROOT%{_libdir}
-install bin/boost/libs/*/build/*.so/*/release/inlining-on/shared-linkable-true/*/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
-# use cp -d, install follows symlinks instead of preserving them!
-cp -df bin/boost/libs/*/build/*.so/*/release/inlining-on/shared-linkable-true/*/lib*.so $RPM_BUILD_ROOT%{_libdir}
+install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/link-static/threading-multi/lib*.a $RPM_BUILD_ROOT%{_libdir}
+install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/threading-multi/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
-# create symlinks without -gcc-mt-* things in names
-for f in $RPM_BUILD_ROOT%{_libdir}/*.so.*; do
+# create symlinks without -gccXX-mt-* things in names
+for f in $RPM_BUILD_ROOT%{_libdir}/*.so.*.*.*; do
[ -f "$f" ] || continue
f=$(basename "$f")
- soname=$(basename "$f" | sed -e 's#-gcc-mt-.*#.so#g')
-
- ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/${soname}"
+ soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.so#g')
+ ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
done
for f in $RPM_BUILD_ROOT%{_libdir}/*.a; do
[ -f "$f" ] || continue
f=$(basename "$f")
- soname=$(basename "$f" | sed -e 's#-gcc-mt-.*#.a#g')
-
- ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/${soname}"
+ soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.a#g')
+ ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
done
# documentation
%post filesystem -p /sbin/ldconfig
%postun filesystem -p /sbin/ldconfig
+%post graph -p /sbin/ldconfig
+%postun graph -p /sbin/ldconfig
+
%post python -p /sbin/ldconfig
%postun python -p /sbin/ldconfig
%post test -p /sbin/ldconfig
%postun test -p /sbin/ldconfig
+%post wave -p /sbin/ldconfig
+%postun wave -p /sbin/ldconfig
+
%post thread -p /sbin/ldconfig
%postun thread -p /sbin/ldconfig
%{_includedir}/boost/assign
%{_includedir}/boost/assign.hpp
%{_includedir}/boost/blank_fwd.hpp
+%{_includedir}/boost/call_traits.hpp
%{_includedir}/boost/cast.hpp
%{_includedir}/boost/checked_delete.hpp
%{_includedir}/boost/concept_archetype.hpp
%{_includedir}/boost/detail/atomic_count*.hpp
%{_includedir}/boost/detail/bad_weak_ptr.hpp
%{_includedir}/boost/detail/binary_search.hpp
+%{_includedir}/boost/detail/call_traits.hpp
%{_includedir}/boost/detail/catch_exceptions.hpp
%{_includedir}/boost/detail/dynamic_bitset.hpp
%{_includedir}/boost/detail/endian.hpp
%{_includedir}/boost/detail/named_template_params.hpp
%{_includedir}/boost/detail/no_exceptions_support.hpp
%{_includedir}/boost/detail/numeric_traits.hpp
+%{_includedir}/boost/detail/ob_call_traits.hpp
%{_includedir}/boost/detail/quick_allocator.hpp
%{_includedir}/boost/detail/reference_content.hpp
%{_includedir}/boost/detail/select_type.hpp
%{_includedir}/boost/dynamic_bitset_fwd.hpp
%{_includedir}/boost/dynamic_property_map.hpp
%{_includedir}/boost/enable_shared_from_this.hpp
+%{_includedir}/boost/foreach.hpp
%{_includedir}/boost/format
%{_includedir}/boost/format.hpp
%{_includedir}/boost/function
%{_includedir}/boost/functional
%{_includedir}/boost/functional.hpp
%{_includedir}/boost/generator_iterator.hpp
-%{_includedir}/boost/graph
%{_includedir}/boost/implicit_cast.hpp
%{_includedir}/boost/indirect_reference.hpp
%{_includedir}/boost/integer
%{_includedir}/boost/noncopyable.hpp
%{_includedir}/boost/nondet_random.hpp
%{_includedir}/boost/none.hpp
-%{_includedir}/boost/none_t.hpp
%{_includedir}/boost/non_type.hpp
%dir %{_includedir}/boost/numeric
%{_includedir}/boost/numeric/interval*
%{_includedir}/boost/pfto.hpp
%{_includedir}/boost/pool
%{_includedir}/boost/pointee.hpp
+%{_includedir}/boost/pointer_cast.hpp
+%{_includedir}/boost/pointer_to_other.hpp
%{_includedir}/boost/preprocessor
%{_includedir}/boost/preprocessor.hpp
%{_includedir}/boost/progress.hpp
%{_includedir}/boost/range
%{_includedir}/boost/range.hpp
%{_includedir}/boost/rational.hpp
+%{_includedir}/boost/ref.hpp
%{_includedir}/boost/scoped_*.hpp
%{_includedir}/boost/serialization
%{_includedir}/boost/shared_*.hpp
%{_includedir}/boost/get_pointer.hpp
%{_includedir}/boost/mem_fn.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 date_time-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_date_time*.so
+%{_includedir}/boost/date_time.hpp
%{_includedir}/boost/date_time
%files date_time-static
%files filesystem-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_filesystem*.so
+%{_includedir}/boost/filesystem.hpp
%{_includedir}/boost/filesystem
%files filesystem-static
%defattr(644,root,root,755)
%{_libdir}/libboost_filesystem*.a
+%files graph
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_graph*.so.*.*.*
+
+%files graph-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_graph*.so
+%{_includedir}/boost/graph
+
+%files graph-static
+%defattr(644,root,root,755)
+%{_libdir}/libboost_grap*.a
+
%files program_options
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_program_options*.so.*.*.*
%defattr(644,root,root,755)
%{_libdir}/libboost_program_options*.a
-%files ref-devel
-%defattr(644,root,root,755)
-%{_includedir}/boost/ref.hpp
-
%files signals
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_signals*.so.*.*.*
%{_includedir}/boost/spirit.hpp
%{_includedir}/boost/spirit
+%files statechart-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/statechart
+
+%files tr1-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/tr1
+
%files test
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so.*.*.*
-%attr(755,root,root) %{_libdir}/libboost_test_exec_monitor*.so.*.*.*
%attr(755,root,root) %{_libdir}/libboost_unit_test_framework*.so.*.*.*
%files test-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so
-%attr(755,root,root) %{_libdir}/libboost_test_exec_monitor*.so
%attr(755,root,root) %{_libdir}/libboost_unit_test_framework*.so
%{_includedir}/boost/test
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_thread*.a
+%files typeof-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/typeof
+
%files uBLAS-devel
%defattr(644,root,root,755)
%{_includedir}/boost/numeric/ublas
+%files wave
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_wave*.so.*.*.*
+
%files wave-devel
%defattr(644,root,root,755)
-%{_libdir}/libboost_wave*.a
+%attr(755,root,root) %{_libdir}/libboost_wave*.so
%{_includedir}/boost/wave
%{_includedir}/boost/wave.hpp
+%files wave-static
+%defattr(644,root,root,755)
+%{_libdir}/libboost_wave*.a
+
+%files xpressive-devel
+%defattr(644,root,root,755)
+%{_includedir}/boost/xpressive
+
%files doc
%defattr(644,root,root,755)
%{_docdir}/%{name}-%{version}