Files
rpi-buildroot/package/redis/redis.mk
Titouan Christophe da69e45341 package/redis: bump to v8.0.0
Since 8.0.0, Redis now uses the fastfloat library as a bundled
dependency, and this library is written in C++ (even though the
rest of Redis is in plain C).

Therefore, we now require a toolchain with C++ support.

From https://github.com/redis/redis/blob/8.0.0/00-RELEASENOTES:

=======================================================
8.0 GA (v8.0.0)    Released Fri 2 May 2025 12:00:00 IST
=======================================================

This is the General Availability release of Redis Open Source 8.0.

Redis 8.0 deprecates previous Redis and Redis Stack versions.

Stand alone RediSearch, RedisJSON, RedisTimeSeries, and RedisBloom are no longer needed as they are now part of Redis.

- Name change: Redis Community Edition is now Redis Open Source
- License change: licensed under your choice of
  - (a) the Redis Source Available License 2.0 (RSALv2); or
  - (b) the Server Side Public License v1 (SSPLv1); or
  - (c) the GNU Affero General Public License (AGPLv3)
- Redis Query engine and 8 new data structures are now an integral part of Redis 8
  - (1) Redis Query Engine, which now supports both horizontal and vertical scaling for search, query and vector workloads
  - (2) JSON - a queryable JSON document
  - (3) Time series
  - (4-8) Five probabilistic data structures: Bloom filter, Cuckoo filter, Count-min sketch, Top-k, and t-digest
  - (9) Vector set [beta] - a data structure designed for Vector Similarity Search, inspired by Sorted set
  - These nine components are included in all binary distributions

  - See instructions in the README.md file on how to build from source with all these components
  - New configuration file: redis-full.conf - loads Redis with all these components,
    and contains new configuration parameters for Redis Query engine and the new data structures
  - New ACL categories: @search, @json, @timeseries, @bloom, @cuckoo, @cms, @topk, @tdigest
  - Commands are also included in the existing ACL categories (@read, @write, etc.)

- More than 30 performance and resource utilization improvements
- A new I/O threading implementation which enables throughput increase on multi-core environments
  (set with `io-threads` configuration parameter)
- An improved replication mechanism which is more performant and robust
- New hash commands - `HGETDEL`, `HGETEX`, `HSETEX`

For more details, see the release notes of 8.0-M01, 8.0-M02, 8.0-M03,8.0-M04, and 8.0-RC1

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-05-07 18:30:02 +02:00

73 lines
2.0 KiB
Makefile

################################################################################
#
# redis
#
################################################################################
REDIS_VERSION = 8.0.0
REDIS_SITE = http://download.redis.io/releases
REDIS_LICENSE = \
AGPL-3.0 or SSPL-1.0 or RSAL-2.0 (core); \
MIT and BSD family licenses (Bundled components)
REDIS_LICENSE_FILES = LICENSE.txt
REDIS_CPE_ID_VENDOR = redislabs
REDIS_SELINUX_MODULES = redis
define REDIS_USERS
redis -1 redis -1 * /var/lib/redis /bin/false - Redis Server
endef
# Uses __atomic_fetch_add_4. Adding -latomic to LDFLAGS does not work,
# because LDFLAGS is used before the list of object files. We need to
# add -latomic to FINAL_LIBS to provide -latomic at the correct place
# in the linking command.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
define REDIS_FIX_MAKEFILE
$(SED) 's/FINAL_LIBS=-lm/FINAL_LIBS=-lm -latomic/' $(@D)/src/Makefile
endef
REDIS_POST_PATCH_HOOKS = REDIS_FIX_MAKEFILE
endif
# Redis doesn't support DESTDIR (yet, see
# https://github.com/antirez/redis/pull/609). We set PREFIX
# instead.
REDIS_BUILDOPTS = $(TARGET_CONFIGURE_OPTS) \
PREFIX=$(TARGET_DIR)/usr MALLOC=libc WARNINGS=
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
REDIS_DEPENDENCIES += systemd
REDIS_BUILDOPTS += USE_SYSTEMD=yes
else
REDIS_BUILDOPTS += USE_SYSTEMD=no
endif
ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
REDIS_DEPENDENCIES += libopenssl
REDIS_BUILDOPTS += BUILD_TLS=yes
else
REDIS_BUILDOPTS += BUILD_TLS=no
endif
define REDIS_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(REDIS_BUILDOPTS) -C $(@D)
endef
define REDIS_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(REDIS_BUILDOPTS) -C $(@D) \
LDCONFIG=true install
$(INSTALL) -D -m 0644 $(@D)/redis.conf \
$(TARGET_DIR)/etc/redis.conf
endef
define REDIS_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/redis/S50redis \
$(TARGET_DIR)/etc/init.d/S50redis
endef
define REDIS_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 0644 package/redis/redis.service \
$(TARGET_DIR)/usr/lib/systemd/system/redis.service
endef
$(eval $(generic-package))