%endif
%bcond_with make_check
%bcond_with xio
-%ifnarch s390 s390x
-%bcond_without tcmalloc
-%else
-# no gperftools/tcmalloc on s390(x)
+%ifarch s390 s390x
%bcond_with tcmalloc
+%else
+%bcond_without tcmalloc
%endif
%bcond_with lowmem_builder
%if 0%{?fedora} || 0%{?rhel}
# disable dwz which compresses the debuginfo
%global _find_debuginfo_dwz_opts %{nil}
+
#################################################################################
# main package definition
#################################################################################
Name: ceph
-Version: 12.0.3
+Version: 12.1.0
Release: 0%{?dist}
+%if 0%{?fedora} || 0%{?rhel}
Epoch: 1
+%endif
+
+# define %_epoch_prefix macro which will expand to the empty string if %epoch is undefined
+%global _epoch_prefix %{?epoch:%{epoch}:}
+
Summary: User space components of the Ceph file system
-License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT
+License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
%if 0%{?suse_version}
Group: System/Filesystems
%endif
URL: http://ceph.com/
-Source0: http://ceph.com/download/ceph-12.0.3.tar.bz2
+Source0: http://ceph.com/download/ceph-12.1.0.tar.bz2
%if 0%{?suse_version}
%if 0%{?is_opensuse}
ExclusiveArch: x86_64 aarch64 ppc64 ppc64le
%else
-ExclusiveArch: x86_64 aarch64
+ExclusiveArch: x86_64 aarch64 ppc64le s390x
%endif
%endif
#################################################################################
# dependencies that apply across all distro families
#################################################################################
-Requires: ceph-osd = %{epoch}:%{version}-%{release}
-Requires: ceph-mds = %{epoch}:%{version}-%{release}
-Requires: ceph-mgr = %{epoch}:%{version}-%{release}
-Requires: ceph-mon = %{epoch}:%{version}-%{release}
+Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release}
+Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release}
Requires(post): binutils
%if 0%{with cephfs_java}
BuildRequires: java-devel
BuildRequires: /usr/share/selinux/devel/policyhelp
%endif
BuildRequires: bc
+BuildRequires: gperf
BuildRequires: cmake
BuildRequires: cryptsetup
BuildRequires: fuse-devel
BuildRequires: jq
BuildRequires: leveldb-devel > 1.2
BuildRequires: libaio-devel
-BuildRequires: libatomic_ops-devel
BuildRequires: libblkid-devel >= 2.17
BuildRequires: libcurl-devel
BuildRequires: libudev-devel
BuildRequires: python
BuildRequires: python-devel
BuildRequires: python-nose
-BuildRequires: python-prettytable
+BuildRequires: python-pecan
BuildRequires: python-requests
BuildRequires: python-virtualenv
+BuildRequires: python-werkzeug
BuildRequires: snappy-devel
BuildRequires: udev
BuildRequires: util-linux
BuildRequires: valgrind-devel
+BuildRequires: which
BuildRequires: xfsprogs
BuildRequires: xfsprogs-devel
BuildRequires: xmlstarlet
BuildRequires: yasm
-BuildRequires: libibverbs-devel
#################################################################################
# distro-conditional dependencies
BuildRequires: libopenssl-devel
BuildRequires: lsb-release
BuildRequires: openldap2-devel
+BuildRequires: python-CherryPy
BuildRequires: python-Cython
+BuildRequires: python-PrettyTable
BuildRequires: python-Sphinx
+BuildRequires: rdma-core-devel
%endif
%if 0%{?fedora} || 0%{?rhel}
Requires: systemd
BuildRequires: btrfs-progs
BuildRequires: nss-devel
BuildRequires: keyutils-libs-devel
+BuildRequires: libibverbs-devel
BuildRequires: openldap-devel
BuildRequires: openssl-devel
BuildRequires: redhat-lsb-core
BuildRequires: Cython
+BuildRequires: python-cherrypy
+BuildRequires: python-prettytable
BuildRequires: python-sphinx
%endif
# python34-... for RHEL, python3-... for all other supported distros
BuildRequires: babeltrace-devel
%endif
%endif
-# expat and fastcgi for RGW
%if 0%{?suse_version}
BuildRequires: libexpat-devel
-BuildRequires: FastCGI-devel
%endif
%if 0%{?rhel} || 0%{?fedora}
BuildRequires: expat-devel
-BuildRequires: fcgi-devel
%endif
#hardened-cc1
%if 0%{?fedora} || 0%{?rhel}
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-common = %{epoch}:%{version}-%{release}
-Requires: librbd1 = %{epoch}:%{version}-%{release}
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
-Requires: librgw2 = %{epoch}:%{version}-%{release}
+Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
+Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
%if 0%{with selinux}
-Requires: ceph-selinux = %{epoch}:%{version}-%{release}
+Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
%endif
Requires: python
Requires: python-requests
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: librbd1 = %{epoch}:%{version}-%{release}
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
-Requires: python-rados = %{epoch}:%{version}-%{release}
-Requires: python-rbd = %{epoch}:%{version}-%{release}
-Requires: python-cephfs = %{epoch}:%{version}-%{release}
-Requires: python-rgw = %{epoch}:%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rbd = %{_epoch_prefix}%{version}-%{release}
+Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rgw = %{_epoch_prefix}%{version}-%{release}
+%if 0%{?fedora} || 0%{?rhel}
Requires: python-prettytable
+%endif
+%if 0%{?suse_version}
+Requires: python-PrettyTable
+%endif
Requires: python-requests
%{?systemd_requires}
%if 0%{?suse_version}
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-base = %{epoch}:%{version}-%{release}
+Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
%description mds
ceph-mds is the metadata server daemon for the Ceph distributed file system.
One or more instances of ceph-mds collectively manage the file system
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-base = %{epoch}:%{version}-%{release}
+Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
# For ceph-rest-api
%if 0%{?fedora} || 0%{?rhel}
Requires: python-flask
%package mgr
Summary: Ceph Manager Daemon
-License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-base = %{epoch}:%{version}-%{release}
-
+Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
+%if 0%{?fedora} || 0%{?rhel}
+Requires: python-cherrypy
+Requires: python-werkzeug
+Requires: pyOpenSSL
+%endif
+%if 0%{?suse_version}
+Requires: python-CherryPy
+Requires: python-Werkzeug
+Requires: python-pyOpenSSL
+%endif
+Requires: python-pecan
%description mgr
ceph-mgr enables python modules that provide services (such as the REST
module derived from Calamari) and expose CLI hooks. ceph-mgr gathers
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Requires: librbd1 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
%description -n rbd-fuse
FUSE based client to map Ceph rbd images to files
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-common = %{epoch}:%{version}-%{release}
-Requires: librados2 = %{epoch}:%{version}-%{release}
+Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
%description -n rbd-mirror
Daemon for mirroring RBD images between Ceph clusters, streaming
changes asynchronously.
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Requires: librbd1 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
%description -n rbd-nbd
NBD based client to map Ceph rbd images to local device
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-common = %{epoch}:%{version}-%{release}
+Requires: ceph-common = %{_epoch_prefix}%{version}-%{release}
%if 0%{with selinux}
-Requires: ceph-selinux = %{epoch}:%{version}-%{release}
+Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release}
%endif
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Requires: librgw2 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
%if 0%{?rhel} || 0%{?fedora}
Requires: mailcap
%endif
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-License: LGPL-2.0
-Requires: ceph-base = %{epoch}:%{version}
+Requires: ceph-base = %{_epoch_prefix}%{version}
Requires: resource-agents
%description resource-agents
Resource agents for monitoring and managing Ceph daemons
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-base = %{epoch}:%{version}-%{release}
+Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
# for sgdisk, used by ceph-disk
%if 0%{?fedora} || 0%{?rhel}
Requires: gdisk
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
%if 0%{?rhel} || 0%{?fedora}
-Obsoletes: ceph-libs < %{epoch}:%{version}-%{release}
+Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
%endif
%description -n librados2
RADOS is a reliable, autonomic distributed object storage cluster
%if 0%{?suse_version}
Group: Development/Libraries/C and C++
%endif
-License: LGPL-2.0
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Obsoletes: ceph-devel < %{epoch}:%{version}-%{release}
-Provides: librados2-devel = %{epoch}:%{version}-%{release}
-Obsoletes: librados2-devel < %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
+Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release}
%description -n librados-devel
This package contains libraries and headers needed to develop programs
that use RADOS object store.
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
-Requires: librados2 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
%description -n librgw2
This package provides a library implementation of the RADOS gateway
(distributed object store with S3 and Swift personalities).
%if 0%{?suse_version}
Group: Development/Libraries/C and C++
%endif
-License: LGPL-2.0
-Requires: librados-devel = %{epoch}:%{version}-%{release}
-Requires: librgw2 = %{epoch}:%{version}-%{release}
-Provides: librgw2-devel = %{epoch}:%{version}-%{release}
-Obsoletes: librgw2-devel < %{epoch}:%{version}-%{release}
+Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
+Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
+Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release}
%description -n librgw-devel
This package contains libraries and headers needed to develop programs
that use RADOS gateway client library.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: librgw2 = %{epoch}:%{version}-%{release}
-Requires: python-rados = %{epoch}:%{version}-%{release}
-Obsoletes: python-ceph < %{epoch}:%{version}-%{release}
+Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
%description -n python-rgw
This package contains Python 2 libraries for interacting with Cephs RADOS
gateway.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: librgw2 = %{epoch}:%{version}-%{release}
-Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release}
+Requires: librgw2 = %{_epoch_prefix}%{version}-%{release}
+Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
%description -n python%{python3_pkgversion}-rgw
This package contains Python 3 libraries for interacting with Cephs RADOS
gateway.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: librados2 = %{epoch}:%{version}-%{release}
-Obsoletes: python-ceph < %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
%description -n python-rados
This package contains Python 2 libraries for interacting with Cephs RADOS
object store.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
Requires: python%{python3_pkgversion}
-Requires: librados2 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
%description -n python%{python3_pkgversion}-rados
This package contains Python 3 libraries for interacting with Cephs RADOS
object store.
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
-Requires: librados2 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
%description -n libradosstriper1
Striping interface built on top of the rados library, allowing
to stripe bigger objects onto several standard rados objects using
%if 0%{?suse_version}
Group: Development/Libraries/C and C++
%endif
-License: LGPL-2.0
-Requires: libradosstriper1 = %{epoch}:%{version}-%{release}
-Requires: librados-devel = %{epoch}:%{version}-%{release}
-Obsoletes: ceph-devel < %{epoch}:%{version}-%{release}
-Provides: libradosstriper1-devel = %{epoch}:%{version}-%{release}
-Obsoletes: libradosstriper1-devel < %{epoch}:%{version}-%{release}
+Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release}
+Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
+Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release}
%description -n libradosstriper-devel
This package contains libraries and headers needed to develop programs
that use RADOS striping interface.
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
-Requires: librados2 = %{epoch}:%{version}-%{release}
+Requires: librados2 = %{_epoch_prefix}%{version}-%{release}
+%if 0%{?suse_version}
+Requires(post): coreutils
+%endif
%if 0%{?rhel} || 0%{?fedora}
-Obsoletes: ceph-libs < %{epoch}:%{version}-%{release}
+Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
%endif
%description -n librbd1
RBD is a block device striped across multiple distributed objects in
%if 0%{?suse_version}
Group: Development/Libraries/C and C++
%endif
-License: LGPL-2.0
-Requires: librbd1 = %{epoch}:%{version}-%{release}
-Requires: librados-devel = %{epoch}:%{version}-%{release}
-Obsoletes: ceph-devel < %{epoch}:%{version}-%{release}
-Provides: librbd1-devel = %{epoch}:%{version}-%{release}
-Obsoletes: librbd1-devel < %{epoch}:%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
+Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
+Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release}
%description -n librbd-devel
This package contains libraries and headers needed to develop programs
that use RADOS block device.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: librbd1 = %{epoch}:%{version}-%{release}
-Requires: python-rados = %{epoch}:%{version}-%{release}
-Obsoletes: python-ceph < %{epoch}:%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
%description -n python-rbd
This package contains Python 2 libraries for interacting with Cephs RADOS
block device.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: librbd1 = %{epoch}:%{version}-%{release}
-Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release}
+Requires: librbd1 = %{_epoch_prefix}%{version}-%{release}
+Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
%description -n python%{python3_pkgversion}-rbd
This package contains Python 3 libraries for interacting with Cephs RADOS
block device.
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
%if 0%{?rhel} || 0%{?fedora}
-Obsoletes: ceph-libs < %{epoch}:%{version}-%{release}
+Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release}
Obsoletes: ceph-libcephfs
%endif
%description -n libcephfs2
%if 0%{?suse_version}
Group: Development/Libraries/C and C++
%endif
-License: LGPL-2.0
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
-Requires: librados-devel = %{epoch}:%{version}-%{release}
-Obsoletes: ceph-devel < %{epoch}:%{version}-%{release}
-Provides: libcephfs2-devel = %{epoch}:%{version}-%{release}
-Obsoletes: libcephfs2-devel < %{epoch}:%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
+Requires: librados-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
+Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release}
%description -n libcephfs-devel
This package contains libraries and headers needed to develop programs
that use Cephs distributed file system.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
%if 0%{?suse_version}
-Recommends: python-rados = %{epoch}:%{version}-%{release}
+Recommends: python-rados = %{_epoch_prefix}%{version}-%{release}
%endif
-Obsoletes: python-ceph < %{epoch}:%{version}-%{release}
+Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release}
%description -n python-cephfs
This package contains Python 2 libraries for interacting with Cephs distributed
file system.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
-Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
+Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release}
%description -n python%{python3_pkgversion}-cephfs
This package contains Python 3 libraries for interacting with Cephs distributed
file system.
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
%description -n python%{python3_pkgversion}-ceph-argparse
This package contains types and routines for Python 3 used by the Ceph CLI as
well as the RESTful interface. These have to do with querying the daemons for
%if 0%{?suse_version}
Group: System/Benchmark
%endif
-License: LGPL-2.0
Requires: ceph-common
Requires: xmlstarlet
+Requires: jq
%description -n ceph-test
This package contains Ceph benchmarks and test tools.
%endif
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
Requires: java
-Requires: libcephfs2 = %{epoch}:%{version}-%{release}
+Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release}
%description -n libcephfs_jni1
This package contains the Java Native Interface library for CephFS Java
bindings.
%if 0%{?suse_version}
Group: Development/Libraries/Java
%endif
-License: LGPL-2.0
Requires: java
-Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release}
-Obsoletes: ceph-devel < %{epoch}:%{version}-%{release}
-Provides: libcephfs_jni1-devel = %{epoch}:%{version}-%{release}
-Obsoletes: libcephfs_jni1-devel < %{epoch}:%{version}-%{release}
+Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release}
+Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release}
+Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release}
%description -n libcephfs_jni-devel
This package contains the development files for CephFS Java Native Interface
library.
%if 0%{?suse_version}
Group: System/Libraries
%endif
-License: LGPL-2.0
Requires: java
-Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release}
+Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release}
Requires: junit
BuildRequires: junit
%description -n cephfs-java
%package -n rados-objclass-devel
Summary: RADOS object class development kit
Group: Development/Libraries
-License: LGPL-2.0
-Requires: librados2-devel = %{epoch}:%{version}-%{release}
+Requires: librados2-devel = %{_epoch_prefix}%{version}-%{release}
%description -n rados-objclass-devel
This package contains libraries and headers needed to develop RADOS object
class plugins.
%if 0%{?suse_version}
Group: System/Filesystems
%endif
-Requires: ceph-base = %{epoch}:%{version}-%{release}
+Requires: ceph-base = %{_epoch_prefix}%{version}-%{release}
Requires: policycoreutils, libselinux-utils
+Requires(post): ceph-base = %{_epoch_prefix}%{version}-%{release}
Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk
Requires(postun): policycoreutils
%description selinux
%if 0%{?suse_version}
Group: Development/Languages/Python
%endif
-License: LGPL-2.0
Obsoletes: python-ceph
-Requires: python-rados = %{epoch}:%{version}-%{release}
-Requires: python-rbd = %{epoch}:%{version}-%{release}
-Requires: python-cephfs = %{epoch}:%{version}-%{release}
-Requires: python-rgw = %{epoch}:%{version}-%{release}
+Requires: python-rados = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rbd = %{_epoch_prefix}%{version}-%{release}
+Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release}
+Requires: python-rgw = %{_epoch_prefix}%{version}-%{release}
Provides: python-ceph
%description -n python-ceph-compat
This is a compatibility package to accommodate python-ceph split into
# common
#################################################################################
%prep
-%autosetup -p1 -n ceph-12.0.3
+%autosetup -p1 -n ceph-12.1.0
%build
%if 0%{with cephfs_java}
$CEPH_EXTRA_CMAKE_ARGS \
%if 0%{with ocf}
-DWITH_OCF=ON \
+%endif
+%ifarch aarch64 armv7hl mips mipsel ppc ppc64 ppc64le %{ix86} x86_64
+ -DWITH_RADOSGW_BEAST_FRONTEND=ON \
+%else
+ -DWITH_RADOSGW_BEAST_FRONTEND=OFF \
%endif
-DBOOST_J=%{_smp_ncpus}
mkdir -p %{buildroot}%{_sbindir}
install -m 0644 -D src/logrotate.conf %{buildroot}%{_sysconfdir}/logrotate.d/ceph
chmod 0644 %{buildroot}%{_docdir}/ceph/sample.ceph.conf
-chmod 0644 %{buildroot}%{_docdir}/ceph/sample.fetch_config
+install -m 0644 -D COPYING %{buildroot}%{_docdir}/ceph/COPYING
# firewall templates and /sbin/mount.ceph symlink
%if 0%{?suse_version}
%files
%files base
-%defattr(-,root,root,-)
-%docdir %{_docdir}
-%dir %{_docdir}/ceph
-%{_docdir}/ceph/sample.ceph.conf
-%{_docdir}/ceph/sample.fetch_config
%{_bindir}/crushtool
%{_bindir}/monmaptool
%{_bindir}/osdmaptool
%{_bindir}/ceph-detect-init
%{_libexecdir}/systemd/system-preset/50-ceph.preset
%{_sbindir}/ceph-create-keys
+%{_sbindir}/ceph-disk
%{_sbindir}/rcceph
%dir %{_libexecdir}/ceph
%{_libexecdir}/ceph/ceph_common.sh
%{_libdir}/libos_tp.so*
%{_libdir}/libosd_tp.so*
%endif
-%config %{_sysconfdir}/bash_completion.d/ceph
%config(noreplace) %{_sysconfdir}/logrotate.d/ceph
%if 0%{?fedora} || 0%{?rhel}
%config(noreplace) %{_sysconfdir}/sysconfig/ceph
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds
%endif
+%{_unitdir}/ceph-disk@.service
%{_unitdir}/ceph.target
%{python_sitelib}/ceph_detect_init*
%{python_sitelib}/ceph_disk*
%{_mandir}/man8/ceph-deploy.8*
%{_mandir}/man8/ceph-detect-init.8*
%{_mandir}/man8/ceph-create-keys.8*
+%{_mandir}/man8/ceph-disk.8*
%{_mandir}/man8/ceph-run.8*
%{_mandir}/man8/crushtool.8*
%{_mandir}/man8/osdmaptool.8*
%if 0%{?suse_version}
%fillup_only
if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl preset ceph.target >/dev/null 2>&1 || :
+ /usr/bin/systemctl preset ceph-disk@\*.service ceph.target >/dev/null 2>&1 || :
fi
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_post ceph.target
+%systemd_post ceph-disk@\*.service ceph.target
%endif
if [ $1 -eq 1 ] ; then
/usr/bin/systemctl start ceph.target >/dev/null 2>&1 || :
%preun base
%if 0%{?suse_version}
-%service_del_preun ceph.target
+%service_del_preun ceph-disk@\*.service ceph.target
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_preun ceph.target
+%systemd_preun ceph-disk@\*.service ceph.target
%endif
%postun base
/sbin/ldconfig
%if 0%{?suse_version}
DISABLE_RESTART_ON_UPDATE="yes"
-%service_del_postun ceph.target
+%service_del_postun ceph-disk@\*.service ceph.target
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_postun ceph.target
+%systemd_postun ceph-disk@\*.service ceph.target
%endif
+if [ $FIRST_ARG -ge 1 ] ; then
+ # Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
+ # "yes". In any case: if units are not running, do not touch them.
+ SYSCONF_CEPH=%{_sysconfdir}/sysconfig/ceph
+ if [ -f $SYSCONF_CEPH -a -r $SYSCONF_CEPH ] ; then
+ source $SYSCONF_CEPH
+ fi
+ if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
+ /usr/bin/systemctl try-restart ceph-disk@\*.service > /dev/null 2>&1 || :
+ fi
+fi
%files common
-%defattr(-,root,root,-)
+%docdir %{_docdir}
+%docdir %{_docdir}/ceph
+%doc %{_docdir}/ceph/sample.ceph.conf
+%doc %{_docdir}/ceph/COPYING
%{_bindir}/ceph
%{_bindir}/ceph-authtool
%{_bindir}/ceph-conf
%{_datadir}/ceph/id_rsa_drop.ceph.com
%{_datadir}/ceph/id_rsa_drop.ceph.com.pub
%dir %{_sysconfdir}/ceph/
+%config %{_sysconfdir}/bash_completion.d/ceph
%config %{_sysconfdir}/bash_completion.d/rados
%config %{_sysconfdir}/bash_completion.d/rbd
%config %{_sysconfdir}/bash_completion.d/radosgw-admin
fi
%files fuse
-%defattr(-,root,root,-)
%{_bindir}/ceph-fuse
%{_mandir}/man8/ceph-fuse.8*
%{_sbindir}/mount.fuse.ceph
%{_unitdir}/ceph-fuse.target
%files -n rbd-fuse
-%defattr(-,root,root,-)
%{_bindir}/rbd-fuse
%{_mandir}/man8/rbd-fuse.8*
%files -n rbd-mirror
-%defattr(-,root,root,-)
%{_bindir}/rbd-mirror
%{_mandir}/man8/rbd-mirror.8*
%{_unitdir}/ceph-rbd-mirror@.service
fi
%files -n rbd-nbd
-%defattr(-,root,root,-)
%{_bindir}/rbd-nbd
%{_mandir}/man8/rbd-nbd.8*
%files radosgw
-%defattr(-,root,root,-)
%{_bindir}/radosgw
%{_bindir}/radosgw-token
+%{_bindir}/radosgw-es
%{_bindir}/radosgw-object-expirer
%{_mandir}/man8/radosgw.8*
%dir %{_localstatedir}/lib/ceph/radosgw
%{_bindir}/ceph-bluestore-tool
%{_bindir}/ceph-objectstore-tool
%{_bindir}/ceph-osd
-%{_sbindir}/ceph-disk
-%{_sbindir}/ceph-disk-udev
%{_libexecdir}/ceph/ceph-osd-prestart.sh
%dir %{_udevrulesdir}
%{_udevrulesdir}/60-ceph-by-parttypeuuid.rules
%{_udevrulesdir}/95-ceph-osd.rules
%{_mandir}/man8/ceph-clsinfo.8*
-%{_mandir}/man8/ceph-disk.8*
%{_mandir}/man8/ceph-osd.8*
%if 0%{?rhel} && ! 0%{?centos}
-%{_sysconfdir}/cron.hourly/subman
+%attr(0755,-,-) %{_sysconfdir}/cron.hourly/subman
%endif
%{_unitdir}/ceph-osd@.service
%{_unitdir}/ceph-osd.target
-%{_unitdir}/ceph-disk@.service
%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
%post osd
%if 0%{?suse_version}
if [ $1 -eq 1 ] ; then
- /usr/bin/systemctl preset ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target >/dev/null 2>&1 || :
+ /usr/bin/systemctl preset ceph-osd@\*.service ceph-osd.target >/dev/null 2>&1 || :
fi
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_post ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target
+%systemd_post ceph-osd@\*.service ceph-osd.target
%endif
if [ $1 -eq 1 ] ; then
/usr/bin/systemctl start ceph-osd.target >/dev/null 2>&1 || :
%preun osd
%if 0%{?suse_version}
-%service_del_preun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target
+%service_del_preun ceph-osd@\*.service ceph-osd.target
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_preun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target
+%systemd_preun ceph-osd@\*.service ceph-osd.target
%endif
%postun osd
test -n "$FIRST_ARG" || FIRST_ARG=$1
%if 0%{?suse_version}
DISABLE_RESTART_ON_UPDATE="yes"
-%service_del_postun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target
+%service_del_postun ceph-osd@\*.service ceph-osd.target
%endif
%if 0%{?fedora} || 0%{?rhel}
-%systemd_postun ceph-disk@\*.service ceph-osd@\*.service ceph-osd.target
+%systemd_postun ceph-osd@\*.service ceph-osd.target
%endif
if [ $FIRST_ARG -ge 1 ] ; then
# Restart on upgrade, but only if "CEPH_AUTO_RESTART_ON_UPGRADE" is set to
source $SYSCONF_CEPH
fi
if [ "X$CEPH_AUTO_RESTART_ON_UPGRADE" = "Xyes" ] ; then
- /usr/bin/systemctl try-restart ceph-disk@\*.service ceph-osd@\*.service > /dev/null 2>&1 || :
+ /usr/bin/systemctl try-restart ceph-osd@\*.service > /dev/null 2>&1 || :
fi
fi
%if %{with ocf}
%files resource-agents
-%defattr(0755,root,root,-)
%dir %{_prefix}/lib/ocf
%dir %{_prefix}/lib/ocf/resource.d
%dir %{_prefix}/lib/ocf/resource.d/ceph
%endif
%files -n librados2
-%defattr(-,root,root,-)
%{_libdir}/librados.so.*
%dir %{_libdir}/ceph
%{_libdir}/ceph/libceph-common.so*
%postun -n librados2 -p /sbin/ldconfig
%files -n librados-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/rados
%{_includedir}/rados/librados.h
%{_includedir}/rados/librados.hpp
%{_mandir}/man8/librados-config.8*
%files -n python-rados
-%defattr(-,root,root,-)
%{python_sitearch}/rados.so
%{python_sitearch}/rados-*.egg-info
%files -n python%{python3_pkgversion}-rados
-%defattr(-,root,root,-)
%{python3_sitearch}/rados.cpython*.so
%{python3_sitearch}/rados-*.egg-info
%files -n libradosstriper1
-%defattr(-,root,root,-)
%{_libdir}/libradosstriper.so.*
%post -n libradosstriper1 -p /sbin/ldconfig
%postun -n libradosstriper1 -p /sbin/ldconfig
%files -n libradosstriper-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/radosstriper
%{_includedir}/radosstriper/libradosstriper.h
%{_includedir}/radosstriper/libradosstriper.hpp
%{_libdir}/libradosstriper.so
%files -n librbd1
-%defattr(-,root,root,-)
%{_libdir}/librbd.so.*
%if %{with lttng}
%{_libdir}/librbd_tp.so.*
%postun -n librbd1 -p /sbin/ldconfig
%files -n librbd-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/rbd
%{_includedir}/rbd/librbd.h
%{_includedir}/rbd/librbd.hpp
%endif
%files -n librgw2
-%defattr(-,root,root,-)
%{_libdir}/librgw.so.*
%post -n librgw2 -p /sbin/ldconfig
%postun -n librgw2 -p /sbin/ldconfig
%files -n librgw-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/rados
%{_includedir}/rados/librgw.h
%{_includedir}/rados/rgw_file.h
%{_libdir}/librgw.so
%files -n python-rgw
-%defattr(-,root,root,-)
%{python_sitearch}/rgw.so
%{python_sitearch}/rgw-*.egg-info
%files -n python%{python3_pkgversion}-rgw
-%defattr(-,root,root,-)
%{python3_sitearch}/rgw.cpython*.so
%{python3_sitearch}/rgw-*.egg-info
%files -n python-rbd
-%defattr(-,root,root,-)
%{python_sitearch}/rbd.so
%{python_sitearch}/rbd-*.egg-info
%files -n python%{python3_pkgversion}-rbd
-%defattr(-,root,root,-)
%{python3_sitearch}/rbd.cpython*.so
%{python3_sitearch}/rbd-*.egg-info
%files -n libcephfs2
-%defattr(-,root,root,-)
%{_libdir}/libcephfs.so.*
%post -n libcephfs2 -p /sbin/ldconfig
%postun -n libcephfs2 -p /sbin/ldconfig
%files -n libcephfs-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/cephfs
%{_includedir}/cephfs/libcephfs.h
%{_includedir}/cephfs/ceph_statx.h
%{_libdir}/libcephfs.so
%files -n python-cephfs
-%defattr(-,root,root,-)
%{python_sitearch}/cephfs.so
%{python_sitearch}/cephfs-*.egg-info
%{python_sitelib}/ceph_volume_client.py*
%files -n python%{python3_pkgversion}-cephfs
-%defattr(-,root,root,-)
%{python3_sitearch}/cephfs.cpython*.so
%{python3_sitearch}/cephfs-*.egg-info
%{python3_sitelib}/ceph_volume_client.py
%{python3_sitelib}/__pycache__/ceph_volume_client.cpython*.py*
%files -n python%{python3_pkgversion}-ceph-argparse
-%defattr(-,root,root,-)
%{python3_sitelib}/ceph_argparse.py
%{python3_sitelib}/__pycache__/ceph_argparse.cpython*.py*
%{python3_sitelib}/ceph_daemon.py
%if 0%{with ceph_test_package}
%files -n ceph-test
-%defattr(-,root,root,-)
%{_bindir}/ceph-client-debug
%{_bindir}/ceph_bench_log
%{_bindir}/ceph_kvstorebench
%{_bindir}/ceph-osdomap-tool
%{_bindir}/ceph-kvstore-tool
%{_bindir}/ceph-debugpack
-%{_bindir}/dmclock-tests
-%{_bindir}/dmclock-data-struct-tests
%{_mandir}/man8/ceph-debugpack.8*
%dir %{_libdir}/ceph
%{_libdir}/ceph/ceph-monstore-update-crush.sh
%if 0%{with cephfs_java}
%files -n libcephfs_jni1
-%defattr(-,root,root,-)
%{_libdir}/libcephfs_jni.so.*
%post -n libcephfs_jni1 -p /sbin/ldconfig
%postun -n libcephfs_jni1 -p /sbin/ldconfig
%files -n libcephfs_jni-devel
-%defattr(-,root,root,-)
%{_libdir}/libcephfs_jni.so
%files -n cephfs-java
-%defattr(-,root,root,-)
%{_javadir}/libcephfs.jar
%{_javadir}/libcephfs-test.jar
%endif
%files -n rados-objclass-devel
-%defattr(-,root,root,-)
%dir %{_includedir}/rados
%{_includedir}/rados/objclass.h
%if 0%{with selinux}
%files selinux
-%defattr(-,root,root,-)
%attr(0600,root,root) %{_datadir}/selinux/packages/ceph.pp
%{_datadir}/selinux/devel/include/contrib/ceph.if
%{_mandir}/man8/ceph_selinux.8*
/usr/bin/systemctl stop ceph.target > /dev/null 2>&1
fi
-# Now, relabel the files
-/usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
+# Relabel the files
+# Use ceph-disk fix for first package install and fixfiles otherwise
+if [ "$1" = "1" ]; then
+ /usr/sbin/ceph-disk fix --selinux
+else
+ /usr/sbin/fixfiles -C ${FILE_CONTEXT}.pre restore 2> /dev/null
+fi
+
rm -f ${FILE_CONTEXT}.pre
# The fixfiles command won't fix label for /var/run/ceph
/usr/sbin/restorecon -R /var/run/ceph > /dev/null 2>&1