From 0c57232ae07f48bd6483bfe88a182f832377ef52 Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Thu, 18 Jan 2018 15:24:00 -0500 Subject: build: glibc has removed rpc headers and rpcgen in Fedora28, use libtirpc Other Linux distributions are doing the same; some others have already done so. Switch to libtirpc(-devel) and unbundled rpcgen packages. For now rpcgen is still provided by the glibc-rpcgen RPM, but rpcsvc-proto's rpcgen subpackage is available now but will not be used until glibc-rpcgen is retired. (note, rpcsvc-proto's rpcgen is just named rpcgen-...rpm. I.e. not rpcsvc-proto-rpcgen.) Right now either one will satisfy the BuildRequires: rpcgen. Also, when a .spec file has BuildRequires: foo-devel it is not necessary to also have: BuildRequires: foo or even: BuildRequires: foo foo-devel The foo-devel package has a dependency on foo, which will install foo automatically. It's usually also not necessary to have a corresponding Requires: foo as the rpmbuild process will also automatically determine the install-time dependencies. And other minor glusterfs.spec.in cleanup of ipv6-default, including sorting the argument definitions because the comment says "keep them sorted" (Though nobody appears to have ever sorted them in the first place.) Change-Id: I86f847dfda0fef83e22c6e8b761342d652a2d9ba BUG: 1536186 Signed-off-by: Kaleb S. KEITHLEY --- glusterfs.spec.in | 88 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 33 deletions(-) (limited to 'glusterfs.spec.in') diff --git a/glusterfs.spec.in b/glusterfs.spec.in index f7f8cbae6b3..f82f30945d0 100644 --- a/glusterfs.spec.in +++ b/glusterfs.spec.in @@ -9,39 +9,36 @@ ## All argument definitions should be placed here and keep them sorted ## -# if you wish to compile an rpm with debugging... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug -%{?_with_debug:%global _with_debug --enable-debug} - -# if you wish to compile an rpm to run all processes under valgrind... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind -%{?_with_valgrind:%global _with_valgrind --enable-valgrind} +# bd +# if you wish to compile an rpm without the BD map support... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd +%{?_without_bd:%global _without_bd --disable-bd-xlator} -# if you wish to compile an rpm with IPv6 default... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default -%{?_with_ipv6default:%global _with_ipv6default --with-ipv6default} +%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) +%global _without_bd --disable-bd-xlator +%endif +# cmocka # if you wish to compile an rpm with cmocka unit testing... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka %{?_with_cmocka:%global _with_cmocka --enable-cmocka} -# if you wish to compile an rpm without rdma support, compile like this... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma -%{?_without_rdma:%global _without_rdma --disable-ibverbs} - -# No RDMA Support on s390(x) -%ifarch s390 s390x armv7hl -%global _without_rdma --disable-ibverbs -%endif +# debug +# if you wish to compile an rpm with debugging... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug +%{?_with_debug:%global _with_debug --enable-debug} +# epoll # if you wish to compile an rpm without epoll... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll %{?_without_epoll:%global _without_epoll --disable-epoll} +# fusermount # if you wish to compile an rpm without fusermount... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount %{?_without_fusermount:%global _without_fusermount --disable-fusermount} +# geo-rep # if you wish to compile an rpm without geo-replication support, compile like this... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication %{?_without_georeplication:%global _without_georeplication --disable-georeplication} @@ -51,14 +48,37 @@ %global _without_georeplication --disable-georeplication %endif +# gnfs # if you wish to compile an rpm with the legacy gNFS server xlator # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs %{?_with_gnfs:%global _with_gnfs --enable-gnfs} +# ipv6default +# if you wish to compile an rpm with IPv6 default... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default +%{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default} + +# libtirpc +# if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc) +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc +%{?_without_libtirpc:%global _without_libtirpc --without-libtirpc} + +# ocf # if you wish to compile an rpm without the OCF resource agents... # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf %{?_without_ocf:%global _without_ocf --without-ocf} +# rdma +# if you wish to compile an rpm without rdma support, compile like this... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma +%{?_without_rdma:%global _without_rdma --disable-ibverbs} + +# No RDMA Support on s390(x) +%ifarch s390 s390x armv7hl +%global _without_rdma --disable-ibverbs +%endif + +# syslog # if you wish to build rpms without syslog logging, compile like this # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog %{?_without_syslog:%global _without_syslog --disable-syslog} @@ -71,19 +91,17 @@ %global _without_syslog --disable-syslog %endif -# if you wish to compile an rpm without the BD map support... -# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd -%{?_without_bd:%global _without_bd --disable-bd-xlator} - -%if ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) -%global _without_bd --disable-bd-xlator -%endif - +# tier # Disable data-tiering on EL5, sqlite is too old %if ( 0%{?rhel} && 0%{?rhel} < 6 ) %global _without_tiering --disable-tiering %endif +# valgrind +# if you wish to compile an rpm to run all processes under valgrind... +# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind +%{?_with_valgrind:%global _with_valgrind --enable-valgrind} + ##----------------------------------------------------------------------------- ## All %%global definitions should be placed here and keep them sorted ## @@ -219,8 +237,11 @@ BuildRequires: python2-devel %if ( 0%{?fedora} && 0%{?fedora} < 26 ) || ( 0%{?rhel} ) BuildRequires: python-ctypes %endif -%if ( 0%{?_with_ipv6default:1} ) -BuildRequires: libtirpc libtirpc-devel +%if ( 0%{?_with_ipv6default:1} ) && ( 0%{!?_without_libtirpc:1} ) +BuildRequires: libtirpc-devel +%endif +%if ( 0%{?fedora} && 0%{?fedora} > 27 ) +BuildRequires: rpcgen %endif BuildRequires: userspace-rcu-devel >= 0.7 %if ( 0%{?rhel} && 0%{?rhel} <= 6 ) @@ -560,9 +581,6 @@ Requires: %{name}-cli%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse Requires: %{name}-fuse%{?_isa} = %{version}-%{release} -%if ( 0%{?_with_ipv6default:1} ) -Requires: libtirpc -%endif # self-heal daemon, rebalance, nfs-server etc. are actually clients Requires: %{name}-api%{?_isa} = %{version}-%{release} Requires: %{name}-client-xlators%{?_isa} = %{version}-%{release} @@ -684,7 +702,8 @@ export CFLAGS %{?_without_rdma} \ %{?_without_syslog} \ %{?_without_tiering} \ - %{?_with_ipv6default} + %{?_with_ipv6default} \ + %{?_without_libtirpc} # fix hardening and remove rpath in shlibs %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 ) @@ -1394,10 +1413,13 @@ exit 0 %endif %changelog +* Thu Jan 18 2018 Kaleb S. KEITHLEY +- Fedora 28 glibc has removed rpc headers and rpcgen, use libtirpc + * Mon Dec 25 2017 Niels de Vos - Fedora 28 has renamed pyxattr -* Wed Nov 10 2017 Mohit Agrawal +* Wed Sep 27 2017 Mohit Agrawal - Added control-cpu-load.sh and control-mem.sh scripts to glusterfs-server section(#1496335) * Tue Aug 22 2017 Kaleb S. KEITHLEY -- cgit