[packages/ceph/merge-16] Merged update to 16.2.9 from master

qboosh qboosh at pld-linux.org
Tue Jun 14 21:12:16 CEST 2022


commit 123e4fb07c3f382d107195d91d749d03569db82f
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Jun 14 21:01:29 2022 +0200

    Merged update to 16.2.9 from master

 boost.patch                        | 170 ----------------------------------
 ceph-fio.patch                     |  11 ++-
 ceph-init-fix.patch                |  18 ----
 ceph-liburing.patch                |  11 +++
 ceph-python.patch                  |  28 ++++--
 ceph-tcmalloc.patch                |  20 ----
 ceph-types.patch                   | 104 ---------------------
 ceph-zfs.patch                     |  20 ----
 ceph.spec                          | 184 +++++++++++++++++++++++--------------
 fuse3-api.patch                    |  11 +++
 ix86-no-asm.patch                  |  12 +++
 long-int-time_t.patch              |  23 +++++
 no-virtualenvs.patch               |  74 +++++++++++++++
 string-includes.patch              |  23 +++++
 system-zstd.patch                  |  40 ++++++++
 types.patch                        | 104 +++++++++++++++++++++
 use-provided-cpu-flag-values.patch |  37 ++++++++
 17 files changed, 480 insertions(+), 410 deletions(-)
---
diff --git a/ceph.spec b/ceph.spec
index d1cdc6e..ff46484 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -1,10 +1,10 @@
 # TODO:
+# - libzbd bluestore backend? (WITH_ZBD=ON, BR: libzbd-devel)
 # - 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: c-ares-devel >= 1.13.0)
-# - MGR_PYTHON_VERSION=3?
-# - proper init scripts if non-systemd boot is too be supported
+# - 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)
@@ -16,17 +16,17 @@
 %bcond_without	java		# Java binding
 %bcond_with	angular		# Angular-based mgr/dashboard frontend (built using npm, too outdated currently)
 %bcond_with	dpdk		# DPDK messaging
-# 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'
+# 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
+%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	rdma		# RDMA transport support
 %bcond_with	spdk		# Ceph SPDK support (DPDK based)
 %bcond_without	system_rocksdb	# system RocksDB storage support
-# temporarily disabled: "fallthrough" define from OpenZFS's spl breaks "[[fallthrough]]" in src/include/blobhash.h
-%bcond_with	zfs		# ZFS support
+# 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
@@ -42,62 +42,73 @@
 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:	15.2.16
+Version:	16.2.9
 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:	10461364fea1f21843f107548a901905
+# Source0-md5:	d823195299c0950659343fc6ad39aa1b
 Source1:	ceph.sysconfig
 Source3:	ceph.tmpfiles
-Patch0:		%{name}-init-fix.patch
-Patch2:		boost.patch
-Patch3:		%{name}-python.patch
-Patch4:		%{name}-types.patch
-Patch5:		%{name}-tcmalloc.patch
-Patch7:		%{name}-fcgi.patch
-Patch8:		%{name}-fio.patch
-Patch9:		%{name}-zfs.patch
+Patch0:		%{name}-python.patch
+Patch1:		%{name}-fio.patch
+Patch2:		%{name}-fcgi.patch
+Patch3:		string-includes.patch
+Patch4:		no-virtualenvs.patch
+Patch5:		system-zstd.patch
+Patch6:		types.patch
+Patch7:		use-provided-cpu-flag-values.patch
+Patch8:		ix86-no-asm.patch
+Patch9:		long-int-time_t.patch
+Patch10:	fuse3-api.patch
+Patch11:	%{name}-liburing.patch
 URL:		https://ceph.io/
 %{?with_babeltrace:BuildRequires:	babeltrace-devel}
-BuildRequires:	boost-devel >= 1.67
-BuildRequires:	boost-python3-devel >= 1.67
-BuildRequires:	cmake >= 3.10.2
+BuildRequires:	boost-devel >= 1.72
+BuildRequires:	boost-python3-devel >= 1.72
+BuildRequires:	cmake >= 3.22.2
+BuildRequires:	cryptsetup-devel >= 2.0.5
 BuildRequires:	curl-devel
 %if %{with dpdk} || %{with spdk}
 BuildRequires:	dpdk-devel
 %endif
+BuildRequires:	doxygen
 BuildRequires:	expat-devel >= 1.95
 %{?with_fcgi:BuildRequires:	fcgi-devel}
