public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/redis/, dev-db/redis/files/
Date: Thu, 28 Apr 2022 02:38:01 +0000 (UTC)	[thread overview]
Message-ID: <1651113450.850894a9e88d1b711cfd3036878848f5e59690b5.sam@gentoo> (raw)

commit:     850894a9e88d1b711cfd3036878848f5e59690b5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 28 02:37:30 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr 28 02:37:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=850894a9

Revert "dev-db/redis: drop 5.0.14, 6.0.16"

This reverts commit bb357ae44b7e9fbff0d9d9df54370c6796d706cb.

dev-ruby/redis still needs 5*

Bug: https://bugs.gentoo.org/841404
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-db/redis/Manifest                           |   2 +
 dev-db/redis/files/redis-3.2.3-config.patch     |  40 +++++
 dev-db/redis/files/redis-5.0-sharedlua.patch    |  60 ++++++++
 dev-db/redis/files/redis-5.0.8-ppc-atomic.patch |  19 +++
 dev-db/redis/files/redis-6.0.12-sharedlua.patch |  60 ++++++++
 dev-db/redis/redis-5.0.14.ebuild                | 164 ++++++++++++++++++++
 dev-db/redis/redis-6.0.16.ebuild                | 189 ++++++++++++++++++++++++
 7 files changed, 534 insertions(+)

diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest
index 546bd8aa538f..4462f4e2632a 100644
--- a/dev-db/redis/Manifest
+++ b/dev-db/redis/Manifest
@@ -1,2 +1,4 @@
+DIST redis-5.0.14.tar.gz 2000179 BLAKE2B 77d3ed09a81450dbf806edd017785b82c50bb059aab44c82bc4ab784b7f03d5c58f9372b96c857831f84d278771dcf223f42ca05af790f0dc10ecdde211fd149 SHA512 513299ae8b967a659d54812fab4dfdfaf0081b20136a3d89b6a761e93548583c96436fedb84baa4d23385b42110ef615527efc3690b873f5bec7793403fe7eaf
+DIST redis-6.0.16.tar.gz 2288647 BLAKE2B f3552cc0d27cbc5cf6556792da9a75d01ff70d372484c95d2af8b24ec902a8086b9c3f4e53513df982fe135963432bfb527334926dd494e50d2cc618ab813f39 SHA512 83bb72448f9943e3d015cb4d961eb2eae21602ef1f90ca52ca8ab7c6918b0ab979db9f61f3981df27b2286894f4864f4588c3a52fa988e30e9419b0967998845
 DIST redis-6.2.6.tar.gz 2476542 BLAKE2B d139479432171294911d99e7e8c2327dbbc6682ea49de761c4bb4089a2efd814926f2f8823dca1826b4a61dd9ccf79abb22878c9463ac92870481b43d8a7fff7 SHA512 9b947d26fd9e208627ed22d318ab3d0775ab0be46d98db1c1d158feac671b984e75ce33e647d196face9643f80768af47e678be1b4e1ddd3eb56dff467c46022
 DIST redis-6.2.7.tar.gz 2487287 BLAKE2B 06f1b1e16cdf06c38b67c1f1dcccc025da50cc3719688b8c2bf23077d77dd97ea546909043fb65e60478ac3661cc033fa6e8d7a38e361e69eb93ba3db07b7c66 SHA512 d113094b8e31754915db7f0317d9b7969e034af3a7bac2ae0cbfad6cc61ba3aae35e9709c435abc1024a96f914df7a760b3cd18d06c375b541cfa837d1c5b953

