bde7d23
#
bde7d23
# spec file for package ceph
bde7d23
#
0d98ded
# Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file
bde7d23
# at the top-level directory of this distribution and at
bde7d23
# https://github.com/ceph/ceph/blob/master/COPYING
bde7d23
#
bde7d23
# All modifications and additions to the file contributed by third parties
bde7d23
# remain the property of their copyright owners, unless otherwise agreed
bde7d23
# upon.
bde7d23
#
bde7d23
# This file is under the GNU Lesser General Public License, version 2.1
bde7d23
#
bde7d23
# Please submit bugfixes or comments via http://tracker.ceph.com/
565f975
#
0d98ded
5846ea0
#################################################################################
5846ea0
# conditional build section
5846ea0
#
5846ea0
# please read http://rpm.org/user_doc/conditional_builds.html for explanation of
5846ea0
# bcond syntax!
5846ea0
#################################################################################
201099b
# This package depends on automagic byte compilation
201099b
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2
201099b
%global _python_bytecompile_extra 1
565f975
%global _hardened_build 1
565f975
e559532
%bcond_with make_check
26fd4ff
%bcond_with cmake_verbose_logging
ab7f0da
%bcond_without ceph_test_package
44c0bd8
%ifarch s390 s390x
a5a738d
%bcond_with tcmalloc
44c0bd8
%else
44c0bd8
%bcond_without tcmalloc
a5a738d
%endif
0d98ded
bcc7f22
%if 0%{?fedora} || 0%{?rhel}
bde7d23
%bcond_without selinux
0d98ded
%if 0%{?rhel} >= 8
0d98ded
%bcond_with cephfs_java
0d98ded
%else
2b3fa8b
%bcond_without cephfs_java
0d98ded
%endif
0d98ded
%bcond_without amqp_endpoint
0d98ded
%bcond_without kafka_endpoint
4c70f88
%bcond_without lttng
4c70f88
%bcond_without libradosstriper
229de7b
%bcond_without ocf
4c70f88
%global _remote_tarball_prefix https://download.ceph.com/tarballs/
bcc7f22
%endif
bcc7f22
%if 0%{?suse_version}
5846ea0
%bcond_with amqp_endpoint
21ae44b
%bcond_with cephfs_java
0d98ded
%bcond_with kafka_endpoint
0d98ded
%ifarch x86_64 aarch64 ppc64le
4c70f88
%bcond_without lttng
4c70f88
%else
21ae44b
%bcond_with lttng
21ae44b
%endif
21ae44b
%bcond_with ocf
21ae44b
%bcond_with selinux
21ae44b
#Compat macro for _fillupdir macro introduced in Nov 2017
21ae44b
%if ! %{defined _fillupdir}
21ae44b
%global _fillupdir /var/adm/fillup-templates
bde7d23
%endif
c342c97
%endif
2b3fa8b
%bcond_with seastar
2b3fa8b
%if 0%{?fedora} || 0%{?suse_version} >= 1500
2b3fa8b
# distros that ship cmd2 and/or colorama
2b3fa8b
%bcond_without cephfs_shell
2b3fa8b
%else
2b3fa8b
# distros that do _not_ ship cmd2/colorama
2b3fa8b
%bcond_with cephfs_shell
2b3fa8b
%endif
26fd4ff
%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8
0d98ded
%global weak_deps 1
4c70f88
%endif
bcc7f22
%if %{with selinux}
bcc7f22
# get selinux policy version
0d98ded
# Force 0.0.0 policy version for centos builds to avoid repository sync issues between rhel and centos
26fd4ff
%if 0%{?centos}
26fd4ff
%global _selinux_policy_version 0.0.0
26fd4ff
%else
d73f4ea
%{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0}
26fd4ff
%endif
bcc7f22
%endif
bcc7f22
bcc7f22
%{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
bde7d23
%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
44c0bd8
%{!?python3_pkgversion: %global python3_pkgversion 3}
a384bd1
%{!?python3_version_nodots: %global python3_version_nodots 3}
229de7b
%{!?python3_version: %global python3_version 3}
0d98ded
%if 0%{?rhel} == 7
0d98ded
%define __python %{__python3}
0d98ded
%endif
bde7d23
# unify libexec for all targets
bde7d23
%global _libexecdir %{_exec_prefix}/lib
bde7d23
44c0bd8
# disable dwz which compresses the debuginfo
44c0bd8
%global _find_debuginfo_dwz_opts %{nil}
2a0aaf9
08b7207
#################################################################################
44c0bd8
# main package definition
08b7207
#################################################################################
08b7207
Name:		ceph
624de89
Version:	15.2.3
624de89
Release:	1%{?dist}
44c0bd8
%if 0%{?fedora} || 0%{?rhel}
c5f0288
Epoch:		2
44c0bd8
%endif
44c0bd8
4c70f88
# define _epoch_prefix macro which will expand to the empty string if epoch is
4c70f88
# undefined
44c0bd8
%global _epoch_prefix %{?epoch:%{epoch}:}
44c0bd8
08b7207
Summary:	User space components of the Ceph file system
0d98ded
#License:	LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
0d98ded
License:	(LGPLv2.1 or LGPLv3) and CC-BY-SA-3.0 and GPLv2 and Boost-1.0 and BSD and MIT
bcc7f22
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
bcc7f22
%endif
08b7207
URL:		http://ceph.com/
295d99c
Source0:	%{?_remote_tarball_prefix}ceph-%{version}.tar.gz
a09febb
Patch0001:	0001-src-common-crc32c_intel_fast.patch
4deb491
Patch0002:	0002-src-common-CMakeLists.txt.patch
4deb491
Patch0003:	0003-src-common-bitstr.h.patch
d463ff3
Source1:	cmake-modules-BuildBoost.cmake.noautopatch
4deb491
# ceph 14.0.1 does not support 32-bit architectures, bugs #1727788, #1727787
2b3fa8b
ExcludeArch:	i686 armv7hl
26fd4ff
%if 0%{?suse_version}
26fd4ff
# _insert_obs_source_lines_here
26fd4ff
ExclusiveArch:	x86_64 aarch64 ppc64le s390x
26fd4ff
%endif
bcc7f22
#################################################################################
bcc7f22
# dependencies that apply across all distro families
bcc7f22
#################################################################################
0d98ded
Requires:	ceph-osd = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	ceph-mds = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	ceph-mon = %{_epoch_prefix}%{version}-%{release}
08b7207
Requires(post):	binutils
bcc7f22
%if 0%{with cephfs_java}
bcc7f22
BuildRequires:	java-devel
bcc7f22
BuildRequires:	sharutils
bcc7f22
%endif
bcc7f22
%if 0%{with selinux}
bcc7f22
BuildRequires:	checkpolicy
bcc7f22
BuildRequires:	selinux-policy-devel
6d95105
%endif
44c0bd8
BuildRequires:	gperf
2b3fa8b
%if 0%{?rhel} == 7
0d98ded
BuildRequires:	cmake3 > 3.5
2b3fa8b
%else
0d98ded
BuildRequires:	cmake > 3.5
2b3fa8b
%endif
2a379f1
BuildRequires:	cryptsetup
bcc7f22
BuildRequires:	fuse-devel
e4cc93f
BuildRequires:	fmt-devel
4c70f88
%if 0%{?rhel} == 7
4c70f88
# devtoolset offers newer make and valgrind-devel, but the old ones are good
4c70f88
# enough.
0d98ded
BuildRequires:	devtoolset-8-gcc-c++ >= 8.3.1-3.1
4c70f88
%else
dadf49c
BuildRequires:	gcc-c++
4c70f88
%endif
08b7207
BuildRequires:	gdbm
8d319bc
%if 0%{with tcmalloc}
2b3fa8b
%if 0%{?fedora} || 0%{?rhel}
2b3fa8b
BuildRequires:	gperftools-devel >= 2.6.1
2b3fa8b
%endif
2b3fa8b
%if 0%{?suse_version}
44c0bd8
BuildRequires:	gperftools-devel >= 2.4
8d319bc
%endif
2b3fa8b
%endif
bcc7f22
BuildRequires:	leveldb-devel > 1.2
08b7207
BuildRequires:	libaio-devel
08b7207
BuildRequires:	libblkid-devel >= 2.17
dadf49c
BuildRequires:	libcurl-devel
a384bd1
BuildRequires:	libcap-ng-devel
26fd4ff
BuildRequires:	pkgconfig(libudev)
a384bd1
BuildRequires:	libnl3-devel
4c70f88
BuildRequires:	liboath-devel
2a379f1
BuildRequires:	libtool
dadf49c
BuildRequires:	libxml2-devel
2a379f1
BuildRequires:	make
5846ea0
BuildRequires:	ncurses-devel
2a379f1
BuildRequires:	parted
a384bd1
BuildRequires:	patch
44c0bd8
BuildRequires:	perl
2a379f1
BuildRequires:	pkgconfig
0d98ded
BuildRequires:	procps
0d98ded
BuildRequires:	python%{python3_pkgversion}
0d98ded
BuildRequires:	python%{python3_pkgversion}-devel
f062332
BuildRequires:	python%{python3_pkgversion}-setuptools
bcc7f22
BuildRequires:	snappy-devel
2b3fa8b
BuildRequires:	sudo
26fd4ff
BuildRequires:	pkgconfig(udev)
2a379f1
BuildRequires:	util-linux
bde7d23
BuildRequires:	valgrind-devel
44c0bd8
BuildRequires:	which
2a379f1
BuildRequires:	xfsprogs
08b7207
BuildRequires:	xfsprogs-devel
2a379f1
BuildRequires:	xmlstarlet
84aa853
BuildRequires:	yasm
0d98ded
%if 0%{with amqp_endpoint}
0d98ded
BuildRequires:	librabbitmq-devel
0d98ded
%endif
0d98ded
%if 0%{with kafka_endpoint}
0d98ded
BuildRequires:	librdkafka-devel
0d98ded
%endif
4c70f88
%if 0%{with make_check}
0d98ded
BuildRequires:	jq
0d98ded
BuildRequires:	libuuid-devel
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-bcrypt
26fd4ff
BuildRequires:	python%{python3_version_nodots}-nose
26fd4ff
BuildRequires:	python%{python3_version_nodots}-requests
26fd4ff
BuildRequires:	python%{python3_version_nodots}-dateutil
26fd4ff
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-bcrypt
0d98ded
BuildRequires:	python%{python3_pkgversion}-nose
0d98ded
BuildRequires:	python%{python3_pkgversion}-pecan
0d98ded
BuildRequires:	python%{python3_pkgversion}-requests
26fd4ff
BuildRequires:	python%{python3_pkgversion}-dateutil
26fd4ff
%endif
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-six
26fd4ff
BuildRequires:	python%{python3_version_nodots}-virtualenv
26fd4ff
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-six
0d98ded
BuildRequires:	python%{python3_pkgversion}-virtualenv
26fd4ff
%endif
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-coverage
26fd4ff
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-coverage
0d98ded
%endif
0d98ded
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-pyOpenSSL
0d98ded
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-pyOpenSSL
0d98ded
%endif
4c70f88
BuildRequires:	socat
4c70f88
%endif
2b3fa8b
%if 0%{with seastar}
0d98ded
BuildRequires:	c-ares-devel
0d98ded
BuildRequires:	gnutls-devel
0d98ded
BuildRequires:	hwloc-devel
0d98ded
BuildRequires:	libpciaccess-devel
0d98ded
BuildRequires:	lksctp-tools-devel
0d98ded
BuildRequires:	protobuf-devel
0d98ded
BuildRequires:	ragel
0d98ded
BuildRequires:	systemtap-sdt-devel
0d98ded
BuildRequires:	yaml-cpp-devel
2b3fa8b
%endif
08b7207
#################################################################################
bcc7f22
# distro-conditional dependencies
08b7207
#################################################################################
bcc7f22
%if 0%{?suse_version}
0d98ded
BuildRequires:	pkgconfig(systemd)
bcc7f22
BuildRequires:	systemd-rpm-macros
bcc7f22
%{?systemd_requires}
4c70f88
PreReq:		%fillup_prereq
a384bd1
BuildRequires:	fdupes
bcc7f22
BuildRequires:	net-tools
bcc7f22
BuildRequires:	libbz2-devel
08b7207
BuildRequires:	mozilla-nss-devel
08b7207
BuildRequires:	keyutils-devel
0d98ded
BuildRequires:	libopenssl-devel
0d98ded
BuildRequires:	lsb-release
0d98ded
BuildRequires:	openldap2-devel
0d98ded
#BuildRequires:	krb5
0d98ded
#BuildRequires:	krb5-devel
0d98ded
BuildRequires:	cunit-devel
0d98ded
BuildRequires:	python%{python3_pkgversion}-setuptools
0d98ded
BuildRequires:	python%{python3_pkgversion}-Cython
0d98ded
BuildRequires:	python%{python3_pkgversion}-PrettyTable
0d98ded
BuildRequires:	python%{python3_pkgversion}-Sphinx
0d98ded
BuildRequires:	rdma-core-devel
4c70f88
BuildRequires:	liblz4-devel >= 1.7
f92c59c
# for prometheus-alerts
0d98ded
BuildRequires:	golang-github-prometheus-prometheus
bde7d23
%endif
565f975
%if 0%{?fedora} || 0%{?rhel}
bcc7f22
Requires:	systemd
624de89
BuildRequires:	boost-devel
0d98ded
BuildRequires:	boost-random
08b7207
BuildRequires:	nss-devel
08b7207
BuildRequires:	keyutils-libs-devel
4c70f88
BuildRequires:	libibverbs-devel
0d98ded
BuildRequires:	librdmacm-devel
0d98ded
BuildRequires:	openldap-devel
0d98ded
#BuildRequires:	krb5-devel
0d98ded
BuildRequires:	openssl-devel
0d98ded
BuildRequires:	CUnit-devel
0d98ded
BuildRequires:	redhat-lsb-core
229de7b
BuildRequires:	python%{python3_pkgversion}-devel
229de7b
BuildRequires:	python%{python3_pkgversion}-setuptools
0d98ded
%if 0%{?rhel} == 7
a384bd1
BuildRequires:	python%{python3_version_nodots}-Cython
a384bd1
%else
229de7b
BuildRequires:	python%{python3_pkgversion}-Cython
a384bd1
%endif
0d98ded
BuildRequires:	python%{python3_pkgversion}-prettytable
0d98ded
BuildRequires:	python%{python3_pkgversion}-sphinx
5846ea0
BuildRequires:	lz4-devel >= 1.7
5846ea0
%endif
4c70f88
# distro-conditional make check dependencies
4c70f88
%if 0%{with make_check}
4c70f88
%if 0%{?fedora} || 0%{?rhel}
0d98ded
BuildRequires:	libtool-ltdl-devel
0d98ded
BuildRequires:	xmlsec1
0d98ded
BuildRequires:	xmlsec1-devel
0d98ded
%ifarch x86_64
0d98ded
BuildRequires:	xmlsec1-nss
0d98ded
%endif
0d98ded
BuildRequires:	xmlsec1-openssl
0d98ded
BuildRequires:	xmlsec1-openssl-devel
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-jwt
26fd4ff
BuildRequires:	python%{python3_version_nodots}-scipy
26fd4ff
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-cherrypy
0d98ded
BuildRequires:	python%{python3_pkgversion}-jwt
0d98ded
BuildRequires:	python%{python3_pkgversion}-routes
0d98ded
BuildRequires:	python%{python3_pkgversion}-scipy
0d98ded
BuildRequires:	python%{python3_pkgversion}-werkzeug
26fd4ff
%endif
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
BuildRequires:	python%{python3_version_nodots}-pyOpenSSL
26fd4ff
%else
0d98ded
BuildRequires:	python%{python3_pkgversion}-pyOpenSSL
0d98ded
%endif
26fd4ff
%endif
0d98ded
%if 0%{?suse_version}
0d98ded
BuildRequires:	libxmlsec1-1
0d98ded
BuildRequires:	libxmlsec1-nss1
0d98ded
BuildRequires:	libxmlsec1-openssl1
0d98ded
BuildRequires:	python%{python3_pkgversion}-CherryPy
0d98ded
BuildRequires:	python%{python3_pkgversion}-PyJWT
0d98ded
BuildRequires:	python%{python3_pkgversion}-Routes
0d98ded
BuildRequires:	python%{python3_pkgversion}-Werkzeug
0d98ded
BuildRequires:	python%{python3_pkgversion}-numpy-devel
0d98ded
BuildRequires:	xmlsec1-devel
0d98ded
BuildRequires:	xmlsec1-openssl-devel
4c70f88
%endif
bcc7f22
%endif
bcc7f22
# lttng and babeltrace for rbd-replay-prep
bde7d23
%if %{with lttng}
bcc7f22
%if 0%{?fedora} || 0%{?rhel}
bcc7f22
BuildRequires:	lttng-ust-devel
bcc7f22
BuildRequires:	libbabeltrace-devel
bcc7f22
%endif
bcc7f22
%if 0%{?suse_version}
bcc7f22
BuildRequires:	lttng-ust-devel
0d98ded
BuildRequires:	babeltrace-devel
bcc7f22
%endif
bcc7f22
%endif
bcc7f22
%if 0%{?suse_version}
bcc7f22
BuildRequires:	libexpat-devel
bcc7f22
%endif
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
bcc7f22
BuildRequires:	expat-devel
bcc7f22
%endif
bde7d23
#hardened-cc1
bde7d23
%if 0%{?fedora} || 0%{?rhel}
0d98ded
BuildRequires:	redhat-rpm-config
bde7d23
%endif
2b3fa8b
%if 0%{with seastar}
2b3fa8b
%if 0%{?fedora} || 0%{?rhel}
0d98ded
BuildRequires:	cryptopp-devel
0d98ded
BuildRequires:	numactl-devel
0d98ded
BuildRequires:	protobuf-compiler
2b3fa8b
%endif
2b3fa8b
%if 0%{?suse_version}
0d98ded
BuildRequires:	libcryptopp-devel
0d98ded
BuildRequires:	libnuma-devel
0d98ded
%endif
2b3fa8b
%endif
0d98ded
%if 0%{?rhel} >= 8
0d98ded
BuildRequires:	/usr/bin/pathfix.py
2b3fa8b
%endif
5dd73cb
08b7207
%description
bcc7f22
Ceph is a massively scalable, open-source, distributed storage system that runs
bcc7f22
on commodity hardware and delivers object, block and file system storage.
9a1331d
d184580
08b7207
#################################################################################
44c0bd8
# subpackages
08b7207
#################################################################################
bde7d23
%package base
0d98ded
Summary:	Ceph Base Package
44c0bd8
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
44c0bd8
%endif
0d98ded
Provides:	ceph-test:/usr/bin/ceph-kvstore-tool
0d98ded
Requires:	ceph-common = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	libcephfs2 = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	librgw2 = %{_epoch_prefix}%{version}-%{release}
bde7d23
%if 0%{with selinux}
0d98ded
Requires:	ceph-selinux = %{_epoch_prefix}%{version}-%{release}
0d98ded
%endif
0d98ded
Requires:	cryptsetup
0d98ded
Requires:	e2fsprogs
0d98ded
Requires:	findutils
0d98ded
Requires:	grep
0d98ded
Requires:	logrotate
0d98ded
Requires:	parted
0d98ded
Requires:	psmisc
0d98ded
Requires:	python%{python3_pkgversion}-setuptools
0d98ded
Requires:	util-linux
0d98ded
Requires:	xfsprogs
0d98ded
Requires:	which
4c70f88
%if 0%{?fedora} || 0%{?rhel}
5846ea0
# The following is necessary due to tracker 36508 and can be removed once the
5846ea0
# associated upstream bugs are resolved.
5846ea0
%if 0%{with tcmalloc}
0d98ded
Requires:	gperftools-libs >= 2.6.1
5846ea0
%endif
4c70f88
%endif
0d98ded
%if 0%{?weak_deps}
0d98ded
Recommends:	chrony
bde7d23
%endif
bde7d23
%description base
bde7d23
Base is the package that includes all the files shared amongst ceph servers
bde7d23
0d98ded
%package -n cephadm
0d98ded
Summary:	Utility to bootstrap Ceph clusters
0d98ded
Requires:	lvm2
26fd4ff
%if 0%{?suse_version}
26fd4ff
Requires:	apparmor-abstractions
26fd4ff
%endif
0d98ded
Requires:	python%{python3_pkgversion}
26fd4ff
%if 0%{?weak_deps}
26fd4ff
Recommends:	podman
26fd4ff
%endif
0d98ded
%description -n cephadm
0d98ded
Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed
0d98ded
with systemd and podman.
0d98ded
4c70f88
%package -n ceph-common
08b7207
Summary:	Ceph Common
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	libcephfs2 = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-rbd = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-cephfs = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-rgw = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
44c0bd8
%if 0%{?fedora} || 0%{?rhel}
0d98ded
Requires:	python%{python3_pkgversion}-prettytable
44c0bd8
%endif
44c0bd8
%if 0%{?suse_version}
0d98ded
Requires:	python%{python3_pkgversion}-PrettyTable
4c70f88
%endif
4c70f88
%if 0%{with libradosstriper}
4c70f88
Requires:	libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
%endif
bcc7f22
%{?systemd_requires}
bcc7f22
%if 0%{?suse_version}
bcc7f22
Requires(pre):	pwdutils
bcc7f22
%endif
4c70f88
%description -n ceph-common
2a379f1
Common utilities to mount and interact with a ceph storage cluster.
bde7d23
Comprised of files that are common to Ceph clients and servers.
bde7d23
bde7d23
%package mds
bde7d23
Summary:	Ceph Metadata Server Daemon
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
bde7d23
%description mds
bde7d23
ceph-mds is the metadata server daemon for the Ceph distributed file system.
bde7d23
One or more instances of ceph-mds collectively manage the file system
bde7d23
namespace, coordinating access to the shared OSD cluster.
bde7d23
bde7d23
%package mon
bde7d23
Summary:	Ceph Monitor Daemon
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
2b3fa8b
Provides:	ceph-test:/usr/bin/ceph-monstore-tool
44c0bd8
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
bde7d23
%description mon
bde7d23
ceph-mon is the cluster monitor daemon for the Ceph distributed file
bde7d23
system. One or more instances of ceph-mon form a Paxos part-time
bde7d23
parliament cluster that provides extremely reliable and durable storage
bde7d23
of cluster membership, configuration, and state.
08b7207
44c0bd8
%package mgr
0d98ded
Summary:	Ceph Manager Daemon
44c0bd8
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
44c0bd8
%endif
0d98ded
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
26fd4ff
Requires:	ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release}
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
Requires:	python%{python3_version_nodots}-six
26fd4ff
%else
0d98ded
Requires:	python%{python3_pkgversion}-six
0d98ded
%endif
0d98ded
%if 0%{?weak_deps}
5846ea0
Recommends:	ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release}
5846ea0
Recommends:	ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release}
5846ea0
Recommends:	ceph-mgr-diskprediction-cloud = %{_epoch_prefix}%{version}-%{release}
a384bd1
Recommends:	ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release}
0d98ded
Recommends:	ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release}
0d98ded
Recommends:	python%{python3_pkgversion}-influxdb
44c0bd8
%endif
44c0bd8
%description mgr
44c0bd8
ceph-mgr enables python modules that provide services (such as the REST
44c0bd8
module derived from Calamari) and expose CLI hooks.  ceph-mgr gathers
44c0bd8
the cluster maps, the daemon metadata, and performance counters, and
44c0bd8
exposes all these to the python modules.
44c0bd8
5846ea0
%package mgr-dashboard
0d98ded
Summary:	Ceph Dashboard
0d98ded
BuildArch:	noarch
5846ea0
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
5846ea0
%endif
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release}
0654a1f
Requires:	ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release}
5846ea0
%if 0%{?fedora} || 0%{?rhel}
0d98ded
Requires:	python%{python3_pkgversion}-cherrypy
0d98ded
Requires:	python%{python3_pkgversion}-jwt
0d98ded
Requires:	python%{python3_pkgversion}-routes
0d98ded
Requires:	python%{python3_pkgversion}-werkzeug
21ae44b
%if 0%{?weak_deps}
21ae44b
Recommends:	python%{python3_pkgversion}-saml
21ae44b
%endif
5846ea0
%endif
5846ea0
%if 0%{?suse_version}
0d98ded
Requires:	python%{python3_pkgversion}-CherryPy
0d98ded
Requires:	python%{python3_pkgversion}-PyJWT
0d98ded
Requires:	python%{python3_pkgversion}-Routes
0d98ded
Requires:	python%{python3_pkgversion}-Werkzeug
21ae44b
Recommends:	python%{python3_pkgversion}-python3-saml
5846ea0
%endif
5846ea0
%description mgr-dashboard
26fd4ff
ceph-mgr-dashboard is a manager module, providing a web-based application
5846ea0
to monitor and manage many aspects of a Ceph cluster and related components.
5846ea0
See the Dashboard documentation at http://docs.ceph.com/ for details and a
5846ea0
detailed feature overview.
5846ea0
5846ea0
%package mgr-diskprediction-local
26fd4ff
Summary:	Ceph Manager module for predicting disk failures
0d98ded
BuildArch:	noarch
5846ea0
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
0d98ded
%endif
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-numpy
0d98ded
Requires:	python%{python3_pkgversion}-scipy
0d98ded
%if 0%{?rhel} == 7
0d98ded
Requires:	numpy
0d98ded
Requires:	scipy
5846ea0
%endif
5846ea0
%description mgr-diskprediction-local
26fd4ff
ceph-mgr-diskprediction-local is a ceph-mgr module that tries to predict
5846ea0
disk failures using local algorithms and machine-learning databases.
5846ea0
5846ea0
%package mgr-diskprediction-cloud
26fd4ff
Summary:	Ceph Manager module for cloud-based disk failure prediction
0d98ded
BuildArch:	noarch
5846ea0
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
5846ea0
%endif
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-grpcio
0d98ded
Requires:	python%{python3_pkgversion}-protobuf
5846ea0
%description mgr-diskprediction-cloud
26fd4ff
ceph-mgr-diskprediction-cloud is a ceph-mgr module that tries to predict
5846ea0
disk failures using services in the Google cloud.
5846ea0
26fd4ff
%package mgr-modules-core
26fd4ff
Summary:	Ceph Manager modules which are always enabled
26fd4ff
BuildArch:	noarch
26fd4ff
%if 0%{?suse_version}
26fd4ff
Group:		System/Filesystems
26fd4ff
%endif
26fd4ff
%if 0%{?rhel} == 7
26fd4ff
Requires:	python%{python3_version_nodots}-bcrypt
26fd4ff
Requires:	python%{python3_version_nodots}-pyOpenSSL
26fd4ff
Requires:	python%{python3_version_nodots}-requests
26fd4ff
Requires:	python%{python3_version_nodots}-PyYAML
26fd4ff
Requires:	python%{python3_version_nodots}-dateutil
26fd4ff
%else
26fd4ff
Requires:	python%{python3_pkgversion}-bcrypt
26fd4ff
Requires:	python%{python3_pkgversion}-pecan
26fd4ff
Requires:	python%{python3_pkgversion}-pyOpenSSL
26fd4ff
Requires:	python%{python3_pkgversion}-requests
26fd4ff
Requires:	python%{python3_pkgversion}-dateutil
26fd4ff
%endif
26fd4ff
%if 0%{?fedora} || 0%{?rhel} >= 8
26fd4ff
Requires:	python%{python3_pkgversion}-cherrypy
26fd4ff
Requires:	python%{python3_pkgversion}-pyyaml
26fd4ff
Requires:	python%{python3_pkgversion}-werkzeug
26fd4ff
%endif
26fd4ff
%if 0%{?suse_version}
26fd4ff
Requires:	python%{python3_pkgversion}-CherryPy
26fd4ff
Requires:	python%{python3_pkgversion}-PyYAML
26fd4ff
Requires:	python%{python3_pkgversion}-Werkzeug
26fd4ff
%endif
26fd4ff
%if 0%{?weak_deps}
26fd4ff
Recommends:	ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release}
26fd4ff
%endif
26fd4ff
%description mgr-modules-core
26fd4ff
ceph-mgr-modules-core provides a set of modules which are always
26fd4ff
enabled by ceph-mgr.
26fd4ff
5846ea0
%package mgr-rook
0d98ded
BuildArch:	noarch
26fd4ff
Summary:	Ceph Manager module for Rook-based orchestration
5846ea0
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
5846ea0
%endif
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-kubernetes
26fd4ff
Requires:	python%{python3_pkgversion}-jsonpatch
5846ea0
%description mgr-rook
26fd4ff
ceph-mgr-rook is a ceph-mgr module for orchestration functions using
5846ea0
a Rook backend.
5846ea0
a384bd1
%package mgr-k8sevents
a384bd1
BuildArch:	noarch
26fd4ff
Summary:	Ceph Manager module to orchestrate ceph-events to kubernetes' events API
a384bd1
%if 0%{?suse_version}
a384bd1
Group:		System/Filesystems
a384bd1
%endif
a384bd1
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-kubernetes
a384bd1
%description mgr-k8sevents
26fd4ff
ceph-mgr-k8sevents is a ceph-mgr module that sends every ceph-events
a384bd1
to kubernetes' events API
a384bd1
0d98ded
%package mgr-cephadm
26fd4ff
Summary:	Ceph Manager module for cephadm-based orchestration
5846ea0
BuildArch:	noarch
5846ea0
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
5846ea0
%endif
0d98ded
Requires:	ceph-mgr = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	python%{python3_pkgversion}-remoto
0d98ded
Requires:	cephadm = %{_epoch_prefix}%{version}-%{release}
0d98ded
%if 0%{?suse_version}
0d98ded
Requires:	openssh
0d98ded
%endif
0d98ded
%if 0%{?rhel} || 0%{?fedora}
0d98ded
Requires:	openssh-clients
0d98ded
%endif
0d98ded
%description mgr-cephadm
0d98ded
ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
0d98ded
the integrated cephadm deployment tool management operations.
5846ea0
08b7207
%package fuse
08b7207
Summary:	Ceph fuse-based client
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
0d98ded
Requires:	fuse
5846ea0
Requires:	python%{python3_pkgversion}
08b7207
%description fuse
5dd73cb
FUSE based client for Ceph distributed network file system
5dd73cb
08b7207
%package -n rbd-fuse
08b7207
Summary:	Ceph fuse-based client
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
08b7207
%description -n rbd-fuse
08b7207
FUSE based client to map Ceph rbd images to files
08b7207
bde7d23
%package -n rbd-mirror
bde7d23
Summary:	Ceph daemon for mirroring RBD images
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
5846ea0
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
5846ea0
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
bde7d23
%description -n rbd-mirror
bde7d23
Daemon for mirroring RBD images between Ceph clusters, streaming
bde7d23
changes asynchronously.
bde7d23
0d98ded
%package immutable-object-cache
0d98ded
Summary:	Ceph daemon for immutable object cache
0d98ded
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
0d98ded
%endif
0d98ded
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
0d98ded
%description immutable-object-cache
0d98ded
Daemon for immutable object cache.
0d98ded
bde7d23
%package -n rbd-nbd
bde7d23
Summary:	Ceph RBD client base on NBD
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
bde7d23
%description -n rbd-nbd
bde7d23
NBD based client to map Ceph rbd images to local device
bde7d23
Josef Bacik ca6b4d7
%package radosgw
08b7207
Summary:	Rados REST gateway
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
5846ea0
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
bcc7f22
%if 0%{with selinux}
44c0bd8
Requires:	ceph-selinux = %{_epoch_prefix}%{version}-%{release}
bcc7f22
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librgw2 = %{_epoch_prefix}%{version}-%{release}
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
bcc7f22
Requires:	mailcap
08b7207
%endif
Josef Bacik ca6b4d7
%description radosgw
bde7d23
RADOS is a distributed object store used by the Ceph distributed
bde7d23
storage system.  This package provides a REST gateway to the
bde7d23
object store that aims to implement a superset of Amazon's S3
bde7d23
service as well as the OpenStack Object Storage ("Swift") API.
Josef Bacik ca6b4d7
08b7207
%if %{with ocf}
08b7207
%package resource-agents
08b7207
Summary:	OCF-compliant resource agents for Ceph daemons
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	ceph-base = %{_epoch_prefix}%{version}
08b7207
Requires:	resource-agents
08b7207
%description resource-agents
08b7207
Resource agents for monitoring and managing Ceph daemons
08b7207
under Open Cluster Framework (OCF) compliant resource
08b7207
managers such as Pacemaker.
08b7207
%endif
9a1331d
bde7d23
%package osd
bde7d23
Summary:	Ceph Object Storage Daemon
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
2b3fa8b
Provides:	ceph-test:/usr/bin/ceph-osdomap-tool
44c0bd8
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
4c70f88
Requires:	lvm2
2b3fa8b
Requires:	sudo
295d99c
Requires:	libstoragemgmt
bde7d23
%description osd
bde7d23
ceph-osd is the object storage daemon for the Ceph distributed file
bde7d23
system.  It is responsible for storing objects on a local file system
bde7d23
and providing access to them over the network.
bde7d23
0d98ded
%if 0%{with seastar}
0d98ded
%package crimson-osd
0d98ded
Summary:	Ceph Object Storage Daemon (crimson)
0d98ded
%if 0%{?suse_version}
0d98ded
Group:		System/Filesystems
0d98ded
%endif
0d98ded
Requires:	ceph-osd = %{_epoch_prefix}%{version}-%{release}
0d98ded
%description crimson-osd
0d98ded
crimson-osd is the object storage daemon for the Ceph distributed file
0d98ded
system.  It is responsible for storing objects on a local file system
0d98ded
and providing access to them over the network.
0d98ded
%endif
0d98ded
08b7207
%package -n librados2
08b7207
Summary:	RADOS distributed object store client library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
44c0bd8
Obsoletes:	ceph-libs < %{_epoch_prefix}%{version}-%{release}
9a1331d
%endif
08b7207
%description -n librados2
08b7207
RADOS is a reliable, autonomic distributed object storage cluster
08b7207
developed as part of the Ceph distributed storage system. This is a
08b7207
shared library allowing applications to access the distributed object
08b7207
store using a simple file-like interface.
08b7207
c342c97
%package -n librados-devel
7da3554
Summary:	RADOS headers
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	ceph-devel < %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	librados2-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	librados2-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n librados-devel
5846ea0
This package contains C libraries and headers needed to develop programs
5846ea0
that use RADOS object store.
5846ea0
5846ea0
%package -n libradospp-devel
5846ea0
Summary:	RADOS headers
5846ea0
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
5846ea0
%endif
5846ea0
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
5846ea0
Requires:	librados-devel = %{_epoch_prefix}%{version}-%{release}
5846ea0
%description -n libradospp-devel
5846ea0
This package contains C++ libraries and headers needed to develop programs
7da3554
that use RADOS object store.
7da3554
bde7d23
%package -n librgw2
bde7d23
Summary:	RADOS gateway client library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
bde7d23
%description -n librgw2
bde7d23
This package provides a library implementation of the RADOS gateway
bde7d23
(distributed object store with S3 and Swift personalities).
bde7d23
c342c97
%package -n librgw-devel
bde7d23
Summary:	RADOS gateway client library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
44c0bd8
%endif
44c0bd8
Requires:	librados-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librgw2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	librgw2-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	librgw2-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n librgw-devel
bde7d23
This package contains libraries and headers needed to develop programs
bde7d23
that use RADOS gateway client library.
bde7d23
44c0bd8
%package -n python%{python3_pkgversion}-rgw
44c0bd8
Summary:	Python 3 libraries for the RADOS gateway
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Python
44c0bd8
%endif
44c0bd8
Requires:	librgw2 = %{_epoch_prefix}%{version}-%{release}
4c70f88
Requires:	python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
a384bd1
%{?python_provide:%python_provide python%{python3_pkgversion}-rgw}
a384bd1
Provides:	python-rgw = %{_epoch_prefix}%{version}-%{release}
a384bd1
Obsoletes:	python-rgw < %{_epoch_prefix}%{version}-%{release}
44c0bd8
%description -n python%{python3_pkgversion}-rgw
44c0bd8
This package contains Python 3 libraries for interacting with Cephs RADOS
44c0bd8
gateway.
44c0bd8
44c0bd8
%package -n python%{python3_pkgversion}-rados
44c0bd8
Summary:	Python 3 libraries for the RADOS object store
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Python
44c0bd8
%endif
4c70f88
Requires:	python%{python3_pkgversion}
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
a384bd1
%{?python_provide:%python_provide python%{python3_pkgversion}-rados}
f92c59c
Provides:	python-rados = %{_epoch_prefix}%{version}-%{release}
f92c59c
Obsoletes:	python-rados < %{_epoch_prefix}%{version}-%{release}
44c0bd8
%description -n python%{python3_pkgversion}-rados
44c0bd8
This package contains Python 3 libraries for interacting with Cephs RADOS
7da3554
object store.
7da3554
4c70f88
%if 0%{with libradosstriper}
3b0b0e0
%package -n libradosstriper1
d8048b5
Summary:	RADOS striping interface
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
3b0b0e0
%description -n libradosstriper1
3b0b0e0
Striping interface built on top of the rados library, allowing
3b0b0e0
to stripe bigger objects onto several standard rados objects using
3b0b0e0
an interface very similar to the rados one.
3b0b0e0
c342c97
%package -n libradosstriper-devel
d8048b5
Summary:	RADOS striping interface headers
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
44c0bd8
%endif
44c0bd8
Requires:	libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librados-devel = %{_epoch_prefix}%{version}-%{release}
5846ea0
Requires:	libradospp-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	ceph-devel < %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n libradosstriper-devel
3b0b0e0
This package contains libraries and headers needed to develop programs
3b0b0e0
that use RADOS striping interface.
4c70f88
%endif
3b0b0e0
08b7207
%package -n librbd1
08b7207
Summary:	RADOS block device client library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
44c0bd8
Requires:	librados2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
%if 0%{?suse_version}
44c0bd8
Requires(post): coreutils
44c0bd8
%endif
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
44c0bd8
Obsoletes:	ceph-libs < %{_epoch_prefix}%{version}-%{release}
9a1331d
%endif
08b7207
%description -n librbd1
08b7207
RBD is a block device striped across multiple distributed objects in
08b7207
RADOS, a reliable, autonomic distributed object storage cluster
08b7207
developed as part of the Ceph distributed storage system. This is a
08b7207
shared library allowing applications to manage these block devices.
9a1331d
c342c97
%package -n librbd-devel
7da3554
Summary:	RADOS block device headers
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
44c0bd8
%endif
44c0bd8
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librados-devel = %{_epoch_prefix}%{version}-%{release}
5846ea0
Requires:	libradospp-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	ceph-devel < %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	librbd1-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	librbd1-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n librbd-devel
7da3554
This package contains libraries and headers needed to develop programs
7da3554
that use RADOS block device.
7da3554
44c0bd8
%package -n python%{python3_pkgversion}-rbd
44c0bd8
Summary:	Python 3 libraries for the RADOS block device
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Python
44c0bd8
%endif
44c0bd8
Requires:	librbd1 = %{_epoch_prefix}%{version}-%{release}
4c70f88
Requires:	python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
a384bd1
%{?python_provide:%python_provide python%{python3_pkgversion}-rbd}
f92c59c
Provides:	python-rbd = %{_epoch_prefix}%{version}-%{release}
f92c59c
Obsoletes:	python-rbd < %{_epoch_prefix}%{version}-%{release}
44c0bd8
%description -n python%{python3_pkgversion}-rbd
44c0bd8
This package contains Python 3 libraries for interacting with Cephs RADOS
44c0bd8
block device.
44c0bd8
44c0bd8
%package -n libcephfs2
08b7207
Summary:	Ceph distributed file system client library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
0d98ded
Obsoletes:	libcephfs1 < %{_epoch_prefix}%{version}-%{release}
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
44c0bd8
Obsoletes:	ceph-libs < %{_epoch_prefix}%{version}-%{release}
0d98ded
Obsoletes:	ceph-libcephfs < %{_epoch_prefix}%{version}-%{release}
4be65c2
%endif
44c0bd8
%description -n libcephfs2
08b7207
Ceph is a distributed network file system designed to provide excellent
08b7207
performance, reliability, and scalability. This is a shared library
08b7207
allowing applications to access a Ceph distributed file system via a
08b7207
POSIX-like interface.
08b7207
c342c97
%package -n libcephfs-devel
7da3554
Summary:	Ceph distributed file system headers
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
44c0bd8
%endif
44c0bd8
Requires:	libcephfs2 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Requires:	librados-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	ceph-devel < %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	libcephfs2-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	libcephfs2-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n libcephfs-devel
7da3554
This package contains libraries and headers needed to develop programs
7da3554
that use Cephs distributed file system.
7da3554
44c0bd8
%package -n python%{python3_pkgversion}-cephfs
44c0bd8
Summary:	Python 3 libraries for Ceph distributed file system
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Python
44c0bd8
%endif
44c0bd8
Requires:	libcephfs2 = %{_epoch_prefix}%{version}-%{release}
4c70f88
Requires:	python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
2b3fa8b
Requires:	python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
a384bd1
%{?python_provide:%python_provide python%{python3_pkgversion}-cephfs}
f92c59c
Provides:	python-cephfs = %{_epoch_prefix}%{version}-%{release}
f92c59c
Obsoletes:	python-cephfs < %{_epoch_prefix}%{version}-%{release}
44c0bd8
%description -n python%{python3_pkgversion}-cephfs
44c0bd8
This package contains Python 3 libraries for interacting with Cephs distributed
7da3554
file system.
08b7207
44c0bd8
%package -n python%{python3_pkgversion}-ceph-argparse
44c0bd8
Summary:	Python 3 utility libraries for Ceph CLI
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Python
44c0bd8
%endif
a384bd1
%{?python_provide:%python_provide python%{python3_pkgversion}-ceph-argparse}
44c0bd8
%description -n python%{python3_pkgversion}-ceph-argparse
44c0bd8
This package contains types and routines for Python 3 used by the Ceph CLI as
44c0bd8
well as the RESTful interface. These have to do with querying the daemons for
44c0bd8
command-description information, validating user command input against those
44c0bd8
descriptions, and submitting the command to the appropriate daemon.
2b3fa8b
0d98ded
%package -n python%{python3_pkgversion}-ceph-common
0d98ded
Summary:	Python 3 utility libraries for Ceph
0d98ded
%if 0%{?suse_version}
0d98ded
Group:		Development/Libraries/Python
0d98ded
%endif
0d98ded
%{?python_provide:%python_provide python%{python3_pkgversion}-ceph-common}
0d98ded
%description -n python%{python3_pkgversion}-ceph-common
0d98ded
This package contains data structures, classes and functions used by Ceph.
0d98ded
It also contains utilities used for the cephadm orchestrator.
0d98ded
2b3fa8b
%if 0%{with cephfs_shell}
2b3fa8b
%package -n cephfs-shell
0d98ded
Summary:	Interactive shell for Ceph file system
0d98ded
Requires:	python%{python3_pkgversion}-cmd2
0d98ded
Requires:	python%{python3_pkgversion}-colorama
0d98ded
Requires:	python%{python3_pkgversion}-cephfs
2b3fa8b
%description -n cephfs-shell
2b3fa8b
This package contains an interactive tool that allows accessing a Ceph
2b3fa8b
file system without mounting it  by providing a nice pseudo-shell which
2b3fa8b
works like an FTP client.
4c70f88
%endif
44c0bd8
44c0bd8
%if 0%{with ceph_test_package}
b318545
%package -n ceph-test
b318545
Summary:	Ceph benchmarks and test tools
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Benchmark
44c0bd8
%endif
d40e5a4
Requires:	ceph-common = %{_epoch_prefix}%{version}-%{release}
bcc7f22
Requires:	xmlstarlet
44c0bd8
Requires:	jq
6d95105
Requires:	socat
21ae44b
BuildRequires:	gtest-devel
21ae44b
BuildRequires:	gmock-devel
b318545
%description -n ceph-test
b318545
This package contains Ceph benchmarks and test tools.
44c0bd8
%endif
b318545
bcc7f22
%if 0%{with cephfs_java}
bcc7f22
b318545
%package -n libcephfs_jni1
bcc7f22
Summary:	Java Native Interface library for CephFS Java bindings
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
b318545
Requires:	java
44c0bd8
Requires:	libcephfs2 = %{_epoch_prefix}%{version}-%{release}
b318545
%description -n libcephfs_jni1
b318545
This package contains the Java Native Interface library for CephFS Java
b318545
bindings.
b318545
c342c97
%package -n libcephfs_jni-devel
bcc7f22
Summary:	Development files for CephFS Java Native Interface library
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/Java
44c0bd8
%endif
7da3554
Requires:	java
44c0bd8
Requires:	libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	ceph-devel < %{_epoch_prefix}%{version}-%{release}
44c0bd8
Provides:	libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
Obsoletes:	libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release}
c342c97
%description -n libcephfs_jni-devel
7da3554
This package contains the development files for CephFS Java Native Interface
7da3554
library.
7da3554
b318545
%package -n cephfs-java
bcc7f22
Summary:	Java libraries for the Ceph File System
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Libraries
44c0bd8
%endif
b318545
Requires:	java
44c0bd8
Requires:	libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
0d98ded
Requires:	junit
0d98ded
BuildRequires:	junit
b318545
%description -n cephfs-java
b318545
This package contains the Java libraries for the Ceph File System.
b318545
bcc7f22
%endif
bcc7f22
44c0bd8
%package -n rados-objclass-devel
0d98ded
Summary:	RADOS object class development kit
4c70f88
%if 0%{?suse_version}
5846ea0
Group:		Development/Libraries/C and C++
4c70f88
%endif
0d98ded
Requires:	libradospp-devel = %{_epoch_prefix}%{version}-%{release}
44c0bd8
%description -n rados-objclass-devel
44c0bd8
This package contains libraries and headers needed to develop RADOS object
44c0bd8
class plugins.
44c0bd8
bcc7f22
%if 0%{with selinux}
bcc7f22
bcc7f22
%package selinux
bcc7f22
Summary:	SELinux support for Ceph MON, OSD and MDS
44c0bd8
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
44c0bd8
%endif
44c0bd8
Requires:	ceph-base = %{_epoch_prefix}%{version}-%{release}
bcc7f22
Requires:	policycoreutils, libselinux-utils
44c0bd8
Requires(post):	ceph-base = %{_epoch_prefix}%{version}-%{release}
bcc7f22
Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk
bcc7f22
Requires(postun): policycoreutils
bcc7f22
%description selinux
bcc7f22
This package contains SELinux support for Ceph MON, OSD and MDS. The package
bcc7f22
also performs file-system relabelling which can take a long time on heavily
bcc7f22
populated file-systems.
bcc7f22
bcc7f22
%endif
bcc7f22
5846ea0
%package grafana-dashboards
5846ea0
Summary:	The set of Grafana dashboards for monitoring purposes
5846ea0
BuildArch:	noarch
5846ea0
%if 0%{?suse_version}
5846ea0
Group:		System/Filesystems
5846ea0
%endif
5846ea0
%description grafana-dashboards
5846ea0
This package provides a set of Grafana dashboards for monitoring of
5846ea0
Ceph clusters. The dashboards require a Prometheus server setup
5846ea0
collecting data from Ceph Manager "prometheus" module and Prometheus
5846ea0
project "node_exporter" module. The dashboards are designed to be
5846ea0
integrated with the Ceph Manager Dashboard web UI.
5846ea0
f92c59c
%package prometheus-alerts
0d98ded
Summary:	Prometheus alerts for a Ceph deplyoment
0d98ded
BuildArch:	noarch
0d98ded
Group:		System/Monitoring
f92c59c
%description prometheus-alerts
f92c59c
This package provides Ceph’s default alerts for Prometheus.
f92c59c
08b7207
#################################################################################
08b7207
# common
08b7207
#################################################################################
08b7207
%prep
6ad252c
%autosetup -p1
ef8dc61
%ifarch x86_64
ef8dc61
patch -p1 < %{SOURCE1}
ef8dc61
%endif
08b7207
08b7207
%build
f92c59c
# LTO can be enabled as soon as the following GCC bug is fixed:
f92c59c
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
f92c59c
%define _lto_cflags %{nil}
4c70f88
4c70f88
%if 0%{?rhel} == 7
a384bd1
. /opt/rh/devtoolset-8/enable
4c70f88
%endif
4c70f88
bcc7f22
%if 0%{with cephfs_java}
08b7207
# Find jni.h
08b7207
for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do
08b7207
    [ -d $i ] && java_inc="$java_inc -I$i"
08b7207
done
bcc7f22
%endif
08b7207
4c70f88
%if 0%{?suse_version}
4c70f88
# the following setting fixed an OOM condition we once encountered in the OBS
bcc7f22
RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768"
5311ad2
%endif
4c70f88
44c0bd8
export CPPFLAGS="$java_inc"
44c0bd8
export CFLAGS="$RPM_OPT_FLAGS"
44c0bd8
export CXXFLAGS="$RPM_OPT_FLAGS"
f8d1aef
export LDFLAGS="$RPM_LD_FLAGS"
44c0bd8
4c70f88
# Parallel build settings ...
4c70f88
CEPH_MFLAGS_JOBS="%{?_smp_mflags}"
4c70f88
CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//')
4c70f88
%if 0%{?__isa_bits} == 32
4c70f88
# 32-bit builds can use 3G memory max, which is not enough even for -j2
4c70f88
CEPH_SMP_NCPUS="1"
4c70f88
%endif
4c70f88
# do not eat all memory
4c70f88
echo "Available memory:"
4c70f88
free -h
4c70f88
echo "System limits:"
4c70f88
ulimit -a
4c70f88
if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then
e14ca57
    mem_per_process=2700
4c70f88
    max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p")
4c70f88
    max_jobs="$(($max_mem / $mem_per_process))"
4c70f88
    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"
4c70f88
    test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits"
4c70f88
fi
4c70f88
export CEPH_SMP_NCPUS
4c70f88
export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS"
9b4d322
4c70f88
env | sort
9b4d322
44c0bd8
mkdir build
44c0bd8
cd build
2b3fa8b
%if 0%{?rhel} == 7
fcfe376
%global cmake cmake3
2b3fa8b
%endif
fcfe376
%{cmake} .. \
621cf4d
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
621cf4d
    -DBUILD_CONFIG=rpmbuild \
26fd4ff
    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
26fd4ff
    -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
44c0bd8
    -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \
44c0bd8
    -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \
44c0bd8
    -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \
44c0bd8
    -DCMAKE_INSTALL_MANDIR=%{_mandir} \
44c0bd8
    -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \
0d98ded
    -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
44c0bd8
    -DWITH_MANPAGE=ON \
229de7b
    -DWITH_PYTHON3=%{python3_version} \
4c70f88
    -DWITH_MGR_DASHBOARD_FRONTEND=OFF \
44c0bd8
%if 0%{without ceph_test_package}
44c0bd8
    -DWITH_TESTS=OFF \
bcc7f22
%endif
44c0bd8
%if 0%{with cephfs_java}
44c0bd8
    -DWITH_CEPHFS_JAVA=ON \
bde7d23
%endif
44c0bd8
%if 0%{with selinux}
44c0bd8
    -DWITH_SELINUX=ON \
20b0b2e
%endif
44c0bd8
%if %{with lttng}
44c0bd8
    -DWITH_LTTNG=ON \
673fccf
    -DWITH_BABELTRACE=ON \
44c0bd8
%else
44c0bd8
    -DWITH_LTTNG=OFF \
673fccf
    -DWITH_BABELTRACE=OFF \
44c0bd8
%endif
44c0bd8
    $CEPH_EXTRA_CMAKE_ARGS \
44c0bd8
%if 0%{with ocf}
44c0bd8
    -DWITH_OCF=ON \
bde7d23
%endif
0e58e2f
    -DWITH_SYSTEM_BOOST=ON \
44c0bd8
%ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64
2b3fa8b
    -DWITH_BOOST_CONTEXT=ON \
44c0bd8
%else
2b3fa8b
    -DWITH_BOOST_CONTEXT=OFF \
bde7d23
%endif
2b3fa8b
%if 0%{with cephfs_shell}
2b3fa8b
    -DWITH_CEPHFS_SHELL=ON \
bcc0c89
%endif
4c70f88
%if 0%{with libradosstriper}
4c70f88
    -DWITH_LIBRADOSSTRIPER=ON \
