[packages/ceph] - updated options and dependencies - added liburing patch to fix system liburing detection
qboosh
qboosh at pld-linux.org
Thu Feb 17 20:36:48 CET 2022
commit 682d6dd5ffd03e062e9547e2e6817518fe056744
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Thu Feb 17 20:37:25 2022 +0100
- updated options and dependencies
- added liburing patch to fix system liburing detection
ceph-liburing.patch | 11 +++++++
ceph.spec | 95 ++++++++++++++++++++++++++++++++++++-----------------
2 files changed, 76 insertions(+), 30 deletions(-)
---
diff --git a/ceph.spec b/ceph.spec
index bd1b0ef..584f369 100644
--- a/ceph.spec
+++ b/ceph.spec
@@ -1,4 +1,8 @@
# 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)
# - proper init scripts if non-systemd boot is too be supported
# (upstream scripts seem overcomplicated and hardly useful)
# - run as non-root user
@@ -7,12 +11,13 @@
#
# Conditional build:
%bcond_without java # Java binding
-%bcond_with accelio # Accelio transport support [needs update for internal API changes]
%bcond_with cryptopp # use cryptopp instead of NSS crypto/SSL
%bcond_with dpdk # DPDK messaging (requires cryptopp instead of nss)
%bcond_with fcgi # RADOS Gateway FCGI frontend
-%bcond_with fio # FIO engines support
+%bcond_with fio # FIO engines support (currently 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
%bcond_with zfs # ZFS support [not ready for zfs 0.8.x]
@@ -53,22 +58,25 @@ 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_accelio:BuildRequires: accelio-devel}
%{?with_babeltrace:BuildRequires: babeltrace-devel}
-BuildRequires: boost-devel >= 1.66
-BuildRequires: boost-python3-devel >= 1.66
+BuildRequires: boost-devel >= 1.72
+BuildRequires: boost-python3-devel >= 1.72
BuildRequires: cmake >= 3.22.2
%{?with_cryptopp:BuildRequires: cryptopp-devel}
+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: gperftools-devel
+%{?with_tcmalloc:BuildRequires: gperftools-devel >= 2.6.2}
+%{?with_kerberos:BuildRequires: heimdal-devel}
%if %{with java}
BuildRequires: jdk
BuildRequires: jre-X11
@@ -78,37 +86,44 @@ BuildRequires: leveldb-devel >= 1.2
BuildRequires: libaio-devel
BuildRequires: libatomic_ops
BuildRequires: libblkid-devel >= 2.17
+BuildRequires: libcap-ng-devel
BuildRequires: libedit-devel >= 2.11
-BuildRequires: libfuse3-devel
-# +RDMA?
-%{?with_accelio:BuildRequires: libibverbs-devel}
+BuildRequires: libfmt-devel >= 6.0.0
+BuildRequires: libfuse3-devel >= 3
+%{?with_rdma:BuildRequires: libibverbs-devel}
+BuildRequires: libicu-devel >= 52.0
BuildRequires: libltdl-devel
-BuildRequires: librdkafka-devel
-%{?with_accelio:BuildRequires: librdmacm-devel}
-BuildRequires: libstdc++-devel >= 6:4.7
-%{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
+BuildRequires: libnl-devel >= 3.2
+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
+BuildRequires: lua-devel >= 5.3
BuildRequires: lz4-devel >= 1:1.7
+BuildRequires: ncurses-devel
%{!?with_cryptopp:BuildRequires: nss-devel >= 3}
BuildRequires: oath-toolkit-devel
BuildRequires: openldap-devel
-BuildRequires: openssl-devel
+BuildRequires: openssl-devel >= 1.1
BuildRequires: perl-base
BuildRequires: pkgconfig
-%{?with_pmem:BuildRequires: pmdk-devel}
+%{?with_pmem:BuildRequires: pmdk-devel >= 1.10}
BuildRequires: python3 >= 1:3.2
BuildRequires: python3-devel >= 1:3.2
-BuildRequires: python3-tox >= 2.9.1
+%{?with_tests:BuildRequires: python3-tox >= 2.9.1}
BuildRequires: python3-Cython
-%{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.6.0}
+BuildRequires: rabbitmq-c-devel
+%{?with_system_rocksdb:BuildRequires: rocksdb-devel >= 5.14.0}
BuildRequires: rpmbuild(macros) >= 1.671
BuildRequires: sed >= 4.0
BuildRequires: snappy-devel
BuildRequires: sphinx-pdg >= 3.0
+BuildRequires: sqlite3-devel >= 3
BuildRequires: udev-devel
%{?with_dpdk:BuildRequires: xorg-lib-libpciaccess-devel}
BuildRequires: xfsprogs-devel
@@ -153,7 +168,7 @@ 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.66
+Requires: boost-devel >= 1.72
Requires: curl-devel
Requires: expat-devel
Requires: fcgi-devel
@@ -161,7 +176,7 @@ Requires: nss-devel >= 3
Requires: leveldb-devel
Requires: libatomic_ops
Requires: libblkid-devel >= 2.17
-Requires: libstdc++-devel >= 6:4.7
+Requires: libstdc++-devel >= 6:7
Requires: libuuid-devel
%{?with_lttng:Requires: lttng-ust-devel}
Requires: openldap-devel
@@ -285,6 +300,7 @@ uruchamiania demonów.
%patch9 -p1
%endif
%patch10 -p1
+%patch11 -p1
%{__sed} -E -i -e '1s,#!\s*/usr/bin/awk(\s|$),#!/bin/awk\1,' \
src/rgw/rgw-gap-list-comparator
@@ -310,23 +326,25 @@ cd build
-DPYTHON=%{__python3} \
-DSPHINX_BUILD=/usr/bin/sphinx-build \
%{!?with_babeltrace:-DWITH_BABELTRACE=OFF} \
+ %{?with_pmem:-DWITH_BLUESTORE_PMEM=ON} \
%{?with_java:-DWITH_CEPHFS_JAVA=ON} \
- %{?with_java:-DJAVA_JVM_LIBRARY:PATH=%{_jvmdir}/java/lib/server/libjvm.so} \
+ %{?with_java:-DJAVA_HOME:PATH=%{java_home}} \
%{?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 \
-DWITH_LZ4=ON \
%{?with_cryptopp:-DWITH_NSS=OFF} \
-DWITH_OCF=ON \
- %{?with_pmem:-DWITH_PMEM=ON} \
%{?with_fcgi:-DWITH_RADOSGW_FCGI_FRONTEND=ON} \
-DWITH_MGR_DASHBOARD_FRONTEND=OFF \
+ %{!?with_rdma:-DWITH_RDMA=OFF} \
%{?with_spdk:-DWITH_SPDK=ON} \
-DWITH_SYSTEM_BOOST=ON \
+ -DWITH_SYSTEM_LIBURING=ON \
%{?with_system_rocksdb:-DWITH_SYSTEM_ROCKSDB=ON} \
-DWITH_SYSTEMD=ON \
- %{?with_accelio:-DWITH_XIO=ON} \
%{?with_zfs:-DWITH_ZFS=ON} \
-DWITH_REENTRANT_STRSIGNAL=ON \
%{!?with_tests:-DWITH_TESTS=OFF}
@@ -353,6 +371,11 @@ 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
+%if %{without tests}
+%{__rm} $RPM_BUILD_ROOT%{_javadir}/libcephfs-test.jar
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitedir}/{ceph,ceph_volume}/tests
+%endif
+
%py3_comp $RPM_BUILD_ROOT%{py3_sitescriptdir}
%py3_ocomp $RPM_BUILD_ROOT%{py3_sitescriptdir}
@@ -636,12 +659,23 @@ fi
%files -n python3-ceph
%defattr(644,root,root,755)
-%{py3_sitedir}/ceph
+%dir %{py3_sitedir}/ceph
+%{py3_sitedir}/ceph/*.py
+%{py3_sitedir}/ceph/__pycache__
+%{py3_sitedir}/ceph/deployment
%{py3_sitedir}/ceph-1.0.0-py*.egg-info
%attr(755,root,root) %{py3_sitedir}/cephfs.cpython-*.so
%{py3_sitedir}/cephfs-2.0.0-py*.egg-info
%{py3_sitedir}/cephfs_top-0.0.1-py*.egg-info
-%{py3_sitedir}/ceph_volume
+%dir %{py3_sitedir}/ceph_volume
+%{py3_sitedir}/ceph_volume/*.py
+%{py3_sitedir}/ceph_volume/__pycache__
+%{py3_sitedir}/ceph_volume/api
+%{py3_sitedir}/ceph_volume/devices
+%{py3_sitedir}/ceph_volume/drive_group
+%{py3_sitedir}/ceph_volume/inventory
+%{py3_sitedir}/ceph_volume/systemd
+%{py3_sitedir}/ceph_volume/util
%{py3_sitedir}/ceph_volume-1.0.0-py*.egg-info
%attr(755,root,root) %{py3_sitedir}/rados.cpython-*.so
%{py3_sitedir}/rados-2.0.0-py*.egg-info
@@ -655,10 +689,6 @@ fi
%{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]
-%if %{without tests}
-%exclude %{py3_sitedir}/ceph/tests
-%exclude %{py3_sitedir}/ceph_volume/tests
-%endif
%if %{with java}
%files -n java-cephfs
@@ -727,6 +757,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/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)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ceph.git/commitdiff/b44a3efdfcc0bda88c369cf6ff5e41cc6605c262
More information about the pld-cvs-commit
mailing list