]> TLD Linux GIT Repositories - packages/glusterfs.git/blob - glusterfs.spec
- from PLD
[packages/glusterfs.git] / glusterfs.spec
1 # TODO:
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
9 #
10 # Conditional build:
11 %bcond_without  ibverbs         # ib-verbs transport
12 %bcond_without  systemtap       # systemtap/dtrace support
13 #
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
16 Name:           glusterfs
17 Version:        3.5.3
18 Release:        2
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
30 BuildRequires:  bison
31 BuildRequires:  device-mapper-devel >= 2.02.79
32 BuildRequires:  flex
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)
48
49 %description
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.
57
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.
66
67 %package common
68 Summary:        GlusterFS common files including Translators
69 Summary(pl.UTF-8):      Wspólne pliki GlusterFS-a, w tym translatory
70 Group:          Libraries
71 Requires:       libxml2 >= 1:2.6.19
72 Requires:       zlib >= 1.2.0
73
74 %description common
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.
82
83 This package includes libglusterfs and glusterfs translator modules
84 common to both GlusterFS server and client framework.
85
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.
94
95 Ten pakiet zawiera libglusterfs i moduły translatorów glusterfs
96 wspólne dla klienta jak i serwera GlusterFS-a.
97
98 %package libs
99 Summary:        GlusterFS libraries
100 Summary(pl.UTF-8):      Biblioteki GlusterFS-a
101 Group:          Libraries
102 Conflicts:      glusterfs-common < 3.4.0
103
104 %description libs
105 GlusterFS libraries.
106
107 %description libs -l pl.UTF-8
108 Biblioteki GlusterFS-a.
109
110 %package devel
111 Summary:        GlusterFS development files
112 Summary(pl.UTF-8):      Pliki programistyczne GlusterFS-a
113 Group:          Development/Libraries
114 Requires:       %{name}-libs = %{version}-%{release}
115 # -lfl
116 Requires:       flex
117 Requires:       openssl-devel
118 Obsoletes:      glusterfs-static
119
120 %description devel
121 This package provides the development files for GlusterFS library.
122
123 %description devel -l pl.UTF-8
124 Ten pakiet udostępnia pliki programistyczne biblioteki GlusterFS-a.
125
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}
131
132 %description -n python-gluster
133 Python interface to GlusterFS libraries.
134
135 %description -n python-gluster -l pl.UTF-8
136 Interfejs Pythona do bibliotek GlusterFS.
137
138 %package transport-ibverbs
139 Summary:        InfiniBand "verbs" transport plugins for GlusterFS
140 Summary(pl.UTF-8):      Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a
141 Group:          Libraries
142 Requires:       %{name}-common = %{version}-%{release}
143 Requires:       libibverbs >= 1.0.4
144
145 %description transport-ibverbs
146 InfiniBand "verbs" transport plugins for GlusterFS.
147
148 %description transport-ibverbs -l pl.UTF-8
149 Wtyczki transportu "verbs" InfiniBand dla GlusterFS-a.
150
151 %package server
152 Summary:        GlusterFS Server
153 Summary(pl.UTF-8):      Serwer GlusterFS-a
154 Group:          Daemons
155 Requires:       %{name}-client = %{version}-%{release}
156 Requires:       %{name}-common = %{version}-%{release}
157 Requires(post,preun):   /sbin/chkconfig
158 Requires:       rc-scripts
159
160 %description server
161 This package provides the glusterfs server daemon.
162
163 %description server -l pl.UTF-8
164 Ten pakiet zawiera część serwerową GlusterFS-a.
165
166 %package client
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
172
173 %description client
174 This package provides the FUSE based GlusterFS client.
175
176 %description client -l pl.UTF-8
177 Ten pakiet udostępnia opartego na FUSE klienta GlusterFS-a.
178
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
185
186 %description resource-agents
187 OCF Resource Agents for GlusterFS processes.
188
189 %description resource-agents -l pl.UTF-8
190 Agenci OCF do monitorowania procesów GlusterFS-a.
191
192 %prep
193 %setup -q
194 %patch0 -p1
195 %patch1 -p1
196 %patch2 -p1
197
198 %build
199 %{__libtoolize}
200 %{__aclocal}
201 %{__autoconf}
202 %{__autoheader}
203 %{__automake}
204 #%{__python} gen-headers.py
205 #%{__mv} gf-error-codes.h libglusterfs/src
206 %configure \
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
212
213 %{__make} -j1
214
215 %install
216 rm -rf $RPM_BUILD_ROOT
217 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_var}/lib/glusterd}
218
219 %{__make} -j1 install \
220         DESTDIR=$RPM_BUILD_ROOT
221
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
224
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 -
229 EOF
230
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
234
235 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
236 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/python/syncdaemon/README.md
237
238 %py_postclean
239
240 %clean
241 rm -rf $RPM_BUILD_ROOT
242
243 %post   libs    -p /sbin/ldconfig
244 %postun libs    -p /sbin/ldconfig
245
246 %files common
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
254
255 %dir %{_libdir}/glusterfs
256
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
261
262 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
263 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
264
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
296
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
301
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*
306
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
316
317 %{_mandir}/man8/glusterfs.8*
318 %{_mandir}/man8/glusterfsd.8*
319 %dir %{_var}/log/glusterfs
320
321 %files libs
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
333
334 %files devel
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
351
352 %files -n python-gluster
353 %defattr(644,root,root,755)
354 %dir %{py_sitescriptdir}/gluster
355 %{py_sitescriptdir}/gluster/*.py[co]
356
357 %if %{with ibverbs}
358 %files transport-ibverbs
359 %defattr(644,root,root,755)
360 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/rdma.so
361 %endif
362
363 %files server
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
372
373 %files client
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*
380
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