diff options
Diffstat (limited to 'debian/patches')
6 files changed, 360 insertions, 0 deletions
diff --git a/debian/patches/0001-Fix-FTBFS-on-kFreeBSD.patch b/debian/patches/0001-Fix-FTBFS-on-kFreeBSD.patch new file mode 100644 index 0000000..a256471 --- /dev/null +++ b/debian/patches/0001-Fix-FTBFS-on-kFreeBSD.patch @@ -0,0 +1,21 @@ +From: Chris Lamb <lamby@debian.org> +Date: Fri, 30 Oct 2015 10:53:42 +0000 +Subject: Fix FTBFS on kFreeBSD + +--- + src/fmacros.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/fmacros.h b/src/fmacros.h +index a97d21a..4b2d895 100644 +--- a/src/fmacros.h ++++ b/src/fmacros.h +@@ -41,7 +41,7 @@ + #define _ALL_SOURCE + #endif + +-#if defined(__linux__) || defined(__OpenBSD__) ++#if defined(__linux__) || defined(__OpenBSD__) || defined(__GLIBC__) + #define _XOPEN_SOURCE 700 + /* + * On NetBSD, _XOPEN_SOURCE undefines _NETBSD_SOURCE and diff --git a/debian/patches/0002-Add-CPPFLAGS-to-upstream-makefiles.patch b/debian/patches/0002-Add-CPPFLAGS-to-upstream-makefiles.patch new file mode 100644 index 0000000..0130606 --- /dev/null +++ b/debian/patches/0002-Add-CPPFLAGS-to-upstream-makefiles.patch @@ -0,0 +1,49 @@ +From: Chris Lamb <lamby@debian.org> +Date: Fri, 30 Oct 2015 10:53:42 +0000 +Subject: Add CPPFLAGS to upstream makefiles + +--- + deps/hdr_histogram/Makefile | 2 +- + deps/linenoise/Makefile | 2 +- + src/Makefile | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/deps/hdr_histogram/Makefile b/deps/hdr_histogram/Makefile +index 28dd93e..3a6413e 100644 +--- a/deps/hdr_histogram/Makefile ++++ b/deps/hdr_histogram/Makefile +@@ -2,7 +2,7 @@ STD= -std=c99 + WARN= -Wall + OPT= -Os + +-R_CFLAGS= $(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) -DHDR_MALLOC_INCLUDE=\"hdr_redis_malloc.h\" ++R_CFLAGS= $(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(CPPFLAGS) -DHDR_MALLOC_INCLUDE=\"hdr_redis_malloc.h\" + R_LDFLAGS= $(LDFLAGS) + DEBUG= -g + +diff --git a/deps/linenoise/Makefile b/deps/linenoise/Makefile +index 1dd894b..12ada21 100644 +--- a/deps/linenoise/Makefile ++++ b/deps/linenoise/Makefile +@@ -6,7 +6,7 @@ R_CFLAGS= $(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) + R_LDFLAGS= $(LDFLAGS) + DEBUG= -g + +-R_CC=$(CC) $(R_CFLAGS) ++R_CC=$(CC) $(R_CFLAGS) $(CPPFLAGS) + R_LD=$(CC) $(R_LDFLAGS) + + linenoise.o: linenoise.h linenoise.c +diff --git a/src/Makefile b/src/Makefile +index e4f7d90..391fdbc 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -296,7 +296,7 @@ else + endef + endif + +-REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS) ++REDIS_CC=$(QUIET_CC)$(CC) $(FINAL_CFLAGS) $(CPPFLAGS) + REDIS_LD=$(QUIET_LINK)$(CC) $(FINAL_LDFLAGS) + REDIS_INSTALL=$(QUIET_INSTALL)$(INSTALL) + diff --git a/debian/patches/0003-Use-get_current_dir_name-over-PATHMAX.patch b/debian/patches/0003-Use-get_current_dir_name-over-PATHMAX.patch new file mode 100644 index 0000000..0b97ebd --- /dev/null +++ b/debian/patches/0003-Use-get_current_dir_name-over-PATHMAX.patch @@ -0,0 +1,53 @@ +From: Chris Lamb <lamby@debian.org> +Date: Wed, 24 Jan 2018 22:06:35 +1100 +Subject: Use get_current_dir_name over PATHMAX, etc. + +--- + src/rdb.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/rdb.c b/src/rdb.c +index 710e04f..4039954 100644 +--- a/src/rdb.c ++++ b/src/rdb.c +@@ -1392,7 +1392,6 @@ werr: /* Write error. */ + /* Save the DB on disk. Return C_ERR on error, C_OK on success. */ + int rdbSave(int req, char *filename, rdbSaveInfo *rsi) { + char tmpfile[256]; +- char cwd[MAXPATHLEN]; /* Current working dir path for error messages. */ + FILE *fp = NULL; + rio rdb; + int error = 0; +@@ -1402,13 +1401,14 @@ int rdbSave(int req, char *filename, rdbSaveInfo *rsi) { + fp = fopen(tmpfile,"w"); + if (!fp) { + char *str_err = strerror(errno); +- char *cwdp = getcwd(cwd,MAXPATHLEN); ++ char *cwdp = get_current_dir_name(); + serverLog(LL_WARNING, + "Failed opening the temp RDB file %s (in server root dir %s) " + "for saving: %s", + tmpfile, + cwdp ? cwdp : "unknown", + str_err); ++ zfree(cwdp); + return C_ERR; + } + +@@ -1434,7 +1434,7 @@ int rdbSave(int req, char *filename, rdbSaveInfo *rsi) { + * if the generate DB file is ok. */ + if (rename(tmpfile,filename) == -1) { + char *str_err = strerror(errno); +- char *cwdp = getcwd(cwd,MAXPATHLEN); ++ char *cwdp = get_current_dir_name(); + serverLog(LL_WARNING, + "Error moving temp DB file %s on the final " + "destination %s (in server root dir %s): %s", +@@ -1444,6 +1444,7 @@ int rdbSave(int req, char *filename, rdbSaveInfo *rsi) { + str_err); + unlink(tmpfile); + stopSaving(0); ++ zfree(cwdp); + return C_ERR; + } + if (fsyncFileDir(filename) == -1) { err_op = "fsyncFileDir"; goto werr; } diff --git a/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch b/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch new file mode 100644 index 0000000..f23031c --- /dev/null +++ b/debian/patches/0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch @@ -0,0 +1,139 @@ +From: Chris Lamb <lamby@debian.org> +Date: Sat, 25 Aug 2018 17:52:13 +0200 +Subject: Add support for USE_SYSTEM_JEMALLOC flag. + +Forwarded: https://github.com/antirez/redis/pull/5279 +--- + deps/Makefile | 2 ++ + src/Makefile | 5 +++++ + src/debug.c | 4 ++++ + src/object.c | 5 +++++ + src/sds.c | 4 ++++ + src/zmalloc.c | 10 ++++++++++ + src/zmalloc.h | 4 ++++ + 7 files changed, 34 insertions(+) + +diff --git a/deps/Makefile b/deps/Makefile +index 83ac557..5542a6c 100644 +--- a/deps/Makefile ++++ b/deps/Makefile +@@ -39,7 +39,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-*) + +diff --git a/src/Makefile b/src/Makefile +index 391fdbc..4d81df9 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -262,10 +262,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) +diff --git a/src/debug.c b/src/debug.c +index dffa986..294d46f 100644 +--- a/src/debug.c ++++ b/src/debug.c +@@ -72,6 +72,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. +diff --git a/src/object.c b/src/object.c +index 1a21579..5bd4144 100644 +--- a/src/object.c ++++ b/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) { +diff --git a/src/sds.c b/src/sds.c +index 71490d5..fbff91e 100644 +--- a/src/sds.c ++++ b/src/sds.c +@@ -39,6 +39,10 @@ + #include "sds.h" + #include "sdsalloc.h" + ++#if USE_SYSTEM_JEMALLOC == yes ++#define je_nallocx nallocx ++#endif ++ + const char *SDS_NOINIT = "SDS_NOINIT"; + + static inline int sdsHdrSize(char type) { +diff --git a/src/zmalloc.c b/src/zmalloc.c +index 0ace61f..fec8478 100644 +--- a/src/zmalloc.c ++++ b/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)) +diff --git a/src/zmalloc.h b/src/zmalloc.h +index efab1a1..7826053 100644 +--- a/src/zmalloc.h ++++ b/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 diff --git a/debian/patches/debian-packaging/0001-Set-Debian-configuration-defaults.patch b/debian/patches/debian-packaging/0001-Set-Debian-configuration-defaults.patch new file mode 100644 index 0000000..dffad10 --- /dev/null +++ b/debian/patches/debian-packaging/0001-Set-Debian-configuration-defaults.patch @@ -0,0 +1,93 @@ +From: Chris Lamb <lamby@debian.org> +Date: Tue, 10 Oct 2017 09:56:42 +0100 +Subject: Set Debian configuration defaults + +Forwarded: not-needed +--- + redis.conf | 10 +++++----- + sentinel.conf | 8 ++++---- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/redis.conf b/redis.conf +index 0431c37..f0491a3 100644 +--- a/redis.conf ++++ b/redis.conf +@@ -152,7 +152,7 @@ tcp-backlog 511 + # incoming connections. There is no default, so Redis will not listen + # on a unix socket when not specified. + # +-# unixsocket /run/redis.sock ++# unixsocket /run/redis/redis-server.sock + # unixsocketperm 700 + + # Close the connection after a client is idle for N seconds (0 to disable) +@@ -306,7 +306,7 @@ tcp-keepalive 300 + # By default Redis does not run as a daemon. Use 'yes' if you need it. + # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. + # When Redis is supervised by upstart or systemd, this parameter has no impact. +-daemonize no ++daemonize yes + + # If you run Redis from upstart or systemd, Redis can interact with your + # supervision tree. Options: +@@ -338,7 +338,7 @@ daemonize no + # + # Note that on modern Linux systems "/run/redis.pid" is more conforming + # and should be used instead. +-pidfile /var/run/redis_6379.pid ++pidfile /run/redis/redis-server.pid + + # Specify the server verbosity level. + # This can be one of: +@@ -351,7 +351,7 @@ loglevel notice + # Specify the log file name. Also the empty string can be used to force + # Redis to log on the standard output. Note that if you use standard + # output for logging but daemonize, logs will be sent to /dev/null +-logfile "" ++logfile /var/log/redis/redis-server.log + + # To enable logging to the system logger, just set 'syslog-enabled' to yes, + # and optionally update the other syslog parameters to suit your needs. +@@ -501,7 +501,7 @@ rdb-del-sync-files no + # The Append Only File will also be created inside this directory. + # + # Note that you must specify a directory here, not a file name. +-dir ./ ++dir /var/lib/redis + + ################################# REPLICATION ################################# + +diff --git a/sentinel.conf b/sentinel.conf +index bba9b92..8070b24 100644 +--- a/sentinel.conf ++++ b/sentinel.conf +@@ -12,17 +12,17 @@ port 26379 + # By default Redis Sentinel does not run as a daemon. Use 'yes' if you need it. + # Note that Redis will write a pid file in /var/run/redis-sentinel.pid when + # daemonized. +-daemonize no ++daemonize yes + + # When running daemonized, Redis Sentinel writes a pid file in + # /var/run/redis-sentinel.pid by default. You can specify a custom pid file + # location here. +-pidfile /var/run/redis-sentinel.pid ++pidfile /run/sentinel/redis-sentinel.pid + + # Specify the log file name. Also the empty string can be used to force + # Sentinel to log on the standard output. Note that if you use standard + # output for logging but daemonize, logs will be sent to /dev/null +-logfile "" ++logfile /var/log/redis/redis-sentinel.log + + # sentinel announce-ip <ip> + # sentinel announce-port <port> +@@ -51,7 +51,7 @@ logfile "" + # For Redis Sentinel to chdir to /tmp at startup is the simplest thing + # for the process to don't interfere with administrative tasks such as + # unmounting filesystems. +-dir /tmp ++dir /var/lib/redis + + # sentinel monitor <master-name> <ip> <redis-port> <quorum> + # diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..4dba69b --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,5 @@ +debian-packaging/0001-Set-Debian-configuration-defaults.patch +0001-Fix-FTBFS-on-kFreeBSD.patch +0002-Add-CPPFLAGS-to-upstream-makefiles.patch +0003-Use-get_current_dir_name-over-PATHMAX.patch +0004-Add-support-for-USE_SYSTEM_JEMALLOC-flag.patch |