diff --git a/dev-db/redis/files/redis-3.2.3-config.patch b/dev-db/redis/files/redis-3.2.3-config.patch
new file mode 100644
index 000000000000..bde0ef7cbaf1
--- /dev/null
+++ b/dev-db/redis/files/redis-3.2.3-config.patch
@@ -0,0 +1,40 @@
+diff --git a/redis.conf b/redis.conf
+index 22e00bc..b09de57 100644
+--- a/redis.conf
++++ b/redis.conf
+@@ -147,7 +147,7 @@ supervised no
+ #
+ # Creating a pid file is best effort: if Redis is not able to create it
+ # nothing bad happens, the server will start and run normally.
+-pidfile /var/run/redis_6379.pid
++pidfile /run/redis/redis.pid
+ 
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -160,7 +160,7 @@ loglevel notice
+ # Specify the log file name. Also the empty string can be used to force
+ # Redis to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/redis/redis.log
+ 
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -244,7 +244,7 @@ dbfilename dump.rdb
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/redis/
+ 
+ ################################# REPLICATION #################################
+ 
+@@ -534,7 +534,7 @@ slave-priority 100
+ # limit for maxmemory so that there is some free RAM on the system for slave
+ # output buffers (but this is not needed if the policy is 'noeviction').
+ #
+-# maxmemory <bytes>
++maxmemory 64MB
+ 
+ # MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
+ # is reached. You can select among five behaviors:

