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