# vim: set noexpandtab ts=8 sw=8 : # # 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/ # # `rdopkg update-patches` will automatically update this macro: %global commit 0336e23b7404496341b988c8057538b8185ca5ec ################################################################################# # conditional build section # # please read http://rpm.org/user_doc/conditional_builds.html for explanation of # bcond syntax! ################################################################################# %bcond_with make_check %ifarch s390 s390x %bcond_with tcmalloc %else %bcond_without tcmalloc %endif %if 0%{?fedora} || 0%{?rhel} %bcond_without selinux %bcond_without ceph_test_package %bcond_with cephfs_java %bcond_without lttng %bcond_without libradosstriper %bcond_without ocf %bcond_without amqp_endpoint %bcond_without kafka_endpoint %global _remote_tarball_prefix https://download.ceph.com/tarballs/ %endif %if 0%{?suse_version} %bcond_with selinux %bcond_with ceph_test_package %bcond_with cephfs_java %bcond_with amqp_endpoint %bcond_with kafka_endpoint #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %global _fillupdir /var/adm/fillup-templates %endif %if 0%{?is_opensuse} %bcond_without libradosstriper %bcond_without ocf %else %bcond_with libradosstriper %bcond_with ocf %endif %ifarch x86_64 aarch64 ppc64le %bcond_without lttng %else %bcond_with lttng %endif %endif %bcond_with seastar %if 0%{?fedora} >= 29 || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 8 # distros that need a py3 Ceph build %bcond_with python2 %else # distros that need a py2 Ceph build %bcond_without python2 %endif %if 0%{?fedora} || 0%{?suse_version} >= 1500 # 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%{?suse_version} || 0%{?rhel} >= 8 %global weak_deps 1 %endif %if 0%{without python2} %global _defined_if_python2_absent 1 %endif %if %{with selinux} # get selinux policy version %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0} %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 _python_buildid macro which will expand to the empty string when # building with python2 %global _python_buildid %{?_defined_if_python2_absent:%{python3_pkgversion}} # unify libexec for all targets %global _libexecdir %{_exec_prefix}/lib # disable dwz which compresses the debuginfo %global _find_debuginfo_dwz_opts %{nil} ################################################################################# # main package definition ################################################################################# Name: ceph Version: 14.2.8 Release: 81%{?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 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT %if 0%{?suse_version} Group: System/Filesystems %endif URL: http://ceph.com/ Source0: %{?_remote_tarball_prefix}%{name}-%{version}.tar.gz Source1: %{name}-%{version}-%{commit}-changes.tar.gz Source2: dashboard_frontend-%{version}-%{commit}.tar.gz Source100: spawn-5f4742f.tar.gz %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%{with cephfs_java} BuildRequires: java-devel BuildRequires: sharutils %endif %if 0%{with selinux} BuildRequires: checkpolicy BuildRequires: selinux-policy-devel %endif BuildRequires: gperf %if 0%{?rhel} == 7 BuildRequires: cmake3 > 3.5 %else BuildRequires: cmake > 3.5 %endif BuildRequires: cryptsetup BuildRequires: fuse-devel %if 0%{?rhel} == 7 # devtoolset offers newer make and valgrind-devel, but the old ones are good # enough. BuildRequires: devtoolset-8-gcc-c++ >= 8.2.1 %else BuildRequires: gcc-c++ %endif BuildRequires: gdbm %if 0%{with tcmalloc} %if 0%{?fedora} || 0%{?rhel} BuildRequires: gperftools-devel >= 2.6.1 %endif %if 0%{?suse_version} BuildRequires: gperftools-devel >= 2.4 %endif %endif BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: libcurl-devel BuildRequires: libcap-ng-devel BuildRequires: libudev-devel BuildRequires: libnl3-devel BuildRequires: liboath-devel BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: ncurses-devel BuildRequires: parted BuildRequires: patch BuildRequires: perl BuildRequires: pkgconfig BuildRequires: procps BuildRequires: python%{_python_buildid} BuildRequires: python%{_python_buildid}-devel BuildRequires: snappy-devel BuildRequires: sudo BuildRequires: udev BuildRequires: util-linux BuildRequires: valgrind-devel BuildRequires: which BuildRequires: xfsprogs BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet BuildRequires: yasm %if 0%{with amqp_endpoint} BuildRequires: librabbitmq-devel %endif %if 0%{with kafka_endpoint} BuildRequires: librdkafka-devel %endif %if 0%{with make_check} BuildRequires: jq BuildRequires: libuuid-devel BuildRequires: python%{_python_buildid}-bcrypt BuildRequires: python%{_python_buildid}-coverage BuildRequires: python%{_python_buildid}-nose BuildRequires: python%{_python_buildid}-pecan BuildRequires: python%{_python_buildid}-requests BuildRequires: python%{_python_buildid}-six BuildRequires: python%{_python_buildid}-tox BuildRequires: python%{_python_buildid}-virtualenv %if 0%{?rhel} == 7 BuildRequires: pyOpenSSL%{_python_buildid} %else BuildRequires: python%{_python_buildid}-pyOpenSSL %endif BuildRequires: socat %endif %if 0%{with seastar} BuildRequires: c-ares-devel BuildRequires: gnutls-devel BuildRequires: hwloc-devel BuildRequires: libpciaccess-devel BuildRequires: lksctp-tools-devel BuildRequires: protobuf-devel BuildRequires: ragel BuildRequires: systemtap-sdt-devel BuildRequires: yaml-cpp-devel %endif ################################################################################# # distro-conditional dependencies ################################################################################# %if 0%{?suse_version} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros BuildRequires: systemd %{?systemd_requires} PreReq: %fillup_prereq BuildRequires: fdupes BuildRequires: net-tools BuildRequires: libbz2-devel BuildRequires: mozilla-nss-devel BuildRequires: keyutils-devel BuildRequires: libopenssl-devel BuildRequires: lsb-release BuildRequires: openldap2-devel #BuildRequires: krb5 #BuildRequires: krb5-devel BuildRequires: cunit-devel BuildRequires: python%{_python_buildid}-setuptools BuildRequires: python%{_python_buildid}-Cython BuildRequires: python%{_python_buildid}-PrettyTable BuildRequires: python%{_python_buildid}-Sphinx BuildRequires: rdma-core-devel BuildRequires: liblz4-devel >= 1.7 # for prometheus-alerts BuildRequires: golang-github-prometheus-prometheus %endif %if 0%{?fedora} || 0%{?rhel} Requires: systemd BuildRequires: boost-random BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel BuildRequires: openldap-devel #BuildRequires: krb5-devel BuildRequires: openssl-devel BuildRequires: CUnit-devel BuildRequires: redhat-lsb-core %if 0%{with python2} BuildRequires: python2-Cython %endif BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-Cython BuildRequires: python%{_python_buildid}-prettytable BuildRequires: python%{_python_buildid}-sphinx BuildRequires: lz4-devel >= 1.7 %endif # distro-conditional make check dependencies %if 0%{with make_check} %if 0%{?fedora} || 0%{?rhel} BuildRequires: python%{_python_buildid}-cherrypy BuildRequires: python%{_python_buildid}-jwt BuildRequires: python%{_python_buildid}-routes BuildRequires: python%{_python_buildid}-werkzeug BuildRequires: xmlsec1 %endif %if 0%{?suse_version} BuildRequires: python%{_python_buildid}-CherryPy BuildRequires: python%{_python_buildid}-PyJWT BuildRequires: python%{_python_buildid}-Routes BuildRequires: python%{_python_buildid}-Werkzeug BuildRequires: python%{_python_buildid}-numpy-devel BuildRequires: rpm-build BuildRequires: xmlsec1-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%{?rhel} || 0%{?fedora} BuildRequires: expat-devel %endif #hardened-cc1 %if 0%{?fedora} || 0%{?rhel} BuildRequires: redhat-rpm-config %endif %if 0%{with seastar} %if 0%{?fedora} || 0%{?rhel} BuildRequires: cryptopp-devel BuildRequires: numactl-devel BuildRequires: protobuf-compiler %endif %if 0%{?suse_version} BuildRequires: libcryptopp-devel BuildRequires: libnuma-devel %endif %endif %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: cryptsetup Requires: e2fsprogs Requires: findutils Requires: grep Requires: logrotate Requires: parted Requires: psmisc Requires: python%{_python_buildid}-requests Requires: python%{_python_buildid}-setuptools Requires: util-linux Requires: xfsprogs Requires: which %if 0%{?fedora} || 0%{?rhel} # 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 %endif %description base Base is the package that includes all the files shared amongst ceph servers %package -n ceph-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%{_python_buildid}-rados = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-rbd = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-cephfs = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-rgw = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-ceph-argparse = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-requests %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-prettytable %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-PrettyTable %endif %if 0%{with libradosstriper} Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} %endif %{?systemd_requires} %if 0%{?suse_version} Requires(pre): pwdutils %endif %description -n ceph-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 mgr Summary: Ceph Manager Daemon %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-bcrypt Requires: python%{_python_buildid}-pecan Requires: python%{_python_buildid}-six %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-cherrypy Requires: python%{_python_buildid}-werkzeug %if 0%{?weak_deps} Recommends: python%{_python_buildid}-saml %endif %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-CherryPy Requires: python%{_python_buildid}-Werkzeug Recommends: python%{_python_buildid}-influxdb %endif %if 0%{?weak_deps} Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-diskprediction-cloud = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release} Recommends: ceph-mgr-ssh = %{_epoch_prefix}%{version}-%{release} Recommends: python%{_python_buildid}-influxdb %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL %else Requires: python%{_python_buildid}-pyOpenSSL %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-grafana-dashboards = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python%{_python_buildid}-cherrypy Requires: python%{_python_buildid}-jwt Requires: python%{_python_buildid}-routes Requires: python%{_python_buildid}-werkzeug %endif %if 0%{?suse_version} Requires: python%{_python_buildid}-CherryPy Requires: python%{_python_buildid}-PyJWT Requires: python%{_python_buildid}-Routes Requires: python%{_python_buildid}-Werkzeug %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL %else Requires: python%{_python_buildid}-pyOpenSSL %endif %description mgr-dashboard ceph-mgr-dashboard is a manager plugin, 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-mgr diskprediction_local plugin BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python%{_python_buildid}-numpy %if 0%{without python2} Requires: python3-scipy %else Requires: python2-scipy %endif %endif %if 0%{?rhel} == 7 Requires: numpy Requires: scipy %endif %description mgr-diskprediction-local ceph-mgr-diskprediction-local is a ceph-mgr plugin that tries to predict disk failures using local algorithms and machine-learning databases. %package mgr-diskprediction-cloud Summary: ceph-mgr diskprediction_cloud plugin BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} %description mgr-diskprediction-cloud ceph-mgr-diskprediction-cloud is a ceph-mgr plugin that tries to predict disk failures using services in the Google cloud. %package mgr-rook BuildArch: noarch Summary: ceph-mgr rook plugin %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-kubernetes %description mgr-rook ceph-mgr-rook is a ceph-mgr plugin for orchestration functions using a Rook backend. %package mgr-k8sevents BuildArch: noarch Summary: Ceph Manager plugin 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%{_python_buildid}-kubernetes %description mgr-k8sevents ceph-mgr-k8sevents is a ceph-mgr plugin that sends every ceph-events to kubernetes' events API %package mgr-ssh Summary: ceph-mgr ssh module BuildArch: noarch %if 0%{?suse_version} Group: System/Filesystems %endif Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} Requires: python%{_python_buildid}-remoto %description mgr-ssh ceph-mgr-ssh is a ceph-mgr module for orchestration functions using direct SSH connections for management operations. %package fuse Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif Requires: fuse Requires: python%{python3_pkgversion} %description fuse FUSE based client for Ceph distributed network file system %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 -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 %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. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons %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 Provides: ceph-test:/usr/bin/ceph-osdomap-tool Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: lvm2 Requires: sudo Requires: libstoragemgmt %description osd ceph-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. %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. %if 0%{with python2} %package -n python-rgw Summary: Python 2 libraries for the RADOS gateway %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Provides: python-rgw = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rgw This package contains Python 2 libraries for interacting with Cephs RADOS gateway. %endif %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} Provides: python3-rgw = %{_epoch_prefix}%{version}-%{release} %if 0%{without python2} Provides: python-rgw = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rgw < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rgw This package contains Python 3 libraries for interacting with Cephs RADOS gateway. %if 0%{with python2} %package -n python-rados Summary: Python 2 libraries for the RADOS object store %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librados2 = %{_epoch_prefix}%{version}-%{release} Provides: python-rados = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rados This package contains Python 2 libraries for interacting with Cephs RADOS object store. %endif %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} Provides: python3-rados = %{_epoch_prefix}%{version}-%{release} %if 0%{without python2} Provides: python-rados = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rados This package contains Python 3 libraries for interacting with Cephs RADOS 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. %if 0%{with python2} %package -n python-rbd Summary: Python 2 libraries for the RADOS block device %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Provides: python-rbd = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rbd This package contains Python 2 libraries for interacting with Cephs RADOS block device. %endif %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} Provides: python3-rbd = %{_epoch_prefix}%{version}-%{release} %if 0%{without python2} Provides: python-rbd = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-rbd < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-rbd This package contains Python 3 libraries for interacting with Cephs RADOS block device. %package -n libcephfs2 Summary: Ceph distributed file system client library %if 0%{?suse_version} Group: System/Libraries %endif Obsoletes: libcephfs1 %if 0%{?rhel} || 0%{?fedora} Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-libcephfs %endif %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-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: 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 Cephs distributed file system. %if 0%{with python2} %package -n python-cephfs Summary: Python 2 libraries for Ceph distributed file system %if 0%{?suse_version} Group: Development/Libraries/Python %endif Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Requires: python-ceph-argparse = %{_epoch_prefix}%{version}-%{release} Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-cephfs This package contains Python 2 libraries for interacting with Cephs distributed file system. %endif %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} Provides: python3-cephfs = %{_epoch_prefix}%{version}-%{release} %if 0%{without python2} Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release} Obsoletes: python-cephfs < %{_epoch_prefix}%{version}-%{release} %endif %description -n python%{python3_pkgversion}-cephfs This package contains Python 3 libraries for interacting with Cephs distributed file system. %if 0%{with python2} %package -n python-ceph-argparse Summary: Python 2 utility libraries for Ceph CLI %if 0%{?suse_version} Group: Development/Libraries/Python %endif %description -n python-ceph-argparse This package contains types and routines for Python 2 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. %endif %package -n python%{python3_pkgversion}-ceph-argparse Summary: Python 3 utility libraries for Ceph CLI %if 0%{?suse_version} Group: Development/Libraries/Python %endif Provides: python3-ceph-argparse = %{_epoch_prefix}%{version}-%{release} %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. %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 %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 %if 0%{with python2} %package -n python-ceph-compat Summary: Compatibility package for Cephs python libraries %if 0%{?suse_version} Group: Development/Libraries/Python %endif Obsoletes: python-ceph Requires: python-rados = %{_epoch_prefix}%{version}-%{release} Requires: python-rbd = %{_epoch_prefix}%{version}-%{release} Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release} Requires: python-rgw = %{_epoch_prefix}%{version}-%{release} Provides: python-ceph %description -n python-ceph-compat This is a compatibility package to accommodate python-ceph split into python-rados, python-rbd, python-rgw and python-cephfs. Packages still depending on python-ceph should be fixed to depend on python-rados, python-rbd, python-rgw or python-cephfs instead. %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. %if 0%{?suse_version} %package prometheus-alerts Summary: Prometheus alerts for a Ceph deplyoment BuildArch: noarch Group: System/Monitoring %description prometheus-alerts This package provides Ceph’s default alerts for Prometheus. %endif ################################################################################# # common ################################################################################# %prep %autosetup -p1 # Apply the rdopkg-tar patches %autosetup -T -D -b 1 # Remove the old dashboard dist rm -rf src/pybind/mgr/dashboard/frontend/dist # Apply new dashboard dist %autosetup -T -D -a 2 # spawn submodule: tar xzf %{SOURCE100} # Rewrite .git_version file. echo %{commit} > src/.git_version echo v%{version}-%{release} >> src/.git_version %build # LTO can be enabled as soon as the following GCC bug is fixed: # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200 %define _lto_cflags %{nil} %if 0%{?rhel} == 7 . /opt/rh/devtoolset-8/enable %endif %if 0%{with cephfs_java} # Find jni.h for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do [ -d $i ] && java_inc="$java_inc -I$i" done %endif %if 0%{?suse_version} # the following setting fixed an OOM condition we once encountered in the OBS RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export CPPFLAGS="$java_inc" export CFLAGS="$RPM_OPT_FLAGS" export CXXFLAGS="$RPM_OPT_FLAGS" export LDFLAGS="$RPM_LD_FLAGS" # Parallel build settings ... CEPH_MFLAGS_JOBS="%{?_smp_mflags}" CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//') %if 0%{?__isa_bits} == 32 # 32-bit builds can use 3G memory max, which is not enough even for -j2 CEPH_SMP_NCPUS="1" %endif # do not eat all memory echo "Available memory:" free -h echo "System limits:" ulimit -a if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then mem_per_process=2700 max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p") max_jobs="$(($max_mem / $mem_per_process))" test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits" test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits" fi export CEPH_SMP_NCPUS export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS" env | sort mkdir build cd build %if 0%{?rhel} == 7 CMAKE=cmake3 %else CMAKE=cmake %endif ${CMAKE} .. \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \ -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \ -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \ -DCMAKE_INSTALL_MANDIR=%{_mandir} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ -DWITH_MANPAGE=ON \ -DWITH_PYTHON3=%{python3_version} \ -DWITH_MGR_DASHBOARD_FRONTEND=OFF \ %if %{with python2} -DWITH_PYTHON2=ON \ %else -DWITH_PYTHON2=OFF \ -DMGR_PYTHON_VERSION=3 \ %endif %if 0%{without ceph_test_package} -DWITH_TESTS=OFF \ %endif %if 0%{with cephfs_java} -DWITH_CEPHFS_JAVA=ON \ %endif %if 0%{with selinux} -DWITH_SELINUX=ON \ %endif %if %{with lttng} -DWITH_LTTNG=ON \ -DWITH_BABELTRACE=ON \ %else -DWITH_LTTNG=OFF \ -DWITH_BABELTRACE=OFF \ %endif $CEPH_EXTRA_CMAKE_ARGS \ %if 0%{with ocf} -DWITH_OCF=ON \ %endif %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64 -DWITH_BOOST_CONTEXT=ON \ %else -DWITH_BOOST_CONTEXT=OFF \ %endif %if 0%{with cephfs_shell} -DWITH_CEPHFS_SHELL=ON \ %endif %if 0%{with libradosstriper} -DWITH_LIBRADOSSTRIPER=ON \ %else -DWITH_LIBRADOSSTRIPER=OFF \ %endif %if 0%{with amqp_endpoint} -DWITH_RADOSGW_AMQP_ENDPOINT=ON \ %else -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \ %endif %if 0%{with kafka_endpoint} -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \ %else -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \ %endif -DBOOST_J=$CEPH_SMP_NCPUS \ -DWITH_GRAFANA=ON \ -DWITH_SPDK=OFF make "$CEPH_MFLAGS_JOBS" %if 0%{with make_check} %check # run in-tree unittests cd build ctest "$CEPH_MFLAGS_JOBS" %endif %install pushd build make DESTDIR=%{buildroot} install # we have dropped sysvinit bits rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph popd 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}%{_libexecdir}/systemd/system-preset/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 # firewall templates and /sbin/mount.ceph symlink %if 0%{?suse_version} 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 0600 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl #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 %if 0%{?suse_version} # create __pycache__ directories and their contents %py3_compile %{buildroot}%{python3_sitelib} # prometheus alerts install -m 644 -D monitoring/prometheus/alerts/ceph_default_alerts.yml %{buildroot}/etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml # hardlink duplicate files under /usr to save space %fdupes %{buildroot}%{_prefix} %endif %if 0%{?rhel} == 8 %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib} %endif %clean rm -rf %{buildroot} ################################################################################# # files and systemd scriptlets ################################################################################# %files %files base %{_bindir}/ceph-crash %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool %{_bindir}/ceph-kvstore-tool %{_bindir}/ceph-run %{_libexecdir}/systemd/system-preset/50-ceph.preset %{_sbindir}/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/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* %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 %if 0%{with python2} %dir %{python_sitelib}/ceph_volume %{python_sitelib}/ceph_volume/* %{python_sitelib}/ceph_volume-* %else %dir %{python3_sitelib}/ceph_volume %{python3_sitelib}/ceph_volume/* %{python3_sitelib}/ceph_volume-* %endif %{_mandir}/man8/ceph-deploy.8* %{_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 %post base /sbin/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 %preun base %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 %postun base /sbin/ldconfig %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph.target %endif 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 fi %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}/rados %{_bindir}/radosgw-admin %{_bindir}/rbd %{_bindir}/rbd-replay %{_bindir}/rbd-replay-many %{_bindir}/rbdmap %{_sbindir}/mount.ceph %if 0%{?suse_version} /sbin/mount.ceph %endif %if %{with lttng} %{_bindir}/rbd-replay-prep %endif %{_bindir}/ceph-post-file %{_tmpfilesdir}/ceph-common.conf %{_mandir}/man8/ceph-authtool.8* %{_mandir}/man8/ceph-conf.8* %{_mandir}/man8/ceph-dencoder.8* %{_mandir}/man8/ceph-rbdnamer.8* %{_mandir}/man8/ceph-syn.8* %{_mandir}/man8/ceph-post-file.8* %{_mandir}/man8/ceph.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* %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/ %pre common CEPH_GROUP_ID=167 CEPH_USER_ID=167 %if 0%{?rhel} || 0%{?fedora} /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 %postun common # Package removal cleanup if [ "$1" -eq "0" ] ; then rm -rf %{_localstatedir}/log/ceph rm -rf %{_sysconfdir}/ceph fi %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 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mds@\*.service ceph-mds.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mds@\*.service ceph-mds.target %endif 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/alerts %{_datadir}/ceph/mgr/ansible %{_datadir}/ceph/mgr/balancer %{_datadir}/ceph/mgr/crash %{_datadir}/ceph/mgr/deepsea %{_datadir}/ceph/mgr/devicehealth %{_datadir}/ceph/mgr/influx %{_datadir}/ceph/mgr/insights %{_datadir}/ceph/mgr/iostat %{_datadir}/ceph/mgr/localpool %{_datadir}/ceph/mgr/mgr_module.* %{_datadir}/ceph/mgr/mgr_util.* %{_datadir}/ceph/mgr/orchestrator_cli %{_datadir}/ceph/mgr/orchestrator.* %{_datadir}/ceph/mgr/osd_perf_query %{_datadir}/ceph/mgr/pg_autoscaler %{_datadir}/ceph/mgr/progress %{_datadir}/ceph/mgr/prometheus %{_datadir}/ceph/mgr/rbd_support %{_datadir}/ceph/mgr/restful %{_datadir}/ceph/mgr/selftest %{_datadir}/ceph/mgr/status %{_datadir}/ceph/mgr/telegraf %{_datadir}/ceph/mgr/telemetry %{_datadir}/ceph/mgr/test_orchestrator %{_datadir}/ceph/mgr/volumes %{_datadir}/ceph/mgr/zabbix %{_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 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mgr@\*.service ceph-mgr.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mgr@\*.service ceph-mgr.target %endif 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 %post mgr-dashboard if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-dashboard if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-diskprediction-local %{_datadir}/ceph/mgr/diskprediction_local %post mgr-diskprediction-local if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-diskprediction-local if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-diskprediction-cloud %{_datadir}/ceph/mgr/diskprediction_cloud %post mgr-diskprediction-cloud if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-diskprediction-cloud if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-rook %{_datadir}/ceph/mgr/rook %post mgr-rook if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-rook if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-k8sevents %{_datadir}/ceph/mgr/k8sevents %post mgr-k8sevents if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-k8sevents if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %files mgr-ssh %{_datadir}/ceph/mgr/ssh %post mgr-ssh if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %postun mgr-ssh if [ $1 -eq 1 ] ; then /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || : fi %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 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-mon@\*.service ceph-mon.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-mon@\*.service ceph-mon.target %endif 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 fuse %{_bindir}/ceph-fuse %{_mandir}/man8/ceph-fuse.8* %{_sbindir}/mount.fuse.ceph %{_unitdir}/ceph-fuse@.service %{_unitdir}/ceph-fuse.target %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 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target %endif 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 -n rbd-nbd %{_bindir}/rbd-nbd %{_mandir}/man8/rbd-nbd.8* %files radosgw %{_bindir}/ceph-diff-sorted %{_bindir}/radosgw %{_bindir}/radosgw-token %{_bindir}/radosgw-es %{_bindir}/radosgw-object-expirer %{_bindir}/rgw-orphan-list %{_mandir}/man8/radosgw.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 %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-radosgw@\*.service ceph-radosgw.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-radosgw@\*.service ceph-radosgw.target %endif 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-bluestore-tool %{_bindir}/ceph-objectstore-tool %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-osd %{_libexecdir}/ceph/ceph-osd-prestart.sh %{_sbindir}/ceph-volume %{_sbindir}/ceph-volume-systemd %{_mandir}/man8/ceph-clsinfo.8* %{_mandir}/man8/ceph-osd.8* %{_mandir}/man8/ceph-bluestore-tool.8* %{_mandir}/man8/ceph-volume.8* %{_mandir}/man8/ceph-volume-systemd.8* %{_unitdir}/ceph-osd@.service %{_unitdir}/ceph-osd.target %{_unitdir}/ceph-volume@.service %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd %config(noreplace) %{_sysctldir}/90-ceph-osd.conf %{_sysconfdir}/sudoers.d/ceph-osd-smartctl %post osd %if 0%{?suse_version} if [ $1 -eq 1 ] ; then /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || : fi %endif %if 0%{?fedora} || 0%{?rhel} %systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif if [ $1 -eq 1 ] ; then /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || : fi %if 0%{?sysctl_apply} %sysctl_apply 90-ceph-osd.conf %else /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || : %endif %preun osd %if 0%{?suse_version} %service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %postun osd %if 0%{?suse_version} DISABLE_RESTART_ON_UPDATE="yes" %service_del_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif %if 0%{?fedora} || 0%{?rhel} %systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target %endif 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 %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 %{_libdir}/librados.so.* %dir %{_libdir}/ceph %{_libdir}/ceph/libceph-common.so.* %if %{with lttng} %{_libdir}/librados_tp.so.* %endif %dir %{_sysconfdir}/ceph %post -n librados2 -p /sbin/ldconfig %postun -n librados2 -p /sbin/ldconfig %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 %if 0%{with python2} %files -n python-rados %{python_sitearch}/rados.so %{python_sitearch}/rados-*.egg-info %endif %files -n python%{python3_pkgversion}-rados %{python3_sitearch}/rados.cpython*.so %{python3_sitearch}/rados-*.egg-info %if 0%{with libradosstriper} %files -n libradosstriper1 %{_libdir}/libradosstriper.so.* %post -n libradosstriper1 -p /sbin/ldconfig %postun -n libradosstriper1 -p /sbin/ldconfig %files -n libradosstriper-devel %dir %{_includedir}/radosstriper %{_includedir}/radosstriper/libradosstriper.h %{_includedir}/radosstriper/libradosstriper.hpp %{_libdir}/libradosstriper.so %endif %files -n librbd1 %{_libdir}/librbd.so.* %if %{with lttng} %{_libdir}/librbd_tp.so.* %endif %post -n librbd1 -p /sbin/ldconfig %postun -n librbd1 -p /sbin/ldconfig %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.* %{_libdir}/librgw_admin_user.so.* %if %{with lttng} %{_libdir}/librgw_op_tp.so.* %{_libdir}/librgw_rados_tp.so.* %endif %post -n librgw2 -p /sbin/ldconfig %postun -n librgw2 -p /sbin/ldconfig %files -n librgw-devel %dir %{_includedir}/rados %{_includedir}/rados/librgw.h %{_includedir}/rados/librgw_admin_user.h %{_includedir}/rados/rgw_file.h %{_libdir}/librgw.so %{_libdir}/librgw_admin_user.so %if %{with lttng} %{_libdir}/librgw_op_tp.so %{_libdir}/librgw_rados_tp.so %endif %if 0%{with python2} %files -n python-rgw %{python_sitearch}/rgw.so %{python_sitearch}/rgw-*.egg-info %endif %files -n python%{python3_pkgversion}-rgw %{python3_sitearch}/rgw.cpython*.so %{python3_sitearch}/rgw-*.egg-info %if 0%{with python2} %files -n python-rbd %{python_sitearch}/rbd.so %{python_sitearch}/rbd-*.egg-info %endif %files -n python%{python3_pkgversion}-rbd %{python3_sitearch}/rbd.cpython*.so %{python3_sitearch}/rbd-*.egg-info %files -n libcephfs2 %{_libdir}/libcephfs.so.* %dir %{_sysconfdir}/ceph %post -n libcephfs2 -p /sbin/ldconfig %postun -n libcephfs2 -p /sbin/ldconfig %files -n libcephfs-devel %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %{_includedir}/cephfs/ceph_statx.h %{_libdir}/libcephfs.so %if 0%{with python2} %files -n python-cephfs %{python_sitearch}/cephfs.so %{python_sitearch}/cephfs-*.egg-info %{python_sitelib}/ceph_volume_client.py* %endif %files -n python%{python3_pkgversion}-cephfs %{python3_sitearch}/cephfs.cpython*.so %{python3_sitearch}/cephfs-*.egg-info %{python3_sitelib}/ceph_volume_client.py %{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py* %if 0%{with python2} %files -n python-ceph-argparse %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* %endif %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* %if 0%{with cephfs_shell} %files -n cephfs-shell %{python3_sitelib}/cephfs_shell-*.egg-info %{_bindir}/cephfs-shell %endif %if 0%{with ceph_test_package} %files -n ceph-test %{_bindir}/ceph-client-debug %{_bindir}/ceph_bench_log %{_bindir}/ceph_kvstorebench %{_bindir}/ceph_multi_stress_watch %{_bindir}/ceph_erasure_code %{_bindir}/ceph_erasure_code_benchmark %{_bindir}/ceph_omapbench %{_bindir}/ceph_objectstore_bench %{_bindir}/ceph_perf_objectstore %{_bindir}/ceph_perf_local %{_bindir}/ceph_perf_msgr_client %{_bindir}/ceph_perf_msgr_server %{_bindir}/ceph_psim %{_bindir}/ceph_radosacl %{_bindir}/ceph_rgw_jsonparser %{_bindir}/ceph_rgw_multiparser %{_bindir}/ceph_scratchtool %{_bindir}/ceph_scratchtoolpp %{_bindir}/ceph_test_* %{_bindir}/ceph-coverage %{_bindir}/ceph-debugpack %{_bindir}/cephdeduptool %{_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.* %post -n libcephfs_jni1 -p /sbin/ldconfig %postun -n libcephfs_jni1 -p /sbin/ldconfig %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 # 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 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 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 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : 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 # 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 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1 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 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || : fi fi exit 0 %endif # with selinux %if 0%{with python2} %files -n python-ceph-compat # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. %endif %files grafana-dashboards %if 0%{?suse_version} %attr(0755,root,root) %dir %{_sysconfdir}/grafana %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard %else %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard %endif %config %{_sysconfdir}/grafana/dashboards/ceph-dashboard/* %doc monitoring/grafana/dashboards/README %doc monitoring/grafana/README.md %if 0%{?suse_version} %files prometheus-alerts %dir /etc/prometheus/SUSE/ %dir /etc/prometheus/SUSE/default_rules/ %config /etc/prometheus/SUSE/default_rules/ceph_default_alerts.yml %endif %changelog * Fri Jul 10 2020 Ceph Jenkins 2:14.2.8-81 - selinux: add new amqp and soundd types to "require" section (rhbz#1854083) * Thu Jul 09 2020 Ceph Jenkins 2:14.2.8-80 - Merge pull request #35983 from ceph/kalebskeithley-1854083-1 (rhbz#1854083) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-79 - rgw: fix shutdown crash in RGWAsyncReadMDLogEntries (rhbz#1840858) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-78 - rgw: reject response headers w/illegal characters (rhbz#1813284) - rgw: reject unauthenticated response-header actions (rhbz#1813284) * Tue Jun 23 2020 Ceph Jenkins 2:14.2.8-77 - rgw/notifications: fix zero size in notifications (rhbz#1833685) - rgw/url: fix commensts from review #34717 (rhbz#1840730) - src/rgw/rgw_url.cc, also cope with a vhost appended to a AMQP-URL (rhbz#1840730) * Mon Jun 22 2020 Ceph Jenkins 2:14.2.8-76 - mgr/volumes: Add snapshot info command (rhbz#1838931) * Mon Jun 22 2020 Ceph Jenkins 2:14.2.8-75 - rgw: filter prefix should be used when generating expiration header. The rule prefix is set with old version lifecycle configure. While filter prefix is the latest version which AWS suggests users use. (rhbz#1833309) * Fri Jun 19 2020 Ceph Jenkins 2:14.2.8-74 - cls/queue: Reverting code change that replaced cls_cxx_write_zero with cls_cxx_write2 in queue_remove_entries. (rhbz#1837206) * Fri Jun 19 2020 Ceph Jenkins 2:14.2.8-73 - rgw: sanitize newlines in s3 CORSConfiguration's ExposeHeader (rhbz#1841204) * Thu Jun 18 2020 Ceph Jenkins 2:14.2.8-72 - rgw/rgw_bucket: clear tenant string for non tenanted buckets in rgw_bucket_parse_bucket_key function. (rhbz#1830330) * Wed Jun 17 2020 Ceph Jenkins 2:14.2.8-71 - rgw: attempt retries after write race for bucket reshard bucketinfo update (rhbz#1835777) * Wed Jun 17 2020 Ceph Jenkins 2:14.2.8-70 - selinux: Allow getattr access to /proc/kcore (rhbz#1829758) - selinux: Allow ceph-mgr access to httpd dir (rhbz#1828232) * Tue Jun 16 2020 Thomas Serlin - 2:14.2.8-69 - spec: do not compile with SPDK * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-68 - mon/OSDMonitor: ensure lec only accounts for up osds (rhbz#1829646) - qa/standalone: exercise osdmon's last epoch clean (rhbz#1829646) - mon/OSDMonitor: dump last epoch clean info on report (rhbz#1829646) - mgr/DaemonServer: add explicit check that acting matches for merge (rhbz#1810949) - suites/rados/thrash: add rados-high-concurrency (rhbz#1839216) - PrimaryLogPG: add assert that we aren't trimming past last_update_ondisk (rhbz#1839216) - qa/osd-recovery: pass osd_pg_log_trim_min = 0 to exercise short pg logs (rhbz#1839216) - qa/short_pg_log: pass osd_pg_log_trim_min = 0 to exercise short pg logs (rhbz#1839216) - osd/PeeringState: do not trim pg log past last_update_ondisk (rhbz#1839216) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-67 - common/blkdev: only pay attention to first 2 bits of smartctl return code (rhbz#1837645) - common/blkdev: include stdout and stderr on join error (rhbz#1837645) - common/blkdev: fix syntax of error message (rhbz#1837645) - common/blkdev: fix smartctl output in error path (rhbz#1837645) - common/blkdev: include bad json from smartctl when unparseable (rhbz#1837645) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-66 - mgr/volumes: Create subvolume with isolated rados namespace (rhbz#1838996) - mgr/volumes: Fix subvolume create idempotency (rhbz#1838959) * Thu Jun 11 2020 Ceph Jenkins 2:14.2.8-65 - nautilus: mgr/volumes: Add interface to get subvolume metadata (rhbz#1835216) - bash_completion: Do not auto complete obsolete and hidden cmds (rhbz#1819667) * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-64 - mgr/k8sevents:sanitise kubernetes events (rhbz#1785445) * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-63 - Update patches * Wed Jun 10 2020 Ceph Jenkins 2:14.2.8-62 - rgw: stop realm reloader before store shutdown (rhbz#1845658) * Mon Jun 08 2020 Ceph Jenkins 2:14.2.8-61 - rgwlc: wait for WorkQ threads on shutdown (rhbz#1834697) * Wed Jun 03 2020 Ceph Jenkins 2:14.2.8-60 - cmake: Improve test for 16-byte atomic support on IBM Z (rhbz#1756077) * Wed May 27 2020 Ceph Jenkins 2:14.2.8-59 - cls/rgw_gc: Clearing off urgent data in bufferlist, before encoding the updated one. (rhbz#1837206) * Tue May 26 2020 Ceph Jenkins 2:14.2.8-58 - cls/queue: Replacing cls_cxx_write_zero with cls_cxx_write2 to zero out entries that have been removed from the queue in queue_remove_entries. (rhbz#1837206) * Wed May 20 2020 Ceph Jenkins 2:14.2.8-57 - cls/ queue and rgw_gc: debug messages. (rhbz#1837206) * Wed May 13 2020 Ceph Jenkins 2:14.2.8-56 - cls/queue: Populating marker correctly in queue_list_entries, when data is split between two chunks. (rhbz#1834790) * Fri May 08 2020 Ceph Jenkins 2:14.2.8-55 - rgw/notifications: version id was not sent in versioned buckets (rhbz#1814380) * Fri May 08 2020 Ceph Jenkins 2:14.2.8-54 - cls/rgw_gc: Fixing the iterator used to access urgent data map in xattr in cls_rgw_gc. The incorrect iterator caused a crash in osd. (rhbz#1833063) * Wed Apr 29 2020 Ceph Jenkins 2:14.2.8-53 - rgw: lc: restore unordered listing (rhbz#1827799) * Tue Apr 28 2020 Ceph Jenkins 2:14.2.8-52 - rgw: lc: cls_rgw_lc_list_entries_op struc_v off-by-one (rhbz#1827789) * Tue Apr 28 2020 Ceph Jenkins 2:14.2.8-51 - rgwlc: make invalid OpRule, lc_op_ctx accesses impossible (rhbz#1827799) * Mon Apr 27 2020 Ceph Jenkins 2:14.2.8-50 - rgw: nfs: disable gc, lc, quota, and sync threads by default (rhbz#1827781) * Fri Apr 24 2020 Ceph Jenkins 2:14.2.8-49 - Update patches * Fri Apr 24 2020 Ceph Jenkins 2:14.2.8-48 - rgwlc: properly accumulate in RGWLC::list_lc_progress() (rhbz#1827789) * Wed Apr 22 2020 Ceph Jenkins 2:14.2.8-47 - ceph-volume: lvm.get_device_vgs: don't create VolumeGroup with empty name (rhbz#1822153) - ceph-volume: don't create Volume/VolumeGroup objects with empty name (rhbz#1822153) - ceph-volume: get_device_lvs filter by provided prefix (rhbz#1822153) - ceph-volume: lvm: get_device_vgs() filter by provided prefix (rhbz#1822153) * Tue Apr 21 2020 Ceph Jenkins 2:14.2.8-46 - rgwlc: LCOpAction MUST NOT acc. OCObjLister from WorkQ (rhbz#1825827) * Mon Apr 20 2020 Ceph Jenkins 2:14.2.8-45 - mgr/dashboard: Fix error when listing RBD while deleting or moving (rhbz#1825988) * Mon Apr 20 2020 Ceph Jenkins 2:14.2.8-44 - mgr/dashboard: 'destroyed' view in CRUSH map viewer (rhbz#1788917) * Sun Apr 19 2020 Ceph Jenkins 2:14.2.8-43 - rgw: adding code for policy evaluation for ops like getbucketversioning, putbucketversioning etc (rhbz#1825104) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-42 - mgr: synchronize ClusterState's health and mon_status. (rhbz#1816492) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-41 - rgw: Correcting pool name for oidc provider for older versions of osd. (rhbz#127408) * Fri Apr 17 2020 Ceph Jenkins 2:14.2.8-40 - rgw: iam: add all http args to req_info (rhbz#1274084) - rgw: fix nullptr deref at debug-rgw==10 (rhbz#1778217) * Thu Apr 16 2020 Ceph Jenkins 2:14.2.8-39 - msg/async: perform recv reset immediately if called inside EC. (rhbz#1823975) - msg/async: reset the V1's session_security in proper EventCenter. (rhbz#1823975) - msg/async: mark down local_connection before draining the stack. (rhbz#1823975) - cmake: fix libtsan detection (rhbz#1823975) - cmake: workaround of false alarm from ubsan (rhbz#1823975) - test: librados startup/shutdown racer test (rhbz#1823975) - msg/async: reset the TX session handler in proper EventCenter. (rhbz#1823975) - msg/async: rename outcoming_bl -> outgoing_bl in AsyncConnection. (rhbz#1823975) * Wed Apr 15 2020 Ceph Jenkins 2:14.2.8-38 - mgr/dashboard: use FQDN for failover redirection (rhbz#1820560) * Mon Apr 13 2020 Ceph Jenkins 2:14.2.8-37 - Update patches * Mon Apr 13 2020 Thomas Serlin - 2:14.2.8-36 - spec: bump release for weak_deps and python3-saml * Thu Apr 09 2020 Ceph Jenkins 2:14.2.8-35 - rgwlc: re-hook RGWRados::process_lc() (rhbz#1274084) * Thu Apr 09 2020 Ceph Jenkins 2:14.2.8-34 - rgw:sts: oidc revisions, backport adjustments (rhbz#1274084) - rgw: adds code for role session to be used an ARN. (rhbz#1274084) - rgw: adding new iam ops for iam oidc provider to correct unittest faliure. (rhbz#1274084) - rgw: modifying documentation to include explanation of open id connect provider related REST APIs and removing references to token introspection for validating incoming web token. (rhbz#1274084) - rgw: adds a commom method to remove prefix(www, http and https) from a url. (rhbz#1274084) - rgw: adds code to check for client id and cert thumbprint while validating incoming web token in AssumeRoleWithWebIdentity. (rhbz#1274084) - rgw: Added code for offline OpenId Connect/ OAuth 2.0 tokens if the token is a JWT. (rhbz#1274084) - rgw: Adding jwt-cpp header only library for JWT validation. https://github.com/Thalhammer/jwt-cpp (rhbz#1274084) - rgw: adds REST APIs for OpenID connect providers manipulation. (rhbz#1274084) * Wed Apr 08 2020 Ceph Jenkins 2:14.2.8-33 - common/options: Disable bluefs_buffered_io by default again. (rhbz#1802199) * Wed Apr 08 2020 Ceph Jenkins 2:14.2.8-32 - rgw/cloud-sync: Handle BucketAlreadyExists error (rhbz#1821784) - rpm: add python3-saml as install dependency (rhbz#1820272) * Tue Apr 07 2020 Ceph Jenkins 2:14.2.8-31 - monitoring: Fix pool capacity incorrect (rhbz#1808046) * Sat Apr 04 2020 Ceph Jenkins 2:14.2.8-30 - Update patches * Thu Apr 02 2020 Ceph Jenkins 2:14.2.8-29 - rgw: fixup vault mock signature (rhbz#1777064) - rgw: improvements to SSE-KMS with Vault (rhbz#1777064) - rgw: Vault's Transit Secrets updates and docs (rhbz#1777064) * Wed Apr 01 2020 Ceph Jenkins 2:14.2.8-28 - mgr/dashboard: fix error when enabling SSO with cert. file (rhbz#1814806) * Fri Mar 27 2020 Ceph Jenkins 2:14.2.8-27 - Update patches * Fri Mar 27 2020 Ceph Jenkins 2:14.2.8-26 - Update patches * Wed Mar 25 2020 Ceph Jenkins 2:14.2.8-25 - Update patches * Wed Mar 25 2020 Ceph Jenkins 2:14.2.8-24 - rgw: Fix dynamic resharding not working for empty zonegroup in period (rhbz#1817069) * Tue Mar 24 2020 Ceph Jenkins 2:14.2.8-23 - Update patches * Tue Mar 24 2020 Ceph Jenkins 2:14.2.8-22 - rgwlc: permit per-bucket thread parallelism (rhbz#1794715) - rgwlc: enable thread-parallelism in RGWLC (rhbz#1794715) * Mon Mar 23 2020 Ceph Jenkins 2:14.2.8-21 - rgw: increase log level for same or older period pull msg (rhbz#1795406) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-20 - mgr/pg_autoscaler: fix division by zero (rhbz#1815579) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-19 - PendingReleaseNotes: mention target_size_ratio change (rhbz#1815579) - doc: update autoscaler docs for target ratio (rhbz#1815579) - mgr/pg_autoscaler: include effective target ratio in status (rhbz#1815579) - mgr/pg_autoscaler: add warning when target bytes and ratio are both set (rhbz#1815579) - mgr/pg_autoscaler: remove target ratio warning (rhbz#1815579) - qa: use ratios >1 in pg_autoscaler test (rhbz#1815579) - mgr/pg_autoscaler: treat target ratios as weights (rhbz#1815579) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-18 - mgr/dashboard: Pool read/write OPS shows too many decimal places Fixes: https://tracker.ceph.com/issues/39714 (rhbz#1810948) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-17 - Update patches * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-16 - mgr/dashboard: Pool read/write OPS shows too many decimal places Fixes: https://tracker.ceph.com/issues/39714 (rhbz#1810948) - mgr/dashboard: 'destroyed' view in CRUSH map viewer (rhbz#1788917) - mgr/dashboard: UI fixes Fixes: https://tracker.ceph.com/issues/42914 (rhbz#1765530) - mgr/dashboard: Fixes rbd image 'purge trash' button & modal text (rhbz#1764431) - mgr: Add get_rates_from_data to mgr_util.py (rhbz#1784405) * Fri Mar 20 2020 Ceph Jenkins 2:14.2.8-15 - doc: document `clone cancel` command (rhbz#1767144) - test: add `clone cancel` tests (rhbz#1767144) - mgr/volumes: introduce "clone cancel" volume command (rhbz#1767144) - mgr/volumes: allow canceling a single asynchronous job for a volume (rhbz#1767144) - mgr/volumes: helper for looking up a clone entry index (rhbz#1767144) - mgr/volumes: periodically check if clone operations should be canceled (rhbz#1767144) - mgr/volumes: periodically check if copy operations should be canceled (rhbz#1767144) - mgr/volumes: introduce 'canceled' state in clone op state machine (rhbz#1767144) - mgr/volumes: OpSmException.error -> OpSmException.errno (rhbz#1767144) - mgr/volumes: remove unneeded assignment to `NoneType` (rhbz#1767144) - mgr/volumes: add missing OpSmException import (rhbz#1767144) - mgr/volumes: add missing error code (rhbz#1767144) - mgr/volumes: remove stray return (rhbz#1767144) - mgr/volumes: fixup format string args (rhbz#1767144) - mgr/volumes: add missing `mgr` param (rhbz#1767144) - mgr/volumes: assert self.fs (rhbz#1767144) - mgr/volumes: fixup threading.Timer import (rhbz#1767144) - mgr/volumes: fix positional str formatting (rhbz#1767144) - mgr/volumes: place getters and setters next to each other (rhbz#1767144) - mgr/volumes: reverse params passed to `isinstace()` (rhbz#1767144) - mgr/volumes: fix arg typo '.' -> ',' (rhbz#1767144) - mgr/volumes: `threading.Event.isSet` no longer exists in py3 (rhbz#1767144) - mgr/volumes: assert JobThread class (rhbz#1767144) - mgr/volumes: import VolumeException (rhbz#1767144) - mgr/volumes: use `SafeConfigParser` with py2 (rhbz#1767144) - mgr/volumes: use python version during configparser import (rhbz#1767144) - mgr/volumes: import errno (rhbz#1767144) - mgr/volumes: type convert uid and gid to int (rhbz#1767144) - qa: allow keeping sudo in command arguments (rhbz#1767144) - qa: make execution abortion optional for command ran through run_shell() (rhbz#1767144) - test: add test_statx for new statx() (rhbz#1767144) - client: add statx in cephfs.pyx (rhbz#1767144) - pybind/cephfs: define variable for hexcode used in stat() (rhbz#1767144) - test_volumes: fix _verify_clone_attrs call (rhbz#1767144) - doc: update clone section for mgr/volumes w/ attr synchronization changes (rhbz#1767144) - doc: add mgr/volumes clone commands (rhbz#1767144) - doc: update '--force' flag to be precise (rhbz#1767144) - doc: list FS subvolumes, subvolume groups and their snapshots (rhbz#1767144) - test: revert to default mount state in test_cephfs:test_mount_root() (rhbz#1767144) - test: add test for verifying inode attrbiutes sync on clone (rhbz#1767144) - mgr/volumes: synchronize inode attributes for cloned subvolumes (rhbz#1767144) - pybind/cephfs: pybind calls for changing inode timestamps (rhbz#1767144) - pybind/cephfs: pybind call for changing ownership for symlinks (rhbz#1767144) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-14 - rgw: fix loop problem with swift stat on account. (rhbz#1815261) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-13 - rgw: allow protocol bucket listing default max to override config max (rhbz#1815239) - rgw: allow enforcing of maximum requested in listing when possible (rhbz#1815239) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-12 - rgw: the 'bucket radoslist' admin subcommand should use ordered bucket listing (rhbz#1815211) - rgw: rgw-orphan-list script does not work correctly on all linux dists (rhbz#1815211) - rgw: add tooling to support rgw-orphan-list (rhbz#1815211) - rgw: updates and fixes to `radsogw-admin radoslist` subcommand (rhbz#1815211) - rgw: radosgw-admin radoslist subcommand doesn't list empty objects (rhbz#1815211) - rgw: add logging for looping checks (rhbz#1815211) - rgw: prevent slo and dlo loops in listing (rhbz#1815211) - rgw: fix bug with output on copied multipart objects (rhbz#1815211) - rgw: add support for swift dlo/slo with `radosgw-admin bucket radoslist` (rhbz#1815211) - rgw: fix bugs with `radosgw-admin bucket radoslist` (rhbz#1815211) - rgw: add radosgw-admin subcommand "bucket radoslist" (rhbz#1815211) * Thu Mar 19 2020 Ceph Jenkins 2:14.2.8-11 - test: query using mds id, not rank (rhbz#1559026) - mgr: re-enable mds `scrub status` info in ceph status (rhbz#1559026) - mon: filter out ceph normal ceph entity types when dumping service metadata (rhbz#1559026) - mgr: filter out normal ceph services when processing service map (rhbz#1559026) - mgr: helper function to check if a service is a normal ceph service (rhbz#1559026) - mds: establish session with mgr only after added to FSMap (rhbz#1559026) - mds: do not register as a service daemon (rhbz#1559026) - mds: do not try to diagnose cause of MDSMap removal (rhbz#1559026) - mds: fix handling of initial MDS states (rhbz#1559026) - mds: remove unnecessary const qualifier (rhbz#1559026) - mds: cleanup type decl and map iteration (rhbz#1559026) - mds: define stream operator for mds_info_t (rhbz#1559026) - mds/MDSRank: report state to mgr as mds id, not rank (rhbz#1559026) - mgr: missing lock release in DaemonServer::handle_report() (rhbz#1559026) - mgr/ServiceMap: use plain gid (rhbz#1559026) - doc: document scrub summary in ceph status output (rhbz#1559026) - test: extend scrub control test to validate mds task status (rhbz#1559026) - mds: send scrub state changes to cluster log. (rhbz#1559026) - mds: periodically sent mds scrub status to ceph manager (rhbz#1559026) - mgr, mon: allow normal ceph services to register with manager (rhbz#1559026) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-10 - mds: fix use-after-free in Migrater (rhbz#1809242) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-9 - mgr/dashboard: remove 'config-opt: read' perm. from system roles. (rhbz#1785580) - mgr/dashboard: NoRebalance flag is added to the Dashboard (rhbz#1798153) - mgr/dashboard: show correct RGW user 'system' info (rhbz#1785646) - mgr/dashboard: Use booleanText pipe (rhbz#1785646) - mgr/dashboard: Updated the version from 4.0 to 4.1 (rhbz#1810551) - mgr/dashboard: do not show API keys if user has only read-only privileges. (rhbz#1794713) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-8 - qa/suites/rados/singleton/all/thrash-eio: whitelist 'slow request' (rhbz#1807184) - qa: Whitelist 'slow request' within a bunch of tests (rhbz#1807184) - qa/suites/rados/singleton/all/lost-unfound*: whitelist SLOW_OPS (rhbz#1807184) - qa/suites/rados/multimon: whitelist SLOW_OPS while thrashing mons (rhbz#1807184) - osd/OSD: Log slow ops/types to cluster logs (rhbz#1807184) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-7 - mgr: update metadata if an osd just joins (rhbz#1724428) - mgr: update "hostname" when we already have the daemon state from the same entity (rhbz#1724428) * Wed Mar 18 2020 Ceph Jenkins 2:14.2.8-6 - mds: add configurable snapshot limit (rhbz#1759700) * Tue Mar 17 2020 Ceph Jenkins 2:14.2.8-5 - rgw/notifications: fix topic action fail with "MethodNotAllowed" (rhbz#1814380) * Mon Mar 16 2020 Ceph Jenkins 2:14.2.8-4 - rgw: add a config description for rgw_override_bucket_index_max_shards (rhbz#1813349) - rgw: Increase the default number of RGW bucket shards (rhbz#1813349) * Wed Mar 11 2020 Ceph Jenkins 2:14.2.8-3 - monitoring: fix RGW grafana chart 'Average GET/PUT Latencies' (rhbz#1810884) * Tue Mar 10 2020 Ceph Jenkins 2:14.2.8-2 - Update patches * Tue Mar 10 2020 Thomas Serlin - 2:14.2.8-1 - Update to 14.2.8 * Wed Mar 04 2020 Ceph Jenkins 2:14.2.7-4 - cls/queue: fix data corruption in urgent data (rhbz#1810121) * Mon Mar 02 2020 Ceph Jenkins 2:14.2.7-3 - mgr/dashboard: Use default language when running "npm run build" (rhbz#1808345) * Wed Feb 26 2020 Thomas Serlin 2:14.2.7-2 - Update patches * Thu Feb 20 2020 Thomas Serlin - 2:14.2.7-1 - spec: Update ceph.spec for upstream 14.2.7 * Mon Jan 27 2020 Ceph Jenkins 2:14.2.4-125 - rgw: data sync markers include timestamp from datalog entry (rhbz#1793124) * Thu Jan 23 2020 Ceph Jenkins 2:14.2.4-124 - mds: skip tell command scrub on multimds (rhbz#1787109) - mds: throttle scrub start for multiple active MDS (rhbz#1787109) * Wed Jan 22 2020 Thomas Serlin - 2:14.2.4-123 - ceph.spec: exclude s390x * Wed Jan 22 2020 Thomas Serlin - 2:14.2.4-122 - ceph.spec: add spawn git submodule * Wed Jan 22 2020 Ceph Jenkins 2:14.2.4-121 - Updated patches * Wed Jan 22 2020 Ceph Jenkins 2:14.2.4-120 - rgw: multisite: disable test_rgw_throttle (rhbz#1793468) - rgw: beast frontend uses 512k mprotected coroutine stacks post chery-pick fixes (rhbz#1793468) - common: move gen_rand_alphanumeric() helpers into common (rhbz#1793468) - CMake - Workaround set Boost_component_FOUND (rhbz#1793468) - rgw: Add more spawn linking (rhbz#1793468) - cmake/rgw: move {rgw_libs} dependency into test_rgw_a target (rhbz#1793468) - test/rgw: ceph_test_rgw_throttle uses spawn library (rhbz#1793468) - test/rgw: unittest_rgw_reshard_wait uses spawn library (rhbz#1793468) - rgw: use new spawn() implementation (rhbz#1793468) - adds a submodule for https://github.com/cbodley/spawn, a header-only fork of boost::asio::spawn(). the beast frontend uses this to customize the coroutine stack allocator in order to use mmap/mprotect to detect overflows. the default stack size is raised from 128K to 512K (rhbz#1793468) * Tue Jan 21 2020 Ceph Jenkins 2:14.2.4-119 - rgw: remove spawned_keys filter from incremental data sync (rhbz#1793124) - rgw: incremental data sync respects spawn window (rhbz#1793124) * Tue Jan 21 2020 Ceph Jenkins 2:14.2.4-118 - rgw/pubsub: notification filtering by object tags (rhbz#1781813) - Bucket link using '--bucket-new-name' should consider cases when a bucket is renamed under the same tenanted/non-tenanted namespace. Change the condition such that a full comparison of the buckets is done while deleting old bucket instance. (rhbz#1757298) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-117 - rgw: address 0-length listing results when non-vis entries dominate (rhbz#1793224) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-116 - Updated patches * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-115 - Fix s3 lifecycle expiration header does not return the earliest rule that will be applied (rhbz#1793160) - RGWLC: fix expiration header tag match (rhbz#1793160) - rgw: fix header timestamp (rhbz#1793160) - RGWLC: debug tags in rgwlc_s3_expiration_header (rhbz#1793160) - rgw: complete expiration header (object tags) (rhbz#1793160) - rgw: project and return lc expiration from GET/HEAD and PUT ops (rhbz#1793160) * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-114 - Updated patches * Mon Jan 20 2020 Ceph Jenkins 2:14.2.4-113 - mds: skip tell command scrub on multimds (rhbz#1787109) * Fri Jan 17 2020 Ceph Jenkins 2:14.2.4-112 - rgw_file: readdir: do not construct markers w/leading '/' (rhbz#1791651) - rgw_file: introduce fast S3 Unix stats (immutable) (rhbz#1791651) * Thu Jan 16 2020 Ceph Jenkins 2:14.2.4-111 - Updated patches * Thu Jan 16 2020 Ceph Jenkins 2:14.2.4-110 - Updated patches * Wed Jan 15 2020 Ceph Jenkins 2:14.2.4-109 - rgw: improve beast (rhbz#1791429) * Tue Jan 14 2020 Ceph Jenkins 2:14.2.4-108 - rgw/pubsub: prevent kafka thread from spinning when there are no messages (rhbz#1781813) - rgw/pubsub: add ssl+sasl security to kafka (rhbz#1781813) - rgw/pubsub: add kafka notification endpoint (rhbz#1781813) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-107 - rgw: fix rgw crash in fips mode. (rhbz#1789237) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-106 - rgw: auto-clean reshard queue entries for non-existent buckets (rhbz#1785080) - rgw: allow reshard log entries for non-existent buckets to be cancelled (rhbz#1785080) * Mon Jan 13 2020 Ceph Jenkins 2:14.2.4-105 - mds: audit memset & bzero users for FIPS. (rhbz#1746525) - osd: audit memset & bzero users for FIPS. (rhbz#1746525) - osdc: audit memset & bzero users for FIPS. (rhbz#1746525) - librbd: audit memset & bzero users for FIPS. (rhbz#1746525) - librados: audit memset & bzero users for FIPS. (rhbz#1746525) - rgw: add some missed FIPS zeroization calls. (rhbz#1746525) - rgw: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - rgw: audit memset & bzero users for FIPS. (rhbz#1746525) - rgw: fix indentation in parse_rgw_ldap_bindpw(). (rhbz#1746525) - msg/async: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - msg/async: audit memset & bzero users for FIPS. (rhbz#1746525) - common: switch to ceph::crypto::zeroize_for_security(). (rhbz#1746525) - common: audit memset & bzero users for FIPS. (rhbz#1746525) - auth: audit memset & bzero users for FIPS. (rhbz#1746525) - common: introduce ceph::crypto::zeroize_for_security(). (rhbz#1746525) * Sat Jan 11 2020 Ceph Jenkins 2:14.2.4-104 - qa: force creation of fs with EC default data pool (rhbz#1785465) - qa: add tests for adding EC data pools (rhbz#1785465) - mon/MDSMonitor: warn when creating fs with default EC data pool (rhbz#1785465) * Sat Jan 11 2020 Ceph Jenkins 2:14.2.4-103 - mds: throttle scrub start for multiple active MDS (rhbz#1787109) * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-102 - Updated patches * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-101 - rgw_file: avoid string::front() on empty path (rhbz#1786094) * Fri Jan 10 2020 Ceph Jenkins 2:14.2.4-100 - Updated patches * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-99 - rgw: fix rgw crash when token is not base64 encode (rhbz#1776483) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-98 - mgr/dashboard: fix grafana dashboards (rhbz#1764548) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-97 - rgw:[bug] civetweb mg_write with offset. (rhbz#1772556) * Thu Jan 09 2020 Ceph Jenkins 2:14.2.4-96 - rgw: RGWCoroutine::call(nullptr) sets retcode=0 (rhbz#1744276) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-95 - mon/OSDMonitor: Don't update mon cache settings if rocksdb is not used (rhbz#1760257) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-94 - common: fix typo in rgw_user_max_buckets option long description. (rhbz#1772454) * Wed Jan 08 2020 Ceph Jenkins 2:14.2.4-93 - cls/rgw: when object is versioned and lc transition it, the object is becoming non-current (rhbz#1786633) * Tue Jan 07 2020 Ceph Jenkins 2:14.2.4-92 - mgr/ActivePyModules: behave if a module queries a devid that does not exist (rhbz#1674086) * Mon Dec 23 2019 Ceph Jenkins 2:14.2.4-91 - mgr/dashboard: fix white border in about box (rhbz#1663030 rhbz#1663030) * Mon Dec 23 2019 Ceph Jenkins 2:14.2.4-90 - mgr/dashboard: A block-manager can not access the pool page (rhbz#1785536) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-89 - pybind/mgr: use custom exception to handle authorization failures (rhbz#1762001) - qa/workunits/rbd: add permission tests for mgr profile (rhbz#1762001) - mgr: added placeholder 'osd' and 'mds' profiles (rhbz#1762001) - doc/rbd: add new 'profile rbd' mgr caps to examples (rhbz#1762001) - pybind/mgr: test session authorization against specific pools/namespaces (rhbz#1762001) - mgr: python modules can now perform authorization tests (rhbz#1762001) - mgr: validate that profile caps are actually valid (rhbz#1762001) - mgr: added 'profile rbd/rbd-read-only' cap (rhbz#1762001) - mgr: support optional arguments for module and profile caps (rhbz#1762001) - mgr: add new 'allow module' cap to MgrCap (rhbz#1762001) - mon: dropped daemon type argument for MonCap (rhbz#1762001) - mgr: stop re-using MonCap for handling MGR caps (rhbz#1762001) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-88 - mgr/dashboard: use downstream docs link (rhbz#1779192) * Thu Dec 19 2019 Ceph Jenkins 2:14.2.4-87 - mgr/dashboard: Use serial RGW Admin OPS API calls (rhbz#1780556) * Tue Dec 17 2019 Ceph Jenkins 2:14.2.4-86 - rgw: revert passing address of pointer as RGWObjCtx* (rhbz#1777743) * Fri Dec 13 2019 Ceph Jenkins 2:14.2.4-85 - mgr/dashboard: Unify the labels on all table actions objects (rhbz#1772105) - mgr/dashboard: Unify action naming for NFS (rhbz#1772105) - mgr/dashboard: refactor TableKeyValueComponent (rhbz#1772367) - mgr/dashboard: key-value-table doesn't render booleans (rhbz#1772367) - mgr/dashboard: Cross sign button not working for some modals (rhbz#1779213) - mgr/dashboard: sort monitors by open sessions correctly. (rhbz#1774436) - mgr/dashboard: Remove compression mode unset in pool from (rhbz#1772318) - mgr/dashboard: show Rename in modal header & button when renaming RBD snapshot (rhbz#1772105) * Fri Dec 13 2019 Ceph Jenkins 2:14.2.4-84 - mgr/dashboard: Remove title from sparkline tooltips (rhbz#1764465) - mgr/dashboard: fix RGW subuser auto-generate key. (rhbz#1780556) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-83 - rgw: fix version tracking across bucket link steps (rhbz#1763219) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-82 - Updated patches * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-81 - ceph-volume: print most logging messages to stderr (rhbz#1738576 rhbz#1738576) * Thu Dec 12 2019 Ceph Jenkins 2:14.2.4-80 - ceph-volume devices.lvm zap use the identifier to report success (rhbz#1738379) - ceph-volume tests check success message when zapping (rhbz#1738379) * Tue Dec 10 2019 Ceph Jenkins 2:14.2.4-79 - mgr/dashboard: properly handle a missing rbd-mirror service status (rhbz#1776257) - mgr: cull service daemons when the last instance has been removed (rhbz#1776257) - mgr: ensure new daemons are properly indexed by hostname (rhbz#1776257) * Mon Dec 09 2019 Ceph Jenkins 2:14.2.4-78 - rgw: avoid 0-length result gaps when non-vis b-i entries dominate (rhbz#1781358) * Fri Dec 06 2019 Ceph Jenkins 2:14.2.4-77 - mon/OSDMonitor: make memory autotune disable itself if no rocksdb (rhbz#1760257) * Thu Dec 05 2019 Ceph Jenkins 2:14.2.4-76 - mgr/dashboard: unable to set bool values to false when default is true (rhbz#1779224) * Thu Dec 05 2019 Ceph Jenkins 2:14.2.4-75 - Revert "crush: remove invalid upmap items" (rhbz#1773139) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-74 - mgr/dashboard: test_mgr_module QA test has not been adapted to latest controller changes (rhbz#1772375) - mgr/dashboard: Handle always-on Ceph Manager modules correctly (rhbz#1772375) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-73 - mgr/dashboard: grafana charts match time picker selection. (rhbz#1764555) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-72 - mgr/dashboard: edit/clone/copy rbd image after its data is received (rhbz#1779593) * Wed Dec 04 2019 Ceph Jenkins 2:14.2.4-71 - mgr/mgr_module: Allow resetting module options (rhbz#1771426) - doc/orchestrator: Disable the orchestrator (rhbz#1771426) * Tue Dec 03 2019 Ceph Jenkins 2:14.2.4-70 - rgw: apply_olh_log ignores RGW_ATTR_OLH_VER decode error (rhbz#1760854) - rgw: allow apply_olh_log to rewrite the same olh version (rhbz#1760854) - rgw: apply_olh_log filters out older instances of same epoch (rhbz#1760854) - rgw: factor out decode_olh_info() (rhbz#1760854) - cls/rgw: only promote instance entries if they sort after current instance (rhbz#1760854) - test/rgw: add test_concurrent_versioned_object_incremental_sync (rhbz#1760854) * Tue Dec 03 2019 Ceph Jenkins 2:14.2.4-69 - mgr/dashboard,grafana: remove shortcut menu (rhbz#1772441) * Thu Nov 28 2019 Ceph Jenkins 2:14.2.4-68 - mgr/dashboard: Automatically refresh CephFS chart (rhbz#1762701) - mgr/dashboard: Refactors CephFS chart component (rhbz#1762701) - mgr/dashboard: Add missing unit tests for CephFS chart (rhbz#1762701) - mgr/dashboard: Fix CephFS chart (rhbz#1762701) - mgr/dashboard: fix Cephfs hang and tests (rhbz#1762701) * Mon Nov 25 2019 Ceph Jenkins 2:14.2.4-67 - mgr/dashboard: do not show non-pool data in pool details (rhbz#1772327) * Sat Nov 23 2019 Ceph Jenkins 2:14.2.4-66 - osd: release backoffs during merge (rhbz#1770354) * Thu Nov 21 2019 Ceph Jenkins 2:14.2.4-65 - mds: release free heap pages after trim (rhbz#1775320) * Thu Nov 21 2019 Ceph Jenkins 2:14.2.4-64 - mgr/dashboard: Disable event propagation in the helper icon (rhbz#1743755) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-63 - os/bluestore/BlueFS: Move bluefs alloc size initialization log message to log level 1 Fixes: https://tracker.ceph.com/issues/41399 (rhbz#1773137) - os/bluestore/BlueFS: apply shared_alloc_size to shared device (rhbz#1773137) - os/bluestore/BlueFS: fix device_migrate_to_* to handle varying alloc sizes (rhbz#1773137) - os/bluestore: whitespace (rhbz#1773137) - os/bluestore: cleanup around allocator calls (rhbz#1773137) - os/bluestore/BlueFS: add bluefs_shared_alloc_size (rhbz#1773137) - os/bluestore/BlueStore.cc: start should be >= _get_ondisk_reserved() (rhbz#1773137) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-62 - mon/PGMap: fix incorrect pg_pool_sum when delete pool (rhbz#1705464) * Wed Nov 20 2019 Ceph Jenkins 2:14.2.4-61 - mgr: set hostname in DeviceState::set_metadata() (rhbz#1724428) * Tue Nov 19 2019 Ceph Jenkins 2:14.2.4-60 - restful: Use node_id for _gather_leaf_ids (rhbz#1774172) - restful: Query nodes_by_id for items (rhbz#1774172) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-59 - osd: Remove unused osdmap flags full, nearfull from output (rhbz#1739233) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-58 - doc/rados/operations/health-checks: document BlueStore fragmentation and BlueFS space available features (rhbz#1773757) - test/objectstore: Allocator_test. Add test for dumping free regions and fragmentation_score. (rhbz#1773757) - BlueStore/allocator: Add command to inspect how much BlueStore's block can go to BlueFS. (rhbz#1773757) - tools/ceph-bluestore-tool: add commands free-dump and free-score (rhbz#1773757) - common/admin_socket: Add 'execute_command' that allows for self-reflection. (rhbz#1773757) - common/admin_socket: Adapted old protocol to use new protocol, simplifies handle path. (rhbz#1773757) - BlueStore/allocator: Add ability to dump free allocations via admin socket interface. (rhbz#1773757) - BlueStore/allocator: Give allocator names, so they can be distinguished. (rhbz#1773757) - BlueStore/allocator: Improved (but slower) method of calculating fragmentation. (rhbz#1773757) - mgr: Improve balancer module status (rhbz#1773139) - test: Test balancer module commands (rhbz#1773139) - mgr: Release GIL before calling OSDMap::calc_pg_upmaps() (rhbz#1773139) - qa/mgr/balancer: Add cram based test for altering target_max_misplaced_ratio setting (rhbz#1773139) - pybind/rados: put lens array in outer scope (rhbz#1760936) - pybind/rados: fix set_omap() crash on py3 (rhbz#1760936) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-57 - osd/PGLog: persist num_objects_missing for replicas when peering is done (rhbz#1457536) * Mon Nov 18 2019 Ceph Jenkins 2:14.2.4-56 - global: disable THP for Ceph daemons (rhbz#1773680) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-55 - osd/PeeringState: do not complain about past_intervals constrained by oldest epoch (rhbz#1773139) - mgr/BaseMgrStandbyModule: drop GIL in ceph_get_module_option() (rhbz#1773139) - osd: clear PG_STATE_CLEAN when repair object (rhbz#1773139) - crush: remove invalid upmap items (rhbz#1773139) - osd/OSDMap: do not trust partially simplified pg_upmap_item (rhbz#1773139) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-54 - os/bluestore: consolidate extents from the same device only (rhbz#1773137) - osd/PG: scrub error when objects are larger than osd_max_object_size (rhbz#1773137) - os/bluestore: refuse to mkfs or mount if osd_max_object_size >= MAX_OBJECT_SIZE (rhbz#1773137) - Revert "rocksdb: enable rocksdb_rmrange=true by default" (rhbz#1773137) - mgr/pg_autoscaler: fix race with pool deletion (rhbz#1674084) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-53 - osd/PeeringState: fix wrong history of merge target (rhbz#1674084) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-52 - tools/rados: add --pgid in help (rhbz#1773101) - tools/rados: call pool_lookup() after rados is connected This commit fixes a segmentation fault when using --pgid option in rados ls command in combination with --pool/-p option. The reason for the crash was that we can not use the rados object before connecting it with the cluster using rados.init_with_context(). (rhbz#1773101) * Fri Nov 15 2019 Ceph Jenkins 2:14.2.4-51 - osd/PG: Add PG to large omap log message (rhbz#1762041) * Thu Nov 14 2019 Ceph Jenkins 2:14.2.4-50 - mon/OSDMonitor: Add standalone test for mon_memory_target (rhbz#1760257) - mon/OSDMonitor: Implement config observer to handle changes to cache sizes (rhbz#1760257) - mon/OSDMonitor: Use generic priority cache tuner for mon caches (rhbz#1760257) - cmake: link libkv against libheap_profiler (rhbz#1760257) - cmake: link libkv against common_prioritycache_obj (rhbz#1760257) - cmake: remove kv_objs target (rhbz#1760257) - common: make pri cache perf counters optional (rhbz#1760257) - common: make extra memory allocation for pri cache optional (rhbz#1760257) - common/PriorityCache: fix over-aggressive assert when mem limited (rhbz#1760257) - common/PriorityCache: Implement a Cache Manager (rhbz#1760257) * Tue Nov 12 2019 Ceph Jenkins 2:14.2.4-49 - mds: trim cache on regular schedule (rhbz#1765923) - mds: move some MDCache member init to header (rhbz#1765923) * Tue Nov 12 2019 Ceph Jenkins 2:14.2.4-48 - osd: Rename backfill reservation reject names to reflect too full use (rhbz#1769745) - osd: Rename MBackfillReserve::TOOFULL to what it does in particular (revoke) (rhbz#1769745) - osd: Don't set backfill_toofull in RemoteReservationRevoked path (rhbz#1769745) - mon: Improve health status for backfill_toofull and recovery_toofull (rhbz#1769745) * Mon Nov 11 2019 Ceph Jenkins 2:14.2.4-47 - mgr/dashboard: Fix error on ceph-iscsi version pre controls_limits (rhbz#1764167) - mgr/dashboard: Set iSCSI disk WWN and LUN number from the UI (rhbz#1764167) - mgr/dashboard: Display WWN and LUN number in iSCSI target details (rhbz#1764167) - mgr/dashboard: Controls UI inputs based on "type" (rhbz#1764167) - mgr/dashboard: Support iSCSI target-level CHAP auth (rhbz#1764167) - mgr/dashboard: Wait for iSCSI target put and delete (rhbz#1764167) - mgr/dashboard: wait for iscsi/target create/put (rhbz#1764167) - mgr/dashboard: Gracefully handle client/target info not found (rhbz#1764167) - mgr/dashboard: Fix error editing iSCSI disk controls (rhbz#1764167) - mgr/dashboard: Validate iSCSI controls min/max value (rhbz#1764167) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-46 - ceph-volume tests validate restorecon skip calls (rhbz#1768523) - ceph-volume util.system allow skipping restorecon calls (rhbz#1768523) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-45 - mds: establish session with mgr only after added to FSMap (rhbz#1764977) - mds: do not register as a service daemon (rhbz#1764977) - mds: do not try to diagnose cause of MDSMap removal (rhbz#1764977) - mds: fix handling of initial MDS states (rhbz#1764977) - mds: remove unnecessary const qualifier (rhbz#1764977) - mds: cleanup type decl and map iteration (rhbz#1764977) - mds: define stream operator for mds_info_t (rhbz#1764977) * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-44 - Updated patches * Fri Nov 08 2019 Ceph Jenkins 2:14.2.4-43 - rgw: fix versioning on archive zone. When we sync from a non-versioned source zone, fetch the current version of src_obj by setting 'follow_olh' to true for archive zone. (rhbz#1760862) * Wed Nov 06 2019 Ceph Jenkins 2:14.2.4-42 - common/ceph_context: avoid unnecessary wait during service thread shutdown (rhbz#1762034) * Tue Nov 05 2019 Ceph Jenkins 2:14.2.4-41 - Cycles: Add support for IBM Z (rhbz#1768687) - bloom-filter: Improve test cases (rhbz#1768687) - osd: Endian fix for PGTempMap handling (rhbz#1768687) - librbd: Endian fix for handling old image format resize requests (rhbz#1768687) - rgw,test: Add missing init_le calls (rhbz#1768687) - librados,test: Fix incorrect use of __le16/32/64 (rhbz#1768687) - transaction: Fix incorrect use of __le16/32/64 (rhbz#1768687) - bluestore: Fix incorrect use of __le16/32/64 (rhbz#1768687) - async,crimson: Add missing init_le calls (rhbz#1768687) - msg: Fix incorrect use of __le16/32/64 (rhbz#1768687) - messages: Fix incorrect use of __le16/32/64 (rhbz#1768687) - mds: Fix incorrect use of __le16/32/64 (rhbz#1768687) - cephx: Fix incorrect use of __le16/32/64 (rhbz#1768687) - checksum: Fix incorrect use of __le16/32/64 (rhbz#1768687) - include: Fix new-style encoding routines on big-endian (rhbz#1768687) - include: Simplify usage of init_le16/32/64 routines (rhbz#1768687) - include: Endian fix for shared kernel/user headers (rhbz#1768687) - msg: fix addr2 encoding for sockaddrs (rhbz#1768687) * Thu Oct 31 2019 Ceph Jenkins 2:14.2.4-40 - mgr/pg_autoscaler: use 'stored' for pool_logical_used (rhbz#1767654) * Wed Oct 30 2019 Ceph Jenkins 2:14.2.4-39 - qa: add tests for CephFS admin commands (rhbz#1764977) - mds/MDSRank: report state to mgr as mds id, not rank (rhbz#1764977) * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-38 - rgw: define rgw_bucket::full_equal(...) method (rhbz#1763219) - rgw: fix if case for bucket rename (rhbz#1763219) - rgw: add rename_swift_keys for user rename (rhbz#1763219) - rgw: consolidate RGWUser::execute_rename (rhbz#1763219) - rgw: user rename calls update() to write final user (rhbz#1763219) - rgw: user rename overwrites new user with --yes-i-really-mean-it (rhbz#1763219) - rgw: user rename operates on 'stub' user (rhbz#1763219) - rgw: add rgw_remove_user_buckets_index (rhbz#1763219) - rgw: simplify bucket chown (rhbz#1763219) - rgw: fix version tracking across bucket link steps (rhbz#1763219) - Added test to verify user rename failure. (rhbz#1763219) - On new uid check, return EEXIST. (rhbz#1763219) - Fixed line wrap (rhbz#1763219) - Updated help.t with user rename command (rhbz#1763219) - Added user rename test (rhbz#1763219) - Minor fixes. (rhbz#1763219) - Modified rgw_store_user_info() checks to suit user rename. Added a helper function to modify bucket acl. Rebased onto master. (rhbz#1763219) - Create new user before deleting existing user. Migrate buckets one at a time. (rhbz#1763219) - This commit deals with renaming user. Under the hood, the attributes of an existing user are moved under the new user namespace specified by "--new-uid". It calls bucket link and bucket chown to link the buckets and objects to the new user namespace. Access and secret keys of the user(and the subusers) are preserved. (rhbz#1763219) - Documentation for 'bucket chown' (rhbz#1763219) - Set object ACLS to reflect bucket owner supporting bucket unlink/link. (rhbz#1763219) - rgw: bucket link: master rebase adaptions. (rhbz#1763219) - rgw: bucket link: "bucket move" documentation changes (rhbz#1763219) - rgw: bucket link: "bucket move"; handle bucket names too. (rhbz#1763219) - rgw: bucket link: base "bucket move" (tenant id only) (rhbz#1763219) - rearrange / simplify RGWBucket::link logic - start bucket move support (rhbz#1763219) - rgw: bucket link: use data from bucket_info to rewrite bucket_endpoint. (rhbz#1763219) - rgw: bucket link: simplify use of get bucket info. (rhbz#1763219) - rgw: bucket link: Add ability to name bucket w/ different tenant. (rhbz#1763219) - Add "--bucket-new-name" option to radosgw-admin. (rhbz#1763219) - Add several types to ceph-dencoder. (rhbz#1763219) - rgw: making implicit_tenants backwards compatible. (rhbz#1763219) * Fri Oct 25 2019 Thomas Serlin - 2:14.2.4-37 - Bump release for s390x build * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-36 - Updated patches * Fri Oct 25 2019 Ceph Jenkins 2:14.2.4-35 - rgw: Adding 'iam' namespace for Role and User Policy related REST APIs. (rhbz#1765430) * Thu Oct 24 2019 Ceph Jenkins 2:14.2.4-34 - rgw: use explicit to_string() overload for boost::string_ref (rhbz#1756077) * Wed Oct 23 2019 Ceph Jenkins 2:14.2.4-33 - mgr/volumes: fix incorrect snapshot path creation (rhbz#1760215) - rgw: s/std::map/boost::container::flat_map/ cls_bucket_list_ordered (RGWRados and CLS). (rhbz#1764673) * Wed Oct 23 2019 Ceph Jenkins 2:14.2.4-32 - qa/tasks: add/update tests for --yes-i-really-mean-it (rhbz#1761752) - mgr/volumes: protection for 'fs volume rm' command (rhbz#1761752) * Tue Oct 22 2019 Ceph Jenkins 2:14.2.4-31 - rgw: RGWSyncLogTrimCR wont set last_trim=max_marker (rhbz#1763257) - rgw: data/bilogs are trimmed when no peers are reading them (rhbz#1763257) - rgw: data/bilog trimming tracks min markers as strings (rhbz#1763257) - rgw: bilog trim uses bucket_info.num_shards to size marker array (rhbz#1763257) - rgw: fix end condition in AsyncMetadataList for bilog trim (rhbz#1763257) * Tue Oct 22 2019 Ceph Jenkins 2:14.2.4-30 - rgw: disable compression/encryption on Appendable objects (rhbz#1763254) - rgw: fix default storage class for get_compression_type (rhbz#1763254) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-29 - rgw: fix potential realm watch lost (rhbz#1763265) - rgw: add minssing admin property when sync user info. (rhbz#1763263) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-28 - rgw: fix a bug thart lifecycle expiraton generates delete marker continuously. (rhbz#1763260) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-27 - rgw: add reshard checks to bucket quota sync thread (rhbz#1763251) - rgw: remove bucket reshard checks from write operations (rhbz#1763251) * Mon Oct 21 2019 Ceph Jenkins 2:14.2.4-26 - rgw: permit rgw-admin to populate user info by access-key (rhbz#1763255) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-25 - Updated patches * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-24 - rgw: RGWSyncLogTrimCR wont set last_trim=max_marker (rhbz#1763257) - rgw: data/bilogs are trimmed when no peers are reading them (rhbz#1763257) - rgw: data/bilog trimming tracks min markers as strings (rhbz#1763257) - rgw: bilog trim uses bucket_info.num_shards to size marker array (rhbz#1763257) - rgw: fix end condition in AsyncMetadataList for bilog trim (rhbz#1763257) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-23 - rgw: fix default storage class for get_compression_type (rhbz#1763254) - rgw: disable compression/encryption on Appendable objects (rhbz#1763254) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-22 - rgw: permit rgw-admin to populate user info by access-key (rhbz#1763255) * Fri Oct 18 2019 Ceph Jenkins 2:14.2.4-21 - rgw: reduce per-shard entry count during ordered bucket listing (rhbz#1762857) - rgw: adjust allowable bucket index shard counts for dynamic resharding (rhbz#1762857) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-20 - radosgw-admin: 'mdlog trim' loops until done (rhbz#1762931) - radosgw-admin: 'datalog trim' takes shard-id and loops until done (rhbz#1762931) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-19 - rgw: make rollback refcount tag match (rhbz#1762926) - rgw: make sure object's idtag is updated when available (rhbz#1762926) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-18 - rgw: sanitize the HTTP_* http header elements (rhbz#1762916) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-17 - rgw: don't throw when accept errors are happening on frontend (rhbz#1762910) * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-16 - Updated patches * Thu Oct 17 2019 Ceph Jenkins 2:14.2.4-15 - rgw: fix memory growth while deleteing objects with radosgw-admin bucket rm --bucket=$BIG_BUCKET --bypass-gc --purge-objects by freeing map elements allocated at https://github.com/ceph/ceph/blob/master/src/rgw/rgw_rados.cc#L236 result = &objs_state[obj]; (rhbz#1753588) - rgw: fix cls_bucket_list_unordered() partial results returnied after -ENOENT dirent is encountered (rhbz#1750115) * Tue Oct 15 2019 Ceph Jenkins 2:14.2.4-14 - rgw: increase beast parse buffer size to 64k (rhbz#1761816) * Tue Oct 15 2019 Ceph Jenkins 2:14.2.4-13 - mgr/k8sevents: Add support for remote kubernetes (rhbz#1745607) - pybind/mgr: Remove code duplication (rhbz#1745607) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-12 - rgw: lifecycle days may be 0 (rhbz#1493476) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-11 - build-doc: allow building docs on fedora 30 (rhbz#1701030) - rgw/pubsub: backporting pubsub/notifications to nautilus (rhbz#1701030) * Fri Oct 11 2019 Ceph Jenkins 2:14.2.4-10 - mgr/dashboard: improve landing page. (rhbz#1744483) - mgr/dashboard: fix form & landing page titles (rhbz#1744483) - mgr/dashboard: Disable translations (rhbz#1744483) - mgr/dashboard: remove white area at the bottom (rhbz#1744483) - mgr/dashboard: hide refresh component (rhbz#1744483) - mgr/dashboard: use PF label for badges (rhbz#1744483) - mgr/dashboad: fix spacing in Pool form (rhbz#1744483) - mgr/dashboard: add Red Hat font [optional] (rhbz#1744483) - mgr/dashboard: fix right whitespaced by refresh (rhbz#1744483) - mgr/dashboard: add red hat favicon (rhbz#1744483) * Thu Oct 10 2019 Ceph Jenkins 2:14.2.4-9 - qa/tasks: tests for ls (rhbz#1734608) - mgr/volumes: list FS subvolumes, subvolume groups and their snapshots (rhbz#1734608) * Thu Oct 10 2019 Ceph Jenkins 2:14.2.4-8 - nautilus: rgw: protect AioResultList by AioThrottle::mutex to avoid race condition (rhbz#1760438) * Wed Oct 09 2019 Ceph Jenkins 2:14.2.4-7 - mgr/ServiceMap: use plain gid (rhbz#1559026) - doc: document scrub summary in ceph status output (rhbz#1559026) - test: extend scrub control test to validate mds task status (rhbz#1559026) - mds: send scrub state changes to cluster log. (rhbz#1559026) - mds: periodically sent mds scrub status to ceph manager (rhbz#1559026) - mgr, mon: allow normal ceph services to register with manager (rhbz#1559026) * Mon Oct 07 2019 Ceph Jenkins 2:14.2.4-6 - cmake: Test for 16-byte atomic support on IBM Z (rhbz#1756077) - rgw: tests: Fix building with -DWITH_BOOST_CONTEXT=OFF (rhbz#1756077) * Fri Sep 27 2019 Ceph Jenkins 2:14.2.4-5 - ceph-volume: do not fail when trying to remove crypt mapper (rhbz#1756371) * Mon Sep 23 2019 Ceph Jenkins 2:14.2.4-4 - mgr/volumes: return string type to ceph-manager (rhbz#1754393) - qa/tasks: test for prevent negative subvolume size (rhbz#1754393) - mgr/volumes: drop unnecessary size (rhbz#1754393) - mgr/volumes: prevent negative subvolume size (rhbz#1754393) - mgr/volumes: cleanup FS subvolume or subvolume group path (rhbz#1754393) * Sun Sep 22 2019 Ceph Jenkins 2:14.2.4-3 - mds: wake up lock waiters after forcibly changing lock state (rhbz#1754353) * Thu Sep 19 2019 Ceph Jenkins 2:14.2.4-2 - mgr/volumes: give useful error message (rhbz#1741618) * Tue Sep 17 2019 Ceph Jenkins 2:14.2.4-1 - Updated patches * Mon Sep 16 2019 Boris Ranto 2:14.2.3-5 - Package k8sevents (rhbz#1745607) * Mon Sep 16 2019 Ceph Jenkins 2:14.2.3-4 - mgr/k8sevents: Initial ceph -> k8s events integration (rhbz#1745607) * Thu Sep 12 2019 Ceph Jenkins 2:14.2.3-3 - ceph-volume tests create a shell test for functional unicode (rhbz#1743834) - ceph-volume create a new tox.ini for shell-based tests (rhbz#1743834) - ceph-volume: instantiate the new terminal logger in main() (rhbz#1743834) - ceph-volume tests verify new logging fallback and encodings in terminal (rhbz#1743834) - ceph-volume tests create a test file for checking unicode output (rhbz#1743834) - ceph-volume create a logger for the terminal (rhbz#1743834) - ceph-volume terminal remove unicode stream handler (rhbz#1743834) * Wed Sep 04 2019 Ceph Jenkins 2:14.2.3-2 - Updated patches * Wed Aug 28 2019 Ken Dreyer 2:14.2.2-435 - mgr/dashboard: fix health pipe test and other (rhbz#1744483) - fix(dashboard): remove dashboard text from nav, update colors (rhbz#1744483) * Tue Aug 27 2019 Ken Dreyer 2:14.2.2-434 - Updated patches * Thu Aug 22 2019 Ken Dreyer 2:14.2.2-433 - Updated patches * Thu Aug 22 2019 Boris Ranto 2:14.2.2-432 - Updated patches - Use gerrit - Use new Jenkins builder job * Mon Aug 19 2019 Thomas Serlin - 2:14.2.2-431.gb28c939 - git snapshot (b28c939) * Tue Aug 13 2019 Thomas Serlin - 2:14.2.2-339.g1fd0f60 - git snapshot (1fd0f60) * Tue Aug 06 2019 Thomas Serlin - 2:14.2.2-296.g6f82bc1 - git snapshot (6f82bc1) * Tue Jul 23 2019 Timothy Asir - 2:14.2.2-16.ga7a380a.1 - include redhat branding for dashboard (for a7a380a) * Mon Jul 22 2019 Thomas Serlin - 2:14.2.2-16.ga7a380a - git snapshot (a7a380a) * Fri Jul 19 2019 Timothy Asir - 14.2.1-622.g248994d.1 - include redhat branding for dashboard (for 248994d) * Mon Jul 15 2019 Ken Dreyer - 2:14.2.1-622.g248994d - git snapshot (248994d) * Mon Jul 8 2019 Ken Dreyer - 2:14.2.1-615.ga2fbaea - git snapshot (a2fbaea) * Fri Jul 5 2019 Timothy Asir - 2:14.2.1-602.g51abe8f.1 - include redhat branding for dashboard * Mon Jul 1 2019 Ken Dreyer - 2:14.2.1-602.g51abe8f - git snapshot (51abe8f)