diff --git a/ceph-0.81.0-Makefile.in.patch b/ceph-0.81.0-Makefile.in.patch deleted file mode 100644 index f5c7154..0000000 --- a/ceph-0.81.0-Makefile.in.patch +++ /dev/null @@ -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 - diff --git a/ceph-0.81.0-configure.ac.patch b/ceph-0.81.0-configure.ac.patch deleted file mode 100644 index 898b7c1..0000000 --- a/ceph-0.81.0-configure.ac.patch +++ /dev/null @@ -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)]) diff --git a/ceph-0.81.0-test-librbd-fsx.c.patch b/ceph-0.81.0-test-librbd-fsx.c.patch deleted file mode 100644 index 6cfa1b1..0000000 --- a/ceph-0.81.0-test-librbd-fsx.c.patch +++ /dev/null @@ -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) { diff --git a/ceph-build-support-for-automake-1.12.patch b/ceph-build-support-for-automake-1.12.patch deleted file mode 100644 index 2158b30..0000000 --- a/ceph-build-support-for-automake-1.12.patch +++ /dev/null @@ -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 diff --git a/ceph-fix-sbin-target.patch b/ceph-fix-sbin-target.patch deleted file mode 100644 index 07ee097..0000000 --- a/ceph-fix-sbin-target.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 69baa8948f2d922554e815c572d8339a4a197306 Mon Sep 17 00:00:00 2001 -From: Ken Dreyer -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 ---- - 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 - diff --git a/ceph-google-gperftools.patch b/ceph-google-gperftools.patch new file mode 100644 index 0000000..5c24871 --- /dev/null +++ b/ceph-google-gperftools.patch @@ -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 +-#include ++#include ++#include + #include "heap_profiler.h" + #include "common/environment.h" + #include "common/LogClient.h" diff --git a/ceph-init-fix.patch b/ceph-init-fix.patch deleted file mode 100644 index b4752be..0000000 --- a/ceph-init-fix.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/ceph-no-format-security.patch b/ceph-no-format-security.patch new file mode 100644 index 0000000..20cf90e --- /dev/null +++ b/ceph-no-format-security.patch @@ -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 + diff --git a/ceph.spec b/ceph.spec index 0d3c5d4..65b5c64 100644 --- a/ceph.spec +++ b/ceph.spec @@ -1,322 +1,744 @@ +%bcond_with ocf -%global _hardened_build 1 - -Name: ceph -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 +%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())")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif -%else -%ifnarch ppc ppc64 s390 s390x -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 + +################################################################################# +# 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 -Requires(post): chkconfig, binutils, libedit -Requires(preun): chkconfig -Requires(preun): initscripts +################################################################################# +# specific +################################################################################# +%if ! 0%{?rhel} +BuildRequires: sharutils +%endif -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 +%if 0%{defined suse_version} +%if 0%{?suse_version} > 1210 +Requires: gptfdisk +BuildRequires: gperftools-devel +%else +Requires: scsirastools +BuildRequires: google-perftools-devel +%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 %description -Ceph is a distributed network file system designed to provide excellent -performance, reliability, and scalability. - -%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 -Group: System Environment/Libraries -Obsoletes: libcephfs1 < 0.81.0-5 -%description libcephfs -libcephfs library for Ceph distributed network file system - -%package fuse -Summary: Ceph fuse-based client -Group: System Environment/Base -Requires: %{name}%{?_isa} = %{version}-%{release} -BuildRequires: fuse-devel -Obsoletes: rbd-fuse < 0.81.0-5 -%description fuse +Ceph is a massively scalable, open-source, distributed +storage system that runs on commodity hardware and delivers object, +block and file system storage. + + +################################################################################# +# packages +################################################################################# +%package -n ceph-common +Summary: Ceph Common +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 +Summary: Ceph fuse-based client +Group: System Environment/Base +Requires: %{name} +BuildRequires: fuse-devel +%description fuse FUSE based client for Ceph distributed network file system -%package devel -Summary: Ceph headers -Group: Development/Libraries -License: LGPLv2 -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -Requires: %{name}-libcephfs%{?_isa} = %{version}-%{release} +%package -n rbd-fuse +Summary: Ceph fuse-based client +Group: System Environment/Base +Requires: %{name} +Requires: librados2 = %{version}-%{release} +Requires: librbd1 = %{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 -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 -Summary: rados REST gateway -Group: Development/Libraries -Requires: mod_fcgid -BuildRequires: fcgi-devel -BuildRequires: expat-devel - +Summary: Rados REST gateway +Group: Development/Libraries +Requires: ceph-common = %{version}-%{release} +Requires: librados2 = %{version}-%{release} +%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 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 conjunction with any FastCGI capable web server. -%prep -%setup -q -n ceph-0.81 -%patch0 -p1 -b .init -%patch1 -p1 - -%build -./autogen.sh +%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 -%ifarch armv5tel -# libatomic_ops does not have correct asm for ARMv5tel -EXTRA_CFLAGS="-DAO_USE_PTHREAD_DEFS" +%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 -%ifarch %{arm} -# libatomic_ops seems to fallback on some pthread implementation on ARM -EXTRA_LDFLAGS="-lpthread" +%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 - -%{configure} --prefix=%{_prefix} --sbindir=%{_sbindir} \ ---localstatedir=%{_localstatedir} --sysconfdir=%{_sysconfdir} \ -%if ( 0%{?rhel} && 0%{?rhel} <= 6 ) ---without-libxfs \ +%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 -%if ( ! (0%{?rhel} && 0%{?rhel} <= 6 ) ) -%ifarch ppc s390 s390x ---without-tcmalloc \ +%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 -%else -%ifarch ppc ppc64 s390 s390x ---without-tcmalloc \ +%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 +%setup -q +%patch0 -p1 +%patch1 -p1 + +%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 +MY_CONF_OPT="" + +MY_CONF_OPT="$MY_CONF_OPT --with-radosgw" + +export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` + +%{configure} CPPFLAGS="$java_inc" \ + --prefix=/usr \ + --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 ---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} +make %{_smp_mflags} %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 "*.a" -exec rm -f {} ';' install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph -chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf -rm -rf __tmp_docs ; mkdir __tmp_docs -mv $RPM_BUILD_ROOT%{_docdir}/ceph/* __tmp_docs +install -D src/init-radosgw.sysv $RPM_BUILD_ROOT%{_initrddir}/ceph-radosgw +install -D src/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap +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 -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/ceph/tmp/ -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/ -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/ceph/stat +install -m 0644 -D src/rgw/logrotate.conf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/radosgw +chmod 0644 $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf +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}/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 +/sbin/ldconfig /sbin/chkconfig --add ceph +mkdir -p %{_localstatedir}/run/ceph/ %preun +%if %{defined suse_version} +%stop_on_removal ceph +%endif if [ $1 = 0 ] ; then /sbin/service ceph stop >/dev/null 2>&1 /sbin/chkconfig --del ceph fi %postun -if [ "$1" -ge "1" ] ; then - /sbin/service ceph condrestart >/dev/null 2>&1 || : -fi +/sbin/ldconfig +%if %{defined suse_version} +%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 -%doc README COPYING __tmp_docs/sample* -%dir %{_sysconfdir}/ceph -%{_bindir}/ceph +%defattr(-,root,root,-) +%docdir %{_docdir} +%dir %{_docdir}/ceph +%{_docdir}/ceph/sample.ceph.conf +%{_docdir}/ceph/sample.fetch_config %{_bindir}/cephfs -%{_bindir}/ceph-conf %{_bindir}/ceph-clsinfo -%{_bindir}/ceph_filestore_tool +%{_bindir}/ceph-rest-api %{_bindir}/crushtool %{_bindir}/monmaptool %{_bindir}/osdmaptool -%{_bindir}/ceph-authtool -%{_bindir}/ceph-brag -%{_bindir}/ceph-crush-location -%{_bindir}/ceph-syn %{_bindir}/ceph-run %{_bindir}/ceph-mon %{_bindir}/ceph-mds %{_bindir}/ceph-osd %{_bindir}/ceph-rbdnamer -%{_bindir}/rados -%{_bindir}/rbd +%{_bindir}/librados-config +%{_bindir}/ceph-client-debug %{_bindir}/ceph-debugpack %{_bindir}/ceph-coverage -%{_bindir}/ceph-dencoder -%{_bindir}/ceph_filestore_dump %{_bindir}/ceph_mon_store_converter -%{_bindir}/ceph-post-file -%{_bindir}/ceph-rest-api %{_initrddir}/ceph -%{_sbindir}/mount.ceph +%{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-activate %{_sbindir}/ceph-disk-prepare -%{_sbindir}/ceph-create-keys -%{_sbindir}/ceph-disk %{_sbindir}/ceph-disk-udev -%{_libdir}/ceph -%exclude %{_libdir}/ceph/erasure-code +%{_sbindir}/ceph-create-keys +%{_sbindir}/rcceph +%{_sbindir}/mkcephfs +%if 0%{?rhel} >= 7 || 0%{?fedora} +%{_sbindir}/mount.ceph +%else +/sbin/mount.ceph +%endif +%dir %{_libdir}/ceph +%{_libdir}/ceph/ceph_common.sh +%dir %{_libdir}/rados-classes +%{_libdir}/rados-classes/libcls_rbd.so* +%{_libdir}/rados-classes/libcls_hello.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_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}/bash_completion.d/rados -%config(noreplace) %{_sysconfdir}/bash_completion.d/ceph -%config(noreplace) %{_sysconfdir}/bash_completion.d/rbd +%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-syn.8* +%{_mandir}/man8/ceph-rest-api.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-rbdnamer.8* %{_mandir}/man8/ceph-debugpack.8* -%{_mandir}/man8/ceph-clsinfo.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 -n ceph-common +%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-rbdnamer.8* -%{_mandir}/man8/ceph-rest-api.8* +%{_mandir}/man8/ceph-syn.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* +%{_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 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 -# 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_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_version.so* -%{_libdir}/rados-classes/libcls_user.so* - -%files libcephfs -%doc COPYING -%{_libdir}/libcephfs.so.* - +################################################################################# %files fuse -%doc COPYING +%defattr(-,root,root,-) %{_bindir}/ceph-fuse -%{_bindir}/rbd-fuse -%{_sbindir}/mount.fuse.ceph %{_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* +################################################################################# %files devel -%doc COPYING +%defattr(-,root,root,-) %dir %{_includedir}/cephfs %{_includedir}/cephfs/libcephfs.h %dir %{_includedir}/rados -%{_includedir}/rados/memory.h %{_includedir}/rados/librados.h %{_includedir}/rados/librados.hpp -%{_includedir}/rados/rados_types.h -%{_includedir}/rados/rados_types.hpp %{_includedir}/rados/buffer.h %{_includedir}/rados/page.h %{_includedir}/rados/crc32c.h +%{_includedir}/rados/rados_types.h +%{_includedir}/rados/rados_types.hpp +%{_includedir}/rados/memory.h %dir %{_includedir}/rbd %{_includedir}/rbd/librbd.h %{_includedir}/rbd/librbd.hpp %{_includedir}/rbd/features.h %{_libdir}/libcephfs.so -%{_libdir}/librados.so %{_libdir}/librbd.so -%{_bindir}/librados-config -%{_mandir}/man8/librados-config.8* - +%{_libdir}/librados.so +%{_libdir}/libcephfs_jni.so +################################################################################# %files radosgw +%defattr(-,root,root,-) +%{_initrddir}/ceph-radosgw %{_bindir}/radosgw %{_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 +* Fri Aug 15 2014 Boris Ranto - 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 - 0.81.0-6 - Add obsoletes to keep the upgrade path working (#1118510) diff --git a/sources b/sources index f7ce38d..ae72eff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5020b63746ccbaa454aab09450ee7a43 ceph-0.81.tar.bz2 +c57f6887f6097f95ad2c3b169a94f811 ceph-0.80.5.tar.bz2