From 6bcaff530480dd1ffdd9c4ce32419a57f088a444 Mon Sep 17 00:00:00 2001
From: Alexander Stefanov
Date: Wed, 29 Apr 2020 22:23:03 +0000
Subject: [PATCH] 1.73
---
.abf.yml | 2 +-
10.patch | 485 ++++++++++++++++++
12.patch | 156 ++++++
14.patch | 200 ++++++++
15.patch | 117 +++++
18.patch | 29 ++
...df632c4a6be88f3e84f037bd65399bfcd1b4.patch | 70 ---
...2ff72114ef47c7afaf92e1042aca3dfa41b0.patch | 48 --
...addcc5d0fbb7ea9ed62e902095bc781baa2e.patch | 40 --
boost-1.50.0-long-double-1.patch | 9 +-
boost-1.63.0-dual-python-build.patch | 46 ++
boost-unrecognized-option.patch | 15 +
boost.spec | 34 +-
13 files changed, 1072 insertions(+), 179 deletions(-)
create mode 100644 10.patch
create mode 100644 12.patch
create mode 100644 14.patch
create mode 100644 15.patch
create mode 100644 18.patch
delete mode 100644 1ca8df632c4a6be88f3e84f037bd65399bfcd1b4.patch
delete mode 100644 6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch
delete mode 100644 aab7addcc5d0fbb7ea9ed62e902095bc781baa2e.patch
create mode 100644 boost-1.63.0-dual-python-build.patch
create mode 100644 boost-unrecognized-option.patch
diff --git a/.abf.yml b/.abf.yml
index 4503d46..d27ef18 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- boost_1_72_0.tar.bz2: 88866e4075e12255e7a7189d0b8a686e0b1ee9c1
+ boost_1_73_0.tar.bz2: 6d6ed02b29c860fd21b274fc4e1f820855e765e9
diff --git a/10.patch b/10.patch
new file mode 100644
index 0000000..ad1a3ed
--- /dev/null
+++ b/10.patch
@@ -0,0 +1,485 @@
+diff -up boost_1_73_0/boost/bimap/container_adaptor/support/iterator_facade_converters.hpp.12~ boost_1_73_0/boost/bimap/container_adaptor/support/iterator_facade_converters.hpp
+--- boost_1_73_0/boost/bimap/container_adaptor/support/iterator_facade_converters.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/container_adaptor/support/iterator_facade_converters.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -28,7 +28,7 @@ namespace support {
+
+ /// \brief Converter for Boost.Iterators based iterators.
+ /**
+-Container adaptor is dessigned to play well with Boost.Iterators. This
++Container adaptor is designed to play well with Boost.Iterators. This
+ converter can be used if this library is used to adapt the iterators.
+ **/
+ template
+diff -up boost_1_73_0/boost/bimap/detail/bimap_core.hpp.12~ boost_1_73_0/boost/bimap/detail/bimap_core.hpp
+--- boost_1_73_0/boost/bimap/detail/bimap_core.hpp.12~ 2020-04-29 14:31:09.748214394 +0200
++++ boost_1_73_0/boost/bimap/detail/bimap_core.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -266,7 +266,7 @@ class bimap_core
+
+ // If it is based either on the left or on the right, then only the side
+ // indices are needed. But the set type of the relation can be completely
+- // diferent from the one used for the sides in wich case we have to add yet
++ // different from the one used for the sides in which case we have to add yet
+ // another index to the core.
+
+ // TODO
+@@ -309,7 +309,7 @@ class bimap_core
+ relation_set_type_of;
+
+ // Logic tags
+- // This is a necesary extra level of indirection to allow unconstrained
++ // This is a necessary extra level of indirection to allow unconstrained
+ // sets to be plug in the design. The bimap constructors use this logic
+ // tags.
+
+@@ -452,7 +452,7 @@ class bimap_core
+ typedef bimap_core bimap_core_;
+ };
+
+-// Two auxiliar metafunctions to compute the map view types
++// Two auxiliary metafunctions to compute the map view types
+ // The map view type can not be computed inside the bimap core because a
+ // they need the bimap core to be parsed first.
+
+diff -up boost_1_73_0/boost/bimap/detail/concept_tags.hpp.12~ boost_1_73_0/boost/bimap/detail/concept_tags.hpp
+--- boost_1_73_0/boost/bimap/detail/concept_tags.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/detail/concept_tags.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -34,7 +34,7 @@ metafunctions. For example now is easy t
+
+ struct set_type_of_tag {};
+
+-/// \brief Tag of {SetType}_of_relation defition classes
++/// \brief Tag of {SetType}_of_relation definition classes
+
+ struct set_type_of_relation_tag {};
+
+@@ -68,7 +68,7 @@ See also left_based.
+ struct left_based : ::boost::bimaps::detail::side_based_tag
+ {
+ // I run into troubles if I do not define bind for side based tags.
+- // Maybe a more coherent way of binding the relation can be developped.
++ // Maybe a more coherent way of binding the relation can be developed.
+ template< class Relation > struct bind_to { typedef void type; };
+
+ typedef mpl::bool_ left_mutable_key;
+@@ -78,7 +78,7 @@ struct left_based : ::boost::bimaps::det
+ struct right_based : ::boost::bimaps::detail::side_based_tag
+ {
+ // I run into troubles if I do not define bind for side based tags.
+- // Maybe a more coherent way of binding the relation can be developped.
++ // Maybe a more coherent way of binding the relation can be developed.
+ template< class Relation > struct bind_to { typedef void type; };
+
+ typedef mpl::bool_ left_mutable_key;
+diff -up boost_1_73_0/boost/bimap/relation/member_at.hpp.12~ boost_1_73_0/boost/bimap/relation/member_at.hpp
+--- boost_1_73_0/boost/bimap/relation/member_at.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/member_at.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -25,7 +25,7 @@ namespace relation {
+ /// \brief member_at::side idiom to access relation values and types using metaprogramming.
+ /**
+
+-This tags are used to specify which member you want to acces when using a metafunction over
++This tags are used to specify which member you want to access when using a metafunction over
+ a symmetrical type. The idea is to be able to write code like:
+
+ \code
+@@ -44,7 +44,7 @@ namespace member_at {
+
+ /// \brief Member at left tag
+ /**
+- See also member_at, rigth.
++ See also member_at, right.
+ **/
+
+ struct left {};
+diff -up boost_1_73_0/boost/bimap/relation/structured_pair.hpp.12~ boost_1_73_0/boost/bimap/relation/structured_pair.hpp
+--- boost_1_73_0/boost/bimap/relation/structured_pair.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/structured_pair.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -254,7 +254,7 @@ class mutant_relation;
+ /// \brief A std::pair signature compatible class that allows you to control
+ /// the internal structure of the data.
+ /**
+-This class allows you to specify the order in wich the two data types will be
++This class allows you to specify the order in which the two data types will be
+ in the layout of the class.
+ **/
+
+diff -up boost_1_73_0/boost/bimap/relation/support/get.hpp.12~ boost_1_73_0/boost/bimap/relation/support/get.hpp
+--- boost_1_73_0/boost/bimap/relation/support/get.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/support/get.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -60,13 +60,13 @@ namespace relation {
+ namespace support {
+
+ // Since it is very error-prone to directly write the hole bunch
+-// of relation accesor. They are buil from litle macro blocks that
++// of relation accesor. They are built from little macro blocks that
+ // are both more readable, leading to self docummenting code and a
+-// lot more easier to understand and mantain.
++// lot more easier to understand and maintain.
+ // It is very important to note that the three building blocks have
+ // to laid in the same namespace in order to work. There is also
+ // important to keep them in order.
+-// The forward declaration are not necesary but they help a lot to
++// The forward declaration are not necessary but they help a lot to
+ // the reader, as they undercover what is the signature of the
+ // result code.
+ // In the end, it is not quicker to do it in this way because you
+diff -up boost_1_73_0/boost/bimap/relation/support/is_tag_of_member_at.hpp.12~ boost_1_73_0/boost/bimap/relation/support/is_tag_of_member_at.hpp
+--- boost_1_73_0/boost/bimap/relation/support/is_tag_of_member_at.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/support/is_tag_of_member_at.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -27,7 +27,7 @@
+
+ /** \struct boost::bimaps::relation::support::is_tag_of_member_at_left
+
+-\brief Metafunction to test if a user tag is refering to the left member.
++\brief Metafunction to test if a user tag is referring to the left member.
+
+ \code
+
+@@ -53,7 +53,7 @@ See also member_with_tag, member_at, is_
+
+ /** \struct boost::bimaps::relation::support::is_tag_of_member_at_right
+
+-\brief Metafunction to test if a user tag is refering to the left member.
++\brief Metafunction to test if a user tag is referring to the left member.
+
+ \code
+
+diff -up boost_1_73_0/boost/bimap/relation/support/pair_by.hpp.12~ boost_1_73_0/boost/bimap/relation/support/pair_by.hpp
+--- boost_1_73_0/boost/bimap/relation/support/pair_by.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/support/pair_by.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -54,13 +54,13 @@ namespace support {
+
+
+ // Since it is very error-prone to directly write the hole bunch
+-// of relation accesor. They are buil from litle macro blocks that
++// of relation accesor. They are built from little macro blocks that
+ // are both more readable, leading to self docummenting code and a
+-// lot more easier to understand and mantain.
++// lot more easier to understand and maintain.
+ // It is very important to note that the three building blocks have
+ // to laid in the same namespace in order to work. There is also
+ // important to keep them in order.
+-// The forward declaration are not necesary but they help a lot to
++// The forward declaration are not necessary but they help a lot to
+ // the reader, as they undercover what is the signature of the
+ // result code.
+ // In the end, it is not quicker to do it in this way because you
+diff -up boost_1_73_0/boost/bimap/relation/symmetrical_base.hpp.12~ boost_1_73_0/boost/bimap/relation/symmetrical_base.hpp
+--- boost_1_73_0/boost/bimap/relation/symmetrical_base.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/relation/symmetrical_base.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -32,7 +32,7 @@ namespace boost {
+ namespace bimaps {
+ namespace relation {
+
+-/// \brief Base of symetrical tagged types.
++/// \brief Base of symmetrical tagged types.
+ /**
+
+ **/
+diff -up boost_1_73_0/boost/bimap/support/map_by.hpp.12~ boost_1_73_0/boost/bimap/support/map_by.hpp
+--- boost_1_73_0/boost/bimap/support/map_by.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/support/map_by.hpp 2020-04-29 14:31:09.750214421 +0200
+@@ -68,13 +68,13 @@ namespace bimaps {
+ namespace support {
+
+ // Since it is very error-prone to directly write the hole bunch
+-// of relation accesor. They are buil from litle macro blocks that
++// of relation accesor. They are built from little macro blocks that
+ // are both more readable, leading to self docummenting code and a
+-// lot more easier to understand and mantain.
++// lot more easier to understand and maintain.
+ // It is very important to note that the three building blocks have
+ // to laid in the same namespace in order to work. There is also
+ // important to keep them in order.
+-// The forward declaration are not necesary but they help a lot to
++// The forward declaration are not necessary but they help a lot to
+ // the reader, as they undercover what is the signature of the
+ // result code.
+ // In the end, it is not quicker to do it in this way because you
+diff -up boost_1_73_0/boost/bimap/tags/support/apply_to_value_type.hpp.12~ boost_1_73_0/boost/bimap/tags/support/apply_to_value_type.hpp
+--- boost_1_73_0/boost/bimap/tags/support/apply_to_value_type.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/tags/support/apply_to_value_type.hpp 2020-04-29 14:31:09.751214434 +0200
+@@ -38,7 +38,7 @@ struct apply_to_value_type
+ \endcode
+
+ This higher order metafunctions is very useful, and it can be used with lambda
+-expresions.
++expressions.
+
+ See also tagged.
+ **/
+diff -up boost_1_73_0/boost/bimap/tags/support/tag_of.hpp.12~ boost_1_73_0/boost/bimap/tags/support/tag_of.hpp
+--- boost_1_73_0/boost/bimap/tags/support/tag_of.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/tags/support/tag_of.hpp 2020-04-29 14:31:09.751214434 +0200
+@@ -7,7 +7,7 @@
+ // http://www.boost.org/LICENSE_1_0.txt)
+
+ /// \file tags/support/tag_of.hpp
+-/// \brief Safe way to acces the tag of a type
++/// \brief Safe way to access the tag of a type
+
+ #ifndef BOOST_BIMAP_TAGS_SUPPORT_TAG_OF_HPP
+ #define BOOST_BIMAP_TAGS_SUPPORT_TAG_OF_HPP
+diff -up boost_1_73_0/boost/bimap/tags/support/value_type_of.hpp.12~ boost_1_73_0/boost/bimap/tags/support/value_type_of.hpp
+--- boost_1_73_0/boost/bimap/tags/support/value_type_of.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/tags/support/value_type_of.hpp 2020-04-29 14:31:09.751214434 +0200
+@@ -32,7 +32,7 @@ struct value_type_of
+ \endcode
+
+ If the type is tagged this metafunction returns Type::value_type, and if it is not
+-tagged it return the same type. This allows to work consistenly with tagged and
++tagged it return the same type. This allows to work consistently with tagged and
+ untagged types.
+
+ See also tagged, tag_of.
+diff -up boost_1_73_0/boost/bimap/tags/tagged.hpp.12~ boost_1_73_0/boost/bimap/tags/tagged.hpp
+--- boost_1_73_0/boost/bimap/tags/tagged.hpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/boost/bimap/tags/tagged.hpp 2020-04-29 14:31:09.751214434 +0200
+@@ -92,7 +92,7 @@ struct tagged
+ \brief Metafunctions to work with tagged types.
+
+ This metafunctions aims to make easier the manage of tagged types. They are all mpl
+-compatible metafunctions and can be used with lambda expresions.
++compatible metafunctions and can be used with lambda expressions.
+ The metafunction value_type_of and tag_of get the data in a tagged type in a secure
+ and consistent way.
+ default_tagged and overwrite_tagged allows to work with the tag of a tagged type,
+diff -up boost_1_73_0/libs/bimap/doc/bimap_and_boost.qbk.12~ boost_1_73_0/libs/bimap/doc/bimap_and_boost.qbk
+--- boost_1_73_0/libs/bimap/doc/bimap_and_boost.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/bimap_and_boost.qbk 2020-04-29 14:31:09.749214408 +0200
+@@ -328,7 +328,7 @@ The following code snippet
+
+ [code_bimap_and_boost_typeof_not_using_auto]
+
+-can be rewrited as
++can be rewritten as
+
+ [code_bimap_and_boost_typeof_using_auto]
+
+diff -up boost_1_73_0/libs/bimap/doc/compiler_specifics.qbk.12~ boost_1_73_0/libs/bimap/doc/compiler_specifics.qbk
+--- boost_1_73_0/libs/bimap/doc/compiler_specifics.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/compiler_specifics.qbk 2020-04-29 14:31:09.749214408 +0200
+@@ -52,7 +52,7 @@ can be cause buffer overruns or other po
+ See http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCandC/default.aspx
+ But the wording of the warning is misleading and unsettling, there are no
+ portable alternative functions, and VC++ 8.0's own libraries use the
+-functions in question. In order to turn off the warnings add the followings
++functions in question. In order to turn off the warnings add the following
+ defines at the begging of your .cpp files:
+
+ #define _CRT_SECURE_NO_DEPRECATE
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html.12~ 2020-04-22 15:41:02.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html 2020-04-29 14:31:09.749214408 +0200
+@@ -352,7 +352,7 @@
+
|
+
+ We can only serialize iterators if the bimap was serialized first.
+- Note that the const cast is not requiered here because we create our
++ Note that the const cast is not required here because we create our
+ iterators as const.
+ |
+
+@@ -768,7 +768,7 @@
+
+
+
+- can be rewrited as
++ can be rewritten as
+
+
+
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/compiler_specifics.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/compiler_specifics.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/compiler_specifics.html.12~ 2020-04-22 15:41:04.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/compiler_specifics.html 2020-04-29 14:31:09.749214408 +0200
+@@ -345,7 +345,7 @@
+ See http://msdn.microsoft.com/msdnmag/issues/05/05/SafeCandC/default.aspx But
+ the wording of the warning is misleading and unsettling, there are no portable
+ alternative functions, and VC++ 8.0's own libraries use the functions in question.
+- In order to turn off the warnings add the followings defines at the begging
++ In order to turn off the warnings add the following defines at the begging
+ of your .cpp files:
+
+ #define _CRT_SECURE_NO_DEPRECATE
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html.12~ 2020-04-22 15:41:05.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html 2020-04-29 14:31:09.749214408 +0200
+@@ -63,7 +63,7 @@
+ using namespace boost::multi_index;
+ namespace bl = boost::lambda;
+
+-
++
+
+
+ struct word_counter_entry
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/rationale.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/rationale.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/rationale.html.12~ 2020-04-22 15:41:05.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/rationale.html 2020-04-29 14:31:09.749214408 +0200
+@@ -277,7 +277,7 @@
+ you can build other container that behaves exactly as a std::set<int>
using
+ set_adaptor
and iterator_adaptor
.
+ The combined use of this two tools is very powerful. A container_adaptor
+- can take classes that do not fulfil all the requirements of the adapted container.
++ can take classes that do not fulfill all the requirements of the adapted container.
+ The new container must define these missing functions.
+
+
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html.12~ 2020-04-22 15:41:03.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html 2020-04-29 14:31:09.749214408 +0200
+@@ -1100,7 +1100,7 @@
+
+ The symmetry of bimap imposes some constraints on operator[]
and the non constant version of at()
+ that are not found in std::maps
.
+- Tey are only provided if the other collection type is mutable (list_of
, vector_of
++ They are only provided if the other collection type is mutable (list_of
, vector_of
+ and unconstrained_set_of
).
+
+ template< class CompatibleKey >
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html.12~ 2020-04-22 15:41:04.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html 2020-04-29 14:31:09.750214421 +0200
+@@ -1013,7 +1013,7 @@
+
+ The symmetry of bimap imposes some constraints on operator[]
and the non constant version of at()
+ that are not found in std::maps
.
+- Tey are only provided if the other collection type is mutable (list_of
, vector_of
++ They are only provided if the other collection type is mutable (list_of
, vector_of
+ and unconstrained_set_of
).
+
+ template< class CompatibleKey >
+diff -up boost_1_73_0/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html.12~ boost_1_73_0/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html
+--- boost_1_73_0/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html.12~ 2020-04-29 14:31:09.750214421 +0200
++++ boost_1_73_0/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html 2020-04-29 14:34:20.490735801 +0200
+@@ -171,8 +171,8 @@
+ bm_type::right_iterator right_iter = bm.right.begin();
+
+
+-
Table 1.3. Equivalence of expresions using user defined names
+-
++Table 1.3. Equivalence of expressions using user defined names
++
+
+
+
+diff -up boost_1_73_0/libs/bimap/doc/rationale.qbk.12~ boost_1_73_0/libs/bimap/doc/rationale.qbk
+--- boost_1_73_0/libs/bimap/doc/rationale.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/rationale.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -206,7 +206,7 @@ iterators instead of the originals. For
+ `std::set`, you can build other container that behaves exactly as a
+ `std::set` using `set_adaptor` and [^iterator_adaptor]. The combined use
+ of this two tools is very powerful. A [^container_adaptor] can take classes
+-that do not fulfil all the requirements of the adapted container. The
++that do not fulfill all the requirements of the adapted container. The
+ new container must define these missing functions.
+
+ [endsect]
+diff -up boost_1_73_0/libs/bimap/doc/reference/list_of.qbk.12~ boost_1_73_0/libs/bimap/doc/reference/list_of.qbk
+--- boost_1_73_0/libs/bimap/doc/reference/list_of.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/reference/list_of.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -528,7 +528,7 @@ for ['Set View]. `position` is a valid d
+ for ['Set View] where `e` is the element pointed to by `position` and
+ rearranges `*position` into all the views of the `bimap`.
+ Rearrangement on `list_of` views does not change the position of the element
+-with respect to the view; rearrangement on other views may or might not suceed.
++with respect to the view; rearrangement on other views may or might not succeed.
+ If the rearrangement fails, the element is erased.
+ * [*Postconditions:] Validity of `position` is preserved if the operation succeeds.
+ * [*Returns: ] `true` if the operation succeeded, `false` otherwise.
+diff -up boost_1_73_0/libs/bimap/doc/reference/set_of.qbk.12~ boost_1_73_0/libs/bimap/doc/reference/set_of.qbk
+--- boost_1_73_0/libs/bimap/doc/reference/set_of.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/reference/set_of.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -818,7 +818,7 @@ throws `std::out_of_range` if such key d
+
+ The symmetry of bimap imposes some constraints on `operator[]` and the
+ non constant version of at() that are not found in `std::maps`.
+-Tey are only provided if the other collection type is mutable
++They are only provided if the other collection type is mutable
+ (`list_of`, `vector_of` and `unconstrained_set_of`).
+
+ [#reference_set_of_operator_bracket_key]
+diff -up boost_1_73_0/libs/bimap/doc/reference/unordered_set_of.qbk.12~ boost_1_73_0/libs/bimap/doc/reference/unordered_set_of.qbk
+--- boost_1_73_0/libs/bimap/doc/reference/unordered_set_of.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/reference/unordered_set_of.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -695,7 +695,7 @@ throws `std::out_of_range` if such key d
+
+ The symmetry of bimap imposes some constraints on `operator[]` and the
+ non constant version of at() that are not found in `std::maps`.
+-Tey are only provided if the other collection type is mutable
++They are only provided if the other collection type is mutable
+ (`list_of`, `vector_of` and `unconstrained_set_of`).
+
+
+diff -up boost_1_73_0/libs/bimap/doc/reference/vector_of.qbk.12~ boost_1_73_0/libs/bimap/doc/reference/vector_of.qbk
+--- boost_1_73_0/libs/bimap/doc/reference/vector_of.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/reference/vector_of.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -574,7 +574,7 @@ for ['Set View] where e is the element p
+ rearranges `*position` into all the views of the `bimap`.
+ Rearrangement on `vector_of` views does not change the position of the
+ element with respect to the view; rearrangement on other views may or
+-might not suceed. If the rearrangement fails, the element is erased.
++might not succeed. If the rearrangement fails, the element is erased.
+ * [*Postconditions:] Validity of `position` is preserved if the operation succeeds.
+ * [*Returns: ] `true` if the operation succeeded, `false` otherwise.
+ * [link vector_of_complexity_signature [*Complexity:]] O(M(n)).
+diff -up boost_1_73_0/libs/bimap/doc/tutorial.qbk.12~ boost_1_73_0/libs/bimap/doc/tutorial.qbk
+--- boost_1_73_0/libs/bimap/doc/tutorial.qbk.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/doc/tutorial.qbk 2020-04-29 14:31:09.750214421 +0200
+@@ -811,7 +811,7 @@ the untagged version structures.
+
+
+
+-[table Equivalence of expresions using user defined names
++[table Equivalence of expressions using user defined names
+ [[Untagged version] [Tagged version] ]
+ [[`bm.left`] [`bm.by()`] ]
+ [[`bm.right`] [`bm.by()`] ]
+diff -up boost_1_73_0/libs/bimap/example/bimap_and_boost/serialization.cpp.12~ boost_1_73_0/libs/bimap/example/bimap_and_boost/serialization.cpp
+--- boost_1_73_0/libs/bimap/example/bimap_and_boost/serialization.cpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/example/bimap_and_boost/serialization.cpp 2020-04-29 14:31:09.750214421 +0200
+@@ -52,7 +52,7 @@ int main()
+ rationale behind this decision >*/
+
+ /*<< We can only serialize iterators if the bimap was serialized first.
+- Note that the const cast is not requiered here because we create
++ Note that the const cast is not required here because we create
+ our iterators as const. >>*/
+ const bm_type::left_iterator left_iter = bm.left.find("two");
+ oa << left_iter;
+diff -up boost_1_73_0/libs/bimap/example/mi_to_b_path/mi_hashed_indices.cpp.12~ boost_1_73_0/libs/bimap/example/mi_to_b_path/mi_hashed_indices.cpp
+--- boost_1_73_0/libs/bimap/example/mi_to_b_path/mi_hashed_indices.cpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/example/mi_to_b_path/mi_hashed_indices.cpp 2020-04-29 14:31:09.750214421 +0200
+@@ -29,7 +29,7 @@ Boost.MultiIndex
+ using namespace boost::multi_index;
+ namespace bl = boost::lambda;
+
+-// word_counter keeps the ocurrences of words inserted. A hashed
++// word_counter keeps the occurrences of words inserted. A hashed
+ // index allows for fast checking of preexisting entries.
+
+ struct word_counter_entry
+diff -up boost_1_73_0/libs/bimap/example/step_by_step.cpp.12~ boost_1_73_0/libs/bimap/example/step_by_step.cpp
+--- boost_1_73_0/libs/bimap/example/step_by_step.cpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/example/step_by_step.cpp 2020-04-29 14:31:09.750214421 +0200
+@@ -23,7 +23,7 @@
+ #include
+ #include
+
+-// A convinience header is avaiable in the boost directory:
++// A convenience header is available in the boost directory:
+ #include
+
+ int main()
+diff -up boost_1_73_0/libs/bimap/test/test_structured_pair.cpp.12~ boost_1_73_0/libs/bimap/test/test_structured_pair.cpp
+--- boost_1_73_0/libs/bimap/test/test_structured_pair.cpp.12~ 2020-04-22 15:34:51.000000000 +0200
++++ boost_1_73_0/libs/bimap/test/test_structured_pair.cpp 2020-04-29 14:31:09.751214434 +0200
+@@ -70,7 +70,7 @@ void test_basic()
+
+ using namespace boost::bimaps::relation;
+
+- // Instanciate two pairs and test the storage alignmentDataData
++ // Instantiate two pairs and test the storage alignmentDataData
+
+ typedef structured_pair< short, double, normal_layout > pair_type;
+ typedef structured_pair< double, short, mirror_layout > mirror_type;
diff --git a/12.patch b/12.patch
new file mode 100644
index 0000000..ef1d55d
--- /dev/null
+++ b/12.patch
@@ -0,0 +1,156 @@
+From 7daa6c1b158a1dd3699c3e6b06008b2ca984dfb2 Mon Sep 17 00:00:00 2001
+From: CromwellEnage <32967088+CromwellEnage@users.noreply.github.com>
+Date: Sun, 30 Sep 2018 02:53:54 -0400
+Subject: [PATCH] Update unordered_associative_container_adaptor
+
+The unordered_associative_container_adaptor base class now implements member functions hash_function(), key_eq(), and reserve().
+---
+ ...nordered_associative_container_adaptor.hpp | 15 +++++++++
+ test/test_bimap.hpp | 12 +++++++
+ test/test_bimap_unordered.cpp | 31 +++++++++++++++++++
+ 3 files changed, 58 insertions(+)
+
+diff --git a/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp b/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp
+index 7ecffcf..b945f1c 100755
+--- a/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp
++++ b/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp
+@@ -184,6 +184,16 @@ class unordered_associative_container_adaptor :
+
+ // bucket interface:
+
++ hasher hash_function() const
++ {
++ return this->base().hash_function();
++ }
++
++ key_equal key_eq() const
++ {
++ return this->base().key_eq();
++ }
++
+ BOOST_DEDUCED_TYPENAME base_::size_type bucket_count() const
+ {
+ return this->base().bucket_count();
+@@ -260,6 +270,11 @@ class unordered_associative_container_adaptor :
+ return this->base().rehash(n);
+ }
+
++ void reserve(BOOST_DEDUCED_TYPENAME base_::size_type count)
++ {
++ return this->base().reserve(count);
++ }
++
+ // We have redefined end and begin so we have to manually route the old ones
+
+ BOOST_DEDUCED_TYPENAME base_::iterator begin()
+diff --git a/libs/bimap/test/test_bimap.hpp b/libs/bimap/test/test_bimap.hpp
+index 973fb6f..3bc09ab 100644
+--- a/libs/bimap/test/test_bimap.hpp
++++ b/libs/bimap/test/test_bimap.hpp
+@@ -307,6 +307,7 @@ template< class Container, class Data >
+ void test_simple_unordered_associative_container(Container & c, const Data & d)
+ {
+ c.clear();
++ c.reserve( std::distance(d.begin(), d.end()) );
+ c.insert( d.begin(), d.end() );
+
+ BOOST_CHECK( c.bucket_count() * c.max_load_factor() >= d.size() );
+@@ -326,9 +327,13 @@ void test_simple_unordered_associative_container(Container & c, const Data & d)
+ {
+ const Container & const_c = c;
+
++ // Hash collisions should have no effect on the correctness of an
++ // unordered simple associative container. -- Cromwell D. Enage
++/*
+ BOOST_CHECK(
+ const_c.bucket_size(const_c.bucket(*di)) == 1
+ );
++*/
+
+ typename Container::size_type nb =
+ const_c.bucket(*const_c.find(*di));
+@@ -394,6 +399,7 @@ template< class Container, class Data >
+ void test_pair_unordered_associative_container(Container & c, const Data & d)
+ {
+ c.clear();
++ c.reserve( std::distance(d.begin(), d.end()) );
+ c.insert( d.begin(), d.end() );
+
+ BOOST_CHECK( c.bucket_count() * c.max_load_factor() >= d.size() );
+@@ -414,7 +420,13 @@ void test_pair_unordered_associative_container(Container & c, const Data & d)
+ {
+ const Container & const_c = c;
+
++ // The test commented out below fails on 32-bit Windows platforms
++ // but works on 64-bit Windows platforms and others. Regardless,
++ // hash collisions should have no effect on the correctness of an
++ // unordered pair associative container. -- Cromwell D. Enage
++/*
+ BOOST_CHECK( const_c.bucket_size(const_c.bucket(di->first)) == 1 );
++*/
+
+ typename Container::size_type nb =
+ const_c.bucket(const_c.find(di->first)->first);
+diff --git a/libs/bimap/test/test_bimap_unordered.cpp b/libs/bimap/test/test_bimap_unordered.cpp
+index 6cba88b..8713642 100644
+--- a/libs/bimap/test/test_bimap_unordered.cpp
++++ b/libs/bimap/test/test_bimap_unordered.cpp
+@@ -79,6 +79,15 @@ void test_bimap()
+ test_unordered_set_unordered_multiset_bimap(
+ bm,data,left_data,right_data
+ );
++
++ BOOST_CHECK((
++ bm.left.hash_function()(' ') == bm.left.hash_function()(' ')
++ ));
++ BOOST_CHECK((
++ bm.right.hash_function()(" ") == bm.right.hash_function()(" ")
++ ));
++ BOOST_CHECK((bm.left.key_eq()(' ', ' ')));
++ BOOST_CHECK((bm.right.key_eq()(" ", " ")));
+ }
+ //--------------------------------------------------------------------
+
+@@ -103,6 +112,15 @@ void test_bimap()
+ bm,data,left_data,right_data
+ );
+ test_tagged_bimap(bm,data);
++
++ BOOST_CHECK((
++ bm.left.hash_function()(' ') == bm.left.hash_function()(' ')
++ ));
++ BOOST_CHECK((
++ bm.right.hash_function()(" ") == bm.right.hash_function()(" ")
++ ));
++ BOOST_CHECK((bm.left.key_eq()(' ', ' ')));
++ BOOST_CHECK((bm.right.key_eq()(" ", " ")));
+ }
+ //--------------------------------------------------------------------
+
+@@ -128,6 +146,11 @@ void test_bimap()
+ test_basic_bimap(bm,data,left_data,right_data);
+ test_associative_container(bm,data);
+ test_simple_unordered_associative_container(bm,data);
++
++ BOOST_CHECK((
++ bm.right.hash_function()(" ") == bm.right.hash_function()(" ")
++ ));
++ BOOST_CHECK((bm.right.key_eq()(" ", " ")));
+ }
+ //--------------------------------------------------------------------
+
+@@ -154,6 +177,14 @@ void test_bimap()
+ test_associative_container(bm,data);
+ test_simple_unordered_associative_container(bm,data);
+
++ BOOST_CHECK((
++ bm.left.hash_function()(' ') == bm.left.hash_function()(' ')
++ ));
++ BOOST_CHECK((
++ bm.right.hash_function()(" ") == bm.right.hash_function()(" ")
++ ));
++ BOOST_CHECK((bm.left.key_eq()(' ', ' ')));
++ BOOST_CHECK((bm.right.key_eq()(" ", " ")));
+ }
+ //--------------------------------------------------------------------
+ }
diff --git a/14.patch b/14.patch
new file mode 100644
index 0000000..5f0d824
--- /dev/null
+++ b/14.patch
@@ -0,0 +1,200 @@
+From cf63a1169cc4d77ca8c9ff17dd11e6dc84c3970b Mon Sep 17 00:00:00 2001
+From: CromwellEnage <32967088+CromwellEnage@users.noreply.github.com>
+Date: Sun, 30 Sep 2018 08:55:10 -0400
+Subject: [PATCH] Update test_bimap_modify.cpp
+
+Added BOOST_CHECK statements, some as requested by previous code comments.
+---
+ test/test_bimap_modify.cpp | 137 +++++++++++++++++++++++++++++++++++--
+ 1 file changed, 130 insertions(+), 7 deletions(-)
+
+diff --git a/libs/bimap/test/test_bimap_modify.cpp b/libs/bimap/test/test_bimap_modify.cpp
+index 2f2cbaa..945978d 100644
+--- a/libs/bimap/test/test_bimap_modify.cpp
++++ b/libs/bimap/test/test_bimap_modify.cpp
+@@ -104,6 +104,7 @@ void test_bimap_modify()
+ BOOST_CHECK( b.size() == 1 );
+ BOOST_CHECK( i->left == 1 && i->right == 100 );
+ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.right.at(100) == 1 );
+
+ result = b.replace_left( i, 2 );
+
+@@ -111,6 +112,7 @@ void test_bimap_modify()
+ BOOST_CHECK( b.size() == 1 );
+ BOOST_CHECK( i->left == 2 && i->right == 100 );
+ BOOST_CHECK( b.left.at(2) == 100 );
++ BOOST_CHECK( b.right.at(100) == 2 );
+
+ result = b.replace_right( b.begin(), 200 );
+
+@@ -118,7 +120,7 @@ void test_bimap_modify()
+ BOOST_CHECK( b.size() == 1 );
+ BOOST_CHECK( i->left == 2 && i->right == 200 );
+ BOOST_CHECK( b.left.at(2) == 200 );
+-
++ BOOST_CHECK( b.right.at(200) == 2 );
+ }
+
+ b.clear();
+@@ -137,14 +139,88 @@ void test_bimap_modify()
+ BOOST_CHECK( b.left.at(1) == 100 );
+ BOOST_CHECK( b.left.at(2) == 200 );
+
++ result = b.left.replace_key( i, 2 );
++
++ BOOST_CHECK( ! result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->first == 1 && i->second == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.left.at(2) == 200 );
++
++ result = b.left.replace_data( i, 200 );
+
+- // Add checks for replace_key and replace_data
++ BOOST_CHECK( ! result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->first == 1 && i->second == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.left.at(2) == 200 );
+ }
+
+- // Add checks for fail to replace in right map view
++ // fail to replace in right map view
++ {
++ bm::right_iterator i = b.right.begin();
++
++ result = b.right.replace( i, bm::right_value_type(100,2) );
+
+- // Add checks for fail to replace in set of relations view
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( (i->first == 100) && (i->second == 1) );
++ BOOST_CHECK( b.right.at(100) == 1 );
++ BOOST_CHECK( b.right.at(200) == 2 );
++
++ result = b.right.replace_key( i, 200 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( (i->first == 100) && (i->second == 1) );
++ BOOST_CHECK( b.right.at(100) == 1 );
++ BOOST_CHECK( b.right.at(200) == 2 );
++
++ result = b.right.replace_data( i, 2 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( (i->first == 100) && (i->second == 1) );
++ BOOST_CHECK( b.right.at(100) == 1 );
++ BOOST_CHECK( b.right.at(200) == 2 );
++ }
++
++ // fail to replace in set of relations view
++ {
++ bm::iterator i = b.begin();
++
++ result = b.replace( i, bm::value_type(2,100) );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->left == 1 && i->right == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.right.at(100) == 1 );
+
++ result = b.replace( i, bm::value_type(1,200) );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->left == 1 && i->right == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.right.at(100) == 1 );
++
++ result = b.replace_left( i, 2 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->left == 1 && i->right == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.right.at(100) == 1 );
++
++ result = b.replace_right( b.begin(), 200 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 2 );
++ BOOST_CHECK( i->left == 1 && i->right == 100 );
++ BOOST_CHECK( b.left.at(1) == 100 );
++ BOOST_CHECK( b.right.at(100) == 1 );
++ }
+
+ // modify
+ // ----------------------------------------------------------------------
+@@ -160,18 +236,65 @@ void test_bimap_modify()
+ BOOST_CHECK( b.size() == 1 );
+ BOOST_CHECK( b.left.at(2) == 100 );
+
+- result = b.left.modify_data( b.left.begin() , _data = 200 );
++ result = b.left.modify_data( b.left.begin(), _data = 200 );
+
+ BOOST_CHECK( result );
+ BOOST_CHECK( b.size() == 1 );
+ BOOST_CHECK( b.left.at(2) == 200 );
+ }
+
+- // Add checks for successful modify in right map view
++ // successful modify in right map view
++ {
++ result = b.right.modify_key( b.right.begin(), _key = 100 );
++
++ BOOST_CHECK( result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.right.at(100) == 2 );
++
++ result = b.right.modify_data( b.right.begin(), _data = 1 );
++
++ BOOST_CHECK( result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.right.at(100) == 1 );
++ }
++
++ // fail to modify in left map view
++ {
++ b.insert( bm::value_type(2,200) );
++ result = b.left.modify_key( b.left.begin(), _key = 2 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.left.find(1) == b.left.end() );
++ BOOST_CHECK( b.right.find(100) == b.right.end() );
++
++ b.insert( bm::value_type(1,100) );
++ result = b.left.modify_data( b.left.begin(), _data = 200 );
++
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.left.find(1) == b.left.end() );
++ BOOST_CHECK( b.right.find(100) == b.right.end() );
++ }
++
++ // fail to modify in right map view
++ {
++ b.insert( bm::value_type(1,100) );
++ result = b.right.modify_key( b.right.begin(), _key = 200 );
+
+- // Add checks for fails to modify in left map view
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.left.find(1) == b.left.end() );
++ BOOST_CHECK( b.right.find(100) == b.right.end() );
+
++ b.insert( bm::value_type(1,100) );
++ result = b.right.modify_data( b.right.begin(), _data = 2 );
+
++ BOOST_CHECK( !result );
++ BOOST_CHECK( b.size() == 1 );
++ BOOST_CHECK( b.left.find(1) == b.left.end() );
++ BOOST_CHECK( b.right.find(100) == b.right.end() );
++ }
+ }
+
+ void test_bimap_replace_with_info()
diff --git a/15.patch b/15.patch
new file mode 100644
index 0000000..6201e0b
--- /dev/null
+++ b/15.patch
@@ -0,0 +1,117 @@
+From 4745ef91c78d4d4eee4b52d78bd5d6e83445e7ce Mon Sep 17 00:00:00 2001
+From: Tobias Loew
+Date: Mon, 29 Oct 2018 09:25:16 +0100
+Subject: [PATCH 1/3] removed deprecated std::allocator
+
+replaced std::allocator by std::allocator
+use std::allocator_traits for rebinding
+---
+ include/boost/bimap/detail/bimap_core.hpp | 6 +++++-
+ .../boost/bimap/detail/manage_additional_parameters.hpp | 8 ++++----
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/boost/bimap/detail/bimap_core.hpp b/boost/bimap/detail/bimap_core.hpp
+index f642e96..c821a30 100644
+--- a/boost/bimap/detail/bimap_core.hpp
++++ b/boost/bimap/detail/bimap_core.hpp
+@@ -404,9 +404,13 @@ class bimap_core
+ <
+ relation,
+ core_indices,
++#ifdef BOOST_NO_CXX11_ALLOCATOR
+ BOOST_DEDUCED_TYPENAME parameters::allocator::
+ BOOST_NESTED_TEMPLATE rebind::other
+-
++#else
++ BOOST_DEDUCED_TYPENAME std::allocator_traits< BOOST_DEDUCED_TYPENAME parameters::allocator >::
++ BOOST_NESTED_TEMPLATE rebind_alloc
++#endif
+ > core_type;
+
+ // Core metadata
+diff --git a/boost/bimap/detail/manage_additional_parameters.hpp b/boost/bimap/detail/manage_additional_parameters.hpp
+index d95a4f0..78d89ae 100644
+--- a/boost/bimap/detail/manage_additional_parameters.hpp
++++ b/boost/bimap/detail/manage_additional_parameters.hpp
+@@ -83,7 +83,7 @@ struct manage_additional_parameters
+ struct case_NNN
+ {
+ typedef left_based set_type_of_relation;
+- typedef std::allocator allocator;
++ typedef std::allocator allocator;
+ typedef ::boost::mpl::na additional_info;
+ };
+
+@@ -110,7 +110,7 @@ struct manage_additional_parameters
+ struct case_SNN
+ {
+ typedef AP1 set_type_of_relation;
+- typedef std::allocator allocator;
++ typedef std::allocator allocator;
+ typedef ::boost::mpl::na additional_info;
+ };
+
+@@ -137,7 +137,7 @@ struct manage_additional_parameters
+ struct case_HNN
+ {
+ typedef left_based set_type_of_relation;
+- typedef std::allocator allocator;
++ typedef std::allocator allocator;
+ typedef BOOST_DEDUCED_TYPENAME AP1::value_type additional_info;
+ };
+
+@@ -151,7 +151,7 @@ struct manage_additional_parameters
+ struct case_SHN
+ {
+ typedef AP1 set_type_of_relation;
+- typedef std::allocator allocator;
++ typedef std::allocator allocator;
+ typedef BOOST_DEDUCED_TYPENAME AP2::value_type additional_info;
+ };
+
+
+From 747a9df3d41fb0fd9f53793c0c5552cd24c38717 Mon Sep 17 00:00:00 2001
+From: Tobias Loew
+Date: Thu, 8 Nov 2018 17:14:56 +0100
+Subject: [PATCH 2/3] Update include/boost/bimap/detail/bimap_core.hpp
+
+---
+ include/boost/bimap/detail/bimap_core.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/boost/bimap/detail/bimap_core.hpp b/boost/bimap/detail/bimap_core.hpp
+index c821a30..e219f4e 100644
+--- a/boost/bimap/detail/bimap_core.hpp
++++ b/boost/bimap/detail/bimap_core.hpp
+@@ -18,6 +18,7 @@
+
+ #include
+
++#include
+ #include
+ #include
+ #include
+
+From 391e1d422199ab7a529789f10483ed75a7fe9808 Mon Sep 17 00:00:00 2001
+From: Tobias Loew
+Date: Thu, 8 Nov 2018 17:17:57 +0100
+Subject: [PATCH 3/3] Update include/boost/bimap/detail/bimap_core.hpp
+
+---
+ include/boost/bimap/detail/bimap_core.hpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/boost/bimap/detail/bimap_core.hpp b/boost/bimap/detail/bimap_core.hpp
+index e219f4e..be0e1ba 100644
+--- a/boost/bimap/detail/bimap_core.hpp
++++ b/boost/bimap/detail/bimap_core.hpp
+@@ -18,7 +18,9 @@
+
+ #include
+
++#ifndef BOOST_NO_CXX11_ALLOCATOR
+ #include
++#endif
+ #include
+ #include
+ #include
diff --git a/18.patch b/18.patch
new file mode 100644
index 0000000..402b2b1
--- /dev/null
+++ b/18.patch
@@ -0,0 +1,29 @@
+From 257664e0d09eefc690b192639813e9ef4ff33503 Mon Sep 17 00:00:00 2001
+From: Romain Geissler
+Date: Fri, 28 Jun 2019 15:53:56 +0000
+Subject: [PATCH] Avoid gcc 9 -Wdeprecated-copy warning (when you define the
+ copy constructor, you have to define to copy assignment operator too in C++
+ >= 11).
+
+---
+ include/boost/bimap/detail/map_view_iterator.hpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/boost/bimap/detail/map_view_iterator.hpp b/boost/bimap/detail/map_view_iterator.hpp
+index 17d43cb..7b9e196 100644
+--- a/boost/bimap/detail/map_view_iterator.hpp
++++ b/boost/bimap/detail/map_view_iterator.hpp
+@@ -166,6 +166,13 @@ struct const_map_view_iterator :
+ const_map_view_iterator(map_view_iterator i)
+ : base_(i.base()) {}
+
++ const_map_view_iterator& operator=(const_map_view_iterator const & iter)
++ {
++ static_cast(*this) = static_cast(iter);
++
++ return *this;
++ }
++
+ BOOST_DEDUCED_TYPENAME base_::reference dereference() const
+ {
+ return ::boost::bimaps::relation::support::pair_by(*this->base());
diff --git a/1ca8df632c4a6be88f3e84f037bd65399bfcd1b4.patch b/1ca8df632c4a6be88f3e84f037bd65399bfcd1b4.patch
deleted file mode 100644
index 900f26b..0000000
--- a/1ca8df632c4a6be88f3e84f037bd65399bfcd1b4.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 1ca8df632c4a6be88f3e84f037bd65399bfcd1b4 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab
-Date: Mon, 8 Apr 2019 14:53:54 +0200
-Subject: [PATCH] Add detection of RISC-V from __riscv
-
----
- include/boost/predef/architecture.h | 1 +
- include/boost/predef/architecture/riscv.h | 41 +++++++++++++++++++++++
- 2 files changed, 42 insertions(+)
- create mode 100644 include/boost/predef/architecture/riscv.h
-
-diff --git a/boost/predef/architecture.h b/boost/predef/architecture.h
-index 120d557..732d6f0 100644
---- a/boost/predef/architecture.h
-+++ b/boost/predef/architecture.h
-@@ -21,6 +21,7 @@ Distributed under the Boost Software License, Version 1.0.
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
-diff --git a/boost/predef/architecture/riscv.h b/boost/predef/architecture/riscv.h
-new file mode 100644
-index 0000000..5ff2c3b
---- /dev/null
-+++ b/boost/predef/architecture/riscv.h
-@@ -0,0 +1,41 @@
-+/*
-+Distributed under the Boost Software License, Version 1.0.
-+(See accompanying file LICENSE_1_0.txt or copy at
-+http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+#ifndef BOOST_PREDEF_ARCHITECTURE_RISCV_H
-+#define BOOST_PREDEF_ARCHITECTURE_RISCV_H
-+
-+#include
-+#include
-+
-+/*`
-+[heading `BOOST_ARCH_RISCV`]
-+
-+[@http://en.wikipedia.org/wiki/RISC-V] architecture.
-+
-+[table
-+ [[__predef_symbol__] [__predef_version__]]
-+
-+ [[`__riscv`] [__predef_detection__]]
-+ ]
-+ */
-+
-+#define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_NOT_AVAILABLE
-+
-+#if defined(__riscv)
-+# undef BOOST_ARCH_RISCV
-+# define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_AVAILABLE
-+#endif
-+
-+#if BOOST_ARCH_RISCV
-+# define BOOST_ARCH_RISCV_AVAILABLE
-+#endif
-+
-+#define BOOST_ARCH_RISCV_NAME "RISC-V"
-+
-+#endif
-+
-+#include
-+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RISCV,BOOST_ARCH_RISCV_NAME)
diff --git a/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch b/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch
deleted file mode 100644
index 5909d73..0000000
--- a/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0 Mon Sep 17 00:00:00 2001
-From: Klemens David Morgenstern
-Date: Fri, 22 Nov 2019 14:03:22 +0800
-Subject: [PATCH] added typedef executor_type;
-
----
- include/boost/process/async_pipe.hpp | 2 ++
- include/boost/process/detail/posix/async_pipe.hpp | 1 +
- include/boost/process/detail/windows/async_pipe.hpp | 1 +
- 3 files changed, 4 insertions(+)
-
-diff --git a/boost/process/async_pipe.hpp b/boost/process/async_pipe.hpp
-index 101fe1d59..a562432c0 100644
---- a/boost/process/async_pipe.hpp
-+++ b/boost/process/async_pipe.hpp
-@@ -47,6 +47,8 @@ class async_pipe
- */
- typedef platform_specific handle_type;
-
-+ typedef typename handle_type::executor_type executor_type;
-+
- /** Construct a new async_pipe, does automatically open the pipe.
- * Initializes source and sink with the same io_context.
- * @note Windows creates a named pipe here, where the name is automatically generated.
-diff --git a/boost/process/detail/posix/async_pipe.hpp b/boost/process/detail/posix/async_pipe.hpp
-index 725a07890..a82c057b9 100644
---- a/boost/process/detail/posix/async_pipe.hpp
-+++ b/boost/process/detail/posix/async_pipe.hpp
-@@ -23,6 +23,7 @@ class async_pipe
- public:
- typedef int native_handle_type;
- typedef ::boost::asio::posix::stream_descriptor handle_type;
-+ typedef typename handle_type::executor_type executor_type;
-
- inline async_pipe(boost::asio::io_context & ios) : async_pipe(ios, ios) {}
-
-diff --git a/boost/process/detail/windows/async_pipe.hpp b/boost/process/detail/windows/async_pipe.hpp
-index 06d5f2d85..0b447f9b8 100644
---- a/boost/process/detail/windows/async_pipe.hpp
-+++ b/boost/process/detail/windows/async_pipe.hpp
-@@ -48,6 +48,7 @@ class async_pipe
- public:
- typedef ::boost::winapi::HANDLE_ native_handle_type;
- typedef ::boost::asio::windows::stream_handle handle_type;
-+ typedef typename handle_type::executor_type executor_type;
-
- async_pipe(boost::asio::io_context & ios) : async_pipe(ios, ios, make_pipe_name(), true) {}
- async_pipe(boost::asio::io_context & ios_source, boost::asio::io_context & ios_sink)
diff --git a/aab7addcc5d0fbb7ea9ed62e902095bc781baa2e.patch b/aab7addcc5d0fbb7ea9ed62e902095bc781baa2e.patch
deleted file mode 100644
index bcc24df..0000000
--- a/aab7addcc5d0fbb7ea9ed62e902095bc781baa2e.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From aab7addcc5d0fbb7ea9ed62e902095bc781baa2e Mon Sep 17 00:00:00 2001
-From: Andreas Schwab
-Date: Mon, 8 Apr 2019 14:54:20 +0200
-Subject: [PATCH] Add support for the RISC-V architecture
-
----
- boostcpp.jam | 5 +++--
- libs/config | 2 +-
- libs/context | 2 +-
- libs/predef | 2 +-
- tools/build | 2 +-
- 5 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/boostcpp.jam b/boostcpp.jam
-index efc41c1ed8b..10250a5b693 100644
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -607,7 +607,7 @@ rule address-model ( )
- return @boostcpp.deduce-address-model ;
- }
-
--local deducable-architectures = arm mips1 power sparc x86 combined ;
-+local deducable-architectures = arm mips1 power riscv sparc x86 combined ;
- feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
- for a in $(deducable-architectures)
- {
-@@ -618,11 +618,12 @@ rule deduce-architecture ( properties * )
- {
- local result ;
- local filtered = [ toolset-properties $(properties) ] ;
-- local names = arm mips1 power sparc x86 combined ;
-+ local names = arm mips1 power riscv sparc x86 combined ;
- local idx = [ configure.find-builds "default architecture" : $(filtered)
- : /boost/architecture//arm
- : /boost/architecture//mips1
- : /boost/architecture//power
-+ : /boost/architecture//riscv
- : /boost/architecture//sparc
- : /boost/architecture//x86
- : /boost/architecture//combined ] ;
diff --git a/boost-1.50.0-long-double-1.patch b/boost-1.50.0-long-double-1.patch
index 2574539..f79de92 100644
--- a/boost-1.50.0-long-double-1.patch
+++ b/boost-1.50.0-long-double-1.patch
@@ -1,10 +1,9 @@
-diff --git a/libs/math/config/has_long_double_support.cpp b/libs/math/config/has_long_double_support.cpp
-index d314cf3..9022408 100644
---- a/libs/math/config/has_long_double_support.cpp
-+++ b/libs/math/config/has_long_double_support.cpp
+diff -up boost_1_73_0/libs/math/config/has_long_double_support.cpp.5~ boost_1_73_0/libs/math/config/has_long_double_support.cpp
+--- boost_1_73_0/libs/math/config/has_long_double_support.cpp.5~ 2020-04-29 03:27:52.608400056 +0200
++++ boost_1_73_0/libs/math/config/has_long_double_support.cpp 2020-04-29 14:29:15.063698315 +0200
@@ -8,3 +8,7 @@
#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
- #error "long double support is not supported by Boost.Math on this Plaform: the long double version of the TR1 library will not be built."
+ #error "long double support is not supported by Boost.Math on this Platform: the long double version of the TR1 library will not be built."
#endif
+
+int main(int argc, char *argv[]) {
diff --git a/boost-1.63.0-dual-python-build.patch b/boost-1.63.0-dual-python-build.patch
new file mode 100644
index 0000000..d20b262
--- /dev/null
+++ b/boost-1.63.0-dual-python-build.patch
@@ -0,0 +1,46 @@
+--- boost_1_63_0/tools/build/src/tools/python.jam.orig 2017-02-16 18:51:14.005483084 +0000
++++ boost_1_63_0/tools/build/src/tools/python.jam 2017-02-16 18:51:24.912497496 +0000
+@@ -926,27 +926,27 @@
+ # for a particular target OS as the default. This makes it so that we can
+ # select a python interpreter with only knowledge of the target OS. And hence
+ # can configure different Pythons based on the target OS only.
+- local toolset-requirements = [ toolset.requirements ] ;
+- local toolset-target-os-requirements
+- = [ property.evaluate-conditionals-in-context
+- [ $(toolset-requirements).raw ] : $(target-os) ] ;
+- if ! in $(toolset-target-os-requirements:G)
+- {
+- toolset.add-requirements $(target-os):$(version:E=default) ;
+- }
++ #local toolset-requirements = [ toolset.requirements ] ;
++ #local toolset-target-os-requirements
++ # = [ property.evaluate-conditionals-in-context
++ # [ $(toolset-requirements).raw ] : $(target-os) ] ;
++ #if ! in $(toolset-target-os-requirements:G)
++ #{
++ # toolset.add-requirements $(target-os):$(version:E=default) ;
++ #}
+
+ # We also set a default requirement that assigns the first python configured
+ # for a particular target OS as the default. This makes it so that we can
+ # select a python interpreter with only knowledge of the target OS. And hence
+ # can configure different Pythons based on the target OS only.
+- local toolset-requirements = [ toolset.requirements ] ;
+- local toolset-target-os-requirements
+- = [ property.evaluate-conditionals-in-context
+- [ $(toolset-requirements).raw ] : $(target-os) ] ;
+- if ! in $(toolset-target-os-requirements:G)
+- {
+- toolset.add-requirements $(target-os):$(version:E=default) ;
+- }
++ #local toolset-requirements = [ toolset.requirements ] ;
++ #local toolset-target-os-requirements
++ # = [ property.evaluate-conditionals-in-context
++ # [ $(toolset-requirements).raw ] : $(target-os) ] ;
++ #if ! in $(toolset-target-os-requirements:G)
++ #{
++ # toolset.add-requirements $(target-os):$(version:E=default) ;
++ #}
+
+ # Register the right suffix for extensions.
+ register-extension-suffix $(extension-suffix) : $(target-requirements) ;
diff --git a/boost-unrecognized-option.patch b/boost-unrecognized-option.patch
new file mode 100644
index 0000000..7afd2c8
--- /dev/null
+++ b/boost-unrecognized-option.patch
@@ -0,0 +1,15 @@
+Index: boost_1_58_0/tools/build/src/tools/gcc.jam
+===================================================================
+--- boost_1_58_0.orig/tools/build/src/tools/gcc.jam
++++ boost_1_58_0/tools/build/src/tools/gcc.jam
+@@ -453,10 +453,6 @@ rule setup-address-model ( targets * : s
+ local arch = [ feature.get-values architecture : $(properties) ] ;
+ if $(arch) != arm
+ {
+- if $(model) = 32
+- {
+- option = -m32 ;
+- }
+ }
+ # For darwin, the model can be 32_64. darwin.jam will handle that
+ # on its own.
diff --git a/boost.spec b/boost.spec
index b123a8b..dd7ad04 100644
--- a/boost.spec
+++ b/boost.spec
@@ -24,12 +24,12 @@
Summary: Portable C++ libraries
Name: boost
-Version: 1.72.0
+Version: 1.73.0
%if "%{beta}" != ""
Release: 0.%{beta}.1
Source0: https://dl.bintray.com/boostorg/beta/%{version}.%(echo %{beta} |sed -e 's,^b,beta.,')/source/boost_%{packver}_%{beta}.tar.bz2
%else
-Release: 5
+Release: 1
Source0: https://dl.bintray.com/boostorg/release/%{version}/source/boost_%{packver}.tar.bz2
%endif
License: Boost
@@ -37,9 +37,6 @@ Group: Development/C++
Url: http://boost.org/
Source100: %{name}.rpmlintrc
-# https://github.com/boostorg/process/issues/116
-Patch0: https://github.com/boostorg/process/commit/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0.patch
-
# https://svn.boost.org/trac/boost/ticket/6150
Patch4: boost-1.50.0-fix-non-utf8-files.patch
@@ -71,11 +68,14 @@ Patch18: boost-1.57.0-python-abi_letters.patch
Patch19: boost-1.57.0-build-optflags.patch
#Patch21: boost-unrecognized-option.patch
-# RISC-V support from upstream
-# https://github.com/boostorg/boost/pull/273
-Patch30: https://github.com/boostorg/boost/commit/aab7addcc5d0fbb7ea9ed62e902095bc781baa2e.patch
-# https://github.com/boostorg/predef/pull/97
-Patch33: https://github.com/boostorg/predef/commit/1ca8df632c4a6be88f3e84f037bd65399bfcd1b4.patch
+# Make boost-bimap compatible with current compilers
+# https://github.com/boostorg/bimap/pull/15
+Patch20: https://patch-diff.githubusercontent.com/raw/boostorg/bimap/pull/15.patch
+# While at it, pull in other bimap fixes
+Patch21: https://patch-diff.githubusercontent.com/raw/boostorg/bimap/pull/10.patch
+Patch22: https://patch-diff.githubusercontent.com/raw/boostorg/bimap/pull/12.patch
+Patch23: https://patch-diff.githubusercontent.com/raw/boostorg/bimap/pull/14.patch
+Patch24: https://patch-diff.githubusercontent.com/raw/boostorg/bimap/pull/18.patch
BuildRequires: doxygen
BuildRequires: xsltproc
@@ -118,7 +118,7 @@ creating static and shared libraries, making pieces of executable, and other
chores -- whether you're using GCC, MSVC, or a dozen more supported
C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
-%define boostbinlibs chrono context contract coroutine date_time fiber filesystem graph iostreams locale log math prg_exec_monitor program_options random regex serialization system thread timer type_erasure unit_test_framework wave wserialization atomic container stacktrace_addr2line stacktrace_basic stacktrace_noop
+%define boostbinlibs chrono context contract coroutine date_time fiber filesystem graph iostreams locale log math prg_exec_monitor program_options random regex serialization system thread timer type_erasure unit_test_framework wave wserialization atomic container stacktrace_addr2line stacktrace_basic stacktrace_noop nowide
# (Anssi 01/2010) dashes are converted to underscores for macros ($lib2);
# The sed script adds _ when library name ends in number.
@@ -127,6 +127,7 @@ C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
%%global old69name$lib2 %%mklibname boost_$(echo $lib | sed 's,[0-9]$,&_,') 1.69.0
%%global old70name$lib2 %%mklibname boost_$(echo $lib | sed 's,[0-9]$,&_,') 1.70.0
%%global old71name$lib2 %%mklibname boost_$(echo $lib | sed 's,[0-9]$,&_,') 1.71.0
+%%global old72name$lib2 %%mklibname boost_$(echo $lib | sed 's,[0-9]$,&_,') 1.72.0
%%package -n %%{libname$lib2}
Summary: Boost $lib shared library
# no one should require this, but provided anyway for maximum compatibility:
@@ -135,6 +136,7 @@ Group: System/Libraries
Obsoletes: %%{old69name$lib2} < %{EVRD}
Obsoletes: %%{old70name$lib2} < %{EVRD}
Obsoletes: %%{old71name$lib2} < %{EVRD}
+Obsoletes: %%{old72name$lib2} < %{EVRD}
EOF
done)}
# (Anssi 01/2010) splitted expand contents due to rpm bug failing build,
@@ -199,7 +201,7 @@ done)}
# them up because there's a limit on how big a %%expand-ed statement
# can get.
%define develonly accumulators algorithm archive asio assign attributes bimap bind circular_buffer compute convert dll dynamic_bitset exception flyweight format function functional fusion geometry hana integer lexical_cast metaparse mpi mpl msm multi_array multi_index multiprecision optional parameter phoenix poly_collection predef preprocessor process range ratio signals2 smart_ptr spirit stacktrace tr1 tti tuple type_traits units unordered utility uuid variant variant2 vmd xpressive
-%define develonly2 align beast callable_traits container_hash core gil hof mp11 qvm type_index sort endian coroutine2 winapi yap safe_numerics histogram outcome
+%define develonly2 align beast callable_traits container_hash core gil hof mp11 qvm type_index sort endian coroutine2 winapi yap safe_numerics histogram outcome static_string
%{expand:%(for lib in %develonly; do lib2=${lib/-/_}; cat <