1 # vim: set noexpandtab ts=8 sw=8 :
3 # spec file for package ceph
5 # Copyright (C) 2004-2017 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 %bcond_without cephfs_java
20 %bcond_with ceph_test_package
22 %bcond_without ceph_test_package
24 %bcond_with make_check
28 %bcond_without tcmalloc
30 %bcond_with lowmem_builder
31 %if 0%{?fedora} || 0%{?rhel}
32 %bcond_without selinux
38 # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE)
39 %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
40 %if ! 0%{?is_opensuse}
46 # get selinux policy version
47 %{!?_selinux_policy_version: %global _selinux_policy_version %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp 2>/dev/null || echo 0.0.0)}
50 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
51 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
52 %{!?python3_pkgversion: %global python3_pkgversion 3}
54 # unify libexec for all targets
55 %global _libexecdir
%{_exec_prefix}/lib
57 # disable dwz which compresses the debuginfo
58 %global _find_debuginfo_dwz_opts
%{nil}
60 #################################################################################
61 # main package definition
62 #################################################################################
65 Release: @RPM_RELEASE@
%{?dist}
66 %if 0%{?fedora} || 0%{?rhel}
70 # define %_epoch_prefix macro which will expand to the empty string if %epoch is undefined
71 %global _epoch_prefix
%{?epoch:%{epoch}:}
73 Summary: User space components of the Ceph file system
74 License: LGPL
-2.1 and CC
-BY
-SA
-1.0 and GPL
-2.0 and BSL
-1.0 and BSD
-3-Clause and MIT
76 Group: System
/Filesystems
79 Source0: http
://ceph.com
/download
/@TARBALL_BASENAME@.tar.bz2
82 ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
84 ExclusiveArch: x86_64 aarch64 ppc64le s390x
87 #################################################################################
88 # dependencies that apply across all distro families
89 #################################################################################
90 Requires: ceph
-osd
= %{_epoch_prefix}%{version}-%{release}
91 Requires: ceph
-mds
= %{_epoch_prefix}%{version}-%{release}
92 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
93 Requires: ceph
-mon
= %{_epoch_prefix}%{version}-%{release}
94 Requires(post
): binutils
95 %if 0%{with cephfs_java}
96 BuildRequires
: java
-devel
97 BuildRequires
: sharutils
100 BuildRequires
: checkpolicy
101 BuildRequires
: selinux
-policy
-devel
102 BuildRequires
: /usr
/share
/selinux
/devel
/policyhelp
104 %if 0%{with make_check}
105 %if 0%{?fedora} || 0%{?rhel}
106 BuildRequires
: python
-cherrypy
107 BuildRequires
: python
-werkzeug
109 %if 0%{?suse_version}
110 BuildRequires
: python
-CherryPy
111 BuildRequires
: python
-Werkzeug
113 BuildRequires
: python
-pecan
119 BuildRequires
: cryptsetup
120 BuildRequires
: fuse
-devel
121 BuildRequires
: gcc
-c
++
123 %if 0%{with tcmalloc}
124 BuildRequires
: gperftools
-devel
>= 2.4
127 BuildRequires
: leveldb
-devel
> 1.2
128 BuildRequires
: libaio
-devel
129 BuildRequires
: libblkid
-devel
>= 2.17
130 BuildRequires
: libcurl
-devel
131 BuildRequires
: libudev
-devel
132 BuildRequires
: libtool
133 BuildRequires
: libxml2
-devel
135 BuildRequires
: parted
137 BuildRequires
: pkgconfig
138 BuildRequires
: python
139 BuildRequires
: python
-devel
140 BuildRequires
: python
-nose
141 BuildRequires
: python
-requests
142 BuildRequires
: python
-virtualenv
143 BuildRequires
: snappy
-devel
145 BuildRequires
: util
-linux
146 BuildRequires
: valgrind
-devel
148 BuildRequires
: xfsprogs
149 BuildRequires
: xfsprogs
-devel
150 BuildRequires
: xmlstarlet
153 #################################################################################
154 # distro-conditional dependencies
155 #################################################################################
156 %if 0%{?suse_version}
157 BuildRequires
: pkgconfig
(systemd
)
158 BuildRequires
: systemd
-rpm
-macros
159 BuildRequires
: systemd
161 PreReq
: %fillup_prereq
162 BuildRequires
: net
-tools
163 BuildRequires
: libbz2
-devel
164 BuildRequires
: btrfsprogs
165 BuildRequires
: mozilla
-nss
-devel
166 BuildRequires
: keyutils
-devel
167 BuildRequires
: libopenssl
-devel
168 BuildRequires
: lsb
-release
169 BuildRequires
: openldap2
-devel
170 BuildRequires
: python
-Cython
171 BuildRequires
: python
-PrettyTable
172 BuildRequires
: python
-Sphinx
173 BuildRequires
: rdma
-core
-devel
175 %if 0%{?fedora} || 0%{?rhel}
177 BuildRequires
: boost
-random
178 BuildRequires
: btrfs
-progs
179 BuildRequires
: nss
-devel
180 BuildRequires
: keyutils
-libs
-devel
181 BuildRequires
: libibverbs
-devel
182 BuildRequires
: openldap
-devel
183 BuildRequires
: openssl
-devel
184 BuildRequires
: redhat
-lsb
-core
185 BuildRequires
: Cython
186 BuildRequires
: python
-prettytable
187 BuildRequires
: python
-sphinx
189 # python34-... for RHEL, python3-... for all other supported distros
191 BuildRequires
: python34
-devel
192 BuildRequires
: python34
-setuptools
193 BuildRequires
: python34
-Cython
195 BuildRequires
: python3
-devel
196 BuildRequires
: python3
-setuptools
197 BuildRequires
: python3
-Cython
199 # lttng and babeltrace for rbd-replay-prep
201 %if 0%{?fedora} || 0%{?rhel}
202 BuildRequires
: lttng
-ust
-devel
203 BuildRequires
: libbabeltrace
-devel
205 %if 0%{?suse_version}
206 BuildRequires
: lttng
-ust
-devel
207 BuildRequires
: babeltrace
-devel
210 %if 0%{?suse_version}
211 BuildRequires
: libexpat
-devel
213 %if 0%{?rhel} || 0%{?fedora}
214 BuildRequires
: expat
-devel
217 %if 0%{?fedora} || 0%{?rhel}
218 BuildRequires
: redhat
-rpm
-config
222 Ceph is a massively scalable
, open
-source, distributed storage system that runs
223 on commodity hardware and delivers object
, block and file system storage.
226 #################################################################################
228 #################################################################################
230 Summary: Ceph Base Package
231 %if 0%{?suse_version}
232 Group: System
/Filesystems
234 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
235 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
236 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
237 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
238 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
240 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
243 Requires: python
-requests
244 Requires: python
-setuptools
253 %if 0%{?suse_version}
254 Recommends
: ntp
-daemon
257 Base is the package that includes all the files shared amongst ceph servers
259 %package -n ceph
-common
261 %if 0%{?suse_version}
262 Group: System
/Filesystems
264 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
265 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
266 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
267 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
268 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
269 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
270 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
271 %if 0%{?fedora} || 0%{?rhel}
272 Requires: python
-prettytable
274 %if 0%{?suse_version}
275 Requires: python
-PrettyTable
277 Requires: python
-requests
279 %if 0%{?suse_version}
280 Requires(pre
): pwdutils
282 %description -n ceph
-common
283 Common utilities to mount and interact with a ceph storage cluster.
284 Comprised of files that are common to Ceph clients and servers.
287 Summary: Ceph Metadata Server Daemon
288 %if 0%{?suse_version}
289 Group: System
/Filesystems
291 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
293 ceph
-mds is the metadata server daemon
for the Ceph distributed file system.
294 One or more instances of ceph
-mds collectively manage the file system
295 namespace
, coordinating access to the shared OSD cluster.
298 Summary: Ceph Monitor Daemon
299 %if 0%{?suse_version}
300 Group: System
/Filesystems
302 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
304 %if 0%{?fedora} || 0%{?rhel}
305 Requires: python
-flask
307 %if 0%{?suse_version}
308 Requires: python
-Flask
311 ceph
-mon is the cluster monitor daemon
for the Ceph distributed file
312 system. One or more instances of ceph
-mon form a Paxos part
-time
313 parliament cluster that provides extremely reliable and durable storage
314 of cluster membership
, configuration
, and state.
317 Summary: Ceph Manager Daemon
318 %if 0%{?suse_version}
319 Group: System
/Filesystems
321 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
322 %if 0%{?fedora} || 0%{?rhel}
323 Requires: python
-cherrypy
324 Requires: python
-werkzeug
327 %if 0%{?suse_version}
328 Requires: python
-CherryPy
329 Requires: python
-Werkzeug
330 Requires: python
-pyOpenSSL
332 Requires: python
-pecan
334 ceph
-mgr enables python modules that provide services
(such as the REST
335 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
336 the cluster maps
, the daemon metadata
, and performance counters
, and
337 exposes all these to the python modules.
340 Summary: Ceph fuse
-based client
341 %if 0%{?suse_version}
342 Group: System
/Filesystems
345 FUSE based client
for Ceph distributed network file system
348 Summary: Ceph fuse
-based client
349 %if 0%{?suse_version}
350 Group: System
/Filesystems
352 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
353 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
354 %description -n rbd
-fuse
355 FUSE based client to map Ceph rbd images to files
357 %package -n rbd
-mirror
358 Summary: Ceph daemon
for mirroring RBD images
359 %if 0%{?suse_version}
360 Group: System
/Filesystems
362 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
363 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
364 %description -n rbd
-mirror
365 Daemon
for mirroring RBD images between Ceph clusters
, streaming
366 changes asynchronously.
369 Summary: Ceph RBD client base on NBD
370 %if 0%{?suse_version}
371 Group: System
/Filesystems
373 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
374 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
375 %description -n rbd
-nbd
376 NBD based client to map Ceph rbd images to
local device
379 Summary: Rados REST gateway
380 %if 0%{?suse_version}
381 Group: System
/Filesystems
383 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
385 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
387 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
388 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
389 %if 0%{?rhel} || 0%{?fedora}
393 RADOS is a distributed object store used by the Ceph distributed
394 storage system. This package provides a REST gateway to the
395 object store that aims to implement a superset of Amazon's S3
396 service as well as the OpenStack Object Storage
("Swift"
) API.
399 %package resource
-agents
400 Summary: OCF
-compliant resource agents
for Ceph daemons
401 %if 0%{?suse_version}
402 Group: System
/Filesystems
404 Requires: ceph
-base
= %{_epoch_prefix}%{version}
405 Requires: resource
-agents
406 %description resource
-agents
407 Resource agents
for monitoring and managing Ceph daemons
408 under Open Cluster Framework
(OCF
) compliant resource
409 managers such as Pacemaker.
413 Summary: Ceph Object Storage Daemon
414 %if 0%{?suse_version}
415 Group: System
/Filesystems
417 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
418 # for sgdisk, used by ceph-disk
419 %if 0%{?fedora} || 0%{?rhel}
422 %if 0%{?suse_version}
427 ceph
-osd is the object storage daemon
for the Ceph distributed file
428 system. It is responsible
for storing objects on a
local file system
429 and providing access to them over the network.
431 %package -n librados2
432 Summary: RADOS distributed object store client library
433 %if 0%{?suse_version}
434 Group: System
/Libraries
436 %if 0%{?rhel} || 0%{?fedora}
437 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
439 %description -n librados2
440 RADOS is a reliable
, autonomic distributed object storage cluster
441 developed as part of the Ceph distributed storage system. This is a
442 shared library allowing applications to access the distributed object
443 store using a simple file
-like interface.
445 %package -n librados
-devel
446 Summary: RADOS headers
447 %if 0%{?suse_version}
448 Group: Development
/Libraries
/C and C
++
450 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
451 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
452 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
453 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
454 %description -n librados
-devel
455 This package contains libraries and headers needed to develop programs
456 that use RADOS object store.
459 Summary: RADOS gateway client library
460 %if 0%{?suse_version}
461 Group: System
/Libraries
463 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
464 %description -n librgw2
465 This package provides a library implementation of the RADOS gateway
466 (distributed object store with S3 and Swift personalities
).
468 %package -n librgw
-devel
469 Summary: RADOS gateway client library
470 %if 0%{?suse_version}
471 Group: Development
/Libraries
/C and C
++
473 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
474 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
475 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
476 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
477 %description -n librgw
-devel
478 This package contains libraries and headers needed to develop programs
479 that use RADOS gateway client library.
481 %package -n python
-rgw
482 Summary: Python
2 libraries
for the RADOS gateway
483 %if 0%{?suse_version}
484 Group: Development
/Languages
/Python
486 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
487 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
488 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
489 %description -n python
-rgw
490 This package contains Python
2 libraries
for interacting with Cephs RADOS
493 %package -n python
%{python3_pkgversion}-rgw
494 Summary: Python
3 libraries
for the RADOS gateway
495 %if 0%{?suse_version}
496 Group: Development
/Languages
/Python
498 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
499 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
500 %description -n python
%{python3_pkgversion}-rgw
501 This package contains Python
3 libraries
for interacting with Cephs RADOS
504 %package -n python
-rados
505 Summary: Python
2 libraries
for the RADOS object store
506 %if 0%{?suse_version}
507 Group: Development
/Languages
/Python
509 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
510 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
511 %description -n python
-rados
512 This package contains Python
2 libraries
for interacting with Cephs RADOS
515 %package -n python
%{python3_pkgversion}-rados
516 Summary: Python
3 libraries
for the RADOS object store
517 %if 0%{?suse_version}
518 Group: Development
/Languages
/Python
520 Requires: python
%{python3_pkgversion}
521 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
522 %description -n python
%{python3_pkgversion}-rados
523 This package contains Python
3 libraries
for interacting with Cephs RADOS
526 %package -n libradosstriper1
527 Summary: RADOS striping interface
528 %if 0%{?suse_version}
529 Group: System
/Libraries
531 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
532 %description -n libradosstriper1
533 Striping interface built on top of the rados library
, allowing
534 to stripe bigger objects onto several standard rados objects using
535 an interface very similar to the rados one.
537 %package -n libradosstriper
-devel
538 Summary: RADOS striping interface headers
539 %if 0%{?suse_version}
540 Group: Development
/Libraries
/C and C
++
542 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
543 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
544 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
545 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
546 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
547 %description -n libradosstriper
-devel
548 This package contains libraries and headers needed to develop programs
549 that use RADOS striping interface.
552 Summary: RADOS block device client library
553 %if 0%{?suse_version}
554 Group: System
/Libraries
556 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
557 %if 0%{?suse_version}
558 Requires(post
): coreutils
560 %if 0%{?rhel} || 0%{?fedora}
561 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
563 %description -n librbd1
564 RBD is a block device striped across multiple distributed objects
in
565 RADOS
, a reliable
, autonomic distributed object storage cluster
566 developed as part of the Ceph distributed storage system. This is a
567 shared library allowing applications to manage these block devices.
569 %package -n librbd
-devel
570 Summary: RADOS block device headers
571 %if 0%{?suse_version}
572 Group: Development
/Libraries
/C and C
++
574 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
575 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
576 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
577 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
578 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
579 %description -n librbd
-devel
580 This package contains libraries and headers needed to develop programs
581 that use RADOS block device.
583 %package -n python
-rbd
584 Summary: Python
2 libraries
for the RADOS block device
585 %if 0%{?suse_version}
586 Group: Development
/Languages
/Python
588 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
589 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
590 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
591 %description -n python
-rbd
592 This package contains Python
2 libraries
for interacting with Cephs RADOS
595 %package -n python
%{python3_pkgversion}-rbd
596 Summary: Python
3 libraries
for the RADOS block device
597 %if 0%{?suse_version}
598 Group: Development
/Languages
/Python
600 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
601 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
602 %description -n python
%{python3_pkgversion}-rbd
603 This package contains Python
3 libraries
for interacting with Cephs RADOS
606 %package -n libcephfs2
607 Summary: Ceph distributed file system client library
608 %if 0%{?suse_version}
609 Group: System
/Libraries
611 Obsoletes
: libcephfs1
612 %if 0%{?rhel} || 0%{?fedora}
613 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
614 Obsoletes
: ceph
-libcephfs
616 %description -n libcephfs2
617 Ceph is a distributed network file system designed to provide excellent
618 performance
, reliability
, and scalability. This is a shared library
619 allowing applications to access a Ceph distributed file system via a
620 POSIX
-like interface.
622 %package -n libcephfs
-devel
623 Summary: Ceph distributed file system headers
624 %if 0%{?suse_version}
625 Group: Development
/Libraries
/C and C
++
627 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
628 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
629 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
630 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
631 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
632 %description -n libcephfs
-devel
633 This package contains libraries and headers needed to develop programs
634 that use Cephs distributed file system.
636 %package -n python
-cephfs
637 Summary: Python
2 libraries
for Ceph distributed file system
638 %if 0%{?suse_version}
639 Group: Development
/Languages
/Python
641 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
642 %if 0%{?suse_version}
643 Recommends
: python
-rados
= %{_epoch_prefix}%{version}-%{release}
645 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
646 %description -n python
-cephfs
647 This package contains Python
2 libraries
for interacting with Cephs distributed
650 %package -n python
%{python3_pkgversion}-cephfs
651 Summary: Python
3 libraries
for Ceph distributed file system
652 %if 0%{?suse_version}
653 Group: Development
/Languages
/Python
655 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
656 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
657 %description -n python
%{python3_pkgversion}-cephfs
658 This package contains Python
3 libraries
for interacting with Cephs distributed
661 %package -n python
%{python3_pkgversion}-ceph
-argparse
662 Summary: Python
3 utility libraries
for Ceph CLI
663 %if 0%{?suse_version}
664 Group: Development
/Languages
/Python
666 %description -n python
%{python3_pkgversion}-ceph
-argparse
667 This package contains types and routines
for Python
3 used by the Ceph CLI as
668 well as the RESTful interface. These have to
do with querying the daemons
for
669 command-description information
, validating user
command input against those
670 descriptions
, and submitting the
command to the appropriate daemon.
672 %if 0%{with ceph_test_package}
673 %package -n ceph
-test
674 Summary: Ceph benchmarks and
test tools
675 %if 0%{?suse_version}
676 Group: System
/Benchmark
678 Requires: ceph
-common
682 %description -n ceph
-test
683 This package contains Ceph benchmarks and
test tools.
686 %if 0%{with cephfs_java}
688 %package -n libcephfs_jni1
689 Summary: Java Native Interface library
for CephFS Java bindings
690 %if 0%{?suse_version}
691 Group: System
/Libraries
694 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
695 %description -n libcephfs_jni1
696 This package contains the Java Native Interface library
for CephFS Java
699 %package -n libcephfs_jni
-devel
700 Summary: Development files
for CephFS Java Native Interface library
701 %if 0%{?suse_version}
702 Group: Development
/Libraries
/Java
705 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
706 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
707 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
708 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
709 %description -n libcephfs_jni
-devel
710 This package contains the development files
for CephFS Java Native Interface
713 %package -n cephfs
-java
714 Summary: Java libraries
for the Ceph File System
715 %if 0%{?suse_version}
716 Group: System
/Libraries
719 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
722 %description -n cephfs
-java
723 This package contains the Java libraries
for the Ceph File System.
727 %package -n rados
-objclass
-devel
728 Summary: RADOS object class development kit
729 Group: Development
/Libraries
730 Requires: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
731 %description -n rados
-objclass
-devel
732 This package contains libraries and headers needed to develop RADOS object
738 Summary: SELinux support
for Ceph MON
, OSD and MDS
739 %if 0%{?suse_version}
740 Group: System
/Filesystems
742 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
743 Requires: policycoreutils
, libselinux
-utils
744 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
745 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
746 Requires(postun
): policycoreutils
748 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
749 also performs file
-system relabelling which can take a long
time on heavily
750 populated file
-systems.
754 %package -n python
-ceph
-compat
755 Summary: Compatibility package
for Cephs python libraries
756 %if 0%{?suse_version}
757 Group: Development
/Languages
/Python
759 Obsoletes
: python
-ceph
760 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
761 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
762 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
763 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
764 Provides: python
-ceph
765 %description -n python
-ceph
-compat
766 This is a compatibility package to accommodate python
-ceph split into
767 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
768 depending on python
-ceph should be fixed to depend on python
-rados
,
769 python
-rbd
, python
-rgw or python
-cephfs instead.
771 #################################################################################
773 #################################################################################
775 %autosetup -p1
-n @TARBALL_BASENAME@
778 %if 0%{with cephfs_java}
780 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
781 [ -d $i
] && java_inc
="$java_inc
-I$i"
785 %if %{with lowmem_builder}
786 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
788 export RPM_OPT_FLAGS
=`
echo $RPM_OPT_FLAGS | sed
-e 's
/i386
/i486
/'`
790 export CPPFLAGS
="$java_inc"
791 export CFLAGS
="$RPM_OPT_FLAGS"
792 export CXXFLAGS
="$RPM_OPT_FLAGS"
796 %if %{with lowmem_builder}
798 %define _smp_mflags
-j8
802 # unlimit _smp_mflags in system macro if not set above
803 %define _smp_ncpus_max
0
804 # extract the number of processors for use with cmake
805 %define _smp_ncpus %
(echo %{_smp_mflags} | sed 's
/-j
//'
)
810 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
811 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
812 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
813 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
814 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
815 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
816 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
817 -DCMAKE_INSTALL_INCLUDEDIR
=%{_includedir} \
818 -DWITH_EMBEDDED
=OFF \
822 %if 0%{?rhel} && ! 0%{?centos}
825 %if 0%{without ceph_test_package}
828 %if 0%{with cephfs_java}
829 -DWITH_CEPHFS_JAVA
=ON \
836 -DWITH_BABELTRACE
=ON \
839 -DWITH_BABELTRACE
=OFF \
841 $CEPH_EXTRA_CMAKE_ARGS \
845 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
846 -DWITH_RADOSGW_BEAST_FRONTEND
=ON \
848 -DWITH_RADOSGW_BEAST_FRONTEND
=OFF \
850 -DBOOST_J
=%{_smp_ncpus}
855 %if 0%{with make_check}
857 # run in-tree unittests
859 ctest
%{?_smp_mflags}
867 make DESTDIR
=%{buildroot} install
868 # we have dropped sysvinit bits
869 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
871 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
872 %if 0%{?fedora} || 0%{?rhel}
873 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
875 %if 0%{?suse_version}
876 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
878 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
879 install -m
0755 -D systemd
/ceph
%{buildroot}%{_sbindir}/rcceph
880 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
881 mkdir -p
%{buildroot}%{_sbindir}
882 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
883 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
884 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
886 # firewall templates and /sbin/mount.ceph symlink
887 %if 0%{?suse_version}
888 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
889 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
890 mkdir -p
%{buildroot}/sbin
891 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
895 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
896 install -m
0644 -D udev
/60-ceph
-by
-parttypeuuid.rules
%{buildroot}%{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
897 install -m
0644 -D udev
/95-ceph
-osd.rules
%{buildroot}%{_udevrulesdir}/95-ceph
-osd.rules
899 #set up placeholder directories
900 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
901 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
902 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
903 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
904 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
905 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
906 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
907 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
908 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
909 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
910 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
911 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
912 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
913 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
915 %if 0%{?suse_version}
916 # create __pycache__ directories and their contents
917 %py3_compile %{buildroot}%{python3_sitelib}
923 #################################################################################
924 # files and systemd scriptlets
925 #################################################################################
930 %{_bindir}/monmaptool
931 %{_bindir}/osdmaptool
933 %{_bindir}/ceph
-detect
-init
934 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
935 %{_sbindir}/ceph
-create
-keys
936 %{_sbindir}/ceph
-disk
937 %{_sbindir}/ceph
-volume
938 %{_sbindir}/ceph
-volume
-systemd
940 %dir %{_libexecdir}/ceph
941 %{_libexecdir}/ceph
/ceph_common.sh
942 %dir %{_libdir}/rados
-classes
943 %{_libdir}/rados
-classes
/*
945 %dir %{_libdir}/ceph
/erasure
-code
946 %{_libdir}/ceph
/erasure
-code
/libec_
*.so
*
947 %dir %{_libdir}/ceph
/compressor
948 %{_libdir}/ceph
/compressor
/libceph_
*.so
*
950 %dir %{_libdir}/ceph
/crypto
951 %{_libdir}/ceph
/crypto
/libceph_
*.so
*
954 %{_libdir}/libos_tp.so
*
955 %{_libdir}/libosd_tp.so
*
957 %config(noreplace
) %{_sysconfdir}/logrotate.d
/ceph
958 %if 0%{?fedora} || 0%{?rhel}
959 %config(noreplace
) %{_sysconfdir}/sysconfig
/ceph
961 %if 0%{?suse_version}
962 %{_localstatedir}/adm
/fillup
-templates
/sysconfig.
*
963 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
964 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
966 %{_unitdir}/ceph
-disk@.service
967 %{_unitdir}/ceph
-volume@.service
968 %{_unitdir}/ceph.target
969 %{python_sitelib}/ceph_detect_init
*
970 %{python_sitelib}/ceph_disk
*
971 %dir %{python_sitelib}/ceph_volume
972 %{python_sitelib}/ceph_volume
/*
973 %{python_sitelib}/ceph_volume
-*
974 %{_mandir}/man8
/ceph
-deploy
.8*
975 %{_mandir}/man8
/ceph
-detect
-init
.8*
976 %{_mandir}/man8
/ceph
-create
-keys
.8*
977 %{_mandir}/man8
/ceph
-disk
.8*
978 %{_mandir}/man8
/ceph
-run
.8*
979 %{_mandir}/man8
/crushtool
.8*
980 %{_mandir}/man8
/osdmaptool
.8*
981 %{_mandir}/man8
/monmaptool
.8*
982 #set up placeholder directories
983 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
984 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
985 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
986 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
987 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
988 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
992 %if 0%{?suse_version}
994 if [ $
1 -eq
1 ] ; then
995 /usr
/bin
/systemctl preset ceph
-disk@\
*.service ceph.target
>/dev
/null
2>&1 ||
:
998 %if 0%{?fedora} || 0%{?rhel}
999 %systemd_post ceph
-disk@\
*.service ceph.target
1000 %systemd_post ceph
-volume@\
*.service ceph.target
1002 if [ $
1 -eq
1 ] ; then
1003 /usr
/bin
/systemctl start ceph.target
>/dev
/null
2>&1 ||
:
1007 %if 0%{?suse_version}
1008 %service_del_preun ceph
-disk@\
*.service ceph.target
1010 %if 0%{?fedora} || 0%{?rhel}
1011 %systemd_preun ceph
-disk@\
*.service ceph.target
1012 %systemd_preun ceph
-volume@\
*.service ceph.target
1017 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1018 %if 0%{?suse_version}
1019 DISABLE_RESTART_ON_UPDATE
="yes"
1020 %service_del_postun ceph
-disk@\
*.service ceph.target
1022 %if 0%{?fedora} || 0%{?rhel}
1023 %systemd_postun ceph
-disk@\
*.service ceph.target
1025 if [ $FIRST_ARG
-ge
1 ] ; then
1026 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1027 # "yes". In any case: if units are not running, do not touch them.
1028 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1029 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1030 source $SYSCONF_CEPH
1032 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1033 /usr
/bin
/systemctl try
-restart ceph
-disk@\
*.service ceph
-volume@\
*.service
> /dev
/null
2>&1 ||
:
1038 %dir %{_docdir}/ceph
1039 %doc %{_docdir}/ceph
/sample.ceph.conf
1040 %doc %{_docdir}/ceph
/COPYING
1042 %{_bindir}/ceph
-authtool
1043 %{_bindir}/ceph
-conf
1044 %{_bindir}/ceph
-dencoder
1045 %{_bindir}/ceph
-rbdnamer
1047 %{_bindir}/ceph
-crush
-location
1048 %{_bindir}/cephfs
-data
-scan
1049 %{_bindir}/cephfs
-journal
-tool
1050 %{_bindir}/cephfs
-table
-tool
1052 %{_bindir}/radosgw
-admin
1054 %{_bindir}/rbd
-replay
1055 %{_bindir}/rbd
-replay
-many
1057 %{_sbindir}/mount.ceph
1058 %if 0%{?suse_version}
1062 %{_bindir}/rbd
-replay
-prep
1064 %{_bindir}/ceph
-post
-file
1065 %{_bindir}/ceph
-brag
1066 %{_tmpfilesdir}/ceph
-common.conf
1067 %{_mandir}/man8
/ceph
-authtool
.8*
1068 %{_mandir}/man8
/ceph
-conf
.8*
1069 %{_mandir}/man8
/ceph
-dencoder
.8*
1070 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1071 %{_mandir}/man8
/ceph
-syn
.8*
1072 %{_mandir}/man8
/ceph
-post
-file
.8*
1073 %{_mandir}/man8
/ceph
.8*
1074 %{_mandir}/man8
/mount.ceph
.8*
1075 %{_mandir}/man8
/rados
.8*
1076 %{_mandir}/man8
/radosgw
-admin
.8*
1077 %{_mandir}/man8
/rbd
.8*
1078 %{_mandir}/man8
/rbdmap
.8*
1079 %{_mandir}/man8
/rbd
-replay
.8*
1080 %{_mandir}/man8
/rbd
-replay
-many
.8*
1081 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1082 %dir %{_datadir}/ceph
/
1083 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1084 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1085 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1086 %dir %{_sysconfdir}/ceph
/
1087 %config %{_sysconfdir}/bash_completion.d
/ceph
1088 %config %{_sysconfdir}/bash_completion.d
/rados
1089 %config %{_sysconfdir}/bash_completion.d
/rbd
1090 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1091 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1092 %{_unitdir}/rbdmap.service
1093 %{python_sitelib}/ceph_argparse.py
*
1094 %{python_sitelib}/ceph_daemon.py
*
1095 %dir %{_udevrulesdir}
1096 %{_udevrulesdir}/50-rbd.rules
1097 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1098 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1103 %if 0%{?rhel} || 0%{?fedora}
1104 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1105 /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 ||
:
1107 %if 0%{?suse_version}
1108 if ! getent group ceph
>/dev
/null
; then
1109 CEPH_GROUP_ID_OPTION
=""
1110 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1111 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1113 if ! getent passwd ceph
>/dev
/null
; then
1114 CEPH_USER_ID_OPTION
=""
1115 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1116 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1118 usermod
-c "Ceph storage service" \
1119 -d
%{_localstatedir}/lib
/ceph \
1127 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1130 # Package removal cleanup
1131 if [ "$
1"
-eq "
0"
] ; then
1132 rm -rf
%{_localstatedir}/log
/ceph
1133 rm -rf
%{_sysconfdir}/ceph
1138 %{_mandir}/man8
/ceph
-mds
.8*
1139 %{_unitdir}/ceph
-mds@.service
1140 %{_unitdir}/ceph
-mds.target
1141 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1144 %if 0%{?suse_version}
1145 if [ $
1 -eq
1 ] ; then
1146 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1149 %if 0%{?fedora} || 0%{?rhel}
1150 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1152 if [ $
1 -eq
1 ] ; then
1153 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1157 %if 0%{?suse_version}
1158 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1160 %if 0%{?fedora} || 0%{?rhel}
1161 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1165 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1166 %if 0%{?suse_version}
1167 DISABLE_RESTART_ON_UPDATE
="yes"
1168 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1170 %if 0%{?fedora} || 0%{?rhel}
1171 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1173 if [ $FIRST_ARG
-ge
1 ] ; then
1174 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1175 # "yes". In any case: if units are not running, do not touch them.
1176 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1177 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1178 source $SYSCONF_CEPH
1180 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1181 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1188 %{_unitdir}/ceph
-mgr@.service
1189 %{_unitdir}/ceph
-mgr.target
1190 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1193 %if 0%{?suse_version}
1194 if [ $
1 -eq
1 ] ; then
1195 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1198 %if 0%{?fedora} || 0%{?rhel}
1199 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1201 if [ $
1 -eq
1 ] ; then
1202 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1206 %if 0%{?suse_version}
1207 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1209 %if 0%{?fedora} || 0%{?rhel}
1210 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1214 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1215 %if 0%{?suse_version}
1216 DISABLE_RESTART_ON_UPDATE
="yes"
1217 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1219 %if 0%{?fedora} || 0%{?rhel}
1220 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1222 if [ $FIRST_ARG
-ge
1 ] ; then
1223 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1224 # "yes". In any case: if units are not running, do not touch them.
1225 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1226 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1227 source $SYSCONF_CEPH
1229 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1230 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1236 %{_bindir}/ceph
-rest
-api
1237 %{_mandir}/man8
/ceph
-mon
.8*
1238 %{_mandir}/man8
/ceph
-rest
-api
.8*
1239 %{python_sitelib}/ceph_rest_api.py
*
1240 %{_unitdir}/ceph
-mon@.service
1241 %{_unitdir}/ceph
-mon.target
1242 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1245 %if 0%{?suse_version}
1246 if [ $
1 -eq
1 ] ; then
1247 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1250 %if 0%{?fedora} || 0%{?rhel}
1251 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1253 if [ $
1 -eq
1 ] ; then
1254 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1258 %if 0%{?suse_version}
1259 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1261 %if 0%{?fedora} || 0%{?rhel}
1262 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1266 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1267 %if 0%{?suse_version}
1268 DISABLE_RESTART_ON_UPDATE
="yes"
1269 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1271 %if 0%{?fedora} || 0%{?rhel}
1272 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1274 if [ $FIRST_ARG
-ge
1 ] ; then
1275 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1276 # "yes". In any case: if units are not running, do not touch them.
1277 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1278 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1279 source $SYSCONF_CEPH
1281 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1282 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1287 %{_bindir}/ceph
-fuse
1288 %{_mandir}/man8
/ceph
-fuse
.8*
1289 %{_sbindir}/mount.fuse.ceph
1290 %{_unitdir}/ceph
-fuse@.service
1291 %{_unitdir}/ceph
-fuse.target
1295 %{_mandir}/man8
/rbd
-fuse
.8*
1297 %files -n rbd
-mirror
1298 %{_bindir}/rbd
-mirror
1299 %{_mandir}/man8
/rbd
-mirror
.8*
1300 %{_unitdir}/ceph
-rbd
-mirror@.service
1301 %{_unitdir}/ceph
-rbd
-mirror.target
1304 %if 0%{?suse_version}
1305 if [ $
1 -eq
1 ] ; then
1306 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1309 %if 0%{?fedora} || 0%{?rhel}
1310 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1312 if [ $
1 -eq
1 ] ; then
1313 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1316 %preun -n rbd
-mirror
1317 %if 0%{?suse_version}
1318 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1320 %if 0%{?fedora} || 0%{?rhel}
1321 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1324 %postun -n rbd
-mirror
1325 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1326 %if 0%{?suse_version}
1327 DISABLE_RESTART_ON_UPDATE
="yes"
1328 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1330 %if 0%{?fedora} || 0%{?rhel}
1331 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1333 if [ $FIRST_ARG
-ge
1 ] ; then
1334 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1335 # "yes". In any case: if units are not running, do not touch them.
1336 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1337 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1338 source $SYSCONF_CEPH
1340 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1341 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1347 %{_mandir}/man8
/rbd
-nbd
.8*
1351 %{_bindir}/radosgw
-token
1352 %{_bindir}/radosgw
-es
1353 %{_bindir}/radosgw
-object
-expirer
1354 %{_mandir}/man8
/radosgw
.8*
1355 %dir %{_localstatedir}/lib
/ceph
/radosgw
1356 %{_unitdir}/ceph
-radosgw@.service
1357 %{_unitdir}/ceph
-radosgw.target
1360 %if 0%{?suse_version}
1361 if [ $
1 -eq
1 ] ; then
1362 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1365 %if 0%{?fedora} || 0%{?rhel}
1366 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1368 if [ $
1 -eq
1 ] ; then
1369 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1373 %if 0%{?suse_version}
1374 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1376 %if 0%{?fedora} || 0%{?rhel}
1377 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1381 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1382 %if 0%{?suse_version}
1383 DISABLE_RESTART_ON_UPDATE
="yes"
1384 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1386 %if 0%{?fedora} || 0%{?rhel}
1387 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1389 if [ $FIRST_ARG
-ge
1 ] ; then
1390 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1391 # "yes". In any case: if units are not running, do not touch them.
1392 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1393 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1394 source $SYSCONF_CEPH
1396 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1397 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1402 %{_bindir}/ceph
-clsinfo
1403 %{_bindir}/ceph
-bluestore
-tool
1404 %{_bindir}/ceph
-objectstore
-tool
1406 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1407 %dir %{_udevrulesdir}
1408 %{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
1409 %{_udevrulesdir}/95-ceph
-osd.rules
1410 %{_mandir}/man8
/ceph
-clsinfo
.8*
1411 %{_mandir}/man8
/ceph
-osd
.8*
1412 %if 0%{?rhel} && ! 0%{?centos}
1413 %attr(0755,-,-) %{_sysconfdir}/cron.hourly
/subman
1415 %{_unitdir}/ceph
-osd@.service
1416 %{_unitdir}/ceph
-osd.target
1417 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1420 %if 0%{?suse_version}
1421 if [ $
1 -eq
1 ] ; then
1422 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1425 %if 0%{?fedora} || 0%{?rhel}
1426 %systemd_post ceph
-osd@\
*.service ceph
-osd.target
1428 if [ $
1 -eq
1 ] ; then
1429 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1433 %if 0%{?suse_version}
1434 %service_del_preun ceph
-osd@\
*.service ceph
-osd.target
1436 %if 0%{?fedora} || 0%{?rhel}
1437 %systemd_preun ceph
-osd@\
*.service ceph
-osd.target
1441 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1442 %if 0%{?suse_version}
1443 DISABLE_RESTART_ON_UPDATE
="yes"
1444 %service_del_postun ceph
-osd@\
*.service ceph
-osd.target
1446 %if 0%{?fedora} || 0%{?rhel}
1447 %systemd_postun ceph
-osd@\
*.service ceph
-osd.target
1449 if [ $FIRST_ARG
-ge
1 ] ; then
1450 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1451 # "yes". In any case: if units are not running, do not touch them.
1452 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1453 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1454 source $SYSCONF_CEPH
1456 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1457 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service
> /dev
/null
2>&1 ||
:
1463 %files resource
-agents
1464 %dir %{_prefix}/lib
/ocf
1465 %dir %{_prefix}/lib
/ocf
/resource.d
1466 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1467 %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1472 %{_libdir}/librados.so.
*
1473 %dir %{_libdir}/ceph
1474 %{_libdir}/ceph
/libceph
-common.so
*
1476 %{_libdir}/librados_tp.so.
*
1479 %post -n librados2
-p
/sbin
/ldconfig
1481 %postun -n librados2
-p
/sbin
/ldconfig
1483 %files -n librados
-devel
1484 %dir %{_includedir}/rados
1485 %{_includedir}/rados
/librados.h
1486 %{_includedir}/rados
/librados.hpp
1487 %{_includedir}/rados
/buffer.h
1488 %{_includedir}/rados
/buffer_fwd.h
1489 %{_includedir}/rados
/inline_memory.h
1490 %{_includedir}/rados
/page.h
1491 %{_includedir}/rados
/crc32c.h
1492 %{_includedir}/rados
/rados_types.h
1493 %{_includedir}/rados
/rados_types.hpp
1494 %{_includedir}/rados
/memory.h
1495 %{_libdir}/librados.so
1497 %{_libdir}/librados_tp.so
1499 %{_bindir}/librados
-config
1500 %{_mandir}/man8
/librados
-config
.8*
1502 %files -n python
-rados
1503 %{python_sitearch}/rados.so
1504 %{python_sitearch}/rados
-*.egg
-info
1506 %files -n python
%{python3_pkgversion}-rados
1507 %{python3_sitearch}/rados.cpython
*.so
1508 %{python3_sitearch}/rados
-*.egg
-info
1510 %files -n libradosstriper1
1511 %{_libdir}/libradosstriper.so.
*
1513 %post -n libradosstriper1
-p
/sbin
/ldconfig
1515 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1517 %files -n libradosstriper
-devel
1518 %dir %{_includedir}/radosstriper
1519 %{_includedir}/radosstriper
/libradosstriper.h
1520 %{_includedir}/radosstriper
/libradosstriper.hpp
1521 %{_libdir}/libradosstriper.so
1524 %{_libdir}/librbd.so.
*
1526 %{_libdir}/librbd_tp.so.
*
1531 mkdir -p
/usr
/lib64
/qemu
/
1532 ln
-sf
%{_libdir}/librbd.so
.1 /usr
/lib64
/qemu
/librbd.so
.1
1534 %postun -n librbd1
-p
/sbin
/ldconfig
1536 %files -n librbd
-devel
1537 %dir %{_includedir}/rbd
1538 %{_includedir}/rbd
/librbd.h
1539 %{_includedir}/rbd
/librbd.hpp
1540 %{_includedir}/rbd
/features.h
1541 %{_libdir}/librbd.so
1543 %{_libdir}/librbd_tp.so
1547 %{_libdir}/librgw.so.
*
1549 %post -n librgw2
-p
/sbin
/ldconfig
1551 %postun -n librgw2
-p
/sbin
/ldconfig
1553 %files -n librgw
-devel
1554 %dir %{_includedir}/rados
1555 %{_includedir}/rados
/librgw.h
1556 %{_includedir}/rados
/rgw_file.h
1557 %{_libdir}/librgw.so
1559 %files -n python
-rgw
1560 %{python_sitearch}/rgw.so
1561 %{python_sitearch}/rgw
-*.egg
-info
1563 %files -n python
%{python3_pkgversion}-rgw
1564 %{python3_sitearch}/rgw.cpython
*.so
1565 %{python3_sitearch}/rgw
-*.egg
-info
1567 %files -n python
-rbd
1568 %{python_sitearch}/rbd.so
1569 %{python_sitearch}/rbd
-*.egg
-info
1571 %files -n python
%{python3_pkgversion}-rbd
1572 %{python3_sitearch}/rbd.cpython
*.so
1573 %{python3_sitearch}/rbd
-*.egg
-info
1575 %files -n libcephfs2
1576 %{_libdir}/libcephfs.so.
*
1578 %post -n libcephfs2
-p
/sbin
/ldconfig
1580 %postun -n libcephfs2
-p
/sbin
/ldconfig
1582 %files -n libcephfs
-devel
1583 %dir %{_includedir}/cephfs
1584 %{_includedir}/cephfs
/libcephfs.h
1585 %{_includedir}/cephfs
/ceph_statx.h
1586 %{_libdir}/libcephfs.so
1588 %files -n python
-cephfs
1589 %{python_sitearch}/cephfs.so
1590 %{python_sitearch}/cephfs
-*.egg
-info
1591 %{python_sitelib}/ceph_volume_client.py
*
1593 %files -n python
%{python3_pkgversion}-cephfs
1594 %{python3_sitearch}/cephfs.cpython
*.so
1595 %{python3_sitearch}/cephfs
-*.egg
-info
1596 %{python3_sitelib}/ceph_volume_client.py
1597 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
1599 %files -n python
%{python3_pkgversion}-ceph
-argparse
1600 %{python3_sitelib}/ceph_argparse.py
1601 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
1602 %{python3_sitelib}/ceph_daemon.py
1603 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
1605 %if 0%{with ceph_test_package}
1607 %{_bindir}/ceph
-client
-debug
1608 %{_bindir}/ceph_bench_log
1609 %{_bindir}/ceph_kvstorebench
1610 %{_bindir}/ceph_multi_stress_watch
1611 %{_bindir}/ceph_erasure_code
1612 %{_bindir}/ceph_erasure_code_benchmark
1613 %{_bindir}/ceph_omapbench
1614 %{_bindir}/ceph_objectstore_bench
1615 %{_bindir}/ceph_perf_objectstore
1616 %{_bindir}/ceph_perf_local
1617 %{_bindir}/ceph_perf_msgr_client
1618 %{_bindir}/ceph_perf_msgr_server
1619 %{_bindir}/ceph_psim
1620 %{_bindir}/ceph_radosacl
1621 %{_bindir}/ceph_rgw_jsonparser
1622 %{_bindir}/ceph_rgw_multiparser
1623 %{_bindir}/ceph_scratchtool
1624 %{_bindir}/ceph_scratchtoolpp
1625 %{_bindir}/ceph_smalliobench
1626 %{_bindir}/ceph_smalliobenchdumb
1627 %{_bindir}/ceph_smalliobenchfs
1628 %{_bindir}/ceph_smalliobenchrbd
1629 %{_bindir}/ceph_test_
*
1630 %{_bindir}/ceph_tpbench
1631 %{_bindir}/ceph_xattr_bench
1632 %{_bindir}/ceph
-coverage
1633 %{_bindir}/ceph
-monstore
-tool
1634 %{_bindir}/ceph
-osdomap
-tool
1635 %{_bindir}/ceph
-kvstore
-tool
1636 %{_bindir}/ceph
-debugpack
1637 %{_mandir}/man8
/ceph
-debugpack
.8*
1638 %dir %{_libdir}/ceph
1639 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
1642 %if 0%{with cephfs_java}
1643 %files -n libcephfs_jni1
1644 %{_libdir}/libcephfs_jni.so.
*
1646 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
1648 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
1650 %files -n libcephfs_jni
-devel
1651 %{_libdir}/libcephfs_jni.so
1653 %files -n cephfs
-java
1654 %{_javadir}/libcephfs.jar
1655 %{_javadir}/libcephfs
-test.jar
1658 %files -n rados
-objclass
-devel
1659 %dir %{_includedir}/rados
1660 %{_includedir}/rados
/objclass.h
1662 %if 0%{with selinux}
1664 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
1665 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
1666 %{_mandir}/man8
/ceph_selinux
.8*
1669 # backup file_contexts before update
1670 .
/etc
/selinux
/config
1671 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1672 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1674 # Install the policy
1675 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
1677 # Load the policy if SELinux is enabled
1678 if ! /usr
/sbin
/selinuxenabled
; then
1679 # Do not relabel if selinux is not enabled
1683 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
1684 # Do not relabel if file contexts did not change
1688 # Check whether the daemons are running
1689 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1692 # Stop the daemons if they were running
1693 if test $STATUS
-eq
0; then
1694 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1698 # Use ceph-disk fix for first package install and fixfiles otherwise
1699 if [ "$
1"
= "
1"
]; then
1700 /usr
/sbin
/ceph
-disk fix
--selinux
1702 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1705 rm -f $
{FILE_CONTEXT
}.pre
1706 # The fixfiles command won't fix label for /var/run/ceph
1707 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1709 # Start the daemons iff they were running before
1710 if test $STATUS
-eq
0; then
1711 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1716 if [ $
1 -eq
0 ]; then
1717 # backup file_contexts before update
1718 .
/etc
/selinux
/config
1719 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1720 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1723 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
1725 # Reload the policy if SELinux is enabled
1726 if ! /usr
/sbin
/selinuxenabled
; then
1727 # Do not relabel if SELinux is not enabled
1731 # Check whether the daemons are running
1732 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1735 # Stop the daemons if they were running
1736 if test $STATUS
-eq
0; then
1737 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1740 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1741 rm -f $
{FILE_CONTEXT
}.pre
1742 # The fixfiles command won't fix label for /var/run/ceph
1743 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1745 # Start the daemons if they were running before
1746 if test $STATUS
-eq
0; then
1747 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1752 %endif # with selinux
1754 %files -n python
-ceph
-compat
1755 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
1756 # actually build this meta package.