]> git.pld-linux.org Git - packages/ceph.git/commitdiff
- updated to 17.2.7 master auto/th/ceph-17.2.7-1
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 4 Mar 2024 05:28:43 +0000 (06:28 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 4 Mar 2024 05:28:43 +0000 (06:28 +0100)
27 files changed:
boost1.81.patch [new file with mode: 0644]
ceph-arrow-pld.patch [new file with mode: 0644]
ceph-cmake-static.patch [new file with mode: 0644]
ceph-fio.patch [new file with mode: 0644]
ceph-gcc12.patch [new file with mode: 0644]
ceph-glibc.patch [new file with mode: 0644]
ceph-init-fix.patch [deleted file]
ceph-libdir.patch [new file with mode: 0644]
ceph-libfmt.patch [new file with mode: 0644]
ceph-liburing.patch [new file with mode: 0644]
ceph-mds@.service [deleted file]
ceph-mon@.service [deleted file]
ceph-osd@.service [deleted file]
ceph-python.patch [new file with mode: 0644]
ceph-qat.patch [new file with mode: 0644]
ceph-system-rocksdb.patch [new file with mode: 0644]
ceph-system-xsimd.patch [new file with mode: 0644]
ceph.logrotate.patch [deleted file]
ceph.spec
ceph.target [deleted file]
cephctl [deleted file]
cxx.patch [deleted file]
ix86-no-asm.patch [new file with mode: 0644]
long-int-time_t.patch [new file with mode: 0644]
no-virtualenvs.patch [new file with mode: 0644]
types.patch [new file with mode: 0644]
use-provided-cpu-flag-values.patch [new file with mode: 0644]

diff --git a/boost1.81.patch b/boost1.81.patch
new file mode 100644 (file)
index 0000000..2dd06ed
--- /dev/null
@@ -0,0 +1,49 @@
+https://bugs.gentoo.org/887481
+--- a/src/rgw/rgw_asio_client.cc
++++ b/src/rgw/rgw_asio_client.cc
+@@ -39,11 +39,11 @@
+     const auto& value = header->value();
+     if (field == beast::http::field::content_length) {
+-      env.set("CONTENT_LENGTH", value.to_string());
++      env.set("CONTENT_LENGTH", value);
+       continue;
+     }
+     if (field == beast::http::field::content_type) {
+-      env.set("CONTENT_TYPE", value.to_string());
++      env.set("CONTENT_TYPE", value);
+       continue;
+     }
+@@ -62,26 +62,26 @@
+     }
+     *dest = '\0';
+-    env.set(buf, value.to_string());
++    env.set(buf, value);
+   }
+   int major = request.version() / 10;
+   int minor = request.version() % 10;
+   env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
+-  env.set("REQUEST_METHOD", request.method_string().to_string());
++  env.set("REQUEST_METHOD", request.method_string());
+   // split uri from query
+   auto uri = request.target();
+   auto pos = uri.find('?');
+   if (pos != uri.npos) {
+     auto query = uri.substr(pos + 1);
+-    env.set("QUERY_STRING", query.to_string());
++    env.set("QUERY_STRING", query);
+     uri = uri.substr(0, pos);
+   }
+-  env.set("SCRIPT_URI", uri.to_string());
++  env.set("SCRIPT_URI", uri);
+-  env.set("REQUEST_URI", request.target().to_string());
++  env.set("REQUEST_URI", request.target());
+   char port_buf[16];
+   snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
diff --git a/ceph-arrow-pld.patch b/ceph-arrow-pld.patch
new file mode 100644 (file)
index 0000000..ee5ca80
--- /dev/null
@@ -0,0 +1,11 @@
+--- ceph-17.2.2/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake.orig   2021-11-10 03:04:48.000000000 +0100
++++ ceph-17.2.2/src/arrow/cpp/cmake_modules/SetupCxxFlags.cmake        2022-07-28 17:43:21.652954490 +0200
+@@ -626,7 +626,7 @@ elseif("${CMAKE_BUILD_TYPE}" STREQUAL "P
+   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_PROFILE_BUILD}")
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAGS_PROFILE_BUILD}")
+ else()
+-  message(FATAL_ERROR "Unknown build type: ${CMAKE_BUILD_TYPE}")
++
+ endif()
+ message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")
diff --git a/ceph-cmake-static.patch b/ceph-cmake-static.patch
new file mode 100644 (file)
index 0000000..e912c5e
--- /dev/null
@@ -0,0 +1,38 @@
+https://src.fedoraproject.org/rpms/ceph/raw/rawhide/f/0018-src-rgw-store-dbstore-CMakeLists.txt.patch
+--- ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt.orig       2022-03-01 08:19:04.974902872 -0500
++++ ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt    2022-03-11 07:55:16.236261471 -0500
+@@ -12,5 +12,5 @@
+ 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
+     )
+-add_library(dbstore_lib ${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 PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw")
+ set(link_targets spawn)
+@@ -38,6 +38,7 @@
+ # add pthread library
+ set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
++set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} global)
+ find_package(gtest QUIET)
+ 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
diff --git a/ceph-fio.patch b/ceph-fio.patch
new file mode 100644 (file)
index 0000000..3688c42
--- /dev/null
@@ -0,0 +1,17 @@
+--- ceph-17.2.2/src/test/fio/CMakeLists.txt.orig       2022-05-18 21:51:52.000000000 +0200
++++ ceph-17.2.2/src/test/fio/CMakeLists.txt    2022-06-14 18:58:25.354554233 +0200
+@@ -11,11 +11,11 @@ add_library(fio_librgw SHARED fio_librgw
+ target_link_libraries(fio_librgw rgw fio)
+ target_link_libraries(fio_ceph_objectstore os global)
+-install(TARGETS fio_ceph_objectstore DESTINATION lib)
++install(TARGETS fio_ceph_objectstore DESTINATION lib${LIB_SUFFIX})
+ target_link_libraries(fio_ceph_messenger os global)
+-install(TARGETS fio_ceph_messenger DESTINATION lib)
++install(TARGETS fio_ceph_messenger DESTINATION lib${LIB_SUFFIX})
+ target_link_libraries(fio_librgw os global rgw)
+-install(TARGETS fio_librgw DESTINATION lib)
++install(TARGETS fio_librgw DESTINATION lib${LIB_SUFFIX})
diff --git a/ceph-gcc12.patch b/ceph-gcc12.patch
new file mode 100644 (file)
index 0000000..4440750
--- /dev/null
@@ -0,0 +1,63 @@
+--- ceph-16.2.7/src/include/buffer.h.orig      2022-01-17 12:17:19.193356237 -0500
++++ ceph-16.2.7/src/include/buffer.h   2022-01-17 12:17:58.599639592 -0500
+@@ -38,6 +38,7 @@
+ # include <sys/mman.h>
+ #endif
++#include <memory>
+ #include <iosfwd>
+ #include <iomanip>
+ #include <list>
+--- ceph-16.2.7/src/common/LogEntry.cc.orig    2022-01-17 13:52:10.799134159 -0500
++++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
+@@ -183,7 +183,7 @@
+       return "crit";
+     default:
+       ceph_abort();
+-      return 0;
++      return "";
+   }
+ }
+--- ceph-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
+@@ -114,7 +114,7 @@
+ #include "rgw/rgw_common.h"
+ 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();
+@@ -142,7 +142,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-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      2022-02-11 17:21:57.155325437 -0500
+@@ -466,7 +466,7 @@
+   std::string  print(int ident) override
+   {
+-    return std::string(0);
++    return std::string("");
+   }
+   void push_argument(base_statement* arg)
diff --git a/ceph-glibc.patch b/ceph-glibc.patch
new file mode 100644 (file)
index 0000000..403dd69
--- /dev/null
@@ -0,0 +1,10 @@
+--- ceph-17.2.3/src/seastar/include/seastar/core/file.hh.orig  2021-12-19 23:02:10.000000000 +0100
++++ ceph-17.2.3/src/seastar/include/seastar/core/file.hh       2022-08-29 19:50:21.853290757 +0200
+@@ -32,7 +32,6 @@
+ #include <system_error>
+ #include <sys/statvfs.h>
+ #include <sys/ioctl.h>
+-#include <linux/fs.h>
+ #include <sys/uio.h>
+ #include <unistd.h>
diff --git a/ceph-init-fix.patch b/ceph-init-fix.patch
deleted file mode 100644 (file)
index b4752be..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up ceph-0.46/src/init-ceph.in.orig ceph-0.46/src/init-ceph.in
---- ceph-0.46/src/init-ceph.in.orig    2012-04-24 16:06:39.000000000 -0400
-+++ ceph-0.46/src/init-ceph.in 2012-05-09 16:41:36.500004052 -0400
-@@ -1,11 +1,11 @@
- #!/bin/sh
- # Start/stop ceph daemons
--# chkconfig: 2345 60 80
-+# chkconfig: - 60 80
- ### BEGIN INIT INFO
- # Provides:          ceph
--# Default-Start:     2 3 4 5
--# Default-Stop:      0 1 6
-+# Default-Start:
-+# Default-Stop:
- # Required-Start:    $remote_fs $named $network $time
- # Required-Stop:     $remote_fs $named $network $time
- # Short-Description: Start Ceph distributed file system daemons at boot time
diff --git a/ceph-libdir.patch b/ceph-libdir.patch
new file mode 100644 (file)
index 0000000..871be3e
--- /dev/null
@@ -0,0 +1,11 @@
+--- ceph-17.2.3/src/os/CMakeLists.txt.orig     2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/src/os/CMakeLists.txt  2022-08-28 13:58:09.699009978 +0200
+@@ -76,7 +76,7 @@ if(WITH_BLUEFS)
+   target_include_directories(bluefs SYSTEM PUBLIC
+     $<TARGET_PROPERTY:RocksDB::RocksDB,INTERFACE_INCLUDE_DIRECTORIES>)
+   target_link_libraries(bluefs global)
+-  install(TARGETS bluefs DESTINATION lib)
++  install(TARGETS bluefs DESTINATION lib${LIB_SUFFIX})
+ endif(WITH_BLUEFS)
+ if(WITH_FUSE)
diff --git a/ceph-libfmt.patch b/ceph-libfmt.patch
new file mode 100644 (file)
index 0000000..4b768f9
--- /dev/null
@@ -0,0 +1,107 @@
+--- ceph-17.2.7/src/common/hobject_fmt.h       2023-10-26 01:46:16.000000000 +0200
++++ ceph-17.2.7.mod/src/common/hobject_fmt.h   2024-03-03 07:44:04.994865841 +0100
+@@ -9,6 +9,7 @@
+ #include <fmt/ranges.h>
+ #include "common/hobject.h"
++#include "include/object_fmt.h"
+ #include "include/types_fmt.h"
+ #include "msg/msg_fmt.h"
+--- ceph-17.2.7/src/common/LogEntry.h  2023-10-26 01:46:16.000000000 +0200
++++ ceph-17.2.7.mod/src/common/LogEntry.h      2024-03-02 07:42:35.321554400 +0100
+@@ -18,6 +18,7 @@
+ #include <fmt/format.h>
+ #include "include/utime.h"
++#include "include/utime_fmt.h"
+ #include "msg/msg_fmt.h"
+ #include "msg/msg_types.h"
+ #include "common/entity_name.h"
+@@ -194,6 +195,9 @@
+              << e.channel << " " << e.prio << " " << e.msg;
+ }
++template <>
++struct fmt::formatter<clog_type> : ostream_formatter {};
++
+ template <> struct fmt::formatter<EntityName> : fmt::formatter<std::string_view> {
+   template <typename FormatContext>
+   auto format(const EntityName& e, FormatContext& ctx) {
+--- ceph-17.2.7/src/include/types_fmt.h        2023-10-26 01:46:16.000000000 +0200
++++ ceph-17.2.7.mod/src/include/types_fmt.h    2024-03-02 09:54:14.238851992 +0100
+@@ -6,6 +6,7 @@
+  */
+ #include <fmt/format.h>
++#include <fmt/ostream.h>
+ #include <string_view>
+@@ -26,3 +27,9 @@
+     return fmt::format_to(ctx.out(), "}}");
+   }
+ };
++
++template <typename T>
++struct fmt::formatter<ceph_le<T>> : ostream_formatter {};
++
++template <>
++struct fmt::formatter<shard_id_t> : ostream_formatter {};
+--- ceph-17.2.7/src/msg/async/frames_v2.cc     2023-10-26 01:46:16.000000000 +0200
++++ ceph-17.2.7.mod/src/msg/async/frames_v2.cc 2024-03-01 19:04:33.315590782 +0100
+@@ -13,6 +13,7 @@
+  */
+ #include "frames_v2.h"
++#include "include/types_fmt.h"
+ #include <ostream>
+--- ceph-17.2.7/src/tools/neorados.cc  2024-03-03 19:54:51.414457588 +0100
++++ ceph-17.2.7.mod/src/tools/neorados.cc      2024-03-03 15:18:02.793213584 +0100
+@@ -143,7 +143,7 @@
+     throw bs::system_error(ec,
+                          fmt::format(
+                            "when creating object '{}' in pool '{}'",
+-                           obj, pname));
++                           fmt::streamed(obj), pname));
+ }
+ inline constexpr std::size_t io_size = 4 << 20;
+@@ -179,7 +179,7 @@
+     if (ec)
+       throw bs::system_error(ec, fmt::format(
+                              "when writing object '{}' in pool '{}'",
+-                             obj, pname));
++                             fmt::streamed(obj), pname));
+   }
+ }
+@@ -200,7 +200,7 @@
+       throw bs::system_error(
+       ec,
+       fmt::format("when getting length of object '{}' in pool '{}'",
+-                  obj, pname));
++                  fmt::streamed(obj), pname));
+   }
+   std::size_t off = 0;
+@@ -213,7 +213,7 @@
+       throw bs::system_error(
+       ec,
+       fmt::format("when reading from object '{}' in pool '{}'",
+-                  obj, pool));
++                  fmt::streamed(obj), pool));
+     off += bl.length();
+     bl.write_stream(std::cout);
+@@ -234,7 +234,7 @@
+   if (ec)
+     throw bs::system_error(ec, fmt::format(
+                            "when removing object '{}' in pool '{}'",
+-                           obj, pname));
++                           fmt::streamed(obj), pname));
+ }
+ static constexpr auto version = std::make_tuple(0ul, 0ul, 1ul);
diff --git a/ceph-liburing.patch b/ceph-liburing.patch
new file mode 100644 (file)
index 0000000..9d58e7a
--- /dev/null
@@ -0,0 +1,11 @@
+--- ceph-16.2.7/cmake/modules/Finduring.cmake.orig     2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/cmake/modules/Finduring.cmake  2022-02-16 22:00:07.850162837 +0100
+@@ -5,7 +5,7 @@
+ # uring_FOUND - True if uring found.
+ find_path(URING_INCLUDE_DIR liburing.h)
+-find_library(URING_LIBRARIES liburing.a liburing)
++find_library(URING_LIBRARIES uring)
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
diff --git a/ceph-mds@.service b/ceph-mds@.service
deleted file mode 100644 (file)
index aec46fd..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Ceph metadata server daemon
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-mon@.service b/ceph-mon@.service
deleted file mode 100644 (file)
index 421897d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Ceph cluster monitor daemon
-After=network-online.target
-Wants=network-online.target
-
-# According to:
-#   http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
-# these can be removed once ceph-mon will dynamically change network
-# configuration.
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-osd@.service b/ceph-osd@.service
deleted file mode 100644 (file)
index 1e08355..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=Ceph object storage daemon
-After=network-online.target local-fs.target
-Wants=network-online.target local-fs.target
-PartOf=ceph.target
-
-[Service]
-EnvironmentFile=-/etc/sysconfig/ceph
-Environment=CLUSTER=ceph
-ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i
-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
-ExecReload=/bin/kill -HUP $MAINPID
-LimitNOFILE=131072
-
-[Install]
-WantedBy=ceph.target
diff --git a/ceph-python.patch b/ceph-python.patch
new file mode 100644 (file)
index 0000000..54fae5d
--- /dev/null
@@ -0,0 +1,29 @@
+--- ceph-16.2.7/cmake/modules/Distutils.cmake~ 2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/cmake/modules/Distutils.cmake  2022-02-12 11:15:17.620439748 +0100
+@@ -19,12 +19,10 @@
+   install(CODE "
+     set(options --prefix=${CMAKE_INSTALL_PREFIX})
+     if(DEFINED ENV{DESTDIR})
+-      if(EXISTS /etc/debian_version)
+-        list(APPEND options --install-layout=deb)
+-      endif()
+       list(APPEND options
+         --root=\$ENV{DESTDIR}
+-        --single-version-externally-managed)
++        --single-version-externally-managed
++      --optimize=2)
+     endif()
+     if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\")
+       list(APPEND options --install-script=${DU_INSTALL_SCRIPT})
+@@ -109,10 +107,7 @@
+     set(options --prefix=${CMAKE_INSTALL_PREFIX})
+     if(DEFINED ENV{DESTDIR})
+-      if(EXISTS /etc/debian_version)
+-        list(APPEND options --install-layout=deb)
+-      endif()
+-      list(APPEND options --root=\$ENV{DESTDIR})
++      list(APPEND options --root=\$ENV{DESTDIR} --optimize=2)
+     else()
+       list(APPEND options --root=/)
+     endif()
diff --git a/ceph-qat.patch b/ceph-qat.patch
new file mode 100644 (file)
index 0000000..0954baa
--- /dev/null
@@ -0,0 +1,102 @@
+--- ceph-17.2.3/CMakeLists.txt.orig    2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/CMakeLists.txt 2022-08-28 14:39:36.852487766 +0200
+@@ -278,7 +278,7 @@ option(WITH_BLUEFS "libbluefs library" O
+ option(WITH_QAT "Enable Qat driver" OFF)
+ if(WITH_QAT)
+-  find_package(QatDrv REQUIRED COMPONENTS qat_s usdm_drv_s)
++  find_package(QatDrv REQUIRED COMPONENTS qat usdm)
+   set(HAVE_QATDRV $(QatDrv_FOUND))
+ endif()
+--- ceph-17.2.3/src/crypto/qat/CMakeLists.txt.orig     2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/src/crypto/qat/CMakeLists.txt  2022-08-28 14:39:51.893274653 +0200
+@@ -12,8 +12,8 @@ add_library(ceph_crypto_qat SHARED ${qat
+ add_dependencies(crypto_plugins ceph_crypto_qat)
+ target_link_libraries(ceph_crypto_qat PRIVATE
+-                      QatDrv::qat_s
+-                      QatDrv::usdm_drv_s)
++                      QatDrv::qat
++                      QatDrv::usdm)
+ add_dependencies(crypto_plugins ceph_crypto_qat)
+ set_target_properties(ceph_crypto_qat PROPERTIES VERSION 1.0.0 SOVERSION 1)
+--- ceph-17.2.3/cmake/modules/FindQatDrv.cmake.orig    2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/cmake/modules/FindQatDrv.cmake 2022-08-28 17:59:19.158087689 +0200
+@@ -39,23 +39,15 @@ function(get_qatdrv_version versionfile)
+ endfunction()
+ find_path(QATDRV_INCLUDE_DIR
+-  name quickassist/include/cpa.h
+-  HINTS $ENV{ICP_ROOT} /opt/APP/driver/QAT
+-  NO_DEFAULT_PATH)
++  name qat/cpa.h
++  HINTS $ENV{ICP_ROOT}
++  )
+ if(QATDRV_INCLUDE_DIR)
+-  get_qatdrv_version(${QATDRV_INCLUDE_DIR}/versionfile)
+-  set(QatDrv_INCLUDE_DIRS
+-      ${QATDRV_INCLUDE_DIR}/quickassist/include
+-      ${QATDRV_INCLUDE_DIR}/quickassist/include/dc
+-      ${QATDRV_INCLUDE_DIR}/quickassist/lookaside/access_layer/include
+-      ${QATDRV_INCLUDE_DIR}/quickassist/include/lac
+-      ${QATDRV_INCLUDE_DIR}/quickassist/utilities/libusdm_drv
+-      ${QATDRV_INCLUDE_DIR}/quickassist/utilities/libusdm_drv/include)
++  set(QatDrv_INCLUDE_DIRS ${QATDRV_INCLUDE_DIR})
+ endif()
+ foreach(component ${QatDrv_FIND_COMPONENTS})
+   find_library(QatDrv_${component}_LIBRARIES
+-               NAMES ${component}
+-               HINTS ${QATDRV_INCLUDE_DIR}/build/)
++               NAMES ${component})
+   mark_as_advanced(QatDrv_INCLUDE_DIRS
+                    QatDrv_${component}_LIBRARIES)
+   list(APPEND QatDrv_LIBRARIES "${QatDrv_${component}_LIBRARIES}")  
+@@ -71,7 +63,7 @@ find_package_handle_standard_args(QatDrv
+ foreach(component ${QatDrv_FIND_COMPONENTS})
+   if(NOT TARGET QatDrv::${component})
+-    add_library(QatDrv::${component} STATIC IMPORTED GLOBAL)
++    add_library(QatDrv::${component} SHARED IMPORTED GLOBAL)
+     set_target_properties(QatDrv::${component} PROPERTIES
+                           INTERFACE_INCLUDE_DIRECTORIES "${QatDrv_INCLUDE_DIRS}"
+                           IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+--- ceph-17.2.3/src/compressor/CMakeLists.txt.orig     2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/src/compressor/CMakeLists.txt  2022-08-28 18:59:38.018324891 +0200
+@@ -7,8 +7,8 @@ endif()
+ add_library(compressor_objs OBJECT ${compressor_srcs})
+ if(HAVE_QATZIP AND HAVE_QATDRV)
+   target_link_libraries(compressor_objs PRIVATE
+-                        QatDrv::qat_s
+-                        QatDrv::usdm_drv_s
++                        QatDrv::qat
++                        QatDrv::usdm
+                         qatzip::qatzip
+                        )
+ endif()
+--- ceph-17.2.3/src/crypto/qat/qcccrypto.h.orig        2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/src/crypto/qat/qcccrypto.h     2022-08-28 20:18:02.916194325 +0200
+@@ -8,13 +8,15 @@
+ #include <pthread.h>
+ #include <queue>
+ extern "C" {
+-#include "cpa.h"
+-#include "lac/cpa_cy_sym.h"
+-#include "lac/cpa_cy_im.h"
+-#include "qae_mem.h"
+-#include "icp_sal_user.h"
+-#include "icp_sal_poll.h"
+-#include "qae_mem_utils.h"
++#include "qat/cpa.h"
++#include "qat/cpa_cy_sym.h"
++#include "qat/cpa_cy_im.h"
++#include "qat/qae_mem.h"
++#include "qat/icp_sal_user.h"
++#include "qat/icp_sal_poll.h"
++
++CpaStatus qaeMemInit(void);
++void qaeMemDestroy(void);
+ }
+ class QccCrypto {
diff --git a/ceph-system-rocksdb.patch b/ceph-system-rocksdb.patch
new file mode 100644 (file)
index 0000000..cd72b4c
--- /dev/null
@@ -0,0 +1,8 @@
+--- ceph-17.2.3/src/crimson/os/alienstore/CMakeLists.txt.orig  2022-07-28 23:52:12.000000000 +0200
++++ ceph-17.2.3/src/crimson/os/alienstore/CMakeLists.txt       2022-09-14 18:00:21.236806582 +0200
+@@ -1,4 +1,4 @@
+-include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/rocksdb/include")
++include_directories(SYSTEM PUBLIC $<TARGET_PROPERTY:RocksDB::RocksDB,INTERFACE_INCLUDE_DIRECTORIES>)
+ add_library(alien::cflags INTERFACE IMPORTED)
+ set_target_properties(alien::cflags PROPERTIES
diff --git a/ceph-system-xsimd.patch b/ceph-system-xsimd.patch
new file mode 100644 (file)
index 0000000..1b16567
--- /dev/null
@@ -0,0 +1,11 @@
+--- 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})
diff --git a/ceph.logrotate.patch b/ceph.logrotate.patch
deleted file mode 100644 (file)
index bdde0fa..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---- ceph-0.94.7/src/logrotate.conf.orig        2016-05-21 07:57:16.259310201 +0200
-+++ ceph-0.94.7/src/logrotate.conf     2016-05-21 07:59:10.385972051 +0200
-@@ -4,26 +4,7 @@
-     compress
-     sharedscripts
-     postrotate
--        if which service > /dev/null 2>&1 && [ -x `which service` ]; then
--            service ceph reload >/dev/null
--        elif which invoke-rc.d > /dev/null 2>&1 && [ -x `which invoke-rc.d` ]; then
--            invoke-rc.d ceph reload >/dev/null
--        fi
--        # Possibly reload twice, but depending on ceph.conf the reload above may be a no-op
--        if which initctl > /dev/null 2>&1 && [ -x `which initctl` ]; then
--            for daemon in osd mon mds ; do
--              find -L /var/lib/ceph/$daemon/ -mindepth 1 -maxdepth 1 -regextype posix-egrep -regex '.*/[A-Za-z0-9]+-[A-Za-z0-9._-]+' -printf '%P\n' \
--                | while read f; do
--                    if [ -e "/var/lib/ceph/$daemon/$f/done" -o -e "/var/lib/ceph/$daemon/$f/ready" ] && [ -e "/var/lib/ceph/$daemon/$f/upstart" ] && [ ! -e "/var/lib/ceph/$daemon/$f/sysvinit" ]; then
--                      cluster="${f%%-*}"
--                      id="${f#*-}"
--
--                      initctl reload ceph-$daemon cluster="$cluster" id="$id" 2>/dev/null || :
--                    fi
--                  done
--            done
--        fi
--        killall -q -1 ceph-fuse || true
-+        cephctl reload >/dev/null 2>/dev/null
-     endscript
-     missingok
-     notifempty
index 2b8e84cd22f73f6a90703eaa491524a78979de05..b8f6371826cc01becf2805cc47ccae0849601992 100644 (file)
--- a/ceph.spec
+++ b/ceph.spec
 # TODO:
-#      - proper init scripts if non-systemd boot is too be supported
-#         (upstream scripts seem overcomplicated and hardly useful)
-#      - run as non-root user
+# - system arrow, parquet (WITH_SYSTEM_ARROW=ON, arrow>=4, parquet>=4)?
+# - brotli? (WITH_BROTLI=ON, uses internal brotli as downloaded subproject)
+# - proper init scripts if non-systemd boot is to be supported
+#   (upstream scripts seem overcomplicated and hardly useful)
+# - run as non-root user
+# - build selinux policy (-DWITH_SELINUX=ON)
+# - package sphinx docs (from doc/)
 #
 # Note on versioning: http://docs.ceph.com/docs/master/releases/
+# Reef (18.1.2) is in RC stage currently
 #
 # Conditional build:
 %bcond_without java            # Java binding
-%bcond_with    accelio         # Accelio transport support
-%bcond_with    kinetic         # Kinetic storage support [needs update for internal API changes]
-%bcond_with    rocksdb         # RocksDB storage support [needs update for internal API changes]
-%bcond_with    zfs             # ZFS support
+%bcond_with    angular         # Angular-based mgr/dashboard frontend (built using npm, too outdated currently)
+%bcond_without bluefs          # BlueFS library
+%bcond_with    dpdk            # DPDK messaging
+# 15.2.x/16.2.x build fails with:
+# src/rgw/rgw_fcgi_process.cc:92:53: error: 'class rgw::sal::RGWRadosStore' has no member named 'get_new_req_id'
+%bcond_with    fcgi            # RADOS Gateway FCGI frontend
+%bcond_with    fio             # FIO engines support (16.x: downloads fio as internal subproject)
+%bcond_with    kerberos        # GSSAPI/KRB5 support
+%bcond_without pmem            # PMDK (persistent memory) support
+%bcond_without qat             # QAT driver
+%bcond_without qatzip          # QATZIP
+%bcond_without rdma            # RDMA transport support
+%bcond_with    seastar         # seastar components (64-bit pointers required)
+%bcond_with    spdk            # Ceph SPDK support (DPDK based)
+%bcond_without system_rocksdb  # system RocksDB storage support
+%bcond_without zbd             # ZBD bluestore backend
+# 15.2.x/16.2.x: "fallthrough" define from OpenZFS's spl breaks "[[fallthrough]]" in src/include/blobhash.h
+%bcond_with    zfs             # ZFS support [not ready for zfs 0.8.x]
 %bcond_without lttng           # LTTng tracing
 %bcond_without babeltrace      # Babeltrace traces support
 %bcond_without tcmalloc        # tcmalloc allocator
+%bcond_with    tests           # build tests
 
 %ifarch x32
 %undefine      with_tcmalloc
 %endif
+%ifnarch %{x8664} aarch64
+%undefine      with_pmem
+%endif
+%ifnarch %{x8664} aarch64 mips64 ppc64 sparc64 s390x
+%undefine      with_seastar
+%endif
+
+%{?with_java:%{?use_default_jdk}}
 #
 Summary:       User space components of the Ceph file system
 Summary(pl.UTF-8):     DziaÅ‚ajÄ…ce w przestrzeni użytkownika elementy systemu plików Ceph
 Name:          ceph
-Version:       0.94.10
+Version:       17.2.7
 Release:       1
 License:       LGPL v2.1 (libraries), GPL v2 (some programs)
 Group:         Base
 Source0:       http://download.ceph.com/tarballs/%{name}-%{version}.tar.gz
-# Source0-md5: 9bf0d6df74e6da3725dcc3b7adf3d849
+# Source0-md5: 843fb59f95f62e0e156539e49a2a3a9a
 Source1:       ceph.sysconfig
-# based on files from https://github.com/ceph/ceph/tree/master/systemd
-Source10:      cephctl
-Source11:      ceph-mds@.service
-Source12:      ceph-mon@.service
-Source13:      ceph-osd@.service
-Source14:      ceph.target
-Source15:      ceph.tmpfiles
-Patch0:                %{name}-init-fix.patch
-Patch1:                %{name}.logrotate.patch
-Patch2:                cxx.patch
-URL:           http://ceph.com/
-%{?with_accelio:BuildRequires: accelio-devel}
-BuildRequires: autoconf >= 2.59
-BuildRequires: automake
+Source3:       ceph.tmpfiles
+Patch0:                %{name}-python.patch
+Patch1:                %{name}-fio.patch
+Patch2:                %{name}-cmake-static.patch
+Patch3:                %{name}-arrow-pld.patch
+Patch4:                no-virtualenvs.patch
+Patch5:                %{name}-libdir.patch
+Patch6:                types.patch
+Patch7:                use-provided-cpu-flag-values.patch
+Patch8:                ix86-no-asm.patch
+Patch9:                long-int-time_t.patch
+Patch10:       %{name}-qat.patch
+Patch11:       %{name}-liburing.patch
+Patch12:       %{name}-glibc.patch
+Patch13:       %{name}-libfmt.patch
+Patch14:       %{name}-system-rocksdb.patch
+# https://src.fedoraproject.org/rpms/ceph/blob/rawhide/f/0017-gcc-12-omnibus.patch
+Patch15:       %{name}-gcc12.patch
+# https://src.fedoraproject.org/rpms/ceph/blob/rawhide/f/0020-src-arrow-cpp-cmake_modules-ThirdpartyToolchain.cmake.patch
+Patch16:       %{name}-system-xsimd.patch
+Patch17:       boost1.81.patch
+URL:           https://ceph.io/
+%{?with_qatzip:BuildRequires:  QATzip-devel}
 %{?with_babeltrace:BuildRequires:      babeltrace-devel}
-BuildRequires: boost-devel >= 1.34
+BuildRequires: boost-devel >= 1.73
+BuildRequires: boost-python3-devel >= 1.73
+%{?with_seastar:BuildRequires: c-ares-devel >= 1.13.0}
+BuildRequires: cmake >= 3.22.2
+%{?with_seastar:BuildRequires: cryptopp-devel >= 5.6.5}
+BuildRequires: cryptsetup-devel >= 2.0.5
 BuildRequires: curl-devel
+%if %{with dpdk} || %{with spdk}
+# also seastar with dpdk support
+BuildRequires: dpdk-devel
+%endif
+BuildRequires: doxygen
 BuildRequires: expat-devel >= 1.95
-BuildRequires: fcgi-devel
+%{?with_fcgi:BuildRequires:    fcgi-devel}
+%{?with_fio:BuildRequires:     fio-devel >= 3.15}
 BuildRequires: gdbm-devel
+%{?with_seastar:BuildRequires: gnutls-devel >= 3.3.26}
+BuildRequires: gperf
+%{?with_tcmalloc:BuildRequires:        gperftools-devel >= 2.6.2}
+%{?with_kerberos:BuildRequires:        heimdal-devel}
+%{?with_seastar:BuildRequires: hwloc-devel >= 1.11.2}
 %if %{with java}
-BuildRequires: jdk
+%buildrequires_jdk
+BuildRequires: %{?use_jdk:%{use_jdk}-jre-base-X11}%{!?use_jdk:jre-X11}
 %endif
 BuildRequires: keyutils-devel
-%{?with_kinetic:BuildRequires: kinetic-cpp-client}
-BuildRequires: leveldb-devel >= 1.2
+BuildRequires: leveldb-devel >= 1.23-2
 BuildRequires: libaio-devel
 BuildRequires: libatomic_ops
 BuildRequires: libblkid-devel >= 2.17
+BuildRequires: libcap-ng-devel
 BuildRequires: libedit-devel >= 2.11
-BuildRequires: libfuse-devel
-%{?with_accelio:BuildRequires: libibverbs-devel}
+BuildRequires: libfmt-devel >= 6.0.0
+BuildRequires: libfuse3-devel >= 3
+%{?with_rdma:BuildRequires:    libibverbs-devel}
+BuildRequires: libicu-devel >= 52.0
 BuildRequires: libltdl-devel
-%{?with_accelio:BuildRequires: librdmacm-devel}
-BuildRequires: libs3-devel
-BuildRequires: libstdc++-devel
-%{?with_tcmalloc:BuildRequires:        libtcmalloc-devel}
+BuildRequires: libnl-devel >= 3.2
+BuildRequires: librdkafka-devel >= 0.9.2
+%{?with_rdma:BuildRequires:    librdmacm-devel}
+%{?with_seastar:BuildRequires: libsctp-devel}
+BuildRequires: libstdc++-devel >= 6:7
+%{?with_tcmalloc:BuildRequires:        libtcmalloc-devel >= 2.6.2}
 BuildRequires: libtool >= 2:1.5
+BuildRequires: liburing-devel
+BuildRequires: libutf8proc-devel >= 2.2.0
 BuildRequires: libuuid-devel
+BuildRequires: libxml2-devel >= 2.0
+%{?with_zbd:BuildRequires:     libzbd-devel}
 %{?with_lttng:BuildRequires:   lttng-ust-devel}
-BuildRequires: nss-devel
+BuildRequires: lua-devel >= 5.3
+BuildRequires: lz4-devel >= 1:1.7.3
+BuildRequires: ncurses-devel
+%{?with_angular:BuildRequires: npm}
+BuildRequires: nspr-devel >= 4
+BuildRequires: nss-devel >= 3
+%{?with_seastar:BuildRequires: numactl-devel}
+BuildRequires: oath-toolkit-devel
+BuildRequires: openldap-devel
+BuildRequires: openssl-devel >= 1.1
 BuildRequires: perl-base
 BuildRequires: pkgconfig
-BuildRequires: python >= 1:2.4
-%{?with_rocksdb:BuildRequires: rocksdb-devel}
-BuildRequires: rpmbuild(macros) >= 1.671
+%{?with_pmem:BuildRequires:    pmdk-devel >= 1.10.0}
+BuildRequires: python3 >= 1:3.2
+BuildRequires: python3-Cython
+BuildRequires: python3-PyYAML
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: python3-modules >= 1:3.2
+%{?with_tests:BuildRequires:   python3-tox >= 2.9.1}
+BuildRequires: rabbitmq-c-devel
+%{?with_seastar:BuildRequires: ragel >= 6.10}
+%{?with_system_rocksdb:BuildRequires:  rocksdb-devel >= 5.14}
+BuildRequires: rpmbuild(macros) >= 2.021
+%{?with_qat:BuildRequires:     qatlib-devel}
+BuildRequires: sed >= 4.0
 BuildRequires: snappy-devel
+BuildRequires: sphinx-pdg >= 4.4.0
+BuildRequires: sqlite3-devel >= 3
+# >= 0.13.0 wanted, but seems to build with 0.11.0
+BuildRequires: thrift-devel
 BuildRequires: udev-devel
+%{?with_dpdk:BuildRequires:    xorg-lib-libpciaccess-devel}
 BuildRequires: xfsprogs-devel
+BuildRequires: xsimd-devel
+%{?with_seastar:BuildRequires: yaml-cpp-devel >= 0.5.1}
 %ifarch %{x8664}
 BuildRequires: yasm
 %endif
-%{?with_zfs:BuildRequires:     zfs-devel}
+%{?with_zfs:BuildRequires:     zfs-devel >= 0.8.0}
+BuildRequires: zlib-devel
+BuildRequires: zstd-devel >= 1.4.4
 Requires(post,preun):  /sbin/chkconfig
 Requires(preun):       rc-scripts
 Requires:      %{name}-libs = %{version}-%{release}
-Requires:      python-%{name} = %{version}-%{release}
+Requires:      lz4 >= 1:1.7.3
+Requires:      python3-%{name} = %{version}-%{release}
+%{?with_system_rocksdb:Requires:       rocksdb >= 5.14}
 Requires:      systemd-units >= 38
-Obsoletes:     gcephtool
-Obsoletes:     hadoop-cephfs
+Requires:      zstd >= 1.4.4
+Obsoletes:     gcephtool < 0.51
+Obsoletes:     hadoop-cephfs < 0.71
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                skip_post_check_so      libcls_.*.so.* libec_.*.so.*
+%define                skip_post_check_so      libceph_crypto_isal.so.* libceph_crypto_qat.so.* libceph_lz4.so.* libceph_snappy.so.* libceph_zlib.so.* libceph_zstd.so.* libcls_.*.so.* libec_.*.so.*
 
 %description
 Ceph is a distributed network file system designed to provide
@@ -105,6 +198,9 @@ dobrej wydajnoÅ›ci, wiarygodnoÅ›ci i skalowalnoÅ›ci.
 Summary:       Ceph shared libraries
 Summary(pl.UTF-8):     Biblioteki współdzielone Cepha
 Group:         Libraries
+Requires:      libfmt >= 6.0.0
+Requires:      librdkafka >= 0.9.2
+Requires:      openssl >= 1.1
 
 %description libs
 Ceph shared libraries.
@@ -118,11 +214,19 @@ Summary(pl.UTF-8):        Pliki nagłówkowe bibliotek Cepha
 License:       LGPL v2.1
 Group:         Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
-Requires:      boost-devel >= 1.34
-Requires:      nss-devel
-Requires:      leveldb-devel
+Requires:      boost-devel >= 1.73
+Requires:      curl-devel
+Requires:      expat-devel >= 1.95
+Requires:      fcgi-devel
+Requires:      nss-devel >= 3
+Requires:      leveldb-devel >= 1.23-2
 Requires:      libatomic_ops
+Requires:      libblkid-devel >= 2.17
+Requires:      libstdc++-devel >= 6:7
 Requires:      libuuid-devel
+%{?with_lttng:Requires:        lttng-ust-devel}
+Requires:      openldap-devel
+Obsoletes:     ceph-static < 12
 
 %description devel
 This package contains the headers needed to develop programs that use
@@ -132,30 +236,18 @@ Ceph.
 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
 wykorzystujÄ…cych Cepha.
 
-%package static
-Summary:       Ceph static libraries
-Summary(pl.UTF-8):     Biblioteki statyczne Cepha
-License:       LGPL v2.1
-Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
-
-%description static
-This package contains static Ceph libraries.
-
-%description static -l pl.UTF-8
-Ten pakiet zawiera biblioteki statyczne Cepha.
-
-%package -n python-ceph
-Summary:       Ceph Python bindings
-Summary(pl.UTF-8):     WiÄ…zania Pythona do bibliotek Cepha
+%package -n python3-ceph
+Summary:       Ceph Python 3 bindings
+Summary(pl.UTF-8):     WiÄ…zania Pythona 3 do bibliotek Cepha
 Group:         Development/Languages/Python
 Requires:      %{name}-libs = %{version}-%{release}
+Obsoletes:     python-ceph < 15
 
-%description -n python-ceph
-Ceph Python bindings.
+%description -n python3-ceph
+Ceph Python bindings.
 
-%description -n python-ceph -l pl.UTF-8
-WiÄ…zania Pythona do bibliotek Cepha.
+%description -n python3-ceph -l pl.UTF-8
+WiÄ…zania Pythona do bibliotek Cepha.
 
 %package -n java-cephfs
 Summary:       CephFS Java bindings
@@ -210,70 +302,168 @@ OCF Resource Agents for Ceph processes.
 %description resource-agents -l pl.UTF-8
 Agenci OCF do monitorowania procesów Cepha.
 
+%package test
+Summary:       Ceph benchmarks and test tools
+Summary(pl.UTF-8):     NarzÄ™dzia testowe oraz do mierzenia wydajnoÅ›ci dla Ceph
+Group:         Applications/System
+Requires:      %{name} = %{version}-%{release}
+
+%description test
+Ceph benchmarks and test tools.
+
+%description test -l pl.UTF-8
+NarzÄ™dzia testowe oraz do mierzenia wydajnoÅ›ci dla Ceph.
+
+%package -n fio-ceph-objectstore
+Summary:       FIO engine module for Ceph ObjectStore
+Summary(pl.UTF-8):     ModuÅ‚ silnika FIO do używania Ceph ObjectStore
+Group:         Libraries
+Requires:      %{name}-libs = %{version}-%{release}
+%if %{with fio}
+%requires_ge_to        fio fio-devel
+%endif
+
+%description -n fio-ceph-objectstore
+This FIO engine allows you to mount and use a ceph object store
+directly, without having to build a ceph cluster or start any daemons.
+
+%description -n fio-ceph-objectstore -l pl.UTF-8
+Ten silnik FIO pozwala na bezpoÅ›rednie montowanie i używanie
+przestrzeni obiektów ceph, bez potrzeby budowania klastra ceph czy
+uruchamiania demonów.
+
 %prep
 %setup -q
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%ifarch %{ix86}
+%patch9 -p1
+%endif
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+
+%{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' \
+       src/{ceph-post-file.in,rbd-replay-many,rbdmap} \
+       src/rgw/rgw-{gap,orphan}-list
+
+%{__sed} -i -e '1s,/usr/bin/awk,/bin/awk,' \
+       src/rgw/rgw-gap-list-comparator
+
+%if %{with angular}
+# stub virtualenv with npm for src/pybind/mgr/dashboard bootstrapping
+install -d build/src/pybind/mgr/dashboard/node-env/bin
+ln -sf /usr/bin/npm build/src/pybind/mgr/dashboard/node-env/bin/npm
+cat >build/src/pybind/mgr/dashboard/node-env/bin/activate <<EOF
+deactivate() {
+    unset -f deactivate
+}
+EOF
+%endif
 
 %build
-# required by xfs headers (for off64_t)
-CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
-# ac_cv_prog_uudecode_base64=no is a hack to compile Test.class instead of
-# using included one which fails with Sun/Oracle JDK 1.6
-%configure \
-       %{?with_java:JAVAC=/usr/bin/javac} \
-       %{?with_zfs:LIBZFS_CFLAGS="-I/usr/include/libzfs -I/usr/include/libspl"} \
-       ac_cv_prog_uudecode_base64=no \
-       --sbindir=/sbin \
-       %{!?with_babeltrace:--without-babeltrace} \
-       --without-cryptopp \
-       --with-nss \
-       %{!?with_tcmalloc:--without-tcmalloc} \
-       %{?with_kinetic:--with-kinetic} \
-       %{?with_rocksdb:--with-librocksdb} \
-       %{?with_zfs:--with-libzfs} \
-       %{!?with_lttng:--without-lttng} \
-       --with-ocf \
-       --with-radosgw \
-       --with-system-leveldb \
-       --with-system-libs3 \
-       %{?with_java:--enable-cephfs-java --with-jdk-dir=%{_jvmdir}/java} \
-       --disable-silent-rules \
-       %{?with_accelio:--enable-xio}
-
-%{__make} -j1
+install -d build
+cd build
+%cmake .. \
+%ifarch %{x8664} %{ix86} x32
+       -DHAVE_INTEL_SSE=1 \
+%endif
+%ifarch %{x8664} x32
+       -DHAVE_INTEL_SSE2=1 \
+       -DHAVE_INTEL_SSE3=1 \
+       -DHAVE_INTEL_SSSE3=1 \
+       -DHAVE_INTEL_PCLMUL=1 \
+       -DHAVE_INTEL_SSE4_1=1 \
+       -DHAVE_INTEL_SSE4_2=1 \
+%endif
+       -DALLOCATOR="%{?with_tcmalloc:tcmalloc}%{!?with_tcmalloc:libc}" \
+       -DFIO_INCLUDE_DIR=/usr/include/fio \
+       %{?with_java:-DJAVA_HOME:PATH=%{java_home}} \
+       -DLUA_INCLUDE_DIR=%{_includedir}/lua \
+       -DPYTHON=%{__python3} \
+       -DSPHINX_BUILD=/usr/bin/sphinx-build \
+       %{!?with_babeltrace:-DWITH_BABELTRACE=OFF} \
+       %{?with_bluefs:-DWITH_BLUEFS=ON} \
+%if %{with pmem}
+       -DWITH_BLUESTORE_PMEM=ON \
+       -DWITH_SYSTEM_PMDK:BOOL=ON \
+%endif
+       %{?with_java:-DWITH_CEPHFS_JAVA=ON} \
+       %{?with_dpdk:-DWITH_DPDK=ON} \
+       %{?with_fio:-DWITH_FIO=ON} \
+       %{?with_kerberos:-DWITH_GSSAPI=ON} \
+       %{!?with_lttng:-DWITH_LTTNG=OFF} \
+       -DWITH_LZ4=ON \
+       %{!?with_angular:-DWITH_MGR_DASHBOARD_FRONTEND=OFF} \
+       -DWITH_OCF=ON \
+       -DWITH_PYTHON3=%{py3_ver} \
+       %{?with_fcgi:-DWITH_RADOSGW_FCGI_FRONTEND=ON} \
+       %{!?with_rdma:-DWITH_RDMA=OFF} \
+       -DWITH_REENTRANT_STRSIGNAL=ON \
+       %{?with_qat:-DWITH_QAT=ON} \
+       %{?with_qatzip:-DWITH_QATZIP=ON} \
+       %{?with_seastar:-DWITH_SEASTAR=ON} \
+       %{?with_spdk:-DWITH_SPDK=ON} \
+       -DWITH_SYSTEM_BOOST=ON \
+       -DWITH_SYSTEM_LIBURING=ON \
+       %{?with_angular:-DWITH_SYSTEM_NPM=ON} \
+       %{?with_system_rocksdb:-DWITH_SYSTEM_ROCKSDB=ON} \
+       -DWITH_SYSTEM_ZSTD=ON \
+       -DWITH_SYSTEMD=ON \
+       %{!?with_tests:-DWITH_TESTS=OFF} \
+       %{?with_zbd:-DWITH_ZBD=ON} \
+       %{?with_zfs:-DWITH_ZFS=ON}
+
+# some object files have missing dependencies on these, pregenerate to avoid global -j1
+%{__make} legacy-option-headers
+
+%{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/{tmp,mon,osd,mds},log/ceph/stat,run/ceph} \
-       $RPM_BUILD_ROOT%{_sysconfdir}/{ceph,bash_completion.d,logrotate.d,rc.d/init.d,sysconfig} \
-       $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir},/etc/systemd/system/ceph.target.wants}
+install -d $RPM_BUILD_ROOT%{_localstatedir}/{lib/ceph/{tmp,mon,osd,mds,mgr,radosgw,bootstrap-{osd,mds,rgw,mgr,rbd}},log/ceph/stat,run/ceph} \
+       $RPM_BUILD_ROOT%{_sysconfdir}/{ceph,bash_completion.d,logrotate.d,rc.d,sysconfig} \
+       $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir},/etc/systemd/system/ceph.target.wants,/sbin}
 
