glusterfs

Форк
0
/
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
##
235
Summary:          Distributed File System
236
%if ( 0%{_for_fedora_koji_builds} )
237
Name:             glusterfs
238
Version:          3.8.0
239
Release:          0.1%{?prereltag:.%{prereltag}}%{?dist}
240
%else
241
Name:             @PACKAGE_NAME@
242
Version:          @PACKAGE_VERSION@
243
Release:          0.@PACKAGE_RELEASE@%{?dist}
244
%endif
245
License:          GPLv2 or LGPLv3+
246
URL:              http://docs.gluster.org/
247
%if ( 0%{_for_fedora_koji_builds} )
248
Source0:          http://bits.gluster.org/pub/gluster/glusterfs/src/glusterfs-%{version}%{?prereltag}.tar.gz
249
Source1:          glusterd.sysconfig
250
Source2:          glusterfsd.sysconfig
251
Source7:          glusterfsd.service
252
Source8:          glusterfsd.init
253
%else
254
Source0:          @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz
255
%endif
256

257
BuildRoot:        %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
258

259
Requires(pre):    shadow-utils
260
%if ( 0%{?_with_systemd:1} )
261
BuildRequires:    systemd
262
%endif
263

264
%if ( 0%{!?_without_tcmalloc:1} )
265
Requires:         gperftools-libs%{?_isa}
266
%endif
267

