"Fossies" - the Fresh Open Source Software Archive

Member "glusterfs-8.2/glusterfs.spec.in" (16 Sep 2020, 88019 Bytes) of package /linux/misc/glusterfs-8.2.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 %global _hardened_build 1
    2 
    3 %global _for_fedora_koji_builds 0
    4 
    5 # uncomment and add '%' to use the prereltag for pre-releases
    6 # %%global prereltag qa3
    7 
    8 ##-----------------------------------------------------------------------------
    9 ## All argument definitions should be placed here and keep them sorted
   10 ##
   11 
   12 # asan
   13 # if you wish to compile an rpm with address sanitizer...
   14 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan
   15 %{?_with_asan:%global _with_asan --enable-asan}
   16 
   17 %if ( 0%{?rhel} && 0%{?rhel} < 7 )
   18 %global _with_asan %{nil}
   19 %endif
   20 
   21 # cmocka
   22 # if you wish to compile an rpm with cmocka unit testing...
   23 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with cmocka
   24 %{?_with_cmocka:%global _with_cmocka --enable-cmocka}
   25 
   26 # debug
   27 # if you wish to compile an rpm with debugging...
   28 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with debug
   29 %{?_with_debug:%global _with_debug --enable-debug}
   30 
   31 # epoll
   32 # if you wish to compile an rpm without epoll...
   33 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without epoll
   34 %{?_without_epoll:%global _without_epoll --disable-epoll}
   35 
   36 # fusermount
   37 # if you wish to compile an rpm without fusermount...
   38 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without fusermount
   39 %{?_without_fusermount:%global _without_fusermount --disable-fusermount}
   40 
   41 # geo-rep
   42 # if you wish to compile an rpm without geo-replication support, compile like this...
   43 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without georeplication
   44 %{?_without_georeplication:%global _without_georeplication --disable-georeplication}
   45 
   46 # gnfs
   47 # if you wish to compile an rpm with the legacy gNFS server xlator
   48 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with gnfs
   49 %{?_with_gnfs:%global _with_gnfs --enable-gnfs}
   50 
   51 # ipv6default
   52 # if you wish to compile an rpm with IPv6 default...
   53 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with ipv6default
   54 %{?_with_ipv6default:%global _with_ipv6default --with-ipv6-default}
   55 
   56 # libtirpc
   57 # if you wish to compile an rpm without TIRPC (i.e. use legacy glibc rpc)
   58 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without libtirpc
   59 %{?_without_libtirpc:%global _without_libtirpc --without-libtirpc}
   60 
   61 # Do not use libtirpc on EL6, it does not have xdr_uint64_t() and xdr_uint32_t
   62 # Do not use libtirpc on EL7, it does not have xdr_sizeof()
   63 %if ( 0%{?rhel} && 0%{?rhel} <= 7 )
   64 %global _without_libtirpc --without-libtirpc
   65 %endif
   66 
   67 
   68 # ocf
   69 # if you wish to compile an rpm without the OCF resource agents...
   70 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without ocf
   71 %{?_without_ocf:%global _without_ocf --without-ocf}
   72 
   73 # server
   74 # if you wish to build rpms without server components, compile like this
   75 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without server
   76 %{?_without_server:%global _without_server --without-server}
   77 
   78 # disable server components forcefully as rhel <= 6
   79 %if ( 0%{?rhel} && 0%{?rhel} <= 6 )
   80 %global _without_server --without-server
   81 %endif
   82 
   83 # syslog
   84 # if you wish to build rpms without syslog logging, compile like this
   85 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without syslog
   86 %{?_without_syslog:%global _without_syslog --disable-syslog}
   87 
   88 # disable syslog forcefully as rhel <= 6 doesn't have rsyslog or rsyslog-mmcount
   89 # Fedora deprecated syslog, see
   90 #  https://fedoraproject.org/wiki/Changes/NoDefaultSyslog
   91 # (And what about RHEL7?)
   92 %if ( 0%{?fedora} && 0%{?fedora} >= 20 ) || ( 0%{?rhel} && 0%{?rhel} <= 6 )
   93 %global _without_syslog --disable-syslog
   94 %endif
   95 
   96 # tsan
   97 # if you wish to compile an rpm with thread sanitizer...
   98 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with tsan
   99 %{?_with_tsan:%global _with_tsan --enable-tsan}
  100 
  101 %if ( 0%{?rhel} && 0%{?rhel} < 7 )
  102 %global _with_tsan %{nil}
  103 %endif
  104 
  105 # valgrind
  106 # if you wish to compile an rpm to run all processes under valgrind...
  107 # rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with valgrind
  108 %{?_with_valgrind:%global _with_valgrind --enable-valgrind}
  109 
  110 ##-----------------------------------------------------------------------------
  111 ## All %%global definitions should be placed here and keep them sorted
  112 ##
  113 
  114 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
  115 %global _with_systemd true
  116 %endif
  117 
  118 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 7 )
  119 %global _with_firewalld --enable-firewalld
  120 %endif
  121 
  122 %if 0%{?_tmpfilesdir:1}
  123 %global _with_tmpfilesdir --with-tmpfilesdir=%{_tmpfilesdir}
  124 %else
  125 %global _with_tmpfilesdir --without-tmpfilesdir
  126 %endif
  127 
  128 # without server should also disable some server-only components
  129 %if 0%{?_without_server:1}
  130 %global _without_events --disable-events
  131 %global _without_georeplication --disable-georeplication
  132 %global _with_gnfs %{nil}
  133 %global _without_ocf --without-ocf
  134 %endif
  135 
  136 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
  137 %global _usepython3 1
  138 %global _pythonver 3
  139 %else
  140 %global _usepython3 0
  141 %global _pythonver 2
  142 %endif
  143 
  144 # From https://fedoraproject.org/wiki/Packaging:Python#Macros
  145 %if ( 0%{?rhel} && 0%{?rhel} <= 6 )
  146 %{!?python2_sitelib: %global python2_sitelib %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
  147 %{!?python2_sitearch: %global python2_sitearch %(python2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
  148 %global _rundir %{_localstatedir}/run
  149 %endif
  150 
  151 %if ( 0%{?_with_systemd:1} )
  152 %global service_start()   /bin/systemctl --quiet start %1.service || : \
  153 %{nil}
  154 %global service_stop()    /bin/systemctl --quiet stop %1.service || :\
  155 %{nil}
  156 %global service_install() install -D -p -m 0644 %1.service %{buildroot}%2 \
  157 %{nil}
  158 # can't seem to make a generic macro that works
  159 %global glusterd_svcfile   %{_unitdir}/glusterd.service
  160 %global glusterfsd_svcfile %{_unitdir}/glusterfsd.service
  161 %global glusterta_svcfile %{_unitdir}/gluster-ta-volume.service
  162 %global glustereventsd_svcfile %{_unitdir}/glustereventsd.service
  163 %global glusterfssharedstorage_svcfile %{_unitdir}/glusterfssharedstorage.service
  164 %else
  165 %global systemd_post()  /sbin/chkconfig --add %1 >/dev/null 2>&1 || : \
  166 %{nil}
  167 %global systemd_preun() /sbin/chkconfig --del %1 >/dev/null 2>&1 || : \
  168 %{nil}
  169 %global systemd_postun_with_restart() /sbin/service %1 condrestart >/dev/null 2>&1 || : \
  170 %{nil}
  171 %global service_start()   /sbin/service %1 start >/dev/null 2>&1 || : \
  172 %{nil}
  173 %global service_stop()    /sbin/service %1 stop >/dev/null 2>&1 || : \
  174 %{nil}
  175 %global service_install() install -D -p -m 0755 %1.init %{buildroot}%2 \
  176 %{nil}
  177 # can't seem to make a generic macro that works
  178 %global glusterd_svcfile   %{_sysconfdir}/init.d/glusterd
  179 %global glusterfsd_svcfile %{_sysconfdir}/init.d/glusterfsd
  180 %global glustereventsd_svcfile %{_sysconfdir}/init.d/glustereventsd
  181 %endif
  182 
  183 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
  184 
  185 # We do not want to generate useless provides and requires for xlator
  186 # .so files to be set for glusterfs packages.
  187 # Filter all generated:
  188 #
  189 # TODO: RHEL5 does not have a convenient solution
  190 %if ( 0%{?rhel} == 6 )
  191 # filter_setup exists in RHEL6 only
  192 %filter_provides_in %{_libdir}/glusterfs/%{version}/
  193 %global __filter_from_req %{?__filter_from_req} | grep -v -P '^(?!lib).*\.so.*$'
  194 %filter_setup
  195 %else
  196 # modern rpm and current Fedora do not generate requires when the
  197 # provides are filtered
  198 %global __provides_exclude_from ^%{_libdir}/glusterfs/%{version}/.*$
  199 %endif
  200 
  201 
  202 ##-----------------------------------------------------------------------------
  203 ## All package definitions should be placed here in alphabetical order
  204 ##
  205 Summary:          Distributed File System
  206 %if ( 0%{_for_fedora_koji_builds} )
  207 Name:             glusterfs
  208 Version:          3.8.0
  209 Release:          0.1%{?prereltag:.%{prereltag}}%{?dist}
  210 %else
  211 Name:             @PACKAGE_NAME@
  212 Version:          @PACKAGE_VERSION@
  213 Release:          0.@PACKAGE_RELEASE@%{?dist}
  214 %endif
  215 License:          GPLv2 or LGPLv3+
  216 URL:              http://docs.gluster.org/
  217 %if ( 0%{_for_fedora_koji_builds} )
  218 Source0:          http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz
  219 Source1:          glusterd.sysconfig
  220 Source2:          glusterfsd.sysconfig
  221 Source7:          glusterfsd.service
  222 Source8:          glusterfsd.init
  223 %else
  224 Source0:          @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
  225 %endif
  226 
  227 BuildRoot:        %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
  228 
  229 Requires(pre):    shadow-utils
  230 %if ( 0%{?_with_systemd:1} )
  231 BuildRequires:    systemd
  232 %endif
  233 
  234 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  235 Requires:         libgfrpc0%{?_isa} = %{version}-%{release}
  236 Requires:         libgfxdr0%{?_isa} = %{version}-%{release}
  237 %if ( 0%{?_with_systemd:1} )
  238 %{?systemd_requires}
  239 %endif
  240 %if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
  241 BuildRequires:    libasan
  242 %endif
  243 %if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
  244 BuildRequires:    libtsan
  245 %endif
  246 BuildRequires:    bison flex
  247 BuildRequires:    gcc make libtool
  248 BuildRequires:    ncurses-devel readline-devel
  249 BuildRequires:    libxml2-devel openssl-devel
  250 BuildRequires:    libaio-devel libacl-devel
  251 BuildRequires:    python%{_pythonver}-devel
  252 %if ( 0%{?rhel} && 0%{?rhel} < 8 )
  253 BuildRequires:    python-ctypes
  254 %endif
  255 %if ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} )
  256 BuildRequires:    libtirpc-devel
  257 %endif
  258 %if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
  259 BuildRequires:    rpcgen
  260 %endif
  261 BuildRequires:    userspace-rcu-devel >= 0.7
  262 %if ( 0%{?rhel} && 0%{?rhel} <= 6 )
  263 BuildRequires:    automake
  264 %endif
  265 BuildRequires:    libuuid-devel
  266 %if ( 0%{?_with_cmocka:1} )
  267 BuildRequires:    libcmocka-devel >= 1.0.1
  268 %endif
  269 %if ( 0%{!?_without_georeplication:1} )
  270 BuildRequires:    libattr-devel
  271 %endif
  272 
  273 %if (0%{?_with_firewalld:1})
  274 BuildRequires:    firewalld
  275 %endif
  276 
  277 Obsoletes:        %{name}-common < %{version}-%{release}
  278 Obsoletes:        %{name}-core < %{version}-%{release}
  279 Obsoletes:        %{name}-ganesha
  280 Obsoletes:        %{name}-rdma < %{version}-%{release}
  281 %if ( 0%{!?_with_gnfs:1} )
  282 Obsoletes:        %{name}-gnfs < %{version}-%{release}
  283 %endif
  284 Provides:         %{name}-common = %{version}-%{release}
  285 Provides:         %{name}-core = %{version}-%{release}
  286 
  287 %description
  288 GlusterFS is a distributed file-system capable of scaling to several
  289 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  290 into one large parallel network filesystem. GlusterFS is one of the
  291 most sophisticated file systems in terms of features and extensibility.
  292 It borrows a powerful concept called Translators from GNU Hurd kernel.
  293 Much of the code in GlusterFS is in user space and easily manageable.
  294 
  295 This package includes the glusterfs binary, the glusterfsd daemon and the
  296 libglusterfs and glusterfs translator modules common to both GlusterFS server
  297 and client framework.
  298 
  299 %package cli
  300 Summary:          GlusterFS CLI
  301 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  302 Requires:         libglusterd0%{?_isa} = %{version}-%{release}
  303 
  304 %description cli
  305 GlusterFS is a distributed file-system capable of scaling to several
  306 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  307 into one large parallel network filesystem. GlusterFS is one of the
  308 most sophisticated file systems in terms of features and extensibility.
  309 It borrows a powerful concept called Translators from GNU Hurd kernel.
  310 Much of the code in GlusterFS is in user space and easily manageable.
  311 
  312 This package provides the GlusterFS CLI application and its man page
  313 
  314 %package cloudsync-plugins
  315 Summary:          Cloudsync Plugins
  316 BuildRequires:    libcurl-devel
  317 
  318 %description cloudsync-plugins
  319 GlusterFS is a distributed file-system capable of scaling to several
  320 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  321 into one large parallel network filesystem. GlusterFS is one of the
  322 most sophisticated file systems in terms of features and extensibility.
  323 It borrows a powerful concept called Translators from GNU Hurd kernel.
  324 Much of the code in GlusterFS is in user space and easily manageable.
  325 
  326 This package provides cloudsync plugins for archival feature.
  327 
  328 %package extra-xlators
  329 Summary:          Extra Gluster filesystem Translators
  330 # We need python-gluster rpm for gluster module's __init__.py in Python
  331 # site-packages area
  332 Requires:         python%{_pythonver}-gluster = %{version}-%{release}
  333 Requires:         python%{_pythonver}
  334 
  335 %description extra-xlators
  336 GlusterFS is a distributed file-system capable of scaling to several
  337 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  338 into one large parallel network filesystem. GlusterFS is one of the
  339 most sophisticated file systems in terms of features and extensibility.
  340 It borrows a powerful concept called Translators from GNU Hurd kernel.
  341 Much of the code in GlusterFS is in user space and easily manageable.
  342 
  343 This package provides extra filesystem Translators, such as Glupy,
  344 for GlusterFS.
  345 
  346 %package fuse
  347 Summary:          Fuse client
  348 BuildRequires:    fuse-devel
  349 Requires:         attr
  350 Requires:         psmisc
  351 
  352 Requires:         %{name}%{?_isa} = %{version}-%{release}
  353 Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
  354 
  355 Obsoletes:        %{name}-client < %{version}-%{release}
  356 Provides:         %{name}-client = %{version}-%{release}
  357 
  358 %description fuse
  359 GlusterFS is a distributed file-system capable of scaling to several
  360 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  361 into one large parallel network filesystem. GlusterFS is one of the
  362 most sophisticated file systems in terms of features and extensibility.
  363 It borrows a powerful concept called Translators from GNU Hurd kernel.
  364 Much of the code in GlusterFS is in user space and easily manageable.
  365 
  366 This package provides support to FUSE based clients and inlcudes the
  367 glusterfs(d) binary.
  368 
  369 %if ( 0%{!?_without_server:1} )
  370 %package ganesha
  371 Summary:          NFS-Ganesha configuration
  372 Group:            Applications/File
  373 
  374 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
  375 Requires:         nfs-ganesha-selinux >= 2.7.6
  376 Requires:         nfs-ganesha-gluster >= 2.7.6
  377 Requires:         pcs >= 0.10.0
  378 Requires:         resource-agents >= 4.2.0
  379 Requires:         dbus
  380 
  381 %if ( 0%{?rhel} && 0%{?rhel} == 6 )
  382 Requires:         cman, pacemaker, corosync
  383 %endif
  384 
  385 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} > 5 )
  386 # we need portblock resource-agent in 3.9.5 and later.
  387 Requires:         net-tools
  388 %endif
  389 
  390 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
  391 %if ( 0%{?rhel} && 0%{?rhel} < 8 )
  392 Requires: selinux-policy >= 3.13.1-160
  393 Requires(post):   policycoreutils-python
  394 Requires(postun): policycoreutils-python
  395 %else
  396 Requires(post):   policycoreutils-python-utils
  397 Requires(postun): policycoreutils-python-utils
  398 %endif
  399 %endif
  400 
  401 %description ganesha
  402 GlusterFS is a distributed file-system capable of scaling to several
  403 petabytes. It aggregates various storage bricks over Infiniband RDMA
  404 or TCP/IP interconnect into one large parallel network file
  405 system. GlusterFS is one of the most sophisticated file systems in
  406 terms of features and extensibility.  It borrows a powerful concept
  407 called Translators from GNU Hurd kernel. Much of the code in GlusterFS
  408 is in user space and easily manageable.
  409 
  410 This package provides the configuration and related files for using
  411 NFS-Ganesha as the NFS server using GlusterFS
  412 %endif
  413 
  414 %if ( 0%{!?_without_georeplication:1} )
  415 %package geo-replication
  416 Summary:          GlusterFS Geo-replication
  417 Requires:         %{name}%{?_isa} = %{version}-%{release}
  418 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
  419 Requires:         python%{_pythonver}
  420 Requires:         python%{_pythonver}-prettytable
  421 Requires:         python%{_pythonver}-gluster = %{version}-%{release}
  422 
  423 Requires:         rsync
  424 Requires:         util-linux
  425 
  426 %description geo-replication
  427 GlusterFS is a distributed file-system capable of scaling to several
  428 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  429 into one large parallel network filesystem. GlusterFS is one of the
  430 most sophisticated file systems in terms of features and extensibility.
  431 It borrows a powerful concept called Translators from GNU Hurd kernel.
  432 Much of the code in GlusterFS is in user space and easily manageable.
  433 
  434 This package provides support to geo-replication.
  435 %endif
  436 
  437 %if ( 0%{?_with_gnfs:1} )
  438 %package gnfs
  439 Summary:          GlusterFS gNFS server
  440 Requires:         %{name}%{?_isa} = %{version}-%{release}
  441 Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
  442 Requires:         nfs-utils
  443 
  444 %description gnfs
  445 GlusterFS is a distributed file-system capable of scaling to several
  446 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  447 into one large parallel network filesystem. GlusterFS is one of the
  448 most sophisticated file systems in terms of features and extensibility.
  449 It borrows a powerful concept called Translators from GNU Hurd kernel.
  450 Much of the code in GlusterFS is in user space and easily manageable.
  451 
  452 This package provides the glusterfs legacy gNFS server xlator
  453 %endif
  454 
  455 %package -n libglusterfs0
  456 Summary:          GlusterFS libglusterfs library
  457 Requires:         libgfrpc0%{?_isa} = %{version}-%{release}
  458 Requires:         libgfxdr0%{?_isa} = %{version}-%{release}
  459 Obsoletes:        %{name}-libs <= %{version}-%{release}
  460 Provides:         %{name}-libs = %{version}-%{release}
  461 
  462 %description -n libglusterfs0
  463 GlusterFS is a distributed file-system capable of scaling to several
  464 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  465 into one large parallel network filesystem. GlusterFS is one of the
  466 most sophisticated file systems in terms of features and extensibility.
  467 It borrows a powerful concept called Translators from GNU Hurd kernel.
  468 Much of the code in GlusterFS is in user space and easily manageable.
  469 
  470 This package provides the base libglusterfs library
  471 
  472 %package -n libglusterfs-devel
  473 Summary:          GlusterFS libglusterfs library
  474 Requires:         libgfrpc-devel%{?_isa} = %{version}-%{release}
  475 Requires:         libgfxdr-devel%{?_isa} = %{version}-%{release}
  476 Obsoletes:        %{name}-devel <= %{version}-%{release}
  477 Provides:         %{name}-devel = %{version}-%{release}
  478 
  479 %description -n libglusterfs-devel
  480 GlusterFS is a distributed file-system capable of scaling to several
  481 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  482 into one large parallel network filesystem. GlusterFS is one of the
  483 most sophisticated file systems in terms of features and extensibility.
  484 It borrows a powerful concept called Translators from GNU Hurd kernel.
  485 Much of the code in GlusterFS is in user space and easily manageable.
  486 
  487 This package provides libglusterfs.so and the gluster C header files.
  488 
  489 %package -n libgfapi0
  490 Summary:          GlusterFS api library
  491 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  492 Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
  493 Obsoletes:        %{name}-api <= %{version}-%{release}
  494 Provides:         %{name}-api = %{version}-%{release}
  495 
  496 %description -n libgfapi0
  497 GlusterFS is a distributed file-system capable of scaling to several
  498 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  499 into one large parallel network filesystem. GlusterFS is one of the
  500 most sophisticated file systems in terms of features and extensibility.
  501 It borrows a powerful concept called Translators from GNU Hurd kernel.
  502 Much of the code in GlusterFS is in user space and easily manageable.
  503 
  504 This package provides the glusterfs libgfapi library.
  505 
  506 %package -n libgfapi-devel
  507 Summary:          Development Libraries
  508 Requires:         libglusterfs-devel%{?_isa} = %{version}-%{release}
  509 Requires:         libacl-devel
  510 Obsoletes:        %{name}-api-devel <= %{version}-%{release}
  511 Provides:         %{name}-api-devel = %{version}-%{release}
  512 
  513 %description -n libgfapi-devel
  514 GlusterFS is a distributed file-system capable of scaling to several
  515 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  516 into one large parallel network filesystem. GlusterFS is one of the
  517 most sophisticated file systems in terms of features and extensibility.
  518 It borrows a powerful concept called Translators from GNU Hurd kernel.
  519 Much of the code in GlusterFS is in user space and easily manageable.
  520 
  521 This package provides libgfapi.so and the api C header files.
  522 
  523 %package -n libgfchangelog0
  524 Summary:          GlusterFS libchangelog library
  525 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  526 Obsoletes:        %{name}-libs <= %{version}-%{release}
  527 
  528 %description -n libgfchangelog0
  529 GlusterFS is a distributed file-system capable of scaling to several
  530 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  531 into one large parallel network filesystem. GlusterFS is one of the
  532 most sophisticated file systems in terms of features and extensibility.
  533 It borrows a powerful concept called Translators from GNU Hurd kernel.
  534 Much of the code in GlusterFS is in user space and easily manageable.
  535 
  536 This package provides the libgfchangelog library
  537 
  538 %package -n libgfchangelog-devel
  539 Summary:          GlusterFS libchangelog library
  540 Requires:         libglusterfs-devel%{?_isa} = %{version}-%{release}
  541 Obsoletes:        %{name}-devel <= %{version}-%{release}
  542 
  543 %description -n libgfchangelog-devel
  544 GlusterFS is a distributed file-system capable of scaling to several
  545 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  546 into one large parallel network filesystem. GlusterFS is one of the
  547 most sophisticated file systems in terms of features and extensibility.
  548 It borrows a powerful concept called Translators from GNU Hurd kernel.
  549 Much of the code in GlusterFS is in user space and easily manageable.
  550 
  551 This package provides libgfchangelog.so and changelog C header files.
  552 
  553 %package -n libgfrpc0
  554 Summary:          GlusterFS libgfrpc0 library
  555 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  556 Obsoletes:        %{name}-libs <= %{version}-%{release}
  557 
  558 %description -n libgfrpc0
  559 GlusterFS is a distributed file-system capable of scaling to several
  560 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  561 into one large parallel network filesystem. GlusterFS is one of the
  562 most sophisticated file systems in terms of features and extensibility.
  563 It borrows a powerful concept called Translators from GNU Hurd kernel.
  564 Much of the code in GlusterFS is in user space and easily manageable.
  565 
  566 This package provides the libgfrpc library
  567 
  568 %package -n libgfrpc-devel
  569 Summary:          GlusterFS libgfrpc library
  570 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  571 Obsoletes:        %{name}-devel <= %{version}-%{release}
  572 
  573 %description -n libgfrpc-devel
  574 GlusterFS is a distributed file-system capable of scaling to several
  575 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  576 into one large parallel network filesystem. GlusterFS is one of the
  577 most sophisticated file systems in terms of features and extensibility.
  578 It borrows a powerful concept called Translators from GNU Hurd kernel.
  579 Much of the code in GlusterFS is in user space and easily manageable.
  580 
  581 This package provides libgfrpc.so and rpc C header files.
  582 
  583 %package -n libgfxdr0
  584 Summary:          GlusterFS libgfxdr0 library
  585 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  586 Obsoletes:        %{name}-libs <= %{version}-%{release}
  587 
  588 %description -n libgfxdr0
  589 GlusterFS is a distributed file-system capable of scaling to several
  590 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  591 into one large parallel network filesystem. GlusterFS is one of the
  592 most sophisticated file systems in terms of features and extensibility.
  593 It borrows a powerful concept called Translators from GNU Hurd kernel.
  594 Much of the code in GlusterFS is in user space and easily manageable.
  595 
  596 This package provides the libgfxdr library
  597 
  598 %package -n libgfxdr-devel
  599 Summary:          GlusterFS libgfxdr library
  600 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  601 Obsoletes:        %{name}-devel <= %{version}-%{release}
  602 
  603 %description -n libgfxdr-devel
  604 GlusterFS is a distributed file-system capable of scaling to several
  605 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  606 into one large parallel network filesystem. GlusterFS is one of the
  607 most sophisticated file systems in terms of features and extensibility.
  608 It borrows a powerful concept called Translators from GNU Hurd kernel.
  609 Much of the code in GlusterFS is in user space and easily manageable.
  610 
  611 This package provides libgfxdr.so.
  612 
  613 %package -n libglusterd0
  614 Summary:          GlusterFS libglusterd library
  615 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  616 Obsoletes:        %{name}-libs <= %{version}-%{release}
  617 
  618 %description -n libglusterd0
  619 GlusterFS is a distributed file-system capable of scaling to several
  620 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  621 into one large parallel network filesystem. GlusterFS is one of the
  622 most sophisticated file systems in terms of features and extensibility.
  623 It borrows a powerful concept called Translators from GNU Hurd kernel.
  624 Much of the code in GlusterFS is in user space and easily manageable.
  625 
  626 This package provides the libglusterd library
  627 
  628 %package -n python%{_pythonver}-gluster
  629 Summary:          GlusterFS python library
  630 Requires:         python%{_pythonver}
  631 %if ( ! %{_usepython3} )
  632 %{?python_provide:%python_provide python-gluster}
  633 Provides:         python-gluster = %{version}-%{release}
  634 Obsoletes:        python-gluster < 3.10
  635 %endif
  636 
  637 %description -n python%{_pythonver}-gluster
  638 GlusterFS is a distributed file-system capable of scaling to several
  639 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  640 into one large parallel network filesystem. GlusterFS is one of the
  641 most sophisticated file systems in terms of features and extensibility.
  642 It borrows a powerful concept called Translators from GNU Hurd kernel.
  643 Much of the code in GlusterFS is in user space and easily manageable.
  644 
  645 This package contains the python modules of GlusterFS and own gluster
  646 namespace.
  647 
  648 %package regression-tests
  649 Summary:          Development Tools
  650 Requires:         %{name}%{?_isa} = %{version}-%{release}
  651 Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
  652 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
  653 ## thin provisioning support
  654 Requires:         lvm2 >= 2.02.89
  655 Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
  656 Requires:         python%{_pythonver}
  657 Requires:         attr dbench file git libacl-devel net-tools
  658 Requires:         nfs-utils xfsprogs yajl psmisc bc
  659 
  660 %description regression-tests
  661 The Gluster Test Framework, is a suite of scripts used for
  662 regression testing of Gluster.
  663 
  664 %if ( 0%{!?_without_ocf:1} )
  665 %package resource-agents
  666 Summary:          OCF Resource Agents for GlusterFS
  667 License:          GPLv3+
  668 BuildArch:        noarch
  669 # this Group handling comes from the Fedora resource-agents package
  670 # for glusterd
  671 Requires:         %{name}-server = %{version}-%{release}
  672 # depending on the distribution, we need pacemaker or resource-agents
  673 Requires:         %{_prefix}/lib/ocf/resource.d
  674 
  675 %description resource-agents
  676 GlusterFS is a distributed file-system capable of scaling to several
  677 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  678 into one large parallel network filesystem. GlusterFS is one of the
  679 most sophisticated file systems in terms of features and extensibility.
  680 It borrows a powerful concept called Translators from GNU Hurd kernel.
  681 Much of the code in GlusterFS is in user space and easily manageable.
  682 
  683 This package provides the resource agents which plug glusterd into
  684 Open Cluster Framework (OCF) compliant cluster resource managers,
  685 like Pacemaker.
  686 %endif
  687 
  688 %if ( 0%{!?_without_server:1} )
  689 %package server
  690 Summary:          Clustered file-system server
  691 Requires:         %{name}%{?_isa} = %{version}-%{release}
  692 Requires:         %{name}-cli%{?_isa} = %{version}-%{release}
  693 Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
  694 Requires:         libgfchangelog0%{?_isa} = %{version}-%{release}
  695 # some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse
  696 Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
  697 # self-heal daemon, rebalance, nfs-server etc. are actually clients
  698 Requires:         libgfapi0%{?_isa} = %{version}-%{release}
  699 Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
  700 # lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server
  701 Requires:         lvm2
  702 %if ( 0%{?_with_systemd:1} )
  703 %{?systemd_requires}
  704 %else
  705 Requires(post):   /sbin/chkconfig
  706 Requires(preun):  /sbin/service
  707 Requires(preun):  /sbin/chkconfig
  708 Requires(postun): /sbin/service
  709 %endif
  710 %if (0%{?_with_firewalld:1})
  711 # we install firewalld rules, so we need to have the directory owned
  712 %if ( 0%{!?rhel} )
  713 # not on RHEL because firewalld-filesystem appeared in 7.3
  714 # when EL7 rpm gets weak dependencies we can add a Suggests:
  715 Requires:         firewalld-filesystem
  716 %endif
  717 %endif
  718 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
  719 Requires:         rpcbind
  720 %else
  721 Requires:         portmap
  722 %endif
  723 %if ( 0%{?rhel} && 0%{?rhel} <= 6 )
  724 Requires:         python-argparse
  725 %endif
  726 %if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
  727 Requires:         python%{_pythonver}-pyxattr
  728 %else
  729 Requires:         pyxattr
  730 %endif
  731 %if (0%{?_with_valgrind:1})
  732 Requires:         valgrind
  733 %endif
  734 
  735 %description server
  736 GlusterFS is a distributed file-system capable of scaling to several
  737 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  738 into one large parallel network filesystem. GlusterFS is one of the
  739 most sophisticated file systems in terms of features and extensibility.
  740 It borrows a powerful concept called Translators from GNU Hurd kernel.
  741 Much of the code in GlusterFS is in user space and easily manageable.
  742 
  743 This package provides the glusterfs server daemon.
  744 %endif
  745 
  746 %package thin-arbiter
  747 Summary:          GlusterFS thin-arbiter module
  748 Requires:         %{name}%{?_isa} = %{version}-%{release}
  749 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
  750 
  751 %description thin-arbiter
  752 This package provides a tie-breaker functionality to GlusterFS
  753 replicate volume. It includes translators required to provide the
  754 functionality, and also few other scripts required for getting the setup done.
  755 
  756 This package provides the glusterfs thin-arbiter translator.
  757 
  758 %package client-xlators
  759 Summary:          GlusterFS client-side translators
  760 
  761 %description client-xlators
  762 GlusterFS is a distributed file-system capable of scaling to several
  763 petabytes. It aggregates various storage bricks over TCP/IP interconnect
  764 into one large parallel network filesystem. GlusterFS is one of the
  765 most sophisticated file systems in terms of features and extensibility.
  766 It borrows a powerful concept called Translators from GNU Hurd kernel.
  767 Much of the code in GlusterFS is in user space and easily manageable.
  768 
  769 This package provides the translators needed on any GlusterFS client.
  770 
  771 %if ( 0%{!?_without_events:1} )
  772 %package events
  773 Summary:          GlusterFS Events
  774 Requires:         %{name}-server%{?_isa} = %{version}-%{release}
  775 Requires:         python%{_pythonver} python%{_pythonver}-prettytable
  776 Requires:         python%{_pythonver}-gluster = %{version}-%{release}
  777 %if ( 0%{?rhel} && 0%{?rhel} < 8 )
  778 Requires:         python-requests
  779 %else
  780 Requires:         python%{_pythonver}-requests
  781 %endif
  782 %if ( 0%{?rhel} && 0%{?rhel} < 7 )
  783 Requires:         python-argparse
  784 %endif
  785 %if ( 0%{?_with_systemd:1} )
  786 %{?systemd_requires}
  787 %endif
  788 
  789 %description events
  790 GlusterFS Events
  791 
  792 %endif
  793 
  794 %prep
  795 %setup -q -n %{name}-%{version}%{?prereltag}
  796 %if ( ! %{_usepython3} )
  797 echo "fixing python shebangs..."
  798 for f in api events extras geo-replication libglusterfs tools xlators; do
  799 find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \;
  800 done
  801 %endif
  802 
  803 %build
  804 
  805 # RHEL6 and earlier need to manually replace config.guess and config.sub
  806 %if ( 0%{?rhel} && 0%{?rhel} <= 6 )
  807 ./autogen.sh
  808 %endif
  809 
  810 %configure \
  811         %{?_with_asan} \
  812         %{?_with_cmocka} \
  813         %{?_with_debug} \
  814         %{?_with_firewalld} \
  815         %{?_with_gnfs} \
  816         %{?_with_tmpfilesdir} \
  817         %{?_with_tsan} \
  818         %{?_with_valgrind} \
  819         %{?_without_epoll} \
  820         %{?_without_events} \
  821         %{?_without_fusermount} \
  822         %{?_without_georeplication} \
  823         %{?_without_ocf} \
  824         %{?_without_server} \
  825         %{?_without_syslog} \
  826         %{?_with_ipv6default} \
  827         %{?_without_libtirpc}
  828 
  829 # fix hardening and remove rpath in shlibs
  830 %if ( 0%{?fedora} && 0%{?fedora} > 17 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
  831 sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool
  832 %endif
  833 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool
  834 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool
  835 
  836 make %{?_smp_mflags}
  837 
  838 %check
  839 make check
  840 
  841 %install
  842 rm -rf %{buildroot}
  843 make install DESTDIR=%{buildroot}
  844 %if ( 0%{!?_without_server:1} )
  845 %if ( 0%{_for_fedora_koji_builds} )
  846 install -D -p -m 0644 %{SOURCE1} \
  847     %{buildroot}%{_sysconfdir}/sysconfig/glusterd
  848 install -D -p -m 0644 %{SOURCE2} \
  849     %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
  850 %else
  851 install -D -p -m 0644 extras/glusterd-sysconfig \
  852     %{buildroot}%{_sysconfdir}/sysconfig/glusterd
  853 %endif
  854 %endif
  855 
  856 mkdir -p %{buildroot}%{_localstatedir}/log/glusterd
  857 mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs
  858 mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd
  859 mkdir -p %{buildroot}%{_rundir}/gluster
  860 
  861 # Remove unwanted files from all the shared libraries
  862 find %{buildroot}%{_libdir} -name '*.a' -delete
  863 find %{buildroot}%{_libdir} -name '*.la' -delete
  864 
  865 # Remove installed docs, the ones we want are included by %%doc, in
  866 # /usr/share/doc/glusterfs or /usr/share/doc/glusterfs-x.y.z depending
  867 # on the distribution
  868 %if ( 0%{?fedora} && 0%{?fedora} > 19 ) || ( 0%{?rhel} && 0%{?rhel} > 6 )
  869 rm -rf %{buildroot}%{_pkgdocdir}/*
  870 %else
  871 rm -rf %{buildroot}%{_defaultdocdir}/%{name}
  872 mkdir -p %{buildroot}%{_pkgdocdir}
  873 %endif
  874 head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog
  875 cat << EOM >> ChangeLog
  876 
  877 More commit messages for this ChangeLog can be found at
  878 https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag}
  879 EOM
  880 
  881 # Remove benchmarking and other unpackaged files
  882 # make install always puts these in %%{_defaultdocdir}/%%{name} so don't
  883 # use %%{_pkgdocdir}; that will be wrong on later Fedora distributions
  884 rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking
  885 rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el
  886 rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim
  887 
  888 %if ( 0%{!?_without_server:1} )
  889 # Create working directory
  890 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd
  891 
  892 # Update configuration file to /var/lib working directory
  893 sed -i 's|option working-directory /etc/glusterd|option working-directory %{_sharedstatedir}/glusterd|g' \
  894     %{buildroot}%{_sysconfdir}/glusterfs/glusterd.vol
  895 %endif
  896 
  897 # Install glusterfsd .service or init.d file
  898 %if ( 0%{!?_without_server:1} )
  899 %if ( 0%{_for_fedora_koji_builds} )
  900 %service_install glusterfsd %{glusterfsd_svcfile}
  901 %endif
  902 %endif
  903 
  904 install -D -p -m 0644 extras/glusterfs-logrotate \
  905     %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs
  906 
  907 # ganesha ghosts
  908 %if ( 0%{!?_without_server:1} )
  909 mkdir -p %{buildroot}%{_sysconfdir}/ganesha
  910 touch %{buildroot}%{_sysconfdir}/ganesha/ganesha-ha.conf
  911 mkdir -p %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/
  912 touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf
  913 touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf
  914 %endif
  915 
  916 %if ( 0%{!?_without_georeplication:1} )
  917 # geo-rep ghosts
  918 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
  919 touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf
  920 install -D -p -m 0644 extras/glusterfs-georep-logrotate \
  921     %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs-georep
  922 %endif
  923 
  924 %if ( 0%{!?_without_server:1} )
  925 # the rest of the ghosts
  926 touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
  927 touch %{buildroot}%{_sharedstatedir}/glusterd/options
  928 subdirs=(add-brick create copy-file delete gsync-create remove-brick reset set start stop)
  929 for dir in ${subdirs[@]}; do
  930     mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/"$dir"/{pre,post}
  931 done
  932 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd
  933 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers
  934 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols
  935 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run
  936 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/bitd
  937 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/quotad
  938 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/scrub
  939 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps
  940 mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick
  941 touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol
  942 touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid
  943 %endif
  944 
  945 find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs
  946 
  947 ## Install bash completion for cli
  948 install -p -m 0744 -D extras/command-completion/gluster.bash \
  949     %{buildroot}%{_sysconfdir}/bash_completion.d/gluster
  950 
  951 %clean
  952 rm -rf %{buildroot}
  953 
  954 ##-----------------------------------------------------------------------------
  955 ## All %%post should be placed here and keep them sorted
  956 ##
  957 %post
  958 /sbin/ldconfig
  959 %if ( 0%{!?_without_syslog:1} )
  960 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
  961 %systemd_postun_with_restart rsyslog
  962 %endif
  963 %endif
  964 exit 0
  965 
  966 %if ( 0%{!?_without_events:1} )
  967 %post events
  968 %systemd_post glustereventsd
  969 %endif
  970 
  971 %if ( 0%{!?_without_server:1} )
  972 %if ( 0%{?fedora} && 0%{?fedora} > 25 || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
  973 %post ganesha
  974 semanage boolean -m ganesha_use_fusefs --on
  975 exit 0
  976 %endif
  977 %endif
  978 
  979 %if ( 0%{!?_without_georeplication:1} )
  980 %post geo-replication
  981 if [ $1 -ge 1 ]; then
  982     %systemd_postun_with_restart glusterd
  983 fi
  984 exit 0
  985 %endif
  986 
  987 %post -n libglusterfs0
  988 /sbin/ldconfig
  989 
  990 %post -n libgfapi0
  991 /sbin/ldconfig
  992 
  993 %post -n libgfchangelog0
  994 /sbin/ldconfig
  995 
  996 %post -n libgfrpc0
  997 /sbin/ldconfig
  998 
  999 %post -n libgfxdr0
 1000 /sbin/ldconfig
 1001 
 1002 %post -n libglusterd0
 1003 /sbin/ldconfig
 1004 
 1005 %if ( 0%{!?_without_server:1} )
 1006 %post server
 1007 # Legacy server
 1008 %systemd_post glusterd
 1009 %if ( 0%{_for_fedora_koji_builds} )
 1010 %systemd_post glusterfsd
 1011 %endif
 1012 # ".cmd_log_history" is renamed to "cmd_history.log" in GlusterFS-3.7 .
 1013 # While upgrading glusterfs-server package form GlusterFS version <= 3.6 to
 1014 # GlusterFS version 3.7, ".cmd_log_history" should be renamed to
 1015 # "cmd_history.log" to retain cli command history contents.
 1016 if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then
 1017     mv %{_localstatedir}/log/glusterfs/.cmd_log_history \
 1018        %{_localstatedir}/log/glusterfs/cmd_history.log
 1019 fi
 1020 
 1021 # Genuine Fedora (and EPEL) builds never put gluster files in /etc; if
 1022 # there are any files in /etc from a prior gluster.org install, move them
 1023 # to /var/lib. (N.B. Starting with 3.3.0 all gluster files are in /var/lib
 1024 # in gluster.org RPMs.) Be careful to copy them on the off chance that
 1025 # /etc and /var/lib are on separate file systems
 1026 if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then
 1027     mkdir -p %{_sharedstatedir}/glusterd
 1028     cp -a /etc/glusterd %{_sharedstatedir}/glusterd
 1029     rm -rf /etc/glusterd
 1030     ln -sf %{_sharedstatedir}/glusterd /etc/glusterd
 1031 fi
 1032 
 1033 # Rename old volfiles in an RPM-standard way.  These aren't actually
 1034 # considered package config files, so %%config doesn't work for them.
 1035 if [ -d %{_sharedstatedir}/glusterd/vols ]; then
 1036     for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do
 1037         newfile=${file}.rpmsave
 1038         echo "warning: ${file} saved as ${newfile}"
 1039         cp ${file} ${newfile}
 1040     done
 1041 fi
 1042 
 1043 # add marker translator
 1044 # but first make certain that there are no old libs around to bite us
 1045 # BZ 834847
 1046 if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then
 1047     rm -f /etc/ld.so.conf.d/glusterfs.conf
 1048     /sbin/ldconfig
 1049 fi
 1050 
 1051 %if (0%{?_with_firewalld:1})
 1052     %firewalld_reload
 1053 %endif
 1054 
 1055 pidof -c -o %PPID -x glusterd &> /dev/null
 1056 if [ $? -eq 0 ]; then
 1057     kill -9 `pgrep -f gsyncd.py` &> /dev/null
 1058 
 1059     killall --wait glusterd &> /dev/null
 1060     glusterd --xlator-option *.upgrade=on -N
 1061 
 1062     #Cleaning leftover glusterd socket file which is created by glusterd in
 1063     #rpm_script_t context.
 1064     rm -f %{_rundir}/glusterd.socket
 1065 
 1066     # glusterd _was_ running, we killed it, it exited after *.upgrade=on,
 1067     # so start it again
 1068     %service_start glusterd
 1069 else
 1070     glusterd --xlator-option *.upgrade=on -N
 1071 
 1072     #Cleaning leftover glusterd socket file which is created by glusterd in
 1073     #rpm_script_t context.
 1074     rm -f %{_rundir}/glusterd.socket
 1075 fi
 1076 exit 0
 1077 %endif
 1078 
 1079 ##-----------------------------------------------------------------------------
 1080 ## All %%pre should be placed here and keep them sorted
 1081 ##
 1082 %pre
 1083 getent group gluster > /dev/null || groupadd -r gluster
 1084 getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster
 1085 exit 0
 1086 
 1087 ##-----------------------------------------------------------------------------
 1088 ## All %%preun should be placed here and keep them sorted
 1089 ##
 1090 %if ( 0%{!?_without_events:1} )
 1091 %preun events
 1092 if [ $1 -eq 0 ]; then
 1093     if [ -f %glustereventsd_svcfile ]; then
 1094         %service_stop glustereventsd
 1095         %systemd_preun glustereventsd
 1096     fi
 1097 fi
 1098 exit 0
 1099 %endif
 1100 
 1101 %if ( 0%{!?_without_server:1} )
 1102 %preun server
 1103 if [ $1 -eq 0 ]; then
 1104     if [ -f %glusterfsd_svcfile ]; then
 1105         %service_stop glusterfsd
 1106     fi
 1107     %service_stop glusterd
 1108     if [ -f %glusterfsd_svcfile ]; then
 1109         %systemd_preun glusterfsd
 1110     fi
 1111     %systemd_preun glusterd
 1112 fi
 1113 if [ $1 -ge 1 ]; then
 1114     if [ -f %glusterfsd_svcfile ]; then
 1115         %systemd_postun_with_restart glusterfsd
 1116     fi
 1117     %systemd_postun_with_restart glusterd
 1118 fi
 1119 exit 0
 1120 %endif
 1121 
 1122 %preun thin-arbiter
 1123 if [ $1 -eq 0 ]; then
 1124     if [ -f %glusterta_svcfile ]; then
 1125         %service_stop gluster-ta-volume
 1126         %systemd_preun gluster-ta-volume
 1127     fi
 1128 fi
 1129 
 1130 ##-----------------------------------------------------------------------------
 1131 ## All %%postun should be placed here and keep them sorted
 1132 ##
 1133 %postun
 1134 %if ( 0%{!?_without_syslog:1} )
 1135 %if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
 1136 %systemd_postun_with_restart rsyslog
 1137 %endif
 1138 %endif
 1139 
 1140 %if ( 0%{!?_without_server:1} )
 1141 %postun server
 1142 %if (0%{?_with_firewalld:1})
 1143     %firewalld_reload
 1144 %endif
 1145 exit 0
 1146 %endif
 1147 
 1148 %if ( 0%{!?_without_server:1} )
 1149 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 1150 %postun ganesha
 1151 semanage boolean -m ganesha_use_fusefs --off
 1152 exit 0
 1153 %endif
 1154 %endif
 1155 
 1156 ##-----------------------------------------------------------------------------
 1157 ## All %%trigger should be placed here and keep them sorted
 1158 ##
 1159 %if ( 0%{!?_without_server:1} )
 1160 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 1161 %trigger ganesha -- selinux-policy-targeted
 1162 semanage boolean -m ganesha_use_fusefs --on
 1163 exit 0
 1164 %endif
 1165 %endif
 1166 
 1167 ##-----------------------------------------------------------------------------
 1168 ## All %%triggerun should be placed here and keep them sorted
 1169 ##
 1170 %if ( 0%{!?_without_server:1} )
 1171 %if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
 1172 %triggerun ganesha -- selinux-policy-targeted
 1173 semanage boolean -m ganesha_use_fusefs --off
 1174 exit 0
 1175 %endif
 1176 %endif
 1177 
 1178 ##-----------------------------------------------------------------------------
 1179 ## All %%files should be placed here and keep them grouped
 1180 ##
 1181 %files
 1182 %doc ChangeLog COPYING-GPLV2 COPYING-LGPLV3 INSTALL README.md THANKS COMMITMENT
 1183 %{_mandir}/man8/*gluster*.8*
 1184 %if ( 0%{!?_without_server:1} )
 1185 %exclude %{_mandir}/man8/gluster.8*
 1186 %endif
 1187 %dir %{_localstatedir}/log/glusterfs
 1188 %if 0%{?!_without_server:1}
 1189 %dir %{_datadir}/glusterfs
 1190 %dir %{_datadir}/glusterfs/scripts
 1191      %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
 1192      %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
 1193 %endif
 1194 # xlators that are needed on the client- and on the server-side
 1195 %dir %{_libdir}/glusterfs
 1196 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}
 1197 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/auth
 1198      %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/addr.so
 1199      %{_libdir}/glusterfs/%{version}%{?prereltag}/auth/login.so
 1200 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport
 1201      %{_libdir}/glusterfs/%{version}%{?prereltag}/rpc-transport/socket.so
 1202 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1203 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug
 1204      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/error-gen.so
 1205      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/delay-gen.so
 1206      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/io-stats.so
 1207      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/sink.so
 1208      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/debug/trace.so
 1209 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
 1210      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/access-control.so
 1211      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/barrier.so
 1212      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cdc.so
 1213      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/changelog.so
 1214      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/utime.so
 1215      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/gfid-access.so
 1216      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/namespace.so
 1217      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/read-only.so
 1218      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/shard.so
 1219      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-client.so
 1220      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/worm.so
 1221      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/cloudsync.so
 1222      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/meta.so
 1223 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance
 1224      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-cache.so
 1225      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/io-threads.so
 1226      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/md-cache.so
 1227      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/open-behind.so
 1228      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/quick-read.so
 1229      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/read-ahead.so
 1230      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/readdir-ahead.so
 1231      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/stat-prefetch.so
 1232      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/write-behind.so
 1233      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/performance/nl-cache.so
 1234 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system
 1235      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/system/posix-acl.so
 1236 %dir %attr(0775,gluster,gluster) %{_rundir}/gluster
 1237 %if 0%{?_tmpfilesdir:1} && 0%{!?_without_server:1}
 1238 %{_tmpfilesdir}/gluster.conf
 1239 %endif
 1240 
 1241 %if ( 0%{?_without_server:1} )
 1242 #exclude ganesha related files
 1243 %exclude %{_sysconfdir}/ganesha/ganesha-ha.conf.sample
 1244 %exclude %{_libexecdir}/ganesha/*
 1245 %exclude %{_prefix}/lib/ocf/resource.d/heartbeat/*
 1246 %endif
 1247 
 1248 %files cli
 1249 %{_sbindir}/gluster
 1250 %{_mandir}/man8/gluster.8*
 1251 %{_sysconfdir}/bash_completion.d/gluster
 1252 
 1253 %files cloudsync-plugins
 1254 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins
 1255      %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsyncs3.so
 1256      %{_libdir}/glusterfs/%{version}%{?prereltag}/cloudsync-plugins/cloudsynccvlt.so
 1257 
 1258 %files -n libglusterfs-devel
 1259 %dir %{_includedir}/glusterfs
 1260      %{_includedir}/glusterfs/*.h
 1261      %{_includedir}/glusterfs/server/*.h
 1262 %{_libdir}/libglusterfs.so
 1263 
 1264 %files -n libgfapi-devel
 1265 %dir %{_includedir}/glusterfs/api
 1266      %{_includedir}/glusterfs/api/*.h
 1267 %{_libdir}/libgfapi.so
 1268 %{_libdir}/pkgconfig/glusterfs-api.pc
 1269 
 1270 
 1271 %files -n libgfchangelog-devel
 1272 %dir %{_includedir}/glusterfs/gfchangelog
 1273      %{_includedir}/glusterfs/gfchangelog/*.h
 1274 %{_libdir}/libgfchangelog.so
 1275 %{_libdir}/pkgconfig/libgfchangelog.pc
 1276 
 1277 %files -n libgfrpc-devel
 1278 %dir %{_includedir}/glusterfs/rpc
 1279      %{_includedir}/glusterfs/rpc/*.h
 1280 %{_libdir}/libgfrpc.so
 1281 
 1282 %files -n libgfxdr-devel
 1283 %{_libdir}/libgfxdr.so
 1284 
 1285 %files client-xlators
 1286 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1287 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster
 1288      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/cluster/*.so
 1289 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
 1290      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/client.so
 1291 
 1292 %files extra-xlators
 1293 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1294 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
 1295      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quiesce.so
 1296 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground
 1297      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/playground/template.so
 1298 
 1299 %files fuse
 1300 # glusterfs is a symlink to glusterfsd, -server depends on -fuse.
 1301 %{_sbindir}/glusterfs
 1302 %{_sbindir}/glusterfsd
 1303 %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs
 1304 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1305 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount
 1306      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/fuse.so
 1307 /sbin/mount.glusterfs
 1308 %if ( 0%{!?_without_fusermount:1} )
 1309 %{_bindir}/fusermount-glusterfs
 1310 %endif
 1311 
 1312 %if ( 0%{?_with_gnfs:1} && 0%{!?_without_server:1} )
 1313 %files gnfs
 1314 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1315 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs
 1316      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/server.so
 1317 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs
 1318 %ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/nfs-server.vol
 1319 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/nfs/run
 1320 %ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
 1321 %endif
 1322 
 1323 %files thin-arbiter
 1324 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1325 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
 1326      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/thin-arbiter.so
 1327 %dir %{_datadir}/glusterfs/scripts
 1328      %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
 1329 %config %{_sysconfdir}/glusterfs/thin-arbiter.vol
 1330 
 1331 %if ( 0%{?_with_systemd:1} )
 1332 %{_unitdir}/gluster-ta-volume.service
 1333 %endif
 1334 
 1335 %if ( 0%{!?_without_georeplication:1} )
 1336 %files geo-replication
 1337 %config(noreplace) %{_sysconfdir}/logrotate.d/glusterfs-georep
 1338 
 1339 %{_sbindir}/gfind_missing_files
 1340 %{_sbindir}/gluster-mountbroker
 1341 %dir %{_libexecdir}/glusterfs
 1342 %dir %{_libexecdir}/glusterfs/python
 1343 %dir %{_libexecdir}/glusterfs/python/syncdaemon
 1344      %{_libexecdir}/glusterfs/gsyncd
 1345      %{_libexecdir}/glusterfs/python/syncdaemon/*
 1346 %dir %{_libexecdir}/glusterfs/scripts
 1347      %{_libexecdir}/glusterfs/scripts/get-gfid.sh
 1348      %{_libexecdir}/glusterfs/scripts/slave-upgrade.sh
 1349      %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh
 1350      %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh
 1351      %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid
 1352      %{_libexecdir}/glusterfs/scripts/schedule_georep.py*
 1353      %{_libexecdir}/glusterfs/gverify.sh
 1354      %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
 1355      %{_libexecdir}/glusterfs/peer_gsec_create
 1356      %{_libexecdir}/glusterfs/peer_mountbroker
 1357      %{_libexecdir}/glusterfs/peer_mountbroker.py*
 1358      %{_libexecdir}/glusterfs/gfind_missing_files
 1359      %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
 1360 %{_sbindir}/gluster-georep-sshkey
 1361 
 1362        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/geo-replication
 1363 %ghost      %attr(0644,-,-) %{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf
 1364        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create
 1365        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post
 1366             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh
 1367 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/gsync-create/pre
 1368 
 1369 %endif
 1370 
 1371 %files -n libglusterfs0
 1372 %{_libdir}/libglusterfs.so.*
 1373 
 1374 %files -n libgfapi0
 1375 %{_libdir}/libgfapi.so.*
 1376 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount
 1377      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mount/api.so
 1378 
 1379 %files -n libgfchangelog0
 1380 %{_libdir}/libgfchangelog.so.*
 1381 
 1382 %files -n libgfrpc0
 1383 %{_libdir}/libgfrpc.so.*
 1384 
 1385 %files -n libgfxdr0
 1386 %{_libdir}/libgfxdr.so.*
 1387 
 1388 %files -n libglusterd0
 1389 %{_libdir}/libglusterd.so.*
 1390 %exclude %{_libdir}/libglusterd.so
 1391 
 1392 %files -n python%{_pythonver}-gluster
 1393 # introducing glusterfs module in site packages.
 1394 # so that all other gluster submodules can reside in the same namespace.
 1395 %if ( %{_usepython3} )
 1396 %dir %{python3_sitelib}/gluster
 1397      %{python3_sitelib}/gluster/__init__.*
 1398      %{python3_sitelib}/gluster/__pycache__
 1399      %{python3_sitelib}/gluster/cliutils
 1400 %else
 1401 %dir %{python2_sitelib}/gluster
 1402      %{python2_sitelib}/gluster/__init__.*
 1403      %{python2_sitelib}/gluster/cliutils
 1404 %endif
 1405 
 1406 %files regression-tests
 1407 %dir %{_datadir}/glusterfs
 1408      %{_datadir}/glusterfs/run-tests.sh
 1409      %{_datadir}/glusterfs/tests
 1410 %exclude %{_datadir}/glusterfs/tests/vagrant
 1411 
 1412 %if ( 0%{!?_without_server:1} )
 1413 %files ganesha
 1414 %dir %{_libexecdir}/ganesha
 1415 %{_sysconfdir}/ganesha/ganesha-ha.conf.sample
 1416 %{_libexecdir}/ganesha/*
 1417 %{_prefix}/lib/ocf/resource.d/heartbeat/*
 1418 %{_sharedstatedir}/glusterd/hooks/1/start/post/S31ganesha-start.sh
 1419 %ghost      %attr(0644,-,-) %config(noreplace) %{_sysconfdir}/ganesha/ganesha-ha.conf
 1420 %ghost %dir %attr(0755,-,-) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha
 1421 %ghost      %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf
 1422 %ghost      %attr(0644,-,-) %config(noreplace) %{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf
 1423 %endif
 1424 
 1425 %if ( 0%{!?_without_ocf:1} )
 1426 %files resource-agents
 1427 # /usr/lib is the standard for OCF, also on x86_64
 1428 %{_prefix}/lib/ocf/resource.d/glusterfs
 1429 %endif
 1430 
 1431 %if ( 0%{!?_without_server:1} )
 1432 %files server
 1433 %doc extras/clear_xattrs.sh
 1434 # sysconf
 1435 %config(noreplace) %{_sysconfdir}/glusterfs
 1436 %exclude %{_sysconfdir}/glusterfs/thin-arbiter.vol
 1437 %exclude %{_sysconfdir}/glusterfs/eventsconfig.json
 1438 %exclude %{_sharedstatedir}/glusterd/nfs/nfs-server.vol
 1439 %exclude %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
 1440 %if ( 0%{?_with_gnfs:1} )
 1441 %exclude %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/nfs/*
 1442 %endif
 1443 %config(noreplace) %{_sysconfdir}/sysconfig/glusterd
 1444 %if ( 0%{_for_fedora_koji_builds} )
 1445 %config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
 1446 %endif
 1447 
 1448 # init files
 1449 %glusterd_svcfile
 1450 %if ( 0%{_for_fedora_koji_builds} )
 1451 %glusterfsd_svcfile
 1452 %endif
 1453 %if ( 0%{?_with_systemd:1} )
 1454 %glusterfssharedstorage_svcfile
 1455 %endif
 1456 
 1457 # binaries
 1458 %{_sbindir}/glusterd
 1459 %{_libexecdir}/glusterfs/glfsheal
 1460 %{_sbindir}/gf_attach
 1461 %{_sbindir}/gluster-setgfid2path
 1462 # {_sbindir}/glusterfsd is the actual binary, but glusterfs (client) is a
 1463 # symlink. The binary itself (and symlink) are part of the glusterfs-fuse
 1464 # package, because glusterfs-server depends on that anyway.
 1465 
 1466 # Manpages
 1467 %{_mandir}/man8/gluster-setgfid2path.8*
 1468 
 1469 # xlators
 1470 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator
 1471 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features
 1472      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/arbiter.so
 1473      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bit-rot.so
 1474      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/bitrot-stub.so
 1475      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/sdfs.so
 1476      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/index.so
 1477      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/locks.so
 1478      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/posix*
 1479      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/snapview-server.so
 1480      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/marker.so
 1481      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/quota*
 1482      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/selinux.so
 1483      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/trash.so
 1484      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/upcall.so
 1485      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/features/leases.so
 1486 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt
 1487      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/mgmt/glusterd.so
 1488 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol
 1489      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/protocol/server.so
 1490 %dir %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage
 1491      %{_libdir}/glusterfs/%{version}%{?prereltag}/xlator/storage/posix.so
 1492 
 1493 # snap_scheduler
 1494 %{_sbindir}/snap_scheduler.py
 1495 %{_sbindir}/gcron.py
 1496 %{_sbindir}/conf.py
 1497 
 1498 # /var/lib/glusterd, e.g. hookscripts, etc.
 1499 %ghost      %attr(0644,-,-) %config(noreplace) %{_sharedstatedir}/glusterd/glusterd.info
 1500        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd
 1501 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/bitd
 1502        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/groups
 1503             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/virt
 1504             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/metadata-cache
 1505             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/gluster-block
 1506             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/nl-cache
 1507             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/db-workload
 1508             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/distributed-virt
 1509             %attr(0644,-,-) %{_sharedstatedir}/glusterd/groups/samba
 1510        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind
 1511        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glusterfind/.keys
 1512 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/glustershd
 1513        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks
 1514        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1
 1515        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick
 1516        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post
 1517             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
 1518             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
 1519             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
 1520        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre
 1521             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
 1522        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create
 1523        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post
 1524             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/post/S10selinux-label-brick.sh
 1525 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/create/pre
 1526 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file
 1527 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/post
 1528 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/copy-file/pre
 1529        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete
 1530        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/post
 1531                             %{_sharedstatedir}/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
 1532        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre
 1533             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh
 1534 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick
 1535 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/post
 1536 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/remove-brick/pre
 1537        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset
 1538        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/post
 1539 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/reset/pre
 1540        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set
 1541        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post
 1542             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S30samba-set.sh
 1543             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh
 1544 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/set/pre
 1545        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start
 1546        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post
 1547             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S29CTDBsetup.sh
 1548             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/post/S30samba-start.sh
 1549 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/start/pre
 1550        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop
 1551 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/post
 1552        %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre
 1553             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S30samba-stop.sh
 1554             %attr(0755,-,-) %{_sharedstatedir}/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
 1555 %config(noreplace) %ghost      %attr(0600,-,-) %{_sharedstatedir}/glusterd/options
 1556 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/peers
 1557 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/quotad
 1558 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/scrub
 1559 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/snaps
 1560 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/ss_brick
 1561 %ghost %dir %attr(0755,-,-) %{_sharedstatedir}/glusterd/vols
 1562 
 1563 # Extra utility script
 1564 %dir %{_libexecdir}/glusterfs
 1565 %dir %{_datadir}/glusterfs/scripts
 1566      %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
 1567 %if ( 0%{?_with_systemd:1} )
 1568      %{_libexecdir}/glusterfs/mount-shared-storage.sh
 1569      %{_datadir}/glusterfs/scripts/control-cpu-load.sh
 1570      %{_datadir}/glusterfs/scripts/control-mem.sh
 1571 %endif
 1572 
 1573 # Incrementalapi
 1574      %{_libexecdir}/glusterfs/glusterfind
 1575 %{_bindir}/glusterfind
 1576      %{_libexecdir}/glusterfs/peer_add_secret_pub
 1577 
 1578 %if ( 0%{?_with_firewalld:1} )
 1579 %{_prefix}/lib/firewalld/services/glusterfs.xml
 1580 %endif
 1581 # end of server files
 1582 %endif
 1583 
 1584 # Events
 1585 %if ( 0%{!?_without_events:1} )
 1586 %files events
 1587 %config(noreplace) %{_sysconfdir}/glusterfs/eventsconfig.json
 1588 %dir %{_sharedstatedir}/glusterd
 1589 %dir %{_sharedstatedir}/glusterd/events
 1590 %dir %{_libexecdir}/glusterfs
 1591      %{_libexecdir}/glusterfs/gfevents
 1592      %{_libexecdir}/glusterfs/peer_eventsapi.py*
 1593 %{_sbindir}/glustereventsd
 1594 %{_sbindir}/gluster-eventsapi
 1595 %{_datadir}/glusterfs/scripts/eventsdash.py*
 1596 %if ( 0%{?_with_systemd:1} )
 1597 %{_unitdir}/glustereventsd.service
 1598 %else
 1599 %{_sysconfdir}/init.d/glustereventsd
 1600 %endif
 1601 %endif
 1602 
 1603 %changelog
 1604 * Thu May 14 2020 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1605 - refactor, common practice, Issue #1126
 1606 
 1607 * Wed Oct 9 2019 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1608 - remove leftover bd xlator cruft
 1609 
 1610 * Fri Aug 23 2019 Shwetha K Acharya <sacharya@redhat.com>
 1611 - removed {name}-ufs from Obsoletes
 1612 - added  "< version" for obsoletes {name}-gnfs and {name}-rdma
 1613 
 1614 * Mon Jul 15 2019 Jiffin Tony Thottan <jthottan@redhat.com>
 1615 - Adding ganesha ha bits back in gluster repository
 1616 
 1617 * Fri Jul 12 2019 Amar Tumballi <amarts@redhat.com>
 1618 - Remove rdma package, and mark older rdma package as 'Obsoletes'
 1619 
 1620 * Fri Jun 14 2019 Niels de Vos <ndevos@redhat.com>
 1621 - always build glusterfs-cli to allow monitoring/managing from clients
 1622 
 1623 * Wed Mar 6 2019 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1624 - remove unneeded ldconfig in scriptlets
 1625 -  reported by Igor Gnatenko in Fedora
 1626 -   https://src.fedoraproject.org/rpms/glusterfs/pull-request/5
 1627 
 1628 * Mon Mar 4 2019 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1629 - s390x has RDMA, since around Fedora 27 and in RHEL7 since June 2016.
 1630 
 1631 * Tue Feb 26 2019 Ashish Pandey <aspandey@redhat.com>
 1632 - Add thin-arbiter package
 1633 
 1634 * Sun Feb 24 2019 Aravinda VK <avishwan@redhat.com>
 1635 - Renamed events package to gfevents
 1636 
 1637 * Thu Feb 21 2019 Jiffin Tony Thottan <jthottan@redhat.com>
 1638 - Obsoleting gluster-gnfs package
 1639 
 1640 * Wed Nov 28 2018 Krutika Dhananjay <kdhananj@redhat.com>
 1641 - Install /var/lib/glusterd/groups/distributed-virt by default
 1642 
 1643 * Tue Nov 13 2018 Niels de Vos <ndevos@redhat.com>
 1644 - Add an option to build with ThreadSanitizer (TSAN)
 1645 
 1646 * Fri Sep 7 2018 Niels de Vos <ndevos@redhat.com>
 1647 - Add an option to build with address sanitizer (ASAN)
 1648 
 1649 * Sun Jul 29 2018 Niels de Vos <ndevos@redhat.com>
 1650 - Disable building glusterfs-resource-agents on el6 (#1609551)
 1651 
 1652 * Thu Feb 22 2018 Kotresh HR <khiremat@redhat.com>
 1653 - Added util-linux as dependency to georeplication rpm (#1544382)
 1654 
 1655 * Thu Feb 1 2018 Niels de Vos <ndevos@redhat.com>
 1656 - Add '--without server' option to facilitate el6 builds (#1074947)
 1657 
 1658 * Wed Jan 24 2018 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1659 - python-ctypes no long exists, now in python stdlib (#1538258)
 1660 
 1661 * Thu Jan 18 2018 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1662 - Fedora 28 glibc has removed rpc headers and rpcgen, use libtirpc
 1663 
 1664 * Mon Dec 25 2017 Niels de Vos <ndevos@redhat.com>
 1665 - Fedora 28 has renamed pyxattr
 1666 
 1667 * Wed Sep 27 2017 Mohit Agrawal <moagrawa@redhat.com>
 1668 - Added control-cpu-load.sh and control-mem.sh scripts to glusterfs-server section(#1496335)
 1669 
 1670 * Tue Aug 22 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1671 - libibverbs-devel, librdmacm-devel -> rdma-core-devel #1483995
 1672 
 1673 * Thu Jul 20 2017 Aravinda VK <avishwan@redhat.com>
 1674 - Added new tool/binary to set the gfid2path xattr on files
 1675 
 1676 * Thu Jul 13 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1677 - various directories not owned by any package
 1678 
 1679 * Fri Jun 16 2017 Jiffin Tony Thottan <jthottan@redhat.com>
 1680 - Add glusterfssharedstorage.service systemd file
 1681 
 1682 * Fri Jun 9 2017 Poornima G <pgurusid@redhat.com>
 1683 - Install /var/lib/glusterd/groups/nl-cache by default
 1684 
 1685 * Wed May 10 2017 Pranith Kumar K <pkarampu@redhat.com>
 1686 - Install /var/lib/glusterd/groups/gluster-block by default
 1687 
 1688 * Thu Apr 27 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1689 - gnfs in an optional subpackage
 1690 
 1691 * Wed Apr 26 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1692 - /var/run/gluster owner gluster:gluster(0775) for qemu(gfapi)
 1693   statedumps (#1445569)
 1694 
 1695 * Mon Apr 24 2017 Jiffin Tony Thottan <jhottan@redhat.com>
 1696 - Install SELinux hook scripts that manage contexts for bricks (#1047975)
 1697 
 1698 * Thu Apr 20 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1699 - firewalld-filesystem -> firewalld (#1443959)
 1700 
 1701 * Thu Apr 13 2017 Niels de Vos <ndevos@redhat.com>
 1702 - the -regression-tests sub-package needs "bc" for some tests (#1442145)
 1703 
 1704 * Mon Mar 20 2017 Niels de Vos <ndevos@redhat.com>
 1705 - Drop dependency on psmisc, pkill is used instead of killall (#1197308)
 1706 
 1707 * Thu Feb 16 2017 Niels de Vos <ndevos@redhat.com>
 1708 - Obsolete and Provide python-gluster for upgrading from glusterfs < 3.10
 1709 
 1710 * Wed Feb 1 2017 Poornima G <pgurusid@redhat.com>
 1711 - Install /var/lib/glusterd/groups/metadata-cache by default
 1712 
 1713 * Wed Jan 18 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1714 - python2 (versus python3) cleanup (#1414902)
 1715 
 1716 * Fri Jan 13 2017 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1717 - switch to storhaug HA
 1718 
 1719 * Fri Jan 6 2017 Niels de Vos <ndevos@redhat.com>
 1720 - use macro provided by firewalld-filesystem to reload firewalld
 1721 
 1722 * Thu Nov 24 2016 Jiffin Tony Thottan <jhottan@redhat.com>
 1723 - remove S31ganesha-reset.sh from hooks (#1397795)
 1724 
 1725 * Thu Sep 22 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1726 - python-ctypes no long exists, now in python stdlib (#1378436)
 1727 
 1728 * Wed Sep 14 2016 Aravinda VK <avishwan@redhat.com>
 1729 - Changed attribute of eventsconfig.json file as same as other configs (#1375532)
 1730 
 1731 * Thu Sep 08 2016 Aravinda VK <avishwan@redhat.com>
 1732 - Added init script for glustereventsd (#1365395)
 1733 
 1734 * Wed Aug 31 2016 Avra Sengupta <asengupt@redhat.com>
 1735 - Added conf.py for snap scheduler
 1736 
 1737 * Wed Aug 31 2016 Aravinda VK <avishwan@redhat.com>
 1738 - Added new Geo-replication utility "gluster-georep-sshkey" (#1356508)
 1739 
 1740 * Thu Aug 25 2016 Aravinda VK <avishwan@redhat.com>
 1741 - Added gluster-mountbroker utility for geo-rep mountbroker setup (#1343333)
 1742 
 1743 * Mon Aug 22 2016 Milind Changire <mchangir@redhat.com>
 1744 - Add psmisc as dependency for glusterfs-fuse for killall command (#1367665)
 1745 
 1746 * Thu Aug 4 2016 Jiffin Tony Thottan <jthottan@redhat.com>
 1747 - Remove ganesha.so from client xlators
 1748 
 1749 * Sun Jul 31 2016 Soumya Koduri <skoduri@redhat.com>
 1750 - Add dependency on portblock resource agent for ganesha package (#1354439)
 1751 
 1752 * Mon Jul 18 2016 Aravinda VK <avishwan@redhat.com>
 1753 - Added new subpackage events(glusterfs-events) (#1334044)
 1754 
 1755 * Fri Jul 15 2016 Aravinda VK <avishwan@redhat.com>
 1756 - Removed ".py" extension from symlink(S57glusterfind-delete-post)(#1356868)
 1757 
 1758 * Thu Jul 14 2016 Aravinda VK <avishwan@redhat.com>
 1759 - Removed extra packaging line of cliutils(python-gluster)(#1342356)
 1760 
 1761 * Mon Jul 11 2016 Aravinda VK <avishwan@redhat.com>
 1762 - Added Python subpackage "cliutils" under gluster
 1763 
 1764 * Tue May 31 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1765 - broken brp-python-bytecompile in RHEL7 results in installed
 1766   but unpackaged files.
 1767 
 1768 * Fri May 6 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1769 - additional dirs and files in /var/lib/glusterd/... (#1326410)
 1770 
 1771 * Tue Apr 26 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1772 - %%postun libs w/o firewalld on RHEL6 (#1330583)
 1773 
 1774 * Tue Apr 12 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1775 - additional dirs and files in /var/lib/glusterd/... (#1326410)
 1776 
 1777 * Mon Mar 7 2016 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1778 - %%pre, %%post etc. scriptlet cleanup, ... -p /sbin/ldconfig (#1315024)
 1779 
 1780 * Fri Jan 22 2016 Aravinda VK <avishwan@redhat.com>
 1781 - Added schedule_georep.py script to the glusterfs-geo-replication (#1300956)
 1782 
 1783 * Sat Jan 16 2016 Niels de Vos <ndevos@redhat.com>
 1784 - glusterfs-server depends on -api (#1296931)
 1785 
 1786 * Sun Jan 10 2016 Niels de Vos <ndevos@redhat.com>
 1787 - build system got fixed so that special glupy build is not needed anymore
 1788 
 1789 * Mon Dec 28 2015 Niels de Vos <ndevos@redhat.com>
 1790 - hook scripts in glusterfs-ganesha use dbus-send, add dependency (#1294446)
 1791 
 1792 * Tue Dec 22 2015 Niels de Vos <ndevos@redhat.com>
 1793 - move hook scripts for nfs-ganesha to the -ganesha sub-package
 1794 - use standard 'make' installation for the hook scripts (#1174765)
 1795 
 1796 * Tue Sep 1 2015 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1797 - erroneous ghost of ../hooks/1/delete causes install failure (#1258975)
 1798 
 1799 * Tue Aug 25 2015 Anand Nekkunti <anekkunt@redhat.com>
 1800 - adding glusterfs-firewalld service (#1253967)
 1801 
 1802 * Tue Aug 18 2015 Niels de Vos <ndevos@redhat.com>
 1803 - Include missing directories for glusterfind hooks scripts (#1225465)
 1804 
 1805 * Mon Jun 15 2015 Niels de Vos <ndevos@redhat.com>
 1806 - Replace hook script S31ganesha-set.sh by S31ganesha-start.sh (#1231738)
 1807 
 1808 * Fri Jun 12 2015 Aravinda VK <avishwan@redhat.com>
 1809 - Added rsync as dependency to georeplication rpm (#1231205)
 1810 
 1811 * Tue Jun 02 2015 Aravinda VK <avishwan@redhat.com>
 1812 - Added post hook for volume delete as part of glusterfind (#1225465)
 1813 
 1814 * Wed May 27 2015 Aravinda VK <avishwan@redhat.com>
 1815 - Added stop-all-gluster-processes.sh in glusterfs-server section (#1204641)
 1816 
 1817 * Wed May 20 2015 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1818 - python-gluster should be 'noarch' (#1219954)
 1819 
 1820 * Wed May 20 2015 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1821 - move libgf{db,changelog}.pc from -api-devel to -devel (#1223385)
 1822 
 1823 * Wed May 20 2015 Anand Nekkunti <anekkunt@redhat.com>
 1824 - glusterd.socket file cleanup during post run upgrade (#1210404)
 1825 
 1826 * Tue May 19 2015 Avra Sengupta <asengupt@redhat.com>
 1827 - Added S32gluster_enable_shared_storage.sh as volume set hook script (#1222013)
 1828 
 1829 * Mon May 18 2015 Milind Changire <mchangir@redhat.com>
 1830 - Move file peer_add_secret_pub to the server RPM to support glusterfind (#1221544)
 1831 * Sun May 17 2015 Niels de Vos <ndevos@redhat.com>
 1832 - Fix building on RHEL-5 based distributions (#1222317)
 1833 
 1834 * Tue May 05 2015 Niels de Vos <ndevos@redhat.com>
 1835 - Introduce glusterfs-client-xlators to reduce dependencies (#1195947)
 1836 
 1837 * Wed Apr 15 2015 Humble Chirammal <hchiramm@redhat.com>
 1838 - Introducing python-gluster package to own gluster namespace in sitelib (#1211848)
 1839 
 1840 * Sat Mar 28 2015 Mohammed Rafi KC <rkavunga@redhat.com>
 1841 - Add dependency for librdmacm version >= 1.0.15 (#1206744)
 1842 
 1843 * Tue Mar 24 2015 Niels de Vos <ndevos@redhat.com>
 1844 - move libgfdb (with sqlite dependency) to -server subpackage (#1194753)
 1845 
 1846 * Tue Mar 17 2015 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1847 - glusterfs-ganesha sub-package
 1848 
 1849 * Thu Mar 12 2015 Kotresh H R <khiremat@redhat.com>
 1850 - gfind_missing_files tool is included (#1187140)
 1851 
 1852 * Tue Mar 03 2015 Aravinda VK <avishwan@redhat.com>
 1853 - Included glusterfind files as part of server package.
 1854 
 1855 * Sun Mar 1 2015 Avra Sengupta <asengupt@redhat.com>
 1856 - Added installation of snap-scheduler
 1857 
 1858 * Thu Feb 26 2015 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1859 - enable cmocka unittest support only when asked for (#1067059)
 1860 
 1861 * Tue Feb 24 2015 Niels de Vos <ndevos@redhat.com>
 1862 - POSIX ACL conversion needs BuildRequires libacl-devel (#1185654)
 1863 
 1864 * Wed Feb 18 2015 Andreas Schneider <asn@redhat.com>
 1865 - Change cmockery2 to cmocka.
 1866 
 1867 * Wed Feb 18 2015 Kaushal M <kaushal@redhat.com>
 1868 - add userspace-rcu as a requirement
 1869 
 1870 * Fri Feb 13 2015 Gaurav Kumar Garg <ggarg@redhat.com>
 1871 - .cmd_log_history file should be renamed to cmd_history.log post
 1872   upgrade (#1165996)
 1873 
 1874 * Fri Jan 30 2015 Nandaja Varma <nvarma@redhat.com>
 1875 - remove checks for rpmbuild/mock from run-tests.sh (#178008)
 1876 
 1877 * Fri Jan 16 2015 Niels de Vos <ndevos@redhat.com>
 1878 - add support for /run/gluster through a tmpfiles.d config file (#1182934)
 1879 
 1880 * Tue Jan 6 2015 Aravinda VK<avishwan@redhat.com>
 1881 - Added new libexec script for mountbroker user management (peer_mountbroker)
 1882 
 1883 * Fri Dec 12 2014 Niels de Vos <ndevos@redhat.com>
 1884 - do not package all /usr/share/glusterfs/* files in regression-tests (#1169005)
 1885 
 1886 * Fri Sep 26 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1887 - smarter logic in %%post server (#1146426)
 1888 
 1889 * Wed Sep 24 2014 Balamurugan Arumugam <barumuga@redhat.com>
 1890 - remove /sbin/ldconfig as interpreter (#1145989)
 1891 
 1892 * Fri Sep 5 2014 Lalatendu Mohanty <lmohanty@redhat.com>
 1893 - Changed the description as "GlusterFS a distributed filesystem"
 1894 
 1895 * Tue Aug 5 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1896 - logrotate files (#1126832)
 1897 
 1898 * Wed Jul 16 2014 Luis Pabon <lpabon@redhat.com>
 1899 - Added cmockery2 dependency
 1900 
 1901 * Fri Jun 27 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1902 - killall --wait in %%post server, (#1113543)
 1903 
 1904 * Thu Jun 19 2014 Humble Chirammal <hchiramm@redhat.com>
 1905 - Added dynamic loading of fuse module with glusterfs-fuse package installation in el5.
 1906 
 1907 * Thu Jun 12 2014 Varun Shastry <vshastry@redhat.com>
 1908 - Add bash completion config to the cli package
 1909 
 1910 * Tue Jun 03 2014 Vikhyat Umrao <vumrao@redhat.com>
 1911 - add nfs-utils package dependency for server package (#1065654)
 1912 
 1913 * Thu May 22 2014 Poornima G <pgurusid@redhat.com>
 1914 - Rename old hookscripts in an RPM-standard way.
 1915 
 1916 * Tue May 20 2014 Niels de Vos <ndevos@redhat.com>
 1917 - Almost drop calling ./autogen.sh
 1918 
 1919 * Fri Apr 25 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1920 - Sync with Fedora spec (#1091408, #1091392)
 1921 
 1922 * Fri Apr 25 2014 Arumugam Balamurugan <barumuga@redhat.com>
 1923 - fix RHEL 7 build failure "Installed (but unpackaged) file(s) found" (#1058188)
 1924 
 1925 * Wed Apr 02 2014 Arumugam Balamurugan <barumuga@redhat.com>
 1926 - cleanup to rearrange spec file elements
 1927 
 1928 * Wed Apr 02 2014 Arumugam Balamurugan <barumuga@redhat.com>
 1929 - add version/release dynamically (#1074919)
 1930 
 1931 * Thu Mar 27 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1932 - attr dependency (#1184626)
 1933 
 1934 * Wed Mar 26 2014 Poornima G <pgurusid@redhat.com>
 1935 - Include the hook scripts of add-brick, volume start, stop and set
 1936 
 1937 * Wed Feb 26 2014 Niels de Vos <ndevos@redhat.com>
 1938 - Drop glusterfs-devel dependency from glusterfs-api (#1065750)
 1939 
 1940 * Wed Feb 19 2014 Justin Clift <justin@gluster.org>
 1941 - Rename gluster.py to glupy.py to avoid namespace conflict (#1018619)
 1942 - Move the main Glupy files into glusterfs-extra-xlators rpm
 1943 - Move the Glupy Translator examples into glusterfs-devel rpm
 1944 
 1945 * Thu Feb 06 2014 Aravinda VK <avishwan@redhat.com>
 1946 - Include geo-replication upgrade scripts and hook scripts.
 1947 
 1948 * Wed Jan 15 2014 Niels de Vos <ndevos@redhat.com>
 1949 - Install /var/lib/glusterd/groups/virt by default
 1950 
 1951 * Sat Jan 4 2014 Niels de Vos <ndevos@redhat.com>
 1952 - The main glusterfs package should not provide glusterfs-libs (#1048489)
 1953 
 1954 * Tue Dec 10 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1955 - Sync with Fedora glusterfs.spec 3.5.0-0.1.qa3
 1956 
 1957 * Fri Oct 11 2013 Harshavardhana <fharshav@redhat.com>
 1958 - Add '_sharedstatedir' macro to `/var/lib` on <= RHEL5 (#1003184)
 1959 
 1960 * Wed Oct 9 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1961 - Sync with Fedora glusterfs.spec 3.4.1-2+
 1962 
 1963 * Wed Oct 9 2013 Niels de Vos <ndevos@redhat.com>
 1964 - glusterfs-api-devel requires glusterfs-devel (#1016938, #1017094)
 1965 
 1966 * Mon Sep 30 2013 Niels de Vos <ndevos@redhat.com>
 1967 - Package gfapi.py into the Python site-packages path (#1005146)
 1968 
 1969 * Tue Sep 17 2013 Harshavardhana <fharshav@redhat.com>
 1970 - Provide a new package called "glusterfs-regression-tests" for standalone
 1971   regression testing.
 1972 
 1973 * Thu Aug 22 2013 Niels de Vos <ndevos@redhat.com>
 1974 - Correct the day/date for some entries in this changelog (#1000019)
 1975 
 1976 * Wed Aug 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1977 - Sync with Fedora glusterfs.spec
 1978 -  add Requires
 1979 -  add -cli subpackage,
 1980 -  fix other minor differences with Fedora glusterfs.spec
 1981 
 1982 * Tue Jul 30 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1983 - Sync with Fedora glusterfs.spec, add glusterfs-libs RPM for oVirt/qemu-kvm
 1984 
 1985 * Thu Jul 25 2013 Csaba Henk <csaba@redhat.com>
 1986 - Added peer_add_secret_pub and peer_gsec_create to %%{_libexecdir}/glusterfs
 1987 
 1988 * Thu Jul 25 2013 Aravinda VK <avishwan@redhat.com>
 1989 - Added gverify.sh to %%{_libexecdir}/glusterfs directory.
 1990 
 1991 * Thu Jul 25 2013 Harshavardhana <fharshav@redhat.com>
 1992 - Allow to build with '--without bd' to disable 'bd' xlator
 1993 
 1994 * Thu Jun 27 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 1995 - fix the hardening fix for shlibs, use %%sed macro, shorter ChangeLog
 1996 
 1997 * Wed Jun 26 2013 Niels de Vos <ndevos@redhat.com>
 1998 - move the mount/api xlator to glusterfs-api
 1999 
 2000 * Fri Jun 7 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 2001 - Sync with Fedora glusterfs.spec, remove G4S/UFO and Swift
 2002 
 2003 * Mon Mar 4 2013 Niels de Vos <ndevos@redhat.com>
 2004 - Package /var/run/gluster so that statedumps can be created
 2005 
 2006 * Wed Feb 6 2013 Kaleb S. KEITHLEY <kkeithle@redhat.com>
 2007 - Sync with Fedora glusterfs.spec
 2008 
 2009 * Tue Dec 11 2012 Filip Pytloun <filip.pytloun@gooddata.com>
 2010 - add sysconfig file
 2011 
 2012 * Thu Oct 25 2012 Niels de Vos <ndevos@redhat.com>
 2013 - Add a sub-package for the OCF resource agents
 2014 
 2015 * Wed Sep 05 2012 Niels de Vos <ndevos@redhat.com>
 2016 - Don't use python-ctypes on SLES (from Jörg Petersen)
 2017 
 2018 * Tue Jul 10 2012 Niels de Vos <ndevos@redhat.com>
 2019 - Include extras/clear_xattrs.sh in the glusterfs-server sub-package
 2020 
 2021 * Thu Jun 07 2012 Niels de Vos <ndevos@redhat.com>
 2022 - Mark /var/lib/glusterd as owned by glusterfs, subdirs belong to -server
 2023 
 2024 * Wed May 9 2012 Kaleb S. KEITHLEY <kkeithle[at]redhat.com>
 2025 - Add BuildRequires: libxml2-devel so that configure will DTRT on for
 2026 - Fedora's Koji build system
 2027 
 2028 * Wed Nov 9 2011 Joe Julian <me@joejulian.name> - git master
 2029 - Merge fedora specfile into gluster's spec.in.
 2030 - Add conditionals to allow the same spec file to be used for both 3.1 and 3.2
 2031 - http://bugs.gluster.com/show_bug.cgi?id=2970
 2032 
 2033 * Wed Oct  5 2011 Joe Julian <me@joejulian.name> - 3.2.4-1
 2034 - Update to 3.2.4
 2035 - Removed the $local_fs requirement from the init scripts as in RHEL/CentOS that's provided
 2036 - by netfs, which needs to be started after glusterd.
 2037 
 2038 * Sun Sep 25 2011 Joe Julian <me@joejulian.name> - 3.2.3-2
 2039 - Merged in upstream changes
 2040 - Fixed version reporting 3.2git
 2041 - Added nfs init script (disabled by default)
 2042 
 2043 * Thu Sep  1 2011 Joe Julian <me@joejulian.name> - 3.2.3-1
 2044 - Update to 3.2.3
 2045 
 2046 * Tue Jul 19 2011 Joe Julian <me@joejulian.name> - 3.2.2-3
 2047 - Add readline and libtermcap dependencies
 2048 
 2049 * Tue Jul 19 2011 Joe Julian <me@joejulian.name> - 3.2.2-2
 2050 - Critical patch to prevent glusterd from walking outside of its own volume during rebalance
 2051 
 2052 * Thu Jul 14 2011 Joe Julian <me@joejulian.name> - 3.2.2-1
 2053 - Update to 3.2.2
 2054 
 2055 * Wed Jul 13 2011 Joe Julian <me@joejulian.name> - 3.2.1-2
 2056 - fix hardcoded path to gsyncd in source to match the actual file location
 2057 
 2058 * Tue Jun 21 2011 Joe Julian <me@joejulian.name> - 3.2.1
 2059 - Update to 3.2.1
 2060 
 2061 * Mon Jun 20 2011 Joe Julian <me@joejulian.name> - 3.1.5
 2062 - Update to 3.1.5
 2063 
 2064 * Tue May 31 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.4
 2065 - Current git
 2066 
 2067 * Sun May 29 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.2
 2068 - set _sharedstatedir to /var/lib for FHS compliance in RHEL5/CentOS5
 2069 - mv /etc/glusterd, if it exists, to the new state dir for upgrading from gluster packaging
 2070 
 2071 * Sat May 28 2011 Joe Julian <me@joejulian.name> - 3.1.5-qa1.1
 2072 - Update to 3.1.5-qa1
 2073 - Add patch to remove optimization disabling
 2074 - Add patch to remove forced 64 bit compile
 2075 - Obsolete glusterfs-core to allow for upgrading from gluster packaging
 2076 
 2077 * Sat Mar 19 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.3-1
 2078 - Update to 3.1.3
 2079 - Merge in more upstream SPEC changes
 2080 - Remove patches from GlusterFS bugzilla #2309 and #2311
 2081 - Remove inode-gen.patch
 2082 
 2083 * Sun Feb 06 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-3
 2084 - Add back in legacy SPEC elements to support older branches
 2085 
 2086 * Thu Feb 03 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-2
 2087 - Add patches from CloudFS project
 2088 
 2089 * Tue Jan 25 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.2-1
 2090 - Update to 3.1.2
 2091 
 2092 * Wed Jan 5 2011 Dan Horák <dan[at]danny.cz> - 3.1.1-3
 2093 - no InfiniBand on s390(x)
 2094 
 2095 * Sat Jan 1 2011 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.1.1-2
 2096 - Update to support readline
 2097 - Update to not parallel build
 2098 
 2099 * Mon Dec 27 2010 Silas Sewell <silas@sewell.ch> - 3.1.1-1
 2100 - Update to 3.1.1
 2101 - Change package names to mirror upstream
 2102 
 2103 * Mon Dec 20 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.0.7-1
 2104 - Update to 3.0.7
 2105 
 2106 * Wed Jul 28 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 3.0.5-1
 2107 - Update to 3.0.x
 2108 
 2109 * Sat Apr 10 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.9-2
 2110 - Move python version requires into a proper BuildRequires otherwise
 2111   the spec always turned off python bindings as python is not part
 2112   of buildsys-build and the chroot will never have python unless we
 2113   require it
 2114 - Temporarily set -D_FORTIFY_SOURCE=1 until upstream fixes code
 2115   GlusterFS Bugzilla #197 (#555728)
 2116 - Move glusterfs-volgen to devel subpackage (#555724)
 2117 - Update description (#554947)
 2118 
 2119 * Sat Jan 2 2010 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.9-1
 2120 - Update to 2.0.9
 2121 
 2122 * Sun Nov 8 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.8-1
 2123 - Update to 2.0.8
 2124 - Remove install of glusterfs-volgen, it's properly added to
 2125   automake upstream now
 2126 
 2127 * Sat Oct 31 2009 Jonathan Steffan <jsteffan@fedoraproject.org> - 2.0.7-1
 2128 - Update to 2.0.7
 2129 - Install glusterfs-volgen, until it's properly added to automake
 2130   by upstream
 2131 - Add macro to be able to ship more docs
 2132 
 2133 * Thu Sep 17 2009 Peter Lemenkov <lemenkov@gmail.com> 2.0.6-2
 2134 - Rebuilt with new fuse
 2135 
 2136 * Sat Sep 12 2009 Matthias Saou <http://freshrpms.net/> 2.0.6-1
 2137 - Update to 2.0.6.
 2138 - No longer default to disable the client on RHEL5 (#522192).
 2139 - Update spec file URLs.
 2140 
 2141 * Mon Jul 27 2009 Matthias Saou <http://freshrpms.net/> 2.0.4-1
 2142 - Update to 2.0.4.
 2143 
 2144 * Thu Jun 11 2009 Matthias Saou <http://freshrpms.net/> 2.0.1-2
 2145 - Remove libglusterfs/src/y.tab.c to fix koji F11/devel builds.
 2146 
 2147 * Sat May 16 2009 Matthias Saou <http://freshrpms.net/> 2.0.1-1
 2148 - Update to 2.0.1.
 2149 
 2150 * Thu May  7 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-1
 2151 - Update to 2.0.0 final.
 2152 
 2153 * Wed Apr 29 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-0.3.rc8
 2154 - Move glusterfsd to common, since the client has a symlink to it.
 2155 
 2156 * Fri Apr 24 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-0.2.rc8
 2157 - Update to 2.0.0rc8.
 2158 
 2159 * Sun Apr 12 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-0.2.rc7
 2160 - Update glusterfsd init script to the new style init.
 2161 - Update files to match the new default vol file names.
 2162 - Include logrotate for glusterfsd, use a pid file by default.
 2163 - Include logrotate for glusterfs, using killall for lack of anything better.
 2164 
 2165 * Sat Apr 11 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-0.1.rc7
 2166 - Update to 2.0.0rc7.
 2167 - Rename "libs" to "common" and move the binary, man page and log dir there.
 2168 
 2169 * Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
 2170 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
 2171 
 2172 * Mon Feb 16 2009 Matthias Saou <http://freshrpms.net/> 2.0.0-0.1.rc1
 2173 - Update to 2.0.0rc1.
 2174 - Include new libglusterfsclient.h.
 2175 
 2176 * Mon Feb 16 2009 Matthias Saou <http://freshrpms.net/> 1.3.12-1
 2177 - Update to 1.3.12.
 2178 - Remove no longer needed ocreat patch.
 2179 
 2180 * Thu Jul 17 2008 Matthias Saou <http://freshrpms.net/> 1.3.10-1
 2181 - Update to 1.3.10.
 2182 - Remove mount patch, it's been included upstream now.
 2183 
 2184 * Fri May 16 2008 Matthias Saou <http://freshrpms.net/> 1.3.9-1
 2185 - Update to 1.3.9.
 2186 
 2187 * Fri May  9 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-1
 2188 - Update to 1.3.8 final.
 2189 
 2190 * Wed Apr 23 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.10
 2191 - Include short patch to include fixes from latest TLA 751.
 2192 
 2193 * Tue Apr 22 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.9
 2194 - Update to 1.3.8pre6.
 2195 - Include glusterfs binary in both the client and server packages, now that
 2196   glusterfsd is a symlink to it instead of a separate binary.
 2197 * Sun Feb  3 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.8
 2198 - Add python version check and disable bindings for version < 2.4.
 2199 
 2200 * Sun Feb  3 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.7
 2201 - Add --without client rpmbuild option, make it the default for RHEL (no fuse).
 2202   (I hope "rhel" is the proper default macro name, couldn't find it...)
 2203 
 2204 * Wed Jan 30 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.6
 2205 - Add --without ibverbs rpmbuild option to the package.
 2206 
 2207 * Mon Jan 14 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.5
 2208 - Update to current TLA again, patch-636 which fixes the known segfaults.
 2209 
 2210 * Thu Jan 10 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.4
 2211 - Downgrade to glusterfs--mainline--2.5--patch-628 which is more stable.
 2212 
 2213 * Tue Jan  8 2008 Matthias Saou <http://freshrpms.net/> 1.3.8-0.3
 2214 - Update to current TLA snapshot.
 2215 - Include umount.glusterfs wrapper script (really needed? dunno).
 2216 - Include patch to mount wrapper to avoid multiple identical mounts.
 2217 
 2218 * Sun Dec 30 2007 Matthias Saou <http://freshrpms.net/> 1.3.8-0.1
 2219 - Update to current TLA snapshot, which includes "volume-name=" fstab option.
 2220 
 2221 * Mon Dec  3 2007 Matthias Saou <http://freshrpms.net/> 1.3.7-6
 2222 - Re-add the /var/log/glusterfs directory in the client sub-package (required).
 2223 - Include custom patch to support vol= in fstab for -n glusterfs client option.
 2224 
 2225 * Mon Nov 26 2007 Matthias Saou <http://freshrpms.net/> 1.3.7-4
 2226 - Re-enable libibverbs.
 2227 - Check and update License field to GPLv3+.
 2228 - Add glusterfs-common obsoletes, to provide upgrade path from old packages.
 2229 - Include patch to add mode to O_CREATE opens.
 2230 
 2231 * Thu Nov 22 2007 Matthias Saou <http://freshrpms.net/> 1.3.7-3
 2232 - Remove Makefile* files from examples.
 2233 - Include RHEL/Fedora type init script, since the included ones don't do.
 2234 
 2235 * Wed Nov 21 2007 Matthias Saou <http://freshrpms.net/> 1.3.7-1
 2236 - Major spec file cleanup.
 2237 - Add missing %%clean section.
 2238 - Fix ldconfig calls (weren't set for the proper sub-package).
 2239 
 2240 * Sat Aug 4 2007 Matt Paine <matt@mattsoftware.com> - 1.3.pre7
 2241 - Added support to build rpm without ibverbs support (use --without ibverbs
 2242   switch)
 2243 
 2244 * Sun Jul 15 2007 Matt Paine <matt@mattsoftware.com> - 1.3.pre6
 2245 - Initial spec file