glusterfs package update 6.0.1

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 2019-03-24 16:57:16 +01:00
parent b558cfd63a
commit 22db17da14
1 changed files with 249 additions and 177 deletions

View File

@ -1,21 +1,34 @@
# This package depends on automagic byte compilation
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2
%global _python_bytecompile_extra 1

%global _hardened_build 1

%global _for_fedora_koji_builds 1

# uncomment and add '%' to use the prereltag for pre-releases
# %%global prereltag rc0
# %%global prereltag rc1

##-----------------------------------------------------------------------------
## All argument definitions should be placed here and keep them sorted
##

# asan
# if you wish to compile an rpm with address sanitizer...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan
%{?_with_asan:%global _with_asan --enable-asan}

%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%global _with_asan %{nil}
%endif

# 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 ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} )
%global _without_bd --disable-bd-xlator
%if ( 0%{?rhel} && 0%{?rhel} > 7 )
%global _without_bd --without-bd
%endif

# cmocka
@ -43,16 +56,12 @@
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication
%{?_without_georeplication:%global _without_georeplication --disable-georeplication}

# Disable geo-replication on EL5, as its default Python is too old
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
%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}

# gnfs subpackages for glusterfs-5, will be obsoleted in glusterfs-6
%if ( 0%{_for_fedora_koji_builds} )
%global _with_gnfs --enable-gnfs
%endif
@ -83,6 +92,11 @@
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without rdma
%{?_without_rdma:%global _without_rdma --disable-ibverbs}

# No RDMA Support on armv7hl
%ifarch armv7hl
%global _without_rdma --disable-ibverbs
%endif

# server
# if you wish to build rpms without server components, compile like this
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server
@ -106,10 +120,13 @@
%global _without_syslog --disable-syslog
%endif

# tier
# Disable data-tiering on EL5, sqlite is too old
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
%global _without_tiering --disable-tiering
# tsan
# if you wish to compile an rpm with thread sanitizer...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan
%{?_with_tsan:%global _with_tsan --enable-tsan}

%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%global _with_tsan %{nil}
%endif

# valgrind
@ -125,7 +142,7 @@
%global _with_systemd true
%endif

