mirror of
https://github.com/ceph/ceph
synced 2025-02-23 19:17:37 +00:00
alpine: add alpine packaging support
Signed-off-by: John Coyle <dx9err@gmail.com>
This commit is contained in:
parent
3d0c778b54
commit
9001d7e659
4
.gitignore
vendored
4
.gitignore
vendored
@ -30,6 +30,10 @@ core
|
||||
*.log
|
||||
/src/td
|
||||
|
||||
# alpine abuild things
|
||||
.abuild/
|
||||
alpine/APKBUILD
|
||||
|
||||
# specific local dir files
|
||||
/build-doc
|
||||
/tags
|
||||
|
14
alpine/.editorconfig
Normal file
14
alpine/.editorconfig
Normal file
@ -0,0 +1,14 @@
|
||||
; This file is for unifying the coding style for different editors and IDEs.
|
||||
; Plugins are available for notepad++, emacs, vim, gedit,
|
||||
; textmate, visual studio, and more.
|
||||
;
|
||||
; See http://editorconfig.org for details.
|
||||
|
||||
# Top-most EditorConfig file.
|
||||
root = true
|
||||
|
||||
[**/APKBUILD*]
|
||||
indent_style = tab
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
485
alpine/APKBUILD.in
Normal file
485
alpine/APKBUILD.in
Normal file
@ -0,0 +1,485 @@
|
||||
# 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
|
||||
libatomic_ops-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
|
||||
chmod 0644 $pkgdir$_docdir/ceph/sample.fetch_config || 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 $_docdir/ceph sample.ceph.conf sample.fetch_config
|
||||
_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-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 ceph-disk-udev
|
||||
_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
|
||||
}
|
5
alpine/ceph-common.pre-install
Normal file
5
alpine/ceph-common.pre-install
Normal file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
addgroup ceph -g 167 -S 2>/dev/null
|
||||
adduser ceph -u 167 -S -G ceph -s /sbin/nologin -h /var/lib/ceph -g "Ceph Daemons" 2> /dev/null
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user