boost: update to 1.82.0

This commit is contained in:
Đoàn Trần Công Danh 2023-03-08 23:17:40 +07:00
parent 51323a041f
commit a6bf853d6d
12 changed files with 398 additions and 278 deletions

View file

@ -631,42 +631,43 @@ libip4tc.so.2 iptables-1.8.3_1
libipq.so.0 iptables-1.4.7_1
libnm.so.0 libnm-1.0.0_1
libKF5ItemModels.so.5 kitemmodels-5.26.0_1
libboost_context.so.1.81.0 libboost_context-1.81.0_1
libboost_coroutine.so.1.81.0 libboost_coroutine-1.81.0_1
libboost_container.so.1.81.0 libboost_container-1.81.0_1
libboost_prg_exec_monitor.so.1.81.0 libboost_prg_exec_monitor-1.81.0_1
libboost_timer.so.1.81.0 libboost_timer-1.81.0_1
libboost_random.so.1.81.0 libboost_random-1.81.0_1
libboost_filesystem.so.1.81.0 libboost_filesystem-1.81.0_1
libboost_unit_test_framework.so.1.81.0 libboost_unit_test_framework-1.81.0_1
libboost_math_c99.so.1.81.0 libboost_math_c99-1.81.0_1
libboost_math_tr1.so.1.81.0 libboost_math_tr1-1.81.0_1
libboost_nowide.so.1.81.0 libboost_nowide-1.81.0_1
libboost_json.so.1.81.0 libboost_json-1.81.0_1
libboost_regex.so.1.81.0 libboost_regex-1.81.0_1
libboost_serialization.so.1.81.0 libboost_serialization-1.81.0_1
libboost_chrono.so.1.81.0 libboost_chrono-1.81.0_1
libboost_wserialization.so.1.81.0 libboost_wserialization-1.81.0_1
libboost_graph.so.1.81.0 libboost_graph-1.81.0_1
libboost_graph_parallel.so.1.81.0 libboost_graph_parallel-1.81.0_1
libboost_log.so.1.81.0 libboost_log-1.81.0_1
libboost_locale.so.1.81.0 libboost_locale-1.81.0_1
libboost_program_options.so.1.81.0 libboost_program_options-1.81.0_1
libboost_iostreams.so.1.81.0 libboost_iostreams-1.81.0_1
libboost_system.so.1.81.0 libboost_system-1.81.0_1
libboost_thread.so.1.81.0 libboost_thread-1.81.0_1
libboost_log_setup.so.1.81.0 libboost_log_setup-1.81.0_1
libboost_date_time.so.1.81.0 libboost_date_time-1.81.0_1
libboost_wave.so.1.81.0 libboost_wave-1.81.0_1
libboost_atomic.so.1.81.0 libboost_atomic-1.81.0_1
libboost_type_erasure.so.1.81.0 libboost_type_erasure-1.81.0_1
libboost_fiber.so.1.81.0 libboost_fiber-1.81.0_1
libboost_stacktrace_noop.so.1.81.0 libboost_stacktrace_noop-1.81.0_1
libboost_stacktrace_addr2line.so.1.81.0 libboost_stacktrace_addr2line-1.81.0_1
libboost_stacktrace_basic.so.1.81.0 libboost_stacktrace_basic-1.81.0_1
libboost_mpi.so.1.81.0 libboost_mpi-1.81.0_1
libboost_mpi_python311.so.1.81.0 libboost_mpi-python3-1.81.0_1
libboost_python311.so.1.81.0 boost-python3-1.81.0_1
libboost_context.so.1.82.0 libboost_context-1.82.0.alpha_1
libboost_coroutine.so.1.82.0 libboost_coroutine-1.82.0.alpha_1
libboost_container.so.1.82.0 libboost_container-1.82.0.alpha_1
libboost_prg_exec_monitor.so.1.82.0 libboost_prg_exec_monitor-1.82.0.alpha_1
libboost_timer.so.1.82.0 libboost_timer-1.82.0.alpha_1
libboost_random.so.1.82.0 libboost_random-1.82.0.alpha_1
libboost_filesystem.so.1.82.0 libboost_filesystem-1.82.0.alpha_1
libboost_unit_test_framework.so.1.82.0 libboost_unit_test_framework-1.82.0.alpha_1
libboost_math_c99.so.1.82.0 libboost_math_c99-1.82.0.alpha_1
libboost_math_tr1.so.1.82.0 libboost_math_tr1-1.82.0.alpha_1
libboost_nowide.so.1.82.0 libboost_nowide-1.82.0.alpha_1
libboost_json.so.1.82.0 libboost_json-1.82.0.alpha_1
libboost_regex.so.1.82.0 libboost_regex-1.82.0.alpha_1
libboost_serialization.so.1.82.0 libboost_serialization-1.82.0.alpha_1
libboost_chrono.so.1.82.0 libboost_chrono-1.82.0.alpha_1
libboost_wserialization.so.1.82.0 libboost_wserialization-1.82.0.alpha_1
libboost_graph.so.1.82.0 libboost_graph-1.82.0.alpha_1
libboost_graph_parallel.so.1.82.0 libboost_graph_parallel-1.82.0.alpha_1
libboost_log.so.1.82.0 libboost_log-1.82.0.alpha_1
libboost_locale.so.1.82.0 libboost_locale-1.82.0.alpha_1
libboost_program_options.so.1.82.0 libboost_program_options-1.82.0.alpha_1
libboost_iostreams.so.1.82.0 libboost_iostreams-1.82.0.alpha_1
libboost_system.so.1.82.0 libboost_system-1.82.0.alpha_1
libboost_sync.so.1.82.0 libboost_system-1.82.0.alpha_1
libboost_thread.so.1.82.0 libboost_thread-1.82.0.alpha_1
libboost_log_setup.so.1.82.0 libboost_log_setup-1.82.0.alpha_1
libboost_date_time.so.1.82.0 libboost_date_time-1.82.0.alpha_1
libboost_wave.so.1.82.0 libboost_wave-1.82.0.alpha_1
libboost_atomic.so.1.82.0 libboost_atomic-1.82.0.alpha_1
libboost_type_erasure.so.1.82.0 libboost_type_erasure-1.82.0.alpha_1
libboost_fiber.so.1.82.0 libboost_fiber-1.82.0.alpha_1
libboost_stacktrace_noop.so.1.82.0 libboost_stacktrace_noop-1.82.0.alpha_1
libboost_stacktrace_addr2line.so.1.82.0 libboost_stacktrace_addr2line-1.82.0.alpha_1
libboost_stacktrace_basic.so.1.82.0 libboost_stacktrace_basic-1.82.0.alpha_1
libboost_mpi.so.1.82.0 libboost_mpi-1.82.0.alpha_1
libboost_mpi_python311.so.1.82.0 libboost_mpi-python3-1.82.0.alpha_1
libboost_python311.so.1.82.0 boost-python3-1.82.0.alpha_1
libexempi.so.8 exempi-2.5.0_1
libatasmart.so.4 libatasmart-0.17_1
libsgutils2-1.45.so.2 libsgutils-1.45_1

