]> Pileus Git - ~andy/sunrise/commitdiff
dev-db/membase-server-community: New ebuild for bug 343021
authorBradford Folkens (mobilfunk) <bfolkens@gmail.com>
Thu, 28 Oct 2010 02:30:57 +0000 (02:30 +0000)
committerBradford Folkens (mobilfunk) <bfolkens@gmail.com>
Thu, 28 Oct 2010 02:30:57 +0000 (02:30 +0000)
svn path=/sunrise/; revision=11494

dev-db/membase-server-community/ChangeLog [new file with mode: 0644]
dev-db/membase-server-community/Manifest [new file with mode: 0644]
dev-db/membase-server-community/files/1.6.0.1/config [new file with mode: 0644]
dev-db/membase-server-community/files/1.6.0.1/init-epmd [new file with mode: 0755]
dev-db/membase-server-community/files/1.6.0.1/init-server [new file with mode: 0755]
dev-db/membase-server-community/files/1.6.0.1/limits [new file with mode: 0644]
dev-db/membase-server-community/membase-server-community-1.6.0.1.ebuild [new file with mode: 0644]
dev-db/membase-server-community/metadata.xml [new file with mode: 0644]

diff --git a/dev-db/membase-server-community/ChangeLog b/dev-db/membase-server-community/ChangeLog
new file mode 100644 (file)
index 0000000..8751132
--- /dev/null
@@ -0,0 +1,10 @@
+# ChangeLog for net-misc/memcached
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+  28 Oct 2010; Brad Folkens (bfolkens) <bfolkens@gmail.com>
+  +membase-server-community-1.6.0.1.ebuild, +files/1.6.0.1,
+  +files/1.6.0.1/config, +files/1.6.0.1/init-epmd,
+  +files/1.6.0.1/init-server, +files/1.6.0.1/limits, +metadata.xml:
+  New ebuild for bug 343021
+
diff --git a/dev-db/membase-server-community/Manifest b/dev-db/membase-server-community/Manifest
new file mode 100644 (file)
index 0000000..4a139e4
--- /dev/null
@@ -0,0 +1,8 @@
+AUX 1.6.0.1/config 37 RMD160 d5992201e57eb06649eeee27ed5a923055e33882 SHA1 3fdd3d2c59d471dc53720fedea2c095b9618bb32 SHA256 33839d8bdb12509e3a30d333be3592857192be05e975015424403bc1add86d3e
+AUX 1.6.0.1/init-epmd 573 RMD160 9210818ca7436ed6b4d4978a941ed5ece35d2a6f SHA1 83bd514f71350dfa764335509cc2604cea168ab0 SHA256 4d4f75b1ffc36276f95b4726ada1c471dd0ae407685aac486d5350b603866bfc
+AUX 1.6.0.1/init-server 1477 RMD160 df9552d596f0b81c5ef172ab72c0880b7f2afb9d SHA1 5a20e1832f4d7f9d606fc57f9e6c8486e97089ff SHA256 5a2ecc9254e478e4827de712aed2d0e74999021a679b45e10c72611e9c444a97
+AUX 1.6.0.1/limits 88 RMD160 af9a929f2e63b67e40a95afd6a2eaca9043d06b6 SHA1 7ea69a703d0a0c90bb0bc25f4caa41a6fc0ea081 SHA256 8f9005c0ea6f3b97702783cee53509d471d2e5f96d73d95bb634ae9a6a74042e
+DIST membase-server-community_1.6.0.1_src.tar.gz 11562668 RMD160 0203aff2cb097b979dab75dd5964bc1f61148c46 SHA1 e800bfa11c1ea3f3a0f25db29e1924820a30e638 SHA256 5d88b20e4311a495ec3e7ffd403b0a370db3267d9346aafebd30c8fe97a07e1e
+EBUILD membase-server-community-1.6.0.1.ebuild 4088 RMD160 2e70517624ea43d03ce4d59cbba605e5a870345d SHA1 888cb1ae962055d5e2b4564d0ef63cc49adb837d SHA256 d4ad19f46d94577e36fca79373ba186018458079cd0321ca50e2f479301c9571
+MISC ChangeLog 387 RMD160 b0cccde62b8dccefc89329291575cdb8364a191c SHA1 6ea2f0ff2a17fc39cdb7ebedeeb66f7adc09eb76 SHA256 8d769bde18a088635342de724c6ec1a71a43d7e27cbfbc436cc60015d05c7a90
+MISC metadata.xml 794 RMD160 14769213fac3a2c8c9ef845ecff9096703754895 SHA1 40b0df9a094c4a4730bcbc897fd8ae7885c82edb SHA256 5980d8e1e218ad174835fc376af6e6116887ac0dcc3e7149ab79d13eea01dac1
diff --git a/dev-db/membase-server-community/files/1.6.0.1/config b/dev-db/membase-server-community/files/1.6.0.1/config
new file mode 100644 (file)
index 0000000..3ac3adb
--- /dev/null
@@ -0,0 +1 @@
+{directory, "/etc/membase/1.6.0.1"}.
diff --git a/dev-db/membase-server-community/files/1.6.0.1/init-epmd b/dev-db/membase-server-community/files/1.6.0.1/init-epmd
new file mode 100755 (executable)
index 0000000..a2e7ae6
--- /dev/null
@@ -0,0 +1,26 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+VER=1.6.0.1
+MEMBASE_USER=membase
+MEMBASE_PATH=/opt/membase/$VER
+
+depend() {
+       need net
+}
+
+start() {
+       cd $MEMBASE_PATH/ns_server
+
+       # Initialize distributed erlang on the system (i.e. epmd)
+       start-stop-daemon --start \
+               -c membase -m --pidfile /var/run/membase/epmd.pid \
+               --exec /usr/bin/erl --oknodo -- \
+                       -noshell -setcookie nocookie -sname init -run init stop 2>&1 > /dev/null
+}
+
+stop() {
+       start-stop-daemon --stop --name epmd
+}
diff --git a/dev-db/membase-server-community/files/1.6.0.1/init-server b/dev-db/membase-server-community/files/1.6.0.1/init-server
new file mode 100755 (executable)
index 0000000..755db76
--- /dev/null
@@ -0,0 +1,51 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+VER=1.6.0.1
+NODE_NAME=ns_1@127.0.0.1
+MEMBASE_USER=membase
+MEMBASE_PATH=/opt/membase/$VER
+MEMBASE_LOGS=/var/log/membase/$VER
+MNESIA_PATH=/var/lib/membase/$VER/mnesia
+CONFIG_PATH=/etc/membase/$VER/config
+PIDFILE=/var/run/membase-server.pid
+
+depend() {
+       need net membase-epmd
+}
+
+start() {
+        ebegin "Starting membase"
+
+       touch $PIDFILE
+       chown membase:daemon $PIDFILE
+
+       # pam-limits (/etc/security/limits.d and limits.conf) aren't working with start-stop-daemon
+       ulimit -n 10240
+
+        start-stop-daemon --start --oknodo --chdir $MEMBASE_PATH/ns_server -c "$MEMBASE_USER" --exec /usr/bin/erl -- \
+               +A 16 \
+               -pa `find $MEMBASE_PATH/ns_server -type d -name ebin` \
+               -setcookie nocookie \
+               -ns_server error_logger_mf_dir \"$MEMBASE_LOGS\" \
+               -ns_server error_logger_mf_maxbytes 10485760 \
+               -ns_server error_logger_mf_maxfiles 10 \
+               -kernel inet_dist_listen_min 21100 inet_dist_listen_max 21199 \
+               -ns_server pidfile \"$PIDFILE\" \
+               -ns_server ns_server_config \"$CONFIG_PATH\" \
+               -mnesia dir \"$MNESIA_PATH\" \
+               -detached \
+               -noshell -noinput \
+               -run ns_bootstrap
+               #-name $NODE_NAME \  # causing things to break?
+        eend $? "Failed to start membase" 
+}
+
+stop() {
+        ebegin "Stopping membase" 
+        start-stop-daemon --stop --pidfile ${PIDFILE}
+        eend $? "Failed to stop membase"
+        rm -f ${PIDFILE}
+}
diff --git a/dev-db/membase-server-community/files/1.6.0.1/limits b/dev-db/membase-server-community/files/1.6.0.1/limits
new file mode 100644 (file)
index 0000000..8c9bb7c
--- /dev/null
@@ -0,0 +1,3 @@
+#<domain>        <type>  <item>  <value>
+
+membase         -       nofile          10240
diff --git a/dev-db/membase-server-community/membase-server-community-1.6.0.1.ebuild b/dev-db/membase-server-community/membase-server-community-1.6.0.1.ebuild
new file mode 100644 (file)
index 0000000..0e81aa2
--- /dev/null
@@ -0,0 +1,151 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header$
+
+EAPI=2
+inherit eutils
+
+MY_PV="${PV/_rc/-rc}"
+MY_P="${PN}_${MY_PV}"
+
+DESCRIPTION="Distributed key-value database management system"
+HOMEPAGE="http://www.membase.org/"
+SRC_URI="http://c2512712.cdn.cloudfiles.rackspacecloud.com/${MY_P}_src.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="-ia64 -x86"
+IUSE=""
+
+RDEPEND=">=dev-libs/libevent-2.0.7
+                >=net-misc/curl-7.21.1
+                >=dev-lang/erlang-13.2.4
+                >=sys-devel/gcc-4.3.0
+                >=dev-libs/check-0.9.4"
+DEPEND="${RDEPEND}
+               !>=dev-lang/erlang-14"
+               # Erlang 14A no longer allows compile option nowarn_bif_clash
+
+S="${WORKDIR}/${MY_P}_src"
+
+src_configure() {
+       dodir lib doc
+
+       einfo "Configuring and building memcached"
+       cd "${S}/memcached" || die
+       econf --enable-isasl && emake || die
+
+       einfo "Configuring bucket_engine"
+       cd "${S}/bucket_engine" || die
+       econf --with-memcached="${S}/memcached" || die
+
+       einfo "Configuring ep-engine"
+       cd "${S}/ep-engine" || die
+       econf --with-memcached="${S}/memcached" || die
+
+       # Some libs are depended on during the config process so build them now
+
+       einfo "Configuring and building libmemcached"
+       cd "${S}/libmemcached" || die
+       econf --prefix="${S}/lib" \
+                 --mandir="${S}/doc" \
+                 --disable-shared \
+                 --disable-dtrace \
+                 --enable-static \
+                 --with-memcached="${S}/memcached/memcached" || die
+       emake && emake install || die
+
+       einfo "Configuring and building libvbucket"
+       cd "${S}/libvbucket" || die
+       econf --prefix="${S}/lib" \
+                 --mandir="${S}/doc" \
+                 --disable-shared \
+                 --enable-static || die
+       emake && emake install || die
+
+       einfo "Configuring and building vbucketmigrator"
+       cd "${S}/vbucketmigrator" || die
+       econf --prefix="${S}/lib" \
+                 --mandir="${S}/doc" \
+                 --without-sasl \
+                 --with-isasl \
+                 --with-memcached="${S}/memcached" || die
+       emake || die
+
+       einfo "Configuring and building libconflate"
+       cd "${S}/libconflate" || die
+       econf --prefix="${S}/lib" \
+                 --mandir="${S}/doc" \
+                 --disable-shared \
+                 --enable-static || die
+       emake && emake install || die
+
+       einfo "Configuring moxi"
+       cd "${S}/moxi" || die
+       econf --prefix="${S}/lib" \
+                 --mandir="${S}/doc" \
+                 --with-memcached="${S}/memcached/memcached" \
+                 --enable-moxi-libvbucket \
+                 --enable-moxi-libmemcached \
+                 CFLAGS="-I${S}/lib/include -Wno-error" \
+                 LDFLAGS="-L${S}/lib/lib" || die
+}
+
+src_compile() {
+       echo "Building bucket_engine"
+       cd "${S}/bucket_engine" || die
+       emake || die
+
+       echo "Building ep-engine"
+       cd "${S}/ep-engine" || die
+       emake || die
+
+       echo "Building moxi"
+       cd "${S}/moxi" || die
+       emake || die
+
+       echo "Building ns-server"
+       cd "${S}/ns_server"
+       emake || die
+}
+
+src_install() {
+       # Just copy the whole directory over to /opt until we split out packages
+       # more efficiently (and/or respect the Makefile destinations)
+       dodir opt/membase
+       cp -a "${S}"/{bucket_engine,ep-engine,libconflate,libmemcached,libvbucket,membase-cli,memcached,moxi,ns_server,vbucketmigrator} \
+                 "${D}/opt/membase" || die "Install failed!"
+
+       # Setup keeps for the data, config, and log dirs
+       dodir "etc/membase/${PV}"
+       keepdir "etc/membase/${PV}"
+       cp "${FILESDIR}/${PV}/config" "${D}/etc/membase/${PV}" || \
+               die "Install failed!"
+       dosym "etc/membase/${PV}/priv" "/etc/membase/${PV}"
+       chown -R membase:daemon "${D}/etc/membase" || \
+               die "Install failed!"
+
+       dodir "var/lib/membase/${PV}/mnesia" "var/lib/membase/${PV}/data"
+       keepdir "var/lib/membase/${PV}/mnesia" "var/lib/membase/${PV}/data"
+       chown -R membase:daemon "${D}/var/lib/membase" || \
+               die "Install failed!"
+
+       dodir "var/log/membase/${PV}"
+       keepdir "var/log/membase/${PV}"
+       chown -R membase:daemon "${D}/var/log/membase/${PV}" || \
+               die "Install failed!"
+
+       # TODO: Sort through all the misc docs in the different subprojects and
+       # dodoc them
+       doman doc/man1/* || die
+       doman doc/man3/* || die
+       doman doc/man4/* || die
+
+       # Install the initscripts
+       newinitd "${FILESDIR}/${PV}/init-epmd" membase-epmd
+       newinitd "${FILESDIR}/${PV}/init-server" membase-server
+}
+
+pkg_setup() {
+       enewuser membase -1 -1 /var/lib/membase daemon
+}
diff --git a/dev-db/membase-server-community/metadata.xml b/dev-db/membase-server-community/metadata.xml
new file mode 100644 (file)
index 0000000..b294d18
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer>
+  <email>bfolkens@gmail.com</email>
+</maintainer>
+<longdescription>
+Membase is a distributed key-value database management system, optimized for storing data behind interactive web applications. Membase automatically spreads data and I/O across servers. This "scale out" approach at the data layer permits virtually unlimited growth of transaction capacity, with linear increases in cost and constant per-operation performance.
+
+Membase is in production behind thousands of applications, from shared-server deployments at Heroku to dedicated Membase clusters with hundreds of servers at Zynga and NHN.
+</longdescription>
+</pkgmetadata>