@ -1,21 +1,34 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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}
@@ -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}
@@ -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.
@@ -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.
@@ -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.
@@ -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
@@ -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.
@@ -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
@@ -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.
@@ -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 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.
%description -n python2-gluster %{_python_gluster_description}
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}
@@ -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.
@@ -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
@@ -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
@@ -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.
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 \
@@ -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 \
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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