From d2c3a27558575327c5e0abd953355116259185d4 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 16 Feb 2017 13:29:32 +0000 Subject: [PATCH] Revert Boost.Build change that breaks building for two Python versions. A change to tools/build/src/tools/python.jam means that the python=2.7 argument to b2 is ignored and both libboost_python.so and libboost_python3.so are linked to libpython2.7.so. Reverting that change restores the previous behaviour that allowed building Boost.Python in two different ways. --- boost-1.63.0-dual-python-build.patch | 46 ++++++++++++++++++++++++++++ boost.spec | 10 +++++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 boost-1.63.0-dual-python-build.patch diff --git a/boost-1.63.0-dual-python-build.patch b/boost-1.63.0-dual-python-build.patch new file mode 100644 index 0000000..d20b262 --- /dev/null +++ b/boost-1.63.0-dual-python-build.patch @@ -0,0 +1,46 @@ +--- 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) ] ; +- if ! in $(toolset-target-os-requirements:G) +- { +- toolset.add-requirements $(target-os):$(version:E=default) ; +- } ++ #local toolset-requirements = [ toolset.requirements ] ; ++ #local toolset-target-os-requirements ++ # = [ property.evaluate-conditionals-in-context ++ # [ $(toolset-requirements).raw ] : $(target-os) ] ; ++ #if ! in $(toolset-target-os-requirements:G) ++ #{ ++ # toolset.add-requirements $(target-os):$(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) ] ; +- if ! in $(toolset-target-os-requirements:G) +- { +- toolset.add-requirements $(target-os):$(version:E=default) ; +- } ++ #local toolset-requirements = [ toolset.requirements ] ; ++ #local toolset-target-os-requirements ++ # = [ property.evaluate-conditionals-in-context ++ # [ $(toolset-requirements).raw ] : $(target-os) ] ; ++ #if ! in $(toolset-target-os-requirements:G) ++ #{ ++ # toolset.add-requirements $(target-os):$(version:E=default) ; ++ #} + + # Register the right suffix for extensions. + register-extension-suffix $(extension-suffix) : $(target-requirements) ; diff --git a/boost.spec b/boost.spec index 1e55d66..6bf5b7a 100644 --- a/boost.spec +++ b/boost.spec @@ -38,7 +38,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -130,6 +130,10 @@ Patch68: boost-1.58.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.60.0-no-rpath.patch +# https://github.com/boostorg/build/issues/163 +Patch83: boost-1.63.0-dual-python-build.patch + + %bcond_with tests %bcond_with docs_generated @@ -649,6 +653,7 @@ a number of significant features and is now developed independently %patch65 -p1 %patch68 -p1 %patch82 -p0 +%patch83 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1294,6 +1299,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Feb 16 2017 Jonathan Wakely - 1.63.0-4 +- Revert Boost.Build change that breaks building for two Python versions. + * Thu Feb 09 2017 Jonathan Wakely - 1.63.0-3 - Add --without-fiber when Boost.Context is not supported.