From 3420df724444633aee5b0cc5dd9f02add05066b9 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Thu, 12 Jan 2023 18:48:17 -0800 Subject: [PATCH] Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 Drop patches: deleted: boost-1.58.0-pool.patch deleted: boost-1.58.0-pool-test_linking.patch deleted: boost-1.78.0-build-optflags.patch deleted: boost-1.73-locale-empty-vector.patch deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted: boost-1.76.0-ptr_cont-xml.patch deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component - boost_build directory is now b2 in upstream, renamte to boost_build on install --- boost-1.58.0-pool-test_linking.patch | 30 - boost-1.58.0-pool.patch | 120 -- boost-1.73-locale-empty-vector.patch | 37 - ....0-enum_type_object-type-python-3.11.patch | 35 - boost-1.76.0-ptr_cont-xml.patch | 1263 ----------------- ...patch => boost-1.81.0-build-optflags.patch | 55 +- boost.spec | 83 +- sources | 2 +- 8 files changed, 72 insertions(+), 1553 deletions(-) delete mode 100644 boost-1.58.0-pool-test_linking.patch delete mode 100644 boost-1.58.0-pool.patch delete mode 100644 boost-1.73-locale-empty-vector.patch delete mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch delete mode 100644 boost-1.76.0-ptr_cont-xml.patch rename boost-1.78.0-build-optflags.patch => boost-1.81.0-build-optflags.patch (51%) diff --git a/boost-1.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch deleted file mode 100644 index b57e6d0..0000000 --- a/boost-1.58.0-pool-test_linking.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000 -+++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000 -@@ -22,18 +22,18 @@ - import testing ; - - test-suite pool : -- [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 ] -- [ run test_pool_alloc.cpp ] -- [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 ] -- [ run test_msvc_mem_leak_detect.cpp ] -- [ run test_bug_3349.cpp ] -- [ run test_bug_4960.cpp ] -+ [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] - [ run test_bug_1252.cpp : : : - clang:-Wno-c++11-long-long - gcc:-Wno-long-long -- pathscale:-Wno-long-long ] -- [ run test_bug_2696.cpp ] -- [ run test_bug_5526.cpp ] -+ pathscale:-Wno-long-long /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] - [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] - [ compile test_poisoned_macros.cpp ] - ; diff --git a/boost-1.58.0-pool.patch b/boost-1.58.0-pool.patch deleted file mode 100644 index ed8449e..0000000 --- a/boost-1.58.0-pool.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: boost/pool/pool.hpp -=================================================================== ---- boost/pool/pool.hpp (revision 78317) -+++ boost/pool/pool.hpp (revision 78326) -@@ -27,4 +27,6 @@ - #include - -+// std::numeric_limits -+#include - // boost::integer::static_lcm - #include -@@ -358,4 +360,11 @@ - } - -+ size_type max_chunks() const -+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. -+ size_type partition_size = alloc_size(); -+ size_type POD_size = integer::static_lcm::value + sizeof(size_type); -+ return (std::numeric_limits::max() - POD_size) / alloc_size(); -+ } -+ - static void * & nextof(void * const ptr) - { //! \returns Pointer dereferenced. -@@ -377,5 +388,7 @@ - //! the first time that object needs to allocate system memory. - //! The default is 32. This parameter may not be 0. -- //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ set_next_size(nnext_size); -+ set_max_size(nmax_size); - } - -@@ -400,7 +413,7 @@ - } - void set_next_size(const size_type nnext_size) -- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -- //! \returns nnext_size. -- next_size = start_size = nnext_size; -+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -+ BOOST_USING_STD_MIN(); -+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks()); - } - size_type get_max_size() const -@@ -410,5 +423,6 @@ - void set_max_size(const size_type nmax_size) - { //! Set max_size. -- max_size = nmax_size; -+ BOOST_USING_STD_MIN(); -+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks()); - } - size_type get_requested_size() const -@@ -713,7 +727,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -753,7 +767,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -797,4 +811,6 @@ - //! \returns Address of chunk n if allocated ok. - //! \returns 0 if not enough memory for n chunks. -+ if (n > max_chunks()) -+ return 0; - - const size_type partition_size = alloc_size(); -@@ -845,7 +861,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // insert it into the list, -Index: libs/pool/test/test_bug_6701.cpp -=================================================================== ---- libs/pool/test/test_bug_6701.cpp (revision 78326) -+++ libs/pool/test/test_bug_6701.cpp (revision 78326) -@@ -0,0 +1,27 @@ -+/* Copyright (C) 2012 Étienne Dupuis -+* -+* Use, modification and distribution is subject to the -+* Boost Software License, Version 1.0. (See accompanying -+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -+*/ -+ -+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701) -+ -+#include -+#include -+ -+int main() -+{ -+ boost::pool<> p(1024, std::numeric_limits::max() / 768); -+ -+ void *x = p.malloc(); -+ BOOST_ASSERT(!x); -+ -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_next_size()); -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_max_size()); -+ -+ void *y = p.ordered_malloc(std::numeric_limits::max() / 768); -+ BOOST_ASSERT(!y); -+ -+ return 0; -+} diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch deleted file mode 100644 index f5cc981..0000000 --- a/boost-1.73-locale-empty-vector.patch +++ /dev/null @@ -1,37 +0,0 @@ -From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?= - -Date: Sat, 14 Nov 2020 10:39:47 +0100 -Subject: [PATCH] Do not try to access element when vector is empty - -Trying to access tmp[0] causes a crash on Fedora when assertion on STL -are enabled. - -/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. - -This patch just passes nullptr as pointer to getSortKey() when tmp size -is 0, preventing dereferencing elements in empty vector. - -I guess that &tmp[0] should be optimized as 'no real access' when -disabling assertion, but actually leads to crash when assert are -enabled. ---- - src/icu/collator.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp -index 7f1ea6a..dc59e8c 100644 ---- a/libs/locale/src/icu/collator.cpp -+++ b/libs/locale/src/icu/collator.cpp -@@ -93,7 +93,7 @@ namespace boost { - std::vector tmp; - tmp.resize(str.length()); - icu::Collator *collate = get_collator(level); -- int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); - if(len > int(tmp.size())) { - tmp.resize(len); - collate->getSortKey(str,&tmp[0],tmp.size()); --- -2.26.2 - diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch deleted file mode 100644 index 5b77498..0000000 --- a/boost-1.76.0-enum_type_object-type-python-3.11.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 -From: Victor Stinner -Date: Mon, 25 Apr 2022 10:51:46 +0200 -Subject: [PATCH] Fix enum_type_object type on Python 3.11 - -The enum_type_object type inherits from PyLong_Type which is not tracked -by the GC. Instances doesn't have to be tracked by the GC: remove the -Py_TPFLAGS_HAVE_GC flag. - -The Python C API documentation says: - - "To create a container type, the tp_flags field of the type object - must include the Py_TPFLAGS_HAVE_GC and provide an implementation of - the tp_traverse handler." - -https://docs.python.org/dev/c-api/gcsupport.html - -The new exception was introduced in Python 3.11 by: -https://github.com/python/cpython/issues/88429 ---- - libs/python/src/object/enum.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp -index 293e705899..5753b32e07 100644 ---- a/libs/python/src/object/enum.cpp -+++ b/libs/python/src/object/enum.cpp -@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { - #if PY_VERSION_HEX < 0x03000000 - | Py_TPFLAGS_CHECKTYPES - #endif -- | Py_TPFLAGS_HAVE_GC - | Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /* tp_doc */ - 0, /* tp_traverse */ diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch deleted file mode 100644 index ed088bf..0000000 --- a/boost-1.76.0-ptr_cont-xml.patch +++ /dev/null @@ -1,1263 +0,0 @@ -From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 5 Aug 2020 11:28:26 +0100 -Subject: [PATCH] Fix invalid XHTML markup in docs - -The reStructuredText files insert
HTML elements, which are not -valid in XHTML. - -The doc/tutorial_example.html file contains unquoted attributes and -unclosed and tags (although since that file is included -into another document, it probably shouldn't have , and - elements at all). ---- - doc/associative_ptr_container.html | 2 +- - doc/associative_ptr_container.rst | 2 +- - doc/examples.html | 2 +- - doc/examples.rst | 4 +- - doc/faq.html | 2 +- - doc/faq.rst | 2 +- - doc/guidelines.html | 4 +- - doc/guidelines.rst | 4 +- - doc/headers.html | 2 +- - doc/headers.rst | 2 +- - doc/indirect_fun.html | 2 +- - doc/indirect_fun.rst | 2 +- - doc/ptr_array.html | 2 +- - doc/ptr_array.rst | 2 +- - doc/ptr_container.html | 2 +- - doc/ptr_container.rst | 2 +- - doc/ptr_deque.html | 2 +- - doc/ptr_deque.rst | 2 +- - doc/ptr_inserter.html | 2 +- - doc/ptr_inserter.rst | 2 +- - doc/ptr_list.html | 2 +- - doc/ptr_list.rst | 2 +- - doc/ptr_map.html | 2 +- - doc/ptr_map.rst | 2 +- - doc/ptr_map_adapter.html | 2 +- - doc/ptr_map_adapter.rst | 2 +- - doc/ptr_multimap_adapter.html | 2 +- - doc/ptr_multimap_adapter.rst | 2 +- - doc/ptr_multiset.html | 2 +- - doc/ptr_multiset.rst | 2 +- - doc/ptr_multiset_adapter.html | 2 +- - doc/ptr_multiset_adapter.rst | 2 +- - doc/ptr_sequence_adapter.html | 2 +- - doc/ptr_sequence_adapter.rst | 2 +- - doc/ptr_set.html | 2 +- - doc/ptr_set.rst | 2 +- - doc/ptr_set_adapter.html | 2 +- - doc/ptr_set_adapter.rst | 2 +- - doc/ptr_vector.html | 2 +- - doc/ptr_vector.rst | 2 +- - doc/reference.html | 4 +- - doc/reference.rst | 4 +- - doc/reversible_ptr_container.html | 2 +- - doc/reversible_ptr_container.rst | 2 +- - doc/tutorial.html | 4 +- - doc/tutorial.rst | 4 +- - doc/tutorial_example.html | 384 ++++++++++++++--------------- - 47 files changed, 245 insertions(+), 245 deletions(-) - -diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html -index ccc4d9fa..9467864f 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.html -+++ b/libs/ptr_container/doc/associative_ptr_container.html -@@ -529,7 +529,7 @@

-+
- - - -diff --git a/doc/associative_ptr_container.rst b/doc/associative_ptr_container.rst -index b9b8d45a..6dcd0833 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.rst -+++ b/libs/ptr_container/doc/associative_ptr_container.rst -@@ -216,7 +216,7 @@ Semantics: algorithms - - .. raw:: html - --
-+
- - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/examples.html b/doc/examples.html -index 5568b323..dbc8ce2b 100644 ---- a/libs/ptr_container/doc/examples.html -+++ b/libs/ptr_container/doc/examples.html -@@ -886,7 +886,7 @@

9. A large example

-
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/examples.rst b/doc/examples.rst -index 213094bf..d82f4b85 100644 ---- a/libs/ptr_container/doc/examples.rst -+++ b/libs/ptr_container/doc/examples.rst -@@ -180,7 +180,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -189,7 +189,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/faq.html b/doc/faq.html -index f318483b..1d701131 100644 ---- a/libs/ptr_container/doc/faq.html -+++ b/libs/ptr_container/doc/faq.html -@@ -373,7 +373,7 @@

    [13] for details.

    --

    -+
    - - - -diff --git a/doc/faq.rst b/doc/faq.rst -index 40c8eb2d..e2ead8d7 100644 ---- a/libs/ptr_container/doc/faq.rst -+++ b/libs/ptr_container/doc/faq.rst -@@ -95,7 +95,7 @@ class with dummy implementations of the virtual functions. See `[13] -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/guidelines.html b/doc/guidelines.html -index 759b6259..25d1f148 100644 ---- a/libs/ptr_container/doc/guidelines.html -+++ b/libs/ptr_container/doc/guidelines.html -@@ -414,12 +414,12 @@

    container< nullable<T> >.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/guidelines.rst b/doc/guidelines.rst -index 1c39c7ba..bf69dac8 100644 ---- a/libs/ptr_container/doc/guidelines.rst -+++ b/libs/ptr_container/doc/guidelines.rst -@@ -144,7 +144,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -153,7 +153,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/headers.html b/doc/headers.html -index 4b040825..aa1609ab 100644 ---- a/libs/ptr_container/doc/headers.html -+++ b/libs/ptr_container/doc/headers.html -@@ -375,7 +375,7 @@

    Library headers

    -
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/headers.rst b/doc/headers.rst -index befcbb55..8c8e8ded 100644 ---- a/libs/ptr_container/doc/headers.rst -+++ b/libs/ptr_container/doc/headers.rst -@@ -75,7 +75,7 @@ Library headers - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/indirect_fun.html b/doc/indirect_fun.html -index a0446472..acc13346 100644 ---- a/libs/ptr_container/doc/indirect_fun.html -+++ b/libs/ptr_container/doc/indirect_fun.html -@@ -401,7 +401,7 @@

    Indirected functions

    - - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/indirect_fun.rst b/doc/indirect_fun.rst -index 5fd13df2..f6583d90 100644 ---- a/libs/ptr_container/doc/indirect_fun.rst -+++ b/libs/ptr_container/doc/indirect_fun.rst -@@ -127,7 +127,7 @@ first operation is expanded inline. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_array.html b/doc/ptr_array.html -index 30da95f7..483fcfa4 100644 ---- a/libs/ptr_container/doc/ptr_array.html -+++ b/libs/ptr_container/doc/ptr_array.html -@@ -660,7 +660,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_array.rst b/doc/ptr_array.rst -index 68c2b47b..a7390236 100644 ---- a/libs/ptr_container/doc/ptr_array.rst -+++ b/libs/ptr_container/doc/ptr_array.rst -@@ -281,7 +281,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_container.html b/doc/ptr_container.html -index 5672bdfd..77a89a35 100644 ---- a/libs/ptr_container/doc/ptr_container.html -+++ b/libs/ptr_container/doc/ptr_container.html -@@ -735,7 +735,7 @@

    References

    - - -
    [13]Kevlin Henney, Null Object, 2002.
    --
    -+
    - - - -diff --git a/doc/ptr_container.rst b/doc/ptr_container.rst -index 0436cce7..257a2fda 100644 ---- a/libs/ptr_container/doc/ptr_container.rst -+++ b/libs/ptr_container/doc/ptr_container.rst -@@ -384,7 +384,7 @@ __ http://www.two-sdg.demon.co.uk/curbralan/papers/europlop/NullObject.pdf - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. - -diff --git a/doc/ptr_deque.html b/doc/ptr_deque.html -index 5216aa0e..bc996969 100644 ---- a/libs/ptr_container/doc/ptr_deque.html -+++ b/libs/ptr_container/doc/ptr_deque.html -@@ -526,7 +526,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_deque.rst b/doc/ptr_deque.rst -index 020ba362..a2a2cc99 100644 ---- a/libs/ptr_container/doc/ptr_deque.rst -+++ b/libs/ptr_container/doc/ptr_deque.rst -@@ -170,7 +170,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_inserter.html b/doc/ptr_inserter.html -index 9fb05a8a..92e4a527 100644 ---- a/libs/ptr_container/doc/ptr_inserter.html -+++ b/libs/ptr_container/doc/ptr_inserter.html -@@ -348,7 +348,7 @@

    Insert Iterators

    - } // namespace 'ptr_container' - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/ptr_inserter.rst b/doc/ptr_inserter.rst -index 574bbdad..ef1c820b 100644 ---- a/libs/ptr_container/doc/ptr_inserter.rst -+++ b/libs/ptr_container/doc/ptr_inserter.rst -@@ -70,7 +70,7 @@ can be transfered as well. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_list.html b/doc/ptr_list.html -index 1a8e6798..c76aeaf9 100644 ---- a/libs/ptr_container/doc/ptr_list.html -+++ b/libs/ptr_container/doc/ptr_list.html -@@ -500,7 +500,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_list.rst b/doc/ptr_list.rst -index 302049d0..2eceb9d7 100644 ---- a/libs/ptr_container/doc/ptr_list.rst -+++ b/libs/ptr_container/doc/ptr_list.rst -@@ -146,7 +146,7 @@ Semantics: list operations - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map.html b/doc/ptr_map.html -index e5fd2c9c..bc75e5cb 100644 ---- a/libs/ptr_container/doc/ptr_map.html -+++ b/libs/ptr_container/doc/ptr_map.html -@@ -342,7 +342,7 @@

    Class --

    -+
    - - - -diff --git a/doc/ptr_map.rst b/doc/ptr_map.rst -index 6b50a2ba..64113937 100644 ---- a/libs/ptr_container/doc/ptr_map.rst -+++ b/libs/ptr_container/doc/ptr_map.rst -@@ -63,7 +63,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map_adapter.html b/doc/ptr_map_adapter.html -index 2ed30539..b451914c 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.html -+++ b/libs/ptr_container/doc/ptr_map_adapter.html -@@ -556,7 +556,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_map_adapter.rst b/doc/ptr_map_adapter.rst -index 517ea7fc..aabf5c4e 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.rst -+++ b/libs/ptr_container/doc/ptr_map_adapter.rst -@@ -194,7 +194,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multimap_adapter.html b/doc/ptr_multimap_adapter.html -index 3780ec8c..49243a16 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.html -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.html -@@ -540,7 +540,7 @@

    Semantics: typedefs

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multimap_adapter.rst b/doc/ptr_multimap_adapter.rst -index 3b9e9961..56d37f5d 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.rst -@@ -189,7 +189,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset.html b/doc/ptr_multiset.html -index a82a7995..50fa9681 100644 ---- a/libs/ptr_container/doc/ptr_multiset.html -+++ b/libs/ptr_container/doc/ptr_multiset.html -@@ -349,7 +349,7 @@

    Class -
      -
    • Using nullable<T> as Key is meaningless and is not allowed
    • -
    --

    -+
    - - - -diff --git a/doc/ptr_multiset.rst b/doc/ptr_multiset.rst -index 120891bd..3af8bef3 100644 ---- a/libs/ptr_container/doc/ptr_multiset.rst -+++ b/libs/ptr_container/doc/ptr_multiset.rst -@@ -70,7 +70,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset_adapter.html b/doc/ptr_multiset_adapter.html -index 6bcfebb1..96e811d1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.html -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multiset_adapter.rst b/doc/ptr_multiset_adapter.rst -index eb9eafe2..8c437fb1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.rst -@@ -134,7 +134,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_sequence_adapter.html b/doc/ptr_sequence_adapter.html -index aa2e7a42..9c4af800 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.html -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.html -@@ -827,7 +827,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_sequence_adapter.rst b/doc/ptr_sequence_adapter.rst -index 5640d029..d98684c1 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.rst -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.rst -@@ -443,7 +443,7 @@ contain any nulls*. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set.html b/doc/ptr_set.html -index 8e66779f..1a5a37b0 100644 ---- a/libs/ptr_container/doc/ptr_set.html -+++ b/libs/ptr_container/doc/ptr_set.html -@@ -350,7 +350,7 @@

    Class -
  • Using nullable<T> as Key is meaningless and is not allowed
  • - --

    -+
    - - - -diff --git a/doc/ptr_set.rst b/doc/ptr_set.rst -index 6679a8b2..5fb83d1e 100644 ---- a/libs/ptr_container/doc/ptr_set.rst -+++ b/libs/ptr_container/doc/ptr_set.rst -@@ -72,7 +72,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set_adapter.html b/doc/ptr_set_adapter.html -index 12820d38..e32501da 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.html -+++ b/libs/ptr_container/doc/ptr_set_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_set_adapter.rst b/doc/ptr_set_adapter.rst -index bb19e148..7b89c184 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.rst -+++ b/libs/ptr_container/doc/ptr_set_adapter.rst -@@ -136,7 +136,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_vector.html b/doc/ptr_vector.html -index def2a569..150c9a71 100644 ---- a/libs/ptr_container/doc/ptr_vector.html -+++ b/libs/ptr_container/doc/ptr_vector.html -@@ -550,7 +550,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_vector.rst b/doc/ptr_vector.rst -index 374166f2..575a5679 100644 ---- a/libs/ptr_container/doc/ptr_vector.rst -+++ b/libs/ptr_container/doc/ptr_vector.rst -@@ -185,7 +185,7 @@ Semantics: C-array support - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reference.html b/doc/reference.html -index 1ae18479..653b4324 100644 ---- a/libs/ptr_container/doc/reference.html -+++ b/libs/ptr_container/doc/reference.html -@@ -797,11 +797,11 @@

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS - is also defined.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/reference.rst b/doc/reference.rst -index 3dffbc68..0b827e0e 100644 ---- a/libs/ptr_container/doc/reference.rst -+++ b/libs/ptr_container/doc/reference.rst -@@ -486,7 +486,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -494,7 +494,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reversible_ptr_container.html b/doc/reversible_ptr_container.html -index ede30c57..e45fcde8 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.html -+++ b/libs/ptr_container/doc/reversible_ptr_container.html -@@ -885,7 +885,7 @@

    Semantics

    - Boost.Serialization -
  • Exception safety: Loading gives the basic guarantee
  • - --
    -+
    - - - -diff --git a/doc/reversible_ptr_container.rst b/doc/reversible_ptr_container.rst -index 360f7d97..4fb24163 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.rst -+++ b/libs/ptr_container/doc/reversible_ptr_container.rst -@@ -506,7 +506,7 @@ All containers can be serialized by means of - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial.html b/doc/tutorial.html -index 7c93b469..05047afd 100644 ---- a/libs/ptr_container/doc/tutorial.html -+++ b/libs/ptr_container/doc/tutorial.html -@@ -773,7 +773,7 @@

    Algorithms

    - BOOST_ASSERT( another_zoo.empty() ); - -

    That is all; now you have learned all the basics!

    --

    See also

    -+

    See also

    - --
    -+
    - - - -diff --git a/doc/tutorial.rst b/doc/tutorial.rst -index a7c12e20..8b84364a 100644 ---- a/libs/ptr_container/doc/tutorial.rst -+++ b/libs/ptr_container/doc/tutorial.rst -@@ -440,7 +440,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - **See also** - -@@ -455,7 +455,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial_example.html b/doc/tutorial_example.html -index 202a17bb..9ebf4a1c 100644 ---- a/libs/ptr_container/doc/tutorial_example.html -+++ b/libs/ptr_container/doc/tutorial_example.html -@@ -1,12 +1,12 @@ - - -- -+ - -- -+ - - - --
    //
    -+    
    //
    - // Boost.Pointer Container
    - //
    - //  Copyright Thorsten Ottosen 2003-2005. Use, modification and
    -@@ -30,149 +30,149 @@
    - //
    - // First we select which container to use.
    - //
    --#include <boost/ptr_container/ptr_deque.hpp>
    -+#include <boost/ptr_container/ptr_deque.hpp>
    - 
    --//
    -+//
    - // we need these later in the example
    - //
    --#include <boost/assert.hpp>
    --#include <string>
    --#include <exception>
    -+#include <boost/assert.hpp>
    -+#include <string>
    -+#include <exception>
    - 
    - 
    --//
    -+//
    - // Then we define a small polymorphic class
    - // hierarchy.
    - // 
    - 
    --class animal : boost::noncopyable
    --{
    --    virtual std::string do_speak() const = 0;
    --    std::string name_;
    -+class animal : boost::noncopyable
    -+{
    -+    virtual std::string do_speak() const = 0;
    -+    std::string name_;
    - 
    --protected:
    --    //
    -+protected:
    -+    //
    -     // Animals cannot be copied...
    -     //
    --    animal( const animal& r ) : name_( r.name_ )           { }
    --    void operator=( const animal& );
    -+    animal( const animal& r ) : name_( r.name_ )           { }
    -+    void operator=( const animal& );
    - 
    --private:
    --    //
    -+private:
    -+    //
    -     // ...but due to advances in genetics, we can clone them!
    -     //
    - 
    --    virtual animal* do_clone() const = 0;
    -+    virtual animal* do_clone() const = 0;
    -         
    --public:
    --    animal( const std::string& name ) : name_(name)        { }
    --    virtual ~animal() throw()                              { }
    -+public:
    -+    animal( const std::string& name ) : name_(name)        { }
    -+    virtual ~animal() throw()                              { }
    -     
    --    std::string speak() const
    --    {
    --        return do_speak();
    --    }
    --
    --    std::string name() const
    --    {
    --        return name_;
    --    }
    --
    --    animal* clone() const
    --    {
    --        return do_clone();
    --    }
    --};
    --
    --//
    -+    std::string speak() const
    -+    {
    -+        return do_speak();
    -+    }
    -+
    -+    std::string name() const
    -+    {
    -+        return name_;
    -+    }
    -+
    -+    animal* clone() const
    -+    {
    -+        return do_clone();
    -+    }
    -+};
    -+
    -+//
    - // An animal is still not Clonable. We need this last hook.
    - //
    - // Notice that we pass the animal by const reference
    - // and return by pointer.
    - //
    - 
    --animal* new_clone( const animal& a )
    --{
    --    return a.clone();
    --}
    -+animal* new_clone( const animal& a )
    -+{
    -+    return a.clone();
    -+}
    - 
    --//
    -+//
    - // We do not need to define 'delete_clone()' since
    - // since the default is to call the default 'operator delete()'.
    - //
    - 
    --const std::string muuuh = "Muuuh!";
    --const std::string oiink = "Oiiink";
    --
    --class cow : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return muuuh;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new cow( *this );
    --    }
    --
    --public:
    --    cow( const std::string& name ) : animal(name)          { }
    --};
    --
    --class pig : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return oiink;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new pig( *this );
    --    }
    -+const std::string muuuh = "Muuuh!";
    -+const std::string oiink = "Oiiink";
    -+
    -+class cow : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return muuuh;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new cow( *this );
    -+    }
    -+
    -+public:
    -+    cow( const std::string& name ) : animal(name)          { }
    -+};
    -+
    -+class pig : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return oiink;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new pig( *this );
    -+    }
    -     
    --public:
    --    pig( const std::string& name ) : animal(name)          { }
    --};
    -+public:
    -+    pig( const std::string& name ) : animal(name)          { }
    -+};
    - 
    --//
    -+//
    - // Then we, of course, need a place to put all
    - // those animals.
    - //
    - 
    --class farm
    --{
    --    //
    -+class farm
    -+{
    -+    //
    -     // This is where the smart containers are handy
    -     //
    --    typedef boost::ptr_deque<animal> barn_type;
    --    barn_type                        barn;
    -+    typedef boost::ptr_deque<animal> barn_type;
    -+    barn_type                        barn;
    - 
    --    //
    -+    //
    -     // A convenience typedef for the compiler-appropriate
    -     // smart pointer used to manage barns
    -     //    
    --    typedef compatible-smart-ptr<barn_type> raii_ptr;
    -+    typedef compatible-smart-ptr<barn_type> raii_ptr;
    - 
    --    //
    -+    //
    -     // An error type
    -     //
    --    struct farm_trouble : public std::exception           { };
    -+    struct farm_trouble : public std::exception           { };
    - 
    --public:
    --    // 
    -+public:
    -+    // 
    -     // We would like to make it possible to
    -     // iterate over the animals in the farm
    -     //
    --    typedef barn_type::iterator  animal_iterator;
    -+    typedef barn_type::iterator  animal_iterator;
    - 
    --    //
    -+    //
    -     // We also need to count the farm's size...
    -     //
    --    typedef barn_type::size_type size_type;
    -+    typedef barn_type::size_type size_type;
    -     
    --    //
    -+    //
    -     // And we also want to transfer an animal
    -     // safely around. The easiest way to think
    -     // about '::auto_type' is to imagine a simplified
    -@@ -184,100 +184,100 @@
    -     //
    -     // but not more.
    -     //
    --    typedef barn_type::auto_type  animal_transport;
    -+    typedef barn_type::auto_type  animal_transport;
    - 
    --    // 
    -+    // 
    -     // Create an empty farm.
    -     //
    --    farm()                                                 { }
    -+    farm()                                                 { }
    -     
    --    //
    -+    //
    -     // We need a constructor that can make a new
    -     // farm by cloning a range of animals.
    -     //
    --    farm( animal_iterator begin, animal_iterator end )
    --     : 
    --        //
    -+    farm( animal_iterator begin, animal_iterator end )
    -+     : 
    -+        //
    -         // Objects are always cloned before insertion
    -         // unless we explicitly add a pointer or 
    -         // use 'release()'. Therefore we actually
    -         // clone all animals in the range
    -         //
    --        barn( begin, end )                               { }
    -+        barn( begin, end )                               { }
    -     
    --    //
    -+    //
    -     // ... so we need some other function too
    -     //
    - 
    --    animal_iterator begin()
    --    {
    --        return barn.begin();
    --    }
    -+    animal_iterator begin()
    -+    {
    -+        return barn.begin();
    -+    }
    - 
    --    animal_iterator end()
    --    {
    --        return barn.end();
    --    }
    -+    animal_iterator end()
    -+    {
    -+        return barn.end();
    -+    }
    -     
    --    //
    -+    //
    -     // Here it is quite ok to have an 'animal*' argument.
    -     // The smart container will handle all ownership
    -     // issues.
    -     //
    --    void buy_animal( animal* a )
    --    {
    --        barn.push_back( a );
    --    }
    -+    void buy_animal( animal* a )
    -+    {
    -+        barn.push_back( a );
    -+    }
    - 
    --    //
    -+    //
    -     // The farm can also be in economical trouble and
    -     // therefore be in the need to sell animals.
    -     //
    --    animal_transport sell_animal( animal_iterator to_sell )
    --    {
    --        if( to_sell == end() )
    --            throw farm_trouble();
    -+    animal_transport sell_animal( animal_iterator to_sell )
    -+    {
    -+        if( to_sell == end() )
    -+            throw farm_trouble();
    - 
    --        //
    -+        //
    -         // Here we remove the animal from the barn,
    -         // but the animal is not deleted yet...it's
    -         // up to the buyer to decide what
    -         // to do with it.
    -         //
    --        return barn.release( to_sell );
    --    }
    -+        return barn.release( to_sell );
    -+    }
    - 
    --    //
    -+    //
    -     // How big a farm do we have?
    -     //
    --    size_type size() const
    --    {
    --        return barn.size();
    --    }
    -+    size_type size() const
    -+    {
    -+        return barn.size();
    -+    }
    - 
    --    //
    -+    //
    -     // If things are bad, we might choose to sell all animals :-(
    -       //
    - 
    --    raii_ptr sell_farm()
    --    {
    --        return barn.release();
    --    }
    -+    raii_ptr sell_farm()
    -+    {
    -+        return barn.release();
    -+    }
    - 
    --    //
    -+    //
    -     // However, if things are good, we might buy somebody
    -     // else's farm :-)
    -     //
    - 
    --    void buy_farm( raii_ptr other )
    --    {
    --        //
    -+    void buy_farm( raii_ptr other )
    -+    {
    -+        //
    -         // This line inserts all the animals from 'other'
    -         // and is guaranteed either to succeed or to have no
    -         // effect
    -         //
    --        barn.transfer( barn.end(), // insert new animals at the end
    --                         *other );     // we want to transfer all animals,
    -+        barn.transfer( barn.end(), // insert new animals at the end
    -+                         *other );     // we want to transfer all animals,
    -                                        // so we use the whole container as argument
    -         //
    -         // You might think you would have to do
    -@@ -286,86 +286,86 @@
    -         //
    -         // but '*other' is empty and can go out of scope as it wants
    -         //
    --        BOOST_ASSERT( other->empty() );
    --    }
    -+        BOOST_ASSERT( other->empty() );
    -+    }
    -     
    --}; // class 'farm'.
    -+}; // class 'farm'.
    - 
    --int main()
    --{
    --    //
    -+int main()
    -+{
    -+    //
    -     // First we make a farm
    -     //
    --    farm animal_farm;
    --    BOOST_ASSERT( animal_farm.size() == 0u );
    -+    farm animal_farm;
    -+    BOOST_ASSERT( animal_farm.size() == 0u );
    -     
    --    animal_farm.buy_animal( new pig("Betty") );
    --    animal_farm.buy_animal( new pig("Benny") );
    --    animal_farm.buy_animal( new pig("Jeltzin") );
    --    animal_farm.buy_animal( new cow("Hanz") );
    --    animal_farm.buy_animal( new cow("Mary") );
    --    animal_farm.buy_animal( new cow("Frederik") );
    --    BOOST_ASSERT( animal_farm.size() == 6u );
    --
    --    //
    -+    animal_farm.buy_animal( new pig("Betty") );
    -+    animal_farm.buy_animal( new pig("Benny") );
    -+    animal_farm.buy_animal( new pig("Jeltzin") );
    -+    animal_farm.buy_animal( new cow("Hanz") );
    -+    animal_farm.buy_animal( new cow("Mary") );
    -+    animal_farm.buy_animal( new cow("Frederik") );
    -+    BOOST_ASSERT( animal_farm.size() == 6u );
    -+
    -+    //
    -     // Then we make another farm...it will actually contain
    -     // a clone of the other farm.
    -     //
    --    farm new_farm( animal_farm.begin(), animal_farm.end() );
    --    BOOST_ASSERT( new_farm.size() == 6u );
    -+    farm new_farm( animal_farm.begin(), animal_farm.end() );
    -+    BOOST_ASSERT( new_farm.size() == 6u );
    - 
    --    //
    -+    //
    -     // Is it really clones in the new farm?
    -     //
    --    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -+    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -     
    --    //
    -+    //
    -     // Then we search for an animal, Mary (the Crown Princess of Denmark),
    -     // because we would like to buy her ...
    -     //
    --    typedef farm::animal_iterator iterator;
    --    iterator to_sell;
    --    for( iterator i   = animal_farm.begin(),
    --                  end = animal_farm.end();
    --         i != end; ++i )
    --    {
    --        if( i->name() == "Mary" )
    --        {
    --            to_sell = i;
    --            break;
    --        }
    --    }
    --
    --    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    --
    --
    --    if( mary->speak() == muuuh )
    --        //
    -+    typedef farm::animal_iterator iterator;
    -+    iterator to_sell;
    -+    for( iterator i   = animal_farm.begin(),
    -+                  end = animal_farm.end();
    -+         i != end; ++i )
    -+    {
    -+        if( i->name() == "Mary" )
    -+        {
    -+            to_sell = i;
    -+            break;
    -+        }
    -+    }
    -+
    -+    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    -+
    -+
    -+    if( mary->speak() == muuuh )
    -+        //
    -         // Great, Mary is a cow, and she may live longer
    -         //
    --        new_farm.buy_animal( mary.release() );
    --    else
    --        //
    -+        new_farm.buy_animal( mary.release() );
    -+    else
    -+        //
    -         // Then the animal would be destroyed (!)
    -         // when we go out of scope.
    -         //
    --        ;
    -+        ;
    - 
    --    //
    -+    //
    -     // Now we can observe some changes to the two farms...
    -     //
    --    BOOST_ASSERT( animal_farm.size() == 5u );
    --    BOOST_ASSERT( new_farm.size()    == 7u );
    -+    BOOST_ASSERT( animal_farm.size() == 5u );
    -+    BOOST_ASSERT( new_farm.size()    == 7u );
    - 
    --    //
    -+    //
    -     // The new farm has however underestimated how much
    -     // it cost to feed Mary and its owner is forced to sell the farm...
    -     //
    --    animal_farm.buy_farm( new_farm.sell_farm() );
    -+    animal_farm.buy_farm( new_farm.sell_farm() );
    - 
    --    BOOST_ASSERT( new_farm.size()    == 0u );
    --    BOOST_ASSERT( animal_farm.size() == 12u );     
    --}
    -+    BOOST_ASSERT( new_farm.size()    == 0u );
    -+    BOOST_ASSERT( animal_farm.size() == 12u );     
    -+}
    - 
    - - diff --git a/boost-1.78.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch similarity index 51% rename from boost-1.78.0-build-optflags.patch rename to boost-1.81.0-build-optflags.patch index 47578a6..cda74d4 100644 --- a/boost-1.78.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,17 +1,17 @@ -From 739edb2889cb63c281a3597e712988a40bc82829 Mon Sep 17 00:00:00 2001 +From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers -Date: Mon, 28 Feb 2022 20:55:14 -0800 -Subject: [PATCH 1/3] Adjust options for Fedora package build +Date: Thu, 12 Jan 2023 11:54:59 -0800 +Subject: [PATCH] Adjust options for Fedora package build --- - src/tools/gcc.jam | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) + src/tools/gcc.jam | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 47a11322..543cfd84 100644 +diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam +index 14be886f5..9dd0ba0a6 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -510,7 +510,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { @@ -20,21 +20,24 @@ index 47a11322..543cfd84 100644 } actions compile.c bind PCH_FILE -@@ -521,6 +521,7 @@ actions compile.c bind PCH_FILE +@@ -521,7 +521,7 @@ actions compile.c bind PCH_FILE + actions compile.c++.preprocess bind PCH_FILE { - "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -623,20 +624,20 @@ actions compile.c.pch +@@ -624,22 +624,22 @@ actions compile.c.pch ### # Declare flags and action for compilation. -toolset.flags gcc.compile OPTIONS off : -O0 ; -toolset.flags gcc.compile OPTIONS speed : -O3 ; -toolset.flags gcc.compile OPTIONS space : -Os ; +-toolset.flags gcc.compile OPTIONS minimal : -O1 ; +-toolset.flags gcc.compile OPTIONS debug : -Og ; - -toolset.flags gcc.compile OPTIONS off : -fno-inline ; -toolset.flags gcc.compile OPTIONS on : -Wno-inline ; @@ -46,23 +49,25 @@ index 47a11322..543cfd84 100644 -toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; -toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -toolset.flags gcc.compile OPTIONS on : -Werror ; -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS minimal : ; ++toolset.flags gcc.compile OPTIONS debug : ; + -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS full : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; + -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS all : ; -+toolset.flags gcc.compile OPTIONS extra : ; -+toolset.flags gcc.compile OPTIONS pedantic : ; -+toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS all : ; ++toolset.flags gcc.compile OPTIONS extra : ; ++toolset.flags gcc.compile OPTIONS pedantic : ; ++toolset.flags gcc.compile OPTIONS on : ; toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.35.1 +2.39.0 diff --git a/boost.spec b/boost.spec index 151e133..6efe8a6 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.78.0 -Release: 11%{?dist} +Version: 1.81.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 +# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -127,16 +127,8 @@ BuildRequires: libquadmath-devel BuildRequires: bison BuildRequires: libzstd-devel -# https://bugzilla.redhat.com/show_bug.cgi?id=828856 -# https://bugzilla.redhat.com/show_bug.cgi?id=828857 -# https://svn.boost.org/trac/boost/ticket/6701 -Patch15: boost-1.58.0-pool.patch - -# https://svn.boost.org/trac/boost/ticket/9038 -Patch51: boost-1.58.0-pool-test_linking.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch105: boost-1.78.0-build-optflags.patch +Patch111: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch106: boost-1.78.0-no-rpath.patch @@ -144,34 +136,16 @@ Patch106: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1899888 -# https://github.com/boostorg/locale/issues/52 -Patch94: boost-1.73-locale-empty-vector.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch107: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch -# PR https://github.com/boostorg/multiprecision/pull/421 -# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 -Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch - # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 -Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch - -# https://github.com/boostorg/ptr_container/pull/27 -Patch108: boost-1.76.0-ptr_cont-xml.patch - -# Fixes missing libboost_fiber.so -# https://github.com/boostorg/boost/issues/632 -Patch109: boost-1.78.0-fix-b2-staging.patch - -# https://github.com/boostorg/python/pull/385 -Patch110: boost-1.76.0-enum_type_object-type-python-3.11.patch +Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch %bcond_with tests %bcond_with docs_generated @@ -451,6 +425,14 @@ Requires: %{name}-system%{?_isa} = %{version}-%{release} The Boost.TypeErasure library provides runtime polymorphism in C++ that is more flexible than that provided by the core language. +%package url +Summary: Runtime component of boost URL library + +%description url + +Run-time support for the Boost.URL library, a Standards conforming +library for parsing Uniform Resource Locators. + %package wave Summary: Run-time component of boost C99/C++ preprocessing library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} @@ -675,19 +657,12 @@ a number of significant features and is now developed independently. %setup -q -n %{toplev_dirname} find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x -%patch15 -p0 -%patch51 -p1 -%patch105 -p1 +%patch111 -p1 %patch106 -p1 %patch107 -p1 %patch88 -p1 -%patch94 -p1 %patch102 -p1 -%patch103 -p2 %patch104 -p2 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 %build %set_build_flags @@ -896,6 +871,11 @@ install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install + + # Somewhere along the line the boost-build install directory became b2 + # which seems not so great for our purposes, fix that up + mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build + # Fix some permissions chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python @@ -1138,6 +1118,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_type_erasure.so.%{sonamever} +%files url +%license LICENSE_1_0.txt +%{_libdir}/libboost_url.so.%{sonamever} + %files wave %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{sonamever} @@ -1202,6 +1186,7 @@ fi %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so %{_libdir}/libboost_type_erasure.so +%{_libdir}/libboost_url.so %{_libdir}/libboost_wave.so %files static @@ -1269,7 +1254,6 @@ fi %files mpich-python3-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so - %endif %files graph-mpich @@ -1293,6 +1277,21 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Feb 20 2023 Thomas Rodgers - 1.81.0-0 +- Rebase to 1.81.0 + See https://fedoraproject.org/wiki/Changes/F38Boost181 +- Drop patches: + deleted: boost-1.58.0-pool.patch + deleted: boost-1.58.0-pool-test_linking.patch + deleted: boost-1.78.0-build-optflags.patch + deleted: boost-1.73-locale-empty-vector.patch + deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + deleted: boost-1.76.0-ptr_cont-xml.patch + deleted: boost-1.78.0-fix-b2-staging.patch + deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch +- New Boost.URL runtime component +- boost_build directory is now b2 in upstream, renamte to boost_build on install + * Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild @@ -1330,7 +1329,7 @@ fi - Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 - Drop patches: - deleted: boost-1.75.0-build-optflags.patch + deleted: boost-1.75.0-build-optflags.patch deleted: boost-1.75.0-no-rpath.patch deleted: boost-1.76.0-b2-build-flags.patch deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch @@ -2376,7 +2375,7 @@ fi - Drop obsolete Obsoletes: boost-python and boost-doc <= 1.30.2 * Tue Jan 12 2010 Benjamin Kosnik - 1.41.0-1 -- Don't package generated debug libs, even with +- Don't package generated debug libs, even with (-DCMAKE_BUILD_TYPE=RelWithDebInfo | Release). - Update and include boost-cmake-soname.patch. - Uncomment ctest. diff --git a/sources b/sources index 84ff6c3..821b86a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_78_0.tar.bz2) = 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf +SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36