summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2009-12-20 19:19:34 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2009-12-20 19:19:34 +0000
commitdb991c4ce5268caab75ea260044402c91bb6fb00 (patch)
treea44028174b1b7fb8c12b769579f5dc9fdee017b5 /sys-cluster/gearmand
parentDrop net-analyzer/cacti-cactid mask since package was removed from the tree. (diff)
downloadhistorical-db991c4ce5268caab75ea260044402c91bb6fb00.tar.gz
historical-db991c4ce5268caab75ea260044402c91bb6fb00.tar.bz2
historical-db991c4ce5268caab75ea260044402c91bb6fb00.zip
Initial import of gearmand, thanks to Pavel Stratil (who's co-maintaining the package) who wrote the basic ebuild and init script. Closes bug #279413, reported by Rob Peck (who also wrote an alternative ebuild).
Package-Manager: portage-2.2_rc60/cvs/Linux x86_64
Diffstat (limited to 'sys-cluster/gearmand')
-rw-r--r--sys-cluster/gearmand/ChangeLog13
-rw-r--r--sys-cluster/gearmand/Manifest16
-rw-r--r--sys-cluster/gearmand/files/gearmand.conf.d38
-rw-r--r--sys-cluster/gearmand/files/gearmand.init.d76
-rw-r--r--sys-cluster/gearmand/gearmand-0.11-r1.ebuild75
-rw-r--r--sys-cluster/gearmand/metadata.xml24
6 files changed, 242 insertions, 0 deletions
diff --git a/sys-cluster/gearmand/ChangeLog b/sys-cluster/gearmand/ChangeLog
new file mode 100644
index 000000000000..1f770ada606c
--- /dev/null
+++ b/sys-cluster/gearmand/ChangeLog
@@ -0,0 +1,13 @@
+# ChangeLog for sys-cluster/gearmand
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gearmand/ChangeLog,v 1.1 2009/12/20 19:19:34 flameeyes Exp $
+
+*gearmand-0.11-r1 (20 Dec 2009)
+
+ 20 Dec 2009; Diego E. Pettenò <flameeyes@gentoo.org>
+ +gearmand-0.11-r1.ebuild, +files/gearmand.conf.d, +files/gearmand.init.d,
+ +metadata.xml:
+ Initial import of gearmand, thanks to Pavel Stratil (who's co-maintaining
+ the package) who wrote the basic ebuild and init script. Closes bug
+ #279413, reported by Rob Peck (who also wrote an alternative ebuild).
+
diff --git a/sys-cluster/gearmand/Manifest b/sys-cluster/gearmand/Manifest
new file mode 100644
index 000000000000..9943e9143216
--- /dev/null
+++ b/sys-cluster/gearmand/Manifest
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX gearmand.conf.d 1527 RMD160 8ac71a123edaea9d072e98beaaea0fb120fb1f82 SHA1 1f07a9ce72dc3837b8016eba2ad86bc5989f368c SHA256 8bbc8d9f3fa064de1ed44f5678b89d18b681a4f1602d37f5019fcd8b0032ffd8
+AUX gearmand.init.d 3091 RMD160 0ea13278e1a78b9f9b30059bc885ebbadc761e6a SHA1 465d613cc5913ca2e5954d65c462025debc94395 SHA256 34ad4ff0bc8fd6c7c5af38998dbe7a21840e95c91bacaf4f170bd2f90397dc6e
+DIST gearmand-0.11.tar.gz 593324 RMD160 d5d79c9153fa496f690875b8572c825c826ba7cd SHA1 6b3d7fdb3d2d19a1cafa82efa0a443df190fb5db SHA256 25848a11bc4ba91329e8992c5a3ccbb82afe104ef558e67cf3ca9669d3044a92
+EBUILD gearmand-0.11-r1.ebuild 2186 RMD160 b607b51d218eb231256945d4a2f3f08971485bea SHA1 f4b38a8ae79464fbf18e193034e5f47747229c4d SHA256 ab1ad858a64f3b1891e3a485fca33b344efe3bb894706c4315cc0ee09a8455c7
+MISC ChangeLog 617 RMD160 389823a86480324ec3add6e6b2476b0bc1dad3a0 SHA1 64e6fcea3cf7319eac0ee7f7a8f3487fa8800041 SHA256 6d41aea6ad373927a482da1aefefdbb224c62a6cb2abec984563fd39f4953827
+MISC metadata.xml 708 RMD160 eec720201599f96f243ec2243393c9ccaef96d43 SHA1 eb913c491eff074b15220972612615c76292e857 SHA256 30926d93ad0e6f652cf6dd5766416e8f2a206e6b4d2a8d9bd47babb60f3c1502
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.13 (GNU/Linux)
+
+iEYEARECAAYFAksueM0ACgkQAiZjviIA2XigSQCg11g/aeTz5YOQbGsdEhulw1UA
+WEkAnRhceMTqWKCc6RkazaMWKB07fwIm
+=/Ua0
+-----END PGP SIGNATURE-----
diff --git a/sys-cluster/gearmand/files/gearmand.conf.d b/sys-cluster/gearmand/files/gearmand.conf.d
new file mode 100644
index 000000000000..9786d2c517c4
--- /dev/null
+++ b/sys-cluster/gearmand/files/gearmand.conf.d
@@ -0,0 +1,38 @@
+# /etc/conf.d/gearmand: config file for /etc/init.d/gearmand
+
+# Persistent queue store
+# The following queue stores are available: drizzle|memcache|mysql|postgre|sqlite|none
+# If you do not wish to use persistent queues, leave this option commented out.
+# Note that persistent queue mechanisms are mutally exclusive.
+#PERSISTENT=""
+
+# Persistent queue settings for drizzle, mysql and postgre
+#PERSISTENT_SOCKET=""
+#PERSISTENT_HOST=""
+#PERSISTENT_PORT=""
+#PERSISTENT_USER=""
+#PERSISTENT_PASS=""
+#PERSISTENT_DB=""
+#PERSISTENT_TABLE=""
+
+# Persistent queue settings for sqlite
+#PERSISTENT_FILE=""
+
+# Persistent queue settings for memcache
+#PERSISTENT_SERVERLIST=""
+
+# General settings
+#
+# -j, --job-retries=RETRIES Number of attempts to run the job before the job
+# server removes it. Thisis helpful to ensure a bad
+# job does not crash all available workers. Default
+# is no limit.
+# -L, --listen=ADDRESS Address the server should listen on. Default is
+# INADDR_ANY.
+# -p, --port=PORT Port the server should listen on. Default=4730.
+# -r, --protocol=PROTOCOL Load protocol module.
+# -t, --threads=THREADS Number of I/O threads to use. Default=0.
+# -v, --verbose Increase verbosity level by one.
+# -w, --worker-wakeup=WORKERS Number of workers to wakeup for each job received.
+# The default is to wakeup all available workers.
+GEARMAND_PARAMS=""
diff --git a/sys-cluster/gearmand/files/gearmand.init.d b/sys-cluster/gearmand/files/gearmand.init.d
new file mode 100644
index 000000000000..895021e11f4c
--- /dev/null
+++ b/sys-cluster/gearmand/files/gearmand.init.d
@@ -0,0 +1,76 @@
+#!/sbin/runscript
+# Copyright 2009 Pavel Stratil, senbonzakura.eu
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use localmount
+
+ case $PERSISTENT in
+ drizzle)
+ use drizzle
+ ;;
+ memcache)
+ use memcache
+ ;;
+ mysql)
+ use mysql
+ ;;
+ postgre)
+ use postgresql
+ ;;
+ *)
+ ;;
+ esac
+}
+
+start() {
+ case ${PERSISTENT:-none} in
+ drizzle|mysql)
+ GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libdrizzle"
+ [ ${PERSISTENT_HOST} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-host=${PERSISTENT_HOST}"
+ [ ${PERSISTENT_USER} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-user=${PERSISTENT_USER}"
+ [ ${PERSISTENT_PASS} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-password=${PERSISTENT_PASS}"
+ [ ${PERSISTENT_DB} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-db=${PERSISTENT_DB}"
+ [ ${PERSISTENT_TABLE} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-table=${PERSISTENT_TABLE}"
+ [ ${PERSISTENT_PORT} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-port=${PERSISTENT_PORT}"
+ [ ${PERSISTENT_SOCKET} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-uds=${PERSISTENT_SOCKET}"
+ [ ${PERSISTENT} == "mysql" ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libdrizzle-mysql"
+ ;;
+ memcache)
+ [ ${PERSISTENT_SERVERLIST} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libmemcached --libmemcached-servers=${PERSISTENT_SERVERLIST}"
+ ;;
+ postgre)
+ GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libpq"
+ [ ${PERSISTENT_HOST} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-host=${PERSISTENT_HOST}"
+ [ ${PERSISTENT_USER} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-user=${PERSISTENT_USER}"
+ [ ${PERSISTENT_PASS} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-password=${PERSISTENT_PASS}"
+ [ ${PERSISTENT_DB} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-dbname=${PERSISTENT_DB}"
+ [ ${PERSISTENT_PORT} ] && GEARMAND_PARAMS="${GEARMAND_PARAMS} --libpq-port=${PERSISTENT_PORT}"
+ [ ${PERSISTENT_TABLE} ] && ewarn "Libpq doesn't recognise 'table' parameter."
+ [ ${PERSISTENT_SOCKET} ] && ewarn "Libpq doesn't recognise 'socket' parameter. If no host is set, it automatically falls back to a socket."
+ ;;
+ sqlite)
+ GEARMAND_PARAMS="${GEARMAND_PARAMS} -q libsqlite3 --libsqlite3-db=${PERSISTENT_FILE}"
+ ;;
+ none)
+ ;;
+ *)
+ eerror "Wrong persistent queue store setting in /etc/conf.d/gearmand."
+ return 1
+ ;;
+ esac
+
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --pidfile /var/run/gearmand/gearmand.pid --start \
+ --exec /usr/sbin/gearmand -- --pid-file=/var/run/gearmand/gearmand.pid \
+ --user=gearmand --daemon \
+ --log-file=/var/log/gearmand/gearmand.log ${GEARMAND_PARAMS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --pidfile /var/run/gearmand/gearmand.pid --stop \
+ --exec /usr/sbin/gearmand
+ eend $?
+}
diff --git a/sys-cluster/gearmand/gearmand-0.11-r1.ebuild b/sys-cluster/gearmand/gearmand-0.11-r1.ebuild
new file mode 100644
index 000000000000..d87329b9e686
--- /dev/null
+++ b/sys-cluster/gearmand/gearmand-0.11-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gearmand/gearmand-0.11-r1.ebuild,v 1.1 2009/12/20 19:19:34 flameeyes Exp $
+
+EAPI=2
+
+inherit flag-o-matic
+
+DESCRIPTION="Generic framework to farm out work to other machines"
+HOMEPAGE="http://www.gearman.org/"
+SRC_URI="http://launchpad.net/gearmand/trunk/${PV}/+download/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug tcmalloc +memcache"
+
+RDEPEND="dev-libs/libevent
+ || ( >=sys-apps/util-linux-2.16 <sys-libs/e2fsprogs-libs-1.41.8 )
+ tcmalloc? ( dev-util/google-perftools )
+ memcache? ( dev-libs/libmemcached )"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ enewuser gearmand -1 -1 /dev/null nogroup
+}
+
+src_configure() {
+ local myconf=
+
+ # Don't ever use --enable-assert since configure.ac is broken, and
+ # only does --disable-assert correctly.
+ if use debug; then
+ # Since --with-debug would turn off optimisations as well as
+ # enabling debug, we just enable debug through the
+ # preprocessor then.
+ append-flags -DDEBUG
+
+ # Right now disabling asserts break the code, so never disable
+ # them as it is.
+ #else
+ # myconf="${myconf} --disable-assert"
+ fi
+
+ # TODO once there's a drizzle/librizzle ebuild, add drizzle to iuse
+ # TODO new compile options for queue storage: libsqlite,libpq,libdrizzle
+ # TODO mtmalloc, umem, dtrace - all of this solaris stuff only?
+ # TODO libmemcached pulls memcached. Is this correct?
+ econf \
+ --disable-dependency-tracking \
+ $(use_enable tcmalloc) \
+ $(use_enable memcache libmemcached) \
+ --disable-mtmalloc \
+ --disable-libsqlite3 \
+ --disable-libdrizzle \
+ --disable-libpq \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "install failed"
+
+ dodoc README AUTHORS ChangeLog || die "dodoc failed"
+
+ newinitd "${FILESDIR}"/gearmand.init.d gearmand || die
+ newconfd "${FILESDIR}"/gearmand.conf.d gearmand || die
+
+ keepdir /var/run/gearmand || die
+ fperms 0755 /var/run/gearmand || die
+ fowners gearmand:nogroup /var/run/gearmand || die
+
+ keepdir /var/log/gearmand || die
+ fperms 0755 /var/log/gearmand || die
+ fowners gearmand /var/log/gearmand || die
+}
diff --git a/sys-cluster/gearmand/metadata.xml b/sys-cluster/gearmand/metadata.xml
new file mode 100644
index 000000000000..898d240b8d4c
--- /dev/null
+++ b/sys-cluster/gearmand/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <maintainer>
+ <email>flameeyes@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>pavel.stratil-jun@fenix.cz</email>
+ <description>Proxied co-maintainer, CC on all bugs</description>
+ </maintainer>
+
+ <use>
+ <flag name="tcmalloc">
+ Use the <pkg>dev-util/google-perftools</pkg> libraries to
+ replace the malloc() implementation with a possibly faster one.
+ </flag>
+
+ <flag name="memcache">
+ Support memcache daemon (via <pkg>dev-libs/libmemcached</pkg>)
+ for the queue storage.
+ </flag>
+ </use>
+</pkgmetadata>