Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 483609c35a | |||
| 10c2ce06df | |||
| 675842896e | |||
| b383e9871a | |||
| ed9eb44736 | |||
| 028a3e16a2 | |||
| 7bee4683fe | |||
| 09ccc8e9b9 | |||
| be4504721e | |||
| e36677d72b | |||
| 336d95ffe1 | |||
| 462b6371a8 | |||
| 73fbd52cf0 | |||
| 76311ff73d | |||
| 7777c12922 | |||
| 9e40e8463a | |||
| 7b02812bfa | |||
| f30547975e | |||
| 71415e347c | |||
| ab3a611b40 | |||
| 174d85b528 | |||
| ef7983bda9 | |||
| 3e62f6732f | |||
| 79153d6480 | |||
| 523d1206e6 | |||
| 74fb57d14d | |||
| 72afc44846 | |||
| f2472b2202 | |||
| c77f93f3c6 | |||
| 709057efd7 | |||
| e2f83f0159 | |||
| ab8e88342e | |||
| 9617094f5b | |||
| 84c56bc5b9 | |||
| 051c60d292 | |||
| cd9775de83 | |||
| 9aeb6ec2a1 | |||
| ba00ed73be | |||
| bf3e97a4bf | |||
| 10008f4d4d | |||
| 9a53ef8bfc | |||
| 2126a0838a | |||
| b6da7b6869 | |||
| 211fde613e | |||
| 0355ace5e2 | |||
| 8b27c56f29 | |||
| 4751d59373 | |||
| cb9e33d375 | |||
| ef563fd8d7 | |||
| 396c7768f7 | |||
| 7782c6b1de | |||
| 777309ac00 | |||
| 9e8f3de90d | |||
| b2198c3560 | |||
| b4f3e5cd1b | |||
| 84bb4fddac | |||
| 4d7d8d4f06 | |||
| 9fe6d8aff6 | |||
| cbcfdf7b45 | |||
| 9d3db7ddda | |||
| 542aea1c02 | |||
| 5b30d830a7 | |||
| 57f6aa766d | |||
| d890f19b59 | |||
| 571002cfed | |||
| 3cf60da63e | |||
| 7c29df3d82 | |||
| 1617d904e2 | |||
| 251a6d956f | |||
| e75c15b5e1 | |||
| a5f57bdda7 | |||
| d43cb58ea8 | |||
| 77b4049f20 | |||
| 6760483703 | |||
| 6f7af637e0 | |||
| 04cb11136d | |||
| dfb67a0a2d | |||
| 8c24c6966e | |||
| 0707993c6f | |||
| 7b9e357bb6 | |||
| 5487589f86 | |||
| 4dc6f31337 | |||
| b1b1f3dfe5 | |||
| af927eceb5 | |||
| c302acab65 | |||
| fdf49fe866 | |||
| 9d891cfd36 | |||
| d17727fb4b | |||
| d95a6a107c | |||
| b34a342a82 |
@@ -1,11 +0,0 @@
|
||||
--- ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake.orig 2021-02-01 08:45:39.316108287 -0500
|
||||
+++ ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake 2021-02-01 08:45:59.813665378 -0500
|
||||
@@ -5,7 +5,7 @@
|
||||
# uring_FOUND - True if uring found.
|
||||
|
||||
find_path(URING_INCLUDE_DIR liburing.h)
|
||||
-find_library(URING_LIBRARIES liburing.a liburing)
|
||||
+find_library(URING_LIBRARIES liburing.so liburing)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
|
||||
@@ -1,42 +0,0 @@
|
||||
--- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500
|
||||
+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
|
||||
@@ -183,7 +183,7 @@
|
||||
return "crit";
|
||||
default:
|
||||
ceph_abort();
|
||||
- return 0;
|
||||
+ return "";
|
||||
}
|
||||
}
|
||||
|
||||
--- ceph-16.2.7/src/test/librados/tier_cxx.cc.orig 2022-01-19 09:30:47.209459506 -0500
|
||||
+++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
|
||||
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
|
||||
- std::string fp_algo = NULL)
|
||||
+ std::string fp_algo = "")
|
||||
{
|
||||
bufferlist t;
|
||||
int size = foid.length();
|
||||
@@ -148,7 +148,7 @@
|
||||
ASSERT_LE(count, refs.count());
|
||||
}
|
||||
|
||||
-string get_fp_oid(string oid, std::string fp_algo = NULL)
|
||||
+string get_fp_oid(string oid, std::string fp_algo = "")
|
||||
{
|
||||
if (fp_algo == "sha1") {
|
||||
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
|
||||
--- ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h.orig 2022-02-11 17:21:40.268627997 -0500
|
||||
+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500
|
||||
@@ -466,7 +466,7 @@
|
||||
|
||||
std::string print(int ident) override
|
||||
{
|
||||
- return std::string(0);
|
||||
+ return std::string("");
|
||||
}
|
||||
|
||||
void push_argument(base_statement* arg)
|
||||
@@ -1,11 +0,0 @@
|
||||
--- ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig 2022-04-08 11:27:53.593570634 -0400
|
||||
+++ ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake 2022-04-08 11:28:20.778087653 -0400
|
||||
@@ -1991,7 +1991,7 @@
|
||||
|
||||
if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
|
||||
))
|
||||
- set(xsimd_SOURCE "BUNDLED")
|
||||
+ set(xsimd_SOURCE "SYSTEM")
|
||||
resolve_dependency(xsimd)
|
||||
# TODO: Don't use global includes but rather target_include_directories
|
||||
include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
|
||||
@@ -1,32 +0,0 @@
|
||||
--- ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h.orig 2023-01-18 16:35:03.398700052 -0500
|
||||
+++ ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h 2023-01-18 16:37:55.882677965 -0500
|
||||
@@ -183,20 +183,20 @@
|
||||
// note: 'if' chain, as hard to consistently (on all compilers) avoid some
|
||||
// warnings for a switch plus multiple return paths
|
||||
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_usable) {
|
||||
- return format_to(ctx.out(),
|
||||
- "{{shard-not-usable:{}}}",
|
||||
- as_auth.error_text);
|
||||
+ return fmt::format_to(ctx.out(),
|
||||
+ "{{shard-not-usable:{}}}",
|
||||
+ as_auth.error_text.c_str());
|
||||
}
|
||||
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_found) {
|
||||
- return format_to(ctx.out(), "{{shard-not-found}}");
|
||||
+ return fmt::format_to(ctx.out(), "{{shard-not-found}}");
|
||||
}
|
||||
- return format_to(ctx.out(),
|
||||
- "{{shard-usable: soid:{} {{txt:{}}} }}",
|
||||
- as_auth.oi.soid,
|
||||
- as_auth.error_text);
|
||||
+ return fmt::format_to(ctx.out(),
|
||||
+ "{{shard-usable: soid:{} {{txt:{}}} }}",
|
||||
+ as_auth.oi.soid,
|
||||
+ as_auth.error_text.c_str());
|
||||
|
||||
} else {
|
||||
- return format_to(
|
||||
+ return fmt::format_to(
|
||||
ctx.out(),
|
||||
"usable:{} soid:{} {{txt:{}}}",
|
||||
(as_auth.possible_auth == shard_as_auth_t::usable_t::usable) ? "yes"
|
||||
@@ -1,199 +0,0 @@
|
||||
--- ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc.orig 2023-02-08 16:01:53.800709761 -0500
|
||||
+++ ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc 2023-02-11 05:06:14.954254050 -0500
|
||||
@@ -507,11 +507,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
- dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {}",
|
||||
+ dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {:p}",
|
||||
__func__,
|
||||
ret_auth.auth_shard,
|
||||
ho,
|
||||
- ret_auth.auth_oi)
|
||||
+ (void*)&ret_auth.auth_oi)
|
||||
<< dendl;
|
||||
|
||||
return ret_auth;
|
||||
@@ -1171,23 +1171,23 @@
|
||||
|
||||
if (auth.digest_present && candidate.digest_present &&
|
||||
auth.digest != candidate.digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "data_digest {:#x} != data_digest {:#x} from shard {}",
|
||||
- candidate.digest,
|
||||
- auth.digest,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "data_digest {:#x} != data_digest {:#x} from shard {}",
|
||||
+ candidate.digest,
|
||||
+ auth.digest,
|
||||
+ auth_shard);
|
||||
error = true;
|
||||
obj_result.set_data_digest_mismatch();
|
||||
}
|
||||
|
||||
if (auth.omap_digest_present && candidate.omap_digest_present &&
|
||||
auth.omap_digest != candidate.omap_digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
|
||||
- sep(error),
|
||||
- candidate.omap_digest,
|
||||
- auth.omap_digest,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
|
||||
+ sep(error),
|
||||
+ candidate.omap_digest,
|
||||
+ auth.omap_digest,
|
||||
+ auth_shard);
|
||||
obj_result.set_omap_digest_mismatch();
|
||||
}
|
||||
|
||||
@@ -1195,24 +1195,24 @@
|
||||
if (m_is_replicated) {
|
||||
if (auth_oi.is_data_digest() && candidate.digest_present &&
|
||||
auth_oi.data_digest != candidate.digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}data_digest {:#x} != data_digest {:#x} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.digest,
|
||||
- auth_oi.data_digest,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}data_digest {:#x} != data_digest {:#x} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.digest,
|
||||
+ auth_oi.data_digest,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_data_digest_mismatch_info();
|
||||
}
|
||||
|
||||
// for replicated:
|
||||
if (auth_oi.is_omap_digest() && candidate.omap_digest_present &&
|
||||
auth_oi.omap_digest != candidate.omap_digest) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.omap_digest,
|
||||
- auth_oi.omap_digest,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.omap_digest,
|
||||
+ auth_oi.omap_digest,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_omap_digest_mismatch_info();
|
||||
}
|
||||
}
|
||||
@@ -1241,7 +1241,7 @@
|
||||
auth_bl.push_back(auth_attr->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
|
||||
obj_result.set_object_info_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1261,7 +1261,7 @@
|
||||
auth_bl.push_back(auth_attr->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
|
||||
obj_result.set_snapset_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1284,7 +1284,7 @@
|
||||
auth_bl.push_back(auth_hi->second);
|
||||
|
||||
if (!can_bl.contents_equal(auth_bl)) {
|
||||
- format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
|
||||
+ fmt::format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
|
||||
obj_result.set_hinfo_inconsistency();
|
||||
}
|
||||
}
|
||||
@@ -1296,22 +1296,22 @@
|
||||
|
||||
uint64_t oi_size = logical_to_ondisk_size(auth_oi.size);
|
||||
if (oi_size != candidate.size) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} != size {} from auth oi {}",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- oi_size,
|
||||
- auth_oi);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} != size {} from auth oi {:p}",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ oi_size,
|
||||
+ (void*)&auth_oi);
|
||||
shard_result.set_size_mismatch_info();
|
||||
}
|
||||
|
||||
if (auth.size != candidate.size) {
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} != size {} from shard {}",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- auth.size,
|
||||
- auth_shard);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} != size {} from shard {}",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ auth.size,
|
||||
+ auth_shard);
|
||||
obj_result.set_size_mismatch();
|
||||
}
|
||||
|
||||
@@ -1320,11 +1320,11 @@
|
||||
if (candidate.size > m_conf->osd_max_object_size &&
|
||||
!obj_result.has_size_too_large()) {
|
||||
|
||||
- format_to(std::back_inserter(out),
|
||||
- "{}size {} > {} is too large",
|
||||
- sep(error),
|
||||
- candidate.size,
|
||||
- m_conf->osd_max_object_size);
|
||||
+ fmt::format_to(std::back_inserter(out),
|
||||
+ "{}size {} > {} is too large",
|
||||
+ sep(error),
|
||||
+ candidate.size,
|
||||
+ m_conf->osd_max_object_size);
|
||||
obj_result.set_size_too_large();
|
||||
}
|
||||
|
||||
@@ -1340,10 +1340,10 @@
|
||||
|
||||
auto cand = candidate.attrs.find(k);
|
||||
if (cand == candidate.attrs.end()) {
|
||||
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_name_mismatch();
|
||||
} else if (cand->second.cmp(v)) {
|
||||
- format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_value_mismatch();
|
||||
}
|
||||
}
|
||||
@@ -1356,7 +1356,7 @@
|
||||
|
||||
auto in_auth = auth.attrs.find(k);
|
||||
if (in_auth == auth.attrs.end()) {
|
||||
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
|
||||
obj_result.set_attr_name_mismatch();
|
||||
}
|
||||
}
|
||||
@@ -1823,8 +1823,7 @@
|
||||
SnapMapReaderI& snaps_getter)
|
||||
{
|
||||
using result_t = Scrub::SnapMapReaderI::result_t;
|
||||
- dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset)
|
||||
- << dendl;
|
||||
+ // dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset) << dendl;
|
||||
|
||||
auto p = snapset.clone_snaps.find(hoid.snap);
|
||||
if (p == snapset.clone_snaps.end()) {
|
||||
@@ -1,151 +0,0 @@
|
||||
--- ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h.orig 2023-04-05 11:09:51.000000000 -0400
|
||||
+++ ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h 2023-04-21 16:22:26.665067333 -0400
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <mutex>
|
||||
|
||||
#include "rocksdb/version.h"
|
||||
-#include "rocksdb/cache.h"
|
||||
+#include "rocksdb/advanced_cache.h"
|
||||
#include "include/ceph_hash.h"
|
||||
#include "common/PriorityCache.h"
|
||||
//#include "hash.h"
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
namespace rocksdb_cache {
|
||||
|
||||
-using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
|
||||
+// using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
|
||||
+using DeleterFn = void (*)(rocksdb::Cache::ObjectPtr obj, rocksdb::MemoryAllocator* allocator);
|
||||
|
||||
// Single cache shard interface.
|
||||
class CacheShard {
|
||||
@@ -34,11 +35,19 @@
|
||||
CacheShard() = default;
|
||||
virtual ~CacheShard() = default;
|
||||
|
||||
- virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
|
||||
- size_t charge,
|
||||
- DeleterFn deleter,
|
||||
- rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
|
||||
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
|
||||
+ virtual rocksdb::Status Insert(const rocksdb::Slice& key,
|
||||
+ rockdb::ObjectPtr obj,
|
||||
+ const rocksdb::CacheItemHelper* helper,
|
||||
+ size_t charge,
|
||||
+ rocksdb:Handle** handle = nullptr,
|
||||
+ Rocksdb::Priority priority = Rocksdb::Priority::LOW)
|
||||
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key,
|
||||
+ const rocksdb::CacheItemHelper* helper = nullptr,
|
||||
+ rocksdb::CreateContext* create_context = nullptr,
|
||||
+ rocksdb::Priority priority = rocksdb::Priority::LOW,
|
||||
+ bool wait = true,
|
||||
+ rocksdb::Statistics* stats = nullptr);
|
||||
+
|
||||
virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
|
||||
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
|
||||
virtual void Erase(const rocksdb::Slice& key, uint32_t hash) = 0;
|
||||
@@ -68,8 +77,8 @@
|
||||
virtual const char* Name() const override = 0;
|
||||
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
|
||||
DeleterFn,
|
||||
- rocksdb::Cache::Handle** handle, Priority priority) override;
|
||||
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
|
||||
+ rocksdb::Cache::Handle** handle, Priority priority);
|
||||
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats);
|
||||
virtual bool Ref(rocksdb::Cache::Handle* handle) override;
|
||||
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
|
||||
virtual void* Value(Handle* handle) override = 0;
|
||||
@@ -84,14 +93,17 @@
|
||||
virtual size_t GetPinnedUsage() const override;
|
||||
virtual size_t GetCharge(Handle* handle) const = 0;
|
||||
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
|
||||
- virtual DeleterFn GetDeleter(Handle* handle) const override;
|
||||
+ virtual DeleterFn GetDeleter(Handle* handle) const;
|
||||
#endif
|
||||
virtual void DisownData() override = 0;
|
||||
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
|
||||
+ virtual const rocksdb::CacheItemHelper* GetCacheItemHelper(rocksdb::Cache::Handle* handle) const;
|
||||
virtual void ApplyToAllEntries(
|
||||
- const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
|
||||
- DeleterFn deleter)>& callback,
|
||||
- const ApplyToAllEntriesOptions& opts) override;
|
||||
+ const std::function<void(const rocksdb::Slice& key,
|
||||
+ rocksdb::Cache::ObjectPtr obj,
|
||||
+ size_t charge,
|
||||
+ const rocksdb::CacheItemHelper* helper)>& callback,
|
||||
+ const rocksdb::ApplyToAllEntriesOptions& opts);
|
||||
#else
|
||||
virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
|
||||
bool thread_safe) override;
|
||||
--- ceph-17.2.6/src/kv/RocksDBStore.cc.orig 2023-04-05 11:09:51.000000000 -0400
|
||||
+++ ceph-17.2.6/src/kv/RocksDBStore.cc 2023-04-20 16:19:29.280669881 -0400
|
||||
@@ -903,6 +903,19 @@
|
||||
// base_name - name of column without shard suffix: "-"+number
|
||||
// options - additional options to apply
|
||||
// cf_opt - column family options to update
|
||||
+
|
||||
+rocksdb::Status GetColumnFamilyOptionsFromMap(
|
||||
+ const rocksdb::ColumnFamilyOptions& base_options,
|
||||
+ const std::unordered_map<std::string, std::string>& opts_map,
|
||||
+ rocksdb::ColumnFamilyOptions* new_options, bool input_strings_escaped,
|
||||
+ bool ignore_unknown_options) {
|
||||
+ rocksdb::ConfigOptions config_options;
|
||||
+ config_options.ignore_unknown_options = ignore_unknown_options;
|
||||
+ config_options.input_strings_escaped = input_strings_escaped;
|
||||
+ return rocksdb::GetColumnFamilyOptionsFromMap(config_options, base_options, opts_map,
|
||||
+ new_options);
|
||||
+}
|
||||
+
|
||||
int RocksDBStore::update_column_family_options(const std::string& base_name,
|
||||
const std::string& more_options,
|
||||
rocksdb::ColumnFamilyOptions* cf_opt)
|
||||
@@ -916,7 +929,7 @@
|
||||
<< " options=" << more_options << dendl;
|
||||
return r;
|
||||
}
|
||||
- status = rocksdb::GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt);
|
||||
+ status = GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt, false, false);
|
||||
if (!status.ok()) {
|
||||
dout(5) << __func__ << " invalid column family optionsp; column family="
|
||||
<< base_name << " options=" << more_options << dendl;
|
||||
@@ -937,6 +950,20 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+rocksdb::Status GetBlockBasedTableOptionsFromMap(
|
||||
+ const rocksdb::BlockBasedTableOptions& table_options,
|
||||
+ const std::unordered_map<std::string, std::string>& opts_map,
|
||||
+ rocksdb::BlockBasedTableOptions* new_table_options, bool input_strings_escaped,
|
||||
+ bool ignore_unknown_options) {
|
||||
+ rocksdb::ConfigOptions config_options;
|
||||
+ config_options.input_strings_escaped = input_strings_escaped;
|
||||
+ config_options.ignore_unknown_options = ignore_unknown_options;
|
||||
+ config_options.invoke_prepare_options = false;
|
||||
+
|
||||
+ return rocksdb::GetBlockBasedTableOptionsFromMap(config_options, table_options,
|
||||
+ opts_map, new_table_options);
|
||||
+}
|
||||
+
|
||||
int RocksDBStore::apply_block_cache_options(const std::string& column_name,
|
||||
const std::string& block_cache_opt,
|
||||
rocksdb::ColumnFamilyOptions* cf_opt)
|
||||
@@ -981,7 +1008,7 @@
|
||||
}
|
||||
|
||||
rocksdb::BlockBasedTableOptions column_bbt_opts;
|
||||
- status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts);
|
||||
+ status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts, false, false);
|
||||
if (!status.ok()) {
|
||||
dout(5) << __func__ << " invalid block cache options; column=" << column_name
|
||||
<< " options=" << block_cache_opt << dendl;
|
||||
--- ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h.orig 2023-04-21 10:11:00.180387609 -0400
|
||||
+++ ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h 2023-04-21 10:17:15.527816193 -0400
|
||||
@@ -121,7 +121,7 @@
|
||||
void Free() {
|
||||
ceph_assert((refs == 1 && InCache()) || (refs == 0 && !InCache()));
|
||||
if (deleter) {
|
||||
- (*deleter)(key(), value);
|
||||
+ (*deleter)(this, nullptr);
|
||||
}
|
||||
delete[] key_data;
|
||||
delete this;
|
||||
@@ -1,61 +0,0 @@
|
||||
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc.orig 2023-03-14 18:46:02.037195570 -0400
|
||||
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc 2023-03-14 18:55:14.446438244 -0400
|
||||
@@ -39,11 +39,13 @@
|
||||
const auto& value = header->value();
|
||||
|
||||
if (field == beast::http::field::content_length) {
|
||||
- env.set("CONTENT_LENGTH", value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set("CONTENT_LENGTH", scratch.c_str());
|
||||
continue;
|
||||
}
|
||||
if (field == beast::http::field::content_type) {
|
||||
- env.set("CONTENT_TYPE", value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set("CONTENT_TYPE", scratch.c_str());
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -62,26 +64,37 @@
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
- env.set(buf, value.to_string());
|
||||
+ std::string scratch{value.data(), value.size()};
|
||||
+ env.set(buf, scratch.c_str());
|
||||
}
|
||||
|
||||
int major = request.version() / 10;
|
||||
int minor = request.version() % 10;
|
||||
env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
|
||||
|
||||
- env.set("REQUEST_METHOD", request.method_string().to_string());
|
||||
+ {
|
||||
+ std::string scratch {request.method_string().data(),request.method_string().size()};
|
||||
+ env.set("REQUEST_METHOD", scratch.c_str());
|
||||
+ }
|
||||
|
||||
// split uri from query
|
||||
auto uri = request.target();
|
||||
auto pos = uri.find('?');
|
||||
if (pos != uri.npos) {
|
||||
auto query = uri.substr(pos + 1);
|
||||
- env.set("QUERY_STRING", query.to_string());
|
||||
+ std::string scratch{query.data(), query.size()};
|
||||
+ env.set("QUERY_STRING", scratch.c_str());
|
||||
uri = uri.substr(0, pos);
|
||||
}
|
||||
- env.set("SCRIPT_URI", uri.to_string());
|
||||
+ {
|
||||
+ std::string scratch {uri.data(), uri.size()};
|
||||
+ env.set("SCRIPT_URI", scratch.c_str());
|
||||
+ }
|
||||
|
||||
- env.set("REQUEST_URI", request.target().to_string());
|
||||
+ {
|
||||
+ std::string scratch {request.target().data(), request.target().size()};
|
||||
+ env.set("REQUEST_URI", scratch.c_str());
|
||||
+ }
|
||||
|
||||
char port_buf[16];
|
||||
snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
|
||||
@@ -0,0 +1,41 @@
|
||||
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; \
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- ceph-18.2.4/src/include/rados/rgw_file.h.orig 2024-09-23 12:05:39.942703570 -0400
|
||||
+++ ceph-18.2.4/src/include/rados/rgw_file.h 2024-09-23 12:05:55.800441732 -0400
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#define LIBRGW_FILE_VER_MAJOR 1
|
||||
#define LIBRGW_FILE_VER_MINOR 2
|
||||
-#define LIBRGW_FILE_VER_EXTRA 0
|
||||
+#define LIBRGW_FILE_VER_EXTRA 1
|
||||
|
||||
#define LIBRGW_FILE_VERSION(maj, min, extra) ((maj << 16) + (min << 8) + extra)
|
||||
#define LIBRGW_FILE_VERSION_CODE LIBRGW_FILE_VERSION(LIBRGW_FILE_VER_MAJOR, LIBRGW_FILE_VER_MINOR, LIBRGW_FILE_VER_EXTRA)
|
||||
@@ -1,14 +0,0 @@
|
||||
--- ceph-18.2.4/CMakeLists.txt.orig 2025-04-08 12:58:08.231622137 -0400
|
||||
+++ ceph-18.2.4/CMakeLists.txt 2025-04-08 12:58:17.021471996 -0400
|
||||
@@ -739,11 +739,3 @@
|
||||
option(WITH_GRAFANA "install grafana dashboards" OFF)
|
||||
add_subdirectory(monitoring/ceph-mixin)
|
||||
|
||||
-include(CTags)
|
||||
-option(CTAG_EXCLUDES "Exclude files/directories when running ctag.")
|
||||
-add_tags(ctags
|
||||
- SRC_DIR src
|
||||
- TAG_FILE tags
|
||||
- EXCLUDE_OPTS ${CTAG_EXCLUDES}
|
||||
- EXCLUDES "*.js" "*.css" ".tox" "python-common/build")
|
||||
-add_custom_target(tags DEPENDS ctags)
|
||||
@@ -0,0 +1,19 @@
|
||||
--- 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;
|
||||
}
|
||||
|
||||
+// FIXME
|
||||
+// Removed in Python 3.13 API, but kept for the stable ABI
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
+PyAPI_FUNC(void) PySys_SetPath(const wchar_t *);
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
int PyModule::load(PyThreadState *pMainThreadState)
|
||||
{
|
||||
ceph_assert(pMainThreadState != nullptr);
|
||||
@@ -0,0 +1,15 @@
|
||||
--- ceph-19.1.0/src/common/crc32c_ppc_asm.S.orig 2024-07-10 10:55:06.255480790 -0400
|
||||
+++ ceph-19.1.0/src/common/crc32c_ppc_asm.S 2024-07-10 12:53:42.844075490 -0400
|
||||
@@ -54,11 +54,8 @@
|
||||
/* byte reverse permute constant */
|
||||
.octa 0x0F0E0D0C0B0A09080706050403020100
|
||||
|
||||
-#ifdef CRC32_CONSTANTS_HEADER
|
||||
-#include CRC32_CONSTANTS_HEADER
|
||||
-#else
|
||||
+#define __ASSEMBLY__
|
||||
#include "crc32c_ppc_constants.h"
|
||||
-#endif
|
||||
|
||||
.text
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
--- ceph-19.1.0/src/cpp_redis/CMakeLists.txt.orig 2024-07-11 15:16:22.487082035 -0400
|
||||
+++ ceph-19.1.0/src/cpp_redis/CMakeLists.txt 2024-07-11 15:17:57.226534456 -0400
|
||||
@@ -174,6 +174,7 @@
|
||||
set_target_properties(${PROJECT} PROPERTIES COMPILE_DEFINITIONS "__CPP_REDIS_USE_CUSTOM_TCP_CLIENT=${USE_CUSTOM_TCP_CLIENT}")
|
||||
endif(USE_CUSTOM_TCP_CLIENT)
|
||||
|
||||
+install(TARGETS ${PROJECT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/ceph)
|
||||
|
||||
###
|
||||
# examples
|
||||
--- ceph-19.1.0/src/cpp_redis/tacopie/CMakeLists.txt.orig 2024-01-30 21:47:59.000000000 -0500
|
||||
+++ ceph-19.1.0/src/cpp_redis/tacopie/CMakeLists.txt 2024-07-12 07:37:23.584654640 -0400
|
||||
@@ -162,6 +162,8 @@
|
||||
ENDIF(SELECT_TIMEOUT)
|
||||
|
||||
|
||||
+install(TARGETS ${PROJECT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/ceph)
|
||||
+
|
||||
###
|
||||
# examples
|
||||
###
|
||||
@@ -0,0 +1,28 @@
|
||||
--- ceph-19.1.0/src/common/crc32c_ppc_fast_zero_asm.S.orig 2024-07-26 07:18:50.733484175 -0400
|
||||
+++ ceph-19.1.0/src/common/crc32c_ppc_fast_zero_asm.S 2024-07-26 07:17:48.449531183 -0400
|
||||
@@ -45,8 +45,10 @@
|
||||
|
||||
/* unsigned int barrett_reduction(unsigned long val) */
|
||||
FUNC_START(barrett_reduction)
|
||||
- lis r4,.constants@ha
|
||||
- la r4,.constants@l(r4)
|
||||
+/* lis r4,.constants@ha */
|
||||
+/* la r4,.constants@l(r4) */
|
||||
+ addis r4,r4,.constants@toc@ha
|
||||
+ addi r4,r4,.constants@toc@l
|
||||
|
||||
li r5,16
|
||||
vxor v1,v1,v1 /* zero v1 */
|
||||
@@ -83,8 +85,10 @@
|
||||
|
||||
/* unsigned int barrett_reduction_reflected(unsigned long val) */
|
||||
FUNC_START(barrett_reduction_reflected)
|
||||
- lis r4,.bit_reflected_constants@ha
|
||||
- la r4,.bit_reflected_constants@l(r4)
|
||||
+/* lis r4,.bit_reflected_constants@ha */
|
||||
+/* la r4,.bit_reflected_constants@l(r4) */
|
||||
+ addis r4,r4,.bit_reflected_constants@toc@ha
|
||||
+ addi r4,r4,.bit_reflected_constants@toc@l
|
||||
|
||||
li r5,16
|
||||
vxor v1,v1,v1 /* zero v1 */
|
||||
@@ -0,0 +1,55 @@
|
||||
diff --git a/src/common/openssl_opts_handler.cc b/src/common/openssl_opts_handler.cc
|
||||
index 81d0c4786..d9866f197 100644
|
||||
--- a/src/common/openssl_opts_handler.cc
|
||||
+++ b/src/common/openssl_opts_handler.cc
|
||||
@@ -16,7 +16,10 @@
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/conf.h>
|
||||
+#include <openssl/err.h>
|
||||
+#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
+#endif
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
@@ -116,11 +119,13 @@ void load_module(const string &engine_conf)
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
|
||||
+#ifndef OPENSSL_NO_ENGINE
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
ENGINE_load_builtin_engines();
|
||||
#pragma clang diagnostic pop
|
||||
#pragma GCC diagnostic pop
|
||||
+#endif
|
||||
|
||||
if (CONF_modules_load(
|
||||
conf, nullptr,
|
||||
diff --git a/src/crypto/openssl/openssl_crypto_accel.cc b/src/crypto/openssl/openssl_crypto_accel.cc
|
||||
index f99844a38..4944205dd 100644
|
||||
--- a/src/crypto/openssl/openssl_crypto_accel.cc
|
||||
+++ b/src/crypto/openssl/openssl_crypto_accel.cc
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
#include "crypto/openssl/openssl_crypto_accel.h"
|
||||
#include <openssl/evp.h>
|
||||
-#include <openssl/engine.h>
|
||||
#include "common/debug.h"
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
diff --git a/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c b/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
|
||||
index fea9e6f98..c7eddb20b 100644
|
||||
--- a/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
|
||||
+++ b/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/civetweb.c
|
||||
@@ -1744,7 +1744,9 @@ typedef struct SSL_CTX SSL_CTX;
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/dh.h>
|
||||
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
|
||||
#include <openssl/engine.h>
|
||||
+#endif
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/pem.h>
|
||||
@@ -0,0 +1,16 @@
|
||||
--- ceph-19.2.0/src/mds/CMakeLists.txt.orig 2024-12-20 17:15:47.632569537 -0500
|
||||
+++ ceph-19.2.0/src/mds/CMakeLists.txt 2024-12-20 17:16:48.945481957 -0500
|
||||
@@ -45,12 +45,11 @@
|
||||
QuiesceDbManager.cc
|
||||
QuiesceAgent.cc
|
||||
MDSRankQuiesce.cc
|
||||
- BoostUrlImpl.cc
|
||||
${CMAKE_SOURCE_DIR}/src/common/TrackedOp.cc
|
||||
${CMAKE_SOURCE_DIR}/src/common/MemoryModel.cc
|
||||
${CMAKE_SOURCE_DIR}/src/osdc/Journaler.cc
|
||||
${CMAKE_SOURCE_DIR}/src/mgr/MDSPerfMetricTypes.cc)
|
||||
add_library(mds STATIC ${mds_srcs})
|
||||
target_link_libraries(mds PRIVATE
|
||||
- heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
|
||||
+ boost_url heap_profiler cpu_profiler osdc ${LUA_LIBRARIES})
|
||||
target_include_directories(mds PRIVATE "${LUA_INCLUDE_DIR}")
|
||||
@@ -0,0 +1,20 @@
|
||||
--- ceph-19.2.0/src/rocksdb/db/blob/blob_file_meta.h.orig 2025-01-16 08:16:41.762758595 -0500
|
||||
+++ ceph-19.2.0/src/rocksdb/db/blob/blob_file_meta.h 2025-01-16 08:17:37.172784779 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <unordered_set>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
|
||||
--- ceph-19.2.0/src/rocksdb/include/rocksdb/trace_record.h.orig 2025-01-16 09:04:19.196962397 -0500
|
||||
+++ ceph-19.2.0/src/rocksdb/include/rocksdb/trace_record.h 2025-01-16 09:04:33.885701684 -0500
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
+#include <cstdint>
|
||||
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
#include "rocksdb/slice.h"
|
||||
@@ -0,0 +1,257 @@
|
||||
--- ceph-19.2.0/src/rgw/driver/posix/zpp_bits.h.orig 2024-09-18 12:27:51.000000000 -0400
|
||||
+++ ceph-19.2.0/src/rgw/driver/posix/zpp_bits.h 2025-01-16 14:58:48.471438398 -0500
|
||||
@@ -2687,8 +2687,12 @@
|
||||
{
|
||||
using type = std::remove_cvref_t<decltype(container)>;
|
||||
using value_type = typename type::value_type;
|
||||
- constexpr auto is_const = std::is_const_v<
|
||||
- std::remove_reference_t<decltype(container[0])>>;
|
||||
+ constexpr auto is_const =
|
||||
+ std::is_const_v<std::remove_reference_t<value_type>> ||
|
||||
+ requires {
|
||||
+ requires std::is_const_v<
|
||||
+ std::remove_reference_t<decltype(container[0])>>;
|
||||
+ };
|
||||
|
||||
if constexpr (!std::is_void_v<SizeType> &&
|
||||
(requires(type container) { container.resize(1); } ||
|
||||
@@ -2827,9 +2831,7 @@
|
||||
if constexpr (requires { typename type::mapped_type; }) {
|
||||
using value_type = std::pair<typename type::key_type,
|
||||
typename type::mapped_type>;
|
||||
- std::aligned_storage_t<sizeof(value_type),
|
||||
- alignof(value_type)>
|
||||
- storage;
|
||||
+ alignas(value_type) std::byte storage[sizeof(value_type)];
|
||||
|
||||
auto object = access::placement_new<value_type>(
|
||||
std::addressof(storage));
|
||||
@@ -2843,9 +2845,7 @@
|
||||
} else {
|
||||
using value_type = typename type::value_type;
|
||||
|
||||
- std::aligned_storage_t<sizeof(value_type),
|
||||
- alignof(value_type)>
|
||||
- storage;
|
||||
+ alignas(value_type) std::byte storage[sizeof(value_type)];
|
||||
|
||||
auto object = access::placement_new<value_type>(
|
||||
std::addressof(storage));
|
||||
@@ -2903,8 +2903,7 @@
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
- std::aligned_storage_t<sizeof(value_type), alignof(value_type)>
|
||||
- storage;
|
||||
+ alignas(value_type) std::byte storage[sizeof(value_type)];
|
||||
|
||||
auto object =
|
||||
access::placement_new<value_type>(std::addressof(storage));
|
||||
@@ -2947,9 +2946,7 @@
|
||||
}
|
||||
return serialize_one(*std::get_if<element_type>(&variant));
|
||||
} else {
|
||||
- std::aligned_storage_t<sizeof(element_type),
|
||||
- alignof(element_type)>
|
||||
- storage;
|
||||
+ alignas(element_type) std::byte storage[sizeof(element_type)];
|
||||
|
||||
auto object = access::placement_new<element_type>(
|
||||
std::addressof(storage));
|
||||
@@ -2996,8 +2993,7 @@
|
||||
return self.serialize_one(
|
||||
*std::get_if<Types>(&variant));
|
||||
} else {
|
||||
- std::aligned_storage_t<sizeof(Types), alignof(Types)>
|
||||
- storage;
|
||||
+ alignas(Types) std::byte storage[sizeof(Types)];
|
||||
|
||||
auto object = access::placement_new<Types>(
|
||||
std::addressof(storage));
|
||||
@@ -3008,6 +3004,7 @@
|
||||
return result;
|
||||
}
|
||||
variant = std::move(*object);
|
||||
+ return errc{};
|
||||
}
|
||||
}...};
|
||||
|
||||
@@ -3307,7 +3304,7 @@
|
||||
ZPP_BITS_INLINE constexpr static auto serialize(auto & serializer,
|
||||
auto & self)
|
||||
{
|
||||
- return serializer.template serialize_one(self.variant, self.id);
|
||||
+ return serializer.serialize_one(self.variant, self.id);
|
||||
}
|
||||
|
||||
Variant & variant;
|
||||
@@ -3448,13 +3445,14 @@
|
||||
}
|
||||
|
||||
constexpr explicit value_or_errc(error_type error) :
|
||||
- m_error(std::forward<decltype(error)>(error))
|
||||
+ m_error(std::forward<decltype(error)>(error)),
|
||||
+ m_failure(true)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr value_or_errc(value_or_errc && other) noexcept
|
||||
{
|
||||
- if (other.is_value()) {
|
||||
+ if (other.success()) {
|
||||
if constexpr (!std::is_void_v<Type>) {
|
||||
if constexpr (!std::is_reference_v<Type>) {
|
||||
::new (std::addressof(m_return_value))
|
||||
@@ -3752,16 +3750,16 @@
|
||||
requires(decltype(in.remaining_data()) & data) {
|
||||
(context.*Function)(data);
|
||||
}) {
|
||||
- struct _
|
||||
+ struct guard
|
||||
{
|
||||
decltype(in) archive;
|
||||
decltype(in.remaining_data()) data;
|
||||
- constexpr ~_()
|
||||
+ constexpr ~guard()
|
||||
{
|
||||
archive.position() += data.size();
|
||||
}
|
||||
- } _{in, in.remaining_data()};
|
||||
- return (context.*Function)(_.data);
|
||||
+ } guard{in, in.remaining_data()};
|
||||
+ return (context.*Function)(guard.data);
|
||||
} else {
|
||||
return (context.*Function)();
|
||||
}
|
||||
@@ -3776,16 +3774,16 @@
|
||||
requires(decltype(in.remaining_data()) & data) {
|
||||
Function(data);
|
||||
}) {
|
||||
- struct _
|
||||
+ struct guard
|
||||
{
|
||||
decltype(in) archive;
|
||||
decltype(in.remaining_data()) data;
|
||||
- constexpr ~_()
|
||||
+ constexpr ~guard()
|
||||
{
|
||||
archive.position() += data.size();
|
||||
}
|
||||
- } _{in, in.remaining_data()};
|
||||
- return Function(_.data);
|
||||
+ } guard{in, in.remaining_data()};
|
||||
+ return Function(guard.data);
|
||||
} else {
|
||||
return Function();
|
||||
}
|
||||
@@ -5029,9 +5027,7 @@
|
||||
serialize use();
|
||||
};
|
||||
|
||||
- std::aligned_storage_t<sizeof(value_type),
|
||||
- alignof(value_type)>
|
||||
- storage;
|
||||
+ alignas(value_type) std::byte storage[sizeof(value_type)];
|
||||
|
||||
auto object =
|
||||
access::placement_new<value_type>(std::addressof(storage));
|
||||
@@ -5111,9 +5107,7 @@
|
||||
return errc{};
|
||||
}
|
||||
} else {
|
||||
- std::aligned_storage_t<sizeof(value_type),
|
||||
- alignof(value_type)>
|
||||
- storage;
|
||||
+ alignas(value_type) std::byte storage[sizeof(value_type)];
|
||||
|
||||
auto object = access::placement_new<value_type>(
|
||||
std::addressof(storage));
|
||||
@@ -5382,47 +5376,47 @@
|
||||
};
|
||||
auto align = [](auto v, auto a) { return (v + (a - 1)) / a * a; };
|
||||
|
||||
- auto h0 = big_endian{0x6a09e667u};
|
||||
- auto h1 = big_endian{0xbb67ae85u};
|
||||
- auto h2 = big_endian{0x3c6ef372u};
|
||||
- auto h3 = big_endian{0xa54ff53au};
|
||||
- auto h4 = big_endian{0x510e527fu};
|
||||
- auto h5 = big_endian{0x9b05688cu};
|
||||
- auto h6 = big_endian{0x1f83d9abu};
|
||||
- auto h7 = big_endian{0x5be0cd19u};
|
||||
-
|
||||
- std::array k{big_endian{0x428a2f98u}, big_endian{0x71374491u},
|
||||
- big_endian{0xb5c0fbcfu}, big_endian{0xe9b5dba5u},
|
||||
- big_endian{0x3956c25bu}, big_endian{0x59f111f1u},
|
||||
- big_endian{0x923f82a4u}, big_endian{0xab1c5ed5u},
|
||||
- big_endian{0xd807aa98u}, big_endian{0x12835b01u},
|
||||
- big_endian{0x243185beu}, big_endian{0x550c7dc3u},
|
||||
- big_endian{0x72be5d74u}, big_endian{0x80deb1feu},
|
||||
- big_endian{0x9bdc06a7u}, big_endian{0xc19bf174u},
|
||||
- big_endian{0xe49b69c1u}, big_endian{0xefbe4786u},
|
||||
- big_endian{0x0fc19dc6u}, big_endian{0x240ca1ccu},
|
||||
- big_endian{0x2de92c6fu}, big_endian{0x4a7484aau},
|
||||
- big_endian{0x5cb0a9dcu}, big_endian{0x76f988dau},
|
||||
- big_endian{0x983e5152u}, big_endian{0xa831c66du},
|
||||
- big_endian{0xb00327c8u}, big_endian{0xbf597fc7u},
|
||||
- big_endian{0xc6e00bf3u}, big_endian{0xd5a79147u},
|
||||
- big_endian{0x06ca6351u}, big_endian{0x14292967u},
|
||||
- big_endian{0x27b70a85u}, big_endian{0x2e1b2138u},
|
||||
- big_endian{0x4d2c6dfcu}, big_endian{0x53380d13u},
|
||||
- big_endian{0x650a7354u}, big_endian{0x766a0abbu},
|
||||
- big_endian{0x81c2c92eu}, big_endian{0x92722c85u},
|
||||
- big_endian{0xa2bfe8a1u}, big_endian{0xa81a664bu},
|
||||
- big_endian{0xc24b8b70u}, big_endian{0xc76c51a3u},
|
||||
- big_endian{0xd192e819u}, big_endian{0xd6990624u},
|
||||
- big_endian{0xf40e3585u}, big_endian{0x106aa070u},
|
||||
- big_endian{0x19a4c116u}, big_endian{0x1e376c08u},
|
||||
- big_endian{0x2748774cu}, big_endian{0x34b0bcb5u},
|
||||
- big_endian{0x391c0cb3u}, big_endian{0x4ed8aa4au},
|
||||
- big_endian{0x5b9cca4fu}, big_endian{0x682e6ff3u},
|
||||
- big_endian{0x748f82eeu}, big_endian{0x78a5636fu},
|
||||
- big_endian{0x84c87814u}, big_endian{0x8cc70208u},
|
||||
- big_endian{0x90befffau}, big_endian{0xa4506cebu},
|
||||
- big_endian{0xbef9a3f7u}, big_endian{0xc67178f2u}};
|
||||
+ auto h0 = big_endian{std::uint32_t{0x6a09e667u}};
|
||||
+ auto h1 = big_endian{std::uint32_t{0xbb67ae85u}};
|
||||
+ auto h2 = big_endian{std::uint32_t{0x3c6ef372u}};
|
||||
+ auto h3 = big_endian{std::uint32_t{0xa54ff53au}};
|
||||
+ auto h4 = big_endian{std::uint32_t{0x510e527fu}};
|
||||
+ auto h5 = big_endian{std::uint32_t{0x9b05688cu}};
|
||||
+ auto h6 = big_endian{std::uint32_t{0x1f83d9abu}};
|
||||
+ auto h7 = big_endian{std::uint32_t{0x5be0cd19u}};
|
||||
+
|
||||
+ std::array k{big_endian{std::uint32_t{0x428a2f98u}}, big_endian{std::uint32_t{0x71374491u}},
|
||||
+ big_endian{std::uint32_t{0xb5c0fbcfu}}, big_endian{std::uint32_t{0xe9b5dba5u}},
|
||||
+ big_endian{std::uint32_t{0x3956c25bu}}, big_endian{std::uint32_t{0x59f111f1u}},
|
||||
+ big_endian{std::uint32_t{0x923f82a4u}}, big_endian{std::uint32_t{0xab1c5ed5u}},
|
||||
+ big_endian{std::uint32_t{0xd807aa98u}}, big_endian{std::uint32_t{0x12835b01u}},
|
||||
+ big_endian{std::uint32_t{0x243185beu}}, big_endian{std::uint32_t{0x550c7dc3u}},
|
||||
+ big_endian{std::uint32_t{0x72be5d74u}}, big_endian{std::uint32_t{0x80deb1feu}},
|
||||
+ big_endian{std::uint32_t{0x9bdc06a7u}}, big_endian{std::uint32_t{0xc19bf174u}},
|
||||
+ big_endian{std::uint32_t{0xe49b69c1u}}, big_endian{std::uint32_t{0xefbe4786u}},
|
||||
+ big_endian{std::uint32_t{0x0fc19dc6u}}, big_endian{std::uint32_t{0x240ca1ccu}},
|
||||
+ big_endian{std::uint32_t{0x2de92c6fu}}, big_endian{std::uint32_t{0x4a7484aau}},
|
||||
+ big_endian{std::uint32_t{0x5cb0a9dcu}}, big_endian{std::uint32_t{0x76f988dau}},
|
||||
+ big_endian{std::uint32_t{0x983e5152u}}, big_endian{std::uint32_t{0xa831c66du}},
|
||||
+ big_endian{std::uint32_t{0xb00327c8u}}, big_endian{std::uint32_t{0xbf597fc7u}},
|
||||
+ big_endian{std::uint32_t{0xc6e00bf3u}}, big_endian{std::uint32_t{0xd5a79147u}},
|
||||
+ big_endian{std::uint32_t{0x06ca6351u}}, big_endian{std::uint32_t{0x14292967u}},
|
||||
+ big_endian{std::uint32_t{0x27b70a85u}}, big_endian{std::uint32_t{0x2e1b2138u}},
|
||||
+ big_endian{std::uint32_t{0x4d2c6dfcu}}, big_endian{std::uint32_t{0x53380d13u}},
|
||||
+ big_endian{std::uint32_t{0x650a7354u}}, big_endian{std::uint32_t{0x766a0abbu}},
|
||||
+ big_endian{std::uint32_t{0x81c2c92eu}}, big_endian{std::uint32_t{0x92722c85u}},
|
||||
+ big_endian{std::uint32_t{0xa2bfe8a1u}}, big_endian{std::uint32_t{0xa81a664bu}},
|
||||
+ big_endian{std::uint32_t{0xc24b8b70u}}, big_endian{std::uint32_t{0xc76c51a3u}},
|
||||
+ big_endian{std::uint32_t{0xd192e819u}}, big_endian{std::uint32_t{0xd6990624u}},
|
||||
+ big_endian{std::uint32_t{0xf40e3585u}}, big_endian{std::uint32_t{0x106aa070u}},
|
||||
+ big_endian{std::uint32_t{0x19a4c116u}}, big_endian{std::uint32_t{0x1e376c08u}},
|
||||
+ big_endian{std::uint32_t{0x2748774cu}}, big_endian{std::uint32_t{0x34b0bcb5u}},
|
||||
+ big_endian{std::uint32_t{0x391c0cb3u}}, big_endian{std::uint32_t{0x4ed8aa4au}},
|
||||
+ big_endian{std::uint32_t{0x5b9cca4fu}}, big_endian{std::uint32_t{0x682e6ff3u}},
|
||||
+ big_endian{std::uint32_t{0x748f82eeu}}, big_endian{std::uint32_t{0x78a5636fu}},
|
||||
+ big_endian{std::uint32_t{0x84c87814u}}, big_endian{std::uint32_t{0x8cc70208u}},
|
||||
+ big_endian{std::uint32_t{0x90befffau}}, big_endian{std::uint32_t{0xa4506cebu}},
|
||||
+ big_endian{std::uint32_t{0xbef9a3f7u}}, big_endian{std::uint32_t{0xc67178f2u}}};
|
||||
|
||||
constexpr auto original_message = to_bytes<Object>();
|
||||
constexpr auto chunk_size = 512 / CHAR_BIT;
|
||||
@@ -0,0 +1,42 @@
|
||||
--- ceph-19.2.0/src/googletest/googletest/CMakeLists.txt.orig 2025-01-23 07:43:33.314970694 -0500
|
||||
+++ ceph-19.2.0/src/googletest/googletest/CMakeLists.txt 2025-01-23 07:44:13.529250429 -0500
|
||||
@@ -63,6 +63,8 @@
|
||||
set_up_hermetic_build()
|
||||
endif()
|
||||
|
||||
+option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
|
||||
+
|
||||
# These commands only run if this is the main project
|
||||
if(CMAKE_PROJECT_NAME STREQUAL "gtest" OR CMAKE_PROJECT_NAME STREQUAL "googletest-distribution")
|
||||
|
||||
@@ -126,9 +128,9 @@
|
||||
# are used for other targets, to ensure that gtest can be compiled by a user
|
||||
# aggressive about warnings.
|
||||
cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)
|
||||
-set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
+#set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
|
||||
-set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
+#set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
# If the CMake version supports it, attach header directory information
|
||||
# to the targets for when we are part of a parent build (ie being pulled
|
||||
# in via add_subdirectory() rather than being a standalone build).
|
||||
--- ceph-19.2.0/src/googletest/googlemock/CMakeLists.txt.orig 2025-01-23 07:40:52.399853240 -0500
|
||||
+++ ceph-19.2.0/src/googletest/googlemock/CMakeLists.txt 2025-01-23 07:43:18.466236642 -0500
|
||||
@@ -54,6 +54,7 @@
|
||||
# if they are the same (the default).
|
||||
add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/${gtest_dir}")
|
||||
|
||||
+option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
|
||||
|
||||
# These commands only run if this is the main project
|
||||
if(CMAKE_PROJECT_NAME STREQUAL "gmock" OR CMAKE_PROJECT_NAME STREQUAL "googletest-distribution")
|
||||
@@ -100,7 +101,7 @@
|
||||
else()
|
||||
cxx_library(gmock "${cxx_strict}" src/gmock-all.cc)
|
||||
target_link_libraries(gmock PUBLIC gtest)
|
||||
- set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
+ # set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc)
|
||||
target_link_libraries(gmock_main PUBLIC gmock)
|
||||
set_target_properties(gmock_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ceph-19.2.0/src/tracing/CMakeLists.txt.orig 2025-01-23 17:51:43.874162594 -0500
|
||||
+++ ceph-19.2.0/src/tracing/CMakeLists.txt 2025-01-23 17:54:21.877186735 -0500
|
||||
@@ -6,6 +6,8 @@
|
||||
set(header_dir ${working_dir}/tracing)
|
||||
file(MAKE_DIRECTORY ${header_dir})
|
||||
|
||||
+set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu23")
|
||||
+
|
||||
add_custom_target(tracepoint_libraries)
|
||||
|
||||
file(GLOB tps "*.tp")
|
||||
@@ -0,0 +1,30 @@
|
||||
--- ceph-19.2.0/src/test/neorados/common_tests.h.orig 2024-09-18 12:27:51.000000000 -0400
|
||||
+++ ceph-19.2.0/src/test/neorados/common_tests.h 2025-01-26 19:31:32.545762972 -0500
|
||||
@@ -47,6 +47,18 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
+#if !defined(GTEST_DISALLOW_COPY_AND_ASSIGN_)
|
||||
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
|
||||
+ type(type const&) = delete; \
|
||||
+ type& operator=(type const&) = delete
|
||||
+#endif
|
||||
+
|
||||
+#if !defined(GTEST_DISALLOW_MOVE_AND_ASSIGN_)
|
||||
+#define GTEST_DISALLOW_MOVE_AND_ASSIGN_(type) \
|
||||
+ type(type&&) noexcept = delete; \
|
||||
+ type& operator=(type&&) noexcept = delete
|
||||
+#endif
|
||||
+
|
||||
/// \file test/neorados/common_tests.h
|
||||
///
|
||||
/// \brief Tools for testing neorados code
|
||||
@@ -398,7 +410,7 @@
|
||||
\
|
||||
private: \
|
||||
boost::asio::awaitable<void> CoTestBody() override; \
|
||||
- static ::testing::TestInfo *const test_info_ GTEST_ATTRIBUTE_UNUSED_; \
|
||||
+ static ::testing::TestInfo *const test_info_ __attribute__((unused)); \
|
||||
}; \
|
||||
\
|
||||
::testing::TestInfo *const GTEST_TEST_CLASS_NAME_(test_suite_name, \
|
||||
@@ -0,0 +1,37 @@
|
||||
From 8c78a22d2cf69892570f635735d9735169b64a75 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Sabaini <peter.sabaini@canonical.com>
|
||||
Date: Wed, 11 Sep 2024 16:56:50 +0200
|
||||
Subject: [PATCH] ceph-volume: fix importlib.metadata compat
|
||||
|
||||
The importlib.metadata library removed older shims in releases >5.0.0
|
||||
where EntryPoints objects use .select() instead of dict-like access.
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/68032
|
||||
|
||||
Signed-off-by: Peter Sabaini <peter.sabaini@canonical.com>
|
||||
---
|
||||
src/ceph-volume/ceph_volume/main.py | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/ceph-volume/ceph_volume/main.py b/src/ceph-volume/ceph_volume/main.py
|
||||
index f8eca65ec497c..4f27f429e89e2 100644
|
||||
--- a/src/ceph-volume/ceph_volume/main.py
|
||||
+++ b/src/ceph-volume/ceph_volume/main.py
|
||||
@@ -11,8 +11,16 @@
|
||||
from importlib.metadata import entry_points
|
||||
|
||||
def get_entry_points(group: str): # type: ignore
|
||||
- return entry_points().get(group, []) # type: ignore
|
||||
+ eps = entry_points()
|
||||
+ if hasattr(eps, 'select'):
|
||||
+ # New importlib.metadata uses .select()
|
||||
+ return eps.select(group=group)
|
||||
+ else:
|
||||
+ # Fallback to older EntryPoints that returns dicts
|
||||
+ return eps.get(group, []) # type: ignore
|
||||
+
|
||||
except ImportError:
|
||||
+ # Fallback to `pkg_resources` for older versions
|
||||
from pkg_resources import iter_entry_points as entry_points # type: ignore
|
||||
|
||||
def get_entry_points(group: str): # type: ignore
|
||||
@@ -0,0 +1,53 @@
|
||||
From 5924df771f850c249396a37a62f97ac242bf2f96 Mon Sep 17 00:00:00 2001
|
||||
From: Hector Martin <marcan@marcan.st>
|
||||
Date: Wed, 20 Aug 2025 13:34:08 +0900
|
||||
Subject: [PATCH 1/2] mgr/dashboard: Make saml2 robust against module load
|
||||
errors
|
||||
|
||||
Loading saml2 can fail due to issues with the xmlsec package (possibly
|
||||
subinterpreter related):
|
||||
|
||||
File "/usr/share/ceph/mgr/dashboard/controllers/saml2.py", line 6, in <module>
|
||||
from onelogin.saml2.auth import OneLogin_Saml2_Auth
|
||||
File "/lib/python3.13/site-packages/onelogin/saml2/auth.py", line 12, in <module>
|
||||
import xmlsec
|
||||
xmlsec.Error: (100, 'lxml & xmlsec libxml2 library version mismatch')
|
||||
|
||||
Instead of taking down the entire dashboard module, treat this exception
|
||||
like a missing saml2 package.
|
||||
|
||||
Signed-off-by: Hector Martin <marcan@marcan.st>
|
||||
---
|
||||
src/pybind/mgr/dashboard/controllers/saml2.py | 2 +-
|
||||
src/pybind/mgr/dashboard/services/sso.py | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/controllers/saml2.py b/src/pybind/mgr/dashboard/controllers/saml2.py
|
||||
index c11b18a27bc7..e859f558cdc4 100644
|
||||
--- a/src/pybind/mgr/dashboard/controllers/saml2.py
|
||||
+++ b/src/pybind/mgr/dashboard/controllers/saml2.py
|
||||
@@ -8,7 +8,7 @@ try:
|
||||
from onelogin.saml2.settings import OneLogin_Saml2_Settings
|
||||
|
||||
python_saml_imported = True
|
||||
-except ImportError:
|
||||
+except Exception:
|
||||
python_saml_imported = False
|
||||
|
||||
from .. import mgr
|
||||
diff --git a/src/pybind/mgr/dashboard/services/sso.py b/src/pybind/mgr/dashboard/services/sso.py
|
||||
index 2290e6ea3e15..38910ca4aa34 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/sso.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/sso.py
|
||||
@@ -20,7 +20,7 @@ try:
|
||||
from onelogin.saml2.settings import OneLogin_Saml2_Settings as Saml2Settings
|
||||
|
||||
python_saml_imported = True
|
||||
-except ImportError:
|
||||
+except Exception:
|
||||
python_saml_imported = False
|
||||
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 76af91b516bb31ae0a79f55f315bef2c2105a06e Mon Sep 17 00:00:00 2001
|
||||
From: Nizamudeen A <nia@redhat.com>
|
||||
Date: Thu, 26 Jun 2025 12:55:22 +0530
|
||||
Subject: [PATCH 2/2] mgr/dashboard: catch protobuf error due to mismatch in
|
||||
version
|
||||
|
||||
Signed-off-by: Nizamudeen A <nia@redhat.com>
|
||||
(cherry picked from commit acb0f19c4a50b2ea68f328a61a14a2da06be298b)
|
||||
|
||||
Conflicts:
|
||||
src/pybind/mgr/dashboard/services/nvmeof_client.py
|
||||
- only kept relavant portion applicable for squid
|
||||
---
|
||||
src/pybind/mgr/dashboard/services/nvmeof_client.py | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/pybind/mgr/dashboard/services/nvmeof_client.py b/src/pybind/mgr/dashboard/services/nvmeof_client.py
|
||||
index e0ea6d1e48b3..be2b5edbaa52 100644
|
||||
--- a/src/pybind/mgr/dashboard/services/nvmeof_client.py
|
||||
+++ b/src/pybind/mgr/dashboard/services/nvmeof_client.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+# pylint: disable=unexpected-keyword-arg
|
||||
+
|
||||
import functools
|
||||
import logging
|
||||
from collections.abc import Iterable
|
||||
@@ -9,6 +11,14 @@ from .nvmeof_conf import NvmeofGatewaysConfig
|
||||
logger = logging.getLogger("nvmeof_client")
|
||||
|
||||
try:
|
||||
+ # if the protobuf version is newer than what we generated with
|
||||
+ # proto file import will fail (because of differences between what's
|
||||
+ # available in centos and ubuntu).
|
||||
+ # this "hack" should be removed once we update both the
|
||||
+ # distros; centos and ubuntu.
|
||||
+ import os
|
||||
+ os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python"
|
||||
+
|
||||
import grpc # type: ignore
|
||||
import grpc._channel # type: ignore
|
||||
from google.protobuf.message import Message # type: ignore
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Max R. Carrara" <m.carrara@proxmox.com>
|
||||
Date: Wed, 16 Jul 2025 13:14:39 +0200
|
||||
Subject: [PATCH 58/59] pybind/mgr/restful: provide workaround for PyO3
|
||||
ImportError
|
||||
|
||||
Move the self-signed cert generation into a separate module
|
||||
inside python-common/ceph and run the module in a separate Python
|
||||
process.
|
||||
|
||||
This provides a workaround for the ImportError thrown by PyO3 when
|
||||
the `restful` module is loaded in the context of multiple Python
|
||||
sub-interpreters being present. In particular, the ImportError is
|
||||
thrown by the `crypto` module of the `OpenSSL` package.
|
||||
|
||||
Inspired by an upstream PR [0].
|
||||
|
||||
[0]: https://github.com/ceph/ceph/pull/62951
|
||||
|
||||
Signed-off-by: Max R. Carrara <m.carrara@proxmox.com>
|
||||
---
|
||||
src/pybind/mgr/restful/module.py | 24 +++------
|
||||
src/python-common/ceph/_crypto_wrap.py | 69 ++++++++++++++++++++++++++
|
||||
2 files changed, 76 insertions(+), 17 deletions(-)
|
||||
create mode 100644 src/python-common/ceph/_crypto_wrap.py
|
||||
|
||||
diff --git a/src/pybind/mgr/restful/module.py b/src/pybind/mgr/restful/module.py
|
||||
index 0f8c78e0bd8..7f93c41f1e6 100644
|
||||
--- a/src/pybind/mgr/restful/module.py
|
||||
+++ b/src/pybind/mgr/restful/module.py
|
||||
@@ -7,6 +7,7 @@ import json
|
||||
import time
|
||||
import errno
|
||||
import inspect
|
||||
+import subprocess
|
||||
import tempfile
|
||||
import threading
|
||||
import traceback
|
||||
@@ -19,7 +20,6 @@ from . import context
|
||||
|
||||
from uuid import uuid4
|
||||
from pecan import jsonify, make_app
|
||||
-from OpenSSL import crypto
|
||||
from pecan.rest import RestController
|
||||
from werkzeug.serving import make_server, make_ssl_devcert
|
||||
|
||||
@@ -401,24 +401,14 @@ class Module(MgrModule):
|
||||
|
||||
|
||||
def create_self_signed_cert(self):
|
||||
- # create a key pair
|
||||
- pkey = crypto.PKey()
|
||||
- pkey.generate_key(crypto.TYPE_RSA, 2048)
|
||||
-
|
||||
- # create a self-signed cert
|
||||
- cert = crypto.X509()
|
||||
- cert.get_subject().O = "IT"
|
||||
- cert.get_subject().CN = "ceph-restful"
|
||||
- cert.set_serial_number(int(uuid4()))
|
||||
- cert.gmtime_adj_notBefore(0)
|
||||
- cert.gmtime_adj_notAfter(10*365*24*60*60)
|
||||
- cert.set_issuer(cert.get_subject())
|
||||
- cert.set_pubkey(pkey)
|
||||
- cert.sign(pkey, 'sha512')
|
||||
+ cmd = ["python3", "-m", "ceph._crypto_wrap", "create_self_signed_cert"]
|
||||
+
|
||||
+ response = subprocess.run(cmd, capture_output=True, check=True)
|
||||
+ response_obj = json.loads(response.stdout)
|
||||
|
||||
return (
|
||||
- crypto.dump_certificate(crypto.FILETYPE_PEM, cert),
|
||||
- crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
|
||||
+ response_obj["cert"].encode("utf-8"),
|
||||
+ response_obj["key"].encode("utf-8"),
|
||||
)
|
||||
|
||||
|
||||
diff --git a/src/python-common/ceph/_crypto_wrap.py b/src/python-common/ceph/_crypto_wrap.py
|
||||
new file mode 100644
|
||||
index 00000000000..16a19a5345e
|
||||
--- /dev/null
|
||||
+++ b/src/python-common/ceph/_crypto_wrap.py
|
||||
@@ -0,0 +1,69 @@
|
||||
+"""CLI wrapper for cryptographic functions of the :mod:`restful` module.
|
||||
+
|
||||
+To be called via :func:`subprocess.run()` as a workaround for
|
||||
+:class:`ImportError`s related to PyO3's current lack of sub-interpreter
|
||||
+support.
|
||||
+
|
||||
+Note:
|
||||
+ Since this module is installed as part of the ``ceph`` package,
|
||||
+ it should be called like so::
|
||||
+
|
||||
+ python3 -m ceph._crypto_wrap create_self_signed_cert
|
||||
+"""
|
||||
+
|
||||
+import argparse
|
||||
+import sys
|
||||
+import json
|
||||
+
|
||||
+from argparse import Namespace
|
||||
+from typing import Any
|
||||
+from uuid import uuid4
|
||||
+
|
||||
+from OpenSSL import crypto
|
||||
+
|
||||
+
|
||||
+def _respond(data: dict[str, Any]) -> None:
|
||||
+ json.dump(data, sys.stdout)
|
||||
+ sys.stdout.flush()
|
||||
+
|
||||
+
|
||||
+def create_self_signed_cert(args: Namespace) -> None:
|
||||
+ cert_key_pair = _create_self_signed_cert()
|
||||
+ _respond(cert_key_pair)
|
||||
+
|
||||
+
|
||||
+def _create_self_signed_cert() -> dict[str, str]:
|
||||
+ # create a key pair
|
||||
+ pubkey = crypto.PKey()
|
||||
+ pubkey.generate_key(crypto.TYPE_RSA, 2048)
|
||||
+
|
||||
+ # create a self-signed cert
|
||||
+ cert = crypto.X509()
|
||||
+ cert.get_subject().O = "IT"
|
||||
+ cert.get_subject().CN = "ceph-restful"
|
||||
+ cert.set_serial_number(int(uuid4()))
|
||||
+ cert.gmtime_adj_notBefore(0)
|
||||
+ cert.gmtime_adj_notAfter(10 * 365 * 24 * 60 * 60)
|
||||
+ cert.set_issuer(cert.get_subject())
|
||||
+ cert.set_pubkey(pubkey)
|
||||
+ cert.sign(pubkey, "sha512")
|
||||
+
|
||||
+ return {
|
||||
+ "cert": crypto.dump_certificate(crypto.FILETYPE_PEM, cert).decode(),
|
||||
+ "key": crypto.dump_privatekey(crypto.FILETYPE_PEM, pubkey).decode(),
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+def main() -> None:
|
||||
+ parser = argparse.ArgumentParser(prog="_crypto_wrap.py")
|
||||
+ subparsers = parser.add_subparsers(required=True)
|
||||
+
|
||||
+ parser_cssc = subparsers.add_parser("create_self_signed_cert")
|
||||
+ parser_cssc.set_defaults(func=create_self_signed_cert)
|
||||
+
|
||||
+ args = parser.parse_args()
|
||||
+ args.func(args)
|
||||
+
|
||||
+
|
||||
+if __name__ == "__main__":
|
||||
+ main()
|
||||
@@ -0,0 +1,56 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Max R. Carrara" <m.carrara@proxmox.com>
|
||||
Date: Wed, 16 Jul 2025 16:31:43 +0200
|
||||
Subject: [PATCH 59/59] mgr: fix module import by making NOTIFY_TYPES in py
|
||||
modules optional
|
||||
|
||||
If NOTIFY_TYPES isn't an attribute of the passed class, the Python
|
||||
(sub-)interpreter raises an AttributeError that must be handled or cleared
|
||||
explicitly via the Python C-API. Unfortunately, this isn't done here,
|
||||
which means that the exception sticks around until handled.
|
||||
|
||||
This caused a call to PyModule::load_subclass_of() to fail and
|
||||
incorrectly report the AttributeError as cause.
|
||||
|
||||
Checking whether the class has NOTIFY_TYPES as attribute in the first
|
||||
place fixes this.
|
||||
|
||||
Note that there's an upstream PR [0] that wasn't backported that aimed
|
||||
to fix this, but does so incorrectly, as the exception is still not
|
||||
cleared there. The warnings regarding NOTIFY_TYPES missing also occurs
|
||||
on Reef but doesn't cause any module imports to fail there. As the
|
||||
affected Ceph code has stayed mostly the same between bookworm and
|
||||
trixie releases, this suggests that some behavior between Python 3.11
|
||||
and 3.13 likely changed.
|
||||
|
||||
Either way, avoiding the AttributeError altogether fixes this.
|
||||
|
||||
[0]: https://github.com/ceph/ceph/pull/57106
|
||||
|
||||
Signed-off-by: Max R. Carrara <m.carrara@proxmox.com>
|
||||
---
|
||||
src/mgr/PyModule.cc | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/mgr/PyModule.cc b/src/mgr/PyModule.cc
|
||||
index 084cf3ffc1e..e6fd269dca5 100644
|
||||
--- a/src/mgr/PyModule.cc
|
||||
+++ b/src/mgr/PyModule.cc
|
||||
@@ -513,11 +513,13 @@ int PyModule::register_options(PyObject *cls)
|
||||
|
||||
int PyModule::load_notify_types()
|
||||
{
|
||||
- PyObject *ls = PyObject_GetAttrString(pClass, "NOTIFY_TYPES");
|
||||
- if (ls == nullptr) {
|
||||
- derr << "Module " << get_name() << " has missing NOTIFY_TYPES member" << dendl;
|
||||
- return -EINVAL;
|
||||
+ if (!PyObject_HasAttrString(pClass, "NOTIFY_TYPES")) {
|
||||
+ dout(10) << "Module " << get_name() << " has no NOTIFY_TYPES member" << dendl;
|
||||
+ return 0;
|
||||
}
|
||||
+
|
||||
+ PyObject *ls = PyObject_GetAttrString(pClass, "NOTIFY_TYPES");
|
||||
+
|
||||
if (!PyObject_TypeCheck(ls, &PyList_Type)) {
|
||||
// Relatively easy mistake for human to make, e.g. defining COMMANDS
|
||||
// as a {} instead of a []
|
||||
@@ -1,58 +0,0 @@
|
||||
commit f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed Dec 20 14:16:19 2023 +0100
|
||||
|
||||
tracing: Fix C type errors in librados tracing
|
||||
|
||||
This fixes type errors like this:
|
||||
|
||||
In file included from /usr/include/lttng/tracepoint-event.h:69,
|
||||
from …-build/include/tracing/librados.h:4143,
|
||||
from …/src/tracing/librados.c:6
|
||||
:
|
||||
…-build/include/tracing/librados.h:
|
||||
In function ‘lttng_ust__event_probe__librados___rados_mon_command_exit’:
|
||||
…-build/include/tracing/librados.h:477:9: error: initialization of ‘size_t’ {aka ‘long unsigned int’} from ‘size_t *’ {aka ‘long unsigned int *’} makes integer from pointer without a cast
|
||||
477 | ceph_ctf_integerp(size_t, outslen, outslen)
|
||||
| ^~~~~~~~~~~~~~~~~
|
||||
|
||||
GCC 14 will likely treat these type mismatches as an error
|
||||
and fail the build.
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp
|
||||
index 8b5e78ef15..8e116124b8 100644
|
||||
--- a/src/tracing/librados.tp
|
||||
+++ b/src/tracing/librados.tp
|
||||
@@ -2628,7 +2628,7 @@ TRACEPOINT_EVENT(librados, rados_watch3_enter,
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
@@ -2658,7 +2658,7 @@ TRACEPOINT_EVENT(librados, rados_aio_watch2_enter,
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
ctf_integer_hex(rados_completion_t, completion, completion)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
diff --git a/src/tracing/tracing-common.h b/src/tracing/tracing-common.h
|
||||
index 3e07f9de8e..03449ab588 100644
|
||||
--- a/src/tracing/tracing-common.h
|
||||
+++ b/src/tracing/tracing-common.h
|
||||
@@ -21,7 +21,7 @@
|
||||
// type should be an integer type
|
||||
// val should have type type*
|
||||
#define ceph_ctf_integerp(type, field, val) \
|
||||
- ctf_integer(type, field, (val) == NULL ? 0 : (val)) \
|
||||
+ ctf_integer(type, field, (val) == NULL ? 0 : *(val)) \
|
||||
ctf_integer(uint8_t, field##_isnull, (val) == NULL)
|
||||
|
||||
// val should have type char*
|
||||
@@ -1,178 +0,0 @@
|
||||
commit a49d154f4a8e493baf2296a15c7b5c56cd25e993
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed Dec 20 14:59:19 2023 +0100
|
||||
|
||||
pybind: Fix C type errors in Cython-generated Python bindings
|
||||
|
||||
Several Ceph APIs use bool * types, which correspond to
|
||||
libcpp.bool * types in Cython. The bint type has an incorrect
|
||||
size 4 and cannot be used as a replacement.
|
||||
|
||||
This prevents a compilation failure with future compilers:
|
||||
|
||||
…-build/src/pybind/rbd/rbd.c: In function ‘__pyx_pf_3rbd_3RBD_104namespace_exists’:
|
||||
…-build/src/pybind/rbd/rbd.c:42165:76: error: passing argument 3 of ‘rbd_namespace_exists’ from incompatible pointer type
|
||||
42165 | __pyx_v_ret = rbd_namespace_exists(__pyx_v__ioctx, __pyx_v__name, (&__pyx_v__exists));
|
||||
| ~^~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| int *
|
||||
In file included from …-build/src/pybind/rbd/rbd.c:1268:
|
||||
…/src/include/rbd/librbd.h:1496:45: note: expected ‘_Bool *’ but argument is of type ‘int *’
|
||||
1496 | bool *exists);
|
||||
| ^
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd
|
||||
index 885f7bd46a..bda23bbc47 100644
|
||||
--- a/src/pybind/rbd/c_rbd.pxd
|
||||
+++ b/src/pybind/rbd/c_rbd.pxd
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
+cimport libcpp
|
||||
|
||||
cdef extern from "rados/librados.h":
|
||||
enum:
|
||||
@@ -525,7 +526,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_snap_unprotect(rbd_image_t image, const char *snap_name)
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected)
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists)
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists)
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit)
|
||||
int rbd_snap_set_limit(rbd_image_t image, uint64_t limit)
|
||||
int rbd_snap_get_timestamp(rbd_image_t image, uint64_t snap_id, timespec *timestamp)
|
||||
@@ -711,7 +712,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_namespace_list(rados_ioctx_t io, char *namespace_names,
|
||||
size_t *size)
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists)
|
||||
+ libcpp.bool *exists)
|
||||
|
||||
int rbd_pool_init(rados_ioctx_t, bint force)
|
||||
|
||||
diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi
|
||||
index 11872bd814..364f965fba 100644
|
||||
--- a/src/pybind/rbd/mock_rbd.pxi
|
||||
+++ b/src/pybind/rbd/mock_rbd.pxi
|
||||
@@ -3,6 +3,11 @@
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
enum:
|
||||
_LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD"
|
||||
@@ -637,7 +642,7 @@ cdef nogil:
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected):
|
||||
pass
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists):
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit):
|
||||
pass
|
||||
@@ -896,7 +901,7 @@ cdef nogil:
|
||||
size_t *size):
|
||||
pass
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists):
|
||||
+ libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_pool_init(rados_ioctx_t io, bint force):
|
||||
pass
|
||||
diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
|
||||
index fcb2fb3470..f59ba23f0f 100644
|
||||
--- a/src/pybind/rbd/rbd.pyx
|
||||
+++ b/src/pybind/rbd/rbd.pyx
|
||||
@@ -23,6 +23,7 @@ from libc cimport errno
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from libc.string cimport strdup, memset
|
||||
+cimport libcpp
|
||||
|
||||
try:
|
||||
from collections.abc import Iterable
|
||||
@@ -1935,12 +1936,12 @@ class RBD(object):
|
||||
cdef:
|
||||
rados_ioctx_t _ioctx = convert_ioctx(ioctx)
|
||||
const char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_namespace_exists(_ioctx, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error verifying namespace')
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
def namespace_list(self, ioctx):
|
||||
"""
|
||||
@@ -3679,12 +3680,12 @@ cdef class Image(object):
|
||||
name = cstr(name, 'name')
|
||||
cdef:
|
||||
char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_snap_exists(self.image, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error getting snapshot exists for %s' % self.name)
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
@requires_not_closed
|
||||
def get_snap_limit(self):
|
||||
diff --git a/src/pybind/rgw/mock_rgw.pxi b/src/pybind/rgw/mock_rgw.pxi
|
||||
index ca893a5bb8..806d4df75d 100644
|
||||
--- a/src/pybind/rgw/mock_rgw.pxi
|
||||
+++ b/src/pybind/rgw/mock_rgw.pxi
|
||||
@@ -1,5 +1,10 @@
|
||||
# cython: embedsignature=True
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
ctypedef void* librgw_t
|
||||
|
||||
@@ -111,8 +116,8 @@ cdef nogil:
|
||||
|
||||
int rgw_readdir(rgw_fs *fs,
|
||||
rgw_file_handle *parent_fh, uint64_t *offset,
|
||||
- bint (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
- void *cb_arg, bint *eof, uint32_t flags) except? -9000:
|
||||
+ libcpp.bool (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
+ void *cb_arg, libcpp.bool *eof, uint32_t flags) except? -9000:
|
||||
pass
|
||||
|
||||
int rgw_getattr(rgw_fs *fs,
|
||||
diff --git a/src/pybind/rgw/rgw.pyx b/src/pybind/rgw/rgw.pyx
|
||||
index 9bbcdfff58..d210a70bbb 100644
|
||||
--- a/src/pybind/rgw/rgw.pyx
|
||||
+++ b/src/pybind/rgw/rgw.pyx
|
||||
@@ -7,6 +7,7 @@ from cpython cimport PyObject, ref, exc, array
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from cstat cimport stat
|
||||
+cimport libcpp
|
||||
|
||||
IF BUILD_DOC:
|
||||
include "mock_rgw.pxi"
|
||||
@@ -373,7 +374,7 @@ cdef class LibRGWFS(object):
|
||||
cdef:
|
||||
rgw_file_handle *_dir_handler = <rgw_file_handle*>dir_handler.handler
|
||||
uint64_t _offset = offset
|
||||
- bint _eof
|
||||
+ libcpp.bool _eof
|
||||
uint32_t _flags = flags
|
||||
with nogil:
|
||||
ret = rgw_readdir(self.fs, _dir_handler, &_offset, &readdir_cb,
|
||||
@@ -20,8 +20,8 @@
|
||||
# please read this for explanation of bcond syntax:
|
||||
# https://rpm-software-management.github.io/rpm/manual/conditionalbuilds.html
|
||||
#################################################################################
|
||||
%bcond_without system_boost
|
||||
%bcond_with make_check
|
||||
%bcond_with zbd
|
||||
%bcond_with cmake_verbose_logging
|
||||
%bcond_without ceph_test_package
|
||||
%ifarch s390
|
||||
@@ -98,7 +98,7 @@
|
||||
%else
|
||||
%bcond_without jaeger
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 9
|
||||
%if 0%{?fedora} || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 10
|
||||
# distros that ship cmd2 and/or colorama
|
||||
%bcond_without cephfs_shell
|
||||
%else
|
||||
@@ -114,6 +114,16 @@
|
||||
%bcond_with system_arrow
|
||||
%bcond_with system_utf8proc
|
||||
%endif
|
||||
# qat only supported for intel devices
|
||||
%ifarch x86_64
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||
%bcond_without system_qat
|
||||
%else
|
||||
%bcond_with system_qat
|
||||
%endif
|
||||
%else
|
||||
%bcond_with system_qat
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8
|
||||
%global weak_deps 1
|
||||
%endif
|
||||
@@ -126,6 +136,8 @@
|
||||
%{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0}
|
||||
%endif
|
||||
%endif
|
||||
%bcond_with cephadm_bundling
|
||||
%bcond_without cephadm_pip_deps
|
||||
|
||||
%{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
|
||||
%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
|
||||
@@ -133,6 +145,7 @@
|
||||
%{!?python3_version_nodots: %global python3_version_nodots 3}
|
||||
%{!?python3_version: %global python3_version 3}
|
||||
%{!?gts_prefix: %global gts_prefix gcc-toolset-11}
|
||||
%define _lto_cflags %{nil}
|
||||
|
||||
%if ! 0%{?suse_version}
|
||||
# use multi-threaded xz compression: xz level 7 using ncpus threads
|
||||
@@ -165,15 +178,14 @@
|
||||
# redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler.
|
||||
%undefine _annotated_build
|
||||
%if 0%{?rhel} == 8 && 0%{?enable_devtoolset11:1}
|
||||
%enable_devtoolset11
|
||||
%endif
|
||||
|
||||
#################################################################################
|
||||
# main package definition
|
||||
#################################################################################
|
||||
Name: ceph
|
||||
Version: 18.2.6
|
||||
Release: 1%{?dist}
|
||||
Version: 19.2.3
|
||||
Release: 7%{?dist}
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
Epoch: 2
|
||||
%endif
|
||||
@@ -183,34 +195,46 @@ Epoch: 2
|
||||
%global _epoch_prefix %{?epoch:%{epoch}:}
|
||||
|
||||
Summary: User space components of the Ceph file system
|
||||
License: (LGPLv2+ or LGPLv3) and CC-BY-SA-3.0 and GPLv2 and Boost and BSD and MIT
|
||||
License: LGPL-2.1-or-later AND LGPL-3.0-only AND CC-BY-SA-3.0 AND GPL-2.0-only AND BSL-1.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT
|
||||
%if 0%{?suse_version}
|
||||
Group: System/Filesystems
|
||||
%endif
|
||||
URL: http://ceph.com/
|
||||
Source0: https://download.ceph.com/tarballs/ceph-%{version}.tar.gz
|
||||
#Source0: https://1.chacra.ceph.com/r/ceph/quincy/
|
||||
Patch0001: 0001-src-common-crc32c_intel_fast.patch
|
||||
Patch0003: 0003-src-common-bitstr.h.patch
|
||||
Patch0008: 0008-cmake-modules-Finduring.cmake.patch
|
||||
Patch0010: 0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch
|
||||
Patch0011: 0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch
|
||||
Patch0012: 0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch
|
||||
Patch0016: 0016-src-tracing-patch
|
||||
Patch0017: 0017-gcc-12-omnibus.patch
|
||||
Patch0018: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch
|
||||
Patch0020: 0020-src-arrow-cpp-cmake_modules-ThirdpartyToolchain.cmake.patch
|
||||
Patch0024: 0024-gcc-13.patch
|
||||
Patch0029: 0029-src-rgw-rgw_amqp.cc.patch
|
||||
Patch0030: 0030-src-rgw-rgw_asio_client.cc.patch
|
||||
Patch0032: 0032-cmake-modules-BuildBoost.cmake.patch
|
||||
Patch0033: 0033-boost-asm.patch
|
||||
Patch0034: 0034-src-pybind-rbd-rbd.pyx.patch
|
||||
Patch0035: 0035-src-CMakeLists.txt.patch
|
||||
Patch0037: ceph-c99-1.patch
|
||||
Patch0038: ceph-c99-2.patch
|
||||
Patch0040: 0040-src-include-rados-rgw_file.h.patch
|
||||
Patch0041: 0041-CMakeLists.txt.patch
|
||||
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
|
||||
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: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch
|
||||
Patch: 0024-gcc-13.patch
|
||||
Patch: 0029-src-rgw-rgw_amqp.cc.patch
|
||||
Patch: 0032-cmake-modules-BuildBoost.cmake.patch
|
||||
Patch: 0033-boost-asm.patch
|
||||
Patch: 0034-src-pybind-rbd-rbd.pyx.patch
|
||||
Patch: 0035-src-CMakeLists.txt.patch
|
||||
Patch: 0040-gcc-14.patch
|
||||
Patch: 0041-src-mgr-PyModule.cc.patch
|
||||
Patch: 0043_src_common_crc32c_ppc_asm.S.patch
|
||||
Patch: 0044_src_cpp_redis_CMakeLists.txt.patch
|
||||
Patch: 0045_src-commom-crc32c_ppc_fast_zero_asm.S.patch
|
||||
Patch: 0047-openssl-no-engine.patch
|
||||
Patch: 0048-src-mds-CMakeLists.txt.patch
|
||||
Patch: 0049-src-rocksdb-db-blob-blob_file_meta.h.patch
|
||||
Patch: 0050-src-rgw-driver-posix-zpp_bits.h.patch
|
||||
Patch: 0051-src-googletest-nosharedlibs.patch
|
||||
Patch: 0052-src-tracing.patch
|
||||
Patch: 0053-src-test-neorados-common_tests.h.patch
|
||||
Patch: 0057-src-ceph-volume-ceph-volume-main.py.patch
|
||||
Patch: 0058-mgr-dashboard-Make-saml2-robust-against-module-load-.patch
|
||||
# Fixed in upcoming 19.2.4
|
||||
Patch: 0059-mgr-dashboard-catch-protobuf-error-due-to-mismatch-i.patch
|
||||
|
||||
# Squid fixes from https://git.proxmox.com/?p=ceph.git;a=tree;f=patches
|
||||
# Should be fixed upstream in Ceph 20.
|
||||
Patch: 0158-pybind-mgr-restful-provide-workaround-for-PyO3-Impor.patch
|
||||
Patch: 0159-mgr-fix-module-import-by-making-NOTIFY_TYPES-in-py-m.patch
|
||||
|
||||
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
|
||||
ExcludeArch: i686 armv7hl
|
||||
@@ -226,6 +250,11 @@ Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires(post): binutils
|
||||
%if 0%{?suse_version}
|
||||
Requires(pre): /usr/sbin/useradd
|
||||
Requires(pre): /usr/sbin/groupadd
|
||||
%endif
|
||||
|
||||
%if 0%{with cephfs_java}
|
||||
BuildRequires: java-devel
|
||||
BuildRequires: jpackage-utils
|
||||
@@ -242,12 +271,12 @@ BuildRequires: fuse3-devel
|
||||
BuildRequires: gcc-c++ >= 11
|
||||
%endif
|
||||
%if 0%{?suse_version} == 1500
|
||||
BuildRequires: gcc11-c++
|
||||
BuildRequires: gcc11-c++
|
||||
%endif
|
||||
%if 0%{?rhel} == 8
|
||||
BuildRequires: %{gts_prefix}-gcc-c++
|
||||
BuildRequires: %{gts_prefix}-build
|
||||
BuildRequires: %{gts_prefix}-libatomic-devel
|
||||
BuildRequires: %{gts_prefix}-gcc-c++
|
||||
BuildRequires: %{gts_prefix}-build
|
||||
BuildRequires: %{gts_prefix}-libatomic-devel
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||
BuildRequires: libatomic
|
||||
@@ -281,11 +310,12 @@ BuildRequires: gperftools-devel >= 2.4
|
||||
BuildRequires: libaio-devel
|
||||
BuildRequires: libblkid-devel >= 2.17
|
||||
BuildRequires: cryptsetup-devel
|
||||
BuildRequires: libnbd-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libcap-ng-devel
|
||||
#BuildRequires: fmt-devel >= 6.2.1
|
||||
#%if ( 0%{?fedora} || 0%{?rhel} >= 10 )
|
||||
#%if ( 0%%{?fedora} || 0%%{?rhel} >= 10 )
|
||||
#BuildRequires: rocksdb-devel
|
||||
#Requires: rocksdb
|
||||
#%endif
|
||||
@@ -307,6 +337,7 @@ BuildRequires: python%{python3_pkgversion}
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
BuildRequires: python%{python3_pkgversion}-Cython
|
||||
BuildRequires: python%{python3_pkgversion}-markupsafe
|
||||
BuildRequires: snappy-devel
|
||||
BuildRequires: sqlite-devel
|
||||
BuildRequires: sudo
|
||||
@@ -319,6 +350,7 @@ BuildRequires: xfsprogs-devel
|
||||
BuildRequires: xmlstarlet
|
||||
BuildRequires: nasm
|
||||
BuildRequires: lua-devel
|
||||
BuildRequires: lmdb-devel
|
||||
%if 0%{with seastar} || 0%{with jaeger}
|
||||
BuildRequires: yaml-cpp-devel >= 0.6
|
||||
%endif
|
||||
@@ -329,7 +361,8 @@ BuildRequires: librabbitmq-devel
|
||||
BuildRequires: librdkafka-devel
|
||||
%endif
|
||||
%if 0%{with lua_packages}
|
||||
BuildRequires: %{luarocks_package_name}
|
||||
BuildRequires: lua-devel
|
||||
Requires: %{luarocks_package_name}
|
||||
%endif
|
||||
%if 0%{with make_check}
|
||||
BuildRequires: hostname
|
||||
@@ -345,9 +378,6 @@ BuildRequires: socat
|
||||
BuildRequires: python%{python3_pkgversion}-asyncssh
|
||||
BuildRequires: python%{python3_pkgversion}-natsort
|
||||
%endif
|
||||
%if 0%{with zbd}
|
||||
BuildRequires: libzbd-devel
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: libthrift-devel >= 0.13.0
|
||||
%else
|
||||
@@ -378,8 +408,16 @@ BuildRequires: libpmemobj-devel >= 1.8
|
||||
%if 0%{with system_arrow}
|
||||
BuildRequires: libarrow-devel
|
||||
BuildRequires: parquet-libs-devel
|
||||
%else
|
||||
BuildRequires: xsimd-devel
|
||||
%endif
|
||||
%if 0%{with system_utf8proc}
|
||||
BuildRequires: utf8proc-devel
|
||||
%endif
|
||||
%if 0%{with system_qat}
|
||||
BuildRequires: qatlib-devel
|
||||
BuildRequires: qatzip-devel
|
||||
%endif
|
||||
%if 0%{with seastar}
|
||||
BuildRequires: c-ares-devel
|
||||
BuildRequires: gnutls-devel
|
||||
@@ -388,15 +426,15 @@ BuildRequires: libpciaccess-devel
|
||||
BuildRequires: lksctp-tools-devel
|
||||
BuildRequires: ragel
|
||||
BuildRequires: systemtap-sdt-devel
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 10
|
||||
BuildRequires: libubsan
|
||||
BuildRequires: libasan
|
||||
%endif
|
||||
BuildRequires: protobuf-devel
|
||||
BuildRequires: protobuf-compiler
|
||||
%if 0%{?rhel} == 8
|
||||
BuildRequires: %{gts_prefix}-annobin
|
||||
BuildRequires: %{gts_prefix}-annobin-plugin-gcc
|
||||
BuildRequires: %{gts_prefix}-libubsan-devel
|
||||
BuildRequires: %{gts_prefix}-libasan-devel
|
||||
BuildRequires: %{gts_prefix}-annobin
|
||||
BuildRequires: %{gts_prefix}-annobin-plugin-gcc
|
||||
BuildRequires: %{gts_prefix}-libubsan-devel
|
||||
BuildRequires: %{gts_prefix}-libasan-devel
|
||||
%endif
|
||||
%endif
|
||||
#################################################################################
|
||||
@@ -430,8 +468,11 @@ BuildRequires: jsonnet
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
Requires: systemd
|
||||
%if 0%{with system_boost}
|
||||
BuildRequires: boost-devel
|
||||
BuildRequires: boost-random
|
||||
BuildRequires: boost-url
|
||||
%endif
|
||||
BuildRequires: nss-devel
|
||||
BuildRequires: keyutils-libs-devel
|
||||
BuildRequires: libatomic
|
||||
@@ -569,11 +610,19 @@ Requires: which
|
||||
%if 0%{?weak_deps}
|
||||
Recommends: podman >= 2.0.2
|
||||
%endif
|
||||
%if 0%{with cephadm_bundling}
|
||||
%if 0%{without cephadm_pip_deps}
|
||||
BuildRequires: python%{python3_pkgversion}-jinja2 >= 2.10
|
||||
%endif
|
||||
%else
|
||||
Requires: python%{python3_pkgversion}-jinja2 >= 2.10
|
||||
Requires: python%{python3_pkgversion}-pyyaml
|
||||
%endif
|
||||
%description -n cephadm
|
||||
Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed
|
||||
with systemd and podman.
|
||||
|
||||
%package -n ceph-common
|
||||
%package common
|
||||
Summary: Ceph Common
|
||||
%if 0%{?suse_version}
|
||||
Group: System/Filesystems
|
||||
@@ -600,7 +649,9 @@ Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
|
||||
%if 0%{?suse_version}
|
||||
Requires(pre): pwdutils
|
||||
%endif
|
||||
%description -n ceph-common
|
||||
Provides: group(ceph)
|
||||
Provides: user(ceph)
|
||||
%description common
|
||||
Common utilities to mount and interact with a ceph storage cluster.
|
||||
Comprised of files that are common to Ceph clients and servers.
|
||||
|
||||
@@ -659,12 +710,21 @@ Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: python%{python3_pkgversion}-setuptools
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||
Requires: python%{python3_pkgversion}-grpcio
|
||||
Requires: python%{python3_pkgversion}-grpcio-tools
|
||||
Requires: python%{python3_pkgversion}-xmltodict
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
Requires: python%{python3_pkgversion}-cherrypy
|
||||
Requires: python%{python3_pkgversion}-routes
|
||||
Requires: python%{python3_pkgversion}-werkzeug
|
||||
%if 0%{?weak_deps}
|
||||
Recommends: python%{python3_pkgversion}-saml
|
||||
%if 0%{?fedora} || 0%{?rhel} <= 8
|
||||
Recommends: python%{python3_pkgversion}-grpcio
|
||||
Recommends: python%{python3_pkgversion}-grpcio-tools
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
@@ -690,7 +750,7 @@ Requires: python%{python3_pkgversion}-numpy
|
||||
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 10
|
||||
Requires: python%{python3_pkgversion}-scikit-learn
|
||||
%endif
|
||||
Requires: python3-scipy
|
||||
Requires: python%{python3_pkgversion}-scipy
|
||||
%description mgr-diskprediction-local
|
||||
ceph-mgr-diskprediction-local is a ceph-mgr module that tries to predict
|
||||
disk failures using local algorithms and machine-learning databases.
|
||||
@@ -702,6 +762,7 @@ BuildArch: noarch
|
||||
Group: System/Filesystems
|
||||
%endif
|
||||
Requires: python%{python3_pkgversion}-bcrypt
|
||||
Requires: python%{python3_pkgversion}-packaging
|
||||
Requires: python%{python3_pkgversion}-pecan
|
||||
Requires: python%{python3_pkgversion}-pyOpenSSL
|
||||
Requires: python%{python3_pkgversion}-requests
|
||||
@@ -778,7 +839,7 @@ Summary: Ceph fuse-based client
|
||||
%if 0%{?suse_version}
|
||||
Group: System/Filesystems
|
||||
%endif
|
||||
Requires: fuse3
|
||||
Requires: fuse
|
||||
Requires: python%{python3_pkgversion}
|
||||
%description fuse
|
||||
FUSE based client for Ceph distributed network file system
|
||||
@@ -900,6 +961,9 @@ Provides: ceph-test:/usr/bin/ceph-osdomap-tool
|
||||
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
||||
Requires: sudo
|
||||
Requires: libstoragemgmt
|
||||
%if 0%{with seastar}
|
||||
Requires: protobuf
|
||||
%endif
|
||||
%if 0%{?weak_deps}
|
||||
Recommends: ceph-volume = %{_epoch_prefix}%{version}-%{release}
|
||||
%endif
|
||||
@@ -1333,10 +1397,10 @@ Group: System/Monitoring
|
||||
This package provides a Ceph MIB for SNMP traps.
|
||||
|
||||
%package node-proxy
|
||||
Summary: hw monitoring agent for Ceph
|
||||
BuildArch: noarch
|
||||
Summary: hw monitoring agent for Ceph
|
||||
BuildArch: noarch
|
||||
%if 0%{?suse_version}
|
||||
Group: System/Monitoring
|
||||
Group: System/Monitoring
|
||||
%endif
|
||||
%description node-proxy
|
||||
This package provides a Ceph hardware monitoring agent.
|
||||
@@ -1345,14 +1409,18 @@ This package provides a Ceph hardware monitoring agent.
|
||||
# common
|
||||
#################################################################################
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{version}
|
||||
%autosetup -p1
|
||||
|
||||
# Create two sysusers.d config files
|
||||
cat >ceph.sysusers.conf <<EOF
|
||||
g ceph 167
|
||||
u ceph 167 'Ceph storage service' %{_localstatedir}/lib/ceph -
|
||||
EOF
|
||||
cat >cephadm.sysusers.conf <<EOF
|
||||
u cephadm - 'cephadm user for mgr/cephadm' %{_sharedstatedir}/cephadm /bin/bash
|
||||
EOF
|
||||
|
||||
%build
|
||||
# Disable lto on systems that do not support symver attribute
|
||||
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 for details
|
||||
%if ( 0%{?rhel} && 0%{?rhel} < 9 ) || ( 0%{?suse_version} && 0%{?suse_version} <= 1500 )
|
||||
%define _lto_cflags %{nil}
|
||||
%endif
|
||||
|
||||
%if 0%{with cephfs_java}
|
||||
# Find jni.h
|
||||
@@ -1421,7 +1489,11 @@ env | sort
|
||||
-DWITH_SYSTEM_ROCKSDB:BOOL=OFF \
|
||||
%endif
|
||||
-DWITH_SYSTEM_LIBURING:BOOL=ON \
|
||||
%if 0%{with system_boost}
|
||||
-DWITH_SYSTEM_BOOST:BOOL=ON \
|
||||
%else
|
||||
-DWITH_SYSTEM_BOOST:BOOL=OFF \
|
||||
%endif
|
||||
%if 0%{with cephfs_shell}
|
||||
-DWITH_CEPHFS_SHELL:BOOL=ON \
|
||||
%endif
|
||||
@@ -1443,9 +1515,6 @@ env | sort
|
||||
%if 0%{without lua_packages}
|
||||
-DWITH_RADOSGW_LUA_PACKAGES:BOOL=OFF \
|
||||
%endif
|
||||
%if 0%{with zbd}
|
||||
-DWITH_ZBD:BOOL=ON \
|
||||
%endif
|
||||
%if 0%{with cmake_verbose_logging}
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||
%endif
|
||||
@@ -1475,8 +1544,22 @@ env | sort
|
||||
%endif
|
||||
%if 0%{with system_arrow}
|
||||
-DWITH_SYSTEM_ARROW:BOOL=ON \
|
||||
%else
|
||||
-Dxsimd_SOURCE="SYSTEM" \
|
||||
%endif
|
||||
%if 0%{with system_utf8proc}
|
||||
-DWITH_SYSTEM_UTF8PROC:BOOL=ON \
|
||||
%endif
|
||||
%ifarch x86_64 aarch64
|
||||
%if 0%{with system_qat}
|
||||
-DWITH_SYSTEM_QATLIB:BOOL=ON \
|
||||
-DWITH_SYSTEM_QATZIP:BOOL=ON \
|
||||
%endif
|
||||
%else
|
||||
-DWITH_QATDRV:BOOL=OFF \
|
||||
-DWITH_QATLIB:BOOL=OFF \
|
||||
-DWITH_QATZIP:BOOL=OFF \
|
||||
%endif
|
||||
%if 0%{with ld_mold}
|
||||
-DCMAKE_LINKER=%{_bindir}/ld.mold \
|
||||
%endif
|
||||
@@ -1484,7 +1567,16 @@ env | sort
|
||||
-DWITH_SEASTAR:BOOL=ON \
|
||||
-DWITH_JAEGER:BOOL=OFF \
|
||||
%endif
|
||||
-DWITH_GRAFANA:BOOL=ON
|
||||
-DWITH_GRAFANA:BOOL=ON \
|
||||
%if 0%{with cephadm_bundling}
|
||||
%if 0%{with cephadm_pip_deps}
|
||||
-DCEPHADM_BUNDLED_DEPENDENCIES=pip
|
||||
%else
|
||||
-DCEPHADM_BUNDLED_DEPENDENCIES=rpm
|
||||
%endif
|
||||
%else
|
||||
-DCEPHADM_BUNDLED_DEPENDENCIES=none
|
||||
%endif
|
||||
|
||||
%if %{with cmake_verbose_logging}
|
||||
cat ./%{__cmake_builddir}/CMakeFiles/CMakeOutput.log
|
||||
@@ -1529,6 +1621,9 @@ install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING
|
||||
install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf
|
||||
install -m 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce
|
||||
|
||||
install -m 0644 -D ceph.sysusers.conf %{buildroot}%{_sysusersdir}/ceph.conf
|
||||
install -m 0644 -D cephadm.sysusers.conf %{buildroot}%{_sysusersdir}/cephadm.conf
|
||||
|
||||
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm
|
||||
chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm
|
||||
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh
|
||||
@@ -1574,9 +1669,16 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
|
||||
# prometheus alerts
|
||||
install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml
|
||||
|
||||
# grafana charts
|
||||
install -m 644 -D monitoring/ceph-mixin/dashboards_out/* %{buildroot}/etc/grafana/dashboards/ceph-dashboard/
|
||||
|
||||
# SNMP MIB
|
||||
install -m 644 -D -t %{buildroot}%{_datadir}/snmp/mibs monitoring/snmp/CEPH-MIB.txt
|
||||
|
||||
%if "%{_sbindir}" == "%{_bindir}"
|
||||
mv %{buildroot}%{_exec_prefix}/sbin/ceph-create-keys %{buildroot}%{_bindir}/
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version}
|
||||
# create __pycache__ directories and their contents
|
||||
%py3_compile %{buildroot}%{python3_sitelib}
|
||||
@@ -1619,6 +1721,7 @@ install -m 644 -D -t %{buildroot}%{_datadir}/snmp/mibs monitoring/snmp/CEPH-MIB.
|
||||
%if %{with lttng}
|
||||
%{_libdir}/libos_tp.so*
|
||||
%{_libdir}/libosd_tp.so*
|
||||
%{_libdir}/libmgr_op_tp.so*
|
||||
%endif
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/ceph
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
@@ -1661,34 +1764,25 @@ if [ $1 -eq 1 ] ; then
|
||||
/usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%preun base
|
||||
%if 0%{?suse_version}
|
||||
%service_del_preun ceph.target ceph-crash.service
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
%systemd_preun ceph.target ceph-crash.service
|
||||
%endif
|
||||
|
||||
%postun base
|
||||
%{?ldconfig}
|
||||
%systemd_postun ceph.target
|
||||
|
||||
%pre -n cephadm
|
||||
getent group cephadm >/dev/null || groupadd -r cephadm
|
||||
getent passwd cephadm >/dev/null || useradd -r -g cephadm -s /bin/bash -c "cephadm user for mgr/cephadm" -d %{_sharedstatedir}/cephadm cephadm
|
||||
exit 0
|
||||
|
||||
%if ! 0%{?suse_version}
|
||||
%postun -n cephadm
|
||||
[ $1 -ne 0 ] || userdel cephadm || :
|
||||
%endif
|
||||
|
||||
%files -n cephadm
|
||||
%{_sbindir}/cephadm
|
||||
%{_mandir}/man8/cephadm.8*
|
||||
%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm
|
||||
%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm/.ssh
|
||||
%config(noreplace) %attr(0600,cephadm,cephadm) %{_sharedstatedir}/cephadm/.ssh/authorized_keys
|
||||
%{_sysusersdir}/ceph.conf
|
||||
|
||||
%preun common
|
||||
%if 0%{?suse_version}
|
||||
%service_del_preun ceph.target ceph-crash.service
|
||||
%endif
|
||||
%if 0%{?fedora} || 0%{?rhel}
|
||||
%systemd_preun ceph.target ceph-crash.service
|
||||
%endif
|
||||
|
||||
%files common
|
||||
%dir %{_docdir}/ceph
|
||||
@@ -1743,6 +1837,8 @@ exit 0
|
||||
%{_mandir}/man8/rbd-replay-many.8*
|
||||
%{_mandir}/man8/rbd-replay-prep.8*
|
||||
%{_mandir}/man8/rgw-orphan-list.8*
|
||||
%{_mandir}/man8/rgw-gap-list.8*
|
||||
%{_mandir}/man8/rgw-restore-bucket-index.8*
|
||||
%dir %{_datadir}/ceph/
|
||||
%{_datadir}/ceph/known_hosts_drop.ceph.com
|
||||
%{_datadir}/ceph/id_rsa_drop.ceph.com
|
||||
@@ -1758,14 +1854,11 @@ exit 0
|
||||
%{_udevrulesdir}/50-rbd.rules
|
||||
%attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/
|
||||
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/
|
||||
%{_sysusersdir}/cephadm.conf
|
||||
|
||||
%pre common
|
||||
CEPH_GROUP_ID=167
|
||||
CEPH_USER_ID=167
|
||||
%if 0%{?rhel} || 0%{?fedora}
|
||||
/usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || :
|
||||
/usr/sbin/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || :
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
if ! getent group ceph >/dev/null ; then
|
||||
CEPH_GROUP_ID_OPTION=""
|
||||
@@ -2333,6 +2426,8 @@ fi
|
||||
%{_libdir}/librados.so.*
|
||||
%dir %{_libdir}/ceph
|
||||
%{_libdir}/ceph/libceph-common.so.*
|
||||
%{_libdir}/ceph/libcpp_redis.so*
|
||||
%{_libdir}/ceph/libtacopie.so*
|
||||
%if %{with lttng}
|
||||
%{_libdir}/librados_tp.so.*
|
||||
%endif
|
||||
@@ -2656,27 +2751,98 @@ exit 0
|
||||
%{python3_sitelib}/ceph_node_proxy-*
|
||||
|
||||
%changelog
|
||||
* Mon Apr 21 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.6-1
|
||||
- ceph-18.2.6
|
||||
* Wed Aug 20 2025 Hector Martin <marcan@marcan.st> - 2:19.2.3-7
|
||||
- Work around mgr `restful` module PyO3 failures
|
||||
- Fix NOTIFY_TYPES exceptions during module import (rhbz#2361850)
|
||||
|
||||
* Thu Apr 17 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.5-2
|
||||
- ceph-18.2.5, sync w/ upstream .spec
|
||||
* Wed Aug 20 2025 Hector Martin <marcan@marcan.st> - 2:19.2.3-6
|
||||
- Fix F41 build
|
||||
|
||||
* Fri Apr 11 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.5-1
|
||||
- ceph-18.2.5 GA
|
||||
* Wed Aug 20 2025 Hector Martin <marcan@marcan.st> - 2:19.2.3-5
|
||||
- Fix mgr dashboard module failures due to unusable dependencies
|
||||
|
||||
* Mon Sep 23 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.4-2
|
||||
- ceph-18.2.4, include/rados/rgw_file.h
|
||||
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 2:19.2.3-4
|
||||
- Rebuilt for Python 3.14.0rc2 bytecode
|
||||
|
||||
* Mon Jul 15 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.4-1
|
||||
- ceph-18.2.4 GA
|
||||
* Wed Aug 13 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.3-3
|
||||
- ceph-19.2.3, rhbz#2310236
|
||||
|
||||
* Sun Jul 7 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-2
|
||||
- rhbz#2295843, include license (COPYING) file in selected subpackages
|
||||
* Wed Aug 06 2025 František Zatloukal <fzatlouk@redhat.com> - 2:19.2.3-2
|
||||
- Rebuilt for icu 77.1
|
||||
|
||||
* Mon Jul 28 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.3-1
|
||||
- ceph-19.2.3 GA
|
||||
|
||||
* Fri Apr 11 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.2-1
|
||||
- ceph-19.2.2 GA
|
||||
|
||||
* Fri Mar 7 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.1-2
|
||||
- cephadm dependencies rhbz#2350435
|
||||
|
||||
* Wed Feb 26 2025 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.1-1
|
||||
- ceph-19.2.1 GA
|
||||
|
||||
* Mon Nov 25 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.0-3
|
||||
- ceph-19.2.0 scikit_learn -> scikit-learn rhbz#2328553
|
||||
|
||||
* Wed Nov 13 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.0-2
|
||||
- ceph-19.2.0 scikit-learn -> scikit_learn rhbz#2325990
|
||||
|
||||
* Fri Sep 20 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.2.0-1
|
||||
- ceph-19.2.0 GA
|
||||
|
||||
* Fri Aug 23 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.1.1-0.1
|
||||
- ceph-19.1.1 RC
|
||||
|
||||
* Thu Aug 15 2024 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 2:19.1.0-0.6
|
||||
- Rebuild for re2 20240702
|
||||
|
||||
* Fri Jul 26 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.1.0-0.5
|
||||
- possible fix for ppc64le build, see rhbz 2297744
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2:19.1.0-0.4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Fri Jul 12 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.1.0-0.3
|
||||
- install libtacopie.so
|
||||
|
||||
* Thu Jul 11 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.1.0-0.2
|
||||
- install libcpp_redis.so
|
||||
|
||||
* Tue Jul 9 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:19.1.0-0.1
|
||||
- ceph-19.1.0 RC
|
||||
|
||||
* Tue Jul 9 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-7
|
||||
- Rebuild with OpenSSL-3.2.2, w/ openssl-devel-engine
|
||||
|
||||
* Mon Jul 8 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-6
|
||||
- Rebuild with OpenSSL-3.2.2
|
||||
|
||||
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 2:18.2.3-5
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Fri Jun 7 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com>
|
||||
- python 3.13 fixes
|
||||
|
||||
* Sun Jun 02 2024 Orion Poplawski <orion@nwra.com> - 2:18.2.3-4
|
||||
- Rebuild with thrift 0.20
|
||||
|
||||
* Tue May 21 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-3
|
||||
- ceph-18.2.3, enable system boost
|
||||
|
||||
* Tue May 21 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-3
|
||||
- ceph-18.2.3, enable system boost
|
||||
|
||||
* Tue May 14 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-2
|
||||
- ceph-18.2.3, rebuild with libarrow-16.1.0,
|
||||
- disable LTO w/ gcc-4.1.1
|
||||
|
||||
* Mon Apr 29 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.3-1
|
||||
- ceph-18.2.3 GA
|
||||
|
||||
* Mon Apr 22 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.2-4
|
||||
- rebuild with libarrow-16.0.0
|
||||
|
||||
* Tue Mar 19 2024 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.2.2-3
|
||||
- rebuild with libarrow-15.0.2
|
||||
|
||||
@@ -2689,11 +2855,7 @@ exit 0
|
||||
* Wed Mar 06 2024 David Abdurachmanov <davidlt@rivosinc.com> - 2:18.2.1-11
|
||||
- Add support for riscv64
|
||||
|
||||
<<<<<<< HEAD
|
||||
* Sat Mar 02 2024 Jiri Vanek <jvanek@redhat.com> - 2:18.2.1-10
|
||||
=======
|
||||
* Tue Feb 27 2024 Jiri Vanek <jvanek@redhat.com> - 2:18.2.1-10
|
||||
>>>>>>> rawhide
|
||||
- Rebuilt for java-21-openjdk as system jdk
|
||||
|
||||
* Wed Jan 31 2024 Pete Walter <pwalter@fedoraproject.org> - 2:18.2.1-9
|
||||
@@ -2783,162 +2945,3 @@ exit 0
|
||||
* Tue Jun 13 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:18.1.0-0.1
|
||||
- ceph-18.1.0 RC1
|
||||
|
||||
* Wed Jun 07 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2:17.2.6-8
|
||||
- Do not use mold in RHEL/ELN builds
|
||||
|
||||
* Tue May 9 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-7
|
||||
- ceph-17.2.6, use ldconfig and ldconfig_scriptlet macros
|
||||
|
||||
* Tue May 9 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-6
|
||||
- ceph-17.2.6, log create of global_legacy_options.h
|
||||
|
||||
* Mon May 1 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-5
|
||||
- ceph-17.2.6, rebuild with libarrow-12.0.0
|
||||
|
||||
* Sun Apr 30 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-4
|
||||
- ceph-17.2.6, rebuild bundled boost asm with IBT, SHSTK (librgw.so)
|
||||
|
||||
* Thu Apr 27 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-3
|
||||
- ceph-17.2.6, rebuild bundled boost with -fcf-protection (libceph_common.so)
|
||||
|
||||
* Thu Apr 20 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-2
|
||||
- ceph-17.2.6, rebuild with bundled rocksdb until ready for rocksdb-8.x
|
||||
|
||||
* Fri Apr 7 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.6-1
|
||||
- ceph-17.2.6 GA
|
||||
|
||||
* Wed Feb 22 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-13
|
||||
- ceph-17.2.5, rebuild with bundled boost until boost-1.81 compatible
|
||||
|
||||
* Mon Feb 20 2023 Jonathan Wakely <jwakely@redhat.com> - 2:17.2.5-12
|
||||
- Rebuilt for Boost 1.81
|
||||
|
||||
* Fri Feb 17 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-11
|
||||
- ceph-17.2.5, rebuild with libarrow-11, this time for real
|
||||
|
||||
* Wed Feb 15 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-10
|
||||
- ceph-17.2.5, rebuild with libarrow-11
|
||||
|
||||
* Fri Jan 27 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-9
|
||||
- ceph-17.2.5, more ELN (rhel 10)
|
||||
|
||||
* Thu Jan 26 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-8
|
||||
- ceph-17.2.5, rocksdb on ELN (rhel 10)
|
||||
|
||||
* Tue Jan 24 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-7
|
||||
- ceph-17.2.5, rebuild with gtest-13 rhbz#2163823
|
||||
|
||||
* Fri Jan 20 2023 Siddhesh Poyarekar <siddhesh@redhat.com> - 2:17.2.5-6
|
||||
- Use _fortify_level to disable fortification.
|
||||
|
||||
* Thu Jan 19 2023 Ondrej Mosnacek <omosnace@redhat.com>
|
||||
- Prepare for anon inode SELinux controls enablement
|
||||
|
||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2:17.2.5-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Jan 17 2023 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-4
|
||||
- ceph-17.2.5, rebuild with gcc-13
|
||||
|
||||
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 2:17.2.5-3
|
||||
- Rebuild for ICU 72
|
||||
|
||||
* Thu Dec 1 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-2
|
||||
- ceph-17.2.5, rebuild with libarrow-10
|
||||
|
||||
* Fri Nov 11 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com>
|
||||
- SPDX migration
|
||||
|
||||
* Tue Oct 18 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.5-1
|
||||
- ceph-17.2.5 GA
|
||||
|
||||
* Fri Sep 30 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.4-1
|
||||
- ceph-17.2.4 GA
|
||||
|
||||
* Mon Aug 22 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.3-5
|
||||
- ceph-17.2.3 revised patch for libarrow-9.0.0
|
||||
|
||||
* Wed Aug 3 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.3-4
|
||||
- ceph-17.2.3 rebuild with libarrow-9.0.0
|
||||
|
||||
* Wed Aug 3 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.3-3
|
||||
- ceph-17.2.3 fmt for ELN
|
||||
|
||||
* Mon Aug 01 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 2:17.2.3-2
|
||||
- Rebuilt for ICU 71.1
|
||||
|
||||
* Fri Jul 29 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.3-1
|
||||
- ceph-17.2.3 GA
|
||||
|
||||
* Fri Jul 22 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.2-1
|
||||
- ceph-17.2.2 GA
|
||||
|
||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2:17.2.1-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jul 18 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-6
|
||||
- Rebuild for fmt-9, src/mon/LogMonitor.cc fix
|
||||
|
||||
* Sun Jul 17 2022 Robert-André Mauchin <zebob.m@gmail.com> - 2:17.2.1-5
|
||||
- Rebuild for new fmt
|
||||
|
||||
* Wed Jul 6 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-3
|
||||
- enable cephfs-shell
|
||||
|
||||
* Tue Jun 28 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-2
|
||||
- ceph-17.2.1, rhbz#2101744, rebuild with gtest, gmock 1.12.0
|
||||
- fix inconsistent tabs, spaces
|
||||
- temporarily disable cephfs-shell until install issues (python3-11?) are resolved
|
||||
|
||||
* Thu Jun 23 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-1
|
||||
- ceph-17.2.1 GA
|
||||
|
||||
* Fri Jun 17 2022 Robert-André Mauchin <zebob.m@gmail.com> - 2:17.2.0-7
|
||||
- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191,
|
||||
CVE-2022-29526, CVE-2022-30629
|
||||
|
||||
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 2:17.2.0-6
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Thu May 19 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.0-5
|
||||
- Rebuild for rocksdb 7.2.2
|
||||
|
||||
* Wed May 11 2022 Thomas Rodgers <trodgers@redhat.com> - 2:17.2.0-4
|
||||
- Rebuilt for Boost 1.78
|
||||
|
||||
* Wed May 4 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.0-3
|
||||
- 17.2.0 w/ -DWITH_SYSTEM_ARROW
|
||||
|
||||
* Wed May 04 2022 Thomas Rodgers <trodgers@redhat.com> - 2:17.2.0-2
|
||||
- Rebuilt for Boost 1.78
|
||||
|
||||
* Wed Apr 20 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.0-1
|
||||
- 17.2.0 GA
|
||||
|
||||
* Thu Apr 14 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.10.201.gcc420538
|
||||
- 17.1.0 snapshot 201
|
||||
|
||||
* Fri Apr 8 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.9.175.g086c8f84
|
||||
- 17.1.0 snapshot 175
|
||||
|
||||
* Mon Mar 28 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.7.123.g14f44feb
|
||||
- 17.1.0 snapshot 123
|
||||
|
||||
* Thu Mar 24 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.6.70-g06806b4d
|
||||
- 17.1.0 snapshot 70
|
||||
|
||||
* Mon Mar 21 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.5.56-g60fdd357
|
||||
- 17.1.0 snapshot 56
|
||||
|
||||
* Thu Mar 17 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.4.31-g1ccf6db7
|
||||
- 17.1.0 snapshot 31 plus rhbz#2064219 (ceph #53266, #54561)
|
||||
|
||||
* Wed Mar 16 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.3.28-g77b78287
|
||||
- 17.1.0 snapshot 28
|
||||
|
||||
* Sat Mar 12 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.2.rc1
|
||||
- 17.1.0 RC1
|
||||
|
||||
* Mon Feb 28 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.1.0-0.1.rc1
|
||||
- 17.1.0 RC1
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
|
||||
index 2e92132366..3cb1e3d958 100644
|
||||
--- a/cmake/modules/BuildBoost.cmake
|
||||
+++ b/cmake/modules/BuildBoost.cmake
|
||||
@@ -62,7 +62,7 @@ function(do_build_boost version)
|
||||
else()
|
||||
list(APPEND boost_features "address-model=32")
|
||||
endif()
|
||||
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
||||
+ set(BOOST_CXXFLAGS "-fPIC -w -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -ftemplate-depth-1024 -fno-new-ttp-matching -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") # check on arm, etc <---XXX
|
||||
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
|
||||
|
||||
set(boost_with_libs)
|
||||
@@ -1 +1 @@
|
||||
SHA512 (ceph-18.2.6.tar.gz) = 06bef880543a3c444783ed4a3927fd94a7b05180d35d356372f36679f1e00c3ee2cf3b0c15732fdc0c1ba55c922e07b7fa66274cb12a196914c79faa99859f13
|
||||
SHA512 (ceph-19.2.3.tar.gz) = 278101d2df7bed5363b20c2b065d7a7b26252c8164511257e213ffaa58d509015558183de10bc9281bcbe4d9f85244bcac5bba4db9823e28df6a96d0b687d00a
|
||||
|
||||
Reference in New Issue
Block a user