initial code repo
[stor4nfv.git] / src / ceph / alpine / APKBUILD.in
diff --git a/src/ceph/alpine/APKBUILD.in b/src/ceph/alpine/APKBUILD.in
new file mode 100644 (file)
index 0000000..e82dd20
--- /dev/null
@@ -0,0 +1,482 @@
+# Contributor: John Coyle <dx9err@gmail.com>
+# Maintainer: John Coyle <dx9err@gmail.com>
+pkgname=ceph
+pkgver=@VERSION@
+pkgrel=@RPM_RELEASE@
+pkgdesc="Ceph is a distributed object store and file system"
+pkgusers="ceph"
+pkggroups="ceph"
+url="http://ceph.com"
+arch="x86_64"
+license="LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and \
+GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT"
+depends="ceph-osd ceph-mds ceph-mgr    ceph-mon"
+# grep --quiet option required
+# diffutils -y option required by osd-scrub-snaps.sh
+# util-linux uuidgen required
+makedepends="
+       acl-dev
+       argp-standalone
+       bc
+       boost-dev
+       btrfs-progs
+       bzip2-dev
+       cmake
+       coreutils
+       cryptsetup
+       curl-dev
+       cython-dev
+       diffutils
+       eudev-dev
+       expat-dev
+       fcgi-dev
+       flex
+       fuse-dev
+       git
+       grep
+       jq
+       keyutils-dev
+       leveldb-dev
+       libaio-dev
+       libedit-dev
+       libressl-dev
+       libtirpc-dev
+       libtool
+       libxml2-dev
+       linux-headers
+       lvm2-dev
+       nss-dev
+       openldap-dev
+       parted
+       procps
+       python-dev
+       py-pip
+       py-nose
+       py-sphinx
+       py-virtualenv
+       readline-dev
+       rpcgen
+       snappy-dev
+       userspace-rcu-dev
+       util-linux
+       xfsprogs-dev
+       xmlstarlet
+       yasm
+"
+source="@TARBALL_BASENAME@.tar.bz2"
+subpackages="
+       $pkgname-base
+       $pkgname-common
+       $pkgname-mds
+       $pkgname-mgr
+       $pkgname-mon
+       $pkgname-fuse:ceph_fuse
+       $pkgname-radosgw
+       $pkgname-osd
+       $pkgname-doc
+       $pkgname-bash-completion:bash_completion
+       rbd-fuse:rbd_fuse
+       rbd-mirror:rbd_mirror
+       rbd-nbd:rbd_nbd
+       librbd
+       librbd-dev:librbd_dev
+       libcephfs
+       libcephfs-dev:libcephfs_dev
+       librados
+       librados-dev:librados_dev
+       librgw
+       librgw-dev:librgw_dev
+       py-rados:py_rados
+       py-rgw:py_rgw
+       libradosstriper
+       libradosstriper-dev:libradosstriper_dev
+       py-rbd:py_rbd
+       py-cephfs:py_cephfs
+"
+
+if [ -n "$CEPH_TEST_PKG" ]; then
+       subpackages="$subpackages $pkgname-test:ceph_test"
+fi
+
+_ceph_uid=167
+_ceph_gid=167
+
+_prefix=/usr
+_bindir=$_prefix/bin
+_datadir=$_prefix/share
+_docdir=$_datadir/doc
+_includedir=$_prefix/include
+_libdir=$_prefix/lib
+_libexecdir=$_prefix/libexec
+_localstatedir=/var
+_mandir=$_datadir/man
+_sbindir=/usr/sbin
+_sysconfdir=/etc
+
+_udevrulesdir=/etc/udev/rules.d
+_python_sitelib=/usr/lib/python2.7/site-packages
+
+builddir=$srcdir/@TARBALL_BASENAME@
+
+build() {
+       export CEPH_BUILD_VIRTUALENV=$builddir
+
+       mkdir -p $builddir/build
+       cd $builddir/build
+
+       if [ -n "$MAKE_CHECK" ] || [ -n "$CEPH_TEST_PKG" ]; then
+               local _with_tests=ON
+       fi
+
+       cmake .. \
+               -DCMAKE_INSTALL_PREFIX=$_prefix \
+               -DCMAKE_INSTALL_LIBDIR=$_libdir \
+               -DCMAKE_INSTALL_LIBEXECDIR=$_libexecdir \
+               -DCMAKE_INSTALL_LOCALSTATEDIR=$_localstatedir \
+               -DCMAKE_INSTALL_SYSCONFDIR=$_sysconfdir \
+               -DCMAKE_INSTALL_DOCDIR=$_docdir/ceph \
+               -DCMAKE_INSTALL_MANDIR=$_mandir \
+               -DWITH_REENTRANT_STRSIGNAL=ON \
+               -DWITH_THREAD_SAFE_RES_QUERY=ON \
+               -DWITH_MANPAGE=ON \
+               -DWITH_PYTHON3=OFF \
+               -DWITH_LTTNG=OFF \
+               -DWITH_SYSTEM_BOOST=ON \
+               -DWITH_EMBEDDED=OFF \
+               -DWITH_TESTS=${_with_tests:-OFF} \
+               || return 1
+       make -j${JOBS:-2} || return 1
+
+       if [ -n "$MAKE_CHECK" ]; then
+               ctest -j${JOBS:-2}
+       fi
+}
+
+package() {
+       cd $builddir/build
+       make DESTDIR=$pkgdir install || return 1
+       cd ..
+
+       rm -f $pkgdir$_sysconfdir/init.d/ceph
+
+       install -m 0644 -D src/etc-rbdmap $pkgdir$_sysconfdir/ceph/rbdmap \
+               || return 1
+
+       install -m 0644 -D src/logrotate.conf $pkgdir$_sysconfdir/logrotate.d/ceph \
+               || return 1
+
+       chmod 0644 $pkgdir$_docdir/ceph/sample.ceph.conf || return 1
+
+       # udev rules
+       install -m 0644 -D udev/50-rbd.rules $pkgdir$_udevrulesdir/50-rbd.rules || return 1
+       install -m 0644 -D udev/60-ceph-by-parttypeuuid.rules  \
+               $pkgdir$_udevrulesdir/60-ceph-by-parttypeuuid.rules || return 1
+       install -m 0644 -D udev/95-ceph-osd.rules \
+               $pkgdir$_udevrulesdir/95-ceph-osd.rules
+}
+
+base() {
+       pkgdesc="Base is the package that includes all the files shared amongst ceph servers"
+       depends="
+               ceph-common
+               cryptsetup
+               librbd
+               librados
+               libcephfs
+               librgw
+               logrotate
+               py-requests
+               py-setuptools
+               util-linux
+               xfsprogs
+       "
+
+       _pkg $_bindir crushtool monmaptool osdmaptool ceph-run ceph-detect-init
+       _pkg $_sbindir ceph-create-keys mount.ceph
+       _pkg $_libexecdir/ceph ceph_common.sh
+       _pkg $_libdir/rados-classes *.so*
+       _pkg $_libdir/ceph/erasure-code libec_*.so*
+       _pkg $_libdir/ceph/compressor libceph_*.so*
+       _pkg $_sysconfdir/logrotate.d ceph
+       _pkg $_python_sitelib ceph_detect_init* ceph_disk*
+       for dir in tmp bootstrap-osd bootstrap-mds bootstrap-rgw; do
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph/$dir || return 1
+       done
+}
+
+common() {
+       pkgdesc="Common utilities to mount and interact with a ceph storage cluster."
+       depends="py-rados py-rbd py-cephfs"
+       install="$pkgname-common.pre-install"
+
+       _pkg $_bindir ceph \
+               ceph-authtool \
+               ceph-conf \
+               ceph-dencoder \
+               ceph-rbdnamer \
+               ceph-syn \
+               ceph-crush-location \
+               cephfs-data-scan \
+               cephfs-journal-tool \
+               cephfs-table-tool \
+               rados \
+               rbd \
+               rbd-replay \
+               rbd-replay-many \
+               rbdmap \
+               ceph-post-file \
+               ceph-brag
+       _pkg $_datadir/ceph known_hosts_drop.ceph.com id_rsa_drop.ceph.com \
+               id_rsa_drop.ceph.com.pub
+       _pkg $_sysconfdir/ceph rbdmap
+       _pkg $_python_sitelib ceph_argparse.py* ceph_daemon.py*
+       _pkg $_udevrulesdir 50-rbd.rules
+       install -m 3770 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/log/ceph || return 1
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph
+}
+
+mds() {
+       pkgdesc="Metadata server daemon for the Ceph distributed file system."
+       depends="ceph-base"
+
+       _pkg $_bindir ceph-mds
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph/mds
+}
+
+mon() {
+       pkgdesc="Cluster monitor daemon for the Ceph distributed file system."
+       depends="ceph-base"
+
+       _pkg $_bindir ceph-mon ceph-rest-api
+       _pkg $_python_sitelib ceph_rest_api.py*
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph/mon
+}
+
+ceph_fuse() {
+       pkgdesc="FUSE based client for Ceph distributed network file system."
+
+       _pkg $_bindir ceph-fuse
+       _pkg $_sbindir mount.fuse.ceph
+}
+
+rbd_fuse() {
+       pkgdesc="FUSE based client to map Ceph rbd images to files."
+       depends="librados librbd"
+
+       _pkg $_bindir rbd-fuse
+}
+
+rbd_mirror() {
+       pkgdesc="Daemon for mirroring RBD images between Ceph clusters."
+       depends="ceph-common librados"
+
+       _pkg $_bindir rbd-mirror
+}
+
+rbd_nbd() {
+       pkgdesc="NBD based client to map Ceph rbd images to local device."
+       depends="librbd librados"
+
+       _pkg $_bindir rbd-nbd
+}
+
+radosgw() {
+       pkgdesc="Rados REST gateway which implements Amazon's S3 and OpenStack's Swift APIs."
+       depends="ceph-common"
+
+       _pkg $_bindir radosgw radosgw-admin radosgw-token radosgw-es radosgw-object-expirer
+       mkdir -p $subpkgdir$_localstatedir/lib/ceph/radosgw
+}
+
+osd() {
+       pkgdesc="Object storage daemon for the Ceph distributed file system."
+       depends="ceph-base parted gptfdisk"
+
+       _pkg $_bindir ceph-clsinfo ceph-bluefs-tool ceph-objectstore-tool ceph-osd
+       _pkg $_sbindir ceph-disk
+       _pkg $_libexecdir/ceph ceph-osd-prestart.sh
+       _pkg $_udevrulesdir 60-ceph-by-parttypeuuid.rules 95-ceph-osd.rules
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph/osd
+}
+
+librados() {
+       pkgdesc="RADOS distributed object store client library"
+
+       _pkg $_libdir librados.so.*
+}
+
+librados_dev() {
+       pkgdesc="RADOS distributed object store client library headers"
+       depends="librados"
+
+       _pkg $_includedir/rados librados.h \
+               librados.hpp \
+               buffer.h \
+               buffer_fwd.h \
+               inline_memory.h \
+               page.h \
+               crc32c.h \
+               rados_types.h \
+               rados_types.hpp \
+               memory.h
+       _pkg $_libdir librados.so
+       _pkg $_bindir librados-config
+}
+
+librgw() {
+       pkgdesc="RADOS gateway client library"
+       depends="librados"
+
+       _pkg $_libdir librgw.so.*
+}
+
+librgw_dev() {
+       pkgdesc="RADOS gateway client library headers"
+       depends="librados"
+
+       _pkg $_includedir/rados librgw.h rgw_file.h
+       _pkg $_libdir librgw.so
+}
+
+py_rgw() {
+       pkgdesc="Python 2 libraries for the RADOS gateway"
+       depends="librgw py-rados"
+
+       _pkg $_python_sitelib rgw.so rgw-*.egg-info
+}
+
+py_rados() {
+       pkgdesc="Python libraries for the RADOS object store"
+       depends="librados"
+
+       _pkg $_python_sitelib rados.so rados-*.egg-info
+}
+
+libradosstriper() {
+       pkgdesc="RADOS striping library"
+       depends="librados"
+
+       _pkg $_libdir libradosstriper.so.*
+}
+
+libradosstriper_dev() {
+       pkgdesc="RADOS striping library headers"
+       depends="libradosstriper librados-dev"
+
+       _pkg $_includedir/radosstriper libradosstriper.h libradosstriper.hpp
+       _pkg $_libdir libradosstriper.so
+}
+
+librbd() {
+       pkgdesc="RADOS block device client library"
+       depends="librados"
+
+       _pkg $_libdir librbd.so.*
+}
+
+librbd_dev() {
+       pkgdesc="RADOS block device client library headers"
+       depends="librbd librados-dev"
+
+       _pkg $_includedir/rbd features.h librbd.h librbd.hpp
+       _pkg $_libdir librbd.so
+}
+
+py_rbd() {
+       pkgdesc="Python libraries for the RADOS block device"
+       depends="librbd py-rados"
+
+       _pkg $_python_sitelib rbd.so rbd-*.egg-info
+}
+
+libcephfs() {
+       pkgdesc="Ceph distributed file system client library"
+
+       _pkg $_libdir libcephfs.so.*
+}
+
+libcephfs_dev() {
+       pkgdesc="Ceph distributed file system client library headers"
+       depends="libcephfs librados-devel"
+
+       _pkg $_includedir/cephfs ceph_statx.h libcephfs.h
+       _pkg $_libdir libcephfs.so
+}
+
+py_cephfs() {
+       pkgdesc="Python libraries for Ceph distributed file system"
+       depends="libcephfs py-rados"
+
+       _pkg $_python_sitelib cephfs.so cephfs-*.egg-info ceph_volume_client.py*
+}
+
+ceph_test() {
+       pkgdesc="Ceph benchmarks and test tools"
+       depends="ceph-common xmlstarlet"
+
+       _pkg $_bindir ceph-client-debug \
+               ceph_bench_log \
+               ceph_kvstorebench \
+               ceph_multi_stress_watch \
+               ceph_erasure_code \
+               ceph_erasure_code_benchmark \
+               ceph_omapbench \
+               ceph_objectstore_bench \
+               ceph_perf_objectstore \
+               ceph_perf_local \
+               ceph_perf_msgr_client \
+               ceph_perf_msgr_server \
+               ceph_psim \
+               ceph_radosacl \
+               ceph_rgw_jsonparser \
+               ceph_rgw_multiparser \
+               ceph_scratchtool \
+               ceph_scratchtoolpp \
+               ceph_smalliobench \
+               ceph_smalliobenchdumb \
+               ceph_smalliobenchfs \
+               ceph_smalliobenchrbd \
+               ceph_test_* \
+               ceph_tpbench \
+               ceph_xattr_bench \
+               ceph-coverage \
+               ceph-monstore-tool \
+               ceph-osdomap-tool \
+               ceph-kvstore-tool \
+               ceph-debugpack
+
+       _pkg $_libdir ceph/ceph-monstore-update-crush.sh
+}
+
+bash_completion() {
+       depends="bash-completion"
+       pkgdesc="Bash completions for Ceph"
+       _pkg $_sysconfdir/bash_completion.d ceph rados radosgw-admin rbd
+}
+
+mgr() {
+       pkgdesc="Ceph Manager Daemon"
+       depends="ceph-base"
+
+       _pkg $_bindir ceph-mgr
+       _pkg $_libdir/ceph mgr
+
+       install -m 750 -o $_ceph_uid -g $_ceph_gid -d \
+               $subpkgdir$_localstatedir/lib/ceph/mgr
+}
+
+_pkg() {
+       local path=$1
+       shift
+       local files=$@
+       mkdir -p $subpkgdir$path || exit 1
+       for _file in $files; do
+               mv $pkgdir$path/$_file $subpkgdir$path || exit 1
+       done
+}