cct->_conf->osd_pg_log_trim_max);
if (num_to_trim < cct->_conf->osd_pg_log_trim_min &&
cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) {
-@@ -1628,7 +1628,7 @@
- pg_log.get_log().approx_size() > target) {
- dout(10) << __func__ << " approx pg log length = "
- << pg_log.get_log().approx_size() << dendl;
-- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target,
-+ size_t num_to_trim = std::min<uint64_t>(pg_log.get_log().approx_size() - target,
- cct->_conf->osd_pg_log_trim_max);
- dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl;
- if (num_to_trim < cct->_conf->osd_pg_log_trim_min &&
--- ceph-12.2.13/src/os/filestore/FileStore.cc.orig 2020-01-30 21:52:36.000000000 +0100
+++ ceph-12.2.13/src/os/filestore/FileStore.cc 2020-06-03 21:27:26.387210803 +0200
@@ -922,7 +922,7 @@
!g_ceph_context->check_experimental_feature_enabled("btrfs")) {
derr <<__FUNC__ << ": deprecated btrfs support is not enabled" << dendl;
return -EPERM;
---- ceph-13.2.10/src/mon/OSDMonitor.cc.orig 2020-04-23 18:32:31.000000000 +0200
-+++ ceph-13.2.10/src/mon/OSDMonitor.cc 2021-09-20 20:03:13.672134022 +0200
-@@ -820,7 +820,7 @@ OSDMonitor::update_pending_pgs(const OSD
- << " modified " << p->second.modified
- << " [" << p->second.start << "-" << p->second.end << ")"
- << dendl;
-- int n = std::min(max - pending_creatings.pgs.size(),
-+ int n = std::min<uint64_t>(max - pending_creatings.pgs.size(),
- p->second.end - p->second.start);
- ps_t first = p->second.start;
- ps_t end = first + n;
---- ceph-13.2.10/src/os/bluestore/BlueStore.cc.orig 2020-04-23 18:32:31.000000000 +0200
-+++ ceph-13.2.10/src/os/bluestore/BlueStore.cc 2021-09-20 20:34:23.352005097 +0200
-@@ -12614,7 +12614,7 @@ size_t BlueStoreRepairer::StoreSpaceTrac
- if (e.second == 0) {
- continue;
- }
-- size_t pos = max(e.first / granularity, prev_pos);
-+ size_t pos = max<uint64_t>(e.first / granularity, prev_pos);
- size_t end_pos = 1 + (e.first + e.second - 1) / granularity;
- while (pos != npos && pos < end_pos) {
- ceph_assert( collections_bfs[pos].element_count() ==
--- ceph-13.2.10/src/rgw/rgw_client_io_filters.h.orig 2020-04-23 18:32:31.000000000 +0200
+++ ceph-13.2.10/src/rgw/rgw_client_io_filters.h 2021-09-22 17:02:54.573378159 +0200
@@ -291,7 +291,7 @@ public:
size_t sent = 0;
sent += DecoratedRestfulClient<T>::send_body(chunk_size, chunk_size_len);
---- ceph-13.2.10/src/rgw/rgw_rest_swift.cc.orig 2020-04-23 18:32:31.000000000 +0200
-+++ ceph-13.2.10/src/rgw/rgw_rest_swift.cc 2021-09-22 17:04:01.473340779 +0200
-@@ -726,7 +726,7 @@ static inline int handle_metadata_errors
- } else if (op_ret == -E2BIG) {
- const auto error_message = boost::str(
- boost::format("Too many metadata items; max %lld")
-- % s->cct->_conf->get_val<size_t>("rgw_max_attrs_num_in_req"));
-+ % s->cct->_conf->get_val<Option::size_t>("rgw_max_attrs_num_in_req"));
- set_req_state_err(s, EINVAL, error_message);
- return -EINVAL;
- }
-@@ -1781,7 +1781,7 @@ void RGWInfo_ObjStore_SWIFT::list_swift_
- formatter.dump_string("version", ceph_version);
+--- ceph-14.2.22/src/include/buffer.h.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/include/buffer.h 2022-06-10 22:04:13.923155571 +0200
+@@ -737,7 +737,9 @@ inline namespace v14_2_0 {
- const size_t max_attr_name_len = \
-- g_conf->get_val<size_t>("rgw_max_attr_name_len");
-+ g_conf->get_val<Option::size_t>("rgw_max_attr_name_len");
- if (max_attr_name_len) {
- const size_t meta_name_limit = \
- max_attr_name_len - strlen(RGW_ATTR_PREFIX RGW_AMZ_META_PREFIX);
-@@ -1794,7 +1794,7 @@ void RGWInfo_ObjStore_SWIFT::list_swift_
- }
+ void advance(int o) = delete;
+ void advance(unsigned o);
++#ifdef __LP64__
+ void advance(size_t o) { advance(static_cast<unsigned>(o)); }
++#endif
+ void seek(unsigned o);
+ char operator*() const;
+ iterator_impl& operator++();
+--- ceph-14.2.22/src/common/config_values.h.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/common/config_values.h 2022-06-11 12:41:03.898142864 +0200
+@@ -49,7 +49,7 @@ public:
+ #define OPTION_OPT_U32(name) uint64_t name;
+ #define OPTION_OPT_U64(name) uint64_t name;
+ #define OPTION_OPT_UUID(name) uuid_d name;
+-#define OPTION_OPT_SIZE(name) size_t name;
++#define OPTION_OPT_SIZE(name) uint64_t name;
+ #define OPTION(name, ty) \
+ public: \
+ OPTION_##ty(name)
+--- ceph-14.2.22/src/compressor/snappy/SnappyCompressor.h.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/compressor/snappy/SnappyCompressor.h 2022-06-11 13:56:24.966983465 +0200
+@@ -96,7 +96,7 @@ class SnappyCompressor : public Compress
+ if (qat_enabled)
+ return qat_accel.decompress(p, compressed_len, dst);
+ #endif
+- snappy::uint32 res_len = 0;
++ uint32_t res_len = 0;
+ BufferlistSource source_1(p, compressed_len);
+ if (!snappy::GetUncompressedLength(&source_1, &res_len)) {
+ return -1;
+--- ceph-14.2.22/src/os/bluestore/BlueFS.cc.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/os/bluestore/BlueFS.cc 2022-06-11 16:48:43.774306676 +0200
+@@ -1737,7 +1737,7 @@ int64_t BlueFS::_read_random(
+ }
+ } else {
+ auto left = buf->get_buf_remaining(off);
+- int64_t r = std::min(len, left);
++ int64_t r = std::min<int64_t>(len, left);
+ logger->inc(l_bluefs_read_random_buffer_count, 1);
+ logger->inc(l_bluefs_read_random_buffer_bytes, r);
+ dout(20) << __func__ << " left 0x" << std::hex << left
+--- ceph-14.2.22/src/os/bluestore/BlueStore.cc.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/os/bluestore/BlueStore.cc 2022-06-11 17:36:58.645290480 +0200
+@@ -5948,7 +5948,7 @@ size_t BlueStore::available_freespace(ui
+ if (dist_to_alignment >= len)
+ return;
+ len -= dist_to_alignment;
+- total += p2align(len, alloc_size);
++ total += p2align<uint64_t>(len, alloc_size);
+ };
+ alloc->dump(iterated_allocation);
+ return total;
+--- ceph-14.2.22/src/mds/PurgeQueue.cc.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/mds/PurgeQueue.cc 2022-06-11 19:37:11.086217333 +0200
+@@ -499,7 +499,7 @@ void PurgeQueue::_execute_item(
- const size_t meta_num_limit = \
-- g_conf->get_val<size_t>("rgw_max_attrs_num_in_req");
-+ g_conf->get_val<Option::size_t>("rgw_max_attrs_num_in_req");
- if (meta_num_limit) {
- formatter.dump_int("max_meta_count", meta_num_limit);
+ in_flight[expire_to] = item;
+ logger->set(l_pq_executing, in_flight.size());
+- files_high_water = std::max(files_high_water, in_flight.size());
++ files_high_water = std::max<uint64_t>(files_high_water, in_flight.size());
+ logger->set(l_pq_executing_high_water, files_high_water);
+ auto ops = _calculate_ops(item);
+ ops_in_flight += ops;
+@@ -577,7 +577,7 @@ void PurgeQueue::_execute_item(
+ logger->set(l_pq_executing_ops_high_water, ops_high_water);
+ in_flight.erase(expire_to);
+ logger->set(l_pq_executing, in_flight.size());
+- files_high_water = std::max(files_high_water, in_flight.size());
++ files_high_water = std::max<uint64_t>(files_high_water, in_flight.size());
+ logger->set(l_pq_executing_high_water, files_high_water);
+ return;
}
---- ceph-13.2.10/src/common/ceph_context.h.orig 2020-04-23 18:32:31.000000000 +0200
-+++ ceph-13.2.10/src/common/ceph_context.h 2021-09-23 06:29:21.645156177 +0200
-@@ -144,7 +144,11 @@ public:
- void do_command(std::string_view command, const cmdmap_t& cmdmap,
- std::string_view format, ceph::bufferlist *out);
+@@ -654,7 +654,7 @@ void PurgeQueue::_execute_item_complete(
-+#ifdef __LP64__
- static constexpr std::size_t largest_singleton = sizeof(void*) * 72;
-+#else
-+ static constexpr std::size_t largest_singleton = sizeof(void*) * 96;
-+#endif
+ in_flight.erase(iter);
+ logger->set(l_pq_executing, in_flight.size());
+- files_high_water = std::max(files_high_water, in_flight.size());
++ files_high_water = std::max<uint64_t>(files_high_water, in_flight.size());
+ logger->set(l_pq_executing_high_water, files_high_water);
+ dout(10) << "in_flight.size() now " << in_flight.size() << dendl;
+
+--- ceph-14.2.22/src/client/fuse_ll.cc.orig 2021-06-30 00:09:10.000000000 +0200
++++ ceph-14.2.22/src/client/fuse_ll.cc 2022-06-11 20:41:03.452122291 +0200
+@@ -192,7 +192,7 @@ static void fuse_ll_lookup(fuse_req_t re
+ }
- template<typename T, typename... Args>
- T& lookup_or_create_singleton_object(std::string_view name,
+ static void fuse_ll_forget(fuse_req_t req, fuse_ino_t ino,
+- long unsigned nlookup)
++ uint64_t nlookup)
+ {
+ CephFuse::Handle *cfuse = fuse_ll_req_prepare(req);
+ cfuse->client->ll_forget(cfuse->iget(ino), nlookup+1);
# TODO:
+# - bluefs? (WITH_BLUEFS=ON)
+# - QATZIP? (WITH_QATZIP=ON, BR: qatzip-devel)
+# - brotli? (WITH_BROTLI=ON, uses internal brotli as downloaded subproject)
+# - seastar (WITH_SEASTAR=ON, BR: libfmt-devel >= 5.2.1, c-ares-devel >= 1.13.0)
+# - MGR_PYTHON_VERSION=3?
# - proper init scripts if non-systemd boot is too be supported
# (upstream scripts seem overcomplicated and hardly useful)
# - run as non-root user
%bcond_without java # Java binding
%bcond_with accelio # Accelio transport support [needs update for internal API changes]
%bcond_with angular # Angular-based mgr/dashboard frontend (built using npm, too outdated currently)
-%bcond_with cryptopp # use cryptopp instead of NSS crypto/SSL
-%bcond_with dpdk # DPDK messaging (requires cryptopp instead of nss)
+%bcond_with dpdk # DPDK messaging
%bcond_without fcgi # RADOS Gateway FCGI frontend
%bcond_with fio # FIO engines support
+%bcond_with kerberos # GSSAPI/KRB5 support
%bcond_without pmem # PMDK (persistent memory) support
+%bcond_without rdma # RDMA transport support
%bcond_with spdk # Ceph SPDK support (DPDK based)
%bcond_without system_rocksdb # system RocksDB storage support
-%bcond_without zfs # ZFS support [not ready for zfs 0.8.x]
+%bcond_without zfs # ZFS support
%bcond_without lttng # LTTng tracing
%bcond_without babeltrace # Babeltrace traces support
%bcond_without tcmalloc # tcmalloc allocator
%ifnarch %{x8664} aarch64
%undefine with_pmem
%endif
-%if %{without cryptopp} && %{with dpdk}
-%error DPDK requires cryptopp
-%endif
#
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: 13.2.10
+Version: 14.2.22
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: 4dfcd8bf2cbbc90ac3bc70cbb2992fa9
+# Source0-md5: 7b7c68409cedb3e68c58ac44f37f9de3
Source1: ceph.sysconfig
Source3: ceph.tmpfiles
Patch0: %{name}-init-fix.patch
Patch3: %{name}-python.patch
Patch4: %{name}-types.patch
Patch5: %{name}-tcmalloc.patch
-Patch6: %{name}-rocksdb.patch
Patch7: %{name}-fcgi.patch
Patch8: %{name}-fio.patch
Patch9: %{name}-zfs.patch
-Patch10: %{name}-includes.patch
URL: https://ceph.io/
%{?with_accelio:BuildRequires: accelio-devel}
%{?with_babeltrace:BuildRequires: babeltrace-devel}
BuildRequires: boost-devel >= 1.67
BuildRequires: boost-python-devel >= 1.67
-BuildRequires: cmake >= 2.8.12
-%{?with_cryptopp:BuildRequires: cryptopp-devel}
+BuildRequires: cmake >= 3.5.1
BuildRequires: curl-devel
%if %{with dpdk} || %{with spdk}
BuildRequires: dpdk-devel
%{?with_fcgi:BuildRequires: fcgi-devel}
%{?with_fio:BuildRequires: fio-devel}
BuildRequires: gdbm-devel
+BuildRequires: gperf
+%{?with_tcmalloc:BuildRequires: gperftools-devel}
+%{?with_kerberos:BuildRequires: heimdal-devel}
%if %{with java}
BuildRequires: jdk
%endif
BuildRequires: libaio-devel
BuildRequires: libatomic_ops
BuildRequires: libblkid-devel >= 2.17
+BuildRequires: libcap-ng-devel
BuildRequires: libedit-devel >= 2.11
-BuildRequires: libfuse-devel
-# +RDMA?
-%{?with_accelio:BuildRequires: libibverbs-devel}
+BuildRequires: libfuse3-devel >= 3
+%{?with_rdma:BuildRequires: libibverbs-devel}
BuildRequires: libltdl-devel
-%{?with_accelio:BuildRequires: librdmacm-devel}
+BuildRequires: libnl-devel >= 3.2
+%{?with_rdma:BuildRequires: librdmacm-devel}
+# not released yet?
+#BuildRequires: librdkafka-devel >= 1.9.2
BuildRequires: libstdc++-devel >= 6:7
%{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
BuildRequires: libtool >= 2:1.5
%{?with_lttng:BuildRequires: lttng-ust-devel}
BuildRequires: lz4-devel >= 1:1.7
%{?with_angular:BuildRequires: npm}
-%{!?with_cryptopp:BuildRequires: nss-devel >= 3}
+BuildRequires: nspr-devel >= 4
+BuildRequires: nss-devel >= 3
+BuildRequires: oath-toolkit-devel
BuildRequires: openldap-devel
-BuildRequires: openssl-devel
+BuildRequires: openssl-devel >= 1.1
BuildRequires: perl-base
BuildRequires: pkgconfig
%{?with_pmem:BuildRequires: pmdk-devel}
BuildRequires: python-Cython
BuildRequires: python3-devel >= 1:3.2
BuildRequires: python3-Cython
+BuildRequires: rabbitmq-c-devel
%{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.8}
BuildRequires: rpmbuild(macros) >= 1.671
BuildRequires: sed >= 4.0
%ifarch %{x8664}
BuildRequires: yasm
%endif
-# zfs patch updates to 0.8.0 API
%{?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: lz4 >= 1:1.7
Requires: python-%{name} = %{version}-%{release}
+%{?with_system_rocksdb:Requires: rocksdb >= 5.8}
Requires: systemd-units >= 38
+Requires: zstd >= 1.4.4
Obsoletes: gcephtool < 0.51
Obsoletes: hadoop-cephfs < 0.71
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Summary: Ceph shared libraries
Summary(pl.UTF-8): Biblioteki współdzielone Cepha
Group: Libraries
+Requires: openssl >= 1.1
%description libs
Ceph shared libraries.
Requires: expat-devel
Requires: fcgi-devel
Requires: nss-devel >= 3
-Requires: leveldb-devel
+Requires: leveldb-devel >= 1.2
Requires: libatomic_ops
Requires: libblkid-devel >= 2.17
Requires: libstdc++-devel >= 6:7
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
-%patch10 -p1
-
-%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' \
- src/{ceph-create-keys,mount.fuse.ceph} \
- src/ceph-disk/ceph_disk/main.py
%{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' \
- src/{ceph-post-file.in,rbd-replay-many,rbdmap}
+ src/{ceph-post-file.in,rbd-replay-many,rbdmap} \
+ src/rgw/rgw-{gap,orphan}-list
%if %{with angular}
# stub virtualenv with npm for src/pybind/mgr/dashboard bootstrapping
unset -f deactivate
}
EOF
-# 4.11.0 no longer downloadable, adjust to nearest existing
-%{__sed} -i -e '/"node-sass"/ s/4\.11\.0/4.13.1/' src/pybind/mgr/dashboard/frontend/package-lock.json
+# 4.12.0 no longer downloadable, adjust to nearest existing
+%{__sed} -i -e '/"node-sass"/ s/4\.12\.0/4.13.1/' src/pybind/mgr/dashboard/frontend/package-lock.json
%endif
%build
%{!?with_lttng:-DWITH_LTTNG=OFF} \
-DWITH_LZ4=ON \
%{!?with_angular:-DWITH_MGR_DASHBOARD_FRONTEND=OFF} \
- %{?with_cryptopp:-DWITH_NSS=OFF} \
-DWITH_OCF=ON \
%{?with_pmem:-DWITH_PMEM=ON} \
%{?with_fcgi:-DWITH_RADOSGW_FCGI_FRONTEND=ON} \
%{?with_spdk:-DWITH_SPDK=ON} \
+ %{!?with_rdma:-DWITH_RDMA=OFF} \
-DWITH_SYSTEM_BOOST=ON \
+ %{?with_fio:-DWITH_SYSTEM_FIO=ON} \
+ %{?with_angular:-DWITH_SYSTEM_NPM=ON} \
%{?with_system_rocksdb:-DWITH_SYSTEM_ROCKSDB=ON} \
+ -DWITH_SYSTEM_ZSTD=ON \
-DWITH_SYSTEMD=ON \
%{?with_accelio:-DWITH_XIO=ON} \
%{?with_zfs:-DWITH_ZFS=ON} \
-DWITH_REENTRANT_STRSIGNAL=ON \
%{!?with_tests:-DWITH_TESTS=OFF}
-# -DWITH_MANPAGE=ON \
-# -DWITH_PYTHON2=ON \
-# -DWITH_PYTHON3=ON \
-
-# required by xfs headers (for off64_t)
-#CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
-
%{__make}
%endif
# packaged as %doc
%{__rm} $RPM_BUILD_ROOT%{_docdir}/sample.ceph.conf
-# cleanup
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/ceph/mgr/dashboard/HACKING.rst
%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
%{systemdunitdir}/ceph.service
%{systemdunitdir}/ceph.target
%{systemdunitdir}/ceph-crash.service
-%{systemdunitdir}/ceph-disk@.service
%{systemdunitdir}/ceph-fuse.target
%{systemdunitdir}/ceph-fuse@.service
%{systemdunitdir}/ceph-mds.target
%attr(755,root,root) %{_bindir}/ceph-conf
%attr(755,root,root) %{_bindir}/ceph-crash
%attr(755,root,root) %{_bindir}/ceph-dencoder
-%attr(755,root,root) %{_bindir}/ceph-detect-init
+%attr(755,root,root) %{_bindir}/ceph-diff-sorted
%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}/rbd-replay-many
%attr(755,root,root) %{_bindir}/rbd-replay-prep
%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-disk
%attr(755,root,root) %{_sbindir}/ceph-volume
%attr(755,root,root) %{_sbindir}/ceph-volume-systemd
%attr(755,root,root) /sbin/mount.ceph
%endif
%{_libexecdir}/ceph/ceph_common.sh
%attr(755,root,root) %{_libexecdir}/ceph/ceph-osd-prestart.sh
-%{_libdir}/ceph/mgr
%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*
-%ifarch %{x8664}
%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
%dir %{_libdir}/ceph/erasure-code
+%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_shec_sse4.so*
%endif
%dir %{_libdir}/rados-classes
+%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_hello.so*
%attr(755,root,root) %{_libdir}/rados-classes/libcls_journal.so*
%attr(755,root,root) %{_libdir}/rados-classes/libcls_otp.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_sdk.so*
-%attr(755,root,root) %{_libdir}/rados-classes/libcls_statelog.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*
%{_mandir}/man8/ceph-create-keys.8*
%{_mandir}/man8/ceph-dencoder.8*
%{_mandir}/man8/ceph-deploy.8*
-%{_mandir}/man8/ceph-detect-init.8*
-%{_mandir}/man8/ceph-disk.8*
+%{_mandir}/man8/ceph-diff-sorted.8*
%{_mandir}/man8/ceph-kvstore-tool.8*
%{_mandir}/man8/ceph-mds.8*
%{_mandir}/man8/ceph-mon.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
%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_admin_user.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/librgw_admin_user.so.0
%attr(755,root,root) %{_libdir}/librgw_op_tp.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/librgw_op_tp.so.1
%attr(755,root,root) %{_libdir}/librgw_rados_tp.so.*.*.*
%attr(755,root,root) %{_libdir}/librbd.so
%attr(755,root,root) %{_libdir}/librbd_tp.so
%attr(755,root,root) %{_libdir}/librgw.so
+%attr(755,root,root) %{_libdir}/librgw_admin_user.so
%attr(755,root,root) %{_libdir}/librgw_op_tp.so
%attr(755,root,root) %{_libdir}/librgw_rados_tp.so
-%attr(755,root,root) %{_libdir}/ceph/libceph-common.so
%{_includedir}/cephfs
%{_includedir}/rados
%{_includedir}/radosstriper
%attr(755,root,root) %{py_sitedir}/rados.so
%attr(755,root,root) %{py_sitedir}/rbd.so
%attr(755,root,root) %{py_sitedir}/rgw.so
-%{py_sitedir}/ceph_detect_init
-%{py_sitedir}/ceph_detect_init-1.0.1-py*.egg-info
-%{py_sitedir}/ceph_disk
-%{py_sitedir}/ceph_disk-1.0.0-py*.egg-info
%{py_sitedir}/ceph_volume
%{py_sitedir}/ceph_volume-1.0.0-py*.egg-info
%{py_sitedir}/cephfs-2.0.0-py*.egg-info