Compare commits

...

17 commits

Author SHA1 Message Date
Your Name
209fb9d233 1.79.0
All checks were successful
Run CI/CD... / main (push) Successful in 40m25s
2025-04-01 20:18:44 +00:00
Your Name
5ce3824045 1.79.0
Some checks failed
Run CI/CD... / main (push) Failing after 8m36s
2025-04-01 19:58:45 +00:00
Your Name
802f8cae88 1.79.0
Some checks failed
Run CI/CD... / main (push) Failing after 9m25s
2025-04-01 07:49:21 +00:00
Your Name
16873a9547 1.79.0
Some checks failed
Run CI/CD... / main (push) Failing after 33m48s
2025-03-19 20:52:35 +00:00
Your Name
1307105ba6 Add .gitignore and .gitea/workflows/ci.yml
Some checks failed
Run CI/CD... / main (push) Failing after 19m12s
2025-01-31 18:59:54 +00:00
8616849294 Добавление .gitignore и .gitea/workflows/ci.yml 2025-01-07 03:37:54 +03:00
e2f9a74fd5 1.74.0 2023-09-09 20:05:24 +00:00
fbfe1e41b7 1.74.0 2023-09-09 19:13:44 +00:00
85c82a5856 1.74.0 2023-09-09 18:40:40 +00:00
aaf4c4c52f 1.74.0 2023-09-09 15:19:08 +00:00
508a8abd81 1.74.0 2023-09-08 22:49:28 +00:00
13ff2e0bfe 1.74.0 2023-09-08 11:46:30 +00:00
0a9d3f6ce6 1.74.0 2023-09-08 10:02:40 +00:00
33e6b1942c 1.74.0 2023-09-08 08:18:22 +00:00
48034c0c0f 1.74.0 2023-09-08 07:33:32 +00:00
Mikhail Novosyolov
f904b334e1 patches: compatibility with C++17 2020-04-01 08:15:45 +03:00
d81fb70536 MassBuild#1715: Increase release tag 2019-07-06 18:29:53 +00:00
14 changed files with 798 additions and 99 deletions

View file

@ -1,2 +1,3 @@
sources: sources:
boost_1_61_0.tar.bz2: f84b1a1ce764108ec3c2b7bd7704cf8dfd3c9d01 boost_1_74_0.tar.bz2: f82c0d8685b4d0e3971e8e2a8f9ef1551412c125
boost_1_79_0.tar.bz2: 31209dcff292bd6a64e5e08ceb3ce44a33615dc0

17
.gitea/workflows/ci.yml Normal file
View file

@ -0,0 +1,17 @@
version: '1'
name: Run CI/CD...
on: [push]
jobs:
main:
runs-on: r11_builder
steps:
- name: Jobs
uses: ${{ github.server_url }}/Djam/r11_workflows@main
with:
CI_DEPLOY: ${{ secrets.CI_DEPLOY }}
PUBLICATOR: ${{ secrets.PUBLICATOR }}
REPO_DEPLOY: ${{ secrets.REPO_DEPLOY }}

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.*~
*~
.env

View file

@ -0,0 +1,134 @@
From dc96dcab3f4c414e87384daed329ff726d669ab0 Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Wed, 1 Apr 2020 08:01:56 +0300
Subject: [PATCH 1/2] Minimal compatibility with C++17
C++17 removed std::bind*nd and LLVM libc++ removed them without a way to force backwards compatibility.
Based on patch from Daniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
https://github.com/dealii/dealii/pull/6126/commits/01fba74717d2b8c896317f1a6ad1894fb03d67a0
Note: std:auto_ptr currently can be reenabled in libc++:
https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
---
boost/container/string.hpp | 22 +++++++++++++++++++
.../distributed/detail/mpi_process_group.ipp | 4 ++++
boost/random/uniform_on_sphere.hpp | 2 +-
.../core/non_terminal/impl/grammar.ipp | 2 +-
4 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/boost/container/string.hpp b/boost/container/string.hpp
index 33f5f661..22d59e4d 100644
--- a/boost/container/string.hpp
+++ b/boost/container/string.hpp
@@ -528,7 +528,11 @@ class basic_string
bool operator()(const typename Tr::char_type& x) const
{
return std::find_if(m_first, m_last,
+ #if __cplusplus < 201703L
std::bind1st(Eq_traits<Tr>(), x)) == m_last;
+ #else
+ [](const argument_type &ch) {return Eq_traits<Tr>(x, ch)}) == m_last;
+ #endif
}
};
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -2109,7 +2113,11 @@ class basic_string
pointer finish = addr + sz;
const const_iterator result =
std::find_if(addr + pos, finish,
+ #if __cplusplus < 201703L
std::bind2nd(Eq_traits<Traits>(), c));
+ #else
+ [](const argument_type &ch) {return Eq_traits<Tr>(ch, c)});
+ #endif
return result != finish ? result - begin() : npos;
}
}
@@ -2169,7 +2177,11 @@ class basic_string
const const_iterator last = begin() + container_detail::min_value(len - 1, pos) + 1;
const_reverse_iterator rresult =
std::find_if(const_reverse_iterator(last), rend(),
+ #if __cplusplus < 201703L
std::bind2nd(Eq_traits<Traits>(), c));
+ #else
+ [](const argument_type &ch) {return Eq_traits<Tr>(ch, c)});
+ #endif
return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
}
}
@@ -2312,8 +2324,13 @@ class basic_string
const pointer addr = this->priv_addr();
const pointer finish = addr + this->priv_size();
const const_iterator result
+ #if __cplusplus < 201703L
= std::find_if(addr + pos, finish,
std::not1(std::bind2nd(Eq_traits<Traits>(), c)));
+ #else
+ = std::find_if_not(addr + pos, finish,
+ [](const argument_type &ch) {return Eq_traits<Tr>(ch, c)});
+ #endif
return result != finish ? result - begin() : npos;
}
}
@@ -2368,8 +2385,13 @@ class basic_string
else {
const const_iterator last = begin() + container_detail::min_value(len - 1, pos) + 1;
const const_reverse_iterator rresult =
+ #if __cplusplus < 201703L
std::find_if(const_reverse_iterator(last), rend(),
std::not1(std::bind2nd(Eq_traits<Traits>(), c)));
+ #else
+ std::find_if_not(const_reverse_iterator(last), rend(),
+ [](const argument_type &ch) {return Eq_traits<Tr>(ch, c)});
+ #endif
return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
}
}
diff --git a/boost/graph/distributed/detail/mpi_process_group.ipp b/boost/graph/distributed/detail/mpi_process_group.ipp
index a4d35462..02058b00 100644
--- a/boost/graph/distributed/detail/mpi_process_group.ipp
+++ b/boost/graph/distributed/detail/mpi_process_group.ipp
@@ -841,7 +841,11 @@ all_gather(const mpi_process_group& pg, InputIterator first,
// Adjust sizes based on the number of bytes
std::transform(sizes.begin(), sizes.end(), sizes.begin(),
+ #if __cplusplus < 201703L
std::bind2nd(std::multiplies<int>(), sizeof(T)));
+ #else
+ [](const int& size){return std::multiplies<int>(size, sizeof(T))});
+ #endif
// Compute displacements
std::vector<int> displacements;
diff --git a/boost/random/uniform_on_sphere.hpp b/boost/random/uniform_on_sphere.hpp
index 72c25ef7..d5037352 100644
--- a/boost/random/uniform_on_sphere.hpp
+++ b/boost/random/uniform_on_sphere.hpp
@@ -19,7 +19,7 @@
#include <vector>
#include <algorithm> // std::transform
-#include <functional> // std::bind2nd, std::divides
+#include <functional> // std::divides
#include <boost/assert.hpp>
#include <boost/random/detail/config.hpp>
#include <boost/random/detail/operators.hpp>
diff --git a/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp b/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
index 002d221e..cdb01862 100644
--- a/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
+++ b/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
@@ -286,7 +286,7 @@ struct grammar_definition
helper_list_t& helpers =
grammartract_helper_list::do_(self);
-# if defined(BOOST_INTEL_CXX_VERSION)
+# if (defined(BOOST_INTEL_CXX_VERSION) || (__cplusplus >= 201703L))
typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
--
2.20.1

View file

@ -0,0 +1,233 @@
From f41f9f61150eea670aa9a0351a310ff41e94c0a6 Mon Sep 17 00:00:00 2001
From: Daniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Date: Fri, 30 Mar 2018 12:54:48 +0200
Subject: [PATCH 2/2] Avoid auto_ptr in bundled boost
[ mikhailnov@ROSA:
changed "#if defined(BOOST_NO_CXX11_SMART_PTR)" to "#if __cplusplus < 201703L"
]
Source: https://github.com/dealii/dealii/pull/6126/commits/92b86577ed847ce8dd3eaf7820bda86bdd925e73
This patch is not mandantory as GNU libstdc++ is backwards compatible by default,
and LLVM libc++ can be forced to be compatible with std::auto_ptr:
https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
---
boost/date_time/gregorian/greg_facet.hpp | 8 ++++++++
boost/detail/lightweight_thread.hpp | 12 ++++++++++++
boost/graph/detail/adjacency_list.hpp | 4 ++++
boost/iostreams/chain.hpp | 5 +++++
boost/random/uniform_on_sphere.hpp | 8 ++++++--
.../home/classic/core/non_terminal/impl/grammar.ipp | 5 +++++
boost/spirit/home/classic/symbols/impl/tst.ipp | 8 ++++++++
.../spirit/home/support/detail/lexer/generator.hpp | 13 +++++++++++++
8 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/boost/date_time/gregorian/greg_facet.hpp b/boost/date_time/gregorian/greg_facet.hpp
index b8c6d57f..2343cb95 100644
--- a/boost/date_time/gregorian/greg_facet.hpp
+++ b/boost/date_time/gregorian/greg_facet.hpp
@@ -290,7 +290,11 @@ namespace gregorian {
* names as a default. */
catch(std::bad_cast&){
charT a = '\0';
+#if __cplusplus < 201703L
std::auto_ptr< const facet_def > f(create_facet_def(a));
+#else
+ std::unique_ptr< const facet_def > f(create_facet_def(a));
+#endif
num = date_time::find_match(f->get_short_month_names(),
f->get_long_month_names(),
(greg_month::max)(), s); // greg_month spans 1..12, so max returns the array size,
@@ -332,7 +336,11 @@ namespace gregorian {
* names as a default. */
catch(std::bad_cast&){
charT a = '\0';
+#if __cplusplus < 201703L
std::auto_ptr< const facet_def > f(create_facet_def(a));
+#else
+ std::unique_ptr< const facet_def > f(create_facet_def(a));
+#endif
num = date_time::find_match(f->get_short_weekday_names(),
f->get_long_weekday_names(),
(greg_weekday::max)() + 1, s); // greg_weekday spans 0..6, so increment is needed
diff --git a/boost/detail/lightweight_thread.hpp b/boost/detail/lightweight_thread.hpp
index 6fe70a61..f46568c1 100644
--- a/boost/detail/lightweight_thread.hpp
+++ b/boost/detail/lightweight_thread.hpp
@@ -77,7 +77,11 @@ public:
extern "C" void * lw_thread_routine( void * pv )
{
+#if __cplusplus < 201703L
std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
+#else
+ std::unique_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
+#endif
pt->run();
@@ -88,7 +92,11 @@ extern "C" void * lw_thread_routine( void * pv )
unsigned __stdcall lw_thread_routine( void * pv )
{
+#if __cplusplus < 201703L
std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
+#else
+ std::unique_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
+#endif
pt->run();
@@ -117,7 +125,11 @@ private:
template<class F> int lw_thread_create( pthread_t & pt, F f )
{
+#if __cplusplus < 201703L
std::auto_ptr<lw_abstract_thread> p( new lw_thread_impl<F>( f ) );
+#else
+ std::unique_ptr<lw_abstract_thread> p( new lw_thread_impl<F>( f ) );
+#endif
int r = pthread_create( &pt, 0, lw_thread_routine, p.get() );
diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp
index 1145d88d..8a33c411 100644
--- a/boost/graph/detail/adjacency_list.hpp
+++ b/boost/graph/detail/adjacency_list.hpp
@@ -283,7 +283,11 @@ namespace boost {
// invalidation for add_edge() with EdgeList=vecS. Instead we
// hold a pointer to the property. std::auto_ptr is not
// a perfect fit for the job, but it is darn close.
+#if __cplusplus < 201703L
std::auto_ptr<Property> m_property;
+#else
+ std::unique_ptr<Property> m_property;
+#endif
};
#else
template <class Vertex, class Property>
diff --git a/boost/iostreams/chain.hpp b/boost/iostreams/chain.hpp
index 4af8cc98..8d9edeea 100644
--- a/boost/iostreams/chain.hpp
+++ b/boost/iostreams/chain.hpp
@@ -253,8 +253,13 @@ private:
pback_size != -1 ?
pback_size :
pimpl_->pback_size_;
+#if __cplusplus < 201703L
std::auto_ptr<streambuf_t>
buf(new streambuf_t(t, buffer_size, pback_size));
+#else
+ std::unique_ptr<streambuf_t>
+ buf(new streambuf_t(t, buffer_size, pback_size));
+#endif
list().push_back(buf.get());
buf.release();
if (is_device<component_type>::value) {
diff --git a/boost/random/uniform_on_sphere.hpp b/boost/random/uniform_on_sphere.hpp
index d5037352..cad1a777 100644
--- a/boost/random/uniform_on_sphere.hpp
+++ b/boost/random/uniform_on_sphere.hpp
@@ -225,8 +225,12 @@ public:
}
} while(sqsum == 0);
// for all i: result[i] /= sqrt(sqsum)
- std::transform(_container.begin(), _container.end(), _container.begin(),
- std::bind2nd(std::multiplies<RealType>(), 1/sqrt(sqsum)));
+ RealType inverse_distance = 1 / sqrt(sqsum);
+ for(typename Cont::iterator it = _container.begin();
+ it != _container.end();
+ ++it) {
+ *it *= inverse_distance;
+ }
}
}
return _container;
diff --git a/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp b/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
index cdb01862..33991c57 100644
--- a/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
+++ b/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
@@ -156,8 +156,13 @@ struct grammar_definition
if (definitions[id]!=0)
return *definitions[id];
+#if __cplusplus < 201703L
std::auto_ptr<definition_t>
result(new definition_t(target_grammar->derived()));
+#else
+ std::unique_ptr<definition_t>
+ result(new definition_t(target_grammar->derived()));
+#endif
#ifdef BOOST_SPIRIT_THREADSAFE
boost::unique_lock<boost::mutex> lock(helpers.mutex());
diff --git a/boost/spirit/home/classic/symbols/impl/tst.ipp b/boost/spirit/home/classic/symbols/impl/tst.ipp
index 1a4a0c10..6e68e4b9 100644
--- a/boost/spirit/home/classic/symbols/impl/tst.ipp
+++ b/boost/spirit/home/classic/symbols/impl/tst.ipp
@@ -62,7 +62,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
tst_node*
clone() const
{
+#if __cplusplus < 201703L
std::auto_ptr<tst_node> copy(new tst_node(value));
+#else
+ std::unique_ptr<tst_node> copy(new tst_node(value));
+#endif
if (left)
copy->left = left->clone();
@@ -75,7 +79,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
}
else
{
+#if __cplusplus < 201703L
std::auto_ptr<T> mid_data(new T(*middle.data));
+#else
+ std::unique_ptr<T> mid_data(new T(*middle.data));
+#endif
copy->middle.data = mid_data.release();
}
diff --git a/boost/spirit/home/support/detail/lexer/generator.hpp b/boost/spirit/home/support/detail/lexer/generator.hpp
index daa06e79..347aa203 100644
--- a/boost/spirit/home/support/detail/lexer/generator.hpp
+++ b/boost/spirit/home/support/detail/lexer/generator.hpp
@@ -116,10 +116,18 @@ public:
protected:
typedef detail::basic_charset<CharT> charset;
typedef detail::ptr_list<charset> charset_list;
+#if __cplusplus < 201703L
typedef std::auto_ptr<charset> charset_ptr;
+#else
+ typedef std::unique_ptr<charset> charset_ptr;
+#endif
typedef detail::equivset equivset;
typedef detail::ptr_list<equivset> equivset_list;
+#if __cplusplus < 201703L
typedef std::auto_ptr<equivset> equivset_ptr;
+#else
+ typedef std::unique_ptr<equivset> equivset_ptr;
+#endif
typedef typename charset::index_set index_set;
typedef std::vector<index_set> index_set_vector;
typedef detail::basic_parser<CharT> parser;
@@ -377,8 +385,13 @@ protected:
if (followpos_->empty ()) return npos;
std::size_t index_ = 0;
+#if __cplusplus < 201703L
std::auto_ptr<node_set> set_ptr_ (new node_set);
std::auto_ptr<node_vector> vector_ptr_ (new node_vector);
+#else
+ std::unique_ptr<node_set> set_ptr_ (new node_set);
+ std::unique_ptr<node_vector> vector_ptr_ (new node_vector);
+#endif
for (typename detail::node::node_vector::const_iterator iter_ =
followpos_->begin (), end_ = followpos_->end ();
--
2.20.1

View file

@ -5,9 +5,9 @@ index 8b2bc43..d04f2fe 100644
@@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit<thing_base_unit, boost::units:: @@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit<thing_base_unit, boost::units::
struct euro_base_unit : boost::units::base_unit<euro_base_unit, boost::units::dimensionless_type, 5> struct euro_base_unit : boost::units::base_unit<euro_base_unit, boost::units::dimensionless_type, 5>
{ {
static const char* name() { return("EUR"); } static constexpr const char* name() { return("EUR"); }
- static const char* symbol() { return("€"); } - static constexpr const char* symbol() { return("€"); }
+ static const char* symbol() { return("€"); } + static constexpr const char* symbol() { return("€"); }
}; };
int main() int main()

View file

@ -1,7 +1,7 @@
Index: /trunk/boost/foreach_fwd.hpp Index: boost/boost/foreach_fwd.hpp
=================================================================== ===================================================================
--- /trunk/boost/foreach_fwd.hpp (revision 62661) --- boost/boost/foreach_fwd.hpp (revision 62661)
+++ /trunk/boost/foreach_fwd.hpp (revision 75540) +++ boost/boost/foreach_fwd.hpp (revision 75540)
@@ -15,4 +15,6 @@ @@ -15,4 +15,6 @@
#define BOOST_FOREACH_FWD_HPP #define BOOST_FOREACH_FWD_HPP
@ -40,10 +40,10 @@ Index: /trunk/boost/foreach_fwd.hpp
+ +
} // namespace boost } // namespace boost
Index: /trunk/boost/foreach.hpp Index: boost/boost/foreach.hpp
=================================================================== ===================================================================
--- /trunk/boost/foreach.hpp (revision 75077) --- boost/boost/foreach.hpp (revision 75077)
+++ /trunk/boost/foreach.hpp (revision 75540) +++ boost/boost/foreach.hpp (revision 75540)
@@ -166,5 +166,5 @@ @@ -166,5 +166,5 @@
// at the global namespace for your type. // at the global namespace for your type.
template<typename T> template<typename T>

View file

@ -1,10 +1,9 @@
diff --git 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
index d314cf3..9022408 100644 --- boost_1_73_0/libs/math/config/has_long_double_support.cpp.5~ 2020-04-29 03:27:52.608400056 +0200
--- a/libs/math/config/has_long_double_support.cpp +++ boost_1_73_0/libs/math/config/has_long_double_support.cpp 2020-04-29 14:29:15.063698315 +0200
+++ b/libs/math/config/has_long_double_support.cpp
@@ -8,3 +8,7 @@ @@ -8,3 +8,7 @@
#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS #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 #endif
+ +
+int main(int argc, char *argv[]) { +int main(int argc, char *argv[]) {

View file

@ -1,5 +1,5 @@
--- /usr/include/boost/polygon/polygon.hpp.orig 2012-01-26 01:05:15.934998805 +0800 --- boost/boost/polygon/polygon.hpp.orig 2012-01-26 01:05:15.934998805 +0800
+++ /usr/include/boost/polygon/polygon.hpp 2012-01-26 01:13:10.547000000 +0800 +++ boost/boost/polygon/polygon.hpp 2012-01-26 01:13:10.547000000 +0800
@@ -24,6 +24,8 @@ @@ -24,6 +24,8 @@
#include "transform.hpp" #include "transform.hpp"

122
boost-1.50.0-pool.patch Normal file
View file

@ -0,0 +1,122 @@
Index: boost/boost/pool/pool.hpp
===================================================================
--- boost/boost/pool/pool.hpp (revision 78317)
+++ boost/boost/pool/pool.hpp (revision 78326)
@@ -27,4 +27,6 @@
#include <boost/pool/poolfwd.hpp>
+// std::numeric_limits
+#include <boost/limits.hpp>
// boost::integer::static_lcm
#include <boost/integer/common_factor_ct.hpp>
@@ -358,4 +360,13 @@
}
+ 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<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
+ size_type max_chunks = (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
+
+ return max_chunks;
+ }
+
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 <boost/pool/object_pool.hpp>
+#include <boost/limits.hpp>
+
+int main()
+{
+ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
+
+ void *x = p.malloc();
+ BOOST_ASSERT(!x);
+
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
+
+ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
+ BOOST_ASSERT(!y);
+
+ return 0;
+}

View file

@ -0,0 +1,42 @@
diff -up boost_1_74_0/tools/build/src/tools/gcc.jam.9~ boost_1_74_0/tools/build/src/tools/gcc.jam
--- boost_1_74_0/tools/build/src/tools/gcc.jam.9~ 2020-08-11 16:57:21.000000000 +0200
+++ boost_1_74_0/tools/build/src/tools/gcc.jam 2020-08-14 17:43:55.676937535 +0200
@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sourc
actions compile.c++ bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
}
actions compile.c bind PCH_FILE
@@ -587,7 +587,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) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
}
actions compile.c.preprocess bind PCH_FILE
@@ -704,13 +704,13 @@ actions compile.c.pch
###
# Declare flags and action for compilation.
-toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
-
-toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
+toolset.flags gcc.compile OPTIONS <optimization>off : ;
+toolset.flags gcc.compile OPTIONS <optimization>speed : ;
+toolset.flags gcc.compile OPTIONS <optimization>space : ;
+
+toolset.flags gcc.compile OPTIONS <inlining>off : ;
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
toolset.flags gcc.compile OPTIONS <warnings>on : -Wall ;

View file

@ -1,6 +1,6 @@
--- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200 --- boost_1_65_0/tools/build/src/tools/python.jam.p18~ 2017-08-21 23:51:31.876299004 +0200
+++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200 +++ boost_1_65_0/tools/build/src/tools/python.jam 2017-08-21 23:52:08.595223722 +0200
@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti @@ -99,7 +99,7 @@ py3-version = ;
# using python : 2.3 : /usr/local/bin/python ; # using python : 2.3 : /usr/local/bin/python ;
# #
rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? rule init ( version ? : cmd-or-prefix ? : includes * : libraries ?
@ -9,7 +9,7 @@
{ {
project.push-current $(.project) ; project.push-current $(.project) ;
@@ -107,7 +107,7 @@ rule init ( version ? : cmd-or-prefix ? @@ -112,7 +112,7 @@ rule init ( version ? : cmd-or-prefix ?
} }
} }
@ -18,7 +18,7 @@
project.pop-current ; project.pop-current ;
} }
@@ -653,7 +653,7 @@ local rule system-library-dependencies ( @@ -659,7 +659,7 @@ local rule system-library-dependencies (
# Declare a target to represent Python's library. # Declare a target to represent Python's library.
# #
@ -27,7 +27,7 @@
{ {
# Compute the representation of Python version in the name of Python's # Compute the representation of Python version in the name of Python's
# library file. # library file.
@@ -677,13 +677,13 @@ local rule declare-libpython-target ( ve @@ -683,13 +683,13 @@ local rule declare-libpython-target ( ve
} }
# Declare it. # Declare it.
@ -43,15 +43,15 @@
{ {
local prefix ; local prefix ;
local exec-prefix ; local exec-prefix ;
@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o @@ -705,6 +705,7 @@ local rule configure ( version ? : cmd-o
extension-suffix ?= _d ; extension-suffix ?= _d ;
} }
extension-suffix ?= "" ; extension-suffix ?= "" ;
+ abi-letters ?= "" ; + abi-letters ?= "" ;
# Normalize and dissect any version number. local cmds-to-try ;
local major-minor ;
@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o @@ -968,7 +969,7 @@ local rule configure ( version ? : cmd-o
} }
else else
{ {

View file

@ -1,2 +1,5 @@
# For examples in boost-build # For examples in boost-build
addFilter("E: devel-file-in-non-devel-package") addFilter("E: devel-file-in-non-devel-package")
addFilter("E: zero-length")

View file

@ -1,42 +1,49 @@
%define debug %nil
%define debug_package %nil
%define packver %(echo "%{version}" | sed -e "s/\\\./_/g") %define packver %(echo "%{version}" | sed -e "s/\\\./_/g")
%define libatomic %mklibname boost_atomic %{version} %define libatomic %mklibname boost_atomic_ %{version}
%define libchrono %mklibname boost_chrono %{version} %define libchrono %mklibname boost_chrono_ %{version}
%define libcontainer %mklibname boost_container %{version} %define libcontainer %mklibname boost_container_ %{version}
%define libcontext %mklibname boost_context %{version} %define libcontext %mklibname boost_context_ %{version}
%define libcoroutine %mklibname boost_coroutine %{version} %define libcontract %mklibname boost_contract_ %{version}
%define libdatetime %mklibname boost_date_time %{version} %define libcoroutine %mklibname boost_coroutine_ %{version}
%define libfilesystem %mklibname boost_filesystem %{version} %define libdatetime %mklibname boost_date_time_ %{version}
%define libgraph %mklibname boost_graph %{version} %define libfilesystem %mklibname boost_filesystem_ %{version}
%define libiostreams %mklibname boost_iostreams %{version} %define libgraph %mklibname boost_graph_ %{version}
%define liblocale %mklibname boost_locale %{version} %define libiostreams %mklibname boost_iostreams_ %{version}
%define liblog %mklibname boost_log %{version} %define liblocale %mklibname boost_locale_ %{version}
%define liblogsetup %mklibname boost_log_setup %{version} %define liblog %mklibname boost_log_ %{version}
%define libmathc99 %mklibname boost_math_c99_ %{version} %define liblogsetup %mklibname boost_log_setup_ %{version}
%define libmathc99f %mklibname boost_math_c99f %{version} %define libmathc99 %mklibname boost_math_c99__ %{version}
%define libmathc99l %mklibname boost_math_c99l %{version} %define libmathc99f %mklibname boost_math_c99f_ %{version}
%define libmathc99l %mklibname boost_math_c99l_ %{version}
%define libmathtr1 %mklibname boost_math_tr1_ %{version} %define libmathtr1 %mklibname boost_math_tr1_ %{version}
%define libmathtr1f %mklibname boost_math_tr1f %{version} %define libmathtr1f %mklibname boost_math_tr1f_ %{version}
%define libmathtr1l %mklibname boost_math_tr1l %{version} %define libmathtr1l %mklibname boost_math_tr1l_ %{version}
%define libprgexecmonitor %mklibname boost_prg_exec_monitor %{version} %define libprgexecmonitor %mklibname boost_prg_exec_monitor_ %{version}
%define libprogramoptions %mklibname boost_program_options %{version} %define libprogramoptions %mklibname boost_program_options_ %{version}
%define libpython %mklibname boost_python %{version} %define libpython %mklibname boost_python_ %{version}
%define libpython3 %mklibname boost_python3_ %{version} %define libpython3 %mklibname boost_python35_ %{version}
%define librandom %mklibname boost_random %{version} %define libpython38 %mklibname boost_python38_ %{version}
%define libregex %mklibname boost_regex %{version} %define librandom %mklibname boost_random_ %{version}
%define libserialization %mklibname boost_serialization %{version} %define libregex %mklibname boost_regex_ %{version}
%define libsignals %mklibname boost_signals %{version} %define libserialization %mklibname boost_serialization_ %{version}
%define libsystem %mklibname boost_system %{version} %define libsignals %mklibname boost_signals_ %{version}
%define libthread %mklibname boost_thread %{version} %define libstacktrace %mklibname boost_stacktrace_ %{version}
%define libtimer %mklibname boost_timer %{version} %define libsystem %mklibname boost_system_ %{version}
%define libtypeerasure %mklibname boost_type_erasure %{version} %define libthread %mklibname boost_thread_ %{version}
%define libunittestframework %mklibname boost_unit_test_framework %{version} %define libtimer %mklibname boost_timer_ %{version}
%define libwave %mklibname boost_wave %{version} %define libtypeerasure %mklibname boost_type_erasure_ %{version}
%define libwserialization %mklibname boost_wserialization %{version} %define libunittestframework %mklibname boost_unit_test_framework_ %{version}
%define libwave %mklibname boost_wave_ %{version}
%define libwserialization %mklibname boost_wserialization_ %{version}
%define devname %mklibname boost -d %define devname %mklibname boost -d
%define sdevname %mklibname boost -d -s %define sdevname %mklibname boost -d -s
%define devpython3 %mklibname boost_python3 -d %define devpython3 %mklibname boost_python3 -d
%define devpython38 %mklibname boost_python38 -d
%ifarch aarch64 %ifarch aarch64
%bcond_with context %bcond_with context
@ -48,45 +55,81 @@
# Without --no-undefined, corresponding libraries lose their dependency on Boost.System. # Without --no-undefined, corresponding libraries lose their dependency on Boost.System.
# This is totally wrong, but it's rather a CMake'ification bug. # This is totally wrong, but it's rather a CMake'ification bug.
%define _disable_ld_no_undefined 1 %define _disable_ld_no_undefined 1
#define _disable_lto 1
%define beta %{nil}
%define _libexecdir /usr/libexec
%ifarch %{ix86} %{arm}
%bcond_with numpy
%else
%bcond_without numpy
%endif
# Doesn't work with dual python2/python3 bits
%define _python_bytecompile_build 0
# (tpg) save 50 MiB
%bcond_with docs
# python2
%bcond_with python2
# signals
%bcond_with signals
Summary: Portable C++ libraries Summary: Portable C++ libraries
Name: boost Name: boost
Version: 1.61.0 Version: 1.79.0
Release: 5 Release: 1
License: Boost License: Boost
Group: Development/C++ Group: Development/C++
Url: http://boost.org/ URL: https://www.boost.org
Source0: http://download.sourceforge.net/boost/boost_%{packver}.tar.bz2 #Source0: http://download.sourceforge.net/boost/boost_%{packver}.tar.bz2
Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/boost_%{packver}.tar.bz2
Source100: %{name}.rpmlintrc Source100: %{name}.rpmlintrc
# https://bugzilla.redhat.com/show_bug.cgi?id=1102667
Patch0: boost-1.57.0-python-abi_letters.patch
Patch1: boost-1.57.0-python-libpython_dep.patch
Patch2: boost-1.55.0-python-test-PyImport_AppendInittab.patch
# https://svn.boost.org/trac/boost/ticket/6150 # https://svn.boost.org/trac/boost/ticket/6150
Patch4: boost-1.50.0-fix-non-utf8-files.patch Patch4: boost-1.50.0-fix-non-utf8-files.patch
# Add a manual page for the sole executable, namely bjam, based on the # Add a manual page for the sole executable, namely bjam, based on the
# on-line documentation: # on-line documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Patch5: boost-1.48.0-add-bjam-man-page.patch Patch5: boost-1.48.0-add-bjam-man-page.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=756005 # https://bugzilla.redhat.com/show_bug.cgi?id=756005
# https://svn.boost.org/trac/boost/ticket/6131 # https://svn.boost.org/trac/boost/ticket/6131
Patch7: boost-1.50.0-foreach.patch Patch7: boost-1.50.0-foreach.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=783660 # https://bugzilla.redhat.com/show_bug.cgi?id=783660
# https://svn.boost.org/trac/boost/ticket/6459 fixed # https://svn.boost.org/trac/boost/ticket/6459 fixed
Patch10: boost-1.50.0-long-double-1.patch Patch10: boost-1.50.0-long-double-1.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=784654 # https://bugzilla.redhat.com/show_bug.cgi?id=784654
Patch12: boost-1.50.0-polygon.patch Patch12: boost-1.50.0-polygon.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828856
# https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://bugzilla.redhat.com/show_bug.cgi?id=828857
Patch15: boost-1.61.0-pool.patch Patch15: boost-1.50.0-pool.patch
Patch17: boost-1.57.0-python-libpython_dep.patch
Patch18: boost-1.57.0-python-abi_letters.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
Patch19: boost-1.57.0-build-optflags.patch
#Patch21: boost-unrecognized-option.patch
BuildRequires: doxygen BuildRequires: doxygen
BuildRequires: xsltproc BuildRequires: xsltproc
BuildRequires: bzip2-devel BuildRequires: bzip2-devel
BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(icu-uc) BuildRequires: pkgconfig(icu-uc) >= 60.1
BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(python)
BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(python3)
BuildRequires: python38-devel
%if %{with numpy}
BuildRequires: python3-numpy-devel
%endif
BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zlib)
BuildRequires: bzip2
%description %description
Boost is a collection of free peer-reviewed portable C++ source Boost is a collection of free peer-reviewed portable C++ source
@ -363,7 +406,7 @@ running programs dynamically linked against Boost math_c99.
%files -n %{libmathc99} %files -n %{libmathc99}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_c99.so.%{version} #{_libdir}/libboost_math_c99.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -381,7 +424,7 @@ running programs dynamically linked against Boost math_c99f.
%files -n %{libmathc99f} %files -n %{libmathc99f}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_c99f.so.%{version} #{_libdir}/libboost_math_c99f.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -399,7 +442,7 @@ running programs dynamically linked against Boost math_c99l.
%files -n %{libmathc99l} %files -n %{libmathc99l}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_c99l.so.%{version} #{_libdir}/libboost_math_c99l.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -417,7 +460,7 @@ running programs dynamically linked against Boost math_tr1.
%files -n %{libmathtr1} %files -n %{libmathtr1}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_tr1.so.%{version} #{_libdir}/libboost_math_tr1.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -435,7 +478,7 @@ running programs dynamically linked against Boost math_tr1f.
%files -n %{libmathtr1f} %files -n %{libmathtr1f}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_tr1f.so.%{version} #{_libdir}/libboost_math_tr1f.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -453,7 +496,7 @@ running programs dynamically linked against Boost math_tr1l.
%files -n %{libmathtr1l} %files -n %{libmathtr1l}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_math_tr1l.so.%{version} #{_libdir}/libboost_math_tr1l.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -493,6 +536,8 @@ running programs dynamically linked against Boost program_options.
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%if %{with python2}
%package -n %{libpython} %package -n %{libpython}
Summary: Boost python shared library Summary: Boost python shared library
Group: System/Libraries Group: System/Libraries
@ -507,8 +552,9 @@ running programs dynamically linked against Boost python.
%files -n %{libpython} %files -n %{libpython}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_python.so.%{version} %{_libdir}/libboost_python27.so.%{version}
%endif
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%package -n %{libpython3} %package -n %{libpython3}
@ -525,7 +571,29 @@ running programs dynamically linked against Boost python.
%files -n %{libpython3} %files -n %{libpython3}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_python3.so.%{version} %{_libdir}/libboost_python35.so.%{version}
%ifarch x86_64
%{_libdir}/libboost_numpy35.so.%{version}
%endif
%package -n %{libpython38}
Summary: Boost python3 shared library
Group: System/Libraries
# no one should require this, but provided anyway for maximum compatibility:
Provides: boost = %{EVRD}
%description -n %{libpython38}
Boost is a collection of free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. This package contains the shared library needed for
running programs dynamically linked against Boost python.
%files -n %{libpython38}
%doc LICENSE_1_0.txt
#{_libdir}/libboost_python38.so.%{version}
#ifarch x86_64
#{_libdir}/libboost_numpy38.so.%{version}
#endif
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -583,6 +651,7 @@ running programs dynamically linked against Boost serialization.
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%if %{with signals}
%package -n %{libsignals} %package -n %{libsignals}
Summary: Boost signals shared library Summary: Boost signals shared library
Group: System/Libraries Group: System/Libraries
@ -599,6 +668,8 @@ running programs dynamically linked against Boost signals.
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_signals.so.%{version} %{_libdir}/libboost_signals.so.%{version}
%endif
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%package -n %{libsystem} %package -n %{libsystem}
@ -705,7 +776,7 @@ running programs dynamically linked against Boost wave.
%files -n %{libwave} %files -n %{libwave}
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/libboost_wave.so.%{version} #{_libdir}/libboost_wave.so.%{version}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -727,6 +798,44 @@ running programs dynamically linked against Boost wserialization.
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%package -n %{libstacktrace}
Summary: Boost stacktrace shared library
Group: System/Libraries
# no one should require this, but provided anyway for maximum compatibility:
Provides: boost = %{EVRD}
%description -n %{libstacktrace}
Boost is a collection of free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. This package contains the shared library needed for
running programs dynamically linked against Boost stacktrace.
%files -n %{libstacktrace}
%doc LICENSE_1_0.txt
#{_libdir}/libboost_stacktrace_addr2line.so.%{version}
%{_libdir}/libboost_stacktrace_basic.so.%{version}
%{_libdir}/libboost_stacktrace_noop.so.%{version}
#----------------------------------------------------------------------------
%package -n %{libcontract}
Summary: Boost contract shared library
Group: System/Libraries
# no one should require this, but provided anyway for maximum compatibility:
Provides: boost = %{EVRD}
%description -n %{libcontract}
Boost is a collection of free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. This package contains the shared library needed for
running programs dynamically linked against Boost contract.
%files -n %{libcontract}
%doc LICENSE_1_0.txt
%{_libdir}/libboost_contract.so.%{version}
#----------------------------------------------------------------------------
%package -n %{devname} %package -n %{devname}
Summary: The libraries and headers needed for Boost development Summary: The libraries and headers needed for Boost development
Group: Development/C++ Group: Development/C++
@ -750,11 +859,17 @@ Requires: %{libmathtr1f} = %{EVRD}
Requires: %{libmathtr1l} = %{EVRD} Requires: %{libmathtr1l} = %{EVRD}
Requires: %{libprgexecmonitor} = %{EVRD} Requires: %{libprgexecmonitor} = %{EVRD}
Requires: %{libprogramoptions} = %{EVRD} Requires: %{libprogramoptions} = %{EVRD}
%if %{with python2}
Requires: %{libpython} = %{EVRD} Requires: %{libpython} = %{EVRD}
%endif
Requires: %{libpython3} = %{EVRD}
Requires: %{libpython38} = %{EVRD}
Requires: %{librandom} = %{EVRD} Requires: %{librandom} = %{EVRD}
Requires: %{libregex} = %{EVRD} Requires: %{libregex} = %{EVRD}
Requires: %{libserialization} = %{EVRD} Requires: %{libserialization} = %{EVRD}
%if %{with signals}
Requires: %{libsignals} = %{EVRD} Requires: %{libsignals} = %{EVRD}
%endif
Requires: %{libsystem} = %{EVRD} Requires: %{libsystem} = %{EVRD}
Requires: %{libthread} = %{EVRD} Requires: %{libthread} = %{EVRD}
Requires: %{libtimer} = %{EVRD} Requires: %{libtimer} = %{EVRD}
@ -774,7 +889,8 @@ symlinks needed for Boost development.
%files -n %{devname} %files -n %{devname}
%{_includedir}/boost %{_includedir}/boost
%{_libdir}/libboost_*.so %{_libdir}/libboost_*.so
%exclude %{_libdir}/libboost_python3.so %exclude %{_libdir}/libboost_python35.so
%{_libdir}/cmake/*
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@ -825,21 +941,41 @@ Standard Library. This package contains headers and shared library
symlinks needed for Boost development. symlinks needed for Boost development.
%files -n %{devpython3} %files -n %{devpython3}
%{_libdir}/libboost_python3.so %{_libdir}/libboost_python35.so
%package -n %{devpython38}
Summary: The libraries and headers needed for Boost Python 3 development
Group: Development/C++
Requires: %{libpython38} = %{EVRD}
Requires: %{devname} = %{EVRD}
Provides: %{name}-python38-devel = %{EVRD}
%description -n %{devpython38}
Boost is a collection of free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. This package contains headers and shared library
symlinks needed for Boost development.
%files -n %{devpython38}
#{_libdir}/libboost_python38.so
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%prep %prep
%setup -qn boost_%{packver} %setup -qn boost_%{packver}
%patch0 -p1 #patch0 -p1
%patch1 -p1 #patch1 -p1
%patch2 -p1 #patch2 -p1
%patch4 -p1 #patch4 -p1
%patch5 -p1 #patch5 -p1
%patch7 -p2 #patch7 -p1
%patch10 -p1 #patch10 -p1
%patch12 -p3 #patch12 -p1
%patch15 -p0 #patch15 -p1
#patch16 -p1
#patch17 -p1
#patch18 -p1
#patch19 -p1
# Preparing the docs # Preparing the docs
mkdir packagedoc mkdir packagedoc
@ -857,17 +993,26 @@ cat > ./tools/build/src/user-config.jam << EOF
using gcc : %{gcc_ver} : gcc : <cflags>"%{optflags}" <cxxflags>"%{optflags}" <linkflags>"%{ldflags}" ; using gcc : %{gcc_ver} : gcc : <cflags>"%{optflags}" <cxxflags>"%{optflags}" <linkflags>"%{ldflags}" ;
using python : %{py3_ver} : %{_bindir}/python%{py3_ver} : %{_includedir}/python%{py3_ver}m : %{_libdir} : : : ; using python : %{py3_ver} : %{_bindir}/python%{py3_ver} : %{_includedir}/python%{py3_ver}m : %{_libdir} : : : ;
using python : %{py_ver} : %{_bindir}/python%{py_ver} : %{_includedir}/python%{py_ver} : %{_libdir} : : : ; using python : %{py_ver} : %{_bindir}/python%{py_ver} : %{_includedir}/python%{py_ver} : %{_libdir} : : : ;
using python : %{py38_ver} : %{_libexecdir}/python%{py38_ver} : %{_includedir}/python%{py38_ver} : %{_libdir} : : : ;
EOF EOF
./bootstrap.sh --with-toolset=gcc --with-icu --prefix=%{_prefix} --libdir=%{_libdir} --with-python=%{py_ver}
./bootstrap.sh --with-toolset=gcc --with-icu --prefix=%{_prefix} --libdir=%{_libdir} --with-python=%{py3_ver}
./b2 -d+2 -q %{?_smp_mflags} --without-mpi \ ./b2 -d+2 -q %{?_smp_mflags} --without-mpi \
--prefix=%{_prefix} --libdir=%{_libdir} \ --prefix=%{_prefix} --libdir=%{_libdir} \
%ifarch %ix86
instruction-set=i686 \
%endif
%if !%{with context} %if !%{with context}
--without-context --without-coroutine \ --without-context --without-coroutine \
%endif
%ifarch znver1
instruction-set=znver1 \
%endif %endif
linkflags="%{ldflags} -lstdc++ -lm" \ linkflags="%{ldflags} -lstdc++ -lm" \
-sHAVE_ICU=1 \ -sHAVE_ICU=1 \
python=%{py_ver} \ link=shared threading=multi debug-symbols=off --layout=system \
link=shared threading=multi debug-symbols=off --layout=system python=%{py38_ver}
# Taken from the Fedora .src.rpm. # Taken from the Fedora .src.rpm.
echo ============================= build Boost.Build ================== echo ============================= build Boost.Build ==================
@ -881,14 +1026,14 @@ echo ============================= build Boost.Build ==================
--without-context --without-coroutine \ --without-context --without-coroutine \
%endif %endif
link=shared \ link=shared \
python=%{py_ver} \ python=%{py3_ver} \
install install
echo ============================= install Boost.Build ================== echo ============================= install Boost.Build ==================
(cd tools/build (cd tools/build
./b2 --prefix=%{buildroot}%{_prefix} install ./b2 --prefix=%{buildroot}%{_prefix} install
# Fix some permissions # Fix some permissions
chmod -x %{buildroot}%{_datadir}/boost-build/src/build/alias.py # chmod -x %{buildroot}%{_datadir}/boost-build/src/build/alias.py
chmod +x %{buildroot}%{_datadir}/boost-build/src/tools/doxproc.py chmod +x %{buildroot}%{_datadir}/boost-build/src/tools/doxproc.py
# We don't want to distribute this # We don't want to distribute this
rm -f %{buildroot}%{_bindir}/b2 rm -f %{buildroot}%{_bindir}/b2