sys-cluster/ceph: Version bump to 10.2.6

Package-Manager: Portage-2.3.4, Repoman-2.3.2
This commit is contained in:
Patrick McLean
2017-03-08 14:56:46 -08:00
parent e5cb93ff2e
commit 81e655fb8e
3 changed files with 386 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
DIST ceph-0.94.9.tar.gz 9044702 SHA256 d5bc07e7aef75f74d75f0356e5dd2a17956cbad6bb552a1e96a0fabd80924050 SHA512 ef4bbcc4429e22a2d924fd52dc42f522d5327f67ee8c1781d7cf602c2932a485cb48db21bdc33e7c7fbc968eec59c17882ebb18e6405599e11a3abc248f1d376 WHIRLPOOL f348159e8d7dd5e1ac3810a51846f50f6cefdbc5fa4cd15c3127b1136eb960baca8ad8db33c78a5d6435720cf1e2c277e068d09f9b9dbcf0f8ad56d7ddd914dc
DIST ceph-10.2.3.tar.gz 11596171 SHA256 dca933aa14db67b404d836ef510bd418091978edc2f0c74dfc530ba0aa5e8994 SHA512 9de1e6851fc343d2c52c72cec3f7887d998d5b588f1251ee3a1fda14427badfa10408e6691fb03a374a10f4ec9844868423fee70fbbe2c0d962af98481412f19 WHIRLPOOL 981ebca66113a07a5cc6e5934272a72b29a2c19e03398f7b622c11df6ea0a05339558dfc2f11504403cbbd0efe0b090ad59f4b86206b46db57587744091aa26a
DIST ceph-10.2.5.tar.gz 14020700 SHA256 82dd4271f18eb7b84ff16f273a5250a4a9e809bfaccce5a1cca493416332d5f4 SHA512 4889aff38c8af781c2e3dce8f4ee51864db0a27c6294774345d2c1b047588ec31354ad41f799e2f0d0a966dc372d76c9bdbfb93f30a0718ea9d7c2b7a645d0f8 WHIRLPOOL 986a6ac35612a732d2a9a73277525679f9da729601c7e3f82b83e7e8ee2eb4245c98cdf5c4462ae1c789cb3d120a2c4a7eb9a3958b072db5e743b2c015269dfc
DIST ceph-10.2.6.tar.gz 14500365 SHA256 ad32c549d0ce6de581b5e1c6c7eba38e0f6658aaf8a91990e602f7c64c5e48c7 SHA512 c4321e27a6f8983f69435316c35858ab2b8b620cd80663a5471447c7489d867aef30b22541ca9648a7dcf9d931d04055e29d87dea3a6e94963fb360d06713dee WHIRLPOOL bd886105b47b6cfaeeff882f1d21d710442880c31a1943298db0904a453d67da71519c8fe5e1dd0377480b5413c90bf8ae4bed6bd99bfc53e4696f8b8031c23a
DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

View File

