From 9e9ab642711f2424f828e21d14b98c45cdef2b29 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 1 Dec 2011 23:14:46 +0000 Subject: Thu Dec 1 23:14:46 UTC 2011 --- testing/boost/BOOST_FOREACH.patch | 60 +++++++++++++++++++ testing/boost/PKGBUILD | 121 ++++++++++++++++++++++++++++++++++++++ testing/boost/exceptions.patch | 25 ++++++++ 3 files changed, 206 insertions(+) create mode 100644 testing/boost/BOOST_FOREACH.patch create mode 100644 testing/boost/PKGBUILD create mode 100644 testing/boost/exceptions.patch (limited to 'testing/boost') diff --git a/testing/boost/BOOST_FOREACH.patch b/testing/boost/BOOST_FOREACH.patch new file mode 100644 index 000000000..12cf08800 --- /dev/null +++ b/testing/boost/BOOST_FOREACH.patch @@ -0,0 +1,60 @@ +Index: /trunk/boost/foreach_fwd.hpp +=================================================================== +--- /trunk/boost/foreach_fwd.hpp (revision 62661) ++++ /trunk/boost/foreach_fwd.hpp (revision 75540) +@@ -15,4 +15,6 @@ + #define BOOST_FOREACH_FWD_HPP + ++#include // for std::pair ++ + // This must be at global scope, hence the uglified name + enum boost_foreach_argument_dependent_lookup_hack +@@ -26,4 +28,7 @@ + namespace foreach + { ++ template ++ std::pair in_range(T begin, T end); ++ + /////////////////////////////////////////////////////////////////////////////// + // boost::foreach::tag +@@ -47,4 +52,22 @@ + } // namespace foreach + ++// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131 ++namespace BOOST_FOREACH ++{ ++ using foreach::in_range; ++ using foreach::tag; ++ ++ template ++ struct is_lightweight_proxy ++ : foreach::is_lightweight_proxy ++ {}; ++ ++ template ++ struct is_noncopyable ++ : foreach::is_noncopyable ++ {}; ++ ++} // namespace BOOST_FOREACH ++ + } // namespace boost + +Index: /trunk/boost/foreach.hpp +=================================================================== +--- /trunk/boost/foreach.hpp (revision 75077) ++++ /trunk/boost/foreach.hpp (revision 75540) +@@ -166,5 +166,5 @@ + // at the global namespace for your type. + template +-inline boost::foreach::is_lightweight_proxy * ++inline boost::BOOST_FOREACH::is_lightweight_proxy * + boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } + +@@ -191,5 +191,5 @@ + // at the global namespace for your type. + template +-inline boost::foreach::is_noncopyable * ++inline boost::BOOST_FOREACH::is_noncopyable * + boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } + diff --git a/testing/boost/PKGBUILD b/testing/boost/PKGBUILD new file mode 100644 index 000000000..d21937455 --- /dev/null +++ b/testing/boost/PKGBUILD @@ -0,0 +1,121 @@ +# $Id: PKGBUILD 143855 2011-11-30 06:29:02Z ibiru $ +# Maintainer: kevin +# Contributor: Giovanni Scafora +# Contributor: Kritoke +# Contributor: Luca Roccia + +pkgbase=boost +pkgname=('boost-libs' 'boost') +pkgver=1.48.0 +_boostver=${pkgver//./_} +pkgrel=2 +arch=('i686' 'x86_64') +url="http://www.boost.org/" +makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi') +source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}_${_boostver}.tar.gz + exceptions.patch + BOOST_FOREACH.patch) +license=('custom') +md5sums=('313a11e97eb56eb7efd18325354631be' + '9b44c28b36303152050c8c82469569c5' + '2db6098a1a39bced4c6162eb46418320') + +_stagedir="${srcdir}/stagedir" + +build() { + # set python path for bjam + cd "${srcdir}/${pkgbase}_${_boostver}/tools" + echo "using python : 2.7 : /usr/bin/python2 ;" >> build/v2/user-config.jam + echo "using python : 3.2 : /usr/bin/python : /usr/include/python3.2mu : /usr/lib ;" >> build/v2/user-config.jam + echo "using mpi ;" >> build/v2/user-config.jam + + cd "${srcdir}"/${pkgbase}_${_boostver} + # https://svn.boost.org/trac/boost/ticket/5731 + patch -p0 -i "${srcdir}/exceptions.patch" + # https://svn.boost.org/trac/boost/ticket/6131 + patch -p2 -i "${srcdir}/BOOST_FOREACH.patch" + + + # build bjam + cd "${srcdir}/${pkgbase}_${_boostver}/tools/build/v2/engine" + ./build.sh cc + + _bindir="bin.linuxx86" + [ "${CARCH}" = "x86_64" ] && _bindir="bin.linuxx86_64" + + install -d "${_stagedir}"/usr/bin + install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam + + # build tools + cd "${srcdir}/${pkgbase}_${_boostver}/tools/" + "${_stagedir}"/usr/bin/bjam --toolset=gcc + + # copy the tools + cd "${srcdir}/${pkgbase}_${_boostver}/dist/bin" + for i in *;do + install -m755 "${i}" "${_stagedir}/usr/bin/${i}" + done + + #boostbook needed by quickbook + cd "${srcdir}/${pkgbase}_${_boostver}/dist/" + cp -r share "${_stagedir}" + + # build libs + cd "${srcdir}/${pkgbase}_${_boostver}" + + # default "minimal" install: "release link=shared,static + # runtime-link=shared threading=single,multi" + # --layout=tagged will add the "-mt" suffix for multithreaded libraries + # and installs includes in /usr/include/boost. + # --layout=system no longer adds the -mt suffix for multi-threaded libs. + # install to ${_stagedir} in preparation for split packaging + + "${_stagedir}"/usr/bin/bjam \ + release debug-symbols=off threading=multi \ + runtime-link=shared link=shared,static \ + cflags=-fno-strict-aliasing \ + toolset=gcc \ + --prefix="${_stagedir}" \ + -sTOOLS=gcc \ + --layout=system \ + ${MAKEFLAGS} \ + install +} + +package_boost() { + pkgdesc="Free peer-reviewed portable C++ source libraries - Development" + depends=("boost-libs=${pkgver}") + optdepends=('python: for python bindings' + 'python2: for python2 bindings') + + install -d "${pkgdir}"/usr/{include,lib,share} + # headers/source files + cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/ + + # static libs + cp -r "${_stagedir}"/lib/*.a "${pkgdir}"/usr/lib/ + + # utilities (bjam, bcp, pyste) + cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/ + + #boostbook + cp -r "${_stagedir}"/share/* "${pkgdir}"/usr/share + + # license + install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \ + "${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt +} + +package_boost-libs() { + pkgdesc="Free peer-reviewed portable C++ source libraries - Runtime" + depends=('gcc-libs' 'bzip2' 'zlib' 'icu') + optdepends=('openmpi: for mpi support') + + install -d "${pkgdir}/usr/lib" + #shared libs + cp -r "${_stagedir}"/lib/*.so{,.*} "${pkgdir}/usr/lib/" + + # license + install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \ + "${pkgdir}"/usr/share/licenses/boost-libs/LICENSE_1_0.txt +} diff --git a/testing/boost/exceptions.patch b/testing/boost/exceptions.patch new file mode 100644 index 000000000..9faa71526 --- /dev/null +++ b/testing/boost/exceptions.patch @@ -0,0 +1,25 @@ +diff -up boost/numeric/conversion/converter_policies.hpp\~ boost/numeric/conversion/converter_policies.hpp +--- boost/numeric/conversion/converter_policies.hpp~ 2008-10-13 11:00:03.000000000 +0200 ++++ boost/numeric/conversion/converter_policies.hpp 2011-07-22 11:46:40.961876274 +0200 +@@ -20,6 +20,7 @@ + + #include "boost/mpl/if.hpp" + #include "boost/mpl/integral_c.hpp" ++#include "boost/throw_exception.hpp" + + namespace boost { namespace numeric + { +@@ -159,9 +160,9 @@ struct def_overflow_handler + void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow) + { + if ( r == cNegOverflow ) +- throw negative_overflow() ; ++ boost::throw_exception( negative_overflow() ) ; + else if ( r == cPosOverflow ) +- throw positive_overflow() ; ++ boost::throw_exception( positive_overflow() ) ; + } + } ; + + +Diff finished. Fri Jul 22 11:46:49 2011 -- cgit v1.2.3-54-g00ecf