-%{?with_fio:BuildRequires:	fio-devel}
+%{?with_fio:BuildRequires:	fio-devel >= 3.15}
 BuildRequires:	gdbm-devel
 BuildRequires:	gperf
 %{?with_tcmalloc:BuildRequires:	gperftools-devel >= 2.6.2}
 %{?with_kerberos:BuildRequires:	heimdal-devel}
 %if %{with java}
 BuildRequires:	jdk
+BuildRequires:	jre-X11
 %endif
 BuildRequires:	keyutils-devel
-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:	libfmt-devel >= 5.2.1
+BuildRequires:	libfmt-devel >= 6.0.0
 BuildRequires:	libfuse3-devel >= 3
 %{?with_rdma:BuildRequires:	libibverbs-devel}
+BuildRequires:	libicu-devel >= 52.0
 BuildRequires:	libltdl-devel
 BuildRequires:	libnl-devel >= 3.2
-%{?with_rdma:BuildRequires:	librdmacm-devel}
 BuildRequires:	librdkafka-devel >= 0.9.2
+%{?with_rdma:BuildRequires:	librdmacm-devel}
 BuildRequires:	libstdc++-devel >= 6:7
 %{?with_tcmalloc:BuildRequires:	libtcmalloc-devel >= 2.6.2}
 BuildRequires:	libtool >= 2:1.5
+BuildRequires:	liburing-devel
 BuildRequires:	libuuid-devel
 BuildRequires:	libxml2-devel >= 2.0
 %{?with_lttng:BuildRequires:	lttng-ust-devel}
+BuildRequires:	lua-devel >= 5.3
 BuildRequires:	lz4-devel >= 1:1.7
+BuildRequires:	ncurses-devel
 %{?with_angular:BuildRequires:	npm}
 BuildRequires:	nspr-devel >= 4
 BuildRequires:	nss-devel >= 3
@@ -106,18 +117,19 @@ BuildRequires:	openldap-devel
 BuildRequires:	openssl-devel >= 1.1
 BuildRequires:	perl-base
 BuildRequires:	pkgconfig
-%{?with_pmem:BuildRequires:	pmdk-devel}
+%{?with_pmem:BuildRequires:	pmdk-devel >= 1.6.1}
 BuildRequires:	python3 >= 1:3.2
 BuildRequires:	python3-devel >= 1:3.2
+%{?with_tests:BuildRequires:	python3-tox >= 2.9.1}
 BuildRequires:	python3-Cython
 BuildRequires:	rabbitmq-c-devel
 %{?with_system_rocksdb:BuildRequires:	rocksdb-devel >= 5.14}
 BuildRequires:	rpmbuild(macros) >= 1.671
 BuildRequires:	sed >= 4.0
 BuildRequires:	snappy-devel
-BuildRequires:	sphinx-pdg-3 >= 1.0
+BuildRequires:	sphinx-pdg >= 4.4.0
+BuildRequires:	sqlite3-devel >= 3
 BuildRequires:	udev-devel
-#BuildRequires:	virtualenv  for tests
 %{?with_dpdk:BuildRequires:	xorg-lib-libpciaccess-devel}
 BuildRequires:	xfsprogs-devel
 %ifarch %{x8664}
@@ -152,7 +164,7 @@ dobrej wydajności, wiarygodności i skalowalności.
 Summary:	Ceph shared libraries
 Summary(pl.UTF-8):	Biblioteki współdzielone Cepha
 Group:		Libraries
-Requires:	libfmt >= 5.2.1
+Requires:	libfmt >= 6.0.0
 Requires:	librdkafka >= 0.9.2
 Requires:	openssl >= 1.1
 
@@ -168,12 +180,12 @@ 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.67
+Requires:	boost-devel >= 1.72
 Requires:	curl-devel
 Requires:	expat-devel >= 1.95
 Requires:	fcgi-devel
 Requires:	nss-devel >= 3
-Requires:	leveldb-devel >= 1.2
+Requires:	leveldb-devel >= 1.23-2
 Requires:	libatomic_ops
 Requires:	libblkid-devel >= 2.17
 Requires:	libstdc++-devel >= 6:7
@@ -289,18 +301,27 @@ uruchamiania demonów.
 %prep
 %setup -q
 %patch0 -p1
