summaryrefslogtreecommitdiff
path: root/testing/boost
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-12-01 23:14:46 +0000
committerroot <root@rshg054.dnsready.net>2011-12-01 23:14:46 +0000
commit9e9ab642711f2424f828e21d14b98c45cdef2b29 (patch)
tree5c1495cfda2b453e377084bad1b20e431e119063 /testing/boost
parentbc0657f7159d0b01373ecb59afc426b98a172b1e (diff)
Thu Dec 1 23:14:46 UTC 2011
Diffstat (limited to 'testing/boost')
-rw-r--r--testing/boost/BOOST_FOREACH.patch60
-rw-r--r--testing/boost/PKGBUILD121
-rw-r--r--testing/boost/exceptions.patch25
3 files changed, 206 insertions, 0 deletions
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 <utility> // 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<typename T>
++ std::pair<T, T> 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<typename T>
++ struct is_lightweight_proxy
++ : foreach::is_lightweight_proxy<T>
++ {};
++
++ template<typename T>
++ struct is_noncopyable
++ : foreach::is_noncopyable<T>
++ {};
++
++} // 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<typename T>
+-inline boost::foreach::is_lightweight_proxy<T> *
++inline boost::BOOST_FOREACH::is_lightweight_proxy<T> *
+ boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
+
+@@ -191,5 +191,5 @@
+ // at the global namespace for your type.
+ template<typename T>
+-inline boost::foreach::is_noncopyable<T> *
++inline boost::BOOST_FOREACH::is_noncopyable<T> *
+ 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 <kevin@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+# Contributor: Luca Roccia <little_rock@users.sourceforge.net>
+
+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