commit: a92e3eab083f9ba71d375dbb9c9185996be28b4f Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Thu May 8 09:42:28 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu May 8 11:12:49 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a92e3eab
sys-cluster/ceph: fix build w/ gcc-15 Closes: https://bugs.gentoo.org/955362 Signed-off-by: Sam James <sam <AT> gentoo.org> sys-cluster/ceph/ceph-19.2.2-r1.ebuild | 1 + sys-cluster/ceph/files/ceph-19.2.2-gcc15.patch | 38 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/sys-cluster/ceph/ceph-19.2.2-r1.ebuild b/sys-cluster/ceph/ceph-19.2.2-r1.ebuild index 469409d5ddff..f7c0c3cb2044 100644 --- a/sys-cluster/ceph/ceph-19.2.2-r1.ebuild +++ b/sys-cluster/ceph/ceph-19.2.2-r1.ebuild @@ -244,6 +244,7 @@ PATCHES=( "${FILESDIR}/ceph-19.2.2-py313-1.patch" "${FILESDIR}/ceph-19.2.2-py313-2.patch" "${FILESDIR}/ceph-19.2.2-py313-3.patch" + "${FILESDIR}/ceph-19.2.2-gcc15.patch" ) check-reqs_export_vars() { diff --git a/sys-cluster/ceph/files/ceph-19.2.2-gcc15.patch b/sys-cluster/ceph/files/ceph-19.2.2-gcc15.patch new file mode 100644 index 000000000000..8ae53fb832ff --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.2-gcc15.patch @@ -0,0 +1,38 @@ +https://bugs.gentoo.org/955362 +https://github.com/ceph/ceph/pull/57430 + +From 830925f0dd196f920893b1947ae74171a202e825 Mon Sep 17 00:00:00 2001 +From: Kefu Chai <[email protected]> +Date: Mon, 13 May 2024 08:16:46 +0800 +Subject: [PATCH] rgw/driver/posix: s/is_value()/success()/ + +we have following build failure when building the tree: +``` + /home/kefu/dev/ceph/src/rgw/driver/posix/zpp_bits.h:3457:19: error: no member named 'is_value' in 'value_or_errc<Type>' + 3457 | if (other.is_value()) { + | ~~~~~ ^ + In file included from /home/kefu/dev/ceph/src/rgw/driver/posix/rgw_sal_posix.cc:16: + In file included from /home/kefu/dev/ceph/src/rgw/driver/posix/rgw_sal_posix.h:22: +``` +it turns out the class of `value_or_errc` does not have the member +function of `is_value()`, so let's use `success()` instead. + +Signed-off-by: Kefu Chai <[email protected]> +--- + src/rgw/driver/posix/zpp_bits.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/rgw/driver/posix/zpp_bits.h b/src/rgw/driver/posix/zpp_bits.h +index 90e8916b0b055..c9e99ec59c2f4 100644 +--- a/src/rgw/driver/posix/zpp_bits.h ++++ b/src/rgw/driver/posix/zpp_bits.h +@@ -3454,7 +3454,7 @@ struct [[nodiscard]] value_or_errc + + constexpr value_or_errc(value_or_errc && other) noexcept + { +- if (other.is_value()) { ++ if (other.success()) { + if constexpr (!std::is_void_v<Type>) { + if constexpr (!std::is_reference_v<Type>) { + ::new (std::addressof(m_return_value)) +
