]> TLD Linux GIT Repositories - packages/glusterfs.git/blob - glusterfs.spec
- drop systemd leftovers
[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
227 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*.la
228 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*.la
229 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/%{version}/*/*/*/*.la
230
231 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/glusterfs/benchmarking
232 %{__rm} $RPM_BUILD_ROOT%{_libdir}/glusterfs/python/syncdaemon/README.md
233
234 %py_postclean
235
236 %clean
237 rm -rf $RPM_BUILD_ROOT
238
239 %post   libs    -p /sbin/ldconfig
240 %postun libs    -p /sbin/ldconfig
241
242 %files common
243 %defattr(644,root,root,755)
244 %doc ChangeLog NEWS README THANKS
245 %dir %{_sysconfdir}/%{name}
246 %attr(755,root,root) %{_sbindir}/glfsheal
247 # NOTE: glusterfs is link to glusterfsd and is needed by client mount
248 %attr(755,root,root) %{_sbindir}/glusterfs
249 %attr(755,root,root) %{_sbindir}/glusterfsd
250
251 %dir %{_libdir}/glusterfs
252
253 %dir %{_libdir}/glusterfs/%{version}
254 %dir %{_libdir}/glusterfs/%{version}/auth
255 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/addr.so
256 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/auth/login.so
257
258 %dir %{_libdir}/glusterfs/%{version}/rpc-transport
259 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/socket.so
260
261 %dir %{_libdir}/glusterfs/%{version}/xlator
262 %dir %{_libdir}/glusterfs/%{version}/xlator/cluster
263 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/cluster/*.so
264 %dir %{_libdir}/glusterfs/%{version}/xlator/debug
265 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/debug/*.so
266 %dir %{_libdir}/glusterfs/%{version}/xlator/encryption
267 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/encryption/*.so*
268 %dir %{_libdir}/glusterfs/%{version}/xlator/features
269 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/features/*.so*
270 %dir %{_libdir}/glusterfs/%{version}/xlator/features/glupy
271 %{_libdir}/glusterfs/%{version}/xlator/features/glupy/*.py*
272 %dir %{_libdir}/glusterfs/%{version}/xlator/mgmt
273 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mgmt/glusterd.so
274 %dir %{_libdir}/glusterfs/%{version}/xlator/mount
275 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/api.so
276 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/mount/fuse.so
277 %dir %{_libdir}/glusterfs/%{version}/xlator/nfs
278 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/nfs/server.so
279 %dir %{_libdir}/glusterfs/%{version}/xlator/performance
280 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/performance/*.so*
281 %dir %{_libdir}/glusterfs/%{version}/xlator/protocol
282 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/protocol/*.so
283 %dir %{_libdir}/glusterfs/%{version}/xlator/storage
284 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/storage/*.so
285 %dir %{_libdir}/glusterfs/%{version}/xlator/system
286 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/system/posix-acl.so
287 %dir %{_libdir}/glusterfs/%{version}/xlator/testing
288 %dir %{_libdir}/glusterfs/%{version}/xlator/testing/features
289 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/testing/features/*.so
290 %dir %{_libdir}/glusterfs/%{version}/xlator/testing/performance
291 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/xlator/testing/performance/*.so
292
293 %attr(755,root,root) %{_libdir}/glusterfs/gsyncd
294 %attr(755,root,root) %{_libdir}/glusterfs/gverify.sh
295 %attr(755,root,root) %{_libdir}/glusterfs/peer_add_secret_pub
296 %attr(755,root,root) %{_libdir}/glusterfs/peer_gsec_create
297
298 %dir %{_libdir}/glusterfs/python
299 %dir %{_libdir}/glusterfs/python/syncdaemon
300 # gsyncd.py is a script, the rest probably don't require *.py
301 %{_libdir}/glusterfs/python/syncdaemon/*.py*
302
303 %dir %{_datadir}/glusterfs
304 %dir %{_datadir}/glusterfs/scripts
305 %attr(755,root,root) %{_datadir}/glusterfs/scripts/generate-gfid-file.sh
306 %attr(755,root,root) %{_datadir}/glusterfs/scripts/get-gfid.sh
307 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-sync-gfid
308 %attr(755,root,root) %{_datadir}/glusterfs/scripts/gsync-upgrade.sh
309 %attr(755,root,root) %{_datadir}/glusterfs/scripts/post-upgrade-script-for-quota.sh
310 %attr(755,root,root) %{_datadir}/glusterfs/scripts/pre-upgrade-script-for-quota.sh
311 %attr(755,root,root) %{_datadir}/glusterfs/scripts/slave-upgrade.sh
312
313 %{_mandir}/man8/glusterfs.8*
314 %{_mandir}/man8/glusterfsd.8*
315 %dir %{_var}/log/glusterfs
316
317 %files libs
318 %defattr(644,root,root,755)
319 %attr(755,root,root) %{_libdir}/libgfapi.so.*.*.*
320 %attr(755,root,root) %ghost %{_libdir}/libgfapi.so.0
321 %attr(755,root,root) %{_libdir}/libgfchangelog.so.*.*.*
322 %attr(755,root,root) %ghost %{_libdir}/libgfchangelog.so.0
323 %attr(755,root,root) %{_libdir}/libgfrpc.so.*.*.*
324 %attr(755,root,root) %ghost %{_libdir}/libgfrpc.so.0
325 %attr(755,root,root) %{_libdir}/libgfxdr.so.*.*.*
326 %attr(755,root,root) %ghost %{_libdir}/libgfxdr.so.0
327 %attr(755,root,root) %{_libdir}/libglusterfs.so.*.*.*
328 %attr(755,root,root) %ghost %{_libdir}/libglusterfs.so.0
329
330 %files devel
331 %defattr(644,root,root,755)
332 %attr(755,root,root) %{_libdir}/libgfapi.so
333 %attr(755,root,root) %{_libdir}/libgfchangelog.so
334 %attr(755,root,root) %{_libdir}/libgfrpc.so
335 %attr(755,root,root) %{_libdir}/libgfxdr.so
336 %attr(755,root,root) %{_libdir}/libglusterfs.so
337 %{_libdir}/libgfapi.la
338 %{_libdir}/libgfchangelog.la
339 %{_libdir}/libgfrpc.la
340 %{_libdir}/libgfxdr.la
341 %{_libdir}/libglusterfs.la
342 %dir %{_includedir}/glusterfs
343 %{_includedir}/glusterfs/api
344 %{_includedir}/glusterfs/gfchangelog
345 %{_pkgconfigdir}/glusterfs-api.pc
346 %{_pkgconfigdir}/libgfchangelog.pc
347
348 %files -n python-gluster
349 %defattr(644,root,root,755)
350 %dir %{py_sitescriptdir}/gluster
351 %{py_sitescriptdir}/gluster/*.py[co]
352
353 %if %{with ibverbs}
354 %files transport-ibverbs
355 %defattr(644,root,root,755)
356 %attr(755,root,root) %{_libdir}/glusterfs/%{version}/rpc-transport/rdma.so
357 %endif
358
359 %files server
360 %defattr(644,root,root,755)
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/glusterfsd.vol
362 %attr(754,root,root) /etc/rc.d/init.d/glusterfsd
363 %attr(755,root,root) %{_sbindir}/glusterd
364 %{_mandir}/man8/glusterd.8*
365 %dir %{_var}/lib/glusterd
366 %dir %{_var}/run/gluster
367
368 %files client
369 %defattr(644,root,root,755)
370 %attr(755,root,root) %{_bindir}/fusermount-glusterfs
371 %attr(755,root,root) /sbin/mount.glusterfs
372 %attr(755,root,root) %{_sbindir}/gluster
373 %{_mandir}/man8/gluster.8*
374 %{_mandir}/man8/mount.glusterfs.8*
375
376 %files resource-agents
377 %defattr(644,root,root,755)
378 %dir %{_prefix}/lib/ocf/resource.d/glusterfs
379 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/glusterd
380 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/glusterfs/volume