mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-31 10:58:21 -07:00
Based on the redis 7.2.4-r1 ebuild. Without use of a custom configure.ac, and with aditional patches to make use of system packages for jemalloc and hiredict. Closes: https://bugs.gentoo.org/928119 Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev> Closes: https://github.com/gentoo/gentoo/pull/36176 Signed-off-by: Petr Vaněk <arkamar@gentoo.org>
241 lines
7.5 KiB
Diff
241 lines
7.5 KiB
Diff
# Patch from https://codeberg.org/redict/redict/pulls/44
|
|
# and https://salsa.debian.org/redict-team/redict/-/blob/1d2b9f08f3dcc7ba4f03ddd9066545d0fd6b716e/debian/patches/0005-Fix-hiredict-imports.patch
|
|
# The first patch got upstreamed, the second will be soon
|
|
|
|
From ffb9f03106de48a2a09d60f691a8852a0cf917ad Mon Sep 17 00:00:00 2001
|
|
From: Maytham Alsudany <maytha8thedev@gmail.com>
|
|
Date: Sun, 14 Apr 2024 11:52:21 +0300
|
|
Subject: [PATCH 1/2] Add ability to use system hiredict
|
|
|
|
Co-authored-by: Chris Lamb <lamby@debian.org>
|
|
Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
|
|
---
|
|
deps/Makefile | 2 ++
|
|
src/Makefile | 27 ++++++++++++++++++++++-----
|
|
2 files changed, 24 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/deps/Makefile b/deps/Makefile
|
|
index 345e1f703..e071cfa03 100644
|
|
--- a/deps/Makefile
|
|
+++ b/deps/Makefile
|
|
@@ -36,7 +36,9 @@ ifneq ($(shell sh -c '[ -f .make-ldflags ] && cat .make-ldflags || echo none'),
|
|
endif
|
|
|
|
distclean:
|
|
+ifneq ($(USE_SYSTEM_HIREDICT),yes)
|
|
-(cd hiredict && $(MAKE) clean) > /dev/null || true
|
|
+endif
|
|
-(cd linenoise && $(MAKE) clean) > /dev/null || true
|
|
-(cd lua && $(MAKE) clean) > /dev/null || true
|
|
ifneq ($(USE_SYSTEM_JEMALLOC),yes)
|
|
diff --git a/src/Makefile b/src/Makefile
|
|
index fbcc20f02..8ca30a6df 100644
|
|
--- a/src/Makefile
|
|
+++ b/src/Makefile
|
|
@@ -24,7 +24,7 @@ endif
|
|
ifneq ($(OPTIMIZATION),-O0)
|
|
OPTIMIZATION+=-fno-omit-frame-pointer
|
|
endif
|
|
-DEPENDENCY_TARGETS=hiredict linenoise lua hdr_histogram fpconv
|
|
+DEPENDENCY_TARGETS=linenoise lua hdr_histogram fpconv
|
|
NODEPS:=clean distclean
|
|
|
|
# Default settings
|
|
@@ -226,7 +226,7 @@ ifdef OPENSSL_PREFIX
|
|
endif
|
|
|
|
# Include paths to dependencies
|
|
-FINAL_CFLAGS+= -I../deps/hiredict -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
|
|
+FINAL_CFLAGS+= -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
|
|
|
|
# Determine systemd support and/or build preference (defaulting to auto-detection)
|
|
BUILD_WITH_SYSTEMD=no
|
|
@@ -277,6 +277,15 @@ else
|
|
endif
|
|
endif
|
|
|
|
+ifeq ($(USE_SYSTEM_HIREDICT),yes)
|
|
+ FINAL_LIBS+= $(shell $(PKG_CONFIG) --libs hiredict)
|
|
+ FINAL_CFLAGS+= $(shell $(PKG_CONFIG) --cflags hiredict)
|
|
+else
|
|
+ DEPENDENCY_TARGETS += hiredict
|
|
+ FINAL_LIBS+= ../deps/hiredict/libhiredict.a
|
|
+ FINAL_CFLAGS+= -I../deps/hiredict
|
|
+endif
|
|
+
|
|
# LIBSSL & LIBCRYPTO
|
|
LIBSSL_LIBS=
|
|
LIBSSL_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libssl && echo $$?)
|
|
@@ -299,15 +308,23 @@ BUILD_MODULE:=2
|
|
ifeq ($(BUILD_TLS),yes)
|
|
FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_YES) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_NO)
|
|
FINAL_LDFLAGS+=$(OPENSSL_LDFLAGS)
|
|
+ifeq ($(USE_SYSTEM_HIREDICT),yes)
|
|
+ FINAL_LIBS += $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
|
|
+else
|
|
FINAL_LIBS += ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
|
|
endif
|
|
+endif
|
|
|
|
TLS_MODULE=
|
|
TLS_MODULE_NAME:=redict-tls$(PROG_SUFFIX).so
|
|
TLS_MODULE_CFLAGS:=$(FINAL_CFLAGS)
|
|
ifeq ($(BUILD_TLS),module)
|
|
FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS)
|
|
+ifeq ($(USE_SYSTEM_HIREDICT),yes)
|
|
+ TLS_CLIENT_LIBS = $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
|
|
+else
|
|
TLS_CLIENT_LIBS = ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
|
|
+endif
|
|
TLS_MODULE=$(TLS_MODULE_NAME)
|
|
TLS_MODULE_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_MODULE)
|
|
endif
|
|
@@ -406,7 +423,7 @@ endif
|
|
|
|
# redict-server
|
|
$(REDICT_SERVER_NAME): $(REDICT_SERVER_OBJ)
|
|
- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
|
|
+ $(REDICT_LD) -o $@ $^ ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
|
|
|
|
# redict-sentinel
|
|
$(REDICT_SENTINEL_NAME): $(REDICT_SERVER_NAME)
|
|
@@ -426,11 +443,11 @@ $(TLS_MODULE_NAME): $(REDICT_SERVER_NAME)
|
|
|
|
# redict-cli
|
|
$(REDICT_CLI_NAME): $(REDICT_CLI_OBJ)
|
|
- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
|
|
+ $(REDICT_LD) -o $@ $^ ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
|
|
|
|
# redict-benchmark
|
|
$(REDICT_BENCHMARK_NAME): $(REDICT_BENCHMARK_OBJ)
|
|
- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
|
|
+ $(REDICT_LD) -o $@ $^ ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
|
|
|
|
DEP = $(REDICT_SERVER_OBJ:%.o=%.d) $(REDICT_CLI_OBJ:%.o=%.d) $(REDICT_BENCHMARK_OBJ:%.o=%.d)
|
|
-include $(DEP)
|
|
--
|
|
2.39.2
|
|
|
|
|
|
From bd55c900ac123db05b7243f6e958e311a622fb7d Mon Sep 17 00:00:00 2001
|
|
From: Maytham Alsudany <maytha8thedev@gmail.com>
|
|
Date: Sun, 14 Apr 2024 11:53:13 +0300
|
|
Subject: [PATCH 2/2] Mention USE_SYSTEM_HIREDICT setting in README
|
|
|
|
Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
|
|
---
|
|
README.md | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/README.md b/README.md
|
|
index ae77a235a..cf4944e6f 100644
|
|
--- a/README.md
|
|
+++ b/README.md
|
|
@@ -25,6 +25,8 @@ You can pass the following variables to Redict to customize the build:
|
|
* `USE_JEMALLOC=no MALLOC=libc`: use the libc allocator rather than jemalloc
|
|
* `USE_SYSTEM_JEMALLOC=yes`: use the system's installed jemalloc libraries
|
|
rather than the vendored copy.
|
|
+* `USE_SYSTEM_HIREDICT=yes`: use the system's installed hiredict libraries
|
|
+ rather than the vendored copy.
|
|
* `BUILD_TLS=yes`: build with TLS support. Requires OpenSSL.
|
|
* `USE_SYSTEMD=yes`: build with systemd support. Requires libsystemd.
|
|
* `PROG_SUFFIX="-suffix"`: Append "-suffix" to executable names
|
|
--
|
|
2.39.2
|
|
|
|
From: Maytham Alsudany <maytha8thedev@gmail.com>
|
|
Subject: Fix hiredict imports
|
|
Forwarded: no
|
|
|
|
--- a/src/cli_common.c
|
|
+++ b/src/cli_common.c
|
|
@@ -13,15 +13,15 @@
|
|
#include <stdlib.h>
|
|
#include <fcntl.h>
|
|
#include <errno.h>
|
|
-#include <hiredict.h>
|
|
-#include <sds.h>
|
|
+#include <hiredict/hiredict.h>
|
|
+#include <hiredict/sds.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
#include <ctype.h>
|
|
#ifdef USE_OPENSSL
|
|
#include <openssl/ssl.h>
|
|
#include <openssl/err.h>
|
|
-#include <hiredict_ssl.h>
|
|
+#include <hiredict/hiredict_ssl.h>
|
|
#endif
|
|
|
|
#define UNUSED(V) ((void) V)
|
|
--- a/src/cli_common.h
|
|
+++ b/src/cli_common.h
|
|
@@ -7,8 +7,8 @@
|
|
#ifndef __CLICOMMON_H
|
|
#define __CLICOMMON_H
|
|
|
|
-#include <hiredict.h>
|
|
-#include <sds.h>
|
|
+#include <hiredict/hiredict.h>
|
|
+#include <hiredict/sds.h>
|
|
|
|
typedef struct cliSSLconfig {
|
|
/* Requested SNI, or NULL */
|
|
--- a/src/redict-benchmark.c
|
|
+++ b/src/redict-benchmark.c
|
|
@@ -19,13 +19,13 @@
|
|
#include <math.h>
|
|
#include <pthread.h>
|
|
|
|
-#include <sds.h>
|
|
+#include <hiredict/sds.h>
|
|
#include "ae.h"
|
|
-#include <hiredict.h>
|
|
+#include <hiredict/hiredict.h>
|
|
#ifdef USE_OPENSSL
|
|
#include <openssl/ssl.h>
|
|
#include <openssl/err.h>
|
|
-#include <hiredict_ssl.h>
|
|
+#include <hiredict/hiredict_ssl.h>
|
|
#endif
|
|
#include "adlist.h"
|
|
#include "dict.h"
|
|
--- a/src/redict-cli.c
|
|
+++ b/src/redict-cli.c
|
|
@@ -23,13 +23,13 @@
|
|
#include <math.h>
|
|
#include <termios.h>
|
|
|
|
-#include <hiredict.h>
|
|
+#include <hiredict/hiredict.h>
|
|
#ifdef USE_OPENSSL
|
|
#include <openssl/ssl.h>
|
|
#include <openssl/err.h>
|
|
-#include <hiredict_ssl.h>
|
|
+#include <hiredict/hiredict_ssl.h>
|
|
#endif
|
|
-#include <sds.h>
|
|
+#include <hiredict/sds.h>
|
|
#include "dict.h"
|
|
#include "adlist.h"
|
|
#include "zmalloc.h"
|
|
--- a/src/sentinel.c
|
|
+++ b/src/sentinel.c
|
|
@@ -6,12 +6,12 @@
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
|
|
#include "server.h"
|
|
-#include "hiredict.h"
|
|
+#include "hiredict/hiredict.h"
|
|
#if USE_OPENSSL == 1 /* BUILD_YES */
|
|
#include "openssl/ssl.h"
|
|
-#include "hiredict_ssl.h"
|
|
+#include "hiredict/hiredict_ssl.h"
|
|
#endif
|
|
-#include "async.h"
|
|
+#include "hiredict/async.h"
|
|
|
|
#include <ctype.h>
|
|
#include <arpa/inet.h>
|
|
|