From b2c100b632b8fe7b1c05a45681529ff3dc735f5b0f33bb37494cac391ef09558 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Sat, 11 Oct 2008 22:56:50 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/boost?expand=0&rev=15 --- README | 2 + boost-Boost.Function.patch | 702 ----------------------- boost-CVE-2008-0171.patch | 46 -- boost-codecleanup.patch | 43 -- boost-fix_doc_url.patch | 11 - boost-fix_documentation.patch | 11 - boost-missing_includes.patch | 10 + boost-no_intrinsic_int64_t.patch | 38 -- boost-no_segfault_in_Regex_filter.patch | 6 +- boost-no_segfault_on_dir_iteration.patch | 11 - boost-pass_BJAM_CONFIG.patch | 10 +- boost-ppc-asm.patch | 6 +- boost-qualify_keywords.patch | 11 - boost-qualify_name.patch | 13 - boost-threading.patch | 4 +- boost-use_rpm_optflags.patch | 64 ++- boost.changes | 111 ++++ boost.spec | 461 +++++++++++++-- boost_1_34_1.tar.bz2 | 3 - boost_1_36_0.tar.bz2 | 3 + 20 files changed, 601 insertions(+), 965 deletions(-) create mode 100644 README delete mode 100644 boost-Boost.Function.patch delete mode 100644 boost-CVE-2008-0171.patch delete mode 100644 boost-codecleanup.patch delete mode 100644 boost-fix_documentation.patch delete mode 100644 boost-no_intrinsic_int64_t.patch delete mode 100644 boost-no_segfault_on_dir_iteration.patch delete mode 100644 boost-qualify_keywords.patch delete mode 100644 boost-qualify_name.patch delete mode 100644 boost_1_34_1.tar.bz2 create mode 100644 boost_1_36_0.tar.bz2 diff --git a/README b/README new file mode 100644 index 0000000..68d0309 --- /dev/null +++ b/README @@ -0,0 +1,2 @@ +This package is only needed for updating from an older version of +openSUSE. diff --git a/boost-Boost.Function.patch b/boost-Boost.Function.patch deleted file mode 100644 index 5fad665..0000000 --- a/boost-Boost.Function.patch +++ /dev/null @@ -1,702 +0,0 @@ ---- boost/function/function_base.hpp -+++ boost/function/function_base.hpp -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include // unary_function, binary_function - #include - #include - #include -@@ -30,6 +31,20 @@ - #endif - #include - -+#if defined(BOOST_MSVC) -+# pragma warning( push ) -+# pragma warning( disable : 4793 ) // complaint about native code generation -+# pragma warning( disable : 4127 ) // "conditional expression is constant" -+#endif -+ -+// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info. -+#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE -+// Embedded VC++ does not have type_info in namespace std -+# define BOOST_FUNCTION_STD_NS -+#else -+# define BOOST_FUNCTION_STD_NS std -+#endif -+ - // Borrowed from Boost.Python library: determines the cases where we - // need to use std::type_info::name to compare instead of operator==. - # if (defined(__GNUC__) && __GNUC__ >= 3) \ -@@ -59,7 +74,7 @@ - - #if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \ -- || !(BOOST_STRICT_CONFIG || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) -+ || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) - # define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX - #endif - -@@ -198,8 +213,8 @@ - struct reference_manager - { - static inline void -- get(const function_buffer& in_buffer, function_buffer& out_buffer, -- functor_manager_operation_type op) -+ manage(const function_buffer& in_buffer, function_buffer& out_buffer, -+ functor_manager_operation_type op) - { - switch (op) { - case clone_functor_tag: -@@ -215,8 +230,8 @@ - // DPG TBD: Since we're only storing a pointer, it's - // possible that the user could ask for a base class or - // derived class. Is that okay? -- const std::type_info& check_type = -- *static_cast(out_buffer.const_obj_ptr); -+ const BOOST_FUNCTION_STD_NS::type_info& check_type = -+ *static_cast(out_buffer.const_obj_ptr); - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(F))) - out_buffer.obj_ptr = in_buffer.obj_ptr; - else -@@ -265,8 +280,8 @@ - else if (op == destroy_functor_tag) - out_buffer.func_ptr = 0; - else /* op == check_functor_type_tag */ { -- const std::type_info& check_type = -- *static_cast(out_buffer.const_obj_ptr); -+ const BOOST_FUNCTION_STD_NS::type_info& check_type = -+ *static_cast(out_buffer.const_obj_ptr); - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = &in_buffer.func_ptr; - else -@@ -287,8 +302,8 @@ - // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type. - reinterpret_cast(&out_buffer.data)->~Functor(); - } else /* op == check_functor_type_tag */ { -- const std::type_info& check_type = -- *static_cast(out_buffer.const_obj_ptr); -+ const BOOST_FUNCTION_STD_NS::type_info& check_type = -+ *static_cast(out_buffer.const_obj_ptr); - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = &in_buffer.data; - else -@@ -348,8 +363,8 @@ - # endif // BOOST_NO_STD_ALLOCATOR - out_buffer.obj_ptr = 0; - } else /* op == check_functor_type_tag */ { -- const std::type_info& check_type = -- *static_cast(out_buffer.const_obj_ptr); -+ const BOOST_FUNCTION_STD_NS::type_info& check_type = -+ *static_cast(out_buffer.const_obj_ptr); - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = in_buffer.obj_ptr; - else -@@ -368,6 +383,15 @@ - mpl::bool_<(function_allows_small_object_optimization::value)>()); - } - -+ // For member pointers, we treat them as function objects with -+ // the small-object optimization always enabled. -+ static inline void -+ manager(const function_buffer& in_buffer, function_buffer& out_buffer, -+ functor_manager_operation_type op, member_ptr_tag) -+ { -+ manager(in_buffer, out_buffer, op, mpl::true_()); -+ } -+ - public: - /* Dispatch to an appropriate manager based on whether we have a - function pointer or a function object pointer. */ -@@ -456,7 +480,6 @@ - */ - struct vtable_base - { -- vtable_base() : manager(0) { } - void (*manager)(const function_buffer& in_buffer, - function_buffer& out_buffer, - functor_manager_operation_type op); -@@ -480,13 +503,13 @@ - - /** Retrieve the type of the stored function object, or typeid(void) - if this is empty. */ -- const std::type_info& target_type() const -+ const BOOST_FUNCTION_STD_NS::type_info& target_type() const - { - if (!vtable) return typeid(void); - - detail::function::function_buffer type; - vtable->manager(functor, type, detail::function::get_functor_type_tag); -- return *static_cast(type.const_obj_ptr); -+ return *static_cast(type.const_obj_ptr); - } - - template -@@ -558,7 +581,7 @@ - #endif - - public: // should be protected, but GCC 2.95.3 will fail to allow access -- detail::function::vtable_base* vtable; -+ const detail::function::vtable_base* vtable; - mutable detail::function::function_buffer functor; - }; - -@@ -733,4 +756,8 @@ - #undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL - #undef BOOST_FUNCTION_COMPARE_TYPE_ID - -+#if defined(BOOST_MSVC) -+# pragma warning( pop ) -+#endif -+ - #endif // BOOST_FUNCTION_BASE_HEADER ---- boost/function/function_template.hpp -+++ boost/function/function_template.hpp -@@ -11,6 +11,11 @@ - // protection. - #include - -+#if defined(BOOST_MSVC) -+# pragma warning( push ) -+# pragma warning( disable : 4127 ) // "conditional expression is constant" -+#endif -+ - #define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T) - - #define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T) -@@ -54,12 +59,20 @@ - BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) - #define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \ - BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -+#define BOOST_FUNCTION_MEMBER_INVOKER \ -+ BOOST_JOIN(member_invoker,BOOST_FUNCTION_NUM_ARGS) -+#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \ -+ BOOST_JOIN(void_member_invoker,BOOST_FUNCTION_NUM_ARGS) - #define BOOST_FUNCTION_GET_FUNCTION_INVOKER \ - BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS) - #define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) - #define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \ - BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -+#define BOOST_FUNCTION_GET_MEMBER_INVOKER \ -+ BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS) -+#define BOOST_FUNCTION_GET_INVOKER \ -+ BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS) - #define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS) - - #ifndef BOOST_NO_VOID_RETURNS -@@ -70,16 +83,6 @@ - # define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE () - #endif - --#ifdef BOOST_MSVC --# pragma warning(push) --# pragma warning(disable: 4127) // conditional expression is constant. --#endif -- --#ifdef BOOST_MSVC --# pragma warning(push) --# pragma warning(disable: 4127) // conditional expression is constant. --#endif -- - namespace boost { - namespace detail { - namespace function { -@@ -191,6 +194,44 @@ - } - }; - -+#if BOOST_FUNCTION_NUM_ARGS > 0 -+ /* Handle invocation of member pointers. */ -+ template< -+ typename MemberPtr, -+ typename R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_PARMS -+ > -+ struct BOOST_FUNCTION_MEMBER_INVOKER -+ { -+ static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_PARMS) -+ -+ { -+ MemberPtr* f = -+ reinterpret_cast(&function_obj_ptr.data); -+ return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS); -+ } -+ }; -+ -+ template< -+ typename MemberPtr, -+ typename R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_PARMS -+ > -+ struct BOOST_FUNCTION_VOID_MEMBER_INVOKER -+ { -+ static BOOST_FUNCTION_VOID_RETURN_TYPE -+ invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_PARMS) -+ -+ { -+ MemberPtr* f = -+ reinterpret_cast(&function_obj_ptr.data); -+ BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS)); -+ } -+ }; -+#endif -+ - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA -@@ -254,12 +295,130 @@ - >::type type; - }; - -+#if BOOST_FUNCTION_NUM_ARGS > 0 -+ /* Retrieve the appropriate invoker for a member pointer. */ -+ template< -+ typename MemberPtr, -+ typename R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_PARMS -+ > -+ struct BOOST_FUNCTION_GET_MEMBER_INVOKER -+ { -+ typedef typename mpl::if_c<(is_void::value), -+ BOOST_FUNCTION_VOID_MEMBER_INVOKER< -+ MemberPtr, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ >, -+ BOOST_FUNCTION_MEMBER_INVOKER< -+ MemberPtr, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ > -+ >::type type; -+ }; -+#endif -+ -+ /* Given the tag returned by get_function_tag, retrieve the -+ actual invoker that will be used for the given function -+ object. -+ -+ Each specialization contains an "apply" nested class template -+ that accepts the function object, return type, function -+ argument types, and allocator. The resulting "apply" class -+ contains two typedefs, "invoker_type" and "manager_type", -+ which correspond to the invoker and manager types. */ -+ template -+ struct BOOST_FUNCTION_GET_INVOKER { }; -+ -+ /* Retrieve the invoker for a function pointer. */ -+ template<> -+ struct BOOST_FUNCTION_GET_INVOKER -+ { -+ template -+ struct apply -+ { -+ typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< -+ FunctionPtr, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ >::type -+ invoker_type; -+ -+ typedef functor_manager manager_type; -+ }; -+ }; -+ -+#if BOOST_FUNCTION_NUM_ARGS > 0 -+ /* Retrieve the invoker for a member pointer. */ -+ template<> -+ struct BOOST_FUNCTION_GET_INVOKER -+ { -+ template -+ struct apply -+ { -+ typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< -+ MemberPtr, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ >::type -+ invoker_type; -+ -+ typedef functor_manager manager_type; -+ }; -+ }; -+#endif -+ -+ /* Retrieve the invoker for a function object. */ -+ template<> -+ struct BOOST_FUNCTION_GET_INVOKER -+ { -+ template -+ struct apply -+ { -+ typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< -+ FunctionObj, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ >::type -+ invoker_type; -+ -+ typedef functor_manager manager_type; -+ }; -+ }; -+ -+ /* Retrieve the invoker for a reference to a function object. */ -+ template<> -+ struct BOOST_FUNCTION_GET_INVOKER -+ { -+ template -+ struct apply -+ { -+ typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< -+ typename RefWrapper::type, -+ R BOOST_FUNCTION_COMMA -+ BOOST_FUNCTION_TEMPLATE_ARGS -+ >::type -+ invoker_type; -+ -+ typedef reference_manager manager_type; -+ }; -+ }; -+ - /** - * vtable for a specific boost::function instance. - */ - template -- struct BOOST_FUNCTION_VTABLE : vtable_base -+ struct BOOST_FUNCTION_VTABLE - { - #ifndef BOOST_NO_VOID_RETURNS - typedef R result_type; -@@ -272,50 +431,25 @@ - BOOST_FUNCTION_TEMPLATE_ARGS); - - template -- BOOST_FUNCTION_VTABLE(F f) : vtable_base(), invoker(0) -- { -- init(f); -- } -- -- template -- bool assign_to(F f, function_buffer& functor) -+ bool assign_to(const F& f, function_buffer& functor) const - { - typedef typename get_function_tag::type tag; - return assign_to(f, functor, tag()); - } - -- void clear(function_buffer& functor) -+ void clear(function_buffer& functor) const - { -- if (manager) -- manager(functor, functor, destroy_functor_tag); -+ if (base.manager) -+ base.manager(functor, functor, destroy_functor_tag); - } -- -+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE - private: -- template -- void init(F f) -- { -- typedef typename get_function_tag::type tag; -- init(f, tag()); -- } -- -+#endif - // Function pointers - template -- void init(FunctionPtr /*f*/, function_ptr_tag) -- { -- typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< -- FunctionPtr, -- R BOOST_FUNCTION_COMMA -- BOOST_FUNCTION_TEMPLATE_ARGS -- >::type -- actual_invoker_type; -- -- invoker = &actual_invoker_type::invoke; -- manager = &functor_manager::manage; -- } -- -- template - bool -- assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) -+ assign_to(FunctionPtr f, function_buffer& functor, -+ function_ptr_tag) const - { - this->clear(functor); - if (f) { -@@ -331,22 +465,13 @@ - // Member pointers - #if BOOST_FUNCTION_NUM_ARGS > 0 - template -- void init(MemberPtr f, member_ptr_tag) -- { -- // DPG TBD: Add explicit support for member function -- // objects, so we invoke through mem_fn() but we retain the -- // right target_type() values. -- this->init(mem_fn(f)); -- } -- -- template -- bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) -+ bool -+ assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const - { -- // DPG TBD: Add explicit support for member function -- // objects, so we invoke through mem_fn() but we retain the -- // right target_type() values. - if (f) { -- this->assign_to(mem_fn(f), functor); -+ // Always use the small-object optimization for member -+ // pointers. -+ assign_functor(f, functor, mpl::true_()); - return true; - } else { - return false; -@@ -355,24 +480,11 @@ - #endif // BOOST_FUNCTION_NUM_ARGS > 0 - - // Function objects -- template -- void init(FunctionObj /*f*/, function_obj_tag) -- { -- typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< -- FunctionObj, -- R BOOST_FUNCTION_COMMA -- BOOST_FUNCTION_TEMPLATE_ARGS -- >::type -- actual_invoker_type; -- -- invoker = &actual_invoker_type::invoke; -- manager = &functor_manager::manage; -- } -- - // Assign to a function object using the small object optimization - template - void -- assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) -+ assign_functor(const FunctionObj& f, function_buffer& functor, -+ mpl::true_) const - { - new ((void*)&functor.data) FunctionObj(f); - } -@@ -380,7 +492,8 @@ - // Assign to a function object allocated on the heap. - template - void -- assign_functor(FunctionObj f, function_buffer& functor, mpl::false_) -+ assign_functor(const FunctionObj& f, function_buffer& functor, -+ mpl::false_) const - { - #ifndef BOOST_NO_STD_ALLOCATOR - typedef typename Allocator::template rebind::other -@@ -400,7 +513,8 @@ - - template - bool -- assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) -+ assign_to(const FunctionObj& f, function_buffer& functor, -+ function_obj_tag) const - { - if (!boost::detail::function::has_empty_target(boost::addressof(f))) { - assign_functor(f, functor, -@@ -413,24 +527,9 @@ - - // Reference to a function object - template -- void -- init(const reference_wrapper& /*f*/, function_obj_ref_tag) -- { -- typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< -- FunctionObj, -- R BOOST_FUNCTION_COMMA -- BOOST_FUNCTION_TEMPLATE_ARGS -- >::type -- actual_invoker_type; -- -- invoker = &actual_invoker_type::invoke; -- manager = &reference_manager::get; -- } -- -- template - bool - assign_to(const reference_wrapper& f, -- function_buffer& functor, function_obj_ref_tag) -+ function_buffer& functor, function_obj_ref_tag) const - { - if (!boost::detail::function::has_empty_target(f.get_pointer())) { - // DPG TBD: We might need to detect constness of -@@ -445,6 +544,7 @@ - } - - public: -+ vtable_base base; - invoker_type invoker; - }; - } // end namespace function -@@ -456,6 +556,17 @@ - typename Allocator = BOOST_FUNCTION_DEFAULT_ALLOCATOR - > - class BOOST_FUNCTION_FUNCTION : public function_base -+ -+#if BOOST_FUNCTION_NUM_ARGS == 1 -+ -+ , public std::unary_function -+ -+#elif BOOST_FUNCTION_NUM_ARGS == 2 -+ -+ , public std::binary_function -+ -+#endif -+ - { - public: - #ifndef BOOST_NO_VOID_RETURNS -@@ -537,7 +648,7 @@ - if (this->empty()) - boost::throw_exception(bad_function_call()); - -- return static_cast(vtable)->invoker -+ return reinterpret_cast(vtable)->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } - #else -@@ -561,12 +672,16 @@ - operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f) - { - this->clear(); -+#ifndef BOOST_NO_EXCEPTIONS - try { - this->assign_to(f); - } catch (...) { - vtable = 0; - throw; - } -+#else -+ this->assign_to(f); -+#endif - return *this; - } - -@@ -592,12 +707,16 @@ - return *this; - - this->clear(); -+#ifndef BOOST_NO_EXCEPTIONS - try { - this->assign_to_own(f); - } catch (...) { - vtable = 0; - throw; - } -+#else -+ this->assign_to_own(f); -+#endif - return *this; - } - -@@ -615,7 +734,7 @@ - void clear() - { - if (vtable) { -- static_cast(vtable)->clear(this->functor); -+ reinterpret_cast(vtable)->clear(this->functor); - vtable = 0; - } - } -@@ -650,10 +769,24 @@ - } - - template -- void assign_to(Functor f) -+ void assign_to(const Functor& f) - { -- static vtable_type stored_vtable(f); -- if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable; -+ using detail::function::vtable_base; -+ -+ typedef typename detail::function::get_function_tag::type tag; -+ typedef detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; -+ typedef typename get_invoker:: -+ template apply -+ handler_type; -+ -+ typedef typename handler_type::invoker_type invoker_type; -+ typedef typename handler_type::manager_type manager_type; -+ -+ static const vtable_type stored_vtable = -+ { { &manager_type::manage }, &invoker_type::invoke }; -+ -+ if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable.base; - else vtable = 0; - } - }; -@@ -688,7 +821,7 @@ - if (this->empty()) - boost::throw_exception(bad_function_call()); - -- return static_cast(vtable)->invoker -+ return reinterpret_cast(vtable)->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } - #endif -@@ -798,21 +931,14 @@ - } - }; - --#ifdef BOOST_MSVC --# pragma warning(pop) --#endif -- - #undef BOOST_FUNCTION_PARTIAL_SPEC - #endif // have partial specialization - - } // end namespace boost - --#ifdef BOOST_MSVC --# pragma warning(pop) --#endif -- - // Cleanup after ourselves... - #undef BOOST_FUNCTION_VTABLE -+#undef BOOST_FUNCTION_GET_INVOKER - #undef BOOST_FUNCTION_DEFAULT_ALLOCATOR - #undef BOOST_FUNCTION_COMMA - #undef BOOST_FUNCTION_FUNCTION -@@ -822,10 +948,12 @@ - #undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER - #undef BOOST_FUNCTION_FUNCTION_REF_INVOKER - #undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER -+#undef BOOST_FUNCTION_MEMBER_INVOKER -+#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER - #undef BOOST_FUNCTION_GET_FUNCTION_INVOKER - #undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER - #undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER --#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER -+#undef BOOST_FUNCTION_GET_MEMBER_INVOKER - #undef BOOST_FUNCTION_TEMPLATE_PARMS - #undef BOOST_FUNCTION_TEMPLATE_ARGS - #undef BOOST_FUNCTION_PARMS -@@ -835,3 +963,7 @@ - #undef BOOST_FUNCTION_ARG_TYPES - #undef BOOST_FUNCTION_VOID_RETURN_TYPE - #undef BOOST_FUNCTION_RETURN -+ -+#if defined(BOOST_MSVC) -+# pragma warning( pop ) -+#endif diff --git a/boost-CVE-2008-0171.patch b/boost-CVE-2008-0171.patch deleted file mode 100644 index 1a7b2e5..0000000 --- a/boost-CVE-2008-0171.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- boost/regex/v4/basic_regex_parser.hpp (revision 38864) -+++ boost/regex/v4/basic_regex_parser.hpp (revision 42674) -@@ -785,4 +785,5 @@ - case syntax_element_jump: - case syntax_element_startmark: -+ case syntax_element_backstep: - // can't legally repeat any of the above: - fail(regex_constants::error_badrepeat, m_position - m_base); -@@ -1870,4 +1871,5 @@ - { - re_syntax_base* b = this->getaddress(expected_alt_point); -+ // Make sure we have exactly one alternative following this state: - if(b->type != syntax_element_alt) - { -@@ -1878,4 +1880,13 @@ - { - fail(regex_constants::error_bad_pattern, m_position - m_base); -+ return false; -+ } -+ // check for invalid repetition of next state: -+ b = this->getaddress(expected_alt_point); -+ b = this->getaddress(static_cast(b)->next.i, b); -+ if((b->type != syntax_element_assert_backref) -+ && (b->type != syntax_element_startmark)) -+ { -+ fail(regex_constants::error_badrepeat, m_position - m_base); - return false; - } ---- libs/regex/test/regress/test_perl_ex.cpp (revision 30980) -+++ libs/regex/test/regress/test_perl_ex.cpp (revision 42674) -@@ -122,4 +122,15 @@ - TEST_INVALID_REGEX("(?:(a)|b)(?(?<", perl); - TEST_INVALID_REGEX("(?:(a)|b)(?(? -

