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
29 %bcond_without tcmalloc
31 %bcond_with lowmem_builder
32 %if 0%{?fedora} || 0%{?rhel}
33 %bcond_without selinux
39 # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE)
40 %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
41 %if ! 0%{?is_opensuse}
47 # get selinux policy version
48 %{!?_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)}
51 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
52 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
53 %{!?python3_pkgversion: %global python3_pkgversion 3}
55 # unify libexec for all targets
56 %global _libexecdir
%{_exec_prefix}/lib
58 # disable dwz which compresses the debuginfo
59 %global _find_debuginfo_dwz_opts
%{nil}
61 #################################################################################
62 # main package definition
63 #################################################################################
67 %if 0%{?fedora} || 0%{?rhel}
71 # define %_epoch_prefix macro which will expand to the empty string if %epoch is undefined
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
-1.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
/ceph
-12.1.0.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
108 BuildRequires
: cryptsetup
109 BuildRequires
: fuse
-devel
110 BuildRequires
: gcc
-c
++
112 %if 0%{with tcmalloc}
113 BuildRequires
: gperftools
-devel
>= 2.4
116 BuildRequires
: leveldb
-devel
> 1.2
117 BuildRequires
: libaio
-devel
118 BuildRequires
: libblkid
-devel
>= 2.17
119 BuildRequires
: libcurl
-devel
120 BuildRequires
: libudev
-devel
121 BuildRequires
: libtool
122 BuildRequires
: libxml2
-devel
124 BuildRequires
: parted
126 BuildRequires
: pkgconfig
127 BuildRequires
: python
128 BuildRequires
: python
-devel
129 BuildRequires
: python
-nose
130 BuildRequires
: python
-pecan
131 BuildRequires
: python
-requests
132 BuildRequires
: python
-virtualenv
133 BuildRequires
: python
-werkzeug
134 BuildRequires
: snappy
-devel
136 BuildRequires
: util
-linux
137 BuildRequires
: valgrind
-devel
139 BuildRequires
: xfsprogs
140 BuildRequires
: xfsprogs
-devel
141 BuildRequires
: xmlstarlet
144 #################################################################################
145 # distro-conditional dependencies
146 #################################################################################
147 %if 0%{?suse_version}
148 BuildRequires
: pkgconfig
(systemd
)
149 BuildRequires
: systemd
-rpm
-macros
150 BuildRequires
: systemd
152 PreReq
: %fillup_prereq
153 BuildRequires
: net
-tools
154 BuildRequires
: libbz2
-devel
155 BuildRequires
: btrfsprogs
156 BuildRequires
: mozilla
-nss
-devel
157 BuildRequires
: keyutils
-devel
158 BuildRequires
: libopenssl
-devel
159 BuildRequires
: lsb
-release
160 BuildRequires
: openldap2
-devel
161 BuildRequires
: python
-CherryPy
162 BuildRequires
: python
-Cython
163 BuildRequires
: python
-PrettyTable
164 BuildRequires
: python
-Sphinx
165 BuildRequires
: rdma
-core
-devel
167 %if 0%{?fedora} || 0%{?rhel}
169 BuildRequires
: boost
-random
170 BuildRequires
: btrfs
-progs
171 BuildRequires
: nss
-devel
172 BuildRequires
: keyutils
-libs
-devel
173 BuildRequires
: libibverbs
-devel
174 BuildRequires
: openldap
-devel
175 BuildRequires
: openssl
-devel
176 BuildRequires
: redhat
-lsb
-core
177 BuildRequires
: Cython
178 BuildRequires
: python
-cherrypy
179 BuildRequires
: python
-prettytable
180 BuildRequires
: python
-sphinx
182 # python34-... for RHEL, python3-... for all other supported distros
184 BuildRequires
: python34
-devel
185 BuildRequires
: python34
-setuptools
186 BuildRequires
: python34
-Cython
188 BuildRequires
: python3
-devel
189 BuildRequires
: python3
-setuptools
190 BuildRequires
: python3
-Cython
192 # lttng and babeltrace for rbd-replay-prep
194 %if 0%{?fedora} || 0%{?rhel}
195 BuildRequires
: lttng
-ust
-devel
196 BuildRequires
: libbabeltrace
-devel
198 %if 0%{?suse_version}
199 BuildRequires
: lttng
-ust
-devel
200 BuildRequires
: babeltrace
-devel
203 %if 0%{?suse_version}
204 BuildRequires
: libexpat
-devel
206 %if 0%{?rhel} || 0%{?fedora}
207 BuildRequires
: expat
-devel
210 %if 0%{?fedora} || 0%{?rhel}
211 BuildRequires
: redhat
-rpm
-config
215 BuildRequires
: libxio
-devel
219 Ceph is a massively scalable
, open
-source, distributed storage system that runs
220 on commodity hardware and delivers object
, block and file system storage.
223 #################################################################################
225 #################################################################################
227 Summary: Ceph Base Package
228 %if 0%{?suse_version}
229 Group: System
/Filesystems
231 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
232 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
233 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
234 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
235 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
237 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
240 Requires: python
-requests
241 Requires: python
-setuptools
250 %if 0%{?suse_version}
251 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
285 %description -n ceph
-common
286 Common utilities to mount and interact with a ceph storage cluster.
287 Comprised of files that are common to Ceph clients and servers.
290 Summary: Ceph Metadata Server Daemon
291 %if 0%{?suse_version}
292 Group: System
/Filesystems
294 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
296 ceph
-mds is the metadata server daemon
for the Ceph distributed file system.
297 One or more instances of ceph
-mds collectively manage the file system
298 namespace
, coordinating access to the shared OSD cluster.
301 Summary: Ceph Monitor Daemon
302 %if 0%{?suse_version}
303 Group: System
/Filesystems
305 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
307 %if 0%{?fedora} || 0%{?rhel}
308 Requires: python
-flask
310 %if 0%{?suse_version}
311 Requires: python
-Flask
314 ceph
-mon is the cluster monitor daemon
for the Ceph distributed file
315 system. One or more instances of ceph
-mon form a Paxos part
-time
316 parliament cluster that provides extremely reliable and durable storage
317 of cluster membership
, configuration
, and state.
320 Summary: Ceph Manager Daemon
321 %if 0%{?suse_version}
322 Group: System
/Filesystems
324 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
325 %if 0%{?fedora} || 0%{?rhel}
326 Requires: python
-cherrypy
327 Requires: python
-werkzeug
330 %if 0%{?suse_version}
331 Requires: python
-CherryPy
332 Requires: python
-Werkzeug
333 Requires: python
-pyOpenSSL
335 Requires: python
-pecan
337 ceph
-mgr enables python modules that provide services
(such as the REST
338 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
339 the cluster maps
, the daemon metadata
, and performance counters
, and
340 exposes all these to the python modules.
343 Summary: Ceph fuse
-based client
344 %if 0%{?suse_version}
345 Group: System
/Filesystems
348 FUSE based client
for Ceph distributed network file system
351 Summary: Ceph fuse
-based client
352 %if 0%{?suse_version}
353 Group: System
/Filesystems
355 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
356 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
357 %description -n rbd
-fuse
358 FUSE based client to map Ceph rbd images to files
360 %package -n rbd
-mirror
361 Summary: Ceph daemon
for mirroring RBD images
362 %if 0%{?suse_version}
363 Group: System
/Filesystems
365 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
366 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
367 %description -n rbd
-mirror
368 Daemon
for mirroring RBD images between Ceph clusters
, streaming
369 changes asynchronously.
372 Summary: Ceph RBD client base on NBD
373 %if 0%{?suse_version}
374 Group: System
/Filesystems
376 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
377 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
378 %description -n rbd
-nbd
379 NBD based client to map Ceph rbd images to
local device
382 Summary: Rados REST gateway
383 %if 0%{?suse_version}
384 Group: System
/Filesystems
386 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
388 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
390 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
391 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
392 %if 0%{?rhel} || 0%{?fedora}
396 RADOS is a distributed object store used by the Ceph distributed
397 storage system. This package provides a REST gateway to the
398 object store that aims to implement a superset of Amazon's S3
399 service as well as the OpenStack Object Storage
("Swift"
) API.
402 %package resource
-agents
403 Summary: OCF
-compliant resource agents
for Ceph daemons
404 %if 0%{?suse_version}
405 Group: System
/Filesystems
407 Requires: ceph
-base
= %{_epoch_prefix}%{version}
408 Requires: resource
-agents
409 %description resource
-agents
410 Resource agents
for monitoring and managing Ceph daemons
411 under Open Cluster Framework
(OCF
) compliant resource
412 managers such as Pacemaker.
416 Summary: Ceph Object Storage Daemon
417 %if 0%{?suse_version}
418 Group: System
/Filesystems
420 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
421 # for sgdisk, used by ceph-disk
422 %if 0%{?fedora} || 0%{?rhel}
425 %if 0%{?suse_version}
430 ceph
-osd is the object storage daemon
for the Ceph distributed file
431 system. It is responsible
for storing objects on a
local file system
432 and providing access to them over the network.
434 %package -n librados2
435 Summary: RADOS distributed object store client library
436 %if 0%{?suse_version}
437 Group: System
/Libraries
439 %if 0%{?rhel} || 0%{?fedora}
440 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
442 %description -n librados2
443 RADOS is a reliable
, autonomic distributed object storage cluster
444 developed as part of the Ceph distributed storage system. This is a
445 shared library allowing applications to access the distributed object
446 store using a simple file
-like interface.
448 %package -n librados
-devel
449 Summary: RADOS headers
450 %if 0%{?suse_version}
451 Group: Development
/Libraries
/C and C
++
453 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
454 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
455 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
456 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
457 %description -n librados
-devel
458 This package contains libraries and headers needed to develop programs
459 that use RADOS object store.
462 Summary: RADOS gateway client library
463 %if 0%{?suse_version}
464 Group: System
/Libraries
466 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
467 %description -n librgw2
468 This package provides a library implementation of the RADOS gateway
469 (distributed object store with S3 and Swift personalities
).
471 %package -n librgw
-devel
472 Summary: RADOS gateway client library
473 %if 0%{?suse_version}
474 Group: Development
/Libraries
/C and C
++
476 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
477 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
478 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
479 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
480 %description -n librgw
-devel
481 This package contains libraries and headers needed to develop programs
482 that use RADOS gateway client library.
484 %package -n python
-rgw
485 Summary: Python
2 libraries
for the RADOS gateway
486 %if 0%{?suse_version}
487 Group: Development
/Languages
/Python
489 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
490 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
491 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
492 %description -n python
-rgw
493 This package contains Python
2 libraries
for interacting with Cephs RADOS
496 %package -n python
%{python3_pkgversion}-rgw
497 Summary: Python
3 libraries
for the RADOS gateway
498 %if 0%{?suse_version}
499 Group: Development
/Languages
/Python
501 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
502 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
503 %description -n python
%{python3_pkgversion}-rgw
504 This package contains Python
3 libraries
for interacting with Cephs RADOS
507 %package -n python
-rados
508 Summary: Python
2 libraries
for the RADOS object store
509 %if 0%{?suse_version}
510 Group: Development
/Languages
/Python
512 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
513 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
514 %description -n python
-rados
515 This package contains Python
2 libraries
for interacting with Cephs RADOS
518 %package -n python
%{python3_pkgversion}-rados
519 Summary: Python
3 libraries
for the RADOS object store
520 %if 0%{?suse_version}
521 Group: Development
/Languages
/Python
523 Requires: python
%{python3_pkgversion}
524 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
525 %description -n python
%{python3_pkgversion}-rados
526 This package contains Python
3 libraries
for interacting with Cephs RADOS
529 %package -n libradosstriper1
530 Summary: RADOS striping interface
531 %if 0%{?suse_version}
532 Group: System
/Libraries
534 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
535 %description -n libradosstriper1
536 Striping interface built on top of the rados library
, allowing
537 to stripe bigger objects onto several standard rados objects using
538 an interface very similar to the rados one.
540 %package -n libradosstriper
-devel
541 Summary: RADOS striping interface headers
542 %if 0%{?suse_version}
543 Group: Development
/Libraries
/C and C
++
545 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
546 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
547 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
548 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
549 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
550 %description -n libradosstriper
-devel
551 This package contains libraries and headers needed to develop programs
552 that use RADOS striping interface.
555 Summary: RADOS block device client library
556 %if 0%{?suse_version}
557 Group: System
/Libraries
559 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
560 %if 0%{?suse_version}
561 Requires(post
): coreutils
563 %if 0%{?rhel} || 0%{?fedora}
564 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
566 %description -n librbd1
567 RBD is a block device striped across multiple distributed objects
in
568 RADOS
, a reliable
, autonomic distributed object storage cluster
569 developed as part of the Ceph distributed storage system. This is a
570 shared library allowing applications to manage these block devices.
572 %package -n librbd
-devel
573 Summary: RADOS block device headers
574 %if 0%{?suse_version}
575 Group: Development
/Libraries
/C and C
++
577 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
578 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
579 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
580 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
581 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
582 %description -n librbd
-devel
583 This package contains libraries and headers needed to develop programs
584 that use RADOS block device.
586 %package -n python
-rbd
587 Summary: Python
2 libraries
for the RADOS block device
588 %if 0%{?suse_version}
589 Group: Development
/Languages
/Python
591 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
592 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
593 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
594 %description -n python
-rbd
595 This package contains Python
2 libraries
for interacting with Cephs RADOS
598 %package -n python
%{python3_pkgversion}-rbd
599 Summary: Python
3 libraries
for the RADOS block device
600 %if 0%{?suse_version}
601 Group: Development
/Languages
/Python
603 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
604 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
605 %description -n python
%{python3_pkgversion}-rbd
606 This package contains Python
3 libraries
for interacting with Cephs RADOS
609 %package -n libcephfs2
610 Summary: Ceph distributed file system client library
611 %if 0%{?suse_version}
612 Group: System
/Libraries
614 %if 0%{?rhel} || 0%{?fedora}
615 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
616 Obsoletes
: ceph
-libcephfs
618 %description -n libcephfs2
619 Ceph is a distributed network file system designed to provide excellent
620 performance
, reliability
, and scalability. This is a shared library
621 allowing applications to access a Ceph distributed file system via a
622 POSIX
-like interface.
624 %package -n libcephfs
-devel
625 Summary: Ceph distributed file system headers
626 %if 0%{?suse_version}
627 Group: Development
/Libraries
/C and C
++
629 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
630 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
631 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
632 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
633 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
634 %description -n libcephfs
-devel
635 This package contains libraries and headers needed to develop programs
636 that use Cephs distributed file system.
638 %package -n python
-cephfs
639 Summary: Python
2 libraries
for Ceph distributed file system
640 %if 0%{?suse_version}
641 Group: Development
/Languages
/Python
643 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
644 %if 0%{?suse_version}
645 Recommends
: python
-rados
= %{_epoch_prefix}%{version}-%{release}
647 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
648 %description -n python
-cephfs
649 This package contains Python
2 libraries
for interacting with Cephs distributed
652 %package -n python
%{python3_pkgversion}-cephfs
653 Summary: Python
3 libraries
for Ceph distributed file system
654 %if 0%{?suse_version}
655 Group: Development
/Languages
/Python
657 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
658 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
659 %description -n python
%{python3_pkgversion}-cephfs
660 This package contains Python
3 libraries
for interacting with Cephs distributed
663 %package -n python
%{python3_pkgversion}-ceph
-argparse
664 Summary: Python
3 utility libraries
for Ceph CLI
665 %if 0%{?suse_version}
666 Group: Development
/Languages
/Python
668 %description -n python
%{python3_pkgversion}-ceph
-argparse
669 This package contains types and routines
for Python
3 used by the Ceph CLI as
670 well as the RESTful interface. These have to
do with querying the daemons
for
671 command-description information
, validating user
command input against those
672 descriptions
, and submitting the
command to the appropriate daemon.
674 %if 0%{with ceph_test_package}
675 %package -n ceph
-test
676 Summary: Ceph benchmarks and
test tools
677 %if 0%{?suse_version}
678 Group: System
/Benchmark
680 Requires: ceph
-common
683 %description -n ceph
-test
684 This package contains Ceph benchmarks and
test tools.
687 %if 0%{with cephfs_java}
689 %package -n libcephfs_jni1
690 Summary: Java Native Interface library
for CephFS Java bindings
691 %if 0%{?suse_version}
692 Group: System
/Libraries
695 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
696 %description -n libcephfs_jni1
697 This package contains the Java Native Interface library
for CephFS Java
700 %package -n libcephfs_jni
-devel
701 Summary: Development files
for CephFS Java Native Interface library
702 %if 0%{?suse_version}
703 Group: Development
/Libraries
/Java
706 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
707 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
708 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
709 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
710 %description -n libcephfs_jni
-devel
711 This package contains the development files
for CephFS Java Native Interface
714 %package -n cephfs
-java
715 Summary: Java libraries
for the Ceph File System
716 %if 0%{?suse_version}
717 Group: System
/Libraries
720 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
723 %description -n cephfs
-java
724 This package contains the Java libraries
for the Ceph File System.
728 %package -n rados
-objclass
-devel
729 Summary: RADOS object class development kit
730 Group: Development
/Libraries
731 Requires: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
732 %description -n rados
-objclass
-devel
733 This package contains libraries and headers needed to develop RADOS object
739 Summary: SELinux support
for Ceph MON
, OSD and MDS
740 %if 0%{?suse_version}
741 Group: System
/Filesystems
743 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
744 Requires: policycoreutils
, libselinux
-utils
745 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
746 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
747 Requires(postun
): policycoreutils
749 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
750 also performs file
-system relabelling which can take a long
time on heavily
751 populated file
-systems.
755 %package -n python
-ceph
-compat
756 Summary: Compatibility package
for Cephs python libraries
757 %if 0%{?suse_version}
758 Group: Development
/Languages
/Python
760 Obsoletes
: python
-ceph
761 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
762 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
763 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
764 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
765 Provides: python
-ceph
766 %description -n python
-ceph
-compat
767 This is a compatibility package to accommodate python
-ceph split into
768 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
769 depending on python
-ceph should be fixed to depend on python
-rados
,
770 python
-rbd
, python
-rgw or python
-cephfs instead.
772 #################################################################################
774 #################################################################################
776 %autosetup -p1
-n ceph
-12.1.0
779 %if 0%{with cephfs_java}
781 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
782 [ -d $i
] && java_inc
="$java_inc
-I$i"
786 %if %{with lowmem_builder}
787 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
789 export RPM_OPT_FLAGS
=`
echo $RPM_OPT_FLAGS | sed
-e 's
/i386
/i486
/'`
791 export CPPFLAGS
="$java_inc"
792 export CFLAGS
="$RPM_OPT_FLAGS"
793 export CXXFLAGS
="$RPM_OPT_FLAGS"
797 %if %{with lowmem_builder}
799 %define _smp_mflags
-j8
803 # unlimit _smp_mflags in system macro if not set above
804 %define _smp_ncpus_max
0
805 # extract the number of processors for use with cmake
806 %define _smp_ncpus %
(echo %{_smp_mflags} | sed 's
/-j
//'
)
811 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
812 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
813 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
814 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
815 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
816 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
817 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
818 -DWITH_EMBEDDED
=OFF \
822 %if 0%{?rhel} && ! 0%{?centos}
828 %if 0%{without ceph_test_package}
831 %if 0%{with cephfs_java}
832 -DWITH_CEPHFS_JAVA
=ON \
839 -DHAVE_BABELTRACE
=ON \
842 -DHAVE_BABELTRACE
=OFF \
844 $CEPH_EXTRA_CMAKE_ARGS \
848 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
849 -DWITH_RADOSGW_BEAST_FRONTEND
=ON \
851 -DWITH_RADOSGW_BEAST_FRONTEND
=OFF \
853 -DBOOST_J
=%{_smp_ncpus}
858 %if 0%{with make_check}
860 # run in-tree unittests
862 ctest
%{?_smp_mflags}
870 make DESTDIR
=%{buildroot} install
871 # we have dropped sysvinit bits
872 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
874 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
875 %if 0%{?fedora} || 0%{?rhel}
876 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
878 %if 0%{?suse_version}
879 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
881 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
882 install -m
0755 -D systemd
/ceph
%{buildroot}%{_sbindir}/rcceph
883 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
884 mkdir -p
%{buildroot}%{_sbindir}
885 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
886 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
887 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
889 # firewall templates and /sbin/mount.ceph symlink
890 %if 0%{?suse_version}
891 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
892 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
893 mkdir -p
%{buildroot}/sbin
894 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
898 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
899 install -m
0644 -D udev
/60-ceph
-by
-parttypeuuid.rules
%{buildroot}%{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
900 install -m
0644 -D udev
/95-ceph
-osd.rules
%{buildroot}%{_udevrulesdir}/95-ceph
-osd.rules
902 #set up placeholder directories
903 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
904 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
905 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
906 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
907 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
908 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
909 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
910 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
911 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
912 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
913 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
914 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
915 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
917 %if 0%{?suse_version}
918 # create __pycache__ directories and their contents
919 %py3_compile %{buildroot}%{python3_sitelib}
925 #################################################################################
926 # files and systemd scriptlets
927 #################################################################################
932 %{_bindir}/monmaptool
933 %{_bindir}/osdmaptool
935 %{_bindir}/ceph
-detect
-init
936 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
937 %{_sbindir}/ceph
-create
-keys
938 %{_sbindir}/ceph
-disk
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.target
968 %{python_sitelib}/ceph_detect_init
*
969 %{python_sitelib}/ceph_disk
*
970 %{_mandir}/man8
/ceph
-deploy
.8*
971 %{_mandir}/man8
/ceph
-detect
-init
.8*
972 %{_mandir}/man8
/ceph
-create
-keys
.8*
973 %{_mandir}/man8
/ceph
-disk
.8*
974 %{_mandir}/man8
/ceph
-run
.8*
975 %{_mandir}/man8
/crushtool
.8*
976 %{_mandir}/man8
/osdmaptool
.8*
977 %{_mandir}/man8
/monmaptool
.8*
978 #set up placeholder directories
979 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
980 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
981 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
982 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
983 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
987 %if 0%{?suse_version}
989 if [ $
1 -eq
1 ] ; then
990 /usr
/bin
/systemctl preset ceph
-disk@\
*.service ceph.target
>/dev
/null
2>&1 ||
:
993 %if 0%{?fedora} || 0%{?rhel}
994 %systemd_post ceph
-disk@\
*.service ceph.target
996 if [ $
1 -eq
1 ] ; then
997 /usr
/bin
/systemctl start ceph.target
>/dev
/null
2>&1 ||
:
1001 %if 0%{?suse_version}
1002 %service_del_preun ceph
-disk@\
*.service ceph.target
1004 %if 0%{?fedora} || 0%{?rhel}
1005 %systemd_preun ceph
-disk@\
*.service ceph.target
1010 %if 0%{?suse_version}
1011 DISABLE_RESTART_ON_UPDATE
="yes"
1012 %service_del_postun ceph
-disk@\
*.service ceph.target
1014 %if 0%{?fedora} || 0%{?rhel}
1015 %systemd_postun ceph
-disk@\
*.service ceph.target
1017 if [ $FIRST_ARG
-ge
1 ] ; then
1018 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1019 # "yes". In any case: if units are not running, do not touch them.
1020 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1021 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1022 source $SYSCONF_CEPH
1024 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1025 /usr
/bin
/systemctl try
-restart ceph
-disk@\
*.service
> /dev
/null
2>&1 ||
:
1031 %docdir %{_docdir}/ceph
1032 %doc %{_docdir}/ceph
/sample.ceph.conf
1033 %doc %{_docdir}/ceph
/COPYING
1035 %{_bindir}/ceph
-authtool
1036 %{_bindir}/ceph
-conf
1037 %{_bindir}/ceph
-dencoder
1038 %{_bindir}/ceph
-rbdnamer
1040 %{_bindir}/ceph
-crush
-location
1041 %{_bindir}/cephfs
-data
-scan
1042 %{_bindir}/cephfs
-journal
-tool
1043 %{_bindir}/cephfs
-table
-tool
1045 %{_bindir}/radosgw
-admin
1047 %{_bindir}/rbd
-replay
1048 %{_bindir}/rbd
-replay
-many
1050 %{_sbindir}/mount.ceph
1051 %if 0%{?suse_version}
1055 %{_bindir}/rbd
-replay
-prep
1057 %{_bindir}/ceph
-post
-file
1058 %{_bindir}/ceph
-brag
1059 %{_tmpfilesdir}/ceph
-common.conf
1060 %{_mandir}/man8
/ceph
-authtool
.8*
1061 %{_mandir}/man8
/ceph
-conf
.8*
1062 %{_mandir}/man8
/ceph
-dencoder
.8*
1063 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1064 %{_mandir}/man8
/ceph
-syn
.8*
1065 %{_mandir}/man8
/ceph
-post
-file
.8*
1066 %{_mandir}/man8
/ceph
.8*
1067 %{_mandir}/man8
/mount.ceph
.8*
1068 %{_mandir}/man8
/rados
.8*
1069 %{_mandir}/man8
/radosgw
-admin
.8*
1070 %{_mandir}/man8
/rbd
.8*
1071 %{_mandir}/man8
/rbdmap
.8*
1072 %{_mandir}/man8
/rbd
-replay
.8*
1073 %{_mandir}/man8
/rbd
-replay
-many
.8*
1074 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1075 %dir %{_datadir}/ceph
/
1076 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1077 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1078 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1079 %dir %{_sysconfdir}/ceph
/
1080 %config %{_sysconfdir}/bash_completion.d
/ceph
1081 %config %{_sysconfdir}/bash_completion.d
/rados
1082 %config %{_sysconfdir}/bash_completion.d
/rbd
1083 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1084 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1085 %{_unitdir}/rbdmap.service
1086 %{python_sitelib}/ceph_argparse.py
*
1087 %{python_sitelib}/ceph_daemon.py
*
1088 %dir %{_udevrulesdir}
1089 %{_udevrulesdir}/50-rbd.rules
1090 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1091 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1096 %if 0%{?rhel} || 0%{?fedora}
1097 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1098 /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 ||
:
1100 %if 0%{?suse_version}
1101 if ! getent group ceph
>/dev
/null
; then
1102 CEPH_GROUP_ID_OPTION
=""
1103 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1104 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1106 if ! getent passwd ceph
>/dev
/null
; then
1107 CEPH_USER_ID_OPTION
=""
1108 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1109 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1111 usermod
-c "Ceph storage service" \
1112 -d
%{_localstatedir}/lib
/ceph \
1120 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1123 # Package removal cleanup
1124 if [ "$
1"
-eq "
0"
] ; then
1125 rm -rf
%{_localstatedir}/log
/ceph
1126 rm -rf
%{_sysconfdir}/ceph
1131 %{_mandir}/man8
/ceph
-mds
.8*
1132 %{_unitdir}/ceph
-mds@.service
1133 %{_unitdir}/ceph
-mds.target
1134 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1137 %if 0%{?suse_version}
1138 if [ $
1 -eq
1 ] ; then
1139 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1142 %if 0%{?fedora} || 0%{?rhel}
1143 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1145 if [ $
1 -eq
1 ] ; then
1146 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1150 %if 0%{?suse_version}
1151 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1153 %if 0%{?fedora} || 0%{?rhel}
1154 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1158 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1159 %if 0%{?suse_version}
1160 DISABLE_RESTART_ON_UPDATE
="yes"
1161 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1163 %if 0%{?fedora} || 0%{?rhel}
1164 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1166 if [ $FIRST_ARG
-ge
1 ] ; then
1167 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1168 # "yes". In any case: if units are not running, do not touch them.
1169 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1170 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1171 source $SYSCONF_CEPH
1173 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1174 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1181 %{_unitdir}/ceph
-mgr@.service
1182 %{_unitdir}/ceph
-mgr.target
1183 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1186 %if 0%{?suse_version}
1187 if [ $
1 -eq
1 ] ; then
1188 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1191 %if 0%{?fedora} || 0%{?rhel}
1192 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1194 if [ $
1 -eq
1 ] ; then
1195 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1199 %if 0%{?suse_version}
1200 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1202 %if 0%{?fedora} || 0%{?rhel}
1203 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1207 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1208 %if 0%{?suse_version}
1209 DISABLE_RESTART_ON_UPDATE
="yes"
1210 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1212 %if 0%{?fedora} || 0%{?rhel}
1213 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1215 if [ $FIRST_ARG
-ge
1 ] ; then
1216 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1217 # "yes". In any case: if units are not running, do not touch them.
1218 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1219 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1220 source $SYSCONF_CEPH
1222 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1223 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1229 %{_bindir}/ceph
-rest
-api
1230 %{_mandir}/man8
/ceph
-mon
.8*
1231 %{_mandir}/man8
/ceph
-rest
-api
.8*
1232 %{python_sitelib}/ceph_rest_api.py
*
1233 %{_unitdir}/ceph
-mon@.service
1234 %{_unitdir}/ceph
-mon.target
1235 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1238 %if 0%{?suse_version}
1239 if [ $
1 -eq
1 ] ; then
1240 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1243 %if 0%{?fedora} || 0%{?rhel}
1244 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1246 if [ $
1 -eq
1 ] ; then
1247 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1251 %if 0%{?suse_version}
1252 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1254 %if 0%{?fedora} || 0%{?rhel}
1255 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1259 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1260 %if 0%{?suse_version}
1261 DISABLE_RESTART_ON_UPDATE
="yes"
1262 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1264 %if 0%{?fedora} || 0%{?rhel}
1265 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1267 if [ $FIRST_ARG
-ge
1 ] ; then
1268 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1269 # "yes". In any case: if units are not running, do not touch them.
1270 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1271 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1272 source $SYSCONF_CEPH
1274 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1275 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1280 %{_bindir}/ceph
-fuse
1281 %{_mandir}/man8
/ceph
-fuse
.8*
1282 %{_sbindir}/mount.fuse.ceph
1283 %{_unitdir}/ceph
-fuse@.service
1284 %{_unitdir}/ceph
-fuse.target
1288 %{_mandir}/man8
/rbd
-fuse
.8*
1290 %files -n rbd
-mirror
1291 %{_bindir}/rbd
-mirror
1292 %{_mandir}/man8
/rbd
-mirror
.8*
1293 %{_unitdir}/ceph
-rbd
-mirror@.service
1294 %{_unitdir}/ceph
-rbd
-mirror.target
1297 %if 0%{?suse_version}
1298 if [ $
1 -eq
1 ] ; then
1299 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1302 %if 0%{?fedora} || 0%{?rhel}
1303 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1305 if [ $
1 -eq
1 ] ; then
1306 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1309 %preun -n rbd
-mirror
1310 %if 0%{?suse_version}
1311 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1313 %if 0%{?fedora} || 0%{?rhel}
1314 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1317 %postun -n rbd
-mirror
1318 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1319 %if 0%{?suse_version}
1320 DISABLE_RESTART_ON_UPDATE
="yes"
1321 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1323 %if 0%{?fedora} || 0%{?rhel}
1324 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1326 if [ $FIRST_ARG
-ge
1 ] ; then
1327 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1328 # "yes". In any case: if units are not running, do not touch them.
1329 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1330 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1331 source $SYSCONF_CEPH
1333 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1334 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1340 %{_mandir}/man8
/rbd
-nbd
.8*
1344 %{_bindir}/radosgw
-token
1345 %{_bindir}/radosgw
-es
1346 %{_bindir}/radosgw
-object
-expirer
1347 %{_mandir}/man8
/radosgw
.8*
1348 %dir %{_localstatedir}/lib
/ceph
/radosgw
1349 %{_unitdir}/ceph
-radosgw@.service
1350 %{_unitdir}/ceph
-radosgw.target
1353 %if 0%{?suse_version}
1354 if [ $
1 -eq
1 ] ; then
1355 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1358 %if 0%{?fedora} || 0%{?rhel}
1359 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1361 if [ $
1 -eq
1 ] ; then
1362 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1366 %if 0%{?suse_version}
1367 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1369 %if 0%{?fedora} || 0%{?rhel}
1370 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1374 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1375 %if 0%{?suse_version}
1376 DISABLE_RESTART_ON_UPDATE
="yes"
1377 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1379 %if 0%{?fedora} || 0%{?rhel}
1380 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1382 if [ $FIRST_ARG
-ge
1 ] ; then
1383 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1384 # "yes". In any case: if units are not running, do not touch them.
1385 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1386 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1387 source $SYSCONF_CEPH
1389 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1390 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1395 %{_bindir}/ceph
-clsinfo
1396 %{_bindir}/ceph
-bluestore
-tool
1397 %{_bindir}/ceph
-objectstore
-tool
1399 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1400 %dir %{_udevrulesdir}
1401 %{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
1402 %{_udevrulesdir}/95-ceph
-osd.rules
1403 %{_mandir}/man8
/ceph
-clsinfo
.8*
1404 %{_mandir}/man8
/ceph
-osd
.8*
1405 %if 0%{?rhel} && ! 0%{?centos}
1406 %attr(0755,-,-) %{_sysconfdir}/cron.hourly
/subman
1408 %{_unitdir}/ceph
-osd@.service
1409 %{_unitdir}/ceph
-osd.target
1410 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1413 %if 0%{?suse_version}
1414 if [ $
1 -eq
1 ] ; then
1415 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1418 %if 0%{?fedora} || 0%{?rhel}
1419 %systemd_post ceph
-osd@\
*.service ceph
-osd.target
1421 if [ $
1 -eq
1 ] ; then
1422 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1426 %if 0%{?suse_version}
1427 %service_del_preun ceph
-osd@\
*.service ceph
-osd.target
1429 %if 0%{?fedora} || 0%{?rhel}
1430 %systemd_preun ceph
-osd@\
*.service ceph
-osd.target
1434 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1435 %if 0%{?suse_version}
1436 DISABLE_RESTART_ON_UPDATE
="yes"
1437 %service_del_postun ceph
-osd@\
*.service ceph
-osd.target
1439 %if 0%{?fedora} || 0%{?rhel}
1440 %systemd_postun ceph
-osd@\
*.service ceph
-osd.target
1442 if [ $FIRST_ARG
-ge
1 ] ; then
1443 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1444 # "yes". In any case: if units are not running, do not touch them.
1445 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1446 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1447 source $SYSCONF_CEPH
1449 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1450 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service
> /dev
/null
2>&1 ||
:
1456 %files resource
-agents
1457 %dir %{_prefix}/lib
/ocf
1458 %dir %{_prefix}/lib
/ocf
/resource.d
1459 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1460 %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1465 %{_libdir}/librados.so.
*
1466 %dir %{_libdir}/ceph
1467 %{_libdir}/ceph
/libceph
-common.so
*
1469 %{_libdir}/librados_tp.so.
*
1472 %post -n librados2
-p
/sbin
/ldconfig
1474 %postun -n librados2
-p
/sbin
/ldconfig
1476 %files -n librados
-devel
1477 %dir %{_includedir}/rados
1478 %{_includedir}/rados
/librados.h
1479 %{_includedir}/rados
/librados.hpp
1480 %{_includedir}/rados
/buffer.h
1481 %{_includedir}/rados
/buffer_fwd.h
1482 %{_includedir}/rados
/inline_memory.h
1483 %{_includedir}/rados
/page.h
1484 %{_includedir}/rados
/crc32c.h
1485 %{_includedir}/rados
/rados_types.h
1486 %{_includedir}/rados
/rados_types.hpp
1487 %{_includedir}/rados
/memory.h
1488 %{_libdir}/librados.so
1490 %{_libdir}/librados_tp.so
1492 %{_bindir}/librados
-config
1493 %{_mandir}/man8
/librados
-config
.8*
1495 %files -n python
-rados
1496 %{python_sitearch}/rados.so
1497 %{python_sitearch}/rados
-*.egg
-info
1499 %files -n python
%{python3_pkgversion}-rados
1500 %{python3_sitearch}/rados.cpython
*.so
1501 %{python3_sitearch}/rados
-*.egg
-info
1503 %files -n libradosstriper1
1504 %{_libdir}/libradosstriper.so.
*
1506 %post -n libradosstriper1
-p
/sbin
/ldconfig
1508 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1510 %files -n libradosstriper
-devel
1511 %dir %{_includedir}/radosstriper
1512 %{_includedir}/radosstriper
/libradosstriper.h
1513 %{_includedir}/radosstriper
/libradosstriper.hpp
1514 %{_libdir}/libradosstriper.so
1517 %{_libdir}/librbd.so.
*
1519 %{_libdir}/librbd_tp.so.
*
1524 mkdir -p
/usr
/lib64
/qemu
/
1525 ln
-sf
%{_libdir}/librbd.so
.1 /usr
/lib64
/qemu
/librbd.so
.1
1527 %postun -n librbd1
-p
/sbin
/ldconfig
1529 %files -n librbd
-devel
1530 %dir %{_includedir}/rbd
1531 %{_includedir}/rbd
/librbd.h
1532 %{_includedir}/rbd
/librbd.hpp
1533 %{_includedir}/rbd
/features.h
1534 %{_libdir}/librbd.so
1536 %{_libdir}/librbd_tp.so
1540 %{_libdir}/librgw.so.
*
1542 %post -n librgw2
-p
/sbin
/ldconfig
1544 %postun -n librgw2
-p
/sbin
/ldconfig
1546 %files -n librgw
-devel
1547 %dir %{_includedir}/rados
1548 %{_includedir}/rados
/librgw.h
1549 %{_includedir}/rados
/rgw_file.h
1550 %{_libdir}/librgw.so
1552 %files -n python
-rgw
1553 %{python_sitearch}/rgw.so
1554 %{python_sitearch}/rgw
-*.egg
-info
1556 %files -n python
%{python3_pkgversion}-rgw
1557 %{python3_sitearch}/rgw.cpython
*.so
1558 %{python3_sitearch}/rgw
-*.egg
-info
1560 %files -n python
-rbd
1561 %{python_sitearch}/rbd.so
1562 %{python_sitearch}/rbd
-*.egg
-info
1564 %files -n python
%{python3_pkgversion}-rbd
1565 %{python3_sitearch}/rbd.cpython
*.so
1566 %{python3_sitearch}/rbd
-*.egg
-info
1568 %files -n libcephfs2
1569 %{_libdir}/libcephfs.so.
*
1571 %post -n libcephfs2
-p
/sbin
/ldconfig
1573 %postun -n libcephfs2
-p
/sbin
/ldconfig
1575 %files -n libcephfs
-devel
1576 %dir %{_includedir}/cephfs
1577 %{_includedir}/cephfs
/libcephfs.h
1578 %{_includedir}/cephfs
/ceph_statx.h
1579 %{_libdir}/libcephfs.so
1581 %files -n python
-cephfs
1582 %{python_sitearch}/cephfs.so
1583 %{python_sitearch}/cephfs
-*.egg
-info
1584 %{python_sitelib}/ceph_volume_client.py
*
1586 %files -n python
%{python3_pkgversion}-cephfs
1587 %{python3_sitearch}/cephfs.cpython
*.so
1588 %{python3_sitearch}/cephfs
-*.egg
-info
1589 %{python3_sitelib}/ceph_volume_client.py
1590 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
1592 %files -n python
%{python3_pkgversion}-ceph
-argparse
1593 %{python3_sitelib}/ceph_argparse.py
1594 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
1595 %{python3_sitelib}/ceph_daemon.py
1596 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
1598 %if 0%{with ceph_test_package}
1600 %{_bindir}/ceph
-client
-debug
1601 %{_bindir}/ceph_bench_log
1602 %{_bindir}/ceph_kvstorebench
1603 %{_bindir}/ceph_multi_stress_watch
1604 %{_bindir}/ceph_erasure_code
1605 %{_bindir}/ceph_erasure_code_benchmark
1606 %{_bindir}/ceph_omapbench
1607 %{_bindir}/ceph_objectstore_bench
1608 %{_bindir}/ceph_perf_objectstore
1609 %{_bindir}/ceph_perf_local
1610 %{_bindir}/ceph_perf_msgr_client
1611 %{_bindir}/ceph_perf_msgr_server
1612 %{_bindir}/ceph_psim
1613 %{_bindir}/ceph_radosacl
1614 %{_bindir}/ceph_rgw_jsonparser
1615 %{_bindir}/ceph_rgw_multiparser
1616 %{_bindir}/ceph_scratchtool
1617 %{_bindir}/ceph_scratchtoolpp
1618 %{_bindir}/ceph_smalliobench
1619 %{_bindir}/ceph_smalliobenchdumb
1620 %{_bindir}/ceph_smalliobenchfs
1621 %{_bindir}/ceph_smalliobenchrbd
1622 %{_bindir}/ceph_test_
*
1623 %{_bindir}/ceph_tpbench
1624 %{_bindir}/ceph_xattr_bench
1625 %{_bindir}/ceph
-coverage
1626 %{_bindir}/ceph
-monstore
-tool
1627 %{_bindir}/ceph
-osdomap
-tool
1628 %{_bindir}/ceph
-kvstore
-tool
1629 %{_bindir}/ceph
-debugpack
1630 %{_mandir}/man8
/ceph
-debugpack
.8*
1631 %dir %{_libdir}/ceph
1632 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
1635 %if 0%{with cephfs_java}
1636 %files -n libcephfs_jni1
1637 %{_libdir}/libcephfs_jni.so.
*
1639 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
1641 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
1643 %files -n libcephfs_jni
-devel
1644 %{_libdir}/libcephfs_jni.so
1646 %files -n cephfs
-java
1647 %{_javadir}/libcephfs.jar
1648 %{_javadir}/libcephfs
-test.jar
1651 %files -n rados
-objclass
-devel
1652 %dir %{_includedir}/rados
1653 %{_includedir}/rados
/objclass.h
1655 %if 0%{with selinux}
1657 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
1658 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
1659 %{_mandir}/man8
/ceph_selinux
.8*
1662 # backup file_contexts before update
1663 .
/etc
/selinux
/config
1664 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1665 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1667 # Install the policy
1668 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
1670 # Load the policy if SELinux is enabled
1671 if ! /usr
/sbin
/selinuxenabled
; then
1672 # Do not relabel if selinux is not enabled
1676 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
1677 # Do not relabel if file contexts did not change
1681 # Check whether the daemons are running
1682 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1685 # Stop the daemons if they were running
1686 if test $STATUS
-eq
0; then
1687 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1691 # Use ceph-disk fix for first package install and fixfiles otherwise
1692 if [ "$
1"
= "
1"
]; then
1693 /usr
/sbin
/ceph
-disk fix
--selinux
1695 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1698 rm -f $
{FILE_CONTEXT
}.pre
1699 # The fixfiles command won't fix label for /var/run/ceph
1700 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1702 # Start the daemons iff they were running before
1703 if test $STATUS
-eq
0; then
1704 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1709 if [ $
1 -eq
0 ]; then
1710 # backup file_contexts before update
1711 .
/etc
/selinux
/config
1712 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1713 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1716 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
1718 # Reload the policy if SELinux is enabled
1719 if ! /usr
/sbin
/selinuxenabled
; then
1720 # Do not relabel if SELinux is not enabled
1724 # Check whether the daemons are running
1725 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1728 # Stop the daemons if they were running
1729 if test $STATUS
-eq
0; then
1730 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1733 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1734 rm -f $
{FILE_CONTEXT
}.pre
1735 # The fixfiles command won't fix label for /var/run/ceph
1736 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1738 # Start the daemons if they were running before
1739 if test $STATUS
-eq
0; then
1740 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1745 %endif # with selinux
1747 %files -n python
-ceph
-compat
1748 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
1749 # actually build this meta package.