]> git.proxmox.com Git - ceph.git/blob - ceph/alpine/APKBUILD.in
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / alpine / APKBUILD.in
1 # Contributor: John Coyle <dx9err@gmail.com>
2 # Maintainer: John Coyle <dx9err@gmail.com>
3 pkgname=ceph
4 pkgver=@VERSION@
5 pkgrel=@RPM_RELEASE@
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="@TARBALL_BASENAME@.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/@TARBALL_BASENAME@
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 }