From: Nathan Cutler Date: Thu, 25 May 2017 09:48:43 +0000 (+0200) Subject: build/ops: rpm: apply epoch only if %epoch macro is defined X-Git-Tag: ses5-milestone6~9^2~32^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ce5d6818e8f2551d8f8b155c372eabcd64146dcc;p=ceph.git build/ops: rpm: apply epoch only if %epoch macro is defined This allows SUSE to drop a maintenance-intensive downstream patch. Signed-off-by: Nathan Cutler --- diff --git a/ceph.spec.in b/ceph.spec.in index 32f10e5bc51b..971b59a2bb8a 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -58,13 +58,19 @@ # disable dwz which compresses the debuginfo %global _find_debuginfo_dwz_opts %{nil} + +# define %_epoch_prefix macro which will expand to the empty string if %epoch is undefined +%global _epoch_prefix %{?epoch:%{epoch}:} + ################################################################################# # main package definition ################################################################################# Name: ceph Version: @VERSION@ Release: @RPM_RELEASE@%{?dist} +%if 0%{?fedora} || 0%{?rhel} Epoch: 1 +%endif 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 %if 0%{?suse_version} @@ -82,10 +88,10 @@ ExclusiveArch: x86_64 aarch64 ################################################################################# # dependencies that apply across all distro families ################################################################################# -Requires: ceph-osd = %{epoch}:%{version}-%{release} -Requires: ceph-mds = %{epoch}:%{version}-%{release} -Requires: ceph-mgr = %{epoch}:%{version}-%{release} -Requires: ceph-mon = %{epoch}:%{version}-%{release} +Requires: ceph-osd = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mds = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mgr = %{_epoch_prefix}%{version}-%{release} +Requires: ceph-mon = %{_epoch_prefix}%{version}-%{release} Requires(post): binutils %if 0%{with cephfs_java} BuildRequires: java-devel @@ -223,13 +229,13 @@ Summary: Ceph Base Package %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-common = %{epoch}:%{version}-%{release} -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: libcephfs2 = %{epoch}:%{version}-%{release} -Requires: librgw2 = %{epoch}:%{version}-%{release} +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} -Requires: ceph-selinux = %{epoch}:%{version}-%{release} +Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif Requires: python Requires: python-requests @@ -256,13 +262,13 @@ Summary: Ceph Common %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: libcephfs2 = %{epoch}:%{version}-%{release} -Requires: python-rados = %{epoch}:%{version}-%{release} -Requires: python-rbd = %{epoch}:%{version}-%{release} -Requires: python-cephfs = %{epoch}:%{version}-%{release} -Requires: python-rgw = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: python-rados = %{_epoch_prefix}%{version}-%{release} +Requires: python-rbd = %{_epoch_prefix}%{version}-%{release} +Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release} +Requires: python-rgw = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python-prettytable %endif @@ -286,7 +292,7 @@ Summary: Ceph Metadata Server Daemon %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-base = %{epoch}:%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %description mds ceph-mds is the metadata server daemon for the Ceph distributed file system. One or more instances of ceph-mds collectively manage the file system @@ -297,7 +303,7 @@ Summary: Ceph Monitor Daemon %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-base = %{epoch}:%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} # For ceph-rest-api %if 0%{?fedora} || 0%{?rhel} Requires: python-flask @@ -317,7 +323,7 @@ License: LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and GPL-2.0-wi %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-base = %{epoch}:%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} %if 0%{?fedora} || 0%{?rhel} Requires: python-cherrypy %endif @@ -344,8 +350,8 @@ Summary: Ceph fuse-based client %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-fuse FUSE based client to map Ceph rbd images to files @@ -354,8 +360,8 @@ Summary: Ceph daemon for mirroring RBD images %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-common = %{epoch}:%{version}-%{release} -Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-mirror Daemon for mirroring RBD images between Ceph clusters, streaming changes asynchronously. @@ -365,8 +371,8 @@ Summary: Ceph RBD client base on NBD %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} %description -n rbd-nbd NBD based client to map Ceph rbd images to local device @@ -375,12 +381,12 @@ Summary: Rados REST gateway %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-common = %{epoch}:%{version}-%{release} +Requires: ceph-common = %{_epoch_prefix}%{version}-%{release} %if 0%{with selinux} -Requires: ceph-selinux = %{epoch}:%{version}-%{release} +Requires: ceph-selinux = %{_epoch_prefix}%{version}-%{release} %endif -Requires: librados2 = %{epoch}:%{version}-%{release} -Requires: librgw2 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} Requires: mailcap %endif @@ -397,7 +403,7 @@ Summary: OCF-compliant resource agents for Ceph daemons Group: System/Filesystems %endif License: LGPL-2.0 -Requires: ceph-base = %{epoch}:%{version} +Requires: ceph-base = %{_epoch_prefix}%{version} Requires: resource-agents %description resource-agents Resource agents for monitoring and managing Ceph daemons @@ -410,7 +416,7 @@ Summary: Ceph Object Storage Daemon %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-base = %{epoch}:%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} # for sgdisk, used by ceph-disk %if 0%{?fedora} || 0%{?rhel} Requires: gdisk @@ -431,7 +437,7 @@ Group: System/Libraries %endif License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} -Obsoletes: ceph-libs < %{epoch}:%{version}-%{release} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librados2 RADOS is a reliable, autonomic distributed object storage cluster @@ -445,10 +451,10 @@ Summary: RADOS headers Group: Development/Libraries/C and C++ %endif License: LGPL-2.0 -Requires: librados2 = %{epoch}:%{version}-%{release} -Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} -Provides: librados2-devel = %{epoch}:%{version}-%{release} -Obsoletes: librados2-devel < %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: librados2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librados2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librados-devel This package contains libraries and headers needed to develop programs that use RADOS object store. @@ -459,7 +465,7 @@ Summary: RADOS gateway client library Group: System/Libraries %endif License: LGPL-2.0 -Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n librgw2 This package provides a library implementation of the RADOS gateway (distributed object store with S3 and Swift personalities). @@ -470,10 +476,10 @@ Summary: RADOS gateway client library Group: Development/Libraries/C and C++ %endif License: LGPL-2.0 -Requires: librados-devel = %{epoch}:%{version}-%{release} -Requires: librgw2 = %{epoch}:%{version}-%{release} -Provides: librgw2-devel = %{epoch}:%{version}-%{release} -Obsoletes: librgw2-devel < %{epoch}:%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +Provides: librgw2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librgw2-devel < %{_epoch_prefix}%{version}-%{release} %description -n librgw-devel This package contains libraries and headers needed to develop programs that use RADOS gateway client library. @@ -484,9 +490,9 @@ Summary: Python 2 libraries for the RADOS gateway Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: librgw2 = %{epoch}:%{version}-%{release} -Requires: python-rados = %{epoch}:%{version}-%{release} -Obsoletes: python-ceph < %{epoch}:%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +Requires: python-rados = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rgw This package contains Python 2 libraries for interacting with Cephs RADOS gateway. @@ -497,8 +503,8 @@ Summary: Python 3 libraries for the RADOS gateway Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: librgw2 = %{epoch}:%{version}-%{release} -Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release} +Requires: librgw2 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rgw This package contains Python 3 libraries for interacting with Cephs RADOS gateway. @@ -509,8 +515,8 @@ Summary: Python 2 libraries for the RADOS object store Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: librados2 = %{epoch}:%{version}-%{release} -Obsoletes: python-ceph < %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rados This package contains Python 2 libraries for interacting with Cephs RADOS object store. @@ -522,7 +528,7 @@ Group: Development/Languages/Python %endif License: LGPL-2.0 Requires: python%{python3_pkgversion} -Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rados This package contains Python 3 libraries for interacting with Cephs RADOS object store. @@ -533,7 +539,7 @@ Summary: RADOS striping interface Group: System/Libraries %endif License: LGPL-2.0 -Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper1 Striping interface built on top of the rados library, allowing to stripe bigger objects onto several standard rados objects using @@ -545,11 +551,11 @@ Summary: RADOS striping interface headers Group: Development/Libraries/C and C++ %endif License: LGPL-2.0 -Requires: libradosstriper1 = %{epoch}:%{version}-%{release} -Requires: librados-devel = %{epoch}:%{version}-%{release} -Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} -Provides: libradosstriper1-devel = %{epoch}:%{version}-%{release} -Obsoletes: libradosstriper1-devel < %{epoch}:%{version}-%{release} +Requires: libradosstriper1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libradosstriper1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libradosstriper1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libradosstriper-devel This package contains libraries and headers needed to develop programs that use RADOS striping interface. @@ -560,9 +566,9 @@ Summary: RADOS block device client library Group: System/Libraries %endif License: LGPL-2.0 -Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?rhel} || 0%{?fedora} -Obsoletes: ceph-libs < %{epoch}:%{version}-%{release} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} %endif %description -n librbd1 RBD is a block device striped across multiple distributed objects in @@ -576,11 +582,11 @@ Summary: RADOS block device headers Group: Development/Libraries/C and C++ %endif License: LGPL-2.0 -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: librados-devel = %{epoch}:%{version}-%{release} -Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} -Provides: librbd1-devel = %{epoch}:%{version}-%{release} -Obsoletes: librbd1-devel < %{epoch}:%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: librbd1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: librbd1-devel < %{_epoch_prefix}%{version}-%{release} %description -n librbd-devel This package contains libraries and headers needed to develop programs that use RADOS block device. @@ -591,9 +597,9 @@ Summary: Python 2 libraries for the RADOS block device Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: python-rados = %{epoch}:%{version}-%{release} -Obsoletes: python-ceph < %{epoch}:%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: python-rados = %{_epoch_prefix}%{version}-%{release} +Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-rbd This package contains Python 2 libraries for interacting with Cephs RADOS block device. @@ -604,8 +610,8 @@ Summary: Python 3 libraries for the RADOS block device Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: librbd1 = %{epoch}:%{version}-%{release} -Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release} +Requires: librbd1 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-rbd This package contains Python 3 libraries for interacting with Cephs RADOS block device. @@ -617,7 +623,7 @@ Group: System/Libraries %endif License: LGPL-2.0 %if 0%{?rhel} || 0%{?fedora} -Obsoletes: ceph-libs < %{epoch}:%{version}-%{release} +Obsoletes: ceph-libs < %{_epoch_prefix}%{version}-%{release} Obsoletes: ceph-libcephfs %endif %description -n libcephfs2 @@ -632,11 +638,11 @@ Summary: Ceph distributed file system headers Group: Development/Libraries/C and C++ %endif License: LGPL-2.0 -Requires: libcephfs2 = %{epoch}:%{version}-%{release} -Requires: librados-devel = %{epoch}:%{version}-%{release} -Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} -Provides: libcephfs2-devel = %{epoch}:%{version}-%{release} -Obsoletes: libcephfs2-devel < %{epoch}:%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: librados-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephfs2-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephfs2-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs-devel This package contains libraries and headers needed to develop programs that use Cephs distributed file system. @@ -647,11 +653,11 @@ Summary: Python 2 libraries for Ceph distributed file system Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: libcephfs2 = %{epoch}:%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %if 0%{?suse_version} -Recommends: python-rados = %{epoch}:%{version}-%{release} +Recommends: python-rados = %{_epoch_prefix}%{version}-%{release} %endif -Obsoletes: python-ceph < %{epoch}:%{version}-%{release} +Obsoletes: python-ceph < %{_epoch_prefix}%{version}-%{release} %description -n python-cephfs This package contains Python 2 libraries for interacting with Cephs distributed file system. @@ -662,8 +668,8 @@ Summary: Python 3 libraries for Ceph distributed file system Group: Development/Languages/Python %endif License: LGPL-2.0 -Requires: libcephfs2 = %{epoch}:%{version}-%{release} -Requires: python%{python3_pkgversion}-rados = %{epoch}:%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} +Requires: python%{python3_pkgversion}-rados = %{_epoch_prefix}%{version}-%{release} %description -n python%{python3_pkgversion}-cephfs This package contains Python 3 libraries for interacting with Cephs distributed file system. @@ -702,7 +708,7 @@ Group: System/Libraries %endif License: LGPL-2.0 Requires: java -Requires: libcephfs2 = %{epoch}:%{version}-%{release} +Requires: libcephfs2 = %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni1 This package contains the Java Native Interface library for CephFS Java bindings. @@ -714,10 +720,10 @@ Group: Development/Libraries/Java %endif License: LGPL-2.0 Requires: java -Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} -Obsoletes: ceph-devel < %{epoch}:%{version}-%{release} -Provides: libcephfs_jni1-devel = %{epoch}:%{version}-%{release} -Obsoletes: libcephfs_jni1-devel < %{epoch}:%{version}-%{release} +Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} +Obsoletes: ceph-devel < %{_epoch_prefix}%{version}-%{release} +Provides: libcephfs_jni1-devel = %{_epoch_prefix}%{version}-%{release} +Obsoletes: libcephfs_jni1-devel < %{_epoch_prefix}%{version}-%{release} %description -n libcephfs_jni-devel This package contains the development files for CephFS Java Native Interface library. @@ -729,7 +735,7 @@ Group: System/Libraries %endif License: LGPL-2.0 Requires: java -Requires: libcephfs_jni1 = %{epoch}:%{version}-%{release} +Requires: libcephfs_jni1 = %{_epoch_prefix}%{version}-%{release} Requires: junit BuildRequires: junit %description -n cephfs-java @@ -741,7 +747,7 @@ This package contains the Java libraries for the Ceph File System. Summary: RADOS object class development kit Group: Development/Libraries License: LGPL-2.0 -Requires: librados2-devel = %{epoch}:%{version}-%{release} +Requires: librados2-devel = %{_epoch_prefix}%{version}-%{release} %description -n rados-objclass-devel This package contains libraries and headers needed to develop RADOS object class plugins. @@ -753,7 +759,7 @@ Summary: SELinux support for Ceph MON, OSD and MDS %if 0%{?suse_version} Group: System/Filesystems %endif -Requires: ceph-base = %{epoch}:%{version}-%{release} +Requires: ceph-base = %{_epoch_prefix}%{version}-%{release} Requires: policycoreutils, libselinux-utils Requires(post): selinux-policy-base >= %{_selinux_policy_version}, policycoreutils, gawk Requires(postun): policycoreutils @@ -771,10 +777,10 @@ Group: Development/Languages/Python %endif License: LGPL-2.0 Obsoletes: python-ceph -Requires: python-rados = %{epoch}:%{version}-%{release} -Requires: python-rbd = %{epoch}:%{version}-%{release} -Requires: python-cephfs = %{epoch}:%{version}-%{release} -Requires: python-rgw = %{epoch}:%{version}-%{release} +Requires: python-rados = %{_epoch_prefix}%{version}-%{release} +Requires: python-rbd = %{_epoch_prefix}%{version}-%{release} +Requires: python-cephfs = %{_epoch_prefix}%{version}-%{release} +Requires: python-rgw = %{_epoch_prefix}%{version}-%{release} Provides: python-ceph %description -n python-ceph-compat This is a compatibility package to accommodate python-ceph split into