ceph-18.1.0 RC1
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
This commit is contained in:
parent
1ab48d0e0d
commit
4f4defa7e2
@ -1,13 +1,3 @@
|
|||||||
--- ceph-16.2.7/src/include/buffer.h.orig 2022-01-17 12:17:19.193356237 -0500
|
|
||||||
+++ ceph-16.2.7/src/include/buffer.h 2022-01-17 12:17:58.599639592 -0500
|
|
||||||
@@ -38,6 +38,7 @@
|
|
||||||
# include <sys/mman.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#include <memory>
|
|
||||||
#include <iosfwd>
|
|
||||||
#include <iomanip>
|
|
||||||
#include <list>
|
|
||||||
--- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500
|
--- ceph-16.2.7/src/common/LogEntry.cc.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
|
+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
|
||||||
@@ -183,7 +183,7 @@
|
@@ -183,7 +183,7 @@
|
||||||
@ -21,8 +11,8 @@
|
|||||||
|
|
||||||
--- 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.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
|
+++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500
|
||||||
@@ -114,7 +114,7 @@
|
@@ -120,7 +120,7 @@
|
||||||
#include "rgw/rgw_common.h"
|
}
|
||||||
|
|
||||||
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
|
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
|
||||||
- std::string fp_algo = NULL)
|
- std::string fp_algo = NULL)
|
||||||
@ -30,7 +20,7 @@
|
|||||||
{
|
{
|
||||||
bufferlist t;
|
bufferlist t;
|
||||||
int size = foid.length();
|
int size = foid.length();
|
||||||
@@ -142,7 +142,7 @@
|
@@ -148,7 +148,7 @@
|
||||||
ASSERT_LE(count, refs.count());
|
ASSERT_LE(count, refs.count());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,17 +29,6 @@
|
|||||||
{
|
{
|
||||||
if (fp_algo == "sha1") {
|
if (fp_algo == "sha1") {
|
||||||
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
|
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
|
||||||
--- ceph-16.2.7/src/test/test_trans.cc.orig 2022-01-19 13:24:33.460008897 -0500
|
|
||||||
+++ ceph-16.2.7/src/test/test_trans.cc 2022-01-19 13:24:58.211554005 -0500
|
|
||||||
@@ -51,7 +51,7 @@
|
|
||||||
cout << "#dev " << filename << std::endl;
|
|
||||||
cout << "#mb " << mb << std::endl;
|
|
||||||
|
|
||||||
- ObjectStore *fs = new FileStore(cct.get(), filename, NULL);
|
|
||||||
+ ObjectStore *fs = new FileStore(cct.get(), filename, "");
|
|
||||||
if (fs->mount() < 0) {
|
|
||||||
cout << "mount failed" << std::endl;
|
|
||||||
return -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.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
|
+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500
|
||||||
@@ -466,7 +466,7 @@
|
@@ -466,7 +466,7 @@
|
||||||
|
@ -1,24 +1,15 @@
|
|||||||
--- ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt.orig 2022-03-01 08:19:04.974902872 -0500
|
--- ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt.orig 2023-05-10 08:23:50.000000000 -0400
|
||||||
+++ ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt 2022-03-11 07:55:16.236261471 -0500
|
+++ ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt 2023-05-11 08:21:13.794152904 -0400
|
||||||
@@ -12,5 +12,5 @@
|
@@ -24,7 +24,7 @@
|
||||||
set(SQLITE_COMPILE_FLAGS "-DSQLITE_THREADSAFE=1")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SQLITE_COMPILE_FLAGS}")
|
|
||||||
|
|
||||||
-add_library(sqlite_db ${sqlite_db_srcs})
|
|
||||||
+add_library(sqlite_db STATIC ${sqlite_db_srcs})
|
|
||||||
target_link_libraries(sqlite_db sqlite3 dbstore_lib rgw_common)
|
|
||||||
--- ceph-17.1.0/src/rgw/store/dbstore/CMakeLists.txt.orig 2022-02-28 14:11:49.987077811 -0500
|
|
||||||
+++ ceph-17.1.0/src/rgw/store/dbstore/CMakeLists.txt 2022-03-11 08:40:13.409682698 -0500
|
|
||||||
@@ -16,7 +16,7 @@
|
|
||||||
dbstore_mgr.cc
|
dbstore_mgr.cc
|
||||||
)
|
)
|
||||||
|
|
||||||
-add_library(dbstore_lib ${dbstore_srcs})
|
-add_library(dbstore_lib ${dbstore_srcs})
|
||||||
+add_library(dbstore_lib STATIC ${dbstore_srcs})
|
+add_library(dbstore_lib STATIC ${dbstore_srcs})
|
||||||
target_include_directories(dbstore_lib PUBLIC "${CMAKE_SOURCE_DIR}/src/fmt/include")
|
target_include_directories(dbstore_lib
|
||||||
target_include_directories(dbstore_lib PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw")
|
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
|
||||||
set(link_targets spawn)
|
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"
|
||||||
@@ -38,6 +38,7 @@
|
@@ -49,6 +49,7 @@
|
||||||
|
|
||||||
# add pthread library
|
# add pthread library
|
||||||
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
|
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
|
||||||
@ -26,12 +17,3 @@
|
|||||||
|
|
||||||
find_package(gtest QUIET)
|
find_package(gtest QUIET)
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
@@ -47,7 +48,7 @@
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories(${CMAKE_INCLUDE_DIR})
|
|
||||||
-add_library(dbstore ${dbstore_mgr_srcs})
|
|
||||||
+add_library(dbstore STATIC ${dbstore_mgr_srcs})
|
|
||||||
target_link_libraries(dbstore ${CMAKE_LINK_LIBRARIES})
|
|
||||||
|
|
||||||
# testing purpose
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
--- ceph-17.2.0-359-gb2fe9ec8/cmake/modules/CheckCxxAtomic.cmake.orig 2022-06-03 08:45:32.341075140 -0400
|
|
||||||
+++ ceph-17.2.0-359-gb2fe9ec8/cmake/modules/CheckCxxAtomic.cmake 2022-06-03 08:46:47.195775813 -0400
|
|
||||||
@@ -10,8 +10,9 @@
|
|
||||||
check_cxx_source_compiles("
|
|
||||||
#include <atomic>
|
|
||||||
#include <cstdint>
|
|
||||||
+#include <cstddef>
|
|
||||||
|
|
||||||
-#if defined(__s390x__) || defined(__mips__)
|
|
||||||
+#if defined(__SIZEOF_INT128__)
|
|
||||||
// Boost needs 16-byte atomics for tagged pointers.
|
|
||||||
// These are implemented via inline instructions on the platform
|
|
||||||
// if 16-byte alignment can be proven, and are delegated to libatomic
|
|
||||||
@@ -21,13 +22,27 @@
|
|
||||||
// We specifically test access via an otherwise unknown pointer here
|
|
||||||
// to ensure we get the most complex case. If this access can be
|
|
||||||
// done without libatomic, then all accesses can be done.
|
|
||||||
-bool atomic16(std::atomic<unsigned __int128> *ptr)
|
|
||||||
+struct tagged_ptr {
|
|
||||||
+ int* ptr;
|
|
||||||
+ std::size_t tag;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+void atomic16(std::atomic<tagged_ptr> *ptr) __attribute__ ((used));
|
|
||||||
+void atomic16(std::atomic<tagged_ptr> *ptr)
|
|
||||||
{
|
|
||||||
- return *ptr != 0;
|
|
||||||
+ tagged_ptr p{nullptr, 1};
|
|
||||||
+ ptr->store(p);
|
|
||||||
+ tagged_ptr f = ptr->load();
|
|
||||||
+ tagged_ptr new_tag{nullptr, 0};
|
|
||||||
+ ptr->compare_exchange_strong(f, new_tag);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
+#if defined(__SIZEOF_INT128__)
|
|
||||||
+ std::atomic<tagged_ptr> ptr;
|
|
||||||
+ atomic16(&ptr);
|
|
||||||
+#endif
|
|
||||||
std::atomic<uint8_t> w1;
|
|
||||||
std::atomic<uint16_t> w2;
|
|
||||||
std::atomic<uint32_t> w4;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
|||||||
From fff72cd14c58d06774cbd0274e6144b42448af03 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Adam C. Emerson" <aemerson@redhat.com>
|
|
||||||
Date: Mon, 7 Mar 2022 18:54:30 -0500
|
|
||||||
Subject: [PATCH] mon: Replace deprecated use of format_to
|
|
||||||
|
|
||||||
The non-deprecated version takes an explicit OutputIterator.
|
|
||||||
|
|
||||||
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|
||||||
---
|
|
||||||
src/mon/LogMonitor.cc | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc
|
|
||||||
index 9103ddf7c5b..c196e8429fb 100644
|
|
||||||
--- a/src/mon/LogMonitor.cc
|
|
||||||
+++ b/src/mon/LogMonitor.cc
|
|
||||||
@@ -411,7 +411,7 @@ void LogMonitor::log_external(const LogEntry& le)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fd >= 0) {
|
|
||||||
- fmt::format_to(file_log_buffer, "{}\n", le);
|
|
||||||
+ fmt::format_to(std::back_inserter(file_log_buffer), "{}\n", le);
|
|
||||||
int err = safe_write(fd, file_log_buffer.data(), file_log_buffer.size());
|
|
||||||
file_log_buffer.clear();
|
|
||||||
if (err < 0) {
|
|
||||||
--
|
|
||||||
2.36.1
|
|
||||||
|
|
@ -1,218 +0,0 @@
|
|||||||
--- ceph-17.2.3/src/s3select/include/s3select_parquet_intrf.h.orig 2022-01-11 15:47:52.000000000 -0500
|
|
||||||
+++ ceph-17.2.3/src/s3select/include/s3select_parquet_intrf.h 2022-08-22 10:26:06.738082924 -0400
|
|
||||||
@@ -26,6 +26,14 @@
|
|
||||||
#include "internal_file_decryptor.h"
|
|
||||||
#include "encryption_internal.h"
|
|
||||||
|
|
||||||
+#if ARROW_VERSION_MAJOR < 9
|
|
||||||
+#define _ARROW_FD fd_
|
|
||||||
+#define _ARROW_FD_TYPE int
|
|
||||||
+#else
|
|
||||||
+#define _ARROW_FD fd_.fd()
|
|
||||||
+#define _ARROW_FD_TYPE arrow::internal::FileDescriptor
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/******************************************/
|
|
||||||
/******************************************/
|
|
||||||
class optional_yield;
|
|
||||||
@@ -164,7 +172,7 @@
|
|
||||||
std::mutex lock_;
|
|
||||||
|
|
||||||
// File descriptor
|
|
||||||
- int fd_;
|
|
||||||
+ _ARROW_FD_TYPE fd_;
|
|
||||||
|
|
||||||
FileMode::type mode_;
|
|
||||||
|
|
||||||
@@ -202,7 +210,7 @@
|
|
||||||
mode_ = write_only ? FileMode::WRITE : FileMode::READWRITE;
|
|
||||||
|
|
||||||
if (!truncate) {
|
|
||||||
- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_));
|
|
||||||
+ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD));
|
|
||||||
} else {
|
|
||||||
size_ = 0;
|
|
||||||
}
|
|
||||||
@@ -222,7 +230,11 @@
|
|
||||||
RETURN_NOT_OK(SetFileName(fd));
|
|
||||||
is_open_ = true;
|
|
||||||
mode_ = FileMode::WRITE;
|
|
||||||
+ #if ARROW_VERSION_MAJOR < 9
|
|
||||||
fd_ = fd;
|
|
||||||
+ #else
|
|
||||||
+ fd_ = arrow::internal::FileDescriptor{fd};
|
|
||||||
+ #endif
|
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -230,7 +242,7 @@
|
|
||||||
RETURN_NOT_OK(SetFileName(path));
|
|
||||||
|
|
||||||
ARROW_ASSIGN_OR_RAISE(fd_, ::arrow::internal::FileOpenReadable(file_name_));
|
|
||||||
- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_));
|
|
||||||
+ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD));
|
|
||||||
|
|
||||||
is_open_ = true;
|
|
||||||
mode_ = FileMode::READ;
|
|
||||||
@@ -242,7 +254,11 @@
|
|
||||||
RETURN_NOT_OK(SetFileName(fd));
|
|
||||||
is_open_ = true;
|
|
||||||
mode_ = FileMode::READ;
|
|
||||||
+ #if ARROW_VERSION_MAJOR < 9
|
|
||||||
fd_ = fd;
|
|
||||||
+ #else
|
|
||||||
+ fd_ = arrow::internal::FileDescriptor{fd};
|
|
||||||
+ #endif
|
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -258,9 +274,13 @@
|
|
||||||
// Even if closing fails, the fd will likely be closed (perhaps it's
|
|
||||||
// already closed).
|
|
||||||
is_open_ = false;
|
|
||||||
+ #if ARROW_VERSION_MAJOR < 9
|
|
||||||
int fd = fd_;
|
|
||||||
fd_ = -1;
|
|
||||||
RETURN_NOT_OK(::arrow::internal::FileClose(fd));
|
|
||||||
+ #else
|
|
||||||
+ RETURN_NOT_OK(fd_.Close());
|
|
||||||
+ #endif
|
|
||||||
}
|
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
@@ -268,7 +288,7 @@
|
|
||||||
Result<int64_t> Read(int64_t nbytes, void* out) override {
|
|
||||||
RETURN_NOT_OK(CheckClosed());
|
|
||||||
RETURN_NOT_OK(CheckPositioned());
|
|
||||||
- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes);
|
|
||||||
+ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) override {
|
|
||||||
@@ -277,7 +297,7 @@
|
|
||||||
// ReadAt() leaves the file position undefined, so require that we seek
|
|
||||||
// before calling Read() or Write().
|
|
||||||
need_seeking_.store(true);
|
|
||||||
- return ::arrow::internal::FileReadAt(fd_, reinterpret_cast<uint8_t*>(out), position,
|
|
||||||
+ return ::arrow::internal::FileReadAt(_ARROW_FD, reinterpret_cast<uint8_t*>(out), position,
|
|
||||||
nbytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -286,7 +306,7 @@
|
|
||||||
if (pos < 0) {
|
|
||||||
return Status::Invalid("Invalid position");
|
|
||||||
}
|
|
||||||
- Status st = ::arrow::internal::FileSeek(fd_, pos);
|
|
||||||
+ Status st = ::arrow::internal::FileSeek(_ARROW_FD, pos);
|
|
||||||
if (st.ok()) {
|
|
||||||
need_seeking_.store(false);
|
|
||||||
}
|
|
||||||
@@ -295,7 +315,7 @@
|
|
||||||
|
|
||||||
Result<int64_t> Tell() const override {
|
|
||||||
RETURN_NOT_OK(CheckClosed());
|
|
||||||
- return ::arrow::internal::FileTell(fd_);
|
|
||||||
+ return ::arrow::internal::FileTell(_ARROW_FD);
|
|
||||||
}
|
|
||||||
|
|
||||||
Status Write(const void* data, int64_t length) override {
|
|
||||||
@@ -306,11 +326,11 @@
|
|
||||||
if (length < 0) {
|
|
||||||
return Status::IOError("Length must be non-negative");
|
|
||||||
}
|
|
||||||
- return ::arrow::internal::FileWrite(fd_, reinterpret_cast<const uint8_t*>(data),
|
|
||||||
+ return ::arrow::internal::FileWrite(_ARROW_FD, reinterpret_cast<const uint8_t*>(data),
|
|
||||||
length);
|
|
||||||
}
|
|
||||||
|
|
||||||
- int fd() const override { return fd_; }
|
|
||||||
+ int fd() const override { return _ARROW_FD; }
|
|
||||||
|
|
||||||
bool is_open() const override { return is_open_; }
|
|
||||||
|
|
||||||
@@ -345,7 +365,7 @@
|
|
||||||
std::mutex lock_;
|
|
||||||
|
|
||||||
// File descriptor
|
|
||||||
- int fd_;
|
|
||||||
+ _ARROW_FD_TYPE fd_;
|
|
||||||
|
|
||||||
FileMode::type mode_;
|
|
||||||
|
|
||||||
@@ -411,7 +431,11 @@
|
|
||||||
// already closed).
|
|
||||||
is_open_ = false;
|
|
||||||
//int fd = fd_;
|
|
||||||
+ #if ARROW_VERSION_MAJOR < 9
|
|
||||||
fd_ = -1;
|
|
||||||
+ #else
|
|
||||||
+ fd_.Close();
|
|
||||||
+ #endif
|
|
||||||
//RETURN_NOT_OK(::arrow::internal::FileClose(fd));
|
|
||||||
}
|
|
||||||
return Status::OK();
|
|
||||||
@@ -421,7 +445,7 @@
|
|
||||||
NOT_IMPLEMENT;
|
|
||||||
RETURN_NOT_OK(CheckClosed());
|
|
||||||
RETURN_NOT_OK(CheckPositioned());
|
|
||||||
- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes);
|
|
||||||
+ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) {
|
|
||||||
@@ -443,7 +467,7 @@
|
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
|
|
||||||
- int fd() const { return fd_; }
|
|
||||||
+ int fd() const { return _ARROW_FD; }
|
|
||||||
|
|
||||||
bool is_open() const { return is_open_; }
|
|
||||||
|
|
||||||
@@ -467,7 +491,7 @@
|
|
||||||
std::mutex lock_;
|
|
||||||
|
|
||||||
// File descriptor
|
|
||||||
- int fd_;
|
|
||||||
+ _ARROW_FD_TYPE fd_;
|
|
||||||
|
|
||||||
FileMode::type mode_;
|
|
||||||
|
|
||||||
@@ -609,7 +633,7 @@
|
|
||||||
for (const auto& range : ranges) {
|
|
||||||
RETURN_NOT_OK(internal::ValidateRange(range.offset, range.length));
|
|
||||||
#if defined(POSIX_FADV_WILLNEED)
|
|
||||||
- if (posix_fadvise(fd_, range.offset, range.length, POSIX_FADV_WILLNEED)) {
|
|
||||||
+ if (posix_fadvise(_ARROW_FD, range.offset, range.length, POSIX_FADV_WILLNEED)) {
|
|
||||||
return IOErrorFromErrno(errno, "posix_fadvise failed");
|
|
||||||
}
|
|
||||||
#elif defined(F_RDADVISE) // macOS, BSD?
|
|
||||||
@@ -617,7 +641,7 @@
|
|
||||||
off_t ra_offset;
|
|
||||||
int ra_count;
|
|
||||||
} radvisory{range.offset, static_cast<int>(range.length)};
|
|
||||||
- if (radvisory.ra_count > 0 && fcntl(fd_, F_RDADVISE, &radvisory) == -1) {
|
|
||||||
+ if (radvisory.ra_count > 0 && fcntl(_ARROW_FD, F_RDADVISE, &radvisory) == -1) {
|
|
||||||
return IOErrorFromErrno(errno, "fcntl(fd, F_RDADVISE, ...) failed");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -970,6 +994,9 @@
|
|
||||||
CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_,
|
|
||||||
static_cast<int16_t>(i), meta_decryptor, data_decryptor);
|
|
||||||
return PageReader::Open(stream, col->num_values(), col->compression(),
|
|
||||||
+ #if ARROW_VERSION_MAJOR > 8
|
|
||||||
+ false,
|
|
||||||
+ #endif
|
|
||||||
properties_.memory_pool(), &ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -985,6 +1012,9 @@
|
|
||||||
CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_,
|
|
||||||
static_cast<int16_t>(i), meta_decryptor, data_decryptor);
|
|
||||||
return PageReader::Open(stream, col->num_values(), col->compression(),
|
|
||||||
+ #if ARROW_VERSION_MAJOR > 8
|
|
||||||
+ false,
|
|
||||||
+ #endif
|
|
||||||
properties_.memory_pool(), &ctx);
|
|
||||||
}
|
|
||||||
|
|
@ -90,16 +90,6 @@
|
|||||||
|
|
||||||
namespace librbd {
|
namespace librbd {
|
||||||
|
|
||||||
--- ceph-17.2.5/src/rocksdb/db/compaction/compaction_iteration_stats.h.orig 2023-01-26 17:05:20.605333926 -0500
|
|
||||||
+++ ceph-17.2.5/src/rocksdb/db/compaction/compaction_iteration_stats.h 2023-01-26 17:05:46.376880846 -0500
|
|
||||||
@@ -6,6 +6,7 @@
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "rocksdb/rocksdb_namespace.h"
|
|
||||||
+#include <cstdint>
|
|
||||||
|
|
||||||
struct CompactionIterationStats {
|
|
||||||
// Compaction statistics
|
|
||||||
--- ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-04-21 17:46:42.186339184 -0400
|
--- ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-04-21 17:46:42.186339184 -0400
|
||||||
+++ ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h 2023-04-21 17:47:01.392005151 -0400
|
+++ ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h 2023-04-21 17:47:01.392005151 -0400
|
||||||
@@ -7,6 +7,7 @@
|
@@ -7,6 +7,7 @@
|
||||||
@ -120,23 +110,3 @@
|
|||||||
|
|
||||||
#include "rocksdb/rocksdb_namespace.h"
|
#include "rocksdb/rocksdb_namespace.h"
|
||||||
|
|
||||||
--- ceph-17.2.6/src/rocksdb/include/rocksdb/utilities/checkpoint.h.orig 2023-04-22 05:54:32.260798114 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/include/rocksdb/utilities/checkpoint.h 2023-04-22 05:55:42.997522143 -0400
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
+#include <cstdint>
|
|
||||||
#include "rocksdb/status.h"
|
|
||||||
|
|
||||||
namespace ROCKSDB_NAMESPACE {
|
|
||||||
--- ceph-17.2.6/src/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h.orig 2023-04-22 06:14:55.624679075 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h 2023-04-22 09:18:39.424624618 -0400
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include <memory>
|
|
||||||
#include <mutex>
|
|
||||||
#include <stdexcept>
|
|
||||||
+#include <system_error>
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
namespace folly {
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
From 73218e291ca68a927965bdffa7d43d0fc62c2718 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ondrej Mosnacek <omosnace@redhat.com>
|
|
||||||
Date: Wed, 27 Jul 2022 17:14:25 +0200
|
|
||||||
Subject: [PATCH] selinux: prepare for anon inode controls enablement
|
|
||||||
|
|
||||||
We plan to start labeling anon inodes (userfaultfd and io_uring file
|
|
||||||
descriptors) properly in selinux-policy, which means that domains using
|
|
||||||
these will need new rules.
|
|
||||||
|
|
||||||
See: https://github.com/fedora-selinux/selinux-policy/pull/1351
|
|
||||||
|
|
||||||
Since ceph may optionally use io_uring, this patch adds the necessary
|
|
||||||
interface call to its policy to avoid a regression. As the new interface
|
|
||||||
call is put under a conditional, the policy package will be buildable
|
|
||||||
against selinux-policy with or without the above PR merged, but it will
|
|
||||||
need to be rebuilt against the updated selinux-policy to actually pick
|
|
||||||
up the new rules.
|
|
||||||
|
|
||||||
I tested this on a minimal ceph cluster with 'bdev_ioring = true' added
|
|
||||||
to ceph.conf. I got io_uring denials without this patch + with
|
|
||||||
selinux-policy with PR#1351 and no denials with ceph rebuilt with this
|
|
||||||
patch.
|
|
||||||
|
|
||||||
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
|
|
||||||
---
|
|
||||||
selinux/ceph.te | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/selinux/ceph.te b/selinux/ceph.te
|
|
||||||
index 77d35d9714b60..729bce1fc8589 100644
|
|
||||||
--- a/selinux/ceph.te
|
|
||||||
+++ b/selinux/ceph.te
|
|
||||||
@@ -75,6 +75,9 @@ manage_lnk_files_pattern(ceph_t, ceph_var_run_t, ceph_var_run_t)
|
|
||||||
|
|
||||||
kernel_read_system_state(ceph_t)
|
|
||||||
kernel_read_network_state(ceph_t)
|
|
||||||
+ifdef(`kernel_io_uring_use',`
|
|
||||||
+ kernel_io_uring_use(ceph_t)
|
|
||||||
+')
|
|
||||||
allow ceph_t kernel_t:system module_request;
|
|
||||||
|
|
||||||
corenet_all_recvfrom_unlabeled(ceph_t)
|
|
32
0025-src-osd-scrubber-scrub_backend.h.patch
Normal file
32
0025-src-osd-scrubber-scrub_backend.h.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
--- 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,99 +0,0 @@
|
|||||||
--- ceph-17.2.5/src/boost/libs/python/src/object/enum.cpp.orig 2023-02-23 08:45:36.498595122 -0500
|
|
||||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/enum.cpp 2023-02-23 08:46:11.277990890 -0500
|
|
||||||
@@ -153,7 +153,7 @@
|
|
||||||
{
|
|
||||||
if (enum_type_object.tp_dict == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&enum_type_object) = incref(&PyType_Type);
|
|
||||||
+ Py_SET_TYPE(&enum_type_object, incref(&PyType_Type));
|
|
||||||
#if PY_VERSION_HEX >= 0x03000000
|
|
||||||
enum_type_object.tp_base = &PyLong_Type;
|
|
||||||
#else
|
|
||||||
--- ceph-17.2.5/src/boost/libs/python/src/object/function.cpp.orig 2023-02-23 08:44:19.995920877 -0500
|
|
||||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/function.cpp 2023-02-23 08:45:26.426770100 -0500
|
|
||||||
@@ -107,7 +107,7 @@
|
|
||||||
PyObject* p = this;
|
|
||||||
if (Py_TYPE(&function_type) == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&function_type) = &PyType_Type;
|
|
||||||
+ Py_SET_TYPE(&function_type, &PyType_Type);
|
|
||||||
::PyType_Ready(&function_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- ceph-17.2.5/src/boost/libs/python/src/object/life_support.cpp.orig 2023-02-23 08:43:37.511650115 -0500
|
|
||||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/life_support.cpp 2023-02-23 08:44:10.225088588 -0500
|
|
||||||
@@ -93,7 +93,7 @@
|
|
||||||
|
|
||||||
if (Py_TYPE(&life_support_type) == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&life_support_type) = &PyType_Type;
|
|
||||||
+ Py_SET_TYPE(&life_support_type, &PyType_Type);
|
|
||||||
PyType_Ready(&life_support_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- ceph-17.2.5/src/boost/libs/python/src/object/class.cpp.orig 2023-02-23 08:46:22.394797757 -0500
|
|
||||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/class.cpp 2023-02-23 10:54:56.016527900 -0500
|
|
||||||
@@ -21,6 +21,7 @@
|
|
||||||
#include <boost/python/dict.hpp>
|
|
||||||
#include <boost/python/str.hpp>
|
|
||||||
#include <boost/python/ssize_t.hpp>
|
|
||||||
+#include <boost/align/detail/align.hpp>
|
|
||||||
#include <functional>
|
|
||||||
#include <vector>
|
|
||||||
#include <cstddef>
|
|
||||||
@@ -208,7 +209,7 @@
|
|
||||||
{
|
|
||||||
if (static_data_object.tp_dict == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&static_data_object) = &PyType_Type;
|
|
||||||
+ Py_SET_TYPE(&static_data_object, &PyType_Type);
|
|
||||||
static_data_object.tp_base = &PyProperty_Type;
|
|
||||||
if (PyType_Ready(&static_data_object))
|
|
||||||
return 0;
|
|
||||||
@@ -316,7 +317,7 @@
|
|
||||||
{
|
|
||||||
if (class_metatype_object.tp_dict == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&class_metatype_object) = &PyType_Type;
|
|
||||||
+ Py_SET_TYPE(&class_metatype_object, &PyType_Type);
|
|
||||||
class_metatype_object.tp_base = &PyType_Type;
|
|
||||||
if (PyType_Ready(&class_metatype_object))
|
|
||||||
return type_handle();
|
|
||||||
@@ -374,12 +375,7 @@
|
|
||||||
// like, so we'll store the total size of the object
|
|
||||||
// there. A negative number indicates that the extra
|
|
||||||
// instance memory is not yet allocated to any holders.
|
|
||||||
-#if PY_VERSION_HEX >= 0x02060000
|
|
||||||
- Py_SIZE(result) =
|
|
||||||
-#else
|
|
||||||
- result->ob_size =
|
|
||||||
-#endif
|
|
||||||
- -(static_cast<int>(offsetof(instance<>,storage) + instance_size));
|
|
||||||
+ Py_SET_SIZE(result,-static_cast<int>(offsetof(instance<>,storage) + instance_size));
|
|
||||||
}
|
|
||||||
return (PyObject*)result;
|
|
||||||
}
|
|
||||||
@@ -470,7 +466,7 @@
|
|
||||||
{
|
|
||||||
if (class_type_object.tp_dict == 0)
|
|
||||||
{
|
|
||||||
- Py_TYPE(&class_type_object) = incref(class_metatype().get());
|
|
||||||
+ Py_SET_TYPE(&class_type_object, incref(class_metatype().get()));
|
|
||||||
class_type_object.tp_base = &PyBaseObject_Type;
|
|
||||||
if (PyType_Ready(&class_type_object))
|
|
||||||
return type_handle();
|
|
||||||
@@ -738,8 +734,13 @@
|
|
||||||
// holder_offset should at least point into the variable-sized part
|
|
||||||
assert(holder_offset >= offsetof(objects::instance<>,storage));
|
|
||||||
|
|
||||||
+ size_t allocated = holder_size + 8;
|
|
||||||
+ void* storage = (char*)self + holder_offset;
|
|
||||||
+ void* aligned_storage = ::boost::alignment::align(8, holder_size, storage, allocated);
|
|
||||||
+
|
|
||||||
// Record the fact that the storage is occupied, noting where it starts
|
|
||||||
- Py_SIZE(self) = holder_offset;
|
|
||||||
+ const size_t offset = reinterpret_cast<uintptr_t>(aligned_storage) - reinterpret_cast<uintptr_t>(storage) + holder_offset;
|
|
||||||
+ Py_SET_SIZE(self, offset);
|
|
||||||
return (char*)self + holder_offset;
|
|
||||||
}
|
|
||||||
else
|
|
199
0026-src-osd-scrubber-scrub_backend.cc.patch
Normal file
199
0026-src-osd-scrubber-scrub_backend.cc.patch
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
--- 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()) {
|
151
0027-src-kv-rocksdb_cache-ShardedCache.h.patch
Normal file
151
0027-src-kv-rocksdb_cache-ShardedCache.h.patch
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
--- 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,40 +0,0 @@
|
|||||||
--- ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-04-21 17:46:42.186339184 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/table/block_based/data_block_hash_index.h 2023-04-21 17:47:01.392005151 -0400
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
+#include <cstdint>
|
|
||||||
|
|
||||||
#include "rocksdb/slice.h"
|
|
||||||
|
|
||||||
--- ceph-17.2.6/src/rocksdb/util/string_util.h.orig 2023-04-21 18:13:51.060496792 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/util/string_util.h 2023-04-21 18:14:06.496223220 -0400
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
#include <string>
|
|
||||||
#include <unordered_map>
|
|
||||||
#include <vector>
|
|
||||||
+#include <cstdint>
|
|
||||||
|
|
||||||
#include "rocksdb/rocksdb_namespace.h"
|
|
||||||
|
|
||||||
--- ceph-17.2.6/src/rocksdb/include/rocksdb/utilities/checkpoint.h.orig 2023-04-22 05:54:32.260798114 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/include/rocksdb/utilities/checkpoint.h 2023-04-22 05:55:42.997522143 -0400
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
+#include <cstdint>
|
|
||||||
#include "rocksdb/status.h"
|
|
||||||
|
|
||||||
namespace ROCKSDB_NAMESPACE {
|
|
||||||
--- ceph-17.2.6/src/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h.orig 2023-04-22 06:14:55.624679075 -0400
|
|
||||||
+++ ceph-17.2.6/src/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h 2023-04-22 09:18:39.424624618 -0400
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include <memory>
|
|
||||||
#include <mutex>
|
|
||||||
#include <stdexcept>
|
|
||||||
+#include <system_error>
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
namespace folly {
|
|
@ -1,15 +0,0 @@
|
|||||||
--- ceph-17.2.6/cmake/modules/BuildBoost.cmake.orig 2023-04-27 14:00:28.239524778 -0400
|
|
||||||
+++ ceph-17.2.6/cmake/modules/BuildBoost.cmake 2023-04-28 07:49:59.743342207 -0400
|
|
||||||
@@ -63,7 +63,11 @@
|
|
||||||
else()
|
|
||||||
list(APPEND boost_features "address-model=32")
|
|
||||||
endif()
|
|
||||||
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
|
||||||
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
|
||||||
+ set(BOOST_CXXFLAGS "-fPIC -w -fcf-protection") # check on arm, etc <---XXX
|
|
||||||
+ else()
|
|
||||||
+ set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
|
||||||
+ endif()
|
|
||||||
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
|
|
||||||
|
|
||||||
set(boost_with_libs)
|
|
17
0029-src-rgw-rgw_amqp.cc.patch
Normal file
17
0029-src-rgw-rgw_amqp.cc.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc.orig 2023-03-14 18:22:35.636864260 -0400
|
||||||
|
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc 2023-03-14 18:24:36.362756771 -0400
|
||||||
|
@@ -2,10 +2,10 @@
|
||||||
|
// vim: ts=8 sw=2 smarttab ft=cpp
|
||||||
|
|
||||||
|
#include "rgw_amqp.h"
|
||||||
|
-#include <amqp.h>
|
||||||
|
-#include <amqp_ssl_socket.h>
|
||||||
|
-#include <amqp_tcp_socket.h>
|
||||||
|
-#include <amqp_framing.h>
|
||||||
|
+#include <rabbitmq-c/amqp.h>
|
||||||
|
+#include <rabbitmq-c/ssl_socket.h>
|
||||||
|
+#include <rabbitmq-c/tcp_socket.h>
|
||||||
|
+#include <rabbitmq-c/framing.h>
|
||||||
|
#include "include/ceph_assert.h"
|
||||||
|
#include <sstream>
|
||||||
|
#include <cstring>
|
@ -1,10 +0,0 @@
|
|||||||
--- ceph-17.2.6/src/CMakeLists.txt.orig 2023-05-10 10:00:58.457793274 -0400
|
|
||||||
+++ ceph-17.2.6/src/CMakeLists.txt 2023-05-10 10:01:31.553198698 -0400
|
|
||||||
@@ -809,6 +809,7 @@
|
|
||||||
if(WITH_KRBD)
|
|
||||||
add_library(krbd STATIC krbd.cc
|
|
||||||
$<TARGET_OBJECTS:parse_secret_objs>)
|
|
||||||
+ add_dependencies(krbd legacy-option-headers)
|
|
||||||
target_link_libraries(krbd keyutils::keyutils)
|
|
||||||
endif()
|
|
||||||
add_subdirectory(librbd)
|
|
61
0030-src-rgw-rgw_asio_client.cc.patch
Normal file
61
0030-src-rgw-rgw_asio_client.cc.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
--- 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());
|
24
0032-cmake-modules-BuildBoost.cmake.patch
Normal file
24
0032-cmake-modules-BuildBoost.cmake.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
--- ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake.orig 2023-04-28 18:30:19.133064577 -0400
|
||||||
|
+++ ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake 2023-04-28 18:31:55.290354383 -0400
|
||||||
|
@@ -104,12 +104,21 @@
|
||||||
|
set(user_config ${CMAKE_BINARY_DIR}/user-config.jam)
|
||||||
|
# edit the user-config.jam so b2 will be able to use the specified
|
||||||
|
# toolset and python
|
||||||
|
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||||
|
+ file(WRITE ${user_config}
|
||||||
|
+ "using ${toolset}"
|
||||||
|
+ " : "
|
||||||
|
+ " : ${CMAKE_CXX_COMPILER}"
|
||||||
|
+ " : <compileflags>-fPIC <compileflags>-w <compileflags>-fcf-protection <compileflags>-Wno-everything"
|
||||||
|
+ " ;\n")
|
||||||
|
+else()
|
||||||
|
file(WRITE ${user_config}
|
||||||
|
"using ${toolset}"
|
||||||
|
" : "
|
||||||
|
" : ${CMAKE_CXX_COMPILER}"
|
||||||
|
" : <compileflags>-fPIC <compileflags>-w <compileflags>-Wno-everything"
|
||||||
|
" ;\n")
|
||||||
|
+endif()
|
||||||
|
if(with_python_version)
|
||||||
|
find_package(Python3 ${with_python_version} QUIET REQUIRED
|
||||||
|
COMPONENTS Development)
|
175
ceph.spec
175
ceph.spec
@ -35,15 +35,6 @@
|
|||||||
%else
|
%else
|
||||||
%bcond_with rbd_rwl_cache
|
%bcond_with rbd_rwl_cache
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?rhel}
|
|
||||||
%bcond_with ld_mold
|
|
||||||
%else
|
|
||||||
%ifarch x86_64 aarch64
|
|
||||||
%bcond_without ld_mold
|
|
||||||
%else
|
|
||||||
%bcond_with ld_mold
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
%if 0%{?fedora} || 0%{?rhel}
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
%ifarch s390x %{arm64}
|
%ifarch s390x %{arm64}
|
||||||
%bcond_with system_pmdk
|
%bcond_with system_pmdk
|
||||||
@ -51,11 +42,7 @@
|
|||||||
%bcond_without system_pmdk
|
%bcond_without system_pmdk
|
||||||
%endif
|
%endif
|
||||||
%bcond_without selinux
|
%bcond_without selinux
|
||||||
%if 0%{?rhel} >= 8
|
|
||||||
%bcond_with cephfs_java
|
|
||||||
%else
|
|
||||||
%bcond_without cephfs_java
|
%bcond_without cephfs_java
|
||||||
%endif
|
|
||||||
%bcond_without amqp_endpoint
|
%bcond_without amqp_endpoint
|
||||||
%bcond_without kafka_endpoint
|
%bcond_without kafka_endpoint
|
||||||
%bcond_without lttng
|
%bcond_without lttng
|
||||||
@ -66,7 +53,11 @@
|
|||||||
%global _remote_tarball_prefix https://download.ceph.com/tarballs/
|
%global _remote_tarball_prefix https://download.ceph.com/tarballs/
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
|
%ifarch s390x
|
||||||
|
%bcond_with system_pmdk
|
||||||
|
%else
|
||||||
%bcond_without system_pmdk
|
%bcond_without system_pmdk
|
||||||
|
%endif
|
||||||
%bcond_with amqp_endpoint
|
%bcond_with amqp_endpoint
|
||||||
%bcond_with cephfs_java
|
%bcond_with cephfs_java
|
||||||
%bcond_with kafka_endpoint
|
%bcond_with kafka_endpoint
|
||||||
@ -99,7 +90,11 @@
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%bcond_with seastar
|
%bcond_with seastar
|
||||||
|
%if 0%{?suse_version}
|
||||||
%bcond_with jaeger
|
%bcond_with jaeger
|
||||||
|
%else
|
||||||
|
%bcond_without jaeger
|
||||||
|
%endif
|
||||||
%if 0%{?fedora} || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 10
|
%if 0%{?fedora} || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 10
|
||||||
# distros that ship cmd2 and/or colorama
|
# distros that ship cmd2 and/or colorama
|
||||||
%bcond_without cephfs_shell
|
%bcond_without cephfs_shell
|
||||||
@ -107,8 +102,15 @@
|
|||||||
# distros that do _not_ ship cmd2/colorama
|
# distros that do _not_ ship cmd2/colorama
|
||||||
%bcond_with cephfs_shell
|
%bcond_with cephfs_shell
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||||
%bcond_without system_arrow
|
%bcond_without system_arrow
|
||||||
%bcond_without system_utf8proc
|
%bcond_without system_utf8proc
|
||||||
|
%else
|
||||||
|
# for centos 8, utf8proc-devel comes from the subversion-devel module which isn't available in EPEL8
|
||||||
|
# this is tracked in https://bugzilla.redhat.com/2152265
|
||||||
|
%bcond_with system_arrow
|
||||||
|
%bcond_with system_utf8proc
|
||||||
|
%endif
|
||||||
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8
|
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8
|
||||||
%global weak_deps 1
|
%global weak_deps 1
|
||||||
%endif
|
%endif
|
||||||
@ -129,7 +131,6 @@
|
|||||||
%{!?python3_version: %global python3_version 3}
|
%{!?python3_version: %global python3_version 3}
|
||||||
%{!?gts_prefix: %global gts_prefix gcc-toolset-11}
|
%{!?gts_prefix: %global gts_prefix gcc-toolset-11}
|
||||||
|
|
||||||
|
|
||||||
%if ! 0%{?suse_version}
|
%if ! 0%{?suse_version}
|
||||||
# use multi-threaded xz compression: xz level 7 using ncpus threads
|
# use multi-threaded xz compression: xz level 7 using ncpus threads
|
||||||
%global _source_payload w7T%{_smp_build_ncpus}.xzdio
|
%global _source_payload w7T%{_smp_build_ncpus}.xzdio
|
||||||
@ -168,8 +169,8 @@
|
|||||||
# main package definition
|
# main package definition
|
||||||
#################################################################################
|
#################################################################################
|
||||||
Name: ceph
|
Name: ceph
|
||||||
Version: 17.2.6
|
Version: 18.1.0
|
||||||
Release: 8%{?dist}
|
Release: 0.1%{?dist}
|
||||||
%if 0%{?fedora} || 0%{?rhel}
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
%endif
|
%endif
|
||||||
@ -180,13 +181,13 @@ Epoch: 2
|
|||||||
|
|
||||||
Summary: User space components of the Ceph file system
|
Summary: User space components of the Ceph file system
|
||||||
#License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
|
#License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
|
||||||
#License: (LGPLv2+ or LGPLv3) and CC-BY-SA-3.0 and GPLv2 and Boost and BSD and MIT
|
License: (LGPLv2+ or LGPLv3) and CC-BY-SA-3.0 and GPLv2 and Boost and BSD and MIT
|
||||||
License: (LGPL-2.1-or-later OR LGPL-3.0-only) and CC-BY-SA-3.0 and GPL-2.0-only and BSL-1.0 and BSD-3-Clause and MIT
|
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
%endif
|
%endif
|
||||||
URL: http://ceph.com/
|
URL: http://ceph.com/
|
||||||
Source0: https://download.ceph.com/tarballs/ceph-%{version}.tar.gz
|
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
|
Patch0001: 0001-src-common-crc32c_intel_fast.patch
|
||||||
Patch0003: 0003-src-common-bitstr.h.patch
|
Patch0003: 0003-src-common-bitstr.h.patch
|
||||||
Patch0008: 0008-cmake-modules-Finduring.cmake.patch
|
Patch0008: 0008-cmake-modules-Finduring.cmake.patch
|
||||||
@ -196,15 +197,14 @@ Patch0012: 0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch
|
|||||||
Patch0016: 0016-src-tracing-patch
|
Patch0016: 0016-src-tracing-patch
|
||||||
Patch0017: 0017-gcc-12-omnibus.patch
|
Patch0017: 0017-gcc-12-omnibus.patch
|
||||||
Patch0018: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch
|
Patch0018: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch
|
||||||
Patch0019: 0019-cmake-modules-CheckCxxAtomic.cmake.patch
|
|
||||||
Patch0020: 0020-src-arrow-cpp-cmake_modules-ThirdpartyToolchain.cmake.patch
|
Patch0020: 0020-src-arrow-cpp-cmake_modules-ThirdpartyToolchain.cmake.patch
|
||||||
Patch0023: 0023-src-s3select-include-s3select_parquet_intrf.h.patch
|
|
||||||
Patch0024: 0024-gcc-13.patch
|
Patch0024: 0024-gcc-13.patch
|
||||||
Patch0025: 0025-selinux-prepare-for-anon-inode-controls-enablement.patch
|
Patch0025: 0025-src-osd-scrubber-scrub_backend.h.patch
|
||||||
Patch0026: 0026-src-boost-libs-python-src-object.patch
|
Patch0026: 0026-src-osd-scrubber-scrub_backend.cc.patch
|
||||||
Patch0028: 0028-cmake-modules-BuildBoost.cmake.patch
|
Patch0029: 0029-src-rgw-rgw_amqp.cc.patch
|
||||||
Patch0029: 0029-boost-asm.patch
|
Patch0030: 0030-src-rgw-rgw_asio_client.cc.patch
|
||||||
Patch0030: 0030-src-CMakeLists.txt.patch
|
Patch0032: 0032-cmake-modules-BuildBoost.cmake.patch
|
||||||
|
Patch0033: 0033-boost-asm.patch
|
||||||
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
|
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
|
||||||
ExcludeArch: i686 armv7hl
|
ExcludeArch: i686 armv7hl
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
@ -221,6 +221,7 @@ Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release}
|
|||||||
Requires(post): binutils
|
Requires(post): binutils
|
||||||
%if 0%{with cephfs_java}
|
%if 0%{with cephfs_java}
|
||||||
BuildRequires: java-devel
|
BuildRequires: java-devel
|
||||||
|
BuildRequires: jpackage-utils
|
||||||
BuildRequires: sharutils
|
BuildRequires: sharutils
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with selinux}
|
%if 0%{with selinux}
|
||||||
@ -230,21 +231,31 @@ BuildRequires: selinux-policy-devel
|
|||||||
BuildRequires: gperf
|
BuildRequires: gperf
|
||||||
BuildRequires: cmake > 3.5
|
BuildRequires: cmake > 3.5
|
||||||
BuildRequires: fuse3-devel
|
BuildRequires: fuse3-devel
|
||||||
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} == 9
|
%if 0%{?fedora} || 0%{?suse_version} > 1500 || 0%{?rhel} >= 9
|
||||||
BuildRequires: gcc-c++ >= 11
|
BuildRequires: gcc-c++ >= 11
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?suse_version} == 1500
|
||||||
|
BuildRequires: gcc11-c++
|
||||||
|
%endif
|
||||||
%if 0%{?rhel} == 8
|
%if 0%{?rhel} == 8
|
||||||
BuildRequires: %{gts_prefix}-gcc-c++
|
BuildRequires: %{gts_prefix}-gcc-c++
|
||||||
BuildRequires: %{gts_prefix}-build
|
BuildRequires: %{gts_prefix}-build
|
||||||
%ifarch aarch64
|
|
||||||
BuildRequires: %{gts_prefix}-libatomic-devel
|
BuildRequires: %{gts_prefix}-libatomic-devel
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||||
%if 0%{?fedora} || 0%{?rhel} == 9
|
BuildRequires: libatomic
|
||||||
BuildRequires: libatomic
|
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: libatomic
|
BuildRequires: libatomic
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%bcond_with ld_mold
|
||||||
|
%else
|
||||||
|
%ifarch x86_64 aarch64
|
||||||
|
%bcond_without ld_mold
|
||||||
|
%else
|
||||||
|
%bcond_with ld_mold
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
%if 0%{with ld_mold}
|
%if 0%{with ld_mold}
|
||||||
BuildRequires: mold
|
BuildRequires: mold
|
||||||
%endif
|
%endif
|
||||||
@ -265,8 +276,9 @@ BuildRequires: libaio-devel
|
|||||||
BuildRequires: libblkid-devel >= 2.17
|
BuildRequires: libblkid-devel >= 2.17
|
||||||
BuildRequires: cryptsetup-devel
|
BuildRequires: cryptsetup-devel
|
||||||
BuildRequires: libcurl-devel
|
BuildRequires: libcurl-devel
|
||||||
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: libcap-ng-devel
|
BuildRequires: libcap-ng-devel
|
||||||
BuildRequires: fmt-devel >= 6.2.1
|
#BuildRequires: fmt-devel >= 6.2.1
|
||||||
%if 0%{?fedora} || 0%{?rhel} >= 10
|
%if 0%{?fedora} || 0%{?rhel} >= 10
|
||||||
BuildRequires: rocksdb-devel
|
BuildRequires: rocksdb-devel
|
||||||
Requires: rocksdb
|
Requires: rocksdb
|
||||||
@ -346,16 +358,18 @@ BuildRequires: nlohmann_json-devel
|
|||||||
BuildRequires: libevent-devel
|
BuildRequires: libevent-devel
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with system_pmdk}
|
%if 0%{with system_pmdk}
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
BuildRequires: libndctl-devel >= 63
|
||||||
|
%else
|
||||||
|
BuildRequires: ndctl-devel >= 63
|
||||||
|
BuildRequires: daxctl-devel >= 63
|
||||||
|
%endif
|
||||||
BuildRequires: libpmem-devel
|
BuildRequires: libpmem-devel
|
||||||
BuildRequires: libpmemobj-devel
|
BuildRequires: libpmemobj-devel >= 1.8
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with system_arrow}
|
%if 0%{with system_arrow}
|
||||||
BuildRequires: libarrow-devel
|
BuildRequires: libarrow-devel
|
||||||
BuildRequires: parquet-libs-devel
|
BuildRequires: parquet-libs-devel
|
||||||
%else
|
|
||||||
BuildRequires: xsimd-devel
|
|
||||||
%endif
|
|
||||||
%if 0%{with system_utf8proc}
|
|
||||||
BuildRequires: utf8proc-devel
|
BuildRequires: utf8proc-devel
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with seastar}
|
%if 0%{with seastar}
|
||||||
@ -371,10 +385,10 @@ BuildRequires: libubsan
|
|||||||
BuildRequires: libasan
|
BuildRequires: libasan
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?rhel} == 8
|
%if 0%{?rhel} == 8
|
||||||
BuildRequires: %{gts_prefix}-annobin
|
BuildRequires: %{gts_prefix}-annobin
|
||||||
BuildRequires: %{gts_prefix}-annobin-plugin-gcc
|
BuildRequires: %{gts_prefix}-annobin-plugin-gcc
|
||||||
BuildRequires: %{gts_prefix}-libubsan-devel
|
BuildRequires: %{gts_prefix}-libubsan-devel
|
||||||
BuildRequires: %{gts_prefix}-libasan-devel
|
BuildRequires: %{gts_prefix}-libasan-devel
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
#################################################################################
|
#################################################################################
|
||||||
@ -413,6 +427,7 @@ BuildRequires: boost-devel
|
|||||||
BuildRequires: boost-random
|
BuildRequires: boost-random
|
||||||
BuildRequires: nss-devel
|
BuildRequires: nss-devel
|
||||||
BuildRequires: keyutils-libs-devel
|
BuildRequires: keyutils-libs-devel
|
||||||
|
BuildRequires: libatomic
|
||||||
BuildRequires: libibverbs-devel
|
BuildRequires: libibverbs-devel
|
||||||
BuildRequires: librdmacm-devel
|
BuildRequires: librdmacm-devel
|
||||||
BuildRequires: ninja-build
|
BuildRequires: ninja-build
|
||||||
@ -511,7 +526,7 @@ Summary: Ceph Base Package
|
|||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
%endif
|
%endif
|
||||||
Provides: ceph-test:/usr/bin/ceph-kvstore-tool = %{_epoch_prefix}%{version}-%{release}
|
Provides: ceph-test:/usr/bin/ceph-kvstore-tool
|
||||||
Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
|
Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
|
||||||
Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
|
Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
|
||||||
Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
|
Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
|
||||||
@ -611,7 +626,7 @@ Summary: Ceph Monitor Daemon
|
|||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
%endif
|
%endif
|
||||||
Provides: ceph-test:/usr/bin/ceph-monstore-tool = %{_epoch_prefix}%{version}-%{release}
|
Provides: ceph-test:/usr/bin/ceph-monstore-tool
|
||||||
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
||||||
%description mon
|
%description mon
|
||||||
ceph-mon is the cluster monitor daemon for the Ceph distributed file
|
ceph-mon is the cluster monitor daemon for the Ceph distributed file
|
||||||
@ -788,9 +803,9 @@ Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
|
|||||||
Daemon for mirroring CephFS snapshots between Ceph clusters.
|
Daemon for mirroring CephFS snapshots between Ceph clusters.
|
||||||
|
|
||||||
%package -n ceph-exporter
|
%package -n ceph-exporter
|
||||||
Summary: Daemon for exposing perf counters as Prometheus metrics
|
Summary: Daemon for exposing perf counters as Prometheus metrics
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
%endif
|
%endif
|
||||||
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
||||||
%description -n ceph-exporter
|
%description -n ceph-exporter
|
||||||
@ -889,7 +904,7 @@ Summary: Ceph Object Storage Daemon
|
|||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
%endif
|
%endif
|
||||||
Provides: ceph-test:/usr/bin/ceph-osdomap-tool = %{_epoch_prefix}%{version}-%{release}
|
Provides: ceph-test:/usr/bin/ceph-osdomap-tool
|
||||||
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
|
||||||
Requires: sudo
|
Requires: sudo
|
||||||
Requires: libstoragemgmt
|
Requires: libstoragemgmt
|
||||||
@ -1206,7 +1221,7 @@ Requires: python%{python3_pkgversion}-colorama
|
|||||||
Requires: python%{python3_pkgversion}-cephfs
|
Requires: python%{python3_pkgversion}-cephfs
|
||||||
%description -n cephfs-shell
|
%description -n cephfs-shell
|
||||||
This package contains an interactive tool that allows accessing a Ceph
|
This package contains an interactive tool that allows accessing a Ceph
|
||||||
file system without mounting it by providing a nice pseudo-shell which
|
file system without mounting it by providing a nice pseudo-shell which
|
||||||
works like an FTP client.
|
works like an FTP client.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1316,11 +1331,20 @@ Group: System/Monitoring
|
|||||||
%description prometheus-alerts
|
%description prometheus-alerts
|
||||||
This package provides Ceph default alerts for Prometheus.
|
This package provides Ceph default alerts for Prometheus.
|
||||||
|
|
||||||
|
%package mib
|
||||||
|
Summary: MIB for SNMP alerts
|
||||||
|
BuildArch: noarch
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
Group: System/Monitoring
|
||||||
|
%endif
|
||||||
|
%description mib
|
||||||
|
This package provides a Ceph MIB for SNMP traps.
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
# common
|
# common
|
||||||
#################################################################################
|
#################################################################################
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -p1 -n %{name}-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Disable lto on systems that do not support symver attribute
|
# Disable lto on systems that do not support symver attribute
|
||||||
@ -1354,7 +1378,10 @@ export CXXFLAGS="$RPM_OPT_FLAGS -DFMT_DEPRECATED_OSTREAM"
|
|||||||
|
|
||||||
%if 0%{with seastar}
|
%if 0%{with seastar}
|
||||||
# seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk()
|
# seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk()
|
||||||
%undefine _fortify_level
|
export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g')
|
||||||
|
# remove from CFLAGS too because it causes the arrow submodule to fail with:
|
||||||
|
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
|
||||||
|
export CFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g')
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
env | sort
|
env | sort
|
||||||
@ -1378,6 +1405,8 @@ env | sort
|
|||||||
-DWITH_TESTS:BOOL=OFF \
|
-DWITH_TESTS:BOOL=OFF \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with cephfs_java}
|
%if 0%{with cephfs_java}
|
||||||
|
-DJAVA_HOME=%{java_home} \
|
||||||
|
-DJAVA_LIB_INSTALL_DIR=%{_jnidir} \
|
||||||
-DWITH_CEPHFS_JAVA:BOOL=ON \
|
-DWITH_CEPHFS_JAVA:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with selinux}
|
%if 0%{with selinux}
|
||||||
@ -1395,7 +1424,7 @@ env | sort
|
|||||||
-DWITH_OCF:BOOL=ON \
|
-DWITH_OCF:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?fedora} || 0%{?rhel} >= 10
|
%if 0%{?fedora} || 0%{?rhel} >= 10
|
||||||
-DWITH_SYSTEM_ROCKSDB:BOOL=OFF \
|
-DWITH_SYSTEM_ROCKSDB:BOOL=OFF\
|
||||||
%endif
|
%endif
|
||||||
-DWITH_SYSTEM_LIBURING:BOOL=ON \
|
-DWITH_SYSTEM_LIBURING:BOOL=ON \
|
||||||
-DWITH_SYSTEM_BOOST:BOOL=OFF \
|
-DWITH_SYSTEM_BOOST:BOOL=OFF \
|
||||||
@ -1435,8 +1464,8 @@ env | sort
|
|||||||
%if 0%{with system_pmdk}
|
%if 0%{with system_pmdk}
|
||||||
-DWITH_SYSTEM_PMDK:BOOL=ON \
|
-DWITH_SYSTEM_PMDK:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with jaeger}
|
%if 0%{without jaeger}
|
||||||
-DWITH_JAEGER:BOOL=ON \
|
-DWITH_JAEGER:BOOL=OFF \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
-DBOOST_J:STRING=%{jobs} \
|
-DBOOST_J:STRING=%{jobs} \
|
||||||
@ -1447,13 +1476,11 @@ env | sort
|
|||||||
-DWITH_SYSTEM_GTEST:BOOL=ON \
|
-DWITH_SYSTEM_GTEST:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
-DWITH_SYSTEM_ZSTD:BOOL=ON \
|
-DWITH_SYSTEM_ZSTD:BOOL=ON \
|
||||||
%if 0%{?rhel}
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
-DWITH_FMT_HEADER_ONLY:BOOL=ON \
|
-DWITH_FMT_HEADER_ONLY:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with system_arrow}
|
%if 0%{with system_arrow}
|
||||||
-DWITH_SYSTEM_ARROW:BOOL=ON \
|
-DWITH_SYSTEM_ARROW:BOOL=ON \
|
||||||
%endif
|
|
||||||
%if 0%{with system_utf8proc}
|
|
||||||
-DWITH_SYSTEM_UTF8PROC:BOOL=ON \
|
-DWITH_SYSTEM_UTF8PROC:BOOL=ON \
|
||||||
%endif
|
%endif
|
||||||
%if 0%{with ld_mold}
|
%if 0%{with ld_mold}
|
||||||
@ -1507,7 +1534,6 @@ 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 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 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce
|
||||||
|
|
||||||
install -m 0755 src/cephadm/cephadm %{buildroot}%{_sbindir}/cephadm
|
|
||||||
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm
|
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm
|
||||||
chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm
|
chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm
|
||||||
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh
|
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh
|
||||||
@ -1516,7 +1542,7 @@ touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
|
|||||||
chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
|
chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
|
||||||
|
|
||||||
# firewall templates and /sbin/mount.ceph symlink
|
# firewall templates and /sbin/mount.ceph symlink
|
||||||
%if 0%{?suse_version} && !0%{?usrmerged}
|
%if 0%{?suse_version} && 0%{?suse_version} < 1550
|
||||||
mkdir -p %{buildroot}/sbin
|
mkdir -p %{buildroot}/sbin
|
||||||
ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
|
ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
|
||||||
%endif
|
%endif
|
||||||
@ -1554,6 +1580,9 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
|
|||||||
# prometheus alerts
|
# prometheus alerts
|
||||||
install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml
|
install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml
|
||||||
|
|
||||||
|
# SNMP MIB
|
||||||
|
install -m 644 -D -t %{buildroot}%{_datadir}/snmp/mibs monitoring/snmp/CEPH-MIB.txt
|
||||||
|
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
# create __pycache__ directories and their contents
|
# create __pycache__ directories and their contents
|
||||||
%py3_compile %{buildroot}%{python3_sitelib}
|
%py3_compile %{buildroot}%{python3_sitelib}
|
||||||
@ -1586,6 +1615,8 @@ install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/p
|
|||||||
%dir %{_libdir}/ceph
|
%dir %{_libdir}/ceph
|
||||||
%dir %{_libdir}/ceph/erasure-code
|
%dir %{_libdir}/ceph/erasure-code
|
||||||
%{_libdir}/ceph/erasure-code/libec_*.so*
|
%{_libdir}/ceph/erasure-code/libec_*.so*
|
||||||
|
%dir %{_libdir}/ceph/extblkdev
|
||||||
|
%{_libdir}/ceph/extblkdev/libceph_*.so*
|
||||||
%dir %{_libdir}/ceph/compressor
|
%dir %{_libdir}/ceph/compressor
|
||||||
%{_libdir}/ceph/compressor/libceph_*.so*
|
%{_libdir}/ceph/compressor/libceph_*.so*
|
||||||
%{_unitdir}/ceph-crash.service
|
%{_unitdir}/ceph-crash.service
|
||||||
@ -1685,8 +1716,12 @@ exit 0
|
|||||||
%{_bindir}/rbd-replay
|
%{_bindir}/rbd-replay
|
||||||
%{_bindir}/rbd-replay-many
|
%{_bindir}/rbd-replay-many
|
||||||
%{_bindir}/rbdmap
|
%{_bindir}/rbdmap
|
||||||
|
%{_bindir}/rgw-gap-list
|
||||||
|
%{_bindir}/rgw-gap-list-comparator
|
||||||
|
%{_bindir}/rgw-orphan-list
|
||||||
|
%{_bindir}/rgw-restore-bucket-index
|
||||||
%{_sbindir}/mount.ceph
|
%{_sbindir}/mount.ceph
|
||||||
%if 0%{?suse_version} && !0%{?usrmerged}
|
%if 0%{?suse_version} && 0%{?suse_version} < 1550
|
||||||
/sbin/mount.ceph
|
/sbin/mount.ceph
|
||||||
%endif
|
%endif
|
||||||
%if %{with lttng}
|
%if %{with lttng}
|
||||||
@ -1899,6 +1934,7 @@ fi
|
|||||||
%{_datadir}/ceph/mgr/prometheus
|
%{_datadir}/ceph/mgr/prometheus
|
||||||
%{_datadir}/ceph/mgr/rbd_support
|
%{_datadir}/ceph/mgr/rbd_support
|
||||||
%{_datadir}/ceph/mgr/restful
|
%{_datadir}/ceph/mgr/restful
|
||||||
|
%{_datadir}/ceph/mgr/rgw
|
||||||
%{_datadir}/ceph/mgr/selftest
|
%{_datadir}/ceph/mgr/selftest
|
||||||
%{_datadir}/ceph/mgr/snap_schedule
|
%{_datadir}/ceph/mgr/snap_schedule
|
||||||
%{_datadir}/ceph/mgr/stats
|
%{_datadir}/ceph/mgr/stats
|
||||||
@ -2141,17 +2177,14 @@ fi
|
|||||||
%{_bindir}/radosgw-token
|
%{_bindir}/radosgw-token
|
||||||
%{_bindir}/radosgw-es
|
%{_bindir}/radosgw-es
|
||||||
%{_bindir}/radosgw-object-expirer
|
%{_bindir}/radosgw-object-expirer
|
||||||
%{_bindir}/rgw-gap-list
|
%{_bindir}/rgw-policy-check
|
||||||
%{_bindir}/rgw-gap-list-comparator
|
|
||||||
%{_bindir}/rgw-orphan-list
|
|
||||||
%{_libdir}/libradosgw.so*
|
|
||||||
%{_mandir}/man8/radosgw.8*
|
%{_mandir}/man8/radosgw.8*
|
||||||
|
%{_mandir}/man8/rgw-policy-check.8*
|
||||||
%dir %{_localstatedir}/lib/ceph/radosgw
|
%dir %{_localstatedir}/lib/ceph/radosgw
|
||||||
%{_unitdir}/ceph-radosgw@.service
|
%{_unitdir}/ceph-radosgw@.service
|
||||||
%{_unitdir}/ceph-radosgw.target
|
%{_unitdir}/ceph-radosgw.target
|
||||||
|
|
||||||
%post radosgw
|
%post radosgw
|
||||||
%{?ldconfig}
|
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
if [ $1 -eq 1 ] ; then
|
if [ $1 -eq 1 ] ; then
|
||||||
/usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || :
|
/usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || :
|
||||||
@ -2173,7 +2206,6 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%postun radosgw
|
%postun radosgw
|
||||||
%{?ldconfig}
|
|
||||||
%systemd_postun ceph-radosgw@\*.service ceph-radosgw.target
|
%systemd_postun ceph-radosgw@\*.service ceph-radosgw.target
|
||||||
if [ $1 -ge 1 ] ; then
|
if [ $1 -ge 1 ] ; then
|
||||||
# Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
|
# Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
|
||||||
@ -2415,6 +2447,7 @@ fi
|
|||||||
%dir %{_includedir}/cephfs
|
%dir %{_includedir}/cephfs
|
||||||
%{_includedir}/cephfs/libcephfs.h
|
%{_includedir}/cephfs/libcephfs.h
|
||||||
%{_includedir}/cephfs/ceph_ll_client.h
|
%{_includedir}/cephfs/ceph_ll_client.h
|
||||||
|
%{_includedir}/cephfs/types.h
|
||||||
%dir %{_includedir}/cephfs/metrics
|
%dir %{_includedir}/cephfs/metrics
|
||||||
%{_includedir}/cephfs/metrics/Types.h
|
%{_includedir}/cephfs/metrics/Types.h
|
||||||
%{_libdir}/libcephfs.so
|
%{_libdir}/libcephfs.so
|
||||||
@ -2614,7 +2647,14 @@ exit 0
|
|||||||
%attr(0755,root,root) %dir %{_sysconfdir}/prometheus/ceph
|
%attr(0755,root,root) %dir %{_sysconfdir}/prometheus/ceph
|
||||||
%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
|
%config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
|
||||||
|
|
||||||
|
%files mib
|
||||||
|
%attr(0755,root,root) %dir %{_datadir}/snmp
|
||||||
|
%{_datadir}/snmp/mibs
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
* Wed Jun 07 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2:17.2.6-8
|
||||||
- Do not use mold in RHEL/ELN builds
|
- Do not use mold in RHEL/ELN builds
|
||||||
|
|
||||||
@ -2714,9 +2754,6 @@ exit 0
|
|||||||
* Sun Jul 17 2022 Robert-André Mauchin <zebob.m@gmail.com> - 2:17.2.1-5
|
* Sun Jul 17 2022 Robert-André Mauchin <zebob.m@gmail.com> - 2:17.2.1-5
|
||||||
- Rebuild for new fmt
|
- Rebuild for new fmt
|
||||||
|
|
||||||
* Sun Jul 10 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2:17.2.1-4
|
|
||||||
- Rebuild for new gtest
|
|
||||||
|
|
||||||
* Wed Jul 6 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-3
|
* Wed Jul 6 2022 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:17.2.1-3
|
||||||
- enable cephfs-shell
|
- enable cephfs-shell
|
||||||
|
|
||||||
@ -2930,15 +2967,15 @@ exit 0
|
|||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Jul 21 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-9
|
* Tue Jul 21 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-9
|
||||||
- %%cmake_build and %%cmake_install
|
- %cmake_build and %cmake_install
|
||||||
|
|
||||||
* Mon Jul 20 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-8
|
* Mon Jul 20 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-8
|
||||||
- see 15.2.4-4 (f33-java11) for real this time
|
- see 15.2.4-4 (f33-java11) for real this time
|
||||||
- and use %%make_install macro
|
- and use %make_install macro
|
||||||
|
|
||||||
* Mon Jul 20 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-7
|
* Mon Jul 20 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-7
|
||||||
- see 15.2.4-3, hopefully for real this time
|
- see 15.2.4-3, hopefully for real this time
|
||||||
- and use %%make_install macro
|
- and use %make_install macro
|
||||||
|
|
||||||
* Fri Jul 17 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-6
|
* Fri Jul 17 2020 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 2:15.2.4-6
|
||||||
- see 15.2.4-4
|
- see 15.2.4-4
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (ceph-17.2.6.tar.gz) = dca9aea2ce210c15fcc34cb06a5dc5b4488ffa36d684166d47ebd87e48b54b6fee0882e1c67007a780e1c25754e9bc6e760cc10f60ea1183263f8504ef2dbd9b
|
SHA512 (ceph-18.1.0.tar.gz) = 9818b061da77e447143666c4be171cd3461b2bfeb4bad4fec5163b2b3b27bc3a5874426833465673204877b3c287b109b65099d9335544dde1323eb39da7f418
|
||||||
|
Loading…
Reference in New Issue
Block a user