]> git.proxmox.com Git - ceph.git/blob - ceph/ceph.spec.in
update source to 12.2.11
[ceph.git] / ceph / ceph.spec.in
1 # vim: set noexpandtab ts=8 sw=8 :
2 #
3 # spec file for package ceph
4 #
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
8 #
9 # All modifications and additions to the file contributed by third parties
10 # remain the property of their copyright owners, unless otherwise agreed
11 # upon.
12 #
13 # This file is under the GNU Lesser General Public License, version 2.1
14 #
15 # Please submit bugfixes or comments via http://tracker.ceph.com/
16 #
17 %bcond_without ocf
18 %bcond_without cephfs_java
19 %if 0%{?suse_version}
20 %bcond_with ceph_test_package
21 %else
22 %bcond_without ceph_test_package
23 %endif
24 %bcond_with make_check
25 %ifarch s390 s390x
26 %bcond_with tcmalloc
27 %else
28 %bcond_without tcmalloc
29 %endif
30 %bcond_with lowmem_builder
31 %if 0%{?fedora} || 0%{?rhel}
32 %bcond_without selinux
33 %endif
34 %if 0%{?suse_version}
35 %bcond_with selinux
36 %endif
37
38 # LTTng-UST enabled on Fedora, RHEL 6+, and SLE (not openSUSE)
39 %if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version}
40 %if ! 0%{?is_opensuse}
41 %bcond_without lttng
42 %endif
43 %endif
44
45 %if %{with selinux}
46 # get selinux policy version
47 %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0}
48 %endif
49
50 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
51 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
52 %{!?python3_pkgversion: %global python3_pkgversion 3}
53
54 # unify libexec for all targets
55 %global _libexecdir %{_exec_prefix}/lib
56
57 # disable dwz which compresses the debuginfo
58 %global _find_debuginfo_dwz_opts %{nil}
59
60 #################################################################################
61 # main package definition
62 #################################################################################
63 Name: ceph
64 Version: @VERSION@
65 Release: @RPM_RELEASE@%{?dist}
66 %if 0%{?fedora} || 0%{?rhel}
67 Epoch: 2
68 %endif
69
70 # define _epoch_prefix macro which will expand to the empty string if epoch is
71 # undefined
72 %global _epoch_prefix %{?epoch:%{epoch}:}
73
74 Summary: User space components of the Ceph file system
75 License: LGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
76 %if 0%{?suse_version}
77 Group: System/Filesystems
78 %endif
79 URL: http://ceph.com/
80 Source0: http://ceph.com/download/@TARBALL_BASENAME@.tar.bz2
81 %if 0%{?suse_version}
82 %if 0%{?is_opensuse}
83 ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
84 %else
85 ExclusiveArch: x86_64 aarch64 ppc64le s390x
86 %endif
87 %endif
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
99 %endif
100 %if 0%{with selinux}
101 BuildRequires: checkpolicy
102 BuildRequires: selinux-policy-devel
103 %endif
104 %if 0%{with make_check}
105 %if 0%{?fedora} || 0%{?rhel}
106 BuildRequires: python-cherrypy
107 BuildRequires: python-werkzeug
108 %endif
109 %if 0%{?suse_version}
110 BuildRequires: python-CherryPy
111 BuildRequires: python-Werkzeug
112 BuildRequires: python-numpy-devel
113 %endif
114 BuildRequires: python-coverage
115 BuildRequires: python-pecan
116 BuildRequires: socat
117 %endif
118 BuildRequires: bc
119 BuildRequires: gperf
120 BuildRequires: cmake
121 BuildRequires: cryptsetup
122 BuildRequires: fuse-devel
123 BuildRequires: gcc-c++
124 BuildRequires: gdbm
125 %if 0%{with tcmalloc}
126 %if 0%{?fedora} || 0%{?rhel}
127 BuildRequires: gperftools-devel >= 2.6.1
128 %endif
129 %if 0%{?suse_version}
130 BuildRequires: gperftools-devel >= 2.4
131 %endif
132 %endif
133 BuildRequires: jq
134 BuildRequires: leveldb-devel > 1.2
135 BuildRequires: libaio-devel
136 BuildRequires: libblkid-devel >= 2.17
137 BuildRequires: libcurl-devel
138 BuildRequires: libudev-devel
139 BuildRequires: libtool
140 BuildRequires: libxml2-devel
141 BuildRequires: make
142 BuildRequires: parted
143 BuildRequires: perl
144 BuildRequires: pkgconfig
145 BuildRequires: python
146 BuildRequires: python-devel
147 BuildRequires: python-nose
148 BuildRequires: python-requests
149 BuildRequires: python-six
150 BuildRequires: python-virtualenv
151 BuildRequires: snappy-devel
152 BuildRequires: udev
153 BuildRequires: util-linux
154 BuildRequires: valgrind-devel
155 BuildRequires: which
156 BuildRequires: xfsprogs
157 BuildRequires: xfsprogs-devel
158 BuildRequires: xmlstarlet
159 BuildRequires: yasm
160
161 #################################################################################
162 # distro-conditional dependencies
163 #################################################################################
164 %if 0%{?suse_version}
165 BuildRequires: pkgconfig(systemd)
166 BuildRequires: systemd-rpm-macros
167 BuildRequires: systemd
168 %{?systemd_requires}
169 PreReq: %fillup_prereq
170 BuildRequires: net-tools
171 BuildRequires: libbz2-devel
172 BuildRequires: btrfsprogs
173 BuildRequires: mozilla-nss-devel
174 BuildRequires: keyutils-devel
175 BuildRequires: libopenssl-devel
176 BuildRequires: lsb-release
177 BuildRequires: openldap2-devel
178 BuildRequires: python-Cython
179 BuildRequires: python-PrettyTable
180 BuildRequires: python-Sphinx
181 BuildRequires: rdma-core-devel
182 %endif
183 %if 0%{?fedora} || 0%{?rhel}
184 Requires: systemd
185 BuildRequires: boost-random
186 BuildRequires: btrfs-progs
187 BuildRequires: nss-devel
188 BuildRequires: keyutils-libs-devel
189 BuildRequires: libibverbs-devel
190 BuildRequires: openldap-devel
191 BuildRequires: openssl-devel
192 BuildRequires: redhat-lsb-core
193 BuildRequires: Cython
194 BuildRequires: python-prettytable
195 BuildRequires: python-sphinx
196 %endif
197 # python34-... for RHEL, python3-... for all other supported distros
198 %if 0%{?rhel}
199 BuildRequires: python34-devel
200 BuildRequires: python34-setuptools
201 BuildRequires: python34-Cython
202 %else
203 BuildRequires: python3-devel
204 BuildRequires: python3-setuptools
205 BuildRequires: python3-Cython
206 %endif
207 # lttng and babeltrace for rbd-replay-prep
208 %if %{with lttng}
209 %if 0%{?fedora} || 0%{?rhel}
210 BuildRequires: lttng-ust-devel
211 BuildRequires: libbabeltrace-devel
212 %endif
213 %if 0%{?suse_version}
214 BuildRequires: lttng-ust-devel
215 BuildRequires: babeltrace-devel
216 %endif
217 %endif
218 %if 0%{?suse_version}
219 BuildRequires: libexpat-devel
220 %endif
221 %if 0%{?rhel} || 0%{?fedora}
222 BuildRequires: expat-devel
223 %endif
224 #hardened-cc1
225 %if 0%{?fedora} || 0%{?rhel}
226 BuildRequires: redhat-rpm-config
227 %endif
228
229 %description
230 Ceph is a massively scalable, open-source, distributed storage system that runs
231 on commodity hardware and delivers object, block and file system storage.
232
233
234 #################################################################################
235 # subpackages
236 #################################################################################
237 %package base
238 Summary: Ceph Base Package
239 %if 0%{?suse_version}
240 Group: System/Filesystems
241 %endif
242 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
243 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
244 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
245 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
246 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
247 %if 0%{with selinux}
248 Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
249 %endif
250 Requires: python
251 Requires: python-requests
252 Requires: python-setuptools
253 Requires: grep
254 Requires: xfsprogs
255 Requires: e2fsprogs
256 Requires: logrotate
257 Requires: parted
258 Requires: util-linux
259 Requires: cryptsetup
260 Requires: findutils
261 Requires: psmisc
262 Requires: which
263 %if 0%{?fedora} || 0%{?rhel}
264 Requires: gdisk
265 # The following is necessary due to tracker 36508 and can be removed once the
266 # associated upstream bugs are resolved.
267 %if 0%{with tcmalloc}
268 Requires: gperftools-libs >= 2.6.1
269 %endif
270 %endif
271 %if 0%{?suse_version}
272 Recommends: ntp-daemon
273 Requires: gptfdisk
274 %endif
275 %description base
276 Base is the package that includes all the files shared amongst ceph servers
277
278 %package -n ceph-common
279 Summary: Ceph Common
280 %if 0%{?suse_version}
281 Group: System/Filesystems
282 %endif
283 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
284 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
285 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
286 Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
287 Requires: python-rbd = %{_epoch_prefix}%{version}-%{release}
288 Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release}
289 Requires: python-rgw = %{_epoch_prefix}%{version}-%{release}
290 %if 0%{?fedora} || 0%{?rhel}
291 Requires: python-prettytable
292 %endif
293 %if 0%{?suse_version}
294 Requires: python-PrettyTable
295 %endif
296 Requires: python-requests
297 %{?systemd_requires}
298 %if 0%{?suse_version}
299 Requires(pre): pwdutils
300 %endif
301 %description -n ceph-common
302 Common utilities to mount and interact with a ceph storage cluster.
303 Comprised of files that are common to Ceph clients and servers.
304
305 %package mds
306 Summary: Ceph Metadata Server Daemon
307 %if 0%{?suse_version}
308 Group: System/Filesystems
309 %endif
310 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
311 %description mds
312 ceph-mds is the metadata server daemon for the Ceph distributed file system.
313 One or more instances of ceph-mds collectively manage the file system
314 namespace, coordinating access to the shared OSD cluster.
315
316 %package mon
317 Summary: Ceph Monitor Daemon
318 %if 0%{?suse_version}
319 Group: System/Filesystems
320 %endif
321 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
322 # For ceph-rest-api
323 %if 0%{?fedora} || 0%{?rhel}
324 Requires: python-flask
325 %endif
326 %if 0%{?suse_version}
327 Requires: python-Flask
328 %endif
329 %description mon
330 ceph-mon is the cluster monitor daemon for the Ceph distributed file
331 system. One or more instances of ceph-mon form a Paxos part-time
332 parliament cluster that provides extremely reliable and durable storage
333 of cluster membership, configuration, and state.
334
335 %package mgr
336 Summary: Ceph Manager Daemon
337 %if 0%{?suse_version}
338 Group: System/Filesystems
339 %endif
340 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
341 Requires: python-six
342 %if 0%{?fedora} || 0%{?rhel}
343 Requires: python-cherrypy
344 Requires: python-jinja2
345 Requires: python-werkzeug
346 Requires: pyOpenSSL
347 %endif
348 %if 0%{?suse_version}
349 Requires: python-CherryPy
350 Requires: python-Jinja2
351 Requires: python-Werkzeug
352 Requires: python-pyOpenSSL
353 %endif
354 Requires: python-pecan
355 %description mgr
356 ceph-mgr enables python modules that provide services (such as the REST
357 module derived from Calamari) and expose CLI hooks. ceph-mgr gathers
358 the cluster maps, the daemon metadata, and performance counters, and
359 exposes all these to the python modules.
360
361 %package fuse
362 Summary: Ceph fuse-based client
363 %if 0%{?suse_version}
364 Group: System/Filesystems
365 %endif
366 Requires: fuse
367 %description fuse
368 FUSE based client for Ceph distributed network file system
369
370 %package -n rbd-fuse
371 Summary: Ceph fuse-based client
372 %if 0%{?suse_version}
373 Group: System/Filesystems
374 %endif
375 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
376 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
377 %description -n rbd-fuse
378 FUSE based client to map Ceph rbd images to files
379
380 %package -n rbd-mirror
381 Summary: Ceph daemon for mirroring RBD images
382 %if 0%{?suse_version}
383 Group: System/Filesystems
384 %endif
385 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
386 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
387 %description -n rbd-mirror
388 Daemon for mirroring RBD images between Ceph clusters, streaming
389 changes asynchronously.
390
391 %package -n rbd-nbd
392 Summary: Ceph RBD client base on NBD
393 %if 0%{?suse_version}
394 Group: System/Filesystems
395 %endif
396 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
397 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
398 %description -n rbd-nbd
399 NBD based client to map Ceph rbd images to local device
400
401 %package radosgw
402 Summary: Rados REST gateway
403 %if 0%{?suse_version}
404 Group: System/Filesystems
405 %endif
406 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
407 %if 0%{with selinux}
408 Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
409 %endif
410 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
411 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
412 %if 0%{?rhel} || 0%{?fedora}
413 Requires: mailcap
414 %endif
415 %description radosgw
416 RADOS is a distributed object store used by the Ceph distributed
417 storage system. This package provides a REST gateway to the
418 object store that aims to implement a superset of Amazon's S3
419 service as well as the OpenStack Object Storage ("Swift") API.
420
421 %if %{with ocf}
422 %package resource-agents
423 Summary: OCF-compliant resource agents for Ceph daemons
424 %if 0%{?suse_version}
425 Group: System/Filesystems
426 %endif
427 Requires: ceph-base = %{_epoch_prefix}%{version}
428 Requires: resource-agents
429 %description resource-agents
430 Resource agents for monitoring and managing Ceph daemons
431 under Open Cluster Framework (OCF) compliant resource
432 managers such as Pacemaker.
433 %endif
434
435 %package osd
436 Summary: Ceph Object Storage Daemon
437 %if 0%{?suse_version}
438 Group: System/Filesystems
439 %endif
440 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
441 Requires: lvm2
442 %description osd
443 ceph-osd is the object storage daemon for the Ceph distributed file
444 system. It is responsible for storing objects on a local file system
445 and providing access to them over the network.
446
447 %package -n librados2
448 Summary: RADOS distributed object store client library
449 %if 0%{?suse_version}
450 Group: System/Libraries
451 %endif
452 %if 0%{?rhel} || 0%{?fedora}
453 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
454 %endif
455 %description -n librados2
456 RADOS is a reliable, autonomic distributed object storage cluster
457 developed as part of the Ceph distributed storage system. This is a
458 shared library allowing applications to access the distributed object
459 store using a simple file-like interface.
460
461 %package -n librados-devel
462 Summary: RADOS headers
463 %if 0%{?suse_version}
464 Group: Development/Libraries/C and C++
465 %endif
466 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
467 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
468 Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release}
469 Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release}
470 %description -n librados-devel
471 This package contains libraries and headers needed to develop programs
472 that use RADOS object store.
473
474 %package -n librgw2
475 Summary: RADOS gateway client library
476 %if 0%{?suse_version}
477 Group: System/Libraries
478 %endif
479 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
480 %description -n librgw2
481 This package provides a library implementation of the RADOS gateway
482 (distributed object store with S3 and Swift personalities).
483
484 %package -n librgw-devel
485 Summary: RADOS gateway client library
486 %if 0%{?suse_version}
487 Group: Development/Libraries/C and C++
488 %endif
489 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
490 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
491 Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release}
492 Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release}
493 %description -n librgw-devel
494 This package contains libraries and headers needed to develop programs
495 that use RADOS gateway client library.
496
497 %package -n python-rgw
498 Summary: Python 2 libraries for the RADOS gateway
499 %if 0%{?suse_version}
500 Group: Development/Languages/Python
501 %endif
502 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
503 Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
504 Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
505 %description -n python-rgw
506 This package contains Python 2 libraries for interacting with Cephs RADOS
507 gateway.
508
509 %package -n python%{python3_pkgversion}-rgw
510 Summary: Python 3 libraries for the RADOS gateway
511 %if 0%{?suse_version}
512 Group: Development/Languages/Python
513 %endif
514 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
515 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
516 %description -n python%{python3_pkgversion}-rgw
517 This package contains Python 3 libraries for interacting with Cephs RADOS
518 gateway.
519
520 %package -n python-rados
521 Summary: Python 2 libraries for the RADOS object store
522 %if 0%{?suse_version}
523 Group: Development/Languages/Python
524 %endif
525 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
526 Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
527 %description -n python-rados
528 This package contains Python 2 libraries for interacting with Cephs RADOS
529 object store.
530
531 %package -n python%{python3_pkgversion}-rados
532 Summary: Python 3 libraries for the RADOS object store
533 %if 0%{?suse_version}
534 Group: Development/Languages/Python
535 %endif
536 Requires: python%{python3_pkgversion}
537 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
538 %description -n python%{python3_pkgversion}-rados
539 This package contains Python 3 libraries for interacting with Cephs RADOS
540 object store.
541
542 %package -n libradosstriper1
543 Summary: RADOS striping interface
544 %if 0%{?suse_version}
545 Group: System/Libraries
546 %endif
547 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
548 %description -n libradosstriper1
549 Striping interface built on top of the rados library, allowing
550 to stripe bigger objects onto several standard rados objects using
551 an interface very similar to the rados one.
552
553 %package -n libradosstriper-devel
554 Summary: RADOS striping interface headers
555 %if 0%{?suse_version}
556 Group: Development/Libraries/C and C++
557 %endif
558 Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
559 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
560 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
561 Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release}
562 Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release}
563 %description -n libradosstriper-devel
564 This package contains libraries and headers needed to develop programs
565 that use RADOS striping interface.
566
567 %package -n librbd1
568 Summary: RADOS block device client library
569 %if 0%{?suse_version}
570 Group: System/Libraries
571 %endif
572 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
573 %if 0%{?suse_version}
574 Requires(post): coreutils
575 %endif
576 %if 0%{?rhel} || 0%{?fedora}
577 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
578 %endif
579 %description -n librbd1
580 RBD is a block device striped across multiple distributed objects in
581 RADOS, a reliable, autonomic distributed object storage cluster
582 developed as part of the Ceph distributed storage system. This is a
583 shared library allowing applications to manage these block devices.
584
585 %package -n librbd-devel
586 Summary: RADOS block device headers
587 %if 0%{?suse_version}
588 Group: Development/Libraries/C and C++
589 %endif
590 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
591 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
592 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
593 Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release}
594 Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release}
595 %description -n librbd-devel
596 This package contains libraries and headers needed to develop programs
597 that use RADOS block device.
598
599 %package -n python-rbd
600 Summary: Python 2 libraries for the RADOS block device
601 %if 0%{?suse_version}
602 Group: Development/Languages/Python
603 %endif
604 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
605 Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
606 Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
607 %description -n python-rbd
608 This package contains Python 2 libraries for interacting with Cephs RADOS
609 block device.
610
611 %package -n python%{python3_pkgversion}-rbd
612 Summary: Python 3 libraries for the RADOS block device
613 %if 0%{?suse_version}
614 Group: Development/Languages/Python
615 %endif
616 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
617 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
618 %description -n python%{python3_pkgversion}-rbd
619 This package contains Python 3 libraries for interacting with Cephs RADOS
620 block device.
621
622 %package -n libcephfs2
623 Summary: Ceph distributed file system client library
624 %if 0%{?suse_version}
625 Group: System/Libraries
626 %endif
627 Obsoletes: libcephfs1
628 %if 0%{?rhel} || 0%{?fedora}
629 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
630 Obsoletes: ceph-libcephfs
631 %endif
632 %description -n libcephfs2
633 Ceph is a distributed network file system designed to provide excellent
634 performance, reliability, and scalability. This is a shared library
635 allowing applications to access a Ceph distributed file system via a
636 POSIX-like interface.
637
638 %package -n libcephfs-devel
639 Summary: Ceph distributed file system headers
640 %if 0%{?suse_version}
641 Group: Development/Libraries/C and C++
642 %endif
643 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
644 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
645 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
646 Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release}
647 Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release}
648 %description -n libcephfs-devel
649 This package contains libraries and headers needed to develop programs
650 that use Cephs distributed file system.
651
652 %package -n python-cephfs
653 Summary: Python 2 libraries for Ceph distributed file system
654 %if 0%{?suse_version}
655 Group: Development/Languages/Python
656 %endif
657 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
658 %if 0%{?suse_version}
659 Recommends: python-rados = %{_epoch_prefix}%{version}-%{release}
660 %endif
661 Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
662 %description -n python-cephfs
663 This package contains Python 2 libraries for interacting with Cephs distributed
664 file system.
665
666 %package -n python%{python3_pkgversion}-cephfs
667 Summary: Python 3 libraries for Ceph distributed file system
668 %if 0%{?suse_version}
669 Group: Development/Languages/Python
670 %endif
671 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
672 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
673 %description -n python%{python3_pkgversion}-cephfs
674 This package contains Python 3 libraries for interacting with Cephs distributed
675 file system.
676
677 %package -n python%{python3_pkgversion}-ceph-argparse
678 Summary: Python 3 utility libraries for Ceph CLI
679 %if 0%{?suse_version}
680 Group: Development/Languages/Python
681 %endif
682 %description -n python%{python3_pkgversion}-ceph-argparse
683 This package contains types and routines for Python 3 used by the Ceph CLI as
684 well as the RESTful interface. These have to do with querying the daemons for
685 command-description information, validating user command input against those
686 descriptions, and submitting the command to the appropriate daemon.
687
688 %if 0%{with ceph_test_package}
689 %package -n ceph-test
690 Summary: Ceph benchmarks and test tools
691 %if 0%{?suse_version}
692 Group: System/Benchmark
693 %endif
694 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
695 Requires: xmlstarlet
696 Requires: jq
697 Requires: socat
698 %description -n ceph-test
699 This package contains Ceph benchmarks and test tools.
700 %endif
701
702 %if 0%{with cephfs_java}
703
704 %package -n libcephfs_jni1
705 Summary: Java Native Interface library for CephFS Java bindings
706 %if 0%{?suse_version}
707 Group: System/Libraries
708 %endif
709 Requires: java
710 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
711 %description -n libcephfs_jni1
712 This package contains the Java Native Interface library for CephFS Java
713 bindings.
714
715 %package -n libcephfs_jni-devel
716 Summary: Development files for CephFS Java Native Interface library
717 %if 0%{?suse_version}
718 Group: Development/Libraries/Java
719 %endif
720 Requires: java
721 Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
722 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
723 Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release}
724 Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release}
725 %description -n libcephfs_jni-devel
726 This package contains the development files for CephFS Java Native Interface
727 library.
728
729 %package -n cephfs-java
730 Summary: Java libraries for the Ceph File System
731 %if 0%{?suse_version}
732 Group: System/Libraries
733 %endif
734 Requires: java
735 Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
736 Requires: junit
737 BuildRequires: junit
738 %description -n cephfs-java
739 This package contains the Java libraries for the Ceph File System.
740
741 %endif
742
743 %package -n rados-objclass-devel
744 Summary: RADOS object class development kit
745 Group: Development/Libraries
746 Requires: librados2-devel = %{_epoch_prefix}%{version}-%{release}
747 %description -n rados-objclass-devel
748 This package contains libraries and headers needed to develop RADOS object
749 class plugins.
750
751 %if 0%{with selinux}
752
753 %package selinux
754 Summary: SELinux support for Ceph MON, OSD and MDS
755 %if 0%{?suse_version}
756 Group: System/Filesystems
757 %endif
758 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
759 Requires: policycoreutils, libselinux-utils
760 Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release}
761 Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk
762 Requires(postun): policycoreutils
763 %description selinux
764 This package contains SELinux support for Ceph MON, OSD and MDS. The package
765 also performs file-system relabelling which can take a long time on heavily
766 populated file-systems.
767
768 %endif
769
770 %package -n python-ceph-compat
771 Summary: Compatibility package for Cephs python libraries
772 %if 0%{?suse_version}
773 Group: Development/Languages/Python
774 %endif
775 Obsoletes: python-ceph
776 Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
777 Requires: python-rbd = %{_epoch_prefix}%{version}-%{release}
778 Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release}
779 Requires: python-rgw = %{_epoch_prefix}%{version}-%{release}
780 Provides: python-ceph
781 %description -n python-ceph-compat
782 This is a compatibility package to accommodate python-ceph split into
783 python-rados, python-rbd, python-rgw and python-cephfs. Packages still
784 depending on python-ceph should be fixed to depend on python-rados,
785 python-rbd, python-rgw or python-cephfs instead.
786
787 #################################################################################
788 # common
789 #################################################################################
790 %prep
791 %autosetup -p1 -n @TARBALL_BASENAME@
792
793 %build
794 %if 0%{with cephfs_java}
795 # Find jni.h
796 for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do
797 [ -d $i ] && java_inc="$java_inc -I$i"
798 done
799 %endif
800
801 %if %{with lowmem_builder}
802 RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768"
803 %endif
804 export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'`
805
806 export CPPFLAGS="$java_inc"
807 export CFLAGS="$RPM_OPT_FLAGS"
808 export CXXFLAGS="$RPM_OPT_FLAGS"
809 export LDFLAGS="$RPM_LD_FLAGS"
810
811 env | sort
812
813 %if %{with lowmem_builder}
814 %if 0%{?jobs} > 8
815 %define _smp_mflags -j8
816 %endif
817 %endif
818
819 # unlimit _smp_mflags in system macro if not set above
820 %define _smp_ncpus_max 0
821 # extract the number of processors for use with cmake
822 %define _smp_ncpus %(echo %{_smp_mflags} | sed 's/-j//')
823
824 mkdir build
825 cd build
826 cmake .. \
827 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
828 -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
829 -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \
830 -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \
831 -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \
832 -DCMAKE_INSTALL_MANDIR=%{_mandir} \
833 -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \
834 -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
835 -DWITH_MANPAGE=ON \
836 -DWITH_PYTHON3=ON \
837 -DWITH_SYSTEMD=ON \
838 %if 0%{?rhel} && ! 0%{?centos}
839 -DWITH_SUBMAN=ON \
840 %endif
841 %if 0%{without ceph_test_package}
842 -DWITH_TESTS=OFF \
843 %endif
844 %if 0%{with cephfs_java}
845 -DWITH_CEPHFS_JAVA=ON \
846 %endif
847 %if 0%{with selinux}
848 -DWITH_SELINUX=ON \
849 %endif
850 %if %{with lttng}
851 -DWITH_LTTNG=ON \
852 -DWITH_BABELTRACE=ON \
853 %else
854 -DWITH_LTTNG=OFF \
855 -DWITH_BABELTRACE=OFF \
856 %endif
857 $CEPH_EXTRA_CMAKE_ARGS \
858 %if 0%{with ocf}
859 -DWITH_OCF=ON \
860 %endif
861 %ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64
862 -DWITH_BOOST_CONTEXT=ON \
863 %else
864 -DWITH_BOOST_CONTEXT=OFF \
865 %endif
866 -DBOOST_J=%{_smp_ncpus}
867
868 make %{?_smp_mflags}
869
870
871 %if 0%{with make_check}
872 %check
873 # run in-tree unittests
874 cd build
875 ctest %{?_smp_mflags}
876
877 %endif
878
879
880
881 %install
882 pushd build
883 make DESTDIR=%{buildroot} install
884 # we have dropped sysvinit bits
885 rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph
886 popd
887 install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
888 %if 0%{?fedora} || 0%{?rhel}
889 install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph
890 %endif
891 %if 0%{?suse_version}
892 install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
893 %endif
894 install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf
895 install -m 0755 -D systemd/ceph %{buildroot}%{_sbindir}/rcceph
896 install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_libexecdir}/systemd/system-preset/50-ceph.preset
897 mkdir -p %{buildroot}%{_sbindir}
898 install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph
899 chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf
900 install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING
901 install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf
902
903 # firewall templates and /sbin/mount.ceph symlink
904 %if 0%{?suse_version}
905 install -m 0644 -D etc/sysconfig/SuSEfirewall2.d/services/ceph-mon %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon
906 install -m 0644 -D etc/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds
907 mkdir -p %{buildroot}/sbin
908 ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
909 %endif
910
911 # udev rules
912 install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules
913 install -m 0644 -D udev/60-ceph-by-parttypeuuid.rules %{buildroot}%{_udevrulesdir}/60-ceph-by-parttypeuuid.rules
914 install -m 0644 -D udev/95-ceph-osd.rules %{buildroot}%{_udevrulesdir}/95-ceph-osd.rules
915
916 #set up placeholder directories
917 mkdir -p %{buildroot}%{_sysconfdir}/ceph
918 mkdir -p %{buildroot}%{_localstatedir}/run/ceph
919 mkdir -p %{buildroot}%{_localstatedir}/log/ceph
920 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp
921 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon
922 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd
923 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds
924 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr
925 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw
926 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd
927 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds
928 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw
929 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr
930 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd
931
932 %if 0%{?suse_version}
933 # create __pycache__ directories and their contents
934 %py3_compile %{buildroot}%{python3_sitelib}
935 %endif
936
937 %clean
938 rm -rf %{buildroot}
939
940 #################################################################################
941 # files and systemd scriptlets
942 #################################################################################
943 %files
944
945 %files base
946 %{_bindir}/crushtool
947 %{_bindir}/monmaptool
948 %{_bindir}/osdmaptool
949 %{_bindir}/ceph-kvstore-tool
950 %{_bindir}/ceph-run
951 %{_bindir}/ceph-detect-init
952 %{_libexecdir}/systemd/system-preset/50-ceph.preset
953 %{_sbindir}/ceph-create-keys
954 %{_sbindir}/ceph-disk
955 %{_sbindir}/rcceph
956 %dir %{_libexecdir}/ceph
957 %{_libexecdir}/ceph/ceph_common.sh
958 %dir %{_libdir}/rados-classes
959 %{_libdir}/rados-classes/*
960 %dir %{_libdir}/ceph
961 %dir %{_libdir}/ceph/erasure-code
962 %{_libdir}/ceph/erasure-code/libec_*.so*
963 %dir %{_libdir}/ceph/compressor
964 %{_libdir}/ceph/compressor/libceph_*.so*
965 %ifarch x86_64
966 %dir %{_libdir}/ceph/crypto
967 %{_libdir}/ceph/crypto/libceph_*.so*
968 %endif
969 %if %{with lttng}
970 %{_libdir}/libos_tp.so*
971 %{_libdir}/libosd_tp.so*
972 %endif
973 %config(noreplace) %{_sysconfdir}/logrotate.d/ceph
974 %if 0%{?fedora} || 0%{?rhel}
975 %config(noreplace) %{_sysconfdir}/sysconfig/ceph
976 %endif
977 %if 0%{?suse_version}
978 %{_localstatedir}/adm/fillup-templates/sysconfig.*
979 %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon
980 %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds
981 %endif
982 %{_unitdir}/ceph-disk@.service
983 %{_unitdir}/ceph.target
984 %{python_sitelib}/ceph_detect_init*
985 %{python_sitelib}/ceph_disk*
986 %dir %{python_sitelib}/ceph_volume
987 %{python_sitelib}/ceph_volume/*
988 %{python_sitelib}/ceph_volume-*
989 %{_mandir}/man8/ceph-deploy.8*
990 %{_mandir}/man8/ceph-detect-init.8*
991 %{_mandir}/man8/ceph-create-keys.8*
992 %{_mandir}/man8/ceph-disk.8*
993 %{_mandir}/man8/ceph-run.8*
994 %{_mandir}/man8/crushtool.8*
995 %{_mandir}/man8/osdmaptool.8*
996 %{_mandir}/man8/monmaptool.8*
997 %{_mandir}/man8/ceph-kvstore-tool.8*
998 #set up placeholder directories
999 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp
1000 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd
1001 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds
1002 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw
1003 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr
1004 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd
1005
1006 %post base
1007 /sbin/ldconfig
1008 %if 0%{?suse_version}
1009 %fillup_only
1010 if [ $1 -eq 1 ] ; then
1011 /usr/bin/systemctl preset ceph-disk@\*.service ceph.target >/dev/null 2>&1 || :
1012 fi
1013 %endif
1014 %if 0%{?fedora} || 0%{?rhel}
1015 %systemd_post ceph-disk@\*.service ceph.target
1016 %endif
1017 if [ $1 -eq 1 ] ; then
1018 /usr/bin/systemctl start ceph.target >/dev/null 2>&1 || :
1019 fi
1020
1021 %preun base
1022 %if 0%{?suse_version}
1023 %service_del_preun ceph-disk@\*.service ceph.target
1024 %endif
1025 %if 0%{?fedora} || 0%{?rhel}
1026 %systemd_preun ceph-disk@\*.service ceph.target
1027 %endif
1028
1029 %postun base
1030 /sbin/ldconfig
1031 test -n "$FIRST_ARG" || FIRST_ARG=$1
1032 %if 0%{?suse_version}
1033 DISABLE_RESTART_ON_UPDATE="yes"
1034 %service_del_postun ceph-disk@\*.service ceph.target
1035 %endif
1036 %if 0%{?fedora} || 0%{?rhel}
1037 %systemd_postun ceph-disk@\*.service ceph.target
1038 %endif
1039 if [ $FIRST_ARG -ge 1 ] ; then
1040 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1041 # "yes". In any case: if units are not running, do not touch them.
1042 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1043 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1044 source $SYSCONF_CEPH
1045 fi
1046 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1047 /usr/bin/systemctl try-restart ceph-disk@\*.service > /dev/null 2>&1 || :
1048 fi
1049 fi
1050
1051 %files common
1052 %dir %{_docdir}/ceph
1053 %doc %{_docdir}/ceph/sample.ceph.conf
1054 %doc %{_docdir}/ceph/COPYING
1055 %{_bindir}/ceph
1056 %{_bindir}/ceph-authtool
1057 %{_bindir}/ceph-conf
1058 %{_bindir}/ceph-dencoder
1059 %{_bindir}/ceph-rbdnamer
1060 %{_bindir}/ceph-syn
1061 %{_bindir}/ceph-crush-location
1062 %{_bindir}/cephfs-data-scan
1063 %{_bindir}/cephfs-journal-tool
1064 %{_bindir}/cephfs-table-tool
1065 %{_bindir}/rados
1066 %{_bindir}/radosgw-admin
1067 %{_bindir}/rbd
1068 %{_bindir}/rbd-replay
1069 %{_bindir}/rbd-replay-many
1070 %{_bindir}/rbdmap
1071 %{_sbindir}/mount.ceph
1072 %if 0%{?suse_version}
1073 /sbin/mount.ceph
1074 %endif
1075 %if %{with lttng}
1076 %{_bindir}/rbd-replay-prep
1077 %endif
1078 %{_bindir}/ceph-post-file
1079 %{_bindir}/ceph-brag
1080 %{_tmpfilesdir}/ceph-common.conf
1081 %{_mandir}/man8/ceph-authtool.8*
1082 %{_mandir}/man8/ceph-conf.8*
1083 %{_mandir}/man8/ceph-dencoder.8*
1084 %{_mandir}/man8/ceph-rbdnamer.8*
1085 %{_mandir}/man8/ceph-syn.8*
1086 %{_mandir}/man8/ceph-post-file.8*
1087 %{_mandir}/man8/ceph.8*
1088 %{_mandir}/man8/mount.ceph.8*
1089 %{_mandir}/man8/rados.8*
1090 %{_mandir}/man8/radosgw-admin.8*
1091 %{_mandir}/man8/rbd.8*
1092 %{_mandir}/man8/rbdmap.8*
1093 %{_mandir}/man8/rbd-replay.8*
1094 %{_mandir}/man8/rbd-replay-many.8*
1095 %{_mandir}/man8/rbd-replay-prep.8*
1096 %dir %{_datadir}/ceph/
1097 %{_datadir}/ceph/known_hosts_drop.ceph.com
1098 %{_datadir}/ceph/id_rsa_drop.ceph.com
1099 %{_datadir}/ceph/id_rsa_drop.ceph.com.pub
1100 %dir %{_sysconfdir}/ceph/
1101 %config %{_sysconfdir}/bash_completion.d/ceph
1102 %config %{_sysconfdir}/bash_completion.d/rados
1103 %config %{_sysconfdir}/bash_completion.d/rbd
1104 %config %{_sysconfdir}/bash_completion.d/radosgw-admin
1105 %config(noreplace) %{_sysconfdir}/ceph/rbdmap
1106 %{_unitdir}/rbdmap.service
1107 %{python_sitelib}/ceph_argparse.py*
1108 %{python_sitelib}/ceph_daemon.py*
1109 %dir %{_udevrulesdir}
1110 %{_udevrulesdir}/50-rbd.rules
1111 %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/
1112 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/
1113
1114 %pre common
1115 CEPH_GROUP_ID=167
1116 CEPH_USER_ID=167
1117 %if 0%{?rhel} || 0%{?fedora}
1118 /usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || :
1119 /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 || :
1120 %endif
1121 %if 0%{?suse_version}
1122 if ! getent group ceph >/dev/null ; then
1123 CEPH_GROUP_ID_OPTION=""
1124 getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID"
1125 groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || :
1126 fi
1127 if ! getent passwd ceph >/dev/null ; then
1128 CEPH_USER_ID_OPTION=""
1129 getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID"
1130 useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || :
1131 fi
1132 usermod -c "Ceph storage service" \
1133 -d %{_localstatedir}/lib/ceph \
1134 -g ceph \
1135 -s /sbin/nologin \
1136 ceph
1137 %endif
1138 exit 0
1139
1140 %post common
1141 %tmpfiles_create %{_tmpfilesdir}/ceph-common.conf
1142
1143 %postun common
1144 # Package removal cleanup
1145 if [ "$1" -eq "0" ] ; then
1146 rm -rf %{_localstatedir}/log/ceph
1147 rm -rf %{_sysconfdir}/ceph
1148 fi
1149
1150 %files mds
1151 %{_bindir}/ceph-mds
1152 %{_mandir}/man8/ceph-mds.8*
1153 %{_unitdir}/ceph-mds@.service
1154 %{_unitdir}/ceph-mds.target
1155 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds
1156
1157 %post mds
1158 %if 0%{?suse_version}
1159 if [ $1 -eq 1 ] ; then
1160 /usr/bin/systemctl preset ceph-mds@\*.service ceph-mds.target >/dev/null 2>&1 || :
1161 fi
1162 %endif
1163 %if 0%{?fedora} || 0%{?rhel}
1164 %systemd_post ceph-mds@\*.service ceph-mds.target
1165 %endif
1166 if [ $1 -eq 1 ] ; then
1167 /usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || :
1168 fi
1169
1170 %preun mds
1171 %if 0%{?suse_version}
1172 %service_del_preun ceph-mds@\*.service ceph-mds.target
1173 %endif
1174 %if 0%{?fedora} || 0%{?rhel}
1175 %systemd_preun ceph-mds@\*.service ceph-mds.target
1176 %endif
1177
1178 %postun mds
1179 test -n "$FIRST_ARG" || FIRST_ARG=$1
1180 %if 0%{?suse_version}
1181 DISABLE_RESTART_ON_UPDATE="yes"
1182 %service_del_postun ceph-mds@\*.service ceph-mds.target
1183 %endif
1184 %if 0%{?fedora} || 0%{?rhel}
1185 %systemd_postun ceph-mds@\*.service ceph-mds.target
1186 %endif
1187 if [ $FIRST_ARG -ge 1 ] ; then
1188 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1189 # "yes". In any case: if units are not running, do not touch them.
1190 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1191 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1192 source $SYSCONF_CEPH
1193 fi
1194 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1195 /usr/bin/systemctl try-restart ceph-mds@\*.service > /dev/null 2>&1 || :
1196 fi
1197 fi
1198
1199 %files mgr
1200 %{_bindir}/ceph-mgr
1201 %{_libdir}/ceph/mgr
1202 %{_unitdir}/ceph-mgr@.service
1203 %{_unitdir}/ceph-mgr.target
1204 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr
1205
1206 %post mgr
1207 %if 0%{?suse_version}
1208 if [ $1 -eq 1 ] ; then
1209 /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || :
1210 fi
1211 %endif
1212 %if 0%{?fedora} || 0%{?rhel}
1213 %systemd_post ceph-mgr@\*.service ceph-mgr.target
1214 %endif
1215 if [ $1 -eq 1 ] ; then
1216 /usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || :
1217 fi
1218
1219 %preun mgr
1220 %if 0%{?suse_version}
1221 %service_del_preun ceph-mgr@\*.service ceph-mgr.target
1222 %endif
1223 %if 0%{?fedora} || 0%{?rhel}
1224 %systemd_preun ceph-mgr@\*.service ceph-mgr.target
1225 %endif
1226
1227 %postun mgr
1228 test -n "$FIRST_ARG" || FIRST_ARG=$1
1229 %if 0%{?suse_version}
1230 DISABLE_RESTART_ON_UPDATE="yes"
1231 %service_del_postun ceph-mgr@\*.service ceph-mgr.target
1232 %endif
1233 %if 0%{?fedora} || 0%{?rhel}
1234 %systemd_postun ceph-mgr@\*.service ceph-mgr.target
1235 %endif
1236 if [ $FIRST_ARG -ge 1 ] ; then
1237 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1238 # "yes". In any case: if units are not running, do not touch them.
1239 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1240 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1241 source $SYSCONF_CEPH
1242 fi
1243 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1244 /usr/bin/systemctl try-restart ceph-mgr@\*.service > /dev/null 2>&1 || :
1245 fi
1246 fi
1247
1248 %files mon
1249 %{_bindir}/ceph-mon
1250 %{_bindir}/ceph-rest-api
1251 %{_bindir}/ceph-monstore-tool
1252 %{_mandir}/man8/ceph-mon.8*
1253 %{_mandir}/man8/ceph-rest-api.8*
1254 %{python_sitelib}/ceph_rest_api.py*
1255 %{_unitdir}/ceph-mon@.service
1256 %{_unitdir}/ceph-mon.target
1257 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon
1258
1259 %post mon
1260 %if 0%{?suse_version}
1261 if [ $1 -eq 1 ] ; then
1262 /usr/bin/systemctl preset ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || :
1263 fi
1264 %endif
1265 %if 0%{?fedora} || 0%{?rhel}
1266 %systemd_post ceph-mon@\*.service ceph-mon.target
1267 %endif
1268 if [ $1 -eq 1 ] ; then
1269 /usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || :
1270 fi
1271
1272 %preun mon
1273 %if 0%{?suse_version}
1274 %service_del_preun ceph-mon@\*.service ceph-mon.target
1275 %endif
1276 %if 0%{?fedora} || 0%{?rhel}
1277 %systemd_preun ceph-mon@\*.service ceph-mon.target
1278 %endif
1279
1280 %postun mon
1281 test -n "$FIRST_ARG" || FIRST_ARG=$1
1282 %if 0%{?suse_version}
1283 DISABLE_RESTART_ON_UPDATE="yes"
1284 %service_del_postun ceph-mon@\*.service ceph-mon.target
1285 %endif
1286 %if 0%{?fedora} || 0%{?rhel}
1287 %systemd_postun ceph-mon@\*.service ceph-mon.target
1288 %endif
1289 if [ $FIRST_ARG -ge 1 ] ; then
1290 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1291 # "yes". In any case: if units are not running, do not touch them.
1292 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1293 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1294 source $SYSCONF_CEPH
1295 fi
1296 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1297 /usr/bin/systemctl try-restart ceph-mon@\*.service > /dev/null 2>&1 || :
1298 fi
1299 fi
1300
1301 %files fuse
1302 %{_bindir}/ceph-fuse
1303 %{_mandir}/man8/ceph-fuse.8*
1304 %{_sbindir}/mount.fuse.ceph
1305 %{_unitdir}/ceph-fuse@.service
1306 %{_unitdir}/ceph-fuse.target
1307
1308 %files -n rbd-fuse
1309 %{_bindir}/rbd-fuse
1310 %{_mandir}/man8/rbd-fuse.8*
1311
1312 %files -n rbd-mirror
1313 %{_bindir}/rbd-mirror
1314 %{_mandir}/man8/rbd-mirror.8*
1315 %{_unitdir}/ceph-rbd-mirror@.service
1316 %{_unitdir}/ceph-rbd-mirror.target
1317
1318 %post -n rbd-mirror
1319 %if 0%{?suse_version}
1320 if [ $1 -eq 1 ] ; then
1321 /usr/bin/systemctl preset ceph-rbd-mirror@\*.service ceph-rbd-mirror.target >/dev/null 2>&1 || :
1322 fi
1323 %endif
1324 %if 0%{?fedora} || 0%{?rhel}
1325 %systemd_post ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1326 %endif
1327 if [ $1 -eq 1 ] ; then
1328 /usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || :
1329 fi
1330
1331 %preun -n rbd-mirror
1332 %if 0%{?suse_version}
1333 %service_del_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1334 %endif
1335 %if 0%{?fedora} || 0%{?rhel}
1336 %systemd_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1337 %endif
1338
1339 %postun -n rbd-mirror
1340 test -n "$FIRST_ARG" || FIRST_ARG=$1
1341 %if 0%{?suse_version}
1342 DISABLE_RESTART_ON_UPDATE="yes"
1343 %service_del_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1344 %endif
1345 %if 0%{?fedora} || 0%{?rhel}
1346 %systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1347 %endif
1348 if [ $FIRST_ARG -ge 1 ] ; then
1349 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1350 # "yes". In any case: if units are not running, do not touch them.
1351 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1352 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1353 source $SYSCONF_CEPH
1354 fi
1355 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1356 /usr/bin/systemctl try-restart ceph-rbd-mirror@\*.service > /dev/null 2>&1 || :
1357 fi
1358 fi
1359
1360 %files -n rbd-nbd
1361 %{_bindir}/rbd-nbd
1362 %{_mandir}/man8/rbd-nbd.8*
1363
1364 %files radosgw
1365 %{_bindir}/radosgw
1366 %{_bindir}/radosgw-token
1367 %{_bindir}/radosgw-es
1368 %{_bindir}/radosgw-object-expirer
1369 %{_mandir}/man8/radosgw.8*
1370 %dir %{_localstatedir}/lib/ceph/radosgw
1371 %{_unitdir}/ceph-radosgw@.service
1372 %{_unitdir}/ceph-radosgw.target
1373
1374 %post radosgw
1375 %if 0%{?suse_version}
1376 if [ $1 -eq 1 ] ; then
1377 /usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || :
1378 fi
1379 %endif
1380 %if 0%{?fedora} || 0%{?rhel}
1381 %systemd_post ceph-radosgw@\*.service ceph-radosgw.target
1382 %endif
1383 if [ $1 -eq 1 ] ; then
1384 /usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || :
1385 fi
1386
1387 %preun radosgw
1388 %if 0%{?suse_version}
1389 %service_del_preun ceph-radosgw@\*.service ceph-radosgw.target
1390 %endif
1391 %if 0%{?fedora} || 0%{?rhel}
1392 %systemd_preun ceph-radosgw@\*.service ceph-radosgw.target
1393 %endif
1394
1395 %postun radosgw
1396 test -n "$FIRST_ARG" || FIRST_ARG=$1
1397 %if 0%{?suse_version}
1398 DISABLE_RESTART_ON_UPDATE="yes"
1399 %service_del_postun ceph-radosgw@\*.service ceph-radosgw.target
1400 %endif
1401 %if 0%{?fedora} || 0%{?rhel}
1402 %systemd_postun ceph-radosgw@\*.service ceph-radosgw.target
1403 %endif
1404 if [ $FIRST_ARG -ge 1 ] ; then
1405 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1406 # "yes". In any case: if units are not running, do not touch them.
1407 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1408 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1409 source $SYSCONF_CEPH
1410 fi
1411 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1412 /usr/bin/systemctl try-restart ceph-radosgw@\*.service > /dev/null 2>&1 || :
1413 fi
1414 fi
1415
1416 %files osd
1417 %{_bindir}/ceph-clsinfo
1418 %{_bindir}/ceph-bluestore-tool
1419 %{_bindir}/ceph-objectstore-tool
1420 %{_bindir}/ceph-osdomap-tool
1421 %{_bindir}/ceph-osd
1422 %{_libexecdir}/ceph/ceph-osd-prestart.sh
1423 %{_sbindir}/ceph-volume
1424 %{_sbindir}/ceph-volume-systemd
1425 %dir %{_udevrulesdir}
1426 %{_udevrulesdir}/60-ceph-by-parttypeuuid.rules
1427 %{_udevrulesdir}/95-ceph-osd.rules
1428 %{_mandir}/man8/ceph-clsinfo.8*
1429 %{_mandir}/man8/ceph-osd.8*
1430 %{_mandir}/man8/ceph-bluestore-tool.8*
1431 %{_mandir}/man8/ceph-volume.8*
1432 %{_mandir}/man8/ceph-volume-systemd.8*
1433 %if 0%{?rhel} && ! 0%{?centos}
1434 %attr(0755,-,-) %{_sysconfdir}/cron.hourly/subman
1435 %endif
1436 %{_unitdir}/ceph-osd@.service
1437 %{_unitdir}/ceph-osd.target
1438 %{_unitdir}/ceph-volume@.service
1439 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
1440 %config(noreplace) %{_sysctldir}/90-ceph-osd.conf
1441
1442 %post osd
1443 %if 0%{?suse_version}
1444 if [ $1 -eq 1 ] ; then
1445 /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || :
1446 fi
1447 %endif
1448 %if 0%{?fedora} || 0%{?rhel}
1449 %systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
1450 %endif
1451 if [ $1 -eq 1 ] ; then
1452 /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || :
1453 fi
1454 %if 0%{?sysctl_apply}
1455 %sysctl_apply 90-ceph-osd.conf
1456 %else
1457 /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || :
1458 %endif
1459 # work around https://tracker.ceph.com/issues/24903
1460 chown -f -h ceph:ceph /var/lib/ceph/osd/*/block* 2>&1 > /dev/null || :
1461
1462 %preun osd
1463 %if 0%{?suse_version}
1464 %service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
1465 %endif
1466 %if 0%{?fedora} || 0%{?rhel}
1467 %systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
1468 %endif
1469
1470 %postun osd
1471 test -n "$FIRST_ARG" || FIRST_ARG=$1
1472 %if 0%{?suse_version}
1473 DISABLE_RESTART_ON_UPDATE="yes"
1474 %service_del_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
1475 %endif
1476 %if 0%{?fedora} || 0%{?rhel}
1477 %systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
1478 %endif
1479 if [ $FIRST_ARG -ge 1 ] ; then
1480 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1481 # "yes". In any case: if units are not running, do not touch them.
1482 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1483 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1484 source $SYSCONF_CEPH
1485 fi
1486 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1487 /usr/bin/systemctl try-restart ceph-osd@\*.service ceph-volume@\*.service > /dev/null 2>&1 || :
1488 fi
1489 fi
1490
1491 %if %{with ocf}
1492
1493 %files resource-agents
1494 %dir %{_prefix}/lib/ocf
1495 %dir %{_prefix}/lib/ocf/resource.d
1496 %dir %{_prefix}/lib/ocf/resource.d/ceph
1497 %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd
1498
1499 %endif
1500
1501 %files -n librados2
1502 %{_libdir}/librados.so.*
1503 %dir %{_libdir}/ceph
1504 %{_libdir}/ceph/libceph-common.so*
1505 %if %{with lttng}
1506 %{_libdir}/librados_tp.so.*
1507 %endif
1508
1509 %post -n librados2 -p /sbin/ldconfig
1510
1511 %postun -n librados2 -p /sbin/ldconfig
1512
1513 %files -n librados-devel
1514 %dir %{_includedir}/rados
1515 %{_includedir}/rados/librados.h
1516 %{_includedir}/rados/librados.hpp
1517 %{_includedir}/rados/buffer.h
1518 %{_includedir}/rados/buffer_fwd.h
1519 %{_includedir}/rados/inline_memory.h
1520 %{_includedir}/rados/page.h
1521 %{_includedir}/rados/crc32c.h
1522 %{_includedir}/rados/rados_types.h
1523 %{_includedir}/rados/rados_types.hpp
1524 %{_includedir}/rados/memory.h
1525 %{_libdir}/librados.so
1526 %if %{with lttng}
1527 %{_libdir}/librados_tp.so
1528 %endif
1529 %{_bindir}/librados-config
1530 %{_mandir}/man8/librados-config.8*
1531
1532 %files -n python-rados
1533 %{python_sitearch}/rados.so
1534 %{python_sitearch}/rados-*.egg-info
1535
1536 %files -n python%{python3_pkgversion}-rados
1537 %{python3_sitearch}/rados.cpython*.so
1538 %{python3_sitearch}/rados-*.egg-info
1539
1540 %files -n libradosstriper1
1541 %{_libdir}/libradosstriper.so.*
1542
1543 %post -n libradosstriper1 -p /sbin/ldconfig
1544
1545 %postun -n libradosstriper1 -p /sbin/ldconfig
1546
1547 %files -n libradosstriper-devel
1548 %dir %{_includedir}/radosstriper
1549 %{_includedir}/radosstriper/libradosstriper.h
1550 %{_includedir}/radosstriper/libradosstriper.hpp
1551 %{_libdir}/libradosstriper.so
1552
1553 %files -n librbd1
1554 %{_libdir}/librbd.so.*
1555 %if %{with lttng}
1556 %{_libdir}/librbd_tp.so.*
1557 %endif
1558
1559 %post -n librbd1 -p /sbin/ldconfig
1560
1561 %postun -n librbd1 -p /sbin/ldconfig
1562
1563 %files -n librbd-devel
1564 %dir %{_includedir}/rbd
1565 %{_includedir}/rbd/librbd.h
1566 %{_includedir}/rbd/librbd.hpp
1567 %{_includedir}/rbd/features.h
1568 %{_libdir}/librbd.so
1569 %if %{with lttng}
1570 %{_libdir}/librbd_tp.so
1571 %endif
1572
1573 %files -n librgw2
1574 %{_libdir}/librgw.so.*
1575
1576 %post -n librgw2 -p /sbin/ldconfig
1577
1578 %postun -n librgw2 -p /sbin/ldconfig
1579
1580 %files -n librgw-devel
1581 %dir %{_includedir}/rados
1582 %{_includedir}/rados/librgw.h
1583 %{_includedir}/rados/rgw_file.h
1584 %{_libdir}/librgw.so
1585
1586 %files -n python-rgw
1587 %{python_sitearch}/rgw.so
1588 %{python_sitearch}/rgw-*.egg-info
1589
1590 %files -n python%{python3_pkgversion}-rgw
1591 %{python3_sitearch}/rgw.cpython*.so
1592 %{python3_sitearch}/rgw-*.egg-info
1593
1594 %files -n python-rbd
1595 %{python_sitearch}/rbd.so
1596 %{python_sitearch}/rbd-*.egg-info
1597
1598 %files -n python%{python3_pkgversion}-rbd
1599 %{python3_sitearch}/rbd.cpython*.so
1600 %{python3_sitearch}/rbd-*.egg-info
1601
1602 %files -n libcephfs2
1603 %{_libdir}/libcephfs.so.*
1604
1605 %post -n libcephfs2 -p /sbin/ldconfig
1606
1607 %postun -n libcephfs2 -p /sbin/ldconfig
1608
1609 %files -n libcephfs-devel
1610 %dir %{_includedir}/cephfs
1611 %{_includedir}/cephfs/libcephfs.h
1612 %{_includedir}/cephfs/ceph_statx.h
1613 %{_libdir}/libcephfs.so
1614
1615 %files -n python-cephfs
1616 %{python_sitearch}/cephfs.so
1617 %{python_sitearch}/cephfs-*.egg-info
1618 %{python_sitelib}/ceph_volume_client.py*
1619
1620 %files -n python%{python3_pkgversion}-cephfs
1621 %{python3_sitearch}/cephfs.cpython*.so
1622 %{python3_sitearch}/cephfs-*.egg-info
1623 %{python3_sitelib}/ceph_volume_client.py
1624 %{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py*
1625
1626 %files -n python%{python3_pkgversion}-ceph-argparse
1627 %{python3_sitelib}/ceph_argparse.py
1628 %{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py*
1629 %{python3_sitelib}/ceph_daemon.py
1630 %{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py*
1631
1632 %if 0%{with ceph_test_package}
1633 %files -n ceph-test
1634 %{_bindir}/ceph-client-debug
1635 %{_bindir}/ceph_bench_log
1636 %{_bindir}/ceph_kvstorebench
1637 %{_bindir}/ceph_multi_stress_watch
1638 %{_bindir}/ceph_erasure_code
1639 %{_bindir}/ceph_erasure_code_benchmark
1640 %{_bindir}/ceph_omapbench
1641 %{_bindir}/ceph_objectstore_bench
1642 %{_bindir}/ceph_perf_objectstore
1643 %{_bindir}/ceph_perf_local
1644 %{_bindir}/ceph_perf_msgr_client
1645 %{_bindir}/ceph_perf_msgr_server
1646 %{_bindir}/ceph_psim
1647 %{_bindir}/ceph_radosacl
1648 %{_bindir}/ceph_rgw_jsonparser
1649 %{_bindir}/ceph_rgw_multiparser
1650 %{_bindir}/ceph_scratchtool
1651 %{_bindir}/ceph_scratchtoolpp
1652 %{_bindir}/ceph_smalliobench
1653 %{_bindir}/ceph_smalliobenchdumb
1654 %{_bindir}/ceph_smalliobenchfs
1655 %{_bindir}/ceph_smalliobenchrbd
1656 %{_bindir}/ceph_test_*
1657 %{_bindir}/ceph_tpbench
1658 %{_bindir}/ceph_xattr_bench
1659 %{_bindir}/ceph-coverage
1660 %{_bindir}/ceph-debugpack
1661 %{_mandir}/man8/ceph-debugpack.8*
1662 %dir %{_libdir}/ceph
1663 %{_libdir}/ceph/ceph-monstore-update-crush.sh
1664 %endif
1665
1666 %if 0%{with cephfs_java}
1667 %files -n libcephfs_jni1
1668 %{_libdir}/libcephfs_jni.so.*
1669
1670 %post -n libcephfs_jni1 -p /sbin/ldconfig
1671
1672 %postun -n libcephfs_jni1 -p /sbin/ldconfig
1673
1674 %files -n libcephfs_jni-devel
1675 %{_libdir}/libcephfs_jni.so
1676
1677 %files -n cephfs-java
1678 %{_javadir}/libcephfs.jar
1679 %{_javadir}/libcephfs-test.jar
1680 %endif
1681
1682 %files -n rados-objclass-devel
1683 %dir %{_includedir}/rados
1684 %{_includedir}/rados/objclass.h
1685
1686 %if 0%{with selinux}
1687 %files selinux
1688 %attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp
1689 %{_datadir}/selinux/devel/include/contrib/ceph.if
1690 %{_mandir}/man8/ceph_selinux.8*
1691
1692 %post selinux
1693 # backup file_contexts before update
1694 . /etc/selinux/config
1695 FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts
1696 cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre
1697
1698 # Install the policy
1699 /usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp
1700
1701 # Load the policy if SELinux is enabled
1702 if ! /usr/sbin/selinuxenabled; then
1703 # Do not relabel if selinux is not enabled
1704 exit 0
1705 fi
1706
1707 if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then
1708 # Do not relabel if file contexts did not change
1709 exit 0
1710 fi
1711
1712 # Check whether the daemons are running
1713 /usr/bin/systemctl status ceph.target > /dev/null 2>&1
1714 STATUS=$?
1715
1716 # Stop the daemons if they were running
1717 if test $STATUS -eq 0; then
1718 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1
1719 fi
1720
1721 # Relabel the files
1722 # Use ceph-disk fix for first package install and fixfiles otherwise
1723 if [ "$1" = "1" ]; then
1724 /usr/sbin/ceph-disk fix --selinux
1725 else
1726 /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
1727 fi
1728
1729 rm -f ${FILE_CONTEXT}.pre
1730 # The fixfiles command won't fix label for /var/run/ceph
1731 /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1
1732
1733 # Start the daemons iff they were running before
1734 if test $STATUS -eq 0; then
1735 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || :
1736 fi
1737 exit 0
1738
1739 %postun selinux
1740 if [ $1 -eq 0 ]; then
1741 # backup file_contexts before update
1742 . /etc/selinux/config
1743 FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts
1744 cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre
1745
1746 # Remove the module
1747 /usr/sbin/semodule -n -r ceph > /dev/null 2>&1
1748
1749 # Reload the policy if SELinux is enabled
1750 if ! /usr/sbin/selinuxenabled ; then
1751 # Do not relabel if SELinux is not enabled
1752 exit 0
1753 fi
1754
1755 # Check whether the daemons are running
1756 /usr/bin/systemctl status ceph.target > /dev/null 2>&1
1757 STATUS=$?
1758
1759 # Stop the daemons if they were running
1760 if test $STATUS -eq 0; then
1761 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1
1762 fi
1763
1764 /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
1765 rm -f ${FILE_CONTEXT}.pre
1766 # The fixfiles command won't fix label for /var/run/ceph
1767 /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1
1768
1769 # Start the daemons if they were running before
1770 if test $STATUS -eq 0; then
1771 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || :
1772 fi
1773 fi
1774 exit 0
1775
1776 %endif # with selinux
1777
1778 %files -n python-ceph-compat
1779 # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to
1780 # actually build this meta package.
1781
1782
1783 %changelog