summaryrefslogtreecommitdiff
path: root/dev-db/redis
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-07 01:33:16 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-07 01:33:16 +0100
commitc8fd0d84af0bfd1949542adc2cbb735b1d28f9ed (patch)
tree3ee550255947da075650f1a551dcc278f9a1b7f8 /dev-db/redis
parenta978c074e4272bb901fbe4a10de0a7b2af574f17 (diff)
gentoo resync : 07.05.2021
Diffstat (limited to 'dev-db/redis')
-rw-r--r--dev-db/redis/Manifest5
-rw-r--r--dev-db/redis/files/redis-6.2.3-ppc-atomic.patch19
-rw-r--r--dev-db/redis/redis-6.0.13-r1.ebuild187
-rw-r--r--dev-db/redis/redis-6.2.3-r1.ebuild187
4 files changed, 398 insertions, 0 deletions
diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest
index d39a3a5ee0e9..e35d4de38bdb 100644
--- a/dev-db/redis/Manifest
+++ b/dev-db/redis/Manifest
@@ -6,6 +6,7 @@ AUX redis-5.0.8-ppc-atomic.patch 495 BLAKE2B a995c1b1e327416705151dd888b98fe02fd
AUX redis-6.0.12-sharedlua.patch 2897 BLAKE2B 10a23bd3b2fab8b1697a2d3da55e5e0776f34a02f3f3ceea24c76dd95b85d2fa1751b69c67aceaad0797adb4d0375a6826698f266c095d525864645901dbbb55 SHA512 302569a9d626c4914719a0d4b5608809e236a55935557c74f7beb2baae9948329176672e04dba28cd50c0ecfe1115432a268c461c05f54d0493168e701c6a622
AUX redis-6.2.1-config.patch 1477 BLAKE2B bc87272e52b44fc58e7e8b08b5d97e53c9ba22eab02f89c3803d02e526c6c5eb1df5d1565021d96dabf8b9936dfc0b2c27c9dd148d1968d98d31d10470687741 SHA512 da2a2f4321fc4f5fef4db1e399bd6a011c18a997b28c4355ed4284d07c24a5038f086f7dcbb26d4534d800baf9be0634cf53466524a8323d16ad542042d89d98
AUX redis-6.2.1-sharedlua.patch 3010 BLAKE2B 5d7863b4916229dbb20fd0a852557afefd9b8bcc097ce6aec6cb6fafff08b2428848b35ea2a0ff1ccd5195f14b812f3710df500a6d9acb74c32937d620a3a5b1 SHA512 2d9f78435c8d1e5e284e7410471dbda11af776816d824df20c8b3de9763d06ce0be4d9f62111b1195fe97c42d1d8ff5f2af0d75296f9666137579374c5b1bb87
+AUX redis-6.2.3-ppc-atomic.patch 465 BLAKE2B 9324bb198f03a3e5043986adaac170f30f378f5835a53e1c749ccf3392edcfecb22f4f7ae2b325ced3b06bf20535a243daa138073014a109e6e54b27d736dde5 SHA512 803ea4e1dfcb2f87187a0294051bf91f4e67a9b7de421dca20fe8b574741dc454f83fe1eadac7a4ef5d29b7a707a9dc2a56479f8d86c9e82de6332b21101456f
AUX redis-sentinel-5.0-config.patch 706 BLAKE2B 0fa0166bbb3460e783e85b90acf4c606b83e271d8e9828bb5b3a39b623508b21dac33369ac25b645169271822e9c5deb6ea7294e40fc8d1a5ceec5129c174505 SHA512 2dee5666d50fc5d9b6021735a95c9a9647ba99c562e348785381d5a05f1388c3fb9e8c4a15b0de771cf73fb80e5e29f1df25805df749457a2ce4f2e3f2e0e9e8
AUX redis-sentinel.confd 470 BLAKE2B f77fd7e35c753e35aafa6e773dcc00d2779bc29d8579334078bd6124aab436dff671ae790c0b0e3cefdd4082fe212b4b71501b529176cb0a1e5f8c8cdcf1387e SHA512 ea455f8c73c21bc46127ea5c7b99dc5707ad41160e5fd61367555dd2e3fd5c1518026257651e7d371a60a64b682b6839dd37580f75308c73239edeba49d6b372
AUX redis-sentinel.confd-r1 476 BLAKE2B e06aba8c65637a02dd7c778e7ddeb1ee8f25abbe24cea6d9ab90aee0ab512d36ad342dc4aba73c792533c561a00413a6432c6a635246e2fa7f44d2c4cf244972 SHA512 be2bdfa5efa5c55294da382e0d648c06788e77df150acbb2004ac3fe88d8545992787df4a5dd585e5e5fed9a9018e55e03e5f048601d5401795c37a476232c9f
@@ -22,8 +23,12 @@ AUX redis.tmpfiles 61 BLAKE2B 1c3bf8aa105940c408163f61c63ed16b86de7a979cb5143d15
AUX redis.tmpfiles-2 57 BLAKE2B 1e0577c1828bb693cf820f3ba5e77d7d748adf4df2d1910d465ce097765308c7b7ea729526404120d04a79b547e865df93f7bfce1e63341c73563496f1dce691 SHA512 3de050ce044b7daf71219ec61dee2bc31acef161319b87ec2963b23c72e8a4807f1302c4932897664a63ef94507449f6ab75ce18d59f5e1a4558c330a7042e43
DIST redis-5.0.12.tar.gz 1995069 BLAKE2B 03bb5956fb1206ecfa7f621b22b3101d1ebad62c40ce52157fb802ecfa5c32ca493ff03a1cf909a1b0f1acdac83b3a939ab2042fbf092fea983cabe35d00f4c3 SHA512 f0ab161762006926064ba2176ea63bb2fa416fa386b44ca55a8edad9169627fcd1c4bd9c699fec585aefc68506deb0796f6a89844c21e74d2bdb19ca1638bbe7
DIST redis-6.0.12.tar.gz 2276349 BLAKE2B ab49b0278420c65fc995a90e850130971ccaf3df34a08a5cc10a8c211239eba8449b87fe67684189c71816cf259a70a23a77935ec61e8baa787daa61cb994201 SHA512 9dd8e3bed51e1356470e1bf08892f771744c0c9418ff874c16ea932ad1f471a908ffd8479efe1f32531d7f63cd7af5224273ce50f2fe7aa26c47716e0e78330b
+DIST redis-6.0.13.tar.gz 2276777 BLAKE2B 735ebc7068b26e7e424e5ce701bb80cfbdf09f65734cbdd5760b75d78141ff542d1a91f2f58f7ef97ea4a1e9e225e96189736384e1dd0c8195e4ca651da75492 SHA512 5053cd60df354c8a00e5864179c6354db6b0243d56717d5dc44954405908ad8b3b09ba9f069312825705dd8abc83d533dd7a5a60485a30e8f4adf166fa058549
DIST redis-6.2.1.tar.gz 2438367 BLAKE2B 8717630771eafaf8a15dd371d46475f81f15bbcdc9a4fabd8f270ab6e09fbfb3ee2a1cddddb6c7778922d3552bcf5ee475eec7ba0623147ec36a5c5422cb0de0 SHA512 7c339cc360fc3125bb67c5748bb4fe940977faa937e3a86294829bde472479a811df8ea0ce4961d8128ec8d4ffba5d5a943c2957589c8da0cfc3f109f82e4af6
+DIST redis-6.2.3.tar.gz 2456050 BLAKE2B f41096c790a373bdfbe2b9af0be867fdf4c9cdcf5b76e92c50786de917d9e52bd65e65bd43127fd5ad040bc3fed50fda9caa145cd261f79bcfa16ddf369315e9 SHA512 0a020aaa5664ed419a30e85d3b5c79fe69353067b755421c702f89ca923f1ba7794b4792f4a44049e38936f221363153c9ffcfb6fa232731b224d20c2982ac68
EBUILD redis-5.0.12.ebuild 4727 BLAKE2B 296ae8313437d189b96ee93f5b63cefe11abb576d4925e150de6db510183a948bae6a4ae76db1a393e8c1f3c0c17dfad8c52e07b8d1cf36cd88d11df4d2ac17d SHA512 af8a96dcccbc12d8dfb0c77d1c857b245c47d77b3084f11021e9cf02ce1a8258c3c09a855c209356c49ba9aa8a5ad37e732751d908e01e2314d7c2d5ceddf320
EBUILD redis-6.0.12.ebuild 5014 BLAKE2B ebf162717236cf1a528ae0c11dbbacf1227451246d13460ca4d4172073c7b768d9e68e97051fdba45c595df092c1006a9d8681f26dc2b8a6b6f0a7b5846fbd10 SHA512 13ec7932d3b0502092b15f8a98f67305549ccdad86dee8fc5aa62335d40a9deb0bca0f11b8ed3dbddc0a31982afcba1ea346a1be740d7e50711764304312f344
+EBUILD redis-6.0.13-r1.ebuild 5099 BLAKE2B f2535d05ce7ce8b7ad8b78a946af3f75ee4ccbddf752930fcbf84d2dc515c3e411ea954e7d8c4deebb70faa0a31d794821c29980c94221e88951a394c182ef6e SHA512 095ee20995455af711fafc6ee917edc1c7c989ab1c820e9e154d0af75415893246dd3272c08405955aa166b07434dcd74b95abf7fb7eee5a1af375be25a125d6
EBUILD redis-6.2.1.ebuild 5020 BLAKE2B 9d64fc2efeb3b7a22ecbaf9440639b327f2555a21152f0cedb81cccbed351f1037e6158dbff9afa10e33c7ea59b575fce0f9c59e06576b1284e749f07a1472bd SHA512 c61f65441d30d13a939275bdebc0d27b7906eb6aa9de5dc675ba53662a5404d06f5bee04c4412a85daff711b5d31a739142e7e365e2fd19bd32aaaf66ebbbed5
+EBUILD redis-6.2.3-r1.ebuild 5098 BLAKE2B da4c193e6974a19ea309a8548b4edbe4ca086fca2c1b287c76546a7e8d16fb6b2b541b264f88cb8ab4367dddf1aea4afc67cd551413554a9c56f4bac2de047da SHA512 4d3e16a007013f8ea7c25ffd55db947b06e27f78f4119e3b6d29c4b5c3a289c1f62cb1e2d7c287be5bc33eb039f99e41ac7c5b04fc0c6057537f44d5f0dfa099
MISC metadata.xml 356 BLAKE2B 19e27b12be84927b990fc2f481d8dd1f88f05b5e029fdd91c7ce9517e7fd378d6e1df1eb55052a04fefe781da09b371da1c28fd269c72f4222aa896897222bf7 SHA512 ab06f694c5b20072f40e85b3a8e05d2c333f3b29fc145733fde1e3f42ea78ac7c51550afc29e671ef9b4a163597ac9f44bc182344c18db52036595e5d65f7e22
diff --git a/dev-db/redis/files/redis-6.2.3-ppc-atomic.patch b/dev-db/redis/files/redis-6.2.3-ppc-atomic.patch
new file mode 100644
index 000000000000..8990b00ccdc0
--- /dev/null
+++ b/dev-db/redis/files/redis-6.2.3-ppc-atomic.patch
@@ -0,0 +1,19 @@
+diff --git a/src/Makefile b/src/Makefile
+index 5b2cf1c..9e1239d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -87,6 +87,14 @@ FINAL_LIBS=-lm
+ FINAL_LIBS+=@LUA_LIBS@
+ DEBUG=-g -ggdb
+
++ifneq (,$(filter powerpc ppc,$(uname_M)))
++ FINAL_LIBS+=-latomic
++else
++ifneq (,$(findstring ppc,$(uname_M)))
++ FINAL_LIBS+=-latomic
++endif
++endif
++
+ # Linux ARM32 needs -latomic at linking time
+ ifneq (,$(findstring armv,$(uname_M)))
+ FINAL_LIBS+=-latomic
diff --git a/dev-db/redis/redis-6.0.13-r1.ebuild b/dev-db/redis/redis-6.0.13-r1.ebuild
new file mode 100644
index 000000000000..8b23babaf719
--- /dev/null
+++ b/dev-db/redis/redis-6.0.13-r1.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Redis does NOT build with Lua 5.2 or newer at this time:
+# - 5.3 and 5.4 give:
+# lua_bit.c:83:2: error: #error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
+# - 5.2 fails with:
+# scripting.c:(.text+0x1f9b): undefined reference to `lua_open'
+# because lua_open became lua_newstate in 5.2
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit autotools flag-o-matic lua-single systemd toolchain-funcs tmpfiles
+
+DESCRIPTION="A persistent caching system, key-value and data structures database"
+HOMEPAGE="https://redis.io"
+SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="+jemalloc ssl systemd tcmalloc test"
+RESTRICT="!test? ( test )"
+SLOT="0"
+
+COMMON_DEPEND="
+ ${LUA_DEPS}
+ jemalloc? ( >=dev-libs/jemalloc-5.1:= )
+ ssl? ( dev-libs/openssl:0= )
+ systemd? ( sys-apps/systemd:= )
+ tcmalloc? ( dev-util/google-perftools )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ acct-group/redis
+ acct-user/redis
+"
+
+BDEPEND="
+ ${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+# Tcl is only needed in the CHOST test env
+DEPEND="
+ ${COMMON_DEPEND}
+ test? (
+ dev-lang/tcl:0=
+ ssl? ( dev-tcltk/tls )
+ )"
+
+REQUIRED_USE="?? ( jemalloc tcmalloc )
+ ${LUA_REQUIRED_USE}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.2.3-config.patch
+ "${FILESDIR}"/${PN}-5.0-shared.patch
+ "${FILESDIR}"/${PN}-6.0.12-sharedlua.patch
+ "${FILESDIR}"/${PN}-5.0.8-ppc-atomic.patch
+ "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
+)
+
+src_prepare() {
+ default
+
+ # unstable on jemalloc
+ > tests/unit/memefficiency.tcl || die
+
+ # Copy lua modules into build dir
+ cp "${S}"/deps/lua/src/{fpconv,lua_bit,lua_cjson,lua_cmsgpack,lua_struct,strbuf}.c "${S}"/src || die
+ cp "${S}"/deps/lua/src/{fpconv,strbuf}.h "${S}"/src || die
+ # Append cflag for lua_cjson
+ # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61
+ append-cflags "-DENABLE_CJSON_GLOBAL"
+
+ # now we will rewrite present Makefiles
+ local makefiles="" MKF
+ 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-3.2 configure.ac || die
+
+ # Use the correct pkgconfig name for Lua.
+ # The upstream configure script handles luajit specially, and is not
+ # effected by these changes.
+ sed -i \
+ -e "/^AC_INIT/s|, [0-9].+, |, $PV, |" \
+ -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
+ -e "/PKG_CHECK_MODULES.*\<LUA\>/s,lua5.1,${ELUA},g" \
+ configure.ac || die "Sed failed for configure.ac"
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with lua_single_target_luajit luajit)
+
+ # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
+ # also, don't define ANSI/c99 for lua twice
+ sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
+}
+
+src_compile() {
+ local myconf=""
+
+ if use jemalloc; then
+ myconf+="MALLOC=jemalloc"
+ elif use tcmalloc; then
+ myconf+="MALLOC=tcmalloc"
+ else
+ myconf+="MALLOC=libc"
+ fi
+
+ if use ssl; then
+ myconf+=" BUILD_TLS=yes"
+ fi
+
+ export USE_SYSTEMD=$(usex systemd)
+
+ tc-export AR CC RANLIB
+ emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+}
+
+src_test() {
+ # Known to fail with FEATURES=usersandbox
+ if has usersandbox ${FEATURES}; then
+ ewarn "You are emerging ${P} with 'usersandbox' enabled." \
+ "Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
+ fi
+
+ if use ssl; then
+ ./utils/gen-test-certs.sh
+ ./runtest --tls
+ else
+ ./runtest
+ fi
+}
+
+src_install() {
+ insinto /etc/redis
+ doins redis.conf sentinel.conf
+ use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
+ fperms 0750 /etc/redis
+ fperms 0644 /etc/redis/{redis,sentinel}.conf
+
+ newconfd "${FILESDIR}/redis.confd-r2" redis
+ newinitd "${FILESDIR}/redis.initd-6" redis
+
+ systemd_newunit "${FILESDIR}/redis.service-4" redis.service
+ newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
+
+ newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
+ newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ dodoc 00-RELEASENOTES BUGS CONTRIBUTING MANIFESTO README.md
+
+ dobin src/redis-cli
+ dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
+ fperms 0750 /usr/sbin/redis-benchmark
+ dosym redis-server /usr/sbin/redis-sentinel
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redis -g redis
+ fi
+ keepdir /var/{log,lib}/redis
+}
+
+pkg_postinst() {
+ ewarn "The default redis configuration file location changed to:"
+ ewarn " /etc/redis/{redis,sentinel}.conf"
+ ewarn "Please apply your changes to the new configuration files."
+}
diff --git a/dev-db/redis/redis-6.2.3-r1.ebuild b/dev-db/redis/redis-6.2.3-r1.ebuild
new file mode 100644
index 000000000000..a40086fabfb0
--- /dev/null
+++ b/dev-db/redis/redis-6.2.3-r1.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Redis does NOT build with Lua 5.2 or newer at this time:
+# - 5.3 and 5.4 give:
+# lua_bit.c:83:2: error: #error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
+# - 5.2 fails with:
+# scripting.c:(.text+0x1f9b): undefined reference to `lua_open'
+# because lua_open became lua_newstate in 5.2
+LUA_COMPAT=( lua5-1 luajit )
+
+inherit autotools flag-o-matic lua-single systemd toolchain-funcs tmpfiles
+
+DESCRIPTION="A persistent caching system, key-value and data structures database"
+HOMEPAGE="https://redis.io"
+SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="+jemalloc ssl systemd tcmalloc test"
+RESTRICT="!test? ( test )"
+SLOT="0"
+
+COMMON_DEPEND="
+ ${LUA_DEPS}
+ jemalloc? ( >=dev-libs/jemalloc-5.1:= )
+ ssl? ( dev-libs/openssl:0= )
+ systemd? ( sys-apps/systemd:= )
+ tcmalloc? ( dev-util/google-perftools )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ acct-group/redis
+ acct-user/redis
+"
+
+BDEPEND="
+ ${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+# Tcl is only needed in the CHOST test env
+DEPEND="
+ ${COMMON_DEPEND}
+ test? (
+ dev-lang/tcl:0=
+ ssl? ( dev-tcltk/tls )
+ )"
+
+REQUIRED_USE="?? ( jemalloc tcmalloc )
+ ${LUA_REQUIRED_USE}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.2.1-config.patch
+ "${FILESDIR}"/${PN}-5.0-shared.patch
+ "${FILESDIR}"/${PN}-6.2.1-sharedlua.patch
+ "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
+ "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
+)
+
+src_prepare() {
+ default
+
+ # unstable on jemalloc
+ > tests/unit/memefficiency.tcl || die
+
+ # Copy lua modules into build dir
+ cp "${S}"/deps/lua/src/{fpconv,lua_bit,lua_cjson,lua_cmsgpack,lua_struct,strbuf}.c "${S}"/src || die
+ cp "${S}"/deps/lua/src/{fpconv,strbuf}.h "${S}"/src || die
+ # Append cflag for lua_cjson
+ # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61
+ append-cflags "-DENABLE_CJSON_GLOBAL"
+
+ # now we will rewrite present Makefiles
+ local makefiles="" MKF
+ 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-3.2 configure.ac || die
+
+ # Use the correct pkgconfig name for Lua.
+ # The upstream configure script handles luajit specially, and is not
+ # effected by these changes.
+ sed -i \
+ -e "/^AC_INIT/s|, [0-9].+, |, $PV, |" \
+ -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
+ -e "/PKG_CHECK_MODULES.*\<LUA\>/s,lua5.1,${ELUA},g" \
+ configure.ac || die "Sed failed for configure.ac"
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with lua_single_target_luajit luajit)
+
+ # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
+ # also, don't define ANSI/c99 for lua twice
+ sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
+}
+
+src_compile() {
+ local myconf=""
+
+ if use jemalloc; then
+ myconf+="MALLOC=jemalloc"
+ elif use tcmalloc; then
+ myconf+="MALLOC=tcmalloc"
+ else
+ myconf+="MALLOC=libc"
+ fi
+
+ if use ssl; then
+ myconf+=" BUILD_TLS=yes"
+ fi
+
+ export USE_SYSTEMD=$(usex systemd)
+
+ tc-export AR CC RANLIB
+ emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+}
+
+src_test() {
+ # Known to fail with FEATURES=usersandbox
+ if has usersandbox ${FEATURES}; then
+ ewarn "You are emerging ${P} with 'usersandbox' enabled." \
+ "Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
+ fi
+
+ if use ssl; then
+ ./utils/gen-test-certs.sh
+ ./runtest --tls
+ else
+ ./runtest
+ fi
+}
+
+src_install() {
+ insinto /etc/redis
+ doins redis.conf sentinel.conf
+ use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
+ fperms 0750 /etc/redis
+ fperms 0644 /etc/redis/{redis,sentinel}.conf
+
+ newconfd "${FILESDIR}/redis.confd-r2" redis
+ newinitd "${FILESDIR}/redis.initd-6" redis
+
+ systemd_newunit "${FILESDIR}/redis.service-4" redis.service
+ newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
+
+ newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
+ newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ dodoc 00-RELEASENOTES BUGS CONTRIBUTING MANIFESTO README.md
+
+ dobin src/redis-cli
+ dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
+ fperms 0750 /usr/sbin/redis-benchmark
+ dosym redis-server /usr/sbin/redis-sentinel
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redis -g redis
+ fi
+ keepdir /var/{log,lib}/redis
+}
+
+pkg_postinst() {
+ ewarn "The default redis configuration file location changed to:"
+ ewarn " /etc/redis/{redis,sentinel}.conf"
+ ewarn "Please apply your changes to the new configuration files."
+}