# # spec file for package ceph # # Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file # at the top-level directory of this distribution and at # https://github.com/ceph/ceph/blob/master/COPYING # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. # # This file is under the GNU Lesser General Public License, version 2.1 # # Please submit bugfixes or comments via http://tracker.ceph.com/ # ################################################################################# # conditional build section # # please read this for explanation of bcond syntax: # https://rpm-software-management.github.io/rpm/manual/conditionalbuilds.html ################################################################################# %bcond_with system_boost %bcond_with make_check %bcond_with cmake_verbose_logging %bcond_without ceph_test_package %ifarch s390 %bcond_with tcmalloc %else %bcond_without tcmalloc %endif %bcond_without rbd_ssd_cache %ifarch x86_64 %bcond_without rbd_rwl_cache %else %bcond_with rbd_rwl_cache %endif %if 0%{?fedora} || 0%{?rhel} %ifarch s390x %{arm64} riscv64 %bcond_with system_pmdk %else %bcond_without system_pmdk %endif %bcond_without selinux %bcond_without amqp_endpoint %bcond_without kafka_endpoint %bcond_without lttng %bcond_without libradosstriper %bcond_without ocf %global luarocks_package_name luarocks %bcond_without lua_packages %global _remote_tarball_prefix https://download.ceph.com/tarballs/ %endif %if 0%{?suse_version} %ifarch s390x %bcond_with system_pmdk %else %bcond_without system_pmdk %endif %bcond_with amqp_endpoint %bcond_with cephfs_java %bcond_with kafka_endpoint %bcond_with libradosstriper %ifarch x86_64 aarch64 ppc64le %bcond_without lttng %else %bcond_with lttng %endif %bcond_with ocf %bcond_with selinux #Compat macro for _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %global _fillupdir /var/adm/fillup-templates %endif #luarocks %if 0%{?is_opensuse} # openSUSE %bcond_without lua_packages %if 0%{?sle_version} # openSUSE Leap %global luarocks_package_name lua53-luarocks %else # openSUSE Tumbleweed %global luarocks_package_name lua54-luarocks %endif %else # SLE %bcond_with lua_packages %endif %endif %bcond_without crimson %if 0%{?suse_version} %bcond_with jaeger %else %bcond_without jaeger %endif %if 0%{?fedora} || 0%{?suse_version} >= 1500 || 0%{?rhel} # distros that ship cmd2 and/or colorama %bcond_without cephfs_shell %else # distros that do _not_ ship cmd2/colorama %bcond_with cephfs_shell %endif %if 0%{?fedora} || 0%{?rhel} %bcond_without system_arrow %bcond_without system_utf8proc %else # for centos 8, utf8proc-devel comes from the subversion-devel module which isn't available in EPEL8 # this is tracked in https://bugzilla.redhat.com/2152265 %bcond_with system_arrow %bcond_with system_utf8proc %endif # qat only supported for intel devices %ifarch x86_64 %if 0%{?fedora} || 0%{?rhel} %bcond_without system_qat %else # not fedora/rhel %bcond_with system_qat %endif %else # not x86_64 %bcond_with system_qat %endif %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} %global weak_deps 1 %endif %if %{with selinux} # get selinux policy version # Force 0.0.0 policy version for centos builds to avoid repository sync issues between rhel and centos %if 0%{?centos} %global _selinux_policy_version 0.0.0 %else %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0} %endif %endif %bcond_with cephadm_bundling %bcond_without cephadm_pip_deps %bcond_without dwz %if %{with dwz} %else # disable dwz for 50% speedup at the cost of ~33% space %global _find_debuginfo_dwz_opts %{nil} %endif %bcond_with sccache %if 0%{?rhel} && 0%{?rhel} >= 10 %bcond_without pypkg %else %bcond_with pypkg %endif %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} %{!?python3_pkgversion: %global python3_pkgversion 3} %{!?python3_version_nodots: %global python3_version_nodots 3} %{!?python3_version: %global python3_version 3} %define _lto_cflags %{nil} %if ! 0%{?suse_version} # use multi-threaded xz compression: xz level 7 using ncpus threads %global _source_payload w7T%{_smp_build_ncpus}.xzdio %global _binary_payload w7T%{_smp_build_ncpus}.xzdio %endif # $1==1: fresh install; $1==0: removal. Skip try-restart on upgrade ($1>1). %define ceph_mgr_module_scripts() \ %post %1\ if [ $1 -eq 1 ] ; then\ /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :\ fi\ \ %postun %1\ if [ $1 -eq 1 ] ; then\ /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :\ fi %if 0%{?_smp_ncpus_max} == 0 %if 0%{?__isa_bits} == 32 # 32-bit builds can use 3G memory max, which is not enough even for -j2 %global _smp_ncpus_max 1 %else # 3.0 GiB mem per job # SUSE distros still use limit_build in the place of _smp_tasksize_proc, please # be sure to update it (in the build section, below) as well when changing this # number. %global _smp_tasksize_proc 3000 %endif %endif # disable -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1, as gcc-toolset-{10,11}-annobin # do not provide gcc-annobin.so anymore, despite that they provide annobin.so. but # redhat-rpm-config still passes -fplugin=gcc-annobin to the compiler. %undefine _annotated_build ################################################################################# # main package definition ################################################################################# Name: ceph Version: 21.1.0 Release: 6%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %endif # define _epoch_prefix macro which will expand to the empty string if epoch is # undefined %global _epoch_prefix %{?epoch:%{epoch}:} Summary: User space components of the Ceph file system License: LGPL-2.1-or-later AND LGPL-3.0-only AND CC-BY-SA-3.0 AND GPL-2.0-only AND BSL-1.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT %if 0%{?suse_version} Group: System/Filesystems %endif URL: http://ceph.com/ Source: https://download.ceph.com/tarballs/ceph-%{version}.tar.gz #Source0: https://1.chacra.ceph.com/r/ceph/umbrella/ Patch: 0001-src-common-crc32c_intel_fast.patch Patch: 0003-src-common-bitstr.h.patch Patch: 0010-CET-Add-CET-marker-to-crc32c_intel_fast_zero_asm.s.patch Patch: 0011-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assembly-co.patch Patch: 0012-spdk-isa-l-CET-Add-CET-marker-to-x86-64-crc32-assemb.patch Patch: 0016-src-tracing.patch Patch: 0018-src-rgw-store-dbstore-CMakeLists.txt.patch Patch: 0024-gcc-13.patch Patch: 0032-cmake-modules-BuildBoost.cmake.patch Patch: 0033-boost-asm.patch Patch: 0034-src-pybind-rbd-rbd.pyx.patch Patch: 0041-src-mgr-PyModule.cc.patch Patch: 0043_src_common_crc32c_ppc_asm.S.patch Patch: 0047-openssl-no-engine.patch Patch: 0049-src-rocksdb-db-blob-blob_file_meta.h.patch Patch: 0051-src-googletest-nosharedlibs.patch Patch: 0052-src-tracing.patch Patch: 0053-src-test-neorados-common_tests.h.patch Patch: 0056-libarrow-20.0.0.patch Patch: 0059-iso646.patch Patch: 0062-src-rgw-driver-dbstore-CMakeLists.txt.patch Patch: 0063-src-jaegertracing-opentelemetry-cpp-CMakeLists.txt.patch Patch: 0065-src-os-memstore-CMakelists.txt.patch Patch: 0066-src-lss-linux_syscall_support.h.patch Patch: 0067-src-os-CMakeLists.txt.patch Patch: 0068-add-riscv-support.patch # ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787 ExcludeArch: i686 armv7hl %if 0%{?suse_version} # _insert_obs_source_lines_here ExclusiveArch: x86_64 aarch64 ppc64le s390x %endif ################################################################################# # dependencies that apply across all distro families ################################################################################# Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release} Requires(post): binutils %if 0%{?suse_version} Requires(pre): /usr/sbin/useradd Requires(pre): /usr/sbin/groupadd %endif %if 0%{with cephfs_java} BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: sharutils %endif %if 0%{with selinux} BuildRequires: checkpolicy BuildRequires: selinux-policy-devel %endif BuildRequires: gperf BuildRequires: cmake > 3.5 BuildRequires: pkgconfig(fuse3) BuildRequires: grpc-devel BuildRequires: gcc-c++ BuildRequires: libzstd-devel %if 0%{?fedora} || 0%{?rhel} BuildRequires: libatomic %endif %bcond_without ld_mold %if 0%{with ld_mold} BuildRequires: mold %endif %if 0%{with tcmalloc} # libprofiler did not build on ppc64le until 2.7.90 %if 0%{?fedora} || 0%{?rhel} BuildRequires: gperftools-devel >= 2.7.90 %endif %if 0%{?suse_version} BuildRequires: gperftools-devel >= 2.4 %endif %endif BuildRequires: libaio-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: cryptsetup-devel BuildRequires: libnbd-devel BuildRequires: libcurl-devel BuildRequires: libcap-devel BuildRequires: libcap-ng-devel #BuildRequires: fmt-devel >= 6.2.1 #%if ( 0%%{?fedora} || 0%%{?rhel} >= 10 ) #BuildRequires: rocksdb-devel #Requires: rocksdb #%endif BuildRequires: liburing-devel BuildRequires: pkgconfig(libudev) BuildRequires: libnl3-devel BuildRequires: liboath-devel BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: ncurses-devel BuildRequires: make BuildRequires: libicu-devel BuildRequires: patch BuildRequires: perl BuildRequires: pkgconfig BuildRequires: procps BuildRequires: python%{python3_pkgversion} BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-Cython BuildRequires: python%{python3_pkgversion}-pip BuildRequires: python%{python3_pkgversion}-wheel BuildRequires: snappy-devel BuildRequires: sqlite-devel BuildRequires: sudo BuildRequires: pkgconfig(udev) %ifarch %{valgrind_arches} BuildRequires: valgrind-devel %endif BuildRequires: which BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet BuildRequires: nasm BuildRequires: lua-devel BuildRequires: lmdb-devel %if 0%{with crimson} || 0%{with jaeger} BuildRequires: yaml-cpp-devel >= 0.6 %endif %if 0%{with amqp_endpoint} BuildRequires: librabbitmq-devel %endif %if 0%{with kafka_endpoint} BuildRequires: librdkafka-devel %endif %if 0%{with lua_packages} Requires: lua-devel Requires: %{luarocks_package_name} %endif %if 0%{with make_check} BuildRequires: hostname BuildRequires: jq BuildRequires: libuuid-devel BuildRequires: python%{python3_pkgversion}-bcrypt BuildRequires: python%{python3_pkgversion}-requests BuildRequires: python%{python3_pkgversion}-dateutil BuildRequires: python%{python3_pkgversion}-coverage BuildRequires: python%{python3_pkgversion}-pyOpenSSL BuildRequires: socat BuildRequires: python%{python3_pkgversion}-asyncssh BuildRequires: python%{python3_pkgversion}-natsort %endif %if 0%{?suse_version} BuildRequires: libthrift-devel >= 0.13.0 %else BuildRequires: thrift-devel >= 0.13.0 %endif BuildRequires: re2-devel %if 0%{with jaeger} BuildRequires: bison BuildRequires: flex %if 0%{?fedora} || 0%{?rhel} BuildRequires: json-devel %endif %if 0%{?suse_version} BuildRequires: nlohmann_json-devel %endif BuildRequires: libevent-devel %endif %if 0%{with system_pmdk} %if 0%{?suse_version} BuildRequires: libndctl-devel >= 63 %else BuildRequires: ndctl-devel >= 63 BuildRequires: daxctl-devel >= 63 %endif BuildRequires: libpmem-devel BuildRequires: libpmemobj-devel >= 1.8 %endif %if 0%{with system_arrow} BuildRequires: libarrow-devel BuildRequires: parquet-libs-devel %else BuildRequires: xsimd-devel %endif %if 0%{with system_utf8proc} BuildRequires: utf8proc-devel %endif %if 0%{with system_qat} BuildRequires: qatlib-devel BuildRequires: qatzip-devel %endif %if 0%{with crimson} BuildRequires: c-ares-devel BuildRequires: gnutls-devel BuildRequires: hwloc-devel BuildRequires: libpciaccess-devel BuildRequires: lksctp-tools-devel BuildRequires: ragel BuildRequires: systemtap-sdt-devel BuildRequires: libubsan BuildRequires: libasan BuildRequires: protobuf-devel BuildRequires: protobuf-compiler %endif ################################################################################# # distro-conditional dependencies ################################################################################# %if 0%{?suse_version} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros %{?systemd_requires} PreReq: %fillup_prereq BuildRequires: fdupes BuildRequires: memory-constraints BuildRequires: net-tools BuildRequires: libbz2-devel BuildRequires: mozilla-nss-devel BuildRequires: keyutils-devel BuildRequires: libopenssl-devel BuildRequires: ninja BuildRequires: openldap2-devel #BuildRequires: krb5 #BuildRequires: krb5-devel BuildRequires: cunit-devel BuildRequires: python%{python3_pkgversion}-PrettyTable BuildRequires: python%{python3_pkgversion}-PyYAML BuildRequires: python%{python3_pkgversion}-Sphinx BuildRequires: rdma-core-devel BuildRequires: liblz4-devel >= 1.7 # for prometheus-alerts BuildRequires: golang-github-prometheus-prometheus BuildRequires: jsonnet %endif %if 0%{?fedora} || 0%{?rhel} Requires: systemd %if 0%{with system_boost} BuildRequires: boost-random BuildRequires: boost-url %endif BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: libatomic BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel BuildRequires: ninja-build BuildRequires: openldap-devel BuildRequires: numactl-devel #BuildRequires: krb5-devel BuildRequires: openssl-devel BuildRequires: CUnit-devel BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-prettytable BuildRequires: python%{python3_pkgversion}-pyyaml BuildRequires: python%{python3_pkgversion}-sphinx BuildRequires: lz4-devel >= 1.7 %endif # distro-conditional make check dependencies %if 0%{with make_check} BuildRequires: golang %if 0%{?fedora} || 0%{?rhel} BuildRequires: /usr/bin/promtool BuildRequires: libtool-ltdl-devel BuildRequires: xmlsec1 BuildRequires: xmlsec1-devel %ifarch x86_64 BuildRequires: xmlsec1-nss %endif BuildRequires: xmlsec1-openssl BuildRequires: xmlsec1-openssl-devel BuildRequires: python%{python3_pkgversion}-cherrypy BuildRequires: python%{python3_pkgversion}-routes BuildRequires: python%{python3_pkgversion}-scipy BuildRequires: python%{python3_pkgversion}-pyOpenSSL %endif BuildRequires: jsonnet %if 0%{?suse_version} BuildRequires: golang-github-prometheus-prometheus BuildRequires: libxmlsec1-1 BuildRequires: libxmlsec1-nss1 BuildRequires: libxmlsec1-openssl1 BuildRequires: python%{python3_pkgversion}-CherryPy BuildRequires: python%{python3_pkgversion}-Routes BuildRequires: python%{python3_pkgversion}-numpy-devel BuildRequires: xmlsec1-devel BuildRequires: xmlsec1-openssl-devel %endif %endif # lttng and babeltrace for rbd-replay-prep %if %{with lttng} %if 0%{?fedora} || 0%{?rhel} BuildRequires: lttng-ust-devel BuildRequires: libbabeltrace-devel %endif %if 0%{?suse_version} BuildRequires: lttng-ust-devel BuildRequires: babeltrace-devel %endif %endif %if 0%{?suse_version} BuildRequires: libexpat-devel %endif %if 0%{?fedora} || 0%{?rhel} BuildRequires: expat-devel %endif #hardened-cc1 %if 0%{?fedora} || 0%{?rhel} BuildRequires: redhat-rpm-config %endif %if 0%{with crimson} %if 0%{?fedora} || 0%{?rhel} BuildRequires: cryptopp-devel %endif %if 0%{?suse_version} BuildRequires: libcryptopp-devel BuildRequires: libnuma-devel %endif %endif BuildRequires: python-rpm-macros # Catch2 v3 is catch in Fedora and EPEL. Crazy BuildRequires: catch-devel %description Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, block and file system storage. ################################################################################# # subpackages ################################################################################# %package base Summary: Ceph Base Package %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-kvstore-tool Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif Requires: findutils Requires: grep Requires: logrotate Requires: psmisc Requires: util-linux Requires: which %if 0%{?rhel} && 0%{?rhel} < 8 # The following is necessary due to tracker 36508 and can be removed once the # associated upstream bugs are resolved. %if 0%{with tcmalloc} Requires: gperftools-libs >= 2.6.1 %endif %endif %if 0%{?weak_deps} Recommends: chrony Recommends: nvme-cli %if 0%{?suse_version} Requires: smartmontools %else Recommends: smartmontools %endif %endif %description base Base is the package that includes all the files shared amongst ceph servers %package -n cephadm Summary: Utility to bootstrap Ceph clusters BuildArch: noarch Requires: lvm2 Requires: python%{python3_pkgversion} Requires: openssh-server Requires: which %if 0%{?weak_deps} Recommends: podman >= 2.0.2 %endif # Cephadm zipapp: CMake sets CEPHADM_BUNDLED_DEPENDENCIES to pip, rpm, or none # (see build / cmake block below): # - with cephadm_bundling, with cephadm_pip_deps: pip at build, no stanzas here # - with cephadm_bundling, without cephadm_pip_deps: build-time RPM deps only # - without cephadm_bundling: unbundled cephadm, runtime Requires for yaml/jinja2 # CentOS Storage SIG #75389 needs the unbundled branch (--without cephadm_bundling) # after dropping downstream patch 0036; pip-mode SIG builds are a separate SIG fix. %if 0%{with cephadm_bundling} %if 0%{without cephadm_pip_deps} # Zipapp built from system RPMs at build time; bundled zipapp is self-contained at runtime. # SUSE and RHEL/Fedora use different PyPI RPM names (Jinja2/PyYAML vs jinja2/pyyaml). %if 0%{?suse_version} BuildRequires: python%{python3_pkgversion}-Jinja2 >= 2.10 BuildRequires: python%{python3_pkgversion}-PyYAML %else BuildRequires: python%{python3_pkgversion}-jinja2 >= 2.10 BuildRequires: python%{python3_pkgversion}-pyyaml %endif %dnl suse/else: rpm bundle, distinct RPM names only (not duplicate stanzas) %endif %dnl end without cephadm_pip_deps (CEPHADM_BUNDLED_DEPENDENCIES=rpm) %else # Unbundled cephadm: host must provide yaml and jinja2 at runtime. %if 0%{?suse_version} Requires: python%{python3_pkgversion}-Jinja2 >= 2.10 Requires: python%{python3_pkgversion}-PyYAML %else Requires: python%{python3_pkgversion}-jinja2 >= 2.10 Requires: python%{python3_pkgversion}-pyyaml %endif %dnl suse/else: unbundled cephadm (CEPHADM_BUNDLED_DEPENDENCIES=none) %endif %dnl end with cephadm_bundling %description -n cephadm Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed with systemd and podman. %package common Summary: Ceph Common %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rbd = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-cephfs = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rgw = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-prettytable %endif %if 0%{?suse_version} Requires: python%{python3_pkgversion}-PrettyTable %endif %if 0%{with libradosstriper} Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} %endif %{?systemd_requires} %if 0%{?suse_version} Requires(pre): pwdutils %endif Provides: group(ceph) Provides: user(ceph) %description common Common utilities to mount and interact with a ceph storage cluster. Comprised of files that are common to Ceph clients and servers. %package mds Summary: Ceph Metadata Server Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description mds ceph-mds is the metadata server daemon for the Ceph distributed file system. One or more instances of ceph-mds collectively manage the file system namespace, coordinating access to the shared OSD cluster. %package mon Summary: Ceph Monitor Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-monstore-tool Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description mon ceph-mon is the cluster monitor daemon for the Ceph distributed file system. One or more instances of ceph-mon form a Paxos part-time parliament cluster that provides extremely reliable and durable storage of cluster membership, configuration, and state. %package mon-client-nvmeof Summary: Ceph NVMeoF Gateway Monitor Client %if 0%{?suse_version} Group: System/Filesystems %endif Provides: ceph-test:/usr/bin/ceph-nvmeof-monitor-client Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description mon-client-nvmeof Ceph NVMeoF Gateway Monitor Client distributes Paxos ANA info to NVMeoF Gateway and provides beacons to the monitor daemon %package mgr Summary: Ceph Manager Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release} Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} %if 0%{?weak_deps} Recommends: ceph-mgr-alerts = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-cli-api = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-influx = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-insights = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-iostat = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-localpool = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-mds-autoscaler = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-mirroring = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-nvmeof = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-osd-perf-query = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-osd-support = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-prometheus = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-rgw = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-selftest = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-snap-schedule = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-stats = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-telegraf = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-test-orchestrator = %{_epoch_prefix}%{version}-%{release} %endif %description mgr ceph-mgr enables python modules that provide services (such as the REST module derived from Calamari) and expose CLI hooks. ceph-mgr gathers the cluster maps, the daemon metadata, and performance counters, and exposes all these to the python modules. %package mgr-dashboard Summary: Ceph Dashboard BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release} Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release} Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-grpcio Requires: python%{python3_pkgversion}-grpcio-tools Requires: python%{python3_pkgversion}-jmespath Requires: python%{python3_pkgversion}-xmltodict %endif %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-cherrypy Requires: python%{python3_pkgversion}-routes %if 0%{?weak_deps} Recommends: python%{python3_pkgversion}-saml %if 0%{?fedora} Recommends: python%{python3_pkgversion}-grpcio Recommends: python%{python3_pkgversion}-grpcio-tools %endif %endif %endif %if 0%{?suse_version} Requires: python%{python3_pkgversion}-CherryPy Requires: python%{python3_pkgversion}-Routes Recommends: python%{python3_pkgversion}-python3-saml %endif %description mgr-dashboard ceph-mgr-dashboard is a manager module, providing a web-based application to monitor and manage many aspects of a Ceph cluster and related components. See the Dashboard documentation at http://docs.ceph.com/ for details and a detailed feature overview. %package mgr-diskprediction-local Summary: Ceph Manager module for predicting disk failures BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-numpy %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 10 Requires: python%{python3_pkgversion}-scikit-learn %endif Requires: python3-scipy %description mgr-diskprediction-local ceph-mgr-diskprediction-local is a ceph-mgr module that tries to predict disk failures using local algorithms and machine-learning databases. %package mgr-modules-core Summary: Ceph Manager modules which are always enabled BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: python%{python3_pkgversion}-prettytable Requires: python%{python3_pkgversion}-requests Requires: python%{python3_pkgversion}-dateutil %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-pyyaml %endif %if 0%{?suse_version} Requires: python%{python3_pkgversion}-PyYAML %endif %if 0%{?weak_deps} Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release} %endif %description mgr-modules-core ceph-mgr-modules-core provides a set of modules which are always enabled by ceph-mgr. %package mgr-modules-standard BuildArch: noarch Summary: Ceph Manager modules without heavy external dependencies %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-alerts = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-influx = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-insights = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-iostat = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-localpool = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-mds-autoscaler = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-mirroring = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-nvmeof = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-osd-perf-query = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-osd-support = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-prometheus = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-rgw = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-selftest = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-smb = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-snap-schedule = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-stats = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-telegraf = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-test-orchestrator = %{_epoch_prefix}%{version}-%{release} %description mgr-modules-standard ceph-mgr-modules-standard is a meta-package with no files of its own. It pulls in the full set of ceph-mgr modules that were formerly shipped together in ceph-mgr-modules-core, so that existing users or scripts that want the complete standard module set can depend on a single package. %package mgr-rook BuildArch: noarch Summary: Ceph Manager module for Rook-based orchestration %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: ceph-mgr-nfs = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-kubernetes Requires: python%{python3_pkgversion}-jsonpatch %description mgr-rook ceph-mgr-rook is a ceph-mgr module for orchestration functions using a Rook backend. %package mgr-k8sevents BuildArch: noarch Summary: Ceph Manager module to orchestrate ceph-events to kubernetes' events API %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-kubernetes %description mgr-k8sevents ceph-mgr-k8sevents is a ceph-mgr module that sends every ceph-events to kubernetes' events API %package mgr-cephadm Summary: Ceph Manager module for cephadm-based orchestration BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-asyncssh Requires: python%{python3_pkgversion}-natsort Requires: cephadm = %{_epoch_prefix}%{version}-%{release} %if 0%{?suse_version} Requires: openssh Requires: python%{python3_pkgversion}-CherryPy Requires: python%{python3_pkgversion}-Jinja2 %endif %if 0%{?rhel} || 0%{?fedora} Requires: openssh-clients Requires: python%{python3_pkgversion}-cherrypy Requires: python%{python3_pkgversion}-jinja2 %endif %description mgr-cephadm ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using the integrated cephadm deployment tool management operations. %package mgr-cli-api BuildArch: noarch Summary: Ceph Manager module providing a CLI REST API %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %description mgr-cli-api ceph-mgr-cli-api is a ceph-mgr module that provides a REST-like API for the Ceph command-line interface. %package mgr-alerts BuildArch: noarch Summary: Ceph Manager module for sending alerts on health state changes %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-alerts ceph-mgr-alerts is a ceph-mgr module that sends email notifications on cluster health state changes. %package mgr-influx BuildArch: noarch Summary: Ceph Manager module for sending metrics to InfluxDB %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %if 0%{?weak_deps} Recommends: python%{python3_pkgversion}-influxdb %endif Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-influx ceph-mgr-influx is a ceph-mgr module that sends performance metrics to an InfluxDB time-series database. %package mgr-insights BuildArch: noarch Summary: Ceph Manager module for recording cluster health history %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-insights ceph-mgr-insights is a ceph-mgr module that records cluster health history to support cluster analysis. %package mgr-iostat BuildArch: noarch Summary: Ceph Manager module for displaying I/O statistics %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-iostat ceph-mgr-iostat is a ceph-mgr module that displays a running summary of I/O statistics across the cluster. %package mgr-localpool BuildArch: noarch Summary: Ceph Manager module for creating per-host CRUSH rules and pools %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-localpool ceph-mgr-localpool is a ceph-mgr module that automatically creates per-host CRUSH rules and pools. %package mgr-mds-autoscaler BuildArch: noarch Summary: Ceph Manager module for automatically scaling MDS daemons %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-mds-autoscaler ceph-mgr-mds-autoscaler is a ceph-mgr module that automatically scales the number of MDS daemons based on file system needs. %package mgr-mirroring BuildArch: noarch Summary: Ceph Manager module for managing CephFS mirroring %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-mirroring ceph-mgr-mirroring is a ceph-mgr module that provides management commands for CephFS mirroring. %package mgr-nfs BuildArch: noarch Summary: Ceph Manager module for managing NFS gateway deployments %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-nfs ceph-mgr-nfs is a ceph-mgr module that manages NFS gateway deployments on top of CephFS and RGW. %package mgr-nvmeof BuildArch: noarch Summary: Ceph Manager module for managing NVMe-oF gateway deployments %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-nvmeof ceph-mgr-nvmeof is a ceph-mgr module that manages NVMe-oF gateway deployments for Ceph RBD. %package mgr-osd-perf-query BuildArch: noarch Summary: Ceph Manager module for OSD performance counter queries %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-prettytable Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-osd-perf-query ceph-mgr-osd-perf-query is a ceph-mgr module that exposes OSD performance counter query functionality. %package mgr-osd-support BuildArch: noarch Summary: Ceph Manager module for additional OSD management commands %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-osd-support ceph-mgr-osd-support is a ceph-mgr module that provides additional OSD management commands. %package mgr-prometheus BuildArch: noarch Summary: Ceph Manager module for exposing metrics to Prometheus %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} >= 8 || 0%{?openEuler} Requires: python%{python3_pkgversion}-cherrypy %endif %if 0%{?suse_version} Requires: python%{python3_pkgversion}-CherryPy %endif %description mgr-prometheus ceph-mgr-prometheus is a ceph-mgr module that exposes cluster metrics in Prometheus exposition format. %package mgr-rgw BuildArch: noarch Summary: Ceph Manager module for RADOS Gateway management %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-rgw ceph-mgr-rgw is a ceph-mgr module that provides management and status commands for the RADOS Gateway. %package mgr-selftest BuildArch: noarch Summary: Ceph Manager module for testing the manager framework %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-selftest ceph-mgr-selftest is a ceph-mgr module used for testing the manager framework. %package mgr-smb BuildArch: noarch Summary: Ceph Manager module for managing SMB gateway deployments %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-smb ceph-mgr-smb is a ceph-mgr module that manages SMB gateway deployments on Ceph. %package mgr-snap-schedule BuildArch: noarch Summary: Ceph Manager module for automated CephFS snapshot schedules %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-snap-schedule ceph-mgr-snap-schedule is a ceph-mgr module that manages automated CephFS snapshot schedules. %package mgr-stats BuildArch: noarch Summary: Ceph Manager module for exposing file system client I/O statistics %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-stats ceph-mgr-stats is a ceph-mgr module that exposes file system client I/O statistics. %package mgr-telegraf BuildArch: noarch Summary: Ceph Manager module for sending metrics to Telegraf %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-telegraf ceph-mgr-telegraf is a ceph-mgr module that sends performance metrics to a Telegraf agent. %package mgr-test-orchestrator BuildArch: noarch Summary: Ceph Manager module for testing the orchestrator framework %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-mgr-modules-core < %{_epoch_prefix}%{version}-%{release} %description mgr-test-orchestrator ceph-mgr-test-orchestrator is a ceph-mgr module used for testing the orchestrator framework. %package fuse Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif Requires: fuse3 Requires: python%{python3_pkgversion} %description fuse FUSE based client for Ceph distributed network file system %package -n cephfs-mirror Summary: Ceph daemon for mirroring CephFS snapshots %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n cephfs-mirror Daemon for mirroring CephFS snapshots between Ceph clusters. %package -n ceph-exporter Summary: Daemon for exposing perf counters as Prometheus metrics %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description -n ceph-exporter Daemon for exposing perf counters as Prometheus metrics %package -n rbd-fuse Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-fuse FUSE based client to map Ceph rbd images to files %package -n rbd-mirror Summary: Ceph daemon for mirroring RBD images %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-mirror Daemon for mirroring RBD images between Ceph clusters, streaming changes asynchronously. %package immutable-object-cache Summary: Ceph daemon for immutable object cache %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description immutable-object-cache Daemon for immutable object cache. %package -n rbd-nbd Summary: Ceph RBD client base on NBD %if 0%{?suse_version} Group: System/Filesystems %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-nbd NBD based client to map Ceph rbd images to local device %package radosgw Summary: Rados REST gateway %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap %endif %if 0%{?weak_deps} Recommends: gawk %endif %description radosgw RADOS is a distributed object store used by the Ceph distributed storage system. This package provides a REST gateway to the object store that aims to implement a superset of Amazon's S3 service as well as the OpenStack Object Storage ("Swift") API. %package -n cephfs-top Summary: top(1) like utility for Ceph Filesystem BuildArch: noarch Requires: python%{python3_pkgversion}-rados %description -n cephfs-top This package provides a top(1) like utility to display Ceph Filesystem metrics in realtime. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version} Requires: resource-agents %description resource-agents Resource agents for monitoring and managing Ceph daemons under Open Cluster Framework (OCF) compliant resource managers such as Pacemaker. %endif %package osd Summary: Ceph Object Storage Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: ceph-osd-classic = %{_epoch_prefix}%{version}-%{release} %if 0%{with crimson} Requires: protobuf Requires: ceph-osd-crimson = %{_epoch_prefix}%{version}-%{release} %endif Requires: sudo Requires: libstoragemgmt %if 0%{?weak_deps} Recommends: ceph-volume = %{_epoch_prefix}%{version}-%{release} %endif %description osd ceph-osd is the object storage daemon for the Ceph distributed file system. It provides components shared between classic and crimson OSD implementations. It requires either the classic or crimson OSD to provide the core OSD daemon. %package osd-classic Summary: Ceph Object Storage Daemon (classic) %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-osd < %{_epoch_prefix}%{version}-%{release} # libcares.so.2 doesn't carry the version, and only EL crosses 1.28 between a # rolling builder and a frozen older minor, so pin the c-ares floor there. %if 0%{?rhel} >= 10 Requires: c-ares%{?_isa} >= 1.28.0 %endif %description osd-classic classic-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system and providing access to them over the network. %if 0%{with crimson} %package osd-crimson Summary: Ceph Object Storage Daemon (crimson) %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-osd = %{_epoch_prefix}%{version}-%{release} Requires: binutils Requires: protobuf %description osd-crimson crimson-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system and providing access to them over the network. %endif %package volume Summary: Ceph OSD deployment and inspection tool BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} Requires: cryptsetup Requires: e2fsprogs Requires: lvm2 Requires: parted Requires: util-linux Requires: xfsprogs Requires: python%{python3_pkgversion}-setuptools Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release} %description volume This package contains a tool to deploy OSD with different devices like lvm or physical disks, and trying to follow a predictable, and robust way of preparing, activating, and starting the deployed OSD. %package -n librados2 Summary: RADOS distributed object store client library %if 0%{?suse_version} Group: System/Libraries %endif %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librados2 RADOS is a reliable, autonomic distributed object storage cluster developed as part of the Ceph distributed storage system. This is a shared library allowing applications to access the distributed object store using a simple file-like interface. %package -n librados-devel Summary: RADOS headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librados-devel This package contains C libraries and headers needed to develop programs that use RADOS object store. %package -n libradospp-devel Summary: RADOS headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} %description -n libradospp-devel This package contains C++ libraries and headers needed to develop programs that use RADOS object store. %package -n librgw2 Summary: RADOS gateway client library %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n librgw2 This package provides a library implementation of the RADOS gateway (distributed object store with S3 and Swift personalities). %package -n librgw-devel Summary: RADOS gateway client library %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librgw-devel This package contains libraries and headers needed to develop programs that use RADOS gateway client library. %package -n python%{python3_pkgversion}-rgw Summary: Python 3 libraries for the RADOS gateway %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rgw} Provides: python-rgw = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rgw < %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rgw This package contains Python 3 libraries for interacting with Ceph RADOS gateway. %package -n python%{python3_pkgversion}-rados Summary: Python 3 libraries for the RADOS object store %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: python%{python3_pkgversion} Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rados} Provides: python-rados = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rados This package contains Python 3 libraries for interacting with Ceph RADOS object store. %package -n libcephsqlite Summary: SQLite3 VFS for Ceph %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephsqlite A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS distributed object store. %package -n libcephsqlite-devel Summary: SQLite3 VFS for Ceph headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: sqlite-devel Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libcephsqlite-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libcephsqlite-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephsqlite-devel A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS distributed object store. %if 0%{with libradosstriper} %package -n libradosstriper1 Summary: RADOS striping interface %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper1 Striping interface built on top of the rados library, allowing to stripe bigger objects onto several standard rados objects using an interface very similar to the rados one. %package -n libradosstriper-devel Summary: RADOS striping interface headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper-devel This package contains libraries and headers needed to develop programs that use RADOS striping interface. %endif %package -n librbd1 Summary: RADOS block device client library %if 0%{?suse_version} Group: System/Libraries %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?suse_version} Requires(post): coreutils %endif %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librbd1 RBD is a block device striped across multiple distributed objects in RADOS, a reliable, autonomic distributed object storage cluster developed as part of the Ceph distributed storage system. This is a shared library allowing applications to manage these block devices. %package -n librbd-devel Summary: RADOS block device headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release} %description -n librbd-devel This package contains libraries and headers needed to develop programs that use RADOS block device. %package -n python%{python3_pkgversion}-rbd Summary: Python 3 libraries for the RADOS block device %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-rbd} Provides: python-rbd = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rbd < %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rbd This package contains Python 3 libraries for interacting with Ceph RADOS block device. %package -n libcephfs2 Summary: Ceph distributed file system client library %if 0%{?suse_version} Group: System/Libraries %endif Obsoletes: libcephfs1 < %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-libcephfs < %{_epoch_prefix}%{version}-%{release} %endif Recommends: libcephfs-proxy2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs2 Ceph is a distributed network file system designed to provide excellent performance, reliability, and scalability. This is a shared library allowing applications to access a Ceph distributed file system via a POSIX-like interface. %package -n libcephfs-proxy2 Summary: Proxy for libcephfs %if 0%{?suse_version} Group: System/Libraries %endif Recommends: libcephfs-daemon = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs-proxy2 This package contains the libcephfs_proxy.so library that allow applications to share cephfs mounts to reduce resource consumption. %package -n libcephfs-daemon Summary: Deamon for the libcephfs proxy %if 0%{?suse_version} Group: System/Filesystems %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs-daemon This package contains the libcephfsd daemon that allows applications to share cephfs mounts to reduce resource consumption. %package -n libcephfs-devel Summary: Ceph distributed file system headers %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: libcephfs-proxy2 = %{_epoch_prefix}%{version}-%{release} Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs-devel This package contains libraries and headers needed to develop programs that use Ceph distributed file system. %package -n python%{python3_pkgversion}-cephfs Summary: Python 3 libraries for Ceph distributed file system %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-cephfs} Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-cephfs < %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-cephfs This package contains Python 3 libraries for interacting with Ceph distributed file system. %package -n python%{python3_pkgversion}-ceph-argparse Summary: Python 3 utility libraries for Ceph CLI %if 0%{?suse_version} Group: Development/Libraries/Python %endif %{?python_provide:%python_provide python%{python3_pkgversion}-ceph-argparse} %description -n python%{python3_pkgversion}-ceph-argparse This package contains types and routines for Python 3 used by the Ceph CLI as well as the RESTful interface. These have to do with querying the daemons for command-description information, validating user command input against those descriptions, and submitting the command to the appropriate daemon. %package -n python%{python3_pkgversion}-ceph-common Summary: Python 3 utility libraries for Ceph %if 0%{?fedora} || 0%{?rhel} Requires: python%{python3_pkgversion}-pyyaml %if %{with pypkg} Recommends: python%{python3_pkgversion}-ceph-smb-ctl %endif %endif %if 0%{?suse_version} Requires: python%{python3_pkgversion}-PyYAML %endif %if 0%{?suse_version} Group: Development/Libraries/Python %endif %{?python_provide:%python_provide python%{python3_pkgversion}-ceph-common} %description -n python%{python3_pkgversion}-ceph-common This package contains data structures, classes and functions used by Ceph. It also contains utilities used for the cephadm orchestrator. %if 0%{with cephfs_shell} %package -n cephfs-shell Summary: Interactive shell for Ceph file system Requires: python%{python3_pkgversion}-cmd2 Requires: python%{python3_pkgversion}-colorama Requires: python%{python3_pkgversion}-cephfs %description -n cephfs-shell This package contains an interactive tool that allows accessing a Ceph file system without mounting it by providing a nice pseudo-shell which works like an FTP client. %endif %if 0%{with ceph_test_package} %package -n ceph-test Summary: Ceph benchmarks and test tools %if 0%{?suse_version} Group: System/Benchmark %endif Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: xmlstarlet Requires: jq Requires: socat BuildRequires: gtest-devel BuildRequires: gmock-devel %description -n ceph-test This package contains Ceph benchmarks and test tools. %endif %if 0%{with cephfs_java} %package -n libcephfs_jni1 Summary: Java Native Interface library for CephFS Java bindings %if 0%{?suse_version} Group: System/Libraries %endif Requires: java Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java bindings. %package -n libcephfs_jni-devel Summary: Development files for CephFS Java Native Interface library %if 0%{?suse_version} Group: Development/Libraries/Java %endif Requires: java Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release} Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni-devel This package contains the development files for CephFS Java Native Interface library. %package -n cephfs-java Summary: Java libraries for the Ceph File System %if 0%{?suse_version} Group: System/Libraries %endif Requires: java Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} Requires: junit BuildRequires: junit %description -n cephfs-java This package contains the Java libraries for the Ceph File System. %endif %package -n rados-objclass-devel Summary: RADOS object class development kit %if 0%{?suse_version} Group: Development/Libraries/C and C++ %endif Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release} %description -n rados-objclass-devel This package contains libraries and headers needed to develop RADOS object class plugins. %if 0%{with selinux} %package selinux Summary: SELinux support for Ceph MON, OSD and MDS %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: policycoreutils, libselinux-utils Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release} Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk Requires(postun): policycoreutils %description selinux This package contains SELinux support for Ceph MON, OSD and MDS. The package also performs file-system relabelling which can take a long time on heavily populated file-systems. %endif %package grafana-dashboards Summary: The set of Grafana dashboards for monitoring purposes BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif %description grafana-dashboards This package provides a set of Grafana dashboards for monitoring of Ceph clusters. The dashboards require a Prometheus server setup collecting data from Ceph Manager "prometheus" module and Prometheus project "node_exporter" module. The dashboards are designed to be integrated with the Ceph Manager Dashboard web UI. %package prometheus-alerts Summary: Prometheus alerts for a Ceph deplyoment BuildArch: noarch Group: System/Monitoring %description prometheus-alerts This package provides Ceph default alerts for Prometheus. %package mib Summary: MIB for SNMP alerts BuildArch: noarch %if 0%{?suse_version} Group: System/Monitoring %endif %description mib This package provides a Ceph MIB for SNMP traps. %package node-proxy Summary: hw monitoring agent for Ceph BuildArch: noarch %if 0%{?suse_version} Group: System/Monitoring %endif %description node-proxy This package provides a Ceph hardware monitoring agent. %if %{with pypkg} %package -n python%{python3_pkgversion}-ceph-smb-ctl Summary: Ceph SMB Service Remote-Control Client BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release} Requires: python%{python3_pkgversion}-grpcio Requires: python%{python3_pkgversion}-grpcio-reflection %description -n python%{python3_pkgversion}-ceph-smb-ctl This package provides a tool to interact with Ceph's SMB Service Remote-Control gRPC API as a client. %endif %dnl end package python%{python3_pkgversion}-ceph-smb-ctl ################################################################################# # common ################################################################################# %prep %autosetup -p1 # Create two sysusers.d config files cat >ceph.sysusers.conf <cephadm.sysusers.conf <= 10 -DWITH_SYSTEM_ROCKSDB:BOOL=OFF \ %endif -DWITH_SYSTEM_LIBURING:BOOL=ON \ %if 0%{with system_boost} -DWITH_SYSTEM_BOOST:BOOL=ON \ %else -DWITH_SYSTEM_BOOST:BOOL=OFF \ %endif %if 0%{with cephfs_shell} -DWITH_CEPHFS_SHELL:BOOL=ON \ %endif %if 0%{with libradosstriper} -DWITH_LIBRADOSSTRIPER:BOOL=ON \ %else -DWITH_LIBRADOSSTRIPER:BOOL=OFF \ %endif %if 0%{with amqp_endpoint} -DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=ON \ %else -DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=OFF \ %endif %if 0%{with kafka_endpoint} -DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=ON \ %else -DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=OFF \ %endif %if 0%{without lua_packages} -DWITH_RADOSGW_LUA_PACKAGES:BOOL=OFF \ %endif %if 0%{with cmake_verbose_logging} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ %endif %if 0%{with rbd_rwl_cache} -DWITH_RBD_RWL:BOOL=ON \ %endif %if 0%{with rbd_ssd_cache} -DWITH_RBD_SSD_CACHE:BOOL=ON \ %endif %if 0%{with system_pmdk} -DWITH_SYSTEM_PMDK:BOOL=ON \ %endif %if 0%{without jaeger} -DWITH_JAEGER:BOOL=OFF \ %endif %if 0%{?suse_version} -DBOOST_J:STRING=%{jobs} \ %else -DBOOST_J:STRING=%{_smp_build_ncpus} \ %endif %if 0%{?fedora} || 0%{?rhel} -DWITH_FMT_HEADER_ONLY:BOOL=ON \ %endif %if 0%{with system_arrow} -DWITH_SYSTEM_ARROW:BOOL=ON \ %else -Dxsimd_SOURCE="SYSTEM" \ %endif %if 0%{with system_utf8proc} -DWITH_SYSTEM_UTF8PROC:BOOL=ON \ %endif %ifarch x86_64 aarch64 %if 0%{with system_qat} -DWITH_SYSTEM_QATLIB:BOOL=ON \ -DWITH_SYSTEM_QATZIP:BOOL=ON \ %endif %else -DWITH_QATDRV:BOOL=OFF \ -DWITH_QATLIB:BOOL=OFF \ -DWITH_QATZIP:BOOL=OFF \ %endif %if 0%{with ld_mold} -DCMAKE_LINKER=%{_bindir}/ld.mold \ %endif %if 0%{with crimson} -DWITH_CRIMSON:BOOL=ON \ -DWITH_JAEGER:BOOL=OFF \ %endif -DWITH_GRAFANA:BOOL=ON \ %if %{with sccache} -DWITH_SCCACHE=ON \ %endif %if 0%{with pypkg} -DWITH_PYPKG:BOOL=ON \ %endif %ifarch aarch64 -DWITH_UADK:BOOL=OFF \ %endif %if 0%{with cephadm_bundling} %if 0%{with cephadm_pip_deps} -DCEPHADM_BUNDLED_DEPENDENCIES=pip %else -DCEPHADM_BUNDLED_DEPENDENCIES=rpm %endif %else -DCEPHADM_BUNDLED_DEPENDENCIES=none %endif %if %{with cmake_verbose_logging} cat ./%{__cmake_builddir}/CMakeFiles/CMakeOutput.log cat ./%{__cmake_builddir}/CMakeFiles/CMakeError.log %endif export VERBOSE=1 export V=1 export GCC_COLORS= %cmake_build %if 0%{with make_check} %check # run in-tree unittests # cd %{_vpath_builddir} # ctest "$CEPH_MFLAGS_JOBS" %endif %install %cmake_install # we have dropped sysvinit bits rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph %if 0%{with crimson} mv %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd-crimson %endif mv %{buildroot}%{_bindir}/ceph-osd %{buildroot}%{_bindir}/ceph-osd-classic install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap %if 0%{?fedora} || 0%{?rhel} install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name} %endif install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_presetdir}/50-ceph.preset mkdir -p %{buildroot}%{_sbindir} install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf install -m 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce install -m 0644 -D ceph.sysusers.conf %{buildroot}%{_sysusersdir}/ceph.conf install -m 0644 -D cephadm.sysusers.conf %{buildroot}%{_sysusersdir}/cephadm.conf mkdir -p %{buildroot}%{_sharedstatedir}/cephadm chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm/.ssh touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys # firewall templates and /sbin/mount.ceph symlink %if 0%{?suse_version} && 0%{?suse_version} < 1550 mkdir -p %{buildroot}/sbin ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph %endif # udev rules install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules # sudoers.d install -m 0440 -D sudoers.d/ceph-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl %py3_shebang_fix %{buildroot}%{_bindir}/* %{buildroot}%{_sbindir}/* #set up placeholder directories mkdir -p %{buildroot}%{_sysconfdir}/ceph mkdir -p %{buildroot}%{_localstatedir}/run/ceph mkdir -p %{buildroot}%{_localstatedir}/log/ceph mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror # prometheus alerts install -m 644 -D monitoring/ceph-mixin/prometheus_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml # grafana charts install -m 644 -D monitoring/ceph-mixin/dashboards_out/* %{buildroot}/etc/grafana/dashboards/ceph-dashboard/ # SNMP MIB install -m 644 -D -t %{buildroot}%{_datadir}/snmp/mibs monitoring/snmp/CEPH-MIB.txt %if "%{_sbindir}" == "%{_bindir}" mv %{buildroot}%{_exec_prefix}/sbin/ceph-create-keys %{buildroot}%{_bindir}/ %endif %if 0%{?suse_version} # create __pycache__ directories and their contents %py3_compile %{buildroot}%{python3_sitelib} # hardlink duplicate files under /usr to save space %fdupes %{buildroot}%{_prefix} %endif ################################################################################# # files and systemd scriptlets ################################################################################# %files %files base %{_bindir}/ceph-crash %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-kvstore-tool %{_bindir}/ceph-run %{_presetdir}/50-ceph.preset %{_bindir}/ceph-create-keys %dir %{_libexecdir}/ceph %{_libexecdir}/ceph/ceph_common.sh %dir %{_libdir}/rados-classes %{_libdir}/rados-classes/* %dir %{_libdir}/ceph %dir %{_libdir}/ceph/erasure-code %{_libdir}/ceph/erasure-code/libec_*.so* %dir %{_libdir}/ceph/extblkdev %{_libdir}/ceph/extblkdev/libceph_*.so* %dir %{_libdir}/ceph/compressor %{_libdir}/ceph/compressor/libceph_*.so* %{_unitdir}/ceph-crash.service %dir %{_libdir}/ceph/crypto %{_libdir}/ceph/crypto/libceph_*.so* %if %{with lttng} %{_libdir}/libos_tp.so* %{_libdir}/libosd_tp.so* %{_libdir}/libmgr_op_tp.so* %endif %config(noreplace) %{_sysconfdir}/logrotate.d/ceph %if 0%{?fedora} || 0%{?rhel} %config(noreplace) %{_sysconfdir}/sysconfig/ceph %endif %if 0%{?suse_version} %{_fillupdir}/sysconfig.* %endif %{_unitdir}/ceph.target %{_mandir}/man8/ceph-create-keys.8* %{_mandir}/man8/ceph-run.8* %{_mandir}/man8/crushtool.8* %{_mandir}/man8/osdmaptool.8* %{_mandir}/man8/monmaptool.8* %{_mandir}/man8/ceph-kvstore-tool.8* #set up placeholder directories %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash/posted %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror %{_sysconfdir}/sudoers.d/ceph-smartctl %post base %{?ldconfig} %if 0%{?suse_version} %fillup_only if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph.target ceph-crash.service >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph.target ceph-crash.service %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || : fi %postun base %{?ldconfig} %systemd_postun ceph.target %files -n cephadm %{_bindir}/cephadm %{_mandir}/man8/cephadm.8* %attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm %attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm/.ssh %config(noreplace) %attr(0600,cephadm,cephadm) %{_sharedstatedir}/cephadm/.ssh/authorized_keys %{_sysusersdir}/cephadm.conf %preun common %if 0%{?suse_version} %service_del_preun ceph.target ceph-crash.service %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph.target ceph-crash.service %endif %files common %dir %{_docdir}/ceph %doc %{_docdir}/ceph/sample.ceph.conf %license %{_docdir}/ceph/COPYING %{_bindir}/ceph %{_bindir}/ceph-authtool %{_bindir}/ceph-conf %{_bindir}/ceph-dencoder %{_bindir}/ceph-rbdnamer %{_bindir}/ceph-syn %{_bindir}/cephfs-data-scan %{_bindir}/cephfs-journal-tool %{_bindir}/cephfs-table-tool %{_bindir}/cephfs-tool %{_bindir}/crushdiff %{_bindir}/rados %{_bindir}/radosgw-admin %{_bindir}/rbd %{_bindir}/rbd-replay %{_bindir}/rbd-replay-many %{_bindir}/rbdmap %{_bindir}/rgw-gap-list %{_bindir}/rgw-gap-list-comparator %{_bindir}/rgw-orphan-list %{_bindir}/rgw-restore-bucket-index %{_bindir}/mount.ceph %if 0%{?suse_version} && 0%{?suse_version} < 1550 /sbin/mount.ceph %endif %if %{with lttng} %{_bindir}/rbd-replay-prep %endif %{_bindir}/ceph-post-file %dir %{_libdir}/ceph/denc %{_libdir}/ceph/denc/denc-mod-*.so %{_tmpfilesdir}/ceph-common.conf %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-conf.8* %{_mandir}/man8/ceph-dencoder.8* %{_mandir}/man8/ceph-diff-sorted.8* %{_mandir}/man8/ceph-rbdnamer.8* %{_mandir}/man8/ceph-syn.8* %{_mandir}/man8/ceph-post-file.8* %{_mandir}/man8/ceph.8* %{_mandir}/man8/crushdiff.8* %{_mandir}/man8/mount.ceph.8* %{_mandir}/man8/rados.8* %{_mandir}/man8/radosgw-admin.8* %{_mandir}/man8/rbd.8* %{_mandir}/man8/rbdmap.8* %{_mandir}/man8/rbd-replay.8* %{_mandir}/man8/rbd-replay-many.8* %{_mandir}/man8/rbd-replay-prep.8* %{_mandir}/man8/rgw-orphan-list.8* %{_mandir}/man8/rgw-gap-list.8* %{_mandir}/man8/rgw-restore-bucket-index.8* %dir %{_datadir}/ceph/ %{_datadir}/ceph/known_hosts_drop.ceph.com %{_datadir}/ceph/id_rsa_drop.ceph.com %{_datadir}/ceph/id_rsa_drop.ceph.com.pub %dir %{_sysconfdir}/ceph/ %config %{_sysconfdir}/bash_completion.d/ceph %config %{_sysconfdir}/bash_completion.d/rados %config %{_sysconfdir}/bash_completion.d/rbd %config %{_sysconfdir}/bash_completion.d/radosgw-admin %config(noreplace) %{_sysconfdir}/ceph/rbdmap %{_unitdir}/rbdmap.service %dir %{_udevrulesdir} %{_udevrulesdir}/50-rbd.rules %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/ %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/ %{_sysusersdir}/ceph.conf %pre common CEPH_GROUP_ID=167 CEPH_USER_ID=167 %if 0%{?fedora} || 0%{?rhel} /usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : /usr/sbin/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : %endif %if 0%{?suse_version} if ! getent group ceph >/dev/null ; then CEPH_GROUP_ID_OPTION="" getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID" groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || : fi if ! getent passwd ceph >/dev/null ; then CEPH_USER_ID_OPTION="" getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID" useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || : fi usermod -c "Ceph storage service" \ -d %{_localstatedir}/lib/ceph \ -g ceph \ -s /sbin/nologin \ ceph %endif exit 0 %post common %tmpfiles_create %{_tmpfilesdir}/ceph-common.conf %files mds %{_bindir}/ceph-mds %{_mandir}/man8/ceph-mds.8* %{_unitdir}/ceph-mds@.service %{_unitdir}/ceph-mds.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds %post mds %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mds@.service ceph-mds.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mds@.service ceph-mds.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || : fi %preun mds %if 0%{?suse_version} %service_del_preun ceph-mds@.service ceph-mds.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mds@.service ceph-mds.target %endif %postun mds %systemd_postun ceph-mds@.service ceph-mds.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mds@.service > /dev/null 2>&1 || : fi fi %files mgr %{_bindir}/ceph-mgr %dir %{_datadir}/ceph/mgr %{_datadir}/ceph/mgr/mgr_module.* %{_datadir}/ceph/mgr/mgr_util.* %{_datadir}/ceph/mgr/object_format.* %{_datadir}/ceph/mgr/cherrypy_mgr.* %{_unitdir}/ceph-mgr@.service %{_unitdir}/ceph-mgr.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr %post mgr %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mgr@.service ceph-mgr.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mgr@.service ceph-mgr.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || : fi %preun mgr %if 0%{?suse_version} %service_del_preun ceph-mgr@.service ceph-mgr.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mgr@.service ceph-mgr.target %endif %postun mgr %systemd_postun ceph-mgr@.service ceph-mgr.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mgr@.service > /dev/null 2>&1 || : fi fi %files mgr-dashboard %{_datadir}/ceph/mgr/dashboard %ceph_mgr_module_scripts mgr-dashboard %files mgr-diskprediction-local %{_datadir}/ceph/mgr/diskprediction_local %ceph_mgr_module_scripts mgr-diskprediction-local %files mgr-modules-core %dir %{_datadir}/ceph/mgr %{_datadir}/ceph/mgr/balancer %{_datadir}/ceph/mgr/crash %{_datadir}/ceph/mgr/devicehealth %{_datadir}/ceph/mgr/orchestrator %{_datadir}/ceph/mgr/pg_autoscaler %{_datadir}/ceph/mgr/progress %{_datadir}/ceph/mgr/rbd_support %{_datadir}/ceph/mgr/status %{_datadir}/ceph/mgr/telemetry %{_datadir}/ceph/mgr/volumes %files mgr-modules-standard %files mgr-alerts %{_datadir}/ceph/mgr/alerts %ceph_mgr_module_scripts mgr-alerts %files mgr-influx %{_datadir}/ceph/mgr/influx %ceph_mgr_module_scripts mgr-influx %files mgr-insights %{_datadir}/ceph/mgr/insights %ceph_mgr_module_scripts mgr-insights %files mgr-iostat %{_datadir}/ceph/mgr/iostat %ceph_mgr_module_scripts mgr-iostat %files mgr-localpool %{_datadir}/ceph/mgr/localpool %ceph_mgr_module_scripts mgr-localpool %files mgr-mds-autoscaler %{_datadir}/ceph/mgr/mds_autoscaler %ceph_mgr_module_scripts mgr-mds-autoscaler %files mgr-mirroring %{_datadir}/ceph/mgr/mirroring %ceph_mgr_module_scripts mgr-mirroring %files mgr-nfs %{_datadir}/ceph/mgr/nfs %ceph_mgr_module_scripts mgr-nfs %files mgr-nvmeof %{_datadir}/ceph/mgr/nvmeof %ceph_mgr_module_scripts mgr-nvmeof %files mgr-osd-perf-query %{_datadir}/ceph/mgr/osd_perf_query %ceph_mgr_module_scripts mgr-osd-perf-query %files mgr-osd-support %{_datadir}/ceph/mgr/osd_support %ceph_mgr_module_scripts mgr-osd-support %files mgr-prometheus %{_datadir}/ceph/mgr/prometheus %ceph_mgr_module_scripts mgr-prometheus %files mgr-rgw %{_datadir}/ceph/mgr/rgw %ceph_mgr_module_scripts mgr-rgw %files mgr-selftest %{_datadir}/ceph/mgr/selftest %ceph_mgr_module_scripts mgr-selftest %files mgr-smb %{_datadir}/ceph/mgr/smb %ceph_mgr_module_scripts mgr-smb %files mgr-snap-schedule %{_datadir}/ceph/mgr/snap_schedule %ceph_mgr_module_scripts mgr-snap-schedule %files mgr-stats %{_datadir}/ceph/mgr/stats %ceph_mgr_module_scripts mgr-stats %files mgr-telegraf %{_datadir}/ceph/mgr/telegraf %ceph_mgr_module_scripts mgr-telegraf %files mgr-test-orchestrator %{_datadir}/ceph/mgr/test_orchestrator %ceph_mgr_module_scripts mgr-test-orchestrator %files mgr-rook %{_datadir}/ceph/mgr/rook %ceph_mgr_module_scripts mgr-rook %files mgr-k8sevents %{_datadir}/ceph/mgr/k8sevents %ceph_mgr_module_scripts mgr-k8sevents %files mgr-cephadm %{_datadir}/ceph/mgr/cephadm %ceph_mgr_module_scripts mgr-cephadm %files mgr-cli-api %{_datadir}/ceph/mgr/cli_api %ceph_mgr_module_scripts mgr-cli-api %files mon %{_bindir}/ceph-mon %{_bindir}/ceph-monstore-tool %{_mandir}/man8/ceph-mon.8* %{_unitdir}/ceph-mon@.service %{_unitdir}/ceph-mon.target %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon %post mon %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-mon@.service ceph-mon.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-mon@.service ceph-mon.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || : fi %preun mon %if 0%{?suse_version} %service_del_preun ceph-mon@.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-mon@.service ceph-mon.target %endif %postun mon %systemd_postun ceph-mon@.service ceph-mon.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-mon@.service > /dev/null 2>&1 || : fi fi %files mon-client-nvmeof %{_bindir}/ceph-nvmeof-monitor-client %files fuse %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* %{_sbindir}/mount.fuse.ceph %{_mandir}/man8/mount.fuse.ceph.8* %{_unitdir}/ceph-fuse@.service %{_unitdir}/ceph-fuse.target %files -n cephfs-mirror %{_bindir}/cephfs-mirror %{_mandir}/man8/cephfs-mirror.8* %{_unitdir}/cephfs-mirror@.service %{_unitdir}/cephfs-mirror.target %post -n cephfs-mirror %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset cephfs-mirror@.service cephfs-mirror.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post cephfs-mirror@.service cephfs-mirror.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start cephfs-mirror.target >/dev/null 2>&1 || : fi %preun -n cephfs-mirror %if 0%{?suse_version} %service_del_preun cephfs-mirror@.service cephfs-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun cephfs-mirror@.service cephfs-mirror.target %endif %postun -n cephfs-mirror %systemd_postun cephfs-mirror@.service cephfs-mirror.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart cephfs-mirror@.service > /dev/null 2>&1 || : fi fi %files exporter %{_bindir}/ceph-exporter %{_unitdir}/ceph-exporter@.service %files -n rbd-fuse %{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* %files -n rbd-mirror %{_bindir}/rbd-mirror %{_mandir}/man8/rbd-mirror.8* %{_unitdir}/ceph-rbd-mirror@.service %{_unitdir}/ceph-rbd-mirror.target %post -n rbd-mirror %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-rbd-mirror@.service ceph-rbd-mirror.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-rbd-mirror@.service ceph-rbd-mirror.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || : fi %preun -n rbd-mirror %if 0%{?suse_version} %service_del_preun ceph-rbd-mirror@.service ceph-rbd-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-rbd-mirror@.service ceph-rbd-mirror.target %endif %postun -n rbd-mirror %systemd_postun ceph-rbd-mirror@.service ceph-rbd-mirror.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-rbd-mirror@.service > /dev/null 2>&1 || : fi fi %files immutable-object-cache %{_bindir}/ceph-immutable-object-cache %{_mandir}/man8/ceph-immutable-object-cache.8* %{_unitdir}/ceph-immutable-object-cache@.service %{_unitdir}/ceph-immutable-object-cache.target %post immutable-object-cache %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-immutable-object-cache@.service ceph-immutable-object-cache.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-immutable-object-cache@.service ceph-immutable-object-cache.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-immutable-object-cache.target >/dev/null 2>&1 || : fi %preun immutable-object-cache %if 0%{?suse_version} %service_del_preun ceph-immutable-object-cache@.service ceph-immutable-object-cache.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-immutable-object-cache@.service ceph-immutable-object-cache.target %endif %postun immutable-object-cache %systemd_postun ceph-immutable-object-cache@.service ceph-immutable-object-cache.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-immutable-object-cache@.service > /dev/null 2>&1 || : fi fi %files -n rbd-nbd %{_bindir}/rbd-nbd %{_mandir}/man8/rbd-nbd.8* %dir %{_libexecdir}/rbd-nbd %{_libexecdir}/rbd-nbd/rbd-nbd_quiesce %files radosgw %{_bindir}/ceph-diff-sorted %{_bindir}/radosgw %{_bindir}/radosgw-token %{_bindir}/radosgw-es %{_bindir}/radosgw-object-expirer %{_bindir}/rgw-policy-check %{_mandir}/man8/radosgw.8* %{_mandir}/man8/rgw-policy-check.8* %dir %{_localstatedir}/lib/ceph/radosgw %{_unitdir}/ceph-radosgw@.service %{_unitdir}/ceph-radosgw.target %post radosgw %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-radosgw@.service ceph-radosgw.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-radosgw@.service ceph-radosgw.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || : fi %preun radosgw %if 0%{?suse_version} %service_del_preun ceph-radosgw@.service ceph-radosgw.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-radosgw@.service ceph-radosgw.target %endif %postun radosgw %systemd_postun ceph-radosgw@.service ceph-radosgw.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-radosgw@.service > /dev/null 2>&1 || : fi fi %files osd %{_bindir}/ceph-clsinfo %{_bindir}/ceph-erasure-code-tool %{_libexecdir}/ceph/ceph-osd-prestart.sh %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-osd.8* %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target %config(noreplace) %{_sysctldir}/90-ceph-osd.conf %post osd %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-osd@.service ceph-osd.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-osd@.service ceph-osd.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : fi %sysctl_apply 90-ceph-osd.conf %preun osd %if 0%{?suse_version} %service_del_preun ceph-osd@.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-osd@.service ceph-osd.target %endif %postun osd %systemd_postun ceph-osd@.service ceph-volume@.service ceph-osd.target if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-osd@.service ceph-volume@.service > /dev/null 2>&1 || : fi fi %files osd-classic %{_bindir}/ceph-bluestore-tool %{_bindir}/ceph-objectstore-tool %{_bindir}/ceph-osd-classic %{_mandir}/man8/ceph-bluestore-tool.8* %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %if 0%{with crimson} %files osd-crimson %{_bindir}/ceph-osd-crimson %{_bindir}/crimson-objectstore-tool %posttrans osd-crimson %{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \ %{_bindir}/ceph-osd-crimson 50 %preun osd-crimson if [ $1 -eq 0 ]; then ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-osd-crimson fi %endif +%posttrans osd-classic %{_sbindir}/update-alternatives --install %{_bindir}/ceph-osd ceph-osd \ %{_bindir}/ceph-osd-classic 100 %preun osd-classic if [ $1 -eq 0 ]; then ${_sbindir}/update-alternatives --remove ceph-osd %{_bindir}/ceph-osd-classic fi %files volume %{_sbindir}/ceph-volume %{_sbindir}/ceph-volume-systemd %dir %{python3_sitelib}/ceph_volume %{python3_sitelib}/ceph_volume/* %{python3_sitelib}/ceph_volume-* %{_mandir}/man8/ceph-volume.8* %{_mandir}/man8/ceph-volume-systemd.8* %{_unitdir}/ceph-volume@.service %post volume %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-volume@.service >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-volume@.service %endif %preun volume %if 0%{?suse_version} %service_del_preun ceph-volume@.service %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-volume@.service %endif %postun volume %systemd_postun ceph-volume@.service if [ $1 -ge 1 ] ; then # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to # "yes". In any case: if units are not running, do not touch them. SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl try-restart ceph-volume@.service > /dev/null 2>&1 || : fi fi %if %{with ocf} %files resource-agents %dir %{_prefix}/lib/ocf %dir %{_prefix}/lib/ocf/resource.d %dir %{_prefix}/lib/ocf/resource.d/ceph %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd %endif %files -n librados2 %doc %{_docdir}/ceph/COPYING %{_libdir}/librados.so.* %dir %{_libdir}/ceph %{_libdir}/ceph/libceph-common.so.* %if %{with lttng} %{_libdir}/librados_tp.so.* %endif %dir %{_sysconfdir}/ceph %ldconfig_scriptlets librados2 %files -n librados-devel %dir %{_includedir}/rados %{_includedir}/rados/librados.h %{_includedir}/rados/rados_types.h %{_libdir}/librados.so %if %{with lttng} %{_libdir}/librados_tp.so %endif %{_bindir}/librados-config %{_mandir}/man8/librados-config.8* %files -n libradospp-devel %dir %{_includedir}/rados %{_includedir}/rados/buffer.h %{_includedir}/rados/buffer_fwd.h %{_includedir}/rados/crc32c.h %{_includedir}/rados/inline_memory.h %{_includedir}/rados/librados.hpp %{_includedir}/rados/librados_fwd.hpp %{_includedir}/rados/page.h %{_includedir}/rados/rados_types.hpp %{_includedir}/rados/cls_flags.hpp %{_includedir}/rados/cls_traits.hpp %files -n python%{python3_pkgversion}-rados %{python3_sitearch}/rados.cpython*.so %{python3_sitearch}/rados-*.dist-info %files -n libcephsqlite %{_libdir}/libcephsqlite.so %ldconfig_scriptlets libcephsqlite %files -n libcephsqlite-devel %{_includedir}/libcephsqlite.h %if 0%{with libradosstriper} %files -n libradosstriper1 %{_libdir}/libradosstriper.so.* %ldconfig_scriptlets libradosstriper1 %files -n libradosstriper-devel %dir %{_includedir}/radosstriper %{_includedir}/radosstriper/libradosstriper.h %{_includedir}/radosstriper/libradosstriper.hpp %{_libdir}/libradosstriper.so %endif %files -n librbd1 %doc %{_docdir}/ceph/COPYING %{_libdir}/librbd.so.* %if %{with lttng} %{_libdir}/librbd_tp.so.* %endif %dir %{_libdir}/ceph/librbd %{_libdir}/ceph/librbd/libceph_*.so* %ldconfig_scriptlets librbd1 %files -n librbd-devel %dir %{_includedir}/rbd %{_includedir}/rbd/librbd.h %{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/features.h %{_libdir}/librbd.so %if %{with lttng} %{_libdir}/librbd_tp.so %endif %files -n librgw2 %{_libdir}/librgw.so.* %if %{with lttng} %{_libdir}/librgw_op_tp.so.* %{_libdir}/librgw_rados_tp.so.* %endif %ldconfig_scriptlets librgw2 %files -n librgw-devel %dir %{_includedir}/rados %{_includedir}/rados/librgw.h %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so %if %{with lttng} %{_libdir}/librgw_op_tp.so %{_libdir}/librgw_rados_tp.so %endif %files -n python%{python3_pkgversion}-rgw %{python3_sitearch}/rgw.cpython*.so %{python3_sitearch}/rgw-*.dist-info %files -n python%{python3_pkgversion}-rbd %{python3_sitearch}/rbd.cpython*.so %{python3_sitearch}/rbd-*.dist-info %files -n libcephfs2 %{_libdir}/libcephfs.so.* %dir %{_sysconfdir}/ceph %ldconfig_scriptlets libcephfs2 %files -n libcephfs-proxy2 %{_libdir}/libcephfs_proxy.so.* %post -n libcephfs-proxy2 -p /sbin/ldconfig %postun -n libcephfs-proxy2 -p /sbin/ldconfig %files -n libcephfs-daemon %{_sbindir}/libcephfsd %files -n libcephfs-devel %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %{_includedir}/cephfs/ceph_ll_client.h %{_includedir}/cephfs/types.h %dir %{_includedir}/cephfs/metrics %{_includedir}/cephfs/metrics/Types.h %{_includedir}/cephfs/dump.h %{_includedir}/cephfs/json.h %{_includedir}/cephfs/keys_and_values.h %{_libdir}/libcephfs.so %{_libdir}/libcephfs_proxy.so %{_libdir}/pkgconfig/cephfs.pc %files -n python%{python3_pkgversion}-cephfs %{python3_sitearch}/cephfs.cpython*.so %{python3_sitearch}/cephfs-*.dist-info %files -n python%{python3_pkgversion}-ceph-argparse %{python3_sitelib}/ceph_argparse.py %{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py* %{python3_sitelib}/ceph_daemon.py %{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py* %files -n python%{python3_pkgversion}-ceph-common %{python3_sitelib}/ceph %{python3_sitelib}/ceph-*.%{?with_pypkg:dist}%{!?with_pypkg:egg}-info %if 0%{with cephfs_shell} %files -n cephfs-shell %{python3_sitelib}/cephfs_shell-*.egg-info %{_bindir}/cephfs-shell %{_mandir}/man8/cephfs-shell.8* %endif %files -n cephfs-top %{python3_sitelib}/cephfs_top-*.egg-info %{_bindir}/cephfs-top %{_mandir}/man8/cephfs-top.8* %if 0%{with ceph_test_package} %files -n ceph-test %{_bindir}/ceph-client-debug %{_bindir}/ceph_bench_log %{_bindir}/ceph_multi_stress_watch %{_bindir}/ceph_erasure_code_benchmark %{_bindir}/ceph_omapbench %{_bindir}/ceph_objectstore_bench %{_bindir}/ceph_ec_consistency_checker %{_bindir}/ceph_perf_objectstore %{_bindir}/ceph_perf_local %{_bindir}/ceph_perf_msgr_client %{_bindir}/ceph_perf_msgr_server %{_bindir}/ceph_psim %{_bindir}/ceph_rgw_jsonparser %{_bindir}/ceph_rgw_multiparser %{_bindir}/ceph_scratchtool %{_bindir}/ceph_scratchtoolpp %{_bindir}/ceph_test_* %{_bindir}/ceph-coverage %{_bindir}/ceph-debugpack %{_bindir}/ceph-dedup-tool %{_bindir}/ceph-dedup-daemon %if 0%{with crimson} %{_bindir}/crimson-store-nbd %{_bindir}/crimson-store-bench %endif %{_mandir}/man8/ceph-debugpack.8* %dir %{_libdir}/ceph %{_libdir}/ceph/ceph-monstore-update-crush.sh %endif %if 0%{with cephfs_java} %files -n libcephfs_jni1 %{_libdir}/libcephfs_jni.so.* %ldconfig_scriptlets libcephfs_jni1 %files -n libcephfs_jni-devel %{_libdir}/libcephfs_jni.so %files -n cephfs-java %{_javadir}/libcephfs.jar %{_javadir}/libcephfs-test.jar %endif %files -n rados-objclass-devel %dir %{_includedir}/rados %{_includedir}/rados/objclass.h %if 0%{with selinux} %files selinux %attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp %{_datadir}/selinux/devel/include/contrib/ceph.if %{_mandir}/man8/ceph_selinux.8* %post selinux # backup file_contexts before update . /etc/selinux/config FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre # Install the policy /usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp # Load the policy if SELinux is enabled if ! /usr/sbin/selinuxenabled; then # Do not relabel if selinux is not enabled exit 0 fi if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then # Do not relabel if file contexts did not change exit 0 fi # Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi # Check whether the daemons are running /usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 fi fi # Relabel the files fix for first package install /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null rm -f ${FILE_CONTEXT}.pre # The fixfiles command won't fix label for /var/run/ceph /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons iff they were running before if test $STATUS -eq 0; then if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi fi exit 0 %postun selinux if [ $1 -eq 0 ]; then # backup file_contexts before update . /etc/selinux/config FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre # Remove the module /usr/sbin/semodule -n -r ceph > /dev/null 2>&1 # Reload the policy if SELinux is enabled if ! /usr/sbin/selinuxenabled ; then # Do not relabel if SELinux is not enabled exit 0 fi # Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then source $SYSCONF_CEPH fi # Check whether the daemons are running /usr/bin/systemctl status ceph.target > /dev/null 2>&1 STATUS=$? # Stop the daemons if they were running if test $STATUS -eq 0; then if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 fi fi /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null rm -f ${FILE_CONTEXT}.pre # The fixfiles command won't fix label for /var/run/ceph /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1 # Start the daemons if they were running before if test $STATUS -eq 0; then if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi fi fi exit 0 %endif %files grafana-dashboards %if 0%{?suse_version} %attr(0755,root,root) %dir %{_sysconfdir}/grafana %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards %endif %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard %config %{_sysconfdir}/grafana/dashboards/ceph-dashboard/* %files prometheus-alerts %if 0%{?suse_version} %attr(0755,root,root) %dir %{_sysconfdir}/prometheus %endif %attr(0755,root,root) %dir %{_sysconfdir}/prometheus/ceph %config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml %files mib %attr(0755,root,root) %dir %{_datadir}/snmp %{_datadir}/snmp/mibs %files node-proxy %{_sbindir}/ceph-node-proxy %dir %{python3_sitelib}/ceph_node_proxy %{python3_sitelib}/ceph_node_proxy/* %{python3_sitelib}/ceph_node_proxy-* %if %{with pypkg} %files -n python%{python3_pkgversion}-ceph-smb-ctl %{_bindir}/ceph-smb-ctl %endif %changelog * Thu Aug 13 2026 Jason Montleon - 2:21.1.0-6 - rhbz#2515956, fix FTBFS on riscv64 regression * Mon Aug 10 2026 Kaleb S. KEITHLEY - 2:21.1.0-5 - rebuild for thrift 0.24.0 * Tue Aug 4 2026 Python Maint - 2:21.1.0-4 - rhbz#2510966 (was built in f45-build-side-144323, but missed merge) * Fri Jul 24 2026 Python Maint - 2:21.1.0-3 - rhbz#2506873, include Python 3.15.0b4 ABI (f45-build-side-144323) * Wed Jul 22 2026 Python Maint - 2:21.1.0-2 - Rebuilt for Python 3.15.0b4 ABI change * Mon Jul 20 2026 Kaleb S. KEITHLEY - 2:21.1.0-1 - ceph-21.1.0 RC0 * Wed Jul 15 2026 Fedora Release Engineering - 2:20.2.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild * Mon Jun 22 2026 Kaleb S. KEITHLEY - 2:20.2.2-2 - Ceph 20.2.2 GA, f45-side-build-141772 * Tue Jun 16 2026 Kaleb S. KEITHLEY - 2:20.2.2-1 - Ceph 20.2.2 GA, f45-side-build-141058 * Mon Jun 15 2026 Kaleb S. KEITHLEY - 2:20.2.1-6 - Ceph 20.2.1, rebuild with liborc, libarrow w/ protobuf3 * Fri Jun 12 2026 Yaakov Selkowitz - 2:20.2.1-5 - Rebuilt for openssl 4.0 * Mon Jun 08 2026 František Zatloukal - 2:20.2.1-4 - Rebuilt for icu 78.3 * Thu Jun 04 2026 Python Maint - 2:20.2.1-3 - Rebuilt for Python 3.15 * Tue Apr 28 2026 Kaleb S. KEITHLEY - 2:20.2.1-2 - Ceph 20.2.1, enable LTO * Mon Apr 6 2026 Kaleb S. KEITHLEY - 2:20.2.1-1 - Ceph 20.2.1 GA * Tue Mar 17 2026 Kaleb S. KEITHLEY - 2:20.2.0-10 - Requires: fuse -> fuse3 * Tue Feb 17 2026 Kaleb S. KEITHLEY - 2:20.2.0-9 - ceph-20.2.0, rebuild with libarrow-23.0.1, cmake-4-isms, lua-5.5 * Wed Jan 28 2026 Kaleb S. KEITHLEY - 2:20.2.0-8 - ceph-20.2.0, rebuild with libarrow-23.0.0, side tag f44-build-side-127546 * Wed Jan 28 2026 Kaleb S. KEITHLEY - 2:20.2.0-7 - ceph-20.2.0, rhbz#2433903 * Fri Jan 16 2026 Fedora Release Engineering - 2:20.2.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Fri Jan 16 2026 Fedora Release Engineering - 2:20.2.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Wed Dec 10 2025 Kaleb S. KEITHLEY - 2:20.2.0-4 - ceph-20.2.0, disable crimson, core team says it's not ready * Fri Dec 5 2025 Kaleb S. KEITHLEY - 2:20.2.0-3 - ceph-20.2.0, rhbz#2419150 * Thu Dec 4 2025 Kaleb S. KEITHLEY - 2:20.2.0-2 - ceph-20.2.0, enable crimson * Tue Nov 18 2025 Kaleb S. KEITHLEY - 2:20.2.0-1 - ceph-20.2.0 GA * Tue Nov 4 2025 Tom Callaway - 2:20.1.1-4 - rebuild for new fuse3 * Fri Oct 24 2025 Kaleb S. KEITHLEY - 2:20.1.1-2 - ceph-20.1.1 RC, rebuild with libarrow-22.0.0, side tag f44-build-side-121464 * Thu Oct 16 2025 Gordon Messmer - 2:20.1.1-3 - Use rpm's native resource tunable to limit parallelism. BZ#2404624 * Tue Oct 7 2025 Kaleb S. KEITHLEY - 2:20.1.1-1 - ceph-20.1.1 RC * Tue Sep 23 2025 Kaleb S. KEITHLEY - 2:20.1.0-6 - ceph-20.1.0 RC, rhbz#2396036 (gmock, gtest again) * Fri Sep 19 2025 Python Maint - 2:20.1.0-5 - Rebuilt for Python 3.14.0rc3 bytecode * Tue Sep 16 2025 Kaleb S. KEITHLEY - 2:20.1.0-4 - ceph-20.1.0 RC, rhbz#2395703 (gmock, gtest again) * Fri Sep 12 2025 Kaleb S. KEITHLEY - 2:20.1.0-3 - ceph-20.1.0 RC, rhbz#2394758 (gmock, gtest) * Tue Sep 9 2025 Kaleb S. KEITHLEY - 2:20.1.0-2 - ceph-20.1.0 RC, rhbz#2394363 * Mon Sep 8 2025 Kaleb S. KEITHLEY - 2:20.1.0-1 - ceph-20.1.0 RC * Mon Apr 28 2025 Kaleb S. KEITHLEY - 2:19.2.2-5 - ceph-19.2.2, build in side tag f43-build-side-110906 * Wed Apr 16 2025 Zbigniew Jędrzejewski-Szmek - 2:19.2.2-4 - Add sysusers.d config file to allow rpm to create users/groups automatically * Mon Apr 14 2025 Kaleb S. KEITHLEY - 2:19.2.2-3 - ceph-19.2.2, rhbz#2359214 again * Sat Apr 12 2025 Kaleb S. KEITHLEY - 2:19.2.2-2 - ceph-19.2.2, rhbz#2359214 * Thu Apr 10 2025 Kaleb S. KEITHLEY - 2:19.2.2-1 - ceph-19.2.2 GA * Thu Mar 13 2025 Kaleb S. KEITHLEY - 2:19.2.1-7 - rebuild with libarrow-19.0.1 (and liborc-2.1.1) * Fri Mar 7 2025 Kaleb S. KEITHLEY - 2:19.2.1-6 - cephadm dependencies * Sat Mar 1 2025 Kaleb S. KEITHLEY - 2:19.2.1-5 - rebuild w/ cmake-4 * Mon Feb 17 2025 Kaleb S. KEITHLEY - 2:19.2.1-4 - ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129 * Sat Feb 8 2025 Zbigniew Jedrzejewski-Szmek - 2:19.2.1-3 - Add sysusers.d config file to allow rpm to create users/groups automatically * Fri Feb 7 2025 Kaleb S. KEITHLEY - 2:19.2.1-2 - ceph-19.2.1, rebuild w/ libarrow 19, liborc 2.1, f43-build-side-105129 * Thu Feb 6 2025 Kaleb S. KEITHLEY - 2:19.2.1-1 - ceph-19.2.1 GA * Fri Jan 24 2025 Kaleb S. KEITHLEY - 2:19.2.0-10 - hack around cmake -std=gnu99 w/ userspace-rcu - use system version of gmock and gtest to avoid bundled brain damage that creates but does not install gmock and gtest shlibs rhbz#2341687 * Thu Jan 16 2025 Fedora Release Engineering - 2:19.2.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Fri Dec 20 2024 Kaleb S. KEITHLEY - 2:19.2.0-8 - remove openssl-engine * Sun Dec 08 2024 Pete Walter - 2:19.2.0-7 - Rebuild for ICU 76 * Tue Nov 26 2024 Kaleb S. KEITHLEY - 2:19.2.0-6 - build in f42-build-side-100844 again * Fri Nov 22 2024 Kaleb S. KEITHLEY - 2:19.2.0-5 - build in f42-build-side-100844 * Mon Nov 18 2024 Kaleb S. KEITHLEY - 2:19.2.0-4 - and back; ceph-19.2.0 scikit_learn -> scikit-learn rhbz#2327036 * Wed Nov 13 2024 Kaleb S. KEITHLEY - 2:19.2.0-3 - ceph-19.2.0 scikit-learn -> scikit_learn rhbz#2325990 * Fri Oct 25 2024 Orion Poplawski - 2:19.2.0-2 - Rebuild for yaml-cpp 0.8 * Fri Sep 20 2024 Kaleb S. KEITHLEY - 2:19.2.0-1 - ceph-19.2.0 GA * Fri Aug 23 2024 Kaleb S. KEITHLEY - 2:19.1.1-0.1 - ceph-19.1.1 RC * Fri Jul 26 2024 Kaleb S. KEITHLEY - 2:19.1.0-0.5 - possible fix for ppc64le build, see rhbz 2297744 * Wed Jul 17 2024 Fedora Release Engineering - 2:19.1.0-0.4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Fri Jul 12 2024 Kaleb S. KEITHLEY - 2:19.1.0-0.3 - install libtacopie.so * Thu Jul 11 2024 Kaleb S. KEITHLEY - 2:19.1.0-0.2 - install libcpp_redis.so * Tue Jul 9 2024 Kaleb S. KEITHLEY - 2:19.1.0-0.1 - ceph-19.1.0 RC