%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 8 ) )
%if ( 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
%global _with_firewalld --enable-firewalld
%endif

@ -135,20 +152,22 @@
%global _with_tmpfilesdir --without-tmpfilesdir
%endif

# Eventing
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
%global _without_events --disable-events
%endif

# without server should also disable some server-only components
%if ( 0%{?_without_server:1} )
%global _without_events --disable-events
%global _without_georeplication --disable-georeplication
%global _with_gnfs %{nil}
%global _without_tiering --disable-tiering
%global _without_ocf --without-ocf
%endif

%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
%global _usepython3 1
%global _pythonver 3
%else
%global _usepython3 0
%global _pythonver 2
%endif

# From https://fedoraproject.org/wiki/Packaging:Python#Macros
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%{!?python2_sitelib: %global python2_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
@ -166,6 +185,7 @@
# can't seem to make a generic macro that works
%global glusterd_svcfile %{_unitdir}/glusterd.service
%global glusterfsd_svcfile %{_unitdir}/glusterfsd.service
%global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service
%global glustereventsd_svcfile %{_unitdir}/glustereventsd.service
%global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service
%else
@ -189,11 +209,6 @@

%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}

%if ( 0%{?rhel} && 0%{?rhel} < 6 )
# _sharedstatedir is not provided by RHEL5
%global _sharedstatedir /var/lib
%endif

# We do not want to generate useless provides and requires for xlator
# .so files to be set for glusterfs packages.
# Filter all generated:
@ -217,33 +232,26 @@
Summary: Distributed File System
%if ( 0%{_for_fedora_koji_builds} )
Name: glusterfs
Version: 4.1.3
Release: %{?prereltag:1.}2%{?prereltag:.%{prereltag}}%{?dist}
Version: 6.0
Release: %{?prereltag:0.}1%{?prereltag:.%{prereltag}}%{?dist}
%else
Name: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
Release: 0.@PACKAGE_RELEASE@%{?dist}.6
Release: 0.@PACKAGE_RELEASE@%{?dist}.8
%endif
License: GPLv2 or LGPLv3+
URL: http://docs.gluster.org/
%if ( 0%{_for_fedora_koji_builds} )
Source0: http://download.gluster.org/pub/gluster/%{name}/4.1/%{version}%{?prereltag}/%{name}-%{version}%{?prereltag}.tar.gz
Patch0: python.patch
Patch1: 0001-georep-fix-hard-coded-paths-in-gsyncd.conf.in.patch
Source1: glusterd.sysconfig
Source2: glusterfsd.sysconfig
Source6: rhel5-load-fuse-modules
Source7: glusterfsd.service
Source8: glusterfsd.init
%else
Source0: @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
%endif


Requires(pre): shadow-utils
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
BuildRequires: python2-simplejson
%endif
%if ( 0%{?_with_systemd:1} )
BuildRequires: systemd
%endif
@ -252,36 +260,37 @@ Requires: %{name}-libs = %{version}-%{release}
%if ( 0%{?_with_systemd:1} )
%{?systemd_requires}
%endif
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libasan
%endif
%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libtsan
%endif
BuildRequires: bison flex
BuildRequires: gcc make libtool
BuildRequires: ncurses-devel readline-devel
BuildRequires: libxml2-devel openssl-devel
BuildRequires: libaio-devel libacl-devel
BuildRequires: python2-devel
BuildRequires: python%{_pythonver}-devel
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
BuildRequires: python-ctypes
%endif
%if ( ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) )
BuildRequires: libtirpc-devel
%endif
%if ( 0%{?fedora} && 0%{?fedora} > 27 )
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
BuildRequires: rpcgen
%endif
BuildRequires: userspace-rcu-devel >= 0.7
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: automake
%endif
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
BuildRequires: e2fsprogs-devel
%else
BuildRequires: libuuid-devel
%endif
%if ( 0%{?_with_cmocka:1} )
BuildRequires: libcmocka-devel >= 1.0.1
%endif
%if ( 0%{!?_without_tiering:1} )
BuildRequires: sqlite-devel
%endif
%if ( 0%{!?_without_bd:1} )
BuildRequires: lvm2-devel
%endif
@ -300,6 +309,9 @@ Obsoletes: %{name}-core < %{version}-%{release}
Obsoletes: %{name}-regression-tests
%endif
Obsoletes: %{name}-ufo
%if ( 0%{!?_with_gnfs:1} )
Obsoletes: %{name}-gnfs
%endif
Obsoletes: %{name}-ganesha
Provides: %{name}-common = %{version}-%{release}
Provides: %{name}-core = %{version}-%{release}
@ -321,6 +333,8 @@ and client framework.
Summary: GlusterFS api library
Requires: %{name} = %{version}-%{release}
Requires: %{name}-client-xlators = %{version}-%{release}
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

%description api
GlusterFS is a distributed file-system capable of scaling to several
@ -381,6 +395,21 @@ is in user space and easily manageable.

This package provides the translators needed on any GlusterFS client.

%package cloudsync-plugins
Summary: Cloudsync Plugins
BuildRequires: libcurl-devel

%description cloudsync-plugins
GlusterFS is a distributed file-system capable of scaling to several
petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable.

This package provides cloudsync plugins for archival feature.

%package devel
Summary: Development Libraries
Requires: %{name} = %{version}-%{release}
@ -403,13 +432,13 @@ This package provides the development libraries and include files.
%package events
Summary: GlusterFS Events
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: python2
Requires: python2-prettytable
Requires: python2-gluster = %{version}-%{release}
Requires: python%{_pythonver}
Requires: python%{_pythonver}-prettytable
Requires: python%{_pythonver}-gluster = %{version}-%{release}
%if ( 0%{?rhel} )
Requires: python-requests
%else
Requires: python2-requests
Requires: python%{_pythonver}-requests
%endif
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
Requires: python-argparse
@ -434,8 +463,8 @@ This package provides the GlusterFS Events
Summary: Extra Gluster filesystem Translators
# We need python2-gluster rpm for gluster module's __init__.py in Python
# site-packages area
Requires: python2-gluster = %{version}-%{release}
Requires: python2
Requires: python%{_pythonver}-gluster = %{version}-%{release}
Requires: python%{_pythonver}