diff --git a/dev-db/redis/files/redis-5.0-sharedlua.patch b/dev-db/redis/files/redis-5.0-sharedlua.patch
new file mode 100644
index 000000000000..3e14f41733b0
--- /dev/null
+++ b/dev-db/redis/files/redis-5.0-sharedlua.patch
@@ -0,0 +1,60 @@
+diff --git a/deps/lua/src/lua_cjson.c b/deps/lua/src/lua_cjson.c
+index c26c0d7..fa50c41 100644
+--- a/deps/lua/src/lua_cjson.c
++++ b/deps/lua/src/lua_cjson.c
+@@ -46,7 +46,7 @@
+ #include "strbuf.h"
+ #include "fpconv.h"
+ 
+-#include "../../../src/solarisfixes.h"
++#include "solarisfixes.h"
+ 
+ #ifndef CJSON_MODNAME
+ #define CJSON_MODNAME   "cjson"
+diff --git a/src/Makefile b/src/Makefile
+index 773d3b2..2d120d4 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -16,7 +16,7 @@ release_hdr := $(shell sh -c './mkreleasehdr.sh')
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
+ OPTIMIZATION?=-O2
+-DEPENDENCY_TARGETS=hiredis linenoise lua
++DEPENDENCY_TARGETS=hiredis linenoise
+ NODEPS:=clean distclean
+ 
+ # Default settings
+@@ -66,6 +66,7 @@ endif
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
++FINAL_LIBS+=@LUA_LIBS@
+ DEBUG=-g -ggdb
+ 
+ ifeq ($(uname_S),SunOS)
+@@ -107,7 +108,7 @@ endif
+ endif
+ endif
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
++FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise @LUA_CFLAGS@
+ 
+ ifeq ($(MALLOC),tcmalloc)
+ 	FINAL_CFLAGS+= -DUSE_TCMALLOC
+@@ -145,6 +146,7 @@ endif
+ REDIS_SERVER_NAME=redis-server
+ REDIS_SENTINEL_NAME=redis-sentinel
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o
++REDIS_SERVER_OBJ+=fpconv.o strbuf.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o
+ REDIS_CLI_NAME=redis-cli
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o anet.o ae.o crc64.o siphash.o crc16.o
+ REDIS_BENCHMARK_NAME=redis-benchmark
+@@ -196,7 +198,7 @@ endif
+ 
+ # redis-server
+ $(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
+-	$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
++	$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a $(FINAL_LIBS)
+ 
+ # redis-sentinel
+ $(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)

diff --git a/dev-db/redis/files/redis-5.0.8-ppc-atomic.patch b/dev-db/redis/files/redis-5.0.8-ppc-atomic.patch
new file mode 100644
index 000000000000..61a4cc721eb1
--- /dev/null
+++ b/dev-db/redis/files/redis-5.0.8-ppc-atomic.patch
@@ -0,0 +1,19 @@
+diff --git a/src/Makefile b/src/Makefile
+index 4b2a31c..4ef853b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -77,6 +77,14 @@ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
+ DEBUG=-g -ggdb
+ 
++ifneq (,$(filter powerpc ppc,$(uname_M)))
++        FINAL_LIBS+=-latomic
++else
++ifneq (,$(findstring ppc,$(uname_M)))
++        FINAL_LIBS+=-latomic
++endif
++endif
++
+ # Linux ARM needs -latomic at linking time
+ ifneq (,$(filter aarch64 armv,$(uname_M)))
+         FINAL_LIBS+=-latomic

diff --git a/dev-db/redis/files/redis-6.0.12-sharedlua.patch b/dev-db/redis/files/redis-6.0.12-sharedlua.patch
new file mode 100644
index 000000000000..3707bcf30788
--- /dev/null
+++ b/dev-db/redis/files/redis-6.0.12-sharedlua.patch
@@ -0,0 +1,60 @@
+diff --git a/deps/lua/src/lua_cjson.c b/deps/lua/src/lua_cjson.c
+index c26c0d7..fa50c41 100644
+--- a/deps/lua/src/lua_cjson.c
++++ b/deps/lua/src/lua_cjson.c
+@@ -46,7 +46,7 @@
+ #include "strbuf.h"
+ #include "fpconv.h"
+ 
+-#include "../../../src/solarisfixes.h"
++#include "solarisfixes.h"
+ 
+ #ifndef CJSON_MODNAME
+ #define CJSON_MODNAME   "cjson"
+diff --git a/src/Makefile b/src/Makefile
+index cfecbb2..86c3127 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -16,7 +16,7 @@ release_hdr := $(shell sh -c './mkreleasehdr.sh')
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
+ OPTIMIZATION?=-O2
+-DEPENDENCY_TARGETS=hiredis linenoise lua
++DEPENDENCY_TARGETS=hiredis linenoise
+ NODEPS:=clean distclean
+ 
+ # Default settings
+@@ -69,6 +69,7 @@ endif
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+ FINAL_LIBS=-lm
++FINAL_LIBS+=@LUA_LIBS@
+ DEBUG=-g -ggdb
+ 
+ # Linux ARM needs -latomic at linking time
+@@ -159,7 +160,7 @@ endif
+ endif
+ endif
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
++FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise @LUA_CFLAGS@
+ 
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -238,6 +239,7 @@ endif
+ REDIS_SERVER_NAME=redis-server$(PROG_SUFFIX)
+ REDIS_SENTINEL_NAME=redis-sentinel$(PROG_SUFFIX)
+ REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crcspeed.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o lolwut6.o acl.o gopher.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o mt19937-64.o
++REDIS_SERVER_OBJ+=fpconv.o strbuf.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o
+ REDIS_CLI_NAME=redis-cli$(PROG_SUFFIX)
+ REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o crcspeed.o crc64.o siphash.o crc16.o mt19937-64.o
+ REDIS_BENCHMARK_NAME=redis-benchmark$(PROG_SUFFIX)
+@@ -291,7 +293,7 @@ endif
+ 
+ # redis-server
+ $(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
+-	$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
++	$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a $(FINAL_LIBS)
+ 
+ # redis-sentinel
+ $(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)

diff --git a/dev-db/redis/redis-5.0.14.ebuild b/dev-db/redis/redis-5.0.14.ebuild
new file mode 100644
index 000000000000..a8ec106eeb4d
--- /dev/null
+++ b/dev-db/redis/redis-5.0.14.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic systemd toolchain-funcs tmpfiles
+
+DESCRIPTION="A persistent caching system, key-value and data structures database"
+HOMEPAGE="https://redis.io"
+SRC_URI="http://download.redis.io/releases/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="+jemalloc tcmalloc luajit test"
+RESTRICT="!test? ( test )"
+
+# Redis does NOT build with Lua 5.2 or newer at this time.
+COMMON_DEPEND="
+	luajit? ( dev-lang/luajit:2 )
+	!luajit? ( dev-lang/lua:5.1 )
+	tcmalloc? ( dev-util/google-perftools )
+	jemalloc? ( >=dev-libs/jemalloc-5.1:= )"
+
+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= )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.2.3-config.patch
+	"${FILESDIR}"/${PN}-5.0-shared.patch
+	"${FILESDIR}"/${PN}-5.0-sharedlua.patch
+	"${FILESDIR}"/${PN}-5.0.8-ppc-atomic.patch
+	"${FILESDIR}"/${PN}-sentinel-5.0-config.patch
+)
+
+src_prepare() {
+	default
+
+	# don't call ar directly
+	sed -e '/^STLIB_MAKE_CMD/s/ar/$(AR)/g' \
+		-i deps/hiredis/Makefile || die
+
+	# Copy lua modules into build dir
+	cp deps/lua/src/{fpconv,lua_bit,lua_cjson,lua_cmsgpack,lua_struct,strbuf}.c src/ || die
+	cp deps/lua/src/{fpconv,strbuf}.h 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
+	if false && has_version 'dev-lang/lua:5.3'; then
+		# Lua5.3 gives:
+		#lua_bit.c:83:2: error: #error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
+		LUAPKGCONFIG=lua5.3
+	elif false && has_version 'dev-lang/lua:5.2'; then
+		# Lua5.2 fails with:
+		# scripting.c:(.text+0x1f9b): undefined reference to `lua_open'
+		# Because lua_open because lua_newstate in 5.2
+		LUAPKGCONFIG=lua5.2
+	elif has_version 'dev-lang/lua:5.1'; then
+		LUAPKGCONFIG=lua5.1
+	else
+		LUAPKGCONFIG=lua
+	fi
+	# The upstream configure script handles luajit specially, and is not
+	# effected by these changes.
+	einfo "Selected LUAPKGCONFIG=${LUAPKGCONFIG}"
+	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,${LUAPKGCONFIG},g" \
+		configure.ac || die "Sed failed for configure.ac"
+	eautoreconf
+}
+
+src_configure() {
+	econf $(use_with 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 tcmalloc; then
+		myconf="${myconf} USE_TCMALLOC=yes"
+	elif use jemalloc; then
+		myconf="${myconf} JEMALLOC_SHARED=yes"
+	else
+		myconf="${myconf} MALLOC=yes"
+	fi
+
+	tc-export AR CC RANLIB
+	emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+}
+
+src_install() {
+	insinto /etc/
+	doins redis.conf sentinel.conf
+	use prefix || fowners redis:redis /etc/{redis,sentinel}.conf
+	fperms 0644 /etc/{redis,sentinel}.conf
+
+	newconfd "${FILESDIR}/redis.confd-r1" redis
+	newinitd "${FILESDIR}/redis.initd-5" redis
+
+	systemd_newunit "${FILESDIR}/redis.service-3" redis.service
+	newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
+
+	newconfd "${FILESDIR}/redis-sentinel.confd" redis-sentinel
+	newinitd "${FILESDIR}/redis-sentinel.initd" 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() {
+	tmpfiles_process redis.conf
+}

diff --git a/dev-db/redis/redis-6.0.16.ebuild b/dev-db/redis/redis-6.0.16.ebuild
new file mode 100644
index 000000000000..347c229d7386
--- /dev/null
+++ b/dev-db/redis/redis-6.0.16.ebuild
@@ -0,0 +1,189 @@
+# 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"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="+jemalloc ssl systemd tcmalloc test"
+RESTRICT="!test? ( test )"
+
+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() {
+	tmpfiles_process redis.conf
+
+	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."
+}


             reply	other threads:[~2022-04-28  2:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-28  2:38 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-01-10 12:28 [gentoo-commits] repo/gentoo:master commit in: dev-db/redis/, dev-db/redis/files/ Petr Vaněk
2023-08-17  6:22 Sam James
2022-09-25  1:21 Sam James
2022-07-02 14:55 Sam James
2022-06-01  2:08 Sam James
2022-04-28  2:18 Sam James
2021-03-04  4:19 Sam James
2021-02-04 22:27 Thomas Deutschmann
2019-04-18  5:11 Robin H. Johnson
2018-10-26 13:18 Thomas Deutschmann
2018-08-15  3:09 Robin H. Johnson
2017-10-12 20:37 Robin H. Johnson
2017-10-08 23:24 Robin H. Johnson
2017-04-10 17:29 Austin English

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1651113450.850894a9e88d1b711cfd3036878848f5e59690b5.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox