From 605131e7fe26c8b9852dc7e970475682caa03d48f5e0d25aef13ec4cc928c35b Mon Sep 17 00:00:00 2001 From: Martin Pluskal Date: Thu, 30 Jun 2016 10:52:49 +0000 Subject: [PATCH] Accepting request 405637 from home:rmaliska:branches:server:database - Update to 3.2.1 * [FIX] Cleaned up spec file. * [FIX] Critical bug in Sentinel was hopefully fixed. * [FIX] BITFIELD bugs fixed. * [FIX] GEO commands fixes on syntax errors and edge cases. * [NEW] RESOTRE now accepts dumps generated by older Redis versions. * [NEW] Jemalloc now is configured to save you memory, for a problem a change in the jemalloc configuration did not really survived when the 3.2.0 release was finalized. * [NEW] TTL and TYPE command no longer alter the last access time of a key, for LRU evictions purposes. A new TOUCH command was introduced *just* to update the access time of a key. * [FIX] A bug was fixed in redis-cli, that connected to the instance running on the port 6379 if there was one, regardless of what was specified. * [NEW] TCP keep alive is now enabled by default. This should fix most ghost connections problems without resulting in any practical change in otherwise sane deployments. * [FIX] A Sentinel crash that could happen during failovers was fixed. * [NEW] avg_ttl reporting in INFO improved. * [NEW] Sentinel: improve handling of known Sentinel instances. * [NEW] Redis Cluster address update (via gossip section) processing improved to avoid initiating inwanted handshakes. * [FIX] Critical bug fixed: There was a problem in the way a cluster instance loaded the AOF that could cause data written via scripts to be lost during reshardings. * [NEW] There is a new very powerful BITFIELD command. Check the documentation here: http://redis.io/commands/BITFIELD * [NEW] CONFIG GET is allowed during the loading of the dataset. * [NEW] The DEBUG command have new features and can show an help with DEBUG HELP. * [NEW] redis-cli show hits about the commands arguments to the right. OBS-URL: https://build.opensuse.org/request/show/405637 OBS-URL: https://build.opensuse.org/package/show/server:database/redis?expand=0&rev=78 --- redis-3.0.7.tar.gz | 3 -- redis-3.2.1.tar.gz | 3 ++ redis-conf.patch | 37 +++++++------ ...enable-bactrace-on-x86-and-ia64-only.patch | 2 +- redis.changes | 45 ++++++++++++++++ redis.spec | 53 ++++++++++--------- 6 files changed, 97 insertions(+), 46 deletions(-) delete mode 100644 redis-3.0.7.tar.gz create mode 100644 redis-3.2.1.tar.gz diff --git a/redis-3.0.7.tar.gz b/redis-3.0.7.tar.gz deleted file mode 100644 index db441eb..0000000 --- a/redis-3.0.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2a791c4ea3bb7268795c45c6321ea5abcc24457178373e6a6e3be6372737f23 -size 1375200 diff --git a/redis-3.2.1.tar.gz b/redis-3.2.1.tar.gz new file mode 100644 index 0000000..33ed54d --- /dev/null +++ b/redis-3.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df7bfb7b527d99981eba3912ae22703764eb19adda1357818188b22fdd09d5c9 +size 1534696 diff --git a/redis-conf.patch b/redis-conf.patch index ccbd403..d1dfbed 100644 --- a/redis-conf.patch +++ b/redis-conf.patch @@ -2,29 +2,34 @@ Index: redis.conf =================================================================== --- redis.conf.orig +++ redis.conf -@@ -34,11 +34,11 @@ +@@ -125,7 +125,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. -daemonize no +daemonize yes - # When running daemonized, Redis writes a pid file in /var/run/redis.pid by - # default. You can specify a custom pid file location here. --pidfile /var/run/redis.pid + # If you run Redis from upstart or systemd, Redis can interact with your + # supervision tree. Options: +@@ -136,7 +136,7 @@ daemonize no + # UPSTART_JOB or NOTIFY_SOCKET environment variables + # Note: these supervision methods only signal "process is ready." + # They do not enable continuous liveness pings back to your supervisor. +-supervised no ++supervised systemd + + # If a pid file is specified, Redis writes it where specified at startup + # and removes it at exit. +@@ -147,7 +147,7 @@ supervised no + # + # Creating a pid file is best effort: if Redis is not able to create it + # nothing bad happens, the server will start and run normally. +-pidfile /var/run/redis_6379.pid +pidfile /var/run/redis/default.pid - # Accept connections on the specified port, default is 6379. - # If port 0 is specified Redis will not listen on a TCP socket. -@@ -62,6 +62,7 @@ tcp-backlog 511 - # - # bind 192.168.1.100 10.0.0.1 - # bind 127.0.0.1 -+bind 127.0.0.1 - - # Specify the path for the Unix socket that will be used to listen for - # incoming connections. There is no default, so Redis will not listen -@@ -100,7 +101,8 @@ loglevel notice + # Specify the server verbosity level. + # This can be one of: +@@ -160,7 +160,8 @@ 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 @@ -34,7 +39,7 @@ Index: redis.conf # To enable logging to the system logger, just set 'syslog-enabled' to yes, # and optionally update the other syslog parameters to suit your needs. -@@ -184,7 +186,7 @@ dbfilename dump.rdb +@@ -244,7 +245,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. diff --git a/redis-enable-bactrace-on-x86-and-ia64-only.patch b/redis-enable-bactrace-on-x86-and-ia64-only.patch index 494bb49..ce2cebb 100644 --- a/redis-enable-bactrace-on-x86-and-ia64-only.patch +++ b/redis-enable-bactrace-on-x86-and-ia64-only.patch @@ -11,5 +11,5 @@ Index: src/config.h #endif +#endif - /* Test for polling API */ + /* MSG_NOSIGNAL. */ #ifdef __linux__ diff --git a/redis.changes b/redis.changes index 2efeadb..a685a44 100644 --- a/redis.changes +++ b/redis.changes @@ -1,3 +1,48 @@ +------------------------------------------------------------------- +Wed Jun 29 12:14:42 UTC 2016 - rmaliska@suse.com + +- Update to 3.2.1 +* [FIX] Cleaned up spec file. +* [FIX] Critical bug in Sentinel was hopefully fixed. +* [FIX] BITFIELD bugs fixed. +* [FIX] GEO commands fixes on syntax errors and edge cases. +* [NEW] RESOTRE now accepts dumps generated by older Redis versions. +* [NEW] Jemalloc now is configured to save you memory, for a problem a + change in the jemalloc configuration did not really survived when the + 3.2.0 release was finalized. +* [NEW] TTL and TYPE command no longer alter the last access time of a key, for + LRU evictions purposes. A new TOUCH command was introduced *just* to + update the access time of a key. +* [FIX] A bug was fixed in redis-cli, that connected to the instance running on the + port 6379 if there was one, regardless of what was specified. +* [NEW] TCP keep alive is now enabled by default. This should fix most ghost + connections problems without resulting in any practical change in otherwise + sane deployments. +* [FIX] A Sentinel crash that could happen during failovers was fixed. +* [NEW] avg_ttl reporting in INFO improved. +* [NEW] Sentinel: improve handling of known Sentinel instances. +* [NEW] Redis Cluster address update (via gossip section) processing improved + to avoid initiating inwanted handshakes. +* [FIX] Critical bug fixed: There was a problem in the way a cluster instance + loaded the AOF that could cause data written via scripts to be lost during + reshardings. +* [NEW] There is a new very powerful BITFIELD command. Check the documentation + here: http://redis.io/commands/BITFIELD +* [NEW] CONFIG GET is allowed during the loading of the dataset. +* [NEW] The DEBUG command have new features and can show an help with DEBUG HELP. +* [NEW] redis-cli show hits about the commands arguments to the right. +* [NEW] GEORADIUS got a STORE / STOREDIST option to store the result into a target + key (as as orted set) instead of reporting it to the user. +* [NEW] Redis Cluster replicas migration now works in a slightly different way. In + the past a slave could migrate only to a master that used to have slaves + in the past (and if there was still trace of this information). Now instead + if a new slave gets at least a slot, and at least one other master in the + cluster has a slave, then the new master is considered a valid target for + replica migration. So if it will be orphaned and there is a spare slave + it will get one. +* [NEW] CLUSTER SLOTS output now includes the node ID (in a backward compatible + manner). + ------------------------------------------------------------------- Wed Apr 20 16:53:03 UTC 2016 - mamorales@suse.com diff --git a/redis.spec b/redis.spec index 00794ad..77e77a1 100644 --- a/redis.spec +++ b/redis.spec @@ -16,18 +16,16 @@ # +%define _data_dir %{_localstatedir}/lib/%{name} +%define _log_dir %{_localstatedir}/log/%{name} +%define _conf_dir %{_sysconfdir}/%{name} %if 0%{?suse_version} > 1230 %bcond_without systemd %else %bcond_with systemd %endif - -%define _data_dir %{_localstatedir}/lib/%{name} -%define _log_dir %{_localstatedir}/log/%{name} -%define _conf_dir %{_sysconfdir}/%{name} - Name: redis -Version: 3.0.7 +Version: 3.2.1 Release: 0 Summary: Persistent key-value database License: BSD-3-Clause @@ -43,18 +41,20 @@ Source5: README.SUSE Patch0: %{name}-initscript.patch # PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: %{name}-conf.patch -Patch2: redis-enable-bactrace-on-x86-and-ia64-only.patch +Patch2: redis-enable-bactrace-on-x86-and-ia64-only.patch +BuildRequires: pkgconfig BuildRequires: procps BuildRequires: tcl +Requires: logrotate +Requires: sudo +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %{with systemd} BuildRequires: pkgconfig(systemd) %{?systemd_requires} %else -PreReq: %{insserv_prereq} %{fillup_prereq} +# FIXME: use proper Requires(pre/post/preun/...) +PreReq: %insserv_prereq %fillup_prereq %endif -Requires: logrotate -Requires: sudo -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Redis is an advanced key-value store. It is similar to memcached but the dataset @@ -83,8 +83,9 @@ install -m 0750 -d \ install -D -m 0755 src/redis-benchmark %{buildroot}%{_bindir}/redis-benchmark install -m 0755 src/redis-cli %{buildroot}%{_bindir}/redis-cli -install -m 0755 src/redis-check-dump %{buildroot}%{_bindir}/redis-check-dump install -m 0755 src/redis-check-aof %{buildroot}%{_bindir}/redis-check-aof +install -m 0755 src/redis-check-rdb %{buildroot}%{_bindir}/redis-check-rdb +install -m 0755 src/redis-trib.rb %{buildroot}%{_bindir}/redis-trib.rb install -D -m 0755 src/redis-server %{buildroot}%{_sbindir}/redis-server ln -sfv redis-server %{buildroot}%{_sbindir}/redis-sentinel @@ -98,11 +99,11 @@ install -D -m 0640 sentinel.conf %{buildroot}%{_conf_dir}/sentinel.conf.e # init # %if %{with systemd} -install -D -m 0644 %{S:2} %{buildroot}%{_unitdir}/redis.target -install -D -m 0644 %{S:3} %{buildroot}%{_unitdir}/redis@.service -install -D -m 0644 %{S:4} %{buildroot}/usr/lib/tmpfiles.d/%{name}.conf -%{__ln_s} -f %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} -cp %{S:5} README.SUSE +install -D -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/redis.target +install -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/redis@.service +install -D -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf +ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name} +cp %{SOURCE5} README.SUSE %else install -D -m 0755 utils/redis_init_script %{buildroot}%{_sysconfdir}/init.d/redis ln -s %{_sysconfdir}/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name} @@ -121,25 +122,25 @@ The test suite often fails to start a server, with 'child process exited abnormally' -- sometimes it works. --------------------------------------------------- EOF -make test && true +make %{?_smp_mflags} test && true %endif %pre -/usr/sbin/groupadd -r %{name} >/dev/null 2>&1 || : -/usr/sbin/useradd -g %{name} -s /bin/false -r -c "User for Redis key-value store" -d %{_data_dir} %{name} >/dev/null 2>&1 || : +%{_sbindir}/groupadd -r %{name} >/dev/null 2>&1 || : +%{_sbindir}/useradd -g %{name} -s /bin/false -r -c "User for Redis key-value store" -d %{_data_dir} %{name} >/dev/null 2>&1 || : %if %{with systemd} %service_add_pre %{name}.target %endif %post %if %{with systemd} -systemd-tmpfiles --create /usr/lib/tmpfiles.d/%{name}.conf || true +systemd-tmpfiles --create %{_prefix}/lib/tmpfiles.d/%{name}.conf || true %service_add_post %{name}.target -echo "See /usr/share/doc/packages/redis/README.SUSE to continue" +echo "See %{_docdir}/redis/README.SUSE to continue" %else echo "To start the database server, create your configuration" -echo "starting from /etc/redis/default.conf.example, place it" -echo "in /etc/redis and do: " +echo "starting from %{_sysconfdir}/redis/default.conf.example, place it" +echo "in %{_sysconfdir}/redis and do: " echo " sudo rcredis start; sudo chkconfig redis on" %endif @@ -160,13 +161,13 @@ echo " sudo rcredis start; sudo chkconfig redis on" %files %defattr(-,root,root,-) -%doc 00-RELEASENOTES BUGS CONTRIBUTING COPYING README +%doc 00-RELEASENOTES BUGS CONTRIBUTING COPYING README.md %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{_bindir}/redis-* %{_sbindir}/redis-* %{_sbindir}/rc%{name} %if %{with systemd} -/usr/lib/tmpfiles.d/%{name}.conf +%{_prefix}/lib/tmpfiles.d/%{name}.conf %{_unitdir}/%{name}@.service %{_unitdir}/%{name}.target %doc README.SUSE