summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorDirkjan Ochtman <djc@gentoo.org>2012-12-26 11:01:44 +0000
committerDirkjan Ochtman <djc@gentoo.org>2012-12-26 11:01:44 +0000
commit3f315c41b6ddecfdd81ceecf0d29372d3c12565b (patch)
treedc92c9af9ab10a9577f5689c132b1ca4901431ae /dev-db
parentStable for HPPA (bug #423527). (diff)
downloadgentoo-2-3f315c41b6ddecfdd81ceecf0d29372d3c12565b.tar.gz
gentoo-2-3f315c41b6ddecfdd81ceecf0d29372d3c12565b.tar.bz2
gentoo-2-3f315c41b6ddecfdd81ceecf0d29372d3c12565b.zip
Fix redis compilation against jemalloc-3.2.0 (bug 444796).
(Portage version: 2.1.11.27/cvs/Linux x86_64, signed Manifest commit with key 6B065BFB)
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/redis/ChangeLog8
-rw-r--r--dev-db/redis/files/redis-2.4.17-shared.patch22
-rw-r--r--dev-db/redis/redis-2.4.17-r1.ebuild112
3 files changed, 141 insertions, 1 deletions
diff --git a/dev-db/redis/ChangeLog b/dev-db/redis/ChangeLog
index d71a127b3e61..f078c7cc95a5 100644
--- a/dev-db/redis/ChangeLog
+++ b/dev-db/redis/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-db/redis
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/redis/ChangeLog,v 1.52 2012/10/08 05:15:35 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/redis/ChangeLog,v 1.53 2012/12/26 11:01:44 djc Exp $
+
+*redis-2.4.17-r1 (26 Dec 2012)
+
+ 26 Dec 2012; Dirkjan Ochtman <djc@gentoo.org> +redis-2.4.17-r1.ebuild,
+ +files/redis-2.4.17-shared.patch:
+ Fix compilation against jemalloc-3.2.0 (bug 444796).
08 Oct 2012; Robin H. Johnson <robbat2@gentoo.org> redis-2.4.17.ebuild:
Fix verbosity issue per bus #428722 and EMAKE_EXTRA bug #437344.
diff --git a/dev-db/redis/files/redis-2.4.17-shared.patch b/dev-db/redis/files/redis-2.4.17-shared.patch
new file mode 100644
index 000000000000..9c607145d38f
--- /dev/null
+++ b/dev-db/redis/files/redis-2.4.17-shared.patch
@@ -0,0 +1,22 @@
+See https://github.com/antirez/redis/pull/137
+
+--- src/Makefile 2011-10-17 10:46:00.000000000 +0200
++++ src/Makefile.2 2011-10-17 13:47:53.000000000 +0200
+@@ -49,7 +49,16 @@
+ ifeq ($(USE_JEMALLOC),yes)
+ ALLOC_DEP=../deps/jemalloc/lib/libjemalloc.a
+ ALLOC_LINK=$(ALLOC_DEP) -ldl
+- ALLOC_FLAGS=-DUSE_JEMALLOC -I../deps/jemalloc/include
++ ALLOC_FLAGS=-DUSE_JEMALLOC
++ ifdef JEMALLOC_SHARED
++ ALLOC_DEP=
++ ALLOC_LINK=-ljemalloc
++ ALLOC_FLAGS=-DUSE_JEMALLOC -DJEMALLOC_NO_DEMANGLE -I/usr/include
++ else
++ ALLOC_DEP=../deps/jemalloc/lib/libjemalloc.a
++ ALLOC_LINK=$(ALLOC_DEP) -ldl
++ ALLOC_FLAGS=-DUSE_JEMALLOC -I../deps/jemalloc/include
++ endif
+ endif
+
+ CCOPT= $(CFLAGS) $(ARCH) $(PROF) \ No newline at end of file
diff --git a/dev-db/redis/redis-2.4.17-r1.ebuild b/dev-db/redis/redis-2.4.17-r1.ebuild
new file mode 100644
index 000000000000..4074f651d419
--- /dev/null
+++ b/dev-db/redis/redis-2.4.17-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/redis/redis-2.4.17-r1.ebuild,v 1.1 2012/12/26 11:01:44 djc Exp $
+
+EAPI="4"
+
+inherit autotools eutils flag-o-matic user
+
+DESCRIPTION="A persistent caching system, key-value and data structures database."
+HOMEPAGE="http://redis.io/"
+SRC_URI="http://redis.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~x86 ~x86-macos ~x86-solaris"
+IUSE="+jemalloc tcmalloc test"
+SLOT="0"
+
+RDEPEND="tcmalloc? ( dev-util/google-perftools )
+ jemalloc? ( >=dev-libs/jemalloc-3.2 )"
+DEPEND=">=sys-devel/autoconf-2.63
+ test? ( dev-lang/tcl )
+ ${RDEPEND}"
+REQUIRED_USE="tcmalloc? ( !jemalloc )
+ jemalloc? ( !tcmalloc )"
+
+S="${WORKDIR}/${PN}-${PV/_/-}"
+
+REDIS_PIDDIR=/var/run/redis/
+REDIS_PIDFILE=${REDIS_PIDDIR}/redis.pid
+REDIS_DATAPATH=/var/lib/redis
+REDIS_LOGPATH=/var/log/redis
+REDIS_LOGFILE=${REDIS_LOGPATH}/redis.log
+
+pkg_setup() {
+ enewgroup redis 75
+ enewuser redis 75 -1 ${REDIS_DATAPATH} redis
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-shared.patch"
+ epatch "${FILESDIR}/redis-2.4.4-tcmalloc.patch"
+
+ # now we will rewrite present Makefiles
+ local makefiles=""
+ for MKF in $(find -name 'Makefile' | cut -b 3-); do
+ mv "${MKF}" "${MKF}.in"
+ sed -i -e 's:$(CC):@CC@:g' \
+ -e 's:$(CFLAGS):@AM_CFLAGS@:g' \
+ -e 's: $(DEBUG)::g' \
+ -e 's:$(OBJARCH)::g' \
+ -e 's:ARCH:TARCH:g' \
+ -e '/^CCOPT=/s:$: $(LDFLAGS):g' \
+ "${MKF}.in" \
+ || die "Sed failed for ${MKF}"
+ makefiles+=" ${MKF}"
+ done
+ # autodetection of compiler and settings; generates the modified Makefiles
+ cp "${FILESDIR}"/configure.ac-2.2 configure.ac
+ sed -i -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
+ configure.ac || die "Sed failed for configure.ac"
+ eautoconf
+}
+
+src_compile() {
+ local myconf=""
+
+ if use tcmalloc ; then
+ myconf="${myconf} USE_TCMALLOC=yes"
+ elif use jemalloc ; then
+ myconf="${myconf} JEMALLOC_SHARED=yes"
+ else
+ myconf="${myconf} FORCE_LIBC_MALLOC=yes"
+ fi
+
+ emake ${myconf}
+}
+
+src_install() {
+ # configuration file rewrites
+ insinto /etc/
+ sed -r \
+ -e "/^pidfile\>/s,/var.*,${REDIS_PIDFILE}," \
+ -e '/^daemonize\>/s,no,yes,' \
+ -e '/^# bind/s,^# ,,' \
+ -e '/^# maxmemory\>/s,^# ,,' \
+ -e '/^maxmemory\>/s,<bytes>,67108864,' \
+ -e "/^dbfilename\>/s,dump.rdb,${REDIS_DATAPATH}/dump.rdb," \
+ -e "/^dir\>/s, .*, ${REDIS_DATAPATH}/," \
+ -e '/^loglevel\>/s:(verbose|debug):notice:' \
+ -e "/^logfile\>/s:stdout:${REDIS_LOGFILE}:" \
+ <redis.conf \
+ >redis.conf.gentoo
+ newins redis.conf.gentoo redis.conf
+ use prefix || fowners redis:redis /etc/redis.conf
+ fperms 0644 /etc/redis.conf
+
+ newconfd "${FILESDIR}/redis.confd" redis
+ newinitd "${FILESDIR}/redis.initd" redis
+
+ nonfatal dodoc 00-RELEASENOTES BUGS CONTRIBUTING README
+
+ dobin src/redis-cli
+ dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-dump
+ fperms 0750 /usr/sbin/redis-benchmark
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redis -g redis
+ fi
+ keepdir ${REDIS_DATAPATH} ${REDIS_LOGPATH}
+}