mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-01-27 12:01:38 +01:00
valkey: Add recipe
Valkey is an open source, in-memory data store. Release 8.0.0 is fully compatible with Redis OSS 7.2.4 and brings: - Added full client info to SHUTDOWN and CLUSTER FAILOVER logs for better traceability of requests. - Resolved issues in replicationSetPrimary where the primary node's IP/port updates were not correctly handled in the cluster gossip section. - Fixed AOF base suffix during rewrites when modifying the aof-use-rdb-preamble setting, ensuring correct suffix caching to prevent inconsistencies. - Addressed rare crashes in async IO threads with TLS by preventing concurrent read and write job overlap. - Prevented AOF from being incorrectly disabled after loading RDB data, ensuring proper re-enabling of AOF. - Triggered a save of the cluster configuration file before shutdown to prevent inconsistencies caused by unsaved node configuration changes. - Fixed timing issue in CLUSTER SETSLOT to ensure replicas handle migration correctly when receiving the command before the gossip update. - Optimized the handling of temporary set objects in SUNION and SDIFF commands, resulting in a 41% performance improvement for SUNION and 27% for SDIFF. Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
ead57410e2
commit
9d3c5967e2
|
|
@ -0,0 +1,33 @@
|
|||
From b4cf6e677cec75a0d2b57dcb2960ad1e16908c82 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 10 Sep 2019 20:04:26 -0700
|
||||
Subject: [PATCH] src: Do not reset FINAL_LIBS
|
||||
|
||||
This helps case where additional libraries are needed to be passed from
|
||||
environment to get it going
|
||||
|
||||
e.g. -latomic is needed on clang/x86 to provide for 64bit atomics
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
src/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index e0b1d2722..48988e271 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -145,7 +145,7 @@ ifeq ($(SERVER_TEST),yes)
|
||||
FINAL_CFLAGS +=-DSERVER_TEST=1
|
||||
endif
|
||||
FINAL_LDFLAGS=$(LDFLAGS) $(OPT) $(SERVER_LDFLAGS) $(DEBUG)
|
||||
-FINAL_LIBS=-lm
|
||||
+FINAL_LIBS+=-lm
|
||||
DEBUG=-g -ggdb
|
||||
|
||||
# Linux ARM32 needs -latomic at linking time
|
||||
--
|
||||
2.39.5
|
||||
|
||||
29
meta-oe/recipes-extended/valkey/valkey/GNU_SOURCE-7.patch
Normal file
29
meta-oe/recipes-extended/valkey/valkey/GNU_SOURCE-7.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
From f3dd59789e4a8b06777be2725c6c3e36050fd6ec Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 21 Dec 2019 12:09:51 -0800
|
||||
Subject: [PATCH] Define _GNU_SOURCE to get PTHREAD_MUTEX_INITIALIZER
|
||||
|
||||
Fixes
|
||||
| zmalloc.c:87:37: error: 'PTHREAD_MUTEX_DEFAULT' undeclared here (not in a function)
|
||||
| 87 | pthread_mutex_t used_memory_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
| | ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
src/zmalloc.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/zmalloc.c b/src/zmalloc.c
|
||||
index 7b19107b6..bd365c11c 100644
|
||||
--- a/src/zmalloc.c
|
||||
+++ b/src/zmalloc.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "solarisfixes.h"
|
||||
#include "serverassert.h"
|
||||
|
||||
+#define _GNU_SOURCE
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
From 5e6c3052930f1d831d3479cb59533c08277700ff Mon Sep 17 00:00:00 2001
|
||||
From: Venture Research <tech@ventureresearch.com>
|
||||
Date: Fri, 8 Feb 2013 17:39:52 -0600
|
||||
Subject: [PATCH] hiredis: use default CC if it is set
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Instead of trying to automagically figure out CC, which breaks with OE
|
||||
as CC has spaces in it, just skip it if one was already passed in.
|
||||
|
||||
Signed-off-by: Venture Research <tech@ventureresearch.com>
|
||||
|
||||
Update to work with 4.0.8
|
||||
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
||||
|
||||
Reworked for 6.0.4
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
|
||||
Reworked for 8.0.0
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
deps/hiredis/Makefile | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
|
||||
index 4a3de1f6e..49bb525cd 100644
|
||||
--- a/deps/hiredis/Makefile
|
||||
+++ b/deps/hiredis/Makefile
|
||||
@@ -36,8 +36,6 @@ endef
|
||||
export REDIS_TEST_CONFIG
|
||||
|
||||
# Fallback to gcc when $CC is not in $PATH.
|
||||
-CC:=$(shell sh -c 'type $${CC%% *} >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
|
||||
-CXX:=$(shell sh -c 'type $${CXX%% *} >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
|
||||
OPTIMIZATION?=-O3
|
||||
WARNINGS=-Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
|
||||
DEBUG_FLAGS?= -g -ggdb
|
||||
71
meta-oe/recipes-extended/valkey/valkey/init-valkey-server
Executable file
71
meta-oe/recipes-extended/valkey/valkey/init-valkey-server
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: valkey-server
|
||||
# Required-Start: $network
|
||||
# Required-Stop: $network
|
||||
# Default-Start: S 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Redis, a key-value store
|
||||
# Description: Redis is an open source, advanced key-value store.
|
||||
# http://valkey.io
|
||||
### END INIT INFO
|
||||
|
||||
test -f /usr/bin/valkey-server || exit 0
|
||||
|
||||
ARGS="/etc/valkey/valkey.conf"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting valkey-server..."
|
||||
start-stop-daemon --start --quiet --exec /usr/bin/valkey-server -- $ARGS
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping valkey-server..."
|
||||
start-stop-daemon --stop --quiet --exec /usr/bin/valkey-server
|
||||
;;
|
||||
restart)
|
||||
echo "Stopping valkey-server..."
|
||||
start-stop-daemon --stop --quiet --exec /usr/bin/valkey-server
|
||||
|
||||
# Since busybox implementation ignores --retry arguments repeatedly check
|
||||
# if the process is still running and try another signal after a timeout,
|
||||
# efectively simulating a stop with --retry=TERM/5/KILL/5 schedule.
|
||||
waitAfterTerm=5000000 # us / 5000 ms / 5 s
|
||||
waitAfterKill=5000000 # us / 5000 ms / 5 s
|
||||
waitStep=100000 # us / 100 ms / 0.1 s
|
||||
waited=0
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/valkey-server
|
||||
processOff=$?
|
||||
while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do
|
||||
usleep ${waitStep}
|
||||
((waited+=${waitStep}))
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/valkey-server
|
||||
processOff=$?
|
||||
done
|
||||
if [ $processOff -eq 0 ] ; then
|
||||
start-stop-daemon --stop --signal KILL --exec /usr/bin/valkey-server
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/valkey-server
|
||||
processOff=$?
|
||||
fi
|
||||
waited=0
|
||||
while [ $processOff -eq 0 ] && [ $waited -le $waitAfterKill ] ; do
|
||||
usleep ${waitStep}
|
||||
((waited+=${waitStep}))
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/valkey-server
|
||||
processOff=$?
|
||||
done
|
||||
# Here $processOff will indicate if waiting and retrying according to
|
||||
# the schedule ended in a successfull stop or not.
|
||||
|
||||
echo "Starting valkey-server..."
|
||||
start-stop-daemon --start --quiet --exec /usr/bin/valkey-server -- $ARGS
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/valkey-server {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
From 892225f5101b1131434d323c55e79a93dc189609 Mon Sep 17 00:00:00 2001
|
||||
From: Venture Research <tech@ventureresearch.com>
|
||||
Date: Fri, 8 Feb 2013 20:22:19 -0600
|
||||
Subject: [PATCH] lua: update Makefile to use environment build settings
|
||||
|
||||
OE-specific parameters, instead of overriding all of these simply use
|
||||
the ones that are already passed in. Also configure for only Linux...
|
||||
|
||||
Signed-off-by: Venture Research <tech@ventureresearch.com>
|
||||
|
||||
Updated to work with 3.0.x
|
||||
|
||||
Signed-off-by: Armin Kuster <akust808@gmail.com>
|
||||
|
||||
updated to work wtih 6.2.1
|
||||
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
deps/Makefile | 1 -
|
||||
deps/lua/Makefile | 1 -
|
||||
deps/lua/src/Makefile | 16 ++++++----------
|
||||
3 files changed, 6 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/deps/Makefile b/deps/Makefile
|
||||
index f1e4bd6ce..b9e50d049 100644
|
||||
--- a/deps/Makefile
|
||||
+++ b/deps/Makefile
|
||||
@@ -94,7 +94,6 @@ endif
|
||||
# lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
|
||||
# challenging to cross-compile lua (and redis). These defines make it easier
|
||||
# to fit redis into cross-compilation environments, which typically set AR.
|
||||
-AR=ar
|
||||
ARFLAGS=rc
|
||||
|
||||
lua: .make-prerequisites
|
||||
diff --git a/deps/lua/Makefile b/deps/lua/Makefile
|
||||
index 209a13244..72f4b2bf2 100644
|
||||
--- a/deps/lua/Makefile
|
||||
+++ b/deps/lua/Makefile
|
||||
@@ -33,7 +33,6 @@ INSTALL_DATA= $(INSTALL) -m 0644
|
||||
|
||||
# Utilities.
|
||||
MKDIR= mkdir -p
|
||||
-RANLIB= ranlib
|
||||
|
||||
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
|
||||
|
||||
diff --git a/deps/lua/src/Makefile b/deps/lua/src/Makefile
|
||||
index f3bba2f81..1555ec028 100644
|
||||
--- a/deps/lua/src/Makefile
|
||||
+++ b/deps/lua/src/Makefile
|
||||
@@ -5,18 +5,14 @@
|
||||
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
|
||||
|
||||
# Your platform. See PLATS for possible values.
|
||||
-PLAT= none
|
||||
+PLAT= linux
|
||||
|
||||
-CC?= gcc
|
||||
-CFLAGS= -O2 -Wall $(MYCFLAGS)
|
||||
-AR= ar rcu
|
||||
-RANLIB= ranlib
|
||||
-RM= rm -f
|
||||
-LIBS= -lm $(MYLIBS)
|
||||
-
|
||||
-MYCFLAGS=
|
||||
+MYCFLAGS=-DLUA_USE_LINUX
|
||||
MYLDFLAGS=
|
||||
-MYLIBS=
|
||||
+MYLIBS=-Wl,-E -ldl -lreadline -lhistory -lncurses
|
||||
+
|
||||
+CFLAGS += $(MYCFLAGS)
|
||||
+LIBS += -lm $(MYLIBS)
|
||||
|
||||
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From ad79a81d6582555e580bdba42c959477e7d35ae7 Mon Sep 17 00:00:00 2001
|
||||
From: Venture Research <tech@ventureresearch.com>
|
||||
Date: Wed, 6 Feb 2013 20:51:02 -0600
|
||||
Subject: [PATCH] hack to force use of libc malloc
|
||||
|
||||
Hack to force libc usage as it seems the option to pass it in has been
|
||||
removed in favor of magic.
|
||||
|
||||
Note that this of course doesn't allow tcmalloc and jemalloc, however
|
||||
jemalloc wasn't building correctly.
|
||||
|
||||
Signed-off-by: Venture Research <tech@ventureresearch.com>
|
||||
|
||||
Update to work with 4.0.8
|
||||
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
||||
|
||||
Update to work with 8.0.0
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
src/Makefile | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 13fa1c027..e0b1d2722 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -13,7 +13,8 @@
|
||||
# Just use 'make dep', but this is only needed by developers.
|
||||
|
||||
release_hdr := $(shell sh -c './mkreleasehdr.sh')
|
||||
-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
||||
+# use fake uname option to force use of generic libc
|
||||
+uname_S := "USE_LIBC_MALLOC"
|
||||
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
|
||||
CLANG := $(findstring clang,$(shell sh -c '$(CC) --version | head -1'))
|
||||
|
||||
1314
meta-oe/recipes-extended/valkey/valkey/valkey.conf
Normal file
1314
meta-oe/recipes-extended/valkey/valkey/valkey.conf
Normal file
File diff suppressed because it is too large
Load Diff
16
meta-oe/recipes-extended/valkey/valkey/valkey.service
Normal file
16
meta-oe/recipes-extended/valkey/valkey/valkey.service
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[Unit]
|
||||
Description=Valkey: an open source, in-memory data store
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=valkey
|
||||
Group=valkey
|
||||
ExecStart=/usr/bin/valkey-server /etc/valkey/valkey.conf
|
||||
ExecStop=/usr/bin/valkey-cli shutdown
|
||||
Restart=always
|
||||
LimitNOFILE=10032
|
||||
StateDirectory=valkey
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
74
meta-oe/recipes-extended/valkey/valkey_8.0.0.bb
Normal file
74
meta-oe/recipes-extended/valkey/valkey_8.0.0.bb
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
SUMMARY = "Valkey key-value store"
|
||||
DESCRIPTION = "A flexible distributed key-value datastore that supports both caching and beyond caching workloads."
|
||||
HOMEPAGE = "http://valkey.io"
|
||||
SECTION = "libs"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=f924153a31f3091d2c9c500317d53425"
|
||||
DEPENDS = "readline lua ncurses"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/valkey-io/valkey.git;branch=8.0;protocol=https \
|
||||
file://valkey.conf \
|
||||
file://init-valkey-server \
|
||||
file://valkey.service \
|
||||
file://hiredis-use-default-CC-if-it-is-set.patch \
|
||||
file://lua-update-Makefile-to-use-environment-build-setting.patch \
|
||||
file://oe-use-libc-malloc.patch \
|
||||
file://0001-src-Do-not-reset-FINAL_LIBS.patch \
|
||||
file://GNU_SOURCE-7.patch \
|
||||
"
|
||||
SRCREV = "2b5c7a0dbd61fd4281ef6166b7d119ba7fe7368c"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit autotools-brokensep pkgconfig update-rc.d systemd useradd
|
||||
|
||||
FINAL_LIBS:x86:toolchain-clang = "-latomic"
|
||||
FINAL_LIBS:riscv32:toolchain-clang = "-latomic"
|
||||
FINAL_LIBS:mips = "-latomic"
|
||||
FINAL_LIBS:arm = "-latomic"
|
||||
FINAL_LIBS:powerpc = "-latomic"
|
||||
|
||||
export FINAL_LIBS
|
||||
|
||||
USERADD_PACKAGES = "${PN}"
|
||||
USERADD_PARAM:${PN} = "--system --home-dir /var/lib/valkey -g valkey --shell /bin/false valkey"
|
||||
GROUPADD_PARAM:${PN} = "--system valkey"
|
||||
|
||||
PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
|
||||
PACKAGECONFIG[systemd] = "USE_SYSTEMD=yes,USE_SYSTEMD=no,systemd"
|
||||
|
||||
EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
|
||||
|
||||
do_compile:prepend() {
|
||||
(cd deps && oe_runmake hiredis lua linenoise)
|
||||
}
|
||||
|
||||
do_install() {
|
||||
export PREFIX=${D}/${prefix}
|
||||
oe_runmake install
|
||||
install -d ${D}/${sysconfdir}/valkey
|
||||
install -m 0644 ${UNPACKDIR}/valkey.conf ${D}/${sysconfdir}/valkey/valkey.conf
|
||||
install -d ${D}/${sysconfdir}/init.d
|
||||
install -m 0755 ${UNPACKDIR}/init-valkey-server ${D}/${sysconfdir}/init.d/valkey-server
|
||||
install -d ${D}/var/lib/valkey/
|
||||
chown valkey.valkey ${D}/var/lib/valkey/
|
||||
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${UNPACKDIR}/valkey.service ${D}${systemd_system_unitdir}
|
||||
sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/valkey.service
|
||||
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/valkey/valkey.conf
|
||||
sed -i 's!supervised no!supervised systemd!' ${D}/${sysconfdir}/valkey/valkey.conf
|
||||
fi
|
||||
}
|
||||
|
||||
CONFFILES:${PN} = "${sysconfdir}/valkey/valkey.conf"
|
||||
|
||||
INITSCRIPT_NAME = "valkey-server"
|
||||
INITSCRIPT_PARAMS = "defaults 87"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "valkey.service"
|
||||
|
||||
CVE_STATUS[CVE-2022-3734] = "not-applicable-platform: CVE only applies for Windows."
|
||||
Loading…
Reference in New Issue
Block a user