2 # - Find pidfiles killproc --pidfile ${PIDFILE} -TERM instead of kill -TERM ${PID}
3 # - Check transport-ibverbs package and ibverbs bcond
4 # - Add passing options from /etc/sysconfig/glusterfsd to glusterfsd
5 # - package /etc/glusterfs/glusterfs-logrotate as logrotate config
6 # - Fix/provide working systemd service files.
7 # As for 3.7.11, package provided seems be non-working.
8 # - configuration for firewalld? (--enable-firewalld, but checks for firewalld executable)
11 %bcond_without ibverbs # ib-verbs transport
12 %bcond_without systemtap # systemtap/dtrace support
13 %bcond_without system_fuse # system fusermount
15 Summary: Clustered File Storage that can scale to peta bytes
16 Summary(pl.UTF-8): Klastrowy system przechowywania plików skalujący się do petabajtów
20 License: LGPL v3+ or GPL v2 (libraries), GPL v3+ (programs)
21 Group: Applications/System
22 Source0: https://download.gluster.org/pub/gluster/glusterfs/6/%{version}/glusterfs-%{version}.tar.gz
23 # Source0-md5: 43e4e6c017cb2ade77bc644034146215
24 Source1: glusterfsd.init
25 Patch0: %{name}-noquiet.patch
27 URL: https://www.gluster.org/
28 BuildRequires: acl-devel
29 BuildRequires: autoconf >= 2.50
30 BuildRequires: automake
32 #BuildRequires: cmocka-devel >= 1.0.1 for unittest
33 BuildRequires: curl-devel
35 BuildRequires: device-mapper-devel >= 2.02.79
37 BuildRequires: libaio-devel
38 %{?with_ibverbs:BuildRequires: libibverbs-devel >= 1.0.4}
39 %{?with_ibverbs:BuildRequires: librdmacm-devel >= 1.0.15}
40 BuildRequires: libselinux-devel
41 BuildRequires: libtirpc-devel
42 BuildRequires: libtool
43 BuildRequires: libuuid-devel
44 BuildRequires: libxml2-devel >= 1:2.6.19
45 BuildRequires: openssl-devel
46 BuildRequires: pkgconfig
47 BuildRequires: python3 >= 1:3.2
48 BuildRequires: python3-devel >= 1:3.2
49 BuildRequires: readline-devel
50 BuildRequires: rpcsvc-proto
51 BuildRequires: rpm-pythonprov
52 BuildRequires: rpmbuild(macros) >= 1.228
53 BuildRequires: sed >= 4.0
54 BuildRequires: sqlite3-devel >= 3
55 %{?with_systemtap:BuildRequires: systemtap-sdt-devel}
56 BuildRequires: userspace-rcu-devel >= 0.8
57 BuildRequires: zlib-devel >= 1.2.0
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 GlusterFS is a clustered file-system capable of scaling to several
62 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
63 or TCP/IP interconnect into one large parallel network file system.
64 GlusterFS is one of the most sophisticated file system in terms of
65 features and extensibility. It borrows a powerful concept called
66 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
67 userspace and easily manageable.
69 %description -l pl.UTF-8
70 GlusterFS to klastrowy system plików skalujący się do petabajtów.
71 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
72 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
73 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
74 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
75 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
76 jest łatwo zarządzalna.
79 Summary: GlusterFS common files including Translators
80 Summary(pl.UTF-8): Wspólne pliki GlusterFS-a, w tym translatory
82 Requires: libxml2 >= 1:2.6.19
83 Requires: zlib >= 1.2.0
86 GlusterFS is a clustered file-system capable of scaling to several
87 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
88 or TCP/IP interconnect into one large parallel network file system.
89 GlusterFS is one of the most sophisticated file system in terms of
90 features and extensibility. It borrows a powerful concept called
91 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
92 userspace and easily manageable.
94 This package includes libglusterfs and glusterfs translator modules
95 common to both GlusterFS server and client framework.
97 %description common -l pl.UTF-8
98 GlusterFS to klastrowy system plików skalujący się do petabajtów.
99 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
100 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
101 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
102 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
103 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
104 jest łatwo zarządzalna.
106 Ten pakiet zawiera libglusterfs i moduły translatorów glusterfs
107 wspólne dla klienta jak i serwera GlusterFS-a.
110 Summary: GlusterFS libraries
111 Summary(pl.UTF-8): Biblioteki GlusterFS-a
113 Conflicts: glusterfs-common < 3.4.0
118 %description libs -l pl.UTF-8
119 Biblioteki GlusterFS-a.
122 Summary: GlusterFS development files
123 Summary(pl.UTF-8): Pliki programistyczne GlusterFS-a
124 Group: Development/Libraries
125 Requires: %{name}-libs = %{version}-%{release}
128 Requires: libtirpc-devel
129 Requires: openssl-devel
130 Obsoletes: glusterfs-static
133 This package provides the development files for GlusterFS library.
135 %description devel -l pl.UTF-8
136 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
138 %package -n python3-gluster
139 Summary: Python 3 interface to GlusterFS libraries
140 Summary(pl.UTF-8): Interfejs Pythona 3 do bibliotek GlusterFS
141 Group: Libraries/Python
142 Requires: %{name}-libs = %{version}-%{release}
143 Obsoletes: python-gluster < 6.6
145 %description -n python3-gluster
146 Python 3 interface to GlusterFS libraries.
148 %description -n python3-gluster -l pl.UTF-8
149 Interfejs Pythona 3 do bibliotek GlusterFS.
151 %package transport-ibverbs
152 Summary: InfiniBand "verbs" transport plugins for GlusterFS
153 Summary(pl.UTF-8): Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a
155 Requires: %{name}-common = %{version}-%{release}
156 Requires: libibverbs >= 1.0.4
157 Requires: librdmacm >= 1.0.15
159 %description transport-ibverbs
160 InfiniBand "verbs" transport plugins for GlusterFS.
162 %description transport-ibverbs -l pl.UTF-8
163 Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a.
166 Summary: GlusterFS Server
167 Summary(pl.UTF-8): Serwer GlusterFS-a
169 Requires: %{name}-client = %{version}-%{release}
170 Requires: %{name}-common = %{version}-%{release}
171 Requires(post,preun): /sbin/chkconfig
173 Requires: python3-modules
176 This package provides the glusterfs server daemon.
178 %description server -l pl.UTF-8
179 Ten pakiet zawiera część serwerową GlusterFS-a.
182 Summary: GlusterFS Client
183 Summary(pl.UTF-8): Klient GlusterFS
184 Group: Applications/System
185 Requires: %{name}-common = %{version}-%{release}
186 %{?with_system_fuse:Requires: libfuse >= 2.6}
189 This package provides the FUSE based GlusterFS client.
191 %description client -l pl.UTF-8
192 Ten pakiet udostępnia opartego na FUSE klienta GlusterFS-a.
194 %package resource-agents
195 Summary: OCF Resource Agents for GlusterFS processes
196 Summary(pl.UTF-8): Agenci OCF do monitorowania procesów GlusterFS-a
197 Group: Applications/System
198 Requires: %{name}-server = %{version}-%{release}
199 Requires: resource-agents
201 %description resource-agents
202 OCF Resource Agents for GlusterFS processes.
204 %description resource-agents -l pl.UTF-8
205 Agenci OCF do monitorowania procesów GlusterFS-a.
208 Summary: GlusterFS Events
209 Summary(pl.UTF-8): Obsługa zdarzeń dla GlusterFS-a
210 Group: Applications/File
211 Requires: %{name}-server = %{version}-%{release}
212 Requires: python3-gluster = %{version}-%{release}
213 Requires: python3-prettytable
214 Requires: python3-requests
219 %description events -l pl.UTF-8
220 Obsługa zdarzeń dla GlusterFS-a.
222 %package geo-replication
223 Summary: GlusterFS Geo-replication
224 Summary(pl.UTF-8): Geo-replikacja dla GlusterFS-a
225 Group: Applications/File
226 Requires: %{name}-server = %{version}-%{release}
227 Requires: python3-gluster = %{version}-%{release}
228 Requires: python3-prettytable
231 %description geo-replication
232 GlusterFS support for geo-replication.
234 %description geo-replication -l pl.UTF-8
235 Obsługa geo-replikacji dla GlusterFS-a.
237 %package thin-arbiter
238 Summary: GlusterFS thin-arbiter module
239 Summary(pl.UTF-8): Moduł thin-arbiter dla GlusterFS-a
240 Group: Applications/File
241 Requires: %{name}-server = %{version}-%{release}
243 %description thin-arbiter
244 This package provides a tie-breaker functionality to GlusterFS
245 replicate volume. It includes translators required to provide the
246 functionality, and also few other scripts required for getting the
249 This package provides the glusterfs thin-arbiter translator.
251 %description thin-arbiter -l pl.UTF-8
252 Ten pakiet dodaje funkcję dogrywki do replikacji wolumenów GlusterFS.
253 Zawiera moduły tłumaczące wymagane do zapewniania tej funkcji oraz
254 kilka skryptów wymaganych do konfiguracji.
256 Ten pakiet zawiera moduł tłumaczący thin-arbiter.
258 %package -n emacs-glusterfs-mode
259 Summary: Emacs mode to edit GlusterFS configuration
260 Summary(pl.UTF-8): Tryb Emacsa do edycji konfiguracji GlusterFS-a
261 Group: Applications/Editors
262 Requires: %{name}-common = %{version}-%{release}
263 Requires: emacs-common
265 %description -n emacs-glusterfs-mode
266 Emacs mode to edit GlusterFS configuration.
268 %description -n emacs-glusterfs-mode -l pl.UTF-8
269 Tryb Emacsa do edycji konfiguracji GlusterFS-a.
271 %package -n vim-syntax-glusterfs
272 Summary: Vim syntax file to edit GlusterFS configuration
273 Summary(pl.UTF-8): Plik składni Vima do edycji konfiguracji GlusterFS-a
274 Group: Applications/Editors
275 Requires: %{name}-common = %{version}-%{release}
276 Requires: vim-rt >= 4:7.2.170
278 %description -n vim-syntax-glusterfs
279 Vim syntax file to edit GlusterFS configuration.
281 %description -n vim-syntax-glusterfs -l pl.UTF-8
282 Plik składni Vima do edycji konfiguracji GlusterFS-a.
296 PYTHON=%{__python3} \
297 %{?with_system_fuse:--disable-fusermount} \
298 --disable-silent-rules \
300 %{!?with_ibverbs:--disable-ibverbs} \
301 --enable-systemtap%{!?with_systemtap:=no} \
302 --with-initdir=/etc/rc.d/init.d \
303 --with-systemddir=%{systemdunitdir}
308 rm -rf $RPM_BUILD_ROOT
309 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
311 %{__make} -j1 install \
312 DESTDIR=$RPM_BUILD_ROOT
314 # No idea why installs elsewhere than later expects to be
315 %{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterd.vol $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterfsd.vol
317 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/glusterfsd
318 install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
319 cat >>$RPM_BUILD_ROOT%{systemdtmpfilesdir}/gluster.conf <<EOF
320 d /var/run/gluster 0755 root root -
323 install -d $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,vim/syntax}
324 %{__mv} $RPM_BUILD_ROOT%{_docdir}/glusterfs/glusterfs.vim $RPM_BUILD_ROOT%{_datadir}/vim/syntax
325 %{__mv} $RPM_BUILD_ROOT%{_docdir}/glusterfs/glusterfs-mode.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
327 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*.la
328 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*.la
330 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
331 %{__rm} $RPM_BUILD_ROOT%{_libexecdir}/glusterfs/python/syncdaemon/README.md
332 # example, installed as /var/lib/glusterd/groups/virt
333 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/glusterfs/group-virt.example
336 rm -rf $RPM_BUILD_ROOT
338 %post libs -p /sbin/ldconfig
339 %postun libs -p /sbin/ldconfig
342 # TODO: verify these scripts (see also included glusterfs.spec)
344 # note: glusterfsd.init vs glusterd.service
345 /sbin/chkconfig --add glusterfsd
346 %service glusterfsd restart
347 %systemd_post glusterd.service
349 #glusterd --xlator-option *.upgrade=on -N
352 if [ "$1" = "0" ]; then
353 %service -q glusterfsd stop
354 /sbin/chkconfig --del glusterfsd
356 %systemd_preun glusterd
362 %systemd_post glustereventsd
365 %systemd_preun glustereventsd
370 %post geo-replication
371 %service glusterd restart
375 %defattr(644,root,root,755)
376 %doc ChangeLog NEWS README.md THANKS
377 %attr(755,root,root) %{_bindir}/glusterfind
378 %attr(755,root,root) %{_sbindir}/glfsheal
379 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
380 %attr(755,root,root) %{_sbindir}/glusterfs
381 %attr(755,root,root) %{_sbindir}/glusterfsd
382 %dir %{_sysconfdir}/%{name}
384 %dir %{_libdir}/glusterfs
386 %dir %{_libdir}/glusterfs/%{version}
387 %dir %{_libdir}/glusterfs/%{version}/auth
388 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/addr.so
389 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
391 %dir %{_libdir}/glusterfs/%{version}/cloudsync-plugins
392 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsyncs3.so
394 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
395 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
397 %dir %{_libdir}/glusterfs/%{version}/xlator
398 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/meta.so
399 %dir %{_libdir}/glusterfs/%{version}/xlator/cluster
400 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/cluster/*.so
401 %dir %{_libdir}/glusterfs/%{version}/xlator/debug
402 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/debug/*.so
403 %dir %{_libdir}/glusterfs/%{version}/xlator/features
404 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/*.so
405 %exclude %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
406 %dir %{_libdir}/glusterfs/%{version}/xlator/mgmt
407 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mgmt/glusterd.so
408 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
409 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
410 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
411 %dir %{_libdir}/glusterfs/%{version}/xlator/nfs
412 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
413 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
414 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so
415 %dir %{_libdir}/glusterfs/%{version}/xlator/playground
416 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/playground/template.so
417 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
418 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/client.so
419 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/server.so
420 %dir %{_libdir}/glusterfs/%{version}/xlator/storage
421 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/storage/posix.so
422 %dir %{_libdir}/glusterfs/%{version}/xlator/system
423 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/system/posix-acl.so
425 %if "%{_libexecdir}" != "%{_libdir}"
426 %dir %{_libexecdir}/glusterfs
428 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_add_secret_pub
430 %dir %{_libexecdir}/glusterfs/glusterfind
431 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/S57glusterfind-delete-post.py
432 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/brickfind.py
433 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/changelog.py
434 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/nodeagent.py
435 %{_libexecdir}/glusterfs/glusterfind/__init__.py
436 %{_libexecdir}/glusterfs/glusterfind/changelogdata.py
437 %{_libexecdir}/glusterfs/glusterfind/conf.py
438 %{_libexecdir}/glusterfs/glusterfind/gfind_py2py3.py
439 %{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py
440 %{_libexecdir}/glusterfs/glusterfind/main.py
441 %{_libexecdir}/glusterfs/glusterfind/utils.py
442 %{_libexecdir}/glusterfs/glusterfind/tool.conf
443 %{_libexecdir}/glusterfs/glusterfind/__pycache__
445 %dir %{_libexecdir}/glusterfs/python
447 %dir %{_datadir}/glusterfs
448 %dir %{_datadir}/glusterfs/scripts
449 %attr(755,root,root) %{_datadir}/glusterfs/scripts/control-cpu-load.sh
450 %attr(755,root,root) %{_datadir}/glusterfs/scripts/control-mem.sh
451 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
452 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
453 %attr(755,root,root) %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
455 %{_mandir}/man8/glusterfs.8*
456 %{_mandir}/man8/glusterfsd.8*
457 %dir %{_var}/log/glusterfs
460 %defattr(644,root,root,755)
461 %attr(755,root,root) %{_libdir}/libgfapi.so.*.*.*
462 %attr(755,root,root) %ghost %{_libdir}/libgfapi.so.0
463 %attr(755,root,root) %{_libdir}/libgfchangelog.so.*.*.*
464 %attr(755,root,root) %ghost %{_libdir}/libgfchangelog.so.0
465 %attr(755,root,root) %{_libdir}/libgfrpc.so.*.*.*
466 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
467 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
468 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
469 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
470 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
473 %defattr(644,root,root,755)
474 %attr(755,root,root) %{_libdir}/libgfapi.so
475 %attr(755,root,root) %{_libdir}/libgfchangelog.so
476 %attr(755,root,root) %{_libdir}/libgfrpc.so
477 %attr(755,root,root) %{_libdir}/libgfxdr.so
478 %attr(755,root,root) %{_libdir}/libglusterfs.so
479 %{_libdir}/libgfapi.la
480 %{_libdir}/libgfchangelog.la
481 %{_libdir}/libgfrpc.la
482 %{_libdir}/libgfxdr.la
483 %{_libdir}/libglusterfs.la
484 %dir %{_includedir}/glusterfs
485 %{_includedir}/glusterfs/api
486 %{_includedir}/glusterfs/gfchangelog
487 %{_includedir}/glusterfs/rpc
488 %{_includedir}/glusterfs/server
489 %{_includedir}/glusterfs/*.h
490 %{_pkgconfigdir}/glusterfs-api.pc
491 %{_pkgconfigdir}/libgfchangelog.pc
493 %files -n python3-gluster
494 %defattr(644,root,root,755)
495 %dir %{py3_sitescriptdir}/gluster
496 %{py3_sitescriptdir}/gluster/__init__.py
497 %{py3_sitescriptdir}/gluster/__pycache__
498 %{py3_sitescriptdir}/gluster/cliutils
499 # created only when using py_build/py_install in xlators/features/glupy/src
500 #%{py3_sitescriptdir}/glusterfs_glupy-%{version}-py*.egg-info
503 %files transport-ibverbs
504 %defattr(644,root,root,755)
505 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/rdma.so
509 %defattr(644,root,root,755)
510 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
511 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-db-workload
512 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-distributed-virt
513 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-gluster-block
514 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-metadata-cache
515 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-nl-cache
516 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-samba
517 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
518 %attr(755,root,root) %{_sbindir}/conf.py
519 %attr(755,root,root) %{_sbindir}/gcron.py
520 %attr(755,root,root) %{_sbindir}/gf_attach
521 %attr(755,root,root) %{_sbindir}/gluster-setgfid2path
522 %attr(755,root,root) %{_sbindir}/glusterd
523 %attr(755,root,root) %{_sbindir}/snap_scheduler.py
524 %attr(755,root,root) %{_libexecdir}/glusterfs/mount-shared-storage.sh
525 %{systemdunitdir}/glusterd.service
526 %{systemdunitdir}/glusterfssharedstorage.service
527 %{systemdtmpfilesdir}/gluster.conf
529 %{_mandir}/man8/gluster-setgfid2path.8*
530 %{_mandir}/man8/glusterd.8*
531 %dir %{_var}/lib/glusterd
532 %dir %{_var}/lib/glusterd/groups
533 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/db-workload
534 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/distributed-virt
535 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/gluster-block
536 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/metadata-cache
537 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/nl-cache
538 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/samba
539 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/virt
540 %dir %{_var}/lib/glusterd/hooks
541 %dir %{_var}/lib/glusterd/hooks/1
542 %dir %{_var}/lib/glusterd/hooks/1/add-brick
543 %dir %{_var}/lib/glusterd/hooks/1/add-brick/post
544 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
545 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
546 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/disabled-quota-root-xattr-heal.sh
547 %dir %{_var}/lib/glusterd/hooks/1/add-brick/pre
548 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/pre/S28Quota-enable-root-xattr-heal.sh
549 %dir %{_var}/lib/glusterd/hooks/1/create
550 %dir %{_var}/lib/glusterd/hooks/1/create/post
551 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/create/post/S10selinux-label-brick.sh
552 %dir %{_var}/lib/glusterd/hooks/1/delete
553 %dir %{_var}/lib/glusterd/hooks/1/delete/post
554 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
555 %dir %{_var}/lib/glusterd/hooks/1/delete/pre
556 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh
557 %dir %{_var}/lib/glusterd/hooks/1/set
558 %dir %{_var}/lib/glusterd/hooks/1/set/post
559 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S30samba-set.sh
560 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh
561 %dir %{_var}/lib/glusterd/hooks/1/start
562 %dir %{_var}/lib/glusterd/hooks/1/start/post
563 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
564 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S30samba-start.sh
565 %dir %{_var}/lib/glusterd/hooks/1/stop
566 %dir %{_var}/lib/glusterd/hooks/1/stop/pre
567 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
568 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S30samba-stop.sh
569 %dir %{_var}/run/gluster
572 %defattr(644,root,root,755)
573 %{!?with_system_fuse:%attr(755,root,root) %{_bindir}/fusermount-glusterfs}
574 %attr(755,root,root) /sbin/mount.glusterfs
575 %attr(755,root,root) %{_sbindir}/gluster
576 %{_mandir}/man8/gluster.8*
577 %{_mandir}/man8/mount.glusterfs.8*
579 %files resource-agents
580 %defattr(644,root,root,755)
581 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
582 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
583 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume
586 %defattr(644,root,root,755)
587 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/glusterfs/eventsconfig.json
588 %attr(755,root,root) %{_sbindir}/gluster-eventsapi
589 %attr(755,root,root) %{_sbindir}/glustereventsd
590 %dir %{_libexecdir}/glusterfs/gfevents
591 %attr(755,root,root) %{_libexecdir}/glusterfs/gfevents/glustereventsd.py
592 %{_libexecdir}/glusterfs/gfevents/__init__.py
593 %{_libexecdir}/glusterfs/gfevents/eventsapiconf.py
594 %{_libexecdir}/glusterfs/gfevents/eventtypes.py
595 %{_libexecdir}/glusterfs/gfevents/gf_event.py
596 %{_libexecdir}/glusterfs/gfevents/handlers.py
597 %{_libexecdir}/glusterfs/gfevents/utils.py
598 %{_libexecdir}/glusterfs/gfevents/__pycache__
599 %{_libexecdir}/glusterfs/peer_eventsapi.py
600 %{_datadir}/glusterfs/scripts/eventsdash.py
601 %{systemdunitdir}/glustereventsd.service
603 %files geo-replication
604 %defattr(644,root,root,755)
605 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/gsyncd.conf
606 %attr(755,root,root) %{_sbindir}/gfind_missing_files
607 %attr(755,root,root) %{_sbindir}/gluster-georep-sshkey
608 %attr(755,root,root) %{_sbindir}/gluster-mountbroker
609 %attr(755,root,root) %{_libexecdir}/glusterfs/gsyncd
610 %attr(755,root,root) %{_libexecdir}/glusterfs/gverify.sh
611 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
612 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_gsec_create
613 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker
614 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker.py*
615 %attr(755,root,root) %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
616 %dir %{_libexecdir}/glusterfs/gfind_missing_files
617 %attr(755,root,root) %{_libexecdir}/glusterfs/gfind_missing_files/*
618 %dir %{_libexecdir}/glusterfs/python/syncdaemon
619 %{_libexecdir}/glusterfs/python/syncdaemon/*.py
620 %{_libexecdir}/glusterfs/python/syncdaemon/__pycache__
621 %attr(755,root,root) %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
622 %attr(755,root,root) %{_datadir}/glusterfs/scripts/get-gfid.sh
623 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-sync-gfid
624 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
625 %attr(755,root,root) %{_datadir}/glusterfs/scripts/schedule_georep.py
626 %attr(755,root,root) %{_datadir}/glusterfs/scripts/slave-upgrade.sh
627 %dir %{_var}/lib/glusterd/hooks/1/gsync-create
628 %dir %{_var}/lib/glusterd/hooks/1/gsync-create/post
629 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/gsync-create/post/S56glusterd-geo-rep-create-post.sh
632 %defattr(644,root,root,755)
633 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/thin-arbiter.vol
634 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
635 %attr(755,root,root) %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
636 %{systemdunitdir}/gluster-ta-volume.service
638 %files -n emacs-glusterfs-mode
639 %defattr(644,root,root,755)
640 %{_datadir}/emacs/site-lisp/glusterfs-mode.el
642 %files -n vim-syntax-glusterfs
643 %defattr(644,root,root,755)
644 %{_datadir}/vim/syntax/glusterfs.vim