]> git.proxmox.com Git - ceph.git/blob - ceph/ceph.spec
bump version to 16.2.7
[ceph.git] / ceph / ceph.spec
1 #
2 # spec file for package ceph
3 #
4 # Copyright (C) 2004-2019 The Ceph Project Developers. See COPYING file
5 # at the top-level directory of this distribution and at
6 # https://github.com/ceph/ceph/blob/master/COPYING
7 #
8 # All modifications and additions to the file contributed by third parties
9 # remain the property of their copyright owners, unless otherwise agreed
10 # upon.
11 #
12 # This file is under the GNU Lesser General Public License, version 2.1
13 #
14 # Please submit bugfixes or comments via http://tracker.ceph.com/
15 #
16
17 #################################################################################
18 # conditional build section
19 #
20 # please read http://rpm.org/user_doc/conditional_builds.html for explanation of
21 # bcond syntax!
22 #################################################################################
23 %bcond_with make_check
24 %bcond_with zbd
25 %bcond_with cmake_verbose_logging
26 %bcond_without ceph_test_package
27 %ifarch s390
28 %bcond_with tcmalloc
29 %else
30 %bcond_without tcmalloc
31 %endif
32 %bcond_with system_pmdk
33 %if 0%{?fedora} || 0%{?rhel}
34 %bcond_without selinux
35 %ifarch x86_64 ppc64le
36 %bcond_without rbd_rwl_cache
37 %bcond_without rbd_ssd_cache
38 %else
39 %bcond_with rbd_rwl_cache
40 %bcond_with rbd_ssd_cache
41 %endif
42 %if 0%{?rhel} >= 8
43 %bcond_with cephfs_java
44 %else
45 %bcond_without cephfs_java
46 %endif
47 %bcond_without amqp_endpoint
48 %bcond_without kafka_endpoint
49 %bcond_without lttng
50 %bcond_without libradosstriper
51 %bcond_without ocf
52 %global luarocks_package_name luarocks
53 %bcond_without lua_packages
54 %global _remote_tarball_prefix https://download.ceph.com/tarballs/
55 %endif
56 %if 0%{?suse_version}
57 %bcond_with amqp_endpoint
58 %bcond_with cephfs_java
59 %bcond_with kafka_endpoint
60 %bcond_with libradosstriper
61 %ifarch x86_64 aarch64 ppc64le
62 %bcond_without lttng
63 %bcond_without rbd_rwl_cache
64 %bcond_without rbd_ssd_cache
65 %else
66 %bcond_with lttng
67 %bcond_with rbd_rwl_cache
68 %bcond_with rbd_ssd_cache
69 %endif
70 %bcond_with ocf
71 %bcond_with selinux
72 #Compat macro for _fillupdir macro introduced in Nov 2017
73 %if ! %{defined _fillupdir}
74 %global _fillupdir /var/adm/fillup-templates
75 %endif
76 #luarocks
77 %if 0%{?is_opensuse}
78 # openSUSE
79 %bcond_without lua_packages
80 %if 0%{?sle_version}
81 # openSUSE Leap
82 %global luarocks_package_name lua53-luarocks
83 %else
84 # openSUSE Tumbleweed
85 %global luarocks_package_name lua54-luarocks
86 %endif
87 %else
88 # SLE
89 %bcond_with lua_packages
90 %endif
91 %endif
92 %bcond_with seastar
93 %bcond_with jaeger
94 %if 0%{?fedora} || 0%{?suse_version} >= 1500
95 # distros that ship cmd2 and/or colorama
96 %bcond_without cephfs_shell
97 %else
98 # distros that do _not_ ship cmd2/colorama
99 %bcond_with cephfs_shell
100 %endif
101 %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 8
102 %global weak_deps 1
103 %endif
104 %if %{with selinux}
105 # get selinux policy version
106 # Force 0.0.0 policy version for centos builds to avoid repository sync issues between rhel and centos
107 %if 0%{?centos}
108 %global _selinux_policy_version 0.0.0
109 %else
110 %{!?_selinux_policy_version: %global _selinux_policy_version 0.0.0}
111 %endif
112 %endif
113
114 %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d}
115 %{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create}
116 %{!?python3_pkgversion: %global python3_pkgversion 3}
117 %{!?python3_version_nodots: %global python3_version_nodots 3}
118 %{!?python3_version: %global python3_version 3}
119
120 # disable dwz which compresses the debuginfo
121 %global _find_debuginfo_dwz_opts %{nil}
122
123 #################################################################################
124 # main package definition
125 #################################################################################
126 Name: ceph
127 Version: 16.2.7
128 Release: 0%{?dist}
129 %if 0%{?fedora} || 0%{?rhel}
130 Epoch: 2
131 %endif
132
133 # define _epoch_prefix macro which will expand to the empty string if epoch is
134 # undefined
135 %global _epoch_prefix %{?epoch:%{epoch}:}
136
137 Summary: User space components of the Ceph file system
138 License: LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
139 %if 0%{?suse_version}
140 Group: System/Filesystems
141 %endif
142 URL: http://ceph.com/
143 Source0: %{?_remote_tarball_prefix}ceph-16.2.7.tar.bz2
144 %if 0%{?suse_version}
145 # _insert_obs_source_lines_here
146 ExclusiveArch: x86_64 aarch64 ppc64le s390x
147 %endif
148 #################################################################################
149 # dependencies that apply across all distro families
150 #################################################################################
151 Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
152 Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release}
153 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
154 Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release}
155 Requires(post): binutils
156 %if 0%{with cephfs_java}
157 BuildRequires: java-devel
158 BuildRequires: sharutils
159 %endif
160 %if 0%{with selinux}
161 BuildRequires: checkpolicy
162 BuildRequires: selinux-policy-devel
163 %endif
164 BuildRequires: gperf
165 BuildRequires: cmake > 3.5
166 BuildRequires: cryptsetup
167 BuildRequires: fuse-devel
168 %if 0%{with seastar}
169 BuildRequires: gcc-toolset-9-gcc-c++ >= 9.2.1-2.3
170 %else
171 BuildRequires: gcc-c++
172 %endif
173 %if 0%{with tcmalloc}
174 # libprofiler did not build on ppc64le until 2.7.90
175 %if 0%{?fedora} || 0%{?rhel} >= 8
176 BuildRequires: gperftools-devel >= 2.7.90
177 %endif
178 %if 0%{?rhel} && 0%{?rhel} < 8
179 BuildRequires: gperftools-devel >= 2.6.1
180 %endif
181 %if 0%{?suse_version}
182 BuildRequires: gperftools-devel >= 2.4
183 %endif
184 %endif
185 BuildRequires: leveldb-devel > 1.2
186 BuildRequires: libaio-devel
187 BuildRequires: libblkid-devel >= 2.17
188 BuildRequires: cryptsetup-devel
189 BuildRequires: libcurl-devel
190 BuildRequires: libcap-ng-devel
191 BuildRequires: fmt-devel >= 5.2.1
192 BuildRequires: pkgconfig(libudev)
193 BuildRequires: libnl3-devel
194 BuildRequires: liboath-devel
195 BuildRequires: libtool
196 BuildRequires: libxml2-devel
197 BuildRequires: make
198 BuildRequires: ncurses-devel
199 BuildRequires: libicu-devel
200 BuildRequires: parted
201 BuildRequires: patch
202 BuildRequires: perl
203 BuildRequires: pkgconfig
204 BuildRequires: procps
205 BuildRequires: python%{python3_pkgversion}
206 BuildRequires: python%{python3_pkgversion}-devel
207 BuildRequires: snappy-devel
208 BuildRequires: sqlite-devel
209 BuildRequires: sudo
210 BuildRequires: pkgconfig(udev)
211 BuildRequires: util-linux
212 BuildRequires: valgrind-devel
213 BuildRequires: which
214 BuildRequires: xfsprogs
215 BuildRequires: xfsprogs-devel
216 BuildRequires: xmlstarlet
217 BuildRequires: nasm
218 BuildRequires: lua-devel
219 %if 0%{with amqp_endpoint}
220 BuildRequires: librabbitmq-devel
221 %endif
222 %if 0%{with kafka_endpoint}
223 BuildRequires: librdkafka-devel
224 %endif
225 %if 0%{with lua_packages}
226 BuildRequires: %{luarocks_package_name}
227 %endif
228 %if 0%{with make_check}
229 BuildRequires: jq
230 BuildRequires: libuuid-devel
231 BuildRequires: python%{python3_pkgversion}-bcrypt
232 BuildRequires: python%{python3_pkgversion}-nose
233 BuildRequires: python%{python3_pkgversion}-pecan
234 BuildRequires: python%{python3_pkgversion}-requests
235 BuildRequires: python%{python3_pkgversion}-dateutil
236 BuildRequires: python%{python3_pkgversion}-coverage
237 BuildRequires: python%{python3_pkgversion}-pyOpenSSL
238 BuildRequires: socat
239 %endif
240 %if 0%{with zbd}
241 BuildRequires: libzbd-devel
242 %endif
243 %if 0%{with jaeger}
244 BuildRequires: bison
245 BuildRequires: flex
246 %if 0%{?fedora} || 0%{?rhel}
247 BuildRequires: json-devel
248 %endif
249 %if 0%{?suse_version}
250 BuildRequires: nlohmann_json-devel
251 %endif
252 BuildRequires: libevent-devel
253 BuildRequires: yaml-cpp-devel
254 %endif
255 %if 0%{with system_pmdk}
256 BuildRequires: libpmem-devel
257 BuildRequires: libpmemobj-devel
258 %endif
259 %if 0%{with seastar}
260 BuildRequires: c-ares-devel
261 BuildRequires: gnutls-devel
262 BuildRequires: hwloc-devel
263 BuildRequires: libpciaccess-devel
264 BuildRequires: lksctp-tools-devel
265 BuildRequires: protobuf-devel
266 BuildRequires: ragel
267 BuildRequires: systemtap-sdt-devel
268 BuildRequires: yaml-cpp-devel
269 %if 0%{?fedora}
270 BuildRequires: libubsan
271 BuildRequires: libasan
272 BuildRequires: libatomic
273 %endif
274 %if 0%{?rhel}
275 BuildRequires: gcc-toolset-9-annobin
276 BuildRequires: gcc-toolset-9-libubsan-devel
277 BuildRequires: gcc-toolset-9-libasan-devel
278 BuildRequires: gcc-toolset-9-libatomic-devel
279 %endif
280 %endif
281 #################################################################################
282 # distro-conditional dependencies
283 #################################################################################
284 %if 0%{?suse_version}
285 BuildRequires: pkgconfig(systemd)
286 BuildRequires: systemd-rpm-macros
287 %{?systemd_requires}
288 PreReq: %fillup_prereq
289 BuildRequires: fdupes
290 BuildRequires: net-tools
291 BuildRequires: libbz2-devel
292 BuildRequires: mozilla-nss-devel
293 BuildRequires: keyutils-devel
294 BuildRequires: libopenssl-devel
295 BuildRequires: openldap2-devel
296 #BuildRequires: krb5
297 #BuildRequires: krb5-devel
298 BuildRequires: cunit-devel
299 BuildRequires: python%{python3_pkgversion}-setuptools
300 BuildRequires: python%{python3_pkgversion}-Cython
301 BuildRequires: python%{python3_pkgversion}-PrettyTable
302 BuildRequires: python%{python3_pkgversion}-Sphinx
303 BuildRequires: rdma-core-devel
304 BuildRequires: liblz4-devel >= 1.7
305 # for prometheus-alerts
306 BuildRequires: golang-github-prometheus-prometheus
307 %endif
308 %if 0%{?fedora} || 0%{?rhel}
309 Requires: systemd
310 BuildRequires: boost-random
311 BuildRequires: nss-devel
312 BuildRequires: keyutils-libs-devel
313 BuildRequires: libibverbs-devel
314 BuildRequires: librdmacm-devel
315 BuildRequires: openldap-devel
316 #BuildRequires: krb5-devel
317 BuildRequires: openssl-devel
318 BuildRequires: CUnit-devel
319 BuildRequires: python%{python3_pkgversion}-devel
320 BuildRequires: python%{python3_pkgversion}-setuptools
321 BuildRequires: python%{python3_pkgversion}-Cython
322 BuildRequires: python%{python3_pkgversion}-prettytable
323 BuildRequires: python%{python3_pkgversion}-sphinx
324 BuildRequires: lz4-devel >= 1.7
325 %endif
326 # distro-conditional make check dependencies
327 %if 0%{with make_check}
328 %if 0%{?fedora} || 0%{?rhel}
329 BuildRequires: golang-github-prometheus
330 BuildRequires: jsonnet
331 BuildRequires: libtool-ltdl-devel
332 BuildRequires: xmlsec1
333 BuildRequires: xmlsec1-devel
334 %ifarch x86_64
335 BuildRequires: xmlsec1-nss
336 %endif
337 BuildRequires: xmlsec1-openssl
338 BuildRequires: xmlsec1-openssl-devel
339 BuildRequires: python%{python3_pkgversion}-cherrypy
340 BuildRequires: python%{python3_pkgversion}-jwt
341 BuildRequires: python%{python3_pkgversion}-routes
342 BuildRequires: python%{python3_pkgversion}-scipy
343 BuildRequires: python%{python3_pkgversion}-werkzeug
344 BuildRequires: python%{python3_pkgversion}-pyOpenSSL
345 %endif
346 %if 0%{?suse_version}
347 BuildRequires: golang-github-prometheus-prometheus
348 BuildRequires: jsonnet
349 BuildRequires: libxmlsec1-1
350 BuildRequires: libxmlsec1-nss1
351 BuildRequires: libxmlsec1-openssl1
352 BuildRequires: python%{python3_pkgversion}-CherryPy
353 BuildRequires: python%{python3_pkgversion}-PyJWT
354 BuildRequires: python%{python3_pkgversion}-Routes
355 BuildRequires: python%{python3_pkgversion}-Werkzeug
356 BuildRequires: python%{python3_pkgversion}-numpy-devel
357 BuildRequires: xmlsec1-devel
358 BuildRequires: xmlsec1-openssl-devel
359 %endif
360 %endif
361 # lttng and babeltrace for rbd-replay-prep
362 %if %{with lttng}
363 %if 0%{?fedora} || 0%{?rhel}
364 BuildRequires: lttng-ust-devel
365 BuildRequires: libbabeltrace-devel
366 %endif
367 %if 0%{?suse_version}
368 BuildRequires: lttng-ust-devel
369 BuildRequires: babeltrace-devel
370 %endif
371 %endif
372 %if 0%{?suse_version}
373 BuildRequires: libexpat-devel
374 %endif
375 %if 0%{?rhel} || 0%{?fedora}
376 BuildRequires: expat-devel
377 %endif
378 #hardened-cc1
379 %if 0%{?fedora} || 0%{?rhel}
380 BuildRequires: redhat-rpm-config
381 %endif
382 %if 0%{with seastar}
383 %if 0%{?fedora} || 0%{?rhel}
384 BuildRequires: cryptopp-devel
385 BuildRequires: numactl-devel
386 BuildRequires: protobuf-compiler
387 %endif
388 %if 0%{?suse_version}
389 BuildRequires: libcryptopp-devel
390 BuildRequires: libnuma-devel
391 %endif
392 %endif
393 %if 0%{?rhel} >= 8
394 BuildRequires: /usr/bin/pathfix.py
395 %endif
396
397 %description
398 Ceph is a massively scalable, open-source, distributed storage system that runs
399 on commodity hardware and delivers object, block and file system storage.
400
401
402 #################################################################################
403 # subpackages
404 #################################################################################
405 %package base
406 Summary: Ceph Base Package
407 %if 0%{?suse_version}
408 Group: System/Filesystems
409 %endif
410 Provides: ceph-test:/usr/bin/ceph-kvstore-tool
411 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
412 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
413 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
414 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
415 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
416 %if 0%{with selinux}
417 Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
418 %endif
419 Requires: cryptsetup
420 Requires: e2fsprogs
421 Requires: findutils
422 Requires: grep
423 Requires: logrotate
424 Requires: parted
425 Requires: psmisc
426 Requires: python%{python3_pkgversion}-setuptools
427 Requires: util-linux
428 Requires: xfsprogs
429 Requires: which
430 %if 0%{?rhel} && 0%{?rhel} < 8
431 # The following is necessary due to tracker 36508 and can be removed once the
432 # associated upstream bugs are resolved.
433 %if 0%{with tcmalloc}
434 Requires: gperftools-libs >= 2.6.1
435 %endif
436 %endif
437 %if 0%{?weak_deps}
438 Recommends: chrony
439 Recommends: nvme-cli
440 %if 0%{?suse_version}
441 Requires: smartmontools
442 %else
443 Recommends: smartmontools
444 %endif
445 %endif
446 %description base
447 Base is the package that includes all the files shared amongst ceph servers
448
449 %package -n cephadm
450 Summary: Utility to bootstrap Ceph clusters
451 BuildArch: noarch
452 Requires: lvm2
453 Requires: python%{python3_pkgversion}
454 %if 0%{?weak_deps}
455 Recommends: podman >= 2.0.2
456 %endif
457 %description -n cephadm
458 Utility to bootstrap a Ceph cluster and manage Ceph daemons deployed
459 with systemd and podman.
460
461 %package -n ceph-common
462 Summary: Ceph Common
463 %if 0%{?suse_version}
464 Group: System/Filesystems
465 %endif
466 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
467 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
468 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
469 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
470 Requires: python%{python3_pkgversion}-rbd = %{_epoch_prefix}%{version}-%{release}
471 Requires: python%{python3_pkgversion}-cephfs = %{_epoch_prefix}%{version}-%{release}
472 Requires: python%{python3_pkgversion}-rgw = %{_epoch_prefix}%{version}-%{release}
473 Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
474 Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
475 %if 0%{with jaeger}
476 Requires: libjaeger = %{_epoch_prefix}%{version}-%{release}
477 %endif
478 %if 0%{?fedora} || 0%{?rhel}
479 Requires: python%{python3_pkgversion}-prettytable
480 %endif
481 %if 0%{?suse_version}
482 Requires: python%{python3_pkgversion}-PrettyTable
483 %endif
484 %if 0%{with libradosstriper}
485 Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
486 %endif
487 %{?systemd_requires}
488 %if 0%{?suse_version}
489 Requires(pre): pwdutils
490 %endif
491 %description -n ceph-common
492 Common utilities to mount and interact with a ceph storage cluster.
493 Comprised of files that are common to Ceph clients and servers.
494
495 %package mds
496 Summary: Ceph Metadata Server Daemon
497 %if 0%{?suse_version}
498 Group: System/Filesystems
499 %endif
500 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
501 %description mds
502 ceph-mds is the metadata server daemon for the Ceph distributed file system.
503 One or more instances of ceph-mds collectively manage the file system
504 namespace, coordinating access to the shared OSD cluster.
505
506 %package mon
507 Summary: Ceph Monitor Daemon
508 %if 0%{?suse_version}
509 Group: System/Filesystems
510 %endif
511 Provides: ceph-test:/usr/bin/ceph-monstore-tool
512 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
513 %if 0%{with jaeger}
514 Requires: libjaeger = %{_epoch_prefix}%{version}-%{release}
515 %endif
516 %description mon
517 ceph-mon is the cluster monitor daemon for the Ceph distributed file
518 system. One or more instances of ceph-mon form a Paxos part-time
519 parliament cluster that provides extremely reliable and durable storage
520 of cluster membership, configuration, and state.
521
522 %package mgr
523 Summary: Ceph Manager Daemon
524 %if 0%{?suse_version}
525 Group: System/Filesystems
526 %endif
527 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
528 Requires: ceph-mgr-modules-core = %{_epoch_prefix}%{version}-%{release}
529 Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release}
530 %if 0%{?weak_deps}
531 Recommends: ceph-mgr-dashboard = %{_epoch_prefix}%{version}-%{release}
532 Recommends: ceph-mgr-diskprediction-local = %{_epoch_prefix}%{version}-%{release}
533 Recommends: ceph-mgr-k8sevents = %{_epoch_prefix}%{version}-%{release}
534 Recommends: ceph-mgr-cephadm = %{_epoch_prefix}%{version}-%{release}
535 Recommends: python%{python3_pkgversion}-influxdb
536 %endif
537 %description mgr
538 ceph-mgr enables python modules that provide services (such as the REST
539 module derived from Calamari) and expose CLI hooks. ceph-mgr gathers
540 the cluster maps, the daemon metadata, and performance counters, and
541 exposes all these to the python modules.
542
543 %package mgr-dashboard
544 Summary: Ceph Dashboard
545 BuildArch: noarch
546 %if 0%{?suse_version}
547 Group: System/Filesystems
548 %endif
549 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
550 Requires: ceph-grafana-dashboards = %{_epoch_prefix}%{version}-%{release}
551 Requires: ceph-prometheus-alerts = %{_epoch_prefix}%{version}-%{release}
552 %if 0%{?fedora} || 0%{?rhel}
553 Requires: python%{python3_pkgversion}-cherrypy
554 Requires: python%{python3_pkgversion}-jwt
555 Requires: python%{python3_pkgversion}-routes
556 Requires: python%{python3_pkgversion}-werkzeug
557 %if 0%{?weak_deps}
558 Recommends: python%{python3_pkgversion}-saml
559 %endif
560 %endif
561 %if 0%{?suse_version}
562 Requires: python%{python3_pkgversion}-CherryPy
563 Requires: python%{python3_pkgversion}-PyJWT
564 Requires: python%{python3_pkgversion}-Routes
565 Requires: python%{python3_pkgversion}-Werkzeug
566 Recommends: python%{python3_pkgversion}-python3-saml
567 %endif
568 %description mgr-dashboard
569 ceph-mgr-dashboard is a manager module, providing a web-based application
570 to monitor and manage many aspects of a Ceph cluster and related components.
571 See the Dashboard documentation at http://docs.ceph.com/ for details and a
572 detailed feature overview.
573
574 %package mgr-diskprediction-local
575 Summary: Ceph Manager module for predicting disk failures
576 BuildArch: noarch
577 %if 0%{?suse_version}
578 Group: System/Filesystems
579 %endif
580 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
581 Requires: python%{python3_pkgversion}-numpy
582 %if 0%{?fedora} || 0%{?suse_version}
583 Requires: python%{python3_pkgversion}-scikit-learn
584 %endif
585 Requires: python3-scipy
586 %description mgr-diskprediction-local
587 ceph-mgr-diskprediction-local is a ceph-mgr module that tries to predict
588 disk failures using local algorithms and machine-learning databases.
589
590 %package mgr-modules-core
591 Summary: Ceph Manager modules which are always enabled
592 BuildArch: noarch
593 %if 0%{?suse_version}
594 Group: System/Filesystems
595 %endif
596 Requires: python%{python3_pkgversion}-bcrypt
597 Requires: python%{python3_pkgversion}-pecan
598 Requires: python%{python3_pkgversion}-pyOpenSSL
599 Requires: python%{python3_pkgversion}-requests
600 Requires: python%{python3_pkgversion}-dateutil
601 %if 0%{?fedora} || 0%{?rhel} >= 8
602 Requires: python%{python3_pkgversion}-cherrypy
603 Requires: python%{python3_pkgversion}-pyyaml
604 Requires: python%{python3_pkgversion}-werkzeug
605 %endif
606 %if 0%{?suse_version}
607 Requires: python%{python3_pkgversion}-CherryPy
608 Requires: python%{python3_pkgversion}-PyYAML
609 Requires: python%{python3_pkgversion}-Werkzeug
610 %endif
611 %if 0%{?weak_deps}
612 Recommends: ceph-mgr-rook = %{_epoch_prefix}%{version}-%{release}
613 %endif
614 %description mgr-modules-core
615 ceph-mgr-modules-core provides a set of modules which are always
616 enabled by ceph-mgr.
617
618 %package mgr-rook
619 BuildArch: noarch
620 Summary: Ceph Manager module for Rook-based orchestration
621 %if 0%{?suse_version}
622 Group: System/Filesystems
623 %endif
624 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
625 Requires: python%{python3_pkgversion}-kubernetes
626 Requires: python%{python3_pkgversion}-jsonpatch
627 %description mgr-rook
628 ceph-mgr-rook is a ceph-mgr module for orchestration functions using
629 a Rook backend.
630
631 %package mgr-k8sevents
632 BuildArch: noarch
633 Summary: Ceph Manager module to orchestrate ceph-events to kubernetes' events API
634 %if 0%{?suse_version}
635 Group: System/Filesystems
636 %endif
637 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
638 Requires: python%{python3_pkgversion}-kubernetes
639 %description mgr-k8sevents
640 ceph-mgr-k8sevents is a ceph-mgr module that sends every ceph-events
641 to kubernetes' events API
642
643 %package mgr-cephadm
644 Summary: Ceph Manager module for cephadm-based orchestration
645 BuildArch: noarch
646 %if 0%{?suse_version}
647 Group: System/Filesystems
648 %endif
649 Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
650 Requires: python%{python3_pkgversion}-remoto
651 Requires: cephadm = %{_epoch_prefix}%{version}-%{release}
652 %if 0%{?suse_version}
653 Requires: openssh
654 Requires: python%{python3_pkgversion}-Jinja2
655 %endif
656 %if 0%{?rhel} || 0%{?fedora}
657 Requires: openssh-clients
658 Requires: python%{python3_pkgversion}-jinja2
659 %endif
660 %description mgr-cephadm
661 ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
662 the integrated cephadm deployment tool management operations.
663
664 %package fuse
665 Summary: Ceph fuse-based client
666 %if 0%{?suse_version}
667 Group: System/Filesystems
668 %endif
669 Requires: fuse
670 Requires: python%{python3_pkgversion}
671 %description fuse
672 FUSE based client for Ceph distributed network file system
673
674 %package -n cephfs-mirror
675 Summary: Ceph daemon for mirroring CephFS snapshots
676 %if 0%{?suse_version}
677 Group: System/Filesystems
678 %endif
679 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
680 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
681 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
682 %description -n cephfs-mirror
683 Daemon for mirroring CephFS snapshots between Ceph clusters.
684
685 %package -n rbd-fuse
686 Summary: Ceph fuse-based client
687 %if 0%{?suse_version}
688 Group: System/Filesystems
689 %endif
690 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
691 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
692 %description -n rbd-fuse
693 FUSE based client to map Ceph rbd images to files
694
695 %package -n rbd-mirror
696 Summary: Ceph daemon for mirroring RBD images
697 %if 0%{?suse_version}
698 Group: System/Filesystems
699 %endif
700 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
701 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
702 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
703 %description -n rbd-mirror
704 Daemon for mirroring RBD images between Ceph clusters, streaming
705 changes asynchronously.
706
707 %package immutable-object-cache
708 Summary: Ceph daemon for immutable object cache
709 %if 0%{?suse_version}
710 Group: System/Filesystems
711 %endif
712 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
713 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
714 %description immutable-object-cache
715 Daemon for immutable object cache.
716
717 %package -n rbd-nbd
718 Summary: Ceph RBD client base on NBD
719 %if 0%{?suse_version}
720 Group: System/Filesystems
721 %endif
722 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
723 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
724 %description -n rbd-nbd
725 NBD based client to map Ceph rbd images to local device
726
727 %package radosgw
728 Summary: Rados REST gateway
729 %if 0%{?suse_version}
730 Group: System/Filesystems
731 %endif
732 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
733 %if 0%{with selinux}
734 Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
735 %endif
736 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
737 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
738 %if 0%{?rhel} || 0%{?fedora}
739 Requires: mailcap
740 %endif
741 %if 0%{?weak_deps}
742 Recommends: gawk
743 %endif
744 %description radosgw
745 RADOS is a distributed object store used by the Ceph distributed
746 storage system. This package provides a REST gateway to the
747 object store that aims to implement a superset of Amazon's S3
748 service as well as the OpenStack Object Storage ("Swift") API.
749
750 %package -n cephfs-top
751 Summary: top(1) like utility for Ceph Filesystem
752 BuildArch: noarch
753 Requires: python%{python3_pkgversion}-rados
754 %description -n cephfs-top
755 This package provides a top(1) like utility to display Ceph Filesystem metrics
756 in realtime.
757
758 %if %{with ocf}
759 %package resource-agents
760 Summary: OCF-compliant resource agents for Ceph daemons
761 %if 0%{?suse_version}
762 Group: System/Filesystems
763 %endif
764 Requires: ceph-base = %{_epoch_prefix}%{version}
765 Requires: resource-agents
766 %description resource-agents
767 Resource agents for monitoring and managing Ceph daemons
768 under Open Cluster Framework (OCF) compliant resource
769 managers such as Pacemaker.
770 %endif
771
772 %package osd
773 Summary: Ceph Object Storage Daemon
774 %if 0%{?suse_version}
775 Group: System/Filesystems
776 %endif
777 Provides: ceph-test:/usr/bin/ceph-osdomap-tool
778 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
779 Requires: lvm2
780 Requires: sudo
781 Requires: libstoragemgmt
782 Requires: python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
783 %description osd
784 ceph-osd is the object storage daemon for the Ceph distributed file
785 system. It is responsible for storing objects on a local file system
786 and providing access to them over the network.
787
788 %if 0%{with seastar}
789 %package crimson-osd
790 Summary: Ceph Object Storage Daemon (crimson)
791 %if 0%{?suse_version}
792 Group: System/Filesystems
793 %endif
794 Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
795 %description crimson-osd
796 crimson-osd is the object storage daemon for the Ceph distributed file
797 system. It is responsible for storing objects on a local file system
798 and providing access to them over the network.
799 %endif
800
801 %package -n librados2
802 Summary: RADOS distributed object store client library
803 %if 0%{?suse_version}
804 Group: System/Libraries
805 %endif
806 %if 0%{?rhel} || 0%{?fedora}
807 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
808 %endif
809 %description -n librados2
810 RADOS is a reliable, autonomic distributed object storage cluster
811 developed as part of the Ceph distributed storage system. This is a
812 shared library allowing applications to access the distributed object
813 store using a simple file-like interface.
814
815 %package -n librados-devel
816 Summary: RADOS headers
817 %if 0%{?suse_version}
818 Group: Development/Libraries/C and C++
819 %endif
820 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
821 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
822 Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release}
823 Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release}
824 %description -n librados-devel
825 This package contains C libraries and headers needed to develop programs
826 that use RADOS object store.
827
828 %package -n libradospp-devel
829 Summary: RADOS headers
830 %if 0%{?suse_version}
831 Group: Development/Libraries/C and C++
832 %endif
833 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
834 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
835 %description -n libradospp-devel
836 This package contains C++ libraries and headers needed to develop programs
837 that use RADOS object store.
838
839 %package -n librgw2
840 Summary: RADOS gateway client library
841 %if 0%{?suse_version}
842 Group: System/Libraries
843 %endif
844 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
845 %description -n librgw2
846 This package provides a library implementation of the RADOS gateway
847 (distributed object store with S3 and Swift personalities).
848
849 %package -n librgw-devel
850 Summary: RADOS gateway client library
851 %if 0%{?suse_version}
852 Group: Development/Libraries/C and C++
853 %endif
854 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
855 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
856 Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release}
857 Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release}
858 %description -n librgw-devel
859 This package contains libraries and headers needed to develop programs
860 that use RADOS gateway client library.
861
862 %package -n python%{python3_pkgversion}-rgw
863 Summary: Python 3 libraries for the RADOS gateway
864 %if 0%{?suse_version}
865 Group: Development/Libraries/Python
866 %endif
867 Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
868 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
869 %{?python_provide:%python_provide python%{python3_pkgversion}-rgw}
870 Provides: python-rgw = %{_epoch_prefix}%{version}-%{release}
871 Obsoletes: python-rgw < %{_epoch_prefix}%{version}-%{release}
872 %description -n python%{python3_pkgversion}-rgw
873 This package contains Python 3 libraries for interacting with Ceph RADOS
874 gateway.
875
876 %package -n python%{python3_pkgversion}-rados
877 Summary: Python 3 libraries for the RADOS object store
878 %if 0%{?suse_version}
879 Group: Development/Libraries/Python
880 %endif
881 Requires: python%{python3_pkgversion}
882 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
883 %{?python_provide:%python_provide python%{python3_pkgversion}-rados}
884 Provides: python-rados = %{_epoch_prefix}%{version}-%{release}
885 Obsoletes: python-rados < %{_epoch_prefix}%{version}-%{release}
886 %description -n python%{python3_pkgversion}-rados
887 This package contains Python 3 libraries for interacting with Ceph RADOS
888 object store.
889
890 %package -n libcephsqlite
891 Summary: SQLite3 VFS for Ceph
892 %if 0%{?suse_version}
893 Group: System/Libraries
894 %endif
895 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
896 %description -n libcephsqlite
897 A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS
898 distributed object store.
899
900 %package -n libcephsqlite-devel
901 Summary: SQLite3 VFS for Ceph headers
902 %if 0%{?suse_version}
903 Group: Development/Libraries/C and C++
904 %endif
905 Requires: sqlite-devel
906 Requires: libcephsqlite = %{_epoch_prefix}%{version}-%{release}
907 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
908 Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release}
909 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
910 Provides: libcephsqlite-devel = %{_epoch_prefix}%{version}-%{release}
911 Obsoletes: libcephsqlite-devel < %{_epoch_prefix}%{version}-%{release}
912 %description -n libcephsqlite-devel
913 A SQLite3 VFS for storing and manipulating databases stored on Ceph's RADOS
914 distributed object store.
915
916 %if 0%{with libradosstriper}
917 %package -n libradosstriper1
918 Summary: RADOS striping interface
919 %if 0%{?suse_version}
920 Group: System/Libraries
921 %endif
922 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
923 %description -n libradosstriper1
924 Striping interface built on top of the rados library, allowing
925 to stripe bigger objects onto several standard rados objects using
926 an interface very similar to the rados one.
927
928 %package -n libradosstriper-devel
929 Summary: RADOS striping interface headers
930 %if 0%{?suse_version}
931 Group: Development/Libraries/C and C++
932 %endif
933 Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
934 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
935 Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release}
936 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
937 Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release}
938 Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release}
939 %description -n libradosstriper-devel
940 This package contains libraries and headers needed to develop programs
941 that use RADOS striping interface.
942 %endif
943
944 %package -n librbd1
945 Summary: RADOS block device client library
946 %if 0%{?suse_version}
947 Group: System/Libraries
948 %endif
949 Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
950 %if 0%{?suse_version}
951 Requires(post): coreutils
952 %endif
953 %if 0%{?rhel} || 0%{?fedora}
954 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
955 %endif
956 %description -n librbd1
957 RBD is a block device striped across multiple distributed objects in
958 RADOS, a reliable, autonomic distributed object storage cluster
959 developed as part of the Ceph distributed storage system. This is a
960 shared library allowing applications to manage these block devices.
961
962 %package -n librbd-devel
963 Summary: RADOS block device headers
964 %if 0%{?suse_version}
965 Group: Development/Libraries/C and C++
966 %endif
967 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
968 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
969 Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release}
970 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
971 Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release}
972 Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release}
973 %description -n librbd-devel
974 This package contains libraries and headers needed to develop programs
975 that use RADOS block device.
976
977 %package -n python%{python3_pkgversion}-rbd
978 Summary: Python 3 libraries for the RADOS block device
979 %if 0%{?suse_version}
980 Group: Development/Libraries/Python
981 %endif
982 Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
983 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
984 %{?python_provide:%python_provide python%{python3_pkgversion}-rbd}
985 Provides: python-rbd = %{_epoch_prefix}%{version}-%{release}
986 Obsoletes: python-rbd < %{_epoch_prefix}%{version}-%{release}
987 %description -n python%{python3_pkgversion}-rbd
988 This package contains Python 3 libraries for interacting with Ceph RADOS
989 block device.
990
991 %package -n libcephfs2
992 Summary: Ceph distributed file system client library
993 %if 0%{?suse_version}
994 Group: System/Libraries
995 %endif
996 Obsoletes: libcephfs1 < %{_epoch_prefix}%{version}-%{release}
997 %if 0%{?rhel} || 0%{?fedora}
998 Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
999 Obsoletes: ceph-libcephfs
1000 %endif
1001 %description -n libcephfs2
1002 Ceph is a distributed network file system designed to provide excellent
1003 performance, reliability, and scalability. This is a shared library
1004 allowing applications to access a Ceph distributed file system via a
1005 POSIX-like interface.
1006
1007 %package -n libcephfs-devel
1008 Summary: Ceph distributed file system headers
1009 %if 0%{?suse_version}
1010 Group: Development/Libraries/C and C++
1011 %endif
1012 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
1013 Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
1014 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
1015 Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release}
1016 Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release}
1017 %description -n libcephfs-devel
1018 This package contains libraries and headers needed to develop programs
1019 that use Ceph distributed file system.
1020
1021 %if 0%{with jaeger}
1022 %package -n libjaeger
1023 Summary: Ceph distributed file system tracing library
1024 %if 0%{?suse_version}
1025 Group: System/Libraries
1026 %endif
1027 Provides: libjaegertracing.so.0()(64bit)
1028 Provides: libopentracing.so.1()(64bit)
1029 Provides: libthrift.so.0.13.0()(64bit)
1030 %description -n libjaeger
1031 This package contains libraries needed to provide distributed
1032 tracing for Ceph.
1033 %endif
1034
1035 %package -n python%{python3_pkgversion}-cephfs
1036 Summary: Python 3 libraries for Ceph distributed file system
1037 %if 0%{?suse_version}
1038 Group: Development/Libraries/Python
1039 %endif
1040 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
1041 Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
1042 Requires: python%{python3_pkgversion}-ceph-argparse = %{_epoch_prefix}%{version}-%{release}
1043 %{?python_provide:%python_provide python%{python3_pkgversion}-cephfs}
1044 Provides: python-cephfs = %{_epoch_prefix}%{version}-%{release}
1045 Obsoletes: python-cephfs < %{_epoch_prefix}%{version}-%{release}
1046 %description -n python%{python3_pkgversion}-cephfs
1047 This package contains Python 3 libraries for interacting with Ceph distributed
1048 file system.
1049
1050 %package -n python%{python3_pkgversion}-ceph-argparse
1051 Summary: Python 3 utility libraries for Ceph CLI
1052 %if 0%{?suse_version}
1053 Group: Development/Libraries/Python
1054 %endif
1055 %{?python_provide:%python_provide python%{python3_pkgversion}-ceph-argparse}
1056 %description -n python%{python3_pkgversion}-ceph-argparse
1057 This package contains types and routines for Python 3 used by the Ceph CLI as
1058 well as the RESTful interface. These have to do with querying the daemons for
1059 command-description information, validating user command input against those
1060 descriptions, and submitting the command to the appropriate daemon.
1061
1062 %package -n python%{python3_pkgversion}-ceph-common
1063 Summary: Python 3 utility libraries for Ceph
1064 %if 0%{?fedora} || 0%{?rhel} >= 8
1065 Requires: python%{python3_pkgversion}-pyyaml
1066 %endif
1067 %if 0%{?suse_version}
1068 Requires: python%{python3_pkgversion}-PyYAML
1069 %endif
1070 %if 0%{?suse_version}
1071 Group: Development/Libraries/Python
1072 %endif
1073 %{?python_provide:%python_provide python%{python3_pkgversion}-ceph-common}
1074 %description -n python%{python3_pkgversion}-ceph-common
1075 This package contains data structures, classes and functions used by Ceph.
1076 It also contains utilities used for the cephadm orchestrator.
1077
1078 %if 0%{with cephfs_shell}
1079 %package -n cephfs-shell
1080 Summary: Interactive shell for Ceph file system
1081 Requires: python%{python3_pkgversion}-cmd2
1082 Requires: python%{python3_pkgversion}-colorama
1083 Requires: python%{python3_pkgversion}-cephfs
1084 %description -n cephfs-shell
1085 This package contains an interactive tool that allows accessing a Ceph
1086 file system without mounting it by providing a nice pseudo-shell which
1087 works like an FTP client.
1088 %endif
1089
1090 %if 0%{with ceph_test_package}
1091 %package -n ceph-test
1092 Summary: Ceph benchmarks and test tools
1093 %if 0%{?suse_version}
1094 Group: System/Benchmark
1095 %endif
1096 Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
1097 Requires: xmlstarlet
1098 Requires: jq
1099 Requires: socat
1100 %description -n ceph-test
1101 This package contains Ceph benchmarks and test tools.
1102 %endif
1103
1104 %if 0%{with cephfs_java}
1105
1106 %package -n libcephfs_jni1
1107 Summary: Java Native Interface library for CephFS Java bindings
1108 %if 0%{?suse_version}
1109 Group: System/Libraries
1110 %endif
1111 Requires: java
1112 Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
1113 %description -n libcephfs_jni1
1114 This package contains the Java Native Interface library for CephFS Java
1115 bindings.
1116
1117 %package -n libcephfs_jni-devel
1118 Summary: Development files for CephFS Java Native Interface library
1119 %if 0%{?suse_version}
1120 Group: Development/Libraries/Java
1121 %endif
1122 Requires: java
1123 Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
1124 Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
1125 Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release}
1126 Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release}
1127 %description -n libcephfs_jni-devel
1128 This package contains the development files for CephFS Java Native Interface
1129 library.
1130
1131 %package -n cephfs-java
1132 Summary: Java libraries for the Ceph File System
1133 %if 0%{?suse_version}
1134 Group: System/Libraries
1135 %endif
1136 Requires: java
1137 Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
1138 Requires: junit
1139 BuildRequires: junit
1140 %description -n cephfs-java
1141 This package contains the Java libraries for the Ceph File System.
1142
1143 %endif
1144
1145 %package -n rados-objclass-devel
1146 Summary: RADOS object class development kit
1147 %if 0%{?suse_version}
1148 Group: Development/Libraries/C and C++
1149 %endif
1150 Requires: libradospp-devel = %{_epoch_prefix}%{version}-%{release}
1151 %description -n rados-objclass-devel
1152 This package contains libraries and headers needed to develop RADOS object
1153 class plugins.
1154
1155 %if 0%{with selinux}
1156
1157 %package selinux
1158 Summary: SELinux support for Ceph MON, OSD and MDS
1159 %if 0%{?suse_version}
1160 Group: System/Filesystems
1161 %endif
1162 Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
1163 Requires: policycoreutils, libselinux-utils
1164 Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release}
1165 Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk
1166 Requires(postun): policycoreutils
1167 %description selinux
1168 This package contains SELinux support for Ceph MON, OSD and MDS. The package
1169 also performs file-system relabelling which can take a long time on heavily
1170 populated file-systems.
1171
1172 %endif
1173
1174 %package grafana-dashboards
1175 Summary: The set of Grafana dashboards for monitoring purposes
1176 BuildArch: noarch
1177 %if 0%{?suse_version}
1178 Group: System/Filesystems
1179 %endif
1180 %description grafana-dashboards
1181 This package provides a set of Grafana dashboards for monitoring of
1182 Ceph clusters. The dashboards require a Prometheus server setup
1183 collecting data from Ceph Manager "prometheus" module and Prometheus
1184 project "node_exporter" module. The dashboards are designed to be
1185 integrated with the Ceph Manager Dashboard web UI.
1186
1187 %package prometheus-alerts
1188 Summary: Prometheus alerts for a Ceph deployment
1189 BuildArch: noarch
1190 Group: System/Monitoring
1191 %description prometheus-alerts
1192 This package provides Ceph default alerts for Prometheus.
1193
1194 #################################################################################
1195 # common
1196 #################################################################################
1197 %prep
1198 %autosetup -p1 -n ceph-16.2.7
1199
1200 %build
1201 # LTO can be enabled as soon as the following GCC bug is fixed:
1202 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
1203 %define _lto_cflags %{nil}
1204
1205 %if 0%{with seastar} && 0%{?rhel}
1206 . /opt/rh/gcc-toolset-9/enable
1207 %endif
1208
1209 %if 0%{with cephfs_java}
1210 # Find jni.h
1211 for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do
1212 [ -d $i ] && java_inc="$java_inc -I$i"
1213 done
1214 %endif
1215
1216 %if 0%{?suse_version}
1217 # the following setting fixed an OOM condition we once encountered in the OBS
1218 RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768"
1219 %endif
1220
1221 export CPPFLAGS="$java_inc"
1222 export CFLAGS="$RPM_OPT_FLAGS"
1223 export CXXFLAGS="$RPM_OPT_FLAGS"
1224 export LDFLAGS="$RPM_LD_FLAGS"
1225
1226 %if 0%{with seastar}
1227 # seastar uses longjmp() to implement coroutine. and this annoys longjmp_chk()
1228 export CXXFLAGS=$(echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//g')
1229 %endif
1230
1231 # Parallel build settings ...
1232 CEPH_MFLAGS_JOBS="%{?_smp_mflags}"
1233 CEPH_SMP_NCPUS=$(echo "$CEPH_MFLAGS_JOBS" | sed 's/-j//')
1234 %if 0%{?__isa_bits} == 32
1235 # 32-bit builds can use 3G memory max, which is not enough even for -j2
1236 CEPH_SMP_NCPUS="1"
1237 %endif
1238 # do not eat all memory
1239 echo "Available memory:"
1240 free -h
1241 echo "System limits:"
1242 ulimit -a
1243 if test -n "$CEPH_SMP_NCPUS" -a "$CEPH_SMP_NCPUS" -gt 1 ; then
1244 mem_per_process=2500
1245 max_mem=$(LANG=C free -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p")
1246 max_jobs="$(($max_mem / $mem_per_process))"
1247 test "$CEPH_SMP_NCPUS" -gt "$max_jobs" && CEPH_SMP_NCPUS="$max_jobs" && echo "Warning: Reducing build parallelism to -j$max_jobs because of memory limits"
1248 test "$CEPH_SMP_NCPUS" -le 0 && CEPH_SMP_NCPUS="1" && echo "Warning: Not using parallel build at all because of memory limits"
1249 fi
1250 export CEPH_SMP_NCPUS
1251 export CEPH_MFLAGS_JOBS="-j$CEPH_SMP_NCPUS"
1252
1253 env | sort
1254
1255 mkdir build
1256 cd build
1257 CMAKE=cmake
1258 ${CMAKE} .. \
1259 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
1260 -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
1261 -DCMAKE_INSTALL_LIBEXECDIR=%{_libexecdir} \
1262 -DCMAKE_INSTALL_LOCALSTATEDIR=%{_localstatedir} \
1263 -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \
1264 -DCMAKE_INSTALL_MANDIR=%{_mandir} \
1265 -DCMAKE_INSTALL_DOCDIR=%{_docdir}/ceph \
1266 -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
1267 -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=%{_unitdir} \
1268 -DWITH_MANPAGE=ON \
1269 -DWITH_PYTHON3=%{python3_version} \
1270 -DWITH_MGR_DASHBOARD_FRONTEND=OFF \
1271 %if 0%{without ceph_test_package}
1272 -DWITH_TESTS=OFF \
1273 %endif
1274 %if 0%{with cephfs_java}
1275 -DWITH_CEPHFS_JAVA=ON \
1276 %endif
1277 %if 0%{with selinux}
1278 -DWITH_SELINUX=ON \
1279 %endif
1280 %if %{with lttng}
1281 -DWITH_LTTNG=ON \
1282 -DWITH_BABELTRACE=ON \
1283 %else
1284 -DWITH_LTTNG=OFF \
1285 -DWITH_BABELTRACE=OFF \
1286 %endif
1287 $CEPH_EXTRA_CMAKE_ARGS \
1288 %if 0%{with ocf}
1289 -DWITH_OCF=ON \
1290 %endif
1291 %if 0%{with cephfs_shell}
1292 -DWITH_CEPHFS_SHELL=ON \
1293 %endif
1294 %if 0%{with libradosstriper}
1295 -DWITH_LIBRADOSSTRIPER=ON \
1296 %else
1297 -DWITH_LIBRADOSSTRIPER=OFF \
1298 %endif
1299 %if 0%{with amqp_endpoint}
1300 -DWITH_RADOSGW_AMQP_ENDPOINT=ON \
1301 %else
1302 -DWITH_RADOSGW_AMQP_ENDPOINT=OFF \
1303 %endif
1304 %if 0%{with kafka_endpoint}
1305 -DWITH_RADOSGW_KAFKA_ENDPOINT=ON \
1306 %else
1307 -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF \
1308 %endif
1309 %if 0%{without lua_packages}
1310 -DWITH_RADOSGW_LUA_PACKAGES=OFF \
1311 %endif
1312 %if 0%{with zbd}
1313 -DWITH_ZBD=ON \
1314 %endif
1315 %if 0%{with cmake_verbose_logging}
1316 -DCMAKE_VERBOSE_MAKEFILE=ON \
1317 %endif
1318 %if 0%{with rbd_rwl_cache}
1319 -DWITH_RBD_RWL=ON \
1320 %endif
1321 %if 0%{with rbd_ssd_cache}
1322 -DWITH_RBD_SSD_CACHE=ON \
1323 %endif
1324 %if 0%{with system_pmdk}
1325 -DWITH_SYSTEM_PMDK:BOOL=ON \
1326 %endif
1327 -DBOOST_J=$CEPH_SMP_NCPUS \
1328 %if 0%{?rhel}
1329 -DWITH_FMT_HEADER_ONLY:BOOL=ON \
1330 %endif
1331 -DWITH_GRAFANA=ON
1332
1333 %if %{with cmake_verbose_logging}
1334 cat ./CMakeFiles/CMakeOutput.log
1335 cat ./CMakeFiles/CMakeError.log
1336 %endif
1337
1338 make "$CEPH_MFLAGS_JOBS"
1339
1340
1341 %if 0%{with make_check}
1342 %check
1343 # run in-tree unittests
1344 cd build
1345 ctest "$CEPH_MFLAGS_JOBS"
1346 %endif
1347
1348
1349 %install
1350 pushd build
1351 make DESTDIR=%{buildroot} install
1352 # we have dropped sysvinit bits
1353 rm -f %{buildroot}/%{_sysconfdir}/init.d/ceph
1354 popd
1355
1356 %if 0%{with seastar}
1357 # package crimson-osd with the name of ceph-osd
1358 install -m 0755 %{buildroot}%{_bindir}/crimson-osd %{buildroot}%{_bindir}/ceph-osd
1359 %endif
1360
1361 install -m 0644 -D src/etc-rbdmap %{buildroot}%{_sysconfdir}/ceph/rbdmap
1362 %if 0%{?fedora} || 0%{?rhel}
1363 install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_sysconfdir}/sysconfig/ceph
1364 %endif
1365 %if 0%{?suse_version}
1366 install -m 0644 -D etc/sysconfig/ceph %{buildroot}%{_fillupdir}/sysconfig.%{name}
1367 %endif
1368 install -m 0644 -D systemd/ceph.tmpfiles.d %{buildroot}%{_tmpfilesdir}/ceph-common.conf
1369 install -m 0644 -D systemd/50-ceph.preset %{buildroot}%{_presetdir}/50-ceph.preset
1370 mkdir -p %{buildroot}%{_sbindir}
1371 install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph
1372 chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf
1373 install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING
1374 install -m 0644 -D etc/sysctl/90-ceph-osd.conf %{buildroot}%{_sysctldir}/90-ceph-osd.conf
1375 install -m 0755 -D src/tools/rbd_nbd/rbd-nbd_quiesce %{buildroot}%{_libexecdir}/rbd-nbd/rbd-nbd_quiesce
1376
1377 install -m 0755 src/cephadm/cephadm %{buildroot}%{_sbindir}/cephadm
1378 mkdir -p %{buildroot}%{_sharedstatedir}/cephadm
1379 chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm
1380 mkdir -p %{buildroot}%{_sharedstatedir}/cephadm/.ssh
1381 chmod 0700 %{buildroot}%{_sharedstatedir}/cephadm/.ssh
1382 touch %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
1383 chmod 0600 %{buildroot}%{_sharedstatedir}/cephadm/.ssh/authorized_keys
1384
1385 # firewall templates and /sbin/mount.ceph symlink
1386 %if 0%{?suse_version} && !0%{?usrmerged}
1387 mkdir -p %{buildroot}/sbin
1388 ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
1389 %endif
1390
1391 # udev rules
1392 install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules
1393
1394 # sudoers.d
1395 install -m 0440 -D sudoers.d/ceph-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl
1396
1397 %if 0%{?rhel} >= 8
1398 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/*
1399 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_sbindir}/*
1400 %endif
1401
1402 #set up placeholder directories
1403 mkdir -p %{buildroot}%{_sysconfdir}/ceph
1404 mkdir -p %{buildroot}%{_localstatedir}/run/ceph
1405 mkdir -p %{buildroot}%{_localstatedir}/log/ceph
1406 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/tmp
1407 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mon
1408 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/osd
1409 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mds
1410 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/mgr
1411 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash
1412 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/crash/posted
1413 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/radosgw
1414 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-osd
1415 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mds
1416 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rgw
1417 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-mgr
1418 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd
1419 mkdir -p %{buildroot}%{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
1420
1421 # prometheus alerts
1422 install -m 644 -D monitoring/prometheus/alerts/ceph_default_alerts.yml %{buildroot}/etc/prometheus/ceph/ceph_default_alerts.yml
1423
1424 %if 0%{?suse_version}
1425 # create __pycache__ directories and their contents
1426 %py3_compile %{buildroot}%{python3_sitelib}
1427 # hardlink duplicate files under /usr to save space
1428 %fdupes %{buildroot}%{_prefix}
1429 %endif
1430
1431 %if 0%{?rhel} == 8
1432 %py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}
1433 %endif
1434
1435 %clean
1436 rm -rf %{buildroot}
1437
1438 #################################################################################
1439 # files and systemd scriptlets
1440 #################################################################################
1441 %files
1442
1443 %files base
1444 %{_bindir}/ceph-crash
1445 %{_bindir}/crushtool
1446 %{_bindir}/monmaptool
1447 %{_bindir}/osdmaptool
1448 %{_bindir}/ceph-kvstore-tool
1449 %{_bindir}/ceph-run
1450 %{_presetdir}/50-ceph.preset
1451 %{_sbindir}/ceph-create-keys
1452 %dir %{_libexecdir}/ceph
1453 %{_libexecdir}/ceph/ceph_common.sh
1454 %dir %{_libdir}/rados-classes
1455 %{_libdir}/rados-classes/*
1456 %dir %{_libdir}/ceph
1457 %dir %{_libdir}/ceph/erasure-code
1458 %{_libdir}/ceph/erasure-code/libec_*.so*
1459 %dir %{_libdir}/ceph/compressor
1460 %{_libdir}/ceph/compressor/libceph_*.so*
1461 %{_unitdir}/ceph-crash.service
1462 %dir %{_libdir}/ceph/crypto
1463 %{_libdir}/ceph/crypto/libceph_*.so*
1464 %if %{with lttng}
1465 %{_libdir}/libos_tp.so*
1466 %{_libdir}/libosd_tp.so*
1467 %endif
1468 %config(noreplace) %{_sysconfdir}/logrotate.d/ceph
1469 %if 0%{?fedora} || 0%{?rhel}
1470 %config(noreplace) %{_sysconfdir}/sysconfig/ceph
1471 %endif
1472 %if 0%{?suse_version}
1473 %{_fillupdir}/sysconfig.*
1474 %endif
1475 %{_unitdir}/ceph.target
1476 %dir %{python3_sitelib}/ceph_volume
1477 %{python3_sitelib}/ceph_volume/*
1478 %{python3_sitelib}/ceph_volume-*
1479 %{_mandir}/man8/ceph-deploy.8*
1480 %{_mandir}/man8/ceph-create-keys.8*
1481 %{_mandir}/man8/ceph-run.8*
1482 %{_mandir}/man8/crushtool.8*
1483 %{_mandir}/man8/osdmaptool.8*
1484 %{_mandir}/man8/monmaptool.8*
1485 %{_mandir}/man8/ceph-kvstore-tool.8*
1486 #set up placeholder directories
1487 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash
1488 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/crash/posted
1489 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp
1490 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd
1491 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds
1492 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw
1493 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr
1494 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd
1495 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
1496 %{_sysconfdir}/sudoers.d/ceph-smartctl
1497
1498 %post base
1499 /sbin/ldconfig
1500 %if 0%{?suse_version}
1501 %fillup_only
1502 if [ $1 -eq 1 ] ; then
1503 /usr/bin/systemctl preset ceph.target ceph-crash.service >/dev/null 2>&1 || :
1504 fi
1505 %endif
1506 %if 0%{?fedora} || 0%{?rhel}
1507 %systemd_post ceph.target ceph-crash.service
1508 %endif
1509 if [ $1 -eq 1 ] ; then
1510 /usr/bin/systemctl start ceph.target ceph-crash.service >/dev/null 2>&1 || :
1511 fi
1512
1513 %preun base
1514 %if 0%{?suse_version}
1515 %service_del_preun ceph.target ceph-crash.service
1516 %endif
1517 %if 0%{?fedora} || 0%{?rhel}
1518 %systemd_preun ceph.target ceph-crash.service
1519 %endif
1520
1521 %postun base
1522 /sbin/ldconfig
1523 %systemd_postun ceph.target
1524
1525 %pre -n cephadm
1526 getent group cephadm >/dev/null || groupadd -r cephadm
1527 getent passwd cephadm >/dev/null || useradd -r -g cephadm -s /bin/bash -c "cephadm user for mgr/cephadm" -d %{_sharedstatedir}/cephadm cephadm
1528 exit 0
1529
1530 %if ! 0%{?suse_version}
1531 %postun -n cephadm
1532 userdel -r cephadm || true
1533 exit 0
1534 %endif
1535
1536 %files -n cephadm
1537 %{_sbindir}/cephadm
1538 %{_mandir}/man8/cephadm.8*
1539 %attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm
1540 %attr(0700,cephadm,cephadm) %dir %{_sharedstatedir}/cephadm/.ssh
1541 %attr(0600,cephadm,cephadm) %{_sharedstatedir}/cephadm/.ssh/authorized_keys
1542
1543 %files common
1544 %dir %{_docdir}/ceph
1545 %doc %{_docdir}/ceph/sample.ceph.conf
1546 %license %{_docdir}/ceph/COPYING
1547 %{_bindir}/ceph
1548 %{_bindir}/ceph-authtool
1549 %{_bindir}/ceph-conf
1550 %{_bindir}/ceph-dencoder
1551 %{_bindir}/ceph-rbdnamer
1552 %{_bindir}/ceph-syn
1553 %{_bindir}/cephfs-data-scan
1554 %{_bindir}/cephfs-journal-tool
1555 %{_bindir}/cephfs-table-tool
1556 %{_bindir}/rados
1557 %{_bindir}/radosgw-admin
1558 %{_bindir}/rbd
1559 %{_bindir}/rbd-replay
1560 %{_bindir}/rbd-replay-many
1561 %{_bindir}/rbdmap
1562 %{_sbindir}/mount.ceph
1563 %if 0%{?suse_version} && !0%{?usrmerged}
1564 /sbin/mount.ceph
1565 %endif
1566 %if %{with lttng}
1567 %{_bindir}/rbd-replay-prep
1568 %endif
1569 %{_bindir}/ceph-post-file
1570 %{_tmpfilesdir}/ceph-common.conf
1571 %{_mandir}/man8/ceph-authtool.8*
1572 %{_mandir}/man8/ceph-conf.8*
1573 %{_mandir}/man8/ceph-dencoder.8*
1574 %{_mandir}/man8/ceph-diff-sorted.8*
1575 %{_mandir}/man8/ceph-rbdnamer.8*
1576 %{_mandir}/man8/ceph-syn.8*
1577 %{_mandir}/man8/ceph-post-file.8*
1578 %{_mandir}/man8/ceph.8*
1579 %{_mandir}/man8/mount.ceph.8*
1580 %{_mandir}/man8/rados.8*
1581 %{_mandir}/man8/radosgw-admin.8*
1582 %{_mandir}/man8/rbd.8*
1583 %{_mandir}/man8/rbdmap.8*
1584 %{_mandir}/man8/rbd-replay.8*
1585 %{_mandir}/man8/rbd-replay-many.8*
1586 %{_mandir}/man8/rbd-replay-prep.8*
1587 %{_mandir}/man8/rgw-orphan-list.8*
1588 %dir %{_datadir}/ceph/
1589 %{_datadir}/ceph/known_hosts_drop.ceph.com
1590 %{_datadir}/ceph/id_rsa_drop.ceph.com
1591 %{_datadir}/ceph/id_rsa_drop.ceph.com.pub
1592 %dir %{_sysconfdir}/ceph/
1593 %config %{_sysconfdir}/bash_completion.d/ceph
1594 %config %{_sysconfdir}/bash_completion.d/rados
1595 %config %{_sysconfdir}/bash_completion.d/rbd
1596 %config %{_sysconfdir}/bash_completion.d/radosgw-admin
1597 %config(noreplace) %{_sysconfdir}/ceph/rbdmap
1598 %{_unitdir}/rbdmap.service
1599 %dir %{_udevrulesdir}
1600 %{_udevrulesdir}/50-rbd.rules
1601 %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/
1602 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/
1603
1604 %pre common
1605 CEPH_GROUP_ID=167
1606 CEPH_USER_ID=167
1607 %if 0%{?rhel} || 0%{?fedora}
1608 /usr/sbin/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || :
1609 /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 || :
1610 %endif
1611 %if 0%{?suse_version}
1612 if ! getent group ceph >/dev/null ; then
1613 CEPH_GROUP_ID_OPTION=""
1614 getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID"
1615 groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || :
1616 fi
1617 if ! getent passwd ceph >/dev/null ; then
1618 CEPH_USER_ID_OPTION=""
1619 getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID"
1620 useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin 2>/dev/null || :
1621 fi
1622 usermod -c "Ceph storage service" \
1623 -d %{_localstatedir}/lib/ceph \
1624 -g ceph \
1625 -s /sbin/nologin \
1626 ceph
1627 %endif
1628 exit 0
1629
1630 %post common
1631 %tmpfiles_create %{_tmpfilesdir}/ceph-common.conf
1632
1633 %postun common
1634 # Package removal cleanup
1635 if [ "$1" -eq "0" ] ; then
1636 rm -rf %{_localstatedir}/log/ceph
1637 rm -rf %{_sysconfdir}/ceph
1638 fi
1639
1640 %files mds
1641 %{_bindir}/ceph-mds
1642 %{_mandir}/man8/ceph-mds.8*
1643 %{_unitdir}/ceph-mds@.service
1644 %{_unitdir}/ceph-mds.target
1645 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds
1646
1647 %post mds
1648 %if 0%{?suse_version}
1649 if [ $1 -eq 1 ] ; then
1650 /usr/bin/systemctl preset ceph-mds@\*.service ceph-mds.target >/dev/null 2>&1 || :
1651 fi
1652 %endif
1653 %if 0%{?fedora} || 0%{?rhel}
1654 %systemd_post ceph-mds@\*.service ceph-mds.target
1655 %endif
1656 if [ $1 -eq 1 ] ; then
1657 /usr/bin/systemctl start ceph-mds.target >/dev/null 2>&1 || :
1658 fi
1659
1660 %preun mds
1661 %if 0%{?suse_version}
1662 %service_del_preun ceph-mds@\*.service ceph-mds.target
1663 %endif
1664 %if 0%{?fedora} || 0%{?rhel}
1665 %systemd_preun ceph-mds@\*.service ceph-mds.target
1666 %endif
1667
1668 %postun mds
1669 %systemd_postun ceph-mds@\*.service ceph-mds.target
1670 if [ $1 -ge 1 ] ; then
1671 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1672 # "yes". In any case: if units are not running, do not touch them.
1673 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1674 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1675 source $SYSCONF_CEPH
1676 fi
1677 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1678 /usr/bin/systemctl try-restart ceph-mds@\*.service > /dev/null 2>&1 || :
1679 fi
1680 fi
1681
1682 %files mgr
1683 %{_bindir}/ceph-mgr
1684 %dir %{_datadir}/ceph/mgr
1685 %{_datadir}/ceph/mgr/mgr_module.*
1686 %{_datadir}/ceph/mgr/mgr_util.*
1687 %{_unitdir}/ceph-mgr@.service
1688 %{_unitdir}/ceph-mgr.target
1689 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mgr
1690
1691 %post mgr
1692 %if 0%{?suse_version}
1693 if [ $1 -eq 1 ] ; then
1694 /usr/bin/systemctl preset ceph-mgr@\*.service ceph-mgr.target >/dev/null 2>&1 || :
1695 fi
1696 %endif
1697 %if 0%{?fedora} || 0%{?rhel}
1698 %systemd_post ceph-mgr@\*.service ceph-mgr.target
1699 %endif
1700 if [ $1 -eq 1 ] ; then
1701 /usr/bin/systemctl start ceph-mgr.target >/dev/null 2>&1 || :
1702 fi
1703
1704 %preun mgr
1705 %if 0%{?suse_version}
1706 %service_del_preun ceph-mgr@\*.service ceph-mgr.target
1707 %endif
1708 %if 0%{?fedora} || 0%{?rhel}
1709 %systemd_preun ceph-mgr@\*.service ceph-mgr.target
1710 %endif
1711
1712 %postun mgr
1713 %systemd_postun ceph-mgr@\*.service ceph-mgr.target
1714 if [ $1 -ge 1 ] ; then
1715 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1716 # "yes". In any case: if units are not running, do not touch them.
1717 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1718 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1719 source $SYSCONF_CEPH
1720 fi
1721 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1722 /usr/bin/systemctl try-restart ceph-mgr@\*.service > /dev/null 2>&1 || :
1723 fi
1724 fi
1725
1726 %files mgr-dashboard
1727 %{_datadir}/ceph/mgr/dashboard
1728
1729 %post mgr-dashboard
1730 if [ $1 -eq 1 ] ; then
1731 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1732 fi
1733
1734 %postun mgr-dashboard
1735 if [ $1 -eq 1 ] ; then
1736 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1737 fi
1738
1739 %files mgr-diskprediction-local
1740 %{_datadir}/ceph/mgr/diskprediction_local
1741
1742 %post mgr-diskprediction-local
1743 if [ $1 -eq 1 ] ; then
1744 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1745 fi
1746
1747 %postun mgr-diskprediction-local
1748 if [ $1 -eq 1 ] ; then
1749 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1750 fi
1751
1752 %files mgr-modules-core
1753 %dir %{_datadir}/ceph/mgr
1754 %{_datadir}/ceph/mgr/alerts
1755 %{_datadir}/ceph/mgr/balancer
1756 %{_datadir}/ceph/mgr/crash
1757 %{_datadir}/ceph/mgr/devicehealth
1758 %{_datadir}/ceph/mgr/influx
1759 %{_datadir}/ceph/mgr/insights
1760 %{_datadir}/ceph/mgr/iostat
1761 %{_datadir}/ceph/mgr/localpool
1762 %{_datadir}/ceph/mgr/mds_autoscaler
1763 %{_datadir}/ceph/mgr/mirroring
1764 %{_datadir}/ceph/mgr/nfs
1765 %{_datadir}/ceph/mgr/orchestrator
1766 %{_datadir}/ceph/mgr/osd_perf_query
1767 %{_datadir}/ceph/mgr/osd_support
1768 %{_datadir}/ceph/mgr/pg_autoscaler
1769 %{_datadir}/ceph/mgr/progress
1770 %{_datadir}/ceph/mgr/prometheus
1771 %{_datadir}/ceph/mgr/rbd_support
1772 %{_datadir}/ceph/mgr/restful
1773 %{_datadir}/ceph/mgr/selftest
1774 %{_datadir}/ceph/mgr/snap_schedule
1775 %{_datadir}/ceph/mgr/stats
1776 %{_datadir}/ceph/mgr/status
1777 %{_datadir}/ceph/mgr/telegraf
1778 %{_datadir}/ceph/mgr/telemetry
1779 %{_datadir}/ceph/mgr/test_orchestrator
1780 %{_datadir}/ceph/mgr/volumes
1781 %{_datadir}/ceph/mgr/zabbix
1782
1783 %files mgr-rook
1784 %{_datadir}/ceph/mgr/rook
1785
1786 %post mgr-rook
1787 if [ $1 -eq 1 ] ; then
1788 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1789 fi
1790
1791 %postun mgr-rook
1792 if [ $1 -eq 1 ] ; then
1793 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1794 fi
1795
1796 %files mgr-k8sevents
1797 %{_datadir}/ceph/mgr/k8sevents
1798
1799 %post mgr-k8sevents
1800 if [ $1 -eq 1 ] ; then
1801 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1802 fi
1803
1804 %postun mgr-k8sevents
1805 if [ $1 -eq 1 ] ; then
1806 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1807 fi
1808
1809 %files mgr-cephadm
1810 %{_datadir}/ceph/mgr/cephadm
1811
1812 %post mgr-cephadm
1813 if [ $1 -eq 1 ] ; then
1814 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1815 fi
1816
1817 %postun mgr-cephadm
1818 if [ $1 -eq 1 ] ; then
1819 /usr/bin/systemctl try-restart ceph-mgr.target >/dev/null 2>&1 || :
1820 fi
1821
1822 %files mon
1823 %{_bindir}/ceph-mon
1824 %{_bindir}/ceph-monstore-tool
1825 %{_mandir}/man8/ceph-mon.8*
1826 %{_unitdir}/ceph-mon@.service
1827 %{_unitdir}/ceph-mon.target
1828 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon
1829
1830 %post mon
1831 %if 0%{?suse_version}
1832 if [ $1 -eq 1 ] ; then
1833 /usr/bin/systemctl preset ceph-mon@\*.service ceph-mon.target >/dev/null 2>&1 || :
1834 fi
1835 %endif
1836 %if 0%{?fedora} || 0%{?rhel}
1837 %systemd_post ceph-mon@\*.service ceph-mon.target
1838 %endif
1839 if [ $1 -eq 1 ] ; then
1840 /usr/bin/systemctl start ceph-mon.target >/dev/null 2>&1 || :
1841 fi
1842
1843 %preun mon
1844 %if 0%{?suse_version}
1845 %service_del_preun ceph-mon@\*.service ceph-mon.target
1846 %endif
1847 %if 0%{?fedora} || 0%{?rhel}
1848 %systemd_preun ceph-mon@\*.service ceph-mon.target
1849 %endif
1850
1851 %postun mon
1852 %systemd_postun ceph-mon@\*.service ceph-mon.target
1853 if [ $1 -ge 1 ] ; then
1854 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1855 # "yes". In any case: if units are not running, do not touch them.
1856 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1857 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1858 source $SYSCONF_CEPH
1859 fi
1860 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1861 /usr/bin/systemctl try-restart ceph-mon@\*.service > /dev/null 2>&1 || :
1862 fi
1863 fi
1864
1865 %files fuse
1866 %{_bindir}/ceph-fuse
1867 %{_mandir}/man8/ceph-fuse.8*
1868 %{_sbindir}/mount.fuse.ceph
1869 %{_mandir}/man8/mount.fuse.ceph.8*
1870 %{_unitdir}/ceph-fuse@.service
1871 %{_unitdir}/ceph-fuse.target
1872
1873 %files -n cephfs-mirror
1874 %{_bindir}/cephfs-mirror
1875 %{_mandir}/man8/cephfs-mirror.8*
1876 %{_unitdir}/cephfs-mirror@.service
1877 %{_unitdir}/cephfs-mirror.target
1878
1879 %post -n cephfs-mirror
1880 %if 0%{?suse_version}
1881 if [ $1 -eq 1 ] ; then
1882 /usr/bin/systemctl preset cephfs-mirror@\*.service cephfs-mirror.target >/dev/null 2>&1 || :
1883 fi
1884 %endif
1885 %if 0%{?fedora} || 0%{?rhel}
1886 %systemd_post cephfs-mirror@\*.service cephfs-mirror.target
1887 %endif
1888 if [ $1 -eq 1 ] ; then
1889 /usr/bin/systemctl start cephfs-mirror.target >/dev/null 2>&1 || :
1890 fi
1891
1892 %preun -n cephfs-mirror
1893 %if 0%{?suse_version}
1894 %service_del_preun cephfs-mirror@\*.service cephfs-mirror.target
1895 %endif
1896 %if 0%{?fedora} || 0%{?rhel}
1897 %systemd_preun cephfs-mirror@\*.service cephfs-mirror.target
1898 %endif
1899
1900 %postun -n cephfs-mirror
1901 %systemd_postun cephfs-mirror@\*.service cephfs-mirror.target
1902 if [ $1 -ge 1 ] ; then
1903 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1904 # "yes". In any case: if units are not running, do not touch them.
1905 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1906 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1907 source $SYSCONF_CEPH
1908 fi
1909 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1910 /usr/bin/systemctl try-restart cephfs-mirror@\*.service > /dev/null 2>&1 || :
1911 fi
1912 fi
1913
1914 %files -n rbd-fuse
1915 %{_bindir}/rbd-fuse
1916 %{_mandir}/man8/rbd-fuse.8*
1917
1918 %files -n rbd-mirror
1919 %{_bindir}/rbd-mirror
1920 %{_mandir}/man8/rbd-mirror.8*
1921 %{_unitdir}/ceph-rbd-mirror@.service
1922 %{_unitdir}/ceph-rbd-mirror.target
1923
1924 %post -n rbd-mirror
1925 %if 0%{?suse_version}
1926 if [ $1 -eq 1 ] ; then
1927 /usr/bin/systemctl preset ceph-rbd-mirror@\*.service ceph-rbd-mirror.target >/dev/null 2>&1 || :
1928 fi
1929 %endif
1930 %if 0%{?fedora} || 0%{?rhel}
1931 %systemd_post ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1932 %endif
1933 if [ $1 -eq 1 ] ; then
1934 /usr/bin/systemctl start ceph-rbd-mirror.target >/dev/null 2>&1 || :
1935 fi
1936
1937 %preun -n rbd-mirror
1938 %if 0%{?suse_version}
1939 %service_del_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1940 %endif
1941 %if 0%{?fedora} || 0%{?rhel}
1942 %systemd_preun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1943 %endif
1944
1945 %postun -n rbd-mirror
1946 %systemd_postun ceph-rbd-mirror@\*.service ceph-rbd-mirror.target
1947 if [ $1 -ge 1 ] ; then
1948 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1949 # "yes". In any case: if units are not running, do not touch them.
1950 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1951 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1952 source $SYSCONF_CEPH
1953 fi
1954 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1955 /usr/bin/systemctl try-restart ceph-rbd-mirror@\*.service > /dev/null 2>&1 || :
1956 fi
1957 fi
1958
1959 %files immutable-object-cache
1960 %{_bindir}/ceph-immutable-object-cache
1961 %{_mandir}/man8/ceph-immutable-object-cache.8*
1962 %{_unitdir}/ceph-immutable-object-cache@.service
1963 %{_unitdir}/ceph-immutable-object-cache.target
1964
1965 %post immutable-object-cache
1966 %if 0%{?suse_version}
1967 if [ $1 -eq 1 ] ; then
1968 /usr/bin/systemctl preset ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target >/dev/null 2>&1 || :
1969 fi
1970 %endif
1971 %if 0%{?fedora} || 0%{?rhel}
1972 %systemd_post ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
1973 %endif
1974 if [ $1 -eq 1 ] ; then
1975 /usr/bin/systemctl start ceph-immutable-object-cache.target >/dev/null 2>&1 || :
1976 fi
1977
1978 %preun immutable-object-cache
1979 %if 0%{?suse_version}
1980 %service_del_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
1981 %endif
1982 %if 0%{?fedora} || 0%{?rhel}
1983 %systemd_preun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
1984 %endif
1985
1986 %postun immutable-object-cache
1987 %systemd_postun ceph-immutable-object-cache@\*.service ceph-immutable-object-cache.target
1988 if [ $1 -ge 1 ] ; then
1989 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
1990 # "yes". In any case: if units are not running, do not touch them.
1991 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
1992 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
1993 source $SYSCONF_CEPH
1994 fi
1995 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
1996 /usr/bin/systemctl try-restart ceph-immutable-object-cache@\*.service > /dev/null 2>&1 || :
1997 fi
1998 fi
1999
2000 %files -n rbd-nbd
2001 %{_bindir}/rbd-nbd
2002 %{_mandir}/man8/rbd-nbd.8*
2003 %dir %{_libexecdir}/rbd-nbd
2004 %{_libexecdir}/rbd-nbd/rbd-nbd_quiesce
2005
2006 %files radosgw
2007 %{_bindir}/ceph-diff-sorted
2008 %{_bindir}/radosgw
2009 %{_bindir}/radosgw-token
2010 %{_bindir}/radosgw-es
2011 %{_bindir}/radosgw-object-expirer
2012 %{_bindir}/rgw-gap-list
2013 %{_bindir}/rgw-gap-list-comparator
2014 %{_bindir}/rgw-orphan-list
2015 %{_libdir}/libradosgw.so*
2016 %{_mandir}/man8/radosgw.8*
2017 %dir %{_localstatedir}/lib/ceph/radosgw
2018 %{_unitdir}/ceph-radosgw@.service
2019 %{_unitdir}/ceph-radosgw.target
2020
2021 %post radosgw
2022 /sbin/ldconfig
2023 %if 0%{?suse_version}
2024 if [ $1 -eq 1 ] ; then
2025 /usr/bin/systemctl preset ceph-radosgw@\*.service ceph-radosgw.target >/dev/null 2>&1 || :
2026 fi
2027 %endif
2028 %if 0%{?fedora} || 0%{?rhel}
2029 %systemd_post ceph-radosgw@\*.service ceph-radosgw.target
2030 %endif
2031 if [ $1 -eq 1 ] ; then
2032 /usr/bin/systemctl start ceph-radosgw.target >/dev/null 2>&1 || :
2033 fi
2034
2035 %preun radosgw
2036 %if 0%{?suse_version}
2037 %service_del_preun ceph-radosgw@\*.service ceph-radosgw.target
2038 %endif
2039 %if 0%{?fedora} || 0%{?rhel}
2040 %systemd_preun ceph-radosgw@\*.service ceph-radosgw.target
2041 %endif
2042
2043 %postun radosgw
2044 /sbin/ldconfig
2045 %systemd_postun ceph-radosgw@\*.service ceph-radosgw.target
2046 if [ $1 -ge 1 ] ; then
2047 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
2048 # "yes". In any case: if units are not running, do not touch them.
2049 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
2050 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
2051 source $SYSCONF_CEPH
2052 fi
2053 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2054 /usr/bin/systemctl try-restart ceph-radosgw@\*.service > /dev/null 2>&1 || :
2055 fi
2056 fi
2057
2058 %files osd
2059 %{_bindir}/ceph-clsinfo
2060 %{_bindir}/ceph-bluestore-tool
2061 %{_bindir}/ceph-erasure-code-tool
2062 %{_bindir}/ceph-objectstore-tool
2063 %{_bindir}/ceph-osdomap-tool
2064 %{_bindir}/ceph-osd
2065 %{_libexecdir}/ceph/ceph-osd-prestart.sh
2066 %{_sbindir}/ceph-volume
2067 %{_sbindir}/ceph-volume-systemd
2068 %{_mandir}/man8/ceph-clsinfo.8*
2069 %{_mandir}/man8/ceph-osd.8*
2070 %{_mandir}/man8/ceph-bluestore-tool.8*
2071 %{_mandir}/man8/ceph-volume.8*
2072 %{_mandir}/man8/ceph-volume-systemd.8*
2073 %{_unitdir}/ceph-osd@.service
2074 %{_unitdir}/ceph-osd.target
2075 %{_unitdir}/ceph-volume@.service
2076 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
2077 %config(noreplace) %{_sysctldir}/90-ceph-osd.conf
2078
2079 %post osd
2080 %if 0%{?suse_version}
2081 if [ $1 -eq 1 ] ; then
2082 /usr/bin/systemctl preset ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target >/dev/null 2>&1 || :
2083 fi
2084 %endif
2085 %if 0%{?fedora} || 0%{?rhel}
2086 %systemd_post ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
2087 %endif
2088 if [ $1 -eq 1 ] ; then
2089 /usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || :
2090 fi
2091 %if 0%{?sysctl_apply}
2092 %sysctl_apply 90-ceph-osd.conf
2093 %else
2094 /usr/lib/systemd/systemd-sysctl %{_sysctldir}/90-ceph-osd.conf > /dev/null 2>&1 || :
2095 %endif
2096
2097 %preun osd
2098 %if 0%{?suse_version}
2099 %service_del_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
2100 %endif
2101 %if 0%{?fedora} || 0%{?rhel}
2102 %systemd_preun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
2103 %endif
2104
2105 %postun osd
2106 %systemd_postun ceph-osd@\*.service ceph-volume@\*.service ceph-osd.target
2107 if [ $1 -ge 1 ] ; then
2108 # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
2109 # "yes". In any case: if units are not running, do not touch them.
2110 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
2111 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
2112 source $SYSCONF_CEPH
2113 fi
2114 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2115 /usr/bin/systemctl try-restart ceph-osd@\*.service ceph-volume@\*.service > /dev/null 2>&1 || :
2116 fi
2117 fi
2118
2119 %if 0%{with seastar}
2120 %files crimson-osd
2121 %{_bindir}/crimson-osd
2122 %endif
2123
2124 %if %{with ocf}
2125
2126 %files resource-agents
2127 %dir %{_prefix}/lib/ocf
2128 %dir %{_prefix}/lib/ocf/resource.d
2129 %dir %{_prefix}/lib/ocf/resource.d/ceph
2130 %attr(0755,-,-) %{_prefix}/lib/ocf/resource.d/ceph/rbd
2131
2132 %endif
2133
2134 %files -n librados2
2135 %{_libdir}/librados.so.*
2136 %dir %{_libdir}/ceph
2137 %{_libdir}/ceph/libceph-common.so.*
2138 %if %{with lttng}
2139 %{_libdir}/librados_tp.so.*
2140 %endif
2141 %dir %{_sysconfdir}/ceph
2142
2143 %post -n librados2 -p /sbin/ldconfig
2144
2145 %postun -n librados2 -p /sbin/ldconfig
2146
2147 %files -n librados-devel
2148 %dir %{_includedir}/rados
2149 %{_includedir}/rados/librados.h
2150 %{_includedir}/rados/rados_types.h
2151 %{_libdir}/librados.so
2152 %if %{with lttng}
2153 %{_libdir}/librados_tp.so
2154 %endif
2155 %{_bindir}/librados-config
2156 %{_mandir}/man8/librados-config.8*
2157
2158 %files -n libradospp-devel
2159 %dir %{_includedir}/rados
2160 %{_includedir}/rados/buffer.h
2161 %{_includedir}/rados/buffer_fwd.h
2162 %{_includedir}/rados/crc32c.h
2163 %{_includedir}/rados/inline_memory.h
2164 %{_includedir}/rados/librados.hpp
2165 %{_includedir}/rados/librados_fwd.hpp
2166 %{_includedir}/rados/page.h
2167 %{_includedir}/rados/rados_types.hpp
2168
2169 %files -n python%{python3_pkgversion}-rados
2170 %{python3_sitearch}/rados.cpython*.so
2171 %{python3_sitearch}/rados-*.egg-info
2172
2173 %files -n libcephsqlite
2174 %{_libdir}/libcephsqlite.so
2175
2176 %post -n libcephsqlite -p /sbin/ldconfig
2177
2178 %postun -n libcephsqlite -p /sbin/ldconfig
2179
2180 %files -n libcephsqlite-devel
2181 %{_includedir}/libcephsqlite.h
2182
2183 %if 0%{with libradosstriper}
2184 %files -n libradosstriper1
2185 %{_libdir}/libradosstriper.so.*
2186
2187 %post -n libradosstriper1 -p /sbin/ldconfig
2188
2189 %postun -n libradosstriper1 -p /sbin/ldconfig
2190
2191 %files -n libradosstriper-devel
2192 %dir %{_includedir}/radosstriper
2193 %{_includedir}/radosstriper/libradosstriper.h
2194 %{_includedir}/radosstriper/libradosstriper.hpp
2195 %{_libdir}/libradosstriper.so
2196 %endif
2197
2198 %files -n librbd1
2199 %{_libdir}/librbd.so.*
2200 %if %{with lttng}
2201 %{_libdir}/librbd_tp.so.*
2202 %endif
2203 %dir %{_libdir}/ceph/librbd
2204 %{_libdir}/ceph/librbd/libceph_*.so*
2205
2206 %post -n librbd1 -p /sbin/ldconfig
2207
2208 %postun -n librbd1 -p /sbin/ldconfig
2209
2210 %files -n librbd-devel
2211 %dir %{_includedir}/rbd
2212 %{_includedir}/rbd/librbd.h
2213 %{_includedir}/rbd/librbd.hpp
2214 %{_includedir}/rbd/features.h
2215 %{_libdir}/librbd.so
2216 %if %{with lttng}
2217 %{_libdir}/librbd_tp.so
2218 %endif
2219
2220 %files -n librgw2
2221 %{_libdir}/librgw.so.*
2222 %if %{with lttng}
2223 %{_libdir}/librgw_op_tp.so.*
2224 %{_libdir}/librgw_rados_tp.so.*
2225 %endif
2226
2227 %post -n librgw2 -p /sbin/ldconfig
2228
2229 %postun -n librgw2 -p /sbin/ldconfig
2230
2231 %files -n librgw-devel
2232 %dir %{_includedir}/rados
2233 %{_includedir}/rados/librgw.h
2234 %{_includedir}/rados/rgw_file.h
2235 %{_libdir}/librgw.so
2236 %if %{with lttng}
2237 %{_libdir}/librgw_op_tp.so
2238 %{_libdir}/librgw_rados_tp.so
2239 %endif
2240
2241 %files -n python%{python3_pkgversion}-rgw
2242 %{python3_sitearch}/rgw.cpython*.so
2243 %{python3_sitearch}/rgw-*.egg-info
2244
2245 %files -n python%{python3_pkgversion}-rbd
2246 %{python3_sitearch}/rbd.cpython*.so
2247 %{python3_sitearch}/rbd-*.egg-info
2248
2249 %files -n libcephfs2
2250 %{_libdir}/libcephfs.so.*
2251 %dir %{_sysconfdir}/ceph
2252
2253 %post -n libcephfs2 -p /sbin/ldconfig
2254
2255 %postun -n libcephfs2 -p /sbin/ldconfig
2256
2257 %files -n libcephfs-devel
2258 %dir %{_includedir}/cephfs
2259 %{_includedir}/cephfs/libcephfs.h
2260 %{_includedir}/cephfs/ceph_ll_client.h
2261 %dir %{_includedir}/cephfs/metrics
2262 %{_includedir}/cephfs/metrics/Types.h
2263 %{_libdir}/libcephfs.so
2264
2265 %if %{with jaeger}
2266 %files -n libjaeger
2267 %{_libdir}/libopentracing.so.*
2268 %{_libdir}/libthrift.so.*
2269 %{_libdir}/libjaegertracing.so.*
2270 %post -n libjaeger -p /sbin/ldconfig
2271 %postun -n libjaeger -p /sbin/ldconfig
2272 %endif
2273
2274 %files -n python%{python3_pkgversion}-cephfs
2275 %{python3_sitearch}/cephfs.cpython*.so
2276 %{python3_sitearch}/cephfs-*.egg-info
2277 %{python3_sitelib}/ceph_volume_client.py
2278 %{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py*
2279
2280 %files -n python%{python3_pkgversion}-ceph-argparse
2281 %{python3_sitelib}/ceph_argparse.py
2282 %{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py*
2283 %{python3_sitelib}/ceph_daemon.py
2284 %{python3_sitelib}/__pycache__/ceph_daemon.cpython*.py*
2285
2286 %files -n python%{python3_pkgversion}-ceph-common
2287 %{python3_sitelib}/ceph
2288 %{python3_sitelib}/ceph-*.egg-info
2289
2290 %if 0%{with cephfs_shell}
2291 %files -n cephfs-shell
2292 %{python3_sitelib}/cephfs_shell-*.egg-info
2293 %{_bindir}/cephfs-shell
2294 %endif
2295
2296 %files -n cephfs-top
2297 %{python3_sitelib}/cephfs_top-*.egg-info
2298 %{_bindir}/cephfs-top
2299 %{_mandir}/man8/cephfs-top.8*
2300
2301 %if 0%{with ceph_test_package}
2302 %files -n ceph-test
2303 %{_bindir}/ceph-client-debug
2304 %{_bindir}/ceph_bench_log
2305 %{_bindir}/ceph_kvstorebench
2306 %{_bindir}/ceph_multi_stress_watch
2307 %{_bindir}/ceph_erasure_code_benchmark
2308 %{_bindir}/ceph_omapbench
2309 %{_bindir}/ceph_objectstore_bench
2310 %{_bindir}/ceph_perf_objectstore
2311 %{_bindir}/ceph_perf_local
2312 %{_bindir}/ceph_perf_msgr_client
2313 %{_bindir}/ceph_perf_msgr_server
2314 %{_bindir}/ceph_psim
2315 %{_bindir}/ceph_radosacl
2316 %{_bindir}/ceph_rgw_jsonparser
2317 %{_bindir}/ceph_rgw_multiparser
2318 %{_bindir}/ceph_scratchtool
2319 %{_bindir}/ceph_scratchtoolpp
2320 %{_bindir}/ceph_test_*
2321 %{_bindir}/ceph-coverage
2322 %{_bindir}/ceph-debugpack
2323 %{_bindir}/ceph-dedup-tool
2324 %if 0%{with seastar}
2325 %{_bindir}/crimson-store-nbd
2326 %endif
2327 %{_mandir}/man8/ceph-debugpack.8*
2328 %dir %{_libdir}/ceph
2329 %{_libdir}/ceph/ceph-monstore-update-crush.sh
2330 %endif
2331
2332 %if 0%{with cephfs_java}
2333 %files -n libcephfs_jni1
2334 %{_libdir}/libcephfs_jni.so.*
2335
2336 %post -n libcephfs_jni1 -p /sbin/ldconfig
2337
2338 %postun -n libcephfs_jni1 -p /sbin/ldconfig
2339
2340 %files -n libcephfs_jni-devel
2341 %{_libdir}/libcephfs_jni.so
2342
2343 %files -n cephfs-java
2344 %{_javadir}/libcephfs.jar
2345 %{_javadir}/libcephfs-test.jar
2346 %endif
2347
2348 %files -n rados-objclass-devel
2349 %dir %{_includedir}/rados
2350 %{_includedir}/rados/objclass.h
2351
2352 %if 0%{with selinux}
2353 %files selinux
2354 %attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp
2355 %{_datadir}/selinux/devel/include/contrib/ceph.if
2356 %{_mandir}/man8/ceph_selinux.8*
2357
2358 %post selinux
2359 # backup file_contexts before update
2360 . /etc/selinux/config
2361 FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts
2362 cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre
2363
2364 # Install the policy
2365 /usr/sbin/semodule -i %{_datadir}/selinux/packages/ceph.pp
2366
2367 # Load the policy if SELinux is enabled
2368 if ! /usr/sbin/selinuxenabled; then
2369 # Do not relabel if selinux is not enabled
2370 exit 0
2371 fi
2372
2373 if diff ${FILE_CONTEXT} ${FILE_CONTEXT}.pre > /dev/null 2>&1; then
2374 # Do not relabel if file contexts did not change
2375 exit 0
2376 fi
2377
2378 # Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes
2379 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
2380 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
2381 source $SYSCONF_CEPH
2382 fi
2383
2384 # Check whether the daemons are running
2385 /usr/bin/systemctl status ceph.target > /dev/null 2>&1
2386 STATUS=$?
2387
2388 # Stop the daemons if they were running
2389 if test $STATUS -eq 0; then
2390 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2391 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1
2392 fi
2393 fi
2394
2395 # Relabel the files fix for first package install
2396 /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
2397
2398 rm -f ${FILE_CONTEXT}.pre
2399 # The fixfiles command won't fix label for /var/run/ceph
2400 /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1
2401
2402 # Start the daemons iff they were running before
2403 if test $STATUS -eq 0; then
2404 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2405 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || :
2406 fi
2407 fi
2408 exit 0
2409
2410 %postun selinux
2411 if [ $1 -eq 0 ]; then
2412 # backup file_contexts before update
2413 . /etc/selinux/config
2414 FILE_CONTEXT=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts
2415 cp ${FILE_CONTEXT} ${FILE_CONTEXT}.pre
2416
2417 # Remove the module
2418 /usr/sbin/semodule -n -r ceph > /dev/null 2>&1
2419
2420 # Reload the policy if SELinux is enabled
2421 if ! /usr/sbin/selinuxenabled ; then
2422 # Do not relabel if SELinux is not enabled
2423 exit 0
2424 fi
2425
2426 # Stop ceph.target while relabeling if CEPH_AUTO_RESTART_ON_UPGRADE=yes
2427 SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
2428 if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
2429 source $SYSCONF_CEPH
2430 fi
2431
2432 # Check whether the daemons are running
2433 /usr/bin/systemctl status ceph.target > /dev/null 2>&1
2434 STATUS=$?
2435
2436 # Stop the daemons if they were running
2437 if test $STATUS -eq 0; then
2438 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2439 /usr/bin/systemctl stop ceph.target > /dev/null 2>&1
2440 fi
2441 fi
2442
2443 /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
2444 rm -f ${FILE_CONTEXT}.pre
2445 # The fixfiles command won't fix label for /var/run/ceph
2446 /usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1
2447
2448 # Start the daemons if they were running before
2449 if test $STATUS -eq 0; then
2450 if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
2451 /usr/bin/systemctl start ceph.target > /dev/null 2>&1 || :
2452 fi
2453 fi
2454 fi
2455 exit 0
2456 %endif
2457
2458 %files grafana-dashboards
2459 %if 0%{?suse_version}
2460 %attr(0755,root,root) %dir %{_sysconfdir}/grafana
2461 %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards
2462 %endif
2463 %attr(0755,root,root) %dir %{_sysconfdir}/grafana/dashboards/ceph-dashboard
2464 %config %{_sysconfdir}/grafana/dashboards/ceph-dashboard/*
2465 %doc monitoring/grafana/dashboards/README
2466 %doc monitoring/grafana/README.md
2467
2468 %files prometheus-alerts
2469 %if 0%{?suse_version}
2470 %attr(0755,root,root) %dir %{_sysconfdir}/prometheus
2471 %endif
2472 %attr(0755,root,root) %dir %{_sysconfdir}/prometheus/ceph
2473 %config %{_sysconfdir}/prometheus/ceph/ceph_default_alerts.yml
2474
2475 %changelog