# TODO:
# - think about building MPI.
# - split shared libs from core package into -iostreams/-serialization.
+# - fix building context and corouting on x32 (patch1)
#
# Conditional build:
%bcond_without python # without boost-python support
-#
+
%define fver %(echo %{version} | tr . _)
Summary: The Boost C++ Libraries
Summary(pl.UTF-8): Biblioteki C++ "Boost"
Name: boost
-Version: 1.53.0
-Release: 1
+Version: 1.56.0
+Release: 2
License: Boost Software License and others
Group: Libraries
Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
-# Source0-md5: a00d22605d5dbcfb4c9936a9b35bc4c2
+# Source0-md5: a744cf167b05d72335f27c88115f211d
Patch0: %{name}-link.patch
+Patch1: %{name}-x32-context.patch
+# FC Patches:
+# https://svn.boost.org/trac/boost/ticket/5637
+Patch203: %{name}-1.54.0-mpl-print.patch
+# https://svn.boost.org/trac/boost/ticket/8870
+Patch211: %{name}-1.54.0-spirit-unused_typedef.patch
+Patch212: %{name}-1.54.0-spirit-unused_typedef-2.patch
+# https://svn.boost.org/trac/boost/ticket/8871
+Patch213: %{name}-1.54.0-numeric-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8878
+Patch218: %{name}-1.54.0-locale-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8881
+Patch221: %{name}-1.54.0-mpi-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8888
+Patch222: %{name}-1.54.0-python-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/9038
+Patch224: %{name}-1.54.0-pool-test_linking.patch
URL: http://www.boost.org/
BuildRequires: bzip2-devel
BuildRequires: expat-devel
BuildConflicts: gcc = 5:3.3.1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define specflags -DBOOST_IOSTREAMS_USE_DEPRECATED=1
+
%description
The Boost web site provides free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Requires: %{name}-filesystem = %{version}-%{release}
Requires: %{name}-graph = %{version}-%{release}
Requires: %{name}-locale = %{version}-%{release}
+Requires: %{name}-log = %{version}-%{release}
Requires: %{name}-program_options = %{version}-%{release}
Requires: %{name}-regex = %{version}-%{release}
Requires: %{name}-signals = %{version}-%{release}
Summary: Boost.Python library
Summary(pl.UTF-8): biblioteka Boost.Python
Group: Libraries
-%pyrequires_eq python
+Requires: python
%description python
Use the Boost Python Library to quickly and easily export a C++
%description locale -l pl.UTF-8
Narzędzia do obsługi lokalizacji i Unikodu w C++.
+%package log
+Summary: Provide logging tools for C++
+Summary(pl.UTF-8): Narzędzia do logowania w C++
+Group: Libraries
+
+%description log
+Provide logging tools for C++.
+
+%description log -l pl.UTF-8
+Narzędzia do logowania w 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
%prep
%setup -q -n %{name}_%{fver}
%patch0 -p1
+#patch1 -p0
+
+%patch203 -p0
+%patch211 -p1
+%patch212 -p1
+%patch213 -p1
+%patch218 -p1
+%patch221 -p1
+%patch222 -p1
+%patch224 -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
+%{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/src/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
+%{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/src/tools/gcc.jam
# link against shared expat library.
-%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
+#%{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
-cat << EOF > tools/build/v2/user-config.jam
-using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
+cat << EOF > tools/build/src/user-config.jam
+using gcc : %{cxx_version} : %{__cxx} ;
EOF
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
%build
%if %{with python}
PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]')
EXPAT_INCLUDE=%{_includedir} \
EXPAT_LIBPATH=%{_libdir} \
ICU_PATH=%{_prefix} \
-./bootstrap.sh --prefix=%{_prefix}
+./bootstrap.sh \
+ --prefix=%{_prefix}
+
./b2 \
+%ifarch x32
+ --without-context \
+ --without-coroutine \
+%endif
-d2 --toolset=gcc \
- variant=release debug-symbols=on inlining=on link=static,shared threading=multi
+ variant=release \
+ debug-symbols=on \
+ inlining=on \
+ link=static,shared \
+ threading=multi
%install
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_container.so.*.*.*
+%ifnarch x32
+%attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.*
+%endif
%attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
%attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
%attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_atomic.so
%attr(755,root,root) %{_libdir}/libboost_chrono.so
+%attr(755,root,root) %{_libdir}/libboost_container.so
+%ifnarch x32
%attr(755,root,root) %{_libdir}/libboost_context.so
+%attr(755,root,root) %{_libdir}/libboost_coroutine.so
+%endif
%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_log.so
+%attr(755,root,root) %{_libdir}/libboost_log_setup.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
%defattr(644,root,root,755)
%{_libdir}/libboost_atomic.a
%{_libdir}/libboost_chrono.a
+%{_libdir}/libboost_container.a
+%ifnarch x32
%{_libdir}/libboost_context.a
+%{_libdir}/libboost_coroutine.a
+%endif
%{_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_log.a
+%{_libdir}/libboost_log_setup.a
%{_libdir}/libboost_math_*.a
%{_libdir}/libboost_prg_exec_monitor.a
%{_libdir}/libboost_program_options.a
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
+%ifnarch x32
%files context
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
+%endif
%files date_time
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
+%files log
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
+%attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
+
%files program_options
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*