]> git.proxmox.com Git - ceph.git/blame - ceph/alpine/APKBUILD
update sources to 12.2.7
[ceph.git] / ceph / alpine / APKBUILD
CommitLineData
7c673cae
FG
1# Contributor: John Coyle <dx9err@gmail.com>
2# Maintainer: John Coyle <dx9err@gmail.com>
3pkgname=ceph
28e407b8 4pkgver=12.2.7
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
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"
28e407b8 66source="ceph-12.2.7.tar.bz2"
7c673cae
FG
67subpackages="
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
97if [ -n "$CEPH_TEST_PKG" ]; then
98 subpackages="$subpackages $pkgname-test:ceph_test"
99fi
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
28e407b8 119builddir=$srcdir/ceph-12.2.7
7c673cae
FG
120
121build() {
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
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
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
178base() {
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
208common() {
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
241mds() {
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
250mon() {
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
260ceph_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
267rbd_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
274rbd_mirror() {
275 pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
276 depends="ceph-common librados"
277
278 _pkg $_bindir rbd-mirror
279}
280
281rbd_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
288radosgw() {
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
296osd() {
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
308librados() {
309 pkgdesc="RADOS distributed object store client library"
310
311 _pkg $_libdir librados.so.*
312}
313
314librados_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
332librgw() {
333 pkgdesc="RADOS gateway client library"
334 depends="librados"
335
336 _pkg $_libdir librgw.so.*
337}
338
339librgw_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
347py_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
354py_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
361libradosstriper() {
362 pkgdesc="RADOS striping library"
363 depends="librados"
364
365 _pkg $_libdir libradosstriper.so.*
366}
367
368libradosstriper_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
376librbd() {
377 pkgdesc="RADOS block device client library"
378 depends="librados"
379
380 _pkg $_libdir librbd.so.*
381}
382
383librbd_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
391py_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
398libcephfs() {
399 pkgdesc="Ceph distributed file system client library"
400
401 _pkg $_libdir libcephfs.so.*
402}
403
404libcephfs_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
412py_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
419ceph_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
457bash_completion() {
458 depends="bash-completion"
459 pkgdesc="Bash completions for Ceph"
460 _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd
461}
462
463mgr() {
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}