~alpine/aports

testing/twemproxy: new aport v1 PROPOSED

Yagnesh Mistry <ysh@live.in>
Yagnesh Mistry: 1
 testing/twemproxy: new aport

 4 files changed, 192 insertions(+), 0 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.alpinelinux.org/~alpine/aports/patches/1539/mbox | git am -3
Learn more about email & git

[alpine-aports] [PATCH] testing/twemproxy: new aport Export this patch

Yagnesh Mistry <ysh@live.in>
https://github.com/twitter/twemproxy
A fast, light-weight proxy for memcached and redis
---
 testing/twemproxy/APKBUILD                 | 85 ++++++++++++++++++++++++++++++
 testing/twemproxy/nutcracker.confd         |  5 ++
 testing/twemproxy/nutcracker.initd         | 42 +++++++++++++++
 testing/twemproxy/use-system-libyaml.patch | 60 +++++++++++++++++++++
 4 files changed, 192 insertions(+)
 create mode 100644 testing/twemproxy/APKBUILD
 create mode 100644 testing/twemproxy/nutcracker.confd
 create mode 100644 testing/twemproxy/nutcracker.initd
 create mode 100644 testing/twemproxy/use-system-libyaml.patch

diff --git a/testing/twemproxy/APKBUILD b/testing/twemproxy/APKBUILD
new file mode 100644
index 0000000..fc829d6
--- /dev/null
+++ b/testing/twemproxy/APKBUILD
@@ -0,0 +1,85 @@
# Maintainer: Yagnesh Mistry <ysh@live.in> 

pkgname=twemproxy
akaname=nutcracker
pkgver=0.4.1
pkgrel=0
pkgdesc="A fast, light-weight proxy for memcached and redis"
url="https://github.com/twitter/twemproxy"
arch="all"
license="ASL 2.0"
depends="yaml"
depends_dev=""
makedepends="automake autoconf libtool yaml-dev"
subpackages="$pkgname-doc"
source="saveas-https://github.com/twitter/twemproxy/archive/v$pkgver.tar.gz/$pkgname-$pkgver.tar.gz
	nutcracker.initd
	nutcracker.confd
	use-system-libyaml.patch
	"

_builddir="$srcdir"/$pkgname-$pkgver
_logdir=/var/log/$akaname
_rundir=/var/run/$akaname

prepare() {
	local i
	cd "$_builddir"
	for i in $source; do
		case $i in
		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done
}

build() {
	cd "$_builddir"
	autoreconf -vif
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		|| return 1
	make || return 1
}

package() {
	cd "$_builddir"
	make DESTDIR="$pkgdir" install || return 1
	install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.yml \
		"$pkgdir"/etc/$akaname/nutcracker.yml || return 1
        install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.leaf.yml \
		"$pkgdir"/etc/$akaname/nutcracker.leaf.yml || return 1
        install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.root.yml \
		"$pkgdir"/etc/$akaname/nutcracker.root.yml || return 1
	install -m755 -D "$srcdir"/$akaname.initd \
		"$pkgdir"/etc/init.d/$akaname || return 1
	install -m644 -D "$srcdir"/$akaname.confd \
		"$pkgdir"/etc/conf.d/$akaname || return 1

	install -m0755 -d "$pkgdir"/$_rundir || return 1
	install -m0755 -d "$pkgdir"/$_logdir || return 1
	
	_docs="README.md NOTICE ChangeLog"
	for _doc in $_docs; do
		install -m644 -D "$srcdir"/$pkgname-$pkgver/$_doc \
			"$pkgdir"/usr/share/doc/$akaname/$_doc || return 1
	done

	install -m644 -D "$srcdir"/$pkgname-$pkgver/LICENSE \
		"$pkgdir"/usr/share/licenses/$akaname/LICENSE || return 1

}

md5sums="6b27455285f81e4335d00983076cf4b8  twemproxy-0.4.1.tar.gz
531b2ded35c9f9e3c53388ceb9da9e9d  nutcracker.initd
5fcf33052bb7ddd286e58fcdef5335db  nutcracker.confd
521837066110c2d0248c11620bf66e15  use-system-libyaml.patch"
sha256sums="00c2940f91947bea9457a348316aac1aa1d4e757238aafbefc9d51057da8ede0  twemproxy-0.4.1.tar.gz
f6531c2bbb085e70e4de4b51a01e4b2a6fe6cec41ba4924cc7ac56d51393fdfd  nutcracker.initd
ff28c0ffb1aa82e7bcd19c79f76cdb05641b4181f6668349fe9ed87044ce0d3e  nutcracker.confd
718fe0cf3a48f51f5b8a2b6ef8120068b1604c7588b33e5db27de8301e77fdf4  use-system-libyaml.patch"
sha512sums="581fae1d12feb983ed25b22cd6f597fd28b7070906ac29d3990669ae5c626a468914021cee152a6a2299a2838c838ad907e4c911b911ef04166ac7bbb2982da1  twemproxy-0.4.1.tar.gz
56bc051eac972cc1e4cfb334673f8e4c8a5f0855fb4f0b66e05a148855dae34870d949a5d19c111d072a0405b2014a334151ad9414a40fdc67e559ff37d68093  nutcracker.initd
e69e6d7b48a360b8b7b7ec7d7d46e2c736c4e30e6d6a22ed5b01d64ccb3ec701537545b2b6e5c1cbf2ba9f657f86e7a94686e3dc8a43dcba9688695717d62f12  nutcracker.confd
beadf407de53378bfe0ee12bbdf2315bde220a322aa13fc1993b487e1503f8825280408c500c902db683ee35b255e304acfe2cb011a6e9ffe02cdbfcfb1d2bf5  use-system-libyaml.patch"
diff --git a/testing/twemproxy/nutcracker.confd b/testing/twemproxy/nutcracker.confd
new file mode 100644
index 0000000..95efa6b
--- /dev/null
+++ b/testing/twemproxy/nutcracker.confd
@@ -0,0 +1,5 @@
CONFFILE=/etc/nutcracker/nutcracker.yml
PIDFILE=/var/run/nutcracker/nutcracker.pid
LOGFILE=/var/log/nutcracker/nutcracker.log