See -- -+ - complete() note for usage suggestions. -- end note]

- -
errno_type to_errno( system_error_type code );
--- libs/test/doc/components/prg_exec_monitor/compilation.html +++ libs/test/doc/components/prg_exec_monitor/compilation.html @@ -42,13 +42,13 @@ diff --git a/boost-fix_documentation.patch b/boost-fix_documentation.patch deleted file mode 100644 index f31a5e5..0000000 --- a/boost-fix_documentation.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libs/bind/bind.html -+++ libs/bind/bind.html -@@ -341,7 +341,7 @@ - { - public: - -- boost::function<void> onClick; -+ boost::function<void()> onClick; - }; - - class player diff --git a/boost-missing_includes.patch b/boost-missing_includes.patch index 928bc5e..1865700 100644 --- a/boost-missing_includes.patch +++ b/boost-missing_includes.patch @@ -85,6 +85,16 @@ #include #include #include +--- boost/spirit/tree/impl/tree_to_xml.ipp ++++ boost/spirit/tree/impl/tree_to_xml.ipp +@@ -13,6 +13,7 @@ + + #include + #include ++#include + #include + + #include --- boost/test/test_tools.hpp +++ boost/test/test_tools.hpp @@ -45,6 +45,8 @@ diff --git a/boost-no_intrinsic_int64_t.patch b/boost-no_intrinsic_int64_t.patch deleted file mode 100644 index d7ae2ef..0000000 --- a/boost-no_intrinsic_int64_t.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- boost/archive/polymorphic_iarchive.hpp -+++ boost/archive/polymorphic_iarchive.hpp -@@ -16,6 +16,7 @@ - - // See http://www.boost.org for updates, documentation, and revision history. - -+#include // UINT_MAX - #include // std::size_t - #include - -@@ -38,7 +39,7 @@ - // if there is no 64 bit int or if its the same as a long - // we shouldn't define separate functions for int64 data types. - #if defined(BOOST_NO_INT64_T) \ -- || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 -+ || (ULONG_MAX != 0xffffffffu /* 2^^32 -1 */ && ULONG_MAX == 0xffffffffffffffffu) // 2**64 - 1 - # define BOOST_NO_INTRINSIC_INT64_T - #endif - ---- boost/archive/polymorphic_oarchive.hpp -+++ boost/archive/polymorphic_oarchive.hpp -@@ -16,6 +16,7 @@ - - // See http://www.boost.org for updates, documentation, and revision history. - -+#include // UINT_MAX - #include // size_t - #include - -@@ -37,7 +38,7 @@ - // if there is no 64 bit int or if its the same as a long - // we shouldn't define separate functions for int64 data types. - #if defined(BOOST_NO_INT64_T) \ -- || (ULONG_MAX != 0xffffffff && ULONG_MAX == 18446744073709551615u) // 2**64 - 1 -+ || (ULONG_MAX != 0xffffffffu /* 2^^32 -1 */ && ULONG_MAX == 0xffffffffffffffffu) // 2**64 - 1 - # define BOOST_NO_INTRINSIC_INT64_T - #endif - diff --git a/boost-no_segfault_in_Regex_filter.patch b/boost-no_segfault_in_Regex_filter.patch index 649cbba..3bafc5c 100644 --- a/boost-no_segfault_in_Regex_filter.patch +++ b/boost-no_segfault_in_Regex_filter.patch @@ -1,11 +1,11 @@ --- boost/iostreams/filter/regex.hpp +++ boost/iostreams/filter/regex.hpp -@@ -57,7 +57,7 @@ +@@ -58,7 +58,7 @@ return; iterator first(&src[0], &src[0] + src.size(), re_, flags_); iterator last; -- const Ch* suffix = 0; // Prevent GCC 2.95 warning. -+ const Ch* suffix = &src[0]; //suffix will be entire input if no match found +- const Ch* suffix = 0; ++ const Ch* suffix = &src[0]; for (; first != last; ++first) { dest.insert( dest.end(), first->prefix().first, diff --git a/boost-no_segfault_on_dir_iteration.patch b/boost-no_segfault_on_dir_iteration.patch deleted file mode 100644 index df5cae9..0000000 --- a/boost-no_segfault_on_dir_iteration.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libs/filesystem/src/operations.cpp -+++ libs/filesystem/src/operations.cpp -@@ -1209,7 +1209,7 @@ - const std::string & dir, std::string & target, - file_status &, file_status & ) - { -- static const std::string dummy_first_name( "." ); -+ const std::string dummy_first_name( "." ); - if ( (handle = ::opendir( dir.c_str() )) == 0 ) return errno; - target = dummy_first_name; - std::size_t path_size; diff --git a/boost-pass_BJAM_CONFIG.patch b/boost-pass_BJAM_CONFIG.patch index f080a65..faba48d 100644 --- a/boost-pass_BJAM_CONFIG.patch +++ b/boost-pass_BJAM_CONFIG.patch @@ -9,15 +9,15 @@ BUILD="" PREFIX=/usr/local EPREFIX= -@@ -318,6 +318,7 @@ +@@ -339,6 +339,7 @@ cat > Makefile < -+ , detail::keywords<0> - , char const* - , void(not_specified::*)() // A function pointer type which is never an - // appropriate default implementation diff --git a/boost-qualify_name.patch b/boost-qualify_name.patch deleted file mode 100644 index 74d1eb2..0000000 --- a/boost-qualify_name.patch +++ /dev/null @@ -1,13 +0,0 @@ -Qualify special_values_parser to avoid later confusion. - ---- boost/date_time/date_facet.hpp -+++ boost/date_time/date_facet.hpp -@@ -429,7 +429,7 @@ - typedef std::basic_string string_type; - typedef CharT char_type; - typedef boost::date_time::period_parser period_parser_type; -- typedef special_values_parser special_values_parser_type; -+ typedef boost::date_time::special_values_parser special_values_parser_type; - typedef std::vector > input_collection_type; - typedef format_date_parser format_date_parser_type; - // date_generators stuff goes here diff --git a/boost-threading.patch b/boost-threading.patch index fdb63af..7fa61f8 100644 --- a/boost-threading.patch +++ b/boost-threading.patch @@ -1,11 +1,11 @@ --- tools/build/v2/tools/gcc.jam +++ tools/build/v2/tools/gcc.jam -@@ -677,7 +677,7 @@ +@@ -770,7 +770,7 @@ } case * : { - flags gcc OPTIONS multi : -pthread ; + flags gcc OPTIONS multi : -pthread -D_REENTRANT ; - flags gcc FINDLIBS-SA multi : rt ; + flags gcc FINDLIBS-SA : rt ; } } diff --git a/boost-use_rpm_optflags.patch b/boost-use_rpm_optflags.patch index 8a493bc..3fc99ae 100644 --- a/boost-use_rpm_optflags.patch +++ b/boost-use_rpm_optflags.patch @@ -1,38 +1,58 @@ --- tools/build/v2/tools/builtin.jam +++ tools/build/v2/tools/builtin.jam -@@ -91,7 +91,7 @@ - feature runtime-debugging : on off : propagated ; +@@ -83,17 +83,17 @@ + feature.set-default target-os : [ default-host-os ] ; --feature optimization : off speed space : propagated ; -+feature optimization : off speed space rpm : propagated ; - feature profiling : off on : propagated ; - feature inlining : off on full : propagated ; +-feature.feature toolset : : implicit propagated symmetric ; +-feature.feature stdlib : native : propagated composite ; +-feature.feature link : shared static : propagated ; +-feature.feature runtime-link : shared static : propagated ; +-feature.feature runtime-debugging : on off : propagated ; +-feature.feature optimization : off speed space : propagated ; +-feature.feature profiling : off on : propagated ; +-feature.feature inlining : off on full : propagated ; +-feature.feature threading : single multi : propagated ; +-feature.feature rtti : on off : propagated ; +-feature.feature exception-handling : on off : propagated ; ++feature.feature toolset : : implicit propagated symmetric ; ++feature.feature stdlib : native : propagated composite ; ++feature.feature link : shared static : propagated ; ++feature.feature runtime-link : shared static : propagated ; ++feature.feature runtime-debugging : on off : propagated ; ++feature.feature optimization : off speed space rpm : propagated ; ++feature.feature profiling : off on : propagated ; ++feature.feature inlining : off on full : propagated ; ++feature.feature threading : single multi : propagated ; ++feature.feature rtti : on off : propagated ; ++feature.feature exception-handling : on off : propagated ; -@@ -102,7 +102,7 @@ - feature asynch-exceptions : off on : propagated ; - # Whether all extern "C" functions are considered nothrow by default - feature extern-c-nothrow : off on : propagated ; --feature debug-symbols : on off : propagated ; -+feature debug-symbols : on off rpm : propagated ; - feature define : : free ; - feature undef : : free ; - feature "include" : : free path ; #order-sensitive ; -@@ -327,6 +327,7 @@ - variant release : speed off full + # Whether there is support for asynchronous EH (e.g. catching SEGVs). + feature.feature asynch-exceptions : off on : propagated ; +@@ -101,7 +101,7 @@ + # Whether all extern "C" functions are considered nothrow by default. + feature.feature extern-c-nothrow : off on : propagated ; + +-feature.feature debug-symbols : on off : propagated ; ++feature.feature debug-symbols : on off rpm : propagated ; + feature.feature define : : free ; + feature.feature undef : : free ; + feature.feature "include" : : free path ; #order-sensitive ; +@@ -342,6 +342,7 @@ + variant release : speed off full off NDEBUG ; variant profile : release : on on ; +variant rpm : rpm rpm full off ; + class searched-lib-target : abstract-file-target - { --- tools/build/v2/tools/gcc.jam +++ tools/build/v2/tools/gcc.jam -@@ -270,6 +270,7 @@ - flags gcc.compile OPTIONS off : -O0 ; +@@ -290,6 +290,7 @@ + flags gcc.compile OPTIONS off : -O0 ; flags gcc.compile OPTIONS speed : -O3 ; flags gcc.compile OPTIONS space : -Os ; +flags gcc.compile OPTIONS rpm : "$RPM_OPT_FLAGS" ; - flags gcc.compile OPTIONS off : -fno-inline ; - flags gcc.compile OPTIONS on : -Wno-inline ; + flags gcc.compile OPTIONS off : -fno-inline ; + flags gcc.compile OPTIONS on : -Wno-inline ; diff --git a/boost.changes b/boost.changes index bfb9f17..0d37521 100644 --- a/boost.changes +++ b/boost.changes @@ -1,3 +1,114 @@ +------------------------------------------------------------------- +Tue Sep 2 12:14:27 CEST 2008 - pth@suse.de + +- Split off runtime libraries into their own packages. +- Update to 1.36.0: + New Libraries + * Accumulators: Framework for incremental calculation, and + collection of statistical accumulators. + * Exception: A library for transporting of arbitrary data in + exception objects, and transporting of exceptions + between threads. + * Units: Zero-overhead dimensional analysis and unit/quantity + manipulation and conversion. + * Unordered: Unordered associative containers. + Updated Libraries + * Asio: + o Added support for serial ports. + o Added support for UNIX domain sockets. + o Added support for raw sockets and ICMP. + o Added wrappers for POSIX stream-oriented file descriptors + (excluding regular files). + o Added support for reactor-style operations using a new + null_buffers type. + o Added an iterator type for bytewise traversal of buffer + sequences. + o Added new read_until() and async_read_until() overloads that + take a user-defined function object for locating message + boundaries. + o Added an experimental two-lock queue (enabled by defining + BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that may provide better + io_service scalability across many processors. + o Various fixes, performance improvements, and more complete + coverage of the custom memory allocation support. + * Assign:list_of() (and its variants) now has overloaded comparison + operators. This allows you to write test code such as + BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));. + * Foreach:BOOST_FOREACH macro for easily iterating over the elements + of a sequence. + o New BOOST_REVERSE_FOREACH macro for iterating over a sequence + in reverse. + * Function: + o Improved allocator support. + * Hash: Minor updates and fixes, for more info see the change log. + * Interprocess: + o Added anonymous shared memory for UNIX systems. + o Fixed missing move semantics on managed memory classes. + o Added copy_on_write and open_read_only options for shared + memory and mapped file managed classes. + o shared_ptr is movable and supports aliasing. + * Intrusive: + o Added linear<> and cache_last<> options to singly linked lists. + o Added optimize_multikey<> option to unordered container hooks. + o Optimized unordered containers when store_hash option is used + in the hook. + o Implementation changed to avoid explicit use of try-catch + blocks and be compilable with exceptions disabled. + * Math: + o Added new non-central Chi-Square, Beta, F and T distributions. + o Added Exponential Integral and Zeta special functions. + o Added Rounding, Truncation, and Unit-in-the-last-place + functions. + o Added support for compile time powers of a runtime base. + o Added a few SSE2 based optimisations for the Lanczos + approximations. + * MPI: + o Added support for non-blocking operations in Python + o Added support for graph topologies. + * Multi-index Containers: Minor additions and maintenance fixes. + Consult the library release notes for + further information. + * PtrContainer: Support for a few more containers, and addition + of insert iterators. For details see upgrading + details. + * Spirit: Integrated the "Classic" Spirit V1.8.x code base with + Spirit V2, "The New Generation". See Change Log. + * Thread: + o New generic lock and try_lock functions for locking multiple + mutexes at once. + o Rvalue reference support for move semantics where the + compilers supports it. + o A few bugs fixed and missing functions added (including + the serious win32 condition variable bug). + o scoped_try_lock types are now backwards-compatible with + Boost 1.34.0 and previous releases. + o Support for passing function arguments to the thread + function by supplying additional arguments to the thread + constructor. + o Backwards-compatibility overloads added for timed_lock and + timed_wait functions to allow use of xtime for timeouts. + * Wave: + o Wave V2.0 is a new major release introducing some breaking + API changes, preventing it to be used with Boost versions + earlier than V1.36.0. Mainly, the API and hook interface + have been streamlined for more consistency. + o Fixed a couple of bugs, improved regression test system to + include testing of the preporcessing hooks interface + (for details see: Changelog). + * Xpressive: + o Regular expressions that can be written as strings or as + expression templates, and that can refer to each other and + themselves recursively with the power of context-free + grammars. + o skip() for specifying which parts of the input sequence + to ignore when matching it against a regex. + o regex_replace() accepts formatter objects and formatter + expressions in addition to format strings. + o Range-based regex_replace() algorithm. + o Fix crash when semantic actions are placed in look-aheads, + look-behinds or independent sub-expressions. + + ------------------------------------------------------------------- Mon Jun 23 14:32:35 CEST 2008 - pth@suse.de diff --git a/boost.spec b/boost.spec index a94327d..c58ba5d 100644 --- a/boost.spec +++ b/boost.spec @@ -1,10 +1,17 @@ # -# spec file for package boost (Version 1.34.1) +# spec file for package boost (Version 1.36.0) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # @@ -12,10 +19,11 @@ Name: boost -%define file_version 1_34_1 +%define file_version 1_36_0 %define man_version 1.33.1 %define man_file_version 1_33_1 -BuildRequires: boost-jam >= 3.1.14 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel +BuildRequires: boost-jam >= 3.1.16 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel +BuildRequires: libexpat-devel openmpi-devel %if 0%suse_version > 1020 BuildRequires: fdupes %endif @@ -24,12 +32,13 @@ License: BSD 3-Clause Group: Development/Libraries/C and C++ Summary: Boost C++ Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-build -Version: 1.34.1 -Release: 45 +Version: 1.36.0 +Release: 2 Source0: %{name}_%{file_version}.tar.bz2 Source1: boost-rpmlintrc Source2: boost_%{man_file_version}_man.tar.bz2 Source3: existing_extra_docs +Source4: README Patch0: boost-threading.patch Patch1: boost-thread.patch Patch2: boost-no_type_punning.patch @@ -38,18 +47,19 @@ Patch5: boost-pass_BJAM_CONFIG.patch Patch6: boost-use_rpm_optflags.patch Patch7: boost-fix_doc_url.patch Patch8: boost-no_segfault_in_Regex_filter.patch -Patch9: boost-no_segfault_on_dir_iteration.patch -Patch10: boost-fix_documentation.patch -Patch11: boost-Boost.Function.patch Patch12: boost-missing_includes.patch -Patch13: boost-no_intrinsic_int64_t.patch -Patch14: boost-codecleanup.patch -# Secfix for 1.34.1 -Patch15: boost-CVE-2008-0171.patch -# -Patch16: boost-qualify_name.patch Patch17: boost-ppc-asm.patch -Patch18: boost-qualify_keywords.patch +Requires: libboost_date_time2 +Requires: libboost_filesystem2 +Requires: libboost_iostreams2 +Requires: libboost_test2 +Requires: libboost_program_options2 +Requires: libboost_python2 +Requires: libboost_regex2 +Requires: libboost_serialization2 +Requires: libboost_signals2 +Requires: libboost_thread2 +Requires: boost-license %define _prefix /usr %description @@ -65,13 +75,14 @@ Although Boost was begun by members of the C++ Standards Committee Library Working Group, membership has expanded to include nearly two thousand members of the C++ community at large. -This package contains the dynamic libraries. For development using -Boost, you also need the boost-devel package. For documentation, see -the boost-doc package. +This package is mainly needed for updating from a prior version, the +dynamic libraries are found in their respective packge. For development +using Boost, you also need the boost-devel package. For documentation, +see the boost-doc package. -%package devel +%package devel License: BSD 3-Clause Summary: Development package for Boost C++ Group: Development/Libraries/C and C++ @@ -85,11 +96,22 @@ the package boost-doc. +%package license +License: BSD 3-Clause +Summary: Boost License +Group: Development/Libraries/C and C++ +AutoReqProv: on + +%description license +This package contains the license boost is provided under. + + + %package doc License: BSD 3-Clause Summary: Documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ -Requires: %{name}-devel = %{version} +Requires: %{name}-license = %{version} AutoReqProv: on %description doc @@ -97,6 +119,186 @@ This package contains documentation about the boost dynamic libraries. +%package -n libboost_date_time2 +License: BSD 3-Clause +Summary: Boost::Date.Time Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_date_time2 +This package contains the Boost Date.Time runtime libraries. + + + +%package -n libboost_filesystem2 +License: BSD 3-Clause +Summary: Boost::Filesystem Runtime Libraries +Group: System/Localization +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_filesystem2 +This package contains the Boost::Filesystem libraries. + + + +%package -n libboost_graph2 +License: BSD 3-Clause +Summary: Boost::Graph Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_graph2 +This package contains the Boost::Graph Runtime libraries. + + + +%package -n libboost_iostreams2 +License: BSD 3-Clause +Summary: Boost::IOStreams Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_iostreams2 +This package contains the Boost::IOStreams Runtime libraries. + + + +%package -n libboost_math2 +License: BSD 3-Clause +Summary: Boost::Math Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_math2 +This package contains the Boost::Math Runtime libraries. + + + +%package -n libboost_mpi2 +License: BSD 3-Clause +Summary: Boost::MPI Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_mpi2 +This package contains the Boost::MPI Runtime libraries. + + + +%package -n libboost_test2 +License: BSD 3-Clause +Summary: Boost::Test Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_test2 +This package contains the Boost::Test runtime libraries. + + + +%package -n libboost_program_options2 +License: BSD 3-Clause +Summary: Boost::ProgramOptions Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_program_options2 +This package contains the Boost::ProgramOptions Runtime libraries. + + + +%package -n libboost_python2 +License: BSD 3-Clause +Summary: Boost::Python Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_python2 +This package contains the Boost::Python Runtime libraries. + + + +%package -n libboost_serialization2 +License: BSD 3-Clause +Summary: Boost::Serialization Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_serialization2 +This package contains the Boost::Serialization Runtime libraries. + + + +%package -n libboost_signals2 +License: BSD 3-Clause +Summary: Boost::Signals Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_signals2 +This package contains the Boost::Signals Runtime libraries. + + + +%package -n libboost_system2 +License: BSD 3-Clause +Summary: Boost::System Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_system2 +This package contains the Boost::System runtime libraries. + + + +%package -n libboost_thread2 +License: BSD 3-Clause +Summary: Boost::Thread Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_thread2 +This package contains the Boost::Thread runtime libraries. + + + +%package -n libboost_wave2 +License: BSD 3-Clause +Summary: Boost::Wave Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_wave2 +This package contains the Boost::Wave runtime libraries. + + + +%package -n libboost_regex2 +License: BSD 3-Clause +Summary: The Boost::Regex runtime library +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_regex2 +This package contains the Boost::Regex runtime library. + + + %prep %setup -q -n %{name}_%{file_version} -a 2 find -name .cvsignore -exec rm -f {} + @@ -107,19 +309,8 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} %patch2 %patch4 %patch5 -%patch6 -%patch7 %patch8 -%patch9 -%patch10 -%patch11 -%patch12 -%patch13 -%patch14 -%patch15 -%patch16 %patch17 -%patch18 chmod +x configure #stupid build machinery copies .orig files find . -name \*.orig -exec rm {} + @@ -132,9 +323,10 @@ BUILD_FLAGS="--with-toolset=gcc --prefix=%{buildroot}/usr --libdir=%{buildroot}% 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" -BJAM_TARGET=rpm -BJAM_CONFIG="%{bjam_config}" BJAM_TARGET="$BJAM_TARGET" ./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS -export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated" +export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} +BJAM_CONFIG="%bjam_config" ./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS +echo "using mpi ;" >> user-config.jam +#export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated" make all %install @@ -183,12 +375,11 @@ done popd #install doc files dos2unix libs/ptr_container/doc/tutorial_example.html \ - libs/ptr_container/doc/style.css \ libs/parameter/doc/html/reference.html \ libs/parameter/doc/html/index.html \ libs/iostreams/doc/tree/tree.js \ libs/graph/doc/lengauer_tarjan_dominator.htm -tar --files-from=%{S:3} -cf - $(find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico) | tar -C %{buildroot}%{_docdir}/boost-%{version} -xf - +find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | tar --files-from=%{S:3} -cf - --files-from=- | tar -C %{buildroot}%{_docdir}/boost-%{version} -xf - rm -rf %{buildroot}%{_docdir}/boost-%{version}/boost ln -s /usr/include/boost %{buildroot}%{_docdir}/boost-%{version}/ ln -s ../LICENSE_1_0.txt %{buildroot}%{_docdir}/boost-%{version}/libs @@ -205,9 +396,90 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} + %files %defattr(-, root, root, -) -%doc LICENSE_1_0.txt README -%{_libdir}/*.so.%{version} -%{_libdir}/*.so.2 +%doc README + +%files license +%defattr(-, root, root, -) +%doc LICENSE_1_0.txt + +%files -n libboost_date_time2 +%defattr(-, root, root, -) +%{_libdir}/libboost_date_time*.so.%{version} +%{_libdir}/libboost_date_time*.so.2 + +%files -n libboost_filesystem2 +%defattr(-, root, root, -) +%{_libdir}/libboost_filesystem*.so.%{version} +%{_libdir}/libboost_filesystem*.so.2 + +%files -n libboost_graph2 +%defattr(-, root, root, -) +%{_libdir}/libboost_graph*.so.%{version} +%{_libdir}/libboost_graph*.so.2 + +%files -n libboost_iostreams2 +%defattr(-, root, root, -) +%{_libdir}/libboost_iostreams*.so.%{version} +%{_libdir}/libboost_iostreams*.so.2 + +%files -n libboost_math2 +%defattr(-, root, root, -) +%{_libdir}/libboost_math_*.so.%{version} +%{_libdir}/libboost_math*.so.2 + +%files -n libboost_mpi2 +%defattr(-, root, root, -) +%{_libdir}/libboost_mpi*.so.%{version} +%{_libdir}/libboost_mpi*.so.2 +%{_libdir}/mpi*.so.%{version} +%{_libdir}/mpi*.so.2 + +%files -n libboost_test2 +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor*.so.%{version} +%{_libdir}/libboost_prg_exec_monitor*.so.2 +%{_libdir}/libboost_unit_test_framework*.so.%{version} +%{_libdir}/libboost_unit_test_framework*.so.2 + +%files -n libboost_program_options2 +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options*.so.%{version} +%{_libdir}/libboost_program_options*.so.2 + +%files -n libboost_python2 +%defattr(-, root, root, -) +%{_libdir}/libboost_python*.so.%{version} +%{_libdir}/libboost_python*.so.2 + +%files -n libboost_serialization2 +%defattr(-, root, root, -) +%{_libdir}/libboost_*serialization*.so.%{version} +%{_libdir}/libboost_*serialization*.so.2 + +%files -n libboost_signals2 +%defattr(-, root, root, -) +%{_libdir}/libboost_signals*.so.%{version} +%{_libdir}/libboost_signals*.so.2 + +%files -n libboost_system2 +%defattr(-, root, root, -) +%{_libdir}/libboost_system*.so.%{version} +%{_libdir}/libboost_system*.so.2 + +%files -n libboost_thread2 +%defattr(-, root, root, -) +%{_libdir}/libboost_thread*.so.%{version} +%{_libdir}/libboost_thread*.so.2 + +%files -n libboost_wave2 +%defattr(-, root, root, -) +%{_libdir}/libboost_wave*.so.%{version} +%{_libdir}/libboost_wave*.so.2 + +%files -n libboost_regex2 +%defattr(-, root, root, -) +%{_libdir}/libboost_regex*.so.%{version} +%{_libdir}/libboost_regex*.so.2 %files devel %defattr(-, root, root, -) @@ -222,6 +494,113 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} + %doc %{_mandir}/man7/*.7.gz %changelog +* Tue Sep 02 2008 pth@suse.de +- Split off runtime libraries into their own packages. +- Update to 1.36.0: + New Libraries + * Accumulators: Framework for incremental calculation, and + collection of statistical accumulators. + * Exception: A library for transporting of arbitrary data in + exception objects, and transporting of exceptions + between threads. + * Units: Zero-overhead dimensional analysis and unit/quantity + manipulation and conversion. + * Unordered: Unordered associative containers. + Updated Libraries + * Asio: + o Added support for serial ports. + o Added support for UNIX domain sockets. + o Added support for raw sockets and ICMP. + o Added wrappers for POSIX stream-oriented file descriptors + (excluding regular files). + o Added support for reactor-style operations using a new + null_buffers type. + o Added an iterator type for bytewise traversal of buffer + sequences. + o Added new read_until() and async_read_until() overloads that + take a user-defined function object for locating message + boundaries. + o Added an experimental two-lock queue (enabled by defining + BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that may provide better + io_service scalability across many processors. + o Various fixes, performance improvements, and more complete + coverage of the custom memory allocation support. + * Assign:list_of() (and its variants) now has overloaded comparison + operators. This allows you to write test code such as + BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));. + * Foreach:BOOST_FOREACH macro for easily iterating over the elements + of a sequence. + o New BOOST_REVERSE_FOREACH macro for iterating over a sequence + in reverse. + * Function: + o Improved allocator support. + * Hash: Minor updates and fixes, for more info see the change log. + * Interprocess: + o Added anonymous shared memory for UNIX systems. + o Fixed missing move semantics on managed memory classes. + o Added copy_on_write and open_read_only options for shared + memory and mapped file managed classes. + o shared_ptr is movable and supports aliasing. + * Intrusive: + o Added linear<> and cache_last<> options to singly linked lists. + o Added optimize_multikey<> option to unordered container hooks. + o Optimized unordered containers when store_hash option is used + in the hook. + o Implementation changed to avoid explicit use of try-catch + blocks and be compilable with exceptions disabled. + * Math: + o Added new non-central Chi-Square, Beta, F and T distributions. + o Added Exponential Integral and Zeta special functions. + o Added Rounding, Truncation, and Unit-in-the-last-place + functions. + o Added support for compile time powers of a runtime base. + o Added a few SSE2 based optimisations for the Lanczos + approximations. + * MPI: + o Added support for non-blocking operations in Python + o Added support for graph topologies. + * Multi-index Containers: Minor additions and maintenance fixes. + Consult the library release notes for + further information. + * PtrContainer: Support for a few more containers, and addition + of insert iterators. For details see upgrading + details. + * Spirit: Integrated the "Classic" Spirit V1.8.x code base with + Spirit V2, "The New Generation". See Change Log. + * Thread: + o New generic lock and try_lock functions for locking multiple + mutexes at once. + o Rvalue reference support for move semantics where the + compilers supports it. + o A few bugs fixed and missing functions added (including + the serious win32 condition variable bug). + o scoped_try_lock types are now backwards-compatible with + Boost 1.34.0 and previous releases. + o Support for passing function arguments to the thread + function by supplying additional arguments to the thread + constructor. + o Backwards-compatibility overloads added for timed_lock and + timed_wait functions to allow use of xtime for timeouts. + * Wave: + o Wave V2.0 is a new major release introducing some breaking + API changes, preventing it to be used with Boost versions + earlier than V1.36.0. Mainly, the API and hook interface + have been streamlined for more consistency. + o Fixed a couple of bugs, improved regression test system to + include testing of the preporcessing hooks interface + (for details see: Changelog). + * Xpressive: + o Regular expressions that can be written as strings or as + expression templates, and that can refer to each other and + themselves recursively with the power of context-free + grammars. + o skip() for specifying which parts of the input sequence + to ignore when matching it against a regex. + o regex_replace() accepts formatter objects and formatter + expressions in addition to format strings. + o Range-based regex_replace() algorithm. + o Fix crash when semantic actions are placed in look-aheads, + look-behinds or independent sub-expressions. * Mon Jun 23 2008 pth@suse.de - Qualify name to avoid clash (bnc#401964) * Fri Jun 20 2008 schwab@suse.de diff --git a/boost_1_34_1.tar.bz2 b/boost_1_34_1.tar.bz2 deleted file mode 100644 index f84426e..0000000 --- a/boost_1_34_1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f866c75b025a4f1340117a106595cc0675f48ba1e5a9b5c221ec7f19e96ec4c -size 12986931 diff --git a/boost_1_36_0.tar.bz2 b/boost_1_36_0.tar.bz2 new file mode 100644 index 0000000..0947a9d --- /dev/null +++ b/boost_1_36_0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a4a0cfbbd227c20a13519a2c41f2e707dc0d89e518a3c7bfcd381f7b7fbcdef +size 28839275