]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | # Contributor: John Coyle <dx9err@gmail.com> |
2 | # Maintainer: John Coyle <dx9err@gmail.com> | |
3 | pkgname=ceph | |
ded94939 | 4 | pkgver=14.2.6 |
7c673cae FG |
5 | pkgrel=0 |
6 | pkgdesc="Ceph is a distributed object store and file system" | |
7 | pkgusers="ceph" | |
8 | pkggroups="ceph" | |
9 | url="http://ceph.com" | |
10 | arch="x86_64" | |
11 | license="LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and \ | |
12 | GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT" | |
13 | depends="ceph-osd ceph-mds ceph-mgr ceph-mon" | |
14 | # grep --quiet option required | |
15 | # diffutils -y option required by osd-scrub-snaps.sh | |
16 | # util-linux uuidgen required | |
17 | makedepends=" | |
18 | acl-dev | |
19 | argp-standalone | |
20 | bc | |
21 | boost-dev | |
22 | btrfs-progs | |
23 | bzip2-dev | |
24 | cmake | |
25 | coreutils | |
26 | cryptsetup | |
27 | curl-dev | |
28 | cython-dev | |
29 | diffutils | |
30 | eudev-dev | |
31 | expat-dev | |
32 | fcgi-dev | |
33 | flex | |
34 | fuse-dev | |
35 | git | |
36 | grep | |
37 | jq | |
38 | keyutils-dev | |
39 | leveldb-dev | |
40 | libaio-dev | |
7c673cae FG |
41 | libedit-dev |
42 | libressl-dev | |
43 | libtirpc-dev | |
44 | libtool | |
45 | libxml2-dev | |
46 | linux-headers | |
47 | lvm2-dev | |
48 | nss-dev | |
49 | openldap-dev | |
11fdf7f2 | 50 | krb5-dev |
7c673cae FG |
51 | parted |
52 | procps | |
53 | python-dev | |
54 | py-pip | |
55 | py-nose | |
56 | py-sphinx | |
57 | py-virtualenv | |
58 | readline-dev | |
59 | rpcgen | |
60 | snappy-dev | |
61 | userspace-rcu-dev | |
62 | util-linux | |
63 | xfsprogs-dev | |
64 | xmlstarlet | |
65 | yasm | |
66 | " | |
ded94939 | 67 | source="ceph-14.2.6.tar.bz2" |
7c673cae FG |
68 | subpackages=" |
69 | $pkgname-base | |
70 | $pkgname-common | |
71 | $pkgname-mds | |
72 | $pkgname-mgr | |
73 | $pkgname-mon | |
74 | $pkgname-fuse:ceph_fuse | |
75 | $pkgname-radosgw | |
76 | $pkgname-osd | |
77 | $pkgname-doc | |
78 | $pkgname-bash-completion:bash_completion | |
79 | rbd-fuse:rbd_fuse | |
80 | rbd-mirror:rbd_mirror | |
81 | rbd-nbd:rbd_nbd | |
82 | librbd | |
83 | librbd-dev:librbd_dev | |
84 | libcephfs | |
85 | libcephfs-dev:libcephfs_dev | |
86 | librados | |
87 | librados-dev:librados_dev | |
88 | librgw | |
89 | librgw-dev:librgw_dev | |
90 | py-rados:py_rados | |
91 | py-rgw:py_rgw | |
92 | libradosstriper | |
93 | libradosstriper-dev:libradosstriper_dev | |
94 | py-rbd:py_rbd | |
95 | py-cephfs:py_cephfs | |
96 | " | |
97 | ||
98 | if [ -n "$CEPH_TEST_PKG" ]; then | |
99 | subpackages="$subpackages $pkgname-test:ceph_test" | |
100 | fi | |
101 | ||
102 | _ceph_uid=167 | |
103 | _ceph_gid=167 | |
104 | ||
105 | _prefix=/usr | |
106 | _bindir=$_prefix/bin | |
107 | _datadir=$_prefix/share | |
108 | _docdir=$_datadir/doc | |
109 | _includedir=$_prefix/include | |
110 | _libdir=$_prefix/lib | |
111 | _libexecdir=$_prefix/libexec | |
112 | _localstatedir=/var | |
113 | _mandir=$_datadir/man | |
114 | _sbindir=/usr/sbin | |
115 | _sysconfdir=/etc | |
116 | ||
117 | _udevrulesdir=/etc/udev/rules.d | |
118 | _python_sitelib=/usr/lib/python2.7/site-packages | |
119 | ||
ded94939 | 120 | builddir=$srcdir/ceph-14.2.6 |
7c673cae FG |
121 | |
122 | build() { | |
123 | export CEPH_BUILD_VIRTUALENV=$builddir | |
124 | ||
125 | mkdir -p $builddir/build | |
126 | cd $builddir/build | |
127 | ||
128 | if [ -n "$MAKE_CHECK" ] || [ -n "$CEPH_TEST_PKG" ]; then | |
129 | local _with_tests=ON | |
130 | fi | |
131 | ||
132 | cmake .. \ | |
133 | -DCMAKE_INSTALL_PREFIX=$_prefix \ | |
134 | -DCMAKE_INSTALL_LIBDIR=$_libdir \ | |
135 | -DCMAKE_INSTALL_LIBEXECDIR=$_libexecdir \ | |
136 | -DCMAKE_INSTALL_LOCALSTATEDIR=$_localstatedir \ | |
137 | -DCMAKE_INSTALL_SYSCONFDIR=$_sysconfdir \ | |
138 | -DCMAKE_INSTALL_DOCDIR=$_docdir/ceph \ | |
139 | -DCMAKE_INSTALL_MANDIR=$_mandir \ | |
140 | -DWITH_REENTRANT_STRSIGNAL=ON \ | |
141 | -DWITH_THREAD_SAFE_RES_QUERY=ON \ | |
142 | -DWITH_MANPAGE=ON \ | |
143 | -DWITH_PYTHON3=OFF \ | |
144 | -DWITH_LTTNG=OFF \ | |
145 | -DWITH_SYSTEM_BOOST=ON \ | |
7c673cae FG |
146 | -DWITH_TESTS=${_with_tests:-OFF} \ |
147 | || return 1 | |
148 | make -j${JOBS:-2} || return 1 | |
149 | ||
150 | if [ -n "$MAKE_CHECK" ]; then | |
151 | ctest -j${JOBS:-2} | |
152 | fi | |
153 | } | |
154 | ||
155 | package() { | |
156 | cd $builddir/build | |
157 | make DESTDIR=$pkgdir install || return 1 | |
158 | cd .. | |
159 | ||
160 | rm -f $pkgdir$_sysconfdir/init.d/ceph | |
161 | ||
162 | install -m 0644 -D src/etc-rbdmap $pkgdir$_sysconfdir/ceph/rbdmap \ | |
163 | || return 1 | |
164 | ||
165 | install -m 0644 -D src/logrotate.conf $pkgdir$_sysconfdir/logrotate.d/ceph \ | |
166 | || return 1 | |
167 | ||
168 | chmod 0644 $pkgdir$_docdir/ceph/sample.ceph.conf || return 1 | |
7c673cae FG |
169 | |
170 | # udev rules | |
171 | install -m 0644 -D udev/50-rbd.rules $pkgdir$_udevrulesdir/50-rbd.rules || return 1 | |
7c673cae FG |
172 | } |
173 | ||
174 | base() { | |
175 | pkgdesc="Base is the package that includes all the files shared amongst ceph servers" | |
176 | depends=" | |
177 | ceph-common | |
178 | cryptsetup | |
179 | librbd | |
180 | librados | |
181 | libcephfs | |
182 | librgw | |
183 | logrotate | |
184 | py-requests | |
185 | py-setuptools | |
186 | util-linux | |
187 | xfsprogs | |
188 | " | |
189 | ||
11fdf7f2 | 190 | _pkg $_bindir crushtool monmaptool osdmaptool ceph-run |
7c673cae FG |
191 | _pkg $_sbindir ceph-create-keys mount.ceph |
192 | _pkg $_libexecdir/ceph ceph_common.sh | |
193 | _pkg $_libdir/rados-classes *.so* | |
194 | _pkg $_libdir/ceph/erasure-code libec_*.so* | |
195 | _pkg $_libdir/ceph/compressor libceph_*.so* | |
196 | _pkg $_sysconfdir/logrotate.d ceph | |
7c673cae FG |
197 | for dir in tmp bootstrap-osd bootstrap-mds bootstrap-rgw; do |
198 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
199 | $subpkgdir$_localstatedir/lib/ceph/$dir || return 1 | |
200 | done | |
201 | } | |
202 | ||
203 | common() { | |
204 | pkgdesc="Common utilities to mount and interact with a ceph storage cluster." | |
205 | depends="py-rados py-rbd py-cephfs" | |
206 | install="$pkgname-common.pre-install" | |
207 | ||
208 | _pkg $_bindir ceph \ | |
209 | ceph-authtool \ | |
210 | ceph-conf \ | |
211 | ceph-dencoder \ | |
212 | ceph-rbdnamer \ | |
213 | ceph-syn \ | |
7c673cae FG |
214 | cephfs-data-scan \ |
215 | cephfs-journal-tool \ | |
216 | cephfs-table-tool \ | |
217 | rados \ | |
218 | rbd \ | |
219 | rbd-replay \ | |
220 | rbd-replay-many \ | |
221 | rbdmap \ | |
222 | ceph-post-file \ | |
223 | ceph-brag | |
224 | _pkg $_datadir/ceph known_hosts_drop.ceph.com id_rsa_drop.ceph.com \ | |
225 | id_rsa_drop.ceph.com.pub | |
226 | _pkg $_sysconfdir/ceph rbdmap | |
227 | _pkg $_python_sitelib ceph_argparse.py* ceph_daemon.py* | |
228 | _pkg $_udevrulesdir 50-rbd.rules | |
229 | install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \ | |
230 | $subpkgdir$_localstatedir/log/ceph || return 1 | |
231 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
232 | $subpkgdir$_localstatedir/lib/ceph | |
233 | } | |
234 | ||
235 | mds() { | |
236 | pkgdesc="Metadata server daemon for the Ceph distributed file system." | |
237 | depends="ceph-base" | |
238 | ||
239 | _pkg $_bindir ceph-mds | |
240 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
241 | $subpkgdir$_localstatedir/lib/ceph/mds | |
242 | } | |
243 | ||
244 | mon() { | |
245 | pkgdesc="Cluster monitor daemon for the Ceph distributed file system." | |
246 | depends="ceph-base" | |
247 | ||
248 | _pkg $_bindir ceph-mon ceph-rest-api | |
249 | _pkg $_python_sitelib ceph_rest_api.py* | |
250 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
251 | $subpkgdir$_localstatedir/lib/ceph/mon | |
252 | } | |
253 | ||
254 | ceph_fuse() { | |
255 | pkgdesc="FUSE based client for Ceph distributed network file system." | |
256 | ||
257 | _pkg $_bindir ceph-fuse | |
258 | _pkg $_sbindir mount.fuse.ceph | |
259 | } | |
260 | ||
261 | rbd_fuse() { | |
262 | pkgdesc="FUSE based client to map Ceph rbd images to files." | |
263 | depends="librados librbd" | |
264 | ||
265 | _pkg $_bindir rbd-fuse | |
266 | } | |
267 | ||
268 | rbd_mirror() { | |
269 | pkgdesc="Daemon for mirroring RBD images between Ceph clusters." | |
270 | depends="ceph-common librados" | |
271 | ||
272 | _pkg $_bindir rbd-mirror | |
273 | } | |
274 | ||
275 | rbd_nbd() { | |
276 | pkgdesc="NBD based client to map Ceph rbd images to local device." | |
277 | depends="librbd librados" | |
278 | ||
279 | _pkg $_bindir rbd-nbd | |
280 | } | |
281 | ||
282 | radosgw() { | |
283 | pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs." | |
284 | depends="ceph-common" | |
285 | ||
31f18b77 | 286 | _pkg $_bindir radosgw radosgw-admin radosgw-token radosgw-es radosgw-object-expirer |
7c673cae FG |
287 | mkdir -p $subpkgdir$_localstatedir/lib/ceph/radosgw |
288 | } | |
289 | ||
290 | osd() { | |
291 | pkgdesc="Object storage daemon for the Ceph distributed file system." | |
292 | depends="ceph-base parted gptfdisk" | |
293 | ||
294 | _pkg $_bindir ceph-clsinfo ceph-bluefs-tool ceph-objectstore-tool ceph-osd | |
11fdf7f2 | 295 | _pkg $_sbindir ceph-volume |
7c673cae | 296 | _pkg $_libexecdir/ceph ceph-osd-prestart.sh |
7c673cae FG |
297 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ |
298 | $subpkgdir$_localstatedir/lib/ceph/osd | |
299 | } | |
300 | ||
301 | librados() { | |
302 | pkgdesc="RADOS distributed object store client library" | |
303 | ||
304 | _pkg $_libdir librados.so.* | |
305 | } | |
306 | ||
307 | librados_dev() { | |
308 | pkgdesc="RADOS distributed object store client library headers" | |
309 | depends="librados" | |
310 | ||
311 | _pkg $_includedir/rados librados.h \ | |
312 | librados.hpp \ | |
313 | buffer.h \ | |
314 | buffer_fwd.h \ | |
315 | inline_memory.h \ | |
316 | page.h \ | |
317 | crc32c.h \ | |
318 | rados_types.h \ | |
11fdf7f2 | 319 | rados_types.hpp |
7c673cae FG |
320 | _pkg $_libdir librados.so |
321 | _pkg $_bindir librados-config | |
322 | } | |
323 | ||
324 | librgw() { | |
325 | pkgdesc="RADOS gateway client library" | |
326 | depends="librados" | |
327 | ||
328 | _pkg $_libdir librgw.so.* | |
329 | } | |
330 | ||
331 | librgw_dev() { | |
332 | pkgdesc="RADOS gateway client library headers" | |
333 | depends="librados" | |
334 | ||
335 | _pkg $_includedir/rados librgw.h rgw_file.h | |
336 | _pkg $_libdir librgw.so | |
337 | } | |
338 | ||
339 | py_rgw() { | |
340 | pkgdesc="Python 2 libraries for the RADOS gateway" | |
341 | depends="librgw py-rados" | |
342 | ||
343 | _pkg $_python_sitelib rgw.so rgw-*.egg-info | |
344 | } | |
345 | ||
346 | py_rados() { | |
347 | pkgdesc="Python libraries for the RADOS object store" | |
348 | depends="librados" | |
349 | ||
350 | _pkg $_python_sitelib rados.so rados-*.egg-info | |
351 | } | |
352 | ||
353 | libradosstriper() { | |
354 | pkgdesc="RADOS striping library" | |
355 | depends="librados" | |
356 | ||
357 | _pkg $_libdir libradosstriper.so.* | |
358 | } | |
359 | ||
360 | libradosstriper_dev() { | |
361 | pkgdesc="RADOS striping library headers" | |
362 | depends="libradosstriper librados-dev" | |
363 | ||
364 | _pkg $_includedir/radosstriper libradosstriper.h libradosstriper.hpp | |
365 | _pkg $_libdir libradosstriper.so | |
366 | } | |
367 | ||
368 | librbd() { | |
369 | pkgdesc="RADOS block device client library" | |
370 | depends="librados" | |
371 | ||
372 | _pkg $_libdir librbd.so.* | |
373 | } | |
374 | ||
375 | librbd_dev() { | |
376 | pkgdesc="RADOS block device client library headers" | |
377 | depends="librbd librados-dev" | |
378 | ||
379 | _pkg $_includedir/rbd features.h librbd.h librbd.hpp | |
380 | _pkg $_libdir librbd.so | |
381 | } | |
382 | ||
383 | py_rbd() { | |
384 | pkgdesc="Python libraries for the RADOS block device" | |
385 | depends="librbd py-rados" | |
386 | ||
387 | _pkg $_python_sitelib rbd.so rbd-*.egg-info | |
388 | } | |
389 | ||
390 | libcephfs() { | |
391 | pkgdesc="Ceph distributed file system client library" | |
392 | ||
393 | _pkg $_libdir libcephfs.so.* | |
394 | } | |
395 | ||
396 | libcephfs_dev() { | |
397 | pkgdesc="Ceph distributed file system client library headers" | |
398 | depends="libcephfs librados-devel" | |
399 | ||
400 | _pkg $_includedir/cephfs ceph_statx.h libcephfs.h | |
401 | _pkg $_libdir libcephfs.so | |
402 | } | |
403 | ||
404 | py_cephfs() { | |
405 | pkgdesc="Python libraries for Ceph distributed file system" | |
406 | depends="libcephfs py-rados" | |
407 | ||
408 | _pkg $_python_sitelib cephfs.so cephfs-*.egg-info ceph_volume_client.py* | |
409 | } | |
410 | ||
411 | ceph_test() { | |
412 | pkgdesc="Ceph benchmarks and test tools" | |
413 | depends="ceph-common xmlstarlet" | |
414 | ||
415 | _pkg $_bindir ceph-client-debug \ | |
416 | ceph_bench_log \ | |
417 | ceph_kvstorebench \ | |
418 | ceph_multi_stress_watch \ | |
419 | ceph_erasure_code \ | |
420 | ceph_erasure_code_benchmark \ | |
421 | ceph_omapbench \ | |
422 | ceph_objectstore_bench \ | |
423 | ceph_perf_objectstore \ | |
424 | ceph_perf_local \ | |
425 | ceph_perf_msgr_client \ | |
426 | ceph_perf_msgr_server \ | |
427 | ceph_psim \ | |
428 | ceph_radosacl \ | |
429 | ceph_rgw_jsonparser \ | |
430 | ceph_rgw_multiparser \ | |
431 | ceph_scratchtool \ | |
432 | ceph_scratchtoolpp \ | |
7c673cae | 433 | ceph_test_* \ |
7c673cae FG |
434 | ceph-coverage \ |
435 | ceph-monstore-tool \ | |
436 | ceph-osdomap-tool \ | |
437 | ceph-kvstore-tool \ | |
11fdf7f2 TL |
438 | ceph-debugpack \ |
439 | cephdeduptool | |
7c673cae FG |
440 | |
441 | _pkg $_libdir ceph/ceph-monstore-update-crush.sh | |
442 | } | |
443 | ||
444 | bash_completion() { | |
445 | depends="bash-completion" | |
446 | pkgdesc="Bash completions for Ceph" | |
447 | _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd | |
448 | } | |
449 | ||
450 | mgr() { | |
451 | pkgdesc="Ceph Manager Daemon" | |
452 | depends="ceph-base" | |
453 | ||
454 | _pkg $_bindir ceph-mgr | |
455 | _pkg $_libdir/ceph mgr | |
456 | ||
457 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
458 | $subpkgdir$_localstatedir/lib/ceph/mgr | |
459 | } | |
460 | ||
461 | _pkg() { | |
462 | local path=$1 | |
463 | shift | |
464 | local files=$@ | |
465 | mkdir -p $subpkgdir$path || exit 1 | |
466 | for _file in $files; do | |
467 | mv $pkgdir$path/$_file $subpkgdir$path || exit 1 | |
468 | done | |
469 | } |