From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DB29C15803E for ; Mon, 1 Jan 2024 21:34:43 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1A5932BC028; Mon, 1 Jan 2024 21:34:43 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (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) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E50112BC028 for ; Mon, 1 Jan 2024 21:34:42 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (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) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D891933FE7D for ; Mon, 1 Jan 2024 21:34:41 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 45760DB1 for ; Mon, 1 Jan 2024 21:34:40 +0000 (UTC) From: "David Seifert" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "David Seifert" Message-ID: <1704144855.3aec425b48b36c3f7f7df6b053441bbecbbd0584.soap@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-libs/boost/boost-1.84.0-r1.ebuild dev-libs/boost/boost-1.84.0.ebuild dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch X-VCS-Directories: dev-libs/boost/ dev-libs/boost/files/ X-VCS-Committer: soap X-VCS-Committer-Name: David Seifert X-VCS-Revision: 3aec425b48b36c3f7f7df6b053441bbecbbd0584 X-VCS-Branch: master Date: Mon, 1 Jan 2024 21:34:40 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 254275f3-07a2-4be0-a3e8-e1fc270a2b22 X-Archives-Hash: e9bd76ba327176fb676dc9329d3ab1ca commit: 3aec425b48b36c3f7f7df6b053441bbecbbd0584 Author: David Seifert gentoo org> AuthorDate: Mon Jan 1 21:34:15 2024 +0000 Commit: David Seifert gentoo org> CommitDate: Mon Jan 1 21:34:15 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3aec425b dev-libs/boost: add patch for net-im/swift build failure Bug: https://github.com/boostorg/signals2/issues/70 Bug: https://bugs.gentoo.org/912309 Signed-off-by: David Seifert gentoo.org> ...{boost-1.84.0.ebuild => boost-1.84.0-r1.ebuild} | 6 +- .../boost/files/boost-1.84.0-signals2-patch1.patch | 124 +++++++++++++++++++++ .../boost/files/boost-1.84.0-signals2-patch2.patch | 19 ++++ 3 files changed, 148 insertions(+), 1 deletion(-) diff --git a/dev-libs/boost/boost-1.84.0.ebuild b/dev-libs/boost/boost-1.84.0-r1.ebuild similarity index 98% rename from dev-libs/boost/boost-1.84.0.ebuild rename to dev-libs/boost/boost-1.84.0-r1.ebuild index c6e55525f805..fc4ea0922f11 100644 --- a/dev-libs/boost/boost-1.84.0.ebuild +++ b/dev-libs/boost/boost-1.84.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -55,6 +55,10 @@ PATCHES=( "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch + + # upstreamed + "${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch + "${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch ) python_bindings_needed() { diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch new file mode 100644 index 000000000000..9c07bd8f06cf --- /dev/null +++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch @@ -0,0 +1,124 @@ +https://github.com/boostorg/signals2/issues/70 + +From 2ba258f7b465e7bde14663ca3a966019b4ec3694 Mon Sep 17 00:00:00 2001 +From: Frank Mori Hess +Date: Sat, 30 Dec 2023 14:34:58 -0500 +Subject: [PATCH] Fix disconnect by slot when the slot is another signal. + +--- a/boost/signals2/detail/signal_template.hpp ++++ b/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)() +@@ -115,6 +115,8 @@ namespace boost + boost::shared_ptr _connection; + }; + ++ template ++ class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS); + template + class BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS); + +@@ -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): +@@ -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; + }; +@@ -802,6 +822,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 > _weak_pimpl; diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch new file mode 100644 index 000000000000..f277ae9973a1 --- /dev/null +++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch @@ -0,0 +1,19 @@ +https://github.com/boostorg/signals2/issues/70 + +From 4d994bbed820882059c7842ba5e230a26d68f2f0 Mon Sep 17 00:00:00 2001 +From: Frank Mori Hess +Date: Sat, 30 Dec 2023 14:51:49 -0500 +Subject: [PATCH] Fix disconnect by slot when slot is wrapped in a + boost::reference_wrapper + +--- a/boost/signals2/detail/signal_template.hpp ++++ b/boost/signals2/detail/signal_template.hpp +@@ -223,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))