Bump the Epoch, we need to keep the latest stable, not development, ceph version in fedora

- Use the upstream spec file with the ceph-libs split
- Add libs-compat subpackage
- Use fedora in rhel 7 checks
- Obsolete libcephfs
- Depend on redhat-lsb-core for the initscript
This commit is contained in:
Boris Ranto 2014-08-15 23:07:34 +02:00
parent d1845800ed
commit 08b7207d61
10 changed files with 662 additions and 343 deletions

View File

@ -1,40 +0,0 @@
--- ceph-0.81/src/Makefile.in.orig 2014-07-02 09:07:44.888133273 -0400
+++ ceph-0.81/src/Makefile.in 2014-07-03 13:32:30.213133273 -0400
@@ -3875,6 +3875,7 @@
${WARN_IGNORED_QUALIFIERS} \
-Winit-self \
-Wpointer-arith \
+ -Wformat \
-Werror=format-security \
-fno-strict-aliasing \
-fsigned-char
@@ -4928,7 +4929,7 @@
@LINUX_TRUE@ceph_test_librbd_fsx_SOURCES = test/librbd/fsx.c
@LINUX_TRUE@nodist_EXTRA_ceph_test_librbd_fsx_SOURCES = dummy.cc # force c++ linking
@LINUX_TRUE@ceph_test_librbd_fsx_LDADD = $(LIBKRBD) $(LIBRBD) $(LIBRADOS)
-@LINUX_TRUE@ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS} -Wno-format
+@LINUX_TRUE@ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS}
ceph_test_cls_rbd_SOURCES = test/cls_rbd/test_cls_rbd.cc
ceph_test_cls_rbd_LDADD = $(LIBRADOS) libcls_rbd_client.la libcls_lock_client.la $(UNITTEST_LDADD) $(RADOS_TEST_LDADD)
ceph_test_cls_rbd_CXXFLAGS = $(UNITTEST_CXXFLAGS)
--- ceph-0.81/src/Makefile-env.am.orig 2014-07-02 09:23:02.126133273 -0400
+++ ceph-0.81/src/Makefile-env.am 2014-07-03 11:50:14.063133273 -0400
@@ -64,6 +64,7 @@
${WARN_IGNORED_QUALIFIERS} \
-Winit-self \
-Wpointer-arith \
+ -Wformat \
-Werror=format-security \
-fno-strict-aliasing \
-fsigned-char
--- ceph-0.81/src/test/Makefile.am.orig 2014-07-04 06:36:22.016099589 -0400
+++ ceph-0.81/src/test/Makefile.am 2014-07-04 06:37:26.156099589 -0400
@@ -642,7 +642,7 @@
ceph_test_librbd_fsx_SOURCES = test/librbd/fsx.c
nodist_EXTRA_ceph_test_librbd_fsx_SOURCES = dummy.cc # force c++ linking
ceph_test_librbd_fsx_LDADD = $(LIBKRBD) $(LIBRBD) $(LIBRADOS)
-ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS} -Wno-format
+ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS}
bin_DEBUGPROGRAMS += ceph_test_librbd_fsx
endif

View File

