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