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
72 %global _epoch_prefix
%{?epoch:%{epoch}:}
74 Summary: User space components of the Ceph file system
75 License: LGPL
-2.1 and CC
-BY
-SA
-3.0 and GPL
-2.0 and BSL
-1.0 and BSD
-3-Clause and MIT
77 Group: System
/Filesystems
80 Source0: http
://ceph.com
/download
/@TARBALL_BASENAME@.tar.bz2
83 ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
85 ExclusiveArch: x86_64 aarch64 ppc64le s390x
88 #################################################################################
89 # dependencies that apply across all distro families
90 #################################################################################
91 Requires: ceph
-osd
= %{_epoch_prefix}%{version}-%{release}
92 Requires: ceph
-mds
= %{_epoch_prefix}%{version}-%{release}
93 Requires: ceph
-mgr
= %{_epoch_prefix}%{version}-%{release}
94 Requires: ceph
-mon
= %{_epoch_prefix}%{version}-%{release}
95 Requires(post
): binutils
96 %if 0%{with cephfs_java}
97 BuildRequires
: java
-devel
98 BuildRequires
: sharutils
101 BuildRequires
: checkpolicy
102 BuildRequires
: selinux
-policy
-devel
103 BuildRequires
: /usr
/share
/selinux
/devel
/policyhelp
105 %if 0%{with make_check}
106 %if 0%{?fedora} || 0%{?rhel}
107 BuildRequires
: python
-cherrypy
108 BuildRequires
: python
-werkzeug
110 %if 0%{?suse_version}
111 BuildRequires
: python
-CherryPy
112 BuildRequires
: python
-Werkzeug
113 BuildRequires
: python
-numpy
-devel
115 BuildRequires
: python
-coverage
116 BuildRequires
: python
-pecan
122 BuildRequires
: cryptsetup
123 BuildRequires
: fuse
-devel
124 BuildRequires
: gcc
-c
++
126 %if 0%{with tcmalloc}
127 BuildRequires
: gperftools
-devel
>= 2.4
130 BuildRequires
: leveldb
-devel
> 1.2
131 BuildRequires
: libaio
-devel
132 BuildRequires
: libblkid
-devel
>= 2.17
133 BuildRequires
: libcurl
-devel
134 BuildRequires
: libudev
-devel
135 BuildRequires
: libtool
136 BuildRequires
: libxml2
-devel
138 BuildRequires
: parted
140 BuildRequires
: pkgconfig
141 BuildRequires
: python
142 BuildRequires
: python
-devel
143 BuildRequires
: python
-nose
144 BuildRequires
: python
-requests
145 BuildRequires
: python
-six
146 BuildRequires
: python
-virtualenv
147 BuildRequires
: snappy
-devel
149 BuildRequires
: util
-linux
150 BuildRequires
: valgrind
-devel
152 BuildRequires
: xfsprogs
153 BuildRequires
: xfsprogs
-devel
154 BuildRequires
: xmlstarlet
157 #################################################################################
158 # distro-conditional dependencies
159 #################################################################################
160 %if 0%{?suse_version}
161 BuildRequires
: pkgconfig
(systemd
)
162 BuildRequires
: systemd
-rpm
-macros
163 BuildRequires
: systemd
165 PreReq
: %fillup_prereq
166 BuildRequires
: net
-tools
167 BuildRequires
: libbz2
-devel
168 BuildRequires
: btrfsprogs
169 BuildRequires
: mozilla
-nss
-devel
170 BuildRequires
: keyutils
-devel
171 BuildRequires
: libopenssl
-devel
172 BuildRequires
: lsb
-release
173 BuildRequires
: openldap2
-devel
174 BuildRequires
: python
-Cython
175 BuildRequires
: python
-PrettyTable
176 BuildRequires
: python
-Sphinx
177 BuildRequires
: rdma
-core
-devel
179 %if 0%{?fedora} || 0%{?rhel}
181 BuildRequires
: boost
-random
182 BuildRequires
: btrfs
-progs
183 BuildRequires
: nss
-devel
184 BuildRequires
: keyutils
-libs
-devel
185 BuildRequires
: libibverbs
-devel
186 BuildRequires
: openldap
-devel
187 BuildRequires
: openssl
-devel
188 BuildRequires
: redhat
-lsb
-core
189 BuildRequires
: Cython
190 BuildRequires
: python
-prettytable
191 BuildRequires
: python
-sphinx
193 # python34-... for RHEL, python3-... for all other supported distros
195 BuildRequires
: python34
-devel
196 BuildRequires
: python34
-setuptools
197 BuildRequires
: python34
-Cython
199 BuildRequires
: python3
-devel
200 BuildRequires
: python3
-setuptools
201 BuildRequires
: python3
-Cython
203 # lttng and babeltrace for rbd-replay-prep
205 %if 0%{?fedora} || 0%{?rhel}
206 BuildRequires
: lttng
-ust
-devel
207 BuildRequires
: libbabeltrace
-devel
209 %if 0%{?suse_version}
210 BuildRequires
: lttng
-ust
-devel
211 BuildRequires
: babeltrace
-devel
214 %if 0%{?suse_version}
215 BuildRequires
: libexpat
-devel
217 %if 0%{?rhel} || 0%{?fedora}
218 BuildRequires
: expat
-devel
221 %if 0%{?fedora} || 0%{?rhel}
222 BuildRequires
: redhat
-rpm
-config
226 Ceph is a massively scalable
, open
-source, distributed storage system that runs
227 on commodity hardware and delivers object
, block and file system storage.
230 #################################################################################
232 #################################################################################
234 Summary: Ceph Base Package
235 %if 0%{?suse_version}
236 Group: System
/Filesystems
238 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
239 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
240 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
241 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
242 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
244 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
247 Requires: python
-requests
248 Requires: python
-setuptools
257 %if 0%{?suse_version}
258 Recommends
: ntp
-daemon
261 Base is the package that includes all the files shared amongst ceph servers
263 %package -n ceph
-common
265 %if 0%{?suse_version}
266 Group: System
/Filesystems
268 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
269 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
270 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
271 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
272 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
273 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
274 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
275 %if 0%{?fedora} || 0%{?rhel}
276 Requires: python
-prettytable
278 %if 0%{?suse_version}
279 Requires: python
-PrettyTable
281 Requires: python
-requests
283 %if 0%{?suse_version}
284 Requires(pre
): pwdutils
286 %description -n ceph
-common
287 Common utilities to mount and interact with a ceph storage cluster.
288 Comprised of files that are common to Ceph clients and servers.
291 Summary: Ceph Metadata Server Daemon
292 %if 0%{?suse_version}
293 Group: System
/Filesystems
295 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
297 ceph
-mds is the metadata server daemon
for the Ceph distributed file system.
298 One or more instances of ceph
-mds collectively manage the file system
299 namespace
, coordinating access to the shared OSD cluster.
302 Summary: Ceph Monitor Daemon
303 %if 0%{?suse_version}
304 Group: System
/Filesystems
306 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
308 %if 0%{?fedora} || 0%{?rhel}
309 Requires: python
-flask
311 %if 0%{?suse_version}
312 Requires: python
-Flask
315 ceph
-mon is the cluster monitor daemon
for the Ceph distributed file
316 system. One or more instances of ceph
-mon form a Paxos part
-time
317 parliament cluster that provides extremely reliable and durable storage
318 of cluster membership
, configuration
, and state.
321 Summary: Ceph Manager Daemon
322 %if 0%{?suse_version}
323 Group: System
/Filesystems
325 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
327 %if 0%{?fedora} || 0%{?rhel}
328 Requires: python
-cherrypy
329 Requires: python
-jinja2
330 Requires: python
-werkzeug
333 %if 0%{?suse_version}
334 Requires: python
-CherryPy
335 Requires: python
-Jinja2
336 Requires: python
-Werkzeug
337 Requires: python
-pyOpenSSL
339 Requires: python
-pecan
341 ceph
-mgr enables python modules that provide services
(such as the REST
342 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
343 the cluster maps
, the daemon metadata
, and performance counters
, and
344 exposes all these to the python modules.
347 Summary: Ceph fuse
-based client
348 %if 0%{?suse_version}
349 Group: System
/Filesystems
353 FUSE based client
for Ceph distributed network file system
356 Summary: Ceph fuse
-based client
357 %if 0%{?suse_version}
358 Group: System
/Filesystems
360 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
361 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
362 %description -n rbd
-fuse
363 FUSE based client to map Ceph rbd images to files
365 %package -n rbd
-mirror
366 Summary: Ceph daemon
for mirroring RBD images
367 %if 0%{?suse_version}
368 Group: System
/Filesystems
370 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
371 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
372 %description -n rbd
-mirror
373 Daemon
for mirroring RBD images between Ceph clusters
, streaming
374 changes asynchronously.
377 Summary: Ceph RBD client base on NBD
378 %if 0%{?suse_version}
379 Group: System
/Filesystems
381 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
382 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
383 %description -n rbd
-nbd
384 NBD based client to map Ceph rbd images to
local device
387 Summary: Rados REST gateway
388 %if 0%{?suse_version}
389 Group: System
/Filesystems
391 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
393 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
395 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
396 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
397 %if 0%{?rhel} || 0%{?fedora}
401 RADOS is a distributed object store used by the Ceph distributed
402 storage system. This package provides a REST gateway to the
403 object store that aims to implement a superset of Amazon's S3
404 service as well as the OpenStack Object Storage
("Swift"
) API.
407 %package resource
-agents
408 Summary: OCF
-compliant resource agents
for Ceph daemons
409 %if 0%{?suse_version}
410 Group: System
/Filesystems
412 Requires: ceph
-base
= %{_epoch_prefix}%{version}
413 Requires: resource
-agents
414 %description resource
-agents
415 Resource agents
for monitoring and managing Ceph daemons
416 under Open Cluster Framework
(OCF
) compliant resource
417 managers such as Pacemaker.
421 Summary: Ceph Object Storage Daemon
422 %if 0%{?suse_version}
423 Group: System
/Filesystems
425 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
426 # for sgdisk, used by ceph-disk
427 %if 0%{?fedora} || 0%{?rhel}
430 %if 0%{?suse_version}
436 ceph
-osd is the object storage daemon
for the Ceph distributed file
437 system. It is responsible
for storing objects on a
local file system
438 and providing access to them over the network.
440 %package -n librados2
441 Summary: RADOS distributed object store client library
442 %if 0%{?suse_version}
443 Group: System
/Libraries
445 %if 0%{?rhel} || 0%{?fedora}
446 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
448 %description -n librados2
449 RADOS is a reliable
, autonomic distributed object storage cluster
450 developed as part of the Ceph distributed storage system. This is a
451 shared library allowing applications to access the distributed object
452 store using a simple file
-like interface.
454 %package -n librados
-devel
455 Summary: RADOS headers
456 %if 0%{?suse_version}
457 Group: Development
/Libraries
/C and C
++
459 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
460 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
461 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
462 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
463 %description -n librados
-devel
464 This package contains libraries and headers needed to develop programs
465 that use RADOS object store.
468 Summary: RADOS gateway client library
469 %if 0%{?suse_version}
470 Group: System
/Libraries
472 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
473 %description -n librgw2
474 This package provides a library implementation of the RADOS gateway
475 (distributed object store with S3 and Swift personalities
).
477 %package -n librgw
-devel
478 Summary: RADOS gateway client library
479 %if 0%{?suse_version}
480 Group: Development
/Libraries
/C and C
++
482 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
483 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
484 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
485 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
486 %description -n librgw
-devel
487 This package contains libraries and headers needed to develop programs
488 that use RADOS gateway client library.
490 %package -n python
-rgw
491 Summary: Python
2 libraries
for the RADOS gateway
492 %if 0%{?suse_version}
493 Group: Development
/Languages
/Python
495 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
496 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
497 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
498 %description -n python
-rgw
499 This package contains Python
2 libraries
for interacting with Cephs RADOS
502 %package -n python
%{python3_pkgversion}-rgw
503 Summary: Python
3 libraries
for the RADOS gateway
504 %if 0%{?suse_version}
505 Group: Development
/Languages
/Python
507 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
508 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
509 %description -n python
%{python3_pkgversion}-rgw
510 This package contains Python
3 libraries
for interacting with Cephs RADOS
513 %package -n python
-rados
514 Summary: Python
2 libraries
for the RADOS object store
515 %if 0%{?suse_version}
516 Group: Development
/Languages
/Python
518 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
519 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
520 %description -n python
-rados
521 This package contains Python
2 libraries
for interacting with Cephs RADOS
524 %package -n python
%{python3_pkgversion}-rados
525 Summary: Python
3 libraries
for the RADOS object store
526 %if 0%{?suse_version}
527 Group: Development
/Languages
/Python
529 Requires: python
%{python3_pkgversion}
530 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
531 %description -n python
%{python3_pkgversion}-rados
532 This package contains Python
3 libraries
for interacting with Cephs RADOS
535 %package -n libradosstriper1
536 Summary: RADOS striping interface
537 %if 0%{?suse_version}
538 Group: System
/Libraries
540 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
541 %description -n libradosstriper1
542 Striping interface built on top of the rados library
, allowing
543 to stripe bigger objects onto several standard rados objects using
544 an interface very similar to the rados one.
546 %package -n libradosstriper
-devel
547 Summary: RADOS striping interface headers
548 %if 0%{?suse_version}
549 Group: Development
/Libraries
/C and C
++
551 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
552 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
553 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
554 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
555 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
556 %description -n libradosstriper
-devel
557 This package contains libraries and headers needed to develop programs
558 that use RADOS striping interface.
561 Summary: RADOS block device client library
562 %if 0%{?suse_version}
563 Group: System
/Libraries
565 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
566 %if 0%{?suse_version}
567 Requires(post
): coreutils
569 %if 0%{?rhel} || 0%{?fedora}
570 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
572 %description -n librbd1
573 RBD is a block device striped across multiple distributed objects
in
574 RADOS
, a reliable
, autonomic distributed object storage cluster
575 developed as part of the Ceph distributed storage system. This is a
576 shared library allowing applications to manage these block devices.
578 %package -n librbd
-devel
579 Summary: RADOS block device headers
580 %if 0%{?suse_version}
581 Group: Development
/Libraries
/C and C
++
583 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
584 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
585 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
586 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
587 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
588 %description -n librbd
-devel
589 This package contains libraries and headers needed to develop programs
590 that use RADOS block device.
592 %package -n python
-rbd
593 Summary: Python
2 libraries
for the RADOS block device
594 %if 0%{?suse_version}
595 Group: Development
/Languages
/Python
597 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
598 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
599 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
600 %description -n python
-rbd
601 This package contains Python
2 libraries
for interacting with Cephs RADOS
604 %package -n python
%{python3_pkgversion}-rbd
605 Summary: Python
3 libraries
for the RADOS block device
606 %if 0%{?suse_version}
607 Group: Development
/Languages
/Python
609 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
610 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
611 %description -n python
%{python3_pkgversion}-rbd
612 This package contains Python
3 libraries
for interacting with Cephs RADOS
615 %package -n libcephfs2
616 Summary: Ceph distributed file system client library
617 %if 0%{?suse_version}
618 Group: System
/Libraries
620 Obsoletes
: libcephfs1
621 %if 0%{?rhel} || 0%{?fedora}
622 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
623 Obsoletes
: ceph
-libcephfs
625 %description -n libcephfs2
626 Ceph is a distributed network file system designed to provide excellent
627 performance
, reliability
, and scalability. This is a shared library
628 allowing applications to access a Ceph distributed file system via a
629 POSIX
-like interface.
631 %package -n libcephfs
-devel
632 Summary: Ceph distributed file system headers
633 %if 0%{?suse_version}
634 Group: Development
/Libraries
/C and C
++
636 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
637 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
638 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
639 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
640 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
641 %description -n libcephfs
-devel
642 This package contains libraries and headers needed to develop programs
643 that use Cephs distributed file system.
645 %package -n python
-cephfs
646 Summary: Python
2 libraries
for Ceph distributed file system
647 %if 0%{?suse_version}
648 Group: Development
/Languages
/Python
650 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
651 %if 0%{?suse_version}
652 Recommends
: python
-rados
= %{_epoch_prefix}%{version}-%{release}
654 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
655 %description -n python
-cephfs
656 This package contains Python
2 libraries
for interacting with Cephs distributed
659 %package -n python
%{python3_pkgversion}-cephfs
660 Summary: Python
3 libraries
for Ceph distributed file system
661 %if 0%{?suse_version}
662 Group: Development
/Languages
/Python
664 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
665 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
666 %description -n python
%{python3_pkgversion}-cephfs
667 This package contains Python
3 libraries
for interacting with Cephs distributed
670 %package -n python
%{python3_pkgversion}-ceph
-argparse
671 Summary: Python
3 utility libraries
for Ceph CLI
672 %if 0%{?suse_version}
673 Group: Development
/Languages
/Python
675 %description -n python
%{python3_pkgversion}-ceph
-argparse
676 This package contains types and routines
for Python
3 used by the Ceph CLI as
677 well as the RESTful interface. These have to
do with querying the daemons
for
678 command-description information
, validating user
command input against those
679 descriptions
, and submitting the
command to the appropriate daemon.
681 %if 0%{with ceph_test_package}
682 %package -n ceph
-test
683 Summary: Ceph benchmarks and
test tools
684 %if 0%{?suse_version}
685 Group: System
/Benchmark
687 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
691 %description -n ceph
-test
692 This package contains Ceph benchmarks and
test tools.
695 %if 0%{with cephfs_java}
697 %package -n libcephfs_jni1
698 Summary: Java Native Interface library
for CephFS Java bindings
699 %if 0%{?suse_version}
700 Group: System
/Libraries
703 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
704 %description -n libcephfs_jni1
705 This package contains the Java Native Interface library
for CephFS Java
708 %package -n libcephfs_jni
-devel
709 Summary: Development files
for CephFS Java Native Interface library
710 %if 0%{?suse_version}
711 Group: Development
/Libraries
/Java
714 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
715 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
716 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
717 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
718 %description -n libcephfs_jni
-devel
719 This package contains the development files
for CephFS Java Native Interface
722 %package -n cephfs
-java
723 Summary: Java libraries
for the Ceph File System
724 %if 0%{?suse_version}
725 Group: System
/Libraries
728 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
731 %description -n cephfs
-java
732 This package contains the Java libraries
for the Ceph File System.
736 %package -n rados
-objclass
-devel
737 Summary: RADOS object class development kit
738 Group: Development
/Libraries
739 Requires: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
740 %description -n rados
-objclass
-devel
741 This package contains libraries and headers needed to develop RADOS object
747 Summary: SELinux support
for Ceph MON
, OSD and MDS
748 %if 0%{?suse_version}
749 Group: System
/Filesystems
751 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
752 Requires: policycoreutils
, libselinux
-utils
753 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
754 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
755 Requires(postun
): policycoreutils
757 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
758 also performs file
-system relabelling which can take a long
time on heavily
759 populated file
-systems.
763 %package -n python
-ceph
-compat
764 Summary: Compatibility package
for Cephs python libraries
765 %if 0%{?suse_version}
766 Group: Development
/Languages
/Python
768 Obsoletes
: python
-ceph
769 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
770 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
771 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
772 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
773 Provides: python
-ceph
774 %description -n python
-ceph
-compat
775 This is a compatibility package to accommodate python
-ceph split into
776 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
777 depending on python
-ceph should be fixed to depend on python
-rados
,
778 python
-rbd
, python
-rgw or python
-cephfs instead.
780 #################################################################################
782 #################################################################################
784 %autosetup -p1
-n @TARBALL_BASENAME@
787 %if 0%{with cephfs_java}
789 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
790 [ -d $i
] && java_inc
="$java_inc
-I$i"
794 %if %{with lowmem_builder}
795 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
797 export RPM_OPT_FLAGS
=`
echo $RPM_OPT_FLAGS | sed
-e 's
/i386
/i486
/'`
799 export CPPFLAGS
="$java_inc"
800 export CFLAGS
="$RPM_OPT_FLAGS"
801 export CXXFLAGS
="$RPM_OPT_FLAGS"
805 %if %{with lowmem_builder}
807 %define _smp_mflags
-j8
811 # unlimit _smp_mflags in system macro if not set above
812 %define _smp_ncpus_max
0
813 # extract the number of processors for use with cmake
814 %define _smp_ncpus %
(echo %{_smp_mflags} | sed 's
/-j
//'
)
819 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
820 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
821 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
822 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
823 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
824 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
825 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
826 -DCMAKE_INSTALL_INCLUDEDIR
=%{_includedir} \
830 %if 0%{?rhel} && ! 0%{?centos}
833 %if 0%{without ceph_test_package}
836 %if 0%{with cephfs_java}
837 -DWITH_CEPHFS_JAVA
=ON \
844 -DWITH_BABELTRACE
=ON \
847 -DWITH_BABELTRACE
=OFF \
849 $CEPH_EXTRA_CMAKE_ARGS \
853 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
854 -DWITH_BOOST_CONTEXT
=ON \
856 -DWITH_BOOST_CONTEXT
=OFF \
858 -DBOOST_J
=%{_smp_ncpus}
863 %if 0%{with make_check}
865 # run in-tree unittests
867 ctest
%{?_smp_mflags}
875 make DESTDIR
=%{buildroot} install
876 # we have dropped sysvinit bits
877 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
879 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
880 %if 0%{?fedora} || 0%{?rhel}
881 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
883 %if 0%{?suse_version}
884 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
886 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
887 install -m
0755 -D systemd
/ceph
%{buildroot}%{_sbindir}/rcceph
888 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
889 mkdir -p
%{buildroot}%{_sbindir}
890 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
891 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
892 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
893 install -m
0644 -D etc
/sysctl
/90-ceph
-osd.conf
%{buildroot}%{_sysctldir}/90-ceph
-osd.conf
895 # firewall templates and /sbin/mount.ceph symlink
896 %if 0%{?suse_version}
897 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
898 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
899 mkdir -p
%{buildroot}/sbin
900 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
904 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
905 install -m
0644 -D udev
/60-ceph
-by
-parttypeuuid.rules
%{buildroot}%{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
906 install -m
0644 -D udev
/95-ceph
-osd.rules
%{buildroot}%{_udevrulesdir}/95-ceph
-osd.rules
908 #set up placeholder directories
909 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
910 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
911 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
912 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
913 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
914 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
915 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
916 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
917 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
918 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
919 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
920 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
921 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
922 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rbd
924 %if 0%{?suse_version}
925 # create __pycache__ directories and their contents
926 %py3_compile %{buildroot}%{python3_sitelib}
932 #################################################################################
933 # files and systemd scriptlets
934 #################################################################################
939 %{_bindir}/monmaptool
940 %{_bindir}/osdmaptool
941 %{_bindir}/ceph
-kvstore
-tool
943 %{_bindir}/ceph
-detect
-init
944 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
945 %{_sbindir}/ceph
-create
-keys
946 %{_sbindir}/ceph
-disk
948 %dir %{_libexecdir}/ceph
949 %{_libexecdir}/ceph
/ceph_common.sh
950 %dir %{_libdir}/rados
-classes
951 %{_libdir}/rados
-classes
/*
953 %dir %{_libdir}/ceph
/erasure
-code
954 %{_libdir}/ceph
/erasure
-code
/libec_
*.so
*
955 %dir %{_libdir}/ceph
/compressor
956 %{_libdir}/ceph
/compressor
/libceph_
*.so
*
958 %dir %{_libdir}/ceph
/crypto
959 %{_libdir}/ceph
/crypto
/libceph_
*.so
*
962 %{_libdir}/libos_tp.so
*
963 %{_libdir}/libosd_tp.so
*
965 %config(noreplace
) %{_sysconfdir}/logrotate.d
/ceph
966 %if 0%{?fedora} || 0%{?rhel}
967 %config(noreplace
) %{_sysconfdir}/sysconfig
/ceph
969 %if 0%{?suse_version}
970 %{_localstatedir}/adm
/fillup
-templates
/sysconfig.
*
971 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
972 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
974 %{_unitdir}/ceph
-disk@.service
975 %{_unitdir}/ceph.target
976 %{python_sitelib}/ceph_detect_init
*
977 %{python_sitelib}/ceph_disk
*
978 %dir %{python_sitelib}/ceph_volume
979 %{python_sitelib}/ceph_volume
/*
980 %{python_sitelib}/ceph_volume
-*
981 %{_mandir}/man8
/ceph
-deploy
.8*
982 %{_mandir}/man8
/ceph
-detect
-init
.8*
983 %{_mandir}/man8
/ceph
-create
-keys
.8*
984 %{_mandir}/man8
/ceph
-disk
.8*
985 %{_mandir}/man8
/ceph
-run
.8*
986 %{_mandir}/man8
/crushtool
.8*
987 %{_mandir}/man8
/osdmaptool
.8*
988 %{_mandir}/man8
/monmaptool
.8*
989 %{_mandir}/man8
/ceph
-kvstore
-tool
.8*
990 #set up placeholder directories
991 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
992 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
993 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
994 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
995 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
996 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rbd
1000 %if 0%{?suse_version}
1002 if [ $
1 -eq
1 ] ; then
1003 /usr
/bin
/systemctl preset ceph
-disk@\
*.service ceph.target
>/dev
/null
2>&1 ||
:
1006 %if 0%{?fedora} || 0%{?rhel}
1007 %systemd_post ceph
-disk@\
*.service ceph.target
1009 if [ $
1 -eq
1 ] ; then
1010 /usr
/bin
/systemctl start ceph.target
>/dev
/null
2>&1 ||
:
1014 %if 0%{?suse_version}
1015 %service_del_preun ceph
-disk@\
*.service ceph.target
1017 %if 0%{?fedora} || 0%{?rhel}
1018 %systemd_preun ceph
-disk@\
*.service ceph.target
1023 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1024 %if 0%{?suse_version}
1025 DISABLE_RESTART_ON_UPDATE
="yes"
1026 %service_del_postun ceph
-disk@\
*.service ceph.target
1028 %if 0%{?fedora} || 0%{?rhel}
1029 %systemd_postun ceph
-disk@\
*.service ceph.target
1031 if [ $FIRST_ARG
-ge
1 ] ; then
1032 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1033 # "yes". In any case: if units are not running, do not touch them.
1034 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1035 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1036 source $SYSCONF_CEPH
1038 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1039 /usr
/bin
/systemctl try
-restart ceph
-disk@\
*.service
> /dev
/null
2>&1 ||
:
1044 %dir %{_docdir}/ceph
1045 %doc %{_docdir}/ceph
/sample.ceph.conf
1046 %doc %{_docdir}/ceph
/COPYING
1048 %{_bindir}/ceph
-authtool
1049 %{_bindir}/ceph
-conf
1050 %{_bindir}/ceph
-dencoder
1051 %{_bindir}/ceph
-rbdnamer
1053 %{_bindir}/ceph
-crush
-location
1054 %{_bindir}/cephfs
-data
-scan
1055 %{_bindir}/cephfs
-journal
-tool
1056 %{_bindir}/cephfs
-table
-tool
1058 %{_bindir}/radosgw
-admin
1060 %{_bindir}/rbd
-replay
1061 %{_bindir}/rbd
-replay
-many
1063 %{_sbindir}/mount.ceph
1064 %if 0%{?suse_version}
1068 %{_bindir}/rbd
-replay
-prep
1070 %{_bindir}/ceph
-post
-file
1071 %{_bindir}/ceph
-brag
1072 %{_tmpfilesdir}/ceph
-common.conf
1073 %{_mandir}/man8
/ceph
-authtool
.8*
1074 %{_mandir}/man8
/ceph
-conf
.8*
1075 %{_mandir}/man8
/ceph
-dencoder
.8*
1076 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1077 %{_mandir}/man8
/ceph
-syn
.8*
1078 %{_mandir}/man8
/ceph
-post
-file
.8*
1079 %{_mandir}/man8
/ceph
.8*
1080 %{_mandir}/man8
/mount.ceph
.8*
1081 %{_mandir}/man8
/rados
.8*
1082 %{_mandir}/man8
/radosgw
-admin
.8*
1083 %{_mandir}/man8
/rbd
.8*
1084 %{_mandir}/man8
/rbdmap
.8*
1085 %{_mandir}/man8
/rbd
-replay
.8*
1086 %{_mandir}/man8
/rbd
-replay
-many
.8*
1087 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1088 %dir %{_datadir}/ceph
/
1089 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1090 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1091 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1092 %dir %{_sysconfdir}/ceph
/
1093 %config %{_sysconfdir}/bash_completion.d
/ceph
1094 %config %{_sysconfdir}/bash_completion.d
/rados
1095 %config %{_sysconfdir}/bash_completion.d
/rbd
1096 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1097 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1098 %{_unitdir}/rbdmap.service
1099 %{python_sitelib}/ceph_argparse.py
*
1100 %{python_sitelib}/ceph_daemon.py
*
1101 %dir %{_udevrulesdir}
1102 %{_udevrulesdir}/50-rbd.rules
1103 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1104 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1109 %if 0%{?rhel} || 0%{?fedora}
1110 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1111 /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 ||
:
1113 %if 0%{?suse_version}
1114 if ! getent group ceph
>/dev
/null
; then
1115 CEPH_GROUP_ID_OPTION
=""
1116 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1117 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1119 if ! getent passwd ceph
>/dev
/null
; then
1120 CEPH_USER_ID_OPTION
=""
1121 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1122 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1124 usermod
-c "Ceph storage service" \
1125 -d
%{_localstatedir}/lib
/ceph \
1133 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1136 # Package removal cleanup
1137 if [ "$
1"
-eq "
0"
] ; then
1138 rm -rf
%{_localstatedir}/log
/ceph
1139 rm -rf
%{_sysconfdir}/ceph
1144 %{_mandir}/man8
/ceph
-mds
.8*
1145 %{_unitdir}/ceph
-mds@.service
1146 %{_unitdir}/ceph
-mds.target
1147 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1150 %if 0%{?suse_version}
1151 if [ $
1 -eq
1 ] ; then
1152 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1155 %if 0%{?fedora} || 0%{?rhel}
1156 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1158 if [ $
1 -eq
1 ] ; then
1159 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1163 %if 0%{?suse_version}
1164 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1166 %if 0%{?fedora} || 0%{?rhel}
1167 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1171 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1172 %if 0%{?suse_version}
1173 DISABLE_RESTART_ON_UPDATE
="yes"
1174 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1176 %if 0%{?fedora} || 0%{?rhel}
1177 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1179 if [ $FIRST_ARG
-ge
1 ] ; then
1180 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1181 # "yes". In any case: if units are not running, do not touch them.
1182 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1183 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1184 source $SYSCONF_CEPH
1186 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1187 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1194 %{_unitdir}/ceph
-mgr@.service
1195 %{_unitdir}/ceph
-mgr.target
1196 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1199 %if 0%{?suse_version}
1200 if [ $
1 -eq
1 ] ; then
1201 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1204 %if 0%{?fedora} || 0%{?rhel}
1205 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1207 if [ $
1 -eq
1 ] ; then
1208 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1212 %if 0%{?suse_version}
1213 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1215 %if 0%{?fedora} || 0%{?rhel}
1216 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1220 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1221 %if 0%{?suse_version}
1222 DISABLE_RESTART_ON_UPDATE
="yes"
1223 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1225 %if 0%{?fedora} || 0%{?rhel}
1226 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1228 if [ $FIRST_ARG
-ge
1 ] ; then
1229 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1230 # "yes". In any case: if units are not running, do not touch them.
1231 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1232 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1233 source $SYSCONF_CEPH
1235 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1236 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1242 %{_bindir}/ceph
-rest
-api
1243 %{_bindir}/ceph
-monstore
-tool
1244 %{_mandir}/man8
/ceph
-mon
.8*
1245 %{_mandir}/man8
/ceph
-rest
-api
.8*
1246 %{python_sitelib}/ceph_rest_api.py
*
1247 %{_unitdir}/ceph
-mon@.service
1248 %{_unitdir}/ceph
-mon.target
1249 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1252 %if 0%{?suse_version}
1253 if [ $
1 -eq
1 ] ; then
1254 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1257 %if 0%{?fedora} || 0%{?rhel}
1258 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1260 if [ $
1 -eq
1 ] ; then
1261 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1265 %if 0%{?suse_version}
1266 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1268 %if 0%{?fedora} || 0%{?rhel}
1269 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1273 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1274 %if 0%{?suse_version}
1275 DISABLE_RESTART_ON_UPDATE
="yes"
1276 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1278 %if 0%{?fedora} || 0%{?rhel}
1279 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1281 if [ $FIRST_ARG
-ge
1 ] ; then
1282 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1283 # "yes". In any case: if units are not running, do not touch them.
1284 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1285 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1286 source $SYSCONF_CEPH
1288 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1289 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1294 %{_bindir}/ceph
-fuse
1295 %{_mandir}/man8
/ceph
-fuse
.8*
1296 %{_sbindir}/mount.fuse.ceph
1297 %{_unitdir}/ceph
-fuse@.service
1298 %{_unitdir}/ceph
-fuse.target
1302 %{_mandir}/man8
/rbd
-fuse
.8*
1304 %files -n rbd
-mirror
1305 %{_bindir}/rbd
-mirror
1306 %{_mandir}/man8
/rbd
-mirror
.8*
1307 %{_unitdir}/ceph
-rbd
-mirror@.service
1308 %{_unitdir}/ceph
-rbd
-mirror.target
1311 %if 0%{?suse_version}
1312 if [ $
1 -eq
1 ] ; then
1313 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1316 %if 0%{?fedora} || 0%{?rhel}
1317 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1319 if [ $
1 -eq
1 ] ; then
1320 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1323 %preun -n rbd
-mirror
1324 %if 0%{?suse_version}
1325 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1327 %if 0%{?fedora} || 0%{?rhel}
1328 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1331 %postun -n rbd
-mirror
1332 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1333 %if 0%{?suse_version}
1334 DISABLE_RESTART_ON_UPDATE
="yes"
1335 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1337 %if 0%{?fedora} || 0%{?rhel}
1338 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1340 if [ $FIRST_ARG
-ge
1 ] ; then
1341 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1342 # "yes". In any case: if units are not running, do not touch them.
1343 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1344 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1345 source $SYSCONF_CEPH
1347 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1348 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1354 %{_mandir}/man8
/rbd
-nbd
.8*
1358 %{_bindir}/radosgw
-token
1359 %{_bindir}/radosgw
-es
1360 %{_bindir}/radosgw
-object
-expirer
1361 %{_mandir}/man8
/radosgw
.8*
1362 %dir %{_localstatedir}/lib
/ceph
/radosgw
1363 %{_unitdir}/ceph
-radosgw@.service
1364 %{_unitdir}/ceph
-radosgw.target
1367 %if 0%{?suse_version}
1368 if [ $
1 -eq
1 ] ; then
1369 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1372 %if 0%{?fedora} || 0%{?rhel}
1373 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1375 if [ $
1 -eq
1 ] ; then
1376 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1380 %if 0%{?suse_version}
1381 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1383 %if 0%{?fedora} || 0%{?rhel}
1384 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1388 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1389 %if 0%{?suse_version}
1390 DISABLE_RESTART_ON_UPDATE
="yes"
1391 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1393 %if 0%{?fedora} || 0%{?rhel}
1394 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1396 if [ $FIRST_ARG
-ge
1 ] ; then
1397 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1398 # "yes". In any case: if units are not running, do not touch them.
1399 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1400 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1401 source $SYSCONF_CEPH
1403 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1404 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1409 %{_bindir}/ceph
-clsinfo
1410 %{_bindir}/ceph
-bluestore
-tool
1411 %{_bindir}/ceph
-objectstore
-tool
1412 %{_bindir}/ceph
-osdomap
-tool
1414 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1415 %{_sbindir}/ceph
-volume
1416 %{_sbindir}/ceph
-volume
-systemd
1417 %dir %{_udevrulesdir}
1418 %{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
1419 %{_udevrulesdir}/95-ceph
-osd.rules
1420 %{_mandir}/man8
/ceph
-clsinfo
.8*
1421 %{_mandir}/man8
/ceph
-osd
.8*
1422 %{_mandir}/man8
/ceph
-bluestore
-tool
.8*
1423 %{_mandir}/man8
/ceph
-volume
.8*
1424 %{_mandir}/man8
/ceph
-volume
-systemd
.8*
1425 %if 0%{?rhel} && ! 0%{?centos}
1426 %attr(0755,-,-) %{_sysconfdir}/cron.hourly
/subman
1428 %{_unitdir}/ceph
-osd@.service
1429 %{_unitdir}/ceph
-osd.target
1430 %{_unitdir}/ceph
-volume@.service
1431 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1432 %config(noreplace
) %{_sysctldir}/90-ceph
-osd.conf
1435 %if 0%{?suse_version}
1436 if [ $
1 -eq
1 ] ; then
1437 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1440 %if 0%{?fedora} || 0%{?rhel}
1441 %systemd_post ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1443 if [ $
1 -eq
1 ] ; then
1444 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1446 %if 0%{?sysctl_apply}
1447 %sysctl_apply 90-ceph
-osd.conf
1449 /usr
/lib
/systemd
/systemd
-sysctl
%{_sysctldir}/90-ceph
-osd.conf
> /dev
/null
2>&1 ||
:
1451 # work around https://tracker.ceph.com/issues/24903
1452 chown
-f
-h ceph
:ceph
/var
/lib
/ceph
/osd
/*/block
* 2>&1 > /dev
/null ||
:
1455 %if 0%{?suse_version}
1456 %service_del_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1458 %if 0%{?fedora} || 0%{?rhel}
1459 %systemd_preun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1463 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1464 %if 0%{?suse_version}
1465 DISABLE_RESTART_ON_UPDATE
="yes"
1466 %service_del_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1468 %if 0%{?fedora} || 0%{?rhel}
1469 %systemd_postun ceph
-osd@\
*.service ceph
-volume@\
*.service ceph
-osd.target
1471 if [ $FIRST_ARG
-ge
1 ] ; then
1472 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1473 # "yes". In any case: if units are not running, do not touch them.
1474 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1475 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1476 source $SYSCONF_CEPH
1478 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1479 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service ceph
-volume@\
*.service
> /dev
/null
2>&1 ||
:
1485 %files resource
-agents
1486 %dir %{_prefix}/lib
/ocf
1487 %dir %{_prefix}/lib
/ocf
/resource.d
1488 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1489 %attr(0755,-,-) %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1494 %{_libdir}/librados.so.
*
1495 %dir %{_libdir}/ceph
1496 %{_libdir}/ceph
/libceph
-common.so
*
1498 %{_libdir}/librados_tp.so.
*
1501 %post -n librados2
-p
/sbin
/ldconfig
1503 %postun -n librados2
-p
/sbin
/ldconfig
1505 %files -n librados
-devel
1506 %dir %{_includedir}/rados
1507 %{_includedir}/rados
/librados.h
1508 %{_includedir}/rados
/librados.hpp
1509 %{_includedir}/rados
/buffer.h
1510 %{_includedir}/rados
/buffer_fwd.h
1511 %{_includedir}/rados
/inline_memory.h
1512 %{_includedir}/rados
/page.h
1513 %{_includedir}/rados
/crc32c.h
1514 %{_includedir}/rados
/rados_types.h
1515 %{_includedir}/rados
/rados_types.hpp
1516 %{_includedir}/rados
/memory.h
1517 %{_libdir}/librados.so
1519 %{_libdir}/librados_tp.so
1521 %{_bindir}/librados
-config
1522 %{_mandir}/man8
/librados
-config
.8*
1524 %files -n python
-rados
1525 %{python_sitearch}/rados.so
1526 %{python_sitearch}/rados
-*.egg
-info
1528 %files -n python
%{python3_pkgversion}-rados
1529 %{python3_sitearch}/rados.cpython
*.so
1530 %{python3_sitearch}/rados
-*.egg
-info
1532 %files -n libradosstriper1
1533 %{_libdir}/libradosstriper.so.
*
1535 %post -n libradosstriper1
-p
/sbin
/ldconfig
1537 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1539 %files -n libradosstriper
-devel
1540 %dir %{_includedir}/radosstriper
1541 %{_includedir}/radosstriper
/libradosstriper.h
1542 %{_includedir}/radosstriper
/libradosstriper.hpp
1543 %{_libdir}/libradosstriper.so
1546 %{_libdir}/librbd.so.
*
1548 %{_libdir}/librbd_tp.so.
*
1551 %post -n librbd1
-p
/sbin
/ldconfig
1553 %postun -n librbd1
-p
/sbin
/ldconfig
1555 %files -n librbd
-devel
1556 %dir %{_includedir}/rbd
1557 %{_includedir}/rbd
/librbd.h
1558 %{_includedir}/rbd
/librbd.hpp
1559 %{_includedir}/rbd
/features.h
1560 %{_libdir}/librbd.so
1562 %{_libdir}/librbd_tp.so
1566 %{_libdir}/librgw.so.
*
1568 %post -n librgw2
-p
/sbin
/ldconfig
1570 %postun -n librgw2
-p
/sbin
/ldconfig
1572 %files -n librgw
-devel
1573 %dir %{_includedir}/rados
1574 %{_includedir}/rados
/librgw.h
1575 %{_includedir}/rados
/rgw_file.h
1576 %{_libdir}/librgw.so
1578 %files -n python
-rgw
1579 %{python_sitearch}/rgw.so
1580 %{python_sitearch}/rgw
-*.egg
-info
1582 %files -n python
%{python3_pkgversion}-rgw
1583 %{python3_sitearch}/rgw.cpython
*.so
1584 %{python3_sitearch}/rgw
-*.egg
-info
1586 %files -n python
-rbd
1587 %{python_sitearch}/rbd.so
1588 %{python_sitearch}/rbd
-*.egg
-info
1590 %files -n python
%{python3_pkgversion}-rbd
1591 %{python3_sitearch}/rbd.cpython
*.so
1592 %{python3_sitearch}/rbd
-*.egg
-info
1594 %files -n libcephfs2
1595 %{_libdir}/libcephfs.so.
*
1597 %post -n libcephfs2
-p
/sbin
/ldconfig
1599 %postun -n libcephfs2
-p
/sbin
/ldconfig
1601 %files -n libcephfs
-devel
1602 %dir %{_includedir}/cephfs
1603 %{_includedir}/cephfs
/libcephfs.h
1604 %{_includedir}/cephfs
/ceph_statx.h
1605 %{_libdir}/libcephfs.so
1607 %files -n python
-cephfs
1608 %{python_sitearch}/cephfs.so
1609 %{python_sitearch}/cephfs
-*.egg
-info
1610 %{python_sitelib}/ceph_volume_client.py
*
1612 %files -n python
%{python3_pkgversion}-cephfs
1613 %{python3_sitearch}/cephfs.cpython
*.so
1614 %{python3_sitearch}/cephfs
-*.egg
-info
1615 %{python3_sitelib}/ceph_volume_client.py
1616 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
1618 %files -n python
%{python3_pkgversion}-ceph
-argparse
1619 %{python3_sitelib}/ceph_argparse.py
1620 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
1621 %{python3_sitelib}/ceph_daemon.py
1622 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
1624 %if 0%{with ceph_test_package}
1626 %{_bindir}/ceph
-client
-debug
1627 %{_bindir}/ceph_bench_log
1628 %{_bindir}/ceph_kvstorebench
1629 %{_bindir}/ceph_multi_stress_watch
1630 %{_bindir}/ceph_erasure_code
1631 %{_bindir}/ceph_erasure_code_benchmark
1632 %{_bindir}/ceph_omapbench
1633 %{_bindir}/ceph_objectstore_bench
1634 %{_bindir}/ceph_perf_objectstore
1635 %{_bindir}/ceph_perf_local
1636 %{_bindir}/ceph_perf_msgr_client
1637 %{_bindir}/ceph_perf_msgr_server
1638 %{_bindir}/ceph_psim
1639 %{_bindir}/ceph_radosacl
1640 %{_bindir}/ceph_rgw_jsonparser
1641 %{_bindir}/ceph_rgw_multiparser
1642 %{_bindir}/ceph_scratchtool
1643 %{_bindir}/ceph_scratchtoolpp
1644 %{_bindir}/ceph_smalliobench
1645 %{_bindir}/ceph_smalliobenchdumb
1646 %{_bindir}/ceph_smalliobenchfs
1647 %{_bindir}/ceph_smalliobenchrbd
1648 %{_bindir}/ceph_test_
*
1649 %{_bindir}/ceph_tpbench
1650 %{_bindir}/ceph_xattr_bench
1651 %{_bindir}/ceph
-coverage
1652 %{_bindir}/ceph
-debugpack
1653 %{_mandir}/man8
/ceph
-debugpack
.8*
1654 %dir %{_libdir}/ceph
1655 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
1658 %if 0%{with cephfs_java}
1659 %files -n libcephfs_jni1
1660 %{_libdir}/libcephfs_jni.so.
*
1662 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
1664 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
1666 %files -n libcephfs_jni
-devel
1667 %{_libdir}/libcephfs_jni.so
1669 %files -n cephfs
-java
1670 %{_javadir}/libcephfs.jar
1671 %{_javadir}/libcephfs
-test.jar
1674 %files -n rados
-objclass
-devel
1675 %dir %{_includedir}/rados
1676 %{_includedir}/rados
/objclass.h
1678 %if 0%{with selinux}
1680 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
1681 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
1682 %{_mandir}/man8
/ceph_selinux
.8*
1685 # backup file_contexts before update
1686 .
/etc
/selinux
/config
1687 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1688 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1690 # Install the policy
1691 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
1693 # Load the policy if SELinux is enabled
1694 if ! /usr
/sbin
/selinuxenabled
; then
1695 # Do not relabel if selinux is not enabled
1699 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
1700 # Do not relabel if file contexts did not change
1704 # Check whether the daemons are running
1705 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1708 # Stop the daemons if they were running
1709 if test $STATUS
-eq
0; then
1710 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1714 # Use ceph-disk fix for first package install and fixfiles otherwise
1715 if [ "$
1"
= "
1"
]; then
1716 /usr
/sbin
/ceph
-disk fix
--selinux
1718 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1721 rm -f $
{FILE_CONTEXT
}.pre
1722 # The fixfiles command won't fix label for /var/run/ceph
1723 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1725 # Start the daemons iff they were running before
1726 if test $STATUS
-eq
0; then
1727 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1732 if [ $
1 -eq
0 ]; then
1733 # backup file_contexts before update
1734 .
/etc
/selinux
/config
1735 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1736 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1739 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
1741 # Reload the policy if SELinux is enabled
1742 if ! /usr
/sbin
/selinuxenabled
; then
1743 # Do not relabel if SELinux is not enabled
1747 # Check whether the daemons are running
1748 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1751 # Stop the daemons if they were running
1752 if test $STATUS
-eq
0; then
1753 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1756 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1757 rm -f $
{FILE_CONTEXT
}.pre
1758 # The fixfiles command won't fix label for /var/run/ceph
1759 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1761 # Start the daemons if they were running before
1762 if test $STATUS
-eq
0; then
1763 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1768 %endif # with selinux
1770 %files -n python
-ceph
-compat
1771 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
1772 # actually build this meta package.