From: Kautilya Tripathi Date: Wed, 3 Jun 2026 08:32:08 +0000 (+0530) Subject: ceph.spec.in: require c-ares >= 1.28 for ceph-osd-crimson X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=87e233bb2628784c8c59603e74bc728a8944265e;p=ceph.git 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 --- 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