@ -1,14 +0,0 @@
--- ceph-0.81/configure.ac.orig 2014-07-04 10:00:39.193099589 -0400
+++ ceph-0.81/configure.ac 2014-07-04 10:03:54.739099589 -0400
@@ -425,9 +425,9 @@
# the search path.
AS_IF([test "x$with_debug" = "xyes"], [
dir='/usr/share/java'
- junit4_jar=`find $dir -name junit4.jar | head -n 1`
+ junit4_jar=`find $dir -name junit.jar | head -n 1`
AS_IF([test -r "$junit4_jar"], [
- EXTRA_CLASSPATH_JAR=`dirname $junit4_jar`/junit4.jar
+ EXTRA_CLASSPATH_JAR=`dirname $junit4_jar`/junit.jar
AC_SUBST(EXTRA_CLASSPATH_JAR)
[have_junit4=1]], [
AC_MSG_NOTICE([Cannot find junit4.jar (apt-get install junit4)])

View File

@ -1,11 +0,0 @@
--- ceph-0.81/src/test/librbd/fsx.c.orig 2014-07-04 07:23:03.485099589 -0400
+++ ceph-0.81/src/test/librbd/fsx.c 2014-07-04 08:11:04.208099589 -0400
@@ -1360,7 +1360,7 @@
int ret, fd;
struct rbd_ctx cur_ctx = RBD_CTX_INIT;
struct stat file_info;
- char *good_buf, *temp_buf;
+ char *good_buf, *temp_buf = NULL;
clone_imagename(imagename, sizeof(imagename), clonenum);
if ((ret = ops->open(imagename, &cur_ctx)) < 0) {

View File

@ -1,13 +0,0 @@
diff -urb ceph-0.51/configure.ac ceph-0.51b/configure.ac
--- ceph-0.51/configure.ac 2012-08-26 01:58:14.000000000 +0300
+++ ceph-0.51b/configure.ac 2012-09-24 09:19:20.791969694 +0300
@@ -17,6 +17,9 @@
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
+# fix automake problems in 1.12
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+
# Automake
AM_INIT_AUTOMAKE
AM_PROG_CC_C_O

View File

@ -1,31 +0,0 @@
From 69baa8948f2d922554e815c572d8339a4a197306 Mon Sep 17 00:00:00 2001
From: Ken Dreyer <ken.dreyer@inktank.com>
Date: Tue, 7 Jan 2014 21:51:14 -0700
Subject: [PATCH] Fedora only: fix sbin path
On Fedora, /sbin is a symbolic link to /usr/sbin. Install all the sbin
binaries into the /usr/sbin location.
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
---
src/Makefile-env.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile-env.am b/src/Makefile-env.am
index 9bc6ee7..d02f034 100644
--- a/src/Makefile-env.am
+++ b/src/Makefile-env.am
@@ -26,8 +26,8 @@ bin_DEBUGPROGRAMS =
# like sbin_SCRIPTS but can be used to install to e.g. /usr/sbin
ceph_sbindir = $(sbindir)
-# certain things go straight into /sbin, though!
-su_sbindir = /sbin
+# On Fedora these things also go into /usr/sbin
+su_sbindir = $(sbindir)
# C/C++ tests to build will be appended to this
check_PROGRAMS =
--
1.8.3.1

View File

@ -0,0 +1,13 @@
--- ceph-0.80.5/src/perfglue/heap_profiler.cc.orig 2014-08-15 16:05:00.161794290 +0200
+++ ceph-0.80.5/src/perfglue/heap_profiler.cc 2014-08-15 16:05:04.691794305 +0200
@@ -12,8 +12,8 @@
*
*/
-#include <google/heap-profiler.h>
-#include <google/malloc_extension.h>
+#include <gperftools/heap-profiler.h>
+#include <gperftools/malloc_extension.h>
#include "heap_profiler.h"
#include "common/environment.h"
#include "common/LogClient.h"

View File

@ -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

View File

@ -0,0 +1,11 @@
--- ceph-0.80.5/src/test/Makefile.am.orig 2014-08-15 16:30:18.831799418 +0200
+++ ceph-0.80.5/src/test/Makefile.am 2014-08-15 16:23:17.758464663 +0200
@@ -642,7 +642,7 @@ bin_DEBUGPROGRAMS += ceph_test_librbd
if LINUX
ceph_test_librbd_fsx_SOURCES = test/librbd/fsx.c
ceph_test_librbd_fsx_LDADD = $(LIBRBD) $(LIBRADOS) -lm
-ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS} -Wno-format
+ceph_test_librbd_fsx_CFLAGS = ${AM_CFLAGS}
bin_DEBUGPROGRAMS += ceph_test_librbd_fsx
endif

852
ceph.spec
View File

@ -1,270 +1,466 @@
%bcond_with ocf
%global _hardened_build 1 %if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
Name: ceph %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Version: 0.81.0
Release: 6%{?dist}
Summary: User space components of the Ceph file system
License: LGPLv2
Group: System Environment/Base
URL: https://ceph.com/
Source: https://ceph.com/download/%{name}-0.81.tar.bz2
Patch0: ceph-init-fix.patch
# https://github.com/ceph/ceph/pull/1051
Patch1: ceph-fix-sbin-target.patch
BuildRequires: fuse-devel, libtool, libtool-ltdl-devel, boost-devel,
BuildRequires: libedit-devel, fuse-devel, git, perl, gdbm, libaio-devel,
# google-perftools is not available on these:
%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) )
%ifnarch ppc s390 s390x
BuildRequires: gperftools-devel
%endif %endif
#################################################################################
# common
#################################################################################
Name: ceph
Version: 0.80.5
Release: 1%{?dist}
Epoch: 1
Summary: User space components of the Ceph file system
License: GPL-2.0
Group: System Environment/Base
URL: http://ceph.com/
Source0: http://ceph.com/download/%{name}-%{version}.tar.bz2
Patch0: ceph-google-gperftools.patch
Patch1: ceph-no-format-security.patch
Requires: librbd1 = %{version}-%{release}
Requires: librados2 = %{version}-%{release}
Requires: libcephfs1 = %{version}-%{release}
Requires: ceph-common = %{version}-%{release}
Requires: python
Requires: python-argparse
Requires: python-ceph
Requires: python-requests
Requires: xfsprogs
Requires: cryptsetup
Requires: parted
Requires: util-linux
Requires: hdparm
# For initscript
Requires: redhat-lsb-core
Requires(post): binutils
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: boost-devel
BuildRequires: bzip2-devel
BuildRequires: libedit-devel
BuildRequires: perl
BuildRequires: gdbm
BuildRequires: pkgconfig
BuildRequires: python
BuildRequires: python-nose
BuildRequires: python-argparse
BuildRequires: libaio-devel
BuildRequires: libcurl-devel
BuildRequires: libxml2-devel
BuildRequires: libuuid-devel
BuildRequires: libblkid-devel >= 2.17
BuildRequires: libudev-devel
BuildRequires: leveldb-devel > 1.2
BuildRequires: xfsprogs-devel
BuildRequires: yasm
%if 0%{?rhel} || 0%{?centos} || 0%{?fedora}
BuildRequires: snappy-devel
%endif
#################################################################################
# specific
#################################################################################
%if ! 0%{?rhel}
BuildRequires: sharutils
%endif
%if 0%{defined suse_version}
%if 0%{?suse_version} > 1210
Requires: gptfdisk
BuildRequires: gperftools-devel
%else %else
%ifnarch ppc ppc64 s390 s390x Requires: scsirastools
BuildRequires: gperftools-devel BuildRequires: google-perftools-devel
%endif %endif
Recommends: logrotate
BuildRequires: %insserv_prereq
BuildRequires: mozilla-nss-devel
BuildRequires: keyutils-devel
BuildRequires: libatomic-ops-devel
BuildRequires: fdupes
%else
Requires: gdisk
BuildRequires: nss-devel
BuildRequires: keyutils-libs-devel
BuildRequires: libatomic_ops-devel
Requires: gdisk
Requires(post): chkconfig
Requires(preun):chkconfig
Requires(preun):initscripts
BuildRequires: gperftools-devel
%endif %endif
BuildRequires: cryptopp-devel, libatomic_ops-static, gcc-c++
BuildRequires: pkgconfig, libcurl-devel, keyutils-libs-devel
BuildRequires: gtkmm24-devel, gtk2-devel, libuuid, libuuid-devel
BuildRequires: leveldb-devel, snappy-devel, libblkid-devel
BuildRequires: libudev-devel
%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) )
BuildRequires: xfsprogs-devel
%endif
Requires(post): chkconfig, binutils, libedit
Requires(preun): chkconfig
Requires(preun): initscripts
Obsoletes: cephfs-java < 0.81.0-5
Obsoletes: ceph-test < 0.81.0-5
Obsoletes: libcephfs_jni1 < 0.81.0-5
Obsoletes: python-ceph < 0.81.0-5
Obsoletes: rest-bench < 0.81.0-5
%description %description
Ceph is a distributed network file system designed to provide excellent Ceph is a massively scalable, open-source, distributed
performance, reliability, and scalability. storage system that runs on commodity hardware and delivers object,
block and file system storage.
%package libs
Summary: Ceph libraries
Group: System Environment/Libraries
Obsoletes: librados2 < 0.81.0-5
Obsoletes: librbd1 < 0.81.0-5
%description libs
Common libraries for Ceph distributed network file system
%package libcephfs #################################################################################
Summary: Ceph libcephfs libraries # packages
Group: System Environment/Libraries #################################################################################
Obsoletes: libcephfs1 < 0.81.0-5 %package -n ceph-common
%description libcephfs Summary: Ceph Common
libcephfs library for Ceph distributed network file system Group: System Environment/Base
Requires: librbd1 = %{version}-%{release}
Requires: librados2 = %{version}-%{release}
Requires: python-ceph = %{version}-%{release}
Requires: python-requests
Requires: redhat-lsb-core
%description -n ceph-common
common utilities to mount and interact with a ceph storage cluster
%package fuse %package fuse
Summary: Ceph fuse-based client Summary: Ceph fuse-based client
Group: System Environment/Base Group: System Environment/Base
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}
BuildRequires: fuse-devel BuildRequires: fuse-devel
Obsoletes: rbd-fuse < 0.81.0-5 %description fuse
%description fuse
FUSE based client for Ceph distributed network file system FUSE based client for Ceph distributed network file system
%package devel %package -n rbd-fuse
Summary: Ceph headers Summary: Ceph fuse-based client
Group: Development/Libraries Group: System Environment/Base
License: LGPLv2 Requires: %{name}
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: librados2 = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: librbd1 = %{version}-%{release}
Requires: %{name}-libcephfs%{?_isa} = %{version}-%{release} BuildRequires: fuse-devel
%description -n rbd-fuse
FUSE based client to map Ceph rbd images to files
%package devel
Summary: Ceph headers
Group: Development/Libraries
License: LGPL-2.0
Requires: %{name} = %{version}-%{release}
Requires: librados2 = %{version}-%{release}
Requires: librbd1 = %{version}-%{release}
Requires: libcephfs1 = %{version}-%{release}
Requires: libcephfs_jni1 = %{version}-%{release}
%description devel %description devel
This package contains the headers needed to develop programs that use Ceph. This package contains libraries and headers needed to develop programs
that use Ceph.
%package radosgw %package radosgw
Summary: rados REST gateway Summary: Rados REST gateway
Group: Development/Libraries Group: Development/Libraries
Requires: mod_fcgid Requires: ceph-common = %{version}-%{release}
BuildRequires: fcgi-devel Requires: librados2 = %{version}-%{release}
BuildRequires: expat-devel %if 0%{defined suse_version}
BuildRequires: libexpat-devel
BuildRequires: FastCGI-devel
Requires: apache2-mod_fcgid
%else
BuildRequires: expat-devel
BuildRequires: fcgi-devel
%endif
%description radosgw %description radosgw
radosgw is an S3 HTTP REST gateway for the RADOS object store. It is radosgw 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 implemented as a FastCGI module using libfcgi, and can be used in
conjunction with any FastCGI capable web server. conjunction with any FastCGI capable web server.
%if %{with ocf}
%package resource-agents
Summary: OCF-compliant resource agents for Ceph daemons
Group: System Environment/Base
License: LGPL-2.0
Requires: %{name} = %{version}
Requires: resource-agents
%description resource-agents
Resource agents for monitoring and managing Ceph daemons
under Open Cluster Framework (OCF) compliant resource
managers such as Pacemaker.
%endif
%package -n librados2
Summary: RADOS distributed object store client library
Group: System Environment/Libraries
License: LGPL-2.0
%if 0%{?rhel} || 0%{?centos} || 0%{?fedora}
Obsoletes: ceph-libs < 0:0.81.0
%endif
%description -n librados2
RADOS is a reliable, autonomic distributed object storage cluster
developed as part of the Ceph distributed storage system. This is a
shared library allowing applications to access the distributed object
store using a simple file-like interface.
%package -n librbd1
Summary: RADOS block device client library
Group: System Environment/Libraries
License: LGPL-2.0
Requires: librados2 = %{version}-%{release}
%if 0%{?rhel} || 0%{?centos} || 0%{?fedora}
Obsoletes: ceph-libs < 0:0.81.0
%endif
%description -n librbd1
RBD is a block device striped across multiple distributed objects in
RADOS, a reliable, autonomic distributed object storage cluster
developed as part of the Ceph distributed storage system. This is a
shared library allowing applications to manage these block devices.
%package -n libcephfs1
Summary: Ceph distributed file system client library
Group: System Environment/Libraries
License: LGPL-2.0
%if 0%{?rhel} || 0%{?centos} || 0%{?fedora}
Obsoletes: ceph-libs < 0:0.81.0
Obsoletes: libcephfs
%endif
%description -n libcephfs1
Ceph is a distributed network file system designed to provide excellent
performance, reliability, and scalability. This is a shared library
allowing applications to access a Ceph distributed file system via a
POSIX-like interface.
%package -n python-ceph
Summary: Python libraries for the Ceph distributed filesystem
Group: System Environment/Libraries
License: LGPL-2.0
Requires: librados2 = %{version}-%{release}
Requires: librbd1 = %{version}-%{release}
Requires: python-flask
%if 0%{defined suse_version}
%py_requires
%endif
%description -n python-ceph
This package contains Python libraries for interacting with Cephs RADOS
object storage.
%package -n rest-bench
Summary: RESTful benchmark
Group: System Environment/Libraries
License: LGPL-2.0
Requires: ceph-common = %{version}-%{release}
%description -n rest-bench
RESTful bencher that can be used to benchmark radosgw performance.
%package -n ceph-test
Summary: Ceph benchmarks and test tools
Group: System Environment/Libraries
License: LGPL-2.0
Requires: librados2 = %{version}-%{release}
Requires: librbd1 = %{version}-%{release}
Requires: libcephfs1 = %{version}-%{release}
%description -n ceph-test
This package contains Ceph benchmarks and test tools.
%package -n libcephfs_jni1
Summary: Java Native Interface library for CephFS Java bindings.
Group: System Environment/Libraries
License: LGPL-2.0
Requires: java
Requires: libcephfs1 = %{version}-%{release}
BuildRequires: java-devel
%description -n libcephfs_jni1
This package contains the Java Native Interface library for CephFS Java
bindings.
%package -n cephfs-java
Summary: Java libraries for the Ceph File System.
Group: System Environment/Libraries
License: LGPL-2.0
Requires: java
Requires: libcephfs_jni1 = %{version}-%{release}
BuildRequires: java-devel
Requires: junit >= 4.0
BuildRequires: junit >= 4.0
%description -n cephfs-java
This package contains the Java libraries for the Ceph File System.
%package libs-compat
Summary: Meta package to include ceph libraries.
Group: System Environment/Libraries
License: LGPL-2.0
Obsoletes: ceph-libs < 0:0.81.0
Requires: librados2 = %{version}-%{release}
Requires: librbd1 = %{version}-%{release}
Requires: libcephfs1 = %{version}-%{release}
Provides: ceph-libs
%description libs-compat
This is a meta package, that pulls in librados2, librbd1 and libcephfs1. It
is included for backwards compatibility with distributions that depend on the
former ceph-libs package, which is now split up into these three subpackages.
Packages still depending on ceph-libs should be fixed to depend on librados2,
librbd1 or libcephfs1 instead.
%if 0%{?opensuse} || 0%{?suse_version}
%debug_package
%endif
#################################################################################
# common
#################################################################################
%prep %prep
%setup -q -n ceph-0.81 %setup -q
%patch0 -p1 -b .init %patch0 -p1
%patch1 -p1 %patch1 -p1
%build %build
# Find jni.h
for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do
[ -d $i ] && java_inc="$java_inc -I$i"
done
./autogen.sh ./autogen.sh
MY_CONF_OPT=""
%ifarch armv5tel MY_CONF_OPT="$MY_CONF_OPT --with-radosgw"
# libatomic_ops does not have correct asm for ARMv5tel
EXTRA_CFLAGS="-DAO_USE_PTHREAD_DEFS" export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'`
%endif
%ifarch %{arm} %{configure} CPPFLAGS="$java_inc" \
# libatomic_ops seems to fallback on some pthread implementation on ARM --prefix=/usr \
EXTRA_LDFLAGS="-lpthread" --localstatedir=/var \
--sysconfdir=/etc \
--docdir=%{_docdir}/ceph \
--with-nss \
--without-cryptopp \
--with-rest-bench \
--with-debug \
--enable-cephfs-java \
$MY_CONF_OPT \
%{?_with_ocf} \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS"
# fix bug in specific version of libedit-devel
%if 0%{defined suse_version}
sed -i -e "s/-lcurses/-lncurses/g" Makefile
sed -i -e "s/-lcurses/-lncurses/g" src/Makefile
sed -i -e "s/-lcurses/-lncurses/g" man/Makefile
sed -i -e "s/-lcurses/-lncurses/g" src/ocf/Makefile
sed -i -e "s/-lcurses/-lncurses/g" src/java/Makefile
%endif %endif
%{configure} --prefix=%{_prefix} --sbindir=%{_sbindir} \ make %{_smp_mflags}
--localstatedir=%{_localstatedir} --sysconfdir=%{_sysconfdir} \
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
--without-libxfs \
%endif
%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) )
%ifarch ppc s390 s390x
--without-tcmalloc \
%endif
%else
%ifarch ppc ppc64 s390 s390x
--without-tcmalloc \
%endif
%endif
--with-system-leveldb --without-hadoop --with-radosgw --with-gtk2 \
CFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS -fvisibility-inlines-hidden" \
LDFLAGS="$EXTRA_LDFLAGS"
V=1 make %{?_smp_mflags}
%install %install
make install DESTDIR=$RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install
find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';'
install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph
chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf install -D src/init-radosgw.sysv $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw
rm -rf __tmp_docs ; mkdir __tmp_docs install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap
mv $RPM_BUILD_ROOT%{_docdir}/ceph/* __tmp_docs install -D src/rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
ln -sf ../../etc/init.d/ceph %{buildroot}/%{_sbindir}/rcceph
ln -sf ../../etc/init.d/ceph-radosgw %{buildroot}/%{_sbindir}/rcceph-radosgw
install -m 0644 -D src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph install -m 0644 -D src/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/ceph
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/tmp/ install -m 0644 -D src/rgw/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/radosgw
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/ chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/stat chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.fetch_config
# udev rules
%if 0%{?rhel} >= 7 || 0%{?fedora}
install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT/usr/lib/udev/rules.d/50-rbd.rules
install -m 0644 -D udev/60-ceph-partuuid-workaround.rules $RPM_BUILD_ROOT/usr/lib/udev/rules.d/60-ceph-partuuid-workaround.rules
%else
install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT/lib/udev/rules.d/50-rbd.rules
install -m 0644 -D udev/60-ceph-partuuid-workaround.rules $RPM_BUILD_ROOT/lib/udev/rules.d/60-ceph-partuuid-workaround.rules
%endif
%if (0%{?rhel} && 0%{?rhel} < 7)
install -m 0644 -D udev/95-ceph-osd-alt.rules $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules
%else
install -m 0644 -D udev/95-ceph-osd.rules $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules
%endif
%if 0%{?rhel} >= 7 || 0%{?fedora}
mv $RPM_BUILD_ROOT/lib/udev/rules.d/95-ceph-osd.rules $RPM_BUILD_ROOT/usr/lib/udev/rules.d/95-ceph-osd.rules
mv $RPM_BUILD_ROOT/sbin/mkcephfs $RPM_BUILD_ROOT/usr/sbin/mkcephfs
mv $RPM_BUILD_ROOT/sbin/mount.ceph $RPM_BUILD_ROOT/usr/sbin/mount.ceph
mv $RPM_BUILD_ROOT/sbin/mount.fuse.ceph $RPM_BUILD_ROOT/usr/sbin/mount.fuse.ceph
%endif
#set up placeholder directories
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ceph mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ceph
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/ceph
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/tmp
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/mon
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/osd
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/mds
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/bootstrap-osd
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/bootstrap-mds
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/radosgw
%if %{defined suse_version}
# Fedora seems to have some problems with this macro, use it only on SUSE
%fdupes -s $RPM_BUILD_ROOT/%{python_sitelib}
%fdupes %buildroot
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%post %post
/sbin/ldconfig
/sbin/chkconfig --add ceph /sbin/chkconfig --add ceph
mkdir -p %{_localstatedir}/run/ceph/
%preun %preun
%if %{defined suse_version}
%stop_on_removal ceph
%endif
if [ $1 = 0 ] ; then if [ $1 = 0 ] ; then
/sbin/service ceph stop >/dev/null 2>&1 /sbin/service ceph stop >/dev/null 2>&1
/sbin/chkconfig --del ceph /sbin/chkconfig --del ceph
fi fi
%postun %postun
if [ "$1" -ge "1" ] ; then /sbin/ldconfig
/sbin/service ceph condrestart >/dev/null 2>&1 || : %if %{defined suse_version}
fi %insserv_cleanup
%endif
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%post libcephfs -p /sbin/ldconfig
%postun libcephfs -p /sbin/ldconfig
#################################################################################
# files
#################################################################################
%files %files
%doc README COPYING __tmp_docs/sample* %defattr(-,root,root,-)
%dir %{_sysconfdir}/ceph %docdir %{_docdir}
%{_bindir}/ceph %dir %{_docdir}/ceph
%{_docdir}/ceph/sample.ceph.conf
%{_docdir}/ceph/sample.fetch_config
%{_bindir}/cephfs %{_bindir}/cephfs
%{_bindir}/ceph-conf
%{_bindir}/ceph-clsinfo %{_bindir}/ceph-clsinfo
%{_bindir}/ceph_filestore_tool %{_bindir}/ceph-rest-api
%{_bindir}/crushtool %{_bindir}/crushtool
%{_bindir}/monmaptool %{_bindir}/monmaptool
%{_bindir}/osdmaptool %{_bindir}/osdmaptool
%{_bindir}/ceph-authtool
%{_bindir}/ceph-brag
%{_bindir}/ceph-crush-location
%{_bindir}/ceph-syn
%{_bindir}/ceph-run %{_bindir}/ceph-run
%{_bindir}/ceph-mon %{_bindir}/ceph-mon
%{_bindir}/ceph-mds %{_bindir}/ceph-mds
%{_bindir}/ceph-osd %{_bindir}/ceph-osd
%{_bindir}/ceph-rbdnamer %{_bindir}/ceph-rbdnamer
%{_bindir}/rados %{_bindir}/librados-config
%{_bindir}/rbd %{_bindir}/ceph-client-debug
%{_bindir}/ceph-debugpack %{_bindir}/ceph-debugpack
%{_bindir}/ceph-coverage %{_bindir}/ceph-coverage
%{_bindir}/ceph-dencoder
%{_bindir}/ceph_filestore_dump
%{_bindir}/ceph_mon_store_converter %{_bindir}/ceph_mon_store_converter
%{_bindir}/ceph-post-file
%{_bindir}/ceph-rest-api
%{_initrddir}/ceph %{_initrddir}/ceph
%{_sbindir}/mount.ceph %{_sbindir}/ceph-disk
%{_sbindir}/ceph-disk-activate %{_sbindir}/ceph-disk-activate
%{_sbindir}/ceph-disk-prepare %{_sbindir}/ceph-disk-prepare
%{_sbindir}/ceph-create-keys
%{_sbindir}/ceph-disk
%{_sbindir}/ceph-disk-udev %{_sbindir}/ceph-disk-udev
%{_libdir}/ceph %{_sbindir}/ceph-create-keys
%exclude %{_libdir}/ceph/erasure-code %{_sbindir}/rcceph
%config(noreplace) %{_sysconfdir}/logrotate.d/ceph %{_sbindir}/mkcephfs
%config(noreplace) %{_sysconfdir}/bash_completion.d/rados %if 0%{?rhel} >= 7 || 0%{?fedora}
%config(noreplace) %{_sysconfdir}/bash_completion.d/ceph %{_sbindir}/mount.ceph
%config(noreplace) %{_sysconfdir}/bash_completion.d/rbd %else
%{_mandir}/man8/ceph-mon.8* /sbin/mount.ceph
%{_mandir}/man8/ceph-mds.8* %endif
%{_mandir}/man8/ceph-osd.8* %dir %{_libdir}/ceph
%{_mandir}/man8/ceph-run.8* %{_libdir}/ceph/ceph_common.sh
%{_mandir}/man8/ceph-syn.8*
%{_mandir}/man8/crushtool.8*
%{_mandir}/man8/osdmaptool.8*
%{_mandir}/man8/monmaptool.8*
%{_mandir}/man8/ceph-conf.8*
%{_mandir}/man8/ceph.8*
%{_mandir}/man8/cephfs.8*
%{_mandir}/man8/mount.ceph.8*
%{_mandir}/man8/radosgw.8*
%{_mandir}/man8/radosgw-admin.8*
%{_mandir}/man8/rados.8*
%{_mandir}/man8/rbd.8*
%{_mandir}/man8/ceph-authtool.8*
%{_mandir}/man8/ceph-debugpack.8*
%{_mandir}/man8/ceph-clsinfo.8*
%{_mandir}/man8/ceph-dencoder.8*
%{_mandir}/man8/ceph-rbdnamer.8*
%{_mandir}/man8/ceph-rest-api.8*
%{_mandir}/man8/ceph-post-file.8*
%{python_sitelib}/rados.py*
%{python_sitelib}/rbd.py*
%{python_sitelib}/cephfs.py*
%{python_sitelib}/ceph_argparse.py*
%{python_sitelib}/ceph_rest_api.py*
%dir %{_localstatedir}/lib/ceph/
%dir %{_localstatedir}/lib/ceph/tmp/
%dir %{_localstatedir}/log/ceph/
%{_datadir}/ceph/id_dsa_drop.ceph.com*
%{_datadir}/ceph/known_hosts_drop.ceph.com
%files libs
%doc COPYING
%{_libdir}/librados.so.*
%{_libdir}/librbd.so.*
%dir %{_libdir}/ceph/erasure-code
# Warning to future maintainers: Note that the libec_ and libcls_ unversioned
# shared objects are included here in the libs subpackage. These files are
# plugins that Ceph loads with dlopen(). They belong here in -libs, not
# -devel.
# N.B. in 0.80.1 the `make install` installs the erasure-code shared objects
# in usr/lib*/ceph/erasure-code/...
%{_libdir}/ceph/erasure-code/libec_example.so*
%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
%{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
%{_libdir}/ceph/erasure-code/libec_hangs.so*
%{_libdir}/ceph/erasure-code/libec_jerasure.so*
%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
%dir %{_libdir}/rados-classes %dir %{_libdir}/rados-classes
# See warning note above about unversioned shared objects here. These belong
# here in -libs (not -devel).
%{_libdir}/rados-classes/libcls_hello.so*
%{_libdir}/rados-classes/libcls_rbd.so* %{_libdir}/rados-classes/libcls_rbd.so*
%{_libdir}/rados-classes/libcls_hello.so*
%{_libdir}/rados-classes/libcls_rgw.so* %{_libdir}/rados-classes/libcls_rgw.so*
%{_libdir}/rados-classes/libcls_lock.so* %{_libdir}/rados-classes/libcls_lock.so*
%{_libdir}/rados-classes/libcls_kvs.so* %{_libdir}/rados-classes/libcls_kvs.so*
@ -272,51 +468,277 @@ fi
%{_libdir}/rados-classes/libcls_log.so* %{_libdir}/rados-classes/libcls_log.so*
%{_libdir}/rados-classes/libcls_replica_log.so* %{_libdir}/rados-classes/libcls_replica_log.so*
%{_libdir}/rados-classes/libcls_statelog.so* %{_libdir}/rados-classes/libcls_statelog.so*
%{_libdir}/rados-classes/libcls_version.so*
%{_libdir}/rados-classes/libcls_user.so* %{_libdir}/rados-classes/libcls_user.so*
%{_libdir}/rados-classes/libcls_version.so*
%dir %{_libdir}/ceph/erasure-code
%{_libdir}/ceph/erasure-code/libec_example.so*
%{_libdir}/ceph/erasure-code/libec_fail_to_initialize.so*
%{_libdir}/ceph/erasure-code/libec_fail_to_register.so*
%{_libdir}/ceph/erasure-code/libec_hangs.so*
%{_libdir}/ceph/erasure-code/libec_jerasure*.so*
%{_libdir}/ceph/erasure-code/libec_test_jerasure*.so*
%{_libdir}/ceph/erasure-code/libec_missing_entry_point.so*
%if 0%{?rhel} >= 7 || 0%{?fedora}
/usr/lib/udev/rules.d/60-ceph-partuuid-workaround.rules
/usr/lib/udev/rules.d/95-ceph-osd.rules
%else
/lib/udev/rules.d/60-ceph-partuuid-workaround.rules
/lib/udev/rules.d/95-ceph-osd.rules
%endif
%config %{_sysconfdir}/bash_completion.d/ceph
%config(noreplace) %{_sysconfdir}/logrotate.d/ceph
%config(noreplace) %{_sysconfdir}/logrotate.d/radosgw
%{_mandir}/man8/ceph-mon.8*
%{_mandir}/man8/ceph-mds.8*
%{_mandir}/man8/ceph-osd.8*
%{_mandir}/man8/mkcephfs.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-rbdnamer.8*
%{_mandir}/man8/ceph-debugpack.8*
%{_mandir}/man8/ceph-clsinfo.8.gz
%{_mandir}/man8/librados-config.8.gz
#set up placeholder directories
%dir %{_localstatedir}/lib/ceph/
%dir %{_localstatedir}/lib/ceph/tmp
%dir %{_localstatedir}/lib/ceph/mon
%dir %{_localstatedir}/lib/ceph/osd
%dir %{_localstatedir}/lib/ceph/mds
%dir %{_localstatedir}/lib/ceph/bootstrap-osd
%dir %{_localstatedir}/lib/ceph/bootstrap-mds
%ghost %dir %{_localstatedir}/run/ceph/
%files libcephfs #################################################################################
%doc COPYING %files -n ceph-common
%{_libdir}/libcephfs.so.* %defattr(-,root,root,-)
%{_bindir}/ceph
%{_bindir}/ceph-authtool
%{_bindir}/ceph-conf
%{_bindir}/ceph-dencoder
%{_bindir}/ceph-syn
%{_bindir}/ceph-crush-location
%{_bindir}/rados
%{_bindir}/rbd
%{_bindir}/ceph-post-file
%{_bindir}/ceph-brag
%{_mandir}/man8/ceph-authtool.8*
%{_mandir}/man8/ceph-conf.8*
%{_mandir}/man8/ceph-dencoder.8*
%{_mandir}/man8/ceph-syn.8*
%{_mandir}/man8/ceph-post-file.8*
%{_mandir}/man8/ceph.8*
%{_mandir}/man8/rados.8*
%{_mandir}/man8/rbd.8*
%{_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 %{_localstatedir}/log/ceph/
%config %{_sysconfdir}/bash_completion.d/rados
%config %{_sysconfdir}/bash_completion.d/rbd
%config(noreplace) %{_sysconfdir}/ceph/rbdmap
%{_initrddir}/rbdmap
%postun -n ceph-common
# Package removal cleanup
if [ "$1" -eq "0" ] ; then
rm -rf /var/log/ceph
rm -rf /etc/ceph
fi
#################################################################################
%files fuse %files fuse
%doc COPYING %defattr(-,root,root,-)
%{_bindir}/ceph-fuse %{_bindir}/ceph-fuse
%{_bindir}/rbd-fuse
%{_sbindir}/mount.fuse.ceph
%{_mandir}/man8/ceph-fuse.8* %{_mandir}/man8/ceph-fuse.8*
%if 0%{?rhel} >= 7 || 0%{?fedora}
%{_sbindir}/mount.fuse.ceph
%else
/sbin/mount.fuse.ceph
%endif
#################################################################################
%files -n rbd-fuse
%defattr(-,root,root,-)
%{_bindir}/rbd-fuse
%{_mandir}/man8/rbd-fuse.8* %{_mandir}/man8/rbd-fuse.8*
#################################################################################
%files devel %files devel
%doc COPYING %defattr(-,root,root,-)
%dir %{_includedir}/cephfs %dir %{_includedir}/cephfs
%{_includedir}/cephfs/libcephfs.h %{_includedir}/cephfs/libcephfs.h
%dir %{_includedir}/rados %dir %{_includedir}/rados
%{_includedir}/rados/memory.h
%{_includedir}/rados/librados.h %{_includedir}/rados/librados.h
%{_includedir}/rados/librados.hpp %{_includedir}/rados/librados.hpp
%{_includedir}/rados/rados_types.h
%{_includedir}/rados/rados_types.hpp
%{_includedir}/rados/buffer.h %{_includedir}/rados/buffer.h
%{_includedir}/rados/page.h %{_includedir}/rados/page.h
%{_includedir}/rados/crc32c.h %{_includedir}/rados/crc32c.h
%{_includedir}/rados/rados_types.h
%{_includedir}/rados/rados_types.hpp
%{_includedir}/rados/memory.h
%dir %{_includedir}/rbd %dir %{_includedir}/rbd
%{_includedir}/rbd/librbd.h %{_includedir}/rbd/librbd.h
%{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/librbd.hpp
%{_includedir}/rbd/features.h %{_includedir}/rbd/features.h
%{_libdir}/libcephfs.so %{_libdir}/libcephfs.so
%{_libdir}/librados.so
%{_libdir}/librbd.so %{_libdir}/librbd.so
%{_bindir}/librados-config %{_libdir}/librados.so
%{_mandir}/man8/librados-config.8* %{_libdir}/libcephfs_jni.so
#################################################################################
%files radosgw %files radosgw
%defattr(-,root,root,-)
%{_initrddir}/ceph-radosgw
%{_bindir}/radosgw %{_bindir}/radosgw
%{_bindir}/radosgw-admin %{_bindir}/radosgw-admin
%{_sysconfdir}/bash_completion.d/radosgw-admin %{_mandir}/man8/radosgw.8*
%{_mandir}/man8/radosgw-admin.8*
%{_sbindir}/rcceph-radosgw
%config %{_sysconfdir}/bash_completion.d/radosgw-admin
%dir %{_localstatedir}/log/radosgw/
%post radosgw
/sbin/ldconfig
%if %{defined suse_version}
%fillup_and_insserv -f -y ceph-radosgw
%endif
%preun radosgw
%if %{defined suse_version}
%stop_on_removal ceph-radosgw
%endif
%postun radosgw
/sbin/ldconfig
%if %{defined suse_version}
%restart_on_update ceph-radosgw
%insserv_cleanup
%endif
# Package removal cleanup
if [ "$1" -eq "0" ] ; then
rm -rf /var/log/radosgw
fi
#################################################################################
%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}/*
%endif
#################################################################################
%files -n librados2
%defattr(-,root,root,-)
%{_libdir}/librados.so.*
%post -n librados2
/sbin/ldconfig
%postun -n librados2
/sbin/ldconfig
#################################################################################
%files -n librbd1
%defattr(-,root,root,-)
%{_libdir}/librbd.so.*
%if 0%{?rhel} >= 7 || 0%{?fedora}
/usr/lib/udev/rules.d/50-rbd.rules
%else
/lib/udev/rules.d/50-rbd.rules
%endif
%post -n librbd1
/sbin/ldconfig
mkdir -p /usr/lib64/qemu/
ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1
%postun -n librbd1
/sbin/ldconfig
#################################################################################
%files -n libcephfs1
%defattr(-,root,root,-)
%{_libdir}/libcephfs.so.*
%post -n libcephfs1
/sbin/ldconfig
%postun -n libcephfs1
/sbin/ldconfig
#################################################################################
%files -n python-ceph
%defattr(-,root,root,-)
%{python_sitelib}/rados.py*
%{python_sitelib}/rbd.py*
%{python_sitelib}/cephfs.py*
%{python_sitelib}/ceph_argparse.py*
%{python_sitelib}/ceph_rest_api.py*
#################################################################################
%files -n rest-bench
%defattr(-,root,root,-)
%{_bindir}/rest-bench
#################################################################################
%files -n ceph-test
%defattr(-,root,root,-)
%{_bindir}/ceph_bench_log
%{_bindir}/ceph_dupstore
%{_bindir}/ceph_kvstorebench
%{_bindir}/ceph_multi_stress_watch
%{_bindir}/ceph_erasure_code
%{_bindir}/ceph_erasure_code_benchmark
%{_bindir}/ceph_omapbench
%{_bindir}/ceph_psim
%{_bindir}/ceph_radosacl
%{_bindir}/ceph_rgw_jsonparser
%{_bindir}/ceph_rgw_multiparser
%{_bindir}/ceph_scratchtool
%{_bindir}/ceph_scratchtoolpp
%{_bindir}/ceph_smalliobench
%{_bindir}/ceph_smalliobenchdumb
%{_bindir}/ceph_smalliobenchfs
%{_bindir}/ceph_smalliobenchrbd
%{_bindir}/ceph_filestore_dump
%{_bindir}/ceph_filestore_tool
%{_bindir}/ceph_streamtest
%{_bindir}/ceph_test_*
%{_bindir}/ceph_tpbench
%{_bindir}/ceph_xattr_bench
%{_bindir}/ceph-monstore-tool
%{_bindir}/ceph-osdomap-tool
%{_bindir}/ceph-kvstore-tool
%files -n libcephfs_jni1
%defattr(-,root,root,-)
%{_libdir}/libcephfs_jni.so.*
%files -n cephfs-java
%defattr(-,root,root,-)
%{_javadir}/libcephfs.jar
%files libs-compat
%changelog %changelog
* Fri Aug 15 2014 Boris Ranto <branto@redhat.com> - 1:0.80.5-1
- Bump the Epoch, we need to keep the latest stable, not development, ceph version in fedora
- Use the upstream spec file with the ceph-libs split
- Add libs-compat subpackage [1116546]
- use fedora in rhel 7 checks
- obsolete libcephfs [1116614]
- depend on redhat-lsb-core for the initscript [1108696]
* Wed Aug 13 2014 Kalev Lember <kalevlember@gmail.com> - 0.81.0-6 * Wed Aug 13 2014 Kalev Lember <kalevlember@gmail.com> - 0.81.0-6
- Add obsoletes to keep the upgrade path working (#1118510) - Add obsoletes to keep the upgrade path working (#1118510)

View File

@ -1 +1 @@
5020b63746ccbaa454aab09450ee7a43 ceph-0.81.tar.bz2 c57f6887f6097f95ad2c3b169a94f811 ceph-0.80.5.tar.bz2