From nobody Thu Oct 03 10:27:19 2024 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XK7CW5QlPz5Y6cx; Thu, 03 Oct 2024 10:27:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XK7CW4pGlz4CT5; Thu, 3 Oct 2024 10:27:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1727951239; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ibGz5sPQXQThhvmyHcjL3zolGiy8EeGNbRq+DWtIRQI=; b=r8Xm7TyS90rNhCisAOnT2EqEFC+Tdq/NclmLiVTl+xp5QkLUYAzDbxBwfCIa7c2jEZtG+K oWvTcbNtBP66yllB5EPGV8P9gvWPwk2y+DZKKHugC9DvX2ngv9ZphVaOxUwWvoCTnUBg/b MOjaZkd3RIwP2hn8Tg3qQj03rj6C+f5ZjCvTxkBtchO5kyNFJ/ODdd2EwEObQi72ngCSBd prRaHh5mxNBfMvWa1xldka4uRD7VGxjHEpjzoQPX45cmVSWxd5amd2yXIUpBWrY53Z8zzo /UEWaz9u2QiTn/G/VyI5j/PMgo6ons4AnvEHF0LifQjP5z7u0QDIQAd7dcZcPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1727951239; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ibGz5sPQXQThhvmyHcjL3zolGiy8EeGNbRq+DWtIRQI=; b=k95K7KdkISveBVi0TFI2c0Xx3/qshy3yeRPKkcIrZHd5xV2/pbA492jPOcIfhs9Y1PKaVX 2HsxpH+nzp0IGVJcPj2dRMlJUdXhU6JnhvTwmtDfnbJUUOcds4WRtj8XQqugxxqUK2mopb 78ikNYhW5+8zo1d+wmMNlW5nvQK7usYezbsBESdxd3bHl0oaei/PCcS6haxxI3hmjPNyc0 i0TbMkJW3ae1rs82nf1BxpcehwzZxfKlB7cZRXC7mK2CNa5TB1Qr282a9VSsn5pomkZbdD bs4WZ6Tn0yFXrEIkHXh0WlfnQXkNtaBZbeT8dlr1MaJvJlp/W23j5cqffXXMig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1727951239; a=rsa-sha256; cv=none; b=q/Xtpv/6icImz+rnamYCxYbmJO/62234jGReht4qkkAJozNPksVzDi8+eqcsb65IeJWfew HmTJHuGEsrc3B33VIT2j6Nipvgc2si5DGp2754dr3ND/1lxddhAtJNd5+2eXqbIjlYRAwI 5uNc4v8wLTtD0uujmnn/JX1SjIILYWbG44qpX0OqZmhVQplO432fQ/tyBT4rZe5CCak1gz jRO1QBtcj2VoLp0uKuHIhM2is2vtboyiiXjoVA2VuwSul90KV2tnUn/V6NuhoajkjpBgkd tvp/gpGd4JpXhTuab3c8oSVJ70/e05prNUjNmKAeDwxq5bZ+sqDDu7IzQji0Ew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XK7CW4GcHzn2X; Thu, 3 Oct 2024 10:27:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 493ARJEk041698; Thu, 3 Oct 2024 10:27:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 493ARJou041695; Thu, 3 Oct 2024 10:27:19 GMT (envelope-from git) Date: Thu, 3 Oct 2024 10:27:19 GMT Message-Id: <202410031027.493ARJou041695@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dima Panov Subject: git: e8fba4b05398 - main - devel/boost*: update to 1.85.0 release (+) List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fluffy X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e8fba4b053986074dff7a167fdc4ff83d480a3b6 Auto-Submitted: auto-generated The branch main has been updated by fluffy: URL: https://cgit.FreeBSD.org/ports/commit/?id=e8fba4b053986074dff7a167fdc4ff83d480a3b6 commit e8fba4b053986074dff7a167fdc4ff83d480a3b6 Author: Dima Panov AuthorDate: 2024-10-02 22:16:13 +0000 Commit: Dima Panov CommitDate: 2024-10-03 10:24:50 +0000 devel/boost*: update to 1.85.0 release (+) With hat: office Changelog: https://www.boost.org/users/history/version_1_85_0.html Sponsored by: Future Crew, LLC --- devel/boost-all/common.mk | 2 +- devel/boost-all/distinfo | 6 +- .../files/patch-boost-1.85.0-bcp-filesystem | 188 ++++++++++ .../files/patch-boost-1.85.0-container-aliasing | 408 +++++++++++++++++++++ .../files/patch-boost-1.85.0-python-numpy-2 | 26 ++ ...atch-boost_math_cstdfloat_cstdfloat__limits.hpp | 11 - ...atch-boost_signals2_detail_signal__template.hpp | 126 ------- ...bs_context_src_asm_jump__i386__sysv__elf__gas.S | 19 - ...bs_context_src_asm_make__i386__sysv__elf__gas.S | 19 - devel/boost-libs/pkg-plist | 301 ++++++++++----- devel/boost_build/Makefile | 4 +- devel/boost_build/distinfo | 6 +- devel/boost_build/pkg-plist | 7 - 13 files changed, 834 insertions(+), 289 deletions(-) diff --git a/devel/boost-all/common.mk b/devel/boost-all/common.mk index 1b73846d5816..6aa5feb3c671 100644 --- a/devel/boost-all/common.mk +++ b/devel/boost-all/common.mk @@ -15,7 +15,7 @@ MASTER_SITES= https://boostorg.jfrog.io/artifactory/main/release/${PORTVERSION}/ USES+= tar:bzip2 BOOST_MAJOR_VER=1 -BOOST_MINOR_VER=84 +BOOST_MINOR_VER=85 BOOST_PATCH_VER=0 BOOST_RC_VER= BOOST_SHARED_LIB_VER=${BOOST_MAJOR_VER}.${BOOST_MINOR_VER}.${BOOST_PATCH_VER} diff --git a/devel/boost-all/distinfo b/devel/boost-all/distinfo index 4a0c5b6b1706..975009873ea8 100644 --- a/devel/boost-all/distinfo +++ b/devel/boost-all/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1702987429 -SHA256 (boost_1_84_0.tar.bz2) = cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454 -SIZE (boost_1_84_0.tar.bz2) = 123110547 +TIMESTAMP = 1717930966 +SHA256 (boost_1_85_0.tar.bz2) = 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617 +SIZE (boost_1_85_0.tar.bz2) = 124015250 diff --git a/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem b/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem new file mode 100644 index 000000000000..0d6e5d566c49 --- /dev/null +++ b/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem @@ -0,0 +1,188 @@ +https://bugs.gentoo.org/932240 +https://github.com/boostorg/bcp/commit/cd21e9b4a749a77c24facf2da44f01e032c40842 + +From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Sun, 24 Mar 2024 14:49:18 +0300 +Subject: [PATCH] Remove usage of deprecated and removed Boost.Filesystem APIs. + +--- + add_dependent_lib.cpp | 5 +++-- + add_path.cpp | 30 +++++++++++++++--------------- + bcp_imp.hpp | 1 + + copy_path.cpp | 8 ++++---- + file_types.cpp | 2 +- + 5 files changed, 24 insertions(+), 22 deletions(-) + +diff --git tools/bcp/add_dependent_lib.cpp tools/bcp/add_dependent_lib.cpp +index 4852914..521b70d 100644 +--- tools/bcp/add_dependent_lib.cpp ++++ tools/bcp/add_dependent_lib.cpp +@@ -15,6 +15,7 @@ + #include "bcp_imp.hpp" + #include "fileview.hpp" + #include ++#include + #include + #include + #include +@@ -43,12 +44,12 @@ static void init_library_scanner(const fs::path& p, bool cvs_mode, const std::st + // + // Don't add files created by build system: + // +- if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) ++ if((p.filename() == "bin") || (p.filename() == "bin-stage")) + return; + // + // Don't add version control directories: + // +- if((p.leaf() == "CVS") || (p.leaf() == ".svn")) ++ if((p.filename() == "CVS") || (p.filename() == ".svn")) + return; + // + // don't add directories not under version control: +diff --git tools/bcp/add_path.cpp tools/bcp/add_path.cpp +index 8a1fee3..747bb8c 100644 +--- tools/bcp/add_path.cpp ++++ tools/bcp/add_path.cpp +@@ -15,6 +15,7 @@ + #include "bcp_imp.hpp" + #include "fileview.hpp" + #include ++#include + #include + #include + #include +@@ -24,8 +25,7 @@ void bcp_implementation::add_path(const fs::path& p) + { + if (m_excluded.find(p) != m_excluded.end()) + return; +- fs::path normalized_path = p; +- normalized_path.normalize(); ++ fs::path normalized_path = p.lexically_normal(); + if(fs::exists(m_boost_path / normalized_path)) + { + if(fs::is_directory(m_boost_path / normalized_path)) +@@ -45,12 +45,12 @@ void bcp_implementation::add_directory(const fs::path& p) + // + // Don't add files created by build system: + // +- if((p.leaf() == "bin") || (p.leaf() == "bin-stage")) ++ if((p.filename() == "bin") || (p.filename() == "bin-stage")) + return; + // + // Don't add version control directories: + // +- if((p.leaf() == "CVS") || (p.leaf() == ".svn")) ++ if((p.filename() == "CVS") || (p.filename() == ".svn")) + return; + // + // don't add directories not under version control: +@@ -180,7 +180,7 @@ void bcp_implementation::add_file(const fs::path& p) + { + // only concatonate if it's a relative path + // rather than a URL: +- fs::path dep(p.branch_path() / s); ++ fs::path dep(p.parent_path() / s); + if(!m_dependencies.count(dep)) + { + m_dependencies[dep] = p; // set up dependency tree +@@ -355,13 +355,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) + continue; + } + include_file = i->str(); +- fs::path test_file(m_boost_path / p.branch_path() / include_file); +- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) ++ fs::path test_file(m_boost_path / p.parent_path() / include_file); ++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) + { +- if(!m_dependencies.count(p.branch_path() / include_file)) ++ if(!m_dependencies.count(p.parent_path() / include_file)) + { +- m_dependencies[p.branch_path() / include_file] = p; +- add_pending_path(p.branch_path() / include_file); ++ m_dependencies[p.parent_path() / include_file] = p; ++ add_pending_path(p.parent_path() / include_file); + } + } + else if(fs::exists(m_boost_path / include_file)) +@@ -405,13 +405,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile) + ++i; + continue; + } +- fs::path test_file(m_boost_path / p.branch_path() / include_file); +- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost")) ++ fs::path test_file(m_boost_path / p.parent_path() / include_file); ++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost")) + { +- if(!m_dependencies.count(p.branch_path() / include_file)) ++ if(!m_dependencies.count(p.parent_path() / include_file)) + { +- m_dependencies[p.branch_path() / include_file] = p; +- add_pending_path(p.branch_path() / include_file); ++ m_dependencies[p.parent_path() / include_file] = p; ++ add_pending_path(p.parent_path() / include_file); + } + } + else if(fs::exists(m_boost_path / include_file)) +diff --git tools/bcp/bcp_imp.hpp tools/bcp/bcp_imp.hpp +index e515581..51c85ba 100644 +--- tools/bcp/bcp_imp.hpp ++++ tools/bcp/bcp_imp.hpp +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + + namespace fs = boost::filesystem; +diff --git tools/bcp/copy_path.cpp tools/bcp/copy_path.cpp +index 4143c79..6b7a370 100644 +--- tools/bcp/copy_path.cpp ++++ tools/bcp/copy_path.cpp +@@ -49,18 +49,18 @@ void bcp_implementation::copy_path(const fs::path& p) + if(fs::exists(m_dest_path / p)) + { + std::cout << "Copying (and overwriting) file: " << p.string() << "\n"; +- fs::remove(m_dest_path / p); ++ fs::remove(m_dest_path / p); + } + else + std::cout << "Copying file: " << p.string() << "\n"; + // + // create the path to the new file if it doesn't already exist: + // +- create_path(p.branch_path()); ++ create_path(p.parent_path()); + // + // do text based copy if requested: + // +- if((p.leaf() == "Jamroot") && m_namespace_name.size()) ++ if((p.filename() == "Jamroot") && m_namespace_name.size()) + { + static std::vector v1, v2; + v1.clear(); +@@ -240,7 +240,7 @@ void bcp_implementation::create_path(const fs::path& p) + if(!fs::exists(m_dest_path / p)) + { + // recurse then create the path: +- create_path(p.branch_path()); ++ create_path(p.parent_path()); + fs::create_directory(m_dest_path / p); + } + } +diff --git tools/bcp/file_types.cpp tools/bcp/file_types.cpp +index 297d304..69f6027 100644 +--- tools/bcp/file_types.cpp ++++ tools/bcp/file_types.cpp +@@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p) + "|" + "(Jamfile|makefile|configure)", + boost::regex::perl | boost::regex::icase); +- return !boost::regex_match(p.leaf().generic_string(), e); ++ return !boost::regex_match(p.filename().generic_string(), e); + + } + + diff --git a/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing b/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing new file mode 100644 index 000000000000..ce50698aeb06 --- /dev/null +++ b/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing @@ -0,0 +1,408 @@ +https://bugs.gentoo.org/933289 (and https://bugs.gentoo.org/932780, https://bugs.gentoo.org/931587) +https://github.com/freeorion/freeorion/issues/4949 +https://github.com/boostorg/container/issues/252 +https://github.com/boostorg/container/issues/281 +https://github.com/boostorg/container/commit/20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9 + +From 20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= +Date: Sun, 28 Apr 2024 23:29:59 +0200 +Subject: [PATCH] Remove UB in flat_map implementation when the implementation + has a movable std::pair + +--- boost/container/allocator_traits.hpp ++++ boost/container/allocator_traits.hpp +@@ -32,6 +32,8 @@ + #include + #include //is_empty + #include ++#include ++#include + #ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP + #include + #endif +@@ -81,6 +83,144 @@ + + namespace boost { + namespace container { ++namespace dtl { ++ ++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) ++ ++template ++BOOST_CONTAINER_FORCEINLINE void construct_type(T *p, BOOST_FWD_REF(Args) ...args) ++{ ++ ::new((void*)p, boost_container_new_t()) T(::boost::forward(args)...); ++} ++ ++template < class Pair, class KeyType, class ... Args> ++typename dtl::enable_if< dtl::is_pair, void >::type ++construct_type ++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k, BOOST_FWD_REF(Args) ...args) ++{ ++ construct_type(dtl::addressof(p->first), ::boost::forward(k)); ++ BOOST_CONTAINER_TRY{ ++ construct_type(dtl::addressof(p->second), ::boost::forward(args)...); ++ } ++ BOOST_CONTAINER_CATCH(...) { ++ typedef typename Pair::first_type first_type; ++ dtl::addressof(p->first)->~first_type(); ++ BOOST_CONTAINER_RETHROW ++ } ++ BOOST_CONTAINER_CATCH_END ++} ++ ++#else ++ ++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ(N) \ ++template\ ++BOOST_CONTAINER_FORCEINLINE \ ++ typename dtl::disable_if_c::value, void >::type \ ++construct_type(T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ ++{\ ++ ::new((void*)p, boost_container_new_t()) T( BOOST_MOVE_FWD##N );\ ++}\ ++// ++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ) ++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ ++ ++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE(N) \ ++template < class Pair, class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\ ++typename dtl::enable_if< dtl::is_pair, void >::type construct_type\ ++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ ++{\ ++ construct_type(dtl::addressof(p->first), ::boost::forward(k));\ ++ BOOST_CONTAINER_TRY{\ ++ construct_type(dtl::addressof(p->second) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ ++ }\ ++ BOOST_CONTAINER_CATCH(...) {\ ++ typedef typename Pair::first_type first_type;\ ++ dtl::addressof(p->first)->~first_type();\ ++ BOOST_CONTAINER_RETHROW\ ++ }\ ++ BOOST_CONTAINER_CATCH_END\ ++}\ ++// ++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE) ++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE ++ ++#endif ++ ++template ++inline ++typename dtl::enable_if, void >::type ++construct_type(T* p) ++{ ++ dtl::construct_type(dtl::addressof(p->first)); ++ BOOST_CONTAINER_TRY{ ++ dtl::construct_type(dtl::addressof(p->second)); ++ } ++ BOOST_CONTAINER_CATCH(...) { ++ typedef typename T::first_type first_type; ++ dtl::addressof(p->first)->~first_type(); ++ BOOST_CONTAINER_RETHROW ++ } ++ BOOST_CONTAINER_CATCH_END ++} ++ ++ ++template ++inline ++typename dtl::enable_if_c ++ < dtl::is_pair::value ++ , void >::type ++construct_type(T* p, U &u) ++{ ++ dtl::construct_type(dtl::addressof(p->first), u.first); ++ BOOST_CONTAINER_TRY{ ++ dtl::construct_type(dtl::addressof(p->second), u.second); ++ } ++ BOOST_CONTAINER_CATCH(...) { ++ typedef typename T::first_type first_type; ++ dtl::addressof(p->first)->~first_type(); ++ BOOST_CONTAINER_RETHROW ++ } ++ BOOST_CONTAINER_CATCH_END ++} ++ ++template ++inline ++typename dtl::enable_if_c ++ < dtl::is_pair::type>::value && ++ !boost::move_detail::is_reference::value //This is needed for MSVC10 and ambiguous overloads ++ , void >::type ++construct_type(T* p, BOOST_RV_REF(U) u) ++{ ++ dtl::construct_type(dtl::addressof(p->first), ::boost::move(u.first)); ++ BOOST_CONTAINER_TRY{ ++ dtl::construct_type(dtl::addressof(p->second), ::boost::move(u.second)); ++ } ++ BOOST_CONTAINER_CATCH(...) { ++ typedef typename T::first_type first_type; ++ dtl::addressof(p->first)->~first_type(); ++ BOOST_CONTAINER_RETHROW ++ } ++ BOOST_CONTAINER_CATCH_END ++} ++ ++template ++inline ++typename dtl::enable_if, void >::type ++construct_type(T* p, BOOST_FWD_REF(U) x, BOOST_FWD_REF(V) y) ++{ ++ dtl::construct_type(dtl::addressof(p->first), ::boost::forward(x)); ++ BOOST_CONTAINER_TRY{ ++ dtl::construct_type(dtl::addressof(p->second), ::boost::forward(y)); ++ } ++ BOOST_CONTAINER_CATCH(...) { ++ typedef typename T::first_type first_type; ++ dtl::addressof(p->first)->~first_type(); ++ BOOST_CONTAINER_RETHROW ++ } ++ BOOST_CONTAINER_CATCH_END ++} ++ ++} //namespace dtl + + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +@@ -419,7 +559,7 @@ struct allocator_traits + + template + inline static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args) +- { ::new((void*)p, boost_container_new_t()) T(::boost::forward(args)...); } ++ { dtl::construct_type(p, ::boost::forward(args)...); } + #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + public: + +@@ -450,7 +590,7 @@ struct allocator_traits + \ + template\ + inline static void priv_construct(dtl::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ +- { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\ ++ { dtl::construct_type(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\ + // + BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL +--- boost/container/detail/construct_in_place.hpp ++++ boost/container/detail/construct_in_place.hpp +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + namespace boost { + namespace container { +@@ -62,9 +63,42 @@ BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, empla + + //Assignment + ++template ++BOOST_CONTAINER_FORCEINLINE ++ typename dtl::disable_if_c ++ < dtl::is_pair::type>::value ++ && dtl::is_pair::type>::value ++ , void>::type ++assign_in_place_ref(T &t, BOOST_FWD_REF(U) u) ++{ t = ::boost::forward(u); } ++ ++template ++BOOST_CONTAINER_FORCEINLINE ++ typename dtl::enable_if_c ++ < dtl::is_pair::type>::value ++ && dtl::is_pair::type>::value ++ , void>::type ++assign_in_place_ref(T &t, const U &u) ++{ ++ assign_in_place_ref(t.first, u.first); ++ assign_in_place_ref(t.second, u.second); ++} ++ ++template ++BOOST_CONTAINER_FORCEINLINE ++ typename dtl::enable_if_c ++ < dtl::is_pair::type>::value ++ && dtl::is_pair::type>::value ++ , void>::type ++assign_in_place_ref(T &t, BOOST_RV_REF(U) u) ++{ ++ assign_in_place_ref(t.first, ::boost::move(u.first)); ++ assign_in_place_ref(t.second, ::boost::move(u.second)); ++} ++ + template + BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, InpIt source) +-{ *dest = *source; } ++{ assign_in_place_ref(*dest, *source); } + + template + BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, value_init_construct_iterator) +--- boost/container/flat_map.hpp ++++ boost/container/flat_map.hpp +@@ -48,6 +48,11 @@ + #include + #endif + ++#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) ++#define BOOST_CONTAINER_STD_PAIR_IS_MOVABLE ++#endif ++ ++ + namespace boost { + namespace container { + +@@ -58,21 +63,37 @@ class flat_multimap; + + namespace dtl{ + ++#if defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE) + template + BOOST_CONTAINER_FORCEINLINE static D &force(S &s) +-{ return *move_detail::force_ptr(&s); } ++{ return s; } + + template + BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s) +-{ return *move_detail::force_ptr(&s); } ++{ return s; } ++ ++template ++BOOST_CONTAINER_FORCEINLINE static D force_copy(D s) ++{ return s; } ++ ++#else //!BOOST_CONTAINER_DOXYGEN_INVOKED ++ ++template ++BOOST_CONTAINER_FORCEINLINE static D &force(S &s) ++{ return *move_detail::launder_cast(&s); } ++ ++template ++BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s) ++{ return *move_detail::launder_cast(&s); } + + template + BOOST_CONTAINER_FORCEINLINE static D force_copy(const S &s) + { +- const D *const vp = move_detail::force_ptr(&s); ++ const D *const vp = move_detail::launder_cast(&s); + D ret_val(*vp); + return ret_val; + } ++#endif //BOOST_CONTAINER_DOXYGEN_INVOKED + + } //namespace dtl{ + +@@ -118,18 +139,27 @@ class flat_map + private: + BOOST_COPYABLE_AND_MOVABLE(flat_map) + //This is the tree that we should store if pair was movable ++ typedef std::pair std_pair_t; + typedef dtl::flat_tree< +- std::pair, ++ std_pair_t, + dtl::select1st, + Compare, + AllocatorOrContainer> tree_t; + + //This is the real tree stored here. It's based on a movable pair ++ typedef dtl::pair dtl_pair_t; ++ ++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE ++ typedef std_pair_t impl_pair_t; ++ #else ++ typedef dtl_pair_t impl_pair_t; ++ #endif ++ + typedef dtl::flat_tree< +- dtl::pair, ++ impl_pair_t, + dtl::select1st, + Compare, +- typename dtl::container_or_allocator_rebind >::type ++ typename dtl::container_or_allocator_rebind::type + > impl_tree_t; + impl_tree_t m_flat_tree; // flat tree representing flat_map + +@@ -851,7 +881,7 @@ class flat_map + //! @copydoc ::boost::container::flat_set::nth(size_type) const + BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW +- { return dtl::force_copy(m_flat_tree.nth(n)); } ++ { return dtl::force_copy(m_flat_tree.nth(n)); } + + //! @copydoc ::boost::container::flat_set::index_of(iterator) + BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline +@@ -1099,7 +1129,7 @@ class flat_map + template + inline BOOST_CONTAINER_DOC1ST + ( std::pair +- , typename dtl::enable_if_c::value ++ , typename dtl::enable_if_c::value + BOOST_MOVE_I std::pair >::type) + insert(BOOST_FWD_REF(Pair) x) + { +@@ -1153,7 +1183,7 @@ class flat_map + template + inline BOOST_CONTAINER_DOC1ST + ( iterator +- , typename dtl::enable_if_c::value ++ , typename dtl::enable_if_c::value + BOOST_MOVE_I iterator>::type) + insert(const_iterator p, BOOST_FWD_REF(Pair) x) + { +@@ -1777,17 +1807,24 @@ class flat_multimap + #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + private: + BOOST_COPYABLE_AND_MOVABLE(flat_multimap) ++ typedef std::pair std_pair_t; + typedef dtl::flat_tree< +- std::pair, ++ std_pair_t, + dtl::select1st, + Compare, + AllocatorOrContainer> tree_t; + //This is the real tree stored here. It's based on a movable pair ++ typedef dtl::pair dtl_pair_t; ++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE ++ typedef std_pair_t impl_pair_t; ++ #else ++ typedef dtl_pair_t impl_pair_t; ++ #endif + typedef dtl::flat_tree< +- dtl::pair, ++ impl_pair_t, + dtl::select1st, + Compare, +- typename dtl::container_or_allocator_rebind >::type ++ typename dtl::container_or_allocator_rebind::type + > impl_tree_t; + impl_tree_t m_flat_tree; // flat tree representing flat_map + +@@ -2388,7 +2425,7 @@ class flat_multimap + //! @copydoc ::boost::container::flat_set::nth(size_type) const + BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW +- { return dtl::force_copy(m_flat_tree.nth(n)); } ++ { return dtl::force_copy(m_flat_tree.nth(n)); } + + //! @copydoc ::boost::container::flat_set::index_of(iterator) + BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline +@@ -2477,7 +2514,7 @@ class flat_multimap + template + inline BOOST_CONTAINER_DOC1ST + ( iterator +- , typename dtl::enable_if_c::value ++ , typename dtl::enable_if_c::value + BOOST_MOVE_I iterator >::type) + insert(BOOST_FWD_REF(Pair) x) + { return dtl::force_copy(m_flat_tree.emplace_equal(boost::forward(x))); } +@@ -2514,7 +2551,7 @@ class flat_multimap + template + inline BOOST_CONTAINER_DOC1ST + ( iterator +- , typename dtl::enable_if_c::value ++ , typename dtl::enable_if_c::value + BOOST_MOVE_I iterator>::type) + insert(const_iterator p, BOOST_FWD_REF(Pair) x) + { diff --git a/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2 b/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2 new file mode 100644 index 000000000000..e74dfbbb1abd --- /dev/null +++ b/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2 @@ -0,0 +1,26 @@ +https://bugs.gentoo.org/932459 +https://github.com/boostorg/python/issues/431 +https://github.com/boostorg/python/pull/432 + +From 33ac06ca59a68266d3d26edf08205d31ddab4a6c Mon Sep 17 00:00:00 2001 +From: Alexis DUBURCQ +Date: Fri, 15 Mar 2024 14:10:16 +0100 +Subject: [PATCH] Support numpy 2.0.0b1 + +--- libs/python/src/numpy/dtype.cpp ++++ libs/python/src/numpy/dtype.cpp +@@ -98,7 +98,13 @@ python::detail::new_reference dtype::convert(object const & arg, bool align) + return python::detail::new_reference(reinterpret_cast(obj)); + } + +-int dtype::get_itemsize() const { return reinterpret_cast(ptr())->elsize;} ++int dtype::get_itemsize() const { ++#if NPY_ABI_VERSION < 0x02000000 ++ return reinterpret_cast(ptr())->elsize; ++#else ++ return PyDataType_ELSIZE(reinterpret_cast(ptr())); ++#endif ++} + + bool equivalent(dtype const & a, dtype const & b) { + // On Windows x64, the behaviour described on diff --git a/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp b/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp deleted file mode 100644 index 870de6c7e306..000000000000 --- a/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp +++ /dev/null @@ -1,11 +0,0 @@ ---- boost/math/cstdfloat/cstdfloat_limits.hpp.orig 2023-12-06 21:03:04 UTC -+++ boost/math/cstdfloat/cstdfloat_limits.hpp -@@ -24,7 +24,7 @@ - #pragma GCC system_header - #endif - -- #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(__GNUC__) || (defined(__GNUC__) && __GNUC__ < 14)) -+ #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(_GLIBCXX_RELEASE) || (defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE < 14)) - - #include - #include diff --git a/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp b/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp deleted file mode 100644 index cf89583c13da..000000000000 --- a/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp +++ /dev/null @@ -1,126 +0,0 @@ ---- boost/signals2/detail/signal_template.hpp.orig 2023-12-06 21:03:06 UTC -+++ boost/signals2/detail/signal_template.hpp -@@ -103,9 +103,9 @@ namespace boost - BOOST_SIGNALS2_FORWARDED_ARGS(BOOST_SIGNALS2_NUM_ARGS)); - } - template -- bool operator==(const T &other) const -+ bool contains(const T &other) const - { -- return _fun == other; -+ return _fun.contains(other); - } - private: - BOOST_SIGNALS2_BOUND_EXTENDED_SLOT_FUNCTION_N(BOOST_SIGNALS2_NUM_ARGS)() -@@ -116,6 +116,8 @@ namespace boost - }; - - template -+ class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS); -+ template - class BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS); - - template -@@ -150,6 +152,8 @@ namespace boost - typedef GroupCompare group_compare_type; - typedef typename detail::slot_call_iterator_t > slot_call_iterator; -+ typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) -+ weak_signal_type; - - BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(const combiner_type &combiner_arg, - const group_compare_type &group_compare): -@@ -219,7 +223,7 @@ namespace boost - void disconnect(const T &slot) - { - typedef mpl::bool_<(is_convertible::value)> is_group; -- do_disconnect(slot, is_group()); -+ do_disconnect(unwrap_ref(slot), is_group()); - } - // emit signal - result_type operator ()(BOOST_SIGNALS2_SIGNATURE_FULL_ARGS(BOOST_SIGNALS2_NUM_ARGS)) -@@ -531,13 +535,20 @@ namespace boost - { - (*it)->nolock_disconnect(lock); - }else -- { -- // check for wrapped extended slot -+ { // check for wrapped extended slot - bound_extended_slot_function_type *fp; - fp = (*it)->slot().slot_function().template target(); -- if(fp && function_equal(*fp, slot)) -+ if(fp && fp->contains(slot)) - { - (*it)->nolock_disconnect(lock); -+ }else -+ { // check for wrapped signal -+ weak_signal_type *fp; -+ fp = (*it)->slot().slot_function().template target(); -+ if(fp && fp->contains(slot)) -+ { -+ (*it)->nolock_disconnect(lock); -+ } - } - } - } -@@ -588,8 +599,6 @@ namespace boost - const boost::shared_ptr _mutex; - }; - -- template -- class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS); - } - - template -@@ -603,8 +612,7 @@ namespace boost - typedef detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) - impl_class; - public: -- typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) -- weak_signal_type; -+ typedef typename impl_class::weak_signal_type weak_signal_type; - friend class detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) - ; - -@@ -746,12 +754,24 @@ namespace boost - using std::swap; - swap(_pimpl, other._pimpl); - } -+ bool operator==(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) const -+ { -+ return _pimpl.get() == other._pimpl.get(); -+ } - protected: - virtual shared_ptr lock_pimpl() const - { - return _pimpl; - } - private: -+ // explicit private copy constructor to avoid compiler trying to do implicit conversions to signal -+ explicit BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)( -+ const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) BOOST_NOEXCEPT -+ { -+ // noncopyable -+ BOOST_ASSERT(false); -+ } -+ - shared_ptr - _pimpl; - }; -@@ -801,6 +821,16 @@ namespace boost - > - shared_pimpl(_weak_pimpl.lock()); - return (*shared_pimpl)(BOOST_SIGNALS2_SIGNATURE_ARG_NAMES(BOOST_SIGNALS2_NUM_ARGS)); -+ } -+ bool contains(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) -+ &signal) const -+ { -+ return _weak_pimpl.lock().get() == signal._pimpl.get(); -+ } -+ template -+ bool contains(const T&) const -+ { -+ return false; - } - private: - boost::weak_ptr