2 # - Find pidfiles killproc --pidfile ${PIDFILE} -TERM instead of kill -TERM ${PID}
3 # - Check transport-ibverbs package and ibverbs bcond
4 # - Add passing options from /etc/sysconfig/glusterfsd to glusterfsd
5 # - package /etc/glusterfs/glusterfs-logrotate as logrotate config
6 # - package in proper emacs/vim locations:
7 # /usr/share/doc/glusterfs/glusterfs-mode.el
8 # /usr/share/doc/glusterfs/glusterfs.vim
11 %bcond_without ibverbs # ib-verbs transport
12 %bcond_without systemtap # systemtap/dtrace support
14 Summary: Clustered File Storage that can scale to peta bytes
15 Summary(pl.UTF-8): Klastrowy system przechowywania plików skalujący się do petabajtów
19 License: LGPL v3+ or GPL v2 (libraries), GPL v3+ (programs)
20 Group: Applications/System
21 Source0: http://download.gluster.org/pub/gluster/glusterfs/3.5/LATEST/glusterfs-%{version}.tar.gz
22 # Source0-md5: 359f9f565fedd3069e1ff4f81fcb14e7
23 Source1: glusterfsd.init
24 Patch0: %{name}-link.patch
25 Patch1: %{name}-noquiet.patch
26 Patch2: no-sysctl-on-linux.patch
27 URL: http://www.gluster.org/
28 BuildRequires: autoconf >= 2.50
29 BuildRequires: automake
31 BuildRequires: device-mapper-devel >= 2.02.79
33 BuildRequires: glib2-devel >= 2.0
34 BuildRequires: libaio-devel
35 BuildRequires: libfuse-devel >= 2.6
36 %{?with_ibverbs:BuildRequires: libibverbs-devel >= 1.0.4}
37 BuildRequires: libtool
38 BuildRequires: libxml2-devel >= 1:2.6.19
39 BuildRequires: openssl-devel
40 BuildRequires: pkgconfig
41 BuildRequires: python >= 1:2.4
42 BuildRequires: readline-devel
43 BuildRequires: rpm-pythonprov
44 BuildRequires: rpmbuild(macros) >= 1.228
45 %{?with_systemtap:BuildRequires: systemtap-sdt-devel}
46 BuildRequires: zlib-devel >= 1.2.0
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 GlusterFS is a clustered file-system capable of scaling to several
51 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
52 or TCP/IP interconnect into one large parallel network file system.
53 GlusterFS is one of the most sophisticated file system in terms of
54 features and extensibility. It borrows a powerful concept called
55 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
56 userspace and easily manageable.
58 %description -l pl.UTF-8
59 GlusterFS to klastrowy system plików skalujący się do petabajtów.
60 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
61 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
62 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
63 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
64 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
65 jest łatwo zarządzalna.
68 Summary: GlusterFS common files including Translators
69 Summary(pl.UTF-8): Wspólne pliki GlusterFS-a, w tym translatory
71 Requires: libxml2 >= 1:2.6.19
72 Requires: zlib >= 1.2.0
75 GlusterFS is a clustered file-system capable of scaling to several
76 peta-bytes. It aggregates various storage bricks over Infiniband RDMA
77 or TCP/IP interconnect into one large parallel network file system.
78 GlusterFS is one of the most sophisticated file system in terms of
79 features and extensibility. It borrows a powerful concept called
80 Translators from GNU Hurd kernel. Much of the code in GlusterFS is in
81 userspace and easily manageable.
83 This package includes libglusterfs and glusterfs translator modules
84 common to both GlusterFS server and client framework.
86 %description common -l pl.UTF-8
87 GlusterFS to klastrowy system plików skalujący się do petabajtów.
88 Scala różne kawałki miejsca po łączach Infiniband RDMA lub TCP/IP w
89 jeden duży, równoległy sieciowy system plików. GlusterFS to jeden z
90 najbardziej wyszukanych systemów plików jeśli chodzi o możliwości i
91 rozszerzalność. Zapożycza potężną ideę o nazwie Translators z jądra
92 GNU Hurd. Duża część kodu GlusterFS działa w przestrzeni użytkownika i
93 jest łatwo zarządzalna.
95 Ten pakiet zawiera libglusterfs i moduły translatorów glusterfs
96 wspólne dla klienta jak i serwera GlusterFS-a.
99 Summary: GlusterFS libraries
100 Summary(pl.UTF-8): Biblioteki GlusterFS-a
102 Conflicts: glusterfs-common < 3.4.0
107 %description libs -l pl.UTF-8
108 Biblioteki GlusterFS-a.
111 Summary: GlusterFS development files
112 Summary(pl.UTF-8): Pliki programistyczne GlusterFS-a
113 Group: Development/Libraries
114 Requires: %{name}-libs = %{version}-%{release}
117 Requires: openssl-devel
118 Obsoletes: glusterfs-static
121 This package provides the development files for GlusterFS library.
123 %description devel -l pl.UTF-8
124 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
126 %package -n python-gluster
127 Summary: Python interface to GlusterFS libraries
128 Summary(pl.UTF-8): Interfejs Pythona do bibliotek GlusterFS
129 Group: Libraries/Python
130 Requires: %{name}-libs = %{version}-%{release}
132 %description -n python-gluster
133 Python interface to GlusterFS libraries.
135 %description -n python-gluster -l pl.UTF-8
136 Interfejs Pythona do bibliotek GlusterFS.
138 %package transport-ibverbs
139 Summary: InfiniBand "verbs" transport plugins for GlusterFS
140 Summary(pl.UTF-8): Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a
142 Requires: %{name}-common = %{version}-%{release}
143 Requires: libibverbs >= 1.0.4
145 %description transport-ibverbs
146 InfiniBand "verbs" transport plugins for GlusterFS.
148 %description transport-ibverbs -l pl.UTF-8
149 Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a.
152 Summary: GlusterFS Server
153 Summary(pl.UTF-8): Serwer GlusterFS-a
155 Requires: %{name}-client = %{version}-%{release}
156 Requires: %{name}-common = %{version}-%{release}
157 Requires(post,preun): /sbin/chkconfig
161 This package provides the glusterfs server daemon.
163 %description server -l pl.UTF-8
164 Ten pakiet zawiera część serwerową GlusterFS-a.
167 Summary: GlusterFS Client
168 Summary(pl.UTF-8): Klient GlusterFS
169 Group: Applications/System
170 Requires: %{name}-common = %{version}-%{release}
171 Requires: libfuse >= 2.6
174 This package provides the FUSE based GlusterFS client.
176 %description client -l pl.UTF-8
177 Ten pakiet udostępnia opartego na FUSE klienta GlusterFS-a.
179 %package resource-agents
180 Summary: OCF Resource Agents for GlusterFS processes
181 Summary(pl.UTF-8): Agenci OCF do monitorowania procesów GlusterFS-a
182 Group: Applications/System
183 Requires: %{name}-server = %{version}-%{release}
184 Requires: resource-agents
186 %description resource-agents
187 OCF Resource Agents for GlusterFS processes.
189 %description resource-agents -l pl.UTF-8
190 Agenci OCF do monitorowania procesów GlusterFS-a.
204 #%{__python} gen-headers.py
205 #%{__mv} gf-error-codes.h libglusterfs/src
207 --disable-silent-rules \
208 --enable-fusermount \
209 %{!?with_ibverbs:--disable-ibverbs} \
210 --enable-systemtap%{!?with_systemtap:=no} \
211 --with-initdir=/etc/rc.d/init.d
216 rm -rf $RPM_BUILD_ROOT
217 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_var}/lib/glusterd}
219 %{__make} -j1 install \
220 DESTDIR=$RPM_BUILD_ROOT
222 # No idea why installs elsewhere than later expects to be
223 mv $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterd.vol $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/glusterfsd.vol
225 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/glusterfsd
226 install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
227 cat >>$RPM_BUILD_ROOT%{systemdtmpfilesdir}/gluster.conf <<EOF
228 d /var/run/gluster 0755 root root -
231 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*.la
232 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*.la
233 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*/*.la
235 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
236 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/python/syncdaemon/README.md
241 rm -rf $RPM_BUILD_ROOT
243 %post libs -p /sbin/ldconfig
244 %postun libs -p /sbin/ldconfig
247 %defattr(644,root,root,755)
248 %doc ChangeLog NEWS README THANKS
249 %dir %{_sysconfdir}/%{name}
250 %attr(755,root,root) %{_sbindir}/glfsheal
251 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
252 %attr(755,root,root) %{_sbindir}/glusterfs
253 %attr(755,root,root) %{_sbindir}/glusterfsd
255 %dir %{_libdir}/glusterfs
257 %dir %{_libdir}/glusterfs/%{version}
258 %dir %{_libdir}/glusterfs/%{version}/auth
259 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/addr.so
260 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
262 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
263 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
265 %dir %{_libdir}/glusterfs/%{version}/xlator
266 %dir %{_libdir}/glusterfs/%{version}/xlator/cluster
267 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/cluster/*.so
268 %dir %{_libdir}/glusterfs/%{version}/xlator/debug
269 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/debug/*.so
270 %dir %{_libdir}/glusterfs/%{version}/xlator/encryption
271 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/encryption/*.so*
272 %dir %{_libdir}/glusterfs/%{version}/xlator/features
273 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/*.so*
274 %dir %{_libdir}/glusterfs/%{version}/xlator/features/glupy
275 %{_libdir}/glusterfs/%{version}/xlator/features/glupy/*.py*
276 %dir %{_libdir}/glusterfs/%{version}/xlator/mgmt
277 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mgmt/glusterd.so
278 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
279 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
280 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
281 %dir %{_libdir}/glusterfs/%{version}/xlator/nfs
282 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
283 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
284 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so*
285 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
286 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/*.so
287 %dir %{_libdir}/glusterfs/%{version}/xlator/storage
288 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/storage/*.so
289 %dir %{_libdir}/glusterfs/%{version}/xlator/system
290 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/system/posix-acl.so
291 %dir %{_libdir}/glusterfs/%{version}/xlator/testing
292 %dir %{_libdir}/glusterfs/%{version}/xlator/testing/features
293 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/testing/features/*.so
294 %dir %{_libdir}/glusterfs/%{version}/xlator/testing/performance
295 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/testing/performance/*.so
297 %attr(755,root,root) %{_libdir}/glusterfs/gsyncd
298 %attr(755,root,root) %{_libdir}/glusterfs/gverify.sh
299 %attr(755,root,root) %{_libdir}/glusterfs/peer_add_secret_pub
300 %attr(755,root,root) %{_libdir}/glusterfs/peer_gsec_create
302 %dir %{_libdir}/glusterfs/python
303 %dir %{_libdir}/glusterfs/python/syncdaemon
304 # gsyncd.py is a script, the rest probably don't require *.py
305 %{_libdir}/glusterfs/python/syncdaemon/*.py*
307 %dir %{_datadir}/glusterfs
308 %dir %{_datadir}/glusterfs/scripts
309 %attr(755,root,root) %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
310 %attr(755,root,root) %{_datadir}/glusterfs/scripts/get-gfid.sh
311 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-sync-gfid
312 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
313 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
314 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
315 %attr(755,root,root) %{_datadir}/glusterfs/scripts/slave-upgrade.sh
317 %{_mandir}/man8/glusterfs.8*
318 %{_mandir}/man8/glusterfsd.8*
319 %dir %{_var}/log/glusterfs
322 %defattr(644,root,root,755)
323 %attr(755,root,root) %{_libdir}/libgfapi.so.*.*.*
324 %attr(755,root,root) %ghost %{_libdir}/libgfapi.so.0
325 %attr(755,root,root) %{_libdir}/libgfchangelog.so.*.*.*
326 %attr(755,root,root) %ghost %{_libdir}/libgfchangelog.so.0
327 %attr(755,root,root) %{_libdir}/libgfrpc.so.*.*.*
328 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
329 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
330 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
331 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
332 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
335 %defattr(644,root,root,755)
336 %attr(755,root,root) %{_libdir}/libgfapi.so
337 %attr(755,root,root) %{_libdir}/libgfchangelog.so
338 %attr(755,root,root) %{_libdir}/libgfrpc.so
339 %attr(755,root,root) %{_libdir}/libgfxdr.so
340 %attr(755,root,root) %{_libdir}/libglusterfs.so
341 %{_libdir}/libgfapi.la
342 %{_libdir}/libgfchangelog.la
343 %{_libdir}/libgfrpc.la
344 %{_libdir}/libgfxdr.la
345 %{_libdir}/libglusterfs.la
346 %dir %{_includedir}/glusterfs
347 %{_includedir}/glusterfs/api
348 %{_includedir}/glusterfs/gfchangelog
349 %{_pkgconfigdir}/glusterfs-api.pc
350 %{_pkgconfigdir}/libgfchangelog.pc
352 %files -n python-gluster
353 %defattr(644,root,root,755)
354 %dir %{py_sitescriptdir}/gluster
355 %{py_sitescriptdir}/gluster/*.py[co]
358 %files transport-ibverbs
359 %defattr(644,root,root,755)
360 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/rdma.so
364 %defattr(644,root,root,755)
365 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
366 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
367 %attr(755,root,root) %{_sbindir}/glusterd
368 %{systemdtmpfilesdir}/gluster.conf
369 %{_mandir}/man8/glusterd.8*
370 %dir %{_var}/lib/glusterd
371 %dir %{_var}/run/gluster
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_bindir}/fusermount-glusterfs
376 %attr(755,root,root) /sbin/mount.glusterfs
377 %attr(755,root,root) %{_sbindir}/gluster
378 %{_mandir}/man8/gluster.8*
379 %{_mandir}/man8/mount.glusterfs.8*
381 %files resource-agents
382 %defattr(644,root,root,755)
383 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
384 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
385 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume