This package runs into bug 2153037 during its build: ceph_version_map = collections.OrderedDict(sorted({ "hammer": "rados_pool_get_base_tier", "jewel": "rados_inconsistent_pg_list", "kraken": "rados_aio_exec", "luminous": "rados_read_op_omap_get_keys2", }.items(), key=lambda t: t[0])) […] def setup_hook(cmd_obj, version=None): if version == "latest": version = sorted(ceph_version_map.keys())[-1] elif version is None: comp = ccompiler.new_compiler(force=True, verbose=True) for potential_version, method in ceph_version_map.items(): msg = "* checking for librados >= %s (with function %s)" % ( potential_version, method) log(msg) found = comp.has_function(method, libraries=['rados']) if found: version = potential_version log("%s done: FOUND" % msg) else: log("%s done: NOT FOUND" % msg) break if not version: raise Exception("gcc, python-dev, librados2 or " "librados-dev >= 0.80 are missing") […] For these functions, upstream CCompiler.has_function only works in (strict) C99 mode if the function can be called without any parameters. So far, upstream has been unwilling to fix this. A downstream-only fix in the Fedora package will necessarily be partial because many use cases consume the upstream version using pip. So maybe this package should move off has_function.
Hah, and just as I write this, https://github.com/pypa/distutils/pull/195 is merged, so there is some movement after all.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 38 development cycle. Changing version to 38.