]> git.proxmox.com Git - ceph.git/blame - ceph/alpine/APKBUILD
import new upstream nautilus stable release 14.2.6
[ceph.git] / ceph / alpine / APKBUILD
CommitLineData
7c673cae
FG
1# Contributor: John Coyle <dx9err@gmail.com>
2# Maintainer: John Coyle <dx9err@gmail.com>
3pkgname=ceph
ded94939 4pkgver=14.2.6
7c673cae
FG
5pkgrel=0
6pkgdesc="Ceph is a distributed object store and file system"
7pkgusers="ceph"
8pkggroups="ceph"
9url="http://ceph.com"
10arch="x86_64"
11license="LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and \
12GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT"
13depends="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
17makedepends="
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 67source="ceph-14.2.6.tar.bz2"
7c673cae
FG
68subpackages="
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
98if [ -n "$CEPH_TEST_PKG" ]; then
99 subpackages="$subpackages $pkgname-test:ceph_test"
100fi
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 120builddir=$srcdir/ceph-14.2.6
7c673cae
FG
121
122build() {
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
155package() {
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
174base() {
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
203common() {
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
235mds() {
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
244mon() {
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
254ceph_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
261rbd_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
268rbd_mirror() {
269 pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
270 depends="ceph-common librados"
271
272 _pkg $_bindir rbd-mirror
273}
274
275rbd_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
282radosgw() {
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
290osd() {
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
301librados() {
302 pkgdesc="RADOS distributed object store client library"
303
304 _pkg $_libdir librados.so.*
305}
306
307librados_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
324librgw() {
325 pkgdesc="RADOS gateway client library"
326 depends="librados"
327
328 _pkg $_libdir librgw.so.*
329}
330
331librgw_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
339py_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
346py_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
353libradosstriper() {
354 pkgdesc="RADOS striping library"
355 depends="librados"
356
357 _pkg $_libdir libradosstriper.so.*
358}
359
360libradosstriper_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
368librbd() {
369 pkgdesc="RADOS block device client library"
370 depends="librados"
371
372 _pkg $_libdir librbd.so.*
373}
374
375librbd_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
383py_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
390libcephfs() {
391 pkgdesc="Ceph distributed file system client library"
392
393 _pkg $_libdir libcephfs.so.*
394}
395
396libcephfs_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
404py_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
411ceph_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
444bash_completion() {
445 depends="bash-completion"
446 pkgdesc="Bash completions for Ceph"
447 _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd
448}
449
450mgr() {
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}