From dd9d21116fd14bd0319a2064d5cd7ded3c168245 Mon Sep 17 00:00:00 2001 From: Kaleb S. KEITHLEY Date: Oct 01 2022 11:56:37 +0000 Subject: ceph-17.2.4 GA --- diff --git a/.ceph.metadata b/.ceph.metadata index 05566ae..69c07cf 100644 --- a/.ceph.metadata +++ b/.ceph.metadata @@ -1 +1 @@ -535d9f67d22b891a81258fe4b800aff2b29ac68f SOURCES/ceph-17.2.3.tar.gz +6f15a40ce7736baed3cb9199c98d03a11ca0a295 SOURCES/ceph-17.2.4.tar.gz diff --git a/SOURCES/0017-gcc-12-omnibus.patch b/SOURCES/0017-gcc-12-omnibus.patch index 7e4f116..4440750 100644 --- a/SOURCES/0017-gcc-12-omnibus.patch +++ b/SOURCES/0017-gcc-12-omnibus.patch @@ -19,26 +19,6 @@ } } ---- ceph-16.2.7/src/common/dout.h.orig 2022-01-18 08:58:11.805226954 -0500 -+++ ceph-16.2.7/src/common/dout.h 2022-01-19 08:06:23.987388663 -0500 -@@ -99,11 +99,15 @@ - template - struct dynamic_marker_t { - T value; -- operator T() const { return value; } -+ // constexpr ctor isn't needed as it's an aggregate type -+ constexpr operator T() const { return value; } - }; - - template --dynamic_marker_t need_dynamic(T&& t) { -+constexpr dynamic_marker_t need_dynamic(T&& t) { -+ // deprecated in C++17 but that's fine for testing -+ static_assert(std::is_literal_type_v); -+ static_assert(std::is_literal_type_v>); - return dynamic_marker_t{ std::forward(t) }; - } - --- ceph-16.2.7/src/test/librados/tier_cxx.cc.orig 2022-01-19 09:30:47.209459506 -0500 +++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500 @@ -114,7 +114,7 @@ diff --git a/SPECS/ceph.spec b/SPECS/ceph.spec index 58ce9b9..dc76ea7 100644 --- a/SPECS/ceph.spec +++ b/SPECS/ceph.spec @@ -151,7 +151,7 @@ %endif %if 0%{with seastar} -# disable -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1, as gcc-toolset-{9,10}-annobin +# disable -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1, as gcc-toolset-{10,11}-annobin # do not provide gcc-annobin.so anymore, despite that they provide annobin.so. but # redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler. %undefine _annotated_build @@ -161,7 +161,7 @@ # main package definition ################################################################################# Name: ceph -Version: 17.2.3 +Version: 17.2.4 Release: 1%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 @@ -215,18 +215,27 @@ BuildRequires: selinux-policy-devel BuildRequires: gperf BuildRequires: cmake > 3.5 BuildRequires: fuse3-devel -%if 0%{with seastar} && 0%{?rhel} +%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} == 9 +BuildRequires: gcc-c++ >= 11 +%endif +%if 0%{?rhel} == 8 BuildRequires: gcc-toolset-9-gcc-c++ >= 9.2.1-2.3 -%else +%ifarch aarch64 +BuildRequires: %{gts_prefix}-libatomic-devel +%endif +%endif +%if 0%{?fedora} || 0%{?rhel} == 9 +BuildRequires: libatomic BuildRequires: gcc-c++ %endif %if 0%{with tcmalloc} # libprofiler did not build on ppc64le until 2.7.90 %if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: gperftools-devel >= 2.7.90 +BuildRequires: gperftools-devel >= 2.7.90 +BuildRequires: libunwind-devel %endif %if 0%{?rhel} && 0%{?rhel} < 8 -BuildRequires: gperftools-devel >= 2.6.1 +BuildRequires: gperftools-devel >= 2.6.1 %endif %if 0%{?suse_version} BuildRequires: gperftools-devel >= 2.4 @@ -293,6 +302,8 @@ BuildRequires: python%{python3_pkgversion}-dateutil BuildRequires: python%{python3_pkgversion}-coverage BuildRequires: python%{python3_pkgversion}-pyOpenSSL BuildRequires: socat +BuildRequires: python%{python3_pkgversion}-asyncssh +BuildRequires: python%{python3_pkgversion}-natsort %endif %if 0%{with zbd} BuildRequires: libzbd-devel @@ -338,13 +349,12 @@ BuildRequires: systemtap-sdt-devel %if 0%{?fedora} BuildRequires: libubsan BuildRequires: libasan -BuildRequires: libatomic %endif -%if 0%{?rhel} -BuildRequires: gcc-toolset-9-annobin -BuildRequires: gcc-toolset-9-libubsan-devel -BuildRequires: gcc-toolset-9-libasan-devel -BuildRequires: gcc-toolset-9-libatomic-devel +%if 0%{?rhel} == 8 +BuildRequires: %{gts_prefix}-annobin +BuildRequires: %{gts_prefix}-libubsan-devel +BuildRequires: %{gts_prefix}-libasan-devel +BuildRequires: %{gts_prefix}-libatomic-devel %endif %endif ################################################################################# @@ -375,6 +385,7 @@ BuildRequires: rdma-core-devel BuildRequires: liblz4-devel >= 1.7 # for prometheus-alerts BuildRequires: golang-github-prometheus-prometheus +BuildRequires: jsonnet %endif %if 0%{?fedora} || 0%{?rhel} Requires: systemd @@ -619,6 +630,7 @@ Group: System/Filesystems Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release} Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-setuptools %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-cherrypy Requires: python%{python3_pkgversion}-jwt @@ -745,16 +757,25 @@ Requires: python%{python3_pkgversion} FUSE based client for Ceph distributed network file system %package -n cephfs-mirror -Summary: Ceph daemon for mirroring CephFS snapshots +Summary: Ceph daemon for mirroring CephFS snapshots %if 0%{?suse_version} -Group: System/Filesystems +Group: System/Filesystems %endif -Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} -Requires: librados2 = %{_epoch_prefix}%{version}-%{release} -Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n cephfs-mirror Daemon for mirroring CephFS snapshots between Ceph clusters. +%package -n ceph-exporter +Summary: Daemon for exposing perf counters as Prometheus metrics +%if 0%{?suse_version} +Group: System/Filesystems +%endif +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} +%description -n ceph-exporter +Daemon for exposing perf counters as Prometheus metrics + %package -n rbd-fuse Summary: Ceph fuse-based client %if 0%{?suse_version} @@ -812,7 +833,7 @@ Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: mailcap %endif %if 0%{?weak_deps} -Recommends: gawk +Recommends: gawk %endif %description radosgw RADOS is a distributed object store used by the Ceph distributed @@ -1289,10 +1310,6 @@ This package provides Ceph default alerts for Prometheus. %endif -%if 0%{with seastar} && 0%{?rhel} -. /opt/rh/gcc-toolset-9/enable -%endif - %if 0%{with cephfs_java} # Find jni.h for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do @@ -1309,6 +1326,12 @@ export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" export LDFLAGS="$RPM_LD_FLAGS" +# Workaround to https://tracker.ceph.com/issues/56610 +%if 0%{?fedora} >= 37 +export CFLAGS="$RPM_OPT_FLAGS -DFMT_DEPRECATED_OSTREAM" +export CXXFLAGS="$RPM_OPT_FLAGS -DFMT_DEPRECATED_OSTREAM" +%endif + %if 0%{with seastar} # seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk() export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g') @@ -1339,6 +1362,9 @@ mkdir -p %{_vpath_builddir} -DWITH_MANPAGE:BOOL=ON \ -DWITH_PYTHON3:STRING=%{python3_version} \ -DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF \ +%if 0%{?suse_version} + -DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF \ +%endif %if 0%{without ceph_test_package} -DWITH_TESTS:BOOL=OFF \ %endif @@ -1421,6 +1447,10 @@ mkdir -p %{_vpath_builddir} %if 0%{with system_utf8proc} -DWITH_SYSTEM_UTF8PROC:BOOL=ON \ %endif +%if 0%{with seastar} + -DWITH_SEASTAR:BOOL=ON \ + -DWITH_JAEGER:BOOL=OFF \ +%endif -DWITH_GRAFANA:BOOL=ON %if %{with cmake_verbose_logging} @@ -2011,6 +2041,9 @@ if [ $1 -ge 1 ] ; then fi fi +%files -n ceph-exporter +%{_bindir}/ceph-exporter + %files -n rbd-fuse %{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* @@ -2597,6 +2630,9 @@ exit 0 %config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml %changelog +* Fri Sep 30 2022 Kaleb S. KEITHLEY - 2:17.2.4-1 +- 17.2.4 GA + * Fri Jul 29 2022 Kaleb S. KEITHLEY - 2:17.2.3-1 - 17.2.3 GA