[packages/boost] - updated to 1.63.0 - merged python-abi_letters,dual-python-build patches from Fedora - added numpy3

qboosh qboosh at pld-linux.org
Sun Apr 9 08:08:30 CEST 2017


commit 1b90837bd6da06388264369d7766d4ece2eb808f
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Apr 9 08:08:31 2017 +0200

    - updated to 1.63.0
    - merged python-abi_letters,dual-python-build patches from Fedora
    - added numpy3 patch to link numpy3 library with python3 instead of python

 boost-dual-python-build.patch  | 46 +++++++++++++++++++++++++++++++
 boost-numpy3.patch             | 11 ++++++++
 boost-python-abi_letters.patch | 62 ++++++++++++++++++++++++++++++++++++++++++
 boost.spec                     | 51 ++++++++++++++++++++++++++++------
 4 files changed, 161 insertions(+), 9 deletions(-)
---
diff --git a/boost.spec b/boost.spec
index 3a0d6b8..11b9059 100644
--- a/boost.spec
+++ b/boost.spec
@@ -4,23 +4,28 @@
 #	- 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
@@ -31,8 +36,14 @@ BuildRequires:	expat-devel
 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
@@ -459,7 +470,10 @@ Dokumentacja dla biblioteki Boost C++.
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
 
+%patch201 -p1
+%patch202 -p1
 %patch203 -p0
 %patch221 -p1
 
@@ -487,9 +501,9 @@ ICU_PATH=%{_prefix} \
 	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 \
@@ -499,6 +513,7 @@ echo "using python : %{py3_ver}m : %{py3_prefix} : %{py3_incdir} ;" >> project-c
 %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} \
@@ -706,28 +721,46 @@ rm -rf $RPM_BUILD_ROOT
 %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
 
diff --git a/boost-dual-python-build.patch b/boost-dual-python-build.patch
new file mode 100644
index 0000000..d20b262
--- /dev/null
+++ b/boost-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>$(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) ;
diff --git a/boost-numpy3.patch b/boost-numpy3.patch
new file mode 100644
index 0000000..0deef86
--- /dev/null
+++ b/boost-numpy3.patch
@@ -0,0 +1,11 @@
+--- 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) ]
+ 
diff --git a/boost-python-abi_letters.patch b/boost-python-abi_letters.patch
new file mode 100644
index 0000000..7df3ee7
--- /dev/null
+++ b/boost-python-abi_letters.patch
@@ -0,0 +1,62 @@
+--- 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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/boost.git/commitdiff/1b90837bd6da06388264369d7766d4ece2eb808f



More information about the pld-cvs-commit mailing list