commit 15575e11ebaaf777088fac2e6dccbd7a5a5cc2aa Author: Jan Rękorajski <bagg...@pld-linux.org> Date: Sun Dec 22 01:30:05 2024 +0100
- up to 19.2.0 Disabled arrow and parquet as the bundled libs are antiques and they're not present as PLD packages. boost-1.86.patch | 94 +++++++++++++++ boost-1.87.patch | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++ boost1.81.patch | 49 -------- ceph-arrow-re2.patch | 11 -- ceph-gcc12.patch | 52 --------- ceph-gcc14-2.patch | 253 ---------------------------------------- ceph-glibc.patch | 10 -- ceph-libfmt.patch | 184 ----------------------------- ceph-liburing.patch | 11 -- ceph-qat.patch | 139 ---------------------- ceph.spec | 82 ++++++------- types.patch | 13 +-- 12 files changed, 449 insertions(+), 769 deletions(-) --- diff --git a/ceph.spec b/ceph.spec index 5de3587..7d9af30 100644 --- a/ceph.spec +++ b/ceph.spec @@ -17,9 +17,6 @@ %bcond_with angular # Angular-based mgr/dashboard frontend (built using npm, too outdated currently) %bcond_without bluefs # BlueFS library %bcond_with dpdk # DPDK messaging -# 15.2.x/16.2.x build fails with: -# src/rgw/rgw_fcgi_process.cc:92:53: error: 'class rgw::sal::RGWRadosStore' has no member named 'get_new_req_id' -%bcond_with fcgi # RADOS Gateway FCGI frontend %bcond_with fio # FIO engines support (16.x: downloads fio as internal subproject) %bcond_with jaeger # jaegertracing support (NFY, BR: thrift >= 0.13) %bcond_with kerberos # GSSAPI/KRB5 support @@ -53,14 +50,14 @@ Summary: User space components of the Ceph file system Summary(pl.UTF-8): Działające w przestrzeni użytkownika elementy systemu plików Ceph Name: ceph -Version: 18.2.4 +Version: 19.2.0 Release: 1 License: LGPL v2.1 (libraries), GPL v2 (some programs) Group: Base Source0: http://download.ceph.com/tarballs/%{name}-%{version}.tar.gz -# Source0-md5: 28ab44c5c5a05786ec02b25ae5300b2b -Source1: ceph.sysconfig -Source3: ceph.tmpfiles +# Source0-md5: 876d7144df5c7061ddbd5bc5c3709a35 +Source1: %{name}.sysconfig +Source3: %{name}.tmpfiles Patch0: %{name}-python.patch Patch1: %{name}-fio.patch Patch2: %{name}-cmake-static.patch @@ -71,19 +68,12 @@ Patch6: types.patch Patch7: use-provided-cpu-flag-values.patch Patch8: ix86-no-asm.patch Patch9: long-int-time_t.patch -Patch10: %{name}-qat.patch -Patch11: %{name}-liburing.patch -Patch12: %{name}-glibc.patch -Patch13: %{name}-libfmt.patch -Patch14: %{name}-system-rocksdb.patch -# https://src.fedoraproject.org/rpms/ceph/blob/rawhide/f/0017-gcc-12-omnibus.patch -Patch15: %{name}-gcc12.patch +Patch10: %{name}-system-rocksdb.patch # https://src.fedoraproject.org/rpms/ceph/blob/rawhide/f/0020-src-arrow-cpp-cmake_modules-ThirdpartyToolchain.cmake.patch -Patch16: %{name}-system-xsimd.patch -Patch17: boost1.81.patch -Patch18: %{name}-gcc14.patch -Patch19: %{name}-gcc14-2.patch -Patch20: %{name}-arrow-re2.patch +Patch11: %{name}-system-xsimd.patch +Patch12: %{name}-gcc14.patch +Patch13: boost-1.86.patch +Patch14: boost-1.87.patch URL: https://ceph.io/ %{?with_qatzip:BuildRequires: QATzip-devel} %{?with_babeltrace:BuildRequires: babeltrace-devel} @@ -100,7 +90,6 @@ BuildRequires: dpdk-devel %endif BuildRequires: doxygen BuildRequires: expat-devel >= 1.95 -%{?with_fcgi:BuildRequires: fcgi-devel} %{?with_fio:BuildRequires: fio-devel >= 3.15} BuildRequires: gdbm-devel %{?with_seastar:BuildRequires: gnutls-devel >= 3.3.26} @@ -156,12 +145,12 @@ BuildRequires: python3-PyYAML BuildRequires: python3-devel >= 1:3.6.0 BuildRequires: python3-modules >= 1:3.6.0 %{?with_tests:BuildRequires: python3-tox >= 2.9.1} +%{?with_qat:BuildRequires: qatlib-devel} BuildRequires: rabbitmq-c-devel %{?with_seastar:BuildRequires: ragel >= 6.10} BuildRequires: re2-devel %{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.14} BuildRequires: rpmbuild(macros) >= 2.021 -%{?with_qat:BuildRequires: qatlib-devel} BuildRequires: sed >= 4.0 BuildRequires: snappy-devel BuildRequires: sphinx-pdg >= 4.4.0 @@ -169,8 +158,8 @@ BuildRequires: sqlite3-devel >= 3 # >= 0.13.0 wanted, but seems to build with 0.11.0 when jaeger is disabled BuildRequires: thrift-devel BuildRequires: udev-devel -%{?with_dpdk:BuildRequires: xorg-lib-libpciaccess-devel} BuildRequires: xfsprogs-devel +%{?with_dpdk:BuildRequires: xorg-lib-libpciaccess-devel} BuildRequires: xsimd-devel %{?with_seastar:BuildRequires: yaml-cpp-devel >= 0.5.1} %ifarch %{x8664} @@ -224,14 +213,13 @@ Requires: %{name}-libs = %{version}-%{release} Requires: boost-devel >= 1.79 Requires: curl-devel >= 7.32 Requires: expat-devel >= 1.95 -Requires: fcgi-devel -Requires: nss-devel >= 3 Requires: leveldb-devel >= 1.23-2 Requires: libatomic_ops Requires: libblkid-devel >= 2.17 Requires: libstdc++-devel >= 6:11 Requires: libuuid-devel -%{?with_lttng:Requires: lttng-ust-devel} +%{?with_lttng:Requires: lttng-ust-devel} +Requires: nss-devel >= 3 Requires: openldap-devel Obsoletes: ceph-static < 12 @@ -341,29 +329,23 @@ uruchamiania demonów. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 +%patch -P 0 -p1 +%patch -P 1 -p1 +%patch -P 2 -p1 +%patch -P 3 -p1 +%patch -P 4 -p1 +%patch -P 5 -p1 +%patch -P 6 -p1 +%patch -P 7 -p1 +%patch -P 8 -p1 %ifarch %{ix86} -%patch9 -p1 +%patch -P 9 -p1 %endif -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 +%patch -P 10 -p1 +%patch -P 11 -p1 +%patch -P 12 -p1 +%patch -P 13 -p1 +%patch -P 14 -p1 %{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' \ src/{ceph-post-file.in,rbd-replay-many,rbdmap} \ @@ -420,7 +402,8 @@ cd build %{!?with_angular:-DWITH_MGR_DASHBOARD_FRONTEND=OFF} \ -DWITH_OCF=ON \ -DWITH_PYTHON3=%{py3_ver} \ - %{?with_fcgi:-DWITH_RADOSGW_FCGI_FRONTEND=ON} \ + -DWITH_RADOSGW_SELECT_PARQUET=OFF \ + -DWITH_RADOSGW_ARROW_FLIGHT=OFF \ %{!?with_rdma:-DWITH_RDMA=OFF} \ -DWITH_REENTRANT_STRSIGNAL=ON \ %{?with_qat:-DWITH_QAT=ON} \ @@ -512,7 +495,6 @@ fi %{systemdunitdir}/ceph.service %{systemdunitdir}/ceph.target %{systemdunitdir}/ceph-crash.service -%{systemdunitdir}/ceph-exporter.service %{systemdunitdir}/ceph-fuse.target %{systemdunitdir}/ceph-fuse@.service %{systemdunitdir}/ceph-immutable-object-cache.target @@ -704,6 +686,7 @@ fi %{_mandir}/man8/rbd-replay-prep.8* %{_mandir}/man8/rbdmap.8* %{_mandir}/man8/rgw-orphan-list.8* +%{_mandir}/man8/rgw-restore-bucket-index.8* %dir %{_localstatedir}/lib/ceph %dir %{_localstatedir}/lib/ceph/bootstrap-mds @@ -726,6 +709,8 @@ fi %endif %attr(755,root,root) %{_libdir}/libcephfs.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libcephfs.so.2 +%attr(755,root,root) %{_libdir}/libmgr_op_tp.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmgr_op_tp.so.1 %attr(755,root,root) %{_libdir}/libos_tp.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libos_tp.so.1 %attr(755,root,root) %{_libdir}/libosd_tp.so.*.*.* @@ -753,6 +738,7 @@ fi %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libcephfs.so +%attr(755,root,root) %{_libdir}/libmgr_op_tp.so %attr(755,root,root) %{_libdir}/libos_tp.so %attr(755,root,root) %{_libdir}/libosd_tp.so %attr(755,root,root) %{_libdir}/librados.so diff --git a/boost-1.86.patch b/boost-1.86.patch new file mode 100644 index 0000000..b8a0949 --- /dev/null +++ b/boost-1.86.patch @@ -0,0 +1,94 @@ +From 01306208eac492ee0e67bff143fc32d0551a2a6f Mon Sep 17 00:00:00 2001 +From: Luc Ritchie <luc.ritc...@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.ritc...@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 { +diff --git a/src/mgr/PyModule.cc b/src/mgr/PyModule.cc +index 084cf3ffc1e..010a1177a88 100644 +--- a/src/mgr/PyModule.cc ++++ b/src/mgr/PyModule.cc +@@ -36,6 +36,11 @@ std::string PyModule::mgr_store_prefix = "mgr/"; + + // Courtesy of http://stackoverflow.com/questions/1418015/how-to-get-python-exception-text + #define BOOST_BIND_GLOBAL_PLACEHOLDERS ++// 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 ++#undef BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS + // Boost apparently can't be bothered to fix its own usage of its own + // deprecated features. + #include <boost/python/extract.hpp> +diff --git a/src/test/objectstore/Allocator_aging_fragmentation.cc b/src/test/objectstore/Allocator_aging_fragmentation.cc +index 220f8841b8e..6ddfb02b1dd 100755 +--- a/src/test/objectstore/Allocator_aging_fragmentation.cc ++++ b/src/test/objectstore/Allocator_aging_fragmentation.cc +@@ -19,6 +19,7 @@ + #include "os/bluestore/Allocator.h" + + #include <boost/random/uniform_int.hpp> ++#include <boost/random/mersenne_twister.hpp> + + typedef boost::mt11213b gen_type; + +diff --git a/src/test/objectstore/Allocator_bench.cc b/src/test/objectstore/Allocator_bench.cc +index 0d04a854e9a..5218207d2c2 100644 +--- a/src/test/objectstore/Allocator_bench.cc ++++ b/src/test/objectstore/Allocator_bench.cc +@@ -15,6 +15,7 @@ + #include "os/bluestore/Allocator.h" + + #include <boost/random/uniform_int.hpp> ++#include <boost/random/mersenne_twister.hpp> + typedef boost::mt11213b gen_type; + + #include "common/debug.h" +diff --git a/src/test/objectstore/Allocator_test.cc b/src/test/objectstore/Allocator_test.cc +index b006500153c..0edea1d4ac1 100644 +--- a/src/test/objectstore/Allocator_test.cc ++++ b/src/test/objectstore/Allocator_test.cc +@@ -14,6 +14,8 @@ + #include "include/Context.h" + #include "os/bluestore/Allocator.h" + ++#include <boost/random/mersenne_twister.hpp> ++ + using namespace std; + + typedef boost::mt11213b gen_type; diff --git a/boost-1.87.patch b/boost-1.87.patch new file mode 100644 index 0000000..baf009c --- /dev/null +++ b/boost-1.87.patch @@ -0,0 +1,320 @@ +From 42986304aeebea7fc0b972ae781bd14000ac1452 Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Thu, 12 Dec 2024 16:11:04 -0500 +Subject: [PATCH] common/Graylog: Fix Asio resolve call + +Signed-off-by: Adam Emerson <aemer...@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; +From 7f394d095e5620ca3fe860a539ad841affc5e31f Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Fri, 13 Dec 2024 15:21:49 -0500 +Subject: [PATCH] immutable_object_cache: Asio deprecations + +Signed-off-by: Adam Emerson <aemer...@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; +From 8a04d36cb4738f88c0d60cf0bc83ce052ee3594d Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Thu, 12 Dec 2024 16:11:32 -0500 +Subject: [PATCH] test/neorados: Use `asio::post` free function + +Signed-off-by: Adam Emerson <aemer...@redhat.com> +--- + src/test/neorados/completions.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/test/neorados/completions.cc b/src/test/neorados/completions.cc +index b6286130bbea0..a4684e4dc51c5 100644 +--- a/src/test/neorados/completions.cc ++++ b/src/test/neorados/completions.cc +@@ -1,4 +1,5 @@ + #include <boost/asio/io_context.hpp> ++#include <boost/asio/post.hpp> + + constexpr int max_completions = 10'000'000; + int completed = 0; +@@ -7,11 +8,11 @@ boost::asio::io_context c; + + void nested_cb() { + if (++completed < max_completions) +- c.post(&nested_cb); ++ boost::asio::post(c, &nested_cb); + } + + int main(void) { +- c.post(&nested_cb); ++ boost::asio::post(c, &nested_cb); + c.run(); + assert(completed == max_completions); + return 0; +From 8e5e07659f92a416039cb1153b1c45970a2ee42a Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Fri, 13 Dec 2024 15:22:22 -0500 +Subject: [PATCH] exporter: Asio deprecations + +Signed-off-by: Adam Emerson <aemer...@redhat.com> +--- + src/exporter/DaemonMetricCollector.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/exporter/DaemonMetricCollector.cc b/src/exporter/DaemonMetricCollector.cc +index d27b3ac43c59c..80cdf24458618 100644 +--- a/src/exporter/DaemonMetricCollector.cc ++++ b/src/exporter/DaemonMetricCollector.cc +@@ -48,7 +48,7 @@ void DaemonMetricCollector::request_loop() { + 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); + }); + } +From f4ac2f80851628318190685d2041b0e04e066333 Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Fri, 13 Dec 2024 15:22:12 -0500 +Subject: [PATCH] rgw: Asio deprecations + +Signed-off-by: Adam Emerson <aemer...@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]); + } +From 857eedbe6c9ed80ed0625bd0aa27b1a1e85f8d59 Mon Sep 17 00:00:00 2001 +From: Adam Emerson <aemer...@redhat.com> +Date: Mon, 20 May 2024 16:22:28 -0400 +Subject: [PATCH] mds: Use Boost::url rather than `src.hpp` + +As `src.hpp` is no longer supported. + +Signed-off-by: Adam Emerson <aemer...@redhat.com> +--- + CMakeLists.txt | 2 +- + src/mds/BoostUrlImpl.cc | 8 -------- + src/mds/CMakeLists.txt | 3 +-- + src/test/mds/CMakeLists.txt | 3 +-- + 4 files changed, 3 insertions(+), 13 deletions(-) + delete mode 100644 src/mds/BoostUrlImpl.cc + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ba5798e0be9fe..33cd2d81370c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -700,7 +700,7 @@ option(WITH_SYSTEM_BOOST "require and build with system Boost" OFF) + # Boost::thread depends on Boost::atomic, so list it explicitly. + set(BOOST_COMPONENTS + atomic chrono thread system regex random program_options date_time +- iostreams context coroutine) ++ iostreams context coroutine url) + set(BOOST_HEADER_COMPONENTS container) + + if(WITH_MGR) +diff --git a/src/mds/BoostUrlImpl.cc b/src/mds/BoostUrlImpl.cc +deleted file mode 100644 +index 479f4c6d75d0d..0000000000000 +--- a/src/mds/BoostUrlImpl.cc ++++ /dev/null +@@ -1,8 +0,0 @@ +-/* +- * https://www.boost.org/doc/libs/1_82_0/libs/url/doc/html/url/overview.html#url.overview.requirements +- * +- * To use the library as header-only; that is, to eliminate the requirement +- * to link a program to a static or dynamic Boost.URL library, +- * simply place the following line in exactly one source file in your project. +- */ +-#include <boost/url/src.hpp> +diff --git a/src/mds/CMakeLists.txt b/src/mds/CMakeLists.txt +index ffa9dc28d8a69..f3980c7e04b50 100644 +--- a/src/mds/CMakeLists.txt ++++ b/src/mds/CMakeLists.txt +@@ -45,7 +45,6 @@ set(mds_srcs + QuiesceDbManager.cc + QuiesceAgent.cc + MDSRankQuiesce.cc +- BoostUrlImpl.cc + ${CMAKE_SOURCE_DIR}/src/common/TrackedOp.cc + ${CMAKE_SOURCE_DIR}/src/common/MemoryModel.cc + ${CMAKE_SOURCE_DIR}/src/osdc/Journaler.cc +@@ -51,5 +51,5 @@ + ${CMAKE_SOURCE_DIR}/src/mgr/MDSPerfMetricTypes.cc) + add_library(mds STATIC ${mds_srcs}) + target_link_libraries(mds PRIVATE +- heap_profiler cpu_profiler osdc ${LUA_LIBRARIES}) ++ Boost::url heap_profiler cpu_profiler osdc ${LUA_LIBRARIES}) + target_include_directories(mds PRIVATE "${LUA_INCLUDE_DIR}") +diff --git a/src/test/mds/CMakeLists.txt b/src/test/mds/CMakeLists.txt +index f80abe75083f1..18ebb648e680c 100644 +--- a/src/test/mds/CMakeLists.txt ++++ b/src/test/mds/CMakeLists.txt +@@ -18,11 +18,10 @@ target_link_libraries(unittest_mds_sessionfilter mds osdc ceph-common global ${B + add_executable(unittest_mds_quiesce_db + TestQuiesceDb.cc + ../../../src/mds/QuiesceDbManager.cc +- ../../../src/mds/BoostUrlImpl.cc + $<TARGET_OBJECTS:unit-main> + ) + add_ceph_unittest(unittest_mds_quiesce_db) +-target_link_libraries(unittest_mds_quiesce_db ceph-common global) ++target_link_libraries(unittest_mds_quiesce_db ceph-common global Boost::url) + + # unittest_mds_quiesce_agent + add_executable(unittest_mds_quiesce_agent diff --git a/boost1.81.patch b/boost1.81.patch deleted file mode 100644 index 2dd06ed..0000000 --- a/boost1.81.patch +++ /dev/null @@ -1,49 +0,0 @@ -https://bugs.gentoo.org/887481 ---- a/src/rgw/rgw_asio_client.cc -+++ b/src/rgw/rgw_asio_client.cc -@@ -39,11 +39,11 @@ - const auto& value = header->value(); - - if (field == beast::http::field::content_length) { -- env.set("CONTENT_LENGTH", value.to_string()); -+ env.set("CONTENT_LENGTH", value); - continue; - } - if (field == beast::http::field::content_type) { -- env.set("CONTENT_TYPE", value.to_string()); -+ env.set("CONTENT_TYPE", value); - continue; - } - -@@ -62,26 +62,26 @@ - } - *dest = '\0'; - -- env.set(buf, value.to_string()); -+ env.set(buf, value); - } - - int major = request.version() / 10; - int minor = request.version() % 10; - env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor)); - -- env.set("REQUEST_METHOD", request.method_string().to_string()); -+ env.set("REQUEST_METHOD", request.method_string()); - - // split uri from query - auto uri = request.target(); - auto pos = uri.find('?'); - if (pos != uri.npos) { - auto query = uri.substr(pos + 1); -- env.set("QUERY_STRING", query.to_string()); -+ env.set("QUERY_STRING", query); - uri = uri.substr(0, pos); - } -- env.set("SCRIPT_URI", uri.to_string()); -+ env.set("SCRIPT_URI", uri); - -- env.set("REQUEST_URI", request.target().to_string()); -+ env.set("REQUEST_URI", request.target()); - - char port_buf[16]; - snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port()); diff --git a/ceph-arrow-re2.patch b/ceph-arrow-re2.patch deleted file mode 100644 index 34d8053..0000000 --- a/ceph-arrow-re2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ceph-18.2.4/src/arrow/cpp/src/arrow/compute/kernels/scalar_string.cc.orig 2021-11-10 03:04:48.000000000 +0100 -+++ ceph-18.2.4/src/arrow/cpp/src/arrow/compute/kernels/scalar_string.cc 2024-09-04 19:26:35.961458373 +0200 -@@ -3012,7 +3012,7 @@ struct ExtractRegex : public ExtractRege - result->value.reserve(group_count); - for (int i = 0; i < group_count; i++) { - result->value.push_back( -- std::make_shared<ScalarType>(found_values[i].as_string())); -+ std::make_shared<ScalarType>(std::string(found_values[i]))); - } - result->is_valid = true; - } else { diff --git a/ceph-gcc12.patch b/ceph-gcc12.patch deleted file mode 100644 index 3e0874e..0000000 --- a/ceph-gcc12.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- ceph-16.2.7/src/include/buffer.h.orig 2022-01-17 12:17:19.193356237 -0500 -+++ ceph-16.2.7/src/include/buffer.h 2022-01-17 12:17:58.599639592 -0500 -@@ -38,6 +38,7 @@ - # include <sys/mman.h> - #endif - -+#include <memory> - #include <iosfwd> - #include <iomanip> - #include <list> ---- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500 -+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500 -@@ -183,7 +183,7 @@ - return "crit"; - default: - ceph_abort(); -- return 0; -+ return ""; - } - } - ---- ceph-18.2.3/src/test/librados/tier_cxx.cc.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/test/librados/tier_cxx.cc 2024-05-29 06:30:11.278773257 +0200 -@@ -120,7 +120,7 @@ static inline void buf_to_hex(const unsi - } - - void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count, -- std::string fp_algo = NULL) -+ std::string fp_algo = "") - { - bufferlist t; - int size = foid.length(); -@@ -148,7 +148,7 @@ void check_fp_oid_refcount(librados::IoC - ASSERT_LE(count, refs.count()); - } - --string get_fp_oid(string oid, std::string fp_algo = NULL) -+string get_fp_oid(string oid, std::string fp_algo = "") - { - if (fp_algo == "sha1") { - unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1]; ---- ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h.orig 2022-02-11 17:21:40.268627997 -0500 -+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500 -@@ -466,7 +466,7 @@ - - std::string print(int ident) override - { -- return std::string(0); -+ return std::string(""); - } - - void push_argument(base_statement* arg) diff --git a/ceph-gcc14-2.patch b/ceph-gcc14-2.patch deleted file mode 100644 index 334de92..0000000 --- a/ceph-gcc14-2.patch +++ /dev/null @@ -1,253 +0,0 @@ -From f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fwei...@redhat.com> -Date: Wed, 20 Dec 2023 14:16:19 +0100 -Subject: [PATCH 1/2] tracing: Fix C type errors in librados tracing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes type errors like this: - -In file included from /usr/include/lttng/tracepoint-event.h:69, - from …-build/include/tracing/librados.h:4143, - from …/src/tracing/librados.c:6 -: -…-build/include/tracing/librados.h: - In function ‘lttng_ust__event_probe__librados___rados_mon_command_exit’: -…-build/include/tracing/librados.h:477:9: error: initialization of ‘size_t’ {aka ‘long unsigned int’} from ‘size_t *’ {aka ‘long unsigned int *’} makes integer from pointer without a cast - 477 | ceph_ctf_integerp(size_t, outslen, outslen) - | ^~~~~~~~~~~~~~~~~ - -GCC 14 will likely treat these type mismatches as an error -and fail the build. - -Signed-off-by: Florian Weimer <fwei...@redhat.com> ---- - src/tracing/librados.tp | 4 ++-- - src/tracing/tracing-common.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp -index 8b5e78ef15d65..8e116124b83d5 100644 ---- a/src/tracing/librados.tp -+++ b/src/tracing/librados.tp -@@ -2628,7 +2628,7 @@ TRACEPOINT_EVENT(librados, rados_watch3_enter, - TP_FIELDS( - ctf_integer_hex(rados_ioctx_t, ioctx, ioctx) - ctf_string(oid, oid) -- ctf_integer_hex(uint64_t, phandle, phandle) -+ ctf_integer_hex(uint64_t*, phandle, phandle) - ctf_integer_hex(rados_watchcb2_t, callback, callback) - ctf_integer(uint32_t, timeout, timeout) - ctf_integer_hex(void*, arg, arg) -@@ -2658,7 +2658,7 @@ TRACEPOINT_EVENT(librados, rados_aio_watch2_enter, - ctf_integer_hex(rados_ioctx_t, ioctx, ioctx) - ctf_string(oid, oid) - ctf_integer_hex(rados_completion_t, completion, completion) -- ctf_integer_hex(uint64_t, phandle, phandle) -+ ctf_integer_hex(uint64_t*, phandle, phandle) - ctf_integer_hex(rados_watchcb2_t, callback, callback) - ctf_integer(uint32_t, timeout, timeout) - ctf_integer_hex(void*, arg, arg) -diff --git a/src/tracing/tracing-common.h b/src/tracing/tracing-common.h -index 3e07f9de8e85c..03449ab588615 100644 ---- a/src/tracing/tracing-common.h -+++ b/src/tracing/tracing-common.h -@@ -21,7 +21,7 @@ - // type should be an integer type - // val should have type type* - #define ceph_ctf_integerp(type, field, val) \ -- ctf_integer(type, field, (val) == NULL ? 0 : (val)) \ -+ ctf_integer(type, field, (val) == NULL ? 0 : *(val)) \ - ctf_integer(uint8_t, field##_isnull, (val) == NULL) - - // val should have type char* - -From a49d154f4a8e493baf2296a15c7b5c56cd25e993 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fwei...@redhat.com> -Date: Wed, 20 Dec 2023 14:59:19 +0100 -Subject: [PATCH 2/2] pybind: Fix C type errors in Cython-generated Python - bindings -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Several Ceph APIs use bool * types, which correspond to -libcpp.bool * types in Cython. The bint type has an incorrect -size 4 and cannot be used as a replacement. - -This prevents a compilation failure with future compilers: - -…-build/src/pybind/rbd/rbd.c: In function ‘__pyx_pf_3rbd_3RBD_104namespace_exists’: -…-build/src/pybind/rbd/rbd.c:42165:76: error: passing argument 3 of ‘rbd_namespace_exists’ from incompatible pointer type -42165 | __pyx_v_ret = rbd_namespace_exists(__pyx_v__ioctx, __pyx_v__name, (&__pyx_v__exists)); - | ~^~~~~~~~~~~~~~~~~ - | | - | int * -In file included from …-build/src/pybind/rbd/rbd.c:1268: -…/src/include/rbd/librbd.h:1496:45: note: expected ‘_Bool *’ but argument is of type ‘int *’ - 1496 | bool *exists); - | ^ - -Signed-off-by: Florian Weimer <fwei...@redhat.com> ---- - src/pybind/rbd/c_rbd.pxd | 5 +++-- - src/pybind/rbd/mock_rbd.pxi | 9 +++++++-- - src/pybind/rbd/rbd.pyx | 9 +++++---- - src/pybind/rgw/mock_rgw.pxi | 9 +++++++-- - src/pybind/rgw/rgw.pyx | 3 ++- - 5 files changed, 24 insertions(+), 11 deletions(-) - -diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd -index 885f7bd46abde..bda23bbc4735f 100644 ---- a/src/pybind/rbd/c_rbd.pxd -+++ b/src/pybind/rbd/c_rbd.pxd -@@ -2,6 +2,7 @@ - - from libc.stdint cimport * - from ctime cimport time_t, timespec -+cimport libcpp - - cdef extern from "rados/librados.h": - enum: -@@ -525,7 +526,7 @@ cdef extern from "rbd/librbd.h" nogil: - int rbd_snap_unprotect(rbd_image_t image, const char *snap_name) - int rbd_snap_is_protected(rbd_image_t image, const char *snap_name, - int *is_protected) -- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists) -+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists) - int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit) - int rbd_snap_set_limit(rbd_image_t image, uint64_t limit) - int rbd_snap_get_timestamp(rbd_image_t image, uint64_t snap_id, timespec *timestamp) -@@ -711,7 +712,7 @@ cdef extern from "rbd/librbd.h" nogil: - int rbd_namespace_list(rados_ioctx_t io, char *namespace_names, - size_t *size) - int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name, -- bint *exists) -+ libcpp.bool *exists) - - int rbd_pool_init(rados_ioctx_t, bint force) - -diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi -index 11872bd8146de..364f965fbad43 100644 ---- a/src/pybind/rbd/mock_rbd.pxi -+++ b/src/pybind/rbd/mock_rbd.pxi -@@ -3,6 +3,11 @@ - from libc.stdint cimport * - from ctime cimport time_t, timespec - -+# Make the bool type available as libcpp.bool, for both C and C++. -+cimport libcpp -+cdef extern from "<stdbool.h>": -+ pass -+ - cdef nogil: - enum: - _LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD" -@@ -637,7 +642,7 @@ cdef nogil: - int rbd_snap_is_protected(rbd_image_t image, const char *snap_name, - int *is_protected): - pass -- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists): -+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists): - pass - int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit): - pass -@@ -896,7 +901,7 @@ cdef nogil: - size_t *size): - pass - int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name, -- bint *exists): -+ libcpp.bool *exists): - pass - int rbd_pool_init(rados_ioctx_t io, bint force): - pass -diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx -index fcb2fb3470600..f59ba23f0fe21 100644 ---- a/src/pybind/rbd/rbd.pyx -+++ b/src/pybind/rbd/rbd.pyx -@@ -23,6 +23,7 @@ from libc cimport errno - from libc.stdint cimport * - from libc.stdlib cimport malloc, realloc, free - from libc.string cimport strdup, memset -+cimport libcpp - - try: - from collections.abc import Iterable -@@ -1935,12 +1936,12 @@ class RBD(object): - cdef: - rados_ioctx_t _ioctx = convert_ioctx(ioctx) - const char *_name = name -- bint _exists = False -+ libcpp.bool _exists = False - with nogil: - ret = rbd_namespace_exists(_ioctx, _name, &_exists) - if ret != 0: - raise make_ex(ret, 'error verifying namespace') -- return bool(_exists != 0) -+ return _exists - - def namespace_list(self, ioctx): - """ -@@ -3679,12 +3680,12 @@ cdef class Image(object): - name = cstr(name, 'name') - cdef: - char *_name = name -- bint _exists = False -+ libcpp.bool _exists = False - with nogil: - ret = rbd_snap_exists(self.image, _name, &_exists) - if ret != 0: - raise make_ex(ret, 'error getting snapshot exists for %s' % self.name) -- return bool(_exists != 0) -+ return _exists - - @requires_not_closed - def get_snap_limit(self): -diff --git a/src/pybind/rgw/mock_rgw.pxi b/src/pybind/rgw/mock_rgw.pxi -index ca893a5bb8a16..806d4df75de05 100644 ---- a/src/pybind/rgw/mock_rgw.pxi -+++ b/src/pybind/rgw/mock_rgw.pxi -@@ -1,5 +1,10 @@ - # cython: embedsignature=True - -+# Make the bool type available as libcpp.bool, for both C and C++. -+cimport libcpp -+cdef extern from "<stdbool.h>": -+ pass -+ - cdef nogil: - ctypedef void* librgw_t - -@@ -111,8 +116,8 @@ cdef nogil: - - int rgw_readdir(rgw_fs *fs, - rgw_file_handle *parent_fh, uint64_t *offset, -- bint (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000, -- void *cb_arg, bint *eof, uint32_t flags) except? -9000: -+ libcpp.bool (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000, -+ void *cb_arg, libcpp.bool *eof, uint32_t flags) except? -9000: - pass - - int rgw_getattr(rgw_fs *fs, -diff --git a/src/pybind/rgw/rgw.pyx b/src/pybind/rgw/rgw.pyx -index 9bbcdfff586a8..d210a70bbb8e3 100644 ---- a/src/pybind/rgw/rgw.pyx -+++ b/src/pybind/rgw/rgw.pyx -@@ -7,6 +7,7 @@ from cpython cimport PyObject, ref, exc, array - from libc.stdint cimport * - from libc.stdlib cimport malloc, realloc, free - from cstat cimport stat -+cimport libcpp - - IF BUILD_DOC: - include "mock_rgw.pxi" -@@ -373,7 +374,7 @@ cdef class LibRGWFS(object): - cdef: - rgw_file_handle *_dir_handler = <rgw_file_handle*>dir_handler.handler - uint64_t _offset = offset -- bint _eof -+ libcpp.bool _eof - uint32_t _flags = flags - with nogil: - ret = rgw_readdir(self.fs, _dir_handler, &_offset, &readdir_cb, diff --git a/ceph-glibc.patch b/ceph-glibc.patch deleted file mode 100644 index 403dd69..0000000 --- a/ceph-glibc.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ceph-17.2.3/src/seastar/include/seastar/core/file.hh.orig 2021-12-19 23:02:10.000000000 +0100 -+++ ceph-17.2.3/src/seastar/include/seastar/core/file.hh 2022-08-29 19:50:21.853290757 +0200 -@@ -32,7 +32,6 @@ - #include <system_error> - #include <sys/statvfs.h> - #include <sys/ioctl.h> --#include <linux/fs.h> - #include <sys/uio.h> - #include <unistd.h> - diff --git a/ceph-libfmt.patch b/ceph-libfmt.patch deleted file mode 100644 index f6bd3f4..0000000 --- a/ceph-libfmt.patch +++ /dev/null @@ -1,184 +0,0 @@ ---- ceph-17.2.7/src/common/LogEntry.h 2023-10-26 01:46:16.000000000 +0200 -+++ ceph-17.2.7.mod/src/common/LogEntry.h 2024-03-02 07:42:35.321554400 +0100 -@@ -18,6 +18,7 @@ - #include <fmt/format.h> - - #include "include/utime.h" -+#include "include/utime_fmt.h" - #include "msg/msg_fmt.h" - #include "msg/msg_types.h" - #include "common/entity_name.h" -@@ -194,6 +195,9 @@ - << e.channel << " " << e.prio << " " << e.msg; - } - -+template <> -+struct fmt::formatter<clog_type> : ostream_formatter {}; -+ - template <> struct fmt::formatter<EntityName> : fmt::formatter<std::string_view> { - template <typename FormatContext> - auto format(const EntityName& e, FormatContext& ctx) { ---- ceph-18.2.3/src/include/types.h.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/include/types.h 2024-05-29 06:11:52.665464115 +0200 -@@ -612,6 +612,12 @@ inline std::ostream &operator<<(std::ost - - #if FMT_VERSION >= 90000 - template <uint8_t S> struct fmt::formatter<sha_digest_t<S>> : fmt::ostream_formatter {}; -+ -+template <typename T> -+struct fmt::formatter<ceph_le<T>> : ostream_formatter {}; -+ -+template <> -+struct fmt::formatter<shard_id_t> : ostream_formatter {}; - #endif - - using sha1_digest_t = sha_digest_t<20>; ---- ceph-18.2.3/src/msg/async/frames_v2.cc.orig 2024-05-29 06:09:22.381732484 +0200 -+++ ceph-18.2.3/src/msg/async/frames_v2.cc 2024-05-29 22:07:02.928224740 +0200 -@@ -12,12 +12,11 @@ - * - */ - -+#include <fmt/format.h> - #include "frames_v2.h" - - #include <ostream> - --#include <fmt/format.h> -- - namespace ceph::msgr::v2 { - - // Unpads bufferlist to unpadded_len. ---- ceph-17.2.7/src/tools/neorados.cc 2024-03-03 19:54:51.414457588 +0100 -+++ ceph-17.2.7.mod/src/tools/neorados.cc 2024-03-03 15:18:02.793213584 +0100 -@@ -143,7 +143,7 @@ - throw bs::system_error(ec, - fmt::format( - "when creating object '{}' in pool '{}'", -- obj, pname)); -+ fmt::streamed(obj), pname)); - } - - inline constexpr std::size_t io_size = 4 << 20; -@@ -179,7 +179,7 @@ - if (ec) - throw bs::system_error(ec, fmt::format( - "when writing object '{}' in pool '{}'", -- obj, pname)); -+ fmt::streamed(obj), pname)); - } - } - -@@ -200,7 +200,7 @@ - throw bs::system_error( - ec, - fmt::format("when getting length of object '{}' in pool '{}'", -- obj, pname)); -+ fmt::streamed(obj), pname)); - } - - std::size_t off = 0; -@@ -213,7 +213,7 @@ - throw bs::system_error( - ec, - fmt::format("when reading from object '{}' in pool '{}'", -- obj, pool)); -+ fmt::streamed(obj), pool)); - - off += bl.length(); - bl.write_stream(std::cout); -@@ -234,7 +234,7 @@ - if (ec) - throw bs::system_error(ec, fmt::format( - "when removing object '{}' in pool '{}'", -- obj, pname)); -+ fmt::streamed(obj), pname)); - } - - static constexpr auto version = std::make_tuple(0ul, 0ul, 1ul); ---- ceph-18.2.3/src/osd/scrubber/pg_scrubber.cc.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/osd/scrubber/pg_scrubber.cc 2024-05-29 22:24:08.877821930 +0200 -@@ -1,14 +1,15 @@ - // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- - // vim: ts=2 sw=2 smarttab - -+#include <fmt/chrono.h> -+#include <fmt/ranges.h> -+ - #include "./pg_scrubber.h" // '.' notation used to affect clang-format order - - #include <cmath> - #include <iostream> - #include <vector> - --#include <fmt/ranges.h> -- - #include "debug.h" - - #include "common/ceph_time.h" -@@ -2818,7 +2819,7 @@ ReplicaReservations::no_reply_t::no_repl - m_abort_callback = new LambdaContext([this, now_is]([[maybe_unused]] int r) { - // behave as if a REJECT was received - m_osds->clog->warn() << fmt::format( -- "{} timeout on replica reservations (since {})", m_log_prfx, now_is); -+ "{} timeout on replica reservations (since {})", m_log_prfx, fmt::streamed(now_is)); - m_parent.handle_no_reply_timeout(); - }); - ---- ceph-18.2.3/src/osd/osd_types_fmt.h.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/osd/osd_types_fmt.h 2024-05-30 08:08:23.439099461 +0200 -@@ -57,7 +57,7 @@ struct fmt::formatter<chunk_info_t> { - constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); } - - template <typename FormatContext> -- auto format(const chunk_info_t& ci, FormatContext& ctx) -+ auto format(const chunk_info_t& ci, FormatContext& ctx) const - { - return fmt::format_to(ctx.out(), "(len: {} oid: {} offset: {} flags: {})", - ci.length, ci.oid, ci.offset, ---- ceph-18.2.3/src/osd/scrubber/scrub_backend.cc.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/osd/scrubber/scrub_backend.cc 2024-05-30 08:44:07.822017763 +0200 -@@ -1,12 +1,12 @@ - // -*- m_mode_desc:C++; tab-width:8; c-basic-offset:2; indent-tabs-m_mode_desc:t - // -*- vim: ts=2 sw=2 smarttab - -+#include <fmt/ranges.h> -+ - #include "./scrub_backend.h" - - #include <algorithm> - --#include <fmt/ranges.h> -- - #include "common/debug.h" - - #include "include/utime_fmt.h" ---- ceph-18.2.3/src/osd/SnapMapper.cc.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/osd/SnapMapper.cc 2024-05-30 10:36:46.329449365 +0200 -@@ -211,7 +211,7 @@ string SnapMapper::get_prefix(int64_t po - return fmt::sprintf("%s%lld_%.16X_", - MAPPING_PREFIX, - pool, -- snap); -+ snap.val); - } - - string SnapMapper::to_raw_key( -@@ -650,7 +650,7 @@ string SnapMapper::make_purged_snap_key( - return fmt::sprintf("%s_%lld_%016llx", - PURGED_SNAP_PREFIX, - pool, -- last); -+ last.val); - } - - void SnapMapper::make_purged_snap_key_value( -@@ -866,7 +866,7 @@ string SnapMapper::get_legacy_prefix(sna - { - return fmt::sprintf("%s%.16X_", - LEGACY_MAPPING_PREFIX, -- snap); -+ snap.val); - } - - string SnapMapper::to_legacy_raw_key( diff --git a/ceph-liburing.patch b/ceph-liburing.patch deleted file mode 100644 index 9d58e7a..0000000 --- a/ceph-liburing.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ceph-16.2.7/cmake/modules/Finduring.cmake.orig 2021-12-07 17:15:49.000000000 +0100 -+++ ceph-16.2.7/cmake/modules/Finduring.cmake 2022-02-16 22:00:07.850162837 +0100 -@@ -5,7 +5,7 @@ - # uring_FOUND - True if uring found. - - find_path(URING_INCLUDE_DIR liburing.h) --find_library(URING_LIBRARIES liburing.a liburing) -+find_library(URING_LIBRARIES uring) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR) diff --git a/ceph-qat.patch b/ceph-qat.patch deleted file mode 100644 index 76d5380..0000000 --- a/ceph-qat.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- ceph-17.2.3/CMakeLists.txt.orig 2022-07-28 23:52:12.000000000 +0200 -+++ ceph-17.2.3/CMakeLists.txt 2022-08-28 14:39:36.852487766 +0200 -@@ -278,7 +278,7 @@ option(WITH_BLUEFS "libbluefs library" O - - option(WITH_QAT "Enable Qat driver" OFF) - if(WITH_QAT) -- find_package(QatDrv REQUIRED COMPONENTS qat_s usdm_drv_s) -+ find_package(QatDrv REQUIRED COMPONENTS qat usdm) - set(HAVE_QATDRV $(QatDrv_FOUND)) - endif() - ---- ceph-17.2.3/src/crypto/qat/CMakeLists.txt.orig 2022-07-28 23:52:12.000000000 +0200 -+++ ceph-17.2.3/src/crypto/qat/CMakeLists.txt 2022-08-28 14:39:51.893274653 +0200 -@@ -12,8 +12,8 @@ add_library(ceph_crypto_qat SHARED ${qat - add_dependencies(crypto_plugins ceph_crypto_qat) - - target_link_libraries(ceph_crypto_qat PRIVATE -- QatDrv::qat_s -- QatDrv::usdm_drv_s) -+ QatDrv::qat -+ QatDrv::usdm) - - add_dependencies(crypto_plugins ceph_crypto_qat) - set_target_properties(ceph_crypto_qat PROPERTIES VERSION 1.0.0 SOVERSION 1) ---- ceph-17.2.3/cmake/modules/FindQatDrv.cmake.orig 2022-07-28 23:52:12.000000000 +0200 -+++ ceph-17.2.3/cmake/modules/FindQatDrv.cmake 2022-08-28 17:59:19.158087689 +0200 -@@ -39,23 +39,15 @@ function(get_qatdrv_version versionfile) - endfunction() - - find_path(QATDRV_INCLUDE_DIR -- name quickassist/include/cpa.h -- HINTS $ENV{ICP_ROOT} /opt/APP/driver/QAT -- NO_DEFAULT_PATH) -+ name qat/cpa.h -+ HINTS $ENV{ICP_ROOT} -+ ) - if(QATDRV_INCLUDE_DIR) -- get_qatdrv_version(${QATDRV_INCLUDE_DIR}/versionfile) -- set(QatDrv_INCLUDE_DIRS -- ${QATDRV_INCLUDE_DIR}/quickassist/include -- ${QATDRV_INCLUDE_DIR}/quickassist/include/dc -- ${QATDRV_INCLUDE_DIR}/quickassist/lookaside/access_layer/include -- ${QATDRV_INCLUDE_DIR}/quickassist/include/lac -- ${QATDRV_INCLUDE_DIR}/quickassist/utilities/libusdm_drv -- ${QATDRV_INCLUDE_DIR}/quickassist/utilities/libusdm_drv/include) -+ set(QatDrv_INCLUDE_DIRS ${QATDRV_INCLUDE_DIR}) - endif() - foreach(component ${QatDrv_FIND_COMPONENTS}) - find_library(QatDrv_${component}_LIBRARIES -- NAMES ${component} -- HINTS ${QATDRV_INCLUDE_DIR}/build/) -+ NAMES ${component}) - mark_as_advanced(QatDrv_INCLUDE_DIRS - QatDrv_${component}_LIBRARIES) - list(APPEND QatDrv_LIBRARIES "${QatDrv_${component}_LIBRARIES}") -@@ -71,7 +63,7 @@ find_package_handle_standard_args(QatDrv - - foreach(component ${QatDrv_FIND_COMPONENTS}) - if(NOT TARGET QatDrv::${component}) -- add_library(QatDrv::${component} STATIC IMPORTED GLOBAL) -+ add_library(QatDrv::${component} SHARED IMPORTED GLOBAL) - set_target_properties(QatDrv::${component} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${QatDrv_INCLUDE_DIRS}" - IMPORTED_LINK_INTERFACE_LANGUAGES "C" ---- ceph-18.2.3/src/compressor/CMakeLists.txt.orig 2024-05-28 22:34:42.686872365 +0200 -+++ ceph-18.2.3/src/compressor/CMakeLists.txt 2024-05-28 22:35:39.740566246 +0200 -@@ -8,8 +8,8 @@ add_library(compressor_objs OBJECT ${com - add_dependencies(compressor_objs common-objs) - if(HAVE_QATZIP AND HAVE_QATDRV) - target_link_libraries(compressor_objs PRIVATE -- QatDrv::qat_s -- QatDrv::usdm_drv_s -+ QatDrv::qat -+ QatDrv::usdm - qatzip::qatzip - ) - endif() ---- ceph-17.2.3/src/crypto/qat/qcccrypto.h.orig 2022-07-28 23:52:12.000000000 +0200 -+++ ceph-17.2.3/src/crypto/qat/qcccrypto.h 2022-08-28 20:18:02.916194325 +0200 -@@ -8,13 +8,15 @@ - #include <pthread.h> - #include <queue> - extern "C" { --#include "cpa.h" --#include "lac/cpa_cy_sym.h" --#include "lac/cpa_cy_im.h" --#include "qae_mem.h" --#include "icp_sal_user.h" --#include "icp_sal_poll.h" --#include "qae_mem_utils.h" -+#include "qat/cpa.h" -+#include "qat/cpa_cy_sym.h" -+#include "qat/cpa_cy_im.h" -+#include "qat/qae_mem.h" -+#include "qat/icp_sal_user.h" -+#include "qat/icp_sal_poll.h" -+ -+CpaStatus qaeMemInit(void); -+void qaeMemDestroy(void); - } - - class QccCrypto { ---- ceph-18.2.3/src/compressor/QatAccel.cc.orig 2024-04-24 21:57:21.000000000 +0200 -+++ ceph-18.2.3/src/compressor/QatAccel.cc 2024-05-29 20:08:56.061825894 +0200 -@@ -42,14 +42,20 @@ void QzSessionDeleter::operator() (struc - delete session; - } - --static bool get_qz_params(const std::string &alg, QzSessionParams_T ¶ms) { -+static bool get_qz_params(const std::string &alg, QzSessionParams_T ¶ms, QzSessionParamsDeflate_T &deflate_params) { - int rc; - rc = qzGetDefaults(¶ms); - if (rc != QZ_OK) - return false; - params.direction = QZ_DIR_BOTH; -- params.is_busy_polling = true; - if (alg == "zlib") { -+ rc = qzGetDefaultsDeflate(&deflate_params); -+ if (rc != QZ_OK) -+ return false; -+ deflate_params.common_params.polling_mode = QZ_BUSY_POLLING; -+ rc = qzSetDefaultsDeflate(&deflate_params); -+ if (rc != QZ_OK) -+ return false; - params.comp_algorithm = QZ_DEFLATE; - params.data_fmt = QZ_DEFLATE_RAW; - params.comp_lvl = g_ceph_context->_conf->compressor_zlib_level; -@@ -114,9 +120,10 @@ QatAccel::session_ptr QatAccel::get_sess - // If there are no available session to use, we try allocate a new - // session. - QzSessionParams_T params = {(QzHuffmanHdr_T)0,}; -+ QzSessionParamsDeflate_T deflate_params = {}; - session_ptr session(new struct QzSession_S()); - memset(session.get(), 0, sizeof(struct QzSession_S)); -- if (get_qz_params(alg_name, params) && setup_session(session, params)) { -+ if (get_qz_params(alg_name, params, deflate_params) && setup_session(session, params)) { - return session; - } else { - return nullptr; diff --git a/types.patch b/types.patch index 85fabe6..17eb6d6 100644 --- a/types.patch +++ b/types.patch @@ -20,17 +20,6 @@ }; if (alloc[dev]) { alloc[dev]->foreach(iterated_allocation); ---- ceph-16.2.7/src/tools/neorados.cc~ 2021-12-07 17:15:49.000000000 +0100 -+++ ceph-16.2.7/src/tools/neorados.cc 2022-02-12 22:23:25.836643956 +0100 -@@ -205,7 +205,7 @@ - - std::size_t off = 0; - ceph::buffer::list bl; -- while (auto toread = std::max(len - off, io_size)) { -+ while (auto toread = std::max(len - off, (uint64_t)io_size)) { - R::ReadOp op; - op.read(off, toread, &bl); - r.execute(obj, pool, std::move(op), nullptr, y[ec]); --- ceph-16.2.7/src/tools/cephfs_mirror/FSMirror.cc.orig 2021-12-07 17:15:49.000000000 +0100 +++ ceph-16.2.7/src/tools/cephfs_mirror/FSMirror.cc 2022-02-12 22:30:46.487298972 +0100 @@ -345,7 +345,7 @@ @@ -56,7 +45,7 @@ @@ -313,7 +313,7 @@ posix_file_impl::close() noexcept { future<uint64_t> - blockdev_file_impl::size(void) noexcept { + blockdev_file_impl::size() noexcept { - return engine()._thread_pool->submit<syscall_result_extra<size_t>>([this] { + return engine()._thread_pool->submit<syscall_result_extra<uint64_t>>([this] { uint64_t size; ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/ceph.git/commitdiff/15575e11ebaaf777088fac2e6dccbd7a5a5cc2aa _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit