1 # vim: set noexpandtab ts=8 sw=8 :
3 # spec file for package ceph
5 # Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file
6 # at the top-level directory of this distribution and at
7 # https://github.com/ceph/ceph/blob/master/COPYING
9 # All modifications and additions to the file contributed by third parties
10 # remain the property of their copyright owners, unless otherwise agreed
13 # This file is under the GNU Lesser General Public License, version 2.1
15 # Please submit bugfixes or comments via http://tracker.ceph.com/
18 #################################################################################
19 # conditional build section
21 # please read http://rpm.org/user_doc/conditional_builds.html for explanation of
23 #################################################################################
24 %bcond_with make_check
28 %bcond_without tcmalloc
30 %if 0%{?fedora} || 0%{?rhel}
31 %bcond_without selinux
32 %bcond_without ceph_test_package
33 %bcond_without cephfs_java
35 %bcond_without libradosstriper
37 %bcond_without amqp_endpoint
38 %global _remote_tarball_prefix https
://download.ceph.com
/tarballs
/
42 %bcond_with ceph_test_package
43 %bcond_with cephfs_java
44 %bcond_with amqp_endpoint
45 #Compat macro for new _fillupdir macro introduced in Nov 2017
46 %if ! %{defined _fillupdir}
47 %global _fillupdir
/var
/adm
/fillup
-templates
50 %bcond_without libradosstriper
53 %bcond_with libradosstriper
56 %ifarch x86_64 aarch64 ppc64le
63 %if 0%{?fedora} >= 29 || 0%{?suse_version} >= 1500 || 0%{?rhel} >= 8
64 # distros that need a py3 Ceph build
67 # distros that need a py2 Ceph build
68 %bcond_without python2
70 %if 0%{?fedora} || 0%{?suse_version} >= 1500
71 # distros that ship cmd2 and/or colorama
72 %bcond_without cephfs_shell
74 # distros that do _not_ ship cmd2/colorama
75 %bcond_with cephfs_shell
77 %if 0%{without python2}
78 %global _defined_if_python2_absent
1
82 # get selinux policy version
83 %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0}
86 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
87 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
88 %{!?python3_pkgversion: %global python3_pkgversion 3}
89 %{!?python3_version: %global python3_version 3}
90 # define _python_buildid macro which will expand to the empty string when
91 # building with python2
92 %global _python_buildid
%{?_defined_if_python2_absent:%{python3_pkgversion}}
94 # unify libexec for all targets
95 %global _libexecdir
%{_exec_prefix}/lib
97 # disable dwz which compresses the debuginfo
98 %global _find_debuginfo_dwz_opts
%{nil}
100 #################################################################################
101 # main package definition
102 #################################################################################
105 Release: @RPM_RELEASE@
%{?dist}
106 %if 0%{?fedora} || 0%{?rhel}
110 # define _epoch_prefix macro which will expand to the empty string if epoch is
112 %global _epoch_prefix
%{?epoch:%{epoch}:}
114 Summary: User space components of the Ceph file system
115 License: LGPL
-2.1 and CC
-BY
-SA
-3.0 and GPL
-2.0 and BSL
-1.0 and BSD
-3-Clause and MIT
116 %if 0%{?suse_version}
117 Group: System
/Filesystems
119 URL: http
://ceph.com
/
120 Source0: %{?_remote_tarball_prefix}@TARBALL_BASENAME@.tar.bz2
121 %if 0%{?suse_version}
122 # _insert_obs_source_lines_here
123 ExclusiveArch: x86_64 aarch64 ppc64le s390x
125 #################################################################################
126 # dependencies that apply across all distro families
127 #################################################################################
128 Requires: ceph
-osd
= %{_epoch_prefix}%{version}-%{release}
129 Requires: ceph
-mds
= %{_epoch_prefix}%{version}-%{release}
130 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
131 Requires: ceph
-mon
= %{_epoch_prefix}%{version}-%{release}
132 Requires(post
): binutils
133 %if 0%{with cephfs_java}
134 BuildRequires
: java
-devel
135 BuildRequires
: sharutils
138 BuildRequires
: checkpolicy
139 BuildRequires
: selinux
-policy
-devel
143 BuildRequires
: cmake3
> 3.5
145 BuildRequires
: cmake
> 3.5
147 BuildRequires
: cryptsetup
148 BuildRequires
: fuse
-devel
150 # devtoolset offers newer make and valgrind-devel, but the old ones are good
152 BuildRequires
: devtoolset
-7-gcc
-c
++ >= 7.3.1-5.13
154 BuildRequires
: gcc
-c
++
157 %if 0%{with tcmalloc}
158 %if 0%{?fedora} || 0%{?rhel}
159 BuildRequires
: gperftools
-devel
>= 2.6.1
161 %if 0%{?suse_version}
162 BuildRequires
: gperftools
-devel
>= 2.4
165 BuildRequires
: leveldb
-devel
> 1.2
166 BuildRequires
: libaio
-devel
167 BuildRequires
: libblkid
-devel
>= 2.17
168 BuildRequires
: libcurl
-devel
169 BuildRequires
: libudev
-devel
170 BuildRequires
: liboath
-devel
171 BuildRequires
: libtool
172 BuildRequires
: libxml2
-devel
173 BuildRequires
: libuuid
-devel
175 BuildRequires
: ncurses
-devel
176 BuildRequires
: parted
178 BuildRequires
: pkgconfig
179 BuildRequires
: procps
180 BuildRequires
: python
%{_python_buildid}
181 BuildRequires
: python
%{_python_buildid}-devel
182 BuildRequires
: snappy
-devel
185 BuildRequires
: util
-linux
186 BuildRequires
: valgrind
-devel
188 BuildRequires
: xfsprogs
189 BuildRequires
: xfsprogs
-devel
190 BuildRequires
: xmlstarlet
192 %if 0%{with amqp_endpoint}
193 BuildRequires
: librabbitmq
-devel
195 %if 0%{with make_check}
197 BuildRequires
: python
%{_python_buildid}-bcrypt
198 BuildRequires
: python
%{_python_buildid}-coverage
199 BuildRequires
: python
%{_python_buildid}-nose
200 BuildRequires
: python
%{_python_buildid}-pecan
201 BuildRequires
: python
%{_python_buildid}-requests
202 BuildRequires
: python
%{_python_buildid}-six
203 BuildRequires
: python
%{_python_buildid}-tox
204 BuildRequires
: python
%{_python_buildid}-virtualenv
206 BuildRequires
: pyOpenSSL
%{_python_buildid}
208 BuildRequires
: python
%{_python_buildid}-pyOpenSSL
213 BuildRequires
: c
-ares
-devel
214 BuildRequires
: gnutls
-devel
215 BuildRequires
: hwloc
-devel
216 BuildRequires
: libpciaccess
-devel
217 BuildRequires
: lksctp
-tools
-devel
218 BuildRequires
: protobuf
-devel
220 BuildRequires
: systemtap
-sdt
-devel
221 BuildRequires
: yaml
-cpp
-devel
223 #################################################################################
224 # distro-conditional dependencies
225 #################################################################################
226 %if 0%{?suse_version}
227 BuildRequires
: pkgconfig
(systemd
)
228 BuildRequires
: systemd
-rpm
-macros
229 BuildRequires
: systemd
231 PreReq
: %fillup_prereq
232 BuildRequires
: net
-tools
233 BuildRequires
: libbz2
-devel
234 BuildRequires
: mozilla
-nss
-devel
235 BuildRequires
: keyutils
-devel
236 BuildRequires
: libopenssl
-devel
237 BuildRequires
: lsb
-release
238 BuildRequires
: openldap2
-devel
240 #BuildRequires: krb5-devel
241 BuildRequires
: cunit
-devel
242 BuildRequires
: python
%{_python_buildid}-setuptools
243 BuildRequires
: python
%{_python_buildid}-Cython
244 BuildRequires
: python
%{_python_buildid}-PrettyTable
245 BuildRequires
: python
%{_python_buildid}-Sphinx
246 BuildRequires
: rdma
-core
-devel
247 BuildRequires
: liblz4
-devel
>= 1.7
249 %if 0%{?fedora} || 0%{?rhel}
251 BuildRequires
: boost
-random
252 BuildRequires
: nss
-devel
253 BuildRequires
: keyutils
-libs
-devel
254 BuildRequires
: libibverbs
-devel
255 BuildRequires
: librdmacm
-devel
256 BuildRequires
: openldap
-devel
257 #BuildRequires: krb5-devel
258 BuildRequires
: openssl
-devel
259 BuildRequires
: CUnit
-devel
260 BuildRequires
: redhat
-lsb
-core
262 BuildRequires
: python2
-Cython
264 BuildRequires
: python
%{python3_pkgversion}-devel
265 BuildRequires
: python
%{python3_pkgversion}-setuptools
266 BuildRequires
: python
%{python3_pkgversion}-Cython
267 BuildRequires
: python
%{_python_buildid}-prettytable
268 BuildRequires
: python
%{_python_buildid}-sphinx
269 BuildRequires
: lz4
-devel
>= 1.7
271 # distro-conditional make check dependencies
272 %if 0%{with make_check}
273 %if 0%{?fedora} || 0%{?rhel}
274 BuildRequires
: python
%{_python_buildid}-cherrypy
275 BuildRequires
: python
%{_python_buildid}-jwt
276 BuildRequires
: python
%{_python_buildid}-routes
277 BuildRequires
: python
%{_python_buildid}-werkzeug
278 BuildRequires
: xmlsec1
280 %if 0%{?suse_version}
281 BuildRequires
: python
%{_python_buildid}-CherryPy
282 BuildRequires
: python
%{_python_buildid}-PyJWT
283 BuildRequires
: python
%{_python_buildid}-Routes
284 BuildRequires
: python
%{_python_buildid}-Werkzeug
285 BuildRequires
: python
%{_python_buildid}-numpy
-devel
286 BuildRequires
: xmlsec1
-devel
289 # lttng and babeltrace for rbd-replay-prep
291 %if 0%{?fedora} || 0%{?rhel}
292 BuildRequires
: lttng
-ust
-devel
293 BuildRequires
: libbabeltrace
-devel
295 %if 0%{?suse_version}
296 BuildRequires
: lttng
-ust
-devel
297 BuildRequires
: babeltrace
-devel
300 %if 0%{?suse_version}
301 BuildRequires
: libexpat
-devel
303 %if 0%{?rhel} || 0%{?fedora}
304 BuildRequires
: expat
-devel
307 %if 0%{?fedora} || 0%{?rhel}
308 BuildRequires
: redhat
-rpm
-config
311 %if 0%{?fedora} || 0%{?rhel}
312 BuildRequires
: cryptopp
-devel
313 BuildRequires
: numactl
-devel
314 BuildRequires
: protobuf
-compiler
316 %if 0%{?suse_version}
317 BuildRequires
: libcryptopp
-devel
318 BuildRequires
: libnuma
-devel
323 Ceph is a massively scalable
, open
-source, distributed storage system that runs
324 on commodity hardware and delivers object
, block and file system storage.
327 #################################################################################
329 #################################################################################
331 Summary: Ceph Base Package
332 %if 0%{?suse_version}
333 Group: System
/Filesystems
335 Provides: ceph
-test:/usr
/bin
/ceph
-kvstore
-tool
336 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
337 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
338 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
339 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
340 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
342 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
351 Requires: python
%{_python_buildid}-requests
352 Requires: python
%{_python_buildid}-setuptools
356 %if 0%{?fedora} || 0%{?rhel}
357 # The following is necessary due to tracker 36508 and can be removed once the
358 # associated upstream bugs are resolved.
359 %if 0%{with tcmalloc}
360 Requires: gperftools
-libs
>= 2.6.1
363 %if 0%{?suse_version}
367 Base is the package that includes all the files shared amongst ceph servers
369 %package -n ceph
-common
371 %if 0%{?suse_version}
372 Group: System
/Filesystems
374 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
375 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
376 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
377 Requires: python
%{_python_buildid}-rados = %{_epoch_prefix}%{version}-%{release}
378 Requires: python
%{_python_buildid}-rbd = %{_epoch_prefix}%{version}-%{release}
379 Requires: python
%{_python_buildid}-cephfs = %{_epoch_prefix}%{version}-%{release}
380 Requires: python
%{_python_buildid}-rgw = %{_epoch_prefix}%{version}-%{release}
381 Requires: python
%{_python_buildid}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
382 Requires: python
%{_python_buildid}-requests
383 %if 0%{?fedora} || 0%{?rhel}
384 Requires: python
%{_python_buildid}-prettytable
386 %if 0%{?suse_version}
387 Requires: python
%{_python_buildid}-PrettyTable
389 %if 0%{with libradosstriper}
390 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
393 %if 0%{?suse_version}
394 Requires(pre
): pwdutils
396 %description -n ceph
-common
397 Common utilities to mount and interact with a ceph storage cluster.
398 Comprised of files that are common to Ceph clients and servers.
401 Summary: Ceph Metadata Server Daemon
402 %if 0%{?suse_version}
403 Group: System
/Filesystems
405 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
407 ceph
-mds is the metadata server daemon
for the Ceph distributed file system.
408 One or more instances of ceph
-mds collectively manage the file system
409 namespace
, coordinating access to the shared OSD cluster.
412 Summary: Ceph Monitor Daemon
413 %if 0%{?suse_version}
414 Group: System
/Filesystems
416 Provides: ceph
-test:/usr
/bin
/ceph
-monstore
-tool
417 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
419 ceph
-mon is the cluster monitor daemon
for the Ceph distributed file
420 system. One or more instances of ceph
-mon form a Paxos part
-time
421 parliament cluster that provides extremely reliable and durable storage
422 of cluster membership
, configuration
, and state.
425 Summary: Ceph Manager Daemon
426 %if 0%{?suse_version}
427 Group: System
/Filesystems
429 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
430 Requires: python
%{_python_buildid}-bcrypt
431 Requires: python
%{_python_buildid}-pecan
432 Requires: python
%{_python_buildid}-six
433 %if 0%{?fedora} || 0%{?rhel}
434 Requires: python
%{_python_buildid}-cherrypy
435 Requires: python
%{_python_buildid}-werkzeug
437 %if 0%{?suse_version}
438 Requires: python
%{_python_buildid}-CherryPy
439 Requires: python
%{_python_buildid}-Werkzeug
440 Recommends
: python
%{_python_buildid}-influxdb
441 Recommends
: ceph
-mgr
-dashboard
= %{_epoch_prefix}%{version}-%{release}
442 Recommends
: ceph
-mgr
-diskprediction
-local = %{_epoch_prefix}%{version}-%{release}
443 Recommends
: ceph
-mgr
-diskprediction
-cloud
= %{_epoch_prefix}%{version}-%{release}
444 Recommends
: ceph
-mgr
-rook
= %{_epoch_prefix}%{version}-%{release}
445 Recommends
: ceph
-mgr
-ssh
= %{_epoch_prefix}%{version}-%{release}
450 Requires: python
%{_python_buildid}-pyOpenSSL
453 ceph
-mgr enables python modules that provide services
(such as the REST
454 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
455 the cluster maps
, the daemon metadata
, and performance counters
, and
456 exposes all these to the python modules.
458 %package mgr
-dashboard
459 Summary: Ceph Dashboard
461 %if 0%{?suse_version}
462 Group: System
/Filesystems
464 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
465 %if 0%{?fedora} || 0%{?rhel}
466 Requires: python
%{_python_buildid}-cherrypy
467 Requires: python
%{_python_buildid}-jwt
468 Requires: python
%{_python_buildid}-routes
469 Requires: python
%{_python_buildid}-werkzeug
471 %if 0%{?suse_version}
472 Requires: python
%{_python_buildid}-CherryPy
473 Requires: python
%{_python_buildid}-PyJWT
474 Requires: python
%{_python_buildid}-Routes
475 Requires: python
%{_python_buildid}-Werkzeug
480 Requires: python
%{_python_buildid}-pyOpenSSL
482 %description mgr
-dashboard
483 ceph
-mgr
-dashboard is a manager plugin
, providing a web
-based application
484 to monitor and manage many aspects of a Ceph cluster and related components.
485 See the Dashboard documentation at http
://docs.ceph.com
/ for details and a
486 detailed feature overview.
488 %package mgr
-diskprediction
-local
489 Summary: ceph
-mgr diskprediction_local plugin
491 %if 0%{?suse_version}
492 Group: System
/Filesystems
494 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
495 %if 0%{?fedora} || 0%{?rhel} > 7 || 0%{?suse_version}
496 Requires: python
%{_python_buildid}-numpy
497 %if 0%{without python2}
498 Requires: python3
-scipy
500 Requires: python2
-scipy
507 %description mgr
-diskprediction
-local
508 ceph
-mgr
-diskprediction
-local is a ceph
-mgr plugin that tries to predict
509 disk failures using
local algorithms and machine
-learning databases.
511 %package mgr
-diskprediction
-cloud
512 Summary: ceph
-mgr diskprediction_cloud plugin
514 %if 0%{?suse_version}
515 Group: System
/Filesystems
517 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
518 %description mgr
-diskprediction
-cloud
519 ceph
-mgr
-diskprediction
-cloud is a ceph
-mgr plugin that tries to predict
520 disk failures using services
in the Google cloud.
524 Summary: ceph
-mgr rook plugin
525 %if 0%{?suse_version}
526 Group: System
/Filesystems
528 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
529 Requires: python
%{_python_buildid}-kubernetes
530 %description mgr
-rook
531 ceph
-mgr
-rook is a ceph
-mgr plugin
for orchestration functions using
535 Summary: ceph
-mgr ssh module
537 %if 0%{?suse_version}
538 Group: System
/Filesystems
540 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
541 Requires: python
%{_python_buildid}-remoto
543 ceph
-mgr
-ssh is a ceph
-mgr module
for orchestration functions using
544 direct SSH connections
for management operations.
547 Summary: Ceph fuse
-based client
548 %if 0%{?suse_version}
549 Group: System
/Filesystems
552 Requires: python
%{python3_pkgversion}
554 FUSE based client
for Ceph distributed network file system
557 Summary: Ceph fuse
-based client
558 %if 0%{?suse_version}
559 Group: System
/Filesystems
561 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
562 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
563 %description -n rbd
-fuse
564 FUSE based client to map Ceph rbd images to files
566 %package -n rbd
-mirror
567 Summary: Ceph daemon
for mirroring RBD images
568 %if 0%{?suse_version}
569 Group: System
/Filesystems
571 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
572 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
573 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
574 %description -n rbd
-mirror
575 Daemon
for mirroring RBD images between Ceph clusters
, streaming
576 changes asynchronously.
579 Summary: Ceph RBD client base on NBD
580 %if 0%{?suse_version}
581 Group: System
/Filesystems
583 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
584 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
585 %description -n rbd
-nbd
586 NBD based client to map Ceph rbd images to
local device
589 Summary: Rados REST gateway
590 %if 0%{?suse_version}
591 Group: System
/Filesystems
593 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
595 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
597 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
598 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
599 %if 0%{?rhel} || 0%{?fedora}
603 RADOS is a distributed object store used by the Ceph distributed
604 storage system. This package provides a REST gateway to the
605 object store that aims to implement a superset of Amazon's S3
606 service as well as the OpenStack Object Storage
("Swift"
) API.
609 %package resource
-agents
610 Summary: OCF
-compliant resource agents
for Ceph daemons
611 %if 0%{?suse_version}
612 Group: System
/Filesystems
614 Requires: ceph
-base
= %{_epoch_prefix}%{version}
615 Requires: resource
-agents
616 %description resource
-agents
617 Resource agents
for monitoring and managing Ceph daemons
618 under Open Cluster Framework
(OCF
) compliant resource
619 managers such as Pacemaker.
623 Summary: Ceph Object Storage Daemon
624 %if 0%{?suse_version}
625 Group: System
/Filesystems
627 Provides: ceph
-test:/usr
/bin
/ceph
-osdomap
-tool
628 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
631 Requires: libstoragemgmt
633 ceph
-osd is the object storage daemon
for the Ceph distributed file
634 system. It is responsible
for storing objects on a
local file system
635 and providing access to them over the network.
637 %package -n librados2
638 Summary: RADOS distributed object store client library
639 %if 0%{?suse_version}
640 Group: System
/Libraries
642 %if 0%{?rhel} || 0%{?fedora}
643 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
645 %description -n librados2
646 RADOS is a reliable
, autonomic distributed object storage cluster
647 developed as part of the Ceph distributed storage system. This is a
648 shared library allowing applications to access the distributed object
649 store using a simple file
-like interface.
651 %package -n librados
-devel
652 Summary: RADOS headers
653 %if 0%{?suse_version}
654 Group: Development
/Libraries
/C and C
++
656 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
657 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
658 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
659 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
660 %description -n librados
-devel
661 This package contains C libraries and headers needed to develop programs
662 that use RADOS object store.
664 %package -n libradospp
-devel
665 Summary: RADOS headers
666 %if 0%{?suse_version}
667 Group: Development
/Libraries
/C and C
++
669 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
670 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
671 %description -n libradospp
-devel
672 This package contains C
++ libraries and headers needed to develop programs
673 that use RADOS object store.
676 Summary: RADOS gateway client library
677 %if 0%{?suse_version}
678 Group: System
/Libraries
680 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
681 %description -n librgw2
682 This package provides a library implementation of the RADOS gateway
683 (distributed object store with S3 and Swift personalities
).
685 %package -n librgw
-devel
686 Summary: RADOS gateway client library
687 %if 0%{?suse_version}
688 Group: Development
/Libraries
/C and C
++
690 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
691 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
692 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
693 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
694 %description -n librgw
-devel
695 This package contains libraries and headers needed to develop programs
696 that use RADOS gateway client library.
699 %package -n python
-rgw
700 Summary: Python
2 libraries
for the RADOS gateway
701 %if 0%{?suse_version}
702 Group: Development
/Libraries
/Python
704 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
705 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
706 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
707 %description -n python
-rgw
708 This package contains Python
2 libraries
for interacting with Cephs RADOS
712 %package -n python
%{python3_pkgversion}-rgw
713 Summary: Python
3 libraries
for the RADOS gateway
714 %if 0%{?suse_version}
715 Group: Development
/Libraries
/Python
717 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
718 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
719 Provides: python3
-rgw
= %{_epoch_prefix}%{version}-%{release}
720 %description -n python
%{python3_pkgversion}-rgw
721 This package contains Python
3 libraries
for interacting with Cephs RADOS
725 %package -n python
-rados
726 Summary: Python
2 libraries
for the RADOS object store
727 %if 0%{?suse_version}
728 Group: Development
/Libraries
/Python
730 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
731 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
732 %description -n python
-rados
733 This package contains Python
2 libraries
for interacting with Cephs RADOS
737 %package -n python
%{python3_pkgversion}-rados
738 Summary: Python
3 libraries
for the RADOS object store
739 %if 0%{?suse_version}
740 Group: Development
/Libraries
/Python
742 Requires: python
%{python3_pkgversion}
743 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
744 Provides: python3
-rados
= %{_epoch_prefix}%{version}-%{release}
745 %description -n python
%{python3_pkgversion}-rados
746 This package contains Python
3 libraries
for interacting with Cephs RADOS
749 %if 0%{with libradosstriper}
750 %package -n libradosstriper1
751 Summary: RADOS striping interface
752 %if 0%{?suse_version}
753 Group: System
/Libraries
755 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
756 %description -n libradosstriper1
757 Striping interface built on top of the rados library
, allowing
758 to stripe bigger objects onto several standard rados objects using
759 an interface very similar to the rados one.
761 %package -n libradosstriper
-devel
762 Summary: RADOS striping interface headers
763 %if 0%{?suse_version}
764 Group: Development
/Libraries
/C and C
++
766 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
767 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
768 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
769 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
770 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
771 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
772 %description -n libradosstriper
-devel
773 This package contains libraries and headers needed to develop programs
774 that use RADOS striping interface.
778 Summary: RADOS block device client library
779 %if 0%{?suse_version}
780 Group: System
/Libraries
782 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
783 %if 0%{?suse_version}
784 Requires(post
): coreutils
786 %if 0%{?rhel} || 0%{?fedora}
787 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
789 %description -n librbd1
790 RBD is a block device striped across multiple distributed objects
in
791 RADOS
, a reliable
, autonomic distributed object storage cluster
792 developed as part of the Ceph distributed storage system. This is a
793 shared library allowing applications to manage these block devices.
795 %package -n librbd
-devel
796 Summary: RADOS block device headers
797 %if 0%{?suse_version}
798 Group: Development
/Libraries
/C and C
++
800 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
801 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
802 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
803 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
804 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
805 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
806 %description -n librbd
-devel
807 This package contains libraries and headers needed to develop programs
808 that use RADOS block device.
811 %package -n python
-rbd
812 Summary: Python
2 libraries
for the RADOS block device
813 %if 0%{?suse_version}
814 Group: Development
/Libraries
/Python
816 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
817 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
818 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
819 %description -n python
-rbd
820 This package contains Python
2 libraries
for interacting with Cephs RADOS
824 %package -n python
%{python3_pkgversion}-rbd
825 Summary: Python
3 libraries
for the RADOS block device
826 %if 0%{?suse_version}
827 Group: Development
/Libraries
/Python
829 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
830 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
831 Provides: python3
-rbd
= %{_epoch_prefix}%{version}-%{release}
832 %description -n python
%{python3_pkgversion}-rbd
833 This package contains Python
3 libraries
for interacting with Cephs RADOS
836 %package -n libcephfs2
837 Summary: Ceph distributed file system client library
838 %if 0%{?suse_version}
839 Group: System
/Libraries
841 Obsoletes
: libcephfs1
842 %if 0%{?rhel} || 0%{?fedora}
843 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
844 Obsoletes
: ceph
-libcephfs
846 %description -n libcephfs2
847 Ceph is a distributed network file system designed to provide excellent
848 performance
, reliability
, and scalability. This is a shared library
849 allowing applications to access a Ceph distributed file system via a
850 POSIX
-like interface.
852 %package -n libcephfs
-devel
853 Summary: Ceph distributed file system headers
854 %if 0%{?suse_version}
855 Group: Development
/Libraries
/C and C
++
857 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
858 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
859 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
860 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
861 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
862 %description -n libcephfs
-devel
863 This package contains libraries and headers needed to develop programs
864 that use Cephs distributed file system.
867 %package -n python
-cephfs
868 Summary: Python
2 libraries
for Ceph distributed file system
869 %if 0%{?suse_version}
870 Group: Development
/Libraries
/Python
872 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
873 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
874 Requires: python
-ceph
-argparse
= %{_epoch_prefix}%{version}-%{release}
875 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
876 %description -n python
-cephfs
877 This package contains Python
2 libraries
for interacting with Cephs distributed
881 %package -n python
%{python3_pkgversion}-cephfs
882 Summary: Python
3 libraries
for Ceph distributed file system
883 %if 0%{?suse_version}
884 Group: Development
/Libraries
/Python
886 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
887 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
888 Requires: python
%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
889 Provides: python3
-cephfs
= %{_epoch_prefix}%{version}-%{release}
890 %description -n python
%{python3_pkgversion}-cephfs
891 This package contains Python
3 libraries
for interacting with Cephs distributed
895 %package -n python
-ceph
-argparse
896 Summary: Python
2 utility libraries
for Ceph CLI
897 %if 0%{?suse_version}
898 Group: Development
/Libraries
/Python
900 %description -n python
-ceph
-argparse
901 This package contains types and routines
for Python
2 used by the Ceph CLI as
902 well as the RESTful interface. These have to
do with querying the daemons
for
903 command-description information
, validating user
command input against those
904 descriptions
, and submitting the
command to the appropriate daemon.
907 %package -n python
%{python3_pkgversion}-ceph
-argparse
908 Summary: Python
3 utility libraries
for Ceph CLI
909 %if 0%{?suse_version}
910 Group: Development
/Libraries
/Python
912 Provides: python3
-ceph
-argparse
= %{_epoch_prefix}%{version}-%{release}
913 %description -n python
%{python3_pkgversion}-ceph
-argparse
914 This package contains types and routines
for Python
3 used by the Ceph CLI as
915 well as the RESTful interface. These have to
do with querying the daemons
for
916 command-description information
, validating user
command input against those
917 descriptions
, and submitting the
command to the appropriate daemon.
919 %if 0%{with cephfs_shell}
920 %package -n cephfs
-shell
921 Summary: Interactive shell
for Ceph file system
922 Requires: python
%{python3_pkgversion}-cmd2
923 Requires: python
%{python3_pkgversion}-colorama
924 Requires: python
%{python3_pkgversion}-cephfs
925 %description -n cephfs
-shell
926 This package contains an interactive tool that allows accessing a Ceph
927 file system without mounting it by providing a nice pseudo
-shell which
928 works like an FTP client.
931 %if 0%{with ceph_test_package}
932 %package -n ceph
-test
933 Summary: Ceph benchmarks and
test tools
934 %if 0%{?suse_version}
935 Group: System
/Benchmark
937 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
941 %description -n ceph
-test
942 This package contains Ceph benchmarks and
test tools.
945 %if 0%{with cephfs_java}
947 %package -n libcephfs_jni1
948 Summary: Java Native Interface library
for CephFS Java bindings
949 %if 0%{?suse_version}
950 Group: System
/Libraries
953 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
954 %description -n libcephfs_jni1
955 This package contains the Java Native Interface library
for CephFS Java
958 %package -n libcephfs_jni
-devel
959 Summary: Development files
for CephFS Java Native Interface library
960 %if 0%{?suse_version}
961 Group: Development
/Libraries
/Java
964 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
965 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
966 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
967 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
968 %description -n libcephfs_jni
-devel
969 This package contains the development files
for CephFS Java Native Interface
972 %package -n cephfs
-java
973 Summary: Java libraries
for the Ceph File System
974 %if 0%{?suse_version}
975 Group: System
/Libraries
978 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
981 %description -n cephfs
-java
982 This package contains the Java libraries
for the Ceph File System.
986 %package -n rados
-objclass
-devel
987 Summary: RADOS object class development kit
988 %if 0%{?suse_version}
989 Group: Development
/Libraries
/C and C
++
991 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
992 %description -n rados
-objclass
-devel
993 This package contains libraries and headers needed to develop RADOS object
999 Summary: SELinux support
for Ceph MON
, OSD and MDS
1000 %if 0%{?suse_version}
1001 Group: System
/Filesystems
1003 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
1004 Requires: policycoreutils
, libselinux
-utils
1005 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
1006 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
1007 Requires(postun
): policycoreutils
1008 %description selinux
1009 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
1010 also performs file
-system relabelling which can take a long
time on heavily
1011 populated file
-systems.
1015 %if 0%{with python2}
1016 %package -n python
-ceph
-compat
1017 Summary: Compatibility package
for Cephs python libraries
1018 %if 0%{?suse_version}
1019 Group: Development
/Libraries
/Python
1021 Obsoletes
: python
-ceph
1022 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
1023 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
1024 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
1025 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
1026 Provides: python
-ceph
1027 %description -n python
-ceph
-compat
1028 This is a compatibility package to accommodate python
-ceph split into
1029 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
1030 depending on python
-ceph should be fixed to depend on python
-rados
,
1031 python
-rbd
, python
-rgw or python
-cephfs instead.
1034 %package grafana
-dashboards
1035 Summary: The
set of Grafana dashboards
for monitoring purposes
1037 %if 0%{?suse_version}
1038 Group: System
/Filesystems
1040 %description grafana
-dashboards
1041 This package provides a
set of Grafana dashboards
for monitoring of
1042 Ceph clusters. The dashboards require a Prometheus server setup
1043 collecting data from Ceph Manager "prometheus" module and Prometheus
1044 project "node_exporter" module. The dashboards are designed to be
1045 integrated with the Ceph Manager Dashboard web UI.
1047 #################################################################################
1049 #################################################################################
1051 %autosetup -p1
-n @TARBALL_BASENAME@
1056 .
/opt
/rh
/devtoolset
-7/enable
1059 %if 0%{with cephfs_java}
1061 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
1062 [ -d $i
] && java_inc
="$java_inc
-I$i"
1066 %if 0%{?suse_version}
1067 # the following setting fixed an OOM condition we once encountered in the OBS
1068 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
1071 export CPPFLAGS
="$java_inc"
1072 export CFLAGS
="$RPM_OPT_FLAGS"
1073 export CXXFLAGS
="$RPM_OPT_FLAGS"
1074 export LDFLAGS
="$RPM_LD_FLAGS"
1076 # Parallel build settings ...
1077 CEPH_MFLAGS_JOBS
="
%{?_smp_mflags}"
1078 CEPH_SMP_NCPUS
=$
(echo "$CEPH_MFLAGS_JOBS" | sed 's
/-j
//'
)
1079 %if 0%{?__isa_bits} == 32
1080 # 32-bit builds can use 3G memory max, which is not enough even for -j2
1083 # do not eat all memory
1084 echo "Available memory
:"
1086 echo "System limits
:"
1088 if test -n "$CEPH_SMP_NCPUS"
-a "$CEPH_SMP_NCPUS"
-gt
1 ; then
1089 mem_per_process
=1800
1090 max_mem
=$
(LANG
=C free
-m | sed
-n "s|^Mem
: *\
([0-9]*\
).
*$|\
1|p"
)
1091 max_jobs
="$
(($max_mem
/ $mem_per_process
))"
1092 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"
1093 test "$CEPH_SMP_NCPUS"
-le
0 && CEPH_SMP_NCPUS
="
1"
&& echo "Warning
: Not using parallel build at all because of memory limits"
1095 export CEPH_SMP_NCPUS
1096 export CEPH_MFLAGS_JOBS
="
-j$CEPH_SMP_NCPUS"
1108 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
1109 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
1110 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
1111 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
1112 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
1113 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
1114 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
1115 -DCMAKE_INSTALL_INCLUDEDIR
=%{_includedir} \
1117 -DWITH_PYTHON3
=%{python3_version} \
1118 -DWITH_MGR_DASHBOARD_FRONTEND
=OFF \
1122 -DWITH_PYTHON2
=OFF \
1123 -DMGR_PYTHON_VERSION
=3 \
1125 %if 0%{without ceph_test_package}
1128 %if 0%{with cephfs_java}
1129 -DWITH_CEPHFS_JAVA
=ON \
1131 %if 0%{with selinux}
1136 -DWITH_BABELTRACE
=ON \
1139 -DWITH_BABELTRACE
=OFF \
1141 $CEPH_EXTRA_CMAKE_ARGS \
1145 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
1146 -DWITH_BOOST_CONTEXT
=ON \
1148 -DWITH_BOOST_CONTEXT
=OFF \
1150 %if 0%{with cephfs_shell}
1151 -DWITH_CEPHFS_SHELL
=ON \
1153 %if 0%{with libradosstriper}
1154 -DWITH_LIBRADOSSTRIPER
=ON \
1156 -DWITH_LIBRADOSSTRIPER
=OFF \
1158 %if 0%{with amqp_endpoint}
1159 -DWITH_RADOSGW_AMQP_ENDPOINT
=ON \
1161 -DWITH_RADOSGW_AMQP_ENDPOINT
=OFF \
1163 -DBOOST_J
=$CEPH_SMP_NCPUS \
1166 make "$CEPH_MFLAGS_JOBS"
1169 %if 0%{with make_check}
1171 # run in-tree unittests
1173 ctest "$CEPH_MFLAGS_JOBS"
1179 make DESTDIR
=%{buildroot} install
1180 # we have dropped sysvinit bits
1181 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
1183 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
1184 %if 0%{?fedora} || 0%{?rhel}
1185 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
1187 %if 0%{?suse_version}
1188 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_fillupdir}/sysconfig.%{name}
1190 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
1191 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
1192 mkdir -p
%{buildroot}%{_sbindir}
1193 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
1194 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
1195 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
1196 install -m
0644 -D etc
/sysctl
/90-ceph
-osd.conf
%{buildroot}%{_sysctldir}/90-ceph
-osd.conf
1198 # firewall templates and /sbin/mount.ceph symlink
1199 %if 0%{?suse_version}
1200 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
1201 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
1202 mkdir -p
%{buildroot}/sbin
1203 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
1207 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
1210 install -m
0600 -D sudoers.d
/ceph
-osd
-smartctl
%{buildroot}%{_sysconfdir}/sudoers.d
/ceph
-osd
-smartctl
1212 #set up placeholder directories
1213 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
1214 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
1215 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
1216 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
1217 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
1218 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
1219 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
1220 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
1221 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/crash
1222 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/crash
/posted
1223 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
1224 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
1225 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
1226 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
1227 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
1228 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
1229 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
-mirror
1231 %if 0%{?suse_version}
1232 # create __pycache__ directories and their contents
1233 %py3_compile %{buildroot}%{python3_sitelib}
1236 %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}
1242 #################################################################################
1243 # files and systemd scriptlets
1244 #################################################################################
1248 %{_bindir}/ceph
-crash
1249 %{_bindir}/crushtool
1250 %{_bindir}/monmaptool
1251 %{_bindir}/osdmaptool
1252 %{_bindir}/ceph
-kvstore
-tool
1254 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
1255 %{_sbindir}/ceph
-create
-keys
1256 %dir %{_libexecdir}/ceph
1257 %{_libexecdir}/ceph
/ceph_common.sh
1258 %dir %{_libdir}/rados
-classes
1259 %{_libdir}/rados
-classes
/*
1260 %dir %{_libdir}/ceph
1261 %dir %{_libdir}/ceph
/erasure
-code
1262 %{_libdir}/ceph
/erasure
-code
/libec_
*.so
*
1263 %dir %{_libdir}/ceph
/compressor
1264 %{_libdir}/ceph
/compressor
/libceph_
*.so
*
1265 %{_unitdir}/ceph
-crash.service
1266 %dir %{_libdir}/ceph
/crypto
1267 %{_libdir}/ceph
/crypto
/libceph_
*.so
*
1269 %{_libdir}/libos_tp.so
*
1270 %{_libdir}/libosd_tp.so
*
1272 %config(noreplace
) %{_sysconfdir}/logrotate.d
/ceph
1273 %if 0%{?fedora} || 0%{?rhel}
1274 %config(noreplace
) %{_sysconfdir}/sysconfig
/ceph
1276 %if 0%{?suse_version}
1277 %{_fillupdir}/sysconfig.
*
1278 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
1279 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
1281 %{_unitdir}/ceph.target
1282 %if 0%{with python2}
1283 %dir %{python_sitelib}/ceph_volume
1284 %{python_sitelib}/ceph_volume
/*
1285 %{python_sitelib}/ceph_volume
-*
1287 %dir %{python3_sitelib}/ceph_volume
1288 %{python3_sitelib}/ceph_volume
/*
1289 %{python3_sitelib}/ceph_volume
-*
1291 %{_mandir}/man8
/ceph
-deploy
.8*
1292 %{_mandir}/man8
/ceph
-create
-keys
.8*
1293 %{_mandir}/man8
/ceph
-run
.8*
1294 %{_mandir}/man8
/crushtool
.8*
1295 %{_mandir}/man8
/osdmaptool
.8*
1296 %{_mandir}/man8
/monmaptool
.8*
1297 %{_mandir}/man8
/ceph
-kvstore
-tool
.8*
1298 #set up placeholder directories
1299 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/crash
1300 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/crash
/posted
1301 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
1302 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
1303 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
1304 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
1305 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
1306 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
1307 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
-mirror
1311 %if 0%{?suse_version}
1313 if [ $
1 -eq
1 ] ; then
1314 /usr
/bin
/systemctl preset ceph.target ceph
-crash.service
>/dev
/null
2>&1 ||
:
1317 %if 0%{?fedora} || 0%{?rhel}
1318 %systemd_post ceph.target ceph
-crash.service
1320 if [ $
1 -eq
1 ] ; then
1321 /usr
/bin
/systemctl start ceph.target ceph
-crash.service
>/dev
/null
2>&1 ||
:
1325 %if 0%{?suse_version}
1326 %service_del_preun ceph.target ceph
-crash.service
1328 %if 0%{?fedora} || 0%{?rhel}
1329 %systemd_preun ceph.target ceph
-crash.service
1334 %if 0%{?suse_version}
1335 DISABLE_RESTART_ON_UPDATE
="yes"
1336 %service_del_postun ceph.target
1338 %if 0%{?fedora} || 0%{?rhel}
1339 %systemd_postun ceph.target
1341 if [ $
1 -ge
1 ] ; then
1342 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1343 # "yes". In any case: if units are not running, do not touch them.
1344 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1345 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1346 source $SYSCONF_CEPH
1351 %dir %{_docdir}/ceph
1352 %doc %{_docdir}/ceph
/sample.ceph.conf
1353 %license %{_docdir}/ceph
/COPYING
1355 %{_bindir}/ceph
-authtool
1356 %{_bindir}/ceph
-conf
1357 %{_bindir}/ceph
-dencoder
1358 %{_bindir}/ceph
-rbdnamer
1360 %{_bindir}/cephfs
-data
-scan
1361 %{_bindir}/cephfs
-journal
-tool
1362 %{_bindir}/cephfs
-table
-tool
1364 %{_bindir}/radosgw
-admin
1366 %{_bindir}/rbd
-replay
1367 %{_bindir}/rbd
-replay
-many
1369 %{_sbindir}/mount.ceph
1370 %if 0%{?suse_version}
1374 %{_bindir}/rbd
-replay
-prep
1376 %{_bindir}/ceph
-post
-file
1377 %{_tmpfilesdir}/ceph
-common.conf
1378 %{_mandir}/man8
/ceph
-authtool
.8*
1379 %{_mandir}/man8
/ceph
-conf
.8*
1380 %{_mandir}/man8
/ceph
-dencoder
.8*
1381 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1382 %{_mandir}/man8
/ceph
-syn
.8*
1383 %{_mandir}/man8
/ceph
-post
-file
.8*
1384 %{_mandir}/man8
/ceph
.8*
1385 %{_mandir}/man8
/mount.ceph
.8*
1386 %{_mandir}/man8
/rados
.8*
1387 %{_mandir}/man8
/radosgw
-admin
.8*
1388 %{_mandir}/man8
/rbd
.8*
1389 %{_mandir}/man8
/rbdmap
.8*
1390 %{_mandir}/man8
/rbd
-replay
.8*
1391 %{_mandir}/man8
/rbd
-replay
-many
.8*
1392 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1393 %dir %{_datadir}/ceph
/
1394 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1395 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1396 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1397 %dir %{_sysconfdir}/ceph
/
1398 %config %{_sysconfdir}/bash_completion.d
/ceph
1399 %config %{_sysconfdir}/bash_completion.d
/rados
1400 %config %{_sysconfdir}/bash_completion.d
/rbd
1401 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1402 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1403 %{_unitdir}/rbdmap.service
1404 %dir %{_udevrulesdir}
1405 %{_udevrulesdir}/50-rbd.rules
1406 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1407 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1412 %if 0%{?rhel} || 0%{?fedora}
1413 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1414 /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 ||
:
1416 %if 0%{?suse_version}
1417 if ! getent group ceph
>/dev
/null
; then
1418 CEPH_GROUP_ID_OPTION
=""
1419 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1420 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1422 if ! getent passwd ceph
>/dev
/null
; then
1423 CEPH_USER_ID_OPTION
=""
1424 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1425 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1427 usermod
-c "Ceph storage service" \
1428 -d
%{_localstatedir}/lib
/ceph \
1436 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1439 # Package removal cleanup
1440 if [ "$
1"
-eq "
0"
] ; then
1441 rm -rf
%{_localstatedir}/log
/ceph
1442 rm -rf
%{_sysconfdir}/ceph
1447 %{_mandir}/man8
/ceph
-mds
.8*
1448 %{_unitdir}/ceph
-mds@.service
1449 %{_unitdir}/ceph
-mds.target
1450 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1453 %if 0%{?suse_version}
1454 if [ $
1 -eq
1 ] ; then
1455 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1458 %if 0%{?fedora} || 0%{?rhel}
1459 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1461 if [ $
1 -eq
1 ] ; then
1462 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1466 %if 0%{?suse_version}
1467 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1469 %if 0%{?fedora} || 0%{?rhel}
1470 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1474 %if 0%{?suse_version}
1475 DISABLE_RESTART_ON_UPDATE
="yes"
1476 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1478 %if 0%{?fedora} || 0%{?rhel}
1479 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1481 if [ $
1 -ge
1 ] ; then
1482 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1483 # "yes". In any case: if units are not running, do not touch them.
1484 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1485 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1486 source $SYSCONF_CEPH
1488 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1489 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1495 %dir %{_datadir}/ceph
/mgr
1496 %{_datadir}/ceph
/mgr
/ansible
1497 %{_datadir}/ceph
/mgr
/balancer
1498 %{_datadir}/ceph
/mgr
/crash
1499 %{_datadir}/ceph
/mgr
/deepsea
1500 %{_datadir}/ceph
/mgr
/devicehealth
1501 %{_datadir}/ceph
/mgr
/influx
1502 %{_datadir}/ceph
/mgr
/insights
1503 %{_datadir}/ceph
/mgr
/iostat
1504 %{_datadir}/ceph
/mgr
/localpool
1505 %{_datadir}/ceph
/mgr
/mgr_module.
*
1506 %{_datadir}/ceph
/mgr
/mgr_util.
*
1507 %{_datadir}/ceph
/mgr
/orchestrator_cli
1508 %{_datadir}/ceph
/mgr
/orchestrator.
*
1509 %{_datadir}/ceph
/mgr
/osd_perf_query
1510 %{_datadir}/ceph
/mgr
/pg_autoscaler
1511 %{_datadir}/ceph
/mgr
/progress
1512 %{_datadir}/ceph
/mgr
/prometheus
1513 %{_datadir}/ceph
/mgr
/rbd_support
1514 %{_datadir}/ceph
/mgr
/restful
1515 %{_datadir}/ceph
/mgr
/selftest
1516 %{_datadir}/ceph
/mgr
/status
1517 %{_datadir}/ceph
/mgr
/telegraf
1518 %{_datadir}/ceph
/mgr
/telemetry
1519 %{_datadir}/ceph
/mgr
/test_orchestrator
1520 %{_datadir}/ceph
/mgr
/volumes
1521 %{_datadir}/ceph
/mgr
/zabbix
1522 %{_unitdir}/ceph
-mgr@.service
1523 %{_unitdir}/ceph
-mgr.target
1524 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1527 %if 0%{?suse_version}
1528 if [ $
1 -eq
1 ] ; then
1529 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1532 %if 0%{?fedora} || 0%{?rhel}
1533 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1535 if [ $
1 -eq
1 ] ; then
1536 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1540 %if 0%{?suse_version}
1541 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1543 %if 0%{?fedora} || 0%{?rhel}
1544 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1548 %if 0%{?suse_version}
1549 DISABLE_RESTART_ON_UPDATE
="yes"
1550 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1552 %if 0%{?fedora} || 0%{?rhel}
1553 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1555 if [ $
1 -ge
1 ] ; then
1556 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1557 # "yes". In any case: if units are not running, do not touch them.
1558 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1559 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1560 source $SYSCONF_CEPH
1562 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1563 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1567 %files mgr
-dashboard
1568 %{_datadir}/ceph
/mgr
/dashboard
1571 if [ $
1 -eq
1 ] ; then
1572 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1575 %postun mgr
-dashboard
1576 if [ $
1 -eq
1 ] ; then
1577 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1580 %files mgr
-diskprediction
-local
1581 %{_datadir}/ceph
/mgr
/diskprediction_local
1583 %post mgr
-diskprediction
-local
1584 if [ $
1 -eq
1 ] ; then
1585 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1588 %postun mgr
-diskprediction
-local
1589 if [ $
1 -eq
1 ] ; then
1590 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1593 %files mgr
-diskprediction
-cloud
1594 %{_datadir}/ceph
/mgr
/diskprediction_cloud
1596 %post mgr
-diskprediction
-cloud
1597 if [ $
1 -eq
1 ] ; then
1598 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1601 %postun mgr
-diskprediction
-cloud
1602 if [ $
1 -eq
1 ] ; then
1603 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1607 %{_datadir}/ceph
/mgr
/rook
1610 if [ $
1 -eq
1 ] ; then
1611 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1615 if [ $
1 -eq
1 ] ; then
1616 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1620 %{_datadir}/ceph
/mgr
/ssh
1623 if [ $
1 -eq
1 ] ; then
1624 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1628 if [ $
1 -eq
1 ] ; then
1629 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1634 %{_bindir}/ceph
-monstore
-tool
1635 %{_mandir}/man8
/ceph
-mon
.8*
1636 %{_unitdir}/ceph
-mon@.service
1637 %{_unitdir}/ceph
-mon.target
1638 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1641 %if 0%{?suse_version}
1642 if [ $
1 -eq
1 ] ; then
1643 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1646 %if 0%{?fedora} || 0%{?rhel}
1647 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1649 if [ $
1 -eq
1 ] ; then
1650 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1654 %if 0%{?suse_version}
1655 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1657 %if 0%{?fedora} || 0%{?rhel}
1658 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1662 %if 0%{?suse_version}
1663 DISABLE_RESTART_ON_UPDATE
="yes"
1664 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1666 %if 0%{?fedora} || 0%{?rhel}
1667 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1669 if [ $
1 -ge
1 ] ; then
1670 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1671 # "yes". In any case: if units are not running, do not touch them.
1672 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1673 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1674 source $SYSCONF_CEPH
1676 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1677 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1682 %{_bindir}/ceph
-fuse
1683 %{_mandir}/man8
/ceph
-fuse
.8*
1684 %{_sbindir}/mount.fuse.ceph
1685 %{_unitdir}/ceph
-fuse@.service
1686 %{_unitdir}/ceph
-fuse.target
1690 %{_mandir}/man8
/rbd
-fuse
.8*
1692 %files -n rbd
-mirror
1693 %{_bindir}/rbd
-mirror
1694 %{_mandir}/man8
/rbd
-mirror
.8*
1695 %{_unitdir}/ceph
-rbd
-mirror@.service
1696 %{_unitdir}/ceph
-rbd
-mirror.target
1699 %if 0%{?suse_version}
1700 if [ $
1 -eq
1 ] ; then
1701 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1704 %if 0%{?fedora} || 0%{?rhel}
1705 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1707 if [ $
1 -eq
1 ] ; then
1708 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1711 %preun -n rbd
-mirror
1712 %if 0%{?suse_version}
1713 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1715 %if 0%{?fedora} || 0%{?rhel}
1716 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1719 %postun -n rbd
-mirror
1720 %if 0%{?suse_version}
1721 DISABLE_RESTART_ON_UPDATE
="yes"
1722 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1724 %if 0%{?fedora} || 0%{?rhel}
1725 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1727 if [ $
1 -ge
1 ] ; then
1728 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1729 # "yes". In any case: if units are not running, do not touch them.
1730 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1731 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1732 source $SYSCONF_CEPH
1734 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1735 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1741 %{_mandir}/man8
/rbd
-nbd
.8*
1745 %{_bindir}/radosgw
-token
1746 %{_bindir}/radosgw
-es
1747 %{_bindir}/radosgw
-object
-expirer
1748 %{_mandir}/man8
/radosgw
.8*
1749 %dir %{_localstatedir}/lib
/ceph
/radosgw
1750 %{_unitdir}/ceph
-radosgw@.service
1751 %{_unitdir}/ceph
-radosgw.target
1754 %if 0%{?suse_version}
1755 if [ $
1 -eq
1 ] ; then
1756 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1759 %if 0%{?fedora} || 0%{?rhel}
1760 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1762 if [ $
1 -eq
1 ] ; then
1763 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1767 %if 0%{?suse_version}
1768 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1770 %if 0%{?fedora} || 0%{?rhel}
1771 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1775 %if 0%{?suse_version}
1776 DISABLE_RESTART_ON_UPDATE
="yes"
1777 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1779 %if 0%{?fedora} || 0%{?rhel}
1780 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1782 if [ $
1 -ge
1 ] ; then
1783 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1784 # "yes". In any case: if units are not running, do not touch them.
1785 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1786 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1787 source $SYSCONF_CEPH
1789 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1790 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1795 %{_bindir}/ceph
-clsinfo
1796 %{_bindir}/ceph
-bluestore
-tool
1797 %{_bindir}/ceph
-objectstore
-tool
1798 %{_bindir}/ceph
-osdomap
-tool
1800 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1801 %{_sbindir}/ceph
-volume
1802 %{_sbindir}/ceph
-volume
-systemd
1803 %{_mandir}/man8
/ceph
-clsinfo
.8*
1804 %{_mandir}/man8
/ceph
-osd
.8*
1805 %{_mandir}/man8
/ceph
-bluestore
-tool
.8*
1806 %{_mandir}/man8
/ceph
-volume
.8*
1807 %{_mandir}/man8
/ceph
-volume
-systemd
.8*
1808 %{_unitdir}/ceph
-osd@.service
1809 %{_unitdir}/ceph
-osd.target
1810 %{_unitdir}/ceph
-volume@.service
1811 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1812 %config(noreplace
) %{_sysctldir}/90-ceph
-osd.conf
1813 %{_sysconfdir}/sudoers.d
/ceph
-osd
-smartctl
1816 %if 0%{?suse_version}
1817 if [ $
1 -eq
1 ] ; then
1818 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1821 %if 0%{?fedora} || 0%{?rhel}
1822 %systemd_post ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1824 if [ $
1 -eq
1 ] ; then
1825 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1827 %if 0%{?sysctl_apply}
1828 %sysctl_apply 90-ceph
-osd.conf
1830 /usr
/lib
/systemd
/systemd
-sysctl
%{_sysctldir}/90-ceph
-osd.conf
> /dev
/null
2>&1 ||
:
1834 %if 0%{?suse_version}
1835 %service_del_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1837 %if 0%{?fedora} || 0%{?rhel}
1838 %systemd_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1842 %if 0%{?suse_version}
1843 DISABLE_RESTART_ON_UPDATE
="yes"
1844 %service_del_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1846 %if 0%{?fedora} || 0%{?rhel}
1847 %systemd_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1849 if [ $
1 -ge
1 ] ; then
1850 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1851 # "yes". In any case: if units are not running, do not touch them.
1852 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1853 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1854 source $SYSCONF_CEPH
1856 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1857 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service ceph
-volume@\
*.service
> /dev
/null
2>&1 ||
:
1863 %files resource
-agents
1864 %dir %{_prefix}/lib
/ocf
1865 %dir %{_prefix}/lib
/ocf
/resource.d
1866 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1867 %attr(0755,-,-) %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1872 %{_libdir}/librados.so.
*
1873 %dir %{_libdir}/ceph
1874 %{_libdir}/ceph
/libceph
-common.so.
*
1876 %{_libdir}/librados_tp.so.
*
1879 %post -n librados2
-p
/sbin
/ldconfig
1881 %postun -n librados2
-p
/sbin
/ldconfig
1883 %files -n librados
-devel
1884 %dir %{_includedir}/rados
1885 %{_includedir}/rados
/librados.h
1886 %{_includedir}/rados
/rados_types.h
1887 %{_libdir}/librados.so
1889 %{_libdir}/librados_tp.so
1891 %{_bindir}/librados
-config
1892 %{_mandir}/man8
/librados
-config
.8*
1894 %files -n libradospp
-devel
1895 %dir %{_includedir}/rados
1896 %{_includedir}/rados
/buffer.h
1897 %{_includedir}/rados
/buffer_fwd.h
1898 %{_includedir}/rados
/crc32c.h
1899 %{_includedir}/rados
/inline_memory.h
1900 %{_includedir}/rados
/librados.hpp
1901 %{_includedir}/rados
/librados_fwd.hpp
1902 %{_includedir}/rados
/page.h
1903 %{_includedir}/rados
/rados_types.hpp
1905 %if 0%{with python2}
1906 %files -n python
-rados
1907 %{python_sitearch}/rados.so
1908 %{python_sitearch}/rados
-*.egg
-info
1911 %files -n python
%{python3_pkgversion}-rados
1912 %{python3_sitearch}/rados.cpython
*.so
1913 %{python3_sitearch}/rados
-*.egg
-info
1915 %if 0%{with libradosstriper}
1916 %files -n libradosstriper1
1917 %{_libdir}/libradosstriper.so.
*
1919 %post -n libradosstriper1
-p
/sbin
/ldconfig
1921 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1923 %files -n libradosstriper
-devel
1924 %dir %{_includedir}/radosstriper
1925 %{_includedir}/radosstriper
/libradosstriper.h
1926 %{_includedir}/radosstriper
/libradosstriper.hpp
1927 %{_libdir}/libradosstriper.so
1931 %{_libdir}/librbd.so.
*
1933 %{_libdir}/librbd_tp.so.
*
1936 %post -n librbd1
-p
/sbin
/ldconfig
1938 %postun -n librbd1
-p
/sbin
/ldconfig
1940 %files -n librbd
-devel
1941 %dir %{_includedir}/rbd
1942 %{_includedir}/rbd
/librbd.h
1943 %{_includedir}/rbd
/librbd.hpp
1944 %{_includedir}/rbd
/features.h
1945 %{_libdir}/librbd.so
1947 %{_libdir}/librbd_tp.so
1951 %{_libdir}/librgw.so.
*
1952 %{_libdir}/librgw_admin_user.so.
*
1954 %{_libdir}/librgw_op_tp.so
*
1955 %{_libdir}/librgw_rados_tp.so
*
1958 %post -n librgw2
-p
/sbin
/ldconfig
1960 %postun -n librgw2
-p
/sbin
/ldconfig
1962 %files -n librgw
-devel
1963 %dir %{_includedir}/rados
1964 %{_includedir}/rados
/librgw.h
1965 %{_includedir}/rados
/librgw_admin_user.h
1966 %{_includedir}/rados
/rgw_file.h
1967 %{_libdir}/librgw.so
1968 %{_libdir}/librgw_admin_user.so
1970 %if 0%{with python2}
1971 %files -n python
-rgw
1972 %{python_sitearch}/rgw.so
1973 %{python_sitearch}/rgw
-*.egg
-info
1976 %files -n python
%{python3_pkgversion}-rgw
1977 %{python3_sitearch}/rgw.cpython
*.so
1978 %{python3_sitearch}/rgw
-*.egg
-info
1980 %if 0%{with python2}
1981 %files -n python
-rbd
1982 %{python_sitearch}/rbd.so
1983 %{python_sitearch}/rbd
-*.egg
-info
1986 %files -n python
%{python3_pkgversion}-rbd
1987 %{python3_sitearch}/rbd.cpython
*.so
1988 %{python3_sitearch}/rbd
-*.egg
-info
1990 %files -n libcephfs2
1991 %{_libdir}/libcephfs.so.
*
1993 %post -n libcephfs2
-p
/sbin
/ldconfig
1995 %postun -n libcephfs2
-p
/sbin
/ldconfig
1997 %files -n libcephfs
-devel
1998 %dir %{_includedir}/cephfs
1999 %{_includedir}/cephfs
/libcephfs.h
2000 %{_includedir}/cephfs
/ceph_statx.h
2001 %{_libdir}/libcephfs.so
2003 %if 0%{with python2}
2004 %files -n python
-cephfs
2005 %{python_sitearch}/cephfs.so
2006 %{python_sitearch}/cephfs
-*.egg
-info
2007 %{python_sitelib}/ceph_volume_client.py
*
2010 %files -n python
%{python3_pkgversion}-cephfs
2011 %{python3_sitearch}/cephfs.cpython
*.so
2012 %{python3_sitearch}/cephfs
-*.egg
-info
2013 %{python3_sitelib}/ceph_volume_client.py
2014 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
2016 %if 0%{with python2}
2017 %files -n python
-ceph
-argparse
2018 %{python_sitelib}/ceph_argparse.py
*
2019 %{python_sitelib}/ceph_daemon.py
*
2022 %files -n python
%{python3_pkgversion}-ceph
-argparse
2023 %{python3_sitelib}/ceph_argparse.py
2024 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
2025 %{python3_sitelib}/ceph_daemon.py
2026 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
2028 %if 0%{with cephfs_shell}
2029 %files -n cephfs
-shell
2030 %{python3_sitelib}/cephfs_shell
-*.egg
-info
2031 %{_bindir}/cephfs
-shell
2034 %if 0%{with ceph_test_package}
2036 %{_bindir}/ceph
-client
-debug
2037 %{_bindir}/ceph_bench_log
2038 %{_bindir}/ceph_kvstorebench
2039 %{_bindir}/ceph_multi_stress_watch
2040 %{_bindir}/ceph_erasure_code
2041 %{_bindir}/ceph_erasure_code_benchmark
2042 %{_bindir}/ceph_omapbench
2043 %{_bindir}/ceph_objectstore_bench
2044 %{_bindir}/ceph_perf_objectstore
2045 %{_bindir}/ceph_perf_local
2046 %{_bindir}/ceph_perf_msgr_client
2047 %{_bindir}/ceph_perf_msgr_server
2048 %{_bindir}/ceph_psim
2049 %{_bindir}/ceph_radosacl
2050 %{_bindir}/ceph_rgw_jsonparser
2051 %{_bindir}/ceph_rgw_multiparser
2052 %{_bindir}/ceph_scratchtool
2053 %{_bindir}/ceph_scratchtoolpp
2054 %{_bindir}/ceph_test_
*
2055 %{_bindir}/ceph
-coverage
2056 %{_bindir}/ceph
-debugpack
2057 %{_bindir}/cephdeduptool
2058 %{_mandir}/man8
/ceph
-debugpack
.8*
2059 %dir %{_libdir}/ceph
2060 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
2063 %if 0%{with cephfs_java}
2064 %files -n libcephfs_jni1
2065 %{_libdir}/libcephfs_jni.so.
*
2067 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
2069 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
2071 %files -n libcephfs_jni
-devel
2072 %{_libdir}/libcephfs_jni.so
2074 %files -n cephfs
-java
2075 %{_javadir}/libcephfs.jar
2076 %{_javadir}/libcephfs
-test.jar
2079 %files -n rados
-objclass
-devel
2080 %dir %{_includedir}/rados
2081 %{_includedir}/rados
/objclass.h
2083 %if 0%{with selinux}
2085 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
2086 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
2087 %{_mandir}/man8
/ceph_selinux
.8*
2090 # backup file_contexts before update
2091 .
/etc
/selinux
/config
2092 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
2093 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
2095 # Install the policy
2096 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
2098 # Load the policy if SELinux is enabled
2099 if ! /usr
/sbin
/selinuxenabled
; then
2100 # Do not relabel if selinux is not enabled
2104 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
2105 # Do not relabel if file contexts did not change
2109 # Check whether the daemons are running
2110 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
2113 # Stop the daemons if they were running
2114 if test $STATUS
-eq
0; then
2115 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
2118 # Relabel the files fix for first package install
2119 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
2121 rm -f $
{FILE_CONTEXT
}.pre
2122 # The fixfiles command won't fix label for /var/run/ceph
2123 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
2125 # Start the daemons iff they were running before
2126 if test $STATUS
-eq
0; then
2127 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
2132 if [ $
1 -eq
0 ]; then
2133 # backup file_contexts before update
2134 .
/etc
/selinux
/config
2135 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
2136 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
2139 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
2141 # Reload the policy if SELinux is enabled
2142 if ! /usr
/sbin
/selinuxenabled
; then
2143 # Do not relabel if SELinux is not enabled
2147 # Check whether the daemons are running
2148 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
2151 # Stop the daemons if they were running
2152 if test $STATUS
-eq
0; then
2153 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
2156 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
2157 rm -f $
{FILE_CONTEXT
}.pre
2158 # The fixfiles command won't fix label for /var/run/ceph
2159 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
2161 # Start the daemons if they were running before
2162 if test $STATUS
-eq
0; then
2163 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
2168 %endif # with selinux
2170 %if 0%{with python2}
2171 %files -n python
-ceph
-compat
2172 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
2173 # actually build this meta package.
2176 %files grafana
-dashboards
2177 %if 0%{?suse_version}
2178 %attr(0750,root
,grafana
) %dir %{_sysconfdir}/grafana
2179 %attr(0750,root
,grafana
) %dir %{_sysconfdir}/grafana
/dashboards
2180 %attr(0750,root
,grafana
) %dir %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
2182 %attr(0755,root
,root
) %dir %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
2184 %config %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
/*
2185 %doc monitoring
/grafana
/dashboards
/README
2186 %doc monitoring
/grafana
/README.md