From 87e233bb2628784c8c59603e74bc728a8944265e Mon Sep 17 00:00:00 2001 From: Kautilya Tripathi Date: Wed, 3 Jun 2026 14:02:08 +0530 Subject: [PATCH] ceph.spec.in: require c-ares >= 1.28 for ceph-osd-crimson Seastar's DNS stack uses ares_query_dnsrec when built against c-ares >= 1.28 (ARES_VERSION >= 0x011c00). Only ceph-osd-crimson links that path; classic-osd does not, so add the version floor on the crimson subpackage only. Rocky Linux 10 shaman builds use docker.io/rockylinux/rockylinux:10 (os-release 10.1), but dnf builddeps resolve against the live Rocky 10 BaseOS/AppStream repos, which track the newest minor and install c-ares-devel/c-ares 1.34.6. CMake links ceph-osd-crimson against that library. Teuthology nodes are provisioned as Rocky 10.1 and install only the requested Ceph packages without a full distro upgrade, so their baseline c-ares stays at 1.25.0 (< 1.28, no ares_query_dnsrec). Install succeeds but OSD startup fails with "undefined symbol: ares_query_dnsrec". Require c-ares >= 1.28 on ceph-osd-crimson so dnf upgrades to a suitable libcares (1.34.6 is already in Rocky 10.1 baseos) or fails cleanly at install. Ubuntu crimson CI does not show this mismatch: the same LTS is used for building and testing, and maintainers do not bump upstream package versions across an LTS lifecycle (only cherry-picked fixes), so build-time and runtime libc-ares stay aligned. Signed-off-by: Kautilya Tripathi --- ceph.spec.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ceph.spec.in b/ceph.spec.in index 780889d5e73..5dc6275be02 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -151,6 +151,7 @@ %{!?python3_pkgversion: %global python3_pkgversion 3} %{!?python3_version_nodots: %global python3_version_nodots 3} %{!?python3_version: %global python3_version 3} +%global c_ares_min_version 1.28.0 %if 0%{?rhel} && 0%{?rhel} < 10 %{!?gts_version: %global gts_version 13} %endif @@ -951,6 +952,11 @@ Group: System/Filesystems Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-osd < %{_epoch_prefix}%{version}-%{release} Requires: binutils +%if 0%{?suse_version} +Requires: libcares2 >= %{c_ares_min_version} +%else +Requires: c-ares >= %{c_ares_min_version} +%endif Requires: protobuf %description osd-crimson crimson-osd is the object storage daemon for the Ceph distributed file -- 2.47.3