[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