2 # - Find pidfiles killproc --pidfile ${PIDFILE} -TERM instead of kill -TERM ${PID}
3 # - Add passing options from /etc/sysconfig/glusterfsd to glusterfsd
4 # - package /etc/glusterfs/glusterfs-logrotate as logrotate config
5 # - Fix/provide working systemd service files.
6 # As for 3.7.11, package provided seems be non-working.
7 # - add nfs-ganesha to PLD and package ganesha integration files
8 # - configuration for firewalld? (--enable-firewalld, but checks for firewalld executable)
11 %bcond_without system_fuse # system fusermount
13 Summary: Clustered File Storage that can scale to peta bytes
14 Summary(pl.UTF-8): Klastrowy system przechowywania plików skalujący się do petabajtów
18 License: LGPL v3+ or GPL v2 (libraries), GPL v3+ (programs)
19 Group: Applications/System
20 Source0: https://download.gluster.org/pub/gluster/glusterfs/10/%{version}/glusterfs-%{version}.tar.gz
21 # Source0-md5: 9c795c8479f244e81bca5b2499a480cc
22 Source1: glusterfsd.init
23 Patch0: ssl_paths.patch
24 URL: https://www.gluster.org/
25 BuildRequires: acl-devel
26 BuildRequires: autoconf >= 2.50
27 BuildRequires: automake
29 #BuildRequires: cmocka-devel >= 1.0.1 for unittest
30 BuildRequires: curl-devel
32 BuildRequires: device-mapper-devel >= 2.02.79
34 BuildRequires: libaio-devel
35 BuildRequires: libselinux-devel
36 BuildRequires: libtcmalloc-devel
37 BuildRequires: libtirpc-devel
38 BuildRequires: libtool
39 BuildRequires: liburing-devel
40 BuildRequires: libuuid-devel
41 BuildRequires: libxml2-devel >= 1:2.6.19
42 BuildRequires: openssl-devel
43 BuildRequires: pkgconfig
44 BuildRequires: python3 >= 1:3.2
45 BuildRequires: python3-devel >= 1:3.2
46 BuildRequires: readline-devel
47 BuildRequires: rpcsvc-proto
48 BuildRequires: rpm-pythonprov
49 BuildRequires: rpmbuild(macros) >= 1.228
50 BuildRequires: sed >= 4.0
51 BuildRequires: sqlite3-devel >= 3
52 BuildRequires: userspace-rcu-devel >= 0.8
53 BuildRequires: zlib-devel >= 1.2.0
54 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
57 GlusterFS is a clustered file-system capable of scaling to several
58 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
59 or TCP/IP interconnect into one large parallel network file system.
60 GlusterFS is one of the most sophisticated file system in terms of
61 features and extensibility. It borrows a powerful concept called
62 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
63 userspace and easily manageable.
65 %description -l pl.UTF-8
66 GlusterFS to klastrowy system plików skalujący się do petabajtów.
67 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
68 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
69 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
70 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
71 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
72 jest łatwo zarządzalna.
75 Summary: GlusterFS common files including Translators
76 Summary(pl.UTF-8): Wspólne pliki GlusterFS-a, w tym translatory
78 Requires: libxml2 >= 1:2.6.19
79 Requires: zlib >= 1.2.0
80 Obsoletes: glusterfs-transport-ibverbs < 8
83 GlusterFS is a clustered file-system capable of scaling to several
84 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
85 or TCP/IP interconnect into one large parallel network file system.
86 GlusterFS is one of the most sophisticated file system in terms of
87 features and extensibility. It borrows a powerful concept called
88 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
89 userspace and easily manageable.
91 This package includes libglusterfs and glusterfs translator modules
92 common to both GlusterFS server and client framework.
94 %description common -l pl.UTF-8
95 GlusterFS to klastrowy system plików skalujący się do petabajtów.
96 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
97 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
98 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
99 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
100 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
101 jest łatwo zarządzalna.
103 Ten pakiet zawiera libglusterfs i moduły translatorów glusterfs
104 wspólne dla klienta jak i serwera GlusterFS-a.
107 Summary: GlusterFS libraries
108 Summary(pl.UTF-8): Biblioteki GlusterFS-a
110 Conflicts: glusterfs-common < 3.4.0
115 %description libs -l pl.UTF-8
116 Biblioteki GlusterFS-a.
119 Summary: GlusterFS development files
120 Summary(pl.UTF-8): Pliki programistyczne GlusterFS-a
121 Group: Development/Libraries
122 Requires: %{name}-libs = %{version}-%{release}
125 Requires: libtirpc-devel
126 Requires: openssl-devel
127 Obsoletes: glusterfs-static < 1.3.10-2
130 This package provides the development files for GlusterFS library.
132 %description devel -l pl.UTF-8
133 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
135 %package -n python3-gluster
136 Summary: Python 3 interface to GlusterFS libraries
137 Summary(pl.UTF-8): Interfejs Pythona 3 do bibliotek GlusterFS
138 Group: Libraries/Python
139 Requires: %{name}-libs = %{version}-%{release}
140 Obsoletes: python-gluster < 6.6
142 %description -n python3-gluster
143 Python 3 interface to GlusterFS libraries.
145 %description -n python3-gluster -l pl.UTF-8
146 Interfejs Pythona 3 do bibliotek GlusterFS.
149 Summary: GlusterFS Server
150 Summary(pl.UTF-8): Serwer GlusterFS-a
152 Requires: %{name}-client = %{version}-%{release}
153 Requires: %{name}-common = %{version}-%{release}
154 Requires(post,preun): /sbin/chkconfig
156 Requires: python3-modules
159 This package provides the glusterfs server daemon.
161 %description server -l pl.UTF-8
162 Ten pakiet zawiera część serwerową GlusterFS-a.
165 Summary: GlusterFS Client
166 Summary(pl.UTF-8): Klient GlusterFS
167 Group: Applications/System
168 Requires: %{name}-common = %{version}-%{release}
169 %{?with_system_fuse:Requires: libfuse >= 2.6}
172 This package provides the FUSE based GlusterFS client.
174 %description client -l pl.UTF-8
175 Ten pakiet udostępnia opartego na FUSE klienta GlusterFS-a.
177 %package resource-agents
178 Summary: OCF Resource Agents for GlusterFS processes
179 Summary(pl.UTF-8): Agenci OCF do monitorowania procesów GlusterFS-a
180 Group: Applications/System
181 Requires: %{name}-server = %{version}-%{release}
182 Requires: resource-agents
184 %description resource-agents
185 OCF Resource Agents for GlusterFS processes.
187 %description resource-agents -l pl.UTF-8
188 Agenci OCF do monitorowania procesów GlusterFS-a.
191 Summary: GlusterFS Events
192 Summary(pl.UTF-8): Obsługa zdarzeń dla GlusterFS-a
193 Group: Applications/File
194 Requires: %{name}-server = %{version}-%{release}
195 Requires: python3-gluster = %{version}-%{release}
196 Requires: python3-prettytable
197 Requires: python3-requests
202 %description events -l pl.UTF-8
203 Obsługa zdarzeń dla GlusterFS-a.
205 %package geo-replication
206 Summary: GlusterFS Geo-replication
207 Summary(pl.UTF-8): Geo-replikacja dla GlusterFS-a
208 Group: Applications/File
209 Requires: %{name}-server = %{version}-%{release}
210 Requires: python3-gluster = %{version}-%{release}
211 Requires: python3-prettytable
214 %description geo-replication
215 GlusterFS support for geo-replication.
217 %description geo-replication -l pl.UTF-8
218 Obsługa geo-replikacji dla GlusterFS-a.
220 %package thin-arbiter
221 Summary: GlusterFS thin-arbiter module
222 Summary(pl.UTF-8): Moduł thin-arbiter dla GlusterFS-a
223 Group: Applications/File
224 Requires: %{name}-server = %{version}-%{release}
226 %description thin-arbiter
227 This package provides a tie-breaker functionality to GlusterFS
228 replicate volume. It includes translators required to provide the
229 functionality, and also few other scripts required for getting the
232 This package provides the glusterfs thin-arbiter translator.
234 %description thin-arbiter -l pl.UTF-8
235 Ten pakiet dodaje funkcję dogrywki do replikacji wolumenów GlusterFS.
236 Zawiera moduły tłumaczące wymagane do zapewniania tej funkcji oraz
237 kilka skryptów wymaganych do konfiguracji.
239 Ten pakiet zawiera moduł tłumaczący thin-arbiter.
241 %package -n emacs-glusterfs-mode
242 Summary: Emacs mode to edit GlusterFS configuration
243 Summary(pl.UTF-8): Tryb Emacsa do edycji konfiguracji GlusterFS-a
244 Group: Applications/Editors
245 Requires: %{name}-common = %{version}-%{release}
246 Requires: emacs-common
248 %description -n emacs-glusterfs-mode
249 Emacs mode to edit GlusterFS configuration.
251 %description -n emacs-glusterfs-mode -l pl.UTF-8
252 Tryb Emacsa do edycji konfiguracji GlusterFS-a.
254 %package -n vim-syntax-glusterfs
255 Summary: Vim syntax file to edit GlusterFS configuration
256 Summary(pl.UTF-8): Plik składni Vima do edycji konfiguracji GlusterFS-a
257 Group: Applications/Editors
258 Requires: %{name}-common = %{version}-%{release}
259 Requires: vim-rt >= 4:7.2.170
261 %description -n vim-syntax-glusterfs
262 Vim syntax file to edit GlusterFS configuration.
264 %description -n vim-syntax-glusterfs -l pl.UTF-8
265 Plik składni Vima do edycji konfiguracji GlusterFS-a.
278 PYTHON=%{__python3} \
279 %{?with_system_fuse:--disable-fusermount} \
280 --disable-silent-rules \
282 --with-initdir=/etc/rc.d/init.d
287 rm -rf $RPM_BUILD_ROOT
288 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
290 %{__make} -j1 install \
291 DESTDIR=$RPM_BUILD_ROOT
293 # No idea why installs elsewhere than later expects to be
294 %{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterd.vol $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterfsd.vol
296 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/glusterfsd
298 install -d $RPM_BUILD_ROOT%{_datadir}/{emacs/site-lisp,vim/syntax}
299 %{__mv} $RPM_BUILD_ROOT%{_docdir}/glusterfs/glusterfs.vim $RPM_BUILD_ROOT%{_datadir}/vim/syntax
300 %{__mv} $RPM_BUILD_ROOT%{_docdir}/glusterfs/glusterfs-mode.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
302 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*.la
303 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*.la
305 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
306 %{__rm} $RPM_BUILD_ROOT%{_libexecdir}/glusterfs/python/syncdaemon/README.md
307 # example, installed as /var/lib/glusterd/groups/virt
308 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/glusterfs/group-virt.example
311 rm -rf $RPM_BUILD_ROOT
313 %post libs -p /sbin/ldconfig
314 %postun libs -p /sbin/ldconfig
317 /sbin/chkconfig --add glusterfsd
318 %service glusterfsd restart
321 if [ "$1" = "0" ]; then
322 %service -q glusterfsd stop
323 /sbin/chkconfig --del glusterfsd
326 %post geo-replication
327 %service glusterd restart
330 %defattr(644,root,root,755)
331 %doc ChangeLog NEWS README.md THANKS
332 %attr(755,root,root) %{_bindir}/glusterfind
333 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
334 %attr(755,root,root) %{_sbindir}/glusterfs
335 %attr(755,root,root) %{_sbindir}/glusterfsd
336 %dir %{_sysconfdir}/%{name}
338 %dir %{_libdir}/glusterfs
340 %dir %{_libdir}/glusterfs/%{version}
341 %dir %{_libdir}/glusterfs/%{version}/auth
342 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/addr.so
343 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
345 %dir %{_libdir}/glusterfs/%{version}/cloudsync-plugins
346 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsynccvlt.so
347 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsyncs3.so
349 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
350 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
352 %dir %{_libdir}/glusterfs/%{version}/xlator
353 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/meta.so
354 %dir %{_libdir}/glusterfs/%{version}/xlator/cluster
355 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/cluster/*.so
356 %dir %{_libdir}/glusterfs/%{version}/xlator/debug
357 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/debug/*.so
358 %dir %{_libdir}/glusterfs/%{version}/xlator/features
359 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/*.so
360 %exclude %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
361 %dir %{_libdir}/glusterfs/%{version}/xlator/mgmt
362 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mgmt/glusterd.so
363 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
364 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
365 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
366 %dir %{_libdir}/glusterfs/%{version}/xlator/nfs
367 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
368 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
369 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so
370 %dir %{_libdir}/glusterfs/%{version}/xlator/playground
371 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/playground/template.so
372 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
373 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/client.so
374 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/server.so
375 %dir %{_libdir}/glusterfs/%{version}/xlator/storage
376 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/storage/posix.so
377 %dir %{_libdir}/glusterfs/%{version}/xlator/system
378 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/system/posix-acl.so
380 %if "%{_libexecdir}" != "%{_libdir}"
381 %dir %{_libexecdir}/glusterfs
383 %dir %{_libexecdir}/glusterfs/scripts
384 %attr(755,root,root) %{_libexecdir}/glusterfs/glfsheal
385 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_add_secret_pub
387 %dir %{_libexecdir}/glusterfs/glusterfind
388 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/S57glusterfind-delete-post.py
389 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/brickfind.py
390 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/changelog.py
391 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/nodeagent.py
392 %{_libexecdir}/glusterfs/glusterfind/__init__.py
393 %{_libexecdir}/glusterfs/glusterfind/changelogdata.py
394 %{_libexecdir}/glusterfs/glusterfind/conf.py
395 %{_libexecdir}/glusterfs/glusterfind/gfind_py2py3.py
396 %{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py
397 %{_libexecdir}/glusterfs/glusterfind/main.py
398 %{_libexecdir}/glusterfs/glusterfind/utils.py
399 %{_libexecdir}/glusterfs/glusterfind/tool.conf
400 %{_libexecdir}/glusterfs/glusterfind/__pycache__
402 %dir %{_libexecdir}/glusterfs/python
404 %dir %{_datadir}/glusterfs
405 %dir %{_datadir}/glusterfs/scripts
406 #%attr(755,root,root) %{_datadir}/glusterfs/scripts/control-cpu-load.sh
407 #%attr(755,root,root) %{_datadir}/glusterfs/scripts/control-mem.sh
408 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
409 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
410 %attr(755,root,root) %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
412 %{_mandir}/man8/glusterfs.8*
413 %{_mandir}/man8/glusterfsd.8*
415 %dir %{_var}/lib/glusterd
416 %dir %{_var}/log/glusterfs
419 %defattr(644,root,root,755)
420 %attr(755,root,root) %{_libdir}/libgfapi.so.*.*.*
421 %attr(755,root,root) %ghost %{_libdir}/libgfapi.so.0
422 %attr(755,root,root) %{_libdir}/libgfchangelog.so.*.*.*
423 %attr(755,root,root) %ghost %{_libdir}/libgfchangelog.so.0
424 %attr(755,root,root) %{_libdir}/libgfrpc.so.*.*.*
425 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
426 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
427 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
428 %attr(755,root,root) %{_libdir}/libglusterd.so.*.*.*
429 %attr(755,root,root) %ghost %{_libdir}/libglusterd.so.0
430 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
431 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
434 %defattr(644,root,root,755)
435 %attr(755,root,root) %{_libdir}/libgfapi.so
436 %attr(755,root,root) %{_libdir}/libgfchangelog.so
437 %attr(755,root,root) %{_libdir}/libgfrpc.so
438 %attr(755,root,root) %{_libdir}/libgfxdr.so
439 %attr(755,root,root) %{_libdir}/libglusterd.so
440 %attr(755,root,root) %{_libdir}/libglusterfs.so
441 %{_libdir}/libgfapi.la
442 %{_libdir}/libgfchangelog.la
443 %{_libdir}/libgfrpc.la
444 %{_libdir}/libgfxdr.la
445 %{_libdir}/libglusterd.la
446 %{_libdir}/libglusterfs.la
447 %dir %{_includedir}/glusterfs
448 %{_includedir}/glusterfs/api
449 %{_includedir}/glusterfs/gfchangelog
450 %{_includedir}/glusterfs/rpc
451 %{_includedir}/glusterfs/server
452 %{_includedir}/glusterfs/*.h
453 %{_pkgconfigdir}/glusterfs-api.pc
454 %{_pkgconfigdir}/libgfchangelog.pc
456 %files -n python3-gluster
457 %defattr(644,root,root,755)
458 %dir %{py3_sitescriptdir}/gluster
459 %{py3_sitescriptdir}/gluster/__init__.py
460 %{py3_sitescriptdir}/gluster/__pycache__
461 %{py3_sitescriptdir}/gluster/cliutils
462 # created only when using py_build/py_install in xlators/features/glupy/src
463 #%{py3_sitescriptdir}/glusterfs_glupy-%{version}-py*.egg-info
466 %defattr(644,root,root,755)
467 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
468 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-db-workload
469 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-distributed-virt
470 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-gluster-block
471 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-metadata-cache
472 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-nl-cache
473 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-samba
474 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
475 %attr(755,root,root) %{_sbindir}/conf.py
476 %attr(755,root,root) %{_sbindir}/gcron.py
477 %attr(755,root,root) %{_sbindir}/gf_attach
478 %attr(755,root,root) %{_sbindir}/gluster-setgfid2path
479 %attr(755,root,root) %{_sbindir}/glusterd
480 %attr(755,root,root) %{_sbindir}/snap_scheduler.py
481 #%attr(755,root,root) %{_libexecdir}/glusterfs/mount-shared-storage.sh
483 %{_mandir}/man8/gluster-setgfid2path.8*
484 %{_mandir}/man8/glusterd.8*
485 %dir %{_var}/lib/glusterd/groups
486 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/db-workload
487 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/distributed-virt
488 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/gluster-block
489 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/metadata-cache
490 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/nl-cache
491 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/samba
492 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/virt
493 %dir %{_var}/lib/glusterd/hooks
494 %dir %{_var}/lib/glusterd/hooks/1
495 %dir %{_var}/lib/glusterd/hooks/1/add-brick
496 %dir %{_var}/lib/glusterd/hooks/1/add-brick/post
497 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
498 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
499 %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
500 %dir %{_var}/lib/glusterd/hooks/1/add-brick/pre
501 %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
502 %dir %{_var}/lib/glusterd/hooks/1/create
503 %dir %{_var}/lib/glusterd/hooks/1/create/post
504 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/create/post/S10selinux-label-brick.sh
505 %dir %{_var}/lib/glusterd/hooks/1/delete
506 %dir %{_var}/lib/glusterd/hooks/1/delete/post
507 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
508 %dir %{_var}/lib/glusterd/hooks/1/delete/pre
509 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh
510 %dir %{_var}/lib/glusterd/hooks/1/set
511 %dir %{_var}/lib/glusterd/hooks/1/set/post
512 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S30samba-set.sh
513 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh
514 %dir %{_var}/lib/glusterd/hooks/1/start
515 %dir %{_var}/lib/glusterd/hooks/1/start/post
516 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
517 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S30samba-start.sh
518 %dir %{_var}/lib/glusterd/hooks/1/stop
519 %dir %{_var}/lib/glusterd/hooks/1/stop/pre
520 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
521 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S30samba-stop.sh
522 %dir %{_var}/run/gluster
525 %defattr(644,root,root,755)
526 %{!?with_system_fuse:%attr(755,root,root) %{_bindir}/fusermount-glusterfs}
527 %attr(755,root,root) /sbin/mount.glusterfs
528 %attr(755,root,root) %{_sbindir}/gluster
529 %{_mandir}/man8/gluster.8*
530 %{_mandir}/man8/mount.glusterfs.8*
532 %files resource-agents
533 %defattr(644,root,root,755)
534 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
535 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
536 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume
539 %defattr(644,root,root,755)
540 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/glusterfs/eventsconfig.json
541 %attr(755,root,root) %{_sbindir}/gluster-eventsapi
542 %attr(755,root,root) %{_sbindir}/glustereventsd
543 %dir %{_libexecdir}/glusterfs/gfevents
544 %attr(755,root,root) %{_libexecdir}/glusterfs/gfevents/glustereventsd.py
545 %{_libexecdir}/glusterfs/gfevents/__init__.py
546 %{_libexecdir}/glusterfs/gfevents/eventsapiconf.py
547 %{_libexecdir}/glusterfs/gfevents/eventtypes.py
548 %{_libexecdir}/glusterfs/gfevents/gf_event.py
549 %{_libexecdir}/glusterfs/gfevents/handlers.py
550 %{_libexecdir}/glusterfs/gfevents/utils.py
551 %{_libexecdir}/glusterfs/gfevents/__pycache__
552 %{_libexecdir}/glusterfs/peer_eventsapi.py
553 %{_datadir}/glusterfs/scripts/eventsdash.py
555 # NFS-ganesha integration
557 #%defattr(644,root,root,755)
558 #%attr(755,root,root) %{_libexecdir}/ganesha/create-export-ganesha.sh
559 #%attr(755,root,root) %{_libexecdir}/ganesha/dbus-send.sh
560 #%attr(755,root,root) %{_libexecdir}/ganesha/ganesha-ha.sh
561 #%attr(755,root,root) %{_libexecdir}/ganesha/generate-epoch.py
562 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_grace
563 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_mon
564 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_nfsd
565 #%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S31ganesha-start.sh
567 %files geo-replication
568 %defattr(644,root,root,755)
569 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/gsyncd.conf
570 %attr(755,root,root) %{_sbindir}/gfind_missing_files
571 %attr(755,root,root) %{_sbindir}/gluster-georep-sshkey
572 %attr(755,root,root) %{_sbindir}/gluster-mountbroker
573 %attr(755,root,root) %{_libexecdir}/glusterfs/gsyncd
574 %attr(755,root,root) %{_libexecdir}/glusterfs/gverify.sh
575 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
576 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_gsec_create
577 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker
578 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker.py*
579 %attr(755,root,root) %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
580 %dir %{_libexecdir}/glusterfs/gfind_missing_files
581 %attr(755,root,root) %{_libexecdir}/glusterfs/gfind_missing_files/*
582 %dir %{_libexecdir}/glusterfs/python/syncdaemon
583 %{_libexecdir}/glusterfs/python/syncdaemon/*.py
584 %{_libexecdir}/glusterfs/python/syncdaemon/__pycache__
585 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh
586 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/get-gfid.sh
587 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid
588 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh
589 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/schedule_georep.py
590 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/secondary-upgrade.sh
591 %dir %{_var}/lib/glusterd/hooks/1/gsync-create
592 %dir %{_var}/lib/glusterd/hooks/1/gsync-create/post
593 %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
596 %defattr(644,root,root,755)
597 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/thin-arbiter.vol
598 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
599 %attr(755,root,root) %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
601 %files -n emacs-glusterfs-mode
602 %defattr(644,root,root,755)
603 %{_datadir}/emacs/site-lisp/glusterfs-mode.el
605 %files -n vim-syntax-glusterfs
606 %defattr(644,root,root,755)
607 %{_datadir}/vim/syntax/glusterfs.vim