DAEMON_ARGS="-c $CONFFILE -o $LOGFILE -p $PIDFILE -d"
diff --git a/testing/twemproxy/nutcracker.initd b/testing/twemproxy/nutcracker.initd
new file mode 100644
index 0000000..76d120a
--- /dev/null
+++ b/testing/twemproxy/nutcracker.initd
@@ -0,0 +1,42 @@
#!/sbin/openrc-run

NAME="nutcracker"
DAEMON=/usr/sbin/nutcracker
USER="${USER:-nobody}"
CONFFILE="${CONFFILE:-/etc/nutcracker/nutcracker.yml}"

DAEMON_ARGS=${DAEMON_ARGS:-"-c $CONFFILE -o $LOGFILE -p $PIDFILE -d"}

depend() {
	need net
	after firewall
}

checkconf() {
	ebegin "Testing configuration: "
		${DAEMON} --test-conf \
		--conf-file=${CONFFILE} \
		>/dev/null 2>&1
	eend $?
}


start() {
	checkconf || exit 1
	ebegin "Starting ${NAME}: "
		start-stop-daemon --start --quiet \
			--pidfile ${PIDFILE} \
			--chuid ${USER}:${USER} \
			--exec ${DAEMON} -- ${DAEMON_ARGS}
	eend $?
}

stop() {
	ebegin "Stopping ${NAME}: "
		start-stop-daemon --stop --quiet \
			--pidfile ${PIDFILE} \
			--exec ${DAEMON}
	eend $?
}


diff --git a/testing/twemproxy/use-system-libyaml.patch b/testing/twemproxy/use-system-libyaml.patch
new file mode 100644
index 0000000..e3ec54a
--- /dev/null
+++ b/testing/twemproxy/use-system-libyaml.patch
@@ -0,0 +1,60 @@
--- twemproxy-0.4.1/Makefile.am
+++ twemproxy/src/twemproxy-0.4.1/Makefile.am
@@ -2,7 +2,7 @@
 
 ACLOCAL_AMFLAGS = -I m4
 
-SUBDIRS = contrib src
+SUBDIRS = src
 
 dist_man_MANS = man/nutcracker.8
 
--- twemproxy-0.4.1/configure.ac
+++ twemproxy/src/twemproxy-0.4.1/configure.ac
@@ -75,6 +75,14 @@
 # Checks for libraries
 AC_CHECK_LIB([m], [pow])
 AC_CHECK_LIB([pthread], [pthread_create])
+AC_CHECK_LIB([yaml], [yaml_get_version_string],,LIBYAML="no")
+if test "$LIBYAML" = "no"; then
+    echo
+    echo "	Error: libyaml library not found."
+    echo "	Run apk add yaml-dev"
+    echo
+    exit 1
+fi
 
 # Checks for library functions
 AC_FUNC_FORK
@@ -196,15 +204,8 @@
   [AC_DEFINE([HAVE_STATS], [1], [Define to 1 if stats is not disabled])])
 AC_MSG_RESULT($disable_stats)
 
-# Untar the yaml-0.1.4 in contrib/ before config.status is rerun
-AC_CONFIG_COMMANDS_PRE([tar xvfz contrib/yaml-0.1.4.tar.gz -C contrib])
-
-# Call yaml-0.1.4 ./configure recursively
-AC_CONFIG_SUBDIRS([contrib/yaml-0.1.4])
-
 # Define Makefiles
 AC_CONFIG_FILES([Makefile
-                 contrib/Makefile
                  src/Makefile
                  src/hashkit/Makefile
                  src/proto/Makefile
--- twemproxy-0.4.1/src/Makefile.am
+++ twemproxy/src/twemproxy-0.4.1/src/Makefile.am
@@ -21,7 +21,7 @@
 AM_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations
 
 AM_LDFLAGS =
-AM_LDFLAGS += -lm -lpthread -rdynamic
+AM_LDFLAGS += -lm -lpthread -lyaml -rdynamic
 if OS_SOLARIS
 AM_LDFLAGS += -lnsl -lsocket
 endif
@@ -57,4 +57,3 @@
 nutcracker_LDADD = $(top_builddir)/src/hashkit/libhashkit.a
 nutcracker_LDADD += $(top_builddir)/src/proto/libproto.a
 nutcracker_LDADD += $(top_builddir)/src/event/libevent.a
-nutcracker_LDADD += $(top_builddir)/contrib/yaml-0.1.4/src/.libs/libyaml.a
-- 
2.4.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---