Date: Wednesday, March 27, 2013 @ 14:29:26 Author: stephane Revision: 180861
upgpkg: boost 1.52.0-3 Fix FS#34478 for 1.52.0 Added: boost/trunk/boost-1.52.0-python3.patch (from rev 180859, boost/trunk/boost-1.53.0-python3.patch) Modified: boost/trunk/PKGBUILD Deleted: boost/trunk/boost-1.53.0-python3.patch ----------------------------+ PKGBUILD | 13 +++-- boost-1.52.0-python3.patch | 96 +++++++++++++++++++++++++++++++++++++++++++ boost-1.53.0-python3.patch | 96 ------------------------------------------- 3 files changed, 103 insertions(+), 102 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-03-27 12:36:17 UTC (rev 180860) +++ PKGBUILD 2013-03-27 13:29:26 UTC (rev 180861) @@ -8,16 +8,16 @@ pkgbase=boost pkgname=('boost-libs' 'boost') -pkgver=1.53.0 +pkgver=1.52.0 _boostver=${pkgver//./_} -pkgrel=1 +pkgrel=3 url="http://www.boost.org/" arch=('i686' 'x86_64') license=('custom') makedepends=('icu>=51.1' 'python' 'python2' 'bzip2' 'zlib' 'openmpi') source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}_${_boostver}.tar.gz - boost-1.53.0-python3.patch) -sha1sums=('0e4ef26cc7780c6bbc63987ef2f29be920e2395b' + boost-1.52.0-python3.patch) +sha1sums=('1120430030315b0a94b6d63fc04662960db2444c' '34026072a7cb2534164f20e77bb71a5c75093307') _stagedir="${srcdir}/stagedir" @@ -29,7 +29,7 @@ # Fix build errors with python 3 sed -i "/PYTHON_ROOT/s/print sys.prefix/print(sys.prefix)/g" bootstrap.sh - patch -Np1 -i ../boost-1.53.0-python3.patch + patch -Np1 -i ../boost-1.52.0-python3.patch # Shut up strict aliasing warnings echo "using gcc : : : <compileflags>-fno-strict-aliasing ;" >> ./tools/build/v2/user-config.jam @@ -65,12 +65,13 @@ # --layout=system no longer adds the -mt suffix for multi-threaded libs. # install to ${_stagedir} in preparation for split packaging "${_stagedir}"/bin/bjam \ - release \ + variant=release \ debug-symbols=off \ threading=multi \ runtime-link=shared \ link=shared \ toolset=gcc \ + python=2.7 \ --layout=system \ --prefix="${_stagedir}" \ ${JOBS} \ Copied: boost/trunk/boost-1.52.0-python3.patch (from rev 180859, boost/trunk/boost-1.53.0-python3.patch) =================================================================== --- boost-1.52.0-python3.patch (rev 0) +++ boost-1.52.0-python3.patch 2013-03-27 13:29:26 UTC (rev 180861) @@ -0,0 +1,96 @@ +diff -Naur boost_1_53_0.ori/libs/mpi/src/python/datatypes.cpp boost_1_53_0/libs/mpi/src/python/datatypes.cpp +--- boost_1_53_0.ori/libs/mpi/src/python/datatypes.cpp 2007-11-25 13:38:02.000000000 -0500 ++++ boost_1_53_0/libs/mpi/src/python/datatypes.cpp 2013-03-11 20:59:57.171732691 -0400 +@@ -13,6 +13,10 @@ + #include <boost/mpi/python/serialize.hpp> + #include <boost/mpi.hpp> + ++#if PY_MAJOR_VERSION >= 3 ++#define PyInt_Type PyLong_Type ++#endif ++ + namespace boost { namespace mpi { namespace python { + + void export_datatypes() +diff -Naur boost_1_53_0.ori/libs/mpi/src/python/py_environment.cpp boost_1_53_0/libs/mpi/src/python/py_environment.cpp +--- boost_1_53_0.ori/libs/mpi/src/python/py_environment.cpp 2007-11-25 13:38:02.000000000 -0500 ++++ boost_1_53_0/libs/mpi/src/python/py_environment.cpp 2013-03-11 21:02:12.961737401 -0400 +@@ -11,6 +11,9 @@ + * This file reflects the Boost.MPI "environment" class into Python + * methods at module level. + */ ++ ++#include <locale> ++#include <string> + #include <boost/python.hpp> + #include <boost/mpi.hpp> + +@@ -50,11 +53,65 @@ + + // If anything changed, convert C-style argc/argv into Python argv + if (mpi_argv != my_argv) ++ { ++#if PY_MAJOR_VERSION >= 3 ++ // Code stolen from py3k/Modules/python.c. ++ ++ wchar_t **argv_copy = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc); ++ /* We need a second copies, as Python might modify the first one. */ ++ wchar_t **argv_copy2 = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc); ++ ++ if (!argv_copy || !argv_copy2) { ++ fprintf(stderr, "out of memory\n"); ++ return false; ++ } ++ ++ std::locale mylocale; ++ mbstate_t mystate; ++ ++ const std::codecvt<char, wchar_t, mbstate_t>& myfacet = ++ std::use_facet<std::codecvt<char, wchar_t, mbstate_t> >(mylocale); ++ ++ for (int i = 0; i < mpi_argc; i++) ++ { ++ size_t length = strlen(mpi_argv[i]); ++ ++ wchar_t *dest = (wchar_t *) PyMem_Malloc(sizeof(wchar_t) * (length + 1)); ++ ++ const char *from_next; ++ wchar_t *to_next; ++ ++ std::codecvt<wchar_t,char,mbstate_t>::result myresult = ++ myfacet.out(mystate, ++ mpi_argv[i], mpi_argv[i] + length + 1, from_next, ++ dest, dest+length+1, to_next); ++ ++ if (myresult != std::codecvt<wchar_t,char,mbstate_t>::ok ) ++ { ++ fprintf(stderr, "failure translating argv\n"); ++ return 1; ++ } ++ ++ argv_copy2[i] = argv_copy[i] = dest; ++ if (!argv_copy[i]) ++ return false; ++ } ++ ++ PySys_SetArgv(mpi_argc, argv_copy); ++ ++ for (int i = 0; i < mpi_argc; i++) { ++ PyMem_Free(argv_copy2[i]); ++ } ++ PyMem_Free(argv_copy); ++ PyMem_Free(argv_copy2); ++#else + PySys_SetArgv(mpi_argc, mpi_argv); ++#endif ++ } + +- for (int arg = 0; arg < my_argc; ++arg) +- free(my_argv[arg]); +- delete [] my_argv; ++ for (int arg = 0; arg < mpi_argc; ++arg) ++ free(mpi_argv[arg]); ++ delete [] mpi_argv; + + return true; + } Deleted: boost-1.53.0-python3.patch =================================================================== --- boost-1.53.0-python3.patch 2013-03-27 12:36:17 UTC (rev 180860) +++ boost-1.53.0-python3.patch 2013-03-27 13:29:26 UTC (rev 180861) @@ -1,96 +0,0 @@ -diff -Naur boost_1_53_0.ori/libs/mpi/src/python/datatypes.cpp boost_1_53_0/libs/mpi/src/python/datatypes.cpp ---- boost_1_53_0.ori/libs/mpi/src/python/datatypes.cpp 2007-11-25 13:38:02.000000000 -0500 -+++ boost_1_53_0/libs/mpi/src/python/datatypes.cpp 2013-03-11 20:59:57.171732691 -0400 -@@ -13,6 +13,10 @@ - #include <boost/mpi/python/serialize.hpp> - #include <boost/mpi.hpp> - -+#if PY_MAJOR_VERSION >= 3 -+#define PyInt_Type PyLong_Type -+#endif -+ - namespace boost { namespace mpi { namespace python { - - void export_datatypes() -diff -Naur boost_1_53_0.ori/libs/mpi/src/python/py_environment.cpp boost_1_53_0/libs/mpi/src/python/py_environment.cpp ---- boost_1_53_0.ori/libs/mpi/src/python/py_environment.cpp 2007-11-25 13:38:02.000000000 -0500 -+++ boost_1_53_0/libs/mpi/src/python/py_environment.cpp 2013-03-11 21:02:12.961737401 -0400 -@@ -11,6 +11,9 @@ - * This file reflects the Boost.MPI "environment" class into Python - * methods at module level. - */ -+ -+#include <locale> -+#include <string> - #include <boost/python.hpp> - #include <boost/mpi.hpp> - -@@ -50,11 +53,65 @@ - - // If anything changed, convert C-style argc/argv into Python argv - if (mpi_argv != my_argv) -+ { -+#if PY_MAJOR_VERSION >= 3 -+ // Code stolen from py3k/Modules/python.c. -+ -+ wchar_t **argv_copy = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc); -+ /* We need a second copies, as Python might modify the first one. */ -+ wchar_t **argv_copy2 = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc); -+ -+ if (!argv_copy || !argv_copy2) { -+ fprintf(stderr, "out of memory\n"); -+ return false; -+ } -+ -+ std::locale mylocale; -+ mbstate_t mystate; -+ -+ const std::codecvt<char, wchar_t, mbstate_t>& myfacet = -+ std::use_facet<std::codecvt<char, wchar_t, mbstate_t> >(mylocale); -+ -+ for (int i = 0; i < mpi_argc; i++) -+ { -+ size_t length = strlen(mpi_argv[i]); -+ -+ wchar_t *dest = (wchar_t *) PyMem_Malloc(sizeof(wchar_t) * (length + 1)); -+ -+ const char *from_next; -+ wchar_t *to_next; -+ -+ std::codecvt<wchar_t,char,mbstate_t>::result myresult = -+ myfacet.out(mystate, -+ mpi_argv[i], mpi_argv[i] + length + 1, from_next, -+ dest, dest+length+1, to_next); -+ -+ if (myresult != std::codecvt<wchar_t,char,mbstate_t>::ok ) -+ { -+ fprintf(stderr, "failure translating argv\n"); -+ return 1; -+ } -+ -+ argv_copy2[i] = argv_copy[i] = dest; -+ if (!argv_copy[i]) -+ return false; -+ } -+ -+ PySys_SetArgv(mpi_argc, argv_copy); -+ -+ for (int i = 0; i < mpi_argc; i++) { -+ PyMem_Free(argv_copy2[i]); -+ } -+ PyMem_Free(argv_copy); -+ PyMem_Free(argv_copy2); -+#else - PySys_SetArgv(mpi_argc, mpi_argv); -+#endif -+ } - -- for (int arg = 0; arg < my_argc; ++arg) -- free(my_argv[arg]); -- delete [] my_argv; -+ for (int arg = 0; arg < mpi_argc; ++arg) -+ free(mpi_argv[arg]); -+ delete [] mpi_argv; - - return true; - }