Commit 1.41.0
This commit is contained in:
parent
456c3cfce0
commit
1891c7ba66
@ -1 +1 @@
|
||||
boost_1_39_0.tar.bz2
|
||||
boost-1.41.0.cmake0.tar.bz2
|
||||
|
@ -1,15 +0,0 @@
|
||||
--- boost/dynamic_bitset/dynamic_bitset.hpp.debug 2008-10-22 03:13:59.000000000 +0900
|
||||
+++ boost/dynamic_bitset/dynamic_bitset.hpp 2009-03-23 03:36:40.000000000 +0900
|
||||
@@ -1017,8 +1017,11 @@
|
||||
? access_by_bytes
|
||||
: access_by_blocks;
|
||||
|
||||
+ if (mode)
|
||||
+ return do_count(m_bits.begin(), num_blocks(), Block(0),
|
||||
+ static_cast<value_to_type<true> *>(0));
|
||||
return do_count(m_bits.begin(), num_blocks(), Block(0),
|
||||
- static_cast<value_to_type<mode> *>(0));
|
||||
+ static_cast<value_to_type<false> *>(0));
|
||||
}
|
||||
|
||||
|
19
boost-cmake-soname.patch
Normal file
19
boost-cmake-soname.patch
Normal file
@ -0,0 +1,19 @@
|
||||
*** tools/build/CMake/BoostCore.cmake.orig 2010-01-12 20:01:46.006547352 -0800
|
||||
--- tools/build/CMake/BoostCore.cmake 2010-01-12 20:02:54.222546929 -0800
|
||||
*************** macro(boost_library_variant LIBNAME)
|
||||
*** 755,761 ****
|
||||
if (BUILD_SOVERSIONED)
|
||||
set_target_properties(${VARIANT_LIBNAME}
|
||||
PROPERTIES
|
||||
! SOVERSION "${BOOST_VERSION}"
|
||||
)
|
||||
endif()
|
||||
endif ()
|
||||
--- 755,761 ----
|
||||
if (BUILD_SOVERSIONED)
|
||||
set_target_properties(${VARIANT_LIBNAME}
|
||||
PROPERTIES
|
||||
! SOVERSION "6"
|
||||
)
|
||||
endif()
|
||||
endif ()
|
@ -1,163 +0,0 @@
|
||||
Index: boost/filesystem/operations.hpp
|
||||
===================================================================
|
||||
--- boost/filesystem/operations.hpp (revision 52859)
|
||||
+++ boost/filesystem/operations.hpp (working copy)
|
||||
@@ -659,9 +659,9 @@
|
||||
{ return is_symlink<wpath>( ph ); }
|
||||
|
||||
inline bool is_empty( const path & ph )
|
||||
- { return is_empty<path>( ph ); }
|
||||
+ { return boost::filesystem::is_empty<path>( ph ); }
|
||||
inline bool is_empty( const wpath & ph )
|
||||
- { return is_empty<wpath>( ph ); }
|
||||
+ { return boost::filesystem::is_empty<wpath>( ph ); }
|
||||
|
||||
inline bool equivalent( const path & ph1, const path & ph2 )
|
||||
{ return equivalent<path>( ph1, ph2 ); }
|
||||
Index: libs/filesystem/test/path_test.cpp
|
||||
===================================================================
|
||||
--- libs/filesystem/test/path_test.cpp (revision 52859)
|
||||
+++ libs/filesystem/test/path_test.cpp (working copy)
|
||||
@@ -27,9 +27,8 @@
|
||||
|
||||
namespace fs = boost::filesystem;
|
||||
using boost::filesystem::path;
|
||||
-using boost::next;
|
||||
-using boost::prior;
|
||||
|
||||
+
|
||||
#include <boost/detail/lightweight_test.hpp>
|
||||
|
||||
#define PATH_CHECK( a, b ) check( a, b, __LINE__ )
|
||||
@@ -480,18 +479,18 @@
|
||||
|
||||
itr_ck = "foo";
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "foo" ) );
|
||||
- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
|
||||
itr_ck = path( "/foo" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "/" ) );
|
||||
- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
|
||||
- BOOST_TEST( next( itr_ck.begin() ) == prior( itr_ck.end() ) );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::next( itr_ck.begin() ) == boost::prior( itr_ck.end() ) );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
|
||||
itr_ck = "/foo/bar";
|
||||
itr = itr_ck.begin();
|
||||
@@ -1106,65 +1105,65 @@
|
||||
|
||||
itr_ck = path( "c:" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
|
||||
- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
|
||||
- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "c:" ) );
|
||||
+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "c:" ) );
|
||||
|
||||
itr_ck = path( "c:/" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
|
||||
- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
- BOOST_TEST( next( next( itr_ck.begin() )) == itr_ck.end() );
|
||||
- BOOST_TEST( prior( prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "/" ) );
|
||||
- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "c:" ) );
|
||||
+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
+ BOOST_TEST( boost::next( boost::next( itr_ck.begin() )) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior( boost::prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "/" ) );
|
||||
+ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "c:" ) );
|
||||
|
||||
itr_ck = path( "c:foo" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
|
||||
- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
|
||||
- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "c:" ) );
|
||||
+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "c:" ) );
|
||||
|
||||
itr_ck = path( "c:/foo" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
|
||||
- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
- BOOST_TEST( *next( next( itr_ck.begin() )) == std::string( "foo" ) );
|
||||
- BOOST_TEST( next( next( next( itr_ck.begin() ))) == itr_ck.end() );
|
||||
- BOOST_TEST( prior( prior( prior( itr_ck.end() ))) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
- BOOST_TEST( *prior( prior( prior( itr_ck.end() ))) == std::string( "c:" ) );
|
||||
+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
+ BOOST_TEST( *boost::next( boost::next( itr_ck.begin() )) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( boost::next( boost::next( boost::next( itr_ck.begin() ))) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
+ BOOST_TEST( *boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == std::string( "c:" ) );
|
||||
|
||||
itr_ck = path( "//net" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) );
|
||||
- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
|
||||
- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "//net" ) );
|
||||
+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "//net" ) );
|
||||
|
||||
itr_ck = path( "//net/" );
|
||||
CHECK_EQUAL( *itr_ck.begin(), "//net" );
|
||||
- CHECK_EQUAL( *next( itr_ck.begin() ), "/" );
|
||||
- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
|
||||
- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
- CHECK_EQUAL( *prior( itr_ck.end() ), "/" );
|
||||
- CHECK_EQUAL( *prior(prior( itr_ck.end() )), "//net" );
|
||||
+ CHECK_EQUAL( *boost::next( itr_ck.begin() ), "/" );
|
||||
+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
|
||||
+ CHECK_EQUAL( *boost::prior( itr_ck.end() ), "/" );
|
||||
+ CHECK_EQUAL( *boost::prior(boost::prior( itr_ck.end() )), "//net" );
|
||||
|
||||
itr_ck = path( "//net/foo" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) );
|
||||
- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
- BOOST_TEST( *next(next( itr_ck.begin() )) == std::string( "foo" ) );
|
||||
- BOOST_TEST( next(next(next( itr_ck.begin() ))) == itr_ck.end() );
|
||||
- BOOST_TEST( prior(prior(prior( itr_ck.end() ))) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
- BOOST_TEST( *prior(prior(prior( itr_ck.end() ))) == std::string( "//net" ) );
|
||||
+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
|
||||
+ BOOST_TEST( *boost::next(boost::next( itr_ck.begin() )) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( boost::next(boost::next(boost::next( itr_ck.begin() ))) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
|
||||
+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) );
|
||||
+ BOOST_TEST( *boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == std::string( "//net" ) );
|
||||
|
||||
itr_ck = path( "prn:" );
|
||||
BOOST_TEST( *itr_ck.begin() == std::string( "prn:" ) );
|
||||
- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
|
||||
- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "prn:" ) );
|
||||
+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
|
||||
+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
|
||||
+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "prn:" ) );
|
||||
} // Windows
|
||||
|
||||
else
|
@ -1,15 +0,0 @@
|
||||
diff -ru boost/function/function_template.hpp boost/function/function_template.hpp
|
||||
--- boost/function/function_template.hpp 2009-05-10 10:31:29.000000000 +0100
|
||||
+++ boost/function/function_template.hpp 2009-05-10 10:49:46.000000000 +0100
|
||||
@@ -950,10 +950,10 @@
|
||||
f.vtable->manager(f.functor, this->functor,
|
||||
boost::detail::function::move_functor_tag);
|
||||
f.vtable = 0;
|
||||
-#if !defined(BOOST_NO_EXCEPTIONS)
|
||||
} else {
|
||||
clear();
|
||||
}
|
||||
+#if !defined(BOOST_NO_EXCEPTIONS)
|
||||
} catch (...) {
|
||||
vtable = 0;
|
||||
throw;
|
@ -1,204 +0,0 @@
|
||||
Index: boost/gil/bit_aligned_pixel_reference.hpp
|
||||
===================================================================
|
||||
--- boost/gil/bit_aligned_pixel_reference.hpp (revision 53049)
|
||||
+++ boost/gil/bit_aligned_pixel_reference.hpp (working copy)
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
// Construct from another compatible pixel type
|
||||
bit_aligned_pixel_reference(const bit_aligned_pixel_reference& p) : _bit_range(p._bit_range) {}
|
||||
- template <typename BF, typename CR> bit_aligned_pixel_reference(packed_pixel<BF,CR,Layout>& p) : _bit_range(static_cast<data_ptr_t>(&at_c<0>(p)), at_c<0>(p).first_bit()) {
|
||||
+ template <typename BF, typename CR> bit_aligned_pixel_reference(packed_pixel<BF,CR,Layout>& p) : _bit_range(static_cast<data_ptr_t>(&gil::at_c<0>(p)), gil::at_c<0>(p).first_bit()) {
|
||||
check_compatible<packed_pixel<BF,CR,Layout> >();
|
||||
}
|
||||
|
||||
Index: boost/gil/color_base.hpp
|
||||
===================================================================
|
||||
--- boost/gil/color_base.hpp (revision 53049)
|
||||
+++ boost/gil/color_base.hpp (working copy)
|
||||
@@ -155,15 +155,15 @@
|
||||
homogeneous_color_base(Element v0, Element v1, Element v2) : _v0(v0), _v1(v1), _v2(v2) {}
|
||||
|
||||
template <typename E2, typename L2> homogeneous_color_base(const homogeneous_color_base<E2,L2,3>& c) :
|
||||
- _v0(at_c<mapping_transform<Layout,L2,0>::value>(c)),
|
||||
- _v1(at_c<mapping_transform<Layout,L2,1>::value>(c)),
|
||||
- _v2(at_c<mapping_transform<Layout,L2,2>::value>(c)) {}
|
||||
+ _v0(gil::at_c<mapping_transform<Layout,L2,0>::value>(c)),
|
||||
+ _v1(gil::at_c<mapping_transform<Layout,L2,1>::value>(c)),
|
||||
+ _v2(gil::at_c<mapping_transform<Layout,L2,2>::value>(c)) {}
|
||||
|
||||
// Support for l-value reference proxy copy construction
|
||||
template <typename E2, typename L2> homogeneous_color_base( homogeneous_color_base<E2,L2,3>& c) :
|
||||
- _v0(at_c<mapping_transform<Layout,L2,0>::value>(c)),
|
||||
- _v1(at_c<mapping_transform<Layout,L2,1>::value>(c)),
|
||||
- _v2(at_c<mapping_transform<Layout,L2,2>::value>(c)) {}
|
||||
+ _v0(gil::at_c<mapping_transform<Layout,L2,0>::value>(c)),
|
||||
+ _v1(gil::at_c<mapping_transform<Layout,L2,1>::value>(c)),
|
||||
+ _v2(gil::at_c<mapping_transform<Layout,L2,2>::value>(c)) {}
|
||||
|
||||
// Support for planar_pixel_iterator construction and dereferencing
|
||||
template <typename P> homogeneous_color_base(P* p,bool) :
|
||||
Index: boost/gil/color_base_algorithm.hpp
|
||||
===================================================================
|
||||
--- boost/gil/color_base_algorithm.hpp (revision 53049)
|
||||
+++ boost/gil/color_base_algorithm.hpp (working copy)
|
||||
@@ -101,7 +101,7 @@
|
||||
template <typename ColorBase, int K> struct kth_semantic_element_reference_type {
|
||||
BOOST_STATIC_CONSTANT(int, semantic_index = (mpl::at_c<typename ColorBase::layout_t::channel_mapping_t,K>::type::value));
|
||||
typedef typename kth_element_reference_type<ColorBase,semantic_index>::type type;
|
||||
- static type get(ColorBase& cb) { return at_c<semantic_index>(cb); }
|
||||
+ static type get(ColorBase& cb) { return gil::at_c<semantic_index>(cb); }
|
||||
};
|
||||
|
||||
/// \brief Specifies the return type of the constant semantic_at_c<K>(color_base);
|
||||
@@ -109,7 +109,7 @@
|
||||
template <typename ColorBase, int K> struct kth_semantic_element_const_reference_type {
|
||||
BOOST_STATIC_CONSTANT(int, semantic_index = (mpl::at_c<typename ColorBase::layout_t::channel_mapping_t,K>::type::value));
|
||||
typedef typename kth_element_const_reference_type<ColorBase,semantic_index>::type type;
|
||||
- static type get(const ColorBase& cb) { return at_c<semantic_index>(cb); }
|
||||
+ static type get(const ColorBase& cb) { return gil::at_c<semantic_index>(cb); }
|
||||
};
|
||||
|
||||
/// \brief A mutable accessor to the K-th semantic element of a color base
|
||||
Index: boost/gil/image_view_factory.hpp
|
||||
===================================================================
|
||||
--- boost/gil/image_view_factory.hpp (revision 53049)
|
||||
+++ boost/gil/image_view_factory.hpp (working copy)
|
||||
@@ -102,7 +102,7 @@
|
||||
BOOST_STATIC_ASSERT((!is_planar<HomogeneousView>::value && view_is_basic<HomogeneousView>::value));
|
||||
BOOST_STATIC_ASSERT((boost::is_pointer<typename HomogeneousView::x_iterator>::value));
|
||||
|
||||
- return &at_c<0>(view(0,0));
|
||||
+ return &gil::at_c<0>(view(0,0));
|
||||
}
|
||||
|
||||
/// \ingroup ImageViewConstructors
|
||||
@@ -430,7 +430,7 @@
|
||||
typedef typename type::xy_locator locator_t;
|
||||
typedef typename type::x_iterator x_iterator_t;
|
||||
typedef typename iterator_adaptor_get_base<x_iterator_t>::type x_iterator_base_t;
|
||||
- x_iterator_t sit(x_iterator_base_t(&at_c<K>(src(0,0))),src.pixels().pixel_size());
|
||||
+ x_iterator_t sit(x_iterator_base_t(&gil::at_c<K>(src(0,0))),src.pixels().pixel_size());
|
||||
return type(src.dimensions(),locator_t(sit, src.pixels().row_size()));
|
||||
}
|
||||
};
|
||||
@@ -444,7 +444,7 @@
|
||||
typedef typename view_type<channel_t, gray_layout_t, false, false, view_is_mutable<View>::value>::type type;
|
||||
static type make(const View& src) {
|
||||
typedef typename type::x_iterator x_iterator_t;
|
||||
- return interleaved_view(src.width(),src.height(),(x_iterator_t)&at_c<K>(src(0,0)), src.pixels().row_size());
|
||||
+ return interleaved_view(src.width(),src.height(),(x_iterator_t)&gil::at_c<K>(src(0,0)), src.pixels().row_size());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -494,7 +494,7 @@
|
||||
template <typename P> kth_channel_deref_fn(const kth_channel_deref_fn<K,P>&) {}
|
||||
|
||||
result_type operator()(argument_type srcP) const {
|
||||
- return result_type(at_c<K>(srcP));
|
||||
+ return result_type(gil::at_c<K>(srcP));
|
||||
}
|
||||
};
|
||||
|
||||
Index: boost/gil/packed_pixel.hpp
|
||||
===================================================================
|
||||
--- boost/gil/packed_pixel.hpp (revision 53049)
|
||||
+++ boost/gil/packed_pixel.hpp (working copy)
|
||||
@@ -81,7 +81,7 @@
|
||||
}
|
||||
packed_pixel(int chan0, int chan1, int chan2) : _bitfield(0) {
|
||||
BOOST_STATIC_ASSERT((num_channels<packed_pixel>::value==3));
|
||||
- at_c<0>(*this)=chan0; at_c<1>(*this)=chan1; at_c<2>(*this)=chan2;
|
||||
+ gil::at_c<0>(*this)=chan0; gil::at_c<1>(*this)=chan1; gil::at_c<2>(*this)=chan2;
|
||||
}
|
||||
packed_pixel(int chan0, int chan1, int chan2, int chan3) : _bitfield(0) {
|
||||
BOOST_STATIC_ASSERT((num_channels<packed_pixel>::value==4));
|
||||
Index: boost/gil/pixel.hpp
|
||||
===================================================================
|
||||
--- boost/gil/pixel.hpp (revision 53049)
|
||||
+++ boost/gil/pixel.hpp (working copy)
|
||||
@@ -143,11 +143,11 @@
|
||||
|
||||
private:
|
||||
static void check_gray() { BOOST_STATIC_ASSERT((is_same<typename Layout::color_space_t, gray_t>::value)); }
|
||||
- template <typename Channel> void assign(const Channel& chan, mpl::false_) { check_gray(); at_c<0>(*this)=chan; }
|
||||
- template <typename Channel> bool equal (const Channel& chan, mpl::false_) const { check_gray(); return at_c<0>(*this)==chan; }
|
||||
+ template <typename Channel> void assign(const Channel& chan, mpl::false_) { check_gray(); gil::at_c<0>(*this)=chan; }
|
||||
+ template <typename Channel> bool equal (const Channel& chan, mpl::false_) const { check_gray(); return gil::at_c<0>(*this)==chan; }
|
||||
public:
|
||||
- pixel& operator= (channel_t chan) { check_gray(); at_c<0>(*this)=chan; return *this; }
|
||||
- bool operator==(channel_t chan) const { check_gray(); return at_c<0>(*this)==chan; }
|
||||
+ pixel& operator= (channel_t chan) { check_gray(); gil::at_c<0>(*this)=chan; return *this; }
|
||||
+ bool operator==(channel_t chan) const { check_gray(); return gil::at_c<0>(*this)==chan; }
|
||||
};
|
||||
|
||||
/////////////////////////////
|
||||
Index: boost/gil/planar_pixel_iterator.hpp
|
||||
===================================================================
|
||||
--- boost/gil/planar_pixel_iterator.hpp (revision 53049)
|
||||
+++ boost/gil/planar_pixel_iterator.hpp (working copy)
|
||||
@@ -109,8 +109,8 @@
|
||||
reference operator->() const { return **this; }
|
||||
|
||||
// PERFORMANCE_CHECK: Remove?
|
||||
- bool operator< (const planar_pixel_iterator& ptr) const { return at_c<0>(*this)< at_c<0>(ptr); }
|
||||
- bool operator!=(const planar_pixel_iterator& ptr) const { return at_c<0>(*this)!=at_c<0>(ptr); }
|
||||
+ bool operator< (const planar_pixel_iterator& ptr) const { return gil::at_c<0>(*this)< gil::at_c<0>(ptr); }
|
||||
+ bool operator!=(const planar_pixel_iterator& ptr) const { return gil::at_c<0>(*this)!=gil::at_c<0>(ptr); }
|
||||
private:
|
||||
friend class boost::iterator_core_access;
|
||||
|
||||
@@ -119,8 +119,8 @@
|
||||
void advance(ptrdiff_t d) { static_transform(*this,*this,std::bind2nd(detail::plus_asymmetric<ChannelPtr,ptrdiff_t>(),d)); }
|
||||
reference dereference() const { return this->template deref<reference>(); }
|
||||
|
||||
- ptrdiff_t distance_to(const planar_pixel_iterator& it) const { return at_c<0>(it)-at_c<0>(*this); }
|
||||
- bool equal(const planar_pixel_iterator& it) const { return at_c<0>(*this)==at_c<0>(it); }
|
||||
+ ptrdiff_t distance_to(const planar_pixel_iterator& it) const { return gil::at_c<0>(it)-gil::at_c<0>(*this); }
|
||||
+ bool equal(const planar_pixel_iterator& it) const { return gil::at_c<0>(*this)==gil::at_c<0>(it); }
|
||||
};
|
||||
|
||||
namespace detail {
|
||||
Index: libs/gil/test/pixel.cpp
|
||||
===================================================================
|
||||
--- libs/gil/test/pixel.cpp (revision 53049)
|
||||
+++ libs/gil/test/pixel.cpp (working copy)
|
||||
@@ -34,8 +34,9 @@
|
||||
// Testing pixel references and values, pixel operations, color conversion
|
||||
|
||||
using namespace boost::gil;
|
||||
-using namespace std;
|
||||
+using std::swap;
|
||||
using namespace boost;
|
||||
+
|
||||
void error_if(bool condition);
|
||||
|
||||
struct increment {
|
||||
@@ -63,8 +64,8 @@
|
||||
|
||||
// test homogeneous algorithms - fill, max, min
|
||||
static const int num_chan = num_channels<typename C2::pixel_t>::value;
|
||||
- static_fill(C2::_pixel, at_c<0>(C1::_pixel)+1);
|
||||
- error_if(at_c<0>(C2::_pixel) != at_c<num_chan-1>(C2::_pixel));
|
||||
+ static_fill(C2::_pixel, gil::at_c<0>(C1::_pixel)+1);
|
||||
+ error_if(gil::at_c<0>(C2::_pixel) != gil::at_c<num_chan-1>(C2::_pixel));
|
||||
|
||||
C2::_pixel = C1::_pixel;
|
||||
error_if(static_max(C2::_pixel) != static_max(C1::_pixel));
|
||||
@@ -107,7 +108,7 @@
|
||||
error_if(C1::_pixel!=C2::_pixel);
|
||||
|
||||
static_generate(C2::_pixel, set_to_one());
|
||||
- error_if(at_c<0>(C2::_pixel) != 1);
|
||||
+ error_if(gil::at_c<0>(C2::_pixel) != 1);
|
||||
|
||||
// Test swap if both are mutable and if their value type is the same
|
||||
// (We know the second one is mutable)
|
||||
@@ -313,7 +314,7 @@
|
||||
bgr8_pixel_t bgr8(rgb8);
|
||||
error_if(bgr8[0] == rgb8[0]);
|
||||
error_if(dynamic_at_c(bgr8,0) == dynamic_at_c(rgb8,0));
|
||||
- error_if(at_c<0>(bgr8) == at_c<0>(rgb8));
|
||||
+ error_if(gil::at_c<0>(bgr8) == gil::at_c<0>(rgb8));
|
||||
error_if(semantic_at_c<0>(bgr8) != semantic_at_c<0>(rgb8));
|
||||
error_if(get_color(bgr8,blue_t()) != get_color(rgb8,blue_t()));
|
||||
|
12
boost-graph-compile.patch
Normal file
12
boost-graph-compile.patch
Normal file
@ -0,0 +1,12 @@
|
||||
*** boost/graph/distributed/detail/mpi_process_group.ipp.orig 2009-12-16 15:46:32.410223363 -0800
|
||||
--- boost/graph/distributed/detail/mpi_process_group.ipp 2009-12-16 15:47:28.700348300 -0800
|
||||
***************
|
||||
*** 19,24 ****
|
||||
--- 19,25 ----
|
||||
#endif
|
||||
|
||||
#include <cassert>
|
||||
+ #include <cstdio>
|
||||
#include <algorithm>
|
||||
#include <boost/graph/parallel/detail/untracked_pair.hpp>
|
||||
#include <numeric>
|
@ -1,15 +0,0 @@
|
||||
diff -up boost_1_39_0/boost/asio/ssl/detail/openssl_context_service.hpp.ossl10 boost_1_39_0/boost/asio/ssl/detail/openssl_context_service.hpp
|
||||
--- boost_1_39_0/boost/asio/ssl/detail/openssl_context_service.hpp.ossl10 2008-08-09 03:59:54.000000000 +0200
|
||||
+++ boost_1_39_0/boost/asio/ssl/detail/openssl_context_service.hpp 2009-08-26 11:26:25.000000000 +0200
|
||||
@@ -67,7 +67,11 @@ public:
|
||||
// Create a new context implementation.
|
||||
void create(impl_type& impl, context_base::method m)
|
||||
{
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
||||
+ const ::SSL_METHOD* ssl_method = 0;
|
||||
+#else
|
||||
::SSL_METHOD* ssl_method = 0;
|
||||
+#endif
|
||||
switch (m)
|
||||
{
|
||||
case context_base::sslv2:
|
@ -1,160 +0,0 @@
|
||||
Index: /trunk/boost/python/object_core.hpp
|
||||
===================================================================
|
||||
--- /trunk/boost/python/object_core.hpp (revision 45918)
|
||||
+++ /trunk/boost/python/object_core.hpp (revision 47846)
|
||||
@@ -42,4 +42,10 @@
|
||||
|
||||
namespace boost { namespace python {
|
||||
+
|
||||
+namespace detail
|
||||
+{
|
||||
+ class kwds_proxy;
|
||||
+ class args_proxy;
|
||||
+}
|
||||
|
||||
namespace converter
|
||||
@@ -103,4 +109,9 @@
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (1, BOOST_PYTHON_MAX_ARITY, <boost/python/object_call.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
+
|
||||
+ detail::args_proxy operator* () const;
|
||||
+ object operator()(detail::args_proxy const &args) const;
|
||||
+ object operator()(detail::args_proxy const &args,
|
||||
+ detail::kwds_proxy const &kwds) const;
|
||||
|
||||
// truth value testing
|
||||
@@ -417,4 +428,60 @@
|
||||
//
|
||||
|
||||
+namespace detail
|
||||
+{
|
||||
+
|
||||
+class call_proxy
|
||||
+{
|
||||
+public:
|
||||
+ call_proxy(object target) : m_target(target) {}
|
||||
+ operator object() const { return m_target;}
|
||||
+
|
||||
+ private:
|
||||
+ object m_target;
|
||||
+};
|
||||
+
|
||||
+class kwds_proxy : public call_proxy
|
||||
+{
|
||||
+public:
|
||||
+ kwds_proxy(object o = object()) : call_proxy(o) {}
|
||||
+};
|
||||
+class args_proxy : public call_proxy
|
||||
+{
|
||||
+public:
|
||||
+ args_proxy(object o) : call_proxy(o) {}
|
||||
+ kwds_proxy operator* () const { return kwds_proxy(*this);}
|
||||
+};
|
||||
+}
|
||||
+
|
||||
+template <typename U>
|
||||
+detail::args_proxy api::object_operators<U>::operator* () const
|
||||
+{
|
||||
+ object_cref2 x = *static_cast<U const*>(this);
|
||||
+ return detail::args_proxy(x);
|
||||
+}
|
||||
+
|
||||
+template <typename U>
|
||||
+object api::object_operators<U>::operator()(detail::args_proxy const &args) const
|
||||
+{
|
||||
+ U const& self = *static_cast<U const*>(this);
|
||||
+ PyObject *result = PyObject_Call(get_managed_object(self, tag),
|
||||
+ args.operator object().ptr(),
|
||||
+ 0);
|
||||
+ return object(detail::new_reference(result));
|
||||
+
|
||||
+}
|
||||
+
|
||||
+template <typename U>
|
||||
+object api::object_operators<U>::operator()(detail::args_proxy const &args,
|
||||
+ detail::kwds_proxy const &kwds) const
|
||||
+{
|
||||
+ U const& self = *static_cast<U const*>(this);
|
||||
+ PyObject *result = PyObject_Call(get_managed_object(self, tag),
|
||||
+ args.operator object().ptr(),
|
||||
+ kwds.operator object().ptr());
|
||||
+ return object(detail::new_reference(result));
|
||||
+
|
||||
+}
|
||||
+
|
||||
inline object::object()
|
||||
: object_base(python::incref(Py_None))
|
||||
Index: /trunk/libs/python/test/object.cpp
|
||||
===================================================================
|
||||
--- /trunk/libs/python/test/object.cpp (revision 45918)
|
||||
+++ /trunk/libs/python/test/object.cpp (revision 47846)
|
||||
@@ -187,4 +187,9 @@
|
||||
return s.slice(2,-1).slice(1,-1) == "lo, wor";
|
||||
}
|
||||
+
|
||||
+object test_call(object c, object args, object kwds)
|
||||
+{
|
||||
+ return c(*args, **kwds);
|
||||
+}
|
||||
|
||||
bool check_binary_operators()
|
||||
@@ -378,4 +383,5 @@
|
||||
def("test_not_item", test_not_item);
|
||||
|
||||
+ def("test_call", test_call);
|
||||
def("check_binary_operators", check_binary_operators);
|
||||
def("check_inplace", check_inplace);
|
||||
Index: /trunk/libs/python/test/object.py
|
||||
===================================================================
|
||||
--- /trunk/libs/python/test/object.py (revision 45918)
|
||||
+++ /trunk/libs/python/test/object.py (revision 47846)
|
||||
@@ -135,5 +135,10 @@
|
||||
Operators
|
||||
|
||||
-
|
||||
+>>> def print_args(*args, **kwds):
|
||||
+... print args, kwds
|
||||
+>>> test_call(print_args, (0, 1, 2, 3), {'a':'A'})
|
||||
+(0, 1, 2, 3) {'a': 'A'}
|
||||
+
|
||||
+
|
||||
>>> assert check_binary_operators()
|
||||
|
||||
Index: /trunk/libs/python/doc/v2/object.html
|
||||
===================================================================
|
||||
--- /trunk/libs/python/doc/v2/object.html (revision 45918)
|
||||
+++ /trunk/libs/python/doc/v2/object.html (revision 47846)
|
||||
@@ -656,4 +656,9 @@
|
||||
object operator()(A0 const&, A1 const&,...An const&) const;
|
||||
|
||||
+ detail::args_proxy operator* () const;
|
||||
+ object operator()(detail::args_proxy const &args) const;
|
||||
+ object operator()(detail::args_proxy const &args,
|
||||
+ detail::kwds_proxy const &kwds) const;
|
||||
+
|
||||
// truth value testing
|
||||
//
|
||||
@@ -705,4 +710,23 @@
|
||||
a2,...aN)</dt>
|
||||
</dl>
|
||||
+
|
||||
+<pre>
|
||||
+object operator()(detail::args_proxy const &args) const;
|
||||
+</pre>
|
||||
+<dl class="function-semantics">
|
||||
+ <dt><b>Effects:</b>
|
||||
+ call object with arguments given by the tuple <varname>args</varname></dt>
|
||||
+</dl>
|
||||
+<pre>
|
||||
+object operator()(detail::args_proxy const &args,
|
||||
+ detail::kwds_proxy const &kwds) const;
|
||||
+</pre>
|
||||
+<dl class="function-semantics">
|
||||
+ <dt><b>Effects:</b>
|
||||
+ call object with arguments given by the tuple <varname>args</varname>, and named
|
||||
+ arguments given by the dictionary <varname>kwds</varname></dt>
|
||||
+</dl>
|
||||
+
|
||||
+
|
||||
<pre>
|
||||
operator bool_type() const;
|
@ -1,136 +0,0 @@
|
||||
Index: /trunk/libs/python/test/enum.py
|
||||
===================================================================
|
||||
--- /trunk/libs/python/test/enum.py (revision 36256)
|
||||
+++ /trunk/libs/python/test/enum.py (revision 53660)
|
||||
@@ -5,6 +5,6 @@
|
||||
>>> from enum_ext import *
|
||||
|
||||
->>> identity(color.red)
|
||||
-enum_ext.color.red
|
||||
+>>> identity(color.red) # in case of duplicated enums it always take the last enum
|
||||
+enum_ext.color.blood
|
||||
|
||||
>>> identity(color.green)
|
||||
@@ -14,6 +14,6 @@
|
||||
enum_ext.color.blue
|
||||
|
||||
->>> identity(color(1))
|
||||
-enum_ext.color.red
|
||||
+>>> identity(color(1)) # in case of duplicated enums it always take the last enum
|
||||
+enum_ext.color.blood
|
||||
|
||||
>>> identity(color(2))
|
||||
@@ -29,5 +29,5 @@
|
||||
|
||||
>>> identity(red)
|
||||
-enum_ext.color.red
|
||||
+enum_ext.color.blood
|
||||
|
||||
>>> identity(green)
|
||||
@@ -43,8 +43,16 @@
|
||||
>>> c = colorized()
|
||||
>>> c.x
|
||||
-enum_ext.color.red
|
||||
+enum_ext.color.blood
|
||||
>>> c.x = green
|
||||
>>> c.x
|
||||
enum_ext.color.green
|
||||
+>>> red == blood
|
||||
+True
|
||||
+>>> red == green
|
||||
+False
|
||||
+>>> hash(red) == hash(blood)
|
||||
+True
|
||||
+>>> hash(red) == hash(green)
|
||||
+False
|
||||
'''
|
||||
|
||||
Index: /trunk/libs/python/test/enum.cpp
|
||||
===================================================================
|
||||
--- /trunk/libs/python/test/enum.cpp (revision 24614)
|
||||
+++ /trunk/libs/python/test/enum.cpp (revision 53660)
|
||||
@@ -13,5 +13,5 @@
|
||||
using namespace boost::python;
|
||||
|
||||
-enum color { red = 1, green = 2, blue = 4 };
|
||||
+enum color { red = 1, green = 2, blue = 4, blood = 1 };
|
||||
|
||||
#if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
|
||||
@@ -35,4 +35,5 @@
|
||||
.value("green", green)
|
||||
.value("blue", blue)
|
||||
+ .value("blood", blood)
|
||||
.export_values()
|
||||
;
|
||||
Index: /trunk/libs/python/src/object/enum.cpp
|
||||
===================================================================
|
||||
--- /trunk/libs/python/src/object/enum.cpp (revision 41521)
|
||||
+++ /trunk/libs/python/src/object/enum.cpp (revision 53660)
|
||||
@@ -15,5 +15,5 @@
|
||||
#include <structmember.h>
|
||||
|
||||
-namespace boost { namespace python { namespace objects {
|
||||
+namespace boost { namespace python { namespace objects {
|
||||
|
||||
struct enum_object
|
||||
@@ -44,5 +44,5 @@
|
||||
if (name == 0)
|
||||
return 0;
|
||||
-
|
||||
+
|
||||
return PyString_FromFormat("%s.%s.%s", mod, self_->ob_type->tp_name, name);
|
||||
}
|
||||
@@ -140,4 +140,5 @@
|
||||
d["__slots__"] = tuple();
|
||||
d["values"] = dict();
|
||||
+ d["names"] = dict();
|
||||
|
||||
object module_name = module_prefix();
|
||||
@@ -146,7 +147,7 @@
|
||||
if (doc)
|
||||
d["__doc__"] = doc;
|
||||
-
|
||||
+
|
||||
object result = (object(metatype))(name, make_tuple(base), d);
|
||||
-
|
||||
+
|
||||
scope().attr(name) = result;
|
||||
|
||||
@@ -168,5 +169,5 @@
|
||||
= const_cast<converter::registration&>(
|
||||
converter::registry::lookup(id));
|
||||
-
|
||||
+
|
||||
converters.m_class_object = downcast<PyTypeObject>(this->ptr());
|
||||
converter::registry::insert(to_python, id);
|
||||
@@ -187,21 +188,22 @@
|
||||
dict d = extract<dict>(this->attr("values"))();
|
||||
d[value] = x;
|
||||
-
|
||||
+
|
||||
// Set the name field in the new enum instanec
|
||||
enum_object* p = downcast<enum_object>(x.ptr());
|
||||
Py_XDECREF(p->name);
|
||||
p->name = incref(name.ptr());
|
||||
+
|
||||
+ dict names_dict = extract<dict>(this->attr("names"))();
|
||||
+ names_dict[x.attr("name")] = x;
|
||||
}
|
||||
|
||||
void enum_base::export_values()
|
||||
{
|
||||
- dict d = extract<dict>(this->attr("values"))();
|
||||
- list values = d.values();
|
||||
+ dict d = extract<dict>(this->attr("names"))();
|
||||
+ list items = d.items();
|
||||
scope current;
|
||||
-
|
||||
- for (unsigned i = 0, max = len(values); i < max; ++i)
|
||||
- {
|
||||
- api::setattr(current, object(values[i].attr("name")), values[i]);
|
||||
- }
|
||||
+
|
||||
+ for (unsigned i = 0, max = len(items); i < max; ++i)
|
||||
+ api::setattr(current, items[i][0], items[i][1]);
|
||||
}
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff -up /home/petr/fedora/boost/F-12/boost_1_39_0/boost/python/detail/translate_exception.hpp\~ /home/petr/fedora/boost/F-12/boost_1_39_0/boost/python/detail/translate_exception.hpp
|
||||
--- boost_1_39_0/boost/python/detail/translate_exception.hpp~ 2004-08-20 13:10:24.000000000 +0200
|
||||
+++ boost_1_39_0/boost/python/detail/translate_exception.hpp 2009-11-16 23:30:23.000000000 +0100
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
# include <boost/call_traits.hpp>
|
||||
# include <boost/type_traits/add_const.hpp>
|
||||
+# include <boost/type_traits/add_reference.hpp>
|
||||
|
||||
# include <boost/function/function0.hpp>
|
||||
|
||||
|
||||
Diff finished. Mon Nov 16 23:30:41 2009
|
@ -1,106 +0,0 @@
|
||||
Index: /trunk/libs/python/test/test_builtin_converters.py
|
||||
===================================================================
|
||||
--- /trunk/libs/python/test/test_builtin_converters.py (revision 40714)
|
||||
+++ /trunk/libs/python/test/test_builtin_converters.py (revision 54919)
|
||||
@@ -4,4 +4,22 @@
|
||||
r"""
|
||||
>>> from builtin_converters_ext import *
|
||||
+
|
||||
+# Use ctypes to get native C type sizes
|
||||
+>>> from ctypes import sizeof, c_char, c_short, c_int, c_long, c_longlong
|
||||
+>>> def test_values_signed(t):
|
||||
+... base = 2 ** (8 * sizeof(t) - 1)
|
||||
+... return [[-base, -1, 1, base - 1], [-base - 1, base]]
|
||||
+>>> def test_values_unsigned(t):
|
||||
+... base = 2 ** (8 * sizeof(t))
|
||||
+... return [[1, base - 1], [-1L, -1, base]]
|
||||
+>>> def should_pass(method, values):
|
||||
+... result = map(method, values)
|
||||
+... if result != values:
|
||||
+... print "Got %s but expected %s" % (result, values)
|
||||
+>>> def test_overflow(method, values):
|
||||
+... for v in values:
|
||||
+... try: method(v)
|
||||
+... except OverflowError: pass
|
||||
+... else: print "OverflowError expected"
|
||||
|
||||
# Synthesize idendity functions in case long long not supported
|
||||
@@ -63,13 +81,35 @@
|
||||
|
||||
show that we have range checking.
|
||||
-
|
||||
->>> try: rewrap_value_unsigned_short(-42)
|
||||
-... except OverflowError: pass
|
||||
-... else: print 'expected an OverflowError!'
|
||||
-
|
||||
->>> try: rewrap_value_int(sys.maxint * 2)
|
||||
-... except OverflowError: pass
|
||||
-... else: print 'expected an OverflowError!'
|
||||
-
|
||||
+
|
||||
+>>> should_pass(rewrap_value_signed_char, test_values_signed(c_char)[0])
|
||||
+>>> should_pass(rewrap_value_short, test_values_signed(c_short)[0])
|
||||
+>>> should_pass(rewrap_value_int, test_values_signed(c_int)[0])
|
||||
+>>> should_pass(rewrap_value_long, test_values_signed(c_long)[0])
|
||||
+>>> should_pass(rewrap_value_long_long, test_values_signed(c_longlong)[0])
|
||||
+
|
||||
+>>> should_pass(rewrap_value_unsigned_char, test_values_unsigned(c_char)[0])
|
||||
+>>> should_pass(rewrap_value_unsigned_short, test_values_unsigned(c_short)[0])
|
||||
+>>> should_pass(rewrap_value_unsigned_int, test_values_unsigned(c_int)[0])
|
||||
+>>> should_pass(rewrap_value_unsigned_long, test_values_unsigned(c_long)[0])
|
||||
+>>> should_pass(rewrap_value_unsigned_long_long,
|
||||
+... test_values_unsigned(c_longlong)[0])
|
||||
+
|
||||
+>>> test_overflow(rewrap_value_signed_char, test_values_signed(c_char)[1])
|
||||
+>>> test_overflow(rewrap_value_short, test_values_signed(c_short)[1])
|
||||
+>>> test_overflow(rewrap_value_int, test_values_signed(c_int)[1])
|
||||
+>>> test_overflow(rewrap_value_long, test_values_signed(c_long)[1])
|
||||
+>>> test_overflow(rewrap_value_long_long, test_values_signed(c_longlong)[1])
|
||||
+
|
||||
+>>> test_overflow(rewrap_value_unsigned_char, test_values_unsigned(c_char)[1])
|
||||
+>>> test_overflow(rewrap_value_unsigned_short, test_values_unsigned(c_short)[1])
|
||||
+>>> test_overflow(rewrap_value_unsigned_int, test_values_unsigned(c_int)[1])
|
||||
+>>> test_overflow(rewrap_value_unsigned_long, test_values_unsigned(c_long)[1])
|
||||
+
|
||||
+# Exceptionally for PyLong_AsUnsignedLongLong(), a negative value raises
|
||||
+# TypeError on Python versions prior to 2.7
|
||||
+>>> for v in test_values_unsigned(c_longlong)[1]:
|
||||
+... try: rewrap_value_unsigned_long_long(v)
|
||||
+... except (OverflowError, TypeError): pass
|
||||
+... else: print "OverflowError or TypeError expected"
|
||||
|
||||
>>> assert abs(rewrap_value_float(4.2) - 4.2) < .000001
|
||||
Index: /trunk/libs/python/src/converter/builtin_converters.cpp
|
||||
===================================================================
|
||||
--- /trunk/libs/python/src/converter/builtin_converters.cpp (revision 52299)
|
||||
+++ /trunk/libs/python/src/converter/builtin_converters.cpp (revision 54919)
|
||||
@@ -156,8 +156,25 @@
|
||||
static T extract(PyObject* intermediate)
|
||||
{
|
||||
- return numeric_cast<T>(
|
||||
- PyLong_Check(intermediate)
|
||||
- ? PyLong_AsUnsignedLong(intermediate)
|
||||
- : PyInt_AS_LONG(intermediate));
|
||||
+ if (PyLong_Check(intermediate)) {
|
||||
+ // PyLong_AsUnsignedLong() checks for negative overflow, so no
|
||||
+ // need to check it here.
|
||||
+ unsigned long result = PyLong_AsUnsignedLong(intermediate);
|
||||
+ if (PyErr_Occurred())
|
||||
+ throw_error_already_set();
|
||||
+ return numeric_cast<T>(result);
|
||||
+ } else {
|
||||
+ // None of PyInt_AsUnsigned*() functions check for negative
|
||||
+ // overflow, so use PyInt_AS_LONG instead and check if number is
|
||||
+ // negative, issuing the exception appropriately.
|
||||
+ long result = PyInt_AS_LONG(intermediate);
|
||||
+ if (PyErr_Occurred())
|
||||
+ throw_error_already_set();
|
||||
+ if (result < 0) {
|
||||
+ PyErr_SetString(PyExc_OverflowError, "can't convert negative"
|
||||
+ " value to unsigned");
|
||||
+ throw_error_already_set();
|
||||
+ }
|
||||
+ return numeric_cast<T>(result);
|
||||
+ }
|
||||
}
|
||||
};
|
@ -1,168 +0,0 @@
|
||||
*** tools/regression/src/run_tests.sh.orig 2007-07-31 19:44:25.000000000 -0500
|
||||
--- tools/regression/src/run_tests.sh 2007-08-01 12:17:25.000000000 -0500
|
||||
***************
|
||||
*** 15,21 ****
|
||||
# This can be either a non-exitent directory or an already complete Boost
|
||||
# source tree.
|
||||
#
|
||||
! boost_root="$HOME/CVSROOTs/Boost/boost_regression"
|
||||
|
||||
#
|
||||
# Wether to fetch the most current Boost code from CVS (yes/no):
|
||||
--- 15,21 ----
|
||||
# This can be either a non-exitent directory or an already complete Boost
|
||||
# source tree.
|
||||
#
|
||||
! boost_root="/usr/src/redhat/BUILD/boost_1_34_1"
|
||||
|
||||
#
|
||||
# Wether to fetch the most current Boost code from CVS (yes/no):
|
||||
*************** test_tools=gcc
|
||||
*** 42,58 ****
|
||||
toolset=gcc
|
||||
|
||||
#
|
||||
- # "comment_path" is the path to an html-file describing the test environment.
|
||||
- # The content of this file will be embedded in the status pages being produced.
|
||||
- #
|
||||
- comment_path="$boost_root/../regression_comment.html"
|
||||
- #
|
||||
# "test_dir" is the relative path to the directory to run the tests in,
|
||||
# defaults to "status" and runs all the tests, but could be a sub-directory
|
||||
# for example "libs/regex/test" to run the regex tests alone.
|
||||
#
|
||||
test_dir="status"
|
||||
|
||||
|
||||
### DEFAULTS ARE OK FOR THESE.
|
||||
|
||||
--- 42,59 ----
|
||||
toolset=gcc
|
||||
|
||||
#
|
||||
# "test_dir" is the relative path to the directory to run the tests in,
|
||||
# defaults to "status" and runs all the tests, but could be a sub-directory
|
||||
# for example "libs/regex/test" to run the regex tests alone.
|
||||
#
|
||||
test_dir="status"
|
||||
|
||||
+ #
|
||||
+ # "comment_path" is the path to an html-file describing the test environment.
|
||||
+ # The content of this file will be embedded in the status pages being produced.
|
||||
+ #
|
||||
+ comment_path="$boost_root/$test_dir/regression_comment.html"
|
||||
+
|
||||
|
||||
### DEFAULTS ARE OK FOR THESE.
|
||||
|
||||
*************** exe_suffix=
|
||||
*** 71,76 ****
|
||||
--- 72,80 ----
|
||||
#
|
||||
bjam="$boost_root/tools/jam/src/bin/bjam$exe_suffix"
|
||||
|
||||
+ # bjam options
|
||||
+ bjam_flags="--layout=system variant=release -sICU_PATH=/usr --user-config=$boost_root/user-config.jam"
|
||||
+
|
||||
#
|
||||
# "process_jam_log", and "compiler_status" paths to built helper programs:
|
||||
# The location of the executables of the regression help programs. These
|
||||
*************** else
|
||||
*** 98,103 ****
|
||||
--- 102,115 ----
|
||||
fi
|
||||
export BOOST_BUILD_PATH
|
||||
|
||||
+ # For shared objects.
|
||||
+ old_ld_library_path=$LD_LIBRARY_PATH
|
||||
+ old_ld_run_path=$LD_RUN_PATH
|
||||
+ LD_LIBRARY_PATH="$boost_root/stage/lib:$old_ld_library_path"
|
||||
+ LD_RUN_PATH="$boost_root/stage/lib:$old_ld_run_path"
|
||||
+ export LD_LIBRARY_PATH
|
||||
+ export LD_RUN_PATH
|
||||
+
|
||||
#
|
||||
# STEP 0:
|
||||
#
|
||||
*************** fi
|
||||
*** 126,137 ****
|
||||
# STEP 1:
|
||||
# rebuild bjam if required:
|
||||
#
|
||||
! echo building bjam:
|
||||
! cd "$boost_root/tools/jam/src" && \
|
||||
! LOCATE_TARGET=bin sh ./build.sh
|
||||
! if test $? != 0 ; then
|
||||
! echo "bjam build failed."
|
||||
! exit 256
|
||||
fi
|
||||
|
||||
#
|
||||
--- 138,152 ----
|
||||
# STEP 1:
|
||||
# rebuild bjam if required:
|
||||
#
|
||||
! echo "finding or building bjam":
|
||||
! if test ! -f "$bjam" ; then
|
||||
! echo "building bjam":
|
||||
! cd "$boost_root/tools/jam/src" && \
|
||||
! LOCATE_TARGET=bin sh ./build.sh
|
||||
! if test $? != 0 ; then
|
||||
! echo "bjam build failed."
|
||||
! exit 256
|
||||
! fi
|
||||
fi
|
||||
|
||||
#
|
||||
*************** fi
|
||||
*** 139,146 ****
|
||||
# rebuild the regression test helper programs if required:
|
||||
#
|
||||
echo building regression test helper programs:
|
||||
! cd "$boost_root/tools/regression/build" && \
|
||||
! "$bjam" $toolset release
|
||||
if test $? != 0 ; then
|
||||
echo "helper program build failed."
|
||||
exit 256
|
||||
--- 154,160 ----
|
||||
# rebuild the regression test helper programs if required:
|
||||
#
|
||||
echo building regression test helper programs:
|
||||
! cd "$boost_root/tools/regression/build" && "$bjam" $bjam_flags $toolset
|
||||
if test $? != 0 ; then
|
||||
echo "helper program build failed."
|
||||
exit 256
|
||||
*************** for tool in $test_tools ; do
|
||||
*** 158,164 ****
|
||||
#
|
||||
echo running the $tool regression tests:
|
||||
cd "$boost_root/$test_dir"
|
||||
! "$bjam" $tool --dump-tests 2>&1 | tee regress.log
|
||||
|
||||
#
|
||||
# STEP 4:
|
||||
--- 172,180 ----
|
||||
#
|
||||
echo running the $tool regression tests:
|
||||
cd "$boost_root/$test_dir"
|
||||
! echo "<p> begin time: " `date` "</p>" >> "$comment_path"
|
||||
! "$bjam" $bjam_flags $tool --dump-tests 2>&1 | tee regress.log
|
||||
! echo "<p> end time: " `date` "</p>" >> "$comment_path"
|
||||
|
||||
#
|
||||
# STEP 4:
|
||||
*************** if test $? != 0 ; then
|
||||
*** 185,190 ****
|
||||
--- 201,212 ----
|
||||
exit 256
|
||||
fi
|
||||
|
||||
+ # cleanup
|
||||
+ LD_LIBRARY_PATH="$old_ld_library_path"
|
||||
+ LD_RUN_PATH="$old_ld_run_path"
|
||||
+ export LD_LIBRARY_PATH
|
||||
+ export LD_RUN_PATH
|
||||
+
|
||||
echo "done!"
|
||||
|
||||
|
@ -1,37 +0,0 @@
|
||||
*** tools/build/v2/tools/gcc.jam.orig 2009-05-05 12:45:31.000000000 -0700
|
||||
--- tools/build/v2/tools/gcc.jam 2009-05-05 12:48:23.000000000 -0700
|
||||
*************** if [ os.name ] != NT && [ os.name ] != O
|
||||
*** 355,361 ****
|
||||
# OSF does have an option called -soname but it does not seem to work as
|
||||
# expected, therefore it has been disabled.
|
||||
HAVE_SONAME = "" ;
|
||||
! SONAME_OPTION = -h ;
|
||||
}
|
||||
|
||||
|
||||
--- 355,362 ----
|
||||
# OSF does have an option called -soname but it does not seem to work as
|
||||
# expected, therefore it has been disabled.
|
||||
HAVE_SONAME = "" ;
|
||||
! SONAME_OPTION = -soname ;
|
||||
! SONAME_VERSION = _FEDORA_SONAME ;
|
||||
}
|
||||
|
||||
|
||||
*************** rule link.dll ( targets * : sources * :
|
||||
*** 793,799 ****
|
||||
# Differs from 'link' above only by -shared.
|
||||
actions link.dll bind LIBRARIES
|
||||
{
|
||||
! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
}
|
||||
|
||||
rule setup-threading ( targets * : sources * : properties * )
|
||||
--- 794,800 ----
|
||||
# Differs from 'link' above only by -shared.
|
||||
actions link.dll bind LIBRARIES
|
||||
{
|
||||
! "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=).$(SONAME_VERSION) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
}
|
||||
|
||||
rule setup-threading ( targets * : sources * : properties * )
|
@ -1,11 +0,0 @@
|
||||
diff -ru boost/spirit/home/classic/iterator/multi_pass.hpp boost/spirit/home/classic/iterator/multi_pass.hpp
|
||||
--- boost/spirit/home/classic/iterator/multi_pass.hpp 2009-01-09 10:38:36.000000000 +0000
|
||||
+++ boost/spirit/home/classic/iterator/multi_pass.hpp 2009-01-09 10:39:41.000000000 +0000
|
||||
@@ -12,7 +12,6 @@
|
||||
#include <boost/throw_exception.hpp>
|
||||
#include <deque>
|
||||
#include <iterator>
|
||||
-#include <iostream>
|
||||
#include <algorithm> // for std::swap
|
||||
#include <exception> // for std::exception
|
||||
#include <boost/limits.hpp>
|
@ -1,19 +0,0 @@
|
||||
*** tools/build/v2/tools/gcc.jam.orig 2008-11-17 16:26:39.000000000 -0800
|
||||
--- tools/build/v2/tools/gcc.jam 2008-11-17 16:31:08.000000000 -0800
|
||||
*************** toolset.flags gcc.compile PCH_FILE <pch>
|
||||
*** 292,298 ****
|
||||
|
||||
# Declare flags and action for compilation.
|
||||
toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
|
||||
! toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
|
||||
toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
|
||||
|
||||
toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
|
||||
--- 292,298 ----
|
||||
|
||||
# Declare flags and action for compilation.
|
||||
toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
|
||||
! toolset.flags gcc.compile OPTIONS <optimization>speed : "_FEDORA_OPT_FLAGS" ;
|
||||
toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
|
||||
|
||||
toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
|
@ -1,36 +0,0 @@
|
||||
*** Jamroot.orig 2009-05-06 12:46:31.000000000 -0700
|
||||
--- Jamroot 2009-05-06 18:18:17.000000000 -0700
|
||||
*************** rule tag ( name : type ? : property-set
|
||||
*** 344,350 ****
|
||||
else
|
||||
{
|
||||
local result = [ common.format-name
|
||||
! <base>
|
||||
-$(BUILD_ID)
|
||||
: $(name) : $(type) : $(property-set) ] ;
|
||||
|
||||
--- 344,350 ----
|
||||
else
|
||||
{
|
||||
local result = [ common.format-name
|
||||
! <base> <threading>
|
||||
-$(BUILD_ID)
|
||||
: $(name) : $(type) : $(property-set) ] ;
|
||||
|
||||
*************** rule tag ( name : type ? : property-set
|
||||
*** 356,362 ****
|
||||
# suffixes either. Pgi compilers can not accept library with version
|
||||
# suffix.
|
||||
if $(type) = SHARED_LIB &&
|
||||
! ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin aix ) &&
|
||||
! ( [ $(property-set).get <toolset> ] in pgi ) )
|
||||
{
|
||||
result = $(result).$(BOOST_VERSION) ;
|
||||
--- 356,362 ----
|
||||
# suffixes either. Pgi compilers can not accept library with version
|
||||
# suffix.
|
||||
if $(type) = SHARED_LIB &&
|
||||
! ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin aix linux ) &&
|
||||
! ( [ $(property-set).get <toolset> ] in pgi ) )
|
||||
{
|
||||
result = $(result).$(BOOST_VERSION) ;
|
407
boost.spec
407
boost.spec
@ -1,37 +1,43 @@
|
||||
# Support for documentation installation
|
||||
# As the %%doc macro erases the target directory, namely
|
||||
# $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}, manually installed
|
||||
# documentation must be saved into a temporary dedicated directory.
|
||||
%define boost_docdir __tmp_docdir
|
||||
|
||||
# Support for long double
|
||||
%define disable_long_double 0
|
||||
%ifarch %{arm}
|
||||
%define disable_long_double 1
|
||||
%define disable_long_double 1
|
||||
%endif
|
||||
|
||||
Name: boost
|
||||
Summary: The Boost C++ Libraries
|
||||
Version: 1.39.0
|
||||
Release: 11%{?dist}
|
||||
Summary: The free peer-reviewed portable C++ source libraries
|
||||
Version: 1.41.0
|
||||
Release: 2%{?dist}
|
||||
License: Boost
|
||||
URL: http://www.boost.org/
|
||||
URL: http://sodium.resophonic.com/boost-cmake/%{version}.cmake0/
|
||||
Group: System Environment/Libraries
|
||||
Source: http://downloads.sourceforge.net/project/boost/boost/1.39.0/boost_1_39_0.tar.bz2
|
||||
Obsoletes: boost-doc <= 1.30.2
|
||||
Obsoletes: boost-python <= 1.30.2
|
||||
Provides: boost-doc = %{version}-%{release}
|
||||
%define full_version %{name}-%{version}.cmake0
|
||||
Source: %{full_version}.tar.bz2
|
||||
|
||||
# boost is an "umbrella" package that pulls in all other boost components
|
||||
Requires: boost-date-time = %{version}-%{release}
|
||||
Requires: boost-filesystem = %{version}-%{release}
|
||||
Requires: boost-graph = %{version}-%{release}
|
||||
Requires: boost-iostreams = %{version}-%{release}
|
||||
Requires: boost-math = %{version}-%{release}
|
||||
Requires: boost-test = %{version}-%{release}
|
||||
Requires: boost-mpi = %{version}-%{release}
|
||||
Requires: boost-program-options = %{version}-%{release}
|
||||
Requires: boost-python = %{version}-%{release}
|
||||
Requires: boost-regex = %{version}-%{release}
|
||||
Requires: boost-serialization = %{version}-%{release}
|
||||
Requires: boost-signals = %{version}-%{release}
|
||||
Requires: boost-system = %{version}-%{release}
|
||||
Requires: boost-test = %{version}-%{release}
|
||||
Requires: boost-thread = %{version}-%{release}
|
||||
Requires: boost-wave = %{version}-%{release}
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: cmake
|
||||
BuildRequires: libstdc++-devel
|
||||
BuildRequires: bzip2-libs
|
||||
BuildRequires: bzip2-devel
|
||||
@ -39,33 +45,13 @@ BuildRequires: zlib-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: mpich2-devel
|
||||
|
||||
# Fedora-centric patch.
|
||||
Patch0: boost-version-override.patch
|
||||
Patch1: boost-use-rpm-optflags.patch
|
||||
Patch2: boost-run-tests.patch
|
||||
Patch3: boost-soname.patch
|
||||
|
||||
# Upstream status unknown.
|
||||
Patch4: boost-unneccessary_iostreams.patch
|
||||
Patch5: boost-bitset.patch
|
||||
Patch6: boost-function_template.patch
|
||||
Patch7: boost-fs_gcc44.patch
|
||||
Patch8: boost-openssl-1.0.patch
|
||||
|
||||
# These patches are taken from post-1.39.0 SVN (i.e. are all upstream
|
||||
# and will likely go away when we rebase).
|
||||
Patch9: boost-gil_gcc44.patch
|
||||
Patch10: boost-python_call_operator.patch
|
||||
Patch11: boost-python_enums.patch
|
||||
Patch12: boost-python_uint.patch
|
||||
|
||||
# Not upstream
|
||||
Patch13: boost-python_translate_exception.patch
|
||||
Patch0: boost-graph-compile.patch
|
||||
Patch1: boost-cmake-soname.patch
|
||||
|
||||
%bcond_with tests
|
||||
%bcond_with docs_generated
|
||||
%define sonamever 5
|
||||
|
||||
%description
|
||||
Boost provides free peer-reviewed portable C++ source libraries. The
|
||||
@ -115,21 +101,24 @@ Runtime support for Boost.IOStreams, a framework for defining streams,
|
||||
stream buffers and i/o filters.
|
||||
|
||||
%package math
|
||||
Summary: Runtime component of boost math library
|
||||
Summary: Stub that used to contain boost math library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description math
|
||||
|
||||
Runtime support Boost.Math, a library of math and numeric tools.
|
||||
This package is a stub that used to contain runtime component of boost
|
||||
math library. Now that boost math library is header-only, this
|
||||
package is empty. It's kept around only so that during yum-assisted
|
||||
update, old libraries from boost-math package aren't left around.
|
||||
|
||||
%package test
|
||||
Summary: Runtime component of boost test library
|
||||
%package mpi
|
||||
Summary: Runtime component of boost mpi library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description test
|
||||
%description mpi
|
||||
|
||||
Runtime support for simple program testing, full unit testing, and for
|
||||
program execution monitoring.
|
||||
Runtime support for Boost MPI, library providing a clean C++ API over
|
||||
the OpenMPI implementation of MPI.
|
||||
|
||||
%package program-options
|
||||
Summary: Runtime component of boost program_options library
|
||||
@ -187,15 +176,14 @@ Runtime component of Boost operating system support library, including
|
||||
the diagnostics support that will be part of the C++0x standard
|
||||
library.
|
||||
|
||||
%package wave
|
||||
Summary: Runtime component of boost C99/C++ preprocessing library
|
||||
%package test
|
||||
Summary: Runtime component of boost test library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description wave
|
||||
%description test
|
||||
|
||||
Runtime support for the Boost.Wave library, a Standards conformant,
|
||||
and highly configurable implementation of the mandated C99/C++
|
||||
preprocessor functionality.
|
||||
Runtime support for simple program testing, full unit testing, and for
|
||||
program execution monitoring.
|
||||
|
||||
%package thread
|
||||
Summary: Runtime component of boost thread library
|
||||
@ -208,6 +196,16 @@ functions for managing multiple threads of execution, and for
|
||||
synchronizing data between the threads or providing separate copies of
|
||||
data specific to individual threads.
|
||||
|
||||
%package wave
|
||||
Summary: Runtime component of boost C99/C++ preprocessing library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description wave
|
||||
|
||||
Runtime support for the Boost.Wave library, a Standards conformant,
|
||||
and highly configurable implementation of the mandated C99/C++
|
||||
preprocessor functionality.
|
||||
|
||||
%package devel
|
||||
Summary: The Boost C++ headers and shared development libraries
|
||||
Group: Development/Libraries
|
||||
@ -228,243 +226,286 @@ Provides: boost-devel-static = %{version}-%{release}
|
||||
Static Boost C++ libraries.
|
||||
|
||||
%package doc
|
||||
Summary: The Boost C++ html docs
|
||||
Summary: HTML documentation for the Boost C++ libraries
|
||||
Group: Documentation
|
||||
%if 0%{?fedora} >= 10
|
||||
BuildArch: noarch
|
||||
%endif
|
||||
Provides: boost-python-docs = %{version}-%{release}
|
||||
|
||||
%description doc
|
||||
HTML documentation files for Boost C++ libraries.
|
||||
This package contains the documentation in the HTML format of the Boost C++
|
||||
libraries. The documentation provides the same content as that on the Boost
|
||||
web page (http://www.boost.org/doc/libs/1_40_0).
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}_1_39_0
|
||||
%setup -q -n %{full_version}
|
||||
%patch0 -p0
|
||||
sed 's/_FEDORA_OPT_FLAGS/%{optflags}/' %{PATCH1} | %{__patch} -p0 --fuzz=0
|
||||
%patch2 -p0
|
||||
sed 's/_FEDORA_SONAME/%{sonamever}/' %{PATCH3} | %{__patch} -p0 --fuzz=0
|
||||
%patch4 -p0
|
||||
%patch5 -p0
|
||||
%patch6 -p0
|
||||
%patch7 -p0
|
||||
%patch8 -p1
|
||||
%patch9 -p0
|
||||
%patch10 -p2
|
||||
%patch11 -p2
|
||||
%patch12 -p2
|
||||
%patch13 -p1
|
||||
#%patch1 -p0
|
||||
|
||||
%build
|
||||
BOOST_ROOT=`pwd`
|
||||
export BOOST_ROOT
|
||||
%{__mkdir_p} build
|
||||
cd build
|
||||
|
||||
# build make tools, ie bjam, necessary for building libs, docs, and testing
|
||||
(cd tools/jam/src && ./build.sh)
|
||||
BJAM=`find tools/jam/src/ -name bjam -a -type f`
|
||||
|
||||
CONFIGURE_FLAGS="--with-toolset=gcc"
|
||||
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
|
||||
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
|
||||
REGEX_FLAGS="--with-icu"
|
||||
./bootstrap.sh $CONFIGURE_FLAGS $PYTHON_FLAGS $REGEX_FLAGS
|
||||
|
||||
BUILD_VARIANTS="variant=release threading=single,multi debug-symbols=on"
|
||||
BUILD_FLAGS="-d2 --layout=system $BUILD_VARIANTS"
|
||||
%if %{disable_long_double}
|
||||
LONG_DOUBLE_FLAGS="--disable-long-double"
|
||||
# Support for building tests.
|
||||
%define boost_testflags -DBUILD_TESTS="NONE"
|
||||
%if %{with tests}
|
||||
%define boost_testflags -DBUILD_TESTS="ALL"
|
||||
%endif
|
||||
$BJAM $BUILD_FLAGS $LONG_DOUBLE_FLAGS %{?_smp_mflags} stage
|
||||
|
||||
# build docs, requires a network connection for docbook XSLT stylesheets
|
||||
%if %{with docs_generated}
|
||||
cd ./doc
|
||||
chmod +x ../tools/boostbook/setup_boostbook.sh
|
||||
../tools/boostbook/setup_boostbook.sh
|
||||
USER_CFG=$BOOST_ROOT/tools/build/v2/user-config.jam
|
||||
$BOOST_ROOT/$BJAM --v2 -sICU_PATH=/usr --user-config=$USER_CFG html
|
||||
cd ..
|
||||
%endif
|
||||
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo %{boost_testflags} \
|
||||
-DENABLE_SINGLE_THREADED=YES -DINSTALL_VERSIONED=OFF ..
|
||||
make VERBOSE=1 %{?_smp_mflags}
|
||||
cd %{_builddir}/%{full_version}
|
||||
|
||||
%check
|
||||
%if %{with tests}
|
||||
echo "<p>" `uname -a` "</p>" > status/regression_comment.html
|
||||
echo "" >> status/regression_comment.html
|
||||
echo "<p>" `g++ --version` "</p>" >> status/regression_comment.html
|
||||
echo "" >> status/regression_comment.html
|
||||
cd build
|
||||
|
||||
cd tools/regression/build
|
||||
#$BOOST_ROOT/$BJAM
|
||||
cd ../test
|
||||
#python ./test.py
|
||||
cd ../../..
|
||||
|
||||
results1=status/cs-`uname`.html
|
||||
results2=status/cs-`uname`-links.html
|
||||
email=benjamin.kosnik@gmail.com
|
||||
if [ -f $results1 ] && [ -f $results2 ]; then
|
||||
echo "sending results starting"
|
||||
# Standard test with CMake, depends on installed boost-test.
|
||||
ctest --verbose --output-log testing.log
|
||||
if [ -f testing.log ]; then
|
||||
echo "" >> testing.log
|
||||
echo `date` >> testing.log
|
||||
echo "" >> testing.log
|
||||
echo `uname -a` >> testing.log
|
||||
echo "" >> testing.log
|
||||
echo `g++ --version` >> testing.log
|
||||
echo "" >> testing.log
|
||||
testdate=`date +%Y%m%d`
|
||||
testarch=`uname -m`
|
||||
results=boost-results-$testdate-$testarch.tar.bz2
|
||||
tar -cvf boost-results-$testdate-$testarch.tar $results1 $results2
|
||||
bzip2 -f boost-results-$testdate-$testarch.tar
|
||||
echo | mutt -s "$testdate boost regression $testarch" -a $results $email
|
||||
email=benjamin.kosnik@gmail.com
|
||||
bzip2 -f testing.log
|
||||
echo "sending results starting"
|
||||
echo | mutt -s "$testdate boost test $testarch" -a testing.log.bz2 $email
|
||||
echo "sending results finished"
|
||||
else
|
||||
echo "error sending results"
|
||||
echo "error with results"
|
||||
fi
|
||||
cd %{_builddir}/%{full_version}
|
||||
%endif
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_includedir}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
|
||||
# install lib
|
||||
for i in `find stage -type f -name \*.a`; do
|
||||
NAME=`basename $i`;
|
||||
install -p -m 0644 $i $RPM_BUILD_ROOT%{_libdir}/$NAME;
|
||||
done;
|
||||
for i in `find stage -type f -name \*.so`; do
|
||||
NAME=$i;
|
||||
SONAME=$i.%{sonamever};
|
||||
VNAME=$i.%{version};
|
||||
base=`basename $i`;
|
||||
NAMEbase=$base;
|
||||
SONAMEbase=$base.%{sonamever};
|
||||
VNAMEbase=$base.%{version};
|
||||
mv $i $VNAME;
|
||||
cd %{_builddir}/%{full_version}/build
|
||||
DESTDIR=$RPM_BUILD_ROOT make VERBOSE=1 install
|
||||
|
||||
# remove rpath
|
||||
chrpath --delete $VNAME;
|
||||
# Suppress the wrongly generated mpi.so library
|
||||
# (it is temporary until upstream Boost-CMake fixes that)
|
||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/mpi.so
|
||||
|
||||
ln -s $VNAMEbase $SONAME;
|
||||
ln -s $VNAMEbase $NAME;
|
||||
install -p -m 755 $VNAME $RPM_BUILD_ROOT%{_libdir}/$VNAMEbase;
|
||||
# Kill any debug library versions that may show up un-invited.
|
||||
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*-d.*
|
||||
|
||||
mv $SONAME $RPM_BUILD_ROOT%{_libdir}/$SONAMEbase;
|
||||
mv $NAME $RPM_BUILD_ROOT%{_libdir}/$NAMEbase;
|
||||
done;
|
||||
# Prepare the place to temporary store the generated documentation
|
||||
%{__rm} -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
|
||||
|
||||
# install include files
|
||||
find %{name} -type d | while read a; do
|
||||
mkdir -p $RPM_BUILD_ROOT%{_includedir}/$a
|
||||
find $a -mindepth 1 -maxdepth 1 -type f \
|
||||
| xargs -r install -m 644 -p -t $RPM_BUILD_ROOT%{_includedir}/$a
|
||||
done
|
||||
|
||||
# install doc files
|
||||
DOCPATH=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/
|
||||
# Install documentation files (HTML pages) within the temporary place
|
||||
cd %{_builddir}/%{full_version}
|
||||
DOCPATH=%{boost_docdir}
|
||||
find libs doc more -type f \( -name \*.htm -o -name \*.html \) \
|
||||
| sed -n '/\//{s,/[^/]*$,,;p}' \
|
||||
| sort -u > tmp-doc-directories
|
||||
sed "s:^:$DOCPATH:" tmp-doc-directories | xargs -r mkdir -p
|
||||
cat tmp-doc-directories | while read a; do
|
||||
find $a -mindepth 1 -maxdepth 1 -name \*.htm\* \
|
||||
| xargs install -m 644 -p -t $DOCPATH$a
|
||||
sed "s:^:$DOCPATH/:" tmp-doc-directories \
|
||||
| xargs --no-run-if-empty %{__install} -d
|
||||
cat tmp-doc-directories | while read tobeinstalleddocdir; do
|
||||
find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -name \*.htm\* \
|
||||
| xargs %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir
|
||||
done
|
||||
rm tmp-doc-directories
|
||||
install -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html
|
||||
%{__rm} -f tmp-doc-directories
|
||||
%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html
|
||||
|
||||
# remove scripts used to generate include files
|
||||
find $RPM_BUILD_ROOT%{_includedir}/ \( -name '*.pl' -o -name '*.sh' \) -exec rm {} \;
|
||||
# Remove scripts used to generate include files
|
||||
find $RPM_BUILD_ROOT%{_includedir}/ \( -name '*.pl' -o -name '*.sh' \) -exec %{__rm} -f {} \;
|
||||
|
||||
# Remove cmake configuration files used to build the Boost libraries
|
||||
find $RPM_BUILD_ROOT%{_libdir}/ -name '*.cmake' -exec %{__rm} -f {} \;
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%{__rm} -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%post date-time -p /sbin/ldconfig
|
||||
|
||||
%postun date-time -p /sbin/ldconfig
|
||||
|
||||
%post filesystem -p /sbin/ldconfig
|
||||
|
||||
%postun filesystem -p /sbin/ldconfig
|
||||
|
||||
%post graph -p /sbin/ldconfig
|
||||
|
||||
%postun graph -p /sbin/ldconfig
|
||||
|
||||
%post iostreams -p /sbin/ldconfig
|
||||
|
||||
%postun iostreams -p /sbin/ldconfig
|
||||
|
||||
%post mpi -p /sbin/ldconfig
|
||||
|
||||
%postun mpi -p /sbin/ldconfig
|
||||
|
||||
%post program-options -p /sbin/ldconfig
|
||||
|
||||
%postun program-options -p /sbin/ldconfig
|
||||
|
||||
%post python -p /sbin/ldconfig
|
||||
|
||||
%postun python -p /sbin/ldconfig
|
||||
|
||||
%post regex -p /sbin/ldconfig
|
||||
|
||||
%postun regex -p /sbin/ldconfig
|
||||
|
||||
%post serialization -p /sbin/ldconfig
|
||||
|
||||
%postun serialization -p /sbin/ldconfig
|
||||
|
||||
%post signals -p /sbin/ldconfig
|
||||
|
||||
%postun signals -p /sbin/ldconfig
|
||||
|
||||
%post system -p /sbin/ldconfig
|
||||
|
||||
%postun system -p /sbin/ldconfig
|
||||
|
||||
%post test -p /sbin/ldconfig
|
||||
|
||||
%postun test -p /sbin/ldconfig
|
||||
|
||||
%post thread -p /sbin/ldconfig
|
||||
|
||||
%postun thread -p /sbin/ldconfig
|
||||
|
||||
%post wave -p /sbin/ldconfig
|
||||
|
||||
%postun wave -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
|
||||
%files date-time
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_date_time*.so.%{version}
|
||||
%{_libdir}/libboost_date_time*.so.%{sonamever}
|
||||
|
||||
%files filesystem
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_filesystem*.so.%{version}
|
||||
%{_libdir}/libboost_filesystem*.so.%{sonamever}
|
||||
|
||||
%files graph
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_graph*.so.%{version}
|
||||
%{_libdir}/libboost_graph*.so.%{sonamever}
|
||||
|
||||
%files iostreams
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_iostreams*.so.%{version}
|
||||
%{_libdir}/libboost_iostreams*.so.%{sonamever}
|
||||
|
||||
%files math
|
||||
%defattr(-, root, root, -)
|
||||
%{_libdir}/libboost_math*.so.%{version}
|
||||
%{_libdir}/libboost_math*.so.%{sonamever}
|
||||
|
||||
%files test
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_prg_exec_monitor*.so.%{version}
|
||||
%{_libdir}/libboost_prg_exec_monitor*.so.%{sonamever}
|
||||
%{_libdir}/libboost_unit_test_framework*.so.%{version}
|
||||
%{_libdir}/libboost_unit_test_framework*.so.%{sonamever}
|
||||
|
||||
%files program-options
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_program_options*.so.%{version}
|
||||
%{_libdir}/libboost_program_options*.so.%{sonamever}
|
||||
|
||||
%files python
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_python*.so.%{version}
|
||||
%{_libdir}/libboost_python*.so.%{sonamever}
|
||||
|
||||
%files regex
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_regex*.so.%{version}
|
||||
%{_libdir}/libboost_regex*.so.%{sonamever}
|
||||
|
||||
%files serialization
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_serialization*.so.%{version}
|
||||
%{_libdir}/libboost_serialization*.so.%{sonamever}
|
||||
%{_libdir}/libboost_wserialization*.so.%{version}
|
||||
%{_libdir}/libboost_wserialization*.so.%{sonamever}
|
||||
|
||||
%files signals
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_signals*.so.%{version}
|
||||
%{_libdir}/libboost_signals*.so.%{sonamever}
|
||||
|
||||
%files system
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_system*.so.%{version}
|
||||
%{_libdir}/libboost_system*.so.%{sonamever}
|
||||
|
||||
%files thread
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_thread*.so.%{version}
|
||||
%{_libdir}/libboost_thread*.so.%{sonamever}
|
||||
|
||||
%files wave
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_wave*.so.%{version}
|
||||
%{_libdir}/libboost_wave*.so.%{sonamever}
|
||||
|
||||
%files mpi
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/libboost_mpi*.so.%{version}
|
||||
|
||||
%files doc
|
||||
%defattr(-, root, root, -)
|
||||
%doc %{_docdir}/%{name}-%{version}
|
||||
%doc %{boost_docdir}/*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root, -)
|
||||
%{_includedir}/boost
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_includedir}/%{name}
|
||||
%{_libdir}/*.so
|
||||
%{_datadir}/%{name}-%{version}
|
||||
%{_datadir}/cmake/%{name}/BoostConfig*.cmake
|
||||
|
||||
%files static
|
||||
%defattr(-, root, root, -)
|
||||
%doc LICENSE_1_0.txt
|
||||
%{_libdir}/*.a
|
||||
|
||||
%changelog
|
||||
* Thu Jan 14 2010 Petr Machata <pmachata@redhat.com> - 1.41.0-2
|
||||
- Replace a boost-math subpackage with a stub
|
||||
- Drop _cmake_lib_suffix and CMAKE_INSTALL_PREFIX magic, the rpm macro
|
||||
does that for us
|
||||
- Drop LICENSE from the umbrella package
|
||||
- Drop obsolete Obsoletes: boost-python and boost-doc <= 1.30.2
|
||||
|
||||
* Tue Jan 12 2010 Benjamin Kosnik <bkoz@redhat.com> - 1.41.0-1
|
||||
- Don't package generated debug libs, even with
|
||||
(-DCMAKE_BUILD_TYPE=RelWithDebInfo | Release).
|
||||
- Update and include boost-cmake-soname.patch.
|
||||
- Uncomment ctest.
|
||||
- Fix up --with tests to run tests.
|
||||
|
||||
* Sat Dec 19 2009 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.41.0-0.7
|
||||
- Switched off the delivery into a versioned sub-directory
|
||||
|
||||
* Thu Dec 17 2009 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.41.0-0.6
|
||||
- Boost-CMake upstream integration
|
||||
|
||||
* Wed Dec 16 2009 Benjamin Kosnik <bkoz@redhat.com> - 1.41.0-0.5
|
||||
- Rebase to 1.41.0
|
||||
- Set build type to RelWithDebInfo
|
||||
- Resolves: #533922
|
||||
|
||||
* Mon Nov 16 2009 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.40.0-1
|
||||
- Add support for the Boost.MPI sub-package
|
||||
- Build with CMake (https://svn.boost.org/trac/boost/wiki/CMake)
|
||||
- Resolves: #529563
|
||||
|
||||
* Mon Nov 16 2009 Petr Machata <pmachata@redhat.com> - 1.39.0-11
|
||||
- Move comment in Patch13 out of line
|
||||
|
||||
@ -486,7 +527,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Disable long double support for ARM
|
||||
|
||||
* Tue Sep 08 2009 Karsten Hopp <karsten@redhat.com> 1.39.0-6
|
||||
- bump release and rebuild as the package was linked with an old libicu
|
||||
- bump release and rebuild as the package was linked with an old libicu
|
||||
during the mass rebuild on s390x
|
||||
|
||||
* Wed Aug 26 2009 Tomas Mraz <tmraz@redhat.com> - 1.39.0-5
|
||||
@ -503,8 +544,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Resolves: #509250
|
||||
|
||||
* Mon May 11 2009 Benjamin Kosnik <bkoz@redhat.com> - 1.39.0-2
|
||||
- Apply patch from Caolan McNamara
|
||||
- Resolves: #500030 function_template bug is back...
|
||||
- Apply patch from Caolan McNamara
|
||||
- Resolves: #500030 function_template bug is back...
|
||||
|
||||
* Thu May 07 2009 Benjamin Kosnik <bkoz@redhat.com> - 1.39.0-1
|
||||
- Update release.
|
||||
@ -613,7 +654,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Source via http.
|
||||
- Philipp Thomas <pth.suse.de> fix for RPM_OPT_FLAGS
|
||||
- Philipp Thomas <pth.suse.de> fix for .so sym links.
|
||||
- (#225622) Patrice Dumas review comments.
|
||||
- (#225622) Patrice Dumas review comments.
|
||||
|
||||
* Tue Jun 26 2007 Benjamin Kosnik <bkoz@redhat.com> 1.34.1.rc1-0.1
|
||||
- Update to boost_1_34_1_RC1.
|
||||
@ -635,7 +676,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
Remove Obsoletes.
|
||||
Add Provides boost-python.
|
||||
Remove mkdir -p $RPM_BUILD_ROOT%%{_docdir}
|
||||
Added periods for decription text.
|
||||
Added periods for decription text.
|
||||
Fix Group field.
|
||||
Remove doc Requires boost.
|
||||
Preserve timestamps on install.
|
||||
@ -719,7 +760,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
- Use SONAMEVERSION instead of dllversion.
|
||||
|
||||
* Wed Mar 16 2005 Benjamin Kosnik <bkoz@redhat.com> 1.32.0-4
|
||||
- (#142612: Compiling Boost 1.32.0 Failed in RHEL 3.0 on Itanium2)
|
||||
- (#142612: Compiling Boost 1.32.0 Failed in RHEL 3.0 on Itanium2)
|
||||
- (#150069: libboost_python.so is missing)
|
||||
- (#141617: bad patch boost-base.patch)
|
||||
- (#122817: libboost_*.so symlinks missing)
|
||||
@ -750,14 +791,14 @@ rm -rf $RPM_BUILD_ROOT
|
||||
* Wed May 05 2004 Warren Togami <wtogami@redhat.com> 1.31.0-7
|
||||
- missing Obsoletes boost-python
|
||||
|
||||
* Mon May 03 2004 Benjamin Kosnik <bkoz@redhat.com>
|
||||
* Mon May 03 2004 Benjamin Kosnik <bkoz@redhat.com>
|
||||
- (#121630: gcc34 patch needed)
|
||||
|
||||
* Wed Apr 21 2004 Warren Togami <wtogami@redhat.com>
|
||||
- #121415 FC2 BLOCKER: Obsoletes boost-python-devel, boost-doc
|
||||
- other cleanups
|
||||
|
||||
* Tue Mar 30 2004 Benjamin Kosnik <bkoz@redhat.com>
|
||||
* Tue Mar 30 2004 Benjamin Kosnik <bkoz@redhat.com>
|
||||
- Remove bjam dependency. (via Graydon).
|
||||
- Fix installed library names.
|
||||
- Fix SONAMEs in shared libraries.
|
||||
|
Loading…
Reference in New Issue
Block a user