From 6a47dde9bed3a499b6be9d841047c24a5cb4aedd Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 21 Nov 2017 11:56:13 +0100 Subject: add doc and devel subpackages, synced from Fedora keep man pages in main package minor fix for EL-6 and tests --- ...eis-for-redis-cli-redis-benchmark-redis-c.patch | 652 ++++++++++++++++++++ 0001-redis-3.2-redis-conf.patch | 36 -- ...is-check-rdb-as-a-symlink-instead-of-dupl.patch | 26 + macros.redis | 2 + redis-pr3491.patch | 672 --------------------- redis-pr3494.patch | 22 - redis-sentinel.service | 2 +- redis.service | 2 +- redis.spec | 330 ++++++---- 9 files changed, 897 insertions(+), 847 deletions(-) create mode 100644 0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch delete mode 100644 0001-redis-3.2-redis-conf.patch create mode 100644 0002-install-redis-check-rdb-as-a-symlink-instead-of-dupl.patch create mode 100644 macros.redis delete mode 100644 redis-pr3491.patch delete mode 100644 redis-pr3494.patch diff --git a/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch b/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch new file mode 100644 index 0000000..ab62c0c --- /dev/null +++ b/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch @@ -0,0 +1,652 @@ +From c7958ad1c0d615b81276ec2d4dbc1bf6a67dcc4d Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Thu, 8 Sep 2016 14:51:15 +0200 +Subject: [PATCH 1/2] 1st man pageis for - redis-cli - redis-benchmark - + redis-check-aof - redis-check-rdb - redis-server - redis.conf + +as redis-sentinel is a symlink to redis-server, same page can be used (also symlinked) +redis.conf can also be used for sentinel.conf +--- + man/man1/redis-benchmark.1 | 132 ++++++++++++++++++++++++++++++++++ + man/man1/redis-check-aof.1 | 60 ++++++++++++++++ + man/man1/redis-check-rdb.1 | 53 ++++++++++++++ + man/man1/redis-cli.1 | 171 +++++++++++++++++++++++++++++++++++++++++++++ + man/man1/redis-server.1 | 117 +++++++++++++++++++++++++++++++ + man/man5/redis.conf.5 | 57 +++++++++++++++ + 6 files changed, 590 insertions(+) + create mode 100644 man/man1/redis-benchmark.1 + create mode 100644 man/man1/redis-check-aof.1 + create mode 100644 man/man1/redis-check-rdb.1 + create mode 100644 man/man1/redis-cli.1 + create mode 100644 man/man1/redis-server.1 + create mode 100644 man/man5/redis.conf.5 + +diff --git a/man/man1/redis-benchmark.1 b/man/man1/redis-benchmark.1 +new file mode 100644 +index 0000000..a3e4c62 +--- /dev/null ++++ b/man/man1/redis-benchmark.1 +@@ -0,0 +1,132 @@ ++.TH REDIS-BENCHMARK 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-benchmark \- Redis benchmark ++ ++.SH SYNOPSIS ++.B redis\-benchmark ++[ options ] ++.LP ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-benchmark\fP command is a command to benchmark redis-server. ++ ++.SH OPTIONS ++.TP 15 ++.B \-h \fIhostname\fP ++Server hostname (default: 127.0.0.1). ++.TP ++.B \-p \fIport\fP ++Server port (default: 6379). ++.TP ++.B \-s \fIsocket\fP ++Server socket (overrides hostname and port). ++.TP ++.B \-a \fIpassword\fP ++Password to use when connecting to the server. ++.TP ++.B \-c \fIclients\fP ++Number of parallel connections (default 50) ++.TP ++.B \-dnnum \fIdb\fP ++SELECT the specified db number (default 0) ++.TP ++.B \-k \fIboolean\fP ++1=keep alive 0=reconnect (default 1) ++.TP ++.B \-r \fIkeyspacelen\fP ++Use random keys for SET/GET/INCR, random values for SADD ++Using this option the benchmark will expand the string __rand_int__ ++inside an argument with a 12 digits number in the specified range ++from 0 to keyspacelen-1. The substitution changes every time a command ++is executed. Default tests use this to hit random keys in the ++specified range. ++.TP ++.B \-P \fInumreq\fP ++Pipeline requests. Default 1 (no pipeline). ++.TP ++.B \-e ++If server replies with errors, show them on stdout. ++(no more than 1 error per second is displayed) ++.TP ++.B \-q ++Quiet. Just show query/sec values ++.TP ++.B \-\-csv ++Output in CSV format ++.TP ++.B \-l ++Loop. Run the tests forever ++.TP ++.B \-t \fItests\fP ++Only run the comma separated list of tests. The test ++names are the same as the ones produced as output. ++.TP ++.B \-I ++Idle mode. Just open N idle connections and wait. ++ ++.SH EXAMPLES ++.TP 5 ++Run the benchmark with the default configuration against 127.0.0.1:6379: ++$ redis\-benchmark ++.TP ++Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1: ++$ redis-benchmark \-h 192.168.1.1 \-p 6379 \-n 100000 \-c 20 ++.TP ++Fill 127.0.0.1:6379 with about 1 million keys only using the SET test: ++$ redis\-benchmark \-t set \-n 1000000 \-r 100000000 ++.TP ++Benchmark 127.0.0.1:6379 for a few commands producing CSV output: ++$ redis\-benchmark \-t ping,set,get \-n 100000 \-\-csv ++.TP ++Benchmark a specific command line: ++$ redis\-benchmark \-r 10000 \-n 10000 eval 'return redis.call("ping")' 0 ++.TP ++Fill a list with 10000 random elements: ++$ redis\-benchmark \-r 10000 \-n 10000 lpush mylist __rand_int__ ++.TP ++On user specified command lines __rand_int__ is replaced with a random integer ++with a range of values selected by the -r option. ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-check-aof.1 b/man/man1/redis-check-aof.1 +new file mode 100644 +index 0000000..1569fd9 +--- /dev/null ++++ b/man/man1/redis-check-aof.1 +@@ -0,0 +1,60 @@ ++.TH REDIS-CHECK-AOF 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-check\-aof \- Redis AOF file checker and repairer ++ ++.SH SYNOPSIS ++.B redis\-check\-aof ++[\-\-fix] ++.IR file.aof ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-check\-aof\fP command to check or repair redis-server AOF files. ++ ++.SH OPTIONS ++.TP 15 ++.B \-\-fix ++Fix the file ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-check-rdb.1 b/man/man1/redis-check-rdb.1 +new file mode 100644 +index 0000000..0e798ab +--- /dev/null ++++ b/man/man1/redis-check-rdb.1 +@@ -0,0 +1,53 @@ ++.TH REDIS-CHECK-RDB 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-check\-aof \- Redis RDB file checker ++ ++.SH SYNOPSIS ++.B redis\-check\-aof ++.IR file.rdb ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis\-check\-rdb\fP command to check redis-server RDB files. ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-cli.1 b/man/man1/redis-cli.1 +new file mode 100644 +index 0000000..14f84df +--- /dev/null ++++ b/man/man1/redis-cli.1 +@@ -0,0 +1,171 @@ ++.TH REDIS-CLI 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-cli \- Redis client ++ ++.SH SYNOPSIS ++.B redis\-cli ++[ options ] [cmd [arg [arg ...]]] ++.LP ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++ ++The \fBredis-cli\fP command is a command line client to redis-server. ++ ++.SH OPTIONS ++.TP 15 ++.B \-h \fIhostname\fP ++Server hostname (default: 127.0.0.1). ++.TP ++.B \-p \fIport\fP ++Server port (default: 6379). ++.TP ++.B \-s \fIsocket\fP ++Server socket (overrides hostname and port). ++.TP ++.B \-a \fIpassword\fP ++Password to use when connecting to the server. ++.TP ++.B \-r \fIrepeat\fP ++Execute specified command N times. ++.TP ++.B \-i \fIinterval\fP ++When -r is used, waits \fIinterval\fP seconds per command. ++It is possible to specify sub-second times like -i 0.1. ++.TP ++.B \-n \fIdb\fP ++Database number. ++.TP ++.B \-x ++Read last argument from STDIN. ++.TP ++.B \-d \fIdelimiter\fP ++Multi-bulk delimiter in for raw formatting (default: \n). ++.TP ++.B \-c ++Enable cluster mode (follow -ASK and -MOVED redirections). ++.TP ++.B \-\-raw ++Use raw formatting for replies (default when STDOUT is not a tty). ++.TP ++.B \-\-no\-raw ++Force formatted output even when STDOUT is not a tty. ++.TP ++.B \-\-csv ++Output in CSV format. ++.TP ++.B \-\-stat ++Print rolling stats about server: mem, clients, ... ++.TP ++.B \-\-latency ++Enter a special mode continuously sampling latency. ++.TP ++.B \-\-latency\-history ++Like \-\-latency but tracking latency changes over time. ++Default time interval is 15 sec. Change it using -i. ++.TP ++.B \-\-latency\-dist ++Shows latency as a spectrum, requires xterm 256 colors. ++Default time interval is 1 sec. Change it using -i. ++.TP ++.B \-\-lru\-test ++Simulate a cache workload with an 80-20 distribution. ++.TP ++.B \-\-slave ++Simulate a slave showing commands received from the master. ++.TP ++.B \-\-rdb \fIfilename\fP ++Transfer an RDB dump from remote server to local file. ++.TP ++.B \-\-pipe ++Transfer raw Redis protocol from stdin to server. ++.TP ++.B \-\-pipe-timeout \fIn\fP ++In --pipe mode, abort with error if after sending all data. ++no reply is received within \fIn\fP seconds. ++Default timeout: 30. Use 0 to wait forever. ++.TP ++.B \-\-bigkeys ++Sample Redis keys looking for big keys. ++.TP ++.B \-\-scan ++List all keys using the SCAN command. ++.TP ++.B \-\-pattern \fIpat\fP ++Useful with --scan to specify a SCAN pattern. ++.TP ++.B \-\-intrinsic-latency \fIsec\fP ++Run a test to measure intrinsic system latency. ++The test will run for the specified amount of seconds. ++.TP ++.B \-\-eval \fIfile\fP ++Send an EVAL command using the Lua script at \fIfile\fP. ++.TP ++.B \-\-ldb ++Used with --eval enable the Redis Lua debugger. ++.TP ++.B \-\-ldb-sync-mode ++Like --ldb but uses the synchronous Lua debugger, in ++this mode the server is blocked and script changes are ++are not rolled back from the server memory. ++.TP ++.B \-\-help ++Output this help and exit. ++.TP ++.B \-\-version ++Output version and exit. ++ ++.SH EXAMPLES ++.TP ++cat /etc/passwd | redis-cli -x set mypasswd ++.TP ++redis-cli get mypasswd ++.TP ++redis-cli \-r 100 lpush mylist x ++.TP ++redis-cli \-r 100 \-i 1 info | grep used_memory_human: ++.TP ++redis-cli \-\-eval myscript.lua key1 key2 , arg1 arg2 arg3 ++.TP ++redis-cli \-\-scan \-\-pattern '*:12345*' ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man1/redis-server.1 b/man/man1/redis-server.1 +new file mode 100644 +index 0000000..d6edd25 +--- /dev/null ++++ b/man/man1/redis-server.1 +@@ -0,0 +1,117 @@ ++.TH REDIS-SERVER 1 "2016" "Redis" "User commands" ++.SH NAME ++redis\-server, redis\-sentinel \- Redis server ++ ++.SH SYNOPSIS ++.B redis\-server ++[ ++.IR configuration_file ++] [ options ] [ \-\-sentinel ] ++.LP ++.B redis\-sentinel ++[ ++.IR configuration_file ++] [ options ] ++ ++ ++.SH DESCRIPTION ++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, ++used as database, cache and message broker, found at ++.B http://redis.io/ ++.LP ++The \fBredis\-server\fP command is a command line to launch a Redis server. ++.LP ++The \fBredis\-sentinel\fP command is a symbolic link to the \fBredis\-server\fP ++command which imply the \fB\-\-sentionel\fP option. ++ ++.SH OPTIONS ++.TP 15 ++.B \- ++Read configuration from stdin. ++.TP ++.TP 15 ++.B \-\-sentinel ++Run in sentinel mode ++.TP ++.B \-\-test-memory \fImegabytes\fP ++Run a memory check and exit. ++.TP ++.PD 0 ++.B \-\-help ++.TP ++.PD 1 ++.B \-h ++Output this help and exit. ++.TP ++.PD 0 ++.B \-\-version ++.TP ++.PD 1 ++.B \-v ++Output version and exit. ++.P ++All parameters described in \fBredis.conf\fR file can be passed as ++command line option, e.g. ++.B \-\-port ++.IR port ++. ++ ++.SH EXAMPLES ++.TP 5 ++Run the server with default conf ++redis-server ++.TP ++Run the server with a configuration file ++redis-server /etc/redis/6379.conf ++.TP ++Run the server changing some default options ++redis-server --port 7777 --slaveof 127.0.0.1 8888 ++.TP ++Run the server with a configuration file and changing some options ++redis-server /etc/myredis.conf --loglevel verbose ++.TP ++Run in sentinel mode ++redis-server /etc/sentinel.conf --sentinel ++ ++.SH "SEE ALSO" ++.PP ++\fBredis.conf\fR(5) ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/man/man5/redis.conf.5 b/man/man5/redis.conf.5 +new file mode 100644 +index 0000000..1e0c9c9 +--- /dev/null ++++ b/man/man5/redis.conf.5 +@@ -0,0 +1,57 @@ ++.TH REDIS.CONF 5 "2016" "Redis" "Configuration files" ++.SH NAME ++redis.conf, sentinel.conf - redis server configuration files. ++ ++.SH PARAMETERS ++.TP ++All empty lines or lines beginning with '#' are ignored. ++.TP ++See inline comments for parameters description. ++ ++.SH DESCRIPTION ++.TP ++\fBredis-server\fP read the configuration file passed as first argument. ++ ++.SH "SEE ALSO" ++.PP ++\fBredis\-server\fR(1) ++ ++ ++.SH BUGS ++See: ++.PD 0 ++.B http://redis.io/support ++and ++.B https://github.com/antirez/redis/issues ++ ++.SH COPYRIGHT ++Copyright \(co 2006\-2016 ++Salvatore Sanfilippo ++.P ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++.TP 2 ++* ++Redistributions of source code must retain the above copyright notice, ++this list of conditions and the following disclaimer. ++.TP ++* ++Redistributions in binary form must reproduce the above copyright ++notice, this list of conditions and the following disclaimer in the ++documentation and/or other materials provided with the distribution. ++.TP ++* ++Neither the name of Redis nor the names of its contributors may be used ++to endorse or promote products derived from this software without specific ++prior written permission. ++.P ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-- +2.13.5 + diff --git a/0001-redis-3.2-redis-conf.patch b/0001-redis-3.2-redis-conf.patch deleted file mode 100644 index f8d8791..0000000 --- a/0001-redis-3.2-redis-conf.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up ./redis.conf.rpmconf ./redis.conf ---- ./redis.conf.rpmconf 2015-12-23 13:35:32.000000000 +0100 -+++ ./redis.conf 2016-01-15 16:32:22.491355290 +0100 -@@ -160,7 +160,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.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. -@@ -244,7 +244,7 @@ dbfilename dump.rdb - # 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 -up ./sentinel.conf.rpmconf ./sentinel.conf ---- ./sentinel.conf.rpmconf 2015-12-23 13:35:32.000000000 +0100 -+++ ./sentinel.conf 2016-01-15 16:32:22.491355290 +0100 -@@ -20,6 +20,11 @@ - # The port that this sentinel instance will run on - port 26379 - -+# 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 /var/log/redis/sentinel.log -+ - # sentinel announce-ip - # sentinel announce-port - # diff --git a/0002-install-redis-check-rdb-as-a-symlink-instead-of-dupl.patch b/0002-install-redis-check-rdb-as-a-symlink-instead-of-dupl.patch new file mode 100644 index 0000000..ce09350 --- /dev/null +++ b/0002-install-redis-check-rdb-as-a-symlink-instead-of-dupl.patch @@ -0,0 +1,26 @@ +From 992c773e70462a6fbe1536e18e673c9ab55d5901 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Fri, 9 Sep 2016 17:23:27 +0200 +Subject: [PATCH 2/2] install redis-check-rdb as a symlink instead of duplicating + the binary + +--- + src/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index fdbe36a..c3083f8 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -287,6 +287,6 @@ install: all + $(REDIS_INSTALL) $(REDIS_SERVER_NAME) $(INSTALL_BIN) + $(REDIS_INSTALL) $(REDIS_BENCHMARK_NAME) $(INSTALL_BIN) + $(REDIS_INSTALL) $(REDIS_CLI_NAME) $(INSTALL_BIN) +- $(REDIS_INSTALL) $(REDIS_CHECK_RDB_NAME) $(INSTALL_BIN) +- $(REDIS_INSTALL) $(REDIS_CHECK_AOF_NAME) $(INSTALL_BIN) + @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME) ++ @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_RDB_NAME) ++ @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_AOF_NAME) +-- +2.13.5 + diff --git a/macros.redis b/macros.redis new file mode 100644 index 0000000..439cc2c --- /dev/null +++ b/macros.redis @@ -0,0 +1,2 @@ +%redis_modules_abi 1 +%redis_modules_dir %{_libdir}/redis/modules diff --git a/redis-pr3491.patch b/redis-pr3491.patch deleted file mode 100644 index 073972e..0000000 --- a/redis-pr3491.patch +++ /dev/null @@ -1,672 +0,0 @@ -From 8295483fcee6c1232ac801ff91f66e21f9d23d80 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Thu, 8 Sep 2016 14:51:15 +0200 -Subject: [PATCH 1/2] 1st man pageis for - redis-cli - redis-benchmark - - redis-check-aof - redis-check-rdb - redis-server - redis.conf - -as redis-sentinel is a symlink to redis-server, same page can be used (also symlinked) -redis.conf can also be used for sentinel.conf ---- - man/man1/redis-benchmark.1 | 132 ++++++++++++++++++++++++++++++++++ - man/man1/redis-check-aof.1 | 60 ++++++++++++++++ - man/man1/redis-check-rdb.1 | 53 ++++++++++++++ - man/man1/redis-cli.1 | 171 +++++++++++++++++++++++++++++++++++++++++++++ - man/man1/redis-server.1 | 117 +++++++++++++++++++++++++++++++ - man/man5/redis.conf.5 | 57 +++++++++++++++ - 6 files changed, 590 insertions(+) - create mode 100644 man/man1/redis-benchmark.1 - create mode 100644 man/man1/redis-check-aof.1 - create mode 100644 man/man1/redis-check-rdb.1 - create mode 100644 man/man1/redis-cli.1 - create mode 100644 man/man1/redis-server.1 - create mode 100644 man/man5/redis.conf.5 - -diff --git a/man/man1/redis-benchmark.1 b/man/man1/redis-benchmark.1 -new file mode 100644 -index 0000000..a3e4c62 ---- /dev/null -+++ b/man/man1/redis-benchmark.1 -@@ -0,0 +1,132 @@ -+.TH REDIS-BENCHMARK 1 "2016" "Redis" "User commands" -+.SH NAME -+redis\-benchmark \- Redis benchmark -+ -+.SH SYNOPSIS -+.B redis\-benchmark -+[ options ] -+.LP -+ -+.SH DESCRIPTION -+\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, -+used as database, cache and message broker, found at -+.B http://redis.io/ -+ -+The \fBredis\-benchmark\fP command is a command to benchmark redis-server. -+ -+.SH OPTIONS -+.TP 15 -+.B \-h \fIhostname\fP -+Server hostname (default: 127.0.0.1). -+.TP -+.B \-p \fIport\fP -+Server port (default: 6379). -+.TP -+.B \-s \fIsocket\fP -+Server socket (overrides hostname and port). -+.TP -+.B \-a \fIpassword\fP -+Password to use when connecting to the server. -+.TP -+.B \-c \fIclients\fP -+Number of parallel connections (default 50) -+.TP -+.B \-dnnum \fIdb\fP -+SELECT the specified db number (default 0) -+.TP -+.B \-k \fIboolean\fP -+1=keep alive 0=reconnect (default 1) -+.TP -+.B \-r \fIkeyspacelen\fP -+Use random keys for SET/GET/INCR, random values for SADD -+Using this option the benchmark will expand the string __rand_int__ -+inside an argument with a 12 digits number in the specified range -+from 0 to keyspacelen-1. The substitution changes every time a command -+is executed. Default tests use this to hit random keys in the -+specified range. -+.TP -+.B \-P \fInumreq\fP -+Pipeline requests. Default 1 (no pipeline). -+.TP -+.B \-e -+If server replies with errors, show them on stdout. -+(no more than 1 error per second is displayed) -+.TP -+.B \-q -+Quiet. Just show query/sec values -+.TP -+.B \-\-csv -+Output in CSV format -+.TP -+.B \-l -+Loop. Run the tests forever -+.TP -+.B \-t \fItests\fP -+Only run the comma separated list of tests. The test -+names are the same as the ones produced as output. -+.TP -+.B \-I -+Idle mode. Just open N idle connections and wait. -+ -+.SH EXAMPLES -+.TP 5 -+Run the benchmark with the default configuration against 127.0.0.1:6379: -+$ redis\-benchmark -+.TP -+Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1: -+$ redis-benchmark \-h 192.168.1.1 \-p 6379 \-n 100000 \-c 20 -+.TP -+Fill 127.0.0.1:6379 with about 1 million keys only using the SET test: -+$ redis\-benchmark \-t set \-n 1000000 \-r 100000000 -+.TP -+Benchmark 127.0.0.1:6379 for a few commands producing CSV output: -+$ redis\-benchmark \-t ping,set,get \-n 100000 \-\-csv -+.TP -+Benchmark a specific command line: -+$ redis\-benchmark \-r 10000 \-n 10000 eval 'return redis.call("ping")' 0 -+.TP -+Fill a list with 10000 random elements: -+$ redis\-benchmark \-r 10000 \-n 10000 lpush mylist __rand_int__ -+.TP -+On user specified command lines __rand_int__ is replaced with a random integer -+with a range of values selected by the -r option. -+ -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/man/man1/redis-check-aof.1 b/man/man1/redis-check-aof.1 -new file mode 100644 -index 0000000..1569fd9 ---- /dev/null -+++ b/man/man1/redis-check-aof.1 -@@ -0,0 +1,60 @@ -+.TH REDIS-CHECK-AOF 1 "2016" "Redis" "User commands" -+.SH NAME -+redis\-check\-aof \- Redis AOF file checker and repairer -+ -+.SH SYNOPSIS -+.B redis\-check\-aof -+[\-\-fix] -+.IR file.aof -+ -+.SH DESCRIPTION -+\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, -+used as database, cache and message broker, found at -+.B http://redis.io/ -+ -+The \fBredis\-check\-aof\fP command to check or repair redis-server AOF files. -+ -+.SH OPTIONS -+.TP 15 -+.B \-\-fix -+Fix the file -+ -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/man/man1/redis-check-rdb.1 b/man/man1/redis-check-rdb.1 -new file mode 100644 -index 0000000..0e798ab ---- /dev/null -+++ b/man/man1/redis-check-rdb.1 -@@ -0,0 +1,53 @@ -+.TH REDIS-CHECK-RDB 1 "2016" "Redis" "User commands" -+.SH NAME -+redis\-check\-aof \- Redis RDB file checker -+ -+.SH SYNOPSIS -+.B redis\-check\-aof -+.IR file.rdb -+ -+.SH DESCRIPTION -+\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, -+used as database, cache and message broker, found at -+.B http://redis.io/ -+ -+The \fBredis\-check\-rdb\fP command to check redis-server RDB files. -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/man/man1/redis-cli.1 b/man/man1/redis-cli.1 -new file mode 100644 -index 0000000..14f84df ---- /dev/null -+++ b/man/man1/redis-cli.1 -@@ -0,0 +1,171 @@ -+.TH REDIS-CLI 1 "2016" "Redis" "User commands" -+.SH NAME -+redis\-cli \- Redis client -+ -+.SH SYNOPSIS -+.B redis\-cli -+[ options ] [cmd [arg [arg ...]]] -+.LP -+ -+.SH DESCRIPTION -+\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, -+used as database, cache and message broker, found at -+.B http://redis.io/ -+ -+The \fBredis-cli\fP command is a command line client to redis-server. -+ -+.SH OPTIONS -+.TP 15 -+.B \-h \fIhostname\fP -+Server hostname (default: 127.0.0.1). -+.TP -+.B \-p \fIport\fP -+Server port (default: 6379). -+.TP -+.B \-s \fIsocket\fP -+Server socket (overrides hostname and port). -+.TP -+.B \-a \fIpassword\fP -+Password to use when connecting to the server. -+.TP -+.B \-r \fIrepeat\fP -+Execute specified command N times. -+.TP -+.B \-i \fIinterval\fP -+When -r is used, waits \fIinterval\fP seconds per command. -+It is possible to specify sub-second times like -i 0.1. -+.TP -+.B \-n \fIdb\fP -+Database number. -+.TP -+.B \-x -+Read last argument from STDIN. -+.TP -+.B \-d \fIdelimiter\fP -+Multi-bulk delimiter in for raw formatting (default: \n). -+.TP -+.B \-c -+Enable cluster mode (follow -ASK and -MOVED redirections). -+.TP -+.B \-\-raw -+Use raw formatting for replies (default when STDOUT is not a tty). -+.TP -+.B \-\-no\-raw -+Force formatted output even when STDOUT is not a tty. -+.TP -+.B \-\-csv -+Output in CSV format. -+.TP -+.B \-\-stat -+Print rolling stats about server: mem, clients, ... -+.TP -+.B \-\-latency -+Enter a special mode continuously sampling latency. -+.TP -+.B \-\-latency\-history -+Like \-\-latency but tracking latency changes over time. -+Default time interval is 15 sec. Change it using -i. -+.TP -+.B \-\-latency\-dist -+Shows latency as a spectrum, requires xterm 256 colors. -+Default time interval is 1 sec. Change it using -i. -+.TP -+.B \-\-lru\-test -+Simulate a cache workload with an 80-20 distribution. -+.TP -+.B \-\-slave -+Simulate a slave showing commands received from the master. -+.TP -+.B \-\-rdb \fIfilename\fP -+Transfer an RDB dump from remote server to local file. -+.TP -+.B \-\-pipe -+Transfer raw Redis protocol from stdin to server. -+.TP -+.B \-\-pipe-timeout \fIn\fP -+In --pipe mode, abort with error if after sending all data. -+no reply is received within \fIn\fP seconds. -+Default timeout: 30. Use 0 to wait forever. -+.TP -+.B \-\-bigkeys -+Sample Redis keys looking for big keys. -+.TP -+.B \-\-scan -+List all keys using the SCAN command. -+.TP -+.B \-\-pattern \fIpat\fP -+Useful with --scan to specify a SCAN pattern. -+.TP -+.B \-\-intrinsic-latency \fIsec\fP -+Run a test to measure intrinsic system latency. -+The test will run for the specified amount of seconds. -+.TP -+.B \-\-eval \fIfile\fP -+Send an EVAL command using the Lua script at \fIfile\fP. -+.TP -+.B \-\-ldb -+Used with --eval enable the Redis Lua debugger. -+.TP -+.B \-\-ldb-sync-mode -+Like --ldb but uses the synchronous Lua debugger, in -+this mode the server is blocked and script changes are -+are not rolled back from the server memory. -+.TP -+.B \-\-help -+Output this help and exit. -+.TP -+.B \-\-version -+Output version and exit. -+ -+.SH EXAMPLES -+.TP -+cat /etc/passwd | redis-cli -x set mypasswd -+.TP -+redis-cli get mypasswd -+.TP -+redis-cli \-r 100 lpush mylist x -+.TP -+redis-cli \-r 100 \-i 1 info | grep used_memory_human: -+.TP -+redis-cli \-\-eval myscript.lua key1 key2 , arg1 arg2 arg3 -+.TP -+redis-cli \-\-scan \-\-pattern '*:12345*' -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/man/man1/redis-server.1 b/man/man1/redis-server.1 -new file mode 100644 -index 0000000..d6edd25 ---- /dev/null -+++ b/man/man1/redis-server.1 -@@ -0,0 +1,117 @@ -+.TH REDIS-SERVER 1 "2016" "Redis" "User commands" -+.SH NAME -+redis\-server, redis\-sentinel \- Redis server -+ -+.SH SYNOPSIS -+.B redis\-server -+[ -+.IR configuration_file -+] [ options ] [ \-\-sentinel ] -+.LP -+.B redis\-sentinel -+[ -+.IR configuration_file -+] [ options ] -+ -+ -+.SH DESCRIPTION -+\fBRedis\fP is an open source (BSD licensed), in-memory data structure store, -+used as database, cache and message broker, found at -+.B http://redis.io/ -+.LP -+The \fBredis\-server\fP command is a command line to launch a Redis server. -+.LP -+The \fBredis\-sentinel\fP command is a symbolic link to the \fBredis\-server\fP -+command which imply the \fB\-\-sentionel\fP option. -+ -+.SH OPTIONS -+.TP 15 -+.B \- -+Read configuration from stdin. -+.TP -+.TP 15 -+.B \-\-sentinel -+Run in sentinel mode -+.TP -+.B \-\-test-memory \fImegabytes\fP -+Run a memory check and exit. -+.TP -+.PD 0 -+.B \-\-help -+.TP -+.PD 1 -+.B \-h -+Output this help and exit. -+.TP -+.PD 0 -+.B \-\-version -+.TP -+.PD 1 -+.B \-v -+Output version and exit. -+.P -+All parameters described in \fBredis.conf\fR file can be passed as -+command line option, e.g. -+.B \-\-port -+.IR port -+. -+ -+.SH EXAMPLES -+.TP 5 -+Run the server with default conf -+redis-server -+.TP -+Run the server with a configuration file -+redis-server /etc/redis/6379.conf -+.TP -+Run the server changing some default options -+redis-server --port 7777 --slaveof 127.0.0.1 8888 -+.TP -+Run the server with a configuration file and changing some options -+redis-server /etc/myredis.conf --loglevel verbose -+.TP -+Run in sentinel mode -+redis-server /etc/sentinel.conf --sentinel -+ -+.SH "SEE ALSO" -+.PP -+\fBredis.conf\fR(5) -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/man/man5/redis.conf.5 b/man/man5/redis.conf.5 -new file mode 100644 -index 0000000..1e0c9c9 ---- /dev/null -+++ b/man/man5/redis.conf.5 -@@ -0,0 +1,57 @@ -+.TH REDIS.CONF 5 "2016" "Redis" "Configuration files" -+.SH NAME -+redis.conf, sentinel.conf - redis server configuration files. -+ -+.SH PARAMETERS -+.TP -+All empty lines or lines beginning with '#' are ignored. -+.TP -+See inline comments for parameters description. -+ -+.SH DESCRIPTION -+.TP -+\fBredis-server\fP read the configuration file passed as first argument. -+ -+.SH "SEE ALSO" -+.PP -+\fBredis\-server\fR(1) -+ -+ -+.SH BUGS -+See: -+.PD 0 -+.B http://redis.io/support -+and -+.B https://github.com/antirez/redis/issues -+ -+.SH COPYRIGHT -+Copyright \(co 2006\-2016 -+Salvatore Sanfilippo -+.P -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+.TP 2 -+* -+Redistributions of source code must retain the above copyright notice, -+this list of conditions and the following disclaimer. -+.TP -+* -+Redistributions in binary form must reproduce the above copyright -+notice, this list of conditions and the following disclaimer in the -+documentation and/or other materials provided with the distribution. -+.TP -+* -+Neither the name of Redis nor the names of its contributors may be used -+to endorse or promote products derived from this software without specific -+prior written permission. -+.P -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -From aabbe7ffd278a09e7583ce96e6aa781f8cd81ab9 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Mon, 24 Apr 2017 17:47:51 +0200 -Subject: [PATCH 2/2] typo - ---- - man/man1/redis-server.1 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/man1/redis-server.1 b/man/man1/redis-server.1 -index d6edd25..6349a25 100644 ---- a/man/man1/redis-server.1 -+++ b/man/man1/redis-server.1 -@@ -22,7 +22,7 @@ used as database, cache and message broker, found at - The \fBredis\-server\fP command is a command line to launch a Redis server. - .LP - The \fBredis\-sentinel\fP command is a symbolic link to the \fBredis\-server\fP --command which imply the \fB\-\-sentionel\fP option. -+command and implies the \fB\-\-sentionel\fP option. - - .SH OPTIONS - .TP 15 diff --git a/redis-pr3494.patch b/redis-pr3494.patch deleted file mode 100644 index e45ccb9..0000000 --- a/redis-pr3494.patch +++ /dev/null @@ -1,22 +0,0 @@ -From a34f7b1ac2cfb2879cc0889da0297aee96bcb076 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Fri, 9 Sep 2016 17:23:27 +0200 -Subject: [PATCH] install redis-check-rdb as a symlink instead of duplicating - the binary - ---- - src/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Makefile b/src/Makefile -index 6bd8d8d..4cc422e 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -269,6 +269,6 @@ install: all - $(REDIS_INSTALL) $(REDIS_SERVER_NAME) $(INSTALL_BIN) - $(REDIS_INSTALL) $(REDIS_BENCHMARK_NAME) $(INSTALL_BIN) - $(REDIS_INSTALL) $(REDIS_CLI_NAME) $(INSTALL_BIN) -- $(REDIS_INSTALL) $(REDIS_CHECK_RDB_NAME) $(INSTALL_BIN) - $(REDIS_INSTALL) $(REDIS_CHECK_AOF_NAME) $(INSTALL_BIN) - @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME) -+ @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_CHECK_RDB_NAME) diff --git a/redis-sentinel.service b/redis-sentinel.service index 242d51a..15463cf 100644 --- a/redis-sentinel.service +++ b/redis-sentinel.service @@ -3,9 +3,9 @@ Description=Redis Sentinel After=network.target [Service] -Type=notify ExecStart=/usr/bin/redis-sentinel /etc/redis-sentinel.conf --supervised systemd ExecStop=/usr/libexec/redis-shutdown redis-sentinel +Type=notify User=redis Group=redis RuntimeDirectory=redis diff --git a/redis.service b/redis.service index f999e88..88e9edc 100644 --- a/redis.service +++ b/redis.service @@ -3,9 +3,9 @@ Description=Redis persistent key-value database After=network.target [Service] -Type=notify ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd ExecStop=/usr/libexec/redis-shutdown +Type=notify User=redis Group=redis RuntimeDirectory=redis diff --git a/redis.spec b/redis.spec index f019540..619ea86 100644 --- a/redis.spec +++ b/redis.spec @@ -8,6 +8,7 @@ # Please preserve changelog entries # %global _hardened_build 1 +%global with_perftools 0 %if 0%{?fedora} >= 19 || 0%{?rhel} >= 7 %global with_redistrib 1 @@ -15,7 +16,12 @@ %global with_redistrib 0 %endif -# systemd >= 204 with additional service config +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 6 +%global with_pandoc 1 +%else +%global with_pandoc 0 +%endif + %if 0%{?fedora} >= 19 || 0%{?rhel} >= 7 %global with_systemd 1 %else @@ -23,7 +29,7 @@ %endif # Tests fail in mock, not in local build. -%global with_tests 0%{?_with_tests:1} +%global with_tests %{?_with_tests:1}%{!?_with_tests:0} # Pre-version are only available in github #global prever RC3 @@ -32,86 +38,128 @@ %global gh_owner antirez %global gh_project redis -Name: redis -Version: 4.0.2 -Release: 2%{?dist} -Summary: A persistent key-value database +# Commit IDs for the (unversioned) redis-doc repository +# https://fedoraproject.org/wiki/Packaging:SourceURL "Commit Revision" +%global doc_commit 69a5512ae6a4ec77d7b1d0af6aac2224e8e83f95 +%global short_doc_commit %(c=%{doc_commit}; echo ${c:0:7}) -Group: Applications/Databases -License: BSD -URL: http://redis.io +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + +Name: redis +Version: 4.0.2 +Release: 3%{?dist} +Summary: A persistent key-value database +Group: Applications/Databases +License: BSD +URL: http://redis.io %if 0%{?prever:1} -Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}%{prever}-%{gh_short}.tar.gz +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}%{prever}-%{gh_short}.tar.gz %else -Source0: http://download.redis.io/releases/%{name}-%{version}.tar.gz +Source0: http://download.redis.io/releases/%{name}-%{version}.tar.gz %endif -Source1: %{name}.logrotate -Source2: %{name}.init -Source3: %{name}.service -Source5: %{name}-sentinel.init -Source6: %{name}-sentinel.service -Source7: %{name}-shutdown -Source8: %{name}-limit-systemd -Source9: %{name}-limit-init - +Source1: %{name}.logrotate +Source2: %{name}-sentinel.service +Source3: %{name}.service +Source4: %{name}-sentinel.init +Source5: %{name}.init +Source6: %{name}-shutdown +Source7: %{name}-limit-systemd +Source8: %{name}-limit-init +Source9: macros.%{name} +Source10: https://github.com/antirez/%{name}-doc/archive/%{doc_commit}/%{name}-doc-%{short_doc_commit}.tar.gz + +# To refresh patches: +# tar xf redis-xxx.tar.gz && cd redis-xxx && git init && git add . && git commit -m "%%{version} baseline" +# git am %%{patches} +# Then refresh your patches +# git format-patch HEAD~ # Update configuration for Fedora -Patch0: 0001-redis-3.2-redis-conf.patch - # https://github.com/antirez/redis/pull/3491 - man pages -Patch3: %{name}-pr3491.patch +Patch0001: 0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch # https://github.com/antirez/redis/pull/3494 - symlink -Patch4: %{name}-pr3494.patch - -BuildRequires: tcl >= 8.5 -BuildRequires: jemalloc-devel - +Patch0002: 0002-install-redis-check-rdb-as-a-symlink-instead-of-dupl.patch +%if 0%{?with_perftools} +BuildRequires: gperftools-devel +%else +BuildRequires: jemalloc-devel +%endif +%if 0%{?with_tests} +BuildRequires: procps-ng +BuildRequires: tcl +%endif +%if 0%{?with_pandoc} +BuildRequires: pandoc +%endif +%if 0%{?with_systemd} +BuildRequires: systemd +%endif # Required for redis-shutdown -Requires: /bin/awk -Requires: logrotate -Requires(pre): shadow-utils -%if %{with_systemd} -BuildRequires: systemd-units -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units +Requires: /bin/awk +Requires: logrotate +Requires(pre): shadow-utils +%if 0%{?with_systemd} +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd %else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -Requires(postun): initscripts +Requires(post): chkconfig +Requires(preun): chkconfig +Requires(preun): initscripts +Requires(postun): initscripts %endif Provides: bundled(hiredis) Provides: bundled(lua-libs) Provides: bundled(linenoise) +%global redis_modules_abi 1 +%global redis_modules_dir %{_libdir}/%{name}/modules +Provides: redis(modules_abi)%{?_isa} = %{redis_modules_abi} %description -Redis is an advanced key-value store. It is often referred to as a data -structure server since keys can contain strings, hashes, lists, sets and +Redis is an advanced key-value store. It is often referred to as a data +structure server since keys can contain strings, hashes, lists, sets and sorted sets. You can run atomic operations on these types, like appending to a string; -incrementing the value in a hash; pushing to a list; computing set -intersection, union and difference; or getting the member with highest +incrementing the value in a hash; pushing to a list; computing set +intersection, union and difference; or getting the member with highest ranking in a sorted set. -In order to achieve its outstanding performance, Redis works with an -in-memory dataset. Depending on your use case, you can persist it either -by dumping the dataset to disk every once in a while, or by appending +In order to achieve its outstanding performance, Redis works with an +in-memory dataset. Depending on your use case, you can persist it either +by dumping the dataset to disk every once in a while, or by appending each command to a log. -Redis also supports trivial-to-setup master-slave replication, with very -fast non-blocking first synchronization, auto-reconnection on net split +Redis also supports trivial-to-setup master-slave replication, with very +fast non-blocking first synchronization, auto-reconnection on net split and so forth. -Other features include Transactions, Pub/Sub, Lua scripting, Keys with a -limited time-to-live, and configuration settings to make Redis behave like +Other features include Transactions, Pub/Sub, Lua scripting, Keys with a +limited time-to-live, and configuration settings to make Redis behave like a cache. You can use Redis from most programming languages also. -Documentation: http://redis.io/documentation +%package devel +Summary: Development header for Redis module development +# Header-Only Library (https://fedoraproject.org/wiki/Packaging:Guidelines) +Provides: %{name}-static = %{version}-%{release} + +%description devel +Header file required for building loadable Redis modules. Detailed +API documentation is available in the redis-doc package. + +%package doc +Summary: Documentation for Redis including man pages +License: CC-BY-SA +BuildArch: noarch + +# http://fedoraproject.org/wiki/Packaging:Conflicts "Splitting Packages" +Conflicts: redis < 4.0 +%description doc +Manual pages and detailed documentation for many aspects of Redis use, +administration and development. %if 0%{?with_redistrib} %package trib @@ -125,67 +173,92 @@ Redis cluster management utility providing cluster creation, node addition and removal, status checks, resharding, rebalancing, and other operations. %endif - %prep +%setup -q -b 10 %if 0%{?prever:1} %setup -q -n %{gh_project}-%{gh_commit} %else -%setup -q -n %{name}-%{version} +%setup -q %endif +mv ../%{name}-doc-%{doc_commit} doc rm -frv deps/jemalloc - -%patch0 -p1 -b .rpmconf -%patch3 -p1 -%patch4 -p1 -b .old +%patch0001 -p1 +%patch0002 -p1 # Use system jemalloc library sed -i -e '/cd jemalloc && /d' deps/Makefile sed -i -e 's|../deps/jemalloc/lib/libjemalloc.a|-ljemalloc -ldl|g' src/Makefile sed -i -e 's|-I../deps/jemalloc.*|-DJEMALLOC_NO_DEMANGLE -I/usr/include/jemalloc|g' src/Makefile +# Configuration file changes and additions +sed -i -e 's|^logfile .*$|logfile /var/log/redis/redis.log|g' redis.conf +sed -i -e '$ alogfile /var/log/redis/sentinel.log' sentinel.conf +sed -i -e 's|^dir .*$|dir /var/lib/redis|g' redis.conf + +# Module API version safety check +api=`sed -n -e 's/#define REDISMODULE_APIVER_[0-9][0-9]* //p' src/redismodule.h` +if test "$api" != "%{redis_modules_abi}"; then + : Error: Upstream API version is now ${api}, expecting %%{redis_modules_abi}. + : Update the redis_modules_abi macro, the rpmmacros file, and rebuild. + exit 1 +fi -%global malloc_flags MALLOC=jemalloc -%global make_flags DEBUG="" V="echo" LDFLAGS="%{?__global_ldflags}" CFLAGS+="%{optflags} -fPIC" %{malloc_flags} INSTALL="install -p" PREFIX=%{buildroot}%{_prefix} +%if 0%{?with_pandoc} +docs=`find doc -name \*.md | sed -e 's|.md$||g'` +for doc in $docs; do + pandoc --standalone --from markdown --to html --output $doc.html $doc.md +done +%endif +%if 0%{?with_perftools} +%global malloc_flags MALLOC=tcmalloc +%else +%global malloc_flags MALLOC=jemalloc +%endif +%global make_flags DEBUG="" V="echo" LDFLAGS="%{?__global_ldflags}" CFLAGS+="%{optflags} -fPIC" %{malloc_flags} INSTALL="install -p" PREFIX=%{buildroot}%{_prefix} %build make %{?_smp_mflags} %{make_flags} all - %install make %{make_flags} install # Filesystem. -install -d -m 750 %{buildroot}%{_localstatedir}/lib/%{name} -install -d -m 750 %{buildroot}%{_localstatedir}/log/%{name} -install -d -m 750 %{buildroot}%{_localstatedir}/run/%{name} +install -d %{buildroot}%{_sharedstatedir}/%{name} +install -d %{buildroot}%{_localstatedir}/log/%{name} +install -d %{buildroot}%{_localstatedir}/run/%{name} +install -d %{buildroot}%{redis_modules_dir} # Install logrotate file. -install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +install -pDm644 %{S:1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} # Install configuration files. -install -p -D -m 640 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf -install -p -D -m 640 sentinel.conf %{buildroot}%{_sysconfdir}/%{name}-sentinel.conf +install -pDm640 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf +install -pDm640 sentinel.conf %{buildroot}%{_sysconfdir}/%{name}-sentinel.conf # Install systemd unit files. -%if %{with_systemd} -install -p -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service -install -p -D -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/%{name}-sentinel.service +%if 0%{?with_systemd} +mkdir -p %{buildroot}%{_unitdir} +install -pm644 %{S:3} %{buildroot}%{_unitdir} +install -pm644 %{S:2} %{buildroot}%{_unitdir} # Install systemd limit files (requires systemd >= 204) -install -p -D -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf -install -p -D -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf +install -p -D -m 644 %{S:7} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf +install -p -D -m 644 %{S:7} %{buildroot}%{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf %else # install SysV service files -install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initrddir}/%{name} -install -p -D -m 755 %{SOURCE5} %{buildroot}%{_initrddir}/%{name}-sentinel -install -p -D -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/security/limits.d/95-%{name}.conf +install -pDm755 %{S:4} %{buildroot}%{_initrddir}/%{name}-sentinel +install -pDm755 %{S:5} %{buildroot}%{_initrddir}/%{name} +install -p -D -m 644 %{S:8} %{buildroot}%{_sysconfdir}/security/limits.d/95-%{name}.conf %endif -# Fix non-standard-executable-perm error +# Fix non-standard-executable-perm error. chmod 755 %{buildroot}%{_bindir}/%{name}-* # Install redis-shutdown -install -pDm755 %{SOURCE7} %{buildroot}%{_libexecdir}/%{name}-shutdown +install -pDm755 %{S:6} %{buildroot}%{_libexecdir}/%{name}-shutdown + +# Install redis module header +install -pDm644 src/%{name}module.h %{buildroot}%{_includedir}/%{name}module.h %if 0%{?with_redistrib} # Install redis-trib @@ -200,66 +273,74 @@ done ln -s redis-server.1 %{buildroot}%{_mandir}/man1/redis-sentinel.1 ln -s redis.conf.5 %{buildroot}%{_mandir}/man5/redis-sentinel.conf.5 +# Install markdown and html pages +doc=$(echo %{buildroot}/%{_docdir}/%{name}) +for page in $(find doc -name \*.md | sed -e 's|.md$||g'); do + base=$(echo $page | sed -e 's|doc/||g') + install -Dpm644 $page.md $doc/$base.md +%if 0%{?with_pandoc} + install -Dpm644 $page.html $doc/$base.html +%endif +done + +# Install rpm macros for redis modules +mkdir -p %{buildroot}%{macrosdir} +install -pDm644 %{S:9} %{buildroot}%{macrosdir}/macros.%{name} %check -%if %{with_tests} +%if 0%{?with_tests} # ERR Active defragmentation cannot be enabled: it requires a Redis server compiled # with a modified Jemalloc like the one shipped by default with the Redis source distribution sed -e '/memefficiency/d' -i tests/test_helper.tcl # https://github.com/antirez/redis/issues/1417 (for "taskset -c 1") -taskset -c 1 make test ||: -make test-sentinel +taskset -c 1 make %{make_flags} test +make %{make_flags} test-sentinel %else : Test disabled, missing '--with tests' option. %endif +%pre +getent group %{name} &> /dev/null || \ +groupadd -r %{name} &> /dev/null +getent passwd %{name} &> /dev/null || \ +useradd -r -g %{name} -d %{_sharedstatedir}/%{name} -s /sbin/nologin \ +-c 'Redis Database Server' %{name} &> /dev/null +exit 0 %post -%if 0%{?systemd_post:1} -%systemd_post redis.service -%systemd_post redis-sentinel.service +%if 0%{?with_systemd} +%systemd_post %{name}.service +%systemd_post %{name}-sentinel.service %else -# Initial installation (always, for new service) -/sbin/chkconfig --add redis -/sbin/chkconfig --add redis-sentinel +chkconfig --add %{name} +chkconfig --add %{name}-sentinel %endif -%pre -getent group redis &> /dev/null || \ -groupadd -r redis &> /dev/null -getent passwd redis &> /dev/null || \ -useradd -r -g redis -d %{_sharedstatedir}/redis -s /sbin/nologin \ - -c 'Redis Server' redis &> /dev/null -exit 0 - %preun -%if 0%{?systemd_preun:1} -%systemd_preun redis.service -%systemd_preun redis-sentinel.service +%if 0%{?with_systemd} +%systemd_preun %{name}.service +%systemd_preun %{name}-sentinel.service %else -if [ $1 = 0 ]; then - # Package removal, not upgrade - /sbin/service redis-sentinel stop &> /dev/null - /sbin/chkconfig --del redis-sentinel &> /dev/null - - /sbin/service redis stop &> /dev/null - /sbin/chkconfig --del redis &> /dev/null +if [ $1 -eq 0 ] ; then + service %{name} stop &> /dev/null + chkconfig --del %{name} &> /dev/null + service %{name}-sentinel stop &> /dev/null + chkconfig --del %{name}-sentinel &> /dev/null fi %endif %postun -%if 0%{?systemd_postun_with_restart:1} -%systemd_postun_with_restart redis.service -%systemd_postun_with_restart redis-sentinel.service +%if 0%{?with_systemd} +%systemd_postun_with_restart %{name}.service +%systemd_postun_with_restart %{name}-sentinel.service %else -if [ $1 -ge 1 ]; then - /sbin/service redis condrestart >/dev/null 2>&1 || : - /sbin/service redis-sentinel condrestart >/dev/null 2>&1 || : +if [ "$1" -ge "1" ] ; then + service %{name} condrestart >/dev/null 2>&1 || : + service %{name}-sentinel condrestart >/dev/null 2>&1 || : fi %endif - %files %{!?_licensedir:%global license %%doc} %license COPYING @@ -267,22 +348,28 @@ fi %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %attr(0640, redis, root) %config(noreplace) %{_sysconfdir}/%{name}.conf %attr(0640, redis, root) %config(noreplace) %{_sysconfdir}/%{name}-sentinel.conf -%dir %attr(0750, redis, redis) %{_localstatedir}/lib/%{name} +%dir %attr(0750, redis, redis) %{_libdir}/%{name} +%dir %attr(0750, redis, redis) %{redis_modules_dir} +%dir %attr(0750, redis, redis) %{_sharedstatedir}/%{name} %dir %attr(0750, redis, redis) %{_localstatedir}/log/%{name} %if 0%{?with_redistrib} %exclude %{_bindir}/%{name}-trib %endif +%exclude %{macrosdir} +%exclude %{_includedir} +%exclude %{_docdir}/%{name}/* %{_bindir}/%{name}-* %{_libexecdir}/%{name}-* -%{_mandir}/man1/redis* -%{_mandir}/man5/redis* -%if %{with_systemd} +%{_mandir}/man1/%{name}* +%{_mandir}/man5/%{name}* +%if 0%{?with_systemd} %{_unitdir}/%{name}.service %{_unitdir}/%{name}-sentinel.service %dir %{_sysconfdir}/systemd/system/%{name}.service.d %config(noreplace) %{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf %dir %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d %config(noreplace) %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf +%dir %attr(0750, redis, redis) %ghost %{_localstatedir}/run/%{name} %else %{_initrddir}/%{name} %{_initrddir}/%{name}-sentinel @@ -290,6 +377,14 @@ fi %dir %attr(0755, redis, redis) %{_localstatedir}/run/%{name} %endif +%files devel +%license COPYING +%{_includedir}/%{name}module.h +%{macrosdir}/* + +%files doc +%docdir %{_docdir}/%{name} +%{_docdir}/%{name}/* %if 0%{?with_redistrib} %files trib @@ -299,6 +394,11 @@ fi %changelog +* Tue Nov 21 2017 Remi Collet - 4.0.2-3 +- add doc and devel subpackages, synced from Fedora +- keep man pages in main package +- minor fix for EL-6 and tests + * Tue Sep 26 2017 Remi Collet - 4.0.2-2 - simplify build, synced from Fedora -- cgit