14f8ab
%global _hardened_build 1
14f8ab
14f8ab
%global _for_fedora_koji_builds 0
14f8ab
14f8ab
# uncomment and add '%' to use the prereltag for pre-releases
14f8ab
# %%global prereltag qa3
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All argument definitions should be placed here and keep them sorted
14f8ab
##
14f8ab
14f8ab
# asan
14f8ab
# if you wish to compile an rpm with address sanitizer...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with asan
14f8ab
%{?_with_asan:%global _with_asan --enable-asan}
14f8ab
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
%global _with_asan %{nil}
14f8ab
%endif
14f8ab
14f8ab
# bd
14f8ab
# if you wish to compile an rpm without the BD map support...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without bd
14f8ab
%{?_without_bd:%global _without_bd --disable-bd-xlator}
14f8ab
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} > 7 )
14f8ab
%global _without_bd --without-bd
14f8ab
%endif
14f8ab
14f8ab
# cmocka
14f8ab
# if you wish to compile an rpm with cmocka unit testing...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with cmocka
14f8ab
%{?_with_cmocka:%global _with_cmocka --enable-cmocka}
14f8ab
14f8ab
# debug
14f8ab
# if you wish to compile an rpm with debugging...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with debug
14f8ab
%{?_with_debug:%global _with_debug --enable-debug}
14f8ab
14f8ab
# epoll
14f8ab
# if you wish to compile an rpm without epoll...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without epoll
14f8ab
%{?_without_epoll:%global _without_epoll --disable-epoll}
14f8ab
14f8ab
# fusermount
14f8ab
# if you wish to compile an rpm without fusermount...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without fusermount
14f8ab
%{?_without_fusermount:%global _without_fusermount --disable-fusermount}
14f8ab
14f8ab
# geo-rep
14f8ab
# if you wish to compile an rpm without geo-replication support, compile like this...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without georeplication
14f8ab
%{?_without_georeplication:%global _without_georeplication --disable-georeplication}
14f8ab
14f8ab
# ipv6default
14f8ab
# if you wish to compile an rpm with IPv6 default...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with ipv6default
14f8ab
%{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default}
14f8ab
14f8ab
# libtirpc
14f8ab
# if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc)
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without libtirpc
14f8ab
%{?_without_libtirpc:%global _without_libtirpc --without-libtirpc}
14f8ab
14f8ab
# Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t
14f8ab
# Do not use libtirpc on EL7, it does not have xdr_sizeof()
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} <= 7 )
14f8ab
%global _without_libtirpc --without-libtirpc
14f8ab
%endif
14f8ab
14f8ab
14f8ab
# ocf
14f8ab
# if you wish to compile an rpm without the OCF resource agents...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without ocf
14f8ab
%{?_without_ocf:%global _without_ocf --without-ocf}
14f8ab
14f8ab
# rdma
14f8ab
# if you wish to compile an rpm without rdma support, compile like this...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without rdma
14f8ab
%{?_without_rdma:%global _without_rdma --disable-ibverbs}
14f8ab
14f8ab
# No RDMA Support on 32-bit ARM
14f8ab
%ifarch armv7hl
14f8ab
%global _without_rdma --disable-ibverbs
14f8ab
%endif
14f8ab
14f8ab
# server
14f8ab
# if you wish to build rpms without server components, compile like this
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without server
14f8ab
%{?_without_server:%global _without_server --without-server}
14f8ab
14f8ab
# disable server components forcefully as rhel <= 6
14f8ab
%if ( 0%{?rhel} )
14f8ab
%if (!(( "%{?dist}" == ".el6rhs" ) || ( "%{?dist}" == ".el7rhs" ) || ( "%{?dist}" == ".el7rhgs" ) || ( "%{?dist}" == ".el8rhgs" )))
14f8ab
%global _without_server --without-server
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%global _without_extra_xlators 1
14f8ab
%global _without_regression_tests 1
14f8ab
14f8ab
# syslog
14f8ab
# if you wish to build rpms without syslog logging, compile like this
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --without syslog
14f8ab
%{?_without_syslog:%global _without_syslog --disable-syslog}
14f8ab
14f8ab
# disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount
14f8ab
# Fedora deprecated syslog, see
14f8ab
#  https://fedoraproject.org/wiki/Changes/NoDefaultSyslog
14f8ab
# (And what about RHEL7?)
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 )
14f8ab
%global _without_syslog --disable-syslog
14f8ab
%endif
14f8ab
14f8ab
# tsan
14f8ab
# if you wish to compile an rpm with thread sanitizer...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with tsan
14f8ab
%{?_with_tsan:%global _with_tsan --enable-tsan}
14f8ab
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
%global _with_tsan %{nil}
14f8ab
%endif
14f8ab
14f8ab
# valgrind
14f8ab
# if you wish to compile an rpm to run all processes under valgrind...
14f8ab
# rpmbuild -ta glusterfs-6.0.tar.gz --with valgrind
14f8ab
%{?_with_valgrind:%global _with_valgrind --enable-valgrind}
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%global definitions should be placed here and keep them sorted
14f8ab
##
14f8ab
14f8ab
# selinux booleans whose defalut value needs modification
14f8ab
# these booleans will be consumed by "%%selinux_set_booleans" macro.
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
14f8ab
%global selinuxbooleans rsync_full_access=1 rsync_client=1
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
14f8ab
%global _with_systemd true
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 7 )
14f8ab
%global _with_firewalld --enable-firewalld
14f8ab
%endif
14f8ab
14f8ab
%if 0%{?_tmpfilesdir:1}
14f8ab
%global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir}
14f8ab
%else
14f8ab
%global _with_tmpfilesdir --without-tmpfilesdir
14f8ab
%endif
14f8ab
14f8ab
# without server should also disable some server-only components
14f8ab
%if 0%{?_without_server:1}
14f8ab
%global _without_events --disable-events
14f8ab
%global _without_georeplication --disable-georeplication
14f8ab
%global _without_tiering --disable-tiering
14f8ab
%global _without_ocf --without-ocf
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
14f8ab
%global _usepython3 1
14f8ab
%global _pythonver 3
14f8ab
%else
14f8ab
%global _usepython3 0
14f8ab
%global _pythonver 2
14f8ab
%endif
14f8ab
14f8ab
# From https://fedoraproject.org/wiki/Packaging:Python#Macros
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
14f8ab
%{!?python2_sitelib: %global python2_sitelib %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
14f8ab
%{!?python2_sitearch: %global python2_sitearch %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
14f8ab
%global _rundir %{_localstatedir}/run
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%global service_enable()   /bin/systemctl --quiet enable %1.service || : \
14f8ab
%{nil}
14f8ab
%global service_start()   /bin/systemctl --quiet start %1.service || : \
14f8ab
%{nil}
14f8ab
%global service_stop()    /bin/systemctl --quiet stop %1.service || :\
14f8ab
%{nil}
14f8ab
%global service_install() install -D -p -m 0644 %1.service %{buildroot}%2 \
14f8ab
%{nil}
14f8ab
# can't seem to make a generic macro that works
14f8ab
%global glusterd_svcfile   %{_unitdir}/glusterd.service
14f8ab
%global glusterfsd_svcfile %{_unitdir}/glusterfsd.service
14f8ab
%global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service
14f8ab
%global glustereventsd_svcfile %{_unitdir}/glustereventsd.service
14f8ab
%global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service
14f8ab
%else
14f8ab
%global service_enable()  /sbin/chkconfig --add %1 >/dev/null 2>&1 || : \
14f8ab
%{nil}
14f8ab
%global systemd_preun() /sbin/chkconfig --del %1 >/dev/null 2>&1 || : \
14f8ab
%{nil}
14f8ab
%global systemd_postun_with_restart() /sbin/service %1 condrestart >/dev/null 2>&1 || : \
14f8ab
%{nil}
14f8ab
%global service_start()   /sbin/service %1 start >/dev/null 2>&1 || : \
14f8ab
%{nil}
14f8ab
%global service_stop()    /sbin/service %1 stop >/dev/null 2>&1 || : \
14f8ab
%{nil}
14f8ab
%global service_install() install -D -p -m 0755 %1.init %{buildroot}%2 \
14f8ab
%{nil}
14f8ab
# can't seem to make a generic macro that works
14f8ab
%global glusterd_svcfile   %{_sysconfdir}/init.d/glusterd
14f8ab
%global glusterfsd_svcfile %{_sysconfdir}/init.d/glusterfsd
14f8ab
%global glustereventsd_svcfile %{_sysconfdir}/init.d/glustereventsd
14f8ab
%endif
14f8ab
14f8ab
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
14f8ab
14f8ab
# We do not want to generate useless provides and requires for xlator
14f8ab
# .so files to be set for glusterfs packages.
14f8ab
# Filter all generated:
14f8ab
#
14f8ab
# TODO: RHEL5 does not have a convenient solution
14f8ab
%if ( 0%{?rhel} == 6 )
14f8ab
# filter_setup exists in RHEL6 only
14f8ab
%filter_provides_in %{_libdir}/glusterfs/%{version}/
14f8ab
%global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$'
14f8ab
%filter_setup
14f8ab
%else
14f8ab
# modern rpm and current Fedora do not generate requires when the
14f8ab
# provides are filtered
14f8ab
%global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$
14f8ab
%endif
14f8ab
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All package definitions should be placed here in alphabetical order
14f8ab
##
14f8ab
Summary:          Distributed File System
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
Name:             glusterfs
14f8ab
Version:          3.8.0
14f8ab
Release:          0.2%{?prereltag:.%{prereltag}}%{?dist}
14f8ab
%else
14f8ab
Name:             glusterfs
14f8ab
Version:          6.0
14f8ab
Release:          57.4%{?dist}
14f8ab
ExcludeArch:      i686
14f8ab
%endif
14f8ab
License:          GPLv2 or LGPLv3+
14f8ab
URL:              http://docs.gluster.org/
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
Source0:          http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz
14f8ab
Source1:          glusterd.sysconfig
14f8ab
Source2:          glusterfsd.sysconfig
14f8ab
Source7:          glusterfsd.service
14f8ab
Source8:          glusterfsd.init
14f8ab
%else
14f8ab
Source0:          glusterfs-6.0.tar.gz
14f8ab
%endif
14f8ab
14f8ab
Requires(pre):    shadow-utils
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
BuildRequires:    systemd
14f8ab
%endif
14f8ab
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%{?systemd_requires}
14f8ab
%endif
14f8ab
%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
BuildRequires:    libasan
14f8ab
%endif
14f8ab
%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
BuildRequires:    libtsan
14f8ab
%endif
14f8ab
BuildRequires:    git
14f8ab
BuildRequires:    bison flex
14f8ab
BuildRequires:    gcc make libtool
14f8ab
BuildRequires:    ncurses-devel readline-devel
14f8ab
BuildRequires:    libxml2-devel openssl-devel
14f8ab
BuildRequires:    libaio-devel libacl-devel
14f8ab
BuildRequires:    python%{_pythonver}-devel
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
14f8ab
BuildRequires:    python-ctypes
14f8ab
%endif
14f8ab
%if ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} ) || ( 0%{?rhel} && ( 0%{?rhel} >= 8 ) )
14f8ab
BuildRequires:    libtirpc-devel
14f8ab
%endif
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
14f8ab
BuildRequires:    rpcgen
14f8ab
%endif
14f8ab
BuildRequires:    userspace-rcu-devel >= 0.7
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
14f8ab
BuildRequires:    automake
14f8ab
%endif
14f8ab
BuildRequires:    libuuid-devel
14f8ab
%if ( 0%{?_with_cmocka:1} )
14f8ab
BuildRequires:    libcmocka-devel >= 1.0.1
14f8ab
%endif
14f8ab
%if ( 0%{!?_without_tiering:1} )
14f8ab
BuildRequires:    sqlite-devel
14f8ab
%endif
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
BuildRequires:    libattr-devel
14f8ab
%endif
14f8ab
14f8ab
%if (0%{?_with_firewalld:1})
14f8ab
BuildRequires:    firewalld
14f8ab
%endif
14f8ab
14f8ab
Obsoletes:        hekafs
14f8ab
Obsoletes:        %{name}-common < %{version}-%{release}
14f8ab
Obsoletes:        %{name}-core < %{version}-%{release}
14f8ab
Obsoletes:        %{name}-ufo
14f8ab
%if ( 0%{!?_with_gnfs:1} )
14f8ab
Obsoletes:        %{name}-gnfs
14f8ab
%endif
14f8ab
%if ( 0%{?rhel} < 7 )
14f8ab
Obsoletes:        %{name}-ganesha
14f8ab
%endif
14f8ab
Provides:         %{name}-common = %{version}-%{release}
14f8ab
Provides:         %{name}-core = %{version}-%{release}
14f8ab
14f8ab
# Patch0001: 0001-Update-rfc.sh-to-rhgs-3.5.0.patch
14f8ab
Patch0002: 0002-glusterd-fix-op-versions-for-RHS-backwards-compatabi.patch
14f8ab
Patch0003: 0003-rpc-set-bind-insecure-to-off-by-default.patch
14f8ab
Patch0004: 0004-glusterd-spec-fixing-autogen-issue.patch
14f8ab
Patch0005: 0005-libglusterfs-glusterd-Fix-compilation-errors.patch
14f8ab
Patch0006: 0006-build-remove-ghost-directory-entries.patch
14f8ab
Patch0007: 0007-build-add-RHGS-specific-changes.patch
14f8ab
Patch0008: 0008-secalert-remove-setuid-bit-for-fusermount-glusterfs.patch
14f8ab
Patch0009: 0009-build-introduce-security-hardening-flags-in-gluster.patch
14f8ab
Patch0010: 0010-spec-fix-add-pre-transaction-scripts-for-geo-rep-and.patch
14f8ab
Patch0011: 0011-rpm-glusterfs-devel-for-client-builds-should-not-dep.patch
14f8ab
Patch0012: 0012-build-add-pretrans-check.patch
14f8ab
Patch0013: 0013-glusterd-fix-info-file-checksum-mismatch-during-upgr.patch
14f8ab
Patch0014: 0014-build-spec-file-conflict-resolution.patch
14f8ab
Patch0015: 0015-build-randomize-temp-file-names-in-pretrans-scriptle.patch
14f8ab
Patch0016: 0016-glusterd-parallel-readdir-Change-the-op-version-of-p.patch
14f8ab
Patch0017: 0017-glusterd-Revert-op-version-for-cluster.max-brick-per.patch
14f8ab
Patch0018: 0018-cli-Add-message-for-user-before-modifying-brick-mult.patch
14f8ab
Patch0019: 0019-build-launch-glusterd-upgrade-after-all-new-bits-are.patch
14f8ab
Patch0020: 0020-spec-unpackaged-files-found-for-RHEL-7-client-build.patch
14f8ab
Patch0021: 0021-cli-glusterfsd-remove-copyright-information.patch
14f8ab
Patch0022: 0022-cli-Remove-upstream-doc-reference.patch
14f8ab
Patch0023: 0023-hooks-remove-selinux-hooks.patch
14f8ab
Patch0024: 0024-glusterd-Make-localtime-logging-option-invisible-in-.patch
14f8ab
Patch0025: 0025-build-make-RHGS-version-available-for-server.patch
14f8ab
Patch0026: 0026-glusterd-Introduce-daemon-log-level-cluster-wide-opt.patch
14f8ab
Patch0027: 0027-glusterd-change-op-version-of-fips-mode-rchecksum.patch
14f8ab
Patch0028: 0028-glusterd-Reset-op-version-for-features.shard-deletio.patch
14f8ab
Patch0029: 0029-glusterd-Reset-op-version-for-features.shard-lru-lim.patch
14f8ab
Patch0030: 0030-selinux-glusterd-add-features.selinux-to-glusterd-vo.patch
14f8ab
Patch0031: 0031-glusterd-turn-off-selinux-feature-in-downstream.patch
14f8ab
Patch0032: 0032-glusterd-update-gd-op-version-to-3_7_0.patch
14f8ab
Patch0033: 0033-build-add-missing-explicit-package-dependencies.patch
14f8ab
Patch0034: 0034-glusterd-introduce-a-new-op-version-for-rhgs-3.4.3.patch
14f8ab
Patch0035: 0035-glusterd-tag-rebalance-mgmt_v3-command-to-op-version.patch
14f8ab
Patch0036: 0036-build-add-conditional-dependency-on-server-for-devel.patch
14f8ab
Patch0037: 0037-cli-change-the-warning-message.patch
14f8ab
Patch0038: 0038-spec-avoid-creation-of-temp-file-in-lua-script.patch
14f8ab
Patch0039: 0039-cli-fix-query-to-user-during-brick-mux-selection.patch
14f8ab
Patch0040: 0040-build-Remove-unsupported-test-cases-failing-consiste.patch
14f8ab
Patch0041: 0041-tests-geo-rep-Build-failed-in-Jenkins-for-test-bug-1.patch
14f8ab
Patch0042: 0042-spec-client-server-Builds-are-failing-on-rhel-6.patch
14f8ab
Patch0043: 0043-inode-don-t-dump-the-whole-table-to-CLI.patch
14f8ab
Patch0044: 0044-cluster-ec-Don-t-enqueue-an-entry-if-it-is-already-h.patch
14f8ab
Patch0045: 0045-glusterd-fix-txn-id-mem-leak.patch
14f8ab
Patch0046: 0046-protocol-client-Do-not-fallback-to-anon-fd-if-fd-is-.patch
14f8ab
Patch0047: 0047-client-rpc-Fix-the-payload-being-sent-on-the-wire.patch
14f8ab
Patch0048: 0048-gfapi-Unblock-epoll-thread-for-upcall-processing.patch
14f8ab
Patch0049: 0049-transport-socket-log-shutdown-msg-occasionally.patch
14f8ab
Patch0050: 0050-geo-rep-Fix-syncing-multiple-rename-of-symlink.patch
14f8ab
Patch0051: 0051-spec-update-rpm-install-condition.patch
14f8ab
Patch0052: 0052-geo-rep-IPv6-support.patch
14f8ab
Patch0053: 0053-Revert-packaging-ganesha-remove-glusterfs-ganesha-su.patch
14f8ab
Patch0054: 0054-Revert-glusterd-storhaug-remove-ganesha.patch
14f8ab
Patch0055: 0055-Revert-storhaug-HA-first-step-remove-resource-agents.patch
14f8ab
Patch0056: 0056-common-ha-fixes-for-Debian-based-systems.patch
14f8ab
Patch0057: 0057-ganesha-scripts-Remove-export-entries-from-ganesha.c.patch
14f8ab
Patch0058: 0058-glusterd-ganesha-During-volume-delete-remove-the-gan.patch
14f8ab
Patch0059: 0059-glusterd-ganesha-throw-proper-error-for-gluster-nfs-.patch
14f8ab
Patch0060: 0060-ganesha-scripts-Stop-ganesha-process-on-all-nodes-if.patch
14f8ab
Patch0061: 0061-ganesha-allow-refresh-config-and-volume-export-unexp.patch
14f8ab
Patch0062: 0062-glusterd-ganesha-perform-removal-of-ganesha.conf-on-.patch
14f8ab
Patch0063: 0063-glusterd-ganesha-update-cache-invalidation-properly-.patch
14f8ab
Patch0064: 0064-glusterd-ganesha-return-proper-value-in-pre_setup.patch
14f8ab
Patch0065: 0065-ganesha-scripts-remove-dependency-over-export-config.patch
14f8ab
Patch0066: 0066-glusterd-ganesha-add-proper-NULL-check-in-manage_exp.patch
14f8ab
Patch0067: 0067-ganesha-minor-improvments-for-commit-e91cdf4-17081.patch
14f8ab
Patch0068: 0068-common-ha-surviving-ganesha.nfsd-not-put-in-grace-on.patch
14f8ab
Patch0069: 0069-common-ha-enable-and-disable-selinux-ganesha_use_fus.patch
14f8ab
Patch0070: 0070-packaging-glusterfs-ganesha-update-sometimes-fails-s.patch
14f8ab
Patch0071: 0071-common-ha-enable-and-disable-selinux-gluster_use_exe.patch
14f8ab
Patch0072: 0072-ganesha-ha-don-t-set-SELinux-booleans-if-SELinux-is-.patch
14f8ab
Patch0073: 0073-build-remove-ganesha-dependency-on-selinux-policy.patch
14f8ab
Patch0074: 0074-common-ha-enable-pacemaker-at-end-of-setup.patch
14f8ab
Patch0075: 0075-common-ha-Fix-an-incorrect-syntax-during-setup.patch
14f8ab
Patch0076: 0076-glusterd-ganesha-change-voltype-for-ganesha.enable-i.patch
14f8ab
Patch0077: 0077-glusterd-ganesha-create-remove-export-file-only-from.patch
14f8ab
Patch0078: 0078-common-ha-scripts-pass-the-list-of-servers-properly-.patch
14f8ab
Patch0079: 0079-common-ha-All-statd-related-files-need-to-be-owned-b.patch
14f8ab
Patch0080: 0080-glusterd-ganesha-Skip-non-ganesha-nodes-properly-for.patch
14f8ab
Patch0081: 0081-ganesha-ha-ensure-pacemaker-is-enabled-after-setup.patch
14f8ab
Patch0082: 0082-build-Add-dependency-on-netstat-for-glusterfs-ganesh.patch
14f8ab
Patch0083: 0083-common-ha-enable-and-disable-selinux-ganesha_use_fus.patch
14f8ab
Patch0084: 0084-glusterd-Fix-duplicate-client_op_version-in-info-fil.patch
14f8ab
Patch0085: 0085-Revert-all-remove-code-which-is-not-being-considered.patch
14f8ab
Patch0086: 0086-Revert-tiering-remove-the-translator-from-build-and-.patch
14f8ab
Patch0087: 0087-ganesha-fixing-minor-issues-after-the-backport-from-.patch
14f8ab
Patch0088: 0088-tier-fix-failures-noticed-during-tier-start-and-tier.patch
14f8ab
Patch0089: 0089-glusterd-gNFS-On-post-upgrade-to-3.2-disable-gNFS-fo.patch
14f8ab
Patch0090: 0090-Revert-build-conditionally-build-legacy-gNFS-server-.patch
14f8ab
Patch0091: 0091-glusterd-gNFS-explicitly-set-nfs.disable-to-off-afte.patch
14f8ab
Patch0092: 0092-logging-Fix-GF_LOG_OCCASSIONALLY-API.patch
14f8ab
Patch0093: 0093-glusterd-Change-op-version-of-cache-invalidation-in-.patch
14f8ab
Patch0094: 0094-glusterd-load-ctime-in-the-client-graph-only-if-it-s.patch
14f8ab
Patch0095: 0095-cluster-afr-Remove-local-from-owners_list-on-failure.patch
14f8ab
Patch0096: 0096-core-Brick-is-not-able-to-detach-successfully-in-bri.patch
14f8ab
Patch0097: 0097-glusterd-tier-while-doing-an-attach-tier-the-self-he.patch
14f8ab
Patch0098: 0098-mgmt-shd-Implement-multiplexing-in-self-heal-daemon.patch
14f8ab
Patch0099: 0099-client-fini-return-fini-after-rpc-cleanup.patch
14f8ab
Patch0100: 0100-clnt-rpc-ref-leak-during-disconnect.patch
14f8ab
Patch0101: 0101-shd-mux-Fix-coverity-issues-introduced-by-shd-mux-pa.patch
14f8ab
Patch0102: 0102-rpc-transport-Missing-a-ref-on-dict-while-creating-t.patch
14f8ab
Patch0103: 0103-dht-NULL-check-before-setting-error-flag.patch
14f8ab
Patch0104: 0104-afr-shd-Cleanup-self-heal-daemon-resources-during-af.patch
14f8ab
Patch0105: 0105-core-Log-level-changes-do-not-effect-on-running-clie.patch
14f8ab
Patch0106: 0106-libgfchangelog-use-find_library-to-locate-shared-lib.patch
14f8ab
Patch0107: 0107-gfapi-add-function-to-set-client-pid.patch
14f8ab
Patch0108: 0108-afr-add-client-pid-to-all-gf_event-calls.patch
14f8ab
Patch0109: 0109-glusterd-Optimize-glusterd-handshaking-code-path.patch
14f8ab
Patch0110: 0110-tier-shd-glusterd-with-shd-mux-the-shd-volfile-path-.patch
14f8ab
Patch0111: 0111-glusterd-fix-loading-ctime-in-client-graph-logic.patch
14f8ab
Patch0112: 0112-geo-rep-fix-incorrectly-formatted-authorized_keys.patch
14f8ab
Patch0113: 0113-spec-Glusterd-did-not-start-by-default-after-node-re.patch
14f8ab
Patch0114: 0114-core-fix-hang-issue-in-__gf_free.patch
14f8ab
Patch0115: 0115-core-only-log-seek-errors-if-SEEK_HOLE-SEEK_DATA-is-.patch
14f8ab
Patch0116: 0116-cluster-ec-fix-fd-reopen.patch
14f8ab
Patch0117: 0117-spec-Remove-thin-arbiter-package.patch
14f8ab
Patch0118: 0118-tests-mark-thin-arbiter-test-ta.t-as-bad.patch
14f8ab
Patch0119: 0119-glusterd-provide-a-way-to-detach-failed-node.patch
14f8ab
Patch0120: 0120-glusterd-shd-Keep-a-ref-on-volinfo-until-attach-rpc-.patch
14f8ab
Patch0121: 0121-spec-glusterfs-devel-for-client-build-should-not-dep.patch
14f8ab
Patch0122: 0122-posix-ctime-Fix-stat-time-attributes-inconsistency-d.patch
14f8ab
Patch0123: 0123-ctime-Fix-log-repeated-logging-during-open.patch
14f8ab
Patch0124: 0124-spec-remove-duplicate-references-to-files.patch
14f8ab
Patch0125: 0125-glusterd-define-dumpops-in-the-xlator_api-of-gluster.patch
14f8ab
Patch0126: 0126-cluster-dht-refactor-dht-lookup-functions.patch
14f8ab
Patch0127: 0127-cluster-dht-Refactor-dht-lookup-functions.patch
14f8ab
Patch0128: 0128-glusterd-Fix-bulkvoldict-thread-logic-in-brick-multi.patch
14f8ab
Patch0129: 0129-core-handle-memory-accounting-correctly.patch
14f8ab
Patch0130: 0130-tier-test-new-tier-cmds.t-fails-after-a-glusterd-res.patch
14f8ab
Patch0131: 0131-tests-dht-Test-that-lookups-are-sent-post-brick-up.patch
14f8ab
Patch0132: 0132-glusterd-remove-duplicate-occurrence-of-features.sel.patch
14f8ab
Patch0133: 0133-glusterd-enable-fips-mode-rchecksum-for-new-volumes.patch
14f8ab
Patch0134: 0134-performance-write-behind-remove-request-from-wip-lis.patch
14f8ab
Patch0135: 0135-geo-rep-fix-incorrectly-formatted-authorized_keys.patch
14f8ab
Patch0136: 0136-glusterd-fix-inconsistent-global-option-output-in-vo.patch
14f8ab
Patch0137: 0137-shd-glusterd-Serialize-shd-manager-to-prevent-race-c.patch
14f8ab
Patch0138: 0138-glusterd-Add-gluster-volume-stop-operation-to-gluste.patch
14f8ab
Patch0139: 0139-ec-shd-Cleanup-self-heal-daemon-resources-during-ec-.patch
14f8ab
Patch0140: 0140-cluster-ec-Reopen-shouldn-t-happen-with-O_TRUNC.patch
14f8ab
Patch0141: 0141-socket-ssl-fix-crl-handling.patch
14f8ab
Patch0142: 0142-lock-check-null-value-of-dict-to-avoid-log-flooding.patch
14f8ab
Patch0143: 0143-packaging-Change-the-dependency-on-nfs-ganesha-to-2..patch
14f8ab
Patch0144: 0144-cluster-ec-honor-contention-notifications-for-partia.patch
14f8ab
Patch0145: 0145-core-Capture-process-memory-usage-at-the-time-of-cal.patch
14f8ab
Patch0146: 0146-dht-Custom-xattrs-are-not-healed-in-case-of-add-bric.patch
14f8ab
Patch0147: 0147-glusterd-bulkvoldict-thread-is-not-handling-all-volu.patch
14f8ab
Patch0148: 0148-cluster-dht-Lookup-all-files-when-processing-directo.patch
14f8ab
Patch0149: 0149-glusterd-Optimize-code-to-copy-dictionary-in-handsha.patch
14f8ab
Patch0150: 0150-libglusterfs-define-macros-needed-for-cloudsync.patch
14f8ab
Patch0151: 0151-mgmt-glusterd-Make-changes-related-to-cloudsync-xlat.patch
14f8ab
Patch0152: 0152-storage-posix-changes-with-respect-to-cloudsync.patch
14f8ab
Patch0153: 0153-features-cloudsync-Added-some-new-functions.patch
14f8ab
Patch0154: 0154-cloudsync-cvlt-Cloudsync-plugin-for-commvault-store.patch
14f8ab
Patch0155: 0155-cloudsync-Make-readdirp-return-stat-info-of-all-the-.patch
14f8ab
Patch0156: 0156-cloudsync-Fix-bug-in-cloudsync-fops-c.py.patch
14f8ab
Patch0157: 0157-afr-frame-Destroy-frame-after-afr_selfheal_entry_gra.patch
14f8ab
Patch0158: 0158-glusterfsd-cleanup-Protect-graph-object-under-a-lock.patch
14f8ab
Patch0159: 0159-glusterd-add-an-op-version-check.patch
14f8ab
Patch0160: 0160-geo-rep-Geo-rep-help-text-issue.patch
14f8ab
Patch0161: 0161-geo-rep-Fix-rename-with-existing-destination-with-sa.patch
14f8ab
Patch0162: 0162-geo-rep-Fix-sync-method-config.patch
14f8ab
Patch0163: 0163-geo-rep-Fix-sync-hang-with-tarssh.patch
14f8ab
Patch0164: 0164-cluster-ec-Fix-handling-of-heal-info-cases-without-l.patch
14f8ab
Patch0165: 0165-tests-shd-Add-test-coverage-for-shd-mux.patch
14f8ab
Patch0166: 0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch
14f8ab
Patch0167: 0167-glusterd-shd-Optimize-the-glustershd-manager-to-send.patch
14f8ab
Patch0168: 0168-cluster-dht-Fix-directory-perms-during-selfheal.patch
14f8ab
Patch0169: 0169-Build-Fix-spec-to-enable-rhel8-client-build.patch
14f8ab
Patch0170: 0170-geo-rep-Convert-gfid-conflict-resolutiong-logs-into-.patch
14f8ab
Patch0171: 0171-posix-add-storage.reserve-size-option.patch
14f8ab
Patch0172: 0172-ec-fini-Fix-race-with-ec_fini-and-ec_notify.patch
14f8ab
Patch0173: 0173-glusterd-store-fips-mode-rchecksum-option-in-the-inf.patch
14f8ab
Patch0174: 0174-xlator-log-Add-more-logging-in-xlator_is_cleanup_sta.patch
14f8ab
Patch0175: 0175-ec-fini-Fix-race-between-xlator-cleanup-and-on-going.patch
14f8ab
Patch0176: 0176-features-shard-Fix-crash-during-background-shard-del.patch
14f8ab
Patch0177: 0177-features-shard-Fix-extra-unref-when-inode-object-is-.patch
14f8ab
Patch0178: 0178-Cluster-afr-Don-t-treat-all-bricks-having-metadata-p.patch
14f8ab
Patch0179: 0179-tests-Fix-split-brain-favorite-child-policy.t-failur.patch
14f8ab
Patch0180: 0180-ganesha-scripts-Make-generate-epoch.py-python3-compa.patch
14f8ab
Patch0181: 0181-afr-log-before-attempting-data-self-heal.patch
14f8ab
Patch0182: 0182-geo-rep-fix-mountbroker-setup.patch
14f8ab
Patch0183: 0183-glusterd-svc-Stop-stale-process-using-the-glusterd_p.patch
14f8ab
Patch0184: 0184-tests-Add-gating-configuration-file-for-rhel8.patch
14f8ab
Patch0185: 0185-gfapi-provide-an-api-for-setting-statedump-path.patch
14f8ab
Patch0186: 0186-cli-Remove-brick-warning-seems-unnecessary.patch
14f8ab
Patch0187: 0187-gfapi-statedump_path-add-proper-version-number.patch
14f8ab
Patch0188: 0188-features-shard-Fix-integer-overflow-in-block-count-a.patch
14f8ab
Patch0189: 0189-features-shard-Fix-block-count-accounting-upon-trunc.patch
14f8ab
Patch0190: 0190-Build-removing-the-hardcoded-usage-of-python3.patch
14f8ab
Patch0191: 0191-Build-Update-python-shebangs-based-on-version.patch
14f8ab
Patch0192: 0192-build-Ensure-gluster-cli-package-is-built-as-part-of.patch
14f8ab
Patch0193: 0193-spec-fixed-python-dependency-for-rhel6.patch
14f8ab
Patch0194: 0194-stack-Make-sure-to-have-unique-call-stacks-in-all-ca.patch
14f8ab
Patch0195: 0195-build-package-glusterfs-ganesha-for-rhel7-and-above.patch
14f8ab
Patch0196: 0196-posix-ctime-Fix-ctime-upgrade-issue.patch
14f8ab
Patch0197: 0197-posix-fix-crash-in-posix_cs_set_state.patch
14f8ab
Patch0198: 0198-cluster-ec-Prevent-double-pre-op-xattrops.patch
14f8ab
Patch0199: 0199-upcall-Avoid-sending-notifications-for-invalid-inode.patch
14f8ab
Patch0200: 0200-gfapi-fix-incorrect-initialization-of-upcall-syncop-.patch
14f8ab
Patch0201: 0201-geo-rep-Fix-permissions-for-GEOREP_DIR-in-non-root-s.patch
14f8ab
Patch0202: 0202-shd-mux-Fix-race-between-mux_proc-unlink-and-stop.patch
14f8ab
Patch0203: 0203-glusterd-shd-Change-shd-logfile-to-a-unique-name.patch
14f8ab
Patch0204: 0204-glusterd-conditionally-clear-txn_opinfo-in-stage-op.patch
14f8ab
Patch0205: 0205-glusterd-Can-t-run-rebalance-due-to-long-unix-socket.patch
14f8ab
Patch0206: 0206-glusterd-ignore-user.-options-from-compatibility-che.patch
14f8ab
Patch0207: 0207-glusterd-fix-use-after-free-of-a-dict_t.patch
14f8ab
Patch0208: 0208-mem-pool-remove-dead-code.patch
14f8ab
Patch0209: 0209-core-avoid-dynamic-TLS-allocation-when-possible.patch
14f8ab
Patch0210: 0210-mem-pool.-c-h-minor-changes.patch
14f8ab
Patch0211: 0211-libglusterfs-Fix-compilation-when-disable-mempool-is.patch
14f8ab
Patch0212: 0212-core-fix-memory-allocation-issues.patch
14f8ab
Patch0213: 0213-cluster-dht-Strip-out-dht-xattrs.patch
14f8ab
Patch0214: 0214-geo-rep-Upgrading-config-file-to-new-version.patch
14f8ab
Patch0215: 0215-posix-modify-storage.reserve-option-to-take-size-and.patch
14f8ab
Patch0216: 0216-Test-case-fixe-for-downstream-3.5.0.patch
14f8ab
Patch0217: 0217-uss-Fix-tar-issue-with-ctime-and-uss-enabled.patch
14f8ab
Patch0218: 0218-graph-shd-Use-glusterfs_graph_deactivate-to-free-the.patch
14f8ab
Patch0219: 0219-posix-add-posix_set_ctime-in-posix_ftruncate.patch
14f8ab
Patch0220: 0220-graph-shd-Use-top-down-approach-while-cleaning-xlato.patch
14f8ab
Patch0221: 0221-protocol-client-propagte-GF_EVENT_CHILD_PING-only-fo.patch
14f8ab
Patch0222: 0222-cluster-dht-Fixed-a-memleak-in-dht_rename_cbk.patch
14f8ab
Patch0223: 0223-change-get_real_filename-implementation-to-use-ENOAT.patch
14f8ab
Patch0224: 0224-core-replace-inet_addr-with-inet_pton.patch
14f8ab
Patch0225: 0225-tests-utils-Fix-py2-py3-util-python-scripts.patch
14f8ab
Patch0226: 0226-geo-rep-fix-gluster-command-path-for-non-root-sessio.patch
14f8ab
Patch0227: 0227-glusterd-svc-update-pid-of-mux-volumes-from-the-shd-.patch
14f8ab
Patch0228: 0228-locks-enable-notify-contention-by-default.patch
14f8ab
Patch0229: 0229-glusterd-Show-the-correct-brick-status-in-get-state.patch
14f8ab
Patch0230: 0230-Revert-glusterd-svc-update-pid-of-mux-volumes-from-t.patch
14f8ab
Patch0231: 0231-Revert-graph-shd-Use-top-down-approach-while-cleanin.patch
14f8ab
Patch0232: 0232-cluster-afr-Fix-incorrect-reporting-of-gfid-type-mis.patch
14f8ab
Patch0233: 0233-Revert-graph-shd-Use-glusterfs_graph_deactivate-to-f.patch
14f8ab
Patch0234: 0234-Revert-glusterd-shd-Change-shd-logfile-to-a-unique-n.patch
14f8ab
Patch0235: 0235-Revert-glusterd-svc-Stop-stale-process-using-the-glu.patch
14f8ab
Patch0236: 0236-Revert-shd-mux-Fix-race-between-mux_proc-unlink-and-.patch
14f8ab
Patch0237: 0237-Revert-ec-fini-Fix-race-between-xlator-cleanup-and-o.patch
14f8ab
Patch0238: 0238-Revert-xlator-log-Add-more-logging-in-xlator_is_clea.patch
14f8ab
Patch0239: 0239-Revert-ec-fini-Fix-race-with-ec_fini-and-ec_notify.patch
14f8ab
Patch0240: 0240-Revert-glusterd-shd-Optimize-the-glustershd-manager-.patch
14f8ab
Patch0241: 0241-Revert-glusterd-svc-glusterd_svcs_stop-should-call-i.patch
14f8ab
Patch0242: 0242-Revert-tests-shd-Add-test-coverage-for-shd-mux.patch
14f8ab
Patch0243: 0243-Revert-glusterfsd-cleanup-Protect-graph-object-under.patch
14f8ab
Patch0244: 0244-Revert-ec-shd-Cleanup-self-heal-daemon-resources-dur.patch
14f8ab
Patch0245: 0245-Revert-shd-glusterd-Serialize-shd-manager-to-prevent.patch
14f8ab
Patch0246: 0246-Revert-glusterd-shd-Keep-a-ref-on-volinfo-until-atta.patch
14f8ab
Patch0247: 0247-Revert-afr-shd-Cleanup-self-heal-daemon-resources-du.patch
14f8ab
Patch0248: 0248-Revert-shd-mux-Fix-coverity-issues-introduced-by-shd.patch
14f8ab
Patch0249: 0249-Revert-client-fini-return-fini-after-rpc-cleanup.patch
14f8ab
Patch0250: 0250-Revert-mgmt-shd-Implement-multiplexing-in-self-heal-.patch
14f8ab
Patch0251: 0251-tests-Fix-bug-1717819-metadata-split-brain-detection.patch
14f8ab
Patch0252: 0252-glusterd-do-not-mark-skip_locking-as-true-for-geo-re.patch
14f8ab
Patch0253: 0253-core-fix-deadlock-between-statedump-and-fd_anonymous.patch
14f8ab
Patch0254: 0254-Detach-iot_worker-to-release-its-resources.patch
14f8ab
Patch0255: 0255-Revert-tier-shd-glusterd-with-shd-mux-the-shd-volfil.patch
14f8ab
Patch0256: 0256-features-snapview-server-use-the-same-volfile-server.patch
14f8ab
Patch0257: 0257-geo-rep-Test-case-for-upgrading-config-file.patch
14f8ab
Patch0258: 0258-geo-rep-Fix-mount-broker-setup-issue.patch
14f8ab
Patch0259: 0259-gluster-block-tuning-perf-options.patch
14f8ab
Patch0260: 0260-ctime-Set-mdata-xattr-on-legacy-files.patch
14f8ab
Patch0261: 0261-features-utime-Fix-mem_put-crash.patch
14f8ab
Patch0262: 0262-glusterd-ctime-Disable-ctime-by-default.patch
14f8ab
Patch0263: 0263-tests-fix-ctime-related-tests.patch
14f8ab
Patch0264: 0264-gfapi-Fix-deadlock-while-processing-upcall.patch
14f8ab
Patch0265: 0265-fuse-add-missing-GF_FREE-to-fuse_interrupt.patch
14f8ab
Patch0266: 0266-geo-rep-Fix-mount-broker-setup-issue.patch
14f8ab
Patch0267: 0267-posix-ctime-Fix-race-during-lookup-ctime-xattr-heal.patch
14f8ab
Patch0268: 0268-rpc-transport-have-default-listen-port.patch
14f8ab
Patch0269: 0269-ec-fix-truncate-lock-to-cover-the-write-in-tuncate-c.patch
14f8ab
Patch0270: 0270-cluster-ec-inherit-healing-from-lock-when-it-has-inf.patch
14f8ab
Patch0271: 0271-cluster-ec-fix-EIO-error-for-concurrent-writes-on-sp.patch
14f8ab
Patch0272: 0272-cluster-ec-Always-read-from-good-mask.patch
14f8ab
Patch0273: 0273-cluster-ec-Fix-reopen-flags-to-avoid-misbehavior.patch
14f8ab
Patch0274: 0274-cluster-ec-Update-lock-good_mask-on-parent-fop-failu.patch
14f8ab
Patch0275: 0275-cluster-ec-Create-heal-task-with-heal-process-id.patch
14f8ab
Patch0276: 0276-features-utime-always-update-ctime-at-setattr.patch
14f8ab
Patch0277: 0277-geo-rep-Fix-Config-Get-Race.patch
14f8ab
Patch0278: 0278-geo-rep-Fix-worker-connection-issue.patch
14f8ab
Patch0279: 0279-posix-In-brick_mux-brick-is-crashed-while-start-stop.patch
14f8ab
Patch0280: 0280-performance-md-cache-Do-not-skip-caching-of-null-cha.patch
14f8ab
Patch0281: 0281-ctime-Fix-incorrect-realtime-passed-to-frame-root-ct.patch
14f8ab
Patch0282: 0282-geo-rep-Fix-the-name-of-changelog-archive-file.patch
14f8ab
Patch0283: 0283-ctime-Fix-ctime-issue-with-utime-family-of-syscalls.patch
14f8ab
Patch0284: 0284-posix-log-aio_error-return-codes-in-posix_fs_health_.patch
14f8ab
Patch0285: 0285-glusterd-glusterd-service-is-getting-timed-out-on-sc.patch
14f8ab
Patch0286: 0286-glusterfs.spec.in-added-script-files-for-machine-com.patch
14f8ab
Patch0287: 0287-cluster-ec-Fail-fsync-flush-for-files-on-update-size.patch
14f8ab
Patch0288: 0288-cluster-ec-Fix-coverity-issues.patch
14f8ab
Patch0289: 0289-cluster-ec-quorum-count-implementation.patch
14f8ab
Patch0290: 0290-glusterd-tag-disperse.quorum-count-for-31306.patch
14f8ab
Patch0291: 0291-cluster-ec-Mark-release-only-when-it-is-acquired.patch
14f8ab
Patch0292: 0292-rpc-Update-address-family-if-it-is-not-provide-in-cm.patch
14f8ab
Patch0293: 0293-glusterd-IPV6-hostname-address-is-not-parsed-correct.patch
14f8ab
Patch0294: 0294-eventsapi-Set-IPv4-IPv6-family-based-on-input-IP.patch
14f8ab
Patch0295: 0295-ctime-rebalance-Heal-ctime-xattr-on-directory-during.patch
14f8ab
Patch0296: 0296-glusterfind-pre-command-failure-on-a-modify.patch
14f8ab
Patch0297: 0297-rpmbuild-fixing-the-build-errors-with-2a905a8ae.patch
14f8ab
Patch0298: 0298-geo-rep-fix-sub-command-during-worker-connection.patch
14f8ab
Patch0299: 0299-geo-rep-performance-improvement-while-syncing-rename.patch
14f8ab
Patch0300: 0300-cli-remove-the-warning-displayed-when-remove-brick-s.patch
14f8ab
Patch0301: 0301-posix-Brick-is-going-down-unexpectedly.patch
14f8ab
Patch0302: 0302-cluster-ec-prevent-filling-shd-log-with-table-not-fo.patch
14f8ab
Patch0303: 0303-posix-heketidbstorage-bricks-go-down-during-PVC-crea.patch
14f8ab
Patch0304: 0304-cluster-dht-Correct-fd-processing-loop.patch
14f8ab
Patch0305: 0305-glusterd-rebalance-start-should-fail-when-quorum-is-.patch
14f8ab
Patch0306: 0306-cli-fix-distCount-value.patch
14f8ab
Patch0307: 0307-ssl-fix-RHEL8-regression-failure.patch
14f8ab
Patch0308: 0308-dht-Rebalance-causing-IO-Error-File-descriptor-in-ba.patch
14f8ab
Patch0309: 0309-geo-rep-Fix-config-upgrade-on-non-participating-node.patch
14f8ab
Patch0310: 0310-tests-test-case-for-non-root-geo-rep-setup.patch
14f8ab
Patch0311: 0311-geo-rep-Fix-Permission-denied-traceback-on-non-root-.patch
14f8ab
Patch0312: 0312-Scripts-quota_fsck-script-KeyError-contri_size.patch
14f8ab
Patch0313: 0313-extras-Cgroup-CPU-Mem-restriction-are-not-working-on.patch
14f8ab
Patch0314: 0314-glusterd-tier-is_tier_enabled-inserted-causing-check.patch
14f8ab
Patch0315: 0315-geo-rep-Fix-py2-py3-compatibility-in-repce.patch
14f8ab
Patch0316: 0316-spec-fixed-python-prettytable-dependency-for-rhel6.patch
14f8ab
Patch0317: 0317-Update-rfc.sh-to-rhgs-3.5.1.patch
14f8ab
Patch0318: 0318-Update-rfc.sh-to-rhgs-3.5.1.patch
14f8ab
Patch0319: 0319-features-snapview-server-obtain-the-list-of-snapshot.patch
14f8ab
Patch0320: 0320-gf-event-Handle-unix-volfile-servers.patch
14f8ab
Patch0321: 0321-Adding-white-spaces-to-description-of-set-group.patch
14f8ab
Patch0322: 0322-glusterd-display-correct-rebalance-data-size-after-g.patch
14f8ab
Patch0323: 0323-cli-display-detailed-rebalance-info.patch
14f8ab
Patch0324: 0324-extras-hooks-Add-SELinux-label-on-new-bricks-during-.patch
14f8ab
Patch0325: 0325-extras-hooks-Install-and-package-newly-added-post-ad.patch
14f8ab
Patch0326: 0326-tests-subdir-mount.t-is-failing-for-brick_mux-regrss.patch
14f8ab
Patch0327: 0327-glusterfind-integrate-with-gfid2path.patch
14f8ab
Patch0328: 0328-glusterd-Add-warning-and-abort-in-case-of-failures-i.patch
14f8ab
Patch0329: 0329-cluster-afr-Heal-entries-when-there-is-a-source-no-h.patch
14f8ab
Patch0330: 0330-mount.glusterfs-change-the-error-message.patch
14f8ab
Patch0331: 0331-features-locks-Do-special-handling-for-op-version-3..patch
14f8ab
Patch0332: 0332-Removing-one-top-command-from-gluster-v-help.patch
14f8ab
Patch0333: 0333-rpc-Synchronize-slot-allocation-code.patch
14f8ab
Patch0334: 0334-dht-log-getxattr-failure-for-node-uuid-at-DEBUG.patch
14f8ab
Patch0335: 0335-tests-RHEL8-test-failure-fixes-for-RHGS.patch
14f8ab
Patch0336: 0336-spec-check-and-return-exit-code-in-rpm-scripts.patch
14f8ab
Patch0337: 0337-fuse-Set-limit-on-invalidate-queue-size.patch
14f8ab
Patch0338: 0338-glusterfs-fuse-Reduce-the-default-lru-limit-value.patch
14f8ab
Patch0339: 0339-geo-rep-fix-integer-config-validation.patch
14f8ab
Patch0340: 0340-rpc-event_slot_alloc-converted-infinite-loop-after-r.patch
14f8ab
Patch0341: 0341-socket-fix-error-handling.patch
14f8ab
Patch0342: 0342-Revert-hooks-remove-selinux-hooks.patch
14f8ab
Patch0343: 0343-extras-hooks-syntactical-errors-in-SELinux-hooks-sci.patch
14f8ab
Patch0344: 0344-Revert-all-fixes-to-include-SELinux-hook-scripts.patch
14f8ab
Patch0345: 0345-read-ahead-io-cache-turn-off-by-default.patch
14f8ab
Patch0346: 0346-fuse-degrade-logging-of-write-failure-to-fuse-device.patch
14f8ab
Patch0347: 0347-tools-glusterfind-handle-offline-bricks.patch
14f8ab
Patch0348: 0348-glusterfind-Fix-py2-py3-issues.patch
14f8ab
Patch0349: 0349-glusterfind-python3-compatibility.patch
14f8ab
Patch0350: 0350-tools-glusterfind-Remove-an-extra-argument.patch
14f8ab
Patch0351: 0351-server-Mount-fails-after-reboot-1-3-gluster-nodes.patch
14f8ab
Patch0352: 0352-spec-fixed-missing-dependencies-for-glusterfs-clouds.patch
14f8ab
Patch0353: 0353-build-glusterfs-ganesha-pkg-requires-python3-policyc.patch
14f8ab
Patch0354: 0354-core-fix-memory-pool-management-races.patch
14f8ab
Patch0355: 0355-core-Prevent-crash-on-process-termination.patch
14f8ab
Patch0356: 0356-Update-rfc.sh-to-rhgs-3.5.1-rhel-8.patch
14f8ab
Patch0357: 0357-ganesha-ha-updates-for-pcs-0.10.x-i.e.-in-Fedora-29-.patch
14f8ab
Patch0358: 0358-inode-fix-wrong-loop-count-in-__inode_ctx_free.patch
14f8ab
Patch0359: 0359-dht-gf_defrag_process_dir-is-called-even-if-gf_defra.patch
14f8ab
Patch0360: 0360-rpc-Make-ssl-log-more-useful.patch
14f8ab
Patch0361: 0361-snap_scheduler-python3-compatibility-and-new-test-ca.patch
14f8ab
Patch0362: 0362-write-behind-fix-data-corruption.patch
14f8ab
Patch0363: 0363-common-ha-cluster-status-shows-FAILOVER-when-actuall.patch
14f8ab
Patch0364: 0364-dht-fixing-rebalance-failures-for-files-with-holes.patch
14f8ab
Patch0365: 0365-build-geo-rep-requires-relevant-selinux-permission-f.patch
14f8ab
Patch0366: 0366-snapshot-fix-python3-issue-in-gcron.patch
14f8ab
Patch0367: 0367-dht-Handle-setxattr-and-rm-race-for-directory-in-reb.patch
14f8ab
Patch0368: 0368-Update-rfc.sh-to-rhgs-3.5.2.patch
14f8ab
Patch0369: 0369-cluster-ec-Return-correct-error-code-and-log-message.patch
14f8ab
Patch0370: 0370-dht-Do-opendir-selectively-in-gf_defrag_process_dir.patch
14f8ab
Patch0371: 0371-common-ha-cluster-status-shows-FAILOVER-when-actuall.patch
14f8ab
Patch0372: 0372-posix-fix-seek-functionality.patch
14f8ab
Patch0373: 0373-build-geo-rep-sub-pkg-requires-policycoreutils-pytho.patch
14f8ab
Patch0374: 0374-open-behind-fix-missing-fd-reference.patch
14f8ab
Patch0375: 0375-features-shard-Send-correct-size-when-reads-are-sent.patch
14f8ab
Patch0376: 0376-features-shard-Fix-crash-during-shards-cleanup-in-er.patch
14f8ab
Patch0377: 0377-syncop-improve-scaling-and-implement-more-tools.patch
14f8ab
Patch0378: 0378-Revert-open-behind-fix-missing-fd-reference.patch
14f8ab
Patch0379: 0379-glusterd-add-missing-synccond_broadcast.patch
14f8ab
Patch0380: 0380-features-shard-Aggregate-size-block-count-in-iatt-be.patch
14f8ab
Patch0381: 0381-dht-add-null-check-in-gf_defrag_free_dir_dfmeta.patch
14f8ab
Patch0382: 0382-features-shard-Aggregate-file-size-block-count-befor.patch
14f8ab
Patch0383: 0383-common-ha-ganesha-ha.sh-bad-test-for-rhel-centos-for.patch
14f8ab
Patch0384: 0384-Update-rfc.sh-to-rhgs-3.5.3.patch
14f8ab
Patch0385: 0385-glusterd-start-glusterd-automatically-on-abnormal-sh.patch
14f8ab
Patch0386: 0386-glusterd-increase-the-StartLimitBurst.patch
14f8ab
Patch0387: 0387-To-fix-readdir-ahead-memory-leak.patch
14f8ab
Patch0388: 0388-rpc-Cleanup-SSL-specific-data-at-the-time-of-freeing.patch
14f8ab
Patch0389: 0389-posix-Avoid-diskpace-error-in-case-of-overwriting-th.patch
14f8ab
Patch0390: 0390-glusterd-deafult-options-after-volume-reset.patch
14f8ab
Patch0391: 0391-glusterd-unlink-the-file-after-killing-the-process.patch
14f8ab
Patch0392: 0392-glusterd-Brick-process-fails-to-come-up-with-brickmu.patch
14f8ab
Patch0393: 0393-afr-restore-timestamp-of-files-during-metadata-heal.patch
14f8ab
Patch0394: 0394-man-gluster-Add-volume-top-command-to-gluster-man-pa.patch
14f8ab
Patch0395: 0395-Cli-Removing-old-log-rotate-command.patch
14f8ab
Patch0396: 0396-Updating-gluster-manual.patch
14f8ab
Patch0397: 0397-mgmt-brick-mux-Avoid-sending-two-response-when-attac.patch
14f8ab
Patch0398: 0398-ec-change-error-message-for-heal-commands-for-disper.patch
14f8ab
Patch0399: 0399-glusterd-coverity-fixes.patch
14f8ab
Patch0400: 0400-cli-throw-a-warning-if-replica-count-greater-than-3.patch
14f8ab
Patch0401: 0401-cli-change-the-warning-message.patch
14f8ab
Patch0402: 0402-afr-wake-up-index-healer-threads.patch
14f8ab
Patch0403: 0403-Fix-spurious-failure-in-bug-1744548-heal-timeout.t.patch
14f8ab
Patch0404: 0404-tests-Fix-spurious-failure.patch
14f8ab
Patch0405: 0405-core-fix-return-of-local-in-__nlc_inode_ctx_get.patch
14f8ab
Patch0406: 0406-afr-support-split-brain-CLI-for-replica-3.patch
14f8ab
Patch0407: 0407-geo-rep-Improving-help-message-in-schedule_georep.py.patch
14f8ab
Patch0408: 0408-geo-rep-Fix-ssh-port-validation.patch
14f8ab
Patch0409: 0409-system-posix-acl-update-ctx-only-if-iatt-is-non-NULL.patch
14f8ab
Patch0410: 0410-afr-prevent-spurious-entry-heals-leading-to-gfid-spl.patch
14f8ab
Patch0411: 0411-tools-glusterfind-validate-session-name.patch
14f8ab
Patch0412: 0412-gluster-smb-add-smb-parameter-when-access-gluster-by.patch
14f8ab
Patch0413: 0413-extras-hooks-Remove-smb.conf-parameter-allowing-gues.patch
14f8ab
Patch0414: 0414-cluster-syncop-avoid-duplicate-unlock-of-inodelk-ent.patch
14f8ab
Patch0415: 0415-dht-Fix-stale-layout-and-create-issue.patch
14f8ab
Patch0416: 0416-tests-fix-spurious-failure-of-bug-1402841.t-mt-dir-s.patch
14f8ab
Patch0417: 0417-events-fix-IPv6-memory-corruption.patch
14f8ab
Patch0418: 0418-md-cache-avoid-clearing-cache-when-not-necessary.patch
14f8ab
Patch0419: 0419-cluster-afr-fix-race-when-bricks-come-up.patch
14f8ab
Patch0420: 0420-scripts-quota_fsck-script-TypeError-d-format-not-dic.patch
14f8ab
Patch0421: 0421-Improve-logging-in-EC-client-and-lock-translator.patch
14f8ab
Patch0422: 0422-cluster-afr-Prioritize-ENOSPC-over-other-errors.patch
14f8ab
Patch0423: 0423-ctime-Fix-ctime-inconsisteny-with-utimensat.patch
14f8ab
Patch0424: 0424-afr-make-heal-info-lockless.patch
14f8ab
Patch0425: 0425-tests-Fix-spurious-self-heald.t-failure.patch
14f8ab
Patch0426: 0426-geo-rep-Fix-for-Transport-End-Point-not-connected-is.patch
14f8ab
Patch0427: 0427-storage-posix-Fixing-a-coverity-issue.patch
14f8ab
Patch0428: 0428-glusterd-ganesha-fixing-resource-leak-in-tear_down_c.patch
14f8ab
Patch0429: 0429-dht-rebalance-fixing-failure-occurace-due-to-rebalan.patch
14f8ab
Patch0430: 0430-Fix-some-Null-pointer-dereference-coverity-issues.patch
14f8ab
Patch0431: 0431-glusterd-check-for-same-node-while-adding-bricks-in-.patch
14f8ab
Patch0432: 0432-glusterd-Fix-coverity-defects-put-coverity-annotatio.patch
14f8ab
Patch0433: 0433-socket-Resolve-ssl_ctx-leak-for-a-brick-while-only-m.patch
14f8ab
Patch0434: 0434-glusterd-ganesha-fix-Coverity-CID-1405785.patch
14f8ab
Patch0435: 0435-glusterd-coverity-fix.patch
14f8ab
Patch0436: 0436-glusterd-coverity-fixes.patch
14f8ab
Patch0437: 0437-glusterd-prevent-use-after-free-in-glusterd_op_ac_se.patch
14f8ab
Patch0438: 0438-dht-sparse-files-rebalance-enhancements.patch
14f8ab
Patch0439: 0439-cluster-afr-Delay-post-op-for-fsync.patch
14f8ab
Patch0440: 0440-glusterd-snapshot-Improve-log-message-during-snapsho.patch
14f8ab
Patch0441: 0441-fuse-occasional-logging-for-fuse-device-weird-write-.patch
14f8ab
Patch0442: 0442-fuse-correctly-handle-setxattr-values.patch
14f8ab
Patch0443: 0443-fuse-fix-high-sev-coverity-issue.patch
14f8ab
Patch0444: 0444-mount-fuse-Fixing-a-coverity-issue.patch
14f8ab
Patch0445: 0445-feature-changelog-Avoid-thread-creation-if-xlator-is.patch
14f8ab
Patch0446: 0446-bitrot-Make-number-of-signer-threads-configurable.patch
14f8ab
Patch0447: 0447-core-brick_mux-brick-crashed-when-creating-and-delet.patch
14f8ab
Patch0448: 0448-Posix-Use-simple-approach-to-close-fd.patch
14f8ab
Patch0449: 0449-test-Test-case-brick-mux-validation-in-cluster.t-is-.patch
14f8ab
Patch0450: 0450-tests-basic-ctime-enable-ctime-before-testing.patch
14f8ab
Patch0451: 0451-extras-Modify-group-virt-to-include-network-related-.patch
14f8ab
Patch0452: 0452-Tier-DHT-Handle-the-pause-case-missed-out.patch
14f8ab
Patch0453: 0453-glusterd-add-brick-command-failure.patch
14f8ab
Patch0454: 0454-features-locks-avoid-use-after-freed-of-frame-for-bl.patch
14f8ab
Patch0455: 0455-locks-prevent-deletion-of-locked-entries.patch
14f8ab
Patch0456: 0456-add-clean-local-after-grant-lock.patch
14f8ab
Patch0457: 0457-cluster-ec-Improve-detection-of-new-heals.patch
14f8ab
Patch0458: 0458-features-bit-rot-stub-clean-the-mutex-after-cancelli.patch
14f8ab
Patch0459: 0459-features-bit-rot-Unconditionally-sign-the-files-duri.patch
14f8ab
Patch0460: 0460-cluster-ec-Remove-stale-entries-from-indices-xattrop.patch
14f8ab
Patch0461: 0461-geo-replication-Fix-IPv6-parsing.patch
14f8ab
Patch0462: 0462-Issue-with-gf_fill_iatt_for_dirent.patch
14f8ab
Patch0463: 0463-cluster-ec-Change-handling-of-heal-failure-to-avoid-.patch
14f8ab
Patch0464: 0464-storage-posix-Remove-nr_files-usage.patch
14f8ab
Patch0465: 0465-posix-Implement-a-janitor-thread-to-close-fd.patch
14f8ab
Patch0466: 0466-cluster-ec-Change-stale-index-handling.patch
14f8ab
Patch0467: 0467-build-Added-dependency-for-glusterfs-selinux.patch
14f8ab
Patch0468: 0468-build-Update-the-glusterfs-selinux-version.patch
14f8ab
Patch0469: 0469-cluster-ec-Don-t-trigger-heal-for-stale-index.patch
14f8ab
Patch0470: 0470-extras-snap_scheduler-changes-in-gluster-shared-stor.patch
14f8ab
Patch0471: 0471-nfs-ganesha-gluster_shared_storage-fails-to-automoun.patch
14f8ab
Patch0472: 0472-geo-rep-gluster_shared_storage-fails-to-automount-on.patch
14f8ab
Patch0473: 0473-glusterd-Fix-Add-brick-with-increasing-replica-count.patch
14f8ab
Patch0474: 0474-features-locks-posixlk-clear-lock-should-set-error-a.patch
14f8ab
Patch0475: 0475-fuse-lock-interrupt-fix-flock_interrupt.t.patch
14f8ab
Patch0476: 0476-mount-fuse-use-cookies-to-get-fuse-interrupt-record-.patch
14f8ab
Patch0477: 0477-glusterd-snapshot-Snapshot-prevalidation-failure-not.patch
14f8ab
Patch0478: 0478-DHT-Fixing-rebalance-failure-on-issuing-stop-command.patch
14f8ab
Patch0479: 0479-ganesha-ha-revised-regex-exprs-for-status.patch
14f8ab
Patch0480: 0480-DHT-Rebalance-Ensure-Rebalance-reports-status-only-o.patch
14f8ab
Patch0481: 0481-RHGS-3.5.3-rebuild-to-ship-with-RHEL.patch
14f8ab
Patch0482: 0482-logger-Always-print-errors-in-english.patch
14f8ab
Patch0483: 0483-afr-more-quorum-checks-in-lookup-and-new-entry-marki.patch
14f8ab
Patch0484: 0484-glusterd-rebalance-status-displays-stats-as-0-after-.patch
14f8ab
Patch0485: 0485-cli-rpc-conditional-init-of-global-quota-rpc-1578.patch
14f8ab
Patch0486: 0486-glusterd-brick-sock-file-deleted-log-error-1560.patch
14f8ab
Patch0487: 0487-Events-Log-file-not-re-opened-after-logrotate.patch
14f8ab
Patch0488: 0488-glusterd-afr-enable-granular-entry-heal-by-default.patch
14f8ab
Patch0489: 0489-glusterd-fix-bug-in-enabling-granular-entry-heal.patch
14f8ab
Patch0490: 0490-Segmentation-fault-occurs-during-truncate.patch
14f8ab
Patch0491: 0491-glusterd-mount-directory-getting-truncated-on-mounti.patch
14f8ab
Patch0492: 0492-afr-lookup-Pass-xattr_req-in-while-doing-a-selfheal-.patch
14f8ab
Patch0493: 0493-geo-rep-Note-section-is-required-for-ignore_deletes.patch
14f8ab
Patch0494: 0494-glusterd-start-the-brick-on-a-different-port.patch
14f8ab
Patch0495: 0495-geo-rep-descriptive-message-when-worker-crashes-due-.patch
14f8ab
Patch0496: 0496-posix-Use-MALLOC-instead-of-alloca-to-allocate-memor.patch
14f8ab
Patch0497: 0497-socket-Use-AES128-cipher-in-SSL-if-AES-is-supported-.patch
14f8ab
Patch0498: 0498-geo-rep-Fix-corner-case-in-rename-on-mkdir-during-hy.patch
14f8ab
Patch0499: 0499-gfapi-give-appropriate-error-when-size-exceeds.patch
14f8ab
Patch0500: 0500-features-shard-Convert-shard-block-indices-to-uint64.patch
14f8ab
Patch0501: 0501-Cli-Removing-old-syntax-of-tier-cmds-from-help-menu.patch
14f8ab
Patch0502: 0502-dht-fixing-a-permission-update-issue.patch
14f8ab
Patch0503: 0503-gfapi-Suspend-synctasks-instead-of-blocking-them.patch
14f8ab
Patch0504: 0504-io-stats-Configure-ios_sample_buf_size-based-on-samp.patch
14f8ab
Patch0505: 0505-trash-Create-inode_table-only-while-feature-is-enabl.patch
14f8ab
Patch0506: 0506-posix-Attach-a-posix_spawn_disk_thread-with-glusterf.patch
14f8ab
Patch0507: 0507-inode-make-critical-section-smaller.patch
14f8ab
Patch0508: 0508-fuse-fetch-arbitrary-number-of-groups-from-proc-pid-.patch
14f8ab
Patch0509: 0509-core-configure-optimum-inode-table-hash_size-for-shd.patch
14f8ab
Patch0510: 0510-glusterd-brick_mux-Optimize-friend-handshake-code-to.patch
14f8ab
Patch0511: 0511-features-shard-Missing-format-specifier.patch
14f8ab
Patch0512: 0512-glusterd-shared-storage-mount-fails-in-ipv6-environm.patch
14f8ab
Patch0513: 0513-afr-mark-pending-xattrs-as-a-part-of-metadata-heal.patch
14f8ab
Patch0514: 0514-afr-event-gen-changes.patch
14f8ab
Patch0515: 0515-cluster-afr-Heal-directory-rename-without-rmdir-mkdi.patch
14f8ab
Patch0516: 0516-afr-return-EIO-for-gfid-split-brains.patch
14f8ab
Patch0517: 0517-gfapi-glfs_h_creat_open-new-API-to-create-handle-and.patch
14f8ab
Patch0518: 0518-glusterd-Fix-for-shared-storage-in-ipv6-env.patch
14f8ab
Patch0519: 0519-glusterfs-events-Fix-incorrect-attribute-access-2002.patch
14f8ab
Patch0520: 0520-performance-open-behind-seek-fop-should-open_and_res.patch
14f8ab
Patch0521: 0521-open-behind-fix-missing-fd-reference.patch
14f8ab
Patch0522: 0522-lcov-improve-line-coverage.patch
14f8ab
Patch0523: 0523-open-behind-rewrite-of-internal-logic.patch
14f8ab
Patch0524: 0524-open-behind-fix-call_frame-leak.patch
14f8ab
Patch0525: 0525-open-behind-implement-create-fop.patch
14f8ab
Patch0526: 0526-Quota-quota_fsck.py-converting-byte-string-to-string.patch
14f8ab
Patch0527: 0527-Events-Socket-creation-after-getaddrinfo-and-IPv4-an.patch
14f8ab
Patch0528: 0528-Extras-Removing-xattr_analysis-script.patch
14f8ab
Patch0529: 0529-geo-rep-prompt-should-work-for-ignore_deletes.patch
14f8ab
Patch0530: 0530-gfapi-avoid-crash-while-logging-message.patch
14f8ab
Patch0531: 0531-Glustereventsd-Default-port-change-2091.patch
14f8ab
Patch0532: 0532-glusterd-fix-for-starting-brick-on-new-port.patch
14f8ab
Patch0533: 0533-glusterd-Rebalance-cli-is-not-showing-correct-status.patch
14f8ab
Patch0534: 0534-glusterd-Resolve-use-after-free-bug-2181.patch
14f8ab
Patch0535: 0535-multiple-files-use-dict_allocate_and_serialize-where.patch
14f8ab
Patch0536: 0536-dht-Ongoing-IO-is-failed-during-volume-shrink-operat.patch
14f8ab
Patch0537: 0537-cluster-afr-Fix-race-in-lockinfo-f-getxattr.patch
14f8ab
Patch0538: 0538-afr-fix-coverity-issue-introduced-by-90cefde.patch
14f8ab
Patch0539: 0539-extras-disable-lookup-optimize-in-virt-and-block-gro.patch
14f8ab
Patch0540: 0540-extras-Disable-write-behind-for-group-samba.patch
14f8ab
Patch0541: 0541-glusterd-volgen-Add-functionality-to-accept-any-cust.patch
14f8ab
Patch0542: 0542-xlaotrs-mgmt-Fixing-coverity-issue-1445996.patch
14f8ab
Patch0543: 0543-glusterd-handle-custom-xlator-failure-cases.patch
14f8ab
Patch0900: 0900-rhel-9.0-beta-build-fixing-gcc-10-and-LTO-errors.patch
14f8ab
Patch0901: 0901-contrib-remove-contrib-sunrpc-xdr_sizeof.c.patch
14f8ab
14f8ab
%description
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package includes the glusterfs binary, the glusterfsd daemon and the
14f8ab
libglusterfs and glusterfs translator modules common to both GlusterFS server
14f8ab
and client framework.
14f8ab
14f8ab
%package api
14f8ab
Summary:          GlusterFS api library
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description api
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the glusterfs libgfapi library.
14f8ab
14f8ab
%package api-devel
14f8ab
Summary:          Development Libraries
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-devel%{?_isa} = %{version}-%{release}
14f8ab
Requires:         libacl-devel
14f8ab
Requires:         %{name}-api%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description api-devel
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the api include files.
14f8ab
14f8ab
%package cli
14f8ab
Summary:          GlusterFS CLI
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description cli
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the GlusterFS CLI application and its man page
14f8ab
14f8ab
%package cloudsync-plugins
14f8ab
Summary:          Cloudsync Plugins
14f8ab
BuildRequires:    libcurl-devel
14f8ab
Requires:         glusterfs-libs = %{version}-%{release}
14f8ab
14f8ab
%description cloudsync-plugins
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides cloudsync plugins for archival feature.
14f8ab
14f8ab
%package devel
14f8ab
Summary:          Development Libraries
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
# Needed for the Glupy examples to work
14f8ab
%if ( 0%{!?_without_extra_xlators:1} )
14f8ab
Requires:         %{name}-extra-xlators%{?_isa} = %{version}-%{release}
14f8ab
%endif
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
14f8ab
%endif
14f8ab
14f8ab
%description devel
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the development libraries and include files.
14f8ab
14f8ab
%if ( 0%{!?_without_extra_xlators:1} )
14f8ab
%package extra-xlators
14f8ab
Summary:          Extra Gluster filesystem Translators
14f8ab
# We need python-gluster rpm for gluster module's __init__.py in Python
14f8ab
# site-packages area
14f8ab
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
14f8ab
Requires:         python%{_pythonver}
14f8ab
14f8ab
%description extra-xlators
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides extra filesystem Translators, such as Glupy,
14f8ab
for GlusterFS.
14f8ab
%endif
14f8ab
14f8ab
%package fuse
14f8ab
Summary:          Fuse client
14f8ab
BuildRequires:    fuse-devel
14f8ab
Requires:         attr
14f8ab
Requires:         psmisc
14f8ab
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
Obsoletes:        %{name}-client < %{version}-%{release}
14f8ab
Provides:         %{name}-client = %{version}-%{release}
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description fuse
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides support to FUSE based clients and inlcudes the
14f8ab
glusterfs(d) binary.
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} && 0%{?rhel} > 6 )
14f8ab
%package ganesha
14f8ab
Summary:          NFS-Ganesha configuration
14f8ab
Group:            Applications/File
14f8ab
14f8ab
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
14f8ab
Requires:         nfs-ganesha-selinux >= 2.7.3
14f8ab
Requires:         nfs-ganesha-gluster >= 2.7.3
14f8ab
Requires:         pcs, dbus
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} == 6 )
14f8ab
Requires:         cman, pacemaker, corosync
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 )
14f8ab
# we need portblock resource-agent in 3.9.5 and later.
14f8ab
Requires:         resource-agents >= 3.9.5
14f8ab
Requires:         net-tools
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
14f8ab
Requires: selinux-policy >= 3.13.1-160
14f8ab
Requires(post):   policycoreutils-python
14f8ab
Requires(postun): policycoreutils-python
14f8ab
%else
14f8ab
Requires(post):   policycoreutils-python-utils
14f8ab
Requires(postun): policycoreutils-python-utils
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%description ganesha
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the configuration and related files for using
14f8ab
NFS-Ganesha as the NFS server using GlusterFS
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
%package geo-replication
14f8ab
Summary:          GlusterFS Geo-replication
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
14f8ab
Requires:         python%{_pythonver}
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
Requires:         python-prettytable
14f8ab
%else
14f8ab
Requires:         python%{_pythonver}-prettytable
14f8ab
%endif
14f8ab
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
14f8ab
14f8ab
Requires:         rsync
14f8ab
Requires:         util-linux
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
# required for setting selinux bools
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
14f8ab
Requires(post):      policycoreutils-python-utils
14f8ab
Requires(postun):    policycoreutils-python-utils
14f8ab
Requires:            selinux-policy-targeted
14f8ab
Requires(post):      selinux-policy-targeted
14f8ab
BuildRequires:       selinux-policy-devel
14f8ab
%endif
14f8ab
14f8ab
%description geo-replication
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
peta-bytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file system in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in userspace and easily manageable.
14f8ab
14f8ab
This package provides support to geo-replication.
14f8ab
%endif
14f8ab
14f8ab
%package libs
14f8ab
Summary:          GlusterFS common libraries
14f8ab
14f8ab
%description libs
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the base GlusterFS libraries
14f8ab
14f8ab
%package -n python%{_pythonver}-gluster
14f8ab
Summary:          GlusterFS python library
14f8ab
Requires:         python%{_pythonver}
14f8ab
%if ( ! %{_usepython3} )
14f8ab
%{?python_provide:%python_provide python-gluster}
14f8ab
Provides:         python-gluster = %{version}-%{release}
14f8ab
Obsoletes:        python-gluster < 3.10
14f8ab
%endif
14f8ab
14f8ab
%description -n python%{_pythonver}-gluster
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package contains the python modules of GlusterFS and own gluster
14f8ab
namespace.
14f8ab
14f8ab
%if ( 0%{!?_without_rdma:1} )
14f8ab
%package rdma
14f8ab
Summary:          GlusterFS rdma support for ib-verbs
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 26 )
14f8ab
BuildRequires:    rdma-core-devel
14f8ab
%else
14f8ab
BuildRequires:    libibverbs-devel
14f8ab
BuildRequires:    librdmacm-devel >= 1.0.15
14f8ab
%endif
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description rdma
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides support to ib-verbs library.
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_regression_tests:1} )
14f8ab
%package regression-tests
14f8ab
Summary:          Development Tools
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
14f8ab
## thin provisioning support
14f8ab
Requires:         lvm2 >= 2.02.89
14f8ab
Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
14f8ab
Requires:         python%{_pythonver}
14f8ab
Requires:         attr dbench file git libacl-devel net-tools
14f8ab
Requires:         nfs-utils xfsprogs yajl psmisc bc
14f8ab
14f8ab
%description regression-tests
14f8ab
The Gluster Test Framework, is a suite of scripts used for
14f8ab
regression testing of Gluster.
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_ocf:1} )
14f8ab
%package resource-agents
14f8ab
Summary:          OCF Resource Agents for GlusterFS
14f8ab
License:          GPLv3+
14f8ab
BuildArch:        noarch
14f8ab
# this Group handling comes from the Fedora resource-agents package
14f8ab
# for glusterd
14f8ab
Requires:         %{name}-server = %{version}-%{release}
14f8ab
# depending on the distribution, we need pacemaker or resource-agents
14f8ab
Requires:         %{_prefix}/lib/ocf/resource.d
14f8ab
14f8ab
%description resource-agents
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the resource agents which plug glusterd into
14f8ab
Open Cluster Framework (OCF) compliant cluster resource managers,
14f8ab
like Pacemaker.
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%package server
14f8ab
Summary:          Clustered file-system server
14f8ab
Requires:         %{name}%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-cli%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} >= 30  || ( 0%{?rhel} && 0%{?rhel} >= 8 ) )
14f8ab
Requires:         glusterfs-selinux >= 1.0-1
14f8ab
%endif
14f8ab
# some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse
14f8ab
Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
14f8ab
# self-heal daemon, rebalance, nfs-server etc. are actually clients
14f8ab
Requires:         %{name}-api%{?_isa} = %{version}-%{release}
14f8ab
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
14f8ab
# lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server
14f8ab
Requires:         lvm2
14f8ab
Requires:         nfs-utils
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%{?systemd_requires}
14f8ab
%else
14f8ab
Requires(post):   /sbin/chkconfig
14f8ab
Requires(preun):  /sbin/service
14f8ab
Requires(preun):  /sbin/chkconfig
14f8ab
Requires(postun): /sbin/service
14f8ab
%endif
14f8ab
%if (0%{?_with_firewalld:1})
14f8ab
# we install firewalld rules, so we need to have the directory owned
14f8ab
%if ( 0%{!?rhel} )
14f8ab
# not on RHEL because firewalld-filesystem appeared in 7.3
14f8ab
# when EL7 rpm gets weak dependencies we can add a Suggests:
14f8ab
Requires:         firewalld-filesystem
14f8ab
%endif
14f8ab
%endif
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
14f8ab
Requires:         rpcbind
14f8ab
%else
14f8ab
Requires:         portmap
14f8ab
%endif
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
14f8ab
Requires:         python-argparse
14f8ab
%endif
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
14f8ab
Requires:         python%{_pythonver}-pyxattr
14f8ab
%else
14f8ab
Requires:         pyxattr
14f8ab
%endif
14f8ab
%if (0%{?_with_valgrind:1})
14f8ab
Requires:         valgrind
14f8ab
%endif
14f8ab
14f8ab
%description server
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the glusterfs server daemon.
14f8ab
%endif
14f8ab
14f8ab
%package client-xlators
14f8ab
Summary:          GlusterFS client-side translators
14f8ab
Requires:         %{name}-libs%{?_isa} = %{version}-%{release}
14f8ab
14f8ab
%description client-xlators
14f8ab
GlusterFS is a distributed file-system capable of scaling to several
14f8ab
petabytes. It aggregates various storage bricks over Infiniband RDMA
14f8ab
or TCP/IP interconnect into one large parallel network file
14f8ab
system. GlusterFS is one of the most sophisticated file systems in
14f8ab
terms of features and extensibility.  It borrows a powerful concept
14f8ab
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
14f8ab
is in user space and easily manageable.
14f8ab
14f8ab
This package provides the translators needed on any GlusterFS client.
14f8ab
14f8ab
%if ( 0%{!?_without_events:1} )
14f8ab
%package events
14f8ab
Summary:          GlusterFS Events
14f8ab
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
14f8ab
Requires:         python%{_pythonver}
14f8ab
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
14f8ab
Requires:         python-requests
14f8ab
%else
14f8ab
Requires:         python%{_pythonver}-requests
14f8ab
%endif
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
14f8ab
Requires:         python-prettytable
14f8ab
Requires:         python-argparse
14f8ab
%else
14f8ab
Requires:         python%{_pythonver}-prettytable
14f8ab
%endif
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%{?systemd_requires}
14f8ab
%endif
14f8ab
14f8ab
%description events
14f8ab
GlusterFS Events
14f8ab
14f8ab
%endif
14f8ab
14f8ab
%prep
14f8ab
%setup -q -n %{name}-%{version}%{?prereltag}
14f8ab
14f8ab
# sanitization scriptlet for patches with file renames
14f8ab
ls %{_topdir}/SOURCES/*.patch | sort | \
14f8ab
while read p
14f8ab
do
14f8ab
    # if the destination file exists, its most probably stale
14f8ab
    # so we must remove it
14f8ab
    rename_to=( $(grep -i 'rename to' $p | cut -f 3 -d ' ') )
14f8ab
    if [ ${#rename_to[*]} -gt 0 ]; then
14f8ab
        for f in ${rename_to[*]}
14f8ab
        do
14f8ab
            if [ -f $f ]; then
14f8ab
                rm -f $f
14f8ab
            elif [ -d $f ]; then
14f8ab
                rm -rf $f
14f8ab
            fi
14f8ab
        done
14f8ab
    fi
14f8ab
14f8ab
    SOURCE_FILES=( $(egrep '^\-\-\- a/' $p | cut -f 2- -d '/') )
14f8ab
    DEST_FILES=( $(egrep '^\+\+\+ b/' $p | cut -f 2- -d '/') )
14f8ab
    EXCLUDE_DOCS=()
14f8ab
    for idx in ${!SOURCE_FILES[@]}; do
14f8ab
        # skip the doc
14f8ab
        source_file=${SOURCE_FILES[$idx]}
14f8ab
        dest_file=${DEST_FILES[$idx]}
14f8ab
        if [[ "$dest_file" =~ ^doc/.+ ]]; then
14f8ab
            if [ "$source_file" != "dev/null" ] && [ ! -f "$dest_file" ]; then
14f8ab
                # if patch is being applied to a doc file and if the doc file
14f8ab
                # hasn't been added so far then we need to exclude it
14f8ab
                EXCLUDE_DOCS=( ${EXCLUDE_DOCS[*]} "$dest_file" )
14f8ab
            fi
14f8ab
        fi
14f8ab
    done
14f8ab
    EXCLUDE_DOCS_OPT=""
14f8ab
    for doc in ${EXCLUDE_DOCS}; do
14f8ab
        EXCLUDE_DOCS_OPT="--exclude=$doc $EXCLUDE_DOCS_OPT"
14f8ab
    done
14f8ab
14f8ab
    # HACK to fix build
14f8ab
    bn=$(basename $p)
14f8ab
    if [ "$bn" == "0085-Revert-all-remove-code-which-is-not-being-considered.patch" ]; then
14f8ab
        (patch -p1 -u -F3 < $p || :)
14f8ab
        if [ -f libglusterfs/Makefile.am.rej ]; then
14f8ab
            sed -i -e 's/^SUBDIRS = src/SUBDIRS = src src\/gfdb/g;s/^CLEANFILES = /CLEANFILES =/g' libglusterfs/Makefile.am
14f8ab
        fi
14f8ab
    elif [ "$bn" == "0053-Revert-packaging-ganesha-remove-glusterfs-ganesha-su.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    elif [ "$bn" == "0055-Revert-storhaug-HA-first-step-remove-resource-agents.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    elif [ "$bn" == "0090-Revert-build-conditionally-build-legacy-gNFS-server-.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    elif [ "$bn" == "0117-spec-Remove-thin-arbiter-package.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    elif [ "$bn" == "0023-hooks-remove-selinux-hooks.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    elif [ "$bn" == "0042-spec-client-server-Builds-are-failing-on-rhel-6.patch" ]; then
14f8ab
        (patch -p1 < $p || :)
14f8ab
    else
14f8ab
        # apply the patch with 'git apply'
14f8ab
        git apply -p1 --exclude=rfc.sh \
14f8ab
                      --exclude=.gitignore \
14f8ab
                      --exclude=.testignore \
14f8ab
                      --exclude=MAINTAINERS \
14f8ab
                      --exclude=extras/checkpatch.pl \
14f8ab
                      --exclude=build-aux/checkpatch.pl \
14f8ab
                      --exclude='tests/*' \
14f8ab
                      ${EXCLUDE_DOCS_OPT} \
14f8ab
                      $p
14f8ab
    fi
14f8ab
14f8ab
done
14f8ab
14f8ab
echo "fixing python shebangs..."
14f8ab
%if ( %{_usepython3} )
14f8ab
    for i in `find . -type f -exec bash -c "if file {} | grep 'Python script, ASCII text executable' >/dev/null; then echo {}; fi" ';'`; do
14f8ab
        sed -i -e 's|^#!/usr/bin/python.*|#!%{__python3}|' -e 's|^#!/usr/bin/env python.*|#!%{__python3}|' $i
14f8ab
    done
14f8ab
%else
14f8ab
    for f in api events extras geo-replication libglusterfs tools xlators; do
14f8ab
        find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \;
14f8ab
    done
14f8ab
%endif
14f8ab
14f8ab
%build
14f8ab
14f8ab
# In RHEL7 few hardening flags are available by default, however the RELRO
14f8ab
# default behaviour is partial, convert to full
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} >= 7 )
14f8ab
LDFLAGS="$RPM_LD_FLAGS -Wl,-z,relro,-z,now"
14f8ab
export LDFLAGS
14f8ab
%else
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} == 6 )
14f8ab
CFLAGS="$RPM_OPT_FLAGS -fPIE -DPIE"
14f8ab
LDFLAGS="$RPM_LD_FLAGS -pie -Wl,-z,relro,-z,now"
14f8ab
%else
14f8ab
#It appears that with gcc-4.1.2 in RHEL5 there is an issue using both -fPIC and
14f8ab
 # -fPIE that makes -z relro not work; -fPIE seems to undo what -fPIC does
14f8ab
CFLAGS="$CFLAGS $RPM_OPT_FLAGS"
14f8ab
LDFLAGS="$RPM_LD_FLAGS -Wl,-z,relro,-z,now"
14f8ab
%endif
14f8ab
export CFLAGS
14f8ab
export LDFLAGS
14f8ab
%endif
14f8ab
14f8ab
./autogen.sh && %configure \
14f8ab
        %{?_with_asan} \
14f8ab
        %{?_with_cmocka} \
14f8ab
        %{?_with_debug} \
14f8ab
        %{?_with_firewalld} \
14f8ab
        %{?_with_tmpfilesdir} \
14f8ab
        %{?_with_tsan} \
14f8ab
        %{?_with_valgrind} \
14f8ab
        %{?_without_epoll} \
14f8ab
        %{?_without_events} \
14f8ab
        %{?_without_fusermount} \
14f8ab
        %{?_without_georeplication} \
14f8ab
        %{?_without_ocf} \
14f8ab
        %{?_without_rdma} \
14f8ab
        %{?_without_server} \
14f8ab
        %{?_without_syslog} \
14f8ab
        %{?_without_tiering} \
14f8ab
        %{?_with_ipv6default} \
14f8ab
        %{?_without_libtirpc}
14f8ab
14f8ab
# fix hardening and remove rpath in shlibs
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
14f8ab
sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool
14f8ab
%endif
14f8ab
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool
14f8ab
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool
14f8ab
14f8ab
make %{?_smp_mflags}
14f8ab
14f8ab
%check
14f8ab
make check
14f8ab
14f8ab
%install
14f8ab
rm -rf %{buildroot}
14f8ab
make install DESTDIR=%{buildroot}
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
install -D -p -m 0644 %{SOURCE1} \
14f8ab
    %{buildroot}%{_sysconfdir}/sysconfig/glusterd
14f8ab
install -D -p -m 0644 %{SOURCE2} \
14f8ab
    %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
14f8ab
%else
14f8ab
install -D -p -m 0644 extras/glusterd-sysconfig \
14f8ab
    %{buildroot}%{_sysconfdir}/sysconfig/glusterd
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
mkdir -p %{buildroot}%{_localstatedir}/log/glusterd
14f8ab
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs
14f8ab
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd
14f8ab
mkdir -p %{buildroot}%{_rundir}/gluster
14f8ab
14f8ab
# Remove unwanted files from all the shared libraries
14f8ab
find %{buildroot}%{_libdir} -name '*.a' -delete
14f8ab
find %{buildroot}%{_libdir} -name '*.la' -delete
14f8ab
14f8ab
# Remove installed docs, the ones we want are included by %%doc, in
14f8ab
# /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending
14f8ab
# on the distribution
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
14f8ab
rm -rf %{buildroot}%{_pkgdocdir}/*
14f8ab
%else
14f8ab
rm -rf %{buildroot}%{_defaultdocdir}/%{name}
14f8ab
mkdir -p %{buildroot}%{_pkgdocdir}
14f8ab
%endif
14f8ab
head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog
14f8ab
cat << EOM >> ChangeLog
14f8ab
14f8ab
More commit messages for this ChangeLog can be found at
14f8ab
https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag}
14f8ab
EOM
14f8ab
14f8ab
# Remove benchmarking and other unpackaged files
14f8ab
# make install always puts these in %%{_defaultdocdir}/%%{name} so don't
14f8ab
# use %%{_pkgdocdir}; that will be wrong on later Fedora distributions
14f8ab
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking
14f8ab
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el
14f8ab
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
# Create working directory
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd
14f8ab
14f8ab
# Update configuration file to /var/lib working directory
14f8ab
sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \
14f8ab
    %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol
14f8ab
%endif
14f8ab
14f8ab
# Install glusterfsd .service or init.d file
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
%service_install glusterfsd %{glusterfsd_svcfile}
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
install -D -p -m 0644 extras/glusterfs-logrotate \
14f8ab
    %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs
14f8ab
14f8ab
# ganesha ghosts
14f8ab
%if ( 0%{!?_without_server:1} && 0%{?rhel} > 6 )
14f8ab
mkdir -p %{buildroot}%{_sysconfdir}/ganesha
14f8ab
touch %{buildroot}%{_sysconfdir}/ganesha/ganesha-ha.conf
14f8ab
mkdir -p %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/
14f8ab
touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf
14f8ab
touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
14f8ab
touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf
14f8ab
install -D -p -m 0644 extras/glusterfs-georep-logrotate \
14f8ab
    %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
14f8ab
touch %{buildroot}%{_sharedstatedir}/glusterd/options
14f8ab
subdirs=(add-brick create copy-file delete gsync-create remove-brick reset set start stop)
14f8ab
for dir in ${subdirs[@]}; do
14f8ab
    mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/"$dir"/{pre,post}
14f8ab
done
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/bitd
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/quotad
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/scrub
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps
14f8ab
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick
14f8ab
touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol
14f8ab
touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid
14f8ab
%endif
14f8ab
14f8ab
find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs
14f8ab
14f8ab
## Install bash completion for cli
14f8ab
install -p -m 0744 -D extras/command-completion/gluster.bash \
14f8ab
    %{buildroot}%{_sysconfdir}/bash_completion.d/gluster
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
echo "RHGS 3.5" > %{buildroot}%{_datadir}/glusterfs/release
14f8ab
%endif
14f8ab
14f8ab
%clean
14f8ab
rm -rf %{buildroot}
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%post should be placed here and keep them sorted
14f8ab
##
14f8ab
%post
14f8ab
/sbin/ldconfig
14f8ab
%if ( 0%{!?_without_syslog:1} )
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
14f8ab
%systemd_postun_with_restart rsyslog
14f8ab
%endif
14f8ab
%endif
14f8ab
exit 0
14f8ab
14f8ab
%post api
14f8ab
/sbin/ldconfig
14f8ab
14f8ab
%if ( 0%{!?_without_events:1} )
14f8ab
%post events
14f8ab
%service_enable glustereventsd
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
14f8ab
%post ganesha
14f8ab
semanage boolean -m ganesha_use_fusefs --on
14f8ab
exit 0
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
%post geo-replication
14f8ab
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
14f8ab
%selinux_set_booleans %{selinuxbooleans}
14f8ab
%endif
14f8ab
if [ $1 -ge 1 ]; then
14f8ab
    %systemd_postun_with_restart glusterd
14f8ab
fi
14f8ab
exit 0
14f8ab
%endif
14f8ab
14f8ab
%post libs
14f8ab
/sbin/ldconfig
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%post server
14f8ab
# Legacy server
14f8ab
%service_enable glusterd
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
%service_enable glusterfsd
14f8ab
%endif
14f8ab
# ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 .
14f8ab
# While upgrading glusterfs-server package form GlusterFS version <= 3.6 to
14f8ab
# GlusterFS version 3.7, ".cmd_log_history" should be renamed to
14f8ab
# "cmd_history.log" to retain cli command history contents.
14f8ab
if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then
14f8ab
    mv %{_localstatedir}/log/glusterfs/.cmd_log_history \
14f8ab
       %{_localstatedir}/log/glusterfs/cmd_history.log
14f8ab
fi
14f8ab
14f8ab
# Genuine Fedora (and EPEL) builds never put gluster files in /etc; if
14f8ab
# there are any files in /etc from a prior gluster.org install, move them
14f8ab
# to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib
14f8ab
# in gluster.org RPMs.) Be careful to copy them on the off chance that
14f8ab
# /etc and /var/lib are on separate file systems
14f8ab
if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then
14f8ab
    mkdir -p %{_sharedstatedir}/glusterd
14f8ab
    cp -a /etc/glusterd %{_sharedstatedir}/glusterd
14f8ab
    rm -rf /etc/glusterd
14f8ab
    ln -sf %{_sharedstatedir}/glusterd /etc/glusterd
14f8ab
fi
14f8ab
14f8ab
# Rename old volfiles in an RPM-standard way.  These aren't actually
14f8ab
# considered package config files, so %%config doesn't work for them.
14f8ab
if [ -d %{_sharedstatedir}/glusterd/vols ]; then
14f8ab
    for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do
14f8ab
        newfile=${file}.rpmsave
14f8ab
        echo "warning: ${file} saved as ${newfile}"
14f8ab
        cp ${file} ${newfile}
14f8ab
    done
14f8ab
fi
14f8ab
14f8ab
# add marker translator
14f8ab
# but first make certain that there are no old libs around to bite us
14f8ab
# BZ 834847
14f8ab
if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then
14f8ab
    rm -f /etc/ld.so.conf.d/glusterfs.conf
14f8ab
    /sbin/ldconfig
14f8ab
fi
14f8ab
14f8ab
%if (0%{?_with_firewalld:1})
14f8ab
    %firewalld_reload
14f8ab
%endif
14f8ab
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%pre should be placed here and keep them sorted
14f8ab
##
14f8ab
%pre
14f8ab
getent group gluster > /dev/null || groupadd -r gluster
14f8ab
getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster
14f8ab
exit 0
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%preun should be placed here and keep them sorted
14f8ab
##
14f8ab
%if ( 0%{!?_without_events:1} )
14f8ab
%preun events
14f8ab
if [ $1 -eq 0 ]; then
14f8ab
    if [ -f %glustereventsd_svcfile ]; then
14f8ab
        %service_stop glustereventsd
14f8ab
        %systemd_preun glustereventsd
14f8ab
    fi
14f8ab
fi
14f8ab
exit 0
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%preun server
14f8ab
if [ $1 -eq 0 ]; then
14f8ab
    if [ -f %glusterfsd_svcfile ]; then
14f8ab
        %service_stop glusterfsd
14f8ab
    fi
14f8ab
    %service_stop glusterd
14f8ab
    if [ -f %glusterfsd_svcfile ]; then
14f8ab
        %systemd_preun glusterfsd
14f8ab
    fi
14f8ab
    %systemd_preun glusterd
14f8ab
fi
14f8ab
if [ $1 -ge 1 ]; then
14f8ab
    if [ -f %glusterfsd_svcfile ]; then
14f8ab
        %systemd_postun_with_restart glusterfsd
14f8ab
    fi
14f8ab
    %systemd_postun_with_restart glusterd
14f8ab
fi
14f8ab
exit 0
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%postun should be placed here and keep them sorted
14f8ab
##
14f8ab
%postun
14f8ab
%if ( 0%{!?_without_syslog:1} )
14f8ab
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
14f8ab
%systemd_postun_with_restart rsyslog
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%postun server
14f8ab
%if (0%{?_with_firewalld:1})
14f8ab
    %firewalld_reload
14f8ab
%endif
14f8ab
exit 0
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
14f8ab
%postun ganesha
14f8ab
semanage boolean -m ganesha_use_fusefs --off
14f8ab
exit 0
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%trigger should be placed here and keep them sorted
14f8ab
##
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
14f8ab
%trigger ganesha -- selinux-policy-targeted
14f8ab
semanage boolean -m ganesha_use_fusefs --on
14f8ab
exit 0
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%triggerun should be placed here and keep them sorted
14f8ab
##
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
14f8ab
%triggerun ganesha -- selinux-policy-targeted
14f8ab
semanage boolean -m ganesha_use_fusefs --off
14f8ab
exit 0
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %%files should be placed here and keep them grouped
14f8ab
##
14f8ab
%files
14f8ab
%doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS COMMITMENT
14f8ab
%{_mandir}/man8/*gluster*.8*
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%exclude %{_mandir}/man8/gluster.8*
14f8ab
%endif
14f8ab
%dir %{_localstatedir}/log/glusterfs
14f8ab
%if ( 0%{!?_without_rdma:1} )
14f8ab
%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*
14f8ab
%endif
14f8ab
%if 0%{?!_without_server:1}
14f8ab
%dir %{_datadir}/glusterfs
14f8ab
%dir %{_datadir}/glusterfs/scripts
14f8ab
     %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
14f8ab
     %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
14f8ab
%endif
14f8ab
%{_datadir}/glusterfs/scripts/identify-hangs.sh
14f8ab
%{_datadir}/glusterfs/scripts/collect-system-stats.sh
14f8ab
%{_datadir}/glusterfs/scripts/log_accounting.sh
14f8ab
# xlators that are needed on the client- and on the server-side
14f8ab
%dir %{_libdir}/glusterfs
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/delay-gen.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/utime.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/namespace.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cloudsync.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so
14f8ab
%dir %attr(0775,gluster,gluster) %{_rundir}/gluster
14f8ab
%if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1}
14f8ab
%{_tmpfilesdir}/gluster.conf
14f8ab
%endif
14f8ab
%if ( 0%{?_without_extra_xlators:1} )
14f8ab
%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
14f8ab
%exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so
14f8ab
%endif
14f8ab
%if ( 0%{?_without_regression_tests:1} )
14f8ab
%exclude %{_datadir}/glusterfs/run-tests.sh
14f8ab
%exclude %{_datadir}/glusterfs/tests
14f8ab
%endif
14f8ab
%if 0%{?_without_server:1}
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%exclude %{_datadir}/glusterfs/scripts/control-cpu-load.sh
14f8ab
%exclude %{_datadir}/glusterfs/scripts/control-mem.sh
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{?_without_server:1} || 0%{?rhel} < 7 )
14f8ab
#exclude ganesha related files for rhel 6 and client builds
14f8ab
%exclude %{_sysconfdir}/ganesha/ganesha-ha.conf.sample
14f8ab
%exclude %{_libexecdir}/ganesha/*
14f8ab
%exclude %{_prefix}/lib/ocf/resource.d/heartbeat/*
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%exclude %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
14f8ab
14f8ab
%if ( 0%{?_without_server:1} )
14f8ab
%exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol
14f8ab
%endif
14f8ab
14f8ab
%files api
14f8ab
%exclude %{_libdir}/*.so
14f8ab
# libgfapi files
14f8ab
%{_libdir}/libgfapi.*
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so
14f8ab
14f8ab
%files api-devel
14f8ab
%{_libdir}/pkgconfig/glusterfs-api.pc
14f8ab
%{_libdir}/libgfapi.so
14f8ab
%dir %{_includedir}/glusterfs
14f8ab
%dir %{_includedir}/glusterfs/api
14f8ab
     %{_includedir}/glusterfs/api/*
14f8ab
14f8ab
%files cli
14f8ab
%{_sbindir}/gluster
14f8ab
%{_mandir}/man8/gluster.8*
14f8ab
%{_sysconfdir}/bash_completion.d/gluster
14f8ab
14f8ab
%files cloudsync-plugins
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsynccvlt.so
14f8ab
14f8ab
%files devel
14f8ab
%dir %{_includedir}/glusterfs
14f8ab
     %{_includedir}/glusterfs/*
14f8ab
%exclude %{_includedir}/glusterfs/api
14f8ab
%exclude %{_libdir}/libgfapi.so
14f8ab
%{_libdir}/*.so
14f8ab
%if ( 0%{?_without_server:1} )
14f8ab
%exclude %{_libdir}/pkgconfig/libgfchangelog.pc
14f8ab
%exclude %{_libdir}/libgfchangelog.so
14f8ab
%if ( 0%{!?_without_tiering:1} )
14f8ab
%exclude %{_libdir}/pkgconfig/libgfdb.pc
14f8ab
%endif
14f8ab
%else
14f8ab
%{_libdir}/pkgconfig/libgfchangelog.pc
14f8ab
%if ( 0%{!?_without_tiering:1} )
14f8ab
%{_libdir}/pkgconfig/libgfdb.pc
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
%files client-xlators
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so
14f8ab
14f8ab
%if ( 0%{!?_without_extra_xlators:1} )
14f8ab
%files extra-xlators
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so
14f8ab
%endif
14f8ab
14f8ab
%files fuse
14f8ab
# glusterfs is a symlink to glusterfsd, -server depends on -fuse.
14f8ab
%{_sbindir}/glusterfs
14f8ab
%{_sbindir}/glusterfsd
14f8ab
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so
14f8ab
/sbin/mount.glusterfs
14f8ab
%if ( 0%{!?_without_fusermount:1} )
14f8ab
%{_bindir}/fusermount-glusterfs
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
%files geo-replication
14f8ab
%config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep
14f8ab
14f8ab
%{_sbindir}/gfind_missing_files
14f8ab
%{_sbindir}/gluster-mountbroker
14f8ab
%dir %{_libexecdir}/glusterfs
14f8ab
%dir %{_libexecdir}/glusterfs/python
14f8ab
%dir %{_libexecdir}/glusterfs/python/syncdaemon
14f8ab
     %{_libexecdir}/glusterfs/gsyncd
14f8ab
     %{_libexecdir}/glusterfs/python/syncdaemon/*
14f8ab
     %{_libexecdir}/glusterfs/gverify.sh
14f8ab
     %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
14f8ab
     %{_libexecdir}/glusterfs/peer_gsec_create
14f8ab
     %{_libexecdir}/glusterfs/peer_mountbroker
14f8ab
     %{_libexecdir}/glusterfs/peer_mountbroker.py*
14f8ab
     %{_libexecdir}/glusterfs/gfind_missing_files
14f8ab
     %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
14f8ab
%{_sbindir}/gluster-georep-sshkey
14f8ab
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication
14f8ab
%ghost      %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre
14f8ab
14f8ab
%dir %{_datadir}/glusterfs
14f8ab
%dir %{_datadir}/glusterfs/scripts
14f8ab
     %{_datadir}/glusterfs/scripts/get-gfid.sh
14f8ab
     %{_datadir}/glusterfs/scripts/slave-upgrade.sh
14f8ab
     %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
14f8ab
     %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
14f8ab
     %{_datadir}/glusterfs/scripts/gsync-sync-gfid
14f8ab
     %{_datadir}/glusterfs/scripts/schedule_georep.py*
14f8ab
%endif
14f8ab
14f8ab
%files libs
14f8ab
%{_libdir}/*.so.*
14f8ab
%exclude %{_libdir}/libgfapi.*
14f8ab
%if ( 0%{!?_without_tiering:1} )
14f8ab
# libgfdb is only needed server-side
14f8ab
%exclude %{_libdir}/libgfdb.*
14f8ab
%endif
14f8ab
14f8ab
%files -n python%{_pythonver}-gluster
14f8ab
# introducing glusterfs module in site packages.
14f8ab
# so that all other gluster submodules can reside in the same namespace.
14f8ab
%if ( %{_usepython3} )
14f8ab
%dir %{python3_sitelib}/gluster
14f8ab
     %{python3_sitelib}/gluster/__init__.*
14f8ab
     %{python3_sitelib}/gluster/__pycache__
14f8ab
     %{python3_sitelib}/gluster/cliutils
14f8ab
%else
14f8ab
%dir %{python2_sitelib}/gluster
14f8ab
     %{python2_sitelib}/gluster/__init__.*
14f8ab
     %{python2_sitelib}/gluster/cliutils
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_rdma:1} )
14f8ab
%files rdma
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/rdma*
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_regression_tests:1} )
14f8ab
%files regression-tests
14f8ab
%dir %{_datadir}/glusterfs
14f8ab
     %{_datadir}/glusterfs/run-tests.sh
14f8ab
     %{_datadir}/glusterfs/tests
14f8ab
%exclude %{_datadir}/glusterfs/tests/vagrant
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} && 0%{?rhel} > 6 )
14f8ab
%files ganesha
14f8ab
%dir %{_libexecdir}/ganesha
14f8ab
%{_sysconfdir}/ganesha/ganesha-ha.conf.sample
14f8ab
%{_libexecdir}/ganesha/*
14f8ab
%{_prefix}/lib/ocf/resource.d/heartbeat/*
14f8ab
%{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh
14f8ab
%ghost      %attr(0644,-,-) %config(noreplace) %{_sysconfdir}/ganesha/ganesha-ha.conf
14f8ab
%ghost %dir %attr(0755,-,-) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha
14f8ab
%ghost      %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf
14f8ab
%ghost      %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_ocf:1} )
14f8ab
%files resource-agents
14f8ab
# /usr/lib is the standard for OCF, also on x86_64
14f8ab
%{_prefix}/lib/ocf/resource.d/glusterfs
14f8ab
%endif
14f8ab
14f8ab
%if ( 0%{!?_without_server:1} )
14f8ab
%files server
14f8ab
%doc extras/clear_xattrs.sh
14f8ab
%{_datadir}/glusterfs/scripts/xattr_analysis.py*
14f8ab
%{_datadir}/glusterfs/scripts/quota_fsck.py*
14f8ab
# sysconf
14f8ab
%config(noreplace) %{_sysconfdir}/glusterfs
14f8ab
%exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol
14f8ab
%exclude %{_sysconfdir}/glusterfs/eventsconfig.json
14f8ab
%config(noreplace) %{_sysconfdir}/sysconfig/glusterd
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
14f8ab
%endif
14f8ab
14f8ab
# init files
14f8ab
%glusterd_svcfile
14f8ab
%if ( 0%{_for_fedora_koji_builds} )
14f8ab
%glusterfsd_svcfile
14f8ab
%endif
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%glusterfssharedstorage_svcfile
14f8ab
%endif
14f8ab
14f8ab
# binaries
14f8ab
%{_sbindir}/glusterd
14f8ab
%{_sbindir}/glfsheal
14f8ab
%{_sbindir}/gf_attach
14f8ab
%{_sbindir}/gluster-setgfid2path
14f8ab
# {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a
14f8ab
# symlink. The binary itself (and symlink) are part of the glusterfs-fuse
14f8ab
# package, because glusterfs-server depends on that anyway.
14f8ab
14f8ab
# Manpages
14f8ab
%{_mandir}/man8/gluster-setgfid2path.8*
14f8ab
14f8ab
# xlators
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so
14f8ab
%if ( 0%{!?_without_tiering:1} )
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changetimerecorder.so
14f8ab
     %{_libdir}/libgfdb.so.*
14f8ab
%endif
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix*
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota*
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs*
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt/glusterd.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so
14f8ab
%dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
14f8ab
     %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/decompounder.so
14f8ab
14f8ab
# snap_scheduler
14f8ab
%{_sbindir}/snap_scheduler.py
14f8ab
%{_sbindir}/gcron.py
14f8ab
%{_sbindir}/conf.py
14f8ab
14f8ab
# /var/lib/glusterd, e.g. hookscripts, etc.
14f8ab
%ghost      %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info
14f8ab
%ghost      %attr(0600,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/options
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/bitd
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt
14f8ab
            %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/post
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/pre
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post
14f8ab
                            %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/post
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post
14f8ab
       %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh
14f8ab
            %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs
14f8ab
%ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run
14f8ab
%ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/snaps
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/ss_brick
14f8ab
%ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols
14f8ab
14f8ab
# Extra utility script
14f8ab
%dir %{_libexecdir}/glusterfs
14f8ab
     %{_datadir}/glusterfs/release
14f8ab
%dir %{_datadir}/glusterfs/scripts
14f8ab
     %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
     %{_libexecdir}/glusterfs/mount-shared-storage.sh
14f8ab
     %{_datadir}/glusterfs/scripts/control-cpu-load.sh
14f8ab
     %{_datadir}/glusterfs/scripts/control-mem.sh
14f8ab
%endif
14f8ab
14f8ab
# Incrementalapi
14f8ab
     %{_libexecdir}/glusterfs/glusterfind
14f8ab
%{_bindir}/glusterfind
14f8ab
     %{_libexecdir}/glusterfs/peer_add_secret_pub
14f8ab
14f8ab
%if ( 0%{?_with_firewalld:1} )
14f8ab
%{_prefix}/lib/firewalld/services/glusterfs.xml
14f8ab
%endif
14f8ab
# end of server files
14f8ab
%endif
14f8ab
14f8ab
# Events
14f8ab
%if ( 0%{!?_without_events:1} )
14f8ab
%files events
14f8ab
%config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json
14f8ab
%dir %{_sharedstatedir}/glusterd
14f8ab
%dir %{_sharedstatedir}/glusterd/events
14f8ab
%dir %{_libexecdir}/glusterfs
14f8ab
     %{_libexecdir}/glusterfs/gfevents
14f8ab
     %{_libexecdir}/glusterfs/peer_eventsapi.py*
14f8ab
%{_sbindir}/glustereventsd
14f8ab
%{_sbindir}/gluster-eventsapi
14f8ab
%{_datadir}/glusterfs/scripts/eventsdash.py*
14f8ab
%if ( 0%{?_with_systemd:1} )
14f8ab
%{_unitdir}/glustereventsd.service
14f8ab
%else
14f8ab
%{_sysconfdir}/init.d/glustereventsd
14f8ab
%endif
14f8ab
%endif
14f8ab
14f8ab
##-----------------------------------------------------------------------------
14f8ab
## All %pretrans should be placed here and keep them sorted
14f8ab
##
14f8ab
%if 0%{!?_without_server:1}
14f8ab
%pretrans -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          echo "ERROR: Distribute volumes detected. In-service rolling upgrade requires distribute volume(s) to be stopped."
14f8ab
          echo "ERROR: Please stop distribute volume(s) before proceeding... exiting!"
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   echo "WARNING: Updating glusterfs requires its processes to be killed. This action does NOT incur downtime."
14f8ab
   echo "WARNING: Ensure to wait for the upgraded server to finish healing before proceeding."
14f8ab
   echo "WARNING: Refer upgrade section of install guide for more details"
14f8ab
   echo "Please run # service glusterd stop; pkill glusterfs; pkill glusterfsd; pkill gsyncd.py;"
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
14f8ab
%pretrans api -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
14f8ab
%pretrans api-devel -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
14f8ab
%pretrans cli -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
%pretrans client-xlators -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
%pretrans fuse -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
14f8ab
%if ( 0%{!?_without_georeplication:1} )
14f8ab
%pretrans geo-replication -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
%endif
14f8ab
14f8ab
14f8ab
14f8ab
%pretrans libs -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
14f8ab
14f8ab
%if ( 0%{!?_without_rdma:1} )
14f8ab
%pretrans rdma -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
%endif
14f8ab
14f8ab
14f8ab
14f8ab
%if ( 0%{!?_without_ocf:1} )
14f8ab
%pretrans resource-agents -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
%endif
14f8ab
14f8ab
14f8ab
14f8ab
%pretrans server -p <lua>
14f8ab
if not posix.access("/bin/bash", "x") then
14f8ab
    -- initial installation, no shell, no running glusterfsd
14f8ab
    return 0
14f8ab
end
14f8ab
14f8ab
-- TODO: move this completely to a lua script
14f8ab
-- For now, we write a temporary bash script and execute that.
14f8ab
14f8ab
script = [[#!/bin/sh
14f8ab
pidof -c -o %PPID -x glusterfsd &>/dev/null
14f8ab
14f8ab
if [ $? -eq 0 ]; then
14f8ab
   pushd . > /dev/null 2>&1
14f8ab
   for volume in /var/lib/glusterd/vols/*; do cd $volume;
14f8ab
       vol_type=`grep '^type=' info | awk -F'=' '{print $2}'`
14f8ab
       volume_started=`grep '^status=' info | awk -F'=' '{print $2}'`
14f8ab
       if [ $vol_type -eq 0 ] && [ $volume_started -eq 1 ] ; then
14f8ab
          exit 1;
14f8ab
       fi
14f8ab
   done
14f8ab
14f8ab
   popd > /dev/null 2>&1
14f8ab
   exit 1;
14f8ab
fi
14f8ab
]]
14f8ab
14f8ab
ok, how, val = os.execute(script)
14f8ab
rc = val or ok
14f8ab
if not (rc == 0) then
14f8ab
   error("Detected running glusterfs processes", rc)
14f8ab
end
14f8ab
14f8ab
%posttrans server
14f8ab
pidof -c -o %PPID -x glusterd &> /dev/null
14f8ab
if [ $? -eq 0 ]; then
14f8ab
    kill -9 `pgrep -f gsyncd.py` &> /dev/null
14f8ab
14f8ab
    killall --wait -SIGTERM glusterd &> /dev/null
14f8ab
14f8ab
    if [ "$?" != "0" ]; then
14f8ab
        echo "killall failed while killing glusterd"
14f8ab
    fi
14f8ab
14f8ab
    glusterd --xlator-option *.upgrade=on -N
14f8ab
14f8ab
    #Cleaning leftover glusterd socket file which is created by glusterd in
14f8ab
    #rpm_script_t context.
14f8ab
    rm -rf /var/run/glusterd.socket
14f8ab
14f8ab
    # glusterd _was_ running, we killed it, it exited after *.upgrade=on,
14f8ab
    # so start it again
14f8ab
    %service_start glusterd
14f8ab
else
14f8ab
    glusterd --xlator-option *.upgrade=on -N
14f8ab
14f8ab
    #Cleaning leftover glusterd socket file which is created by glusterd in
14f8ab
    #rpm_script_t context.
14f8ab
    rm -rf /var/run/glusterd.socket
14f8ab
fi
14f8ab
14f8ab
%endif
14f8ab
14f8ab
%changelog
3cfb46
* Tue May 17 2022 CentOS Sources <bugs@centos.org> - 6.0-57.4.el9.centos
3cfb46
- remove vendor and/or packager lines
3cfb46
14f8ab
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 6.0-57.4
14f8ab
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
14f8ab
  Related: rhbz#1991688
14f8ab
14f8ab
* Sun Aug 1 2021 Tamar Shacked <tshacked@redhat.com> - 6.0-56.4
14f8ab
- remove unneeded file with ambiguous licence
14f8ab
- fixes bug bz#1939340
14f8ab
14f8ab
* Mon Jul 26 2021 Tamar Shacked <tshacked@redhat.com> - 6.0-56.3
14f8ab
- Rebase with latest RHGS-3.5.4
14f8ab
- Fix changlog chronological order by removing unneeded changelogs
14f8ab
- fixes bug bz#1939340
14f8ab
14f8ab
* Thu May 06 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-56.2
14f8ab
- fixes bugs bz#1953901
14f8ab
14f8ab
* Thu Apr 22 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-56.1
14f8ab
- fixes bugs bz#1927235
14f8ab
14f8ab
* Wed Apr 14 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-56
14f8ab
- fixes bugs bz#1948547
14f8ab
14f8ab
* Fri Mar 19 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-55
14f8ab
- fixes bugs bz#1939372
14f8ab
14f8ab
* Wed Mar 03 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-54
14f8ab
- fixes bugs bz#1832306 bz#1911292 bz#1924044
14f8ab
14f8ab
* Thu Feb 11 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-53
14f8ab
- fixes bugs bz#1224906 bz#1691320 bz#1719171 bz#1814744 bz#1865796
14f8ab
14f8ab
* Thu Jan 28 2021 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-52
14f8ab
- fixes bugs bz#1600459 bz#1719171 bz#1830713 bz#1856574
14f8ab
14f8ab
* Mon Dec 28 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-51
14f8ab
- fixes bugs bz#1640148 bz#1856574 bz#1910119
14f8ab
14f8ab
* Tue Dec 15 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-50
14f8ab
- fixes bugs bz#1224906 bz#1412494 bz#1612973 bz#1663821 bz#1691320 
14f8ab
  bz#1726673 bz#1749304 bz#1752739 bz#1779238 bz#1813866 bz#1814744 bz#1821599 
14f8ab
  bz#1832306 bz#1835229 bz#1842449 bz#1865796 bz#1878077 bz#1882923 bz#1885966 
14f8ab
  bz#1890506 bz#1896425 bz#1898776 bz#1898777 bz#1898778 bz#1898781 bz#1898784 
14f8ab
  bz#1903468
14f8ab
14f8ab
* Wed Nov 25 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-49
14f8ab
- fixes bugs bz#1286171
14f8ab
14f8ab
* Tue Nov 10 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-48
14f8ab
- fixes bugs bz#1895301
14f8ab
14f8ab
* Thu Nov 05 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-47
14f8ab
- fixes bugs bz#1286171 bz#1821743 bz#1837926
14f8ab
14f8ab
* Wed Oct 21 2020 Gluster Jenkins <dkhandel+glusterjenkins@redhat.com> - 6.0-46
14f8ab
- fixes bugs bz#1873469 bz#1881823
14f8ab
14f8ab
* Wed Sep 09 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-45
14f8ab
- fixes bugs bz#1785714
14f8ab
14f8ab
* Thu Sep 03 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-44
14f8ab
- fixes bugs bz#1460657
14f8ab
14f8ab
* Thu Sep 03 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-43
14f8ab
- fixes bugs bz#1460657
14f8ab
14f8ab
* Wed Sep 02 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-42
14f8ab
- fixes bugs bz#1785714
14f8ab
14f8ab
* Tue Aug 25 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-41
14f8ab
- fixes bugs bz#1785714 bz#1851424 bz#1851989 bz#1852736 bz#1853189 bz#1855966
14f8ab
14f8ab
* Tue Jul 21 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-40
14f8ab
- fixes bugs bz#1812789 bz#1844359 bz#1847081 bz#1854165
14f8ab
14f8ab
* Wed Jun 17 2020 Deepshikha Khandelwal <dkhandel@redhat.com> - 6.0-39
14f8ab
- fixes bugs bz#1844359 bz#1845064
14f8ab
14f8ab
* Wed Jun 10 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-38
14f8ab
- fixes bugs bz#1234220 bz#1286171 bz#1487177 bz#1524457 bz#1640573 
14f8ab
  bz#1663557 bz#1667954 bz#1683602 bz#1686897 bz#1721355 bz#1748865 bz#1750211 
14f8ab
  bz#1754391 bz#1759875 bz#1761531 bz#1761932 bz#1763124 bz#1763129 bz#1764091 
14f8ab
  bz#1775637 bz#1776901 bz#1781550 bz#1781649 bz#1781710 bz#1783232 bz#1784211 
14f8ab
  bz#1784415 bz#1786516 bz#1786681 bz#1787294 bz#1787310 bz#1787331 bz#1787994 
14f8ab
  bz#1790336 bz#1792873 bz#1794663 bz#1796814 bz#1804164 bz#1810924 bz#1815434 
14f8ab
  bz#1836099 bz#1837467 bz#1837926 bz#1838479 bz#1839137 bz#1844359
14f8ab
14f8ab
* Fri May 29 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-37
14f8ab
- fixes bugs bz#1840794
14f8ab
14f8ab
* Wed May 27 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-36
14f8ab
- fixes bugs bz#1812789 bz#1823423
14f8ab
14f8ab
* Fri May 22 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-35
14f8ab
- fixes bugs bz#1810516 bz#1830713 bz#1836233
14f8ab
14f8ab
* Sun May 17 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-34
14f8ab
- fixes bugs bz#1802013 bz#1823706 bz#1825177 bz#1830713 bz#1831403 bz#1833017
14f8ab
14f8ab
* Wed Apr 29 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-33
14f8ab
- fixes bugs bz#1812789 bz#1813917 bz#1823703 bz#1823706 bz#1825195
14f8ab
14f8ab
* Sat Apr 04 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-32
14f8ab
- fixes bugs bz#1781543 bz#1812789 bz#1812824 bz#1817369 bz#1819059
14f8ab
14f8ab
* Tue Mar 17 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-31
14f8ab
- fixes bugs bz#1802727
14f8ab
14f8ab
* Thu Feb 20 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-30.1
14f8ab
- fixes bugs bz#1800703
14f8ab
14f8ab
* Sat Feb 01 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-30
14f8ab
- fixes bugs bz#1775564 bz#1794153
14f8ab
14f8ab
* Thu Jan 23 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-29
14f8ab
- fixes bugs bz#1793035
14f8ab
14f8ab
* Tue Jan 14 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-28
14f8ab
- fixes bugs bz#1789447
14f8ab
14f8ab
* Mon Jan 13 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-27
14f8ab
- fixes bugs bz#1789447
14f8ab
14f8ab
* Fri Jan 10 2020 Rinku Kothiya <rkothiya@redhat.com> - 6.0-26
14f8ab
- fixes bugs bz#1763208 bz#1788656
14f8ab
14f8ab
* Mon Dec 23 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-25
14f8ab
- fixes bugs bz#1686800 bz#1763208 bz#1779696 bz#1781444 bz#1782162
14f8ab
14f8ab
* Thu Nov 28 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-24
14f8ab
- fixes bugs bz#1768786
14f8ab
14f8ab
* Thu Nov 21 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-23
14f8ab
- fixes bugs bz#1344758 bz#1599802 bz#1685406 bz#1686800 bz#1724021 
14f8ab
  bz#1726058 bz#1727755 bz#1731513 bz#1741193 bz#1758923 bz#1761326 bz#1761486 
14f8ab
  bz#1762180 bz#1764095 bz#1766640
14f8ab
14f8ab
* Thu Nov 14 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-22
14f8ab
- fixes bugs bz#1771524 bz#1771614
14f8ab
14f8ab
* Fri Oct 25 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-21
14f8ab
- fixes bugs bz#1765555
14f8ab
14f8ab
* Wed Oct 23 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-20
14f8ab
- fixes bugs bz#1719171 bz#1763412 bz#1764202
14f8ab
14f8ab
* Thu Oct 17 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-19
14f8ab
- fixes bugs bz#1760939
14f8ab
14f8ab
* Wed Oct 16 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-18
14f8ab
- fixes bugs bz#1758432
14f8ab
14f8ab
* Fri Oct 11 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-17
14f8ab
- fixes bugs bz#1704562 bz#1758618 bz#1760261
14f8ab
14f8ab
* Wed Oct 09 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-16
14f8ab
- fixes bugs bz#1752713 bz#1756325
14f8ab
14f8ab
* Fri Sep 27 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-15
14f8ab
- fixes bugs bz#1726000 bz#1731826 bz#1754407 bz#1754790 bz#1755227
14f8ab
14f8ab
* Fri Sep 20 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-14
14f8ab
- fixes bugs bz#1719171 bz#1728673 bz#1731896 bz#1732443 bz#1733970 
14f8ab
  bz#1745107 bz#1746027 bz#1748688 bz#1750241 bz#1572163
14f8ab
14f8ab
* Fri Aug 23 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-13
14f8ab
- fixes bugs bz#1729915 bz#1732376 bz#1743611 bz#1743627 bz#1743634 bz#1744518
14f8ab
14f8ab
* Fri Aug 09 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-12
14f8ab
- fixes bugs bz#1730914 bz#1731448 bz#1732770 bz#1732792 bz#1733531 
14f8ab
  bz#1734305 bz#1734534 bz#1734734 bz#1735514 bz#1737705 bz#1732774
14f8ab
  bz#1732793
14f8ab
14f8ab
* Tue Aug 06 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-11
14f8ab
- fixes bugs bz#1733520 bz#1734423
14f8ab
14f8ab
* Fri Aug 02 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-10
14f8ab
- fixes bugs bz#1713890
14f8ab
14f8ab
* Tue Jul 23 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-9
14f8ab
- fixes bugs bz#1708064 bz#1708180 bz#1715422 bz#1720992 bz#1722757
14f8ab
14f8ab
* Tue Jul 16 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-8
14f8ab
- fixes bugs bz#1698435 bz#1712591 bz#1715447 bz#1720488 bz#1722209
14f8ab
  bz#1722512 bz#1724089 bz#1726991 bz#1727785 bz#1729108
14f8ab
14f8ab
* Fri Jun 28 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-7
14f8ab
- fixes bugs bz#1573077 bz#1600918 bz#1703423 bz#1704207 bz#1708064
14f8ab
  bz#1709301 bz#1713664 bz#1716760 bz#1717784 bz#1720163 bz#1720192
14f8ab
  bz#1720551 bz#1721351 bz#1721357 bz#1721477 bz#1722131 bz#1722331
14f8ab
  bz#1722509 bz#1722801 bz#1720248
14f8ab
14f8ab
* Fri Jun 14 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-6
14f8ab
- fixes bugs bz#1668001 bz#1708043 bz#1708183 bz#1710701 
14f8ab
  bz#1719640 bz#1720079 bz#1720248 bz#1720318 bz#1720461
14f8ab
14f8ab
* Tue Jun 11 2019 Sunil Kumar Acharya <sheggodu@redhat.com> - 6.0-5
14f8ab
- fixes bugs bz#1573077 bz#1694595 bz#1703434 bz#1714536 bz#1714588 
14f8ab
  bz#1715407 bz#1715438 bz#1705018
14f8ab
14f8ab
* Fri Jun 07 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-4
14f8ab
- fixes bugs bz#1480907 bz#1702298 bz#1703455 bz#1704181 bz#1707246
14f8ab
  bz#1708067 bz#1708116 bz#1708121 bz#1709087 bz#1711249 bz#1711296 
14f8ab
  bz#1714078 bz#1714124 bz#1716385 bz#1716626 bz#1716821 bz#1716865 bz#1717927
14f8ab
14f8ab
* Tue May 14 2019 Rinku Kothiya <rkothiya@redhat.com> - 6.0-3
14f8ab
- fixes bugs bz#1583585 bz#1671862 bz#1702686 bz#1703434 bz#1703753 
14f8ab
  bz#1703897 bz#1704562 bz#1704769 bz#1704851 bz#1706683 bz#1706776 bz#1706893
14f8ab
14f8ab
* Thu Apr 25 2019 Milind Changire <mchangir@redhat.com> - 6.0-2
14f8ab
- fixes bugs bz#1471742 bz#1652461 bz#1671862 bz#1676495 bz#1691620 
14f8ab
  bz#1696334 bz#1696903 bz#1697820 bz#1698436 bz#1698728 bz#1699709 bz#1699835 
14f8ab
  bz#1702240
14f8ab
14f8ab
* Mon Apr 08 2019 Milind Changire <mchangir@redhat.com> - 6.0-1
14f8ab
- rebase to upstream glusterfs at v6.0
14f8ab
- fixes bugs bz#1493284 bz#1578703 bz#1600918 bz#1670415 bz#1691620 
14f8ab
  bz#1693935 bz#1695057
14f8ab