This repository has been archived by the owner on Jan 8, 2019. It is now read-only.
/
redis-2.2.15.ebuild
108 lines (93 loc) · 3.52 KB
/
redis-2.2.15.ebuild
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright 2010-2011 W-Mark Kubacki, Mao Pu
# Distributed under the terms of the OSI Reciprocal Public License
# $Header: $
EAPI="2"
WANT_AUTOCONF="latest"
inherit autotools eutils flag-o-matic
DESCRIPTION="A persistent caching system, key-value and data structures database."
HOMEPAGE="http://code.google.com/p/redis/"
SRC_URI="http://redis.googlecode.com/files/${PN}-${PV/_/-}.tar.gz"
RESTRICT="primaryuri"
LICENSE="BSD"
KEYWORDS="amd64 x86 arm ~sparc ~ppc"
IUSE="tcmalloc"
SLOT="0"
RDEPEND="tcmalloc? ( dev-util/google-perftools )
"
DEPEND=">=sys-devel/autoconf-2.63
${RDEPEND}"
S="${WORKDIR}/${PN}-${PV/_/-}"
pkg_setup() {
enewgroup redis 75 || die "problem adding 'redis' group"
enewuser redis 75 -1 /var/lib/redis redis || die "problem adding 'redis' user"
# set tcmalloc-variable for the build as specified in
# https://github.com/antirez/redis/blob/2.2/README. If build system gets
# better integrated into autotools, replace with append-flags and
# append-ldflags in src_configure()
use tcmalloc && export EXTRA_EMAKE="${EXTRA_EMAKE} USE_TCMALLOC=yes"
}
src_prepare() {
cd "${S}"
# Unfortunately, redis-py does use the name "Redis" for its tarballs, too.
# Therefore, before wasting time on configuring, we have to rule out here
# that the wrong tarball is being used.
test -e redis.conf \
|| die "redis.conf is missing - most probably this is the wrong tarball. Remove ${PN}-${PV/_/-}.tar.gz from your distfiles and try again!"
# 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:ARCH:TARCH: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.0 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_configure() {
if ! ( use x86 || use amd64 ); then
replace-flags "-Os" "-O2"
filter-flags -fomit-frame-pointer "-march=*" "-mtune=*" "-mcpu=*"
fi
econf ${myconf} || die "econf"
}
src_install() {
# configuration file rewrites
insinto /etc/
doins redis.conf || ewarn "mysteriously the configuration file is missing"
dosed "s:daemonize no:daemonize yes:g" /etc/redis.conf
dosed "s:# bind:bind:g" /etc/redis.conf
dosed "s:dbfilename :dbfilename /var/lib/redis/:g" /etc/redis.conf
dosed "s:dir ./:dir /var/lib/redis/:g" /etc/redis.conf
dosed "s:loglevel debug:loglevel notice:g" /etc/redis.conf
dosed "s:logfile stdout:logfile /var/log/redis/redis.log:g" /etc/redis.conf
fowners redis:redis /etc/redis.conf
fperms 0644 /etc/redis.conf
newconfd "${FILESDIR}/redis.confd" redis
newinitd "${FILESDIR}/redis.initd" redis
dodoc 00-RELEASENOTES BUGS Changelog CONTRIBUTING COPYING README TODO
dodoc design-documents/*
docinto html
dodoc doc/*
dobin src/redis-cli \
|| die "the redis command line client could not be found"
dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-dump \
|| die "some redis executables could not be found"
fperms 0750 /usr/sbin/redis-benchmark
diropts -m0750 -o redis -g redis
dodir /var/lib/redis
dodir /var/log/redis
}
pkg_postinst() {
einfo "New features of Redis you want to consider enabling in redis.conf:"
einfo " * unix sockets (using this is highly recommended)"
einfo " * logging to syslog"
einfo " * VM aka redis' own swap mechanism"
}