diff --git a/0001-Disable-erasure_codelib-neon-build.patch b/0001-Disable-erasure_codelib-neon-build.patch index e0bc996..1b6b5e2 100644 --- a/0001-Disable-erasure_codelib-neon-build.patch +++ b/0001-Disable-erasure_codelib-neon-build.patch @@ -1,4 +1,4 @@ -From e439feb47e0bd603b6e2d84b6ae280f2a2d4d134 Mon Sep 17 00:00:00 2001 +From 45f04eb8ac97d953ed5d631f6ec227a217a27bec Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Wed, 11 Nov 2015 17:08:06 +0100 Subject: [PATCH] Disable erasure_codelib neon build @@ -9,7 +9,7 @@ Subject: [PATCH] Disable erasure_codelib neon build 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am -index 9ca4fbb..147d57e 100644 +index adcb95d..5e47943 100644 --- a/src/erasure-code/jerasure/Makefile.am +++ b/src/erasure-code/jerasure/Makefile.am @@ -75,9 +75,9 @@ if LINUX @@ -26,7 +26,7 @@ index 9ca4fbb..147d57e 100644 libec_jerasure_sse3_la_SOURCES = ${jerasure_sources} libec_jerasure_sse3_la_CFLAGS = ${AM_CFLAGS} \ diff --git a/src/erasure-code/shec/Makefile.am b/src/erasure-code/shec/Makefile.am -index 1449a41..f5d5997 100644 +index 6b658d5..93051f4 100644 --- a/src/erasure-code/shec/Makefile.am +++ b/src/erasure-code/shec/Makefile.am @@ -81,9 +81,9 @@ if LINUX @@ -43,5 +43,5 @@ index 1449a41..f5d5997 100644 libec_shec_sse3_la_SOURCES = ${shec_sources} libec_shec_sse3_la_CFLAGS = ${AM_CFLAGS} \ -- -2.1.0 +2.5.5 diff --git a/0001-common-Cycles-Do-not-initialize-Cycles-globally.patch b/0001-common-Cycles-Do-not-initialize-Cycles-globally.patch deleted file mode 100644 index 1ef0926..0000000 --- a/0001-common-Cycles-Do-not-initialize-Cycles-globally.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 1c2831a2c1277c69f9649200d74a75c04a4b0296 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 21 Mar 2016 14:24:35 +0000 -Subject: [PATCH] common/Cycles: Do not initialize Cycles globally. - -Move initialization to the few tests that actually use it. - -Fixes: http://tracker.ceph.com/issues/15225 -Signed-off-by: Richard W.M. Jones ---- - src/common/Cycles.cc | 11 ++++++----- - src/test/msgr/perf_msgr_client.cc | 1 + - src/test/msgr/perf_msgr_server.cc | 1 - - src/test/objectstore/ObjectStoreTransactionBenchmark.cc | 1 + - src/test/perf_local.cc | 1 + - 5 files changed, 9 insertions(+), 6 deletions(-) - -diff --git a/src/common/Cycles.cc b/src/common/Cycles.cc -index b0b687e..656f08b 100644 ---- a/src/common/Cycles.cc -+++ b/src/common/Cycles.cc -@@ -38,14 +38,15 @@ - #include "Cycles.h" - - double Cycles::cycles_per_sec = 0; --static Initialize _(Cycles::init); - - /** - * Perform once-only overall initialization for the Cycles class, such -- * as calibrating the clock frequency. This method is invoked automatically -- * during initialization, but it may be invoked explicitly by other modules -- * to ensure that initialization occurs before those modules initialize -- * themselves. -+ * as calibrating the clock frequency. This method must be called -+ * before using the Cycles module. -+ * -+ * It is not initialized by default because the timing loops cause -+ * general process startup times to balloon -+ * (http://tracker.ceph.com/issues/15225). - */ - void Cycles::init() - { -diff --git a/src/test/msgr/perf_msgr_client.cc b/src/test/msgr/perf_msgr_client.cc -index fa21b49..1cb3db2 100644 ---- a/src/test/msgr/perf_msgr_client.cc -+++ b/src/test/msgr/perf_msgr_client.cc -@@ -196,6 +196,7 @@ int main(int argc, char **argv) - cerr << " message data bytes " << len << std::endl; - MessengerClient client(g_ceph_context->_conf->ms_type, args[0], think_time); - client.ready(concurrent, numjobs, ios, len); -+ Cycles::init(); - uint64_t start = Cycles::rdtsc(); - client.start(); - uint64_t stop = Cycles::rdtsc(); -diff --git a/src/test/msgr/perf_msgr_server.cc b/src/test/msgr/perf_msgr_server.cc -index 3eae9a5..dde679c 100644 ---- a/src/test/msgr/perf_msgr_server.cc -+++ b/src/test/msgr/perf_msgr_server.cc -@@ -25,7 +25,6 @@ using namespace std; - #include "include/atomic.h" - #include "common/ceph_argparse.h" - #include "common/debug.h" --#include "common/Cycles.h" - #include "global/global_init.h" - #include "msg/Messenger.h" - #include "messages/MOSDOp.h" -diff --git a/src/test/objectstore/ObjectStoreTransactionBenchmark.cc b/src/test/objectstore/ObjectStoreTransactionBenchmark.cc -index 7c0dc09..46fd25d 100644 ---- a/src/test/objectstore/ObjectStoreTransactionBenchmark.cc -+++ b/src/test/objectstore/ObjectStoreTransactionBenchmark.cc -@@ -249,6 +249,7 @@ int main(int argc, char **argv) - global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); - common_init_finish(g_ceph_context); - g_ceph_context->_conf->apply_changes(NULL); -+ Cycles::init(); - - cerr << "args: " << args << std::endl; - if (args.size() < 1) { -diff --git a/src/test/perf_local.cc b/src/test/perf_local.cc -index 49440c2..7c33dc5 100644 ---- a/src/test/perf_local.cc -+++ b/src/test/perf_local.cc -@@ -1020,6 +1020,7 @@ int main(int argc, char *argv[]) - - global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY, 0); - common_init_finish(g_ceph_context); -+ Cycles::init(); - - bind_thread_to_cpu(3); - if (argc == 1) { --- -2.7.4 - diff --git a/ceph.spec b/ceph.spec index 7a2a717..be9e2c4 100644 --- a/ceph.spec +++ b/ceph.spec @@ -1,4 +1,19 @@ # vim: set noexpandtab ts=8 sw=8 : +# +# spec file for package ceph +# +# Copyright (C) 2004-2016 The Ceph Project Developers. See COPYING file +# at the top-level directory of this distribution and at +# https://github.com/ceph/ceph/blob/master/COPYING +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. +# +# This file is under the GNU Lesser General Public License, version 2.1 +# +# Please submit bugfixes or comments via http://tracker.ceph.com/ +# %bcond_with ocf %bcond_without cephfs_java %bcond_with tests @@ -6,12 +21,16 @@ %bcond_without libs_compat %bcond_with lowmem_builder %if 0%{?fedora} || 0%{?rhel} -%bcond_with selinux +%bcond_without selinux %endif %if 0%{?suse_version} %bcond_with selinux %endif +# LTTng-UST enabled on Fedora, RHEL 6+, and SLES 12 +%if 0%{?fedora} || 0%{?rhel} >= 6 || 0%{?suse_version} == 1315 +%bcond_without lttng +%endif %if (0%{?el5} || (0%{?rhel_version} >= 500 && 0%{?rhel_version} <= 600)) %{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} @@ -31,7 +50,8 @@ restorecon -R /etc/rc\.d/init\.d/ceph > /dev/null 2>&1; \ restorecon -R /etc/rc\.d/init\.d/radosgw > /dev/null 2>&1; \ restorecon -R /var/run/ceph > /dev/null 2>&1; \ restorecon -R /var/lib/ceph > /dev/null 2>&1; \ -restorecon -R /var/log/ceph > /dev/null 2>&1; +restorecon -R /var/log/ceph > /dev/null 2>&1; \ +restorecon -R /var/log/radosgw > /dev/null 2>&1; %endif %{!?_udevrulesdir: %global _udevrulesdir /lib/udev/rules.d} @@ -41,21 +61,21 @@ restorecon -R /var/log/ceph > /dev/null 2>&1; # the _with_systemd variable only implies that we'll install # /etc/tmpfiles.d/ceph.conf in order to set up the socket directory in # /var/run/ceph. -%if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210 +%if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} %global _with_systemd 1 +%{!?tmpfiles_create: %global tmpfiles_create systemd-tmpfiles --create} %endif -# LTTng-UST enabled on Fedora, RHEL 6, and SLES 12 -%if 0%{?fedora} || 0%{?rhel} == 6 || 0%{?suse_version} == 1315 -%global _with_lttng 1 -%endif +# unify libexec for all targets +%global _libexecdir %{_exec_prefix}/lib + ################################################################################# # common ################################################################################# Name: ceph -Version: 9.2.0 -Release: 5%{?dist} +Version: 10.2.0 +Release: 1%{?dist} Epoch: 1 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 @@ -63,37 +83,14 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-with-auto Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: http://ceph.com/download/%{name}-%{version}.tar.bz2 -%if 0%{?fedora} || 0%{?rhel} -Patch0: init-ceph.in-fedora.patch -%endif -Patch1: 0001-Disable-erasure_codelib-neon-build.patch -# Upstream commit 1c2831a2, fixes RHBZ#1319483 -Patch2: 0001-common-Cycles-Do-not-initialize-Cycles-globally.patch +Source0: http://ceph.com/download/%{name}-%{version}.tar.gz +Patch1: 0001-Disable-erasure_codelib-neon-build.patch ################################################################################# # dependencies that apply across all distro families ################################################################################# -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: libcephfs1 = %{epoch}:%{version}-%{release} -Requires: ceph-common = %{epoch}:%{version}-%{release} -%if 0%{with selinux} -Requires: ceph-selinux = %{epoch}:%{version}-%{release} -%endif -Requires: python-rados = %{epoch}:%{version}-%{release} -Requires: python-rbd = %{epoch}:%{version}-%{release} -Requires: python-cephfs = %{epoch}:%{version}-%{release} -Requires: python -Requires: python-requests -Requires: grep -Requires: xfsprogs -Requires: logrotate -Requires: parted -Requires: util-linux -Requires: hdparm -Requires: cryptsetup -Requires: findutils -Requires: which +Requires: ceph-osd = %{epoch}:%{version}-%{release} +Requires: ceph-mds = %{epoch}:%{version}-%{release} +Requires: ceph-mon = %{epoch}:%{version}-%{release} Requires(post): binutils %if 0%{with cephfs_java} BuildRequires: java-devel @@ -114,7 +111,6 @@ BuildRequires: hdparm BuildRequires: leveldb-devel > 1.2 BuildRequires: libaio-devel BuildRequires: libcurl-devel -BuildRequires: libedit-devel BuildRequires: libxml2-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: libudev-devel @@ -124,11 +120,13 @@ BuildRequires: parted BuildRequires: perl BuildRequires: pkgconfig BuildRequires: python +BuildRequires: python-devel BuildRequires: python-nose BuildRequires: python-requests BuildRequires: python-virtualenv BuildRequires: snappy-devel BuildRequires: util-linux +BuildRequires: valgrind-devel BuildRequires: xfsprogs BuildRequires: xfsprogs-devel BuildRequires: xmlstarlet @@ -141,51 +139,51 @@ BuildRequires: yasm %if 0%{?_with_systemd} BuildRequires: pkgconfig(systemd) BuildRequires: systemd-rpm-macros +BuildRequires: systemd %{?systemd_requires} %endif PreReq: %fillup_prereq -Requires: python-Flask BuildRequires: net-tools BuildRequires: libbz2-devel -%if 0%{?suse_version} > 1210 -Requires: gptfdisk %if 0%{with tcmalloc} BuildRequires: gperftools-devel %endif -%else -Requires: scsirastools -BuildRequires: google-perftools-devel -%endif +BuildRequires: btrfsprogs BuildRequires: mozilla-nss-devel BuildRequires: keyutils-devel BuildRequires: libatomic-ops-devel -%else +BuildRequires: libopenssl-devel +BuildRequires: lsb-release +BuildRequires: openldap2-devel +BuildRequires: python-Cython +%endif +%if 0%{?fedora} || 0%{?rhel} %if 0%{?_with_systemd} Requires: systemd %endif -BuildRequires: bzip2-devel +BuildRequires: btrfs-progs BuildRequires: nss-devel BuildRequires: keyutils-libs-devel BuildRequires: libatomic_ops-devel -Requires: gdisk Requires(post): chkconfig Requires(preun): chkconfig Requires(preun): initscripts -%ifnarch s390 s390x BuildRequires: gperftools-devel -%endif -Requires: python-flask +BuildRequires: openldap-devel +BuildRequires: openssl-devel +BuildRequires: redhat-lsb-core +BuildRequires: Cython %endif # boost %if 0%{?fedora} || 0%{?rhel} BuildRequires: boost-random %endif # python-argparse for distros with Python 2.6 or lower -%if (0%{?rhel} && 0%{?rhel} <= 6) || (0%{?suse_version} && 0%{?suse_version} <= 1110) +%if (0%{?rhel} && 0%{?rhel} <= 6) BuildRequires: python-argparse %endif # lttng and babeltrace for rbd-replay-prep -%if 0%{?_with_lttng} +%if %{with lttng} %if 0%{?fedora} || 0%{?rhel} BuildRequires: lttng-ust-devel BuildRequires: libbabeltrace-devel @@ -211,6 +209,10 @@ BuildRequires: python-sphinx10 %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} >= 7 BuildRequires: python-sphinx %endif +#hardened-cc1 +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: redhat-rpm-config +%endif %description Ceph is a massively scalable, open-source, distributed storage system that runs @@ -220,11 +222,44 @@ on commodity hardware and delivers object, block and file system storage. ################################################################################# # packages ################################################################################# +%package base +Summary: Ceph Base Package +Group: System Environment/Base +Requires: ceph-common = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} +Requires: librgw2 = %{epoch}:%{version}-%{release} +%if 0%{with selinux} +Requires: ceph-selinux = %{epoch}:%{version}-%{release} +%endif +Requires: python +Requires: python-requests +Requires: python-setuptools +Requires: grep +Requires: xfsprogs +Requires: logrotate +Requires: parted +Requires: util-linux +Requires: hdparm +Requires: cryptsetup +Requires: findutils +Requires: which +%if 0%{?suse_version} +Requires: lsb-release +%endif +%if 0%{?fedora} || 0%{?rhel} +Requires: redhat-lsb-core +%endif +%description base +Base is the package that includes all the files shared amongst ceph servers + %package -n ceph-common Summary: Ceph Common Group: System Environment/Base Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} Requires: python-rados = %{epoch}:%{version}-%{release} Requires: python-rbd = %{epoch}:%{version}-%{release} Requires: python-cephfs = %{epoch}:%{version}-%{release} @@ -236,28 +271,70 @@ Requires: python-requests Requires(pre): pwdutils %endif # python-argparse is only needed in distros with Python 2.6 or lower -%if (0%{?rhel} && 0%{?rhel} <= 6) || (0%{?suse_version} && 0%{?suse_version} <= 1110) +%if (0%{?rhel} && 0%{?rhel} <= 6) Requires: python-argparse %endif %description -n ceph-common Common utilities to mount and interact with a ceph storage cluster. +Comprised of files that are common to Ceph clients and servers. + +%package mds +Summary: Ceph Metadata Server Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{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 +namespace, coordinating access to the shared OSD cluster. + +%package mon +Summary: Ceph Monitor Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{version}-%{release} +# For ceph-rest-api +%if 0%{?fedora} || 0%{?rhel} +Requires: python-flask +%endif +%if 0%{?suse_version} +Requires: python-Flask +%endif +%description mon +ceph-mon is the cluster monitor daemon for the Ceph distributed file +system. One or more instances of ceph-mon form a Paxos part-time +parliament cluster that provides extremely reliable and durable storage +of cluster membership, configuration, and state. %package fuse Summary: Ceph fuse-based client Group: System Environment/Base -Requires: %{name} %description fuse FUSE based client for Ceph distributed network file system %package -n rbd-fuse Summary: Ceph fuse-based client Group: System Environment/Base -Requires: %{name} Requires: librados2 = %{epoch}:%{version}-%{release} Requires: librbd1 = %{epoch}:%{version}-%{release} %description -n rbd-fuse FUSE based client to map Ceph rbd images to files +%package -n rbd-mirror +Summary: Ceph daemon for mirroring RBD images +Group: System Environment/Base +Requires: ceph-common = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +%description -n rbd-mirror +Daemon for mirroring RBD images between Ceph clusters, streaming +changes asynchronously. + +%package -n rbd-nbd +Summary: Ceph RBD client base on NBD +Group: System Environment/Base +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} +%description -n rbd-nbd +NBD based client to map Ceph rbd images to local device + %package radosgw Summary: Rados REST gateway Group: Development/Libraries @@ -266,20 +343,28 @@ Requires: ceph-common = %{epoch}:%{version}-%{release} Requires: ceph-selinux = %{epoch}:%{version}-%{release} %endif Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librgw2 = %{epoch}:%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap +# python-flask for powerdns +Requires: python-flask +%endif +%if 0%{?suse_version} +# python-Flask for powerdns +Requires: python-Flask %endif %description radosgw -This package is an S3 HTTP REST gateway for the RADOS object store. It -is implemented as a FastCGI module using libfcgi, and can be used in -conjunction with any FastCGI capable web server. +RADOS is a distributed object store used by the Ceph distributed +storage system. This package provides a REST gateway to the +object store that aims to implement a superset of Amazon's S3 +service as well as the OpenStack Object Storage ("Swift") API. %if %{with ocf} %package resource-agents Summary: OCF-compliant resource agents for Ceph daemons Group: System Environment/Base License: LGPL-2.0 -Requires: %{name} = %{epoch}:%{version} +Requires: ceph-base = %{epoch}:%{version} Requires: resource-agents %description resource-agents Resource agents for monitoring and managing Ceph daemons @@ -287,6 +372,22 @@ under Open Cluster Framework (OCF) compliant resource managers such as Pacemaker. %endif +%package osd +Summary: Ceph Object Storage Daemon +Group: System Environment/Base +Requires: ceph-base = %{epoch}:%{version}-%{release} +# for sgdisk, used by ceph-disk +%if 0%{?fedora} || 0%{?rhel} +Requires: gdisk +%endif +%if 0%{?suse_version} +Requires: gptfdisk +%endif +%description osd +ceph-osd is the object storage daemon for the Ceph distributed file +system. It is responsible for storing objects on a local file system +and providing access to them over the network. + %package -n librados2 Summary: RADOS distributed object store client library Group: System Environment/Libraries @@ -310,6 +411,24 @@ Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} This package contains libraries and headers needed to develop programs that use RADOS object store. +%package -n librgw2 +Summary: RADOS gateway client library +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{epoch}:%{version}-%{release} +%description -n librgw2 +This package provides a library implementation of the RADOS gateway +(distributed object store with S3 and Swift personalities). + +%package -n librgw2-devel +Summary: RADOS gateway client library +Group: Development/Libraries +License: LGPL-2.0 +Requires: librados2 = %{epoch}:%{version}-%{release} +%description -n librgw2-devel +This package contains libraries and headers needed to develop programs +that use RADOS gateway client library. + %package -n python-rados Summary: Python libraries for the RADOS object store Group: System Environment/Libraries @@ -468,7 +587,7 @@ This package contains the Java libraries for the Ceph File System. %package selinux Summary: SELinux support for Ceph MON, OSD and MDS Group: System Environment/Base -Requires: %{name} +Requires: ceph-base = %{epoch}:%{version}-%{release} Requires: policycoreutils, libselinux-utils Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk Requires(postun): policycoreutils @@ -505,7 +624,6 @@ Summary: Compatibility package for Ceph headers Group: Development/Libraries License: LGPL-2.0 Obsoletes: ceph-devel -Requires: %{name} = %{epoch}:%{version}-%{release} Requires: librados2-devel = %{epoch}:%{version}-%{release} Requires: libradosstriper1-devel = %{epoch}:%{version}-%{release} Requires: librbd1-devel = %{epoch}:%{version}-%{release} @@ -540,11 +658,7 @@ python-cephfs instead. ################################################################################# %prep %setup -q -%if 0%{?fedora} || 0%{?rhel} -%patch0 -p1 -b .init -%endif -%patch1 -p1 -b .neon -%patch2 -p1 -b .cycles +%patch1 -p1 %build %if 0%{with cephfs_java} @@ -560,21 +674,15 @@ done RPM_OPT_FLAGS="$RPM_OPT_FLAGS --param ggc-min-expand=20 --param ggc-min-heapsize=32768" %endif export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` -%ifarch s390 -# Decrease debuginfo verbosity to reduce memory consumption even more -export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/-g /-g1 /'` -%endif - -# This is ONLY required to workaround XFS brokenness. When the -# following bug is fixed, you can remove this. -# https://bugzilla.redhat.com/show_bug.cgi?id=1319804 -export RPM_OPT_FLAGS="-D_GNU_SOURCE $RPM_OPT_FLAGS" - %{configure} CPPFLAGS="$java_inc" \ --prefix=/usr \ + --libexecdir=%{_libexecdir} \ --localstatedir=/var \ --sysconfdir=/etc \ +%if 0%{?rhel} && ! 0%{?centos} + --enable-subman \ +%endif %if 0%{?_with_systemd} --with-systemdsystemunitdir=%_unitdir \ %endif @@ -591,26 +699,21 @@ export RPM_OPT_FLAGS="-D_GNU_SOURCE $RPM_OPT_FLAGS" --with-selinux \ %endif --with-librocksdb-static=check \ -%if 0%{?rhel} || 0%{?fedora} - --with-systemd-libexec-dir=/usr/libexec/ceph \ - --with-rgw-user=root \ - --with-rgw-group=root \ -%endif -%if 0%{?suse_version} - --with-systemd-libexec-dir=/usr/lib/ceph/ \ - --with-rgw-user=wwwrun \ - --with-rgw-group=www \ -%endif --with-radosgw \ +%if %{without lttng} + --without-lttng \ + --without-babeltrace \ +%endif $CEPH_EXTRA_CONFIGURE_ARGS \ %{?_with_ocf} \ -%ifnarch s390 s390x %{?_with_tcmalloc} \ -%else - --without-tcmalloc \ -%endif CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" +%if %{with lowmem_builder} +%if 0%{?jobs} > 8 +%define _smp_mflags -j8 +%endif +%endif make %{?_smp_mflags} @@ -626,10 +729,23 @@ make %{?_smp_mflags} check-local %install make DESTDIR=$RPM_BUILD_ROOT install +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_example.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_fail_to_register.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_hangs.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_missing_version.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_generic.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_neon.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_sse3.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_jerasure_sse4.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_generic.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_neon.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_sse3.so +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_test_shec_sse4.so find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' -install -D src/rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap -install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap +install -D src/etc-rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap %if 0%{?fedora} || 0%{?rhel} install -m 0644 -D etc/sysconfig/ceph $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ceph %endif @@ -638,15 +754,23 @@ install -m 0644 -D etc/sysconfig/ceph $RPM_BUILD_ROOT%{_localstatedir}/adm/fillu %endif %if 0%{?_with_systemd} install -m 0644 -D systemd/ceph.tmpfiles.d $RPM_BUILD_ROOT%{_tmpfilesdir}/ceph-common.conf + install -m 0644 -D systemd/rbdmap.service $RPM_BUILD_ROOT%{_unitdir}/rbdmap.service install -m 0644 -D systemd/ceph-osd@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-osd@.service install -m 0644 -D systemd/ceph-mon@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-mon@.service install -m 0644 -D systemd/ceph-create-keys@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-create-keys@.service install -m 0644 -D systemd/ceph-mds@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-mds@.service install -m 0644 -D systemd/ceph-radosgw@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-radosgw@.service + install -m 0644 -D systemd/ceph-rbd-mirror@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-rbd-mirror@.service install -m 0644 -D systemd/ceph.target $RPM_BUILD_ROOT%{_unitdir}/ceph.target + install -m 0644 -D systemd/ceph-osd.target $RPM_BUILD_ROOT%{_unitdir}/ceph-osd.target + install -m 0644 -D systemd/ceph-mon.target $RPM_BUILD_ROOT%{_unitdir}/ceph-mon.target + install -m 0644 -D systemd/ceph-mds.target $RPM_BUILD_ROOT%{_unitdir}/ceph-mds.target + install -m 0644 -D systemd/ceph-radosgw.target $RPM_BUILD_ROOT%{_unitdir}/ceph-radosgw.target + install -m 0644 -D systemd/ceph-rbd-mirror.target $RPM_BUILD_ROOT%{_unitdir}/ceph-rbd-mirror.target install -m 0644 -D systemd/ceph-disk@.service $RPM_BUILD_ROOT%{_unitdir}/ceph-disk@.service install -m 0755 -D systemd/ceph $RPM_BUILD_ROOT%{_sbindir}/rcceph %else + install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph install -D src/init-radosgw $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw ln -sf ../../etc/init.d/ceph %{buildroot}/%{_sbindir}/rcceph @@ -697,7 +821,81 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/bootstrap-rgw %clean rm -rf $RPM_BUILD_ROOT -%pre +################################################################################# +# files and systemd scriptlets +################################################################################# +%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-run +%{_bindir}/ceph-detect-init +%{_bindir}/ceph-client-debug +%{_bindir}/cephfs +%if 0%{?_with_systemd} +%{_unitdir}/ceph-create-keys@.service +%else +%{_initrddir}/ceph +%endif +%{_sbindir}/ceph-create-keys +%{_sbindir}/rcceph +%if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} +%{_sbindir}/mount.ceph +%else +/sbin/mount.ceph +%endif +%dir %{_libexecdir}/ceph +%{_libexecdir}/ceph/ceph_common.sh +%dir %{_libdir}/rados-classes +%{_libdir}/rados-classes/* +%dir %{_libdir}/ceph +%dir %{_libdir}/ceph/erasure-code +%{_libdir}/ceph/erasure-code/libec_*.so* +%dir %{_libdir}/ceph/compressor +%{_libdir}/ceph/compressor/libceph_*.so* +%if %{with lttng} +%{_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 +%endif +%if 0%{?suse_version} +%{_localstatedir}/adm/fillup-templates/sysconfig.* +%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon +%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds +%endif +%{_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-run.8* +%{_mandir}/man8/crushtool.8* +%{_mandir}/man8/osdmaptool.8* +%{_mandir}/man8/monmaptool.8* +%{_mandir}/man8/cephfs.8* +%{_mandir}/man8/mount.ceph.8* +#set up placeholder directories +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw +%if ! 0%{?_with_systemd} +%attr(770,ceph,ceph) %dir %{_localstatedir}/run/ceph +%endif + +%pre base %if 0%{?_with_systemd} %if 0%{?suse_version} # service_add_pre and friends don't work with parameterized systemd service @@ -707,8 +905,7 @@ rm -rf $RPM_BUILD_ROOT %endif %endif - -%post +%post base /sbin/ldconfig %if 0%{?_with_systemd} %if 0%{?suse_version} @@ -719,7 +916,7 @@ rm -rf $RPM_BUILD_ROOT /sbin/chkconfig --add ceph %endif -%preun +%preun base %if 0%{?_with_systemd} %if 0%{?suse_version} %service_del_preun ceph.target @@ -743,7 +940,7 @@ rm -rf $RPM_BUILD_ROOT %endif %endif -%postun +%postun base /sbin/ldconfig %if 0%{?_with_systemd} if [ $1 = 1 ] ; then @@ -765,122 +962,7 @@ rm -rf $RPM_BUILD_ROOT %endif ################################################################################# -# files -################################################################################# -%files -%defattr(-,root,root,-) -%docdir %{_docdir} -%dir %{_docdir}/ceph -%{_docdir}/ceph/sample.ceph.conf -%{_docdir}/ceph/sample.fetch_config -%{_bindir}/cephfs -%{_bindir}/ceph-clsinfo -%{_bindir}/ceph-rest-api -%{python_sitelib}/ceph_rest_api.py* -%{_bindir}/crushtool -%{_bindir}/monmaptool -%{_bindir}/osdmaptool -%{_bindir}/ceph-run -%{_bindir}/ceph-mon -%{_bindir}/ceph-mds -%{_bindir}/ceph-objectstore-tool -%{_bindir}/ceph-osd -%{_bindir}/ceph-detect-init -%{_bindir}/librados-config -%{_bindir}/ceph-client-debug -%{_bindir}/cephfs-journal-tool -%{_bindir}/cephfs-table-tool -%{_bindir}/cephfs-data-scan -%{_bindir}/ceph-debugpack -%{_bindir}/ceph-coverage -%if 0%{?_with_systemd} -%{_unitdir}/ceph-mds@.service -%{_unitdir}/ceph-mon@.service -%{_unitdir}/ceph-create-keys@.service -%{_unitdir}/ceph-osd@.service -%{_unitdir}/ceph-radosgw@.service -%{_unitdir}/ceph-disk@.service -%{_unitdir}/ceph.target -%else -%{_initrddir}/ceph -%endif -%{_sbindir}/ceph-disk -%{_sbindir}/ceph-disk-udev -%{_sbindir}/ceph-create-keys -%{_sbindir}/rcceph -%if 0%{?rhel} >= 7 || 0%{?fedora} || 0%{?suse_version} -%{_sbindir}/mount.ceph -%else -/sbin/mount.ceph -%endif -%dir %{_libdir}/ceph -%{_libdir}/ceph/ceph_common.sh -%{_libexecdir}/ceph/ceph-osd-prestart.sh -%dir %{_libdir}/rados-classes -%{_libdir}/rados-classes/libcls_cephfs.so* -%{_libdir}/rados-classes/libcls_rbd.so* -%{_libdir}/rados-classes/libcls_hello.so* -%{_libdir}/rados-classes/libcls_numops.so* -%{_libdir}/rados-classes/libcls_rgw.so* -%{_libdir}/rados-classes/libcls_lock.so* -%{_libdir}/rados-classes/libcls_kvs.so* -%{_libdir}/rados-classes/libcls_refcount.so* -%{_libdir}/rados-classes/libcls_log.so* -%{_libdir}/rados-classes/libcls_replica_log.so* -%{_libdir}/rados-classes/libcls_statelog.so* -%{_libdir}/rados-classes/libcls_timeindex.so* -%{_libdir}/rados-classes/libcls_user.so* -%{_libdir}/rados-classes/libcls_version.so* -%dir %{_libdir}/ceph/erasure-code -%{_libdir}/ceph/erasure-code/libec_*.so* -%if 0%{?_with_lttng} -%{_libdir}/libos_tp.so* -%{_libdir}/libosd_tp.so* -%endif -%{_udevrulesdir}/60-ceph-partuuid-workaround.rules -%{_udevrulesdir}/95-ceph-osd.rules -%config %{_sysconfdir}/bash_completion.d/ceph -%config(noreplace) %{_sysconfdir}/logrotate.d/ceph -%if 0%{?fedora} || 0%{?rhel} -%config(noreplace) %{_sysconfdir}/sysconfig/ceph -%endif -%if 0%{?suse_version} -%{_localstatedir}/adm/fillup-templates/sysconfig.* -%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-mon -%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ceph-osd-mds -%endif -%{python_sitelib}/ceph_detect_init* -%{_mandir}/man8/ceph-deploy.8* -%{_mandir}/man8/ceph-detect-init.8* -%{_mandir}/man8/ceph-disk.8* -%{_mandir}/man8/ceph-create-keys.8* -%{_mandir}/man8/ceph-mon.8* -%{_mandir}/man8/ceph-mds.8* -%{_mandir}/man8/ceph-osd.8* -%{_mandir}/man8/ceph-run.8* -%{_mandir}/man8/ceph-rest-api.8* -%{_mandir}/man8/crushtool.8* -%{_mandir}/man8/osdmaptool.8* -%{_mandir}/man8/monmaptool.8* -%{_mandir}/man8/cephfs.8* -%{_mandir}/man8/mount.ceph.8* -%{_mandir}/man8/ceph-debugpack.8* -%{_mandir}/man8/ceph-clsinfo.8* -%{_mandir}/man8/librados-config.8* -#set up placeholder directories -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/tmp -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-osd -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mds -%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rgw -%if ! 0%{?_with_systemd} -%attr(770,ceph,ceph) %dir %{_localstatedir}/run/ceph -%endif - -################################################################################# -%files -n ceph-common +%files common %defattr(-,root,root,-) %{_bindir}/ceph %{_bindir}/ceph-authtool @@ -889,11 +971,15 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/ceph-rbdnamer %{_bindir}/ceph-syn %{_bindir}/ceph-crush-location +%{_bindir}/cephfs-data-scan +%{_bindir}/cephfs-journal-tool +%{_bindir}/cephfs-table-tool %{_bindir}/rados %{_bindir}/rbd %{_bindir}/rbd-replay %{_bindir}/rbd-replay-many -%if 0%{?_with_lttng} +%{_bindir}/rbdmap +%if %{with lttng} %{_bindir}/rbd-replay-prep %endif %{_bindir}/ceph-post-file @@ -910,54 +996,89 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/ceph.8* %{_mandir}/man8/rados.8* %{_mandir}/man8/rbd.8* +%{_mandir}/man8/rbdmap.8* %{_mandir}/man8/rbd-replay.8* %{_mandir}/man8/rbd-replay-many.8* %{_mandir}/man8/rbd-replay-prep.8* +%dir %{_datadir}/ceph/ %{_datadir}/ceph/known_hosts_drop.ceph.com %{_datadir}/ceph/id_dsa_drop.ceph.com %{_datadir}/ceph/id_dsa_drop.ceph.com.pub %dir %{_sysconfdir}/ceph/ -%dir %{_datarootdir}/ceph/ -%dir %{_libexecdir}/ceph/ %config %{_sysconfdir}/bash_completion.d/rados %config %{_sysconfdir}/bash_completion.d/rbd %config(noreplace) %{_sysconfdir}/ceph/rbdmap +%if 0%{?_with_systemd} +%{_unitdir}/rbdmap.service +%else %{_initrddir}/rbdmap +%endif %{python_sitelib}/ceph_argparse.py* %{python_sitelib}/ceph_daemon.py* %{_udevrulesdir}/50-rbd.rules %attr(3770,ceph,ceph) %dir %{_localstatedir}/log/ceph/ %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/ -%pre -n ceph-common -CEPH_GROUP_ID="" -CEPH_USER_ID="" +%pre common +CEPH_GROUP_ID=167 +CEPH_USER_ID=167 %if 0%{?rhel} || 0%{?fedora} -CEPH_GROUP_ID="-g 167" -CEPH_USER_ID="-u 167" -%endif -%if 0%{?rhel} || 0%{?fedora} -%{_sbindir}/groupadd ceph $CEPH_GROUP_ID -o -r 2>/dev/null || : -%{_sbindir}/useradd ceph $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2> /dev/null || : +%{_sbindir}/groupadd ceph -g $CEPH_GROUP_ID -o -r 2>/dev/null || : +%{_sbindir}/useradd ceph -u $CEPH_USER_ID -o -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : %endif %if 0%{?suse_version} -getent group ceph >/dev/null || groupadd -r ceph -getent passwd ceph >/dev/null || useradd -r -g ceph -d %{_localstatedir}/lib/ceph -s /sbin/nologin -c "Ceph daemons" ceph +if ! getent group ceph >/dev/null ; then + CEPH_GROUP_ID_OPTION="" + getent group $CEPH_GROUP_ID >/dev/null || CEPH_GROUP_ID_OPTION="-g $CEPH_GROUP_ID" + groupadd ceph $CEPH_GROUP_ID_OPTION -r 2>/dev/null || : +fi +if ! getent passwd ceph >/dev/null ; then + CEPH_USER_ID_OPTION="" + getent passwd $CEPH_USER_ID >/dev/null || CEPH_USER_ID_OPTION="-u $CEPH_USER_ID" + useradd ceph $CEPH_USER_ID_OPTION -r -g ceph -s /sbin/nologin -c "Ceph daemons" -d %{_localstatedir}/lib/ceph 2>/dev/null || : +fi %endif exit 0 -%post -n ceph-common +%post common %if 0%{?_with_systemd} -systemd-tmpfiles --create --prefix=/run/ceph +%tmpfiles_create %{_tmpfilesdir}/ceph-common.conf %endif -%postun -n ceph-common +%postun common # Package removal cleanup if [ "$1" -eq "0" ] ; then rm -rf /var/log/ceph rm -rf /etc/ceph fi +################################################################################# +%files mds +%{_bindir}/ceph-mds +%{_mandir}/man8/ceph-mds.8* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-mds@.service +%{_unitdir}/ceph-mds.target +%else +%{_initrddir}/ceph +%endif +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mds + +################################################################################# +%files mon +%{_bindir}/ceph-mon +%{_bindir}/ceph-rest-api +%{_mandir}/man8/ceph-mon.8* +%{_mandir}/man8/ceph-rest-api.8* +%{python_sitelib}/ceph_rest_api.py* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-mon@.service +%{_unitdir}/ceph-mon.target +%else +%{_initrddir}/ceph +%endif +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/mon + ################################################################################# %files fuse %defattr(-,root,root,-) @@ -975,17 +1096,36 @@ fi %{_bindir}/rbd-fuse %{_mandir}/man8/rbd-fuse.8* +################################################################################# +%files -n rbd-mirror +%defattr(-,root,root,-) +%{_bindir}/rbd-mirror +%{_mandir}/man8/rbd-mirror.8* +%if 0%{?_with_systemd} +%{_unitdir}/ceph-rbd-mirror@.service +%{_unitdir}/ceph-rbd-mirror.target +%endif + +################################################################################# +%files -n rbd-nbd +%defattr(-,root,root,-) +%{_bindir}/rbd-nbd +%{_mandir}/man8/rbd-nbd.8* + ################################################################################# %files radosgw %defattr(-,root,root,-) %{_bindir}/radosgw %{_bindir}/radosgw-admin +%{_bindir}/radosgw-token %{_bindir}/radosgw-object-expirer %{_mandir}/man8/radosgw.8* %{_mandir}/man8/radosgw-admin.8* %config %{_sysconfdir}/bash_completion.d/radosgw-admin %dir %{_localstatedir}/lib/ceph/radosgw %if 0%{?_with_systemd} +%{_unitdir}/ceph-radosgw@.service +%{_unitdir}/ceph-radosgw.target %else %{_initrddir}/ceph-radosgw %{_sbindir}/rcceph-radosgw @@ -1035,21 +1175,62 @@ fi fi %endif +################################################################################# +%files osd +%{_bindir}/ceph-clsinfo +%{_bindir}/ceph-bluefs-tool +%{_bindir}/ceph-objectstore-tool +%{_bindir}/ceph-osd +%{_sbindir}/ceph-disk +%{_sbindir}/ceph-disk-udev +%{_libexecdir}/ceph/ceph-osd-prestart.sh +%{_udevrulesdir}/60-ceph-partuuid-workaround.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} +/etc/cron.hourly/subman +%endif +%if 0%{?_with_systemd} +%{_unitdir}/ceph-osd@.service +%{_unitdir}/ceph-osd.target +%{_unitdir}/ceph-disk@.service +%else +%{_initrddir}/ceph +%endif +%attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd + ################################################################################# %if %{with ocf} + %files resource-agents %defattr(0755,root,root,-) -%dir /usr/lib/ocf -%dir /usr/lib/ocf/resource.d -%dir /usr/lib/ocf/resource.d/ceph -/usr/lib/ocf/resource.d/%{name}/* +# N.B. src/ocf/Makefile.am uses $(prefix)/lib +%dir %{_prefix}/lib/ocf +%dir %{_prefix}/lib/ocf/resource.d +%dir %{_prefix}/lib/ocf/resource.d/ceph +%if 0%{_with_systemd} +%exclude %{_prefix}/lib/ocf/resource.d/ceph/ceph +%exclude %{_prefix}/lib/ocf/resource.d/ceph/mds +%exclude %{_prefix}/lib/ocf/resource.d/ceph/mon +%exclude %{_prefix}/lib/ocf/resource.d/ceph/osd +%endif +%if ! 0%{_with_systemd} +%{_prefix}/lib/ocf/resource.d/ceph/ceph +%{_prefix}/lib/ocf/resource.d/ceph/mds +%{_prefix}/lib/ocf/resource.d/ceph/mon +%{_prefix}/lib/ocf/resource.d/ceph/osd +%endif +%{_prefix}/lib/ocf/resource.d/ceph/rbd + %endif ################################################################################# %files -n librados2 %defattr(-,root,root,-) %{_libdir}/librados.so.* -%if 0%{?_with_lttng} +%if %{with lttng} %{_libdir}/librados_tp.so.* %endif @@ -1066,20 +1247,24 @@ fi %{_includedir}/rados/librados.h %{_includedir}/rados/librados.hpp %{_includedir}/rados/buffer.h +%{_includedir}/rados/buffer_fwd.h %{_includedir}/rados/page.h %{_includedir}/rados/crc32c.h %{_includedir}/rados/rados_types.h %{_includedir}/rados/rados_types.hpp %{_includedir}/rados/memory.h %{_libdir}/librados.so -%if 0%{?_with_lttng} +%if %{with lttng} %{_libdir}/librados_tp.so %endif +%{_bindir}/librados-config +%{_mandir}/man8/librados-config.8* ################################################################################# %files -n python-rados %defattr(-,root,root,-) -%{python_sitelib}/rados.py* +%{python_sitearch}/rados.so +%{python_sitearch}/rados-*.egg-info ################################################################################# %files -n libradosstriper1 @@ -1104,7 +1289,7 @@ fi %files -n librbd1 %defattr(-,root,root,-) %{_libdir}/librbd.so.* -%if 0%{?_with_lttng} +%if %{with lttng} %{_libdir}/librbd_tp.so.* %endif @@ -1124,14 +1309,34 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/features.h %{_libdir}/librbd.so -%if 0%{?_with_lttng} +%if %{with lttng} %{_libdir}/librbd_tp.so %endif +################################################################################# +%files -n librgw2 +%defattr(-,root,root,-) +%{_libdir}/librgw.so.* + +%post -n librgw2 +/sbin/ldconfig + +%postun -n librgw2 +/sbin/ldconfig + +################################################################################# +%files -n librgw2-devel +%defattr(-,root,root,-) +%dir %{_includedir}/rados +%{_includedir}/rados/librgw.h +%{_includedir}/rados/rgw_file.h +%{_libdir}/librgw.so + ################################################################################# %files -n python-rbd %defattr(-,root,root,-) -%{python_sitelib}/rbd.py* +%{python_sitearch}/rbd.so +%{python_sitearch}/rbd-*.egg-info ################################################################################# %files -n libcephfs1 @@ -1154,7 +1359,9 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 ################################################################################# %files -n python-cephfs %defattr(-,root,root,-) -%{python_sitelib}/cephfs.py* +%{python_sitearch}/cephfs.so +%{python_sitearch}/cephfs-*.egg-info +%{python_sitelib}/ceph_volume_client.py* ################################################################################# %files -n ceph-test @@ -1180,13 +1387,16 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %{_bindir}/ceph_smalliobenchdumb %{_bindir}/ceph_smalliobenchfs %{_bindir}/ceph_smalliobenchrbd -%{_bindir}/ceph_streamtest %{_bindir}/ceph_test_* +%{_bindir}/librgw_file* %{_bindir}/ceph_tpbench %{_bindir}/ceph_xattr_bench +%{_bindir}/ceph-coverage %{_bindir}/ceph-monstore-tool %{_bindir}/ceph-osdomap-tool %{_bindir}/ceph-kvstore-tool +%{_bindir}/ceph-debugpack +%{_mandir}/man8/ceph-debugpack.8* %dir %{_libdir}/ceph %{_libdir}/ceph/ceph-monstore-update-crush.sh @@ -1323,19 +1533,24 @@ exit 0 %files libs-compat # We need an empty %%files list for ceph-libs-compat, to tell rpmbuild to actually # build this meta package. +%endif ################################################################################# %files devel-compat # We need an empty %%files list for ceph-devel-compat, to tell rpmbuild to # actually build this meta package. -%endif ################################################################################# %files -n python-ceph-compat # We need an empty %%files list for python-ceph-compat, to tell rpmbuild to # actually build this meta package. + %changelog +* Fri Apr 22 2016 Boris Ranto - - +- Rebase to version 10.2.0 +- Disable erasure_codelib neon build + * Mon Apr 11 2016 Richard W.M. Jones - 1:9.2.0-5 - Fix large startup times of processes linking to -lrbd. Backport upstream commit 1c2831a2, fixes RHBZ#1319483. diff --git a/init-ceph.in-fedora.patch b/init-ceph.in-fedora.patch deleted file mode 100644 index ff741f3..0000000 --- a/init-ceph.in-fedora.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -up ceph-0.46/src/init-ceph.in.orig ceph-0.46/src/init-ceph.in ---- ceph-0.46/src/init-ceph.in.orig 2012-04-24 16:06:39.000000000 -0400 -+++ ceph-0.46/src/init-ceph.in 2012-05-09 16:41:36.500004052 -0400 -@@ -1,11 +1,11 @@ - #!/bin/sh - # Start/stop ceph daemons --# chkconfig: 2345 60 80 -+# chkconfig: - 60 80 - - ### BEGIN INIT INFO - # Provides: ceph --# Default-Start: 2 3 4 5 --# Default-Stop: 0 1 6 -+# Default-Start: -+# Default-Stop: - # Required-Start: $remote_fs $named $network $time - # Required-Stop: $remote_fs $named $network $time - # Short-Description: Start Ceph distributed file system daemons at boot time diff --git a/sources b/sources index 9d2438a..7543806 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f70361c9088e13962af295819c900445 ceph-9.2.0.tar.bz2 +0882c2620464a1b34de0957198a2dedb ceph-10.2.0.tar.gz