mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
redis: Add redis 8.0.0 recipe
Adding base 8.0.0 recipe for redis without any module configuration. See https://github.com/redis/redis/tree/8.0.0?tab=readme-ov-file#redis-data-types-processing-engines-and-capabilities for more details. Signed-off-by: Eric Meyers <eric.meyers@arthrex.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
From 43601f60f268ddbc2e03f7a33ae4a1ad109f092c 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
|
||||
|
||||
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.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
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: Eric Meyers <eric.meyers@arthrex.com>
|
||||
|
||||
---
|
||||
deps/hiredis/Makefile | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
|
||||
index bd2106b..9ce768d 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
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
From d50d4cb30bfb533185711116822a50d83e5a92e8 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...
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
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>
|
||||
|
||||
Reworked for 8.0.0
|
||||
Signed-off-by: Eric Meyers <eric.meyers@arthrex.com>
|
||||
|
||||
---
|
||||
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 5593e0c..d71265a 100644
|
||||
--- a/deps/Makefile
|
||||
+++ b/deps/Makefile
|
||||
@@ -101,7 +101,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 209a132..72f4b2b 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 f3bba2f..1555ec0 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 =========
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
From 55e09d562a1b8ca6a7d3ef2349c58f466bc44d2b 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.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
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 8.0.0
|
||||
Signed-off-by: Eric Meyers <eric.meyers@arthrex.com>
|
||||
|
||||
---
|
||||
src/Makefile | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 948ef83..5dbbefc 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -17,7 +17,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'))
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 8f7a23705433e3f8850736a3348ecabbf7949e01 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>
|
||||
|
||||
Reworked for 8.0.0
|
||||
Signed-off-by: Eric Meyers <eric.meyers@arthrex.com>
|
||||
|
||||
---
|
||||
src/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 5dbbefc..15fbe09 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -131,7 +131,7 @@ endif
|
||||
|
||||
FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
|
||||
FINAL_LDFLAGS=$(LDFLAGS) $(OPT) $(REDIS_LDFLAGS) $(DEBUG)
|
||||
-FINAL_LIBS=-lm -lstdc++
|
||||
+FINAL_LIBS+=-lm -lstdc++
|
||||
DEBUG=-g -ggdb
|
||||
|
||||
# Linux ARM32 needs -latomic at linking time
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
From 3e5b6732b936883d895638a3098a29dd254a7be4 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>
|
||||
|
||||
Reworked for 8.0.0
|
||||
Signed-off-by: Eric Meyers <eric.meyers@arthrex.com>
|
||||
|
||||
---
|
||||
src/zmalloc.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/zmalloc.c b/src/zmalloc.c
|
||||
index b2f5718..913be90 100644
|
||||
--- a/src/zmalloc.c
|
||||
+++ b/src/zmalloc.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "config.h"
|
||||
#include "solarisfixes.h"
|
||||
|
||||
+#define _GNU_SOURCE
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: redis-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://redis.io
|
||||
### END INIT INFO
|
||||
|
||||
test -f /usr/bin/redis-server || exit 0
|
||||
|
||||
ARGS="/etc/redis/redis.conf"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting redis-server..."
|
||||
start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping redis-server..."
|
||||
start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
|
||||
;;
|
||||
restart)
|
||||
echo "Stopping redis-server..."
|
||||
start-stop-daemon --stop --quiet --exec /usr/bin/redis-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/redis-server
|
||||
processOff=$?
|
||||
while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do
|
||||
usleep ${waitStep}
|
||||
((waited+=${waitStep}))
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
|
||||
processOff=$?
|
||||
done
|
||||
if [ $processOff -eq 0 ] ; then
|
||||
start-stop-daemon --stop --signal KILL --exec /usr/bin/redis-server
|
||||
start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-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/redis-server
|
||||
processOff=$?
|
||||
done
|
||||
# Here $processOff will indicate if waiting and retrying according to
|
||||
# the schedule ended in a successfull stop or not.
|
||||
|
||||
echo "Starting redis-server..."
|
||||
start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/redis-server {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Redis In-Memory Data Store
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=redis
|
||||
Group=redis
|
||||
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
|
||||
ExecStop=/usr/bin/redis-cli shutdown
|
||||
Restart=always
|
||||
LimitNOFILE=10032
|
||||
Type=notify
|
||||
StateDirectory=redis
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
SUMMARY = "Redis key-value store"
|
||||
DESCRIPTION = "Redis is an open source, advanced key-value store."
|
||||
HOMEPAGE = "http://redis.io"
|
||||
SECTION = "libs"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4feb9943a139a170b9d6ed6ec3342d0c"
|
||||
DEPENDS = "readline lua ncurses"
|
||||
|
||||
SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
|
||||
file://redis.conf \
|
||||
file://init-redis-server \
|
||||
file://redis.service \
|
||||
file://0001-hiredis-use-default-CC-if-it-is-set.patch \
|
||||
file://0002-lua-update-Makefile-to-use-environment-build-setting.patch \
|
||||
file://0003-hack-to-force-use-of-libc-malloc.patch \
|
||||
file://0004-src-Do-not-reset-FINAL_LIBS.patch \
|
||||
file://0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "cf395665ba5fcecc4ef7aed1d8ab19c268619d98595827565c82344160171262"
|
||||
|
||||
RPROVIDES:${PN} = "virtual-redis"
|
||||
|
||||
CVE_STATUS[CVE-2025-21605] = "cpe-incorrect: the used version already contains the fix"
|
||||
CVE_STATUS[CVE-2025-27151] = "cpe-incorrect: the used version already contains the fix"
|
||||
CVE_STATUS[CVE-2025-46686] = "disputed: upstream rejected because mitigating it would affect other functionality"
|
||||
CVE_STATUS[CVE-2025-46817] = "cpe-incorrect: the used version already contains the fix"
|
||||
CVE_STATUS[CVE-2025-46818] = "cpe-incorrect: the used version already contains the fix"
|
||||
CVE_STATUS[CVE-2025-46819] = "cpe-incorrect: the used version already contains the fix"
|
||||
|
||||
inherit pkgconfig update-rc.d systemd useradd
|
||||
|
||||
FINAL_LIBS:x86:toolchain-clang = "-latomic"
|
||||
FINAL_LIBS:riscv32 = "-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/redis -g redis --shell /bin/false redis"
|
||||
GROUPADD_PARAM:${PN} = "--system redis"
|
||||
|
||||
PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
|
||||
PACKAGECONFIG[systemd] = "USE_SYSTEMD=yes,USE_SYSTEMD=no,systemd"
|
||||
|
||||
EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
|
||||
|
||||
TARGET_LDFLAGS:append = " ${DEBUG_PREFIX_MAP}"
|
||||
|
||||
do_compile:prepend() {
|
||||
oe_runmake -C deps hdr_histogram fpconv hiredis lua linenoise
|
||||
}
|
||||
|
||||
do_install() {
|
||||
export PREFIX=${D}/${prefix}
|
||||
oe_runmake install
|
||||
install -d ${D}/${sysconfdir}/redis
|
||||
install -m 0644 ${UNPACKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
|
||||
install -d ${D}/${sysconfdir}/init.d
|
||||
install -m 0755 ${UNPACKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
|
||||
install -d ${D}/var/lib/redis/
|
||||
chown redis.redis ${D}/var/lib/redis/
|
||||
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${UNPACKDIR}/redis.service ${D}${systemd_system_unitdir}
|
||||
sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
|
||||
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
|
||||
sed -i 's!supervised no!supervised systemd!' ${D}/${sysconfdir}/redis/redis.conf
|
||||
fi
|
||||
}
|
||||
|
||||
CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
|
||||
|
||||
INITSCRIPT_NAME = "redis-server"
|
||||
INITSCRIPT_PARAMS = "defaults 87"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "redis.service"
|
||||
|
||||
CVE_STATUS[CVE-2022-3734] = "not-applicable-platform: CVE only applies for Windows."
|
||||
# The vulnerability originates from Debian's packaging methodology,
|
||||
# which loads system-wide Lua libraries (lua-cjson, lua-cmsgpack),
|
||||
# enabling Lua sandbox escape. Upstream Redis builds, including
|
||||
# those built by Yocto/OpenEmbedded, utilize embedded Lua from the
|
||||
# deps/ directory and are therefore not affected by this issue.
|
||||
CVE_STATUS[CVE-2022-0543] = "not-applicable-config: Debian-specific packaging issue caused by loading system-wide Lua libraries; upstream builds use embedded Lua and are not affected"
|
||||
Reference in New Issue
Block a user