---- ceph-12.2.13/src/osd/PrimaryLogPG.cc.orig 2020-01-30 21:52:36.000000000 +0100
-+++ ceph-12.2.13/src/osd/PrimaryLogPG.cc 2020-05-28 12:18:59.914600378 +0200
-@@ -1582,7 +1582,7 @@
- if (limit != eversion_t() &&
- limit != pg_trim_to &&
- pg_log.get_log().approx_size() > target) {
-- 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);
- 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) {
--- 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/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:
- // extensions/trailing headers.
- char chunk_size[32];
- const auto chunk_size_len = snprintf(chunk_size, sizeof(chunk_size),
-- "%" PRIx64 "\r\n", len);
-+ "%zx\r\n", len);
- size_t sent = 0;
-
- sent += DecoratedRestfulClient<T>::send_body(chunk_size, chunk_size_len);
---- 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 {
-
- 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
};
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(
-
- 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;
- }
-@@ -654,7 +654,7 @@ void PurgeQueue::_execute_item_complete(
-
- 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
{
CephFuse::Handle *cfuse = fuse_ll_req_prepare(req);
cfuse->client->ll_forget(cfuse->iget(ino), nlookup+1);
+--- ceph-15.2.16/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc.orig 2022-03-01 07:44:29.000000000 +0100
++++ ceph-15.2.16/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc 2022-06-13 06:26:31.761657298 +0200
+@@ -253,7 +253,7 @@ bool Replayer<I>::get_replay_status(std:
+
+ json_spirit::mObject root_obj;
+ root_obj["replay_state"] = replay_state;
+- root_obj["remote_snapshot_timestamp"] = remote_snap_info->timestamp.sec();
++ root_obj["remote_snapshot_timestamp"] = static_cast<int64_t>(remote_snap_info->timestamp.sec());
+
+ auto matching_remote_snap_id = util::compute_remote_snap_id(
+ m_state_builder->local_image_ctx->image_lock,
+@@ -268,7 +268,7 @@ bool Replayer<I>::get_replay_status(std:
+ // the local snapshot would just be the time the snapshot was
+ // synced and not the consistency point in time.
+ root_obj["local_snapshot_timestamp"] =
+- matching_remote_snap_it->second.timestamp.sec();
++ static_cast<int64_t>(matching_remote_snap_it->second.timestamp.sec());
+ }
+
+ matching_remote_snap_it = m_state_builder->remote_image_ctx->snap_info.find(
+@@ -276,7 +276,7 @@ bool Replayer<I>::get_replay_status(std:
+ if (m_remote_snap_id_end != CEPH_NOSNAP &&
+ matching_remote_snap_it !=
+ m_state_builder->remote_image_ctx->snap_info.end()) {
+- root_obj["syncing_snapshot_timestamp"] = remote_snap_info->timestamp.sec();
++ root_obj["syncing_snapshot_timestamp"] = static_cast<int64_t>(remote_snap_info->timestamp.sec());
+ root_obj["syncing_percent"] = static_cast<uint64_t>(
+ 100 * m_local_mirror_snap_ns.last_copied_object_number /
+ static_cast<float>(std::max<uint64_t>(1U, m_local_object_count)));
+--- ceph-15.2.16/src/librbd/object_map/DiffRequest.cc.orig 2022-03-01 07:44:29.000000000 +0100
++++ ceph-15.2.16/src/librbd/object_map/DiffRequest.cc 2022-06-13 06:09:45.790195571 +0200
+@@ -187,7 +187,7 @@ void DiffRequest<I>::handle_load_object_
+ 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<uint64_t>(m_object_map.size(), 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();
# - 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)
+# - seastar (WITH_SEASTAR=ON, BR: 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)
#
# Conditional build:
%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 dpdk # DPDK messaging
-%bcond_without fcgi # RADOS Gateway FCGI frontend
+# build fails with:
+# ceph-15.2.16/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
%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
+# temporarily disabled: "fallthrough" define from OpenZFS's spl breaks "[[fallthrough]]" in src/include/blobhash.h
+%bcond_with zfs # ZFS support
%bcond_without lttng # LTTng tracing
%bcond_without babeltrace # Babeltrace traces support
%bcond_without tcmalloc # tcmalloc allocator
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: 14.2.22
+Version: 15.2.16
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: 7b7c68409cedb3e68c58ac44f37f9de3
+# Source0-md5: 10461364fea1f21843f107548a901905
Source1: ceph.sysconfig
Source3: ceph.tmpfiles
Patch0: %{name}-init-fix.patch
Patch8: %{name}-fio.patch
Patch9: %{name}-zfs.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 >= 3.5.1
+BuildRequires: boost-python3-devel >= 1.67
+BuildRequires: cmake >= 3.10.2
BuildRequires: curl-devel
%if %{with dpdk} || %{with spdk}
BuildRequires: dpdk-devel
%{?with_fio:BuildRequires: fio-devel}
BuildRequires: gdbm-devel
BuildRequires: gperf
-%{?with_tcmalloc:BuildRequires: gperftools-devel}
+%{?with_tcmalloc:BuildRequires: gperftools-devel >= 2.6.2}
%{?with_kerberos:BuildRequires: heimdal-devel}
%if %{with java}
BuildRequires: jdk
BuildRequires: libblkid-devel >= 2.17
BuildRequires: libcap-ng-devel
BuildRequires: libedit-devel >= 2.11
+BuildRequires: libfmt-devel >= 5.2.1
BuildRequires: libfuse3-devel >= 3
%{?with_rdma:BuildRequires: libibverbs-devel}
BuildRequires: libltdl-devel
BuildRequires: libnl-devel >= 3.2
%{?with_rdma:BuildRequires: librdmacm-devel}
-# not released yet?
-#BuildRequires: librdkafka-devel >= 1.9.2
+BuildRequires: librdkafka-devel >= 0.9.2
BuildRequires: libstdc++-devel >= 6:7
-%{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
+%{?with_tcmalloc:BuildRequires: libtcmalloc-devel >= 2.6.2}
BuildRequires: libtool >= 2:1.5
BuildRequires: libuuid-devel
BuildRequires: libxml2-devel >= 2.0
BuildRequires: perl-base
BuildRequires: pkgconfig
%{?with_pmem:BuildRequires: pmdk-devel}
-BuildRequires: python >= 1:2.7
-BuildRequires: python-devel >= 1:2.7
-BuildRequires: python-Cython
+BuildRequires: python3 >= 1:3.2
BuildRequires: python3-devel >= 1:3.2
BuildRequires: python3-Cython
BuildRequires: rabbitmq-c-devel
-%{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.8}
+%{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.14}
BuildRequires: rpmbuild(macros) >= 1.671
BuildRequires: sed >= 4.0
BuildRequires: snappy-devel
-BuildRequires: sphinx-pdg-2 >= 1.0
+BuildRequires: sphinx-pdg-3 >= 1.0
BuildRequires: udev-devel
#BuildRequires: virtualenv for tests
%{?with_dpdk:BuildRequires: xorg-lib-libpciaccess-devel}
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: python3-%{name} = %{version}-%{release}
+%{?with_system_rocksdb:Requires: rocksdb >= 5.14}
Requires: systemd-units >= 38
Requires: zstd >= 1.4.4
Obsoletes: gcephtool < 0.51
Summary: Ceph shared libraries
Summary(pl.UTF-8): Biblioteki współdzielone Cepha
Group: Libraries
+Requires: libfmt >= 5.2.1
+Requires: librdkafka >= 0.9.2
Requires: openssl >= 1.1
%description libs
Requires: %{name}-libs = %{version}-%{release}
Requires: boost-devel >= 1.67
Requires: curl-devel
-Requires: expat-devel
+Requires: expat-devel >= 1.95
Requires: fcgi-devel
Requires: nss-devel >= 3
Requires: leveldb-devel >= 1.2
Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
wykorzystujących Cepha.
-%package -n python-ceph
-Summary: Ceph Python 2 bindings
-Summary(pl.UTF-8): Wiązania Pythona 2 do bibliotek Cepha
-Group: Development/Languages/Python
-Requires: %{name}-libs = %{version}-%{release}
-
-%description -n python-ceph
-Ceph Python 2 bindings.
-
-%description -n python-ceph -l pl.UTF-8
-Wiązania Pythona 2 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 python3-ceph
Ceph Python 3 bindings.
-DALLOCATOR="%{?with_tcmalloc:tcmalloc}%{!?with_tcmalloc:libc}" \
-DFIO_INCLUDE_DIR=/usr/include/fio \
-DPYTHON=%{__python} \
- -DSPHINX_BUILD=/usr/bin/sphinx-build-2 \
+ -DSPHINX_BUILD=/usr/bin/sphinx-build-3 \
%{!?with_babeltrace:-DWITH_BABELTRACE=OFF} \
%{?with_java:-DWITH_CEPHFS_JAVA=ON} \
%{?with_dpdk:-DWITH_DPDK=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}
%{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
%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-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) %{_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_rgw.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_timeindex.so*
%attr(755,root,root) %{_libdir}/rados-classes/libcls_user.so*
%{_mandir}/man8/ceph-dencoder.8*
%{_mandir}/man8/ceph-deploy.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-syn.8*
%{_mandir}/man8/ceph-volume.8*
%{_mandir}/man8/ceph-volume-systemd.8*
+%{_mandir}/man8/cephadm.8*
%{_mandir}/man8/crushtool.8*
%{_mandir}/man8/librados-config.8*
%{_mandir}/man8/monmaptool.8*
%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_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) %ghost %{_libdir}/librgw_rados_tp.so.1
%dir %{_libdir}/ceph
-%attr(755,root,root) %{_libdir}/ceph/libceph-common.so.0
+%attr(755,root,root) %{_libdir}/ceph/libceph-common.so.2
%files devel
%defattr(644,root,root,755)
%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
%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
%{_includedir}/cephfs
%{_includedir}/radosstriper
%{_includedir}/rbd
-%files -n python-ceph
-%defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/cephfs.so
-%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_volume
-%{py_sitedir}/ceph_volume-1.0.0-py*.egg-info
-%{py_sitedir}/cephfs-2.0.0-py*.egg-info
-%{py_sitedir}/rados-2.0.0-py*.egg-info
-%{py_sitedir}/rbd-2.0.0-py*.egg-info
-%{py_sitedir}/rgw-2.0.0-py*.egg-info
-%{py_sitescriptdir}/ceph_argparse.py[co]
-%{py_sitescriptdir}/ceph_daemon.py[co]
-%{py_sitescriptdir}/ceph_volume_client.py[co]
-
-%if 0
%files -n python3-ceph
%defattr(644,root,root,755)
%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}/ceph
+%{py3_sitedir}/ceph-1.0.0-py*.egg-info
+%{py3_sitedir}/ceph_volume
+%{py3_sitedir}/ceph_volume-1.0.0-py*.egg-info
%{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_sitescriptdir}/__pycache__/ceph_argparse.cpython-*.py[co]
%{py3_sitescriptdir}/__pycache__/ceph_daemon.cpython-*.py[co]
%{py3_sitescriptdir}/__pycache__/ceph_volume_client.cpython-*.py[co]
-%endif
%if %{with java}
%files -n java-cephfs