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
230 PreReq
: %fillup_prereq
231 BuildRequires
: net
-tools
232 BuildRequires
: libbz2
-devel
233 BuildRequires
: mozilla
-nss
-devel
234 BuildRequires
: keyutils
-devel
235 BuildRequires
: libopenssl
-devel
236 BuildRequires
: lsb
-release
237 BuildRequires
: openldap2
-devel
239 #BuildRequires: krb5-devel
240 BuildRequires
: cunit
-devel
241 BuildRequires
: python
%{_python_buildid}-setuptools
242 BuildRequires
: python
%{_python_buildid}-Cython
243 BuildRequires
: python
%{_python_buildid}-PrettyTable
244 BuildRequires
: python
%{_python_buildid}-Sphinx
245 BuildRequires
: rdma
-core
-devel
246 BuildRequires
: liblz4
-devel
>= 1.7
247 # for prometheus-alerts
248 BuildRequires
: golang
-github
-prometheus
-prometheus
250 %if 0%{?fedora} || 0%{?rhel}
252 BuildRequires
: boost
-random
253 BuildRequires
: nss
-devel
254 BuildRequires
: keyutils
-libs
-devel
255 BuildRequires
: libibverbs
-devel
256 BuildRequires
: librdmacm
-devel
257 BuildRequires
: openldap
-devel
258 #BuildRequires: krb5-devel
259 BuildRequires
: openssl
-devel
260 BuildRequires
: CUnit
-devel
261 BuildRequires
: redhat
-lsb
-core
263 BuildRequires
: python2
-Cython
265 BuildRequires
: python
%{python3_pkgversion}-devel
266 BuildRequires
: python
%{python3_pkgversion}-setuptools
267 BuildRequires
: python
%{python3_pkgversion}-Cython
268 BuildRequires
: python
%{_python_buildid}-prettytable
269 BuildRequires
: python
%{_python_buildid}-sphinx
270 BuildRequires
: lz4
-devel
>= 1.7
272 # distro-conditional make check dependencies
273 %if 0%{with make_check}
274 %if 0%{?fedora} || 0%{?rhel}
275 BuildRequires
: python
%{_python_buildid}-cherrypy
276 BuildRequires
: python
%{_python_buildid}-jwt
277 BuildRequires
: python
%{_python_buildid}-routes
278 BuildRequires
: python
%{_python_buildid}-werkzeug
279 BuildRequires
: xmlsec1
281 %if 0%{?suse_version}
282 BuildRequires
: python
%{_python_buildid}-CherryPy
283 BuildRequires
: python
%{_python_buildid}-PyJWT
284 BuildRequires
: python
%{_python_buildid}-Routes
285 BuildRequires
: python
%{_python_buildid}-Werkzeug
286 BuildRequires
: python
%{_python_buildid}-numpy
-devel
287 BuildRequires
: xmlsec1
-devel
290 # lttng and babeltrace for rbd-replay-prep
292 %if 0%{?fedora} || 0%{?rhel}
293 BuildRequires
: lttng
-ust
-devel
294 BuildRequires
: libbabeltrace
-devel
296 %if 0%{?suse_version}
297 BuildRequires
: lttng
-ust
-devel
298 BuildRequires
: babeltrace
-devel
301 %if 0%{?suse_version}
302 BuildRequires
: libexpat
-devel
304 %if 0%{?rhel} || 0%{?fedora}
305 BuildRequires
: expat
-devel
308 %if 0%{?fedora} || 0%{?rhel}
309 BuildRequires
: redhat
-rpm
-config
312 %if 0%{?fedora} || 0%{?rhel}
313 BuildRequires
: cryptopp
-devel
314 BuildRequires
: numactl
-devel
315 BuildRequires
: protobuf
-compiler
317 %if 0%{?suse_version}
318 BuildRequires
: libcryptopp
-devel
319 BuildRequires
: libnuma
-devel
324 Ceph is a massively scalable
, open
-source, distributed storage system that runs
325 on commodity hardware and delivers object
, block and file system storage.
328 #################################################################################
330 #################################################################################
332 Summary: Ceph Base Package
333 %if 0%{?suse_version}
334 Group: System
/Filesystems
336 Provides: ceph
-test:/usr
/bin
/ceph
-kvstore
-tool
337 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
338 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
339 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
340 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
341 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
343 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
352 Requires: python
%{_python_buildid}-requests
353 Requires: python
%{_python_buildid}-setuptools
357 %if 0%{?fedora} || 0%{?rhel}
358 # The following is necessary due to tracker 36508 and can be removed once the
359 # associated upstream bugs are resolved.
360 %if 0%{with tcmalloc}
361 Requires: gperftools
-libs
>= 2.6.1
364 %if 0%{?suse_version}
368 Base is the package that includes all the files shared amongst ceph servers
370 %package -n ceph
-common
372 %if 0%{?suse_version}
373 Group: System
/Filesystems
375 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
376 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
377 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
378 Requires: python
%{_python_buildid}-rados = %{_epoch_prefix}%{version}-%{release}
379 Requires: python
%{_python_buildid}-rbd = %{_epoch_prefix}%{version}-%{release}
380 Requires: python
%{_python_buildid}-cephfs = %{_epoch_prefix}%{version}-%{release}
381 Requires: python
%{_python_buildid}-rgw = %{_epoch_prefix}%{version}-%{release}
382 Requires: python
%{_python_buildid}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
383 Requires: python
%{_python_buildid}-requests
384 %if 0%{?fedora} || 0%{?rhel}
385 Requires: python
%{_python_buildid}-prettytable
387 %if 0%{?suse_version}
388 Requires: python
%{_python_buildid}-PrettyTable
390 %if 0%{with libradosstriper}
391 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
394 %if 0%{?suse_version}
395 Requires(pre
): pwdutils
397 %description -n ceph
-common
398 Common utilities to mount and interact with a ceph storage cluster.
399 Comprised of files that are common to Ceph clients and servers.
402 Summary: Ceph Metadata Server Daemon
403 %if 0%{?suse_version}
404 Group: System
/Filesystems
406 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
408 ceph
-mds is the metadata server daemon
for the Ceph distributed file system.
409 One or more instances of ceph
-mds collectively manage the file system
410 namespace
, coordinating access to the shared OSD cluster.
413 Summary: Ceph Monitor Daemon
414 %if 0%{?suse_version}
415 Group: System
/Filesystems
417 Provides: ceph
-test:/usr
/bin
/ceph
-monstore
-tool
418 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
420 ceph
-mon is the cluster monitor daemon
for the Ceph distributed file
421 system. One or more instances of ceph
-mon form a Paxos part
-time
422 parliament cluster that provides extremely reliable and durable storage
423 of cluster membership
, configuration
, and state.
426 Summary: Ceph Manager Daemon
427 %if 0%{?suse_version}
428 Group: System
/Filesystems
430 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
431 Requires: python
%{_python_buildid}-bcrypt
432 Requires: python
%{_python_buildid}-pecan
433 Requires: python
%{_python_buildid}-six
434 %if 0%{?fedora} || 0%{?rhel}
435 Requires: python
%{_python_buildid}-cherrypy
436 Requires: python
%{_python_buildid}-werkzeug
438 %if 0%{?suse_version}
439 Requires: python
%{_python_buildid}-CherryPy
440 Requires: python
%{_python_buildid}-Werkzeug
441 Recommends
: python
%{_python_buildid}-influxdb
442 Recommends
: ceph
-mgr
-dashboard
= %{_epoch_prefix}%{version}-%{release}
443 Recommends
: ceph
-mgr
-diskprediction
-local = %{_epoch_prefix}%{version}-%{release}
444 Recommends
: ceph
-mgr
-diskprediction
-cloud
= %{_epoch_prefix}%{version}-%{release}
445 Recommends
: ceph
-mgr
-rook
= %{_epoch_prefix}%{version}-%{release}
446 Recommends
: ceph
-mgr
-ssh
= %{_epoch_prefix}%{version}-%{release}
451 Requires: python
%{_python_buildid}-pyOpenSSL
454 ceph
-mgr enables python modules that provide services
(such as the REST
455 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
456 the cluster maps
, the daemon metadata
, and performance counters
, and
457 exposes all these to the python modules.
459 %package mgr
-dashboard
460 Summary: Ceph Dashboard
462 %if 0%{?suse_version}
463 Group: System
/Filesystems
465 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
466 Requires: ceph
-grafana
-dashboards
= %{_epoch_prefix}%{version}-%{release}
467 %if 0%{?fedora} || 0%{?rhel}
468 Requires: python
%{_python_buildid}-cherrypy
469 Requires: python
%{_python_buildid}-jwt
470 Requires: python
%{_python_buildid}-routes
471 Requires: python
%{_python_buildid}-werkzeug
473 %if 0%{?suse_version}
474 Requires: python
%{_python_buildid}-CherryPy
475 Requires: python
%{_python_buildid}-PyJWT
476 Requires: python
%{_python_buildid}-Routes
477 Requires: python
%{_python_buildid}-Werkzeug
482 Requires: python
%{_python_buildid}-pyOpenSSL
484 %description mgr
-dashboard
485 ceph
-mgr
-dashboard is a manager plugin
, providing a web
-based application
486 to monitor and manage many aspects of a Ceph cluster and related components.
487 See the Dashboard documentation at http
://docs.ceph.com
/ for details and a
488 detailed feature overview.
490 %package mgr
-diskprediction
-local
491 Summary: ceph
-mgr diskprediction_local plugin
493 %if 0%{?suse_version}
494 Group: System
/Filesystems
496 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
497 %if 0%{?fedora} || 0%{?rhel} > 7 || 0%{?suse_version}
498 Requires: python
%{_python_buildid}-numpy
499 %if 0%{without python2}
500 Requires: python3
-scipy
502 Requires: python2
-scipy
509 %description mgr
-diskprediction
-local
510 ceph
-mgr
-diskprediction
-local is a ceph
-mgr plugin that tries to predict
511 disk failures using
local algorithms and machine
-learning databases.
513 %package mgr
-diskprediction
-cloud
514 Summary: ceph
-mgr diskprediction_cloud plugin
516 %if 0%{?suse_version}
517 Group: System
/Filesystems
519 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
520 %description mgr
-diskprediction
-cloud
521 ceph
-mgr
-diskprediction
-cloud is a ceph
-mgr plugin that tries to predict
522 disk failures using services
in the Google cloud.
526 Summary: ceph
-mgr rook plugin
527 %if 0%{?suse_version}
528 Group: System
/Filesystems
530 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
531 Requires: python
%{_python_buildid}-kubernetes
532 %description mgr
-rook
533 ceph
-mgr
-rook is a ceph
-mgr plugin
for orchestration functions using
537 Summary: ceph
-mgr ssh module
539 %if 0%{?suse_version}
540 Group: System
/Filesystems
542 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
543 Requires: python
%{_python_buildid}-remoto
545 ceph
-mgr
-ssh is a ceph
-mgr module
for orchestration functions using
546 direct SSH connections
for management operations.
549 Summary: Ceph fuse
-based client
550 %if 0%{?suse_version}
551 Group: System
/Filesystems
554 Requires: python
%{python3_pkgversion}
556 FUSE based client
for Ceph distributed network file system
559 Summary: Ceph fuse
-based client
560 %if 0%{?suse_version}
561 Group: System
/Filesystems
563 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
564 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
565 %description -n rbd
-fuse
566 FUSE based client to map Ceph rbd images to files
568 %package -n rbd
-mirror
569 Summary: Ceph daemon
for mirroring RBD images
570 %if 0%{?suse_version}
571 Group: System
/Filesystems
573 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
574 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
575 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
576 %description -n rbd
-mirror
577 Daemon
for mirroring RBD images between Ceph clusters
, streaming
578 changes asynchronously.
581 Summary: Ceph RBD client base on NBD
582 %if 0%{?suse_version}
583 Group: System
/Filesystems
585 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
586 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
587 %description -n rbd
-nbd
588 NBD based client to map Ceph rbd images to
local device
591 Summary: Rados REST gateway
592 %if 0%{?suse_version}
593 Group: System
/Filesystems
595 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
597 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
599 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
600 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
601 %if 0%{?rhel} || 0%{?fedora}
605 RADOS is a distributed object store used by the Ceph distributed
606 storage system. This package provides a REST gateway to the
607 object store that aims to implement a superset of Amazon's S3
608 service as well as the OpenStack Object Storage
("Swift"
) API.
611 %package resource
-agents
612 Summary: OCF
-compliant resource agents
for Ceph daemons
613 %if 0%{?suse_version}
614 Group: System
/Filesystems
616 Requires: ceph
-base
= %{_epoch_prefix}%{version}
617 Requires: resource
-agents
618 %description resource
-agents
619 Resource agents
for monitoring and managing Ceph daemons
620 under Open Cluster Framework
(OCF
) compliant resource
621 managers such as Pacemaker.
625 Summary: Ceph Object Storage Daemon
626 %if 0%{?suse_version}
627 Group: System
/Filesystems
629 Provides: ceph
-test:/usr
/bin
/ceph
-osdomap
-tool
630 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
633 Requires: libstoragemgmt
635 ceph
-osd is the object storage daemon
for the Ceph distributed file
636 system. It is responsible
for storing objects on a
local file system
637 and providing access to them over the network.
639 %package -n librados2
640 Summary: RADOS distributed object store client library
641 %if 0%{?suse_version}
642 Group: System
/Libraries
644 %if 0%{?rhel} || 0%{?fedora}
645 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
647 %description -n librados2
648 RADOS is a reliable
, autonomic distributed object storage cluster
649 developed as part of the Ceph distributed storage system. This is a
650 shared library allowing applications to access the distributed object
651 store using a simple file
-like interface.
653 %package -n librados
-devel
654 Summary: RADOS headers
655 %if 0%{?suse_version}
656 Group: Development
/Libraries
/C and C
++
658 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
659 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
660 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
661 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
662 %description -n librados
-devel
663 This package contains C libraries and headers needed to develop programs
664 that use RADOS object store.
666 %package -n libradospp
-devel
667 Summary: RADOS headers
668 %if 0%{?suse_version}
669 Group: Development
/Libraries
/C and C
++
671 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
672 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
673 %description -n libradospp
-devel
674 This package contains C
++ libraries and headers needed to develop programs
675 that use RADOS object store.
678 Summary: RADOS gateway client library
679 %if 0%{?suse_version}
680 Group: System
/Libraries
682 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
683 %description -n librgw2
684 This package provides a library implementation of the RADOS gateway
685 (distributed object store with S3 and Swift personalities
).
687 %package -n librgw
-devel
688 Summary: RADOS gateway client library
689 %if 0%{?suse_version}
690 Group: Development
/Libraries
/C and C
++
692 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
693 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
694 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
695 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
696 %description -n librgw
-devel
697 This package contains libraries and headers needed to develop programs
698 that use RADOS gateway client library.
701 %package -n python
-rgw
702 Summary: Python
2 libraries
for the RADOS gateway
703 %if 0%{?suse_version}
704 Group: Development
/Libraries
/Python
706 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
707 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
708 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
709 %description -n python
-rgw
710 This package contains Python
2 libraries
for interacting with Cephs RADOS
714 %package -n python
%{python3_pkgversion}-rgw
715 Summary: Python
3 libraries
for the RADOS gateway
716 %if 0%{?suse_version}
717 Group: Development
/Libraries
/Python
719 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
720 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
721 Provides: python3
-rgw
= %{_epoch_prefix}%{version}-%{release}
722 %if 0%{without python2}
723 Provides: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
724 Obsoletes
: python
-rgw
< %{_epoch_prefix}%{version}-%{release}
726 %description -n python
%{python3_pkgversion}-rgw
727 This package contains Python
3 libraries
for interacting with Cephs RADOS
731 %package -n python
-rados
732 Summary: Python
2 libraries
for the RADOS object store
733 %if 0%{?suse_version}
734 Group: Development
/Libraries
/Python
736 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
737 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
738 %description -n python
-rados
739 This package contains Python
2 libraries
for interacting with Cephs RADOS
743 %package -n python
%{python3_pkgversion}-rados
744 Summary: Python
3 libraries
for the RADOS object store
745 %if 0%{?suse_version}
746 Group: Development
/Libraries
/Python
748 Requires: python
%{python3_pkgversion}
749 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
750 Provides: python3
-rados
= %{_epoch_prefix}%{version}-%{release}
751 %if 0%{without python2}
752 Provides: python
-rados
= %{_epoch_prefix}%{version}-%{release}
753 Obsoletes
: python
-rados
< %{_epoch_prefix}%{version}-%{release}
755 %description -n python
%{python3_pkgversion}-rados
756 This package contains Python
3 libraries
for interacting with Cephs RADOS
759 %if 0%{with libradosstriper}
760 %package -n libradosstriper1
761 Summary: RADOS striping interface
762 %if 0%{?suse_version}
763 Group: System
/Libraries
765 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
766 %description -n libradosstriper1
767 Striping interface built on top of the rados library
, allowing
768 to stripe bigger objects onto several standard rados objects using
769 an interface very similar to the rados one.
771 %package -n libradosstriper
-devel
772 Summary: RADOS striping interface headers
773 %if 0%{?suse_version}
774 Group: Development
/Libraries
/C and C
++
776 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
777 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
778 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
779 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
780 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
781 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
782 %description -n libradosstriper
-devel
783 This package contains libraries and headers needed to develop programs
784 that use RADOS striping interface.
788 Summary: RADOS block device client library
789 %if 0%{?suse_version}
790 Group: System
/Libraries
792 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
793 %if 0%{?suse_version}
794 Requires(post
): coreutils
796 %if 0%{?rhel} || 0%{?fedora}
797 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
799 %description -n librbd1
800 RBD is a block device striped across multiple distributed objects
in
801 RADOS
, a reliable
, autonomic distributed object storage cluster
802 developed as part of the Ceph distributed storage system. This is a
803 shared library allowing applications to manage these block devices.
805 %package -n librbd
-devel
806 Summary: RADOS block device headers
807 %if 0%{?suse_version}
808 Group: Development
/Libraries
/C and C
++
810 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
811 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
812 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
813 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
814 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
815 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
816 %description -n librbd
-devel
817 This package contains libraries and headers needed to develop programs
818 that use RADOS block device.
821 %package -n python
-rbd
822 Summary: Python
2 libraries
for the RADOS block device
823 %if 0%{?suse_version}
824 Group: Development
/Libraries
/Python
826 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
827 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
828 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
829 %description -n python
-rbd
830 This package contains Python
2 libraries
for interacting with Cephs RADOS
834 %package -n python
%{python3_pkgversion}-rbd
835 Summary: Python
3 libraries
for the RADOS block device
836 %if 0%{?suse_version}
837 Group: Development
/Libraries
/Python
839 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
840 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
841 Provides: python3
-rbd
= %{_epoch_prefix}%{version}-%{release}
842 %if 0%{without python2}
843 Provides: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
844 Obsoletes
: python
-rbd
< %{_epoch_prefix}%{version}-%{release}
846 %description -n python
%{python3_pkgversion}-rbd
847 This package contains Python
3 libraries
for interacting with Cephs RADOS
850 %package -n libcephfs2
851 Summary: Ceph distributed file system client library
852 %if 0%{?suse_version}
853 Group: System
/Libraries
855 Obsoletes
: libcephfs1
856 %if 0%{?rhel} || 0%{?fedora}
857 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
858 Obsoletes
: ceph
-libcephfs
860 %description -n libcephfs2
861 Ceph is a distributed network file system designed to provide excellent
862 performance
, reliability
, and scalability. This is a shared library
863 allowing applications to access a Ceph distributed file system via a
864 POSIX
-like interface.
866 %package -n libcephfs
-devel
867 Summary: Ceph distributed file system headers
868 %if 0%{?suse_version}
869 Group: Development
/Libraries
/C and C
++
871 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
872 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
873 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
874 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
875 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
876 %description -n libcephfs
-devel
877 This package contains libraries and headers needed to develop programs
878 that use Cephs distributed file system.
881 %package -n python
-cephfs
882 Summary: Python
2 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
-rados
= %{_epoch_prefix}%{version}-%{release}
888 Requires: python
-ceph
-argparse
= %{_epoch_prefix}%{version}-%{release}
889 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
890 %description -n python
-cephfs
891 This package contains Python
2 libraries
for interacting with Cephs distributed
895 %package -n python
%{python3_pkgversion}-cephfs
896 Summary: Python
3 libraries
for Ceph distributed file system
897 %if 0%{?suse_version}
898 Group: Development
/Libraries
/Python
900 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
901 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
902 Requires: python
%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
903 Provides: python3
-cephfs
= %{_epoch_prefix}%{version}-%{release}
904 %if 0%{without python2}
905 Provides: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
906 Obsoletes
: python
-cephfs
< %{_epoch_prefix}%{version}-%{release}
908 %description -n python
%{python3_pkgversion}-cephfs
909 This package contains Python
3 libraries
for interacting with Cephs distributed
913 %package -n python
-ceph
-argparse
914 Summary: Python
2 utility libraries
for Ceph CLI
915 %if 0%{?suse_version}
916 Group: Development
/Libraries
/Python
918 %description -n python
-ceph
-argparse
919 This package contains types and routines
for Python
2 used by the Ceph CLI as
920 well as the RESTful interface. These have to
do with querying the daemons
for
921 command-description information
, validating user
command input against those
922 descriptions
, and submitting the
command to the appropriate daemon.
925 %package -n python
%{python3_pkgversion}-ceph
-argparse
926 Summary: Python
3 utility libraries
for Ceph CLI
927 %if 0%{?suse_version}
928 Group: Development
/Libraries
/Python
930 Provides: python3
-ceph
-argparse
= %{_epoch_prefix}%{version}-%{release}
931 %description -n python
%{python3_pkgversion}-ceph
-argparse
932 This package contains types and routines
for Python
3 used by the Ceph CLI as
933 well as the RESTful interface. These have to
do with querying the daemons
for
934 command-description information
, validating user
command input against those
935 descriptions
, and submitting the
command to the appropriate daemon.
937 %if 0%{with cephfs_shell}
938 %package -n cephfs
-shell
939 Summary: Interactive shell
for Ceph file system
940 Requires: python
%{python3_pkgversion}-cmd2
941 Requires: python
%{python3_pkgversion}-colorama
942 Requires: python
%{python3_pkgversion}-cephfs
943 %description -n cephfs
-shell
944 This package contains an interactive tool that allows accessing a Ceph
945 file system without mounting it by providing a nice pseudo
-shell which
946 works like an FTP client.
949 %if 0%{with ceph_test_package}
950 %package -n ceph
-test
951 Summary: Ceph benchmarks and
test tools
952 %if 0%{?suse_version}
953 Group: System
/Benchmark
955 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
959 %description -n ceph
-test
960 This package contains Ceph benchmarks and
test tools.
963 %if 0%{with cephfs_java}
965 %package -n libcephfs_jni1
966 Summary: Java Native Interface library
for CephFS Java bindings
967 %if 0%{?suse_version}
968 Group: System
/Libraries
971 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
972 %description -n libcephfs_jni1
973 This package contains the Java Native Interface library
for CephFS Java
976 %package -n libcephfs_jni
-devel
977 Summary: Development files
for CephFS Java Native Interface library
978 %if 0%{?suse_version}
979 Group: Development
/Libraries
/Java
982 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
983 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
984 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
985 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
986 %description -n libcephfs_jni
-devel
987 This package contains the development files
for CephFS Java Native Interface
990 %package -n cephfs
-java
991 Summary: Java libraries
for the Ceph File System
992 %if 0%{?suse_version}
993 Group: System
/Libraries
996 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
999 %description -n cephfs
-java
1000 This package contains the Java libraries
for the Ceph File System.
1004 %package -n rados
-objclass
-devel
1005 Summary: RADOS object class development kit
1006 %if 0%{?suse_version}
1007 Group: Development
/Libraries
/C and C
++
1009 Requires: libradospp
-devel
= %{_epoch_prefix}%{version}-%{release}
1010 %description -n rados
-objclass
-devel
1011 This package contains libraries and headers needed to develop RADOS object
1014 %if 0%{with selinux}
1017 Summary: SELinux support
for Ceph MON
, OSD and MDS
1018 %if 0%{?suse_version}
1019 Group: System
/Filesystems
1021 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
1022 Requires: policycoreutils
, libselinux
-utils
1023 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
1024 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
1025 Requires(postun
): policycoreutils
1026 %description selinux
1027 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
1028 also performs file
-system relabelling which can take a long
time on heavily
1029 populated file
-systems.
1033 %if 0%{with python2}
1034 %package -n python
-ceph
-compat
1035 Summary: Compatibility package
for Cephs python libraries
1036 %if 0%{?suse_version}
1037 Group: Development
/Libraries
/Python
1039 Obsoletes
: python
-ceph
1040 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
1041 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
1042 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
1043 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
1044 Provides: python
-ceph
1045 %description -n python
-ceph
-compat
1046 This is a compatibility package to accommodate python
-ceph split into
1047 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
1048 depending on python
-ceph should be fixed to depend on python
-rados
,
1049 python
-rbd
, python
-rgw or python
-cephfs instead.
1052 %package grafana
-dashboards
1053 Summary: The
set of Grafana dashboards
for monitoring purposes
1055 %if 0%{?suse_version}
1056 Group: System
/Filesystems
1058 %description grafana
-dashboards
1059 This package provides a
set of Grafana dashboards
for monitoring of
1060 Ceph clusters. The dashboards require a Prometheus server setup
1061 collecting data from Ceph Manager "prometheus" module and Prometheus
1062 project "node_exporter" module. The dashboards are designed to be
1063 integrated with the Ceph Manager Dashboard web UI.
1065 %if 0%{?suse_version}
1066 %package prometheus
-alerts
1067 Summary: Prometheus alerts
for a Ceph deplyoment
1069 Group: System
/Monitoring
1070 %description prometheus
-alerts
1071 This package provides Ceph’s default alerts
for Prometheus.
1074 #################################################################################
1076 #################################################################################
1078 %autosetup -p1
-n @TARBALL_BASENAME@
1081 # LTO can be enabled as soon as the following GCC bug is fixed:
1082 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
1083 %define _lto_cflags
%{nil}
1086 .
/opt
/rh
/devtoolset
-7/enable
1089 %if 0%{with cephfs_java}
1091 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
1092 [ -d $i
] && java_inc
="$java_inc
-I$i"
1096 %if 0%{?suse_version}
1097 # the following setting fixed an OOM condition we once encountered in the OBS
1098 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
1101 export CPPFLAGS
="$java_inc"
1102 export CFLAGS
="$RPM_OPT_FLAGS"
1103 export CXXFLAGS
="$RPM_OPT_FLAGS"
1104 export LDFLAGS
="$RPM_LD_FLAGS"
1106 # Parallel build settings ...
1107 CEPH_MFLAGS_JOBS
="
%{?_smp_mflags}"
1108 CEPH_SMP_NCPUS
=$
(echo "$CEPH_MFLAGS_JOBS" | sed 's
/-j
//'
)
1109 %if 0%{?__isa_bits} == 32
1110 # 32-bit builds can use 3G memory max, which is not enough even for -j2
1113 # do not eat all memory
1114 echo "Available memory
:"
1116 echo "System limits
:"
1118 if test -n "$CEPH_SMP_NCPUS"
-a "$CEPH_SMP_NCPUS"
-gt
1 ; then
1119 mem_per_process
=1800
1120 max_mem
=$
(LANG
=C free
-m | sed
-n "s|^Mem
: *\
([0-9]*\
).
*$|\
1|p"
)
1121 max_jobs
="$
(($max_mem
/ $mem_per_process
))"
1122 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"
1123 test "$CEPH_SMP_NCPUS"
-le
0 && CEPH_SMP_NCPUS
="
1"
&& echo "Warning
: Not using parallel build at all because of memory limits"
1125 export CEPH_SMP_NCPUS
1126 export CEPH_MFLAGS_JOBS
="
-j$CEPH_SMP_NCPUS"
1138 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
1139 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
1140 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
1141 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
1142 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
1143 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
1144 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
1145 -DCMAKE_INSTALL_INCLUDEDIR
=%{_includedir} \
1147 -DWITH_PYTHON3
=%{python3_version} \
1148 -DWITH_MGR_DASHBOARD_FRONTEND
=OFF \
1152 -DWITH_PYTHON2
=OFF \
1153 -DMGR_PYTHON_VERSION
=3 \
1155 %if 0%{without ceph_test_package}
1158 %if 0%{with cephfs_java}
1159 -DWITH_CEPHFS_JAVA
=ON \
1161 %if 0%{with selinux}
1166 -DWITH_BABELTRACE
=ON \
1169 -DWITH_BABELTRACE
=OFF \
1171 $CEPH_EXTRA_CMAKE_ARGS \
1175 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
1176 -DWITH_BOOST_CONTEXT
=ON \
1178 -DWITH_BOOST_CONTEXT
=OFF \
1180 %if 0%{with cephfs_shell}
1181 -DWITH_CEPHFS_SHELL
=ON \
1183 %if 0%{with libradosstriper}
1184 -DWITH_LIBRADOSSTRIPER
=ON \
1186 -DWITH_LIBRADOSSTRIPER
=OFF \
1188 %if 0%{with amqp_endpoint}
1189 -DWITH_RADOSGW_AMQP_ENDPOINT
=ON \
1191 -DWITH_RADOSGW_AMQP_ENDPOINT
=OFF \
1193 -DBOOST_J
=$CEPH_SMP_NCPUS \
1196 make "$CEPH_MFLAGS_JOBS"
1199 %if 0%{with make_check}
1201 # run in-tree unittests
1203 ctest "$CEPH_MFLAGS_JOBS"
1209 make DESTDIR
=%{buildroot} install
1210 # we have dropped sysvinit bits
1211 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
1213 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
1214 %if 0%{?fedora} || 0%{?rhel}
1215 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
1217 %if 0%{?suse_version}
1218 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_fillupdir}/sysconfig.%{name}
1220 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
1221 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
1222 mkdir -p
%{buildroot}%{_sbindir}
1223 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
1224 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
1225 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
1226 install -m
0644 -D etc
/sysctl
/90-ceph
-osd.conf
%{buildroot}%{_sysctldir}/90-ceph
-osd.conf
1228 # firewall templates and /sbin/mount.ceph symlink
1229 %if 0%{?suse_version}
1230 mkdir -p
%{buildroot}/sbin
1231 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
1235 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
1238 install -m
0600 -D sudoers.d
/ceph
-osd
-smartctl
%{buildroot}%{_sysconfdir}/sudoers.d
/ceph
-osd
-smartctl
1240 #set up placeholder directories
1241 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
1242 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
1243 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
1244 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
1245 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
1246 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
1247 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
1248 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
1249 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/crash
1250 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/crash
/posted
1251 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
1252 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
1253 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
1254 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
1255 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
1256 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
1257 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
-mirror
1259 %if 0%{?suse_version}
1260 # create __pycache__ directories and their contents
1261 %py3_compile %{buildroot}%{python3_sitelib}
1263 install -m
644 -D monitoring
/prometheus
/alerts
/ceph_default_alerts.yml
%{buildroot}/etc
/prometheus
/SUSE
/default_rules
/ceph_default_alerts.yml
1266 %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}
1272 #################################################################################
1273 # files and systemd scriptlets
1274 #################################################################################
1278 %{_bindir}/ceph
-crash
1279 %{_bindir}/crushtool
1280 %{_bindir}/monmaptool
1281 %{_bindir}/osdmaptool
1282 %{_bindir}/ceph
-kvstore
-tool
1284 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
1285 %{_sbindir}/ceph
-create
-keys
1286 %dir %{_libexecdir}/ceph
1287 %{_libexecdir}/ceph
/ceph_common.sh
1288 %dir %{_libdir}/rados
-classes
1289 %{_libdir}/rados
-classes
/*
1290 %dir %{_libdir}/ceph
1291 %dir %{_libdir}/ceph
/erasure
-code
1292 %{_libdir}/ceph
/erasure
-code
/libec_
*.so
*
1293 %dir %{_libdir}/ceph
/compressor
1294 %{_libdir}/ceph
/compressor
/libceph_
*.so
*
1295 %{_unitdir}/ceph
-crash.service
1296 %dir %{_libdir}/ceph
/crypto
1297 %{_libdir}/ceph
/crypto
/libceph_
*.so
*
1299 %{_libdir}/libos_tp.so
*
1300 %{_libdir}/libosd_tp.so
*
1302 %config(noreplace
) %{_sysconfdir}/logrotate.d
/ceph
1303 %if 0%{?fedora} || 0%{?rhel}
1304 %config(noreplace
) %{_sysconfdir}/sysconfig
/ceph
1306 %if 0%{?suse_version}
1307 %{_fillupdir}/sysconfig.
*
1309 %{_unitdir}/ceph.target
1310 %if 0%{with python2}
1311 %dir %{python_sitelib}/ceph_volume
1312 %{python_sitelib}/ceph_volume
/*
1313 %{python_sitelib}/ceph_volume
-*
1315 %dir %{python3_sitelib}/ceph_volume
1316 %{python3_sitelib}/ceph_volume
/*
1317 %{python3_sitelib}/ceph_volume
-*
1319 %{_mandir}/man8
/ceph
-deploy
.8*
1320 %{_mandir}/man8
/ceph
-create
-keys
.8*
1321 %{_mandir}/man8
/ceph
-run
.8*
1322 %{_mandir}/man8
/crushtool
.8*
1323 %{_mandir}/man8
/osdmaptool
.8*
1324 %{_mandir}/man8
/monmaptool
.8*
1325 %{_mandir}/man8
/ceph
-kvstore
-tool
.8*
1326 #set up placeholder directories
1327 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/crash
1328 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/crash
/posted
1329 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
1330 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
1331 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
1332 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
1333 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
1334 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
1335 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
-mirror
1339 %if 0%{?suse_version}
1341 if [ $
1 -eq
1 ] ; then
1342 /usr
/bin
/systemctl preset ceph.target ceph
-crash.service
>/dev
/null
2>&1 ||
:
1345 %if 0%{?fedora} || 0%{?rhel}
1346 %systemd_post ceph.target ceph
-crash.service
1348 if [ $
1 -eq
1 ] ; then
1349 /usr
/bin
/systemctl start ceph.target ceph
-crash.service
>/dev
/null
2>&1 ||
:
1353 %if 0%{?suse_version}
1354 %service_del_preun ceph.target ceph
-crash.service
1356 %if 0%{?fedora} || 0%{?rhel}
1357 %systemd_preun ceph.target ceph
-crash.service
1362 %if 0%{?suse_version}
1363 DISABLE_RESTART_ON_UPDATE
="yes"
1364 %service_del_postun ceph.target
1366 %if 0%{?fedora} || 0%{?rhel}
1367 %systemd_postun ceph.target
1369 if [ $
1 -ge
1 ] ; then
1370 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1371 # "yes". In any case: if units are not running, do not touch them.
1372 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1373 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1374 source $SYSCONF_CEPH
1379 %dir %{_docdir}/ceph
1380 %doc %{_docdir}/ceph
/sample.ceph.conf
1381 %license %{_docdir}/ceph
/COPYING
1383 %{_bindir}/ceph
-authtool
1384 %{_bindir}/ceph
-conf
1385 %{_bindir}/ceph
-dencoder
1386 %{_bindir}/ceph
-rbdnamer
1388 %{_bindir}/cephfs
-data
-scan
1389 %{_bindir}/cephfs
-journal
-tool
1390 %{_bindir}/cephfs
-table
-tool
1392 %{_bindir}/radosgw
-admin
1394 %{_bindir}/rbd
-replay
1395 %{_bindir}/rbd
-replay
-many
1397 %{_sbindir}/mount.ceph
1398 %if 0%{?suse_version}
1402 %{_bindir}/rbd
-replay
-prep
1404 %{_bindir}/ceph
-post
-file
1405 %{_tmpfilesdir}/ceph
-common.conf
1406 %{_mandir}/man8
/ceph
-authtool
.8*
1407 %{_mandir}/man8
/ceph
-conf
.8*
1408 %{_mandir}/man8
/ceph
-dencoder
.8*
1409 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1410 %{_mandir}/man8
/ceph
-syn
.8*
1411 %{_mandir}/man8
/ceph
-post
-file
.8*
1412 %{_mandir}/man8
/ceph
.8*
1413 %{_mandir}/man8
/mount.ceph
.8*
1414 %{_mandir}/man8
/rados
.8*
1415 %{_mandir}/man8
/radosgw
-admin
.8*
1416 %{_mandir}/man8
/rbd
.8*
1417 %{_mandir}/man8
/rbdmap
.8*
1418 %{_mandir}/man8
/rbd
-replay
.8*
1419 %{_mandir}/man8
/rbd
-replay
-many
.8*
1420 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1421 %dir %{_datadir}/ceph
/
1422 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1423 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1424 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1425 %dir %{_sysconfdir}/ceph
/
1426 %config %{_sysconfdir}/bash_completion.d
/ceph
1427 %config %{_sysconfdir}/bash_completion.d
/rados
1428 %config %{_sysconfdir}/bash_completion.d
/rbd
1429 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1430 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1431 %{_unitdir}/rbdmap.service
1432 %dir %{_udevrulesdir}
1433 %{_udevrulesdir}/50-rbd.rules
1434 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1435 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1440 %if 0%{?rhel} || 0%{?fedora}
1441 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1442 /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 ||
:
1444 %if 0%{?suse_version}
1445 if ! getent group ceph
>/dev
/null
; then
1446 CEPH_GROUP_ID_OPTION
=""
1447 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1448 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1450 if ! getent passwd ceph
>/dev
/null
; then
1451 CEPH_USER_ID_OPTION
=""
1452 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1453 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1455 usermod
-c "Ceph storage service" \
1456 -d
%{_localstatedir}/lib
/ceph \
1464 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1467 # Package removal cleanup
1468 if [ "$
1"
-eq "
0"
] ; then
1469 rm -rf
%{_localstatedir}/log
/ceph
1470 rm -rf
%{_sysconfdir}/ceph
1475 %{_mandir}/man8
/ceph
-mds
.8*
1476 %{_unitdir}/ceph
-mds@.service
1477 %{_unitdir}/ceph
-mds.target
1478 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1481 %if 0%{?suse_version}
1482 if [ $
1 -eq
1 ] ; then
1483 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1486 %if 0%{?fedora} || 0%{?rhel}
1487 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1489 if [ $
1 -eq
1 ] ; then
1490 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1494 %if 0%{?suse_version}
1495 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1497 %if 0%{?fedora} || 0%{?rhel}
1498 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1502 %if 0%{?suse_version}
1503 DISABLE_RESTART_ON_UPDATE
="yes"
1504 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1506 %if 0%{?fedora} || 0%{?rhel}
1507 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1509 if [ $
1 -ge
1 ] ; then
1510 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1511 # "yes". In any case: if units are not running, do not touch them.
1512 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1513 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1514 source $SYSCONF_CEPH
1516 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1517 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1523 %dir %{_datadir}/ceph
/mgr
1524 %{_datadir}/ceph
/mgr
/ansible
1525 %{_datadir}/ceph
/mgr
/balancer
1526 %{_datadir}/ceph
/mgr
/crash
1527 %{_datadir}/ceph
/mgr
/deepsea
1528 %{_datadir}/ceph
/mgr
/devicehealth
1529 %{_datadir}/ceph
/mgr
/influx
1530 %{_datadir}/ceph
/mgr
/insights
1531 %{_datadir}/ceph
/mgr
/iostat
1532 %{_datadir}/ceph
/mgr
/localpool
1533 %{_datadir}/ceph
/mgr
/mgr_module.
*
1534 %{_datadir}/ceph
/mgr
/mgr_util.
*
1535 %{_datadir}/ceph
/mgr
/orchestrator_cli
1536 %{_datadir}/ceph
/mgr
/orchestrator.
*
1537 %{_datadir}/ceph
/mgr
/osd_perf_query
1538 %{_datadir}/ceph
/mgr
/pg_autoscaler
1539 %{_datadir}/ceph
/mgr
/progress
1540 %{_datadir}/ceph
/mgr
/prometheus
1541 %{_datadir}/ceph
/mgr
/rbd_support
1542 %{_datadir}/ceph
/mgr
/restful
1543 %{_datadir}/ceph
/mgr
/selftest
1544 %{_datadir}/ceph
/mgr
/status
1545 %{_datadir}/ceph
/mgr
/telegraf
1546 %{_datadir}/ceph
/mgr
/telemetry
1547 %{_datadir}/ceph
/mgr
/test_orchestrator
1548 %{_datadir}/ceph
/mgr
/volumes
1549 %{_datadir}/ceph
/mgr
/zabbix
1550 %{_unitdir}/ceph
-mgr@.service
1551 %{_unitdir}/ceph
-mgr.target
1552 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1555 %if 0%{?suse_version}
1556 if [ $
1 -eq
1 ] ; then
1557 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1560 %if 0%{?fedora} || 0%{?rhel}
1561 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1563 if [ $
1 -eq
1 ] ; then
1564 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1568 %if 0%{?suse_version}
1569 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1571 %if 0%{?fedora} || 0%{?rhel}
1572 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1576 %if 0%{?suse_version}
1577 DISABLE_RESTART_ON_UPDATE
="yes"
1578 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1580 %if 0%{?fedora} || 0%{?rhel}
1581 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1583 if [ $
1 -ge
1 ] ; then
1584 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1585 # "yes". In any case: if units are not running, do not touch them.
1586 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1587 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1588 source $SYSCONF_CEPH
1590 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1591 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1595 %files mgr
-dashboard
1596 %{_datadir}/ceph
/mgr
/dashboard
1599 if [ $
1 -eq
1 ] ; then
1600 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1603 %postun mgr
-dashboard
1604 if [ $
1 -eq
1 ] ; then
1605 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1608 %files mgr
-diskprediction
-local
1609 %{_datadir}/ceph
/mgr
/diskprediction_local
1611 %post mgr
-diskprediction
-local
1612 if [ $
1 -eq
1 ] ; then
1613 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1616 %postun mgr
-diskprediction
-local
1617 if [ $
1 -eq
1 ] ; then
1618 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1621 %files mgr
-diskprediction
-cloud
1622 %{_datadir}/ceph
/mgr
/diskprediction_cloud
1624 %post mgr
-diskprediction
-cloud
1625 if [ $
1 -eq
1 ] ; then
1626 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1629 %postun mgr
-diskprediction
-cloud
1630 if [ $
1 -eq
1 ] ; then
1631 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1635 %{_datadir}/ceph
/mgr
/rook
1638 if [ $
1 -eq
1 ] ; then
1639 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1643 if [ $
1 -eq
1 ] ; then
1644 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1648 %{_datadir}/ceph
/mgr
/ssh
1651 if [ $
1 -eq
1 ] ; then
1652 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1656 if [ $
1 -eq
1 ] ; then
1657 /usr
/bin
/systemctl try
-restart ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1662 %{_bindir}/ceph
-monstore
-tool
1663 %{_mandir}/man8
/ceph
-mon
.8*
1664 %{_unitdir}/ceph
-mon@.service
1665 %{_unitdir}/ceph
-mon.target
1666 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1669 %if 0%{?suse_version}
1670 if [ $
1 -eq
1 ] ; then
1671 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1674 %if 0%{?fedora} || 0%{?rhel}
1675 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1677 if [ $
1 -eq
1 ] ; then
1678 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1682 %if 0%{?suse_version}
1683 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1685 %if 0%{?fedora} || 0%{?rhel}
1686 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1690 %if 0%{?suse_version}
1691 DISABLE_RESTART_ON_UPDATE
="yes"
1692 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1694 %if 0%{?fedora} || 0%{?rhel}
1695 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1697 if [ $
1 -ge
1 ] ; then
1698 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1699 # "yes". In any case: if units are not running, do not touch them.
1700 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1701 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1702 source $SYSCONF_CEPH
1704 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1705 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1710 %{_bindir}/ceph
-fuse
1711 %{_mandir}/man8
/ceph
-fuse
.8*
1712 %{_sbindir}/mount.fuse.ceph
1713 %{_unitdir}/ceph
-fuse@.service
1714 %{_unitdir}/ceph
-fuse.target
1718 %{_mandir}/man8
/rbd
-fuse
.8*
1720 %files -n rbd
-mirror
1721 %{_bindir}/rbd
-mirror
1722 %{_mandir}/man8
/rbd
-mirror
.8*
1723 %{_unitdir}/ceph
-rbd
-mirror@.service
1724 %{_unitdir}/ceph
-rbd
-mirror.target
1727 %if 0%{?suse_version}
1728 if [ $
1 -eq
1 ] ; then
1729 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1732 %if 0%{?fedora} || 0%{?rhel}
1733 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1735 if [ $
1 -eq
1 ] ; then
1736 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1739 %preun -n rbd
-mirror
1740 %if 0%{?suse_version}
1741 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1743 %if 0%{?fedora} || 0%{?rhel}
1744 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1747 %postun -n rbd
-mirror
1748 %if 0%{?suse_version}
1749 DISABLE_RESTART_ON_UPDATE
="yes"
1750 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1752 %if 0%{?fedora} || 0%{?rhel}
1753 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1755 if [ $
1 -ge
1 ] ; then
1756 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1757 # "yes". In any case: if units are not running, do not touch them.
1758 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1759 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1760 source $SYSCONF_CEPH
1762 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1763 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1769 %{_mandir}/man8
/rbd
-nbd
.8*
1773 %{_bindir}/radosgw
-token
1774 %{_bindir}/radosgw
-es
1775 %{_bindir}/radosgw
-object
-expirer
1776 %{_mandir}/man8
/radosgw
.8*
1777 %dir %{_localstatedir}/lib
/ceph
/radosgw
1778 %{_unitdir}/ceph
-radosgw@.service
1779 %{_unitdir}/ceph
-radosgw.target
1782 %if 0%{?suse_version}
1783 if [ $
1 -eq
1 ] ; then
1784 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1787 %if 0%{?fedora} || 0%{?rhel}
1788 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1790 if [ $
1 -eq
1 ] ; then
1791 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1795 %if 0%{?suse_version}
1796 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1798 %if 0%{?fedora} || 0%{?rhel}
1799 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1803 %if 0%{?suse_version}
1804 DISABLE_RESTART_ON_UPDATE
="yes"
1805 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1807 %if 0%{?fedora} || 0%{?rhel}
1808 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1810 if [ $
1 -ge
1 ] ; then
1811 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1812 # "yes". In any case: if units are not running, do not touch them.
1813 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1814 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1815 source $SYSCONF_CEPH
1817 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1818 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1823 %{_bindir}/ceph
-clsinfo
1824 %{_bindir}/ceph
-bluestore
-tool
1825 %{_bindir}/ceph
-objectstore
-tool
1826 %{_bindir}/ceph
-osdomap
-tool
1828 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1829 %{_sbindir}/ceph
-volume
1830 %{_sbindir}/ceph
-volume
-systemd
1831 %{_mandir}/man8
/ceph
-clsinfo
.8*
1832 %{_mandir}/man8
/ceph
-osd
.8*
1833 %{_mandir}/man8
/ceph
-bluestore
-tool
.8*
1834 %{_mandir}/man8
/ceph
-volume
.8*
1835 %{_mandir}/man8
/ceph
-volume
-systemd
.8*
1836 %{_unitdir}/ceph
-osd@.service
1837 %{_unitdir}/ceph
-osd.target
1838 %{_unitdir}/ceph
-volume@.service
1839 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1840 %config(noreplace
) %{_sysctldir}/90-ceph
-osd.conf
1841 %{_sysconfdir}/sudoers.d
/ceph
-osd
-smartctl
1844 %if 0%{?suse_version}
1845 if [ $
1 -eq
1 ] ; then
1846 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1849 %if 0%{?fedora} || 0%{?rhel}
1850 %systemd_post ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1852 if [ $
1 -eq
1 ] ; then
1853 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1855 %if 0%{?sysctl_apply}
1856 %sysctl_apply 90-ceph
-osd.conf
1858 /usr
/lib
/systemd
/systemd
-sysctl
%{_sysctldir}/90-ceph
-osd.conf
> /dev
/null
2>&1 ||
:
1862 %if 0%{?suse_version}
1863 %service_del_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1865 %if 0%{?fedora} || 0%{?rhel}
1866 %systemd_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1870 %if 0%{?suse_version}
1871 DISABLE_RESTART_ON_UPDATE
="yes"
1872 %service_del_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1874 %if 0%{?fedora} || 0%{?rhel}
1875 %systemd_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1877 if [ $
1 -ge
1 ] ; then
1878 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1879 # "yes". In any case: if units are not running, do not touch them.
1880 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1881 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1882 source $SYSCONF_CEPH
1884 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1885 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service ceph
-volume@\
*.service
> /dev
/null
2>&1 ||
:
1891 %files resource
-agents
1892 %dir %{_prefix}/lib
/ocf
1893 %dir %{_prefix}/lib
/ocf
/resource.d
1894 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1895 %attr(0755,-,-) %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1900 %{_libdir}/librados.so.
*
1901 %dir %{_libdir}/ceph
1902 %{_libdir}/ceph
/libceph
-common.so.
*
1904 %{_libdir}/librados_tp.so.
*
1907 %post -n librados2
-p
/sbin
/ldconfig
1909 %postun -n librados2
-p
/sbin
/ldconfig
1911 %files -n librados
-devel
1912 %dir %{_includedir}/rados
1913 %{_includedir}/rados
/librados.h
1914 %{_includedir}/rados
/rados_types.h
1915 %{_libdir}/librados.so
1917 %{_libdir}/librados_tp.so
1919 %{_bindir}/librados
-config
1920 %{_mandir}/man8
/librados
-config
.8*
1922 %files -n libradospp
-devel
1923 %dir %{_includedir}/rados
1924 %{_includedir}/rados
/buffer.h
1925 %{_includedir}/rados
/buffer_fwd.h
1926 %{_includedir}/rados
/crc32c.h
1927 %{_includedir}/rados
/inline_memory.h
1928 %{_includedir}/rados
/librados.hpp
1929 %{_includedir}/rados
/librados_fwd.hpp
1930 %{_includedir}/rados
/page.h
1931 %{_includedir}/rados
/rados_types.hpp
1933 %if 0%{with python2}
1934 %files -n python
-rados
1935 %{python_sitearch}/rados.so
1936 %{python_sitearch}/rados
-*.egg
-info
1939 %files -n python
%{python3_pkgversion}-rados
1940 %{python3_sitearch}/rados.cpython
*.so
1941 %{python3_sitearch}/rados
-*.egg
-info
1943 %if 0%{with libradosstriper}
1944 %files -n libradosstriper1
1945 %{_libdir}/libradosstriper.so.
*
1947 %post -n libradosstriper1
-p
/sbin
/ldconfig
1949 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1951 %files -n libradosstriper
-devel
1952 %dir %{_includedir}/radosstriper
1953 %{_includedir}/radosstriper
/libradosstriper.h
1954 %{_includedir}/radosstriper
/libradosstriper.hpp
1955 %{_libdir}/libradosstriper.so
1959 %{_libdir}/librbd.so.
*
1961 %{_libdir}/librbd_tp.so.
*
1964 %post -n librbd1
-p
/sbin
/ldconfig
1966 %postun -n librbd1
-p
/sbin
/ldconfig
1968 %files -n librbd
-devel
1969 %dir %{_includedir}/rbd
1970 %{_includedir}/rbd
/librbd.h
1971 %{_includedir}/rbd
/librbd.hpp
1972 %{_includedir}/rbd
/features.h
1973 %{_libdir}/librbd.so
1975 %{_libdir}/librbd_tp.so
1979 %{_libdir}/librgw.so.
*
1980 %{_libdir}/librgw_admin_user.so.
*
1982 %{_libdir}/librgw_op_tp.so
*
1983 %{_libdir}/librgw_rados_tp.so
*
1986 %post -n librgw2
-p
/sbin
/ldconfig
1988 %postun -n librgw2
-p
/sbin
/ldconfig
1990 %files -n librgw
-devel
1991 %dir %{_includedir}/rados
1992 %{_includedir}/rados
/librgw.h
1993 %{_includedir}/rados
/librgw_admin_user.h
1994 %{_includedir}/rados
/rgw_file.h
1995 %{_libdir}/librgw.so
1996 %{_libdir}/librgw_admin_user.so
1998 %if 0%{with python2}
1999 %files -n python
-rgw
2000 %{python_sitearch}/rgw.so
2001 %{python_sitearch}/rgw
-*.egg
-info
2004 %files -n python
%{python3_pkgversion}-rgw
2005 %{python3_sitearch}/rgw.cpython
*.so
2006 %{python3_sitearch}/rgw
-*.egg
-info
2008 %if 0%{with python2}
2009 %files -n python
-rbd
2010 %{python_sitearch}/rbd.so
2011 %{python_sitearch}/rbd
-*.egg
-info
2014 %files -n python
%{python3_pkgversion}-rbd
2015 %{python3_sitearch}/rbd.cpython
*.so
2016 %{python3_sitearch}/rbd
-*.egg
-info
2018 %files -n libcephfs2
2019 %{_libdir}/libcephfs.so.
*
2021 %post -n libcephfs2
-p
/sbin
/ldconfig
2023 %postun -n libcephfs2
-p
/sbin
/ldconfig
2025 %files -n libcephfs
-devel
2026 %dir %{_includedir}/cephfs
2027 %{_includedir}/cephfs
/libcephfs.h
2028 %{_includedir}/cephfs
/ceph_statx.h
2029 %{_libdir}/libcephfs.so
2031 %if 0%{with python2}
2032 %files -n python
-cephfs
2033 %{python_sitearch}/cephfs.so
2034 %{python_sitearch}/cephfs
-*.egg
-info
2035 %{python_sitelib}/ceph_volume_client.py
*
2038 %files -n python
%{python3_pkgversion}-cephfs
2039 %{python3_sitearch}/cephfs.cpython
*.so
2040 %{python3_sitearch}/cephfs
-*.egg
-info
2041 %{python3_sitelib}/ceph_volume_client.py
2042 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
2044 %if 0%{with python2}
2045 %files -n python
-ceph
-argparse
2046 %{python_sitelib}/ceph_argparse.py
*
2047 %{python_sitelib}/ceph_daemon.py
*
2050 %files -n python
%{python3_pkgversion}-ceph
-argparse
2051 %{python3_sitelib}/ceph_argparse.py
2052 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
2053 %{python3_sitelib}/ceph_daemon.py
2054 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
2056 %if 0%{with cephfs_shell}
2057 %files -n cephfs
-shell
2058 %{python3_sitelib}/cephfs_shell
-*.egg
-info
2059 %{_bindir}/cephfs
-shell
2062 %if 0%{with ceph_test_package}
2064 %{_bindir}/ceph
-client
-debug
2065 %{_bindir}/ceph_bench_log
2066 %{_bindir}/ceph_kvstorebench
2067 %{_bindir}/ceph_multi_stress_watch
2068 %{_bindir}/ceph_erasure_code
2069 %{_bindir}/ceph_erasure_code_benchmark
2070 %{_bindir}/ceph_omapbench
2071 %{_bindir}/ceph_objectstore_bench
2072 %{_bindir}/ceph_perf_objectstore
2073 %{_bindir}/ceph_perf_local
2074 %{_bindir}/ceph_perf_msgr_client
2075 %{_bindir}/ceph_perf_msgr_server
2076 %{_bindir}/ceph_psim
2077 %{_bindir}/ceph_radosacl
2078 %{_bindir}/ceph_rgw_jsonparser
2079 %{_bindir}/ceph_rgw_multiparser
2080 %{_bindir}/ceph_scratchtool
2081 %{_bindir}/ceph_scratchtoolpp
2082 %{_bindir}/ceph_test_
*
2083 %{_bindir}/ceph
-coverage
2084 %{_bindir}/ceph
-debugpack
2085 %{_bindir}/cephdeduptool
2086 %{_mandir}/man8
/ceph
-debugpack
.8*
2087 %dir %{_libdir}/ceph
2088 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
2091 %if 0%{with cephfs_java}
2092 %files -n libcephfs_jni1
2093 %{_libdir}/libcephfs_jni.so.
*
2095 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
2097 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
2099 %files -n libcephfs_jni
-devel
2100 %{_libdir}/libcephfs_jni.so
2102 %files -n cephfs
-java
2103 %{_javadir}/libcephfs.jar
2104 %{_javadir}/libcephfs
-test.jar
2107 %files -n rados
-objclass
-devel
2108 %dir %{_includedir}/rados
2109 %{_includedir}/rados
/objclass.h
2111 %if 0%{with selinux}
2113 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
2114 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
2115 %{_mandir}/man8
/ceph_selinux
.8*
2118 # backup file_contexts before update
2119 .
/etc
/selinux
/config
2120 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
2121 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
2123 # Install the policy
2124 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
2126 # Load the policy if SELinux is enabled
2127 if ! /usr
/sbin
/selinuxenabled
; then
2128 # Do not relabel if selinux is not enabled
2132 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
2133 # Do not relabel if file contexts did not change
2137 # Check whether the daemons are running
2138 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
2141 # Stop the daemons if they were running
2142 if test $STATUS
-eq
0; then
2143 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
2146 # Relabel the files fix for first package install
2147 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
2149 rm -f $
{FILE_CONTEXT
}.pre
2150 # The fixfiles command won't fix label for /var/run/ceph
2151 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
2153 # Start the daemons iff they were running before
2154 if test $STATUS
-eq
0; then
2155 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
2160 if [ $
1 -eq
0 ]; then
2161 # backup file_contexts before update
2162 .
/etc
/selinux
/config
2163 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
2164 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
2167 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
2169 # Reload the policy if SELinux is enabled
2170 if ! /usr
/sbin
/selinuxenabled
; then
2171 # Do not relabel if SELinux is not enabled
2175 # Check whether the daemons are running
2176 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
2179 # Stop the daemons if they were running
2180 if test $STATUS
-eq
0; then
2181 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
2184 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
2185 rm -f $
{FILE_CONTEXT
}.pre
2186 # The fixfiles command won't fix label for /var/run/ceph
2187 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
2189 # Start the daemons if they were running before
2190 if test $STATUS
-eq
0; then
2191 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
2196 %endif # with selinux
2198 %if 0%{with python2}
2199 %files -n python
-ceph
-compat
2200 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
2201 # actually build this meta package.
2204 %files grafana
-dashboards
2205 %if 0%{?suse_version}
2206 %attr(0755,root
,root
) %dir %{_sysconfdir}/grafana
2207 %attr(0755,root
,root
) %dir %{_sysconfdir}/grafana
/dashboards
2208 %attr(0755,root
,root
) %dir %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
2210 %attr(0755,root
,root
) %dir %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
2212 %config %{_sysconfdir}/grafana
/dashboards
/ceph
-dashboard
/*
2213 %doc monitoring
/grafana
/dashboards
/README
2214 %doc monitoring
/grafana
/README.md
2216 %if 0%{?suse_version}
2217 %files prometheus
-alerts
2218 %dir /etc
/prometheus
/SUSE
/
2219 %dir /etc
/prometheus
/SUSE
/default_rules
/
2220 %config /etc
/prometheus
/SUSE
/default_rules
/ceph_default_alerts.yml