]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | # Contributor: John Coyle <dx9err@gmail.com> |
2 | # Maintainer: John Coyle <dx9err@gmail.com> | |
3 | pkgname=ceph | |
4 | pkgver=12.0.3 | |
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 | |
41 | libatomic_ops-dev | |
42 | libedit-dev | |
43 | libressl-dev | |
44 | libtirpc-dev | |
45 | libtool | |
46 | libxml2-dev | |
47 | linux-headers | |
48 | lvm2-dev | |
49 | nss-dev | |
50 | openldap-dev | |
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 | " | |
67 | source="ceph-12.0.3.tar.bz2" | |
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 | ||
120 | builddir=$srcdir/ceph-12.0.3 | |
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 \ | |
146 | -DWITH_EMBEDDED=OFF \ | |
147 | -DWITH_TESTS=${_with_tests:-OFF} \ | |
148 | || return 1 | |
149 | make -j${JOBS:-2} || return 1 | |
150 | ||
151 | if [ -n "$MAKE_CHECK" ]; then | |
152 | ctest -j${JOBS:-2} | |
153 | fi | |
154 | } | |
155 | ||
156 | package() { | |
157 | cd $builddir/build | |
158 | make DESTDIR=$pkgdir install || return 1 | |
159 | cd .. | |
160 | ||
161 | rm -f $pkgdir$_sysconfdir/init.d/ceph | |
162 | ||
163 | install -m 0644 -D src/etc-rbdmap $pkgdir$_sysconfdir/ceph/rbdmap \ | |
164 | || return 1 | |
165 | ||
166 | install -m 0644 -D src/logrotate.conf $pkgdir$_sysconfdir/logrotate.d/ceph \ | |
167 | || return 1 | |
168 | ||
169 | chmod 0644 $pkgdir$_docdir/ceph/sample.ceph.conf || return 1 | |
170 | chmod 0644 $pkgdir$_docdir/ceph/sample.fetch_config || return 1 | |
171 | ||
172 | # udev rules | |
173 | install -m 0644 -D udev/50-rbd.rules $pkgdir$_udevrulesdir/50-rbd.rules || return 1 | |
174 | install -m 0644 -D udev/60-ceph-by-parttypeuuid.rules \ | |
175 | $pkgdir$_udevrulesdir/60-ceph-by-parttypeuuid.rules || return 1 | |
176 | install -m 0644 -D udev/95-ceph-osd.rules \ | |
177 | $pkgdir$_udevrulesdir/95-ceph-osd.rules | |
178 | } | |
179 | ||
180 | base() { | |
181 | pkgdesc="Base is the package that includes all the files shared amongst ceph servers" | |
182 | depends=" | |
183 | ceph-common | |
184 | cryptsetup | |
185 | librbd | |
186 | librados | |
187 | libcephfs | |
188 | librgw | |
189 | logrotate | |
190 | py-requests | |
191 | py-setuptools | |
192 | util-linux | |
193 | xfsprogs | |
194 | " | |
195 | ||
196 | _pkg $_docdir/ceph sample.ceph.conf sample.fetch_config | |
197 | _pkg $_bindir crushtool monmaptool osdmaptool ceph-run ceph-detect-init | |
198 | _pkg $_sbindir ceph-create-keys mount.ceph | |
199 | _pkg $_libexecdir/ceph ceph_common.sh | |
200 | _pkg $_libdir/rados-classes *.so* | |
201 | _pkg $_libdir/ceph/erasure-code libec_*.so* | |
202 | _pkg $_libdir/ceph/compressor libceph_*.so* | |
203 | _pkg $_sysconfdir/logrotate.d ceph | |
204 | _pkg $_python_sitelib ceph_detect_init* ceph_disk* | |
205 | for dir in tmp bootstrap-osd bootstrap-mds bootstrap-rgw; do | |
206 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
207 | $subpkgdir$_localstatedir/lib/ceph/$dir || return 1 | |
208 | done | |
209 | } | |
210 | ||
211 | common() { | |
212 | pkgdesc="Common utilities to mount and interact with a ceph storage cluster." | |
213 | depends="py-rados py-rbd py-cephfs" | |
214 | install="$pkgname-common.pre-install" | |
215 | ||
216 | _pkg $_bindir ceph \ | |
217 | ceph-authtool \ | |
218 | ceph-conf \ | |
219 | ceph-dencoder \ | |
220 | ceph-rbdnamer \ | |
221 | ceph-syn \ | |
222 | ceph-crush-location \ | |
223 | cephfs-data-scan \ | |
224 | cephfs-journal-tool \ | |
225 | cephfs-table-tool \ | |
226 | rados \ | |
227 | rbd \ | |
228 | rbd-replay \ | |
229 | rbd-replay-many \ | |
230 | rbdmap \ | |
231 | ceph-post-file \ | |
232 | ceph-brag | |
233 | _pkg $_datadir/ceph known_hosts_drop.ceph.com id_rsa_drop.ceph.com \ | |
234 | id_rsa_drop.ceph.com.pub | |
235 | _pkg $_sysconfdir/ceph rbdmap | |
236 | _pkg $_python_sitelib ceph_argparse.py* ceph_daemon.py* | |
237 | _pkg $_udevrulesdir 50-rbd.rules | |
238 | install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \ | |
239 | $subpkgdir$_localstatedir/log/ceph || return 1 | |
240 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
241 | $subpkgdir$_localstatedir/lib/ceph | |
242 | } | |
243 | ||
244 | mds() { | |
245 | pkgdesc="Metadata server daemon for the Ceph distributed file system." | |
246 | depends="ceph-base" | |
247 | ||
248 | _pkg $_bindir ceph-mds | |
249 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
250 | $subpkgdir$_localstatedir/lib/ceph/mds | |
251 | } | |
252 | ||
253 | mon() { | |
254 | pkgdesc="Cluster monitor daemon for the Ceph distributed file system." | |
255 | depends="ceph-base" | |
256 | ||
257 | _pkg $_bindir ceph-mon ceph-rest-api | |
258 | _pkg $_python_sitelib ceph_rest_api.py* | |
259 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
260 | $subpkgdir$_localstatedir/lib/ceph/mon | |
261 | } | |
262 | ||
263 | ceph_fuse() { | |
264 | pkgdesc="FUSE based client for Ceph distributed network file system." | |
265 | ||
266 | _pkg $_bindir ceph-fuse | |
267 | _pkg $_sbindir mount.fuse.ceph | |
268 | } | |
269 | ||
270 | rbd_fuse() { | |
271 | pkgdesc="FUSE based client to map Ceph rbd images to files." | |
272 | depends="librados librbd" | |
273 | ||
274 | _pkg $_bindir rbd-fuse | |
275 | } | |
276 | ||
277 | rbd_mirror() { | |
278 | pkgdesc="Daemon for mirroring RBD images between Ceph clusters." | |
279 | depends="ceph-common librados" | |
280 | ||
281 | _pkg $_bindir rbd-mirror | |
282 | } | |
283 | ||
284 | rbd_nbd() { | |
285 | pkgdesc="NBD based client to map Ceph rbd images to local device." | |
286 | depends="librbd librados" | |
287 | ||
288 | _pkg $_bindir rbd-nbd | |
289 | } | |
290 | ||
291 | radosgw() { | |
292 | pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs." | |
293 | depends="ceph-common" | |
294 | ||
295 | _pkg $_bindir radosgw radosgw-admin radosgw-token radosgw-object-expirer | |
296 | mkdir -p $subpkgdir$_localstatedir/lib/ceph/radosgw | |
297 | } | |
298 | ||
299 | osd() { | |
300 | pkgdesc="Object storage daemon for the Ceph distributed file system." | |
301 | depends="ceph-base parted gptfdisk" | |
302 | ||
303 | _pkg $_bindir ceph-clsinfo ceph-bluefs-tool ceph-objectstore-tool ceph-osd | |
304 | _pkg $_sbindir ceph-disk ceph-disk-udev | |
305 | _pkg $_libexecdir/ceph ceph-osd-prestart.sh | |
306 | _pkg $_udevrulesdir 60-ceph-by-parttypeuuid.rules 95-ceph-osd.rules | |
307 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
308 | $subpkgdir$_localstatedir/lib/ceph/osd | |
309 | } | |
310 | ||
311 | librados() { | |
312 | pkgdesc="RADOS distributed object store client library" | |
313 | ||
314 | _pkg $_libdir librados.so.* | |
315 | } | |
316 | ||
317 | librados_dev() { | |
318 | pkgdesc="RADOS distributed object store client library headers" | |
319 | depends="librados" | |
320 | ||
321 | _pkg $_includedir/rados librados.h \ | |
322 | librados.hpp \ | |
323 | buffer.h \ | |
324 | buffer_fwd.h \ | |
325 | inline_memory.h \ | |
326 | page.h \ | |
327 | crc32c.h \ | |
328 | rados_types.h \ | |
329 | rados_types.hpp \ | |
330 | memory.h | |
331 | _pkg $_libdir librados.so | |
332 | _pkg $_bindir librados-config | |
333 | } | |
334 | ||
335 | librgw() { | |
336 | pkgdesc="RADOS gateway client library" | |
337 | depends="librados" | |
338 | ||
339 | _pkg $_libdir librgw.so.* | |
340 | } | |
341 | ||
342 | librgw_dev() { | |
343 | pkgdesc="RADOS gateway client library headers" | |
344 | depends="librados" | |
345 | ||
346 | _pkg $_includedir/rados librgw.h rgw_file.h | |
347 | _pkg $_libdir librgw.so | |
348 | } | |
349 | ||
350 | py_rgw() { | |
351 | pkgdesc="Python 2 libraries for the RADOS gateway" | |
352 | depends="librgw py-rados" | |
353 | ||
354 | _pkg $_python_sitelib rgw.so rgw-*.egg-info | |
355 | } | |
356 | ||
357 | py_rados() { | |
358 | pkgdesc="Python libraries for the RADOS object store" | |
359 | depends="librados" | |
360 | ||
361 | _pkg $_python_sitelib rados.so rados-*.egg-info | |
362 | } | |
363 | ||
364 | libradosstriper() { | |
365 | pkgdesc="RADOS striping library" | |
366 | depends="librados" | |
367 | ||
368 | _pkg $_libdir libradosstriper.so.* | |
369 | } | |
370 | ||
371 | libradosstriper_dev() { | |
372 | pkgdesc="RADOS striping library headers" | |
373 | depends="libradosstriper librados-dev" | |
374 | ||
375 | _pkg $_includedir/radosstriper libradosstriper.h libradosstriper.hpp | |
376 | _pkg $_libdir libradosstriper.so | |
377 | } | |
378 | ||
379 | librbd() { | |
380 | pkgdesc="RADOS block device client library" | |
381 | depends="librados" | |
382 | ||
383 | _pkg $_libdir librbd.so.* | |
384 | } | |
385 | ||
386 | librbd_dev() { | |
387 | pkgdesc="RADOS block device client library headers" | |
388 | depends="librbd librados-dev" | |
389 | ||
390 | _pkg $_includedir/rbd features.h librbd.h librbd.hpp | |
391 | _pkg $_libdir librbd.so | |
392 | } | |
393 | ||
394 | py_rbd() { | |
395 | pkgdesc="Python libraries for the RADOS block device" | |
396 | depends="librbd py-rados" | |
397 | ||
398 | _pkg $_python_sitelib rbd.so rbd-*.egg-info | |
399 | } | |
400 | ||
401 | libcephfs() { | |
402 | pkgdesc="Ceph distributed file system client library" | |
403 | ||
404 | _pkg $_libdir libcephfs.so.* | |
405 | } | |
406 | ||
407 | libcephfs_dev() { | |
408 | pkgdesc="Ceph distributed file system client library headers" | |
409 | depends="libcephfs librados-devel" | |
410 | ||
411 | _pkg $_includedir/cephfs ceph_statx.h libcephfs.h | |
412 | _pkg $_libdir libcephfs.so | |
413 | } | |
414 | ||
415 | py_cephfs() { | |
416 | pkgdesc="Python libraries for Ceph distributed file system" | |
417 | depends="libcephfs py-rados" | |
418 | ||
419 | _pkg $_python_sitelib cephfs.so cephfs-*.egg-info ceph_volume_client.py* | |
420 | } | |
421 | ||
422 | ceph_test() { | |
423 | pkgdesc="Ceph benchmarks and test tools" | |
424 | depends="ceph-common xmlstarlet" | |
425 | ||
426 | _pkg $_bindir ceph-client-debug \ | |
427 | ceph_bench_log \ | |
428 | ceph_kvstorebench \ | |
429 | ceph_multi_stress_watch \ | |
430 | ceph_erasure_code \ | |
431 | ceph_erasure_code_benchmark \ | |
432 | ceph_omapbench \ | |
433 | ceph_objectstore_bench \ | |
434 | ceph_perf_objectstore \ | |
435 | ceph_perf_local \ | |
436 | ceph_perf_msgr_client \ | |
437 | ceph_perf_msgr_server \ | |
438 | ceph_psim \ | |
439 | ceph_radosacl \ | |
440 | ceph_rgw_jsonparser \ | |
441 | ceph_rgw_multiparser \ | |
442 | ceph_scratchtool \ | |
443 | ceph_scratchtoolpp \ | |
444 | ceph_smalliobench \ | |
445 | ceph_smalliobenchdumb \ | |
446 | ceph_smalliobenchfs \ | |
447 | ceph_smalliobenchrbd \ | |
448 | ceph_test_* \ | |
449 | ceph_tpbench \ | |
450 | ceph_xattr_bench \ | |
451 | ceph-coverage \ | |
452 | ceph-monstore-tool \ | |
453 | ceph-osdomap-tool \ | |
454 | ceph-kvstore-tool \ | |
455 | ceph-debugpack | |
456 | ||
457 | _pkg $_libdir ceph/ceph-monstore-update-crush.sh | |
458 | } | |
459 | ||
460 | bash_completion() { | |
461 | depends="bash-completion" | |
462 | pkgdesc="Bash completions for Ceph" | |
463 | _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd | |
464 | } | |
465 | ||
466 | mgr() { | |
467 | pkgdesc="Ceph Manager Daemon" | |
468 | depends="ceph-base" | |
469 | ||
470 | _pkg $_bindir ceph-mgr | |
471 | _pkg $_libdir/ceph mgr | |
472 | ||
473 | install -m 750 -o $_ceph_uid -g $_ceph_gid -d \ | |
474 | $subpkgdir$_localstatedir/lib/ceph/mgr | |
475 | } | |
476 | ||
477 | _pkg() { | |
478 | local path=$1 | |
479 | shift | |
480 | local files=$@ | |
481 | mkdir -p $subpkgdir$path || exit 1 | |
482 | for _file in $files; do | |
483 | mv $pkgdir$path/$_file $subpkgdir$path || exit 1 | |
484 | done | |
485 | } |