From e44806fede4f477957ea0b0e428c4b00d2e8ef31 Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Aug 16 2014 14:00:20 +0000 Subject: Various fixes: - Do not require xfsprogs/xfsprogs-devel for el6 - Require gperftools-devel for non-ppc*/s390* architectures only - Do not require junit -- no need to build libcephfs-test.jar - Build without libxfs for el6 - Build without tcmalloc for ppc*/s390* architectures - Location of mkcephfs must depend on a rhel release - Use epoch in the Requires fields [1130700] --- diff --git a/ceph.spec b/ceph.spec index 13b6ed8..f41ce6c 100644 --- a/ceph.spec +++ b/ceph.spec @@ -10,7 +10,7 @@ ################################################################################# Name: ceph Version: 0.80.5 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 1 Summary: User space components of the Ceph file system License: GPL-2.0 @@ -19,15 +19,17 @@ 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: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} +Requires: ceph-common = %{epoch}:%{version}-%{release} Requires: python Requires: python-argparse Requires: python-ceph Requires: python-requests +%if ! ( 0%{?rhel} && 0%{?rhel} <= 6 ) Requires: xfsprogs +%endif Requires: cryptsetup Requires: parted Requires: util-linux @@ -54,7 +56,9 @@ BuildRequires: libuuid-devel BuildRequires: libblkid-devel >= 2.17 BuildRequires: libudev-devel BuildRequires: leveldb-devel > 1.2 +%if ! ( 0%{?rhel} && 0%{?rhel} <= 6 ) BuildRequires: xfsprogs-devel +%endif BuildRequires: yasm %if 0%{?rhel} || 0%{?centos} || 0%{?fedora} BuildRequires: snappy-devel @@ -90,8 +94,10 @@ Requires: gdisk Requires(post): chkconfig Requires(preun):chkconfig Requires(preun):initscripts +%ifnarch ppc ppc64 s390 s390x BuildRequires: gperftools-devel %endif +%endif %description Ceph is a massively scalable, open-source, distributed @@ -105,9 +111,9 @@ block and file system storage. %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: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: python-ceph = %{epoch}:%{version}-%{release} Requires: python-requests Requires: redhat-lsb-core %description -n ceph-common @@ -116,7 +122,7 @@ common utilities to mount and interact with a ceph storage cluster %package fuse Summary: Ceph fuse-based client Group: System Environment/Base -Requires: %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} BuildRequires: fuse-devel %description fuse FUSE based client for Ceph distributed network file system @@ -124,9 +130,9 @@ 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 = %{version}-%{release} -Requires: librbd1 = %{version}-%{release} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} BuildRequires: fuse-devel %description -n rbd-fuse FUSE based client to map Ceph rbd images to files @@ -135,11 +141,11 @@ FUSE based client to map Ceph rbd images to files 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} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} +Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} %description devel This package contains libraries and headers needed to develop programs that use Ceph. @@ -147,8 +153,8 @@ that use Ceph. %package radosgw Summary: Rados REST gateway Group: Development/Libraries -Requires: ceph-common = %{version}-%{release} -Requires: librados2 = %{version}-%{release} +Requires: ceph-common = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} %if 0%{defined suse_version} BuildRequires: libexpat-devel BuildRequires: FastCGI-devel @@ -167,7 +173,7 @@ conjunction with any FastCGI capable web server. Summary: OCF-compliant resource agents for Ceph daemons Group: System Environment/Base License: LGPL-2.0 -Requires: %{name} = %{version} +Requires: %{name} = %{epoch}:%{version}-%{release} Requires: resource-agents %description resource-agents Resource agents for monitoring and managing Ceph daemons @@ -192,7 +198,7 @@ store using a simple file-like interface. Summary: RADOS block device client library Group: System Environment/Libraries License: LGPL-2.0 -Requires: librados2 = %{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} %if 0%{?rhel} || 0%{?centos} || 0%{?fedora} Obsoletes: ceph-libs < 1:0.80.5 %endif @@ -220,8 +226,8 @@ POSIX-like interface. 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: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} Requires: python-flask %if 0%{defined suse_version} %py_requires @@ -234,7 +240,7 @@ object storage. Summary: RESTful benchmark Group: System Environment/Libraries License: LGPL-2.0 -Requires: ceph-common = %{version}-%{release} +Requires: ceph-common = %{epoch}:%{version}-%{release} %description -n rest-bench RESTful bencher that can be used to benchmark radosgw performance. @@ -242,9 +248,9 @@ RESTful bencher that can be used to benchmark radosgw performance. 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} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} %description -n ceph-test This package contains Ceph benchmarks and test tools. @@ -253,7 +259,7 @@ Summary: Java Native Interface library for CephFS Java bindings. Group: System Environment/Libraries License: LGPL-2.0 Requires: java -Requires: libcephfs1 = %{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} BuildRequires: java-devel %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java @@ -264,10 +270,8 @@ Summary: Java libraries for the Ceph File System. Group: System Environment/Libraries License: LGPL-2.0 Requires: java -Requires: libcephfs_jni1 = %{version}-%{release} +Requires: libcephfs_jni1 = %{epoch}:%{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. @@ -276,9 +280,9 @@ Summary: Meta package to include ceph libraries. Group: System Environment/Libraries License: LGPL-2.0 Obsoletes: ceph-libs < 1:0.80.5 -Requires: librados2 = %{version}-%{release} -Requires: librbd1 = %{version}-%{release} -Requires: libcephfs1 = %{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: libcephfs1 = %{epoch}:%{version}-%{release} Provides: ceph-libs %description libs-compat @@ -307,10 +311,20 @@ for i in /usr/{lib64,lib}/jvm/java/include{,/linux}; do done ./autogen.sh + +%if ( 0%{?rhel} && 0%{?rhel} <= 6) +MY_CONF_OPT="--without-libxfs" +%else MY_CONF_OPT="" +%endif MY_CONF_OPT="$MY_CONF_OPT --with-radosgw" +# No gperftools on these architectures +%ifarch ppc ppc64 s390 s390x +MY_CONF_OPT="$MY_CONF_OPT --without-tcmalloc" +%endif + export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` %ifarch armv5tel @@ -461,10 +475,11 @@ fi %{_sbindir}/ceph-disk-udev %{_sbindir}/ceph-create-keys %{_sbindir}/rcceph -%{_sbindir}/mkcephfs %if 0%{?rhel} >= 7 || 0%{?fedora} +%{_sbindir}/mkcephfs %{_sbindir}/mount.ceph %else +/sbin/mkcephfs /sbin/mount.ceph %endif %dir %{_libdir}/ceph @@ -742,6 +757,15 @@ ln -sf %{_libdir}/librbd.so.1 /usr/lib64/qemu/librbd.so.1 %files libs-compat %changelog +* Sat Aug 16 2014 Boris Ranto - 1:0.80.5-5 +- Do not require xfsprogs/xfsprogs-devel for el6 +- Require gperftools-devel for non-ppc*/s390* architectures only +- Do not require junit -- no need to build libcephfs-test.jar +- Build without libxfs for el6 +- Build without tcmalloc for ppc*/s390* architectures +- Location of mkcephfs must depend on a rhel release +- Use epoch in the Requires fields [1130700] + * Sat Aug 16 2014 Boris Ranto - 1:0.80.5-4 - Use the proper version name in Obsoletes