--- /dev/null
+--- boost_1_63_0/tools/build/src/tools/python.jam.orig 2017-02-16 18:51:14.005483084 +0000
++++ boost_1_63_0/tools/build/src/tools/python.jam 2017-02-16 18:51:24.912497496 +0000
+@@ -926,27 +926,27 @@
+ # for a particular target OS as the default. This makes it so that we can
+ # select a python interpreter with only knowledge of the target OS. And hence
+ # can configure different Pythons based on the target OS only.
+- local toolset-requirements = [ toolset.requirements ] ;
+- local toolset-target-os-requirements
+- = [ property.evaluate-conditionals-in-context
+- [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
+- if ! <python> in $(toolset-target-os-requirements:G)
+- {
+- toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
+- }
++ #local toolset-requirements = [ toolset.requirements ] ;
++ #local toolset-target-os-requirements
++ # = [ property.evaluate-conditionals-in-context
++ # [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
++ #if ! <python> in $(toolset-target-os-requirements:G)
++ #{
++ # toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
++ #}
+
+ # We also set a default requirement that assigns the first python configured
+ # for a particular target OS as the default. This makes it so that we can
+ # select a python interpreter with only knowledge of the target OS. And hence
+ # can configure different Pythons based on the target OS only.
+- local toolset-requirements = [ toolset.requirements ] ;
+- local toolset-target-os-requirements
+- = [ property.evaluate-conditionals-in-context
+- [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
+- if ! <python> in $(toolset-target-os-requirements:G)
+- {
+- toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
+- }
++ #local toolset-requirements = [ toolset.requirements ] ;
++ #local toolset-target-os-requirements
++ # = [ property.evaluate-conditionals-in-context
++ # [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
++ #if ! <python> in $(toolset-target-os-requirements:G)
++ #{
++ # toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
++ #}
+
+ # Register the right suffix for extensions.
+ register-extension-suffix $(extension-suffix) : $(target-requirements) ;
--- /dev/null
+--- boost_1_63_0/libs/python/build/Jamfile.orig 2016-12-22 13:33:19.000000000 +0100
++++ boost_1_63_0/libs/python/build/Jamfile 2017-04-08 21:35:49.226719994 +0200
+@@ -140,7 +140,7 @@
+ [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+ [ unless [ python.numpy ] : <build>no ]
+ <include>$(numpy-include)
+- <library>boost_python
++ [ cond $(is-py3) : <library>boost_python3 : <library>boost_python ]
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ [ cond $(is-py3) : <python>$(py3-version) ]
+
--- /dev/null
+--- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200
++++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200
+@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti
+ # using python : 2.3 : /usr/local/bin/python ;
+ #
+ rule init ( version ? : cmd-or-prefix ? : includes * : libraries ?
+- : condition * : extension-suffix ? )
++ : condition * : extension-suffix ? : abi-letters ? )
+ {
+ project.push-current $(.project) ;
+
+@@ -107,7 +107,7 @@ rule init ( version ? : cmd-or-prefix ?
+ }
+ }
+
+- configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ;
++ configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) : $(abi-letters) ;
+
+ project.pop-current ;
+ }
+@@ -653,7 +653,7 @@ local rule system-library-dependencies (
+
+ # Declare a target to represent Python's library.
+ #
+-local rule declare-libpython-target ( version ? : requirements * )
++local rule declare-libpython-target ( version ? : requirements * : abi-letters ? )
+ {
+ # Compute the representation of Python version in the name of Python's
+ # library file.
+@@ -677,13 +677,13 @@ local rule declare-libpython-target ( ve
+ }
+
+ # Declare it.
+- lib python.lib : : <name>python$(lib-version) $(requirements) ;
++ lib python.lib : : <name>python$(lib-version)$(abi-letters) $(requirements) ;
+ }
+
+
+ # Implementation of init.
+ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
+- condition * : extension-suffix ? )
++ condition * : extension-suffix ? : abi-letters ? )
+ {
+ local prefix ;
+ local exec-prefix ;
+@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o
+ extension-suffix ?= _d ;
+ }
+ extension-suffix ?= "" ;
++ abi-letters ?= "" ;
+
+ # Normalize and dissect any version number.
+ local major-minor ;
+@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o
+ }
+ else
+ {
+- declare-libpython-target $(version) : $(target-requirements) ;
++ declare-libpython-target $(version) : $(target-requirements) : $(abi-letters) ;
+
+ # This is an evil hack. On, Windows, when Python is embedded, nothing
+ # seems to set up sys.path to include Python's standard library
# - split shared libs from core package into -iostreams/-serialization.
#
# Conditional build:
-%bcond_without python2 # without boost-python2 support
-%bcond_without python3 # without boost-python3 support
+%bcond_without python2 # boost-python[2] support
+%bcond_without python3 # boost-python3 support
+%bcond_without numpy # boost-numpy support
%define fver %(echo %{version} | tr . _)
Summary: The Boost C++ Libraries
Summary(pl.UTF-8): Biblioteki C++ "Boost"
Name: boost
-Version: 1.61.0
-Release: 6
+Version: 1.63.0
+Release: 1
License: Boost Software License and others
Group: Libraries
Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
-# Source0-md5: 6095876341956f65f9d35939ccea1a9f
+# Source0-md5: 1c837ecd990bb022d07e7aab32b09847
Patch0: %{name}-link.patch
Patch1: %{name}-x32-context.patch
Patch2: %{name}-clean-gcc-flags.patch
+Patch3: %{name}-numpy3.patch
# FC Patches:
+Patch201: %{name}-python-abi_letters.patch
+# https://github.com/boostorg/build/issues/163
+Patch202: %{name}-dual-python-build.patch
# https://svn.boost.org/trac/boost/ticket/5637
Patch203: %{name}-1.54.0-mpl-print.patch
# https://svn.boost.org/trac/boost/ticket/8881
BuildRequires: libicu-devel
BuildRequires: libstdc++-devel
BuildRequires: perl-base
-%{?with_python:BuildRequires: python-devel >= 2.2}
-%{?with_python3:BuildRequires: python3-devel}
+%if %{with python}
+BuildRequires: python-devel >= 2.2
+%{?with_numpy:BuildRequires: python-numpy-devel}
+%endif
+%if %{with python3}
+BuildRequires: python3-devel
+%{?with_numpy:BuildRequires: python3-numpy-devel}
+%endif
BuildRequires: rpm-pythonprov
BuildRequires: zlib-devel
BuildConflicts: gcc = 5:3.3.1
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch201 -p1
+%patch202 -p1
%patch203 -p0
%patch221 -p1
threading=multi
%if %{with python3}
-echo "using python : %{py3_ver}m : %{py3_prefix} : %{py3_incdir} ;" >> project-config.jam
+echo "using python : %{py3_ver} : %{py3_prefix} : %{py3_incdir} : : : : m ;" >> project-config.jam
./b2 \
- --with-python python=%{py3_ver}m \
+ --with-python python=%{py3_ver} \
-a -d2 --toolset=gcc \
variant=release \
debug-symbols=on \
%endif
%if %{with python2}
+%{__sed} -i -e '/^using python : 3/d' project-config.jam
echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam
./b2 \
--with-python python=%{py_ver} \
%if %{with python2}
%files python
%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy.so.*.*.*
+%endif
%attr(755,root,root) %{_libdir}/libboost_python.so.*.*.*
%files python-devel
%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy.so
+%endif
%attr(755,root,root) %{_libdir}/libboost_python.so
%files python-static
%defattr(644,root,root,755)
+%if %{with numpy}
+%{_libdir}/libboost_numpy.a
+%endif
%{_libdir}/libboost_python.a
%endif
%if %{with python3}
%files python3
%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy3.so.*.*.*
+%endif
%attr(755,root,root) %{_libdir}/libboost_python3.so.*.*.*
%files python3-devel
%defattr(644,root,root,755)
+%if %{with numpy}
+%attr(755,root,root) %{_libdir}/libboost_numpy3.so
+%endif
%attr(755,root,root) %{_libdir}/libboost_python3.so
%files python3-static
%defattr(644,root,root,755)
+%if %{with numpy}
+%{_libdir}/libboost_numpy3.a
+%endif
%{_libdir}/libboost_python3.a
%endif