-%patch2 -p0
+%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
 
 %{__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
@@ -310,39 +331,55 @@ deactivate() {
     unset -f deactivate
 }
 EOF
-# 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
 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 \
-	-DPYTHON=%{__python} \
-	-DSPHINX_BUILD=/usr/bin/sphinx-build-3 \
+	%{?with_java:-DJAVA_HOME:PATH=%{java_home}} \
+	-DPYTHON=%{__python3} \
 	%{!?with_babeltrace:-DWITH_BABELTRACE=OFF} \
+%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} \
+	-DLUA_INCLUDE_DIR=%{_includedir}/lua \
+	-DSPHINX_BUILD=/usr/bin/sphinx-build \
 	-DWITH_LZ4=ON \
 	%{!?with_angular:-DWITH_MGR_DASHBOARD_FRONTEND=OFF} \
 	-DWITH_OCF=ON \
-	%{?with_pmem:-DWITH_PMEM=ON} \
+	-DWITH_PYTHON3=%{py3_ver} \
 	%{?with_fcgi:-DWITH_RADOSGW_FCGI_FRONTEND=ON} \
-	%{?with_spdk:-DWITH_SPDK=ON} \
 	%{!?with_rdma:-DWITH_RDMA=OFF} \
+	-DWITH_REENTRANT_STRSIGNAL=ON \
+	%{?with_spdk:-DWITH_SPDK=ON} \
 	-DWITH_SYSTEM_BOOST=ON \
-	%{?with_fio:-DWITH_SYSTEM_FIO=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_zfs:-DWITH_ZFS=ON} \
-	-DWITH_REENTRANT_STRSIGNAL=ON \
-	%{!?with_tests:-DWITH_TESTS=OFF}
+	%{!?with_tests:-DWITH_TESTS=OFF} \
+	%{?with_zfs:-DWITH_ZFS=ON}
 
 %{__make}
 
@@ -366,17 +403,14 @@ cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/ceph
 ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/ceph.service
 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/ceph.conf
 
-%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
-%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
-%py_postclean
+%if %{without tests}
+%{__rm} $RPM_BUILD_ROOT%{_javadir}/libcephfs-test.jar
+%{__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}
 
-%if %{with tests}
-# tests
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/ceph_test_*
-%endif
 # packaged as %doc
 %{__rm} $RPM_BUILD_ROOT%{_docdir}/sample.ceph.conf
 %if %{with angular}
@@ -435,6 +469,8 @@ fi
 %{systemdunitdir}/ceph-rbd-mirror.target
 %{systemdunitdir}/ceph-rbd-mirror at .service
 %{systemdunitdir}/ceph-volume at .service
+%{systemdunitdir}/cephfs-mirror.target
+%{systemdunitdir}/cephfs-mirror at .service
 %{systemdunitdir}/rbdmap.service
 %{systemdtmpfilesdir}/ceph.conf
 %dir %{_sysconfdir}/ceph
@@ -462,7 +498,9 @@ fi
 %attr(755,root,root) %{_bindir}/ceph-syn
 %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
 %attr(755,root,root) %{_bindir}/crushtool
 %attr(755,root,root) %{_bindir}/librados-config
 %attr(755,root,root) %{_bindir}/monmaptool
@@ -498,9 +536,9 @@ fi
 %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
+%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
+%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
@@ -512,17 +550,20 @@ fi
 %ifarch %{ix86} %{x8664} x32
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_jerasure_sse3.so*
 %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_shec.so*
 %attr(755,root,root) %{_libdir}/ceph/erasure-code/libec_shec_generic.so*
-%ifarch %{ix86} %{x8664} x32
-%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
+%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_journal.so*
 %attr(755,root,root) %{_libdir}/rados-classes/libcls_kvs.so*
@@ -546,6 +587,7 @@ fi
 %config(noreplace) %{_sysconfdir}/bash_completion.d/ceph
 %config(noreplace) %{_sysconfdir}/bash_completion.d/rbd
 %{_mandir}/man8/ceph.8*
+%{_mandir}/man8/cephadm.8*
 %{_mandir}/man8/ceph-authtool.8*
 %{_mandir}/man8/ceph-bluestore-tool.8*
 %{_mandir}/man8/ceph-clsinfo.8*