%description extra-xlators
GlusterFS is a distributed file-system capable of scaling to several
@ -478,9 +507,9 @@ glusterfsd and glusterfs binaries.
Summary: GlusterFS Geo-replication
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
Requires: python2
Requires: python2-prettytable
Requires: python2-gluster = %{version}-%{release}
Requires: python%{_pythonver}
Requires: python%{_pythonver}-prettytable
Requires: python%{_pythonver}-gluster = %{version}-%{release}
Requires: rsync

%description geo-replication
@ -516,6 +545,8 @@ This package provides the glusterfs legacy gNFS server xlator

%package libs
Summary: GlusterFS common libraries
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

%description libs
GlusterFS is a distributed file-system capable of scaling to several
@ -528,35 +559,26 @@ is in user space and easily manageable.

This package provides the base GlusterFS libraries

%package -n python-gluster
%package -n python%{_pythonver}-gluster
Summary: GlusterFS python library
%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) )
# EL5 does not support noarch sub-packages
BuildArch: noarch
%endif

%global _python_gluster_description \
GlusterFS is a distributed file-system capable of scaling to several\
petabytes. It aggregates various storage bricks over Infiniband RDMA\
or TCP/IP interconnect into one large parallel network file\
system. GlusterFS is one of the most sophisticated file systems in\
terms of features and extensibility. It borrows a powerful concept\
called Translators from GNU Hurd kernel. Much of the code in GlusterFS\
is in user space and easily manageable.\
\
This package contains the python modules of GlusterFS and own gluster\
namespace.

%description -n python-gluster %{_python_gluster_description}

%package -n python2-gluster
Summary: GlusterFS python library
%{?python_provide:%python_provide python2-gluster}
Requires: python2
Requires: python%{_pythonver}
%if ( ! %{_usepython3} )
%{?python_provide:%python_provide python-gluster}
Provides: python-gluster = %{version}-%{release}
Obsoletes: python-gluster < 3.10
%endif

%description -n python2-gluster %{_python_gluster_description}
%description -n python%{_pythonver}-gluster
GlusterFS is a distributed file-system capable of scaling to several
petabytes. It aggregates various storage bricks over Infiniband RDMA
or TCP/IP interconnect into one large parallel network file
system. GlusterFS is one of the most sophisticated file systems in
terms of features and extensibility. It borrows a powerful concept
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
is in user space and easily manageable.

This package contains the python modules of GlusterFS and own gluster
namespace.

%if ( 0%{!?_without_rdma:1} )
%package rdma
@ -590,7 +612,7 @@ Requires: %{name}-server = %{version}-%{release}
## thin provisioning support
Requires: lvm2 >= 2.02.89
Requires: perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
Requires: python2 attr dbench file git libacl-devel net-tools
Requires: python%{_pythonver} attr dbench file git libacl-devel net-tools
Requires: nfs-utils xfsprogs yajl psmisc bc

%description regression-tests
@ -602,10 +624,7 @@ regression testing of Gluster.
%package resource-agents
Summary: OCF Resource Agents for GlusterFS
License: GPLv3+
%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 || 0%{?sles_version} ) )
# EL5 does not support noarch sub-packages
BuildArch: noarch
%endif
# for glusterd
Requires: %{name}-server = %{version}-%{release}
# depending on the distribution, we need pacemaker or resource-agents
@ -647,6 +666,8 @@ Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
%endif
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%if (0%{?_with_firewalld:1})
# we install firewalld rules, so we need to have the directory owned
%if ( 0%{!?rhel} )
@ -660,14 +681,11 @@ Requires: rpcbind
%else
Requires: portmap
%endif
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
Obsoletes: %{name}-geo-replication = %{version}-%{release}
%endif
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
Requires: python-argparse
%endif
%if ( 0%{?fedora} && 0%{?fedora} > 27 )
Requires: python2-pyxattr
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
Requires: python%{_pythonver}-pyxattr
%else
Requires: pyxattr
%endif
@ -687,25 +705,38 @@ is in user space and easily manageable.
This package provides the glusterfs server daemon.
%endif

%package thin-arbiter
Summary: GlusterFS thin-arbiter module
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}

%description thin-arbiter
This package provides a tie-breaker functionality to GlusterFS
replicate volume. It includes translators required to provide the
functionality, and also few other scripts required for setup.