-%{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT \
-       javadir=%{_javadir}
+%{__make} -C build install \
+       DESTDIR=$RPM_BUILD_ROOT
 
-install -p src/init-ceph $RPM_BUILD_ROOT/etc/rc.d/init.d/ceph
-install -p src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
+# sanitize paths; no config options for cmake
+%{__mv} $RPM_BUILD_ROOT/etc/init.d $RPM_BUILD_ROOT/etc/rc.d
+%{__mv} $RPM_BUILD_ROOT%{_sbindir}/mount.* $RPM_BUILD_ROOT/sbin
 
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
-install %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}
-install %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} $RPM_BUILD_ROOT%{systemdunitdir}
+cp -p src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
+
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
 ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ceph.service
-install %{SOURCE15} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
 
-# loadable modules
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/*.{a,la}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/rados-classes/*.{a,la}
-%if %{with java}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libcephfs_jni.{la,a}
+%if %{without tests}
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/{ceph,ceph_volume}/tests
 %endif
 
+%py3_comp $RPM_BUILD_ROOT%{py3_sitescriptdir}
+%py3_ocomp $RPM_BUILD_ROOT%{py3_sitescriptdir}
+
 # packaged as %doc
-%{__rm} $RPM_BUILD_ROOT%{_docdir}/ceph/sample.{ceph.conf,fetch_config}
+%{__rm} $RPM_BUILD_ROOT%{_docdir}/sample.ceph.conf
 
-%py_postclean
+%if %{with angular}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/mgr/dashboard/HACKING.rst
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/mgr/{.gitignore,dashboard/static/AdminLTE-2.3.7/{.gitignore,.jshintrc,README.md}}
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -304,39 +494,66 @@ fi
 %files
 %defattr(644,root,root,755)
 # COPYING specifies licenses of individual parts
-%doc AUTHORS COPYING README src/sample.ceph.conf src/sample.fetch_config
+%doc AUTHORS COPYING PendingReleaseNotes README.md src/sample.ceph.conf doc/releases
 %attr(754,root,root) /etc/rc.d/init.d/ceph
 %config(noreplace) /etc/sysconfig/ceph
 %dir /etc/systemd/system/ceph.target.wants
+%{systemdunitdir}/ceph.service
+%{systemdunitdir}/ceph.target
+%{systemdunitdir}/ceph-crash.service
+%{systemdunitdir}/ceph-fuse.target
+%{systemdunitdir}/ceph-fuse@.service
+%{systemdunitdir}/ceph-immutable-object-cache.target
+%{systemdunitdir}/ceph-immutable-object-cache@.service
+%{systemdunitdir}/ceph-mds.target
 %{systemdunitdir}/ceph-mds@.service
+%{systemdunitdir}/ceph-mgr.target
+%{systemdunitdir}/ceph-mgr@.service
+%{systemdunitdir}/ceph-mon.target
 %{systemdunitdir}/ceph-mon@.service
+%{systemdunitdir}/ceph-osd.target
 %{systemdunitdir}/ceph-osd@.service
-%{systemdunitdir}/ceph.service
-%{systemdunitdir}/ceph.target
+%{systemdunitdir}/ceph-rbd-mirror.target
+%{systemdunitdir}/ceph-rbd-mirror@.service
+%{systemdunitdir}/ceph-volume@.service
+%{systemdunitdir}/cephfs-mirror.target
+%{systemdunitdir}/cephfs-mirror@.service
+%{systemdunitdir}/rbdmap.service
 %{systemdtmpfilesdir}/ceph.conf
 %dir %{_sysconfdir}/ceph
 %attr(755,root,root) %{_bindir}/ceph
 %attr(755,root,root) %{_bindir}/ceph-authtool
-%attr(755,root,root) %{_bindir}/ceph-brag
+%attr(755,root,root) %{_bindir}/ceph-bluestore-tool
 %attr(755,root,root) %{_bindir}/ceph-clsinfo
 %attr(755,root,root) %{_bindir}/ceph-conf
-%attr(755,root,root) %{_bindir}/ceph-coverage
-%attr(755,root,root) %{_bindir}/ceph-crush-location
-%attr(755,root,root) %{_bindir}/ceph-debugpack
+%attr(755,root,root) %{_bindir}/ceph-crash
 %attr(755,root,root) %{_bindir}/ceph-dencoder
+%attr(755,root,root) %{_bindir}/ceph-diff-sorted
+%attr(755,root,root) %{_bindir}/ceph-erasure-code-tool
+%attr(755,root,root) %{_bindir}/ceph-exporter
+%attr(755,root,root) %{_bindir}/ceph-immutable-object-cache
+%attr(755,root,root) %{_bindir}/ceph-kvstore-tool
 %attr(755,root,root) %{_bindir}/ceph-mds
+%attr(755,root,root) %{_bindir}/ceph-mgr
 %attr(755,root,root) %{_bindir}/ceph-mon
+%attr(755,root,root) %{_bindir}/ceph-monstore-tool
 %attr(755,root,root) %{_bindir}/ceph-objectstore-tool
 %attr(755,root,root) %{_bindir}/ceph-osd
+%attr(755,root,root) %{_bindir}/ceph-osdomap-tool
 %attr(755,root,root) %{_bindir}/ceph-post-file
 %attr(755,root,root) %{_bindir}/ceph-rbdnamer
-%attr(755,root,root) %{_bindir}/ceph-rest-api
 %attr(755,root,root) %{_bindir}/ceph-run
 %attr(755,root,root) %{_bindir}/ceph-syn
-%attr(755,root,root) %{_bindir}/cephctl
-%attr(755,root,root) %{_bindir}/cephfs
+%attr(755,root,root) %{_bindir}/cephfs-data-scan
 %attr(755,root,root) %{_bindir}/cephfs-journal-tool
+%attr(755,root,root) %{_bindir}/cephfs-mirror
 %attr(755,root,root) %{_bindir}/cephfs-table-tool
+%attr(755,root,root) %{_bindir}/cephfs-top
+%if %{with seastore}
+%attr(755,root,root) %{_bindir}/crimson-osd
+%attr(755,root,root) %{_bindir}/crimson-store-nbd
+%endif
+%attr(755,root,root) %{_bindir}/crushdiff
 %attr(755,root,root) %{_bindir}/crushtool
 %attr(755,root,root) %{_bindir}/librados-config
 %attr(755,root,root) %{_bindir}/monmaptool
@@ -344,56 +561,86 @@ fi
 %attr(755,root,root) %{_bindir}/rados
 %attr(755,root,root) %{_bindir}/rbd
 %attr(755,root,root) %{_bindir}/rbd-fuse
+%attr(755,root,root) %{_bindir}/rbd-mirror
+%attr(755,root,root) %{_bindir}/rbd-nbd
 %attr(755,root,root) %{_bindir}/rbd-replay
 %attr(755,root,root) %{_bindir}/rbd-replay-many
 %attr(755,root,root) %{_bindir}/rbd-replay-prep
-%attr(755,root,root) /sbin/ceph-create-keys
-%attr(755,root,root) /sbin/ceph-disk
-%attr(755,root,root) /sbin/ceph-disk-activate
-%attr(755,root,root) /sbin/ceph-disk-prepare
-%attr(755,root,root) /sbin/ceph-disk-udev
+%attr(755,root,root) %{_bindir}/rbdmap
+%attr(755,root,root) %{_bindir}/rgw-gap-list
+%attr(755,root,root) %{_bindir}/rgw-gap-list-comparator
+%attr(755,root,root) %{_bindir}/rgw-orphan-list
+%attr(755,root,root) %{_sbindir}/ceph-create-keys
+%attr(755,root,root) %{_sbindir}/ceph-volume
+%attr(755,root,root) %{_sbindir}/ceph-volume-systemd
 %attr(755,root,root) /sbin/mount.ceph
 %attr(755,root,root) /sbin/mount.fuse.ceph
-%dir %{_libdir}/ceph
-%attr(755,root,root) %{_libdir}/ceph/ceph-osd-prestart.sh
-%{_libdir}/ceph/ceph_common.sh
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/ceph
+%endif
+%{_libexecdir}/ceph/ceph_common.sh
+%attr(755,root,root) %{_libexecdir}/ceph/ceph-osd-prestart.sh
+%dir %{_libdir}/ceph/compressor
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_lz4.so*
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_snappy.so*
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_zlib.so*
+%attr(755,root,root) %{_libdir}/ceph/compressor/libceph_zstd.so*
+%dir %{_libdir}/ceph/crypto
+%ifarch %{x8664}
+%attr(755,root,root) %{_libdir}/ceph/crypto/libceph_crypto_isal.so*
+%endif
+%attr(755,root,root) %{_libdir}/ceph/crypto/libceph_crypto_openssl.so*
+%if %{with qat}
+%attr(755,root,root) %{_libdir}/ceph/crypto/libceph_crypto_qat.so*
+%endif
+%dir %{_libdir}/ceph/denc
+%attr(755,root,root) %{_libdir}/ceph/denc/denc-mod-cephfs.so
+%attr(755,root,root) %{_libdir}/ceph/denc/denc-mod-common.so
+%attr(755,root,root) %{_libdir}/ceph/denc/denc-mod-osd.so
+%attr(755,root,root) %{_libdir}/ceph/denc/denc-mod-rbd.so
+%attr(755,root,root) %{_libdir}/ceph/denc/denc-mod-rgw.so
 %dir %{_libdir}/ceph/erasure-code
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_example.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_hangs.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_clay.so*
 %ifarch %{x8664}
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_isa.so*
 %endif
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure.so*
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_generic.so*
-%ifarch arm
+%ifarch %{arm}
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_neon.so*
 %endif
 %ifarch %{ix86} %{x8664} x32
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse3.so*
-%endif
-%ifarch %{x8664} x32
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse4.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_sse3.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_sse4.so*
 %endif
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_lrc.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_missing_version.so*
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so*
-%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so*
+%attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_generic.so*
+%dir %{_libdir}/ceph/librbd
+%attr(755,root,root) %{_libdir}/ceph/librbd/libceph_librbd_parent_cache.so*
 %dir %{_libdir}/rados-classes
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_2pc_queue.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_cas.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_cephfs.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_cmpomap.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_fifo.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_hello.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_journal.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_lock.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_log.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_lua.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_numops.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_otp.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_queue.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_rbd.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_refcount.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_replica_log.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_rgw_gc.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_sdk.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_test_remote_reads.so*
+%attr(755,root,root) %{_libdir}/rados-classes/libcls_timeindex.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_version.so*
 %{_datadir}/ceph
@@ -403,38 +650,52 @@ fi
 %config(noreplace) %{_sysconfdir}/bash_completion.d/rbd
 %{_mandir}/man8/ceph.8*
 %{_mandir}/man8/ceph-authtool.8*
+%{_mandir}/man8/ceph-bluestore-tool.8*
 %{_mandir}/man8/ceph-clsinfo.8*
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-create-keys.8*
-%{_mandir}/man8/ceph-debugpack.8*
 %{_mandir}/man8/ceph-dencoder.8*
-%{_mandir}/man8/ceph-deploy.8*
-%{_mandir}/man8/ceph-disk.8*
+%{_mandir}/man8/ceph-diff-sorted.8*
+%{_mandir}/man8/ceph-immutable-object-cache.8*
+%{_mandir}/man8/ceph-kvstore-tool.8*
 %{_mandir}/man8/ceph-mds.8*
 %{_mandir}/man8/ceph-mon.8*
 %{_mandir}/man8/ceph-osd.8*
 %{_mandir}/man8/ceph-post-file.8*
 %{_mandir}/man8/ceph-rbdnamer.8*
-%{_mandir}/man8/ceph-rest-api.8*
 %{_mandir}/man8/ceph-run.8*
 %{_mandir}/man8/ceph-syn.8*
-%{_mandir}/man8/cephfs.8*
+%{_mandir}/man8/ceph-volume.8*
+%{_mandir}/man8/ceph-volume-systemd.8*
+%{_mandir}/man8/cephadm.8*
+%{_mandir}/man8/cephfs-mirror.8*
+%{_mandir}/man8/cephfs-top.8*
+%{_mandir}/man8/crushdiff.8*
 %{_mandir}/man8/crushtool.8*
 %{_mandir}/man8/librados-config.8*
 %{_mandir}/man8/monmaptool.8*
 %{_mandir}/man8/mount.ceph.8*
+%{_mandir}/man8/mount.fuse.ceph.8*
 %{_mandir}/man8/osdmaptool.8*
 %{_mandir}/man8/rados.8*
-%{_mandir}/man8/radosgw.8*
-%{_mandir}/man8/radosgw-admin.8*
 %{_mandir}/man8/rbd.8*
 %{_mandir}/man8/rbd-fuse.8*
+%{_mandir}/man8/rbd-mirror.8*
+%{_mandir}/man8/rbd-nbd.8*
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
+%{_mandir}/man8/rbdmap.8*
+%{_mandir}/man8/rgw-orphan-list.8*
 
 %dir %{_localstatedir}/lib/ceph
+%dir %{_localstatedir}/lib/ceph/bootstrap-mds
+%dir %{_localstatedir}/lib/ceph/bootstrap-mgr
+%dir %{_localstatedir}/lib/ceph/bootstrap-osd
+%dir %{_localstatedir}/lib/ceph/bootstrap-rbd
+%dir %{_localstatedir}/lib/ceph/bootstrap-rgw
 %dir %{_localstatedir}/lib/ceph/mds
+%dir %{_localstatedir}/lib/ceph/mgr
 %dir %{_localstatedir}/lib/ceph/mon
 %dir %{_localstatedir}/lib/ceph/osd
 %dir %{_localstatedir}/lib/ceph/tmp
@@ -443,8 +704,11 @@ fi
 
 %files libs
 %defattr(644,root,root,755)
+%if %{with bluefs}
+%attr(755,root,root) %{_libdir}/libbluefs.so
+%endif
 %attr(755,root,root) %{_libdir}/libcephfs.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libcephfs.so.1
+%attr(755,root,root) %ghost %{_libdir}/libcephfs.so.2
 %attr(755,root,root) %{_libdir}/libos_tp.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libos_tp.so.1
 %attr(755,root,root) %{_libdir}/libosd_tp.so.*.*.*
@@ -453,12 +717,23 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/librados.so.2
 %attr(755,root,root) %{_libdir}/librados_tp.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librados_tp.so.2
+%attr(755,root,root) %{_libdir}/libradosgw.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libradosgw.so.2
 %attr(755,root,root) %{_libdir}/libradosstriper.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libradosstriper.so.1
 %attr(755,root,root) %{_libdir}/librbd.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librbd.so.1
 %attr(755,root,root) %{_libdir}/librbd_tp.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/librbd_tp.so.1
+%attr(755,root,root) %{_libdir}/librgw.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/librgw.so.2
+%attr(755,root,root) %{_libdir}/librgw_op_tp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/librgw_op_tp.so.2
+%attr(755,root,root) %{_libdir}/librgw_rados_tp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/librgw_rados_tp.so.2
+%attr(755,root,root) %{_libdir}/libcephsqlite.so
+%dir %{_libdir}/ceph
+%attr(755,root,root) %{_libdir}/ceph/libceph-common.so.2
 
 %files devel
 %defattr(644,root,root,755)
@@ -467,40 +742,36 @@ fi
 %attr(755,root,root) %{_libdir}/libosd_tp.so
 %attr(755,root,root) %{_libdir}/librados.so
 %attr(755,root,root) %{_libdir}/librados_tp.so
+%attr(755,root,root) %{_libdir}/libradosgw.so
 %attr(755,root,root) %{_libdir}/libradosstriper.so
 %attr(755,root,root) %{_libdir}/librbd.so
 %attr(755,root,root) %{_libdir}/librbd_tp.so
-%{_libdir}/libcephfs.la
-%{_libdir}/libos_tp.la
-%{_libdir}/libosd_tp.la
-%{_libdir}/librados.la
-%{_libdir}/librados_tp.la
-%{_libdir}/libradosstriper.la
-%{_libdir}/librbd.la
-%{_libdir}/librbd_tp.la
+%attr(755,root,root) %{_libdir}/librgw.so
+%attr(755,root,root) %{_libdir}/librgw_op_tp.so
+%attr(755,root,root) %{_libdir}/librgw_rados_tp.so
 %{_includedir}/cephfs
 %{_includedir}/rados
 %{_includedir}/radosstriper
 %{_includedir}/rbd
+%{_includedir}/libcephsqlite.h
 
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/libcephfs.a
-%{_libdir}/libos_tp.a
-%{_libdir}/libosd_tp.a
-%{_libdir}/librados.a
-%{_libdir}/librados_tp.a
-%{_libdir}/libradosstriper.a
-%{_libdir}/librbd.a
-%{_libdir}/librbd_tp.a
-
-%files -n python-ceph
+%files -n python3-ceph
 %defattr(644,root,root,755)
-%{py_sitescriptdir}/ceph_argparse.py[co]
-%{py_sitescriptdir}/ceph_rest_api.py[co]
-%{py_sitescriptdir}/cephfs.py[co]
-%{py_sitescriptdir}/rados.py[co]
-%{py_sitescriptdir}/rbd.py[co]
+%attr(755,root,root) %{py3_sitedir}/cephfs.cpython-*.so
+%attr(755,root,root) %{py3_sitedir}/rados.cpython-*.so
+%attr(755,root,root) %{py3_sitedir}/rbd.cpython-*.so
+%attr(755,root,root) %{py3_sitedir}/rgw.cpython-*.so
+%{py3_sitedir}/cephfs-2.0.0-py*.egg-info
+%{py3_sitedir}/rados-2.0.0-py*.egg-info
+%{py3_sitedir}/rbd-2.0.0-py*.egg-info
+%{py3_sitedir}/rgw-2.0.0-py*.egg-info
+%{py3_sitescriptdir}/ceph_*.py
+%{py3_sitescriptdir}/__pycache__/ceph_*.py*
+%{py3_sitescriptdir}/ceph
+%{py3_sitescriptdir}/ceph_volume
+%{py3_sitescriptdir}/ceph-1.0.0-py*.egg-info
+%{py3_sitescriptdir}/ceph_volume-1.0.0-py*.egg-info
+%{py3_sitescriptdir}/cephfs_top-0.0.1-py*.egg-info
 
 %if %{with java}
 %files -n java-cephfs
@@ -520,13 +791,67 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/radosgw
 %attr(755,root,root) %{_bindir}/radosgw-admin
+%attr(755,root,root) %{_bindir}/radosgw-es
+%attr(755,root,root) %{_bindir}/radosgw-object-expirer
+%attr(755,root,root) %{_bindir}/radosgw-token
+%{systemdunitdir}/ceph-radosgw.target
+%{systemdunitdir}/ceph-radosgw@.service
 %{_sysconfdir}/bash_completion.d/radosgw-admin
+%dir %{_localstatedir}/lib/ceph/radosgw
+%{_mandir}/man8/radosgw.8*
+%{_mandir}/man8/radosgw-admin.8*
 
 %files resource-agents
 %defattr(644,root,root,755)
 %dir %{_prefix}/lib/ocf/resource.d/ceph
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/ceph
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mds
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/mon
-%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/osd
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/rbd
+
+%if %{with tests}
+%files test
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/ceph-client-debug
+%attr(755,root,root) %{_bindir}/ceph-coverage
+%attr(755,root,root) %{_bindir}/ceph-debugpack
+%attr(755,root,root) %{_bindir}/ceph-kvstore-tool
+%attr(755,root,root) %{_bindir}/ceph-monstore-tool
+%attr(755,root,root) %{_bindir}/ceph-osdomap-tool
+%attr(755,root,root) %{_bindir}/ceph_bench_log
+%attr(755,root,root) %{_bindir}/ceph_erasure_code
+%attr(755,root,root) %{_bindir}/ceph_erasure_code_benchmark
+%attr(755,root,root) %{_bindir}/ceph_kvstorebench
+%attr(755,root,root) %{_bindir}/ceph_multi_stress_watch
+%attr(755,root,root) %{_bindir}/ceph_objectstore_bench
+%attr(755,root,root) %{_bindir}/ceph_omapbench
+%attr(755,root,root) %{_bindir}/ceph_perf_local
+%attr(755,root,root) %{_bindir}/ceph_perf_msgr_client
+%attr(755,root,root) %{_bindir}/ceph_perf_msgr_server
+%attr(755,root,root) %{_bindir}/ceph_perf_objectstore
+%attr(755,root,root) %{_bindir}/ceph_psim
+%attr(755,root,root) %{_bindir}/ceph_radosacl
+%attr(755,root,root) %{_bindir}/ceph_rgw_jsonparser
+%attr(755,root,root) %{_bindir}/ceph_rgw_multiparser
+%attr(755,root,root) %{_bindir}/ceph_scratchtool
+%attr(755,root,root) %{_bindir}/ceph_scratchtoolpp
+%attr(755,root,root) %{_bindir}/ceph_smalliobench
+%attr(755,root,root) %{_bindir}/ceph_smalliobenchdumb
+%attr(755,root,root) %{_bindir}/ceph_smalliobenchfs
+%attr(755,root,root) %{_bindir}/ceph_smalliobenchrbd
+%attr(755,root,root) %{_bindir}/ceph_test_*
+%attr(755,root,root) %{_bindir}/ceph_tpbench
+%attr(755,root,root) %{_bindir}/ceph_xattr_bench
+%attr(755,root,root) %{_libdir}/ceph/ceph-monstore-update-crush.sh
+%{py3_sitedir}/ceph/tests
+%{py3_sitedir}/ceph_volume/tests
+%if %{with java}
+%{_javadir}/libcephfs-test.jar
+%endif
+%{_mandir}/man8/ceph-debugpack.8*
+%{_mandir}/man8/ceph-kvstore-tool.8*
+%endif
+
+%if %{with fio}
+%files -n fio-ceph-objectstore
+%defattr(644,root,root,755)
+%doc src/test/fio/{README.md,ceph-*.conf,ceph-*.fio}
+%attr(755,root,root) %{_libdir}/libfio_ceph_objectstore.so
+%endif
diff --git a/ceph.target b/ceph.target
deleted file mode 100644 (file)
index 60734ba..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[Unit]
-Description=ceph target allowing to start/stop all ceph*@.service instances at once
-[Install]
-WantedBy=multi-user.target
diff --git a/cephctl b/cephctl
deleted file mode 100644 (file)
index fce0240..0000000
--- a/cephctl
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /bin/bash
-
-# It seems this was designed as /etc/init.d/ceph script for controlling the systemd
-# units on SuSE, made into 'cephctl' for PLD
-
-systemd_booted 2>/dev/null || exec /etc/rc.d/init.d/ceph "$@"
-
-action=$1 ; shift
-[ -f /etc/sysconfig/ceph ] && . /etc/sysconfig/ceph
-cluster=${CLUSTER:-ceph}
-config=$1 ; shift
-
-# Shared variables by many actions
-dir_mon="/var/lib/ceph/mon/"
-dir_osd="/var/lib/ceph/osd/"
-if test -d ${dir_mon} ; then
-lmon=`ls ${dir_mon} | grep ${cluster}`
-fi
-if test -d ${dir_osd} ; then
-losd=`ls ${dir_osd} | grep ${cluster}`
-fi
-prefix="${cluster}-"
-
-RC=0
-
-if test -n "$config" ; then
-       systemctl "${action}" "ceph-mon@${config}.service" || RC=1
-else
-       case $action in
-    start | stop | status | enable | disable | restart | is-active | is-failed | show | kill | reset-failed | reload )
-        n=0
-        if test -n ${lmon} ; then
-            for s in ${lmon#=${prefix}} ; do
-                systemctl "${action}" ceph-mon@${s#$prefix}.service
-               [ $? -eq 0 ] || RC=1
-                ((++n))
-            done
-        fi
-        if test -n ${lmon} ; then
-            for s in ${losd#=${prefix}} ; do
-                systemctl "${action}" ceph-osd@${s#$prefix}.service
-               [ $? -eq 0 ] || RC=1
-                ((++n))
-            done
-        fi
-    ;;
-       *)
-               echo "Invalid paramter : $action"
-        echo "Valid paramters  : start | stop | status | enable | disable | restart | is-active | is-failed | show | kill | reset-failed | reload"
-       ;;
-       esac
-fi
-exit $RC
diff --git a/cxx.patch b/cxx.patch
deleted file mode 100644 (file)
index af7ecfd..0000000
--- a/cxx.patch
+++ /dev/null
@@ -1,390 +0,0 @@
-diff -ur ceph-0.94.10/src/client/SyntheticClient.cc ceph-0.94.10-cxx/src/client/SyntheticClient.cc
---- ceph-0.94.10/src/client/SyntheticClient.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/client/SyntheticClient.cc     2017-04-29 12:25:26.633497617 +0200
-@@ -601,7 +601,7 @@
-         int size = iargs.front();  iargs.pop_front();
-         int inflight = iargs.front();  iargs.pop_front();
-         if (run_me()) {
--          dout(2) << "createobjects " << cout << " of " << size << " bytes"
-+          dout(2) << "createobjects " << cout.rdbuf() << " of " << size << " bytes"
-                 << ", " << inflight << " in flight" << dendl;
-           create_objects(count, size, inflight);
-         }
-@@ -617,7 +617,7 @@
-         int rskew = iargs.front();  iargs.pop_front();
-         int wskew = iargs.front();  iargs.pop_front();
-         if (run_me()) {
--          dout(2) << "objectrw " << cout << " " << size << " " << wrpc 
-+          dout(2) << "objectrw " << cout.rdbuf() << " " << size << " " << wrpc 
-                 << " " << overlap << " " << rskew << " " << wskew << dendl;
-           object_rw(count, size, wrpc, overlap, rskew, wskew);
-         }
-diff -ur ceph-0.94.10/src/common/admin_socket.cc ceph-0.94.10-cxx/src/common/admin_socket.cc
---- ceph-0.94.10/src/common/admin_socket.cc    2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/admin_socket.cc        2017-04-29 09:57:25.062251956 +0200
-@@ -352,7 +352,7 @@
-   stringstream errss;
-   cmdvec.push_back(cmd);
-   if (!cmdmap_from_json(cmdvec, &cmdmap, errss)) {
--    ldout(m_cct, 0) << "AdminSocket: " << errss << dendl;
-+    ldout(m_cct, 0) << "AdminSocket: " << errss.rdbuf() << dendl;
-     return false;
-   }
-   cmd_getval(m_cct, cmdmap, "format", format);
-diff -ur ceph-0.94.10/src/common/ceph_json.h ceph-0.94.10-cxx/src/common/ceph_json.h
---- ceph-0.94.10/src/common/ceph_json.h        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/ceph_json.h    2017-04-29 11:13:38.925899980 +0200
-@@ -198,7 +198,7 @@
-     JSONObj *o = *iter;
-     JSONDecoder::decode_json("key", key, o);
-     JSONDecoder::decode_json("val", val, o);
--    m.insert(make_pair<K, V>(key, val));
-+    m.insert(make_pair(key, val));
-   }
- }
-diff -ur ceph-0.94.10/src/common/cmdparse.cc ceph-0.94.10-cxx/src/common/cmdparse.cc
---- ceph-0.94.10/src/common/cmdparse.cc        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/cmdparse.cc    2017-04-29 09:58:13.362841243 +0200
-@@ -224,7 +224,7 @@
-   BackTrace bt(1);
-   ostringstream oss;
-   bt.print(oss);
--  lderr(cct) << oss << dendl;
-+  lderr(cct) << oss.rdbuf() << dendl;
-   if (status == 0)
-     free((char *)typestr);
- }
-diff -ur ceph-0.94.10/src/common/LogClient.h ceph-0.94.10-cxx/src/common/LogClient.h
---- ceph-0.94.10/src/common/LogClient.h        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/common/LogClient.h    2017-04-29 09:55:08.930587122 +0200
-@@ -137,7 +137,7 @@
-   }
-   bool must_log_to_monitors() { return log_to_monitors; }
--  typedef shared_ptr<LogChannel> Ref;
-+  typedef std::shared_ptr<LogChannel> Ref;
-   /**
-    * update config values from parsed k/v map for each config option
-diff -ur ceph-0.94.10/src/mds/CInode.cc ceph-0.94.10-cxx/src/mds/CInode.cc
---- ceph-0.94.10/src/mds/CInode.cc     2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mds/CInode.cc 2017-04-29 10:44:49.563391124 +0200
-@@ -3791,7 +3791,7 @@
-       f->dump_int("read_ret_val", backtrace.ondisk_read_retval);
-       f->dump_stream("ondisk_value") << backtrace.ondisk_value;
-       f->dump_stream("memoryvalue") << backtrace.memory_value;
--      f->dump_stream("error_str") << backtrace.error_str;
-+      f->dump_stream("error_str") << backtrace.error_str.rdbuf();
-     }
-     f->close_section(); // backtrace
-     f->open_object_section("raw_rstats");
-@@ -3801,7 +3801,7 @@
-       f->dump_int("read_ret_val", raw_rstats.ondisk_read_retval);
-       f->dump_stream("ondisk_value") << raw_rstats.ondisk_value;
-       f->dump_stream("memory_value") << raw_rstats.memory_value;
--      f->dump_stream("error_str") << raw_rstats.error_str;
-+      f->dump_stream("error_str") << raw_rstats.error_str.rdbuf();
-     }
-     f->close_section(); // raw_rstats
-     // dump failure return code
-diff -ur ceph-0.94.10/src/mds/mdstypes.h ceph-0.94.10-cxx/src/mds/mdstypes.h
---- ceph-0.94.10/src/mds/mdstypes.h    2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mds/mdstypes.h        2017-04-29 11:15:44.723963614 +0200
-@@ -71,7 +71,7 @@
- #define MDS_TRAVERSE_DISCOVERXLOCK 3    // succeeds on (foreign?) null, xlocked dentries.
--BOOST_STRONG_TYPEDEF(int32_t, mds_rank_t)
-+typedef int32_t mds_rank_t;
- BOOST_STRONG_TYPEDEF(uint64_t, mds_gid_t)
- extern const mds_gid_t MDS_GID_NONE;
- extern const mds_rank_t MDS_RANK_NONE;
-diff -ur ceph-0.94.10/src/mon/OSDMonitor.cc ceph-0.94.10-cxx/src/mon/OSDMonitor.cc
---- ceph-0.94.10/src/mon/OSDMonitor.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/mon/OSDMonitor.cc     2017-04-29 10:17:06.705748922 +0200
-@@ -4401,7 +4401,7 @@
-        if (err == 0) {
-        k = erasure_code->get_data_chunk_count();
-        } else {
--       ss << __func__ << " get_erasure_code failed: " << tmp;
-+       ss << __func__ << " get_erasure_code failed: " << tmp.rdbuf();
-        return err;;
-        }
-diff -ur ceph-0.94.10/src/msg/simple/Pipe.cc ceph-0.94.10-cxx/src/msg/simple/Pipe.cc
---- ceph-0.94.10/src/msg/simple/Pipe.cc        2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/msg/simple/Pipe.cc    2017-04-29 10:05:09.937087135 +0200
-@@ -181,7 +181,7 @@
- void Pipe::DelayedDelivery::discard()
- {
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::discard" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::discard" << dendl;
-   Mutex::Locker l(delay_lock);
-   while (!delay_queue.empty()) {
-     Message *m = delay_queue.front().second;
-@@ -193,7 +193,7 @@
- void Pipe::DelayedDelivery::flush()
- {
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::flush" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::flush" << dendl;
-   Mutex::Locker l(delay_lock);
-   flush_count = delay_queue.size();
-   delay_cond.Signal();
-@@ -202,11 +202,11 @@
- void *Pipe::DelayedDelivery::entry()
- {
-   Mutex::Locker locker(delay_lock);
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry start" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry start" << dendl;
-   while (!stop_delayed_delivery) {
-     if (delay_queue.empty()) {
--      lgeneric_subdout(pipe->msgr->cct, ms, 30) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
-+      lgeneric_subdout(pipe->msgr->cct, ms, 30) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry sleeping on delay_cond because delay queue is empty" << dendl;
-       delay_cond.Wait(delay_lock);
-       continue;
-     }
-@@ -216,11 +216,11 @@
-     if (!flush_count &&
-         (release > ceph_clock_now(pipe->msgr->cct) &&
-          (delay_msg_type.empty() || m->get_type_name() == delay_msg_type))) {
--      lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
-+      lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry sleeping on delay_cond until " << release << dendl;
-       delay_cond.WaitUntil(delay_lock, release);
-       continue;
-     }
--    lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
-+    lgeneric_subdout(pipe->msgr->cct, ms, 10) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry dequeuing message " << m << " for delivery, past " << release << dendl;
-     delay_queue.pop_front();
-     if (flush_count > 0) {
-       --flush_count;
-@@ -245,7 +245,7 @@
-     }
-     active_flush = false;
-   }
--  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout) << "DelayedDelivery::entry stop" << dendl;
-+  lgeneric_subdout(pipe->msgr->cct, ms, 20) << pipe->_pipe_prefix(_dout).rdbuf() << "DelayedDelivery::entry stop" << dendl;
-   return NULL;
- }
-diff -ur ceph-0.94.10/src/osd/PG.cc ceph-0.94.10-cxx/src/osd/PG.cc
---- ceph-0.94.10/src/osd/PG.cc 2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/osd/PG.cc     2017-04-29 10:54:40.743267753 +0200
-@@ -3144,7 +3144,7 @@
-                 info_struct_v < 8 ? OSD::make_pg_log_oid(pg_id) : pgmeta_oid,
-                 info, oss);
-   if (oss.str().length())
--    osd->clog->error() << oss;
-+    osd->clog->error() << oss.rdbuf();
-   // log any weirdness
-   log_weirdness();
-diff -ur ceph-0.94.10/src/rgw/rgw_cache.cc ceph-0.94.10-cxx/src/rgw/rgw_cache.cc
---- ceph-0.94.10/src/rgw/rgw_cache.cc  2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/rgw/rgw_cache.cc      2017-04-29 11:09:17.823000713 +0200
-@@ -105,7 +105,7 @@
-   for (liter = cache_entry_list.begin(); liter != cache_entry_list.end(); ++liter) {
-     ObjectCacheEntry *entry = *liter;
--    entry->chained_entries.push_back(make_pair<RGWChainedCache *, string>(chained_entry->cache, chained_entry->key));
-+    entry->chained_entries.push_back(make_pair(chained_entry->cache, chained_entry->key));
-   }
-   return true;
-diff -ur ceph-0.94.10/src/test/librbd/test_ImageWatcher.cc ceph-0.94.10-cxx/src/test/librbd/test_ImageWatcher.cc
---- ceph-0.94.10/src/test/librbd/test_ImageWatcher.cc  2017-02-21 16:13:19.000000000 +0100
-+++ ceph-0.94.10-cxx/src/test/librbd/test_ImageWatcher.cc      2017-04-29 11:58:28.225636783 +0200
-@@ -383,8 +383,7 @@
-   ASSERT_EQ(0, open_image(m_image_name, &ictx));
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -474,8 +473,7 @@
-   ASSERT_EQ(0, open_image(m_image_name, &ictx));
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -528,8 +526,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   {
-     RWLock::WLocker l(ictx->owner_lock);
-@@ -549,9 +546,7 @@
-   ASSERT_EQ(0, unlock_image());
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()))(
--    std::make_pair(NOTIFY_OP_ACQUIRED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}, {NOTIFY_OP_ACQUIRED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -578,8 +573,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, {}}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -606,8 +600,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   int orig_notify_timeout = ictx->cct->_conf->client_notify_timeout;
-   ictx->cct->_conf->set_val("client_notify_timeout", "0");
-@@ -645,8 +638,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                           "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -662,8 +654,7 @@
-   ASSERT_EQ(expected_notify_ops, m_notifies);
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -703,8 +694,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                           "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_REQUEST_LOCK, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_REQUEST_LOCK, create_response_message(0)}};
-   m_expected_aio_restarts = 1;
-   {
-@@ -723,8 +713,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_SHARED, "manually 1234"));
-   m_notifies.clear();
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RELEASED_LOCK, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_RELEASED_LOCK, {}}};
-   bufferlist bl;
-   {
-@@ -744,8 +733,7 @@
-   ASSERT_EQ(0, register_image_watch(*ictx));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_HEADER_UPDATE, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_HEADER_UPDATE, {}}};
-   librbd::ImageWatcher::notify_header_update(m_ioctx, ictx->header_oid);
-   ASSERT_TRUE(wait_for_notifies(*ictx));
-@@ -765,8 +753,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -800,8 +787,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_RESIZE, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_RESIZE, create_response_message(0)}};
-   ProgressContext progress_context;
-   ResizeTask resize_task(ictx, &progress_context);
-@@ -835,8 +821,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_SNAP_CREATE, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_SNAP_CREATE, create_response_message(0)}};
-   RWLock::RLocker l(ictx->owner_lock);
-   ASSERT_EQ(0, ictx->image_watcher->notify_snap_create("snap"));
-@@ -856,8 +841,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_SNAP_CREATE, create_response_message(-EEXIST)));
-+  m_notify_acks = {{NOTIFY_OP_SNAP_CREATE, create_response_message(-EEXIST)}};
-   RWLock::RLocker l(ictx->owner_lock);
-   ASSERT_EQ(-EEXIST, ictx->image_watcher->notify_snap_create("snap"));
-@@ -877,8 +861,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, bufferlist()));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, {}}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -898,8 +881,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(-EIO)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(-EIO)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -919,8 +901,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
-@@ -960,8 +941,7 @@
-   ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE,
-                         "auto " + stringify(m_watch_ctx->get_handle())));
--  m_notify_acks = boost::assign::list_of(
--    std::make_pair(NOTIFY_OP_FLATTEN, create_response_message(0)));
-+  m_notify_acks = {{NOTIFY_OP_FLATTEN, create_response_message(0)}};
-   ProgressContext progress_context;
-   FlattenTask flatten_task(ictx, &progress_context);
diff --git a/ix86-no-asm.patch b/ix86-no-asm.patch
new file mode 100644 (file)
index 0000000..70b72c3
--- /dev/null
@@ -0,0 +1,12 @@
+--- ceph-16.2.7/cmake/modules/CheckNasm.cmake~ 2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/cmake/modules/CheckNasm.cmake  2022-02-12 19:19:51.463245367 +0100
+@@ -10,6 +10,9 @@
+       set(CMAKE_REQUIRED_QUIET true)
+       include(CheckCXXSourceCompiles)
+       check_cxx_source_compiles("
++      #if !defined(__x86_64__)
++      #error ix86
++      #endif
+       #if defined(__x86_64__) && defined(__ILP32__)
+       #error x32
+       #endif
diff --git a/long-int-time_t.patch b/long-int-time_t.patch
new file mode 100644 (file)
index 0000000..837ff10
--- /dev/null
@@ -0,0 +1,23 @@
+--- ceph-16.2.7/src/json_spirit/json_spirit_value.h.orig       2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/json_spirit/json_spirit_value.h    2022-02-13 10:26:48.023109513 +0100
+@@ -51,6 +51,7 @@
+         Value_impl( const Array&       value );\r
+         Value_impl( bool               value );\r
+         Value_impl( int                value );\r
++        Value_impl( long int           value );\r
+         Value_impl( boost::int64_t     value );\r
+         Value_impl( boost::uint64_t    value );\r
+         Value_impl( double             value );\r
+@@ -294,6 +295,12 @@
+     :   v_( static_cast< boost::int64_t >( value ) )\r
+     {\r
+     }\r
++\r
++    template< class Config >\r
++    Value_impl< Config >::Value_impl( long int value )\r
++    :   v_( static_cast< boost::int64_t >( value ) )\r
++    {\r
++    }\r
\r
+     template< class Config >\r
+     Value_impl< Config >::Value_impl( boost::int64_t value )\r
diff --git a/no-virtualenvs.patch b/no-virtualenvs.patch
new file mode 100644 (file)
index 0000000..6d0a31b
--- /dev/null
@@ -0,0 +1,102 @@
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -70,17 +70,6 @@ function(add_tox_test name)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+   add_test(
+-    NAME setup-venv-for-${name}
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${venv_path}
+-    WORKING_DIRECTORY ${tox_path})
+-  set_tests_properties(setup-venv-for-${name} PROPERTIES
+-    FIXTURES_SETUP venv-for-${name})
+-  add_test(
+-    NAME teardown-venv-for-${name}
+-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${venv_path})
+-  set_tests_properties(teardown-venv-for-${name} PROPERTIES
+-    FIXTURES_CLEANUP venv-for-${name})
+-  add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+               --source-dir ${CMAKE_SOURCE_DIR}
+@@ -88,8 +77,7 @@ function(add_tox_test name)
+               --tox-path ${tox_path}
+               --tox-envs ${tox_envs}
+               --venv-path ${venv_path})
+-  set_tests_properties(${test_name} PROPERTIES
+-    FIXTURES_REQUIRED venv-for-${name})
++  set_tests_properties(${test_name} PROPERTIES)
+   set_property(
+     TEST ${test_name}
+     PROPERTY ENVIRONMENT
+diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
+index 9166553dc73..9a6c87595b9 100644
+--- a/src/ceph-volume/CMakeLists.txt
++++ b/src/ceph-volume/CMakeLists.txt
+@@ -8,22 +8,6 @@ if(FREEBSD)
+   add_subdirectory(plugin/zfs)
+ endif()
+-# Required for running ceph-volume inventory in a vstart environment
+-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "ceph-volume venv is being created")
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
+-  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
+-
+ add_custom_target(ceph-volume-venv-setup
+   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
+--- ceph-17.2.6/src/pybind/mgr/dashboard/frontend/CMakeLists.txt.orig  2023-04-05 17:09:51.000000000 +0200
++++ ceph-17.2.6/src/pybind/mgr/dashboard/frontend/CMakeLists.txt       2023-07-23 18:16:30.189120508 +0200
+@@ -5,17 +5,10 @@ function(add_npm_command)
+   set(multi_kw COMMAND DEPENDS)
+   cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN})
+   string(REPLACE ";" " " command "${NC_COMMAND}")
+-  if(NC_NODEENV)
+-    string(REGEX REPLACE
+-      "^(([^ ]+=[^ ]+ )*npm .*)$"
+-      ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate"
+-      command ${command})
+-  else()
+     string(REGEX REPLACE
+       "^([^ ]=[^ ] )*npm (.*)$"
+       "\\1${NPM_EXECUTABLE} \\2"
+       command ${command})
+-  endif()
+   string(REPLACE " " ";" command "${command}")
+   add_custom_command(
+     OUTPUT "${NC_OUTPUT}"
+@@ -36,9 +29,7 @@ function(add_npm_options)
+     list(GET opt 1 value)
+     list(APPEND commands
+       COMMAND
+-      . ${NC_NODEENV_DIR}/bin/activate &&
+-      npm config set ${key} ${value} --userconfig ${NC_NODEENV_DIR}/.npmrc &&
+-      deactivate)
++      npm config set ${key} ${value} --userconfig ${NC_NODEENV_DIR}/.npmrc
+   endforeach()
+   add_custom_target(${NC_TARGET}
+     ${commands}
+@@ -60,11 +51,8 @@ else(WITH_SYSTEM_NPM)
+     set(node_mirror_opt "--mirror=$ENV{NODE_MIRROR}")
+   endif()
+   add_custom_command(
+-    OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm"
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir}
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose ${node_mirror_opt} -p --node=14.15.1
+-    COMMAND mkdir ${mgr-dashboard-nodeenv-dir}/.npm
++    OUTPUT "/bin/npm"
++    COMMAND /bin/nodeenv --verbose ${node_mirror_opt} -p --node=14.15.1
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+     COMMENT "dashboard nodeenv is being installed")
+   if(DEFINED ENV{NPM_REGISTRY})
diff --git a/types.patch b/types.patch
new file mode 100644 (file)
index 0000000..d078d56
--- /dev/null
@@ -0,0 +1,140 @@
+--- ceph-16.2.7/src/SimpleRADOSStriper.cc~     2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/SimpleRADOSStriper.cc      2022-02-12 21:59:28.261721940 +0100
+@@ -140,7 +140,7 @@
+   return 0;
+ }
+-int SimpleRADOSStriper::truncate(uint64_t size)
++int SimpleRADOSStriper::truncate(size_t size)
+ {
+   d(5) << size << dendl;
+--- ceph-17.2.7/src/os/bluestore/BlueFS.cc.orig        2024-02-24 21:45:42.755706899 +0100
++++ ceph-17.2.7/src/os/bluestore/BlueFS.cc     2024-02-24 21:51:20.641018002 +0100
+@@ -4617,7 +4617,7 @@ size_t BlueFS::probe_alloc_avail(int dev
+     if (dist_to_alignment >= len)
+       return;
+     len -= dist_to_alignment;
+-    total += p2align(len, alloc_size);
++    total += p2align((uint64_t)len, alloc_size);
+   };
+   if (alloc[dev]) {
+     alloc[dev]->foreach(iterated_allocation);
+--- ceph-16.2.7/src/librbd/object_map/DiffRequest.cc.orig      2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/librbd/object_map/DiffRequest.cc   2022-02-12 22:17:55.163378523 +0100
+@@ -187,7 +187,7 @@
+     m_object_map.resize(m_object_diff_state->size());
+   }
+-  uint64_t overlap = std::min(m_object_map.size(), prev_object_diff_state_size);
++  uint64_t overlap = std::min(m_object_map.size(), (uint64_t)prev_object_diff_state_size);
+   auto it = m_object_map.begin();
+   auto overlap_end_it = it + overlap;
+   auto diff_it = m_object_diff_state->begin();
+--- ceph-16.2.7/src/tools/neorados.cc~ 2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/tools/neorados.cc  2022-02-12 22:23:25.836643956 +0100
+@@ -205,7 +205,7 @@
+   std::size_t off = 0;
+   ceph::buffer::list bl;
+-  while (auto toread = std::max(len - off, io_size)) {
++  while (auto toread = std::max(len - off, (uint64_t)io_size)) {
+     R::ReadOp op;
+     op.read(off, toread, &bl);
+     r.execute(obj, pool, std::move(op), nullptr, y[ec]);
+--- ceph-16.2.7/src/tools/cephfs_mirror/FSMirror.cc.orig       2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/tools/cephfs_mirror/FSMirror.cc    2022-02-12 22:30:46.487298972 +0100
+@@ -345,7 +345,7 @@
+     std::scoped_lock locker(m_lock);
+     m_directories.emplace(dir_path);
+     m_service_daemon->add_or_update_fs_attribute(m_filesystem.fscid, SERVICE_DAEMON_DIR_COUNT_KEY,
+-                                                 m_directories.size());
++                                                 (uint64_t)m_directories.size());
+     for (auto &[peer, peer_replayer] : m_peer_replayers) {
+       dout(10) << ": peer=" << peer << dendl;
+@@ -363,7 +363,7 @@
+     if (it != m_directories.end()) {
+       m_directories.erase(it);
+       m_service_daemon->add_or_update_fs_attribute(m_filesystem.fscid, SERVICE_DAEMON_DIR_COUNT_KEY,
+-                                                   m_directories.size());
++                                                   (uint64_t)m_directories.size());
+       for (auto &[peer, peer_replayer] : m_peer_replayers) {
+         dout(10) << ": peer=" << peer << dendl;
+         peer_replayer->remove_directory(dir_path);
+--- ceph-17.2.2/src/os/bluestore/BlueStore.cc.orig     2022-07-21 19:29:33.000000000 +0200
++++ ceph-17.2.2/src/os/bluestore/BlueStore.cc  2022-08-23 16:55:10.753944515 +0200
+@@ -18583,7 +18583,7 @@ int BlueStore::__restore_allocator(Alloc
+   uint64_t        extent_count       = 0;
+   uint64_t        extents_bytes_left = file_size - (header_size + trailer_size + sizeof(crc));
+   while (extents_bytes_left) {
+-    int req_bytes  = std::min(extents_bytes_left, sizeof(buffer));
++    uint64_t req_bytes  = std::min<uint64_t>(extents_bytes_left, sizeof(buffer));
+     int read_bytes = bluefs->read(p_handle.get(), offset, req_bytes, nullptr, (char*)buffer);
+     if (read_bytes != req_bytes) {
+       derr << "Failed bluefs->read()::read_bytes=" << read_bytes << ", req_bytes=" << req_bytes << dendl;
+--- ceph-17.2.2/src/rgw/store/dbstore/sqlite/sqliteDB.cc.orig  2022-07-21 19:29:33.000000000 +0200
++++ ceph-17.2.2/src/rgw/store/dbstore/sqlite/sqliteDB.cc       2022-08-24 06:15:01.162110603 +0200
+@@ -514,8 +514,10 @@ static int list_lc_head(const DoutPrefix
+   op.lc_head.index = (const char*)sqlite3_column_text(stmt, LCHeadIndex);
+   op.lc_head.head.marker = (const char*)sqlite3_column_text(stmt, LCHeadMarker);
+- 
+-  SQL_DECODE_BLOB_PARAM(dpp, stmt, LCHeadStartDate, op.lc_head.head.start_date, sdb);
++
++  { int64_t start_date;
++  SQL_DECODE_BLOB_PARAM(dpp, stmt, LCHeadStartDate, start_date, sdb);
++  op.lc_head.head.start_date = start_date; }
+   return 0;
+ }
+@@ -2773,7 +2775,8 @@ int SQLInsertLCHead::Bind(const DoutPref
+   SQL_BIND_TEXT(dpp, stmt, index, params->op.lc_head.head.marker.c_str(), sdb);
+   SQL_BIND_INDEX(dpp, stmt, index, p_params.op.lc_head.start_date.c_str(), sdb);
+-  SQL_ENCODE_BLOB_PARAM(dpp, stmt, index, params->op.lc_head.head.start_date, sdb);
++  { int64_t start_date = params->op.lc_head.head.start_date;
++  SQL_ENCODE_BLOB_PARAM(dpp, stmt, index, start_date, sdb); }
+ out:
+   return rc;
+--- ceph-17.2.3/src/seastar/src/core/file.cc.orig      2021-12-19 23:02:10.000000000 +0100
++++ ceph-17.2.3/src/seastar/src/core/file.cc   2022-08-28 09:19:17.258501014 +0200
+@@ -313,7 +313,7 @@ posix_file_impl::close() noexcept {
+ future<uint64_t>
+ blockdev_file_impl::size(void) noexcept {
+-    return engine()._thread_pool->submit<syscall_result_extra<size_t>>([this] {
++    return engine()._thread_pool->submit<syscall_result_extra<uint64_t>>([this] {
+         uint64_t size;
+         int ret = ::ioctl(_fd, BLKGETSIZE64, &size);
+         return wrap_syscall(ret, size);
+@@ -908,7 +908,7 @@ append_challenged_posix_file_impl::trunc
+ future<uint64_t>
+ append_challenged_posix_file_impl::size() noexcept {
+-    return make_ready_future<size_t>(_logical_size);
++    return make_ready_future<uint64_t>(_logical_size);
+ }
+ future<>
+@@ -996,7 +996,7 @@ make_file_impl(int fd, file_open_options
+                 engine().fstatfs(fd).then([fd, st_dev] (struct statfs sfs) {
+                     internal::fs_info fsi;
+                     fsi.block_size = sfs.f_bsize;
+-                    switch (sfs.f_type) {
++                    switch (static_cast<unsigned>(sfs.f_type)) {
+                     case 0x58465342: /* XFS */
+                         dioattr da;
+                         if (::ioctl(fd, XFS_IOC_DIOINFO, &da) == 0) {
+--- ceph-17.2.3/src/seastar/src/core/fstream.cc.orig   2021-12-19 23:02:10.000000000 +0100
++++ ceph-17.2.3/src/seastar/src/core/fstream.cc        2022-08-28 09:22:32.072057177 +0200
+@@ -419,7 +419,7 @@ private:
+         if ((buf.size() & (_file.disk_write_dma_alignment() - 1)) != 0) {
+             // If buf size isn't aligned, copy its content into a new aligned buf.
+             // This should only happen when the user calls output_stream::flush().
+-            auto tmp = allocate_buffer(align_up(buf.size(), _file.disk_write_dma_alignment()));
++            auto tmp = allocate_buffer(align_up<uint64_t>(buf.size(), _file.disk_write_dma_alignment()));
+             ::memcpy(tmp.get_write(), buf.get(), buf.size());
+             ::memset(tmp.get_write() + buf.size(), 0, tmp.size() - buf.size());
+             buf = std::move(tmp);
diff --git a/use-provided-cpu-flag-values.patch b/use-provided-cpu-flag-values.patch
new file mode 100644 (file)
index 0000000..55c82b0
--- /dev/null
@@ -0,0 +1,37 @@
+diff --git a/cmake/modules/SIMDExt.cmake b/cmake/modules/SIMDExt.cmake
+index 5330835aa1..a4dd881e34 100644
+--- a/cmake/modules/SIMDExt.cmake
++++ b/cmake/modules/SIMDExt.cmake
+@@ -76,32 +76,25 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64")
+   set(HAVE_INTEL 1)
+   if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
+-    CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE)
+     if(HAVE_INTEL_SSE)
+       set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse")
+     endif()
+     if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
+-      CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2)
+       if(HAVE_INTEL_SSE2)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3)
+       if(HAVE_INTEL_SSE3)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3)
+       if(HAVE_INTEL_SSSE3)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL)
+       if(HAVE_INTEL_PCLMUL)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1)
+       if(HAVE_INTEL_SSE4_1)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2)
+       if(HAVE_INTEL_SSE4_2)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2")
+       endif()
This page took 0.39101 seconds and 4 git commands to generate.