268
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
269
Requires:         libgfrpc0%{?_isa} = %{version}-%{release}
270
Requires:         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 )
275
BuildRequires:    libasan
276
%endif
277
%if 0%{?_with_tsan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
278
BuildRequires:    libtsan
279
%endif
280
BuildRequires:    bison flex
281
BuildRequires:    gcc make libtool
282
BuildRequires:    ncurses-devel readline-devel
283
BuildRequires:    libxml2-devel openssl-devel openssl
284
BuildRequires:    libaio-devel libacl-devel
285
BuildRequires:    python%{_pythonver}-devel
286
%if ( 0%{!?_without_tcmalloc:1} )
287
BuildRequires:    gperftools-devel
288
%endif
289
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
290
BuildRequires:    python-ctypes
291
%endif
292
%if ( 0%{?_with_ipv6default:1} ) || ( 0%{!?_without_libtirpc:1} )
293
BuildRequires:    libtirpc-devel
294
%endif
295
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
296
BuildRequires:    rpcgen
297
%endif
298
BuildRequires:    userspace-rcu-devel >= 0.7
299
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
300
BuildRequires:    automake
301
%endif
302
BuildRequires:    libuuid-devel
303
%if ( 0%{?_with_cmocka:1} )
304
BuildRequires:    libcmocka-devel >= 1.0.1
305
%endif
306
%if ( 0%{!?_without_georeplication:1} )
307
BuildRequires:    libattr-devel
308
%endif
309

310
%if (0%{?_with_firewalld:1})
311
BuildRequires:    firewalld
312
%endif
313

314
%if ( 0%{!?_without_linux_io_uring:1} )
315
BuildRequires:    liburing-devel
316
%endif
317

318
Obsoletes:        %{name}-common < %{version}-%{release}
319
Obsoletes:        %{name}-core < %{version}-%{release}
320
Obsoletes:        %{name}-rdma < %{version}-%{release}
321
%if ( 0%{!?_with_gnfs:1} )
322
Obsoletes:        %{name}-gnfs < %{version}-%{release}
323
%endif
324
Provides:         %{name}-common = %{version}-%{release}
325
Provides:         %{name}-core = %{version}-%{release}
326

327
%description
328
GlusterFS is a distributed file-system capable of scaling to several
329
petabytes. It aggregates various storage bricks over TCP/IP interconnect
330
into one large parallel network filesystem. GlusterFS is one of the
331
most sophisticated file systems in terms of features and extensibility.
332
It borrows a powerful concept called Translators from GNU Hurd kernel.
333
Much of the code in GlusterFS is in user space and easily manageable.
334

335
This package includes the glusterfs binary, the glusterfsd daemon and the
336
libglusterfs and glusterfs translator modules common to both GlusterFS server
337
and client framework.
338

339
%package cli
340
Summary:          GlusterFS CLI
341
%if ( ! (0%{?rhel} && 0%{?rhel} < 7) )
342
BuildRequires:    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
348
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
349

350
%description cli
351
GlusterFS is a distributed file-system capable of scaling to several
352
petabytes. It aggregates various storage bricks over TCP/IP interconnect
353
into one large parallel network filesystem. GlusterFS is one of the
354
most sophisticated file systems in terms of features and extensibility.
355
It borrows a powerful concept called Translators from GNU Hurd kernel.
356
Much of the code in GlusterFS is in user space and easily manageable.
357

358
This package provides the GlusterFS CLI application and its man page
359

360
%package cloudsync-plugins
361
Summary:          Cloudsync Plugins
362
BuildRequires:    libcurl-devel
363

364
%description cloudsync-plugins
365
GlusterFS is a distributed file-system capable of scaling to several
366
petabytes. It aggregates various storage bricks over TCP/IP interconnect
367
into one large parallel network filesystem. GlusterFS is one of the
368
most sophisticated file systems in terms of features and extensibility.
369
It borrows a powerful concept called Translators from GNU Hurd kernel.
370
Much of the code in GlusterFS is in user space and easily manageable.
371

372
This package provides cloudsync plugins for archival feature.
373

374
%package extra-xlators
375
Summary:          Extra Gluster filesystem Translators
376
# We need python-gluster rpm for gluster module's __init__.py in Python
377
# site-packages area
378
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
379
Requires:         python%{_pythonver}
380

381
%description extra-xlators
382
GlusterFS is a distributed file-system capable of scaling to several
383
petabytes. It aggregates various storage bricks over TCP/IP interconnect
384
into one large parallel network filesystem. GlusterFS is one of the
385
most sophisticated file systems in terms of features and extensibility.
386
It borrows a powerful concept called Translators from GNU Hurd kernel.
387
Much of the code in GlusterFS is in user space and easily manageable.
388

389
This package provides extra filesystem Translators, such as Glupy,
390
for GlusterFS.
391

392
%package fuse
393
Summary:          Fuse client
394
BuildRequires:    fuse-devel
395
Requires:         attr
396
Requires:         psmisc
397

398
Requires:         %{name}%{?_isa} = %{version}-%{release}
399
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
400

401
Obsoletes:        %{name}-client < %{version}-%{release}
402
Provides:         %{name}-client = %{version}-%{release}
403

404
%description fuse
405
GlusterFS is a distributed file-system capable of scaling to several
406
petabytes. It aggregates various storage bricks over TCP/IP interconnect
407
into one large parallel network filesystem. GlusterFS is one of the
408
most sophisticated file systems in terms of features and extensibility.
409
It borrows a powerful concept called Translators from GNU Hurd kernel.
410
Much of the code in GlusterFS is in user space and easily manageable.
411

412
This package provides support to FUSE based clients and inlcudes the
413
glusterfs(d) binary.
414

415
%if ( 0%{!?_without_server:1} )
416
%package ganesha
417
Summary:          NFS-Ganesha configuration
418
Group:            Applications/File
419

420
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
421
Requires:         nfs-ganesha-selinux >= 2.7.6
422
Requires:         nfs-ganesha-gluster >= 2.7.6
423
Requires:         pcs >= 0.10.0
424
Requires:         resource-agents >= 4.2.0
425
Requires:         dbus
426

427
%if ( 0%{?rhel} && 0%{?rhel} == 6 )
428
Requires:         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.
433
Requires:         net-tools
434
%endif
435

436
%if ( 0%{?fedora} && 0%{?fedora} > 25  || ( 0%{?rhel} && 0%{?rhel} > 6 ) )
437
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
438
Requires: selinux-policy >= 3.13.1-160
439
Requires(post):   policycoreutils-python
440
Requires(postun): policycoreutils-python
441
%else
442
Requires(post):   policycoreutils-python-utils
443
Requires(postun): policycoreutils-python-utils
444
%endif
445
%endif
446

447
%description ganesha
448
GlusterFS is a distributed file-system capable of scaling to several
449
petabytes. It aggregates various storage bricks over Infiniband RDMA
450
or TCP/IP interconnect into one large parallel network file
451
system. GlusterFS is one of the most sophisticated file systems in
452
terms of features and extensibility.  It borrows a powerful concept
453
called Translators from GNU Hurd kernel. Much of the code in GlusterFS
454
is in user space and easily manageable.
455

456
This package provides the configuration and related files for using
457
NFS-Ganesha as the NFS server using GlusterFS
458
%endif
459

460
%if ( 0%{!?_without_georeplication:1} )
461
%package geo-replication
462
Summary:          GlusterFS Geo-replication
463
Requires:         %{name}%{?_isa} = %{version}-%{release}
464
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
465
Requires:         python%{_pythonver}
466
Requires:         python%{_pythonver}-prettytable
467
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
468

469
Requires:         rsync
470
Requires:         util-linux
471
Requires:         tar
472

473
# required for setting selinux bools
474
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
475
Requires(post):      policycoreutils-python-utils
476
Requires(postun):    policycoreutils-python-utils
477
Requires:            selinux-policy-targeted
478
Requires(post):      selinux-policy-targeted
479
BuildRequires:       selinux-policy-devel
480
%endif
481

482
%description geo-replication
483
GlusterFS is a distributed file-system capable of scaling to several
484
petabytes. It aggregates various storage bricks over TCP/IP interconnect
485
into one large parallel network filesystem. GlusterFS is one of the
486
most sophisticated file systems in terms of features and extensibility.
487
It borrows a powerful concept called Translators from GNU Hurd kernel.
488
Much of the code in GlusterFS is in user space and easily manageable.
489

490
This package provides support to geo-replication.
491
%endif
492

493
%if ( 0%{?_with_gnfs:1} )
494
%package gnfs
495
Summary:          GlusterFS gNFS server
496
Requires:         %{name}%{?_isa} = %{version}-%{release}
497
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
498
Requires:         nfs-utils
499

500
%description gnfs
501
GlusterFS is a distributed file-system capable of scaling to several
502
petabytes. It aggregates various storage bricks over TCP/IP interconnect
503
into one large parallel network filesystem. GlusterFS is one of the
504
most sophisticated file systems in terms of features and extensibility.
505
It borrows a powerful concept called Translators from GNU Hurd kernel.
506
Much of the code in GlusterFS is in user space and easily manageable.
507

508
This package provides the glusterfs legacy gNFS server xlator
509
%endif
510

511
%package -n libglusterfs0
512
Summary:          GlusterFS libglusterfs library
513
Requires:         libgfrpc0%{?_isa} = %{version}-%{release}
514
Requires:         libgfxdr0%{?_isa} = %{version}-%{release}
515
Obsoletes:        %{name}-libs <= %{version}-%{release}
516
Provides:         %{name}-libs = %{version}-%{release}
517

518
%description -n libglusterfs0
519
GlusterFS is a distributed file-system capable of scaling to several
520
petabytes. It aggregates various storage bricks over TCP/IP interconnect
521
into one large parallel network filesystem. GlusterFS is one of the
522
most sophisticated file systems in terms of features and extensibility.
523
It borrows a powerful concept called Translators from GNU Hurd kernel.
524
Much of the code in GlusterFS is in user space and easily manageable.
525

526
This package provides the base libglusterfs library
527

528
%package -n libglusterfs-devel
529
Summary:          GlusterFS libglusterfs library
530
Requires:         libgfrpc-devel%{?_isa} = %{version}-%{release}
531
Requires:         libgfxdr-devel%{?_isa} = %{version}-%{release}
532
Obsoletes:        %{name}-devel <= %{version}-%{release}
533
Provides:         %{name}-devel = %{version}-%{release}
534

535
%description -n libglusterfs-devel
536
GlusterFS is a distributed file-system capable of scaling to several
537
petabytes. It aggregates various storage bricks over TCP/IP interconnect
538
into one large parallel network filesystem. GlusterFS is one of the
539
most sophisticated file systems in terms of features and extensibility.
540
It borrows a powerful concept called Translators from GNU Hurd kernel.
541
Much of the code in GlusterFS is in user space and easily manageable.
542

543
This package provides libglusterfs.so and the gluster C header files.
544

545
%package -n libgfapi0
546
Summary:          GlusterFS api library
547
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
548
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
549
Obsoletes:        %{name}-api <= %{version}-%{release}
550
Provides:         %{name}-api = %{version}-%{release}
551

552
%description -n libgfapi0
553
GlusterFS is a distributed file-system capable of scaling to several
554
petabytes. It aggregates various storage bricks over TCP/IP interconnect
555
into one large parallel network filesystem. GlusterFS is one of the
556
most sophisticated file systems in terms of features and extensibility.
557
It borrows a powerful concept called Translators from GNU Hurd kernel.
558
Much of the code in GlusterFS is in user space and easily manageable.
559

560
This package provides the glusterfs libgfapi library.
561

562
%package -n libgfapi-devel
563
Summary:          Development Libraries
564
Requires:         libglusterfs-devel%{?_isa} = %{version}-%{release}
565
Requires:         libacl-devel
566
Obsoletes:        %{name}-api-devel <= %{version}-%{release}
567
Provides:         %{name}-api-devel = %{version}-%{release}
568

569
%description -n libgfapi-devel
570
GlusterFS is a distributed file-system capable of scaling to several
571
petabytes. It aggregates various storage bricks over TCP/IP interconnect
572
into one large parallel network filesystem. GlusterFS is one of the
573
most sophisticated file systems in terms of features and extensibility.
574
It borrows a powerful concept called Translators from GNU Hurd kernel.
575
Much of the code in GlusterFS is in user space and easily manageable.
576

577
This package provides libgfapi.so and the api C header files.
578

579
%package -n libgfchangelog0
580
Summary:          GlusterFS libchangelog library
581
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
582
Obsoletes:        %{name}-libs <= %{version}-%{release}
583

584
%description -n libgfchangelog0
585
GlusterFS is a distributed file-system capable of scaling to several
586
petabytes. It aggregates various storage bricks over TCP/IP interconnect
587
into one large parallel network filesystem. GlusterFS is one of the
588
most sophisticated file systems in terms of features and extensibility.
589
It borrows a powerful concept called Translators from GNU Hurd kernel.
590
Much of the code in GlusterFS is in user space and easily manageable.
591

592
This package provides the libgfchangelog library
593

594
%package -n libgfchangelog-devel
595
Summary:          GlusterFS libchangelog library
596
Requires:         libglusterfs-devel%{?_isa} = %{version}-%{release}
597
Obsoletes:        %{name}-devel <= %{version}-%{release}
598

599
%description -n libgfchangelog-devel
600
GlusterFS is a distributed file-system capable of scaling to several
601
petabytes. It aggregates various storage bricks over TCP/IP interconnect
602
into one large parallel network filesystem. GlusterFS is one of the
603
most sophisticated file systems in terms of features and extensibility.
604
It borrows a powerful concept called Translators from GNU Hurd kernel.
605
Much of the code in GlusterFS is in user space and easily manageable.
606

607
This package provides libgfchangelog.so and changelog C header files.
608

609
%package -n libgfrpc0
610
Summary:          GlusterFS libgfrpc0 library
611
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
612
Obsoletes:        %{name}-libs <= %{version}-%{release}
613

614
%description -n libgfrpc0
615
GlusterFS is a distributed file-system capable of scaling to several
616
petabytes. It aggregates various storage bricks over TCP/IP interconnect
617
into one large parallel network filesystem. GlusterFS is one of the
618
most sophisticated file systems in terms of features and extensibility.
619
It borrows a powerful concept called Translators from GNU Hurd kernel.
620
Much of the code in GlusterFS is in user space and easily manageable.
621

622
This package provides the libgfrpc library
623

624
%package -n libgfrpc-devel
625
Summary:          GlusterFS libgfrpc library
626
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
627
Obsoletes:        %{name}-devel <= %{version}-%{release}
628

629
%description -n libgfrpc-devel
630
GlusterFS is a distributed file-system capable of scaling to several
631
petabytes. It aggregates various storage bricks over TCP/IP interconnect
632
into one large parallel network filesystem. GlusterFS is one of the
633
most sophisticated file systems in terms of features and extensibility.
634
It borrows a powerful concept called Translators from GNU Hurd kernel.
635
Much of the code in GlusterFS is in user space and easily manageable.
636

637
This package provides libgfrpc.so and rpc C header files.
638

639
%package -n libgfxdr0
640
Summary:          GlusterFS libgfxdr0 library
641
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
642
Obsoletes:        %{name}-libs <= %{version}-%{release}
643

644
%description -n libgfxdr0
645
GlusterFS is a distributed file-system capable of scaling to several
646
petabytes. It aggregates various storage bricks over TCP/IP interconnect
647
into one large parallel network filesystem. GlusterFS is one of the
648
most sophisticated file systems in terms of features and extensibility.
649
It borrows a powerful concept called Translators from GNU Hurd kernel.
650
Much of the code in GlusterFS is in user space and easily manageable.
651

652
This package provides the libgfxdr library
653

654
%package -n libgfxdr-devel
655
Summary:          GlusterFS libgfxdr library
656
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
657
Obsoletes:        %{name}-devel <= %{version}-%{release}
658

659
%description -n libgfxdr-devel
660
GlusterFS is a distributed file-system capable of scaling to several
661
petabytes. It aggregates various storage bricks over TCP/IP interconnect
662
into one large parallel network filesystem. GlusterFS is one of the
663
most sophisticated file systems in terms of features and extensibility.
664
It borrows a powerful concept called Translators from GNU Hurd kernel.
665
Much of the code in GlusterFS is in user space and easily manageable.
666

667
This package provides libgfxdr.so.
668

669
%package -n python%{_pythonver}-gluster
670
Summary:          GlusterFS python library
671
Requires:         python%{_pythonver}
672
%if ( ! %{_usepython3} )
673
%{?python_provide:%python_provide python-gluster}
674
Provides:         python-gluster = %{version}-%{release}
675
Obsoletes:        python-gluster < 3.10
676
%endif
677

678
%description -n python%{_pythonver}-gluster
679
GlusterFS is a distributed file-system capable of scaling to several
680
petabytes. It aggregates various storage bricks over TCP/IP interconnect
681
into one large parallel network filesystem. GlusterFS is one of the
682
most sophisticated file systems in terms of features and extensibility.
683
It borrows a powerful concept called Translators from GNU Hurd kernel.
684
Much of the code in GlusterFS is in user space and easily manageable.
685

686
This package contains the python modules of GlusterFS and own gluster
687
namespace.
688

689
%package regression-tests
690
Summary:          Development Tools
691
Requires:         %{name}%{?_isa} = %{version}-%{release}
692
Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
693
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
694
## thin provisioning support
695
Requires:         lvm2 >= 2.02.89
696
Requires:         perl(App::Prove) perl(Test::Harness) gcc util-linux-ng
697
Requires:         python%{_pythonver}
698
Requires:         attr dbench file git libacl-devel net-tools
699
Requires:         nfs-utils xfsprogs yajl psmisc bc
700

701
%description regression-tests
702
The Gluster Test Framework, is a suite of scripts used for
703
regression testing of Gluster.
704

705
%if ( 0%{!?_without_ocf:1} )
706
%package resource-agents
707
Summary:          OCF Resource Agents for GlusterFS
708
License:          GPLv3+
709
BuildArch:        noarch
710
# this Group handling comes from the Fedora resource-agents package
711
# for glusterd
712
Requires:         %{name}-server = %{version}-%{release}
713
# depending on the distribution, we need pacemaker or resource-agents
714
Requires:         %{_prefix}/lib/ocf/resource.d
715

716
%description resource-agents
717
GlusterFS is a distributed file-system capable of scaling to several
718
petabytes. It aggregates various storage bricks over TCP/IP interconnect
719
into one large parallel network filesystem. GlusterFS is one of the
720
most sophisticated file systems in terms of features and extensibility.
721
It borrows a powerful concept called Translators from GNU Hurd kernel.
722
Much of the code in GlusterFS is in user space and easily manageable.
723

724
This package provides the resource agents which plug glusterd into
725
Open Cluster Framework (OCF) compliant cluster resource managers,
726
like Pacemaker.
727
%endif
728

729
%if ( 0%{!?_without_server:1} )
730
%package server
731
Summary:          Clustered file-system server
732
Requires:         %{name}%{?_isa} = %{version}-%{release}
733
Requires:         %{name}-cli%{?_isa} = %{version}-%{release}
734
Requires:         libglusterfs0%{?_isa} = %{version}-%{release}
735
Requires:         libgfchangelog0%{?_isa} = %{version}-%{release}
736
%if ( 0%{?fedora} && 0%{?fedora} >= 30  || ( 0%{?rhel} && 0%{?rhel} >= 8 ) )
737
Requires:         glusterfs-selinux >= 0.1.0-2
738
%endif
739
# some daemons (like quota) use a fuse-mount, glusterfsd is part of -fuse
740
Requires:         %{name}-fuse%{?_isa} = %{version}-%{release}
741
# self-heal daemon, rebalance, nfs-server etc. are actually clients
742
Requires:         libgfapi0%{?_isa} = %{version}-%{release}
743
Requires:         %{name}-client-xlators%{?_isa} = %{version}-%{release}
744
# lvm2 for snapshot, and nfs-utils and rpcbind/portmap for gnfs server
745
Requires:         lvm2
746
%if ( 0%{?_with_systemd:1} )
747
%{?systemd_requires}
748
%else
749
Requires(post):   /sbin/chkconfig
750
Requires(preun):  /sbin/service
751
Requires(preun):  /sbin/chkconfig
752
Requires(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:
759
Requires:         firewalld-filesystem
760
%endif
761
%endif
762
%if ( 0%{?fedora} ) || ( 0%{?rhel} && 0%{?rhel} >= 6 )
763
Requires:         rpcbind
764
%else
765
Requires:         portmap
766
%endif
767
%if ( 0%{?rhel} && 0%{?rhel} <= 6 )
768
Requires:         python-argparse
769
%endif
770
%if ( 0%{?fedora} && 0%{?fedora} > 27 ) || ( 0%{?rhel} && 0%{?rhel} > 7 )
771
Requires:         python%{_pythonver}-pyxattr
772
%else
773
Requires:         pyxattr
774
%endif
775
%if (0%{?_with_valgrind:1})
776
Requires:         valgrind
777
%endif
778

779
%description server
780
GlusterFS is a distributed file-system capable of scaling to several
781
petabytes. It aggregates various storage bricks over TCP/IP interconnect
782
into one large parallel network filesystem. GlusterFS is one of the
783
most sophisticated file systems in terms of features and extensibility.
784
It borrows a powerful concept called Translators from GNU Hurd kernel.
785
Much of the code in GlusterFS is in user space and easily manageable.
786

787
This package provides the glusterfs server daemon.
788
%endif
789

790
%package thin-arbiter
791
Summary:          GlusterFS thin-arbiter module
792
Requires:         %{name}%{?_isa} = %{version}-%{release}
793
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
794

795
%description thin-arbiter
796
This package provides a tie-breaker functionality to GlusterFS
797
replicate volume. It includes translators required to provide the
798
functionality, and also few other scripts required for getting the setup done.
799

800
This package provides the glusterfs thin-arbiter translator.
801

802
%package client-xlators
803
Summary:          GlusterFS client-side translators
804

805
%description client-xlators
806
GlusterFS is a distributed file-system capable of scaling to several
807
petabytes. It aggregates various storage bricks over TCP/IP interconnect
808
into one large parallel network filesystem. GlusterFS is one of the
809
most sophisticated file systems in terms of features and extensibility.
810
It borrows a powerful concept called Translators from GNU Hurd kernel.
811
Much of the code in GlusterFS is in user space and easily manageable.
812

813
This package provides the translators needed on any GlusterFS client.
814

815
%if ( 0%{!?_without_events:1} )
816
%package events
817
Summary:          GlusterFS Events
818
Requires:         %{name}-server%{?_isa} = %{version}-%{release}
819
Requires:         python%{_pythonver} python%{_pythonver}-prettytable
820
Requires:         python%{_pythonver}-gluster = %{version}-%{release}
821
%if ( 0%{?rhel} && 0%{?rhel} < 8 )
822
Requires:         python-requests
823
%else
824
Requires:         python%{_pythonver}-requests
825
%endif
826
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
827
Requires:         python-argparse
828
%endif
829
%if ( 0%{?_with_systemd:1} )
830
%{?systemd_requires}
831
%endif
832

833
%description events
834
GlusterFS Events
835

836
%endif
837

838
%prep
839
%setup -q -n %{name}-%{version}%{?prereltag}
840
%if ( ! %{_usepython3} )
841
echo "fixing python shebangs..."
842
for f in api events extras geo-replication libglusterfs tools xlators; do
843
find $f -type f -exec sed -i 's|/usr/bin/python3|/usr/bin/python2|' {} \;
844
done
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 )
877
sed -i 's| \\\$compiler_flags |&\\\$LDFLAGS |' libtool
878
%endif
879
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|' libtool
880
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|' libtool
881

882
make %{?_smp_mflags}
883

884
%check
885
make check
886

887
%install
888
rm -rf %{buildroot}
889
make install DESTDIR=%{buildroot}
890
%if ( 0%{!?_without_server:1} )
891
%if ( 0%{_for_fedora_koji_builds} )
892
install -D -p -m 0644 %{SOURCE1} \
893
    %{buildroot}%{_sysconfdir}/sysconfig/glusterd
894
install -D -p -m 0644 %{SOURCE2} \
895
    %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
896
%else
897
install -D -p -m 0644 extras/glusterd-sysconfig \
898
    %{buildroot}%{_sysconfdir}/sysconfig/glusterd
899
%endif
900
%endif
901

902
mkdir -p %{buildroot}%{_localstatedir}/log/glusterd
903
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfs
904
mkdir -p %{buildroot}%{_localstatedir}/log/glusterfsd
905
mkdir -p %{buildroot}%{_rundir}/gluster
906

907
# Remove unwanted files from all the shared libraries
908
find %{buildroot}%{_libdir} -name '*.a' -delete
909
find %{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 )
915
rm -rf %{buildroot}%{_pkgdocdir}/*
916
%else
917
rm -rf %{buildroot}%{_defaultdocdir}/%{name}
918
mkdir -p %{buildroot}%{_pkgdocdir}
919
%endif
920
head -50 ChangeLog > ChangeLog.head && mv ChangeLog.head ChangeLog
921
cat << EOM >> ChangeLog
922

923
More commit messages for this ChangeLog can be found at
924
https://forge.gluster.org/glusterfs-core/glusterfs/commits/v%{version}%{?prereltag}
925
EOM
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
930
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/benchmarking
931
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs-mode.el
932
rm -f %{buildroot}%{_defaultdocdir}/%{name}/glusterfs.vim
933

934
%if ( 0%{!?_without_server:1} )
935
# Create working directory
936
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd
937

938
# Update configuration file to /var/lib working directory
939
sed -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

950
install -D -p -m 0644 extras/glusterfs-logrotate \
951
    %{buildroot}%{_sysconfdir}/logrotate.d/glusterfs
952

953
# ganesha ghosts
954
%if ( 0%{!?_without_server:1} )
955
mkdir -p %{buildroot}%{_sysconfdir}/ganesha
956
touch %{buildroot}%{_sysconfdir}/ganesha/ganesha-ha.conf
957
mkdir -p %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/
958
touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha.conf
959
touch %{buildroot}%{_localstatedir}/run/gluster/shared_storage/nfs-ganesha/ganesha-ha.conf
960
%endif
961

962
%if ( 0%{!?_without_georeplication:1} )
963
# geo-rep ghosts
964
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/geo-replication
965
touch %{buildroot}%{_sharedstatedir}/glusterd/geo-replication/gsyncd_template.conf
966
install -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
972
touch %{buildroot}%{_sharedstatedir}/glusterd/glusterd.info
973
touch %{buildroot}%{_sharedstatedir}/glusterd/options
974
subdirs=(add-brick create copy-file delete gsync-create remove-brick reset set start stop)
975
for dir in ${subdirs[@]}; do
976
    mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/hooks/1/"$dir"/{pre,post}
977
done
978
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/glustershd
979
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/peers
980
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/vols
981
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/nfs/run
982
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/bitd
983
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/quotad
984
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/scrub
985
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/snaps
986
mkdir -p %{buildroot}%{_sharedstatedir}/glusterd/ss_brick
987
touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/nfs-server.vol
988
touch %{buildroot}%{_sharedstatedir}/glusterd/nfs/run/nfs.pid
989
%endif
990

991
find ./tests ./run-tests.sh -type f | cpio -pd %{buildroot}%{_prefix}/share/glusterfs
992

993
%clean
994
rm -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
1006
exit 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
1017
if [ $1 -eq 1 ]; then
1018
  %selinux_set_booleans ganesha_use_fusefs=1
1019
fi
1020
exit 0
1021
%endif
1022
%endif
1023

1024
%if ( 0%{!?_without_georeplication:1} )
1025
%post geo-replication
1026
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
1027
if [ $1 -eq 1 ]; then
1028
  %selinux_set_booleans %{selinuxbooleans}
1029
fi
1030
%endif
1031
if [ $1 -ge 1 ]; then
1032
    %systemd_postun_with_restart glusterd
1033
fi
1034
exit 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.
1063
if [ -f %{_localstatedir}/log/glusterfs/.cmd_log_history ]; then
1064
    mv %{_localstatedir}/log/glusterfs/.cmd_log_history \
1065
       %{_localstatedir}/log/glusterfs/cmd_history.log
1066
fi
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
1073
if [ -d /etc/glusterd -a ! -h %{_sharedstatedir}/glusterd ]; then
1074
    mkdir -p %{_sharedstatedir}/glusterd
1075
    cp -a /etc/glusterd %{_sharedstatedir}/glusterd
1076
    rm -rf /etc/glusterd
1077
    ln -sf %{_sharedstatedir}/glusterd /etc/glusterd
1078
fi
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.
1082
if [ -d %{_sharedstatedir}/glusterd/vols ]; then
1083
    for file in $(find %{_sharedstatedir}/glusterd/vols -name '*.vol'); do
1084
        newfile=${file}.rpmsave
1085
        echo "warning: ${file} saved as ${newfile}"
1086
        cp ${file} ${newfile}
1087
    done
1088
fi
1089

1090
# add marker translator
1091
# but first make certain that there are no old libs around to bite us
1092
# BZ 834847
1093
if [ -e /etc/ld.so.conf.d/glusterfs.conf ]; then
1094
    rm -f /etc/ld.so.conf.d/glusterfs.conf
1095
    /sbin/ldconfig
1096
fi
1097

1098
%if (0%{?_with_firewalld:1})
1099
    %firewalld_reload
1100
%endif
1101

1102
pidof -c -o %PPID -x glusterd &> /dev/null
1103
if [ $? -eq 0 ]; then
1104
    kill -9 `pgrep -f gsyncd.py` &> /dev/null
1105

1106
    killall --wait glusterd &> /dev/null
1107
    glusterd --xlator-option *.upgrade=on -N
1108

1109
    #Cleaning leftover glusterd socket file which is created by glusterd in
1110
    #rpm_script_t context.
1111
    rm -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
1116
else
1117
    glusterd --xlator-option *.upgrade=on -N
1118

1119
    #Cleaning leftover glusterd socket file which is created by glusterd in
1120
    #rpm_script_t context.
1121
    rm -f %{_rundir}/glusterd.socket
1122
fi
1123
exit 0
1124
%endif
1125

1126
##-----------------------------------------------------------------------------
1127
## All %%pre should be placed here and keep them sorted
1128
##
1129
%pre
1130
getent group gluster > /dev/null || groupadd -r gluster
1131
getent passwd gluster > /dev/null || useradd -r -g gluster -d %{_rundir}/gluster -s /sbin/nologin -c "GlusterFS daemons" gluster
1132
exit 0
1133

1134
##-----------------------------------------------------------------------------
1135
## All %%preun should be placed here and keep them sorted
1136
##
1137
%if ( 0%{!?_without_events:1} )
1138
%preun events
1139
if [ $1 -eq 0 ]; then
1140
    if [ -f %glustereventsd_svcfile ]; then
1141
        %service_stop glustereventsd
1142
        %systemd_preun glustereventsd
1143
    fi
1144
fi
1145
exit 0
1146
%endif
1147

1148
%if ( 0%{!?_without_server:1} )
1149
%preun server
1150
if [ $1 -eq 0 ]; then
1151
    if [ -f %glusterfsd_svcfile ]; then
1152
        %service_stop glusterfsd
1153
    fi
1154
    %service_stop glusterd
1155
    if [ -f %glusterfsd_svcfile ]; then
1156
        %systemd_preun glusterfsd
1157
    fi
1158
    %systemd_preun glusterd
1159
fi
1160
if [ $1 -ge 1 ]; then
1161
    if [ -f %glusterfsd_svcfile ]; then
1162
        %systemd_postun_with_restart glusterfsd
1163
    fi
1164
    %systemd_postun_with_restart glusterd
1165
fi
1166
exit 0
1167
%endif
1168

1169
%preun thin-arbiter
1170
if [ $1 -eq 0 ]; then
1171
    if [ -f %glusterta_svcfile ]; then
1172
        %service_stop gluster-ta-volume
1173
        %systemd_preun gluster-ta-volume
1174
    fi
1175
fi
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
1192
exit 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
1198
if [ $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
1201
fi
1202
exit 0
1203
%endif
1204
%endif
1205

1206
%if ( 0%{!?_without_georeplication:1} )
1207
%postun geo-replication
1208
%if ( 0%{?rhel} && 0%{?rhel} >= 8 )
1209
if [ $1 -eq 0 ]; then
1210
  %selinux_unset_booleans %{selinuxbooleans}
1211
fi
1212
exit 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
1223
semanage boolean -m ganesha_use_fusefs --on -S targeted
1224
exit 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)
1758
  statedumps (#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
1831
  but 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
1937
  upgrade (#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
2036
  regression 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
2176
  the spec always turned off python bindings as python is not part
2177
  of buildsys-build and the chroot will never have python unless we
2178
  require it
2179
- Temporarily set -D_FORTIFY_SOURCE=1 until upstream fixes code
2180
  GlusterFS 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
2190
  automake 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
2195
  by 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
2261
  glusterfsd 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
2307
  switch)
2308

2309
* Sun Jul 15 2007 Matt Paine <matt@mattsoftware.com> - 1.3.pre6
2310
- Initial spec file
2311

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.