]> TLD Linux GIT Repositories - packages/glusterfs.git/blob - glusterfs.spec
- /var/lib/glusterd is used by client too, move to common subpackage
[packages/glusterfs.git] / glusterfs.spec
1 # TODO:
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)
9 #
10 # Conditional build:
11 %bcond_without  system_fuse     # system fusermount
12 #
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
15 Name:           glusterfs
16 Version:        10.3
17 Release:        3
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
28 BuildRequires:  bison
29 #BuildRequires: cmocka-devel >= 1.0.1 for unittest
30 BuildRequires:  curl-devel
31 # for bd-xlator
32 BuildRequires:  device-mapper-devel >= 2.02.79
33 BuildRequires:  flex
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)
55
56 %description
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.
64
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.
73
74 %package common
75 Summary:        GlusterFS common files including Translators
76 Summary(pl.UTF-8):      Wspólne pliki GlusterFS-a, w tym translatory
77 Group:          Libraries
78 Requires:       libxml2 >= 1:2.6.19
79 Requires:       zlib >= 1.2.0
80 Obsoletes:      glusterfs-transport-ibverbs < 8
81
82 %description common
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.
90
91 This package includes libglusterfs and glusterfs translator modules
92 common to both GlusterFS server and client framework.
93
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.
102
103 Ten pakiet zawiera libglusterfs i moduły translatorów glusterfs
104 wspólne dla klienta jak i serwera GlusterFS-a.
105
106 %package libs
107 Summary:        GlusterFS libraries
108 Summary(pl.UTF-8):      Biblioteki GlusterFS-a
109 Group:          Libraries
110 Conflicts:      glusterfs-common < 3.4.0
111
112 %description libs
113 GlusterFS libraries.
114
115 %description libs -l pl.UTF-8
116 Biblioteki GlusterFS-a.
117
118 %package devel
119 Summary:        GlusterFS development files
120 Summary(pl.UTF-8):      Pliki programistyczne GlusterFS-a
121 Group:          Development/Libraries
122 Requires:       %{name}-libs = %{version}-%{release}
123 # -lfl
124 Requires:       flex
125 Requires:       libtirpc-devel
126 Requires:       openssl-devel
127 Obsoletes:      glusterfs-static < 1.3.10-2
128
129 %description devel
130 This package provides the development files for GlusterFS library.
131
132 %description devel -l pl.UTF-8
133 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
134
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
141
142 %description -n python3-gluster
143 Python 3 interface to GlusterFS libraries.
144
145 %description -n python3-gluster -l pl.UTF-8
146 Interfejs Pythona 3 do bibliotek GlusterFS.
147
148 %package server
149 Summary:        GlusterFS Server
150 Summary(pl.UTF-8):      Serwer GlusterFS-a
151 Group:          Daemons
152 Requires:       %{name}-client = %{version}-%{release}
153 Requires:       %{name}-common = %{version}-%{release}
154 Requires(post,preun):   /sbin/chkconfig
155 Requires:       rc-scripts
156 Requires:       python3-modules 
157
158 %description server
159 This package provides the glusterfs server daemon.
160
161 %description server -l pl.UTF-8
162 Ten pakiet zawiera część serwerową GlusterFS-a.
163
164 %package client
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}
170
171 %description client
172 This package provides the FUSE based GlusterFS client.
173
174 %description client -l pl.UTF-8
175 Ten pakiet udostępnia opartego na FUSE klienta GlusterFS-a.
176
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
183
184 %description resource-agents
185 OCF Resource Agents for GlusterFS processes.
186
187 %description resource-agents -l pl.UTF-8
188 Agenci OCF do monitorowania procesów GlusterFS-a.
189
190 %package events
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
198
199 %description events
200 GlusterFS Events.
201
202 %description events -l pl.UTF-8
203 Obsługa zdarzeń dla GlusterFS-a.
204
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
212 Requires:       rsync
213
214 %description geo-replication
215 GlusterFS support for geo-replication.
216
217 %description geo-replication -l pl.UTF-8
218 Obsługa geo-replikacji dla GlusterFS-a.
219
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}
225
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
230 setup done.
231
232 This package provides the glusterfs thin-arbiter translator.
233
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.
238
239 Ten pakiet zawiera moduł tłumaczący thin-arbiter.
240
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
247
248 %description -n emacs-glusterfs-mode
249 Emacs mode to edit GlusterFS configuration.
250
251 %description -n emacs-glusterfs-mode -l pl.UTF-8
252 Tryb Emacsa do edycji konfiguracji GlusterFS-a.
253
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
260
261 %description -n vim-syntax-glusterfs
262 Vim syntax file to edit GlusterFS configuration.
263
264 %description -n vim-syntax-glusterfs -l pl.UTF-8
265 Plik składni Vima do edycji konfiguracji GlusterFS-a.
266
267 %prep
268 %setup -q
269 %patch0 -p1
270
271 %build
272 %{__libtoolize}
273 %{__aclocal}
274 %{__autoconf}
275 %{__autoheader}
276 %{__automake}
277 %configure \
278         PYTHON=%{__python3} \
279         %{?with_system_fuse:--disable-fusermount} \
280         --disable-silent-rules \
281         --enable-gnfs \
282         --with-initdir=/etc/rc.d/init.d
283
284 %{__make} -j1
285
286 %install
287 rm -rf $RPM_BUILD_ROOT
288 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
289
290 %{__make} -j1 install \
291         DESTDIR=$RPM_BUILD_ROOT
292
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
295
296 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/glusterfsd
297
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
301
302 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*.la
303 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*.la
304
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
309
310 %clean
311 rm -rf $RPM_BUILD_ROOT
312
313 %post   libs    -p /sbin/ldconfig
314 %postun libs    -p /sbin/ldconfig
315
316 # TODO: verify these scripts (see also included glusterfs.spec)
317 %post server
318 # note: glusterfsd.init vs glusterd.service
319 /sbin/chkconfig --add glusterfsd
320 %service glusterfsd restart
321 # TODO?
322 #glusterd --xlator-option *.upgrade=on -N
323
324 %preun server
325 if [ "$1" = "0" ]; then
326         %service -q glusterfsd stop
327         /sbin/chkconfig --del glusterfsd
328 fi
329
330 %post geo-replication
331 %service glusterd restart
332
333 %files common
334 %defattr(644,root,root,755)
335 %doc ChangeLog NEWS README.md THANKS
336 %attr(755,root,root) %{_bindir}/glusterfind
337 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
338 %attr(755,root,root) %{_sbindir}/glusterfs
339 %attr(755,root,root) %{_sbindir}/glusterfsd
340 %dir %{_sysconfdir}/%{name}
341
342 %dir %{_libdir}/glusterfs
343
344 %dir %{_libdir}/glusterfs/%{version}
345 %dir %{_libdir}/glusterfs/%{version}/auth
346 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/addr.so
347 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
348
349 %dir %{_libdir}/glusterfs/%{version}/cloudsync-plugins
350 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsynccvlt.so
351 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/cloudsync-plugins/cloudsyncs3.so
352
353 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
354 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
355
356 %dir %{_libdir}/glusterfs/%{version}/xlator
357 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/meta.so
358 %dir %{_libdir}/glusterfs/%{version}/xlator/cluster
359 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/cluster/*.so
360 %dir %{_libdir}/glusterfs/%{version}/xlator/debug
361 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/debug/*.so
362 %dir %{_libdir}/glusterfs/%{version}/xlator/features
363 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/*.so
364 %exclude %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
365 %dir %{_libdir}/glusterfs/%{version}/xlator/mgmt
366 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mgmt/glusterd.so
367 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
368 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
369 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
370 %dir %{_libdir}/glusterfs/%{version}/xlator/nfs
371 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
372 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
373 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so
374 %dir %{_libdir}/glusterfs/%{version}/xlator/playground
375 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/playground/template.so
376 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
377 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/client.so
378 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/server.so
379 %dir %{_libdir}/glusterfs/%{version}/xlator/storage
380 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/storage/posix.so
381 %dir %{_libdir}/glusterfs/%{version}/xlator/system
382 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/system/posix-acl.so
383
384 %if "%{_libexecdir}" != "%{_libdir}"
385 %dir %{_libexecdir}/glusterfs
386 %endif
387 %dir %{_libexecdir}/glusterfs/scripts
388 %attr(755,root,root) %{_libexecdir}/glusterfs/glfsheal
389 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_add_secret_pub
390
391 %dir %{_libexecdir}/glusterfs/glusterfind
392 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/S57glusterfind-delete-post.py
393 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/brickfind.py
394 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/changelog.py
395 %attr(755,root,root) %{_libexecdir}/glusterfs/glusterfind/nodeagent.py
396 %{_libexecdir}/glusterfs/glusterfind/__init__.py
397 %{_libexecdir}/glusterfs/glusterfind/changelogdata.py
398 %{_libexecdir}/glusterfs/glusterfind/conf.py
399 %{_libexecdir}/glusterfs/glusterfind/gfind_py2py3.py
400 %{_libexecdir}/glusterfs/glusterfind/libgfchangelog.py
401 %{_libexecdir}/glusterfs/glusterfind/main.py
402 %{_libexecdir}/glusterfs/glusterfind/utils.py
403 %{_libexecdir}/glusterfs/glusterfind/tool.conf
404 %{_libexecdir}/glusterfs/glusterfind/__pycache__
405
406 %dir %{_libexecdir}/glusterfs/python
407
408 %dir %{_datadir}/glusterfs
409 %dir %{_datadir}/glusterfs/scripts
410 #%attr(755,root,root) %{_datadir}/glusterfs/scripts/control-cpu-load.sh
411 #%attr(755,root,root) %{_datadir}/glusterfs/scripts/control-mem.sh
412 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
413 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
414 %attr(755,root,root) %{_datadir}/glusterfs/scripts/stop-all-gluster-processes.sh
415
416 %{_mandir}/man8/glusterfs.8*
417 %{_mandir}/man8/glusterfsd.8*
418
419 %dir %{_var}/lib/glusterd
420 %dir %{_var}/log/glusterfs
421
422 %files libs
423 %defattr(644,root,root,755)
424 %attr(755,root,root) %{_libdir}/libgfapi.so.*.*.*
425 %attr(755,root,root) %ghost %{_libdir}/libgfapi.so.0
426 %attr(755,root,root) %{_libdir}/libgfchangelog.so.*.*.*
427 %attr(755,root,root) %ghost %{_libdir}/libgfchangelog.so.0
428 %attr(755,root,root) %{_libdir}/libgfrpc.so.*.*.*
429 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
430 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
431 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
432 %attr(755,root,root) %{_libdir}/libglusterd.so.*.*.*
433 %attr(755,root,root) %ghost %{_libdir}/libglusterd.so.0
434 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
435 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
436
437 %files devel
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_libdir}/libgfapi.so
440 %attr(755,root,root) %{_libdir}/libgfchangelog.so
441 %attr(755,root,root) %{_libdir}/libgfrpc.so
442 %attr(755,root,root) %{_libdir}/libgfxdr.so
443 %attr(755,root,root) %{_libdir}/libglusterd.so
444 %attr(755,root,root) %{_libdir}/libglusterfs.so
445 %{_libdir}/libgfapi.la
446 %{_libdir}/libgfchangelog.la
447 %{_libdir}/libgfrpc.la
448 %{_libdir}/libgfxdr.la
449 %{_libdir}/libglusterd.la
450 %{_libdir}/libglusterfs.la
451 %dir %{_includedir}/glusterfs
452 %{_includedir}/glusterfs/api
453 %{_includedir}/glusterfs/gfchangelog
454 %{_includedir}/glusterfs/rpc
455 %{_includedir}/glusterfs/server
456 %{_includedir}/glusterfs/*.h
457 %{_pkgconfigdir}/glusterfs-api.pc
458 %{_pkgconfigdir}/libgfchangelog.pc
459
460 %files -n python3-gluster
461 %defattr(644,root,root,755)
462 %dir %{py3_sitescriptdir}/gluster
463 %{py3_sitescriptdir}/gluster/__init__.py
464 %{py3_sitescriptdir}/gluster/__pycache__
465 %{py3_sitescriptdir}/gluster/cliutils
466 # created only when using py_build/py_install in xlators/features/glupy/src
467 #%{py3_sitescriptdir}/glusterfs_glupy-%{version}-py*.egg-info
468
469 %files server
470 %defattr(644,root,root,755)
471 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
472 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-db-workload
473 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-distributed-virt
474 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-gluster-block
475 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-metadata-cache
476 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-nl-cache
477 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/group-samba
478 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
479 %attr(755,root,root) %{_sbindir}/conf.py
480 %attr(755,root,root) %{_sbindir}/gcron.py
481 %attr(755,root,root) %{_sbindir}/gf_attach
482 %attr(755,root,root) %{_sbindir}/gluster-setgfid2path
483 %attr(755,root,root) %{_sbindir}/glusterd
484 %attr(755,root,root) %{_sbindir}/snap_scheduler.py
485 #%attr(755,root,root) %{_libexecdir}/glusterfs/mount-shared-storage.sh
486
487 %{_mandir}/man8/gluster-setgfid2path.8*
488 %{_mandir}/man8/glusterd.8*
489 %dir %{_var}/lib/glusterd/groups
490 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/db-workload
491 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/distributed-virt
492 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/gluster-block
493 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/metadata-cache
494 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/nl-cache
495 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/samba
496 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/groups/virt
497 %dir %{_var}/lib/glusterd/hooks
498 %dir %{_var}/lib/glusterd/hooks/1
499 %dir %{_var}/lib/glusterd/hooks/1/add-brick
500 %dir %{_var}/lib/glusterd/hooks/1/add-brick/post
501 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S10selinux-label-brick.sh
502 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/add-brick/post/S13create-subdir-mounts.sh
503 %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
504 %dir %{_var}/lib/glusterd/hooks/1/add-brick/pre
505 %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
506 %dir %{_var}/lib/glusterd/hooks/1/create
507 %dir %{_var}/lib/glusterd/hooks/1/create/post
508 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/create/post/S10selinux-label-brick.sh
509 %dir %{_var}/lib/glusterd/hooks/1/delete
510 %dir %{_var}/lib/glusterd/hooks/1/delete/post
511 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post
512 %dir %{_var}/lib/glusterd/hooks/1/delete/pre
513 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/delete/pre/S10selinux-del-fcontext.sh
514 %dir %{_var}/lib/glusterd/hooks/1/set
515 %dir %{_var}/lib/glusterd/hooks/1/set/post
516 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S30samba-set.sh
517 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/set/post/S32gluster_enable_shared_storage.sh
518 %dir %{_var}/lib/glusterd/hooks/1/start
519 %dir %{_var}/lib/glusterd/hooks/1/start/post
520 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
521 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S30samba-start.sh
522 %dir %{_var}/lib/glusterd/hooks/1/stop
523 %dir %{_var}/lib/glusterd/hooks/1/stop/pre
524 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
525 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/stop/pre/S30samba-stop.sh
526 %dir %{_var}/run/gluster
527
528 %files client
529 %defattr(644,root,root,755)
530 %{!?with_system_fuse:%attr(755,root,root) %{_bindir}/fusermount-glusterfs}
531 %attr(755,root,root) /sbin/mount.glusterfs
532 %attr(755,root,root) %{_sbindir}/gluster
533 %{_mandir}/man8/gluster.8*
534 %{_mandir}/man8/mount.glusterfs.8*
535
536 %files resource-agents
537 %defattr(644,root,root,755)
538 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
539 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
540 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume
541
542 %files events
543 %defattr(644,root,root,755)
544 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/glusterfs/eventsconfig.json
545 %attr(755,root,root) %{_sbindir}/gluster-eventsapi
546 %attr(755,root,root) %{_sbindir}/glustereventsd
547 %dir %{_libexecdir}/glusterfs/gfevents
548 %attr(755,root,root) %{_libexecdir}/glusterfs/gfevents/glustereventsd.py
549 %{_libexecdir}/glusterfs/gfevents/__init__.py
550 %{_libexecdir}/glusterfs/gfevents/eventsapiconf.py
551 %{_libexecdir}/glusterfs/gfevents/eventtypes.py
552 %{_libexecdir}/glusterfs/gfevents/gf_event.py
553 %{_libexecdir}/glusterfs/gfevents/handlers.py
554 %{_libexecdir}/glusterfs/gfevents/utils.py
555 %{_libexecdir}/glusterfs/gfevents/__pycache__
556 %{_libexecdir}/glusterfs/peer_eventsapi.py
557 %{_datadir}/glusterfs/scripts/eventsdash.py
558
559 # NFS-ganesha integration
560 #%files ganesha
561 #%defattr(644,root,root,755)
562 #%attr(755,root,root) %{_libexecdir}/ganesha/create-export-ganesha.sh
563 #%attr(755,root,root) %{_libexecdir}/ganesha/dbus-send.sh
564 #%attr(755,root,root) %{_libexecdir}/ganesha/ganesha-ha.sh
565 #%attr(755,root,root) %{_libexecdir}/ganesha/generate-epoch.py
566 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_grace
567 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_mon
568 #%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/heartbeat/ganesha_nfsd
569 #%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/glusterd/hooks/1/start/post/S31ganesha-start.sh
570
571 %files geo-replication
572 %defattr(644,root,root,755)
573 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/gsyncd.conf
574 %attr(755,root,root) %{_sbindir}/gfind_missing_files
575 %attr(755,root,root) %{_sbindir}/gluster-georep-sshkey
576 %attr(755,root,root) %{_sbindir}/gluster-mountbroker
577 %attr(755,root,root) %{_libexecdir}/glusterfs/gsyncd
578 %attr(755,root,root) %{_libexecdir}/glusterfs/gverify.sh
579 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_georep-sshkey.py*
580 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_gsec_create
581 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker
582 %attr(755,root,root) %{_libexecdir}/glusterfs/peer_mountbroker.py*
583 %attr(755,root,root) %{_libexecdir}/glusterfs/set_geo_rep_pem_keys.sh
584 %dir %{_libexecdir}/glusterfs/gfind_missing_files
585 %attr(755,root,root) %{_libexecdir}/glusterfs/gfind_missing_files/*
586 %dir %{_libexecdir}/glusterfs/python/syncdaemon
587 %{_libexecdir}/glusterfs/python/syncdaemon/*.py
588 %{_libexecdir}/glusterfs/python/syncdaemon/__pycache__
589 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/generate-gfid-file.sh
590 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/get-gfid.sh
591 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-sync-gfid
592 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/gsync-upgrade.sh
593 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/schedule_georep.py
594 %attr(755,root,root) %{_libexecdir}/glusterfs/scripts/secondary-upgrade.sh
595 %dir %{_var}/lib/glusterd/hooks/1/gsync-create
596 %dir %{_var}/lib/glusterd/hooks/1/gsync-create/post
597 %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
598
599 %files thin-arbiter
600 %defattr(644,root,root,755)
601 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/thin-arbiter.vol
602 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/thin-arbiter.so
603 %attr(755,root,root) %{_datadir}/glusterfs/scripts/setup-thin-arbiter.sh
604
605 %files -n emacs-glusterfs-mode
606 %defattr(644,root,root,755)
607 %{_datadir}/emacs/site-lisp/glusterfs-mode.el
608
609 %files -n vim-syntax-glusterfs
610 %defattr(644,root,root,755)
611 %{_datadir}/vim/syntax/glusterfs.vim