public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ceph] rawhide: ceph-21.1.0 RC0
@ 2026-07-20 18:17 Kaleb S. KEITHLEY
0 siblings, 0 replies; only message in thread
From: Kaleb S. KEITHLEY @ 2026-07-20 18:17 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/ceph
Branch : rawhide
Commit : 53b0acef07362afb388d4624edcedfdaed1e9b4c
Author : Kaleb S. KEITHLEY <kkeithle@redhat.com>
Date : 2026-07-20T14:14:07-04:00
Stats : +604/-342 in 14 file(s)
URL : https://src.fedoraproject.org/rpms/ceph/c/53b0acef07362afb388d4624edcedfdaed1e9b4c?branch=rawhide
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/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/0029-src-rgw-rgw_amqp.cc.patch b/0029-src-rgw-rgw_amqp.cc.patch
deleted file mode 100644
index 8cd8fa9..0000000
--- a/0029-src-rgw-rgw_amqp.cc.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc.orig 2023-03-14 18:22:35.636864260 -0400
-+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc 2023-03-14 18:24:36.362756771 -0400
-@@ -2,10 +2,10 @@
- // vim: ts=8 sw=2 smarttab ft=cpp
-
- #include "rgw_amqp.h"
--#include <amqp.h>
--#include <amqp_ssl_socket.h>
--#include <amqp_tcp_socket.h>
--#include <amqp_framing.h>
-+#include <rabbitmq-c/amqp.h>
-+#include <rabbitmq-c/ssl_socket.h>
-+#include <rabbitmq-c/tcp_socket.h>
-+#include <rabbitmq-c/framing.h>
- #include "include/ceph_assert.h"
- #include <sstream>
- #include <cstring>
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/0041-src-boost-boost-python-call_method.hpp.patch b/0041-src-boost-boost-python-call_method.hpp.patch
deleted file mode 100644
index 7f908b2..0000000
--- a/0041-src-boost-boost-python-call_method.hpp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ceph-18.2.3/src/boost/boost/python/call_method.hpp.orig 2024-06-07 11:14:58.579734749 -0400
-+++ ceph-18.2.3/src/boost/boost/python/call_method.hpp 2024-06-07 11:19:06.754520504 -0400
-@@ -59,7 +59,7 @@
- )
- {
- PyObject* const result =
-- PyEval_CallMethod(
-+ PyObject_CallMethod(
- self
- , const_cast<char*>(name)
- , const_cast<char*>("(" BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_FIXED, "O") ")")
diff --git a/0041-src-mgr-PyModule.cc.patch b/0041-src-mgr-PyModule.cc.patch
index 04293fd..937a18a 100644
--- a/0041-src-mgr-PyModule.cc.patch
+++ b/0041-src-mgr-PyModule.cc.patch
@@ -1,6 +1,6 @@
---- ceph-20.2.2/src/mgr/PyModule.cc.orig 2026-06-15 10:56:49.000000000 -0400
-+++ ceph-20.2.2/src/mgr/PyModule.cc 2026-06-16 15:45:32.516059621 -0400
-@@ -330,6 +330,16 @@
+--- ceph-18.2.3/src/mgr/PyModule.cc.orig 2024-06-06 16:31:10.340731851 -0400
++++ ceph-18.2.3/src/mgr/PyModule.cc 2024-06-07 12:58:49.913571410 -0400
+@@ -342,6 +342,16 @@
return ceph_module;
}
@@ -17,12 +17,3 @@
int PyModule::load(PyThreadState *pMainThreadState)
{
ceph_assert(pMainThreadState != nullptr);
-@@ -369,7 +379,7 @@
-
- int r;
-
-- pPickleModule = PyImport_ImportModuleNoBlock("pickle");
-+ pPickleModule = PyImport_ImportModule("pickle");
- if (!pPickleModule) {
- derr << "Unable to load pickle" << dendl;
- return -EINVAL;
diff --git a/0057-src-json_spirit-json_spirit_reader_template.h.patch b/0057-src-json_spirit-json_spirit_reader_template.h.patch
deleted file mode 100644
index efc08cf..0000000
--- a/0057-src-json_spirit-json_spirit_reader_template.h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ceph-20.0.0-2099-gc62cbb7d/src/json_spirit/json_spirit_reader_template.h.orig 2025-06-09 11:56:21.534808695 -0400
-+++ ceph-20.0.0-2099-gc62cbb7d/src/json_spirit/json_spirit_reader_template.h 2025-06-09 12:01:56.358334353 -0400
-@@ -136,6 +136,7 @@
- {
- typedef typename String_type::const_iterator Iter_type;
-
-+ if( end - begin < 1 ) return String_type();
- if( end - begin < 2 ) return String_type( begin, end );
-
- String_type result;
diff --git a/0058-src-CMakeLists.txt.patch b/0058-src-CMakeLists.txt.patch
deleted file mode 100644
index eba46fa..0000000
--- a/0058-src-CMakeLists.txt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- ceph-20.2.0/src/CMakeLists.txt.orig 2026-01-20 14:31:56.764231793 -0500
-+++ ceph-20.2.0/src/CMakeLists.txt 2026-01-20 14:35:21.258787691 -0500
-@@ -1051,8 +1051,8 @@
- if(WITH_RADOSGW)
- if(WITH_RADOSGW_SELECT_PARQUET OR WITH_RADOSGW_ARROW_FLIGHT)
- if(WITH_SYSTEM_ARROW)
-- find_package(Arrow 4 REQUIRED QUIET)
-- find_package(Parquet 4 REQUIRED QUIET)
-+ find_package(Arrow REQUIRED QUIET)
-+ find_package(Parquet REQUIRED QUIET)
- else()
- # find arrow's dependencies
- if (WITH_SYSTEM_UTF8PROC)
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/0064-src-rgw-rgw_lua_utils.cc.patch b/0064-src-rgw-rgw_lua_utils.cc.patch
deleted file mode 100644
index 45750d4..0000000
--- a/0064-src-rgw-rgw_lua_utils.cc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- ceph-20.2.0/src/rgw/rgw_lua_utils.cc.orig 2026-02-17 11:46:05.677894827 -0500
-+++ ceph-20.2.0/src/rgw/rgw_lua_utils.cc 2026-02-17 11:50:06.106569226 -0500
-@@ -115,7 +115,11 @@
-
- // create new lua state together with reference to the guard
- lua_State* newstate(lua_state_guard* guard) {
-+#if (LUA_VERSION_NUM < 505)
- lua_State* L = lua_newstate(allocator, guard);
-+#else
-+ lua_State* L = lua_newstate(allocator, guard, 314159);
-+#endif
- if (L) {
- lua_atpanic(L, [](lua_State* L) -> int {
- const char* msg = lua_tostring(L, -1);
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/ceph.spec b/ceph.spec
index e96f38d..9308292 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -88,7 +88,7 @@
%bcond_with lua_packages
%endif
%endif
-%bcond_with crimson
+%bcond_without crimson
%if 0%{?suse_version}
%bcond_with jaeger
%else
@@ -143,13 +143,18 @@
%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}
%{!?python3_pkgversion: %global python3_pkgversion 3}
%{!?python3_version_nodots: %global python3_version_nodots 3}
%{!?python3_version: %global python3_version 3}
-### %define _lto_cflags %{nil}
+%define _lto_cflags %{nil}
%if ! 0%{?suse_version}
# use multi-threaded xz compression: xz level 7 using ncpus threads
@@ -157,6 +162,18 @@
%global _binary_payload w7T%{_smp_build_ncpus}.xzdio
%endif
+# $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
@@ -179,8 +196,8 @@
# main package definition
#################################################################################
Name: ceph
-Version: 20.2.2
-Release: 3%{?dist}
+Version: 21.1.0
+Release: 1%{?dist}
%if 0%{?fedora} || 0%{?rhel}
Epoch: 2
%endif
@@ -195,8 +212,8 @@ License: LGPL-2.1-or-later AND LGPL-3.0-only AND CC-BY-SA-3.0 AND GPL-2.0-only A
Group: System/Filesystems
%endif
URL: http://ceph.com/
-Source: https://download.ceph.com/tarballs/ceph-%{version}.tar.gz
-#Source0: https://1.chacra.ceph.com/r/ceph/tentacle/
+Source: https://download.ceph.com/tarballs/ceph-%{version}.tar.gz
+#Source0: https://1.chacra.ceph.com/r/ceph/umbrella/
Patch: 0001-src-common-crc32c_intel_fast.patch
Patch: 0003-src-common-bitstr.h.patch
Patch: 0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch
@@ -216,13 +233,10 @@ Patch: 0051-src-googletest-nosharedlibs.patch
Patch: 0052-src-tracing.patch
Patch: 0053-src-test-neorados-common_tests.h.patch
Patch: 0056-libarrow-20.0.0.patch
-Patch: 0057-src-json_spirit-json_spirit_reader_template.h.patch
-Patch: 0058-src-CMakeLists.txt.patch
Patch: 0059-iso646.patch
-Patch: 0061-gcc-16.patch
Patch: 0062-src-rgw-driver-dbstore-CMakeLists.txt.patch
Patch: 0063-src-jaegertracing-opentelemetry-cpp-CMakeLists.txt.patch
-Patch: 0064-src-rgw-rgw_lua_utils.cc.patch
+Patch: 0065-src-os-memstore-CMakelists.txt.patch
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
ExcludeArch: i686 armv7hl
@@ -254,7 +268,7 @@ BuildRequires: selinux-policy-devel
%endif
BuildRequires: gperf
BuildRequires: cmake > 3.5
-BuildRequires: fuse3-devel
+BuildRequires: pkgconfig(fuse3)
BuildRequires: grpc-devel
BuildRequires: gcc-c++
BuildRequires: libzstd-devel
@@ -303,6 +317,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
@@ -392,8 +408,8 @@ BuildRequires: ragel
BuildRequires: systemtap-sdt-devel
BuildRequires: libubsan
BuildRequires: libasan
-BuildRequires: protobuf3-devel
-BuildRequires: protobuf3-compiler
+BuildRequires: protobuf-devel
+BuildRequires: protobuf-compiler
%endif
#################################################################################
# distro-conditional dependencies
@@ -509,6 +525,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
@@ -567,14 +585,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.
@@ -656,11 +699,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
@@ -675,6 +737,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}
@@ -727,18 +790,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}
@@ -748,6 +806,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
@@ -755,6 +845,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
@@ -797,6 +888,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}
@@ -921,28 +1261,50 @@ 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: protobuf3
+Requires: protobuf
+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
+Requires: protobuf
+%description osd-crimson
crimson-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.
@@ -1241,6 +1603,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
@@ -1389,6 +1754,22 @@ Group: System/Monitoring
%description node-proxy
This package provides a Ceph hardware monitoring agent.
+%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
#################################################################################
@@ -1450,6 +1831,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} \
@@ -1552,6 +1934,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
@@ -1588,9 +1973,9 @@ 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
%endif
+mv %{buildroot}%{_bindir}/ceph-osd %{buildroot}%{_bindir}/ceph-osd-classic
install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
%if 0%{?fedora} || 0%{?rhel}
@@ -1778,6 +2163,7 @@ fi
%{_bindir}/cephfs-data-scan
%{_bindir}/cephfs-journal-tool
%{_bindir}/cephfs-table-tool
+%{_bindir}/cephfs-tool
%{_bindir}/crushdiff
%{_bindir}/rados
%{_bindir}/radosgw-admin
@@ -1866,13 +2252,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
-
%files mds
%{_bindir}/ceph-mds
%{_mandir}/man8/ceph-mds.8*
@@ -1964,98 +2343,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
@@ -2152,9 +2575,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
@@ -2298,17 +2721,12 @@ 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
@@ -2347,11 +2765,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
@@ -2437,10 +2881,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
@@ -2505,11 +2951,11 @@ fi
%files -n python%{python3_pkgversion}-rgw
%{python3_sitearch}/rgw.cpython*.so
-%{python3_sitearch}/rgw-*.egg-info
+%{python3_sitearch}/rgw-*.dist-info
%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.*
@@ -2534,13 +2980,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
@@ -2550,7 +2999,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
@@ -2572,12 +3021,12 @@ fi
%{_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
@@ -2589,6 +3038,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
@@ -2744,7 +3194,15 @@ exit 0
%{python3_sitelib}/ceph_node_proxy/*
%{python3_sitelib}/ceph_node_proxy-*
+%if %{with pypkg}
+%files -n python%{python3_pkgversion}-ceph-smb-ctl
+%{_bindir}/ceph-smb-ctl
+%endif
+
%changelog
+* Mon Jul 20 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:21.1.0-1
+- ceph-21.1.0 RC0
+
* Wed Jul 15 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2:20.2.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
@@ -2768,10 +3226,10 @@ exit 0
* Tue Apr 28 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:20.2.1-2
- Ceph 20.2.1, enable LTO
-
+
* Mon Apr 6 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:20.2.1-1
- Ceph 20.2.1 GA
-
+
* Tue Mar 17 2026 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:20.2.0-10
- Requires: fuse -> fuse3
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-20 18:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-20 18:17 [rpms/ceph] rawhide: 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