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