public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ceph] eln: Ceph 21.1.0 RC0
@ 2026-07-23 18:12 Kaleb S. KEITHLEY
0 siblings, 0 replies; only message in thread
From: Kaleb S. KEITHLEY @ 2026-07-23 18:12 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ceph
Branch : eln
Commit : b8a426e57e8ca9e095238b99682075a465c496d0
Author : Kaleb S. KEITHLEY <kkeithle@redhat.com>
Date : 2026-07-23T14:12:20-04:00
Stats : +658/-325 in 12 file(s)
URL : https://src.fedoraproject.org/rpms/ceph/c/b8a426e57e8ca9e095238b99682075a465c496d0?branch=eln
Log:
Ceph 21.1.0 RC0
---
diff --git a/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch b/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch
index 9cf4e6b..36a1944 100644
--- a/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch
+++ b/0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch
@@ -12,19 +12,16 @@ for IBT and SHSTK compatibility.
crc/crc32_ieee_01.asm | 8 ++++++++
crc/crc32_ieee_02.asm | 9 +++++++++
crc/crc32_ieee_by16_10.asm | 9 +++++++++
- crc/crc32_ieee_by4.asm | 9 +++++++++
- crc/crc32_iscsi_00.asm | 8 ++++++++
- crc/crc32_iscsi_01.asm | 8 ++++++++
9 files changed, 78 insertions(+)
diff --git a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
index 40236f6..b16874d 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
-@@ -566,3 +566,12 @@ global no_ %+ FUNCTION_NAME
- no_ %+ FUNCTION_NAME %+ :
- %endif
- %endif ; (AS_FEATURE_LEVEL) >= 10
+@@ -569,3 +569,12 @@
+ mask: dq 0xFFFFFFFFFFFFFFFF, 0x0000000000000000
+ mask2: dq 0xFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF
+ mask3: dq 0x8080808080808080, 0x8080808080808080
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
@@ -38,17 +35,16 @@ diff --git a/src/isa-l/crc/crc32_gzip_refl_by8.asm b/src/isa-l/crc/crc32_gzip_re
index 62f7e7d..97b0c4a 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by8.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by8.asm
-@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
-
- ;;; func core, ver, snum
- slversion crc32_gzip_refl_by8, 01, 00, 002c
+ ; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
+ dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
+ dq 0x0706050403020100, 0x000e0d0c0b0a0908
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
-+DD 0x00000004,0x00000010,0x00000005,0x00554e47
++DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
@@ -72,10 +68,11 @@ diff --git a/src/isa-l/crc/crc32_ieee_01.asm b/src/isa-l/crc/crc32_ieee_01.asm
index 32495ed..cfc443b 100644
--- a/src/isa-l/crc/crc32_ieee_01.asm
+++ b/src/isa-l/crc/crc32_ieee_01.asm
-@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
- ;;; func core, ver, snum
- slversion crc32_ieee_01, 01, 06, 0011
-
+@@ -737,3 +737,12 @@
+ ; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
+ dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
+ dq 0x0706050403020100, 0x000e0d0c0b0a0908
++
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
@@ -105,66 +102,17 @@ diff --git a/src/isa-l/crc/crc32_ieee_by16_10.asm b/src/isa-l/crc/crc32_ieee_by1
index 200fd93..2afd597 100644
--- a/src/isa-l/crc/crc32_ieee_by16_10.asm
+++ b/src/isa-l/crc/crc32_ieee_by16_10.asm
-@@ -582,3 +582,12 @@ global no_ %+ FUNCTION_NAME
- no_ %+ FUNCTION_NAME %+ :
- %endif
- %endif ; (AS_FEATURE_LEVEL) >= 10
-+
-+%ifidn __OUTPUT_FORMAT__, elf64
-+; inform linker that this doesn't require executable stack
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+; inform linker that this is compatible with IBT and SHSTK
-+section .note.gnu.property note alloc noexec align=8
-+DD 0x00000004,0x00000010,0x00000005,0x00554e47
-+DD 0xc0000002,0x00000004,0x00000003,0x00000000
-+%endif
-diff --git a/src/isa-l/crc/crc32_ieee_by4.asm b/src/isa-l/crc/crc32_ieee_by4.asm
-index 39bed5a..847d0bd 100644
---- a/src/isa-l/crc/crc32_ieee_by4.asm
-+++ b/src/isa-l/crc/crc32_ieee_by4.asm
-@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
-
- ;;; func core, ver, snum
- slversion crc32_ieee_by4, 05, 02, 0017
+@@ -606,3 +606,12 @@
+ dq 0x0706050403020100, 0x000e0d0c0b0a0908
+ dq 0x8080808080808080, 0x0f0e0d0c0b0a0908
+ dq 0x8080808080808080, 0x8080808080808080
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
-+DD 0x00000004,0x00000010,0x00000005,0x00554e47
-+DD 0xc0000002,0x00000004,0x00000003,0x00000000
-+%endif
-diff --git a/src/isa-l/crc/crc32_iscsi_00.asm b/src/isa-l/crc/crc32_iscsi_00.asm
-index 4f81e3a..3d6b2d1 100644
---- a/src/isa-l/crc/crc32_iscsi_00.asm
-+++ b/src/isa-l/crc/crc32_iscsi_00.asm
-@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
- ;;; func core, ver, snum
- slversion crc32_iscsi_00, 00, 04, 0014
-
-+%ifidn __OUTPUT_FORMAT__, elf64
-+; inform linker that this doesn't require executable stack
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+; inform linker that this is compatible with IBT and SHSTK
-+section .note.gnu.property note alloc noexec align=8
-+DD 0x00000004,0x00000010,0x00000005,0x00554e47
-+DD 0xc0000002,0x00000004,0x00000003,0x00000000
-+%endif
-diff --git a/src/isa-l/crc/crc32_iscsi_01.asm b/src/isa-l/crc/crc32_iscsi_01.asm
-index 2a81517..c048413 100644
---- a/src/isa-l/crc/crc32_iscsi_01.asm
-+++ b/src/isa-l/crc/crc32_iscsi_01.asm
-@@ -588,3 +588,11 @@ K_table:
- ;;; func core, ver, snum
- slversion crc32_iscsi_01, 01, 04, 0015
-
-+%ifidn __OUTPUT_FORMAT__, elf64
-+; inform linker that this doesn't require executable stack
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+; inform linker that this is compatible with IBT and SHSTK
-+section .note.gnu.property note alloc noexec align=8
-+DD 0x00000004,0x00000010,0x00000005,0x00554e47
++DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
--
diff --git a/0016-src-tracing-patch b/0016-src-tracing-patch
deleted file mode 100644
index 228d93f..0000000
--- a/0016-src-tracing-patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp.orig 2021-12-07 08:02:04.682972474 -0500
-+++ ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp 2021-12-07 08:03:13.840771852 -0500
-@@ -1,3 +1,9 @@
-+
-+#ifdef __x86_64__
-+#undef STAP_SDT_ARG_CONSTRAINT
-+#define STAP_SDT_ARG_CONSTRAINT norx
-+#endif
-+
- #include "include/int_types.h"
-
- TRACEPOINT_EVENT(bluestore, transaction_state_duration,
---- ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp.orig 2021-12-07 09:50:16.467579483 -0500
-+++ ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp 2021-12-07 09:50:47.620026940 -0500
-@@ -1,3 +1,8 @@
-+#ifdef __x86_64__
-+#undef STAP_SDT_ARG_CONSTRAINT
-+#define STAP_SDT_ARG_CONSTRAINT norx
-+#endif
-+
- #include "tracing/tracing-common.h"
- #include "include/rbd/librbd.h"
- #include "include/int_types.h"
diff --git a/0016-src-tracing.patch b/0016-src-tracing.patch
new file mode 100644
index 0000000..228d93f
--- /dev/null
+++ b/0016-src-tracing.patch
@@ -0,0 +1,23 @@
+--- ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp.orig 2021-12-07 08:02:04.682972474 -0500
++++ ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp 2021-12-07 08:03:13.840771852 -0500
+@@ -1,3 +1,9 @@
++
++#ifdef __x86_64__
++#undef STAP_SDT_ARG_CONSTRAINT
++#define STAP_SDT_ARG_CONSTRAINT norx
++#endif
++
+ #include "include/int_types.h"
+
+ TRACEPOINT_EVENT(bluestore, transaction_state_duration,
+--- ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp.orig 2021-12-07 09:50:16.467579483 -0500
++++ ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp 2021-12-07 09:50:47.620026940 -0500
+@@ -1,3 +1,8 @@
++#ifdef __x86_64__
++#undef STAP_SDT_ARG_CONSTRAINT
++#define STAP_SDT_ARG_CONSTRAINT norx
++#endif
++
+ #include "tracing/tracing-common.h"
+ #include "include/rbd/librbd.h"
+ #include "include/int_types.h"
diff --git a/0018-src-rgw-store-dbstore-CMakeLists.txt.patch b/0018-src-rgw-store-dbstore-CMakeLists.txt.patch
index 874bbcd..904964e 100644
--- a/0018-src-rgw-store-dbstore-CMakeLists.txt.patch
+++ b/0018-src-rgw-store-dbstore-CMakeLists.txt.patch
@@ -6,10 +6,10 @@
-add_library(dbstore_lib ${dbstore_srcs})
+add_library(dbstore_lib STATIC ${dbstore_srcs})
- target_include_directories(dbstore_lib
- PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
- PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"
-@@ -49,6 +49,7 @@
+ if(COMPILER_SUPPORTS_VLA_ERROR)
+ target_compile_options(dbstore_lib PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Werror=vla>)
+ endif()
+@@ -52,6 +52,7 @@
# add pthread library
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
diff --git a/0034-src-pybind-rbd-rbd.pyx.patch b/0034-src-pybind-rbd-rbd.pyx.patch
index 1f5ff7a..82f6b0f 100644
--- a/0034-src-pybind-rbd-rbd.pyx.patch
+++ b/0034-src-pybind-rbd-rbd.pyx.patch
@@ -1,8 +1,8 @@
---- ceph-18.1.2/src/pybind/rbd/rbd.pyx.orig 2023-07-21 13:30:08.156825317 -0400
-+++ ceph-18.1.2/src/pybind/rbd/rbd.pyx 2023-07-24 09:09:27.930137117 -0400
-@@ -371,10 +371,10 @@
- cdef rados_ioctx_t convert_ioctx(rados.Ioctx ioctx) except? NULL:
- return <rados_ioctx_t>ioctx.io
+--- ceph-20.3.0/src/pybind/rbd/rbd.pyx.orig 2026-03-11 07:32:09.000000000 -0400
++++ ceph-20.3.0/src/pybind/rbd/rbd.pyx 2026-03-17 14:03:14.089738661 -0400
+@@ -399,10 +399,10 @@
+ return <rados_ioctx_t>ioctx.io
+ {{endif}}
-cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) with gil:
+cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
@@ -13,7 +13,7 @@
return 0
def cstr(val, name, encoding="utf-8", opt=False):
-@@ -426,7 +426,7 @@
+@@ -454,7 +454,7 @@
cdef class Completion
diff --git a/0040-gcc-14.patch b/0040-gcc-14.patch
deleted file mode 100644
index 72dd5e8..0000000
--- a/0040-gcc-14.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From f5d3e9146d9ceb12858bc94d60090bd851b1c088 Mon Sep 17 00:00:00 2001
-From: Adam Emerson <aemerson@redhat.com>
-Date: Wed, 20 Dec 2023 13:51:21 -0500
-Subject: [PATCH] test/neorados: Use two fewer GTest internals
-
-To get coroutine tests working, I used some internals. Two of these
-are no longer available in newer versions. Since they can be
-implemented with regular old C++ features, use those.
-
-This fixes an FTBFS on Fedora Rawhide introduced in
-`35231f7251ed70d8d817ee7e727d9763669d101f`.
-
-Signed-off-by: Adam Emerson <aemerson@redhat.com>
----
- src/test/neorados/common_tests.h | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/src/test/neorados/common_tests.h b/src/test/neorados/common_tests.h
-index 9610f08f643f3..396432e417e84 100644
---- a/src/test/neorados/common_tests.h
-+++ b/src/test/neorados/common_tests.h
-@@ -391,10 +391,14 @@ class NeoRadosECTest : public NeoRadosTestBase {
- public: \
- GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default; \
- ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \
-- GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
-- test_name)); \
-- GTEST_DISALLOW_MOVE_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \
-- test_name)); \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)( \
-+ const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&) = delete; \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)& operator =( \
-+ const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&) = delete; \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)( \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&&) = delete; \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)& operator =( \
-+ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)&&) = delete; \
- \
- private: \
- boost::asio::awaitable<void> CoTestBody() override; \
-
diff --git a/0060-src-crimson-common-smp_helpers.h.patch b/0060-src-crimson-common-smp_helpers.h.patch
deleted file mode 100644
index c44f215..0000000
--- a/0060-src-crimson-common-smp_helpers.h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ceph-20.2.0/src/crimson/common/smp_helpers.h.orig 2025-12-04 10:38:34.906915674 -0500
-+++ ceph-20.2.0/src/crimson/common/smp_helpers.h 2025-12-04 10:38:45.200845804 -0500
-@@ -8,6 +8,7 @@
- #include <optional>
- #include <type_traits>
- #include <vector>
-+#include <coroutine>
-
- #include <seastar/core/shared_future.hh>
- #include <seastar/core/smp.hh>
diff --git a/0061-gcc-16.patch b/0061-gcc-16.patch
deleted file mode 100644
index 2ba7bad..0000000
--- a/0061-gcc-16.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- ceph-20.2.0/src/common/Formatter.h.orig 2026-01-06 17:47:18.437014517 -0500
-+++ ceph-20.2.0/src/common/Formatter.h 2026-01-06 17:47:53.015404074 -0500
-@@ -12,6 +12,7 @@
- #include <memory>
- #include <vector>
- #include <stdarg.h>
-+#include <cstdint>
- #include <sstream>
- #include <map>
- #include <vector>
---- ceph-20.2.0/src/mds/Locker.cc.orig 2026-01-07 10:34:12.731210930 -0500
-+++ ceph-20.2.0/src/mds/Locker.cc 2026-01-07 10:34:35.627823155 -0500
-@@ -4489,7 +4489,7 @@
- dout(7) << "handle_client_lease client." << client << " renew on " << *dn
- << (!dn->lock.can_lease(client)?", revoking lease":"") << dendl;
- if (dn->lock.can_lease(client)) {
-- auto reply = make_message<MClientLease>(*m);
-+ auto reply = ceph::make_message<MClientLease>(*m);
- int pool = 1; // fixme.. do something smart!
- reply->h.duration_ms = (int)(1000 * mdcache->client_lease_durations[pool]);
- reply->h.seq = ++l->seq;
---- ceph-20.2.0/src/mds/Server.cc.orig 2026-01-07 11:27:13.532097596 -0500
-+++ ceph-20.2.0/src/mds/Server.cc 2026-01-07 11:28:42.411581266 -0500
-@@ -150,7 +150,7 @@
- }
- }
- batch_reqs.clear();
-- server->reply_client_request(mdr, make_message<MClientReply>(*mdr->client_request, r));
-+ server->reply_client_request(mdr, ceph::make_message<MClientReply>(*mdr->client_request, r));
- }
- void print(std::ostream& o) const override {
- o << "[batch front=" << *mdr << "]";
-@@ -2142,7 +2142,7 @@
- dout(20) << __func__ << ": batch head " << *mdr << dendl;
- mdr->release_batch_op()->respond(r);
- } else {
-- reply_client_request(mdr, make_message<MClientReply>(*mdr->client_request, r));
-+ reply_client_request(mdr, ceph::make_message<MClientReply>(*mdr->client_request, r));
- }
- } else if (mdr->internal_op > -1) {
- dout(10) << __func__ << ": completing with result " << cpp_strerror(r) << " on internal " << *mdr << dendl;
-@@ -2290,7 +2290,7 @@
- }
-
-
-- auto reply = make_message<MClientReply>(*req, 0);
-+ auto reply = ceph::make_message<MClientReply>(*req, 0);
- reply->set_unsafe();
-
- // mark xlocks "done", indicating that we are exposing uncommitted changes.
-@@ -2632,7 +2632,7 @@
- req->get_op() != CEPH_MDS_OP_OPEN &&
- req->get_op() != CEPH_MDS_OP_CREATE)) {
- dout(5) << "already completed " << req->get_reqid() << dendl;
-- auto reply = make_message<MClientReply>(*req, 0);
-+ auto reply = ceph::make_message<MClientReply>(*req, 0);
- if (created != inodeno_t()) {
- bufferlist extra;
- set_reply_extra_bl(req, created, extra);
---- ceph-20.2.0/src/mds/MDCache.cc.orig 2026-01-07 11:28:48.882470871 -0500
-+++ ceph-20.2.0/src/mds/MDCache.cc 2026-01-07 11:29:12.405069562 -0500
-@@ -10535,7 +10535,7 @@
-
-
- CInode *cur = 0;
-- auto reply = make_message<MDiscoverReply>(*dis);
-+ auto reply = ceph::make_message<MDiscoverReply>(*dis);
-
- snapid_t snapid = dis->get_snapid();
-
diff --git a/0065-src-os-memstore-CMakelists.txt.patch b/0065-src-os-memstore-CMakelists.txt.patch
new file mode 100644
index 0000000..d722b50
--- /dev/null
+++ b/0065-src-os-memstore-CMakelists.txt.patch
@@ -0,0 +1,10 @@
+--- ceph-20.3.0/src/os/memstore/CMakeLists.txt.orig 2026-03-17 11:19:40.790594587 -0400
++++ ceph-20.3.0/src/os/memstore/CMakeLists.txt 2026-03-17 11:19:49.669445856 -0400
+@@ -1,6 +1,6 @@
+ include(CheckCXXCompilerFlag)
+
+-add_library(memstore
++add_library(memstore STATIC
+ MemStore.cc)
+ target_link_libraries(memstore PRIVATE os)
+ check_cxx_compiler_flag("-Wno-maybe-uninitialized"
diff --git a/0066-src-lss-linux_syscall_support.h.patch b/0066-src-lss-linux_syscall_support.h.patch
new file mode 100644
index 0000000..d20ab11
--- /dev/null
+++ b/0066-src-lss-linux_syscall_support.h.patch
@@ -0,0 +1,21 @@
+--- ceph-21.1.0/src/lss/linux_syscall_support.h.orig 2026-07-21 16:44:58.567709280 -0400
++++ ceph-21.1.0/src/lss/linux_syscall_support.h 2026-07-21 16:46:45.498991029 -0400
+@@ -3461,6 +3461,7 @@
+ LSS_RETURN(int, __ret, __err);
+ }
+ #elif defined(__s390__)
++ #define __NR__socketcall __NR_socketcall
+ #undef LSS_REG
+ #define LSS_REG(r, a) register unsigned long __r##r __asm__("r"#r) = (unsigned long) a
+ #undef LSS_BODY
+--- ceph-21.1.0/CMakeLists.txt.orig 2026-07-22 07:00:30.106561925 -0400
++++ ceph-21.1.0/CMakeLists.txt 2026-07-22 07:01:16.814626456 -0400
+@@ -558,7 +558,7 @@
+ # enable breakpad unless win32 or power
+ # ppc64le port tracked in https://issues.chromium.org/issues/41479970
+ CMAKE_DEPENDENT_OPTION(WITH_BREAKPAD "Build with Google Breakpad crash reporter" ON
+- "NOT (WIN32 OR CMAKE_SYSTEM_PROCESSOR MATCHES ppc64le)" OFF)
++ "NOT (WIN32 OR CMAKE_SYSTEM_PROCESSOR MATCHES ppc64le OR CMAKE_SYSTEM_PROCESSOR MATCHES s390x)" OFF)
+ if(WITH_BREAKPAD)
+ set(HAVE_BREAKPAD ON)
+ message("-- Enabled Google Breakpad crash reporter")
diff --git a/ceph.spec b/ceph.spec
index 2c65ceb..f02509c 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -120,7 +120,7 @@
%bcond_with lua_packages
%endif
%endif
-%bcond_with crimson
+%bcond_without crimson
%if 0%{?suse_version}
%bcond_with jaeger
%else
@@ -177,6 +177,11 @@
%global _find_debuginfo_dwz_opts %{nil}
%endif
%bcond_with sccache
+%if 0%{?rhel} && 0%{?rhel} >= 10
+%bcond_without pypkg
+%else
+%bcond_with pypkg
+%endif
%{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
@@ -198,6 +203,18 @@
[ $jobs -lt 1 ] && jobs=1 \
echo $jobs )
+# $1==1: fresh install; $1==0: removal. Skip try-restart on upgrade ($1>1).
+%define ceph_mgr_module_scripts() \
+%post %1\
+if [ $1 -eq 1 ] ; then\
+ /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :\
+fi\
+\
+%postun %1\
+if [ $1 -eq 1 ] ; then\
+ /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :\
+fi
+
%if 0%{?_smp_ncpus_max} == 0
%if 0%{?__isa_bits} == 32
# 32-bit builds can use 3G memory max, which is not enough even for -j2
@@ -223,7 +240,7 @@
# main package definition
#################################################################################
Name: ceph
-Version: 20.2.2
+Version: 21.1.0
Release: 1%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
@@ -246,7 +263,7 @@ Patch: 0003-src-common-bitstr.h.patch
Patch: 0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch
Patch: 0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch
Patch: 0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch
-Patch: 0016-src-tracing-patch
+Patch: 0016-src-tracing.patch
Patch: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch
Patch: 0024-gcc-13.patch
Patch: 0032-cmake-modules-BuildBoost.cmake.patch
@@ -257,7 +274,8 @@ Patch: 0043_src_common_crc32c_ppc_asm.S.patch
Patch: 0047-openssl-no-engine.patch
Patch: 0049-src-rocksdb-db-blob-blob_file_meta.h.patch
Patch: 0056-libarrow-20.0.0.patch
-Patch: 0061-gcc-16.patch
+Patch: 0065-src-os-memstore-CMakelists.txt.patch
+Patch: 0066-src-lss-linux_syscall_support.h.patch
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
ExcludeArch: i686 armv7hl
@@ -284,7 +302,7 @@ BuildRequires: selinux-policy-devel
%endif
BuildRequires: gperf
BuildRequires: cmake > 3.5
-BuildRequires: fuse3-devel
+BuildRequires: pkgconfig(fuse3)
%if 0%{with grpc}
BuildRequires: grpc-devel
%endif
@@ -339,6 +357,8 @@ BuildRequires: python%{python3_pkgversion}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: python%{python3_pkgversion}-Cython
+BuildRequires: python%{python3_pkgversion}-pip
+BuildRequires: python%{python3_pkgversion}-wheel
BuildRequires: snappy-devel
BuildRequires: sqlite-devel
BuildRequires: sudo
@@ -545,6 +565,8 @@ BuildRequires: libnuma-devel
%endif
%endif
BuildRequires: python-rpm-macros
+# Catch2 v3 is catch in Fedora and EPEL. Crazy
+BuildRequires: catch-devel
%description
Ceph is a massively scalable, open-source, distributed storage system that runs
@@ -605,14 +627,39 @@ Requires: which
%if 0%{?weak_deps}
Recommends: podman >= 2.0.2
%endif
+# Cephadm zipapp: CMake sets CEPHADM_BUNDLED_DEPENDENCIES to pip, rpm, or none
+# (see build / cmake block below):
+# - with cephadm_bundling, with cephadm_pip_deps: pip at build, no stanzas here
+# - with cephadm_bundling, without cephadm_pip_deps: build-time RPM deps only
+# - without cephadm_bundling: unbundled cephadm, runtime Requires for yaml/jinja2
+# CentOS Storage SIG #75389 needs the unbundled branch (--without cephadm_bundling)
+# after dropping downstream patch 0036; pip-mode SIG builds are a separate SIG fix.
%if 0%{with cephadm_bundling}
%if 0%{without cephadm_pip_deps}
+# Zipapp built from system RPMs at build time; bundled zipapp is self-contained at runtime.
+# SUSE and RHEL/Fedora use different PyPI RPM names (Jinja2/PyYAML vs jinja2/pyyaml).
+%if 0%{?suse_version}
+BuildRequires: python%{python3_pkgversion}-Jinja2 >= 2.10
+BuildRequires: python%{python3_pkgversion}-PyYAML
+%else
BuildRequires: python%{python3_pkgversion}-jinja2 >= 2.10
+BuildRequires: python%{python3_pkgversion}-pyyaml
%endif
+%dnl suse/else: rpm bundle, distinct RPM names only (not duplicate stanzas)
+%endif
+%dnl end without cephadm_pip_deps (CEPHADM_BUNDLED_DEPENDENCIES=rpm)
+%else
+# Unbundled cephadm: host must provide yaml and jinja2 at runtime.
+%if 0%{?suse_version}
+Requires: python%{python3_pkgversion}-Jinja2 >= 2.10
+Requires: python%{python3_pkgversion}-PyYAML
%else
Requires: python%{python3_pkgversion}-jinja2 >= 2.10
Requires: python%{python3_pkgversion}-pyyaml
%endif
+%dnl suse/else: unbundled cephadm (CEPHADM_BUNDLED_DEPENDENCIES=none)
+%endif
+%dnl end with cephadm_bundling
%description -n cephadm
Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed
with systemd and podman.
@@ -698,11 +745,30 @@ Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release}
Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release}
%if 0%{?weak_deps}
+Recommends: ceph-mgr-alerts = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-cli-api = %{_epoch_prefix}%{version}-%{release}
Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release}
Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-influx = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-insights = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-iostat = %{_epoch_prefix}%{version}-%{release}
Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release}
-Recommends: ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release}
-Recommends: python%{python3_pkgversion}-influxdb
+Recommends: ceph-mgr-localpool = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-mds-autoscaler = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-mirroring = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-nvmeof = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-osd-perf-query = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-osd-support = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-prometheus = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-rgw = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-selftest = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-snap-schedule = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-stats = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-telegraf = %{_epoch_prefix}%{version}-%{release}
+Recommends: ceph-mgr-test-orchestrator = %{_epoch_prefix}%{version}-%{release}
%endif
%description mgr
ceph-mgr enables python modules that provide services (such as the REST
@@ -717,6 +783,7 @@ BuildArch: noarch
Group: System/Filesystems
%endif
Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release}
Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release}
Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release}
%if 0%{?fedora} || 0%{?rhel}
@@ -769,18 +836,13 @@ BuildArch: noarch
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: python%{python3_pkgversion}-bcrypt
-Requires: python%{python3_pkgversion}-packaging
-Requires: python%{python3_pkgversion}-pyOpenSSL
+Requires: python%{python3_pkgversion}-prettytable
Requires: python%{python3_pkgversion}-requests
Requires: python%{python3_pkgversion}-dateutil
-Requires: python%{python3_pkgversion}-setuptools
%if 0%{?fedora} || 0%{?rhel}
-Requires: python%{python3_pkgversion}-cherrypy
Requires: python%{python3_pkgversion}-pyyaml
%endif
%if 0%{?suse_version}
-Requires: python%{python3_pkgversion}-CherryPy
Requires: python%{python3_pkgversion}-PyYAML
%endif
%if 0%{?weak_deps}
@@ -790,6 +852,38 @@ Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release}
ceph-mgr-modules-core provides a set of modules which are always
enabled by ceph-mgr.
+%package mgr-modules-standard
+BuildArch: noarch
+Summary: Ceph Manager modules without heavy external dependencies
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-alerts = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-influx = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-insights = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-iostat = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-localpool = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-mds-autoscaler = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-mirroring = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-nvmeof = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-osd-perf-query = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-osd-support = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-prometheus = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-rgw = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-selftest = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-snap-schedule = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-stats = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-telegraf = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-test-orchestrator = %{_epoch_prefix}%{version}-%{release}
+%description mgr-modules-standard
+ceph-mgr-modules-standard is a meta-package with no files of its own.
+It pulls in the full set of ceph-mgr modules that were formerly shipped
+together in ceph-mgr-modules-core, so that existing users or scripts
+that want the complete standard module set can depend on a single package.
+
%package mgr-rook
BuildArch: noarch
Summary: Ceph Manager module for Rook-based orchestration
@@ -797,6 +891,7 @@ Summary: Ceph Manager module for Rook-based orchestration
Group: System/Filesystems
%endif
Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release}
Requires: python%{python3_pkgversion}-kubernetes
Requires: python%{python3_pkgversion}-jsonpatch
%description mgr-rook
@@ -839,6 +934,255 @@ Requires: python%{python3_pkgversion}-jinja2
ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
the integrated cephadm deployment tool management operations.
+%package mgr-cli-api
+BuildArch: noarch
+Summary: Ceph Manager module providing a CLI REST API
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+%description mgr-cli-api
+ceph-mgr-cli-api is a ceph-mgr module that provides a REST-like API
+for the Ceph command-line interface.
+
+%package mgr-alerts
+BuildArch: noarch
+Summary: Ceph Manager module for sending alerts on health state changes
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-alerts
+ceph-mgr-alerts is a ceph-mgr module that sends email notifications
+on cluster health state changes.
+
+%package mgr-influx
+BuildArch: noarch
+Summary: Ceph Manager module for sending metrics to InfluxDB
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+%if 0%{?weak_deps}
+Recommends: python%{python3_pkgversion}-influxdb
+%endif
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-influx
+ceph-mgr-influx is a ceph-mgr module that sends performance metrics
+to an InfluxDB time-series database.
+
+%package mgr-insights
+BuildArch: noarch
+Summary: Ceph Manager module for recording cluster health history
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-insights
+ceph-mgr-insights is a ceph-mgr module that records cluster health
+history to support cluster analysis.
+
+%package mgr-iostat
+BuildArch: noarch
+Summary: Ceph Manager module for displaying I/O statistics
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-iostat
+ceph-mgr-iostat is a ceph-mgr module that displays a running summary
+of I/O statistics across the cluster.
+
+%package mgr-localpool
+BuildArch: noarch
+Summary: Ceph Manager module for creating per-host CRUSH rules and pools
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-localpool
+ceph-mgr-localpool is a ceph-mgr module that automatically creates
+per-host CRUSH rules and pools.
+
+%package mgr-mds-autoscaler
+BuildArch: noarch
+Summary: Ceph Manager module for automatically scaling MDS daemons
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-mds-autoscaler
+ceph-mgr-mds-autoscaler is a ceph-mgr module that automatically scales
+the number of MDS daemons based on file system needs.
+
+%package mgr-mirroring
+BuildArch: noarch
+Summary: Ceph Manager module for managing CephFS mirroring
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-mirroring
+ceph-mgr-mirroring is a ceph-mgr module that provides management
+commands for CephFS mirroring.
+
+%package mgr-nfs
+BuildArch: noarch
+Summary: Ceph Manager module for managing NFS gateway deployments
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-nfs
+ceph-mgr-nfs is a ceph-mgr module that manages NFS gateway deployments
+on top of CephFS and RGW.
+
+%package mgr-nvmeof
+BuildArch: noarch
+Summary: Ceph Manager module for managing NVMe-oF gateway deployments
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-nvmeof
+ceph-mgr-nvmeof is a ceph-mgr module that manages NVMe-oF gateway
+deployments for Ceph RBD.
+
+%package mgr-osd-perf-query
+BuildArch: noarch
+Summary: Ceph Manager module for OSD performance counter queries
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Requires: python%{python3_pkgversion}-prettytable
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-osd-perf-query
+ceph-mgr-osd-perf-query is a ceph-mgr module that exposes OSD
+performance counter query functionality.
+
+%package mgr-osd-support
+BuildArch: noarch
+Summary: Ceph Manager module for additional OSD management commands
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-osd-support
+ceph-mgr-osd-support is a ceph-mgr module that provides additional
+OSD management commands.
+
+%package mgr-prometheus
+BuildArch: noarch
+Summary: Ceph Manager module for exposing metrics to Prometheus
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%if 0%{?fedora} || 0%{?rhel} >= 8 || 0%{?openEuler}
+Requires: python%{python3_pkgversion}-cherrypy
+%endif
+%if 0%{?suse_version}
+Requires: python%{python3_pkgversion}-CherryPy
+%endif
+%description mgr-prometheus
+ceph-mgr-prometheus is a ceph-mgr module that exposes cluster metrics
+in Prometheus exposition format.
+
+%package mgr-rgw
+BuildArch: noarch
+Summary: Ceph Manager module for RADOS Gateway management
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-rgw
+ceph-mgr-rgw is a ceph-mgr module that provides management and status
+commands for the RADOS Gateway.
+
+%package mgr-selftest
+BuildArch: noarch
+Summary: Ceph Manager module for testing the manager framework
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-selftest
+ceph-mgr-selftest is a ceph-mgr module used for testing the manager
+framework.
+
+%package mgr-smb
+BuildArch: noarch
+Summary: Ceph Manager module for managing SMB gateway deployments
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-smb
+ceph-mgr-smb is a ceph-mgr module that manages SMB gateway
+deployments on Ceph.
+
+%package mgr-snap-schedule
+BuildArch: noarch
+Summary: Ceph Manager module for automated CephFS snapshot schedules
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-snap-schedule
+ceph-mgr-snap-schedule is a ceph-mgr module that manages automated
+CephFS snapshot schedules.
+
+%package mgr-stats
+BuildArch: noarch
+Summary: Ceph Manager module for exposing file system client I/O statistics
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-stats
+ceph-mgr-stats is a ceph-mgr module that exposes file system client
+I/O statistics.
+
+%package mgr-telegraf
+BuildArch: noarch
+Summary: Ceph Manager module for sending metrics to Telegraf
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-telegraf
+ceph-mgr-telegraf is a ceph-mgr module that sends performance metrics
+to a Telegraf agent.
+
+%package mgr-test-orchestrator
+BuildArch: noarch
+Summary: Ceph Manager module for testing the orchestrator framework
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release}
+%description mgr-test-orchestrator
+ceph-mgr-test-orchestrator is a ceph-mgr module used for testing the
+orchestrator framework.
+
%package fuse
Summary: Ceph fuse-based client
%if 0%{?suse_version}
@@ -963,26 +1307,47 @@ Summary: Ceph Object Storage Daemon
Group: System/Filesystems
%endif
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
-Requires: sudo
-Requires: libstoragemgmt
+Requires: ceph-osd-classic = %{_epoch_prefix}%{version}-%{release}
%if 0%{with crimson}
-Requires: protobuf
+Requires: protobuf3
+Requires: ceph-osd-crimson = %{_epoch_prefix}%{version}-%{release}
%endif
+Requires: sudo
+Requires: libstoragemgmt
%if 0%{?weak_deps}
Recommends: ceph-volume = %{_epoch_prefix}%{version}-%{release}
%endif
%description osd
ceph-osd is the object storage daemon for the Ceph distributed file
+system. It provides components shared between classic and crimson OSD
+implementations. It requires either the classic or crimson OSD
+to provide the core OSD daemon.
+
+%package osd-classic
+Summary: Ceph Object Storage Daemon (classic)
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-osd < %{_epoch_prefix}%{version}-%{release}
+# libcares.so.2 doesn't carry the version, and only EL crosses 1.28 between a
+# rolling builder and a frozen older minor, so pin the c-ares floor there.
+%if 0%{?rhel} >= 10
+Requires: c-ares%{?_isa} >= 1.28.0
+%endif
+%description osd-classic
+classic-osd is the object storage daemon for the Ceph distributed file
system. It is responsible for storing objects on a local file system
and providing access to them over the network.
%if 0%{with crimson}
-%package crimson-osd
+%package osd-crimson
Summary: Ceph Object Storage Daemon (crimson)
%if 0%{?suse_version}
Group: System/Filesystems
%endif
Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-osd = %{_epoch_prefix}%{version}-%{release}
Requires: binutils
%description crimson-osd
crimson-osd is the object storage daemon for the Ceph distributed file
@@ -1290,6 +1655,9 @@ descriptions, and submitting the command to the appropriate daemon.
Summary: Python 3 utility libraries for Ceph
%if 0%{?fedora} || 0%{?rhel}
Requires: python%{python3_pkgversion}-pyyaml
+%if %{with pypkg}
+Recommends: python%{python3_pkgversion}-ceph-smb-ctl
+%endif
%endif
%if 0%{?suse_version}
Requires: python%{python3_pkgversion}-PyYAML
@@ -1439,6 +1807,22 @@ Group: System/Monitoring
This package provides a Ceph hardware monitoring agent.
%endif
+%if %{with pypkg}
+%package -n python%{python3_pkgversion}-ceph-smb-ctl
+Summary: Ceph SMB Service Remote-Control Client
+BuildArch: noarch
+%if 0%{?suse_version}
+Group: System/Filesystems
+%endif
+Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
+Requires: python%{python3_pkgversion}-grpcio
+Requires: python%{python3_pkgversion}-grpcio-reflection
+%description -n python%{python3_pkgversion}-ceph-smb-ctl
+This package provides a tool to interact with Ceph's SMB Service Remote-Control
+gRPC API as a client.
+%endif
+%dnl end package python%{python3_pkgversion}-ceph-smb-ctl
+
#################################################################################
# common
#################################################################################
@@ -1504,6 +1888,7 @@ env | sort
%if 0%{without ceph_test_package}
-DWITH_TESTS:BOOL=OFF \
%endif
+ -DWITH_SYSTEM_CATCH2=ON \
%if 0%{with cephfs_java}
-DJAVA_HOME=%{java_home} \
-DJAVA_LIB_INSTALL_DIR=%{_jnidir} \
@@ -1602,6 +1987,9 @@ env | sort
%if %{with sccache}
-DWITH_SCCACHE=ON \
%endif
+%if 0%{with pypkg}
+ -DWITH_PYPKG:BOOL=ON \
+%endif
%ifarch aarch64
-DWITH_UADK:BOOL=OFF \
%endif
@@ -1655,8 +2043,8 @@ export GCC_COLORS=
rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph
%if 0%{with crimson}
-# package crimson-osd with the name of ceph-osd
-install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd
+mv %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd-crimson
+mv %{buildroot}%{_bindir}/ceph-osd %{buildroot}%{_bindir}/ceph-osd-classic
%endif
install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
@@ -1738,7 +2126,14 @@ install -m 644 -D -t %{buildroot}%{_datadir}/snmp/mibs monitoring/snmp/CEPH-MIB.
%else
-# Remove the rbd/fuse bits
+# Remove the ceph-test bits
+# N.B. why is this, but no other ceph-test binary installed
+rm -f %{buildroot}%{_bindir}/ceph_ec_consistency_checker
+
+# Remove the ceph-exporter package
+rm -f %{buildroot}%{_unitdir}/ceph-exporter@.service
+
+# Remove the rbd-fuse bits
rm -f %{buildroot}%{_bindir}/ceph-fuse
rm -f %{buildroot}%{_mandir}/man8/ceph-fuse.8*
rm -f %{buildroot}%{_sbindir}/mount.fuse.ceph
@@ -1804,19 +2199,25 @@ rm -f %{buildroot}%{_unitdir}/ceph-radosgw@.service
rm -f %{buildroot}%{_unitdir}/ceph-radosgw.target
# Remove the ceph-osd package
+rm -f %{buildroot}%{_bindir}/ceph-osd
rm -f %{buildroot}%{_bindir}/ceph-clsinfo
-rm -f %{buildroot}%{_bindir}/ceph-bluestore-tool
rm -f %{buildroot}%{_bindir}/ceph-erasure-code-tool
-rm -f %{buildroot}%{_bindir}/ceph-objectstore-tool
-rm -f %{buildroot}%{_bindir}/ceph-osdomap-tool
-rm -f %{buildroot}%{_bindir}/ceph-osd
rm -f %{buildroot}%{_libexecdir}/ceph/ceph-osd-prestart.sh
rm -f %{buildroot}%{_mandir}/man8/ceph-clsinfo.8*
rm -f %{buildroot}%{_mandir}/man8/ceph-osd.8*
-rm -f %{buildroot}%{_mandir}/man8/ceph-bluestore-tool.8*
rm -f %{buildroot}%{_unitdir}/ceph-osd@.service
rm -f %{buildroot}%{_unitdir}/ceph-osd.target
+# Remove the ceph-osd-classic package
+rm -f %{buildroot}%{_bindir}/ceph-bluestore-tool
+rm -f %{buildroot}%{_bindir}/ceph-objectstore-tool
+rm -f %{buildroot}%{_bindir}/ceph-osd-classic
+rm -f %{buildroot}%{_mandir}/man8/ceph-bluestore-tool.8*
+
+# Remove the ceph-osd-crimson package
+rm -f %{buildroot}%{_bindir}/ceph-osd-crimson
+rm -f %{buildroot}%{_bindir}/ceph-crimson-objectstore-tool
+
# Remove rbd-mirror
rm -f %{buildroot}%{_bindir}/rbd-mirror
rm -f %{buildroot}%{_mandir}/man8/rbd-mirror.8*
@@ -1993,6 +2394,7 @@ exit 0
%{_bindir}/cephfs-data-scan
%{_bindir}/cephfs-journal-tool
%{_bindir}/cephfs-table-tool
+%{_bindir}/cephfs-tool
%{_bindir}/crushdiff
%{_bindir}/rados
%if 0%{with radosgw}
@@ -2090,13 +2492,6 @@ exit 0
%post common
%tmpfiles_create %{_tmpfilesdir}/ceph-common.conf
-%postun common
-# Package removal cleanup
-if [ "$1" -eq "0" ] ; then
- rm -rf %{_localstatedir}/log/ceph
- rm -rf %{_sysconfdir}/ceph
-fi
-
%if 0%{with server}
%files mds
@@ -2190,98 +2585,142 @@ fi
%files mgr-dashboard
%{_datadir}/ceph/mgr/dashboard
-%post mgr-dashboard
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
-
-%postun mgr-dashboard
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%ceph_mgr_module_scripts mgr-dashboard
%files mgr-diskprediction-local
%{_datadir}/ceph/mgr/diskprediction_local
-%post mgr-diskprediction-local
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
-
-%postun mgr-diskprediction-local
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%ceph_mgr_module_scripts mgr-diskprediction-local
%files mgr-modules-core
%dir %{_datadir}/ceph/mgr
-%{_datadir}/ceph/mgr/alerts
%{_datadir}/ceph/mgr/balancer
%{_datadir}/ceph/mgr/crash
%{_datadir}/ceph/mgr/devicehealth
+%{_datadir}/ceph/mgr/orchestrator
+%{_datadir}/ceph/mgr/pg_autoscaler
+%{_datadir}/ceph/mgr/progress
+%{_datadir}/ceph/mgr/rbd_support
+%{_datadir}/ceph/mgr/status
+%{_datadir}/ceph/mgr/telemetry
+%{_datadir}/ceph/mgr/volumes
+
+%files mgr-modules-standard
+
+%files mgr-alerts
+%{_datadir}/ceph/mgr/alerts
+
+%ceph_mgr_module_scripts mgr-alerts
+
+%files mgr-influx
%{_datadir}/ceph/mgr/influx
+
+%ceph_mgr_module_scripts mgr-influx
+
+%files mgr-insights
%{_datadir}/ceph/mgr/insights
+
+%ceph_mgr_module_scripts mgr-insights
+
+%files mgr-iostat
%{_datadir}/ceph/mgr/iostat
+
+%ceph_mgr_module_scripts mgr-iostat
+
+%files mgr-localpool
%{_datadir}/ceph/mgr/localpool
+
+%ceph_mgr_module_scripts mgr-localpool
+
+%files mgr-mds-autoscaler
%{_datadir}/ceph/mgr/mds_autoscaler
+
+%ceph_mgr_module_scripts mgr-mds-autoscaler
+
+%files mgr-mirroring
%{_datadir}/ceph/mgr/mirroring
+
+%ceph_mgr_module_scripts mgr-mirroring
+
+%files mgr-nfs
%{_datadir}/ceph/mgr/nfs
-%{_datadir}/ceph/mgr/orchestrator
+
+%ceph_mgr_module_scripts mgr-nfs
+
+%files mgr-nvmeof
+%{_datadir}/ceph/mgr/nvmeof
+
+%ceph_mgr_module_scripts mgr-nvmeof
+
+%files mgr-osd-perf-query
%{_datadir}/ceph/mgr/osd_perf_query
+
+%ceph_mgr_module_scripts mgr-osd-perf-query
+
+%files mgr-osd-support
%{_datadir}/ceph/mgr/osd_support
-%{_datadir}/ceph/mgr/pg_autoscaler
-%{_datadir}/ceph/mgr/progress
+
+%ceph_mgr_module_scripts mgr-osd-support
+
+%files mgr-prometheus
%{_datadir}/ceph/mgr/prometheus
-%{_datadir}/ceph/mgr/rbd_support
+
+%ceph_mgr_module_scripts mgr-prometheus
+
+%files mgr-rgw
%{_datadir}/ceph/mgr/rgw
+
+%ceph_mgr_module_scripts mgr-rgw
+
+%files mgr-selftest
%{_datadir}/ceph/mgr/selftest
+
+%ceph_mgr_module_scripts mgr-selftest
+
+%files mgr-smb
%{_datadir}/ceph/mgr/smb
+
+%ceph_mgr_module_scripts mgr-smb
+
+%files mgr-snap-schedule
%{_datadir}/ceph/mgr/snap_schedule
+
+%ceph_mgr_module_scripts mgr-snap-schedule
+
+%files mgr-stats
%{_datadir}/ceph/mgr/stats
-%{_datadir}/ceph/mgr/status
+
+%ceph_mgr_module_scripts mgr-stats
+
+%files mgr-telegraf
%{_datadir}/ceph/mgr/telegraf
-%{_datadir}/ceph/mgr/telemetry
+
+%ceph_mgr_module_scripts mgr-telegraf
+
+%files mgr-test-orchestrator
%{_datadir}/ceph/mgr/test_orchestrator
-%{_datadir}/ceph/mgr/volumes
+
+%ceph_mgr_module_scripts mgr-test-orchestrator
%files mgr-rook
%{_datadir}/ceph/mgr/rook
-%post mgr-rook
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
-
-%postun mgr-rook
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%ceph_mgr_module_scripts mgr-rook
%files mgr-k8sevents
%{_datadir}/ceph/mgr/k8sevents
-%post mgr-k8sevents
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
-
-%postun mgr-k8sevents
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%ceph_mgr_module_scripts mgr-k8sevents
%files mgr-cephadm
%{_datadir}/ceph/mgr/cephadm
-%post mgr-cephadm
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%ceph_mgr_module_scripts mgr-cephadm
-%postun mgr-cephadm
-if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
-fi
+%files mgr-cli-api
+%{_datadir}/ceph/mgr/cli_api
+
+%ceph_mgr_module_scripts mgr-cli-api
%files mon
%{_bindir}/ceph-mon
@@ -2378,9 +2817,9 @@ if [ $1 -ge 1 ] ; then
fi
fi
-%files -n ceph-exporter
+%files exporter
%{_bindir}/ceph-exporter
-%{_unitdir}/ceph-exporter.service
+%{_unitdir}/ceph-exporter@.service
%files -n rbd-fuse
%{_bindir}/rbd-fuse
@@ -2527,19 +2966,15 @@ fi
%files osd
%{_bindir}/ceph-clsinfo
-%{_bindir}/ceph-bluestore-tool
%{_bindir}/ceph-erasure-code-tool
-%{_bindir}/ceph-objectstore-tool
-%{_bindir}/ceph-osd
%{_libexecdir}/ceph/ceph-osd-prestart.sh
%{_mandir}/man8/ceph-clsinfo.8*
%{_mandir}/man8/ceph-osd.8*
-%{_mandir}/man8/ceph-bluestore-tool.8*
%{_unitdir}/ceph-osd@.service
%{_unitdir}/ceph-osd.target
-%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
%config(noreplace) %{_sysctldir}/90-ceph-osd.conf
+
%post osd
%if 0%{?suse_version}
if [ $1 -eq 1 ] ; then
@@ -2576,11 +3011,37 @@ if [ $1 -ge 1 ] ; then
fi
fi
+%files osd-classic
+%{_bindir}/ceph-bluestore-tool
+%{_bindir}/ceph-objectstore-tool
+%{_bindir}/ceph-osd-classic
+%{_mandir}/man8/ceph-bluestore-tool.8*
+%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
+
%if 0%{with crimson}
-%files crimson-osd
-%{_bindir}/crimson-osd
+%files osd-crimson
+%{_bindir}/ceph-osd-crimson
+%{_bindir}/crimson-objectstore-tool
+
+%posttrans osd-crimson
+%{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \
+ %{_bindir}/ceph-osd-crimson 50
+
+%preun osd-crimson
+if [ $1 -eq 0 ]; then
+ ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-osd-crimson
+fi
%endif
++%posttrans osd-classic
+%{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \
+ %{_bindir}/ceph-osd-classic 100
+
+%preun osd-classic
+if [ $1 -eq 0 ]; then
+ ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-osd-classic
+fi
+
%files volume
%{_sbindir}/ceph-volume
%{_sbindir}/ceph-volume-systemd
@@ -2667,10 +3128,12 @@ fi
%{_includedir}/rados/librados_fwd.hpp
%{_includedir}/rados/page.h
%{_includedir}/rados/rados_types.hpp
+%{_includedir}/rados/cls_flags.hpp
+%{_includedir}/rados/cls_traits.hpp
%files -n python%{python3_pkgversion}-rados
%{python3_sitearch}/rados.cpython*.so
-%{python3_sitearch}/rados-*.egg-info
+%{python3_sitearch}/rados-*.dist-info
%files -n libcephsqlite
%{_libdir}/libcephsqlite.so
@@ -2736,13 +3199,13 @@ fi
%files -n python%{python3_pkgversion}-rgw
%{python3_sitearch}/rgw.cpython*.so
-%{python3_sitearch}/rgw-*.egg-info
+%{python3_sitearch}/rgw-*.dist-info
%endif
%files -n python%{python3_pkgversion}-rbd
%{python3_sitearch}/rbd.cpython*.so
-%{python3_sitearch}/rbd-*.egg-info
+%{python3_sitearch}/rbd-*.dist-info
%files -n libcephfs2
%{_libdir}/libcephfs.so.*
@@ -2767,13 +3230,16 @@ fi
%{_includedir}/cephfs/types.h
%dir %{_includedir}/cephfs/metrics
%{_includedir}/cephfs/metrics/Types.h
+%{_includedir}/cephfs/dump.h
+%{_includedir}/cephfs/json.h
+%{_includedir}/cephfs/keys_and_values.h
%{_libdir}/libcephfs.so
%{_libdir}/libcephfs_proxy.so
%{_libdir}/pkgconfig/cephfs.pc
%files -n python%{python3_pkgversion}-cephfs
%{python3_sitearch}/cephfs.cpython*.so
-%{python3_sitearch}/cephfs-*.egg-info
+%{python3_sitearch}/cephfs-*.dist-info
%files -n python%{python3_pkgversion}-ceph-argparse
%{python3_sitelib}/ceph_argparse.py
@@ -2783,7 +3249,7 @@ fi
%files -n python%{python3_pkgversion}-ceph-common
%{python3_sitelib}/ceph
-%{python3_sitelib}/ceph-*.egg-info
+%{python3_sitelib}/ceph-*.%{?with_pypkg:dist}%{!?with_pypkg:egg}-info
%if 0%{with cephfs_shell}
%files -n cephfs-shell
@@ -2800,19 +3266,19 @@ fi
%endif
%if 0%{with ceph_test_package}
-%files -n ceph-test
+%files test
%{_bindir}/ceph-client-debug
%{_bindir}/ceph_bench_log
%{_bindir}/ceph_multi_stress_watch
%{_bindir}/ceph_erasure_code_benchmark
%{_bindir}/ceph_omapbench
%{_bindir}/ceph_objectstore_bench
+%{_bindir}/ceph_ec_consistency_checker
%{_bindir}/ceph_perf_objectstore
%{_bindir}/ceph_perf_local
%{_bindir}/ceph_perf_msgr_client
%{_bindir}/ceph_perf_msgr_server
%{_bindir}/ceph_psim
-%{_bindir}/ceph_radosacl
%{_bindir}/ceph_rgw_jsonparser
%{_bindir}/ceph_rgw_multiparser
%{_bindir}/ceph_scratchtool
@@ -2824,6 +3290,7 @@ fi
%{_bindir}/ceph-dedup-daemon
%if 0%{with crimson}
%{_bindir}/crimson-store-nbd
+%{_bindir}/crimson-store-bench
%endif
%{_mandir}/man8/ceph-debugpack.8*
%dir %{_libdir}/ceph
@@ -2982,7 +3449,15 @@ exit 0
%{python3_sitelib}/ceph_node_proxy-*
%endif
+%if %{with pypkg}
+%files -n python%{python3_pkgversion}-ceph-smb-ctl
+%{_bindir}/ceph-smb-ctl
+%endif
+
%changelog
+* Thu Jul 23 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:21.1.0-1
+- ceph-21.1.0 GA
+
* Tue Jun 23 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:20.2.2-1
- ceph-20.2.2 GA
diff --git a/sources b/sources
index ebb0115..a5ffe0f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (ceph-20.2.2.tar.gz) = 1977f384d2af5fde2a795e2eed71c12f519f1a2036ceb2e383c8534feca509740d744e99e77b73488f8e13193a83c7134e407fb6b21c4ba4c1f9ac9752b16fbc
+SHA512 (ceph-21.1.0.tar.gz) = 23e0c3904cb043d267c53c608ebee4f933aa63d5b09a9038a2d024d13bb3fbd92b470973c53fff5392e21fe023f28b832617dbc1d53aad5d62d1ae9f2a2e007f
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-23 18:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-23 18:12 [rpms/ceph] eln: Ceph 21.1.0 RC0 Kaleb S. KEITHLEY
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox