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.1.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
135 BuildRequires
: snappy
-devel
137 BuildRequires
: util
-linux
138 BuildRequires
: valgrind
-devel
140 BuildRequires
: xfsprogs
141 BuildRequires
: xfsprogs
-devel
142 BuildRequires
: xmlstarlet
145 #################################################################################
146 # distro-conditional dependencies
147 #################################################################################
148 %if 0%{?suse_version}
149 BuildRequires
: pkgconfig
(systemd
)
150 BuildRequires
: systemd
-rpm
-macros
151 BuildRequires
: systemd
153 PreReq
: %fillup_prereq
154 BuildRequires
: net
-tools
155 BuildRequires
: libbz2
-devel
156 BuildRequires
: btrfsprogs
157 BuildRequires
: mozilla
-nss
-devel
158 BuildRequires
: keyutils
-devel
159 BuildRequires
: libopenssl
-devel
160 BuildRequires
: lsb
-release
161 BuildRequires
: openldap2
-devel
162 BuildRequires
: python
-CherryPy
163 BuildRequires
: python
-Cython
164 BuildRequires
: python
-PrettyTable
165 BuildRequires
: python
-Sphinx
166 BuildRequires
: rdma
-core
-devel
168 %if 0%{?fedora} || 0%{?rhel}
170 BuildRequires
: boost
-random
171 BuildRequires
: btrfs
-progs
172 BuildRequires
: nss
-devel
173 BuildRequires
: keyutils
-libs
-devel
174 BuildRequires
: libibverbs
-devel
175 BuildRequires
: openldap
-devel
176 BuildRequires
: openssl
-devel
177 BuildRequires
: redhat
-lsb
-core
178 BuildRequires
: Cython
179 BuildRequires
: python
-cherrypy
180 BuildRequires
: python
-prettytable
181 BuildRequires
: python
-sphinx
183 # python34-... for RHEL, python3-... for all other supported distros
185 BuildRequires
: python34
-devel
186 BuildRequires
: python34
-setuptools
187 BuildRequires
: python34
-Cython
189 BuildRequires
: python3
-devel
190 BuildRequires
: python3
-setuptools
191 BuildRequires
: python3
-Cython
193 # lttng and babeltrace for rbd-replay-prep
195 %if 0%{?fedora} || 0%{?rhel}
196 BuildRequires
: lttng
-ust
-devel
197 BuildRequires
: libbabeltrace
-devel
199 %if 0%{?suse_version}
200 BuildRequires
: lttng
-ust
-devel
201 BuildRequires
: babeltrace
-devel
204 %if 0%{?suse_version}
205 BuildRequires
: libexpat
-devel
207 %if 0%{?rhel} || 0%{?fedora}
208 BuildRequires
: expat
-devel
211 %if 0%{?fedora} || 0%{?rhel}
212 BuildRequires
: redhat
-rpm
-config
216 BuildRequires
: libxio
-devel
220 Ceph is a massively scalable
, open
-source, distributed storage system that runs
221 on commodity hardware and delivers object
, block and file system storage.
224 #################################################################################
226 #################################################################################
228 Summary: Ceph Base Package
229 %if 0%{?suse_version}
230 Group: System
/Filesystems
232 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
233 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
234 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
235 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
236 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
238 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
241 Requires: python
-requests
242 Requires: python
-setuptools
251 %if 0%{?suse_version}
252 Recommends
: ntp
-daemon
258 Base is the package that includes all the files shared amongst ceph servers
260 %package -n ceph
-common
262 %if 0%{?suse_version}
263 Group: System
/Filesystems
265 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
266 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
267 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
268 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
269 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
270 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
271 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
272 %if 0%{?fedora} || 0%{?rhel}
273 Requires: python
-prettytable
275 %if 0%{?suse_version}
276 Requires: python
-PrettyTable
278 Requires: python
-requests
280 %if 0%{?suse_version}
281 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}
326 %if 0%{?fedora} || 0%{?rhel}
327 Requires: python
-cherrypy
328 Requires: python
-werkzeug
331 %if 0%{?suse_version}
332 Requires: python
-CherryPy
333 Requires: python
-Werkzeug
334 Requires: python
-pyOpenSSL
336 Requires: python
-pecan
338 ceph
-mgr enables python modules that provide services
(such as the REST
339 module derived from Calamari
) and expose CLI hooks. ceph
-mgr gathers
340 the cluster maps
, the daemon metadata
, and performance counters
, and
341 exposes all these to the python modules.
344 Summary: Ceph fuse
-based client
345 %if 0%{?suse_version}
346 Group: System
/Filesystems
349 FUSE based client
for Ceph distributed network file system
352 Summary: Ceph fuse
-based client
353 %if 0%{?suse_version}
354 Group: System
/Filesystems
356 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
357 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
358 %description -n rbd
-fuse
359 FUSE based client to map Ceph rbd images to files
361 %package -n rbd
-mirror
362 Summary: Ceph daemon
for mirroring RBD images
363 %if 0%{?suse_version}
364 Group: System
/Filesystems
366 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
367 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
368 %description -n rbd
-mirror
369 Daemon
for mirroring RBD images between Ceph clusters
, streaming
370 changes asynchronously.
373 Summary: Ceph RBD client base on NBD
374 %if 0%{?suse_version}
375 Group: System
/Filesystems
377 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
378 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
379 %description -n rbd
-nbd
380 NBD based client to map Ceph rbd images to
local device
383 Summary: Rados REST gateway
384 %if 0%{?suse_version}
385 Group: System
/Filesystems
387 Requires: ceph
-common
= %{_epoch_prefix}%{version}-%{release}
389 Requires: ceph
-selinux
= %{_epoch_prefix}%{version}-%{release}
391 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
392 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
393 %if 0%{?rhel} || 0%{?fedora}
397 RADOS is a distributed object store used by the Ceph distributed
398 storage system. This package provides a REST gateway to the
399 object store that aims to implement a superset of Amazon's S3
400 service as well as the OpenStack Object Storage
("Swift"
) API.
403 %package resource
-agents
404 Summary: OCF
-compliant resource agents
for Ceph daemons
405 %if 0%{?suse_version}
406 Group: System
/Filesystems
408 Requires: ceph
-base
= %{_epoch_prefix}%{version}
409 Requires: resource
-agents
410 %description resource
-agents
411 Resource agents
for monitoring and managing Ceph daemons
412 under Open Cluster Framework
(OCF
) compliant resource
413 managers such as Pacemaker.
417 Summary: Ceph Object Storage Daemon
418 %if 0%{?suse_version}
419 Group: System
/Filesystems
421 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
422 # for sgdisk, used by ceph-disk
423 %if 0%{?fedora} || 0%{?rhel}
426 %if 0%{?suse_version}
431 ceph
-osd is the object storage daemon
for the Ceph distributed file
432 system. It is responsible
for storing objects on a
local file system
433 and providing access to them over the network.
435 %package -n librados2
436 Summary: RADOS distributed object store client library
437 %if 0%{?suse_version}
438 Group: System
/Libraries
440 %if 0%{?rhel} || 0%{?fedora}
441 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
443 %description -n librados2
444 RADOS is a reliable
, autonomic distributed object storage cluster
445 developed as part of the Ceph distributed storage system. This is a
446 shared library allowing applications to access the distributed object
447 store using a simple file
-like interface.
449 %package -n librados
-devel
450 Summary: RADOS headers
451 %if 0%{?suse_version}
452 Group: Development
/Libraries
/C and C
++
454 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
455 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
456 Provides: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
457 Obsoletes
: librados2
-devel
< %{_epoch_prefix}%{version}-%{release}
458 %description -n librados
-devel
459 This package contains libraries and headers needed to develop programs
460 that use RADOS object store.
463 Summary: RADOS gateway client library
464 %if 0%{?suse_version}
465 Group: System
/Libraries
467 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
468 %description -n librgw2
469 This package provides a library implementation of the RADOS gateway
470 (distributed object store with S3 and Swift personalities
).
472 %package -n librgw
-devel
473 Summary: RADOS gateway client library
474 %if 0%{?suse_version}
475 Group: Development
/Libraries
/C and C
++
477 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
478 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
479 Provides: librgw2
-devel
= %{_epoch_prefix}%{version}-%{release}
480 Obsoletes
: librgw2
-devel
< %{_epoch_prefix}%{version}-%{release}
481 %description -n librgw
-devel
482 This package contains libraries and headers needed to develop programs
483 that use RADOS gateway client library.
485 %package -n python
-rgw
486 Summary: Python
2 libraries
for the RADOS gateway
487 %if 0%{?suse_version}
488 Group: Development
/Languages
/Python
490 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
491 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
492 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
493 %description -n python
-rgw
494 This package contains Python
2 libraries
for interacting with Cephs RADOS
497 %package -n python
%{python3_pkgversion}-rgw
498 Summary: Python
3 libraries
for the RADOS gateway
499 %if 0%{?suse_version}
500 Group: Development
/Languages
/Python
502 Requires: librgw2
= %{_epoch_prefix}%{version}-%{release}
503 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
504 %description -n python
%{python3_pkgversion}-rgw
505 This package contains Python
3 libraries
for interacting with Cephs RADOS
508 %package -n python
-rados
509 Summary: Python
2 libraries
for the RADOS object store
510 %if 0%{?suse_version}
511 Group: Development
/Languages
/Python
513 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
514 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
515 %description -n python
-rados
516 This package contains Python
2 libraries
for interacting with Cephs RADOS
519 %package -n python
%{python3_pkgversion}-rados
520 Summary: Python
3 libraries
for the RADOS object store
521 %if 0%{?suse_version}
522 Group: Development
/Languages
/Python
524 Requires: python
%{python3_pkgversion}
525 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
526 %description -n python
%{python3_pkgversion}-rados
527 This package contains Python
3 libraries
for interacting with Cephs RADOS
530 %package -n libradosstriper1
531 Summary: RADOS striping interface
532 %if 0%{?suse_version}
533 Group: System
/Libraries
535 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
536 %description -n libradosstriper1
537 Striping interface built on top of the rados library
, allowing
538 to stripe bigger objects onto several standard rados objects using
539 an interface very similar to the rados one.
541 %package -n libradosstriper
-devel
542 Summary: RADOS striping interface headers
543 %if 0%{?suse_version}
544 Group: Development
/Libraries
/C and C
++
546 Requires: libradosstriper1
= %{_epoch_prefix}%{version}-%{release}
547 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
548 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
549 Provides: libradosstriper1
-devel
= %{_epoch_prefix}%{version}-%{release}
550 Obsoletes
: libradosstriper1
-devel
< %{_epoch_prefix}%{version}-%{release}
551 %description -n libradosstriper
-devel
552 This package contains libraries and headers needed to develop programs
553 that use RADOS striping interface.
556 Summary: RADOS block device client library
557 %if 0%{?suse_version}
558 Group: System
/Libraries
560 Requires: librados2
= %{_epoch_prefix}%{version}-%{release}
561 %if 0%{?suse_version}
562 Requires(post
): coreutils
564 %if 0%{?rhel} || 0%{?fedora}
565 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
567 %description -n librbd1
568 RBD is a block device striped across multiple distributed objects
in
569 RADOS
, a reliable
, autonomic distributed object storage cluster
570 developed as part of the Ceph distributed storage system. This is a
571 shared library allowing applications to manage these block devices.
573 %package -n librbd
-devel
574 Summary: RADOS block device headers
575 %if 0%{?suse_version}
576 Group: Development
/Libraries
/C and C
++
578 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
579 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
580 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
581 Provides: librbd1
-devel
= %{_epoch_prefix}%{version}-%{release}
582 Obsoletes
: librbd1
-devel
< %{_epoch_prefix}%{version}-%{release}
583 %description -n librbd
-devel
584 This package contains libraries and headers needed to develop programs
585 that use RADOS block device.
587 %package -n python
-rbd
588 Summary: Python
2 libraries
for the RADOS block device
589 %if 0%{?suse_version}
590 Group: Development
/Languages
/Python
592 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
593 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
594 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
595 %description -n python
-rbd
596 This package contains Python
2 libraries
for interacting with Cephs RADOS
599 %package -n python
%{python3_pkgversion}-rbd
600 Summary: Python
3 libraries
for the RADOS block device
601 %if 0%{?suse_version}
602 Group: Development
/Languages
/Python
604 Requires: librbd1
= %{_epoch_prefix}%{version}-%{release}
605 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
606 %description -n python
%{python3_pkgversion}-rbd
607 This package contains Python
3 libraries
for interacting with Cephs RADOS
610 %package -n libcephfs2
611 Summary: Ceph distributed file system client library
612 %if 0%{?suse_version}
613 Group: System
/Libraries
615 Obsoletes
: libcephfs1
616 %if 0%{?rhel} || 0%{?fedora}
617 Obsoletes
: ceph
-libs
< %{_epoch_prefix}%{version}-%{release}
618 Obsoletes
: ceph
-libcephfs
620 %description -n libcephfs2
621 Ceph is a distributed network file system designed to provide excellent
622 performance
, reliability
, and scalability. This is a shared library
623 allowing applications to access a Ceph distributed file system via a
624 POSIX
-like interface.
626 %package -n libcephfs
-devel
627 Summary: Ceph distributed file system headers
628 %if 0%{?suse_version}
629 Group: Development
/Libraries
/C and C
++
631 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
632 Requires: librados
-devel
= %{_epoch_prefix}%{version}-%{release}
633 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
634 Provides: libcephfs2
-devel
= %{_epoch_prefix}%{version}-%{release}
635 Obsoletes
: libcephfs2
-devel
< %{_epoch_prefix}%{version}-%{release}
636 %description -n libcephfs
-devel
637 This package contains libraries and headers needed to develop programs
638 that use Cephs distributed file system.
640 %package -n python
-cephfs
641 Summary: Python
2 libraries
for Ceph distributed file system
642 %if 0%{?suse_version}
643 Group: Development
/Languages
/Python
645 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
646 %if 0%{?suse_version}
647 Recommends
: python
-rados
= %{_epoch_prefix}%{version}-%{release}
649 Obsoletes
: python
-ceph
< %{_epoch_prefix}%{version}-%{release}
650 %description -n python
-cephfs
651 This package contains Python
2 libraries
for interacting with Cephs distributed
654 %package -n python
%{python3_pkgversion}-cephfs
655 Summary: Python
3 libraries
for Ceph distributed file system
656 %if 0%{?suse_version}
657 Group: Development
/Languages
/Python
659 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
660 Requires: python
%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
661 %description -n python
%{python3_pkgversion}-cephfs
662 This package contains Python
3 libraries
for interacting with Cephs distributed
665 %package -n python
%{python3_pkgversion}-ceph
-argparse
666 Summary: Python
3 utility libraries
for Ceph CLI
667 %if 0%{?suse_version}
668 Group: Development
/Languages
/Python
670 %description -n python
%{python3_pkgversion}-ceph
-argparse
671 This package contains types and routines
for Python
3 used by the Ceph CLI as
672 well as the RESTful interface. These have to
do with querying the daemons
for
673 command-description information
, validating user
command input against those
674 descriptions
, and submitting the
command to the appropriate daemon.
676 %if 0%{with ceph_test_package}
677 %package -n ceph
-test
678 Summary: Ceph benchmarks and
test tools
679 %if 0%{?suse_version}
680 Group: System
/Benchmark
682 Requires: ceph
-common
685 %description -n ceph
-test
686 This package contains Ceph benchmarks and
test tools.
689 %if 0%{with cephfs_java}
691 %package -n libcephfs_jni1
692 Summary: Java Native Interface library
for CephFS Java bindings
693 %if 0%{?suse_version}
694 Group: System
/Libraries
697 Requires: libcephfs2
= %{_epoch_prefix}%{version}-%{release}
698 %description -n libcephfs_jni1
699 This package contains the Java Native Interface library
for CephFS Java
702 %package -n libcephfs_jni
-devel
703 Summary: Development files
for CephFS Java Native Interface library
704 %if 0%{?suse_version}
705 Group: Development
/Libraries
/Java
708 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
709 Obsoletes
: ceph
-devel
< %{_epoch_prefix}%{version}-%{release}
710 Provides: libcephfs_jni1
-devel
= %{_epoch_prefix}%{version}-%{release}
711 Obsoletes
: libcephfs_jni1
-devel
< %{_epoch_prefix}%{version}-%{release}
712 %description -n libcephfs_jni
-devel
713 This package contains the development files
for CephFS Java Native Interface
716 %package -n cephfs
-java
717 Summary: Java libraries
for the Ceph File System
718 %if 0%{?suse_version}
719 Group: System
/Libraries
722 Requires: libcephfs_jni1
= %{_epoch_prefix}%{version}-%{release}
725 %description -n cephfs
-java
726 This package contains the Java libraries
for the Ceph File System.
730 %package -n rados
-objclass
-devel
731 Summary: RADOS object class development kit
732 Group: Development
/Libraries
733 Requires: librados2
-devel
= %{_epoch_prefix}%{version}-%{release}
734 %description -n rados
-objclass
-devel
735 This package contains libraries and headers needed to develop RADOS object
741 Summary: SELinux support
for Ceph MON
, OSD and MDS
742 %if 0%{?suse_version}
743 Group: System
/Filesystems
745 Requires: ceph
-base
= %{_epoch_prefix}%{version}-%{release}
746 Requires: policycoreutils
, libselinux
-utils
747 Requires(post
): ceph
-base
= %{_epoch_prefix}%{version}-%{release}
748 Requires(post
): selinux
-policy
-base
>= %{_selinux_policy_version}, policycoreutils
, gawk
749 Requires(postun
): policycoreutils
751 This package contains SELinux support
for Ceph MON
, OSD and MDS. The package
752 also performs file
-system relabelling which can take a long
time on heavily
753 populated file
-systems.
757 %package -n python
-ceph
-compat
758 Summary: Compatibility package
for Cephs python libraries
759 %if 0%{?suse_version}
760 Group: Development
/Languages
/Python
762 Obsoletes
: python
-ceph
763 Requires: python
-rados
= %{_epoch_prefix}%{version}-%{release}
764 Requires: python
-rbd
= %{_epoch_prefix}%{version}-%{release}
765 Requires: python
-cephfs
= %{_epoch_prefix}%{version}-%{release}
766 Requires: python
-rgw
= %{_epoch_prefix}%{version}-%{release}
767 Provides: python
-ceph
768 %description -n python
-ceph
-compat
769 This is a compatibility package to accommodate python
-ceph split into
770 python
-rados
, python
-rbd
, python
-rgw and python
-cephfs. Packages still
771 depending on python
-ceph should be fixed to depend on python
-rados
,
772 python
-rbd
, python
-rgw or python
-cephfs instead.
774 #################################################################################
776 #################################################################################
778 %autosetup -p1
-n ceph
-12.1.1
781 %if 0%{with cephfs_java}
783 for i
in /usr
/{lib64
,lib
}/jvm
/java
/include
{,/linux
}; do
784 [ -d $i
] && java_inc
="$java_inc
-I$i"
788 %if %{with lowmem_builder}
789 RPM_OPT_FLAGS
="$RPM_OPT_FLAGS
--param ggc
-min
-expand
=20 --param ggc
-min
-heapsize
=32768"
791 export RPM_OPT_FLAGS
=`
echo $RPM_OPT_FLAGS | sed
-e 's
/i386
/i486
/'`
793 export CPPFLAGS
="$java_inc"
794 export CFLAGS
="$RPM_OPT_FLAGS"
795 export CXXFLAGS
="$RPM_OPT_FLAGS"
799 %if %{with lowmem_builder}
801 %define _smp_mflags
-j8
805 # unlimit _smp_mflags in system macro if not set above
806 %define _smp_ncpus_max
0
807 # extract the number of processors for use with cmake
808 %define _smp_ncpus %
(echo %{_smp_mflags} | sed 's
/-j
//'
)
813 -DCMAKE_INSTALL_PREFIX
=%{_prefix} \
814 -DCMAKE_INSTALL_LIBDIR
=%{_libdir} \
815 -DCMAKE_INSTALL_LIBEXECDIR
=%{_libexecdir} \
816 -DCMAKE_INSTALL_LOCALSTATEDIR
=%{_localstatedir} \
817 -DCMAKE_INSTALL_SYSCONFDIR
=%{_sysconfdir} \
818 -DCMAKE_INSTALL_MANDIR
=%{_mandir} \
819 -DCMAKE_INSTALL_DOCDIR
=%{_docdir}/ceph \
820 -DWITH_EMBEDDED
=OFF \
824 %if 0%{?rhel} && ! 0%{?centos}
830 %if 0%{without ceph_test_package}
833 %if 0%{with cephfs_java}
834 -DWITH_CEPHFS_JAVA
=ON \
841 -DWTIH_BABELTRACE
=ON \
844 -DWTIH_BABELTRACE
=OFF \
846 $CEPH_EXTRA_CMAKE_ARGS \
850 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le
%{ix86} x86_64
851 -DWITH_RADOSGW_BEAST_FRONTEND
=ON \
853 -DWITH_RADOSGW_BEAST_FRONTEND
=OFF \
855 -DBOOST_J
=%{_smp_ncpus}
860 %if 0%{with make_check}
862 # run in-tree unittests
864 ctest
%{?_smp_mflags}
872 make DESTDIR
=%{buildroot} install
873 # we have dropped sysvinit bits
874 rm -f
%{buildroot}/%{_sysconfdir}/init.d
/ceph
876 install -m
0644 -D src
/etc
-rbdmap
%{buildroot}%{_sysconfdir}/ceph
/rbdmap
877 %if 0%{?fedora} || 0%{?rhel}
878 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_sysconfdir}/sysconfig
/ceph
880 %if 0%{?suse_version}
881 install -m
0644 -D etc
/sysconfig
/ceph
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
883 install -m
0644 -D systemd
/ceph.tmpfiles.d
%{buildroot}%{_tmpfilesdir}/ceph
-common.conf
884 install -m
0755 -D systemd
/ceph
%{buildroot}%{_sbindir}/rcceph
885 install -m
0644 -D systemd
/50-ceph.preset
%{buildroot}%{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
886 mkdir -p
%{buildroot}%{_sbindir}
887 install -m
0644 -D src
/logrotate.conf
%{buildroot}%{_sysconfdir}/logrotate.d
/ceph
888 chmod
0644 %{buildroot}%{_docdir}/ceph
/sample.ceph.conf
889 install -m
0644 -D COPYING
%{buildroot}%{_docdir}/ceph
/COPYING
891 # firewall templates and /sbin/mount.ceph symlink
892 %if 0%{?suse_version}
893 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
894 install -m
0644 -D etc
/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
%{buildroot}%{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
895 mkdir -p
%{buildroot}/sbin
896 ln
-sf
%{_sbindir}/mount.ceph %{buildroot}/sbin
/mount.ceph
900 install -m
0644 -D udev
/50-rbd.rules
%{buildroot}%{_udevrulesdir}/50-rbd.rules
901 install -m
0644 -D udev
/60-ceph
-by
-parttypeuuid.rules
%{buildroot}%{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
902 install -m
0644 -D udev
/95-ceph
-osd.rules
%{buildroot}%{_udevrulesdir}/95-ceph
-osd.rules
904 #set up placeholder directories
905 mkdir -p
%{buildroot}%{_sysconfdir}/ceph
906 mkdir -p
%{buildroot}%{_localstatedir}/run
/ceph
907 mkdir -p
%{buildroot}%{_localstatedir}/log
/ceph
908 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/tmp
909 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mon
910 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/osd
911 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mds
912 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/mgr
913 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/radosgw
914 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-osd
915 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mds
916 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-rgw
917 mkdir -p
%{buildroot}%{_localstatedir}/lib
/ceph
/bootstrap
-mgr
919 %if 0%{?suse_version}
920 # create __pycache__ directories and their contents
921 %py3_compile %{buildroot}%{python3_sitelib}
927 #################################################################################
928 # files and systemd scriptlets
929 #################################################################################
934 %{_bindir}/monmaptool
935 %{_bindir}/osdmaptool
937 %{_bindir}/ceph
-detect
-init
938 %{_libexecdir}/systemd
/system
-preset
/50-ceph.preset
939 %{_sbindir}/ceph
-create
-keys
940 %{_sbindir}/ceph
-disk
942 %dir %{_libexecdir}/ceph
943 %{_libexecdir}/ceph
/ceph_common.sh
944 %dir %{_libdir}/rados
-classes
945 %{_libdir}/rados
-classes
/*
947 %dir %{_libdir}/ceph
/erasure
-code
948 %{_libdir}/ceph
/erasure
-code
/libec_
*.so
*
949 %dir %{_libdir}/ceph
/compressor
950 %{_libdir}/ceph
/compressor
/libceph_
*.so
*
952 %dir %{_libdir}/ceph
/crypto
953 %{_libdir}/ceph
/crypto
/libceph_
*.so
*
956 %{_libdir}/libos_tp.so
*
957 %{_libdir}/libosd_tp.so
*
959 %config(noreplace
) %{_sysconfdir}/logrotate.d
/ceph
960 %if 0%{?fedora} || 0%{?rhel}
961 %config(noreplace
) %{_sysconfdir}/sysconfig
/ceph
963 %if 0%{?suse_version}
964 %{_localstatedir}/adm
/fillup
-templates
/sysconfig.
*
965 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-mon
966 %config %{_sysconfdir}/sysconfig
/SuSEfirewall2.d
/services
/ceph
-osd
-mds
968 %{_unitdir}/ceph
-disk@.service
969 %{_unitdir}/ceph.target
970 %{python_sitelib}/ceph_detect_init
*
971 %{python_sitelib}/ceph_disk
*
972 %{_mandir}/man8
/ceph
-deploy
.8*
973 %{_mandir}/man8
/ceph
-detect
-init
.8*
974 %{_mandir}/man8
/ceph
-create
-keys
.8*
975 %{_mandir}/man8
/ceph
-disk
.8*
976 %{_mandir}/man8
/ceph
-run
.8*
977 %{_mandir}/man8
/crushtool
.8*
978 %{_mandir}/man8
/osdmaptool
.8*
979 %{_mandir}/man8
/monmaptool
.8*
980 #set up placeholder directories
981 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/tmp
982 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-osd
983 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mds
984 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-rgw
985 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/bootstrap
-mgr
989 %if 0%{?suse_version}
991 if [ $
1 -eq
1 ] ; then
992 /usr
/bin
/systemctl preset ceph
-disk@\
*.service ceph.target
>/dev
/null
2>&1 ||
:
995 %if 0%{?fedora} || 0%{?rhel}
996 %systemd_post ceph
-disk@\
*.service ceph.target
998 if [ $
1 -eq
1 ] ; then
999 /usr
/bin
/systemctl start ceph.target
>/dev
/null
2>&1 ||
:
1003 %if 0%{?suse_version}
1004 %service_del_preun ceph
-disk@\
*.service ceph.target
1006 %if 0%{?fedora} || 0%{?rhel}
1007 %systemd_preun ceph
-disk@\
*.service ceph.target
1012 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1013 %if 0%{?suse_version}
1014 DISABLE_RESTART_ON_UPDATE
="yes"
1015 %service_del_postun ceph
-disk@\
*.service ceph.target
1017 %if 0%{?fedora} || 0%{?rhel}
1018 %systemd_postun ceph
-disk@\
*.service ceph.target
1020 if [ $FIRST_ARG
-ge
1 ] ; then
1021 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1022 # "yes". In any case: if units are not running, do not touch them.
1023 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1024 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1025 source $SYSCONF_CEPH
1027 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1028 /usr
/bin
/systemctl try
-restart ceph
-disk@\
*.service
> /dev
/null
2>&1 ||
:
1033 %dir %{_docdir}/ceph
1034 %doc %{_docdir}/ceph
/sample.ceph.conf
1035 %doc %{_docdir}/ceph
/COPYING
1037 %{_bindir}/ceph
-authtool
1038 %{_bindir}/ceph
-conf
1039 %{_bindir}/ceph
-dencoder
1040 %{_bindir}/ceph
-rbdnamer
1042 %{_bindir}/ceph
-crush
-location
1043 %{_bindir}/cephfs
-data
-scan
1044 %{_bindir}/cephfs
-journal
-tool
1045 %{_bindir}/cephfs
-table
-tool
1047 %{_bindir}/radosgw
-admin
1049 %{_bindir}/rbd
-replay
1050 %{_bindir}/rbd
-replay
-many
1052 %{_sbindir}/mount.ceph
1053 %if 0%{?suse_version}
1057 %{_bindir}/rbd
-replay
-prep
1059 %{_bindir}/ceph
-post
-file
1060 %{_bindir}/ceph
-brag
1061 %{_tmpfilesdir}/ceph
-common.conf
1062 %{_mandir}/man8
/ceph
-authtool
.8*
1063 %{_mandir}/man8
/ceph
-conf
.8*
1064 %{_mandir}/man8
/ceph
-dencoder
.8*
1065 %{_mandir}/man8
/ceph
-rbdnamer
.8*
1066 %{_mandir}/man8
/ceph
-syn
.8*
1067 %{_mandir}/man8
/ceph
-post
-file
.8*
1068 %{_mandir}/man8
/ceph
.8*
1069 %{_mandir}/man8
/mount.ceph
.8*
1070 %{_mandir}/man8
/rados
.8*
1071 %{_mandir}/man8
/radosgw
-admin
.8*
1072 %{_mandir}/man8
/rbd
.8*
1073 %{_mandir}/man8
/rbdmap
.8*
1074 %{_mandir}/man8
/rbd
-replay
.8*
1075 %{_mandir}/man8
/rbd
-replay
-many
.8*
1076 %{_mandir}/man8
/rbd
-replay
-prep
.8*
1077 %dir %{_datadir}/ceph
/
1078 %{_datadir}/ceph
/known_hosts_drop.ceph.com
1079 %{_datadir}/ceph
/id_rsa_drop.ceph.com
1080 %{_datadir}/ceph
/id_rsa_drop.ceph.com.pub
1081 %dir %{_sysconfdir}/ceph
/
1082 %config %{_sysconfdir}/bash_completion.d
/ceph
1083 %config %{_sysconfdir}/bash_completion.d
/rados
1084 %config %{_sysconfdir}/bash_completion.d
/rbd
1085 %config %{_sysconfdir}/bash_completion.d
/radosgw
-admin
1086 %config(noreplace
) %{_sysconfdir}/ceph
/rbdmap
1087 %{_unitdir}/rbdmap.service
1088 %{python_sitelib}/ceph_argparse.py
*
1089 %{python_sitelib}/ceph_daemon.py
*
1090 %dir %{_udevrulesdir}
1091 %{_udevrulesdir}/50-rbd.rules
1092 %attr(3770,ceph
,ceph
) %dir %{_localstatedir}/log
/ceph
/
1093 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/
1098 %if 0%{?rhel} || 0%{?fedora}
1099 /usr
/sbin
/groupadd ceph
-g $CEPH_GROUP_ID
-o
-r
2>/dev
/null ||
:
1100 /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 ||
:
1102 %if 0%{?suse_version}
1103 if ! getent group ceph
>/dev
/null
; then
1104 CEPH_GROUP_ID_OPTION
=""
1105 getent group $CEPH_GROUP_ID
>/dev
/null || CEPH_GROUP_ID_OPTION
="
-g $CEPH_GROUP_ID"
1106 groupadd ceph $CEPH_GROUP_ID_OPTION
-r
2>/dev
/null ||
:
1108 if ! getent passwd ceph
>/dev
/null
; then
1109 CEPH_USER_ID_OPTION
=""
1110 getent passwd $CEPH_USER_ID
>/dev
/null || CEPH_USER_ID_OPTION
="
-u $CEPH_USER_ID"
1111 useradd ceph $CEPH_USER_ID_OPTION
-r
-g ceph
-s
/sbin
/nologin
2>/dev
/null ||
:
1113 usermod
-c "Ceph storage service" \
1114 -d
%{_localstatedir}/lib
/ceph \
1122 %tmpfiles_create %{_tmpfilesdir}/ceph
-common.conf
1125 # Package removal cleanup
1126 if [ "$
1"
-eq "
0"
] ; then
1127 rm -rf
%{_localstatedir}/log
/ceph
1128 rm -rf
%{_sysconfdir}/ceph
1133 %{_mandir}/man8
/ceph
-mds
.8*
1134 %{_unitdir}/ceph
-mds@.service
1135 %{_unitdir}/ceph
-mds.target
1136 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mds
1139 %if 0%{?suse_version}
1140 if [ $
1 -eq
1 ] ; then
1141 /usr
/bin
/systemctl preset ceph
-mds@\
*.service ceph
-mds.target
>/dev
/null
2>&1 ||
:
1144 %if 0%{?fedora} || 0%{?rhel}
1145 %systemd_post ceph
-mds@\
*.service ceph
-mds.target
1147 if [ $
1 -eq
1 ] ; then
1148 /usr
/bin
/systemctl start ceph
-mds.target
>/dev
/null
2>&1 ||
:
1152 %if 0%{?suse_version}
1153 %service_del_preun ceph
-mds@\
*.service ceph
-mds.target
1155 %if 0%{?fedora} || 0%{?rhel}
1156 %systemd_preun ceph
-mds@\
*.service ceph
-mds.target
1160 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1161 %if 0%{?suse_version}
1162 DISABLE_RESTART_ON_UPDATE
="yes"
1163 %service_del_postun ceph
-mds@\
*.service ceph
-mds.target
1165 %if 0%{?fedora} || 0%{?rhel}
1166 %systemd_postun ceph
-mds@\
*.service ceph
-mds.target
1168 if [ $FIRST_ARG
-ge
1 ] ; then
1169 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1170 # "yes". In any case: if units are not running, do not touch them.
1171 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1172 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1173 source $SYSCONF_CEPH
1175 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1176 /usr
/bin
/systemctl try
-restart ceph
-mds@\
*.service
> /dev
/null
2>&1 ||
:
1183 %{_unitdir}/ceph
-mgr@.service
1184 %{_unitdir}/ceph
-mgr.target
1185 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mgr
1188 %if 0%{?suse_version}
1189 if [ $
1 -eq
1 ] ; then
1190 /usr
/bin
/systemctl preset ceph
-mgr@\
*.service ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1193 %if 0%{?fedora} || 0%{?rhel}
1194 %systemd_post ceph
-mgr@\
*.service ceph
-mgr.target
1196 if [ $
1 -eq
1 ] ; then
1197 /usr
/bin
/systemctl start ceph
-mgr.target
>/dev
/null
2>&1 ||
:
1201 %if 0%{?suse_version}
1202 %service_del_preun ceph
-mgr@\
*.service ceph
-mgr.target
1204 %if 0%{?fedora} || 0%{?rhel}
1205 %systemd_preun ceph
-mgr@\
*.service ceph
-mgr.target
1209 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1210 %if 0%{?suse_version}
1211 DISABLE_RESTART_ON_UPDATE
="yes"
1212 %service_del_postun ceph
-mgr@\
*.service ceph
-mgr.target
1214 %if 0%{?fedora} || 0%{?rhel}
1215 %systemd_postun ceph
-mgr@\
*.service ceph
-mgr.target
1217 if [ $FIRST_ARG
-ge
1 ] ; then
1218 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1219 # "yes". In any case: if units are not running, do not touch them.
1220 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1221 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1222 source $SYSCONF_CEPH
1224 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1225 /usr
/bin
/systemctl try
-restart ceph
-mgr@\
*.service
> /dev
/null
2>&1 ||
:
1231 %{_bindir}/ceph
-rest
-api
1232 %{_mandir}/man8
/ceph
-mon
.8*
1233 %{_mandir}/man8
/ceph
-rest
-api
.8*
1234 %{python_sitelib}/ceph_rest_api.py
*
1235 %{_unitdir}/ceph
-mon@.service
1236 %{_unitdir}/ceph
-mon.target
1237 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/mon
1240 %if 0%{?suse_version}
1241 if [ $
1 -eq
1 ] ; then
1242 /usr
/bin
/systemctl preset ceph
-mon@\
*.service ceph
-mon.target
>/dev
/null
2>&1 ||
:
1245 %if 0%{?fedora} || 0%{?rhel}
1246 %systemd_post ceph
-mon@\
*.service ceph
-mon.target
1248 if [ $
1 -eq
1 ] ; then
1249 /usr
/bin
/systemctl start ceph
-mon.target
>/dev
/null
2>&1 ||
:
1253 %if 0%{?suse_version}
1254 %service_del_preun ceph
-mon@\
*.service ceph
-mon.target
1256 %if 0%{?fedora} || 0%{?rhel}
1257 %systemd_preun ceph
-mon@\
*.service ceph
-mon.target
1261 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1262 %if 0%{?suse_version}
1263 DISABLE_RESTART_ON_UPDATE
="yes"
1264 %service_del_postun ceph
-mon@\
*.service ceph
-mon.target
1266 %if 0%{?fedora} || 0%{?rhel}
1267 %systemd_postun ceph
-mon@\
*.service ceph
-mon.target
1269 if [ $FIRST_ARG
-ge
1 ] ; then
1270 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1271 # "yes". In any case: if units are not running, do not touch them.
1272 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1273 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1274 source $SYSCONF_CEPH
1276 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1277 /usr
/bin
/systemctl try
-restart ceph
-mon@\
*.service
> /dev
/null
2>&1 ||
:
1282 %{_bindir}/ceph
-fuse
1283 %{_mandir}/man8
/ceph
-fuse
.8*
1284 %{_sbindir}/mount.fuse.ceph
1285 %{_unitdir}/ceph
-fuse@.service
1286 %{_unitdir}/ceph
-fuse.target
1290 %{_mandir}/man8
/rbd
-fuse
.8*
1292 %files -n rbd
-mirror
1293 %{_bindir}/rbd
-mirror
1294 %{_mandir}/man8
/rbd
-mirror
.8*
1295 %{_unitdir}/ceph
-rbd
-mirror@.service
1296 %{_unitdir}/ceph
-rbd
-mirror.target
1299 %if 0%{?suse_version}
1300 if [ $
1 -eq
1 ] ; then
1301 /usr
/bin
/systemctl preset ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1304 %if 0%{?fedora} || 0%{?rhel}
1305 %systemd_post ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1307 if [ $
1 -eq
1 ] ; then
1308 /usr
/bin
/systemctl start ceph
-rbd
-mirror.target
>/dev
/null
2>&1 ||
:
1311 %preun -n rbd
-mirror
1312 %if 0%{?suse_version}
1313 %service_del_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1315 %if 0%{?fedora} || 0%{?rhel}
1316 %systemd_preun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1319 %postun -n rbd
-mirror
1320 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1321 %if 0%{?suse_version}
1322 DISABLE_RESTART_ON_UPDATE
="yes"
1323 %service_del_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1325 %if 0%{?fedora} || 0%{?rhel}
1326 %systemd_postun ceph
-rbd
-mirror@\
*.service ceph
-rbd
-mirror.target
1328 if [ $FIRST_ARG
-ge
1 ] ; then
1329 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1330 # "yes". In any case: if units are not running, do not touch them.
1331 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1332 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1333 source $SYSCONF_CEPH
1335 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1336 /usr
/bin
/systemctl try
-restart ceph
-rbd
-mirror@\
*.service
> /dev
/null
2>&1 ||
:
1342 %{_mandir}/man8
/rbd
-nbd
.8*
1346 %{_bindir}/radosgw
-token
1347 %{_bindir}/radosgw
-es
1348 %{_bindir}/radosgw
-object
-expirer
1349 %{_mandir}/man8
/radosgw
.8*
1350 %dir %{_localstatedir}/lib
/ceph
/radosgw
1351 %{_unitdir}/ceph
-radosgw@.service
1352 %{_unitdir}/ceph
-radosgw.target
1355 %if 0%{?suse_version}
1356 if [ $
1 -eq
1 ] ; then
1357 /usr
/bin
/systemctl preset ceph
-radosgw@\
*.service ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1360 %if 0%{?fedora} || 0%{?rhel}
1361 %systemd_post ceph
-radosgw@\
*.service ceph
-radosgw.target
1363 if [ $
1 -eq
1 ] ; then
1364 /usr
/bin
/systemctl start ceph
-radosgw.target
>/dev
/null
2>&1 ||
:
1368 %if 0%{?suse_version}
1369 %service_del_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1371 %if 0%{?fedora} || 0%{?rhel}
1372 %systemd_preun ceph
-radosgw@\
*.service ceph
-radosgw.target
1376 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1377 %if 0%{?suse_version}
1378 DISABLE_RESTART_ON_UPDATE
="yes"
1379 %service_del_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1381 %if 0%{?fedora} || 0%{?rhel}
1382 %systemd_postun ceph
-radosgw@\
*.service ceph
-radosgw.target
1384 if [ $FIRST_ARG
-ge
1 ] ; then
1385 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1386 # "yes". In any case: if units are not running, do not touch them.
1387 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1388 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1389 source $SYSCONF_CEPH
1391 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1392 /usr
/bin
/systemctl try
-restart ceph
-radosgw@\
*.service
> /dev
/null
2>&1 ||
:
1397 %{_bindir}/ceph
-clsinfo
1398 %{_bindir}/ceph
-bluestore
-tool
1399 %{_bindir}/ceph
-objectstore
-tool
1401 %{_libexecdir}/ceph
/ceph
-osd
-prestart.sh
1402 %dir %{_udevrulesdir}
1403 %{_udevrulesdir}/60-ceph
-by
-parttypeuuid.rules
1404 %{_udevrulesdir}/95-ceph
-osd.rules
1405 %{_mandir}/man8
/ceph
-clsinfo
.8*
1406 %{_mandir}/man8
/ceph
-osd
.8*
1407 %if 0%{?rhel} && ! 0%{?centos}
1408 %attr(0755,-,-) %{_sysconfdir}/cron.hourly
/subman
1410 %{_unitdir}/ceph
-osd@.service
1411 %{_unitdir}/ceph
-osd.target
1412 %attr(750,ceph
,ceph
) %dir %{_localstatedir}/lib
/ceph
/osd
1415 %if 0%{?suse_version}
1416 if [ $
1 -eq
1 ] ; then
1417 /usr
/bin
/systemctl preset ceph
-osd@\
*.service ceph
-osd.target
>/dev
/null
2>&1 ||
:
1420 %if 0%{?fedora} || 0%{?rhel}
1421 %systemd_post ceph
-osd@\
*.service ceph
-osd.target
1423 if [ $
1 -eq
1 ] ; then
1424 /usr
/bin
/systemctl start ceph
-osd.target
>/dev
/null
2>&1 ||
:
1428 %if 0%{?suse_version}
1429 %service_del_preun ceph
-osd@\
*.service ceph
-osd.target
1431 %if 0%{?fedora} || 0%{?rhel}
1432 %systemd_preun ceph
-osd@\
*.service ceph
-osd.target
1436 test -n "$FIRST_ARG" || FIRST_ARG
=$
1
1437 %if 0%{?suse_version}
1438 DISABLE_RESTART_ON_UPDATE
="yes"
1439 %service_del_postun ceph
-osd@\
*.service ceph
-osd.target
1441 %if 0%{?fedora} || 0%{?rhel}
1442 %systemd_postun ceph
-osd@\
*.service ceph
-osd.target
1444 if [ $FIRST_ARG
-ge
1 ] ; then
1445 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1446 # "yes". In any case: if units are not running, do not touch them.
1447 SYSCONF_CEPH
=%{_sysconfdir}/sysconfig
/ceph
1448 if [ -f $SYSCONF_CEPH
-a
-r $SYSCONF_CEPH
] ; then
1449 source $SYSCONF_CEPH
1451 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE"
= "Xyes"
] ; then
1452 /usr
/bin
/systemctl try
-restart ceph
-osd@\
*.service
> /dev
/null
2>&1 ||
:
1458 %files resource
-agents
1459 %dir %{_prefix}/lib
/ocf
1460 %dir %{_prefix}/lib
/ocf
/resource.d
1461 %dir %{_prefix}/lib
/ocf
/resource.d
/ceph
1462 %{_prefix}/lib
/ocf
/resource.d
/ceph
/rbd
1467 %{_libdir}/librados.so.
*
1468 %dir %{_libdir}/ceph
1469 %{_libdir}/ceph
/libceph
-common.so
*
1471 %{_libdir}/librados_tp.so.
*
1474 %post -n librados2
-p
/sbin
/ldconfig
1476 %postun -n librados2
-p
/sbin
/ldconfig
1478 %files -n librados
-devel
1479 %dir %{_includedir}/rados
1480 %{_includedir}/rados
/librados.h
1481 %{_includedir}/rados
/librados.hpp
1482 %{_includedir}/rados
/buffer.h
1483 %{_includedir}/rados
/buffer_fwd.h
1484 %{_includedir}/rados
/inline_memory.h
1485 %{_includedir}/rados
/page.h
1486 %{_includedir}/rados
/crc32c.h
1487 %{_includedir}/rados
/rados_types.h
1488 %{_includedir}/rados
/rados_types.hpp
1489 %{_includedir}/rados
/memory.h
1490 %{_libdir}/librados.so
1492 %{_libdir}/librados_tp.so
1494 %{_bindir}/librados
-config
1495 %{_mandir}/man8
/librados
-config
.8*
1497 %files -n python
-rados
1498 %{python_sitearch}/rados.so
1499 %{python_sitearch}/rados
-*.egg
-info
1501 %files -n python
%{python3_pkgversion}-rados
1502 %{python3_sitearch}/rados.cpython
*.so
1503 %{python3_sitearch}/rados
-*.egg
-info
1505 %files -n libradosstriper1
1506 %{_libdir}/libradosstriper.so.
*
1508 %post -n libradosstriper1
-p
/sbin
/ldconfig
1510 %postun -n libradosstriper1
-p
/sbin
/ldconfig
1512 %files -n libradosstriper
-devel
1513 %dir %{_includedir}/radosstriper
1514 %{_includedir}/radosstriper
/libradosstriper.h
1515 %{_includedir}/radosstriper
/libradosstriper.hpp
1516 %{_libdir}/libradosstriper.so
1519 %{_libdir}/librbd.so.
*
1521 %{_libdir}/librbd_tp.so.
*
1526 mkdir -p
/usr
/lib64
/qemu
/
1527 ln
-sf
%{_libdir}/librbd.so
.1 /usr
/lib64
/qemu
/librbd.so
.1
1529 %postun -n librbd1
-p
/sbin
/ldconfig
1531 %files -n librbd
-devel
1532 %dir %{_includedir}/rbd
1533 %{_includedir}/rbd
/librbd.h
1534 %{_includedir}/rbd
/librbd.hpp
1535 %{_includedir}/rbd
/features.h
1536 %{_libdir}/librbd.so
1538 %{_libdir}/librbd_tp.so
1542 %{_libdir}/librgw.so.
*
1544 %post -n librgw2
-p
/sbin
/ldconfig
1546 %postun -n librgw2
-p
/sbin
/ldconfig
1548 %files -n librgw
-devel
1549 %dir %{_includedir}/rados
1550 %{_includedir}/rados
/librgw.h
1551 %{_includedir}/rados
/rgw_file.h
1552 %{_libdir}/librgw.so
1554 %files -n python
-rgw
1555 %{python_sitearch}/rgw.so
1556 %{python_sitearch}/rgw
-*.egg
-info
1558 %files -n python
%{python3_pkgversion}-rgw
1559 %{python3_sitearch}/rgw.cpython
*.so
1560 %{python3_sitearch}/rgw
-*.egg
-info
1562 %files -n python
-rbd
1563 %{python_sitearch}/rbd.so
1564 %{python_sitearch}/rbd
-*.egg
-info
1566 %files -n python
%{python3_pkgversion}-rbd
1567 %{python3_sitearch}/rbd.cpython
*.so
1568 %{python3_sitearch}/rbd
-*.egg
-info
1570 %files -n libcephfs2
1571 %{_libdir}/libcephfs.so.
*
1573 %post -n libcephfs2
-p
/sbin
/ldconfig
1575 %postun -n libcephfs2
-p
/sbin
/ldconfig
1577 %files -n libcephfs
-devel
1578 %dir %{_includedir}/cephfs
1579 %{_includedir}/cephfs
/libcephfs.h
1580 %{_includedir}/cephfs
/ceph_statx.h
1581 %{_libdir}/libcephfs.so
1583 %files -n python
-cephfs
1584 %{python_sitearch}/cephfs.so
1585 %{python_sitearch}/cephfs
-*.egg
-info
1586 %{python_sitelib}/ceph_volume_client.py
*
1588 %files -n python
%{python3_pkgversion}-cephfs
1589 %{python3_sitearch}/cephfs.cpython
*.so
1590 %{python3_sitearch}/cephfs
-*.egg
-info
1591 %{python3_sitelib}/ceph_volume_client.py
1592 %{python3_sitelib}/__pycache__
/ceph_volume_client.cpython
*.py
*
1594 %files -n python
%{python3_pkgversion}-ceph
-argparse
1595 %{python3_sitelib}/ceph_argparse.py
1596 %{python3_sitelib}/__pycache__
/ceph_argparse.cpython
*.py
*
1597 %{python3_sitelib}/ceph_daemon.py
1598 %{python3_sitelib}/__pycache__
/ceph_daemon.cpython
*.py
*
1600 %if 0%{with ceph_test_package}
1602 %{_bindir}/ceph
-client
-debug
1603 %{_bindir}/ceph_bench_log
1604 %{_bindir}/ceph_kvstorebench
1605 %{_bindir}/ceph_multi_stress_watch
1606 %{_bindir}/ceph_erasure_code
1607 %{_bindir}/ceph_erasure_code_benchmark
1608 %{_bindir}/ceph_omapbench
1609 %{_bindir}/ceph_objectstore_bench
1610 %{_bindir}/ceph_perf_objectstore
1611 %{_bindir}/ceph_perf_local
1612 %{_bindir}/ceph_perf_msgr_client
1613 %{_bindir}/ceph_perf_msgr_server
1614 %{_bindir}/ceph_psim
1615 %{_bindir}/ceph_radosacl
1616 %{_bindir}/ceph_rgw_jsonparser
1617 %{_bindir}/ceph_rgw_multiparser
1618 %{_bindir}/ceph_scratchtool
1619 %{_bindir}/ceph_scratchtoolpp
1620 %{_bindir}/ceph_smalliobench
1621 %{_bindir}/ceph_smalliobenchdumb
1622 %{_bindir}/ceph_smalliobenchfs
1623 %{_bindir}/ceph_smalliobenchrbd
1624 %{_bindir}/ceph_test_
*
1625 %{_bindir}/ceph_tpbench
1626 %{_bindir}/ceph_xattr_bench
1627 %{_bindir}/ceph
-coverage
1628 %{_bindir}/ceph
-monstore
-tool
1629 %{_bindir}/ceph
-osdomap
-tool
1630 %{_bindir}/ceph
-kvstore
-tool
1631 %{_bindir}/ceph
-debugpack
1632 %{_mandir}/man8
/ceph
-debugpack
.8*
1633 %dir %{_libdir}/ceph
1634 %{_libdir}/ceph
/ceph
-monstore
-update
-crush.sh
1637 %if 0%{with cephfs_java}
1638 %files -n libcephfs_jni1
1639 %{_libdir}/libcephfs_jni.so.
*
1641 %post -n libcephfs_jni1
-p
/sbin
/ldconfig
1643 %postun -n libcephfs_jni1
-p
/sbin
/ldconfig
1645 %files -n libcephfs_jni
-devel
1646 %{_libdir}/libcephfs_jni.so
1648 %files -n cephfs
-java
1649 %{_javadir}/libcephfs.jar
1650 %{_javadir}/libcephfs
-test.jar
1653 %files -n rados
-objclass
-devel
1654 %dir %{_includedir}/rados
1655 %{_includedir}/rados
/objclass.h
1657 %if 0%{with selinux}
1659 %attr(0600,root
,root
) %{_datadir}/selinux
/packages
/ceph.pp
1660 %{_datadir}/selinux
/devel
/include
/contrib
/ceph.
if
1661 %{_mandir}/man8
/ceph_selinux
.8*
1664 # backup file_contexts before update
1665 .
/etc
/selinux
/config
1666 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1667 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1669 # Install the policy
1670 /usr
/sbin
/semodule
-i
%{_datadir}/selinux
/packages
/ceph.pp
1672 # Load the policy if SELinux is enabled
1673 if ! /usr
/sbin
/selinuxenabled
; then
1674 # Do not relabel if selinux is not enabled
1678 if diff $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
> /dev
/null
2>&1; then
1679 # Do not relabel if file contexts did not change
1683 # Check whether the daemons are running
1684 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1687 # Stop the daemons if they were running
1688 if test $STATUS
-eq
0; then
1689 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1693 # Use ceph-disk fix for first package install and fixfiles otherwise
1694 if [ "$
1"
= "
1"
]; then
1695 /usr
/sbin
/ceph
-disk fix
--selinux
1697 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1700 rm -f $
{FILE_CONTEXT
}.pre
1701 # The fixfiles command won't fix label for /var/run/ceph
1702 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1704 # Start the daemons iff they were running before
1705 if test $STATUS
-eq
0; then
1706 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1711 if [ $
1 -eq
0 ]; then
1712 # backup file_contexts before update
1713 .
/etc
/selinux
/config
1714 FILE_CONTEXT
=/etc
/selinux
/$
{SELINUXTYPE
}/contexts
/files
/file_contexts
1715 cp $
{FILE_CONTEXT
} $
{FILE_CONTEXT
}.pre
1718 /usr
/sbin
/semodule
-n
-r ceph
> /dev
/null
2>&1
1720 # Reload the policy if SELinux is enabled
1721 if ! /usr
/sbin
/selinuxenabled
; then
1722 # Do not relabel if SELinux is not enabled
1726 # Check whether the daemons are running
1727 /usr
/bin
/systemctl status ceph.target
> /dev
/null
2>&1
1730 # Stop the daemons if they were running
1731 if test $STATUS
-eq
0; then
1732 /usr
/bin
/systemctl stop ceph.target
> /dev
/null
2>&1
1735 /usr
/sbin
/fixfiles
-C $
{FILE_CONTEXT
}.pre restore
2> /dev
/null
1736 rm -f $
{FILE_CONTEXT
}.pre
1737 # The fixfiles command won't fix label for /var/run/ceph
1738 /usr
/sbin
/restorecon
-R
/var
/run
/ceph
> /dev
/null
2>&1
1740 # Start the daemons if they were running before
1741 if test $STATUS
-eq
0; then
1742 /usr
/bin
/systemctl start ceph.target
> /dev
/null
2>&1 ||
:
1747 %endif # with selinux
1749 %files -n python
-ceph
-compat
1750 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
1751 # actually build this meta package.