@@ -566,10 +608,13 @@ fi
 %{_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/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/rbd.8*
@@ -619,9 +664,10 @@ fi
 %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.1
+%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.1
+%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
 
@@ -643,6 +689,7 @@ fi
 %{_includedir}/rados
 %{_includedir}/radosstriper
 %{_includedir}/rbd
+%{_includedir}/libcephsqlite.h
 
 %files -n python3-ceph
 %defattr(644,root,root,755)
@@ -650,20 +697,17 @@ fi
 %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_sitedir}/rgw-2.0.0-py*.egg-info
-%{py3_sitescriptdir}/ceph_argparse.py
-%{py3_sitescriptdir}/ceph_daemon.py
-%{py3_sitescriptdir}/ceph_volume_client.py
-%{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]
+%{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
@@ -672,7 +716,6 @@ fi
 %attr(755,root,root) %ghost %{_libdir}/libcephfs_jni.so.1
 %attr(755,root,root) %{_libdir}/libcephfs_jni.so
 %{_javadir}/libcephfs.jar
-%{_javadir}/libcephfs-test.jar
 %endif
 
 %files fuse
@@ -699,7 +742,7 @@ fi
 %dir %{_prefix}/lib/ocf/resource.d/ceph
 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/ceph/rbd
 
-%if %{with test}
+%if %{with tests}
 %files test
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/ceph-client-debug
@@ -733,6 +776,11 @@ fi
 %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
diff --git a/boost.patch b/boost.patch
deleted file mode 100644
index 64f9eb6..0000000
--- a/boost.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-src/test/librbd/test_mock_Journal.cc:485:42: error: reference to '_1' is ambiguous
-      std::bind(&invoke_replay_complete, _1, 0));
-                                         ^
-/usr/local/include/boost/bind/placeholders.hpp:46:38: note: candidate found by name lookup is 'boost::placeholders::_1'
-BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
-                                     ^
-/usr/include/c++/v1/functional:2021:21: note: candidate found by name lookup is 'std::__1::placeholders::_1'
-constexpr __ph<1>   _1{};
-                    ^
-
---- src/test/librbd/test_mock_Journal.cc.orig	2020-01-30 21:52:36.000000000 +0100
-+++ src/test/librbd/test_mock_Journal.cc	2020-05-29 06:26:16.934514447 +0200
-@@ -482,7 +482,7 @@
-     expect_get_max_append_size(mock_journaler, 1 << 16);
-     expect_start_replay(
-       mock_image_ctx, mock_journaler,
--      std::bind(&invoke_replay_complete, _1, 0));
-+      std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-     MockJournalReplay mock_journal_replay;
-     expect_stop_replay(mock_journaler);
-@@ -531,7 +531,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_ready, _1));
-+    std::bind(&invoke_replay_ready, std::placeholders::_1));
- 
-   ::journal::MockReplayEntry mock_replay_entry;
-   MockJournalReplay mock_journal_replay;
-@@ -540,11 +540,11 @@
-   expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
-   expect_replay_process(mock_journal_replay);
-   expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
--                       std::bind(&invoke_replay_ready, _1));
-+                       std::bind(&invoke_replay_ready, std::placeholders::_1));
-   expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
-   expect_replay_process(mock_journal_replay);
-   expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
--                       std::bind(&invoke_replay_complete, _1, 0));
-+                       std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
-@@ -601,7 +601,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, -EINVAL));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, -EINVAL));
- 
-   MockJournalReplay mock_journal_replay;
-   expect_stop_replay(mock_journaler);
-@@ -616,7 +616,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, 0));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
-@@ -649,14 +649,14 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_ready, _1));
-+    std::bind(&invoke_replay_ready, std::placeholders::_1));
- 
-   ::journal::MockReplayEntry mock_replay_entry;
-   MockJournalReplay mock_journal_replay;
-   expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
-   expect_replay_process(mock_journal_replay);
-   expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
--                       std::bind(&invoke_replay_complete, _1, 0));
-+                       std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, -EINVAL);
-   expect_flush_commit_position(mock_journaler);
-@@ -669,7 +669,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, 0));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
-@@ -702,7 +702,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_ready, _1));
-+    std::bind(&invoke_replay_ready, std::placeholders::_1));
- 
-   ::journal::MockReplayEntry mock_replay_entry;
-   MockJournalReplay mock_journal_replay;
-@@ -720,7 +720,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, 0));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
-   expect_flush_commit_position(mock_journaler);
-@@ -752,7 +752,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, 0));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-   MockJournalReplay mock_journal_replay;
-   expect_stop_replay(mock_journaler);
-@@ -786,7 +786,7 @@
- 
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_ready, _1));
-+    std::bind(&invoke_replay_ready, std::placeholders::_1));
- 
-   ::journal::MockReplayEntry mock_replay_entry;
-   MockJournalReplay mock_journal_replay;
-@@ -813,7 +813,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler, {
--      std::bind(&invoke_replay_complete, _1, 0)
-+      std::bind(&invoke_replay_complete, std::placeholders::_1, 0)
-     });
- 
-   expect_stop_replay(mock_journaler);
-@@ -868,14 +868,14 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_ready, _1));
-+    std::bind(&invoke_replay_ready, std::placeholders::_1));
- 
-   ::journal::MockReplayEntry mock_replay_entry;
-   MockJournalReplay mock_journal_replay;
-   expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry);
-   expect_replay_process(mock_journal_replay);
-   expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry,
--                       std::bind(&invoke_replay_complete, _1, 0));
-+                       std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
-   expect_stop_replay(mock_journaler);
- 
-   Context *on_flush = nullptr;
-@@ -892,7 +892,7 @@
-   expect_get_max_append_size(mock_journaler, 1 << 16);
-   expect_start_replay(
-     mock_image_ctx, mock_journaler,
--    std::bind(&invoke_replay_complete, _1, 0));
-+    std::bind(&invoke_replay_complete, std::placeholders::_1, 0));
- 
-   expect_stop_replay(mock_journaler);
-   expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0);
---- src/test/lazy-omap-stats/lazy_omap_stats_test.cc.orig	2020-01-30 21:52:36.000000000 +0100
-+++ src/test/lazy-omap-stats/lazy_omap_stats_test.cc	2020-05-29 08:04:42.179189658 +0200
-@@ -331,7 +331,7 @@
-   vector<string> tokens(tok.begin(), tok.end());
-   auto it = find(tokens.begin(), tokens.end(), label);
-   if (it != tokens.end()) {
--    return distance(tokens.begin(), it);
-+    return std::distance(tokens.begin(), it);
-   }
- 
-   cerr << "find_index failed to find index for " << label << endl;
diff --git a/ceph-fio.patch b/ceph-fio.patch
index 7b179af..ed10f6d 100644
--- a/ceph-fio.patch
+++ b/ceph-fio.patch
@@ -1,6 +1,6 @@
---- ceph-15.2.16/src/test/fio/CMakeLists.txt.orig	2022-06-12 19:33:32.012668509 +0200
-+++ ceph-15.2.16/src/test/fio/CMakeLists.txt	2022-06-12 19:35:24.095394638 +0200
-@@ -27,7 +27,7 @@ if(WITH_FIO)
+--- ceph-16.2.9/src/test/fio/CMakeLists.txt.orig	2022-05-18 21:51:52.000000000 +0200
++++ ceph-16.2.9/src/test/fio/CMakeLists.txt	2022-06-14 18:58:25.354554233 +0200
+@@ -35,11 +35,11 @@ if(WITH_FIO)
  endif()
  
  target_link_libraries(fio_ceph_objectstore os global)
