"Fossies" - the Fresh Open Source Software Archive

Member "glusterfs-7.6/glusterfs.spec" (18 May 2020, 78711 Bytes) of package /linux/misc/glusterfs-7.6.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) RPM Spec source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "glusterfs.spec": 7.5_vs_7.6.

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