]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph.spec.in: require c-ares >= 1.28 for ceph-osd-crimson 69259/head
authorKautilya Tripathi <kautilya.tripathi@ibm.com>
Wed, 3 Jun 2026 08:32:08 +0000 (14:02 +0530)
committerKautilya Tripathi <kautilya.tripathi@ibm.com>
Thu, 4 Jun 2026 07:31:50 +0000 (13:01 +0530)
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>
ceph.spec.in

index 780889d5e738d876dfecc728dba58b50c4fc119e..5dc6275be02e6a988d1ab92a32515d71dadb5ffb 100644 (file)
 %{!?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