From: Felix W. (65278) Date: Fri, 11 Sep 2026 15:30:00 +0200 Subject: [PATCH] ceph-20.2.4: fix CephKeyServer gentoo patch ceph-20.2.1-boost-1.90-intrusive_ptr_fixes.patch introduces fixes around boost 1.90 and intrusive_ptr. Meanwhile, in ceph 20.2.4, CephKeyServer now has an intrusive_ptr reference to CephContext. This does not work, because clang++ has no idea how to find the helper functions in ceph::common::CephContext. So while templating is fine, finding intrusive_ptr_{add_ref,release} can't work. Frankly, I have no idea how g++ does it and it should not work. I've made the namespace of CephContext explicit and included the relevant header. Index: ceph-20.2.4/src/auth/cephx/CephxKeyServer.h =================================================================== --- ceph-20.2.4.orig/src/auth/cephx/CephxKeyServer.h +++ ceph-20.2.4/src/auth/cephx/CephxKeyServer.h @@ -20,6 +20,8 @@ #include "auth/KeyRing.h" #include "CephxProtocol.h" #include "common/ceph_mutex.h" +#include "common/ceph_context.h" + #include "include/common_fwd.h" namespace ceph { class Formatter; } @@ -152,9 +154,8 @@ struct KeyServerData { WRITE_CLASS_ENCODER(KeyServerData) WRITE_CLASS_ENCODER(KeyServerData::Incremental) - class KeyServer : public KeyStore { - boost::intrusive_ptr kscct; + boost::intrusive_ptr kscct; KeyServerData data; std::map used_pending_keys; mutable ceph::mutex lock;