summaryrefslogtreecommitdiff
path: root/sys-cluster
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-24 19:24:56 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-24 19:24:56 +0000
commitd4653056cc74d97f24bef0d56b4ebe11c53c8b76 (patch)
tree5d4be0715302fad2089468027fadaa0372afd1d1 /sys-cluster
parent575bcb9220287a6f0d2577db1fd9fe55d9d8b745 (diff)
gentoo auto-resync : 24:02:2025 - 19:24:56
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/Manifest.gzbin11564 -> 11559 bytes
-rw-r--r--sys-cluster/ceph/Manifest10
-rw-r--r--sys-cluster/ceph/ceph-19.2.1.ebuild521
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-exporter.patch11
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-graylog.patch24
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-immutableobjectcache.patch101
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-librbd.patch195
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-mgr.patch36
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-rgw.patch59
-rw-r--r--sys-cluster/ceph/files/ceph-19.2.1-uuid.patch41
10 files changed, 998 insertions, 0 deletions
diff --git a/sys-cluster/Manifest.gz b/sys-cluster/Manifest.gz
index 5d8ca8dc2d29..d2bb55c4c53a 100644
--- a/sys-cluster/Manifest.gz
+++ b/sys-cluster/Manifest.gz
Binary files differ
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 {