@@ -0,0 +1,293 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
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=""
else
SRC_URI="http://download.ceph.com/tarballs/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
fi
DESCRIPTION="Ceph distributed filesystem"
HOMEPAGE="http://ceph.com/"
LICENSE="LGPL-2.1"
SLOT="0"
IUSE="babeltrace cephfs cryptopp debug fuse gtk jemalloc ldap +libaio"
IUSE+=" libatomic lttng +nss +radosgw static-libs +tcmalloc test xfs zfs"
# unbundling code commented out pending bugs 584056 and 584058
#>=dev-libs/jerasure-2.0.0-r1
#>=dev-libs/gf-complete-2.0.0
COMMON_DEPEND="
app-arch/snappy
app-arch/lz4:=
app-arch/bzip2
dev-libs/boost:=[threads]
dev-libs/libaio
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
radosgw? ( dev-libs/fcgi )
ldap? ( net-nds/openldap )
babeltrace? ( dev-util/babeltrace )
fuse? ( sys-fs/fuse )
xfs? ( sys-fs/xfsprogs )
zfs? ( sys-fs/zfs )
gtk? (
x11-libs/gtk+:2
dev-cpp/gtkmm:2.4
gnome-base/librsvg
)
radosgw? (
dev-libs/fcgi
dev-libs/expat
net-misc/curl
)
jemalloc? ( dev-libs/jemalloc )
!jemalloc? ( dev-util/google-perftools )
lttng? ( dev-util/lttng-ust )
${PYTHON_DEPS}
"
DEPEND="${COMMON_DEPEND}
dev-python/cython[${PYTHON_USEDEP}]
app-arch/cpio
virtual/pkgconfig
dev-python/sphinx
test? (
sys-fs/btrfs-progs
sys-apps/grep[pcre]
dev-python/tox[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
)"
RDEPEND="${COMMON_DEPEND}
sys-apps/hdparm
sys-block/parted
sys-fs/cryptsetup
sys-apps/gptfdisk
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/*"
UNBUNDLE_LIBS=(
src/erasure-code/jerasure/jerasure
src/erasure-code/jerasure/gf-complete
)
PATCHES=(
"${FILESDIR}/ceph-10.2.0-dont-use-virtualenvs.patch"
#"${FILESDIR}/ceph-10.2.1-unbundle-jerasure.patch"
"${FILESDIR}/${PN}-10.2.1-libzfs.patch"
"${FILESDIR}/${PN}-10.2.3-build-without-openldap.patch"
"${FILESDIR}/${PN}-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch"
"${FILESDIR}/${PN}-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch"
"${FILESDIR}/${PN}-10.2.6-radosgw-swift-clean-up-flush-newline-behavior.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 ${CEPH_GID}
enewuser ceph "${CEPH_UID:--1}" -1 /var/lib/ceph ceph
}
emake_python_bindings() {
local action="${1}" params binding module
shift
params=("${@}")
__emake_python_bindings_do_impl() {
ceph_run_econf "${EPYTHON}"
emake "${params[@]}" PYTHON="${EPYTHON}" "${binding}-pybind-${action}"
# these don't work and aren't needed on python3
if [[ ${EBUILD_PHASE} == install ]]; then
for module in "${S}"/src/pybind/*.py; do
module_basename="$(basename "${module}")"
if [[ ${module_basename} == ceph_volume_client.py ]] && ! use cephfs; then
continue
elif [[ ! -e "${ED}/$(python_get_sitedir)/${module_basename}" ]]; then
python_domodule ${module}
fi
done
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_setup
check-reqs_export_vars
check-reqs_pkg_setup
user_setup
}
src_prepare() {
default
# remove tests that need root access
rm src/test/cli/ceph-authtool/cap*.t
#rm -rf "${UNBUNDLE_LIBS[@]}"
append-flags -fPIC
eautoreconf
}
src_configure() {
ECONFARGS=(
--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
ceph_run_econf "python2*"
}
ceph_run_econf() {
[[ -z ${ECONFARGS} ]] && die "called ${FUNCNAME[0]} with ECONFARGS unset"
[[ -z ${1} ]] && die "called ${FUNCNAME[0]} without passing python implementation"
pushd "${S}" >/dev/null || die
#
# This generates a QA warning about running econf in src_compile
# and src_install. Unfortunately the only other way to do this would
# involve building all of for each python implementation times, which
# wastes a _lot_ of CPU time and disk space. This hack will no longer
# be needed with >=ceph-11.2.
#
python_setup "${1}"
econf "${ECONFARGS[@]}"
popd >/dev/null || die
}
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
exeinto /usr/$(get_libdir)/ceph
newexe src/init-ceph ceph_init.sh
insinto /etc/logrotate.d/
newins "${FILESDIR}"/ceph.logrotate ${PN}
keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
newinitd "${FILESDIR}/rbdmap.initd" rbdmap
newinitd "${FILESDIR}/${PN}.initd-r3" ${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"
udev_dorules udev/*.rules
readme.gentoo_create_doc
python_setup 'python2*'
python_fix_shebang "${ED}"/usr/{,s}bin/
# python_fix_shebang apparently is not idempotent
sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \
"${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed"
}
pkg_postinst() {
readme.gentoo_print_elog
}

View File

@@ -0,0 +1,92 @@
From 39848e41b7c517cc5faab1ccf77c2804fd7d2628 Mon Sep 17 00:00:00 2001
From: Marcus Watts <mwatts@redhat.com>
Date: Wed, 11 Jan 2017 00:06:15 -0500
Subject: [PATCH] radosgw/swift: clean up flush / newline behavior.
The current code emits a newline after swift errors, but fails
to account for it when it calculates 'content-length'. This results in
some clients (go github.com/ncw/swift) producing complaints about the
unsolicited newline such as this,
Unsolicited response received on idle HTTP channel starting with "\n"; err=<nil>
This logic eliminates the newline on flush. This makes the content length
calculation correct and eliminates the stray newline.
There was already existing separator logic in the rgw plain formatter
that can emit a newline at the correct point. It had been checking
"len" to decide if previous data had been emitted, but that's reset to 0
by flush(). So, this logic adds a new per-instance variable to separately
track state that it emitted a previous item (and should emit a newline).
Fixes: http://tracker.ceph.com/issues/18473
Signed-off-by: Marcus Watts <mwatts@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 5f229d6a33eae4906f22cdb90941835e47ee9f02)
---
src/rgw/rgw_formats.cc | 11 +++++++----
src/rgw/rgw_formats.h | 1 +
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/rgw/rgw_formats.cc b/src/rgw/rgw_formats.cc
index 698ec96..61e9b66 100644
--- a/src/rgw/rgw_formats.cc
+++ b/src/rgw/rgw_formats.cc
@@ -25,6 +25,7 @@ RGWFormatter_Plain::RGWFormatter_Plain(const bool ukv)
: buf(NULL),
len(0),
max_len(0),
+ wrote_something(false),
min_stack_level(0),
use_kv(ukv)
{
@@ -41,7 +42,7 @@ void RGWFormatter_Plain::flush(ostream& os)
return;
if (len) {
- os << buf << "\n";
+ os << buf;
os.flush();
}
@@ -156,13 +157,14 @@ void RGWFormatter_Plain::dump_format_va(const char *name, const char *ns, bool q
vsnprintf(buf, LARGE_SIZE, fmt, ap);
const char *eol;
- if (len) {
+ if (wrote_something) {
if (use_kv && entry.is_array && entry.size > 1)
eol = ", ";
else
eol = "\n";
} else
eol = "";
+ wrote_something = true;
if (use_kv && !entry.is_array)
write_data("%s%s: %s", eol, name, buf);
@@ -268,10 +270,11 @@ void RGWFormatter_Plain::dump_value_int(const char *name, const char *fmt, ...)
va_end(ap);
const char *eol;
- if (len)
+ if (wrote_something) {
eol = "\n";
- else
+ } else
eol = "";
+ wrote_something = true;
if (use_kv && !entry.is_array)
write_data("%s%s: %s", eol, name, buf);
diff --git a/src/rgw/rgw_formats.h b/src/rgw/rgw_formats.h
index 9df5251..1c5afd1 100644
--- a/src/rgw/rgw_formats.h
+++ b/src/rgw/rgw_formats.h
@@ -56,6 +56,7 @@ class RGWFormatter_Plain : public Formatter {
std::list<struct plain_stack_entry> stack;
size_t min_stack_level;
bool use_kv;
+ bool wrote_something;
};
class RGWFormatterFlusher {