1 # Contributor: John Coyle <dx9err@gmail.com>
2 # Maintainer: John Coyle <dx9err@gmail.com>
6 pkgdesc="Ceph is a distributed object store and file system"
11 license="LGPL-2.1 and LGPL-3.0 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
66 source="ceph-15.2.8.tar.bz2"
73 $pkgname-fuse:ceph_fuse
77 $pkgname-bash-completion:bash_completion
84 libcephfs-dev:libcephfs_dev
86 librados-dev:librados_dev
92 libradosstriper-dev:libradosstriper_dev
97 if [ -n "$CEPH_TEST_PKG" ]; then
98 subpackages="$subpackages $pkgname-test:ceph_test"
106 _datadir=$_prefix/share
107 _docdir=$_datadir/doc
108 _includedir=$_prefix/include
110 _libexecdir=$_prefix/libexec
112 _mandir=$_datadir/man
116 _udevrulesdir=/etc/udev/rules.d
117 _python_sitelib=/usr/lib/python2.7/site-packages
119 builddir=$srcdir/ceph-15.2.8
122 export CEPH_BUILD_VIRTUALENV=$builddir
124 mkdir -p $builddir/build
127 if [ -n "$MAKE_CHECK" ] || [ -n "$CEPH_TEST_PKG" ]; then
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 \
144 -DWITH_SYSTEM_BOOST=ON \
145 -DWITH_TESTS=${_with_tests:-OFF} \
147 make -j${JOBS:-2} || return 1
149 if [ -n "$MAKE_CHECK" ]; then
156 make DESTDIR=$pkgdir install || return 1
159 rm -f $pkgdir$_sysconfdir/init.d/ceph
161 install -m 0644 -D src/etc-rbdmap $pkgdir$_sysconfdir/ceph/rbdmap \
164 install -m 0644 -D src/logrotate.conf $pkgdir$_sysconfdir/logrotate.d/ceph \
167 chmod 0644 $pkgdir$_docdir/ceph/sample.ceph.conf || return 1
170 install -m 0644 -D udev/50-rbd.rules $pkgdir$_udevrulesdir/50-rbd.rules || return 1
174 pkgdesc="Base is the package that includes all the files shared amongst ceph servers"
189 _pkg $_bindir crushtool monmaptool osdmaptool ceph-run
190 _pkg $_sbindir ceph-create-keys mount.ceph
191 _pkg $_libexecdir/ceph ceph_common.sh
192 _pkg $_libdir/rados-classes *.so*
193 _pkg $_libdir/ceph/erasure-code libec_*.so*
194 _pkg $_libdir/ceph/compressor libceph_*.so*
195 _pkg $_sysconfdir/logrotate.d ceph
196 for dir in tmp bootstrap-osd bootstrap-mds bootstrap-rgw; do
197 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
198 $subpkgdir$_localstatedir/lib/ceph/$dir || return 1
203 pkgdesc="Common utilities to mount and interact with a ceph storage cluster."
204 depends="py-rados py-rbd py-cephfs"
205 install="$pkgname-common.pre-install"
214 cephfs-journal-tool \
223 _pkg $_datadir/ceph known_hosts_drop.ceph.com id_rsa_drop.ceph.com \
224 id_rsa_drop.ceph.com.pub
225 _pkg $_sysconfdir/ceph rbdmap
226 _pkg $_python_sitelib ceph_argparse.py* ceph_daemon.py*
227 _pkg $_udevrulesdir 50-rbd.rules
228 install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \
229 $subpkgdir$_localstatedir/log/ceph || return 1
230 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
231 $subpkgdir$_localstatedir/lib/ceph
235 pkgdesc="Metadata server daemon for the Ceph distributed file system."
238 _pkg $_bindir ceph-mds
239 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
240 $subpkgdir$_localstatedir/lib/ceph/mds
244 pkgdesc="Cluster monitor daemon for the Ceph distributed file system."
247 _pkg $_bindir ceph-mon ceph-rest-api
248 _pkg $_python_sitelib ceph_rest_api.py*
249 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
250 $subpkgdir$_localstatedir/lib/ceph/mon
254 pkgdesc="FUSE based client for Ceph distributed network file system."
256 _pkg $_bindir ceph-fuse
257 _pkg $_sbindir mount.fuse.ceph
261 pkgdesc="FUSE based client to map Ceph rbd images to files."
262 depends="librados librbd"
264 _pkg $_bindir rbd-fuse
268 pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
269 depends="ceph-common librados"
271 _pkg $_bindir rbd-mirror
275 pkgdesc="NBD based client to map Ceph rbd images to local device."
276 depends="librbd librados"
278 _pkg $_bindir rbd-nbd
282 pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs."
283 depends="ceph-common"
285 _pkg $_bindir radosgw radosgw-admin radosgw-token radosgw-es radosgw-object-expirer
286 mkdir -p $subpkgdir$_localstatedir/lib/ceph/radosgw
290 pkgdesc="Object storage daemon for the Ceph distributed file system."
291 depends="ceph-base parted gptfdisk"
293 _pkg $_bindir ceph-clsinfo ceph-bluefs-tool ceph-objectstore-tool ceph-osd
294 _pkg $_sbindir ceph-volume
295 _pkg $_libexecdir/ceph ceph-osd-prestart.sh
296 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
297 $subpkgdir$_localstatedir/lib/ceph/osd
301 pkgdesc="RADOS distributed object store client library"
303 _pkg $_libdir librados.so.*
307 pkgdesc="RADOS distributed object store client library headers"
310 _pkg $_includedir/rados librados.h \
319 _pkg $_libdir librados.so
320 _pkg $_bindir librados-config
324 pkgdesc="RADOS gateway client library"
327 _pkg $_libdir librgw.so.*
331 pkgdesc="RADOS gateway client library headers"
334 _pkg $_includedir/rados librgw.h rgw_file.h
335 _pkg $_libdir librgw.so
339 pkgdesc="Python 2 libraries for the RADOS gateway"
340 depends="librgw py-rados"
342 _pkg $_python_sitelib rgw.so rgw-*.egg-info
346 pkgdesc="Python libraries for the RADOS object store"
349 _pkg $_python_sitelib rados.so rados-*.egg-info
353 pkgdesc="RADOS striping library"
356 _pkg $_libdir libradosstriper.so.*
359 libradosstriper_dev() {
360 pkgdesc="RADOS striping library headers"
361 depends="libradosstriper librados-dev"
363 _pkg $_includedir/radosstriper libradosstriper.h libradosstriper.hpp
364 _pkg $_libdir libradosstriper.so
368 pkgdesc="RADOS block device client library"
371 _pkg $_libdir librbd.so.*
375 pkgdesc="RADOS block device client library headers"
376 depends="librbd librados-dev"
378 _pkg $_includedir/rbd features.h librbd.h librbd.hpp
379 _pkg $_libdir librbd.so
383 pkgdesc="Python libraries for the RADOS block device"
384 depends="librbd py-rados"
386 _pkg $_python_sitelib rbd.so rbd-*.egg-info
390 pkgdesc="Ceph distributed file system client library"
392 _pkg $_libdir libcephfs.so.*
396 pkgdesc="Ceph distributed file system client library headers"
397 depends="libcephfs librados-devel"
399 _pkg $_includedir/cephfs ceph_ll_client.h libcephfs.h
400 _pkg $_libdir libcephfs.so
404 pkgdesc="Python libraries for Ceph distributed file system"
405 depends="libcephfs py-rados"
407 _pkg $_python_sitelib cephfs.so cephfs-*.egg-info ceph_volume_client.py*
411 pkgdesc="Ceph benchmarks and test tools"
412 depends="ceph-common xmlstarlet"
414 _pkg $_bindir ceph-client-debug \
417 ceph_multi_stress_watch \
419 ceph_erasure_code_benchmark \
421 ceph_objectstore_bench \
422 ceph_perf_objectstore \
424 ceph_perf_msgr_client \
425 ceph_perf_msgr_server \
428 ceph_rgw_jsonparser \
429 ceph_rgw_multiparser \
440 _pkg $_libdir ceph/ceph-monstore-update-crush.sh
444 depends="bash-completion"
445 pkgdesc="Bash completions for Ceph"
446 _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd
450 pkgdesc="Ceph Manager Daemon"
453 _pkg $_bindir ceph-mgr
454 _pkg $_libdir/ceph mgr
456 install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
457 $subpkgdir$_localstatedir/lib/ceph/mgr
464 mkdir -p $subpkgdir$path || exit 1
465 for _file in $files; do
466 mv $pkgdir$path/$_file $subpkgdir$path || exit 1