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 <kautilya.tripathi@ibm.com>
%{!?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
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