@@ -10,3 +10,8 @@
  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-init-fix.patch b/ceph-init-fix.patch
deleted file mode 100644
index b4752be..0000000
--- a/ceph-init-fix.patch
+++ /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-liburing.patch b/ceph-liburing.patch
new file mode 100644
index 0000000..9d58e7a
--- /dev/null
+++ b/ceph-liburing.patch
@@ -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-python.patch b/ceph-python.patch
index c39e4ac..54fae5d 100644
--- a/ceph-python.patch
+++ b/ceph-python.patch
@@ -1,6 +1,6 @@
---- ceph-14.2.22/cmake/modules/Distutils.cmake.orig	2022-06-09 21:22:26.441475395 +0200
-+++ ceph-14.2.22/cmake/modules/Distutils.cmake	2022-06-09 21:42:20.791671711 +0200
-@@ -17,11 +17,9 @@ function(distutils_install_module name)
+--- 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})
@@ -9,7 +9,21 @@
 -      endif()
        list(APPEND options
          --root=\$ENV{DESTDIR}
-+        --optimize=2
-         --single-version-externally-managed)
-       if(NOT \"${DU_INSTALL_SCRIPT}\" STREQUAL \"\")
-         list(APPEND options --install-script=${DU_INSTALL_SCRIPT})
+-        --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-tcmalloc.patch b/ceph-tcmalloc.patch
deleted file mode 100644
index 7d196dd..0000000
--- a/ceph-tcmalloc.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- ceph-14.2.22/cmake/modules/Findgperftools.cmake.orig	2020-01-30 21:52:36.000000000 +0100
-+++ ceph-14.2.22/cmake/modules/Findgperftools.cmake	2020-05-28 17:05:49.948032294 +0200
-@@ -31,7 +31,7 @@ if(Tcmalloc_INCLUDE_DIR AND EXISTS "${Tc
-   endif()
- endif()
- 
--foreach(component tcmalloc tcmalloc_minimal profiler)
-+foreach(component tcmalloc tcmalloc_minimal)
-   string(TOUPPER ${component} COMPONENT)
-   find_library(GPERFTOOLS_${COMPONENT}_LIBRARY ${component}
-     HINTS $ENV{GPERF_ROOT}/lib)
-@@ -54,7 +54,7 @@ find_package_handle_standard_args(gperft
-   REQUIRED_VARS ${_gperftools_FIND_REQUIRED_VARS}
-   VERSION_VAR TCMALLOC_VERSION_STRING)
- 
--mark_as_advanced(${GPERFTOOLS_LIBRARIES} GPERFTOOLS_INCLUDE_DIR)
-+mark_as_advanced(${GPERFTOOLS_LIBRARIES} GPERFTOOLS_INCLUDE_DIR Tcmalloc_INCLUDE_DIR)
- 
- if(gperftools_FOUND)
-   foreach(component tcmalloc tcmalloc_minimal profiler)
diff --git a/ceph-types.patch b/ceph-types.patch
deleted file mode 100644
index db75a00..0000000
--- a/ceph-types.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- 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 @@
-   }
- 
- #if defined(__linux__)
--  if (basefs.f_type == BTRFS_SUPER_MAGIC &&
-+  if (static_cast<uint32_t>(basefs.f_type) == BTRFS_SUPER_MAGIC &&
-       !g_ceph_context->check_experimental_feature_enabled("btrfs")) {
-     derr << __FUNC__ << ": deprecated btrfs support is not enabled" << dendl;
-     goto close_fsid_fd;
-@@ -1208,7 +1208,7 @@
-   blk_size = st.f_bsize;
- 
- #if defined(__linux__)
--  if (st.f_type == BTRFS_SUPER_MAGIC &&
-+  if (static_cast<uint32_t>(st.f_type) == BTRFS_SUPER_MAGIC &&
-       !g_ceph_context->check_experimental_feature_enabled("btrfs")) {
-     derr <<__FUNC__ << ": deprecated btrfs support is not enabled" << dendl;
-     return -EPERM;
---- 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/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
- }
- 
- 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);
---- 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();
diff --git a/ceph-zfs.patch b/ceph-zfs.patch
deleted file mode 100644
index 35b27b4..0000000
--- a/ceph-zfs.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- ceph-12.2.13/src/os/fs/ZFS.cc.orig	2020-01-30 21:52:36.000000000 +0100
-+++ ceph-12.2.13/src/os/fs/ZFS.cc	2020-05-31 17:23:41.051356069 +0200
-@@ -79,5 +79,5 @@
- 
- int ZFS::iter_snapshots_sorted(ZFS::Handle *h, ZFS::iter_func f, void *d)
- {
--  return ::zfs_iter_snapshots_sorted((zfs_handle_t*)h, (zfs_iter_f)f, d);
-+  return ::zfs_iter_snapshots_sorted((zfs_handle_t*)h, (zfs_iter_f)f, d, 0, 0);
- }
---- ceph-12.2.13/src/test/filestore/TestFileStore.cc.orig	2020-01-30 21:52:36.000000000 +0100
-+++ ceph-12.2.13/src/test/filestore/TestFileStore.cc	2020-05-31 21:49:43.249209757 +0200
-@@ -56,7 +56,7 @@
- #ifdef HAVE_LIBZFS
-   {
-     map<string,string> pm;
--    FileStore fs("a", "b");
-+    FileStore fs(g_ceph_context, "a", "b");
-     TestFileStore::create_backend(fs, ZFS_SUPER_MAGIC);
-     fs.collect_metadata(&pm);
-     ASSERT_EQ(pm["filestore_backend"], "zfs");
diff --git a/fuse3-api.patch b/fuse3-api.patch
new file mode 100644
index 0000000..f7b25ce
--- /dev/null
+++ b/fuse3-api.patch
@@ -0,0 +1,11 @@
+--- ceph-16.2.7/src/client/fuse_ll.cc~	2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/client/fuse_ll.cc	2022-02-13 13:00:03.661557137 +0100
+@@ -247,7 +247,7 @@
+ }
+ 
+ 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);
diff --git a/ix86-no-asm.patch b/ix86-no-asm.patch
new file mode 100644
index 0000000..70b72c3
--- /dev/null
+++ b/ix86-no-asm.patch
@@ -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
index 0000000..837ff10
--- /dev/null
+++ b/long-int-time_t.patch
@@ -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 );
+         Value_impl( bool               value );
+         Value_impl( int                value );
++        Value_impl( long int           value );
+         Value_impl( boost::int64_t     value );
+         Value_impl( boost::uint64_t    value );
+         Value_impl( double             value );
+@@ -294,6 +295,12 @@
+     :   v_( static_cast< boost::int64_t >( value ) )
+     {
+     }
++
++    template< class Config >
++    Value_impl< Config >::Value_impl( long int value )
++    :   v_( static_cast< boost::int64_t >( value ) )
++    {
++    }
+ 
+     template< class Config >
+     Value_impl< Config >::Value_impl( boost::int64_t value )
diff --git a/no-virtualenvs.patch b/no-virtualenvs.patch
new file mode 100644
index 0000000..87eddbd
--- /dev/null
+++ b/no-virtualenvs.patch
@@ -0,0 +1,74 @@
+diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
+index d26d003c779..bc962e3aa73 100644
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -68,14 +68,6 @@ function(add_tox_test name)
+     list(APPEND tox_envs py3)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+-  add_custom_command(
+-    OUTPUT ${venv_path}/bin/activate
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
+-    WORKING_DIRECTORY ${tox_path}
+-    COMMENT "preparing venv for ${name}")
+-  add_custom_target(${name}-venv
+-    DEPENDS ${venv_path}/bin/activate)
+-  add_dependencies(tests ${name}-venv)
+   add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+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)
+ 
+diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
+index 9b3432213a0..973b185f5de 100644
+--- a/src/pybind/mgr/dashboard/CMakeLists.txt
++++ b/src/pybind/mgr/dashboard/CMakeLists.txt
+@@ -5,9 +5,6 @@ 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|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command})
+-  endif()
+   string(REPLACE " " ";" command "${command}")
+   add_custom_command(
+     OUTPUT "${NC_OUTPUT}"
+@@ -51,11 +48,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=12.18.2
+-    COMMAND mkdir ${mgr-dashboard-nodeenv-dir}/.npm
++    OUTPUT "/bin/npm"
++    COMMAND /bin/nodeenv ${node_mirror_opt} -p --node=12.18.2
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+     COMMENT "dashboard nodeenv is being installed"
+     )
diff --git a/string-includes.patch b/string-includes.patch
new file mode 100644
index 0000000..f703a8f
--- /dev/null
+++ b/string-includes.patch
@@ -0,0 +1,23 @@
+commit ebf3a0398f18eab67d2ba25e6a10b41ff140f6a4
+Author: Duncan Bellamy <dunk at denkimushi.com>
+Date:   Fri May 21 06:30:10 2021 +0100
+
+    rgw/rgw_string.h: add missing includes for alpine and boost 1.75
+    alpine needs: string, stdexcept
+    
+    Fixes: https://tracker.ceph.com/issues/50924
+    Signed-off-by: Duncan Bellamy <dunk at denkimushi.com>
+
+diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h
+index 257daa9c1fe..90e64f98a25 100644
+--- a/src/rgw/rgw_string.h
++++ b/src/rgw/rgw_string.h
+@@ -8,6 +8,8 @@
+ #include <stdlib.h>
+ #include <limits.h>
+ #include <string_view>
++#include <string>
++#include <stdexcept>
+ 
+ #include <boost/container/small_vector.hpp>
+ 
diff --git a/system-zstd.patch b/system-zstd.patch
new file mode 100644
index 0000000..c50cca4
--- /dev/null
+++ b/system-zstd.patch
@@ -0,0 +1,40 @@
+diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
+index b53b0d9444..5bf5796da2 100644
+--- a/src/compressor/zstd/CMakeLists.txt
++++ b/src/compressor/zstd/CMakeLists.txt
+@@ -1,34 +1,11 @@
+ # zstd
+ 
+-# libzstd - build it statically
+-set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3")
+-
+-include(ExternalProject)
+-ExternalProject_Add(zstd_ext
+-  SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/zstd/build/cmake
+-  CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+-             -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+-             -DCMAKE_C_FLAGS=${ZSTD_C_FLAGS}
+-             -DCMAKE_AR=${CMAKE_AR}
+-             -DCMAKE_POSITION_INDEPENDENT_CODE=${ENABLE_SHARED}
+-             -G${CMAKE_GENERATOR}
+-  BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
+-  BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target libzstd_static
+-  BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/libzstd/lib/libzstd.a"
+-  INSTALL_COMMAND "true")
+-
+-add_library(zstd STATIC IMPORTED)
+-set_target_properties(zstd PROPERTIES
+-  INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/zstd/lib"
+-  IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/libzstd/lib/libzstd.a")
+-add_dependencies(zstd zstd_ext)
+-
+ set(zstd_sources
+   CompressionPluginZstd.cc
+ )
+ 
+ add_library(ceph_zstd SHARED ${zstd_sources})
+-target_link_libraries(ceph_zstd PRIVATE zstd $<$<PLATFORM_ID:Windows>:ceph-common>)
++target_link_libraries(ceph_zstd zstd)
+ set_target_properties(ceph_zstd PROPERTIES
+   VERSION 2.0.0
+   SOVERSION 2
diff --git a/types.patch b/types.patch
new file mode 100644
index 0000000..3df886a
--- /dev/null
+++ b/types.patch
@@ -0,0 +1,104 @@
+--- ceph-16.2.7/src/log/LogClock.h~	2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/log/LogClock.h	2022-02-12 18:57:04.434978131 +0100
+@@ -8,14 +8,11 @@
+ #include <chrono>
+ #include <ctime>
+ #include <sys/time.h>
++#include <sys/types.h>
+ 
+ #include "include/ceph_assert.h"
+ #include "common/ceph_time.h"
+ 
+-#ifndef suseconds_t
+-typedef long suseconds_t;
+-#endif
+-
+ namespace ceph {
+ namespace logging {
+ namespace _logclock {
+--- 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-16.2.7/src/common/buffer.cc~	2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/common/buffer.cc	2022-02-12 19:45:24.576619502 +0100
+@@ -2272,7 +2272,7 @@
+ 
+ void ceph::buffer::list::page_aligned_appender::_refill(size_t len) {
+   const size_t alloc = \
+-    std::max((size_t)min_alloc, (len + CEPH_PAGE_SIZE - 1) & CEPH_PAGE_MASK);
++    std::max((size_t)min_alloc, (size_t)((len + CEPH_PAGE_SIZE - 1) & CEPH_PAGE_MASK));
+   auto new_back = \
+     ptr_node::create(buffer::create_page_aligned(alloc));
+   new_back->set_length(0);   // unused, so far.
+--- ceph-16.2.7/src/os/bluestore/BlueFS.cc~	2021-12-07 17:15:49.000000000 +0100
++++ ceph-16.2.7/src/os/bluestore/BlueFS.cc	2022-02-12 21:40:54.182516511 +0100
+@@ -3799,7 +3799,7 @@
+     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]->dump(iterated_allocation);
+--- ceph-16.2.7/src/s3select/include/s3select_functions.h~	2020-06-23 03:08:18.000000000 +0200
++++ ceph-16.2.7/src/s3select/include/s3select_functions.h	2022-02-12 22:04:21.710093616 +0100
+@@ -585,7 +585,7 @@
+     {
+       boost::gregorian::date_period dp =
+         boost::gregorian::date_period( val_dt1.timestamp()->date(), val_dt2.timestamp()->date());
+-      result->set_value( dp.length().days() );
++      result->set_value( (int64_t)dp.length().days() );
+     }
+     else if (strcmp(val_date_part.str(), "hours") == 0)
+     {
+--- 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);
diff --git a/use-provided-cpu-flag-values.patch b/use-provided-cpu-flag-values.patch
new file mode 100644
index 0000000..55c82b0
--- /dev/null
+++ b/use-provided-cpu-flag-values.patch
@@ -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()
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ceph.git/commitdiff/123e4fb07c3f382d107195d91d749d03569db82f



More information about the pld-cvs-commit mailing list