Accepting request 982484 from server:database
OBS-URL: https://build.opensuse.org/request/show/982484 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/redis?expand=0&rev=77
This commit is contained in:
123
Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
Normal file
123
Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
Normal file
@@ -0,0 +1,123 @@
|
||||
From: Chris Lamb <lamby@debian.org>
|
||||
Date: Sat, 25 Aug 2018 17:52:13 +0200
|
||||
Subject: Add support for USE_SYSTEM_JEMALLOC flag.
|
||||
|
||||
https://github.com/antirez/redis/pull/5279
|
||||
---
|
||||
deps/Makefile | 2 ++
|
||||
src/Makefile | 5 +++++
|
||||
src/debug.c | 4 ++++
|
||||
src/object.c | 5 +++++
|
||||
src/zmalloc.c | 10 ++++++++++
|
||||
src/zmalloc.h | 4 ++++
|
||||
6 files changed, 30 insertions(+)
|
||||
|
||||
Index: redis-7.0.0/deps/Makefile
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/deps/Makefile
|
||||
+++ redis-7.0.0/deps/Makefile
|
||||
@@ -38,7 +38,9 @@ distclean:
|
||||
-(cd hiredis && $(MAKE) clean) > /dev/null || true
|
||||
-(cd linenoise && $(MAKE) clean) > /dev/null || true
|
||||
-(cd lua && $(MAKE) clean) > /dev/null || true
|
||||
+ifneq ($(USE_SYSTEM_JEMALLOC),yes)
|
||||
-(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
|
||||
+endif
|
||||
-(cd hdr_histogram && $(MAKE) clean) > /dev/null || true
|
||||
-(rm -f .make-*)
|
||||
|
||||
Index: redis-7.0.0/src/Makefile
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/src/Makefile
|
||||
+++ redis-7.0.0/src/Makefile
|
||||
@@ -266,10 +266,15 @@ ifeq ($(MALLOC),tcmalloc_minimal)
|
||||
endif
|
||||
|
||||
ifeq ($(MALLOC),jemalloc)
|
||||
+ifeq ($(USE_SYSTEM_JEMALLOC),yes)
|
||||
+ FINAL_CFLAGS+= -DUSE_JEMALLOC -I/usr/include/jemalloc/include
|
||||
+ FINAL_LIBS := -ljemalloc $(FINAL_LIBS)
|
||||
+else
|
||||
DEPENDENCY_TARGETS+= jemalloc
|
||||
FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
|
||||
FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
|
||||
endif
|
||||
+endif
|
||||
|
||||
ifeq ($(BUILD_TLS),yes)
|
||||
FINAL_CFLAGS+=-DUSE_OPENSSL $(OPENSSL_CFLAGS)
|
||||
Index: redis-7.0.0/src/debug.c
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/src/debug.c
|
||||
+++ redis-7.0.0/src/debug.c
|
||||
@@ -71,6 +71,10 @@ void printCrashReport(void);
|
||||
void bugReportEnd(int killViaSignal, int sig);
|
||||
void logStackTrace(void *eip, int uplevel);
|
||||
|
||||
+#if defined(USE_JEMALLOC) && (USE_SYSTEM_JEMALLOC == yes)
|
||||
+#define je_mallctl mallctl
|
||||
+#endif
|
||||
+
|
||||
/* ================================= Debugging ============================== */
|
||||
|
||||
/* Compute the sha1 of string at 's' with 'len' bytes long.
|
||||
Index: redis-7.0.0/src/object.c
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/src/object.c
|
||||
+++ redis-7.0.0/src/object.c
|
||||
@@ -37,6 +37,11 @@
|
||||
#define strtold(a,b) ((long double)strtod((a),(b)))
|
||||
#endif
|
||||
|
||||
+#if defined(USE_JEMALLOC) && (USE_SYSTEM_JEMALLOC == yes)
|
||||
+#define je_mallctl mallctl
|
||||
+#define je_malloc_stats_print malloc_stats_print
|
||||
+#endif
|
||||
+
|
||||
/* ===================== Creation and parsing of objects ==================== */
|
||||
|
||||
robj *createObject(int type, void *ptr) {
|
||||
Index: redis-7.0.0/src/zmalloc.c
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/src/zmalloc.c
|
||||
+++ redis-7.0.0/src/zmalloc.c
|
||||
@@ -79,6 +79,15 @@ void zlibc_free(void *ptr) {
|
||||
#define realloc(ptr,size) tc_realloc(ptr,size)
|
||||
#define free(ptr) tc_free(ptr)
|
||||
#elif defined(USE_JEMALLOC)
|
||||
+#if USE_SYSTEM_JEMALLOC == yes
|
||||
+#define malloc(size) malloc(size)
|
||||
+#define calloc(count,size) calloc(count,size)
|
||||
+#define realloc(ptr,size) realloc(ptr,size)
|
||||
+#define free(ptr) free(ptr)
|
||||
+#define mallocx(size,flags) mallocx(size,flags)
|
||||
+#define dallocx(ptr,flags) dallocx(ptr,flags)
|
||||
+#define je_mallctl mallctl
|
||||
+#else
|
||||
#define malloc(size) je_malloc(size)
|
||||
#define calloc(count,size) je_calloc(count,size)
|
||||
#define realloc(ptr,size) je_realloc(ptr,size)
|
||||
@@ -86,6 +95,7 @@ void zlibc_free(void *ptr) {
|
||||
#define mallocx(size,flags) je_mallocx(size,flags)
|
||||
#define dallocx(ptr,flags) je_dallocx(ptr,flags)
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#define update_zmalloc_stat_alloc(__n) atomicIncr(used_memory,(__n))
|
||||
#define update_zmalloc_stat_free(__n) atomicDecr(used_memory,(__n))
|
||||
Index: redis-7.0.0/src/zmalloc.h
|
||||
===================================================================
|
||||
--- redis-7.0.0.orig/src/zmalloc.h
|
||||
+++ redis-7.0.0/src/zmalloc.h
|
||||
@@ -50,7 +50,11 @@
|
||||
#include <jemalloc/jemalloc.h>
|
||||
#if (JEMALLOC_VERSION_MAJOR == 2 && JEMALLOC_VERSION_MINOR >= 1) || (JEMALLOC_VERSION_MAJOR > 2)
|
||||
#define HAVE_MALLOC_SIZE 1
|
||||
+#if USE_SYSTEM_JEMALLOC == yes
|
||||
+#define zmalloc_size(p) malloc_usable_size(p)
|
||||
+#else
|
||||
#define zmalloc_size(p) je_malloc_usable_size(p)
|
||||
+#endif
|
||||
#else
|
||||
#error "Newer version of jemalloc required"
|
||||
#endif
|
@@ -1,13 +0,0 @@
|
||||
Index: redis-6.0.1/src/debug.c
|
||||
===================================================================
|
||||
--- redis-6.0.1.orig/src/debug.c
|
||||
+++ redis-6.0.1/src/debug.c
|
||||
@@ -919,6 +919,8 @@ static void *getMcontextEip(ucontext_t *
|
||||
return (void*) uc->uc_mcontext.arm_pc;
|
||||
#elif defined(__aarch64__) /* Linux AArch64 */
|
||||
return (void*) uc->uc_mcontext.pc;
|
||||
+ #else
|
||||
+ return NULL;
|
||||
#endif
|
||||
#elif defined(__FreeBSD__)
|
||||
/* FreeBSD */
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b7a79cc3b46d3c6eb52fa37dde34a4a60824079ebdfb3abfbbfa035947c55319
|
||||
size 2487287
|
3
redis-7.0.2.tar.gz
Normal file
3
redis-7.0.2.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e57eafe7d4ac5ecb6a7d64d6b61db775616dbf903293b3fcc660716dbda5eeb
|
||||
size 2956784
|
@@ -21,6 +21,7 @@ ProtectKernelLogs=true
|
||||
ProtectControlGroups=true
|
||||
RestrictRealtime=true
|
||||
# end of automatic additions
|
||||
ReadWritePaths=/etc/redis
|
||||
PIDFile=/run/redis/sentinel-%i.pid
|
||||
ExecStart=/usr/sbin/redis-sentinel /etc/redis/sentinel-%i.conf
|
||||
LimitNOFILE=10240
|
||||
|
@@ -1,3 +1,72 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Jun 12 16:30:32 UTC 2022 - Michael Ströder <michael@stroeder.com>
|
||||
|
||||
- Update to version 7.0.2
|
||||
* Fixed SET and BITFIELD commands being wrongly marked movablekeys (#10837)
|
||||
Regression in 7.0 possibly resulting in excessive roundtrip from cluster clients.
|
||||
* Fix crash when /proc/sys/vm/overcommit_memory is inaccessible (#10848)
|
||||
Regression in 7.0.1 resulting in crash on startup on some configurations.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 8 19:24:25 UTC 2022 - Michael Ströder <michael@stroeder.com>
|
||||
|
||||
- Update to version 7.0.1
|
||||
* Improvements
|
||||
- Add warning for suspected slow system clocksource setting
|
||||
Add --check-system command line option. (#10636)
|
||||
- Allow read-only scripts (*_RO commands, and ones with `no-writes` flag)
|
||||
during CLIENT PAUSE WRITE (#10744)
|
||||
- Add `readonly` flag in COMMAND command for EVAL_RO, EVALSHA_RO and FCALL_RO (#10728)
|
||||
- redis-server command line arguments now accept one string with spaces
|
||||
for multi-arg configs (#10660)
|
||||
* Potentially Breaking Changes
|
||||
- Omitting a config option value in command line argument no longer works (#10660)
|
||||
- Hide the `may_replicate` flag from the COMMAND command response (#10744)
|
||||
* Potentially Breaking Changes for new Redis 7.0 features
|
||||
- Protocol: Sharded pubsub publish emits `smessage` instead of `message` (#10792)
|
||||
- CLUSTER SHARDS returns slots as RESP integers, not strings (#10683)
|
||||
- Block PFCOUNT and PUBLISH in read-only scripts (*_RO commands, and no-writes) (#10744)
|
||||
- Scripts that declare the `no-writes` flag are implicitly `allow-oom` too (#10699)
|
||||
* Changes in CLI tools
|
||||
- redis-cli --bigkeys, --memkeys, --hotkeys, --scan. Finish nicely after Ctrl+C (#10736)
|
||||
* Platform / toolchain support related improvements
|
||||
- Support tcp-keepalive config interval on MacOs (#10667)
|
||||
- Support RSS metrics on Haiku OS (#10687)
|
||||
* INFO fields and introspection changes
|
||||
- Add isolated network metrics for replication. (#10062, #10810)
|
||||
* Module API changes
|
||||
- Add two more new checks to RM_Call script mode (#10786)
|
||||
- Add new RM_Call flag to let Redis automatically refuse `deny-oom` commands (#10786)
|
||||
- Add module API RM_MallocUsableSize (#10795)
|
||||
- Add missing REDISMODULE_NOTIFY_NEW (#10688)
|
||||
- Fix cursor type in RedisModuleScanCursor to handle more than 2^31 elements (#10698)
|
||||
- Fix RM_Yield bugs and RM_Call("EVAL") OOM check bug (#10786)
|
||||
- Fix bugs in enum configs with overlapping bit flags (#10661)
|
||||
* Bug Fixes
|
||||
- FLUSHALL correctly resets rdb_changes_since_last_save INFO field (#10691)
|
||||
- FLUSHDB is now propagated to replicas / AOF, even if the db is empty (#10691)
|
||||
- Replica fail and retry the PSYNC if the master is unresponsive (#10726)
|
||||
- Fix ZRANGESTORE crash when zset_max_listpack_entries is 0 (#10767)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 10 13:31:18 UTC 2022 - Danilo Spinella <danilo.spinella@suse.com>
|
||||
|
||||
- Unbundle jemalloc, fixes bsc#199164
|
||||
* Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 10 08:05:09 UTC 2022 - Johannes Segitz <jsegitz@suse.com>
|
||||
|
||||
- Add ReadWritePaths=/etc/redis to redis-sentinel@.service (bsc#1199198)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 6 17:59:39 UTC 2022 - Danilo Spinella <danilo.spinella@suse.com>
|
||||
|
||||
- Update to version 7.0.0:
|
||||
https://raw.githubusercontent.com/redis/redis/7.0/00-RELEASENOTES
|
||||
- Remove upstreamed patch:
|
||||
* getMcontextEip-return-value.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 27 21:17:06 UTC 2022 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
|
@@ -138,3 +138,5 @@ hash redis-7.0-rc2.tar.gz sha256 ee41f5a9f459b44baefbc021cf5096440f346f3c5fc8a19
|
||||
hash redis-7.0-rc3.tar.gz sha256 66b2ecc2e4b53c62940589434ea8af3a85546df131001680ed294028cd84ecdc http://download.redis.io/releases/redis-7.0-rc3.tar.gz
|
||||
hash redis-6.2.7.tar.gz sha256 b7a79cc3b46d3c6eb52fa37dde34a4a60824079ebdfb3abfbbfa035947c55319 http://download.redis.io/releases/redis-6.2.7.tar.gz
|
||||
hash redis-7.0.0.tar.gz sha256 284d8bd1fd85d6a55a05ee4e7c31c31977ad56cbf344ed83790beeb148baa720 http://download.redis.io/releases/redis-7.0.0.tar.gz
|
||||
hash redis-7.0.1.tar.gz sha256 ca1820d527e4759884620be2917079e61e996fa81da5fbe5c07c4a7b507264dc http://download.redis.io/releases/redis-7.0.1.tar.gz
|
||||
hash redis-7.0.2.tar.gz sha256 5e57eafe7d4ac5ecb6a7d64d6b61db775616dbf903293b3fcc660716dbda5eeb http://download.redis.io/releases/redis-7.0.2.tar.gz
|
||||
|
12
redis.spec
12
redis.spec
@@ -20,7 +20,7 @@
|
||||
%define _log_dir %{_localstatedir}/log/%{name}
|
||||
%define _conf_dir %{_sysconfdir}/%{name}
|
||||
Name: redis
|
||||
Version: 6.2.7
|
||||
Version: 7.0.2
|
||||
Release: 0
|
||||
Summary: Persistent key-value database
|
||||
License: BSD-3-Clause
|
||||
@@ -38,9 +38,10 @@ Source9: %{name}-user.conf
|
||||
Source10: https://raw.githubusercontent.com/redis/redis-hashes/master/README#/redis.hashes
|
||||
# PATCH-MISSING-TAG -- See https://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch0: %{name}-conf.patch
|
||||
Patch1: getMcontextEip-return-value.patch
|
||||
Patch3: reproducible.patch
|
||||
Patch4: ppc-atomic.patch
|
||||
Patch5: Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch
|
||||
BuildRequires: jemalloc-devel
|
||||
BuildRequires: libopenssl-devel >= 1.1.1
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: procps
|
||||
@@ -65,13 +66,16 @@ different kind of sorting abilities.
|
||||
echo "`grep -F %{name}-%{version}.tar.gz %{SOURCE10} | cut -d' ' -f4` %{SOURCE0}" | sha256sum -c
|
||||
%setup -q
|
||||
%patch0
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
%build
|
||||
export HOST=OBS # for reproducible builds
|
||||
%make_build CFLAGS="%{optflags}" BUILD_WITH_SYSTEMD=yes BUILD_TLS=yes
|
||||
%make_build CFLAGS="%{optflags}" \
|
||||
BUILD_WITH_SYSTEMD=yes \
|
||||
BUILD_TLS=yes \
|
||||
USE_SYSTEM_JEMALLOC=yes
|
||||
%sysusers_generate_pre %{SOURCE9} %{name}
|
||||
|
||||
%install
|
||||
|
Reference in New Issue
Block a user