4c70f88
%else
4c70f88
    -DWITH_LIBRADOSSTRIPER=OFF \
4c70f88
%endif
5846ea0
%if 0%{with amqp_endpoint}
5846ea0
    -DWITH_RADOSGW_AMQP_ENDPOINT=ON \
5846ea0
%else
5846ea0
    -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
5846ea0
%endif
0d98ded
%if 0%{with kafka_endpoint}
0d98ded
    -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \
0d98ded
%else
0d98ded
    -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
0d98ded
%endif
26fd4ff
%if 0%{with cmake_verbose_logging}
26fd4ff
    -DCMAKE_VERBOSE_MAKEFILE=ON \
26fd4ff
%endif
5846ea0
    -DBOOST_J=$CEPH_SMP_NCPUS \
21ae44b
%if 0%{with ceph_test_package}
21ae44b
    -DWITH_SYSTEM_GTEST=ON \
21ae44b
%endif
5846ea0
    -DWITH_GRAFANA=ON
bcc7f22
26fd4ff
%if %{with cmake_verbose_logging}
26fd4ff
cat ./CMakeFiles/CMakeOutput.log
26fd4ff
cat ./CMakeFiles/CMakeError.log
26fd4ff
%endif
26fd4ff
5ca8195
export VERBOSE=1
5ca8195
export V=1
4c70f88
make "$CEPH_MFLAGS_JOBS"
bcc7f22
9094835
44c0bd8
%if 0%{with make_check}
bcc7f22
%check
bcc7f22
# run in-tree unittests
e559532
# cd build
e559532
# ctest "$CEPH_MFLAGS_JOBS"
560f971
%endif
Jonathan Dieter 0f5f195
bcc7f22
5dd73cb
%install
44c0bd8
pushd build
dadf49c
make DESTDIR=%{buildroot} install
44c0bd8
# we have dropped sysvinit bits
44c0bd8
rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph
44c0bd8
popd
44c0bd8
install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
bcc7f22
%if 0%{?fedora} || 0%{?rhel}
dadf49c
install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph
bcc7f22
%endif
bcc7f22
%if 0%{?suse_version}
4c70f88
install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name}
bcc7f22
%endif
dadf49c
install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf
dadf49c
install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset
dadf49c
mkdir -p %{buildroot}%{_sbindir}
dadf49c
install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph
dadf49c
chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf
44c0bd8
install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING
d40e5a4
install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf
08b7207
0d98ded
install -m 0755 src/cephadm/cephadm %{buildroot}%{_sbindir}/cephadm
0d98ded
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm
0d98ded
chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm
0d98ded
mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh
0d98ded
chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm/.ssh
0d98ded
touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
0d98ded
chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
0d98ded
8d319bc
# firewall templates and /sbin/mount.ceph symlink
bcc7f22
%if 0%{?suse_version}
8d319bc
mkdir -p %{buildroot}/sbin
8d319bc
ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
08b7207
%endif
08b7207
bcc7f22
# udev rules
dadf49c
install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules
2b3fa8b
2b3fa8b
# sudoers.d
2b3fa8b
install -m 0600 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl
0d98ded
install -m 0600 -D sudoers.d/cephadm %{buildroot}%{_sysconfdir}/sudoers.d/cephadm
0d98ded
0d98ded
%if 0%{?rhel} >= 8
0d98ded
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/*
0d98ded
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_sbindir}/*
0d98ded
%endif
08b7207
08b7207
#set up placeholder directories
dadf49c
mkdir -p %{buildroot}%{_sysconfdir}/ceph
4c70f88
mkdir -p %{buildroot}%{_localstatedir}/run/ceph
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/log/ceph
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds
44c0bd8
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr
2b3fa8b
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash
2b3fa8b
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds
dadf49c
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw
44c0bd8
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr
565f975
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd
5846ea0
mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
44c0bd8
0654a1f
# prometheus alerts
0654a1f
install -m 644 -D monitoring/prometheus/alerts/ceph_default_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml
0654a1f
44c0bd8
%if 0%{?suse_version}
44c0bd8
# create __pycache__ directories and their contents
44c0bd8
%py3_compile %{buildroot}%{python3_sitelib}
a384bd1
# hardlink duplicate files under /usr to save space
a384bd1
%fdupes %{buildroot}%{_prefix}
44c0bd8
%endif
0d98ded
5846ea0
%if 0%{?rhel} == 8
5846ea0
%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}
5846ea0
%endif
08b7207
bde7d23
#################################################################################
bde7d23
# files and systemd scriptlets
bde7d23
#################################################################################
bde7d23
%files
bde7d23
bde7d23
%files base
2b3fa8b
%{_bindir}/ceph-crash
bde7d23
%{_bindir}/crushtool
bde7d23
%{_bindir}/monmaptool
bde7d23
%{_bindir}/osdmaptool
d40e5a4
%{_bindir}/ceph-kvstore-tool
bde7d23
%{_bindir}/ceph-run
e5a890a
%{_libexecdir}/systemd/system-preset/50-ceph.preset
bde7d23
%{_sbindir}/ceph-create-keys
bde7d23
%dir %{_libexecdir}/ceph
bde7d23
%{_libexecdir}/ceph/ceph_common.sh
bde7d23
%dir %{_libdir}/rados-classes
bde7d23
%{_libdir}/rados-classes/*
bde7d23
%dir %{_libdir}/ceph
bde7d23
%dir %{_libdir}/ceph/erasure-code
bde7d23
%{_libdir}/ceph/erasure-code/libec_*.so*
bde7d23
%dir %{_libdir}/ceph/compressor
bde7d23
%{_libdir}/ceph/compressor/libceph_*.so*
2b3fa8b
%{_unitdir}/ceph-crash.service
44c0bd8
%dir %{_libdir}/ceph/crypto
44c0bd8
%{_libdir}/ceph/crypto/libceph_*.so*
bde7d23
%if %{with lttng}
bde7d23
%{_libdir}/libos_tp.so*
bde7d23
%{_libdir}/libosd_tp.so*
bde7d23
%endif
bde7d23
%config(noreplace) %{_sysconfdir}/logrotate.d/ceph
bde7d23
%if 0%{?fedora} || 0%{?rhel}
bde7d23
%config(noreplace) %{_sysconfdir}/sysconfig/ceph
bde7d23
%endif
bde7d23
%if 0%{?suse_version}
4c70f88
%{_fillupdir}/sysconfig.*
bde7d23
%endif
bde7d23
%{_unitdir}/ceph.target
4c70f88
%dir %{python3_sitelib}/ceph_volume
4c70f88
%{python3_sitelib}/ceph_volume/*
4c70f88
%{python3_sitelib}/ceph_volume-*
bde7d23
%{_mandir}/man8/ceph-deploy.8*
bde7d23
%{_mandir}/man8/ceph-create-keys.8*
bde7d23
%{_mandir}/man8/ceph-run.8*
bde7d23
%{_mandir}/man8/crushtool.8*
bde7d23
%{_mandir}/man8/osdmaptool.8*
bde7d23
%{_mandir}/man8/monmaptool.8*
d40e5a4
%{_mandir}/man8/ceph-kvstore-tool.8*
bde7d23
#set up placeholder directories
2b3fa8b
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash
2b3fa8b
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash/posted
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw
44c0bd8
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr
565f975
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd
5846ea0
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
bde7d23
bde7d23
%post base
4c70f88
/sbin/ldconfig
e5a890a
%if 0%{?suse_version}
e5a890a
%fillup_only
44c0bd8
if [ $1 -eq 1 ] ; then
2b3fa8b
/usr/bin/systemctl preset ceph.target ceph-crash.service >/dev/null 2>&1 || :
e5a890a
fi
bcc7f22
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
2b3fa8b
%systemd_post ceph.target ceph-crash.service
e5a890a
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
2b3fa8b
/usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || :
44c0bd8
fi
5dd73cb
bde7d23
%preun base
e5a890a
%if 0%{?suse_version}
2b3fa8b
%service_del_preun ceph.target ceph-crash.service
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
2b3fa8b
%systemd_preun ceph.target ceph-crash.service
08b7207
%endif
5dd73cb
bde7d23
%postun base
4c70f88
/sbin/ldconfig
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
2b3fa8b
%service_del_postun ceph.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
2b3fa8b
%systemd_postun ceph.target
08b7207
%endif
0d98ded
if [ $1 -ge 1 ] ; then
44c0bd8
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
44c0bd8
  # "yes". In any case: if units are not running, do not touch them.
44c0bd8
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
44c0bd8
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
44c0bd8
    source $SYSCONF_CEPH
44c0bd8
  fi
44c0bd8
fi
5dd73cb
0d98ded
%pre -n cephadm
0d98ded
getent group cephadm >/dev/null || groupadd -r cephadm
0d98ded
getent passwd cephadm >/dev/null || useradd -r -g cephadm -s /bin/bash -c "cephadm user for mgr/cephadm" -d %{_sharedstatedir}/cephadm cephadm
0d98ded
exit 0
0d98ded
0d98ded
%if ! 0%{?suse_version}
0d98ded
%postun -n cephadm
0d98ded
userdel -r cephadm || true
0d98ded
exit 0
0d98ded
%endif
0d98ded
0d98ded
%files -n cephadm
0d98ded
%{_sbindir}/cephadm
21ae44b
%{_mandir}/man8/cephadm.8*
0d98ded
%{_sysconfdir}/sudoers.d/cephadm
0d98ded
%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm
0d98ded
%attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm/.ssh
0d98ded
%attr(0600,cephadm,cephadm) %{_sharedstatedir}/cephadm/.ssh/authorized_keys
0d98ded
bde7d23
%files common
44c0bd8
%dir %{_docdir}/ceph
44c0bd8
%doc %{_docdir}/ceph/sample.ceph.conf
5846ea0
%license %{_docdir}/ceph/COPYING
08b7207
%{_bindir}/ceph
08b7207
%{_bindir}/ceph-authtool
08b7207
%{_bindir}/ceph-conf
08b7207
%{_bindir}/ceph-dencoder
2a379f1
%{_bindir}/ceph-rbdnamer
08b7207
%{_bindir}/ceph-syn
bde7d23
%{_bindir}/cephfs-data-scan
bde7d23
%{_bindir}/cephfs-journal-tool
bde7d23
%{_bindir}/cephfs-table-tool
08b7207
%{_bindir}/rados
44c0bd8
%{_bindir}/radosgw-admin
08b7207
%{_bindir}/rbd
bcc7f22
%{_bindir}/rbd-replay
bcc7f22
%{_bindir}/rbd-replay-many
bde7d23
%{_bindir}/rbdmap
8d319bc
%{_sbindir}/mount.ceph
8d319bc
%if 0%{?suse_version}
8d319bc
/sbin/mount.ceph
8d319bc
%endif
bde7d23
%if %{with lttng}
bcc7f22
%{_bindir}/rbd-replay-prep
bcc7f22
%endif
08b7207
%{_bindir}/ceph-post-file
bcc7f22
%{_tmpfilesdir}/ceph-common.conf
08b7207
%{_mandir}/man8/ceph-authtool.8*
08b7207
%{_mandir}/man8/ceph-conf.8*
9a1331d
%{_mandir}/man8/ceph-dencoder.8*
2a379f1
%{_mandir}/man8/ceph-rbdnamer.8*
08b7207
%{_mandir}/man8/ceph-syn.8*
9a1331d
%{_mandir}/man8/ceph-post-file.8*
08b7207
%{_mandir}/man8/ceph.8*
8d319bc
%{_mandir}/man8/mount.ceph.8*
08b7207
%{_mandir}/man8/rados.8*
44c0bd8
%{_mandir}/man8/radosgw-admin.8*
08b7207
%{_mandir}/man8/rbd.8*
bde7d23
%{_mandir}/man8/rbdmap.8*
bcc7f22
%{_mandir}/man8/rbd-replay.8*
bcc7f22
%{_mandir}/man8/rbd-replay-many.8*
bcc7f22
%{_mandir}/man8/rbd-replay-prep.8*
bde7d23
%dir %{_datadir}/ceph/
9a1331d
%{_datadir}/ceph/known_hosts_drop.ceph.com
c342c97
%{_datadir}/ceph/id_rsa_drop.ceph.com
c342c97
%{_datadir}/ceph/id_rsa_drop.ceph.com.pub
08b7207
%dir %{_sysconfdir}/ceph/
44c0bd8
%config %{_sysconfdir}/bash_completion.d/ceph
08b7207
%config %{_sysconfdir}/bash_completion.d/rados
08b7207
%config %{_sysconfdir}/bash_completion.d/rbd
44c0bd8
%config %{_sysconfdir}/bash_completion.d/radosgw-admin
08b7207
%config(noreplace) %{_sysconfdir}/ceph/rbdmap
bde7d23
%{_unitdir}/rbdmap.service
c342c97
%dir %{_udevrulesdir}
bcc7f22
%{_udevrulesdir}/50-rbd.rules
bcc7f22
%attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/
bcc7f22
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/
bcc7f22
bde7d23
%pre common
bde7d23
CEPH_GROUP_ID=167
bde7d23
CEPH_USER_ID=167
bcc7f22
%if 0%{?rhel} || 0%{?fedora}
dadf49c
/usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || :
dadf49c
/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 || :
bcc7f22
%endif
bcc7f22
%if 0%{?suse_version}
bde7d23
if ! getent group ceph >/dev/null ; then
bde7d23
    CEPH_GROUP_ID_OPTION=""
bde7d23
    getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID"
bde7d23
    groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || :
bde7d23
fi
bde7d23
if ! getent passwd ceph >/dev/null ; then
bde7d23
    CEPH_USER_ID_OPTION=""
bde7d23
    getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID"
dadf49c
    useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || :
bde7d23
fi
dadf49c
usermod -c "Ceph storage service" \
44c0bd8
        -d %{_localstatedir}/lib/ceph \
dadf49c
        -g ceph \
dadf49c
        -s /sbin/nologin \
dadf49c
        ceph
bcc7f22
%endif
bcc7f22
exit 0
bcc7f22
bde7d23
%post common
bde7d23
%tmpfiles_create %{_tmpfilesdir}/ceph-common.conf
Josef Bacik 8f23225
bde7d23
%postun common
08b7207
# Package removal cleanup
08b7207
if [ "$1" -eq "0" ] ; then
dadf49c
    rm -rf %{_localstatedir}/log/ceph
dadf49c
    rm -rf %{_sysconfdir}/ceph
08b7207
fi
Josef Bacik 8f23225
bde7d23
%files mds
bde7d23
%{_bindir}/ceph-mds
bde7d23
%{_mandir}/man8/ceph-mds.8*
bde7d23
%{_unitdir}/ceph-mds@.service
bde7d23
%{_unitdir}/ceph-mds.target
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds
bde7d23
e5a890a
%post mds
e5a890a
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
  /usr/bin/systemctl preset ceph-mds@\*.service ceph-mds.target >/dev/null 2>&1 || :
e5a890a
fi
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_post ceph-mds@\*.service ceph-mds.target
e5a890a
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
/usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || :
44c0bd8
fi
e5a890a
e5a890a
%preun mds
e5a890a
%if 0%{?suse_version}
e5a890a
%service_del_preun ceph-mds@\*.service ceph-mds.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_preun ceph-mds@\*.service ceph-mds.target
e5a890a
%endif
e5a890a
e5a890a
%postun mds
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
e5a890a
%service_del_postun ceph-mds@\*.service ceph-mds.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_postun ceph-mds@\*.service ceph-mds.target
e5a890a
%endif
0d98ded
if [ $1 -ge 1 ] ; then
e5a890a
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
e5a890a
  # "yes". In any case: if units are not running, do not touch them.
dadf49c
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
e5a890a
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
e5a890a
    source $SYSCONF_CEPH
e5a890a
  fi
e5a890a
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
e5a890a
    /usr/bin/systemctl try-restart ceph-mds@\*.service > /dev/null 2>&1 || :
e5a890a
  fi
e5a890a
fi
e5a890a
44c0bd8
%files mgr
44c0bd8
%{_bindir}/ceph-mgr
5846ea0
%dir %{_datadir}/ceph/mgr
5846ea0
%{_datadir}/ceph/mgr/mgr_module.*
5846ea0
%{_datadir}/ceph/mgr/mgr_util.*
0d98ded
%if 0%{?rhel} == 7
0d98ded
%{_datadir}/ceph/mgr/__pycache__
0d98ded
%endif
44c0bd8
%{_unitdir}/ceph-mgr@.service
44c0bd8
%{_unitdir}/ceph-mgr.target
44c0bd8
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr
44c0bd8
44c0bd8
%post mgr
44c0bd8
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
44c0bd8
  /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || :
44c0bd8
fi
44c0bd8
%endif
44c0bd8
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_post ceph-mgr@\*.service ceph-mgr.target
44c0bd8
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
44c0bd8
/usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || :
44c0bd8
fi
44c0bd8
44c0bd8
%preun mgr
44c0bd8
%if 0%{?suse_version}
44c0bd8
%service_del_preun ceph-mgr@\*.service ceph-mgr.target
44c0bd8
%endif
44c0bd8
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_preun ceph-mgr@\*.service ceph-mgr.target
44c0bd8
%endif
44c0bd8
44c0bd8
%postun mgr
44c0bd8
%if 0%{?suse_version}
44c0bd8
DISABLE_RESTART_ON_UPDATE="yes"
44c0bd8
%service_del_postun ceph-mgr@\*.service ceph-mgr.target
44c0bd8
%endif
44c0bd8
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_postun ceph-mgr@\*.service ceph-mgr.target
44c0bd8
%endif
0d98ded
if [ $1 -ge 1 ] ; then
44c0bd8
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
44c0bd8
  # "yes". In any case: if units are not running, do not touch them.
44c0bd8
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
44c0bd8
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
44c0bd8
    source $SYSCONF_CEPH
44c0bd8
  fi
44c0bd8
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
44c0bd8
    /usr/bin/systemctl try-restart ceph-mgr@\*.service > /dev/null 2>&1 || :
44c0bd8
  fi
44c0bd8
fi
44c0bd8
5846ea0
%files mgr-dashboard
5846ea0
%{_datadir}/ceph/mgr/dashboard
5846ea0
5846ea0
%post mgr-dashboard
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%postun mgr-dashboard
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%files mgr-diskprediction-local
5846ea0
%{_datadir}/ceph/mgr/diskprediction_local
5846ea0
5846ea0
%post mgr-diskprediction-local
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%postun mgr-diskprediction-local
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%files mgr-diskprediction-cloud
5846ea0
%{_datadir}/ceph/mgr/diskprediction_cloud
5846ea0
5846ea0
%post mgr-diskprediction-cloud
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%postun mgr-diskprediction-cloud
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
26fd4ff
%files mgr-modules-core
26fd4ff
%dir %{_datadir}/ceph/mgr
26fd4ff
%{_datadir}/ceph/mgr/alerts
26fd4ff
%{_datadir}/ceph/mgr/balancer
26fd4ff
%{_datadir}/ceph/mgr/crash
26fd4ff
%{_datadir}/ceph/mgr/devicehealth
26fd4ff
%{_datadir}/ceph/mgr/influx
26fd4ff
%{_datadir}/ceph/mgr/insights
26fd4ff
%{_datadir}/ceph/mgr/iostat
26fd4ff
%{_datadir}/ceph/mgr/localpool
26fd4ff
%{_datadir}/ceph/mgr/orchestrator
26fd4ff
%{_datadir}/ceph/mgr/osd_perf_query
26fd4ff
%{_datadir}/ceph/mgr/osd_support
26fd4ff
%{_datadir}/ceph/mgr/pg_autoscaler
26fd4ff
%{_datadir}/ceph/mgr/progress
26fd4ff
%{_datadir}/ceph/mgr/prometheus
26fd4ff
%{_datadir}/ceph/mgr/rbd_support
26fd4ff
%{_datadir}/ceph/mgr/restful
26fd4ff
%{_datadir}/ceph/mgr/selftest
26fd4ff
%{_datadir}/ceph/mgr/status
26fd4ff
%{_datadir}/ceph/mgr/telegraf
26fd4ff
%{_datadir}/ceph/mgr/telemetry
26fd4ff
%{_datadir}/ceph/mgr/test_orchestrator
26fd4ff
%{_datadir}/ceph/mgr/volumes
26fd4ff
%{_datadir}/ceph/mgr/zabbix
26fd4ff
5846ea0
%files mgr-rook
5846ea0
%{_datadir}/ceph/mgr/rook
5846ea0
5846ea0
%post mgr-rook
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
5846ea0
%postun mgr-rook
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
a384bd1
%files mgr-k8sevents
a384bd1
%{_datadir}/ceph/mgr/k8sevents
a384bd1
a384bd1
%post mgr-k8sevents
a384bd1
if [ $1 -eq 1 ] ; then
a384bd1
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
a384bd1
fi
a384bd1
a384bd1
%postun mgr-k8sevents
a384bd1
if [ $1 -eq 1 ] ; then
a384bd1
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
a384bd1
fi
a384bd1
0d98ded
%files mgr-cephadm
0d98ded
%{_datadir}/ceph/mgr/cephadm
5846ea0
0d98ded
%post mgr-cephadm
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
0d98ded
%postun mgr-cephadm
5846ea0
if [ $1 -eq 1 ] ; then
5846ea0
    /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
5846ea0
fi
5846ea0
bde7d23
%files mon
bde7d23
%{_bindir}/ceph-mon
d40e5a4
%{_bindir}/ceph-monstore-tool
bde7d23
%{_mandir}/man8/ceph-mon.8*
bde7d23
%{_unitdir}/ceph-mon@.service
bde7d23
%{_unitdir}/ceph-mon.target
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon
bde7d23
e5a890a
%post mon
e5a890a
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
44c0bd8
  /usr/bin/systemctl preset ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || :
e5a890a
fi
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_post ceph-mon@\*.service ceph-mon.target
e5a890a
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
/usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || :
44c0bd8
fi
e5a890a
e5a890a
%preun mon
e5a890a
%if 0%{?suse_version}
44c0bd8
%service_del_preun ceph-mon@\*.service ceph-mon.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_preun ceph-mon@\*.service ceph-mon.target
e5a890a
%endif
e5a890a
e5a890a
%postun mon
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
44c0bd8
%service_del_postun ceph-mon@\*.service ceph-mon.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
44c0bd8
%systemd_postun ceph-mon@\*.service ceph-mon.target
e5a890a
%endif
0d98ded
if [ $1 -ge 1 ] ; then
e5a890a
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
e5a890a
  # "yes". In any case: if units are not running, do not touch them.
dadf49c
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
e5a890a
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
e5a890a
    source $SYSCONF_CEPH
e5a890a
  fi
e5a890a
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
44c0bd8
    /usr/bin/systemctl try-restart ceph-mon@\*.service > /dev/null 2>&1 || :
e5a890a
  fi
e5a890a
fi
e5a890a
5dd73cb
%files fuse
David Nalley d10f18b
%{_bindir}/ceph-fuse
9a1331d
%{_mandir}/man8/ceph-fuse.8*
08b7207
%{_sbindir}/mount.fuse.ceph
44c0bd8
%{_unitdir}/ceph-fuse@.service
44c0bd8
%{_unitdir}/ceph-fuse.target
08b7207
08b7207
%files -n rbd-fuse
08b7207
%{_bindir}/rbd-fuse
Josef Bacik 7d1f840
%{_mandir}/man8/rbd-fuse.8*
5dd73cb
bde7d23
%files -n rbd-mirror
bde7d23
%{_bindir}/rbd-mirror
bde7d23
%{_mandir}/man8/rbd-mirror.8*
bde7d23
%{_unitdir}/ceph-rbd-mirror@.service
bde7d23
%{_unitdir}/ceph-rbd-mirror.target
bde7d23
e5a890a
%post -n rbd-mirror
e5a890a
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
  /usr/bin/systemctl preset ceph-rbd-mirror@\*.service ceph-rbd-mirror.target >/dev/null 2>&1 || :
e5a890a
fi
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_post ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
e5a890a
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
/usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || :
44c0bd8
fi
e5a890a
e5a890a
%preun -n rbd-mirror
e5a890a
%if 0%{?suse_version}
e5a890a
%service_del_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
e5a890a
%endif
e5a890a
e5a890a
%postun -n rbd-mirror
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
e5a890a
%service_del_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
e5a890a
%endif
0d98ded
if [ $1 -ge 1 ] ; then
e5a890a
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
e5a890a
  # "yes". In any case: if units are not running, do not touch them.
dadf49c
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
e5a890a
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
e5a890a
    source $SYSCONF_CEPH
e5a890a
  fi
e5a890a
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
e5a890a
    /usr/bin/systemctl try-restart ceph-rbd-mirror@\*.service > /dev/null 2>&1 || :
e5a890a
  fi
e5a890a
fi
e5a890a
0d98ded
%files immutable-object-cache
0d98ded
%{_bindir}/ceph-immutable-object-cache
0d98ded
%{_mandir}/man8/ceph-immutable-object-cache.8*
0d98ded
%{_unitdir}/ceph-immutable-object-cache@.service
0d98ded
%{_unitdir}/ceph-immutable-object-cache.target
0d98ded
0d98ded
%post immutable-object-cache
0d98ded
%if 0%{?suse_version}
0d98ded
if [ $1 -eq 1 ] ; then
0d98ded
  /usr/bin/systemctl preset ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target >/dev/null 2>&1 || :
0d98ded
fi
0d98ded
%endif
0d98ded
%if 0%{?fedora} || 0%{?rhel}
0d98ded
%systemd_post ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
0d98ded
%endif
0d98ded
if [ $1 -eq 1 ] ; then
0d98ded
/usr/bin/systemctl start ceph-immutable-object-cache.target >/dev/null 2>&1 || :
0d98ded
fi
0d98ded
0d98ded
%preun immutable-object-cache
0d98ded
%if 0%{?suse_version}
0d98ded
%service_del_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
0d98ded
%endif
0d98ded
%if 0%{?fedora} || 0%{?rhel}
0d98ded
%systemd_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
0d98ded
%endif
0d98ded
0d98ded
%postun immutable-object-cache
0d98ded
test -n "$FIRST_ARG" || FIRST_ARG=$1
0d98ded
%if 0%{?suse_version}
0d98ded
DISABLE_RESTART_ON_UPDATE="yes"
0d98ded
%service_del_postun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
0d98ded
%endif
0d98ded
%if 0%{?fedora} || 0%{?rhel}
0d98ded
%systemd_postun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
0d98ded
%endif
0d98ded
if [ $FIRST_ARG -ge 1 ] ; then
0d98ded
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
0d98ded
  # "yes". In any case: if units are not running, do not touch them.
0d98ded
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
0d98ded
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
0d98ded
    source $SYSCONF_CEPH
0d98ded
  fi
0d98ded
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
0d98ded
    /usr/bin/systemctl try-restart ceph-immutable-object-cache@\*.service > /dev/null 2>&1 || :
0d98ded
  fi
0d98ded
fi
0d98ded
bde7d23
%files -n rbd-nbd
bde7d23
%{_bindir}/rbd-nbd
bde7d23
%{_mandir}/man8/rbd-nbd.8*
bde7d23
Josef Bacik ca6b4d7
%files radosgw
Josef Bacik ca6b4d7
%{_bindir}/radosgw
bde7d23
%{_bindir}/radosgw-token
44c0bd8
%{_bindir}/radosgw-es
bcc7f22
%{_bindir}/radosgw-object-expirer
0d98ded
%{_libdir}/libradosgw.so*
08b7207
%{_mandir}/man8/radosgw.8*
bcc7f22
%dir %{_localstatedir}/lib/ceph/radosgw
bde7d23
%{_unitdir}/ceph-radosgw@.service
bde7d23
%{_unitdir}/ceph-radosgw.target
08b7207
08b7207
%post radosgw
0d98ded
/sbin/ldconfig
bcc7f22
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
  /usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || :
e5a890a
fi
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_post ceph-radosgw@\*.service ceph-radosgw.target
08b7207
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
/usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || :
44c0bd8
fi
08b7207
08b7207
%preun radosgw
e5a890a
%if 0%{?suse_version}
e5a890a
%service_del_preun ceph-radosgw@\*.service ceph-radosgw.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_preun ceph-radosgw@\*.service ceph-radosgw.target
08b7207
%endif
08b7207
08b7207
%postun radosgw
0d98ded
/sbin/ldconfig
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
e5a890a
%service_del_postun ceph-radosgw@\*.service ceph-radosgw.target
08b7207
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
e5a890a
%systemd_postun ceph-radosgw@\*.service ceph-radosgw.target
e5a890a
%endif
0d98ded
if [ $1 -ge 1 ] ; then
e5a890a
  # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
e5a890a
  # "yes". In any case: if units are not running, do not touch them.
dadf49c
  SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
e5a890a
  if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
e5a890a
    source $SYSCONF_CEPH
e5a890a
  fi
e5a890a
  if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
e5a890a
    /usr/bin/systemctl try-restart ceph-radosgw@\*.service > /dev/null 2>&1 || :
e5a890a
  fi
e5a890a
fi
08b7207
bde7d23
%files osd
bde7d23
%{_bindir}/ceph-clsinfo
44c0bd8
%{_bindir}/ceph-bluestore-tool
bde7d23
%{_bindir}/ceph-objectstore-tool
d40e5a4
%{_bindir}/ceph-osdomap-tool
bde7d23
%{_bindir}/ceph-osd
bde7d23
%{_libexecdir}/ceph/ceph-osd-prestart.sh
d40e5a4
%{_sbindir}/ceph-volume
d40e5a4
%{_sbindir}/ceph-volume-systemd
bde7d23
%{_mandir}/man8/ceph-clsinfo.8*
bde7d23
%{_mandir}/man8/ceph-osd.8*
77bab0f
%{_mandir}/man8/ceph-bluestore-tool.8*
d40e5a4
%{_mandir}/man8/ceph-volume.8*
d40e5a4
%{_mandir}/man8/ceph-volume-systemd.8*
bde7d23
%{_unitdir}/ceph-osd@.service
bde7d23
%{_unitdir}/ceph-osd.target
d40e5a4
%{_unitdir}/ceph-volume@.service
bde7d23
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
77bab0f
%config(noreplace) %{_sysctldir}/90-ceph-osd.conf
2b3fa8b
%{_sysconfdir}/sudoers.d/ceph-osd-smartctl
bde7d23
e5a890a
%post osd
e5a890a
%if 0%{?suse_version}
44c0bd8
if [ $1 -eq 1 ] ; then
d40e5a4
  /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || :
e5a890a
fi
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
d40e5a4
%systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
e5a890a
%endif
44c0bd8
if [ $1 -eq 1 ] ; then
e5a890a
/usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || :
44c0bd8
fi
4c70f88
%if 0%{?sysctl_apply}
4c70f88
    %sysctl_apply 90-ceph-osd.conf
4c70f88
%else
4c70f88
    /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || :
4c70f88
%endif
e5a890a
e5a890a
%preun osd
e5a890a
%if 0%{?suse_version}
d40e5a4
%service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
d40e5a4
%systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
e5a890a
%endif
e5a890a
e5a890a
%postun osd
e5a890a
%if 0%{?suse_version}
e5a890a
DISABLE_RESTART_ON_UPDATE="yes"
d40e5a4
%service_del_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
e5a890a
%endif
e5a890a
%if 0%{?fedora} || 0%{?rhel}
d40e5a4
%systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
e5a890a
%endif
0d98ded
if [ $1 -ge 1 ] ; then