This package provides the glusterfs thin-arbiter translator.

%prep
%setup -q -n %{name}-%{version}%{?prereltag}
%patch0 -p1
%patch1 -p1
%if ( ! %{_usepython3} )
echo "fixing python shebangs..."
for f in api events extras geo-replication libglusterfs tools xlators; do
find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \;
done
%endif

%build
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
CFLAGS=-DUSE_INSECURE_OPENSSL
export CFLAGS
%endif

sed -i -e 's/--quiet//' configure.ac
./autogen.sh && %configure \
%{?_with_asan} \
%{?_with_cmocka} \
%{?_with_debug} \
%{?_with_firewalld} \
%{?_with_gnfs} \
%{?_with_tmpfilesdir} \
%{?_with_tsan} \
%{?_with_valgrind} \
%{?_without_bd} \
%{?_without_epoll} \
@ -716,7 +747,6 @@ sed -i -e 's/--quiet//' configure.ac
%{?_without_rdma} \
%{?_without_server} \
%{?_without_syslog} \
%{?_without_tiering} \
%{?_with_ipv6default} \
%{?_without_libtirpc}

@ -727,6 +757,7 @@ sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool

gcc -v
make %{?_smp_mflags} V=1

%check
@ -735,28 +766,20 @@ make check
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
# Install include directory
install -p -m 0644 contrib/uuid/*.h \
%{buildroot}%{_includedir}/glusterfs/
%if ( 0%{!?_without_server:1} )
%if ( 0%{_for_fedora_koji_builds} )
%if ( 0%{!?_without_server:1} )
install -D -p -m 0644 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
install -D -p -m 0644 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
%endif
%else
%if ( 0%{!?_without_server:1} )
install -D -p -m 0644 extras/glusterd-sysconfig \
%{buildroot}%{_sysconfdir}/sysconfig/glusterd
%endif
%endif

%if ( 0%{_for_fedora_koji_builds} )
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
install -D -p -m 0755 %{SOURCE6} \
%{buildroot}%{_sysconfdir}/sysconfig/modules/glusterfs-fuse.modules
%endif
%endif

mkdir -p %{buildroot}%{_localstatedir}/log/glusterd
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd
@ -783,17 +806,11 @@ https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prerelt
EOM

# Remove benchmarking and other unpackaged files
%if ( 0%{?rhel} && 0%{?rhel} < 6 )
rm -rf %{buildroot}/benchmarking
rm -f %{buildroot}/glusterfs-mode.el
rm -f %{buildroot}/glusterfs.vim
%else
# make install always puts these in %%{_defaultdocdir}/%%{name} so don't
# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim
%endif

%if ( 0%{!?_without_server:1} )
# Create working directory
@ -805,9 +822,11 @@ sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sha
%endif

# Install glusterfsd .service or init.d file
%if ( 0%{!?_without_server:1} )
%if ( 0%{_for_fedora_koji_builds} )
%service_install glusterfsd %{glusterfsd_svcfile}
%endif
%endif

install -D -p -m 0644 extras/glusterfs-logrotate \
%{buildroot}%{_sysconfdir}/logrotate.d/glusterfs
@ -855,7 +874,7 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \
## All %%post should be placed here and keep them sorted
##
%post
/sbin/ldconfig
%{?ldconfig}
%if ( 0%{!?_without_syslog:1} )
%if ( 0%{?fedora} ) || ( 0%{?rhel} )
%systemd_postun_with_restart rsyslog
@ -863,7 +882,8 @@ install -p -m 0755 -D extras/command-completion/gluster.bash \
%endif
exit 0

%post api -p /sbin/ldconfig
# post and postun scriptlets for api
%ldconfig_scriptlets api

%if ( 0%{!?_without_events:1} )
%post events
@ -871,12 +891,6 @@ exit 0
exit 0
%endif

%if ( 0%{?rhel} == 5 )
%post fuse
modprobe fuse
exit 0
%endif

%if ( 0%{!?_without_georeplication:1} )
%post geo-replication
if [ $1 -ge 1 ]; then
@ -885,9 +899,8 @@ fi
exit 0
%endif

%post libs
/sbin/ldconfig
exit 0
# post and postun scriptlets for libs
%ldconfig_scriptlets libs

%if ( 0%{!?_without_server:1} )
%post server
@ -1006,11 +1019,19 @@ fi
exit 0
%endif

%preun thin-arbiter
if [ $1 -eq 0 ]; then
if [ -f %glusterta_svcfile ]; then
%service_stop gluster-ta-volume
%systemd_preun gluster-ta-volume
fi
fi

##-----------------------------------------------------------------------------
## All %%postun should be placed here and keep them sorted
##
%postun
/sbin/ldconfig
%{?ldconfig}
%if ( 0%{!?_without_syslog:1} )
%if ( 0%{?fedora} ) || ( 0%{?rhel} )
%systemd_postun_with_restart rsyslog
@ -1018,17 +1039,9 @@ exit 0
%endif
exit 0

%postun api
/sbin/ldconfig
exit 0

%postun libs
/sbin/ldconfig
exit 0

%if ( 0%{!?_without_server:1} )
%postun server
/sbin/ldconfig
%{?ldconfig}
%if (0%{?_with_firewalld:1})
%firewalld_reload
%endif
@ -1041,11 +1054,11 @@ exit 0
%files
%{!?_licensedir:%global license %%doc}
%license COPYING-GPLV2 COPYING-LGPLV3
%doc ChangeLog INSTALL README.md THANKS
%if ( 0%{!?_without_server:1} )
%doc ChangeLog INSTALL README.md THANKS COMMITMENT
%{_mandir}/man8/*gluster*.8*
%endif
%if ( 0%{!?_without_server:1} )
%exclude %{_mandir}/man8/gluster.8*
%endif
%dir %{_localstatedir}/log/glusterfs
%if ( 0%{!?_without_rdma:1} )
%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*
@ -1071,11 +1084,6 @@ exit 0
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so
%if ( ! ( 0%{?rhel} && 0%{?rhel} < 6 ) )
# RHEL-5 based distributions have a too old openssl
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/crypt.so
%endif
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so
@ -1136,6 +1144,9 @@ exit 0
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so

%files cloudsync-plugins
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
%{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so

%files devel
%dir %{_includedir}/glusterfs
@ -1143,32 +1154,13 @@ exit 0
%exclude %{_includedir}/glusterfs/api
%exclude %{_libdir}/libgfapi.so
%{_libdir}/*.so
# Glupy Translator examples
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/debug-trace.*
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/helloworld.*
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy/negative.*
%{_libdir}/pkgconfig/libgfchangelog.pc
%if ( 0%{!?_without_tiering:1} )
%{_libdir}/pkgconfig/libgfdb.pc
%endif

%files extra-xlators
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/encryption/rot-13.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/glupy.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/features/template.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/testing/performance/symlink-cache.so
# Glupy Python files
%dir %{python2_sitelib}/gluster
%dir %{python2_sitelib}/gluster/glupy
%{python2_sitelib}/gluster/glupy/*
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so

%files fuse
# glusterfs is a symlink to glusterfsd, -server depends on -fuse.
@ -1181,8 +1173,6 @@ exit 0
%if ( 0%{!?_without_fusermount:1} )
%{_bindir}/fusermount-glusterfs
%endif
%if ( 0%{_for_fedora_koji_builds} )
%endif

%if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} )
%files gnfs
@ -1194,6 +1184,19 @@ exit 0
%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
%endif

%files thin-arbiter
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so
%dir %{_datadir}/glusterfs/scripts
%{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
%config %{_sysconfdir}/glusterfs/thin-arbiter.vol

%if ( 0%{?_with_systemd:1} )
%{_unitdir}/gluster-ta-volume.service
%endif


%if ( 0%{!?_without_georeplication:1} )
%files geo-replication
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep
@ -1236,17 +1239,20 @@ exit 0
%{_libdir}/*.so.*
%exclude %{_libdir}/libgfapi.*
# libgfdb is only needed server-side
%if ( 0%{!?_without_tiering:1} )
# libgfdb is only needed server-side
%exclude %{_libdir}/libgfdb.*
%endif

%files -n python2-gluster
%files -n python%{_pythonver}-gluster
# introducing glusterfs module in site packages.
# so that all other gluster submodules can reside in the same namespace.
%if ( %{_usepython3} )
%dir %{python3_sitelib}/gluster
%{python3_sitelib}/gluster/__init__.*
%{python3_sitelib}/gluster/__pycache__
%{python3_sitelib}/gluster/cliutils
%else
%dir %{python2_sitelib}/gluster
%{python2_sitelib}/gluster/__init__.*
%{python2_sitelib}/gluster/cliutils
%endif

%if ( 0%{!?_without_rdma:1} )
%files rdma
@ -1274,6 +1280,7 @@ exit 0
%doc extras/clear_xattrs.sh
# sysconf
%config(noreplace) %{_sysconfdir}/glusterfs
%exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol
%exclude %{_sysconfdir}/glusterfs/eventsconfig.json
%exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol
%exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
@ -1308,14 +1315,9 @@ exit 0

%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so
%if ( 0%{!?_without_tiering:1} )
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so
%{_libdir}/libgfdb.so.*
%endif
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix*
@ -1331,7 +1333,6 @@ exit 0
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/bd.so
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
%{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so
@ -1350,6 +1351,9 @@ exit 0
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt
%attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind
%dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
@ -1421,6 +1425,8 @@ exit 0
%if ( 0%{?_with_firewalld:1} )
%{_prefix}/lib/firewalld/services/glusterfs.xml
%endif

# end of server files
%endif

# Events
@ -1430,8 +1436,8 @@ exit 0
%dir %{_sharedstatedir}/glusterd
%dir %{_sharedstatedir}/glusterd/events
%dir %{_libexecdir}/glusterfs
%dir %{_libexecdir}/glusterfs/events
%{_libexecdir}/glusterfs/events/*
%dir %{_libexecdir}/glusterfs/gfevents
%{_libexecdir}/glusterfs/gfevents/*
%{_libexecdir}/glusterfs/peer_eventsapi.py*
%{_sbindir}/glustereventsd
%{_sbindir}/gluster-eventsapi
@ -1444,6 +1450,69 @@ exit 0
%endif

%changelog
* Wed Mar 20 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0-1
- 6.0 GA

* Wed Mar 13 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0rc1-0.4
- 6.0 RC1

* Wed Mar 6 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0rc0-0.3
- 6.0 RC0
- restore s390x rdma
- remove obsolete scripts from
- https://src.fedoraproject.org/rpms/glusterfs/pull-request/5

* Fri Mar 1 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0rc0-0.2
- 6.0 RC0, s390x, armv7hl no rdma

* Fri Feb 22 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 6.0rc0-0.1
- 6.0 RC0

* Wed Feb 20 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-3
- re-rebuild for readline 8.0

* Wed Feb 20 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-2
- re-rebuild for f31/rawhide

* Wed Feb 20 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-1
- rebuild for f31/rawhide

* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 5.3-2.1
- Rebuild for readline 8.0

* Thu Feb 14 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-2
- Re-rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.3-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Jan 17 2019 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.3-1
- 5.3 GA

* Thu Dec 13 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.2-1
- 5.2 GA

* Wed Nov 14 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.1-1
- 5.1 GA

* Thu Oct 18 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0-1
- 5.0 GA

* Fri Oct 5 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0-0.5.rc1
- 5.0 RC1

* Mon Sep 24 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0-0.3.rc0
- 5.0 RC0, unbork python shebangs

* Thu Sep 20 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0-0.2.rc0
- 5.0 RC0

* Tue Sep 18 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 5.0-0.1.rc0
- 5.0 RC0

* Thu Sep 6 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.4-1
- 4.1.4 GA

* Tue Sep 4 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.3-2
- missing /run/gluster/metrics, see bz#1624006

@ -1453,11 +1522,14 @@ exit 0
* Mon Aug 27 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.3-1
- 4.1.3 GA

* Wed Jul 25 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.2-2
* Wed Jul 25 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.2-3
- 4.1.2, again

* Tue Jul 24 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.2-2
- 4.1.2, gsyncd.conf /usr/local/sbin

* Tue Jul 24 2018 Kaleb S. KEITHLEY <kkeithle[at]redhat.com> - 4.1.2-1
- 4.1.2 GA (includes gsyncd.conf)
- 4.1.2 GA

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild