diff options
author | Patrick McLean <chutzpah@gentoo.org> | 2016-05-12 11:57:41 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2016-05-12 12:02:36 -0700 |
commit | 67b48c93f0d368ab616f5c7bfd64105268918e05 (patch) | |
tree | dcc7b67b4ff73e5eed28a77cf0b2eedaf8f9e5ef /sys-cluster | |
parent | sys-fs/btrfs-progs: bump up to 4.5.3 (diff) | |
download | gentoo-67b48c93f0d368ab616f5c7bfd64105268918e05.tar.gz gentoo-67b48c93f0d368ab616f5c7bfd64105268918e05.tar.bz2 gentoo-67b48c93f0d368ab616f5c7bfd64105268918e05.zip |
sys-cluster/ceph: Sync 9999 ebuild with 10.2.0 ebuild
Package-Manager: portage-2.2.28
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/ceph/ceph-9999.ebuild | 204 |
1 files changed, 154 insertions, 50 deletions
diff --git a/sys-cluster/ceph/ceph-9999.ebuild b/sys-cluster/ceph/ceph-9999.ebuild index 1805e16b30c1..34a1ae6ddafe 100644 --- a/sys-cluster/ceph/ceph-9999.ebuild +++ b/sys-cluster/ceph/ceph-9999.ebuild @@ -1,45 +1,50 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ -EAPI=5 -PYTHON_COMPAT=( python2_7 ) +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_{4,5}} ) -if [[ $PV = *9999* ]]; then - scm_eclass=git-r3 +inherit check-reqs autotools eutils python-r1 udev user \ + readme.gentoo-r1 systemd versionator flag-o-matic + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 EGIT_REPO_URI=" git://github.com/ceph/ceph.git https://github.com/ceph/ceph.git" SRC_URI="" - KEYWORDS="" else - SRC_URI="http://ceph.com/download/${P}.tar.bz2" + SRC_URI="http://ceph.com/download/${P}.tar.gz" KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" fi -inherit autotools eutils multilib python-any-r1 udev user readme.gentoo ${scm_eclass} - DESCRIPTION="Ceph distributed filesystem" HOMEPAGE="http://ceph.com/" LICENSE="LGPL-2.1" SLOT="0" -IUSE="cryptopp debug fuse gtk libatomic +libaio +nss radosgw static-libs tcmalloc xfs zfs" -CDEPEND=" +IUSE="babeltrace cephfs cryptopp debug fuse gtk jemalloc ldap +libaio" +IUSE+=" libatomic lttng +nss +radosgw static-libs tcmalloc test xfs zfs" + +COMMON_DEPEND=" app-arch/snappy dev-libs/boost:=[threads] dev-libs/fcgi dev-libs/libaio dev-libs/libedit + dev-python/sphinx[$(python_gen_usedep 'python2*')] dev-libs/leveldb[snappy] nss? ( dev-libs/nss ) + libatomic? ( dev-libs/libatomic_ops ) cryptopp? ( dev-libs/crypto++ ) sys-apps/keyutils sys-apps/util-linux dev-libs/libxml2 + ldap? ( net-nds/openldap ) + babeltrace? ( dev-util/babeltrace ) fuse? ( sys-fs/fuse ) - libatomic? ( dev-libs/libatomic_ops ) xfs? ( sys-fs/xfsprogs ) zfs? ( sys-fs/zfs ) gtk? ( @@ -52,64 +57,166 @@ CDEPEND=" dev-libs/expat net-misc/curl ) - tcmalloc? ( dev-util/google-perftools ) - $(python_gen_any_dep ' - ' ) + jemalloc? ( dev-libs/jemalloc ) + !jemalloc? ( dev-util/google-perftools ) + lttng? ( dev-util/lttng-ust ) ${PYTHON_DEPS} " -DEPEND="${CDEPEND} - virtual/pkgconfig" -RDEPEND="${CDEPEND} +DEPEND="${COMMON_DEPEND} + dev-python/cython[${PYTHON_USEDEP}] + app-arch/cpio + sys-apps/lsb-release + virtual/pkgconfig + test? ( + sys-fs/btrfs-progs + sys-apps/grep[pcre] + dev-python/tox[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + )" +RDEPEND="${COMMON_DEPEND} + sys-apps/which sys-apps/hdparm - $(python_gen_any_dep ' + sys-block/parted + sys-fs/cryptsetup + sys-apps/gptfdisk + sys-apps/findutils dev-python/flask[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] - ' )" + " REQUIRED_USE=" + $(python_gen_useflags 'python2*') + ${PYTHON_REQUIRED_USE} ^^ ( nss cryptopp ) + ?? ( jemalloc tcmalloc ) " +# work around bug in ceph compilation (rgw/ceph_dencoder-rgw_dencoder.o... undefined reference to `vtable for RGWZoneGroup') +REQUIRED_USE+=" radosgw" + +RESTRICT="test? ( userpriv )" + +# distribution tarball does not include everything needed for tests +RESTRICT+=" test" + STRIP_MASK="/usr/lib*/rados-classes/*" +PATCHES=( + "${FILESDIR}/ceph-10.2.0-dont-use-virtualenvs.patch" +) + +check-reqs_export_vars() { + if use debug; then + CHECKREQS_DISK_BUILD="23G" + CHECKREQS_DISK_USR="7G" + elif use amd64; then + CHECKREQS_DISK_BUILD="12G" + CHECKREQS_DISK_USR="450M" + else + CHECKREQS_DISK_BUILD="1400M" + CHECKREQS_DISK_USR="450M" + fi + + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR +} + user_setup() { enewgroup ceph enewuser ceph -1 -1 /var/lib/ceph ceph } +emake_python_bindings() { + local action="${1}" params binding + shift + params=("${@}") + + __emake_python_bindings_do_impl() { + emake "${params[@]}" PYTHON="${EPYTHON}" "${binding}-pybind-${action}" + + # these don't work and aren't needed on python3 + if [[ ${EBUILD_PHASE} == install ]] && python_is_python3; then + rm -f "${ED}/$(python_get_sitedir)"/ceph_{argparse,volume_client}.py + fi + } + + pushd "${S}/src" + for binding in rados rbd $(use cephfs && echo cephfs); do + python_foreach_impl __emake_python_bindings_do_impl + done + popd + + unset __emake_python_bindings_do_impl +} + +pkg_pretend() { + check-reqs_export_vars + check-reqs_pkg_pretend +} + pkg_setup() { - python-any-r1_pkg_setup + python_setup + check-reqs_export_vars + check-reqs_pkg_setup user_setup } src_prepare() { - [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}" + default - epatch_user + # remove tests that need root access + rm src/test/cli/ceph-authtool/cap*.t + + append-flags -fPIC eautoreconf } src_configure() { - econf \ - --without-hadoop \ - --docdir="${EPREFIX}/usr/share/doc/${PF}" \ - --includedir=/usr/include \ - $(use_with debug) \ - $(use_with fuse) \ - $(use_with libaio) \ - $(use_with libatomic libatomic-ops) \ - $(use_with nss) \ - $(use_with cryptopp) \ - $(use_with radosgw) \ - $(use_with gtk gtk2) \ - $(use_enable static-libs static) \ - $(use_with tcmalloc) \ - $(use_with xfs libxfs) \ + local myeconfargs=( + --without-hadoop + --includedir=/usr/include + $(use_with cephfs) + $(use_with debug) + $(use_with fuse) + $(use_with libaio) + $(use_with libatomic libatomic-ops) + $(use_with nss) + $(use_with cryptopp) + $(use_with radosgw) + $(use_with gtk gtk2) + $(use_enable static-libs static) + $(use_with jemalloc) + $(use_with xfs libxfs) $(use_with zfs libzfs) + $(use_with lttng ) + $(use_with babeltrace) + $(use_with ldap openldap) + $(use jemalloc || usex tcmalloc " --with-tcmalloc" " --with-tcmalloc-minimal") + --with-mon + --with-eventfd + --with-cython + --without-kinetic + --without-librocksdb --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + # we can only use python2.7 for building at the moment + python_export python2.7 PYTHON EPYTHON + econf "${myeconfargs[@]}" +} + +src_compile() { + emake + emake_python_bindings all + + use test && emake check-local +} + +src_test() { + make check || die "make check failed" } src_install() { default + emake_python_bindings install-exec "DESTDIR=\"${D}\"" prune_libtool_files --all @@ -119,28 +226,25 @@ src_install() { insinto /etc/logrotate.d/ newins "${FILESDIR}"/ceph.logrotate ${PN} - chmod 644 "${ED}"/usr/share/doc/${PF}/sample.* - - keepdir /var/lib/${PN} - keepdir /var/lib/${PN}/tmp - keepdir /var/log/${PN}/stat + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat fowners ceph:ceph /var/lib/ceph - newinitd "${FILESDIR}/${PN}.initd-r1" ${PN} + newinitd "${FILESDIR}/rbdmap.initd" rbdmap + newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} newconfd "${FILESDIR}/${PN}.confd-r1" ${PN} systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service" systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service" systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.service" - python_fix_shebang \ - "${ED}"/usr/sbin/{ceph-disk,ceph-create-keys} \ - "${ED}"/usr/bin/{ceph,ceph-rest-api,ceph-detect-init,ceph-brag} + python_fix_shebang "${ED}"/usr/{,s}bin/ - #install udev rules - udev_dorules udev/50-rbd.rules - udev_dorules udev/95-ceph-osd.rules + udev_dorules udev/*.rules readme.gentoo_create_doc } + +pkg_postinst() { + readme.gentoo_print_elog +} |