diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-02-24 19:24:56 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-02-24 19:24:56 +0000 |
commit | d4653056cc74d97f24bef0d56b4ebe11c53c8b76 (patch) | |
tree | 5d4be0715302fad2089468027fadaa0372afd1d1 /sys-cluster | |
parent | 575bcb9220287a6f0d2577db1fd9fe55d9d8b745 (diff) |
gentoo auto-resync : 24:02:2025 - 19:24:56
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/Manifest.gz | bin | 11564 -> 11559 bytes | |||
-rw-r--r-- | sys-cluster/ceph/Manifest | 10 | ||||
-rw-r--r-- | sys-cluster/ceph/ceph-19.2.1.ebuild | 521 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-exporter.patch | 11 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-graylog.patch | 24 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-immutableobjectcache.patch | 101 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-librbd.patch | 195 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-mgr.patch | 36 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-rgw.patch | 59 | ||||
-rw-r--r-- | sys-cluster/ceph/files/ceph-19.2.1-uuid.patch | 41 |
10 files changed, 998 insertions, 0 deletions
diff --git a/sys-cluster/Manifest.gz b/sys-cluster/Manifest.gz Binary files differindex 5d8ca8dc2d29..d2bb55c4c53a 100644 --- a/sys-cluster/Manifest.gz +++ b/sys-cluster/Manifest.gz diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest index add22ca35ce0..4f9446c96cb6 100644 --- a/sys-cluster/ceph/Manifest +++ b/sys-cluster/ceph/Manifest @@ -27,6 +27,13 @@ AUX ceph-18.2.1-gcc14.patch 5949 BLAKE2B b42cd6cf53618a896c55171f9daf17525ae888f AUX ceph-18.2.4-liburing.patch 986 BLAKE2B db36daa74b36f29888b1fd4ab7543177ef4229d924d484e200486d515684b66e676407678197a6f43c6d48e9bad0c3fb6c9333770e3ab302b0aa4b0912793f01 SHA512 4c5142a90aee0979cc31ab967cd8785df625c4c17f4b308f1fa429e3f601a7244fe3c7989990879877aa1a0a2aae0f9851920c56465766732fbe20aece59ac9f AUX ceph-18.2.4-spdk.patch 475 BLAKE2B ecbd55f0037cf76dbb139114bbef6e657ace216bf54ed491e1836ce49e544ae08ccf06784669d7bfb729188b4ec953b67e0879d50ca3d9c3f371a2e93888856a SHA512 5ff92fd364a0ad10956def2506830b78a209c0dc4321b2e5a5d83bf95e175ef64090797fa18024451099135f04856df2ea9e65674548c16cef43b86b7a1f981b AUX ceph-19.2.0-importlib.patch 1722 BLAKE2B eb4ae542799f30f5b8d3e2092f622510c581b597cd83c46864815c99c62026ee0d8f09dd455b34fd284572bef54da310419106e83696cd2c0fb82116c9f5ee50 SHA512 cf35940018ac9742e0bce35339054298f68bba75de42de29f36e3e425a1971a69f237a80186513e5ad012c63d6e6e903efdeb095a0a08d5738b4729293b93e27 +AUX ceph-19.2.1-exporter.patch 476 BLAKE2B aeccf75786175c3d94496e2373b1badce79d16cff156567710ab27c95f21af641f0c19e1f18c6b845c00186e3c2c4f5ff536d2b557563e8b314984c3b30265f9 SHA512 9ff693e42b1255351951d1e927e1cd14a72b33ec64674a072c4a564bfa58919000292d2838c2660645dddf0e2d0d12a0d78a4fa586e26038eba8449faf5f76a4 +AUX ceph-19.2.1-graylog.patch 1008 BLAKE2B 1d2f4e4bc2f5263a0e0fa6286b58f53074df0ee208787661c84899bc846b3a1888f8f87984663a7edd68d11f3d675bfa5269de34c535841166a34fa0ef197726 SHA512 39ed4d643bde64f18ce7d7f3f8abaa32d6ed0a4fcd24c481fbfcdce8247e9dd85fb2d20e42f6932da93247a08748eb7f2e6b043116ecf53fb5dc75c3c00bea7f +AUX ceph-19.2.1-immutableobjectcache.patch 4294 BLAKE2B 95a4b0680e5d8ccea37c77ae1ea4e6e48cf61f2ab9090611395740c86aa0175a20ab932713b5d91082d4c9b87cb470c4100219e134d1937ab279ba03df42f32f SHA512 21bbf7998e06ac4db59464c8a089a7b4e35fc7dce6d9fa6c79052b966f084ac4c5dbadb6146e4182af2a7618d4e1006d8eb3520fa2592246e19047a80d45c234 +AUX ceph-19.2.1-librbd.patch 7566 BLAKE2B 5212e4e271840cebb95c7457d7fd99b719830c2ff7861708e230f2b983dae5b03f468549ff1d731ce26e386fcbc209f895994db050ccfb8c549c7de25d32e0d4 SHA512 ffd27706a104673d74157bce4f8dc5575e9a3499cf2eb0f71d5433a3b29acefa2fa1eaaa40bda338820f98ff44f5d56ec04922240563840b168968066359b662 +AUX ceph-19.2.1-mgr.patch 1351 BLAKE2B 8c8d59bb210cd380292d9cae3b5095a0abb8fe74bc0f00aef2b859b61fc3f5c20044c0ffd726013c75e9be21069a8a7cd407d9d0d78e8e3fadde88439e6f9cda SHA512 b5c09734f6534dd03d08df73e12a397c404f32241d1ee151800223d90991cf73fbeea5818ecfad887d620c27e6f8fe252e175b6502cf98ee06edaec561476658 +AUX ceph-19.2.1-rgw.patch 2869 BLAKE2B 988a4e05e1de601ef7e5c5764e3dfad113fe4b7d4a39596778e32021f0e82f665b90798ea0923af6fe635263362717de93084ade37830172c7e9c1d85eaf42da SHA512 32b97ae54aa6135c02c21f21f03666da545e739744f97129e9c18c0eedfb4cde3acd0147e3ecb2a3afc9408435a131bb5ad876f00d6601dacc2ed0e8a36768bc +AUX ceph-19.2.1-uuid.patch 1461 BLAKE2B a0fa36d30febc77709f099c0e965081aacbde917f7fe7992efcf9bbfd16d8fe09387653d5563d2be5995f93aac5ced1784d9071fd016e9e40b1792164f1eeac3 SHA512 d28da8cc56c49d7ac5e5c1a3f006652e911e090351cdeddf04a002458f90cfb51ec1529c8e98824aa0609face7cdb8b0872aaa092ae552368876889bb2cc3e47 AUX ceph-mds_at.service 282 BLAKE2B 3a51e5d5e0490c021282a37961824d650891c2d84c077c6479a9ee733f8a16fbe65cf204aa74e30ddd24dc01f32740037a6bd137a40464d57e1afeba5a49f893 SHA512 3a37e187f925e1a5fb672ac90937f544f3b98ed5a30b6a6b931a600f9d6a245373085ed61b40e0c64b30dbfac51dd99cbeaeb7538b5f23953bc0dde1df94742d AUX ceph-mds_at.service.conf 115 BLAKE2B aaaa28074bf47ee98272337b536e6ca89dbbbb0443d7774c38f62da4b210a5b2ffbb53fa2b7f20dffbee08206a0868e33d381a89b613a25b88f897dd32753fd5 SHA512 e0b51882ec864271a6468141fdd185e24cafcd677f312a7658880a30c00fd58d9043b2651548ab23bd01e54be248a1e8c03545a8fda0b699ca051de7ceb925d8 AUX ceph-osd_at.service 362 BLAKE2B 7ccbf3428d687d1dfc3a8e10d56083802bba621d7cc9b965b55677e7ae8ce19bd178d31be687e47ed4ae21eef017c8913339cb465822ceadecd2e90cf84d692d SHA512 99c932fa99679a26b288ad57ca725a50847199915368a07ae1bb589ca777cd6e6a68e84f4d506a1097a06ace06eede176ea573e694bcbe43b434381116d63300 @@ -41,8 +48,11 @@ AUX sysctld 57 BLAKE2B 840eec3d188df4998c7ba8fb923777636ae9d2aa342545b69c12e5ea8 DIST apache-arrow-17.0.0.tar.gz 21822331 BLAKE2B 64f9321cbf13fafae5938f26840d3ef642d6f5b40386315030bc70fe8703786ee394c8483d2bde7961cf2b5c15470ffebd7c66029e116b05cfbf5524e9fe51f1 SHA512 4e2a617b8deeb9f94ee085653a721904a75696f0827bcba82b535cc7f4f723066a09914c7fa83c593e51a8a4031e8bf99e563cac1ebb1d89604cb406975d4864 DIST ceph-18.2.4.tar.gz 226953064 BLAKE2B 3865ea051d1bd2f9aa44e6379f5bf2c7a526b076b327366dcf502d5a2358cc4d9bc53c7275e7b0f91387ec22a8a0e427f5e851a9f5308320091d1a6306bc9097 SHA512 a4ebb4e14032e6ab8e1fd8836f39234b771cb0a4b655166e9c69493a2c0d687064af4bb35523d0501629605521854e49f5c53a56279f72810d108c76f4f88c5b DIST ceph-19.2.0.tar.gz 236860160 BLAKE2B 0f0b93f89591b67986ead414fef2e41b1bbba914fb7f8d875a7fac9f3d00d127b0ca6d92912c2c082662cdbfc7ad71b8e56767273e6f380aade192725f812d28 SHA512 c7c68229b0bc5cf33ec30945c07ee464c757dc47812c0a901dd6e73a088f7a053ecd537468c6ca7caae91ed7d1fb25bde4630e5004f1717e22355ce276da005f +DIST ceph-19.2.1.tar.gz 240610402 BLAKE2B d2caddfafdace8e8ced3445daa7c8ec6f2a3f18ac3f885be33a4c5f5fad453c857e7d6f2f436ede8bd3214fa5614ca6ff45cc94065924a94af46e3c588816482 SHA512 223e9dcacdc05cb1cb56bf1572c5758ed9ad9daac98e858aac535f31d28afbb4a6f46a4724d9b95e325aef82012a98a5c72c011895999bdd16a30077336c03b3 DIST ceph-xsimd-18.2.4.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33 DIST ceph-xsimd-19.2.0.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33 +DIST ceph-xsimd-19.2.1.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33 EBUILD ceph-18.2.4-r3.ebuild 13711 BLAKE2B 08fc20178d670a4cb11370d7e863520961a2113f15f11661e2574ad578e67f7d77e415d62fb895b74baf371f78fa537e1e07554131c2211cc928b8d878160b3b SHA512 42ebc5c189bb5419004845acb574b90e0814a5bb9740eaa258ab09f76edd29912a922142db862e7e20fa3e73fd78e044ffd34c063571191a8d1a39b807efc64c EBUILD ceph-19.2.0-r2.ebuild 14422 BLAKE2B dab36b4aeed4370deadcc890d207b20f55cb4f01c6ca5df43e8fd492b914740ab88381d5d5a6dba09872212f826142e1e9700e1916a1868ede9bc7273b5b0775 SHA512 68a58b21bfd0f32048f36aa33a917d0124b951f02184eba71c90d5baa5af5046a1c25f016a3e87d6df092f69490cfb42204411d7308dbaedcefb635bf7eece86 +EBUILD ceph-19.2.1.ebuild 14745 BLAKE2B f36dfc985d37a488e329061eaa0290c29121a60ffd724b07e755813d7d91e3bc891f22fe32eec334ff301e2f1622c601e38124acd87c60b384cd91c7db57a871 SHA512 d45afb1f1dbcb75177c9646f445563864a5801298b88dd7fca02f0af3ce2210285ddcc1174f632d3ee78d327e3a18cc75b32cb9083c86b69a5c21cac147e7e1a MISC metadata.xml 2368 BLAKE2B 9a2248908694f7e9a06142c9348b142d78dffd48bb9d71400a94e48c6ee8b5da337aa7e758cb43155cded6e4198dcce50ce613d386b7dd808fa39ca4de57fe4c SHA512 3ca50f703b83aef7a9c49137cd991858b13dc609882c69da4ee407098e9609254eec1181e2c63c06e607338d3a78b5caf7f0f3cdc02ee6001af40d451016b027 diff --git a/sys-cluster/ceph/ceph-19.2.1.ebuild b/sys-cluster/ceph/ceph-19.2.1.ebuild new file mode 100644 index 000000000000..741766d8351d --- /dev/null +++ b/sys-cluster/ceph/ceph-19.2.1.ebuild @@ -0,0 +1,521 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +LUA_COMPAT=( lua5-{3..4} ) + +inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \ + python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles + +XSIMD_HASH="aeec9c872c8b475dedd7781336710f2dd2666cb2" + +DESCRIPTION="Ceph distributed filesystem" +HOMEPAGE="https://ceph.com/" + +SRC_URI=" + https://download.ceph.com/tarballs/${P}.tar.gz + parquet? ( https://github.com/xtensor-stack/xsimd/archive/${XSIMD_HASH}.tar.gz -> ceph-xsimd-${PV}.tar.gz + mirror://apache/arrow/arrow-17.0.0/apache-arrow-17.0.0.tar.gz ) +" + +LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" + +CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3) + +IUSE=" + babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana + jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq + +radosgw rbd-rwl rbd-ssd rdma rgw-lua selinux +ssl spdk +sqlite +system-boost + systemd +tcmalloc test +uring xfs zbd +" + +IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" + +DEPEND=" + ${LUA_DEPS} + ${PYTHON_DEPS} + acct-group/ceph + acct-user/ceph + virtual/libudev:= + app-arch/bzip2:= + app-arch/lz4:= + app-arch/snappy:= + >=app-arch/snappy-1.1.9-r1 + app-arch/zstd:= + app-shells/bash:0 + app-misc/jq:= + dev-cpp/gflags:= + dev-db/lmdb:= + dev-lang/jsonnet:= + dev-libs/libaio:= + dev-libs/libnl:3= + dev-libs/libxml2:= + dev-libs/libevent:= + dev-libs/libutf8proc:= + dev-libs/nss:= + dev-libs/openssl:= + <dev-libs/rocksdb-7.9.3:= + dev-libs/thrift:= + dev-libs/xmlsec:=[openssl] + dev-cpp/yaml-cpp:= + dev-python/natsort[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-vcs/git + net-dns/c-ares:= + net-libs/gnutls:= + sys-auth/oath-toolkit:= + sys-apps/coreutils + sys-apps/hwloc:= + sys-apps/keyutils:= + sys-apps/util-linux:= + sys-libs/libcap-ng:= + sys-libs/ncurses:0= + sys-libs/zlib:= + sys-process/numactl:= + virtual/libcrypt:= + x11-libs/libpciaccess:= + babeltrace? ( dev-util/babeltrace:0/1 ) + fuse? ( sys-fs/fuse:3= ) + jemalloc? ( dev-libs/jemalloc:= ) + !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) + jaeger? ( + dev-cpp/nlohmann_json:= + <dev-cpp/opentelemetry-cpp-1.10.0:=[jaeger] + ) + kafka? ( dev-libs/librdkafka:= ) + kerberos? ( virtual/krb5 ) + ldap? ( net-nds/openldap:= ) + lttng? ( dev-util/lttng-ust:= ) + parquet? ( + >=app-arch/lz4-1.10 + dev-cpp/xsimd + dev-libs/re2:= + ) + pmdk? ( + >=dev-libs/pmdk-1.10.0:= + sys-block/ndctl:= + ) + rabbitmq? ( net-libs/rabbitmq-c:= ) + radosgw? ( + dev-libs/icu:= + dev-libs/expat:= + net-misc/curl:=[curl_ssl_openssl] + ) + rbd-rwl? ( dev-libs/pmdk:= ) + rdma? ( sys-cluster/rdma-core:= ) + spdk? ( dev-util/cunit ) + sqlite? ( dev-db/sqlite:= ) + system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] ) + uring? ( sys-libs/liburing:= ) + xfs? ( sys-fs/xfsprogs:= ) + zbd? ( sys-block/libzbd:= ) +" +BDEPEND=" + amd64? ( dev-lang/nasm ) + x86? ( dev-lang/yasm ) + app-alternatives/cpio + dev-debug/valgrind + >=dev-build/cmake-3.5.0 + dev-python/cython[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/sphinx + dev-util/gperf + dev-util/ragel + sys-apps/coreutils + sys-apps/grep + sys-apps/util-linux + sys-apps/which + app-alternatives/bc + sys-devel/patch + virtual/pkgconfig + jaeger? ( + app-alternatives/yacc + app-alternatives/lex + ) + test? ( + dev-util/cunit + dev-python/coverage[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/requests-mock[${PYTHON_USEDEP}] + sys-apps/grep[pcre] + sys-fs/btrfs-progs + ) +" +RDEPEND=" + ${DEPEND} + app-admin/sudo + net-misc/socat + sys-apps/gptfdisk + sys-apps/nvme-cli + >=sys-apps/smartmontools-7.0 + sys-block/parted + sys-fs/cryptsetup + sys-fs/lsscsi + sys-fs/lvm2[lvm] + app-alternatives/awk + dev-python/bcrypt[${PYTHON_USEDEP}] + dev-python/cherrypy[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/jinja2[${PYTHON_USEDEP}] + dev-python/pecan[${PYTHON_USEDEP}] + dev-python/prettytable[${PYTHON_USEDEP}] + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + mgr? ( + dev-python/jsonpatch[${PYTHON_USEDEP}] + dev-python/more-itertools[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pyjwt[${PYTHON_USEDEP}] + dev-python/routes[${PYTHON_USEDEP}] + diskprediction? ( + >=dev-python/scipy-1.4.0[${PYTHON_USEDEP}] + ) + dev-python/scikit-learn[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + ) + selinux? ( sec-policy/selinux-ceph ) +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + ${LUA_REQUIRED_USE} + ?? ( jemalloc tcmalloc ) + diskprediction? ( mgr ) + kafka? ( radosgw ) + mgr? ( cephfs ) + rabbitmq? ( radosgw ) + rgw-lua? ( radosgw ) +" + +RESTRICT=" + !test? ( test ) +" + +# tests need root access, and network access +RESTRICT+="test" + +# false positives unless all USE flags are on +CMAKE_WARN_UNUSED_CLI=no + +PATCHES=( + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" + "${FILESDIR}/ceph-14.2.0-cflags.patch" + "${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch" + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" + "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" + "${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch" + "${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch" + "${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch" + "${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch" + "${FILESDIR}/ceph-17.2.0-findre2.patch" + "${FILESDIR}/ceph-18.2.0-system-opentelemetry.patch" + "${FILESDIR}/ceph-17.2.0-osd_class_dir.patch" + "${FILESDIR}/ceph-17.2.0-gcc12-header.patch" + "${FILESDIR}/ceph-17.2.3-flags.patch" + # https://bugs.gentoo.org/866165 + "${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch" + "${FILESDIR}/ceph-17.2.5-gcc13-deux.patch" + # https://bugs.gentoo.org/905626 + "${FILESDIR}/ceph-17.2.6-arrow-flatbuffers-c++14.patch" + # https://bugs.gentoo.org/868891 + "${FILESDIR}/ceph-17.2.6-cmake.patch" + "${FILESDIR}/ceph-18.2.0-cyclic-deps.patch" + # https://bugs.gentoo.org/907739 + "${FILESDIR}/ceph-18.2.0-cython3.patch" + # https://bugs.gentoo.org/936889 + "${FILESDIR}/ceph-18.2.4-liburing.patch" + "${FILESDIR}/ceph-18.2.4-spdk.patch" + # https://bugs.gentoo.org/941069 + "${FILESDIR}/ceph-19.2.0-importlib.patch" + "${FILESDIR}/ceph-19.2.1-uuid.patch" + "${FILESDIR}/ceph-19.2.1-graylog.patch" + "${FILESDIR}/ceph-19.2.1-librbd.patch" + "${FILESDIR}/ceph-19.2.1-rgw.patch" + "${FILESDIR}/ceph-19.2.1-immutableobjectcache.patch" + "${FILESDIR}/ceph-19.2.1-mgr.patch" + "${FILESDIR}/ceph-19.2.1-exporter.patch" + ) + +check-reqs_export_vars() { + CHECKREQS_DISK_BUILD="6G" + + if use system-boost; then + CHECKREQS_DISK_USR="350M" + else + CHECKREQS_DISK_USR="510M" + fi + + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR +} + +pkg_pretend() { + check-reqs_export_vars + check-reqs_pkg_pretend +} + +pkg_setup() { + python_setup + lua_setup + check-reqs_export_vars + check-reqs_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + if use system-boost; then + find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ + | xargs --null sed -r \ + -e 's|Boost::|boost_|g' \ + -e 's|Boost_|boost_|g' \ + -e 's|[Bb]oost_boost|boost_system|g' \ + -i || die + fi + + if ! use systemd; then + find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \ + | xargs --null sed \ + -e '/^from ceph_volume.systemd import systemctl/ d' \ + -i || die + fi + + sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ + -i src/bash_completion/CMakeLists.txt || die + + sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die + + # force lua version to use selected version + local lua_version + lua_version=$(ver_cut 1-2 $(lua_get_version)) + sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \ + -i src/CMakeLists.txt + + if use spdk; then + # https://bugs.gentoo.org/871942 + sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die + # unittests fail to build (??!?) + sed -i -e 's/CONFIG_UNIT_TESTS=y/CONFIG_UNIT_TESTS=n/' src/spdk/CONFIG || die + fi + + # remove tests that need root access + rm src/test/cli/ceph-authtool/cap*.t || die + + if use parquet; then + # hammer in newer version of parquet/arrow + rm -rf src/arrow/ + mv "${WORKDIR}/apache-arrow-17.0.0" src/arrow || die + fi + + # newer boost don't support no header-only + sed -i -e 's~#include <boost/url/src.hpp>~#include <boost/url.hpp>~' src/mds/BoostUrlImpl.cc || die + + # everyone forgot to link to boost_url + sed -i -e 's~target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common~target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common boost_url~' src/CMakeLists.txt || die + sed -i -e 's/target_link_libraries(journal cls_journal_client)/target_link_libraries(journal cls_journal_client boost_url)/' src/journal/CMakeLists.txt || die + sed -i -e 's/${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})/${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} boost_url)/g' src/tools/cephfs/CMakeLists.txt || die +} + +ceph_src_configure() { + local mycmakeargs=( + -DWITH_BABELTRACE:BOOL=$(usex babeltrace) + -DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk) + -DWITH_CEPHFS:BOOL=$(usex cephfs) + -DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs) + -DWITH_DPDK:BOOL=$(usex dpdk) + -DWITH_SPDK:BOOL=$(usex spdk) + -DWITH_FUSE:BOOL=$(usex fuse) + -DWITH_LTTNG:BOOL=$(usex lttng) + -DWITH_GSSAPI:BOOL=$(usex kerberos) + -DWITH_GRAFANA:BOOL=$(usex grafana) + -DWITH_MGR:BOOL=$(usex mgr) + -DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF + -DWITH_OPENLDAP:BOOL=$(usex ldap) + -DWITH_PYTHON3:STRING=3 + -DWITH_RADOSGW:BOOL=$(usex radosgw) + -DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq) + -DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka) + -DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO") + -DWITH_RBD_RWL:BOOL=$(usex rbd-rwl) + -DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd) + -DWITH_SYSTEMD:BOOL=$(usex systemd) + -DWITH_TESTS:BOOL=$(usex test) + -DWITH_LIBURING:BOOL=$(usex uring) + -DWITH_SYSTEM_LIBURING:BOOL=$(usex uring) + -DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite) + -DWITH_XFS:BOOL=$(usex xfs) + -DWITH_ZBD:BOOL=$(usex zbd) + -DENABLE_SHARED:BOOL=ON + -DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") + -DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')") + -DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost) + -DWITH_SYSTEM_ROCKSDB:BOOL=ON + -DWITH_SYSTEM_ZSTD:BOOL=ON + -DWITH_RDMA:BOOL=$(usex rdma) + -DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}" + -DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc" + # use the bundled libfmt for now since they seem to constantly break their API + -DCMAKE_DISABLE_FIND_PACKAGE_fmt=ON + -Wno-dev + -DCEPHADM_BUNDLED_DEPENDENCIES=none + # isa-l is very question mark exclamation mark + -DHAVE_NASM_X64=no + ) + + # this breaks when re-configuring for python impl + if [[ ${EBUILD_PHASE} == configure ]]; then + mycmakeargs+=( + -DWITH_JAEGER:BOOL=$(usex jaeger) + -DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet) + ) + else + mycmakeargs+=( + -DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF + -DWITH_JAEGER:BOOL=OFF + # don't want to warn about unused CLI when reconfiguring for python + -DCMAKE_WARN_UNUSED_CLI:BOOL=OFF + ) + fi + + # conditionally used cmake args + use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) ) + use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) ) + + if use amd64 || use x86; then + local flag + for flag in "${CPU_FLAGS_X86[@]}"; do + case "${flag}" in + avx*) + local var=${flag%f} + mycmakeargs+=( + "-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})" + ) + ;; + *) mycmakeargs+=( + "-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})" + );; + esac + done + fi + + # needed for >=glibc-2.32 + has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON ) + + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ + || die "failed to remove cmake cache" + + # hopefully this will not be necessary in the next release + use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz" + + # https://bugs.gentoo.org/927066 + filter-lto + + cmake_src_configure + + # bug #630232 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ + "${BUILD_DIR:-${S}}"/include/acconfig.h \ + || die "sed failed" +} + +src_configure() { + use custom-cflags || strip-flags + ceph_src_configure +} + +src_compile() { + cmake_build all + + # we have to do this here to prevent from building everything multiple times + python_copy_sources + python_foreach_impl python_compile +} + +python_compile() { + local CMAKE_USE_DIR="${S}" + ceph_src_configure + + cmake_build src/pybind/CMakeFiles/cython_modules + cmake_build cephadm +} + +src_install() { + python_foreach_impl python_install + + python_setup + cmake_src_install + + python_optimize + + find "${ED}" -name '*.la' -type f -delete || die + + exeinto /usr/$(get_libdir)/ceph + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph + + insinto /etc/logrotate.d/ + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} + + keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console + + fowners -R ceph:ceph /var/log/ceph + + newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap + newinitd "${FILESDIR}/${PN}.initd-r14" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} + + insinto /etc/sudoers.d + doins sudoers.d/* + + insinto /etc/sysctl.d + newins "${FILESDIR}"/sysctld 90-${PN}.conf + + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc + + # units aren't installed by the build system unless systemd is enabled + # so no point installing these with the USE flag disabled + if use systemd; then + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service" + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service" + fi + + udev_dorules udev/*.rules + newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf + + readme.gentoo_create_doc + + # bug #630232 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ + || die "sed failed" + + python_fix_shebang "${ED}"/usr/{,s}bin/ + + # python_fix_shebang apparently is not idempotent + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die + + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) + dostrip -x "${rados_classes[@]#${ED}}" +} + +python_install() { + local CMAKE_USE_DIR="${S}" + DESTDIR="${ED}" cmake_build src/pybind/install + DESTDIR="${ED}" cmake_build src/cephadm/install + + python_optimize +} + +pkg_postinst() { + readme.gentoo_print_elog + tmpfiles_process ${PN}.conf + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sys-cluster/ceph/files/ceph-19.2.1-exporter.patch b/sys-cluster/ceph/files/ceph-19.2.1-exporter.patch new file mode 100644 index 000000000000..eb2dbd7e38ba --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-exporter.patch @@ -0,0 +1,11 @@ +--- a/src/exporter/DaemonMetricCollector.cc ++++ b/src/exporter/DaemonMetricCollector.cc +@@ -38,7 +38,7 @@ + dump_asok_metrics(false, -1, true, dump_response, schema_response, true); + auto stats_period = g_conf().get_val<int64_t>("exporter_stats_period"); + // time to wait before sending requests again +- timer.expires_from_now(std::chrono::seconds(stats_period)); ++ timer.expires_after(std::chrono::seconds(stats_period)); + request_loop(timer); + }); + } diff --git a/sys-cluster/ceph/files/ceph-19.2.1-graylog.patch b/sys-cluster/ceph/files/ceph-19.2.1-graylog.patch new file mode 100644 index 000000000000..32b154fdbd49 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-graylog.patch @@ -0,0 +1,24 @@ +From ed47559bca9517d1c2bf306508ac3d6abd2cad8d Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemerson@redhat.com> +Date: Thu, 12 Dec 2024 16:11:04 -0500 +Subject: [PATCH] common/Graylog: Fix Asio resolve call + +Signed-off-by: Adam Emerson <aemerson@redhat.com> +--- + src/common/Graylog.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/common/Graylog.cc b/src/common/Graylog.cc +index 099acacd803b8..e9c2565df62eb 100644 +--- a/src/common/Graylog.cc ++++ b/src/common/Graylog.cc +@@ -37,8 +37,7 @@ void Graylog::set_destination(const std::string& host, int port) + { + try { + boost::asio::ip::udp::resolver resolver(m_io_service); +- boost::asio::ip::udp::resolver::query query(host, std::to_string(port)); +- m_endpoint = *resolver.resolve(query); ++ m_endpoint = *resolver.resolve(host, std::to_string(port)).cbegin(); + m_log_dst_valid = true; + } catch (boost::system::system_error const& e) { + cerr << "Error resolving graylog destination: " << e.what() << std::endl; diff --git a/sys-cluster/ceph/files/ceph-19.2.1-immutableobjectcache.patch b/sys-cluster/ceph/files/ceph-19.2.1-immutableobjectcache.patch new file mode 100644 index 000000000000..c2c9633c341f --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-immutableobjectcache.patch @@ -0,0 +1,101 @@ +From 87ee31f88d82169a85fade8d91e9469d9d508d5e Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemerson@redhat.com> +Date: Fri, 13 Dec 2024 15:21:49 -0500 +Subject: [PATCH] immutable_object_cache: Asio deprecations + +Signed-off-by: Adam Emerson <aemerson@redhat.com> +--- + src/tools/immutable_object_cache/CacheClient.cc | 6 +++--- + src/tools/immutable_object_cache/CacheClient.h | 5 +++-- + src/tools/immutable_object_cache/CacheServer.cc | 10 +++++----- + 3 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/src/tools/immutable_object_cache/CacheClient.cc b/src/tools/immutable_object_cache/CacheClient.cc +index 44686529547d3..32a199dbe2102 100644 +--- a/src/tools/immutable_object_cache/CacheClient.cc ++++ b/src/tools/immutable_object_cache/CacheClient.cc +@@ -20,7 +20,7 @@ namespace ceph { + namespace immutable_obj_cache { + + CacheClient::CacheClient(const std::string& file, CephContext* ceph_ctx) +- : m_cct(ceph_ctx), m_io_service_work(m_io_service), ++ : m_cct(ceph_ctx), m_io_service_work(m_io_service.get_executor()), + m_dm_socket(m_io_service), m_ep(stream_protocol::endpoint(file)), + m_io_thread(nullptr), m_session_work(false), m_writing(false), + m_reading(false), m_sequence_id(0) { +@@ -30,7 +30,7 @@ namespace immutable_obj_cache { + + if (m_worker_thread_num != 0) { + m_worker = new boost::asio::io_context(); +- m_worker_io_service_work = new boost::asio::io_context::work(*m_worker); ++ m_worker_io_service_work = new boost::asio::executor_work_guard<boost::asio::io_context::executor_type>(m_worker->get_executor()); + for (uint64_t i = 0; i < m_worker_thread_num; i++) { + std::thread* thd = new std::thread([this](){m_worker->run();}); + m_worker_threads.push_back(thd); +@@ -299,7 +299,7 @@ namespace immutable_obj_cache { + }); + + if (m_worker_thread_num != 0) { +- m_worker->post([process_reply]() { ++ boost::asio::post(*m_worker, [process_reply]() { + process_reply->complete(true); + }); + } else { +diff --git a/src/tools/immutable_object_cache/CacheClient.h b/src/tools/immutable_object_cache/CacheClient.h +index 7dc4aa76c1324..5122e0906b91b 100644 +--- a/src/tools/immutable_object_cache/CacheClient.h ++++ b/src/tools/immutable_object_cache/CacheClient.h +@@ -5,6 +5,7 @@ + #define CEPH_CACHE_CACHE_CLIENT_H + + #include <atomic> ++#include <boost/asio/executor_work_guard.hpp> + #include <boost/asio/io_context.hpp> + #include <boost/asio/local/stream_protocol.hpp> + #include <boost/algorithm/string.hpp> +@@ -58,7 +59,7 @@ class CacheClient { + private: + CephContext* m_cct; + boost::asio::io_context m_io_service; +- boost::asio::io_context::work m_io_service_work; ++ boost::asio::executor_work_guard<boost::asio::io_context::executor_type> m_io_service_work; + stream_protocol::socket m_dm_socket; + stream_protocol::endpoint m_ep; + std::shared_ptr<std::thread> m_io_thread; +@@ -67,7 +68,7 @@ class CacheClient { + uint64_t m_worker_thread_num; + boost::asio::io_context* m_worker; + std::vector<std::thread*> m_worker_threads; +- boost::asio::io_context::work* m_worker_io_service_work; ++ boost::asio::executor_work_guard<boost::asio::io_context::executor_type>* m_worker_io_service_work; + + std::atomic<bool> m_writing; + std::atomic<bool> m_reading; +diff --git a/src/tools/immutable_object_cache/CacheServer.cc b/src/tools/immutable_object_cache/CacheServer.cc +index 14deddce561b3..a4c4e3bc36ce1 100644 +--- a/src/tools/immutable_object_cache/CacheServer.cc ++++ b/src/tools/immutable_object_cache/CacheServer.cc +@@ -35,10 +35,10 @@ int CacheServer::run() { + return ret; + } + +- boost::system::error_code ec; +- ret = m_io_service.run(ec); +- if (ec) { +- ldout(cct, 1) << "m_io_service run fails: " << ec.message() << dendl; ++ try { ++ ret = m_io_service.run(); ++ } catch (const std::exception& e) { ++ ldout(cct, 1) << "m_io_service run fails: " << e.what() << dendl; + return -1; + } + return 0; +@@ -66,7 +66,7 @@ int CacheServer::start_accept() { + return -ec.value(); + } + +- m_acceptor.listen(boost::asio::socket_base::max_connections, ec); ++ m_acceptor.listen(boost::asio::socket_base::max_listen_connections, ec); + if (ec) { + lderr(cct) << "failed to listen on domain socket: " << ec.message() + << dendl; diff --git a/sys-cluster/ceph/files/ceph-19.2.1-librbd.patch b/sys-cluster/ceph/files/ceph-19.2.1-librbd.patch new file mode 100644 index 000000000000..480a3941fb33 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-librbd.patch @@ -0,0 +1,195 @@ +From fb05a2ff0f8cc55997b532bae8271914768306b5 Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemerson@redhat.com> +Date: Thu, 9 Jan 2025 18:54:11 -0500 +Subject: [PATCH] librbd/migration/HttpClient: Use asio::ssl::stream + +`beast::ssl_stream` is deprecated as of 1.86, and its loss of the move +constructor keeps it from compiling on that version. + +Hopefully this passes tests on 1.85, too, or it will have to wait +until the boost bump. + +Signed-off-by: Adam Emerson <aemerson@redhat.com> +--- + src/librbd/migration/HttpClient.cc | 35 ++++++++++--------- + src/librbd/migration/HttpClient.h | 11 +++--- + .../librbd/migration/test_mock_HttpClient.cc | 4 +-- + 3 files changed, 25 insertions(+), 25 deletions(-) + +diff --git a/src/librbd/migration/HttpClient.cc b/src/librbd/migration/HttpClient.cc +index 09fe91da02ae2..d212981a917d5 100644 +--- a/src/librbd/migration/HttpClient.cc ++++ b/src/librbd/migration/HttpClient.cc +@@ -193,7 +193,7 @@ class HttpClient<I>::HttpSession : public HttpSessionInterface { + ldout(cct, 15) << dendl; + + boost::system::error_code ec; +- boost::beast::get_lowest_layer(derived().stream()).socket().close(ec); ++ derived().stream().lowest_layer().close(ec); + } + + private: +@@ -357,8 +357,7 @@ class HttpClient<I>::HttpSession : public HttpSessionInterface { + } + + int shutdown_socket() { +- if (!boost::beast::get_lowest_layer( +- derived().stream()).socket().is_open()) { ++ if (!derived().stream().lowest_layer().is_open()) { + return 0; + } + +@@ -366,7 +365,7 @@ class HttpClient<I>::HttpSession : public HttpSessionInterface { + ldout(cct, 15) << dendl; + + boost::system::error_code ec; +- boost::beast::get_lowest_layer(derived().stream()).socket().shutdown( ++ derived().stream().lowest_layer().shutdown( + boost::asio::ip::tcp::socket::shutdown_both, ec); + + if (ec && ec != boost::beast::errc::not_connected) { +@@ -595,7 +594,7 @@ class HttpClient<I>::PlainHttpSession : public HttpSession<PlainHttpSession> { + this->close_socket(); + } + +- inline boost::beast::tcp_stream& ++ inline boost::asio::ip::tcp::socket& + stream() { + return m_stream; + } +@@ -607,12 +606,13 @@ class HttpClient<I>::PlainHttpSession : public HttpSession<PlainHttpSession> { + auto cct = http_client->m_cct; + ldout(cct, 15) << dendl; + +- ceph_assert(!m_stream.socket().is_open()); +- m_stream.async_connect( +- results, +- [on_finish](boost::system::error_code ec, const auto& endpoint) { +- on_finish->complete(-ec.value()); +- }); ++ ceph_assert(!m_stream.is_open()); ++ boost::asio::async_connect(m_stream, ++ results, ++ [on_finish](boost::system::error_code ec, ++ const auto& endpoint) { ++ on_finish->complete(-ec.value()); ++ }); + } + + void disconnect(Context* on_finish) override { +@@ -624,7 +624,7 @@ class HttpClient<I>::PlainHttpSession : public HttpSession<PlainHttpSession> { + } + + private: +- boost::beast::tcp_stream m_stream; ++ boost::asio::ip::tcp::socket m_stream; + }; + + #undef dout_prefix +@@ -643,7 +643,7 @@ class HttpClient<I>::SslHttpSession : public HttpSession<SslHttpSession> { + this->close_socket(); + } + +- inline boost::beast::ssl_stream<boost::beast::tcp_stream>& ++ inline boost::asio::ssl::stream<boost::asio::ip::tcp::socket>& + stream() { + return m_stream; + } +@@ -655,8 +655,9 @@ class HttpClient<I>::SslHttpSession : public HttpSession<SslHttpSession> { + auto cct = http_client->m_cct; + ldout(cct, 15) << dendl; + +- ceph_assert(!boost::beast::get_lowest_layer(m_stream).socket().is_open()); +- boost::beast::get_lowest_layer(m_stream).async_connect( ++ ceph_assert(!m_stream.lowest_layer().is_open()); ++ async_connect( ++ m_stream.lowest_layer(), + results, + [this, on_finish](boost::system::error_code ec, const auto& endpoint) { + handle_connect(-ec.value(), on_finish); +@@ -681,12 +682,12 @@ class HttpClient<I>::SslHttpSession : public HttpSession<SslHttpSession> { + + // ssl_stream object can't be reused after shut down -- move-in + // a freshly constructed instance +- m_stream = boost::beast::ssl_stream<boost::beast::tcp_stream>( ++ m_stream = boost::asio::ssl::stream<boost::asio::ip::tcp::socket>( + http_client->m_strand, http_client->m_ssl_context); + } + + private: +- boost::beast::ssl_stream<boost::beast::tcp_stream> m_stream; ++ boost::asio::ssl::stream<boost::asio::ip::tcp::socket> m_stream; + + void handle_connect(int r, Context* on_finish) { + auto http_client = this->m_http_client; +diff --git a/src/librbd/migration/HttpClient.h b/src/librbd/migration/HttpClient.h +index 3997e6159e7e5..5844f91869301 100644 +--- a/src/librbd/migration/HttpClient.h ++++ b/src/librbd/migration/HttpClient.h +@@ -13,13 +13,12 @@ + #include <boost/asio/strand.hpp> + #include <boost/asio/ip/tcp.hpp> + #include <boost/asio/ssl/context.hpp> ++#include <boost/asio/ssl/stream.hpp> + #include <boost/beast/version.hpp> +-#include <boost/beast/core/tcp_stream.hpp> + #include <boost/beast/http/empty_body.hpp> + #include <boost/beast/http/message.hpp> + #include <boost/beast/http/string_body.hpp> + #include <boost/beast/http/write.hpp> +-#include <boost/beast/ssl/ssl_stream.hpp> + #include <functional> + #include <memory> + #include <string> +@@ -97,7 +96,7 @@ class HttpClient { + completion(r, std::move(response)); + } + +- void operator()(boost::beast::tcp_stream& stream) override { ++ void operator()(boost::asio::ip::tcp::socket& stream) override { + preprocess_request(); + + boost::beast::http::async_write( +@@ -110,7 +109,7 @@ class HttpClient { + } + + void operator()( +- boost::beast::ssl_stream<boost::beast::tcp_stream>& stream) override { ++ boost::asio::ssl::stream<boost::asio::ip::tcp::socket>& stream) override { + preprocess_request(); + + boost::beast::http::async_write( +@@ -152,9 +151,9 @@ class HttpClient { + virtual bool need_eof() const = 0; + virtual bool header_only() const = 0; + virtual void complete(int r, Response&&) = 0; +- virtual void operator()(boost::beast::tcp_stream& stream) = 0; ++ virtual void operator()(boost::asio::ip::tcp::socket& stream) = 0; + virtual void operator()( +- boost::beast::ssl_stream<boost::beast::tcp_stream>& stream) = 0; ++ boost::asio::ssl::stream<boost::asio::ip::tcp::socket>& stream) = 0; + }; + + template <typename D> struct HttpSession; +diff --git a/src/test/librbd/migration/test_mock_HttpClient.cc b/src/test/librbd/migration/test_mock_HttpClient.cc +index f3888755c79e5..901c4231dd067 100644 +--- a/src/test/librbd/migration/test_mock_HttpClient.cc ++++ b/src/test/librbd/migration/test_mock_HttpClient.cc +@@ -307,7 +307,7 @@ TEST_F(TestMockMigrationHttpClient, OpenCloseHttps) { + + boost::asio::ssl::context ssl_context{boost::asio::ssl::context::tlsv12}; + load_server_certificate(ssl_context); +- boost::beast::ssl_stream<boost::beast::tcp_stream> ssl_stream{ ++ boost::asio::ssl::stream<boost::asio::ip::tcp::socket> ssl_stream{ + std::move(socket), ssl_context}; + + C_SaferCond on_ssl_handshake_ctx; +@@ -341,7 +341,7 @@ TEST_F(TestMockMigrationHttpClient, OpenHttpsHandshakeFail) { + + boost::asio::ssl::context ssl_context{boost::asio::ssl::context::tlsv12}; + load_server_certificate(ssl_context); +- boost::beast::ssl_stream<boost::beast::tcp_stream> ssl_stream{ ++ boost::asio::ssl::stream<boost::asio::ip::tcp::socket> ssl_stream{ + std::move(socket), ssl_context}; + + C_SaferCond on_ssl_handshake_ctx; diff --git a/sys-cluster/ceph/files/ceph-19.2.1-mgr.patch b/sys-cluster/ceph/files/ceph-19.2.1-mgr.patch new file mode 100644 index 000000000000..91569105a616 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-mgr.patch @@ -0,0 +1,36 @@ +From d44b2227cdc6d1e2ad4b242473f6c392419d6fbf Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemerson@redhat.com> +Date: Mon, 6 Jan 2025 21:01:49 -0500 +Subject: [PATCH] mgr: Work around bug in Boost MPI/Python + +Thanks to the maintainers of the Arch User Repository Ceph PKGBUILD +for this fix. + +Signed-off-by: Adam Emerson <aemerson@redhat.com> +--- + src/mgr/PyModule.cc | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/mgr/PyModule.cc b/src/mgr/PyModule.cc +index cff63ef4a6b68..4f996489ba082 100644 +--- a/src/mgr/PyModule.cc ++++ b/src/mgr/PyModule.cc +@@ -38,6 +38,18 @@ std::string PyModule::mgr_store_prefix = "mgr/"; + #define BOOST_BIND_GLOBAL_PLACEHOLDERS + // Boost apparently can't be bothered to fix its own usage of its own + // deprecated features. ++ ++// Fix instances of "'BOOST_PP_ITERATION_02' was not declared in this scope; did ++// you mean 'BOOST_PP_ITERATION_05'" and related macro error bullshit that spans ++// 300 lines of errors ++// ++// Apparently you can't include boost/python stuff _and_ have this header ++// defined ++// ++// Thanks to the ceph-aur folks for the fix at: ++// https://github.com/bazaah/aur-ceph/commit/8c5cc7d8deec002f7596b6d0860859a0a718f12b ++#undef BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS ++ + #include <boost/python/extract.hpp> + #include <boost/python/import.hpp> + #include <boost/python/object.hpp> diff --git a/sys-cluster/ceph/files/ceph-19.2.1-rgw.patch b/sys-cluster/ceph/files/ceph-19.2.1-rgw.patch new file mode 100644 index 000000000000..7a05bb0b0621 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-rgw.patch @@ -0,0 +1,59 @@ +From b2e76314cf0f4be311a9df60bdc0ab4eef83e120 Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemerson@redhat.com> +Date: Fri, 13 Dec 2024 15:22:12 -0500 +Subject: [PATCH] rgw: Asio deprecations + +Signed-off-by: Adam Emerson <aemerson@redhat.com> +--- + src/rgw/driver/rados/rgw_notify.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/rgw/driver/rados/rgw_notify.cc b/src/rgw/driver/rados/rgw_notify.cc +index 5734284d1a364..14eeb73dac26b 100644 +--- a/src/rgw/driver/rados/rgw_notify.cc ++++ b/src/rgw/driver/rados/rgw_notify.cc +@@ -178,7 +178,7 @@ class Manager : public DoutPrefixProvider { + if (pending_tokens == 0) { + return; + } +- timer.expires_from_now(infinite_duration); ++ timer.expires_after(infinite_duration); + boost::system::error_code ec; + timer.async_wait(yield[ec]); + ceph_assert(ec == boost::system::errc::operation_canceled); +@@ -297,7 +297,7 @@ class Manager : public DoutPrefixProvider { + << ". error: " << ret << dendl; + } + Timer timer(io_context); +- timer.expires_from_now(std::chrono::seconds(reservations_cleanup_period_s)); ++ timer.expires_after(std::chrono::seconds(reservations_cleanup_period_s)); + boost::system::error_code ec; + timer.async_wait(yield[ec]); + } +@@ -380,7 +380,7 @@ class Manager : public DoutPrefixProvider { + // if queue was empty the last time, sleep for idle timeout + if (is_idle) { + Timer timer(io_context); +- timer.expires_from_now(std::chrono::microseconds(queue_idle_sleep_us)); ++ timer.expires_after(std::chrono::microseconds(queue_idle_sleep_us)); + boost::system::error_code ec; + timer.async_wait(yield[ec]); + } +@@ -657,7 +657,7 @@ class Manager : public DoutPrefixProvider { + const auto duration = (has_error ? + std::chrono::milliseconds(queues_update_retry_ms) : std::chrono::milliseconds(queues_update_period_ms)) + + std::chrono::milliseconds(duration_jitter(rnd_gen)); +- timer.expires_from_now(duration); ++ timer.expires_after(duration); + const auto tp = ceph::coarse_real_time::clock::to_time_t(ceph::coarse_real_time::clock::now() + duration); + ldpp_dout(this, 20) << "INFO: next queues processing will happen at: " << std::ctime(&tp) << dendl; + boost::system::error_code ec; +@@ -743,7 +743,7 @@ class Manager : public DoutPrefixProvider { + Timer timer(io_context); + while (processed_queue_count > 0) { + ldpp_dout(this, 5) << "INFO: manager stopped. " << processed_queue_count << " queues are still being processed" << dendl; +- timer.expires_from_now(std::chrono::milliseconds(queues_update_retry_ms)); ++ timer.expires_after(std::chrono::milliseconds(queues_update_retry_ms)); + boost::system::error_code ec; + timer.async_wait(yield[ec]); + } diff --git a/sys-cluster/ceph/files/ceph-19.2.1-uuid.patch b/sys-cluster/ceph/files/ceph-19.2.1-uuid.patch new file mode 100644 index 000000000000..987312416700 --- /dev/null +++ b/sys-cluster/ceph/files/ceph-19.2.1-uuid.patch @@ -0,0 +1,41 @@ +From 01306208eac492ee0e67bff143fc32d0551a2a6f Mon Sep 17 00:00:00 2001 +From: Luc Ritchie <luc.ritchie@gmail.com> +Date: Fri, 6 Sep 2024 19:17:53 -0400 +Subject: [PATCH] src/include/uuid.h: fix for boost 1.86.0 + +Boost 1.86.0 includes a significant rewrite of the UUID library. The +Changelog[^1] notes that: + +> u.data(), where u is of type uuid, now returns a pointer to the first +> uint8_t of the representation (same as u.begin().) For backward +> compatibility, data is a function object with operator(), rather than +> a member function, which allows most existing uses of data as a +> public member to remain valid, if no longer encouraged. + +I don't know enough about C++ to judge how that should have worked, but +it leads to a compile error here. This patch uses BOOST_VERSION to +decide whether to access .data as a member or .data() as a function. + +[^1]: https://www.boost.org/doc/libs/1_86_0/libs/uuid/doc/html/uuid.html#changes + +Signed-off-by: Luc Ritchie <luc.ritchie@gmail.com> +--- + src/include/uuid.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/include/uuid.h b/src/include/uuid.h +index f6ef9878daee7..a5d63c372977a 100644 +--- a/src/include/uuid.h ++++ b/src/include/uuid.h +@@ -60,7 +60,11 @@ struct uuid_d { + } + + const char *bytes() const { ++#if BOOST_VERSION >= 108600 ++ return (const char*)uuid.data(); ++#else + return (const char*)uuid.data; ++#endif + } + + void encode(::ceph::buffer::list::contiguous_appender& p) const { |