summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/diamond/diamond-4.0.515.20170311.ebuild')
-rw-r--r--app-admin/diamond/diamond-4.0.515.20170311.ebuild101
1 files changed, 101 insertions, 0 deletions
diff --git a/app-admin/diamond/diamond-4.0.515.20170311.ebuild b/app-admin/diamond/diamond-4.0.515.20170311.ebuild
new file mode 100644
index 000000000000..a05de260f80f
--- /dev/null
+++ b/app-admin/diamond/diamond-4.0.515.20170311.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/python-diamond/Diamond.git"
+ S=${WORKDIR}/diamond-${PV}
+else
+ GHASH=73207d04e0739a4ce92bc201b36681c42d9fa7e7 # python3 branch
+ SRC_URI="https://github.com/python-diamond/Diamond/archive/${GHASH}.tar.gz -> python-diamond-${PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ S=${WORKDIR}/Diamond-${GHASH}
+fi
+
+PYTHON_COMPAT=( python3_6 )
+
+inherit distutils-r1 prefix
+
+DESCRIPTION="Python daemon that collects and publishes system metrics"
+HOMEPAGE="https://github.com/python-diamond/Diamond"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test mongo mysql snmp redis"
+
+RDEPEND="dev-python/configobj
+ dev-python/setproctitle
+ mongo? ( dev-python/pymongo )
+ mysql? ( dev-python/mysql-python )
+ snmp? ( dev-python/pysnmp )
+ redis? ( dev-python/redis-py )
+ !kernel_linux? ( >=dev-python/psutil-3 )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/mock
+ dev-python/pysnmp
+ )"
+
+src_prepare() {
+ # adjust for Prefix
+ hprefixify bin/diamond*
+
+ # fix the version (not set in GitHub archive)
+ sed -i -e "s/__VERSIONTOKENHERE__/${PV}/" src/diamond/version.py.tmpl || die
+ echo "${PV}" > version.txt || die
+ # fix psutil usage
+ sed -i -e 's/psutil\.network_io_counters/psutil.net_io_counters/' \
+ src/collectors/network/network.py || die
+ # fix symlink out of place
+ rm README.md || die
+ cp docs/index.md README.md || die
+
+ # this module isn't Python3 yet (lambda), if you use this and have a
+ # fix, let me know
+ rm src/diamond/handler/rrdtool.py || die
+
+ # forgotten conversion
+ sed -i \
+ -e 's/import Queue/import queue/' \
+ -e 's/Queue\.Full/queue.Full/' \
+ src/diamond/handler/queue.py || die
+ # fix usage of map as list
+ sed -i \
+ -e '/paths = map(str.strip, paths)/d' \
+ src/diamond/utils/classes.py || die
+ # send data as bytes
+ sed -i \
+ -e '/self.socket.sendall/s/data/str.encode(data)/' \
+ src/diamond/handler/graphite.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # don't want to depend on docker for just this
+ mv src/collectors/docker_collector/test/{test,no}docker_collector.py || die
+ # fails on binding ports
+ mv src/collectors/portstat/tests/{test,no}_portstat.py || die
+ "${PYTHON}" ./test.py || die "Tests fail with ${PYTHON}"
+}
+
+python_install() {
+ export VIRTUAL_ENV=1
+ distutils-r1_python_install
+ python_optimize
+ mv "${ED}"/usr/etc "${ED}"/ || die
+ rm "${ED}"/etc/diamond/*.windows # won't need these
+ sed -i \
+ -e '/pid_file =/s:/var/run:/run:' \
+ "${ED}"/etc/diamond/diamond.conf.example || die
+ hprefixify "${ED}"/etc/diamond/diamond.conf.example
+}
+
+src_install() {
+ distutils-r1_src_install
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ keepdir /var/log/diamond
+}