View file

@ -1,116 +0,0 @@
From 2e6674d63f2f541a3fd32f50d593be0c71f686f8 Mon Sep 17 00:00:00 2001
From: spreadsort <spreadsort@gmail.com>
Date: Sat, 17 Dec 2022 17:18:17 -0500
Subject: [PATCH] Delete non-critical
---
.../boost/sort/spreadsort/detail/float_sort.hpp | 2 --
.../boost/sort/spreadsort/detail/integer_sort.hpp | 6 ------
.../boost/sort/spreadsort/detail/string_sort.hpp | 15 +++++----------
3 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/boost/sort/spreadsort/detail/float_sort.hpp b/boost/sort/spreadsort/detail/float_sort.hpp
index 8d20bef..8682afd 100644
--- a/boost/sort/spreadsort/detail/float_sort.hpp
+++ b/boost/sort/spreadsort/detail/float_sort.hpp
@@ -777,7 +777,6 @@ namespace spreadsort {
float_sort(RandomAccessIter first, RandomAccessIter last, Div_type,
Right_shift rshift)
{
- BOOST_STATIC_ASSERT(sizeof(boost::uintmax_t) >= sizeof(Div_type));
boost::sort::pdqsort(first, last);
}
@@ -819,7 +818,6 @@ namespace spreadsort {
float_sort(RandomAccessIter first, RandomAccessIter last, Div_type,
Right_shift rshift, Compare comp)
{
- BOOST_STATIC_ASSERT(sizeof(boost::uintmax_t) >= sizeof(Div_type));
boost::sort::pdqsort(first, last, comp);
}
}
diff --git a/boost/sort/spreadsort/detail/integer_sort.hpp b/boost/sort/spreadsort/detail/integer_sort.hpp
index 77576d0..fad55b3 100644
--- a/boost/sort/spreadsort/detail/integer_sort.hpp
+++ b/boost/sort/spreadsort/detail/integer_sort.hpp
@@ -390,8 +390,6 @@ namespace spreadsort {
//defaulting to boost::sort::pdqsort when integer_sort won't work
integer_sort(RandomAccessIter first, RandomAccessIter last, Div_type)
{
- //Warning that we're using boost::sort::pdqsort, even though integer_sort was called
- BOOST_STATIC_ASSERT( sizeof(Div_type) <= sizeof(size_t) );
boost::sort::pdqsort(first, last);
}
@@ -437,8 +435,6 @@ namespace spreadsort {
integer_sort(RandomAccessIter first, RandomAccessIter last, Div_type,
Right_shift shift, Compare comp)
{
- //Warning that we're using boost::sort::pdqsort, even though integer_sort was called
- BOOST_STATIC_ASSERT( sizeof(Div_type) <= sizeof(size_t) );
boost::sort::pdqsort(first, last, comp);
}
@@ -481,8 +477,6 @@ namespace spreadsort {
integer_sort(RandomAccessIter first, RandomAccessIter last, Div_type,
Right_shift shift)
{
- //Warning that we're using boost::sort::pdqsort, even though integer_sort was called
- BOOST_STATIC_ASSERT( sizeof(Div_type) <= sizeof(size_t) );
boost::sort::pdqsort(first, last);
}
}
diff --git a/boost/sort/spreadsort/detail/string_sort.hpp b/boost/sort/spreadsort/detail/string_sort.hpp
index fd67a55..e0c3f74 100644
--- a/boost/sort/spreadsort/detail/string_sort.hpp
+++ b/boost/sort/spreadsort/detail/string_sort.hpp
@@ -699,8 +699,7 @@ namespace spreadsort {
string_sort(RandomAccessIter first, RandomAccessIter last,
Unsigned_char_type)
{
- //Warning that we're using boost::sort::pdqsort, even though string_sort was called
- BOOST_STATIC_ASSERT( sizeof(Unsigned_char_type) <= 2 );
+ // Use boost::sort::pdqsort if the char_type is too large for string_sort.
boost::sort::pdqsort(first, last);
}
@@ -725,8 +724,7 @@ namespace spreadsort {
{
typedef typename std::iterator_traits<RandomAccessIter>::value_type
Data_type;
- //Warning that we're using boost::sort::pdqsort, even though string_sort was called
- BOOST_STATIC_ASSERT( sizeof(Unsigned_char_type) <= 2 );
+ // Use boost::sort::pdqsort if the char_type is too large for string_sort.
boost::sort::pdqsort(first, last, std::greater<Data_type>());
}
@@ -751,8 +749,7 @@ namespace spreadsort {
string_sort(RandomAccessIter first, RandomAccessIter last,
Get_char get_character, Get_length length, Unsigned_char_type)
{
- //Warning that we're using boost::sort::pdqsort, even though string_sort was called
- BOOST_STATIC_ASSERT( sizeof(Unsigned_char_type) <= 2 );
+ // Use boost::sort::pdqsort if the char_type is too large for string_sort.
boost::sort::pdqsort(first, last);
}
@@ -779,8 +776,7 @@ namespace spreadsort {
string_sort(RandomAccessIter first, RandomAccessIter last,
Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)
{
- //Warning that we're using boost::sort::pdqsort, even though string_sort was called
- BOOST_STATIC_ASSERT( sizeof(Unsigned_char_type) <= 2 );
+ // Use boost::sort::pdqsort if the char_type is too large for string_sort.
boost::sort::pdqsort(first, last, comp);
}
@@ -806,8 +802,7 @@ namespace spreadsort {
reverse_string_sort(RandomAccessIter first, RandomAccessIter last,
Get_char get_character, Get_length length, Compare comp, Unsigned_char_type)
{
- //Warning that we're using boost::sort::pdqsort, even though string_sort was called
- BOOST_STATIC_ASSERT( sizeof(Unsigned_char_type) <= 2 );
+ // Use boost::sort::pdqsort if the char_type is too large for string_sort.
boost::sort::pdqsort(first, last, comp);
}
}

View file

@ -1,8 +1,6 @@
Index: boost-1.81.0/libs/container/test/static_vector_test.cpp
===================================================================
--- boost-1.81.0.orig/libs/container/test/static_vector_test.cpp
+++ boost-1.81.0/libs/container/test/static_vector_test.cpp
@@ -633,6 +633,7 @@ bool default_init_test()//Test for defau
--- a/libs/container/test/static_vector_test.cpp
+++ b/libs/container/test/static_vector_test.cpp
@@ -632,6 +632,7 @@ bool default_init_test()//Test for defau
{
di_vector_t v(Capacity, default_init);
}
@ -10,7 +8,7 @@ Index: boost-1.81.0/libs/container/test/static_vector_test.cpp
{
di_vector_t v;
int *p = v.data();
@@ -654,6 +655,7 @@ bool default_init_test()//Test for defau
@@ -653,6 +654,7 @@ bool default_init_test()//Test for defau
v.~di_vector_t();
}

View file

@ -1,24 +0,0 @@
From d204b41dba231ffbb648d11c5bcbd3cd3c84f519 Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Thu, 15 Dec 2022 15:53:42 +0300
Subject: [PATCH] Use access() to check if the root directory is writable.
This is more reliable than testing if the user is root as in some
chroot environments root directory may be writable by a non-root user.
---
test/operations_test.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/filesystem/test/operations_test.cpp b/libs/filesystem/test/operations_test.cpp
index 4e3c2b966..65858a4e6 100644
--- a/libs/filesystem/test/operations_test.cpp
+++ b/libs/filesystem/test/operations_test.cpp
@@ -1232,7 +1232,7 @@ void create_directories_tests()
BOOST_TEST(!ec);
#ifdef BOOST_POSIX_API
- if (geteuid() > 0)
+ if (access("/", W_OK) != 0)
{
ec.clear();
BOOST_TEST(!fs::create_directories("/foo", ec)); // may be OK on Windows

View file

@ -0,0 +1,306 @@
From 396eef1398a87463a234e7d313d637ea67df96b5 Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
Date: Sun, 7 May 2023 20:58:27 +0300
Subject: [PATCH] Restrict generic path comparison operators to avoid
ambiguities with std lib.
Path comparison operators that accept arbitrary path source types now require
the other argument to be exactly path. This prevents the compiler from picking
those operators when the other argument is convertible to path. This can happen
even when neither of the arguments are actually paths, e.g. when the
comparison operators are brought into the current scope by a using directive.
Fixes https://github.com/boostorg/filesystem/issues/285.
---
diff --git a/boost/filesystem/path.hpp b/boost/filesystem/path.hpp
index 61278ef74..729e18812 100644
--- a/boost/filesystem/path.hpp
+++ b/boost/filesystem/path.hpp
@@ -1287,20 +1287,26 @@ BOOST_FORCEINLINE bool operator==(path const& lhs, path const& rhs)
return lhs.compare(rhs) == 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator==(path const& lhs, Source const& rhs)
+>::type operator==(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) == 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator==(Source const& lhs, path const& rhs)
+>::type operator==(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) == 0;
}
@@ -1310,20 +1316,26 @@ BOOST_FORCEINLINE bool operator!=(path const& lhs, path const& rhs)
return lhs.compare(rhs) != 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator!=(path const& lhs, Source const& rhs)
+>::type operator!=(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) != 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator!=(Source const& lhs, path const& rhs)
+>::type operator!=(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) != 0;
}
@@ -1333,20 +1345,26 @@ BOOST_FORCEINLINE bool operator<(path const& lhs, path const& rhs)
return lhs.compare(rhs) < 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator<(path const& lhs, Source const& rhs)
+>::type operator<(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) < 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator<(Source const& lhs, path const& rhs)
+>::type operator<(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) > 0;
}
@@ -1356,20 +1374,26 @@ BOOST_FORCEINLINE bool operator<=(path const& lhs, path const& rhs)
return lhs.compare(rhs) <= 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator<=(path const& lhs, Source const& rhs)
+>::type operator<=(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) <= 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator<=(Source const& lhs, path const& rhs)
+>::type operator<=(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) >= 0;
}
@@ -1379,20 +1403,26 @@ BOOST_FORCEINLINE bool operator>(path const& lhs, path const& rhs)
return lhs.compare(rhs) > 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator>(path const& lhs, Source const& rhs)
+>::type operator>(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) > 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator>(Source const& lhs, path const& rhs)
+>::type operator>(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) < 0;
}
@@ -1402,35 +1432,41 @@ BOOST_FORCEINLINE bool operator>=(path const& lhs, path const& rhs)
return lhs.compare(rhs) >= 0;
}
-template< typename Source >
+template< typename Path, typename Source >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator>=(path const& lhs, Source const& rhs)
+>::type operator>=(Path const& lhs, Source const& rhs)
{
return lhs.compare(rhs) >= 0;
}
-template< typename Source >
+template< typename Source, typename Path >
BOOST_FORCEINLINE typename boost::enable_if_c<
- detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >::value,
+ boost::conjunction<
+ boost::is_same< Path, path >,
+ detail::path_traits::is_convertible_to_path_source< typename boost::remove_cv< Source >::type >
+ >::value,
bool
->::type operator>=(Source const& lhs, path const& rhs)
+>::type operator>=(Source const& lhs, Path const& rhs)
{
return rhs.compare(lhs) <= 0;
}
// Note: Declared as a template to delay binding to Boost.ContainerHash functions and make the dependency optional
-template< typename T >
+template< typename Path >
inline typename boost::enable_if_c<
- boost::is_same< T, path >::value,
+ boost::is_same< Path, path >::value,
std::size_t
->::type hash_value(T const& p) BOOST_NOEXCEPT
+>::type hash_value(Path const& p) BOOST_NOEXCEPT
{
#ifdef BOOST_WINDOWS_API
std::size_t seed = 0u;
- for (typename T::value_type const* it = p.c_str(); *it; ++it)
+ for (typename Path::value_type const* it = p.c_str(); *it; ++it)
hash_combine(seed, *it == L'/' ? L'\\' : *it);
return seed;
#else // BOOST_POSIX_API
diff --git a/libs/filesystem/test/Jamfile.v2 b/libs/filesystem/test/Jamfile.v2
index d1ffc2a6f..5d70b08ec 100644
--- a/libs/filesystem/test/Jamfile.v2
+++ b/libs/filesystem/test/Jamfile.v2
@@ -85,6 +85,7 @@ run operations_test.cpp : : : <link>static <define>BOOST_FILESYSTEM_VERSION=4 :
run operations_unit_test.cpp : $(HERE) : : <link>shared <define>BOOST_FILESYSTEM_VERSION=4 <test-info>always_show_run_output ;
run copy_test.cpp : : : <define>BOOST_FILESYSTEM_VERSION=4 ;
compile-fail cf_path_nullptr_test.cpp ;
+compile path_operator_ambiguity.cpp : <toolset>gcc:<warnings-as-errors>on ;
run path_test.cpp : : : <link>shared <define>BOOST_FILESYSTEM_VERSION=4 ;
run path_test.cpp : : : <link>static <define>BOOST_FILESYSTEM_VERSION=4 : path_test_static ;
run path_test.cpp : : : <link>shared <define>BOOST_FILESYSTEM_VERSION=3 : path_test_v3 ;
diff --git a/libs/filesystem/test/path_operator_ambiguity.cpp b/libs/filesystem/test/path_operator_ambiguity.cpp
new file mode 100644
index 000000000..5a43a63b6
--- /dev/null
+++ b/libs/filesystem/test/path_operator_ambiguity.cpp
@@ -0,0 +1,53 @@
+// Copyright Andrey Semashev 2023
+//
+// Use, modification, and distribution is subject to 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)
+//
+// See library home page at http://www.boost.org/libs/filesystem
+//
+// This test verifies that a using directive does not introduce operator
+// ambiguity with the standard library.
+// https://github.com/boostorg/filesystem/issues/285
+
+#include <string>
+#include <boost/filesystem.hpp>
+
+using namespace boost::filesystem;
+
+bool test_eq(char* arg)
+{
+ return std::string("abc") == arg;
+}
+
+bool test_ne(char* arg)
+{
+ return std::string("def") != arg;
+}
+
+bool test_lt(char* arg)
+{
+ return std::string("ghi") < arg;
+}
+
+bool test_gt(char* arg)
+{
+ return std::string("jkl") > arg;
+}
+
+bool test_le(char* arg)
+{
+ return std::string("mno") <= arg;
+}
+
+bool test_ge(char* arg)
+{
+ return std::string("pqr") >= arg;
+}
+
+int main(int, char* argv[])
+{
+ return test_eq(argv[0]) + test_ne(argv[0]) +
+ test_lt(argv[0]) + test_gt(argv[0]) +
+ test_le(argv[0]) + test_ge(argv[0]);
+}

View file

@ -1,7 +1,5 @@
Index: boost-1.81.0/libs/gil/test/extension/image_processing/hough_parameter.cpp
===================================================================
--- boost-1.81.0.orig/libs/gil/test/extension/image_processing/hough_parameter.cpp
+++ boost-1.81.0/libs/gil/test/extension/image_processing/hough_parameter.cpp
--- a/libs/gil/test/extension/image_processing/hough_parameter.cpp
+++ b/libs/gil/test/extension/image_processing/hough_parameter.cpp
@@ -26,7 +26,8 @@ void from_step_count_test()
for (std::size_t i = 0; i < param.step_count; ++i)
{
@ -27,14 +25,12 @@ Index: boost-1.81.0/libs/gil/test/extension/image_processing/hough_parameter.cpp
const auto bigger_dim = width > height ? width : height;
const double expected_angle = std::atan2(1.0, bigger_dim);
- BOOST_TEST(expected_angle == gil::minimum_angle_step({width, height}));
+ BOOST_TEST(std::abs(expected_angle == gil::minimum_angle_step({width, height})) <= 0.00001);
+ BOOST_TEST(std::abs(expected_angle - gil::minimum_angle_step({width, height})) <= 0.00001);
}
int main()
Index: boost-1.81.0/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
===================================================================
--- boost-1.81.0.orig/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
+++ boost-1.81.0/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
--- a/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
+++ b/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
@@ -83,7 +83,10 @@ void test_image_assign_hsl()
float const hue = (x + 1.f) / w;
gil::hsl32f_pixel_t const p(hue, 1.0, v);
@ -47,10 +43,8 @@ Index: boost-1.81.0/libs/gil/test/extension/toolbox/color_convert_hsl.cpp
}
}
}
Index: boost-1.81.0/libs/gil/test/extension/toolbox/color_convert_hsv.cpp
===================================================================
--- boost-1.81.0.orig/libs/gil/test/extension/toolbox/color_convert_hsv.cpp
+++ boost-1.81.0/libs/gil/test/extension/toolbox/color_convert_hsv.cpp
--- a/libs/gil/test/extension/toolbox/color_convert_hsv.cpp
+++ b/libs/gil/test/extension/toolbox/color_convert_hsv.cpp
@@ -58,7 +58,10 @@ void test_image_assign_hsv()
float const hue = (x + 1.f) / w;
gil::hsv32f_pixel_t const p(hue, 1.0, v);

View file

@ -6,7 +6,7 @@ its cmake config. This patch strips $DESTDIR out
of cmake config
--- a/tools/boost_install/boost-install.jam
+++ b/tools/boost_install/boost-install.jam
@@ -678,6 +678,16 @@ local rule path-native-fwd ( path )
@@ -703,6 +703,16 @@ local rule path-native-fwd ( path )
return $(path) ;
}
@ -23,7 +23,7 @@ of cmake config
local rule get-dir ( name : dir )
{
if [ path.is-rooted $(dir) ]
@@ -756,6 +766,7 @@ rule generate-cmake-config- ( target : s
@@ -781,6 +791,7 @@ rule generate-cmake-config- ( target : s
if [ path.is-rooted $(cmakedir) ]
{
local cmakedir-native = [ path-native-fwd $(cmakedir) ] ;

View file

@ -1,11 +1,9 @@
Index: boost-1.81.0/libs/iostreams/test/stream_state_test.cpp
===================================================================
--- boost-1.81.0.orig/libs/iostreams/test/stream_state_test.cpp
+++ boost-1.81.0/libs/iostreams/test/stream_state_test.cpp
--- a/libs/iostreams/test/stream_state_test.cpp
+++ b/libs/iostreams/test/stream_state_test.cpp
@@ -165,7 +165,8 @@ test_suite* init_unit_test_suite(int, ch
#endif
// MSSTL and libc++ don't handle exceptions from seek correctly
// MSSTL and libc++ don't handle exceptions from seekg correctly
-#if !defined(_CPPLIB_VER) && !defined(_LIBCPP_VERSION)
+// libstdc++?
+#if !defined(_CPPLIB_VER) && !defined(_LIBCPP_VERSION) && 0

View file

@ -1,14 +0,0 @@
https://github.com/boostorg/ptr_container/issues/36
Index: boost-1.81.0/libs/ptr_container/test/serialization.cpp
===================================================================
--- boost-1.81.0.orig/libs/ptr_container/test/serialization.cpp
+++ boost-1.81.0/libs/ptr_container/test/serialization.cpp
@@ -203,8 +203,6 @@ void test_serialization_unordered_set_he
std::remove( fn.c_str() );
BOOST_CHECK_EQUAL( vec.size(), vec2.size() );
- BOOST_CHECK_EQUAL( (*vec2.begin()).i, -1 );
- BOOST_CHECK_EQUAL( (*++vec2.begin()).i, 0 );
}
template< class Map, class OArchive, class IArchive >

View file

@ -1,12 +1,14 @@
See https://github.com/boostorg/phoenix/issues/111
Index: boost-1.81.0.beta1/boost/phoenix/stl.hpp
===================================================================
--- boost-1.81.0.beta1.orig/boost/phoenix/stl.hpp
+++ boost-1.81.0.beta1/boost/phoenix/stl.hpp
@@ -11,6 +11,5 @@
#include <boost/phoenix/stl/algorithm.hpp>
#include <boost/phoenix/stl/container.hpp>
-#include <boost/phoenix/stl/tuple.hpp>
#endif
https://github.com/boostorg/phoenix/pull/112
diff --git a/boost/phoenix/stl/tuple.hpp b/boost/phoenix/stl/tuple.hpp
index a83014ac..d04ad16e 100644
--- a/boost/phoenix/stl/tuple.hpp
+++ b/boost/phoenix/stl/tuple.hpp
@@ -110,7 +110,7 @@ namespace boost { namespace phoenix {
namespace placeholders {
#define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT)
#define BOOST_PP_LOCAL_MACRO(N) \
- auto uarg##N = \
+ const auto uarg##N = \
boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1);
#include BOOST_PP_LOCAL_ITERATE()
}

View file

@ -1,8 +1,8 @@
# Template file for 'boost'
pkgname=boost
version=1.81.0
revision=2
_version=${version/beta/b}
version=1.82.0
revision=1
build_style=meta
hostmakedepends="which bzip2-devel icu-devel python3-devel pkg-config openmpi"
makedepends="zlib-devel bzip2-devel icu-devel python3-devel liblzma-devel
libzstd-devel openmpi-devel"
@ -11,10 +11,18 @@ short_desc="Free peer-reviewed portable C++ source libraries"
maintainer="John <me@johnnynator.dev>"
license="BSL-1.0"
homepage="https://www.boost.org/"
distfiles="https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${version//./_}.tar.bz2"
checksum=71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa
distfiles="https://boostorg.jfrog.io/artifactory/main/release/${version%.rc*}/source/boost_${version//./_}.tar.bz2"
checksum=a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6
python_version=3
# please do NOT delete below lines,
# upgrade boost requires patching a lot of software,
# which requires months of planning
if [ "${version%beta*}" != "$version" ]; then
_version=${version/beta/b}
distfiles="https://boostorg.jfrog.io/artifactory/main/beta/${version%.rc*}/source/boost_${_version//./_}.tar.bz2"
fi
replaces="libboost_program_options1.80>=0 libboost_math_c99f1.80>=0
libboost_stacktrace_basic1.80>=0 libboost_stacktrace_noop1.80>=0
libboost_iostreams1.80>=0 libboost_math_tr1l1.80>=0 libboost_filesystem1.80>=0
@ -124,7 +132,7 @@ do_check() {
# required by boost::math
mkdir -p .temps
for _testcase in libs/histogram/test/ libs/*/test/; do
for _testcase in libs/gil/test/ libs/*/test/; do
_testcase=${_testcase%/test/}
_component=${_testcase#libs/}
case " $_fail " in
@ -171,13 +179,12 @@ do_install() {
cd $wrksrc
vconf site-config.jam
# license
# license, not required for binary distribution
vlicense LICENSE_1_0.txt
}
boost-python3_package() {
depends="boost python3"
replaces="boost-python3-1.80>=0"
depends="python3"
shlib_requires="libpython${py3_ver}${py3_abiver}.so.1.0"
short_desc+=" - Python3 bindings"
pkg_install() {
@ -185,6 +192,7 @@ boost-python3_package() {
}
}
boost-build_package() {
depends="boost"
conf_files="/etc/site-config.jam"
short_desc+=" - Boost.Build utility and framework"
provides="boost-jam-${version}_${revision}"
@ -209,7 +217,6 @@ boost-devel_package() {
}
libboost_atomic_package() {
depends="boost"
short_desc+=" - libboost_atomic"
pkg_install() {
vmove usr/lib/libboost_atomic.so.*
@ -217,7 +224,6 @@ libboost_atomic_package() {
}
libboost_chrono_package() {
depends="boost"
short_desc+=" - libboost_chrono"
pkg_install() {
vmove usr/lib/libboost_chrono.so.*
@ -225,7 +231,6 @@ libboost_chrono_package() {
}
libboost_container_package() {
depends="boost"
short_desc+=" - libboost_container"
pkg_install() {
vmove usr/lib/libboost_container.so.*
@ -233,7 +238,6 @@ libboost_container_package() {
}
libboost_context_package() {
depends="boost"
short_desc+=" - libboost_context"
pkg_install() {
vmove usr/lib/libboost_context.so.*
@ -241,7 +245,6 @@ libboost_context_package() {
}
libboost_contract_package() {
depends="boost"
short_desc+=" - libboost_contract"
pkg_install() {
vmove usr/lib/libboost_contract.so.*
@ -249,7 +252,6 @@ libboost_contract_package() {
}
libboost_coroutine_package() {
depends="boost"
short_desc+=" - libboost_coroutine"
pkg_install() {
vmove usr/lib/libboost_coroutine.so.*
@ -257,7 +259,6 @@ libboost_coroutine_package() {
}
libboost_date_time_package() {
depends="boost"
short_desc+=" - libboost_date_time"
pkg_install() {
vmove usr/lib/libboost_date_time.so.*
@ -265,7 +266,6 @@ libboost_date_time_package() {
}
libboost_fiber_package() {
depends="boost"
short_desc+=" - libboost_fiber"
pkg_install() {
vmove usr/lib/libboost_fiber.so.*
@ -273,7 +273,6 @@ libboost_fiber_package() {
}
libboost_filesystem_package() {
depends="boost"
short_desc+=" - libboost_filesystem"
pkg_install() {
vmove usr/lib/libboost_filesystem.so.*
@ -281,7 +280,6 @@ libboost_filesystem_package() {
}
libboost_graph_package() {
depends="boost"
short_desc+=" - libboost_graph"
pkg_install() {
vmove usr/lib/libboost_graph.so.*
@ -289,7 +287,6 @@ libboost_graph_package() {
}
libboost_graph_parallel_package() {
depends="boost"
short_desc+=" - libboost_graph_parallel"
pkg_install() {
vmove usr/lib/libboost_graph_parallel.so.*
@ -297,7 +294,6 @@ libboost_graph_parallel_package() {
}
libboost_iostreams_package() {
depends="boost"
short_desc+=" - libboost_iostreams"
pkg_install() {
vmove usr/lib/libboost_iostreams.so.*
@ -305,7 +301,6 @@ libboost_iostreams_package() {
}
libboost_locale_package() {
depends="boost"
short_desc+=" - libboost_locale"
pkg_install() {
vmove usr/lib/libboost_locale.so.*
@ -313,7 +308,6 @@ libboost_locale_package() {
}
libboost_log_package() {
depends="boost"
short_desc+=" - libboost_log"
pkg_install() {
vmove usr/lib/libboost_log.so.*
@ -321,7 +315,6 @@ libboost_log_package() {
}
libboost_log_setup_package() {
depends="boost"
short_desc+=" - libboost_log_setup"
pkg_install() {
vmove usr/lib/libboost_log_setup.so.*
@ -329,7 +322,6 @@ libboost_log_setup_package() {
}
libboost_math_c99_package() {
depends="boost"
short_desc+=" - libboost_math_c99"
pkg_install() {
vmove usr/lib/libboost_math_c99.so.*
@ -337,7 +329,6 @@ libboost_math_c99_package() {
}
libboost_math_c99f_package() {
depends="boost"
short_desc+=" - libboost_math_c99f"
pkg_install() {
vmove usr/lib/libboost_math_c99f.so.*
@ -345,7 +336,6 @@ libboost_math_c99f_package() {
}
libboost_math_c99l_package() {
depends="boost"
short_desc+=" - libboost_math_c99l"
pkg_install() {
vmove usr/lib/libboost_math_c99l.so.*
@ -353,7 +343,6 @@ libboost_math_c99l_package() {
}
libboost_json_package() {
depends="boost"
short_desc+=" - libboost_json"
pkg_install() {
vmove usr/lib/libboost_json.so.*
@ -361,7 +350,6 @@ libboost_json_package() {
}
libboost_math_tr1_package() {
depends="boost"
short_desc+=" - libboost_math_tr1"
pkg_install() {
vmove usr/lib/libboost_math_tr1.so.*
@ -369,7 +357,6 @@ libboost_math_tr1_package() {
}
libboost_math_tr1f_package() {
depends="boost"
short_desc+=" - libboost_math_tr1f"
pkg_install() {
vmove usr/lib/libboost_math_tr1f.so.*
@ -377,7 +364,6 @@ libboost_math_tr1f_package() {
}
libboost_math_tr1l_package() {
depends="boost"
short_desc+=" - libboost_math_tr1l"
pkg_install() {
vmove usr/lib/libboost_math_tr1l.so.*
@ -385,7 +371,6 @@ libboost_math_tr1l_package() {
}
libboost_mpi_package() {
depends="boost"
short_desc+=" - libboost_mpi"
pkg_install() {
vmove usr/lib/libboost_mpi.so.*
@ -393,7 +378,6 @@ libboost_mpi_package() {
}
libboost_mpi-python3_package() {
depends="boost"
short_desc+=" - libboost_mpi - Python 3 bindings"
shlib_requires="libpython${py3_ver}${py3_abiver}.so.1.0"
pkg_install() {
@ -403,7 +387,6 @@ libboost_mpi-python3_package() {
}
libboost_nowide_package() {
depends="boost"
short_desc+=" - libboost_nowide"
pkg_install() {
vmove usr/lib/libboost_nowide.so.*
@ -411,7 +394,6 @@ libboost_nowide_package() {
}
libboost_prg_exec_monitor_package() {
depends="boost"
short_desc+=" - libboost_prg_exec_monitor"
pkg_install() {
vmove usr/lib/libboost_prg_exec_monitor.so.*
@ -419,7 +401,6 @@ libboost_prg_exec_monitor_package() {
}
libboost_program_options_package() {
depends="boost"
short_desc+=" - libboost_program_options"
pkg_install() {
vmove usr/lib/libboost_program_options.so.*
@ -427,7 +408,6 @@ libboost_program_options_package() {
}
libboost_random_package() {
depends="boost"
short_desc+=" - libboost_random"
pkg_install() {
vmove usr/lib/libboost_random.so.*
@ -435,7 +415,6 @@ libboost_random_package() {
}
libboost_regex_package() {
depends="boost"
short_desc+=" - libboost_regex"
pkg_install() {
vmove usr/lib/libboost_regex.so.*
@ -443,7 +422,6 @@ libboost_regex_package() {
}
libboost_serialization_package() {
depends="boost"
short_desc+=" - libboost_serialization"
pkg_install() {
vmove usr/lib/libboost_serialization.so.*
@ -451,7 +429,6 @@ libboost_serialization_package() {
}
libboost_stacktrace_addr2line_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_addr2line"
pkg_install() {
vmove usr/lib/libboost_stacktrace_addr2line.so.*
@ -459,7 +436,6 @@ libboost_stacktrace_addr2line_package() {
}
libboost_stacktrace_basic_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_basic"
pkg_install() {
vmove usr/lib/libboost_stacktrace_basic.so.*
@ -467,15 +443,20 @@ libboost_stacktrace_basic_package() {
}
libboost_stacktrace_noop_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_noop"
pkg_install() {
vmove usr/lib/libboost_stacktrace_noop.so.*
}
}
libboost_sync_package() {
short_desc+=" - libboost_sync"
pkg_install() {
vmove usr/lib/libboost_sync.so.*
}
}
libboost_system_package() {
depends="boost"
short_desc+=" - libboost_system"
pkg_install() {
vmove usr/lib/libboost_system.so.*
@ -483,7 +464,6 @@ libboost_system_package() {
}
libboost_thread_package() {
depends="boost"
short_desc+=" - libboost_thread"
pkg_install() {
vmove usr/lib/libboost_thread.so.*
@ -491,7 +471,6 @@ libboost_thread_package() {
}
libboost_timer_package() {
depends="boost"
short_desc+=" - libboost_timer"
pkg_install() {
vmove usr/lib/libboost_timer.so.*
@ -499,7 +478,6 @@ libboost_timer_package() {
}
libboost_type_erasure_package() {
depends="boost"
short_desc+=" - libboost_type_erasure"
pkg_install() {
vmove usr/lib/libboost_type_erasure.so.*
@ -507,7 +485,6 @@ libboost_type_erasure_package() {
}
libboost_unit_test_framework_package() {
depends="boost"
short_desc+=" - libboost_unit_test_framework"
pkg_install() {
vmove usr/lib/libboost_unit_test_framework.so.*
@ -515,7 +492,6 @@ libboost_unit_test_framework_package() {
}
libboost_url_package() {
depends="boost"
short_desc+=" - libboost_url"
pkg_install() {
vmove usr/lib/libboost_url.so.*
@ -523,7 +499,6 @@ libboost_url_package() {
}
libboost_wave_package() {
depends="boost"
short_desc+=" - libboost_wave"
pkg_install() {
vmove usr/lib/libboost_wave.so.*
@ -531,7 +506,6 @@ libboost_wave_package() {
}
libboost_wserialization_package() {
depends="boost"
short_desc+=" - libboost_wserialization"
pkg_install() {
vmove usr/lib/libboost_wserialization.so.*

1
srcpkgs/libboost_sync Symbolic link
View file

@ -0,0 +1 @@
boost