From 55f1f702dc479340cb5e974e9a501a13264dee91 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 30 Aug 2012 16:58:08 +0200 Subject: redis : import from rawhide --- Makefile | 4 + redis-2.4.6-redis.conf.patch | 44 ++++++++++ redis.init | 88 +++++++++++++++++++ redis.logrotate | 9 ++ redis.service | 13 +++ redis.spec | 195 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 353 insertions(+) create mode 100644 Makefile create mode 100644 redis-2.4.6-redis.conf.patch create mode 100644 redis.init create mode 100644 redis.logrotate create mode 100644 redis.service create mode 100644 redis.spec diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/redis-2.4.6-redis.conf.patch b/redis-2.4.6-redis.conf.patch new file mode 100644 index 0000000..109238e --- /dev/null +++ b/redis-2.4.6-redis.conf.patch @@ -0,0 +1,44 @@ +--- redis-2.4.6/redis.conf.orig 2012-01-13 09:01:20.032263652 +0100 ++++ redis-2.4.6/redis.conf 2012-01-13 09:02:57.223037913 +0100 +@@ -18,7 +18,7 @@ + + # 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 ++pidfile /var/run/redis/redis.pid + + # Accept connections on the specified port, default is 6379. + # If port 0 is specified Redis will not listen on a TCP socket. +@@ -27,7 +27,7 @@ + # If you want you can bind a single interface, if the bind option is not + # specified all the interfaces will listen for incoming connections. + # +-# 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 +@@ -45,12 +45,12 @@ + # verbose (many rarely useful info, but not a mess like the debug level) + # notice (moderately verbose, what you want in production probably) + # warning (only very important / critical messages are logged) +-loglevel verbose ++loglevel notice + + # Specify the log file name. Also 'stdout' 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 stdout ++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. +@@ -104,7 +104,7 @@ + # Also the Append Only File will 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/redis.init b/redis.init new file mode 100644 index 0000000..14fad01 --- /dev/null +++ b/redis.init @@ -0,0 +1,88 @@ +#!/bin/sh +# +# redis init file for starting up the redis daemon +# +# chkconfig: - 20 80 +# description: Starts and stops the redis daemon. + +# Source function library. +. /etc/rc.d/init.d/functions + +name="redis-server" +exec="/usr/sbin/$name" +pidfile="/var/run/redis/redis.pid" +REDIS_CONFIG="/etc/redis.conf" + +[ -e /etc/sysconfig/redis ] && . /etc/sysconfig/redis + +lockfile=/var/lock/subsys/redis + +start() { + [ -f $REDIS_CONFIG ] || exit 6 + [ -x $exec ] || exit 5 + echo -n $"Starting $name: " + daemon --user ${REDIS_USER-redis} "$exec $REDIS_CONFIG" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $name: " + killproc -p $pidfile $name + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + false +} + +rh_status() { + status -p $pidfile $name +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}" + exit 2 +esac +exit $? diff --git a/redis.logrotate b/redis.logrotate new file mode 100644 index 0000000..43addc6 --- /dev/null +++ b/redis.logrotate @@ -0,0 +1,9 @@ +/var/log/redis/redis.log { + weekly + rotate 10 + copytruncate + delaycompress + compress + notifempty + missingok +} diff --git a/redis.service b/redis.service new file mode 100644 index 0000000..f6dc44e --- /dev/null +++ b/redis.service @@ -0,0 +1,13 @@ +[Unit] +Description=A persistent key-value database +After=syslog.target network.target + +[Service] +PIDFile=/var/run/redis/redis.pid +ExecStart=/usr/sbin/redis-server /etc/redis.conf +User=redis +Group=redis + +[Install] +WantedBy=multi-user.target + diff --git a/redis.spec b/redis.spec new file mode 100644 index 0000000..1c44a6d --- /dev/null +++ b/redis.spec @@ -0,0 +1,195 @@ +# Check for status of man pages +# http://code.google.com/p/redis/issues/detail?id=202 + +%ifarch %{ix86} x86_64 ppc +# available only on selected architectures +%global with_perftools 1 +%endif + +Name: redis +Version: 2.4.15 +Release: 3%{?dist} +Summary: A persistent key-value database + +Group: Applications/Databases +License: BSD +URL: http://redis.io +Source0: http://redis.googlecode.com/files/%{name}-%{version}.tar.gz +Source1: %{name}.logrotate +Source2: %{name}.init +Source3: %{name}.service +# Update configuration for Fedora +Patch0: %{name}-2.4.6-redis.conf.patch + +BuildRequires: systemd-units +%if !0%{?el5} +BuildRequires: tcl >= 8.5 +%if 0%{?with_perftools} +BuildRequires: google-perftools-devel +%endif +%endif + +Requires: logrotate +Requires(post): chkconfig +Requires(postun): initscripts +Requires(pre): shadow-utils +Requires(preun): chkconfig +Requires(preun): initscripts + +%description +Redis is an advanced key-value store. It is similar to memcached but the data +set is not volatile, and values can be strings, exactly like in memcached, but +also lists, sets, and ordered sets. All this data types can be manipulated with +atomic operations to push/pop elements, add/remove elements, perform server side +union, intersection, difference between sets, and so forth. Redis supports +different kind of sorting abilities. + +%prep +%setup -q +%patch0 -p1 + +%build +make %{?_smp_mflags} \ + DEBUG="" \ + CFLAGS='%{optflags}' \ +%if !0%{?el5} +%if 0%{?with_perftools} + USE_TCMALLOC=yes \ +%endif +%endif + all + +%check +%if !0%{?el5} +# make test +%endif + +%install +make install PREFIX=%{buildroot}%{_prefix} +# Install misc other +install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initrddir}/%{name} +install -p -D -m 644 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf +install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name} +install -d -m 755 %{buildroot}%{_localstatedir}/log/%{name} +install -d -m 755 %{buildroot}%{_localstatedir}/run/%{name} + +# Install systemd unit +install -p -D -m 644 %{SOURCE3} %{buildroot}/%{_unitdir}/%{name}.service + +# Fix non-standard-executable-perm error +chmod 755 %{buildroot}%{_bindir}/%{name}-* + +# Ensure redis-server location doesn't change +mkdir -p %{buildroot}%{_sbindir} +mv %{buildroot}%{_bindir}/%{name}-server %{buildroot}%{_sbindir}/%{name}-server + +%post +/sbin/chkconfig --add redis + +%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 [ $1 = 0 ]; then + /sbin/service redis stop &> /dev/null + /sbin/chkconfig --del redis &> /dev/null +fi + +%files +%defattr(-,root,root,-) +%doc 00-RELEASENOTES BUGS CONTRIBUTING COPYING README +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%config(noreplace) %{_sysconfdir}/%{name}.conf +%dir %attr(0755, redis, root) %{_localstatedir}/lib/%{name} +%dir %attr(0755, redis, root) %{_localstatedir}/log/%{name} +%dir %attr(0755, redis, root) %{_localstatedir}/run/%{name} +%{_bindir}/%{name}-* +%{_sbindir}/%{name}-* +%{_initrddir}/%{name} +%{_unitdir}/%{name}.service + +%changelog +* Sat Jul 21 2012 Fedora Release Engineering - 2.4.15-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jul 08 2012 Silas Sewell - 2.4.15-2 +- Remove TODO from docs + +* Sun Jul 08 2012 Silas Sewell - 2.4.15-1 +- Update to redis 2.4.15 + +* Sat May 19 2012 Silas Sewell - 2.4.13-1 +- Update to redis 2.4.13 + +* Sat Mar 31 2012 Silas Sewell - 2.4.10-1 +- Update to redis 2.4.10 + +* Fri Feb 24 2012 Silas Sewell - 2.4.8-1 +- Update to redis 2.4.8 + +* Sat Feb 04 2012 Silas Sewell - 2.4.7-1 +- Update to redis 2.4.7 + +* Tue Feb 01 2012 Fabian Deutsch - 2.4.6-4 +- Fixed a typo in the spec + +* Tue Jan 31 2012 Fabian Deutsch - 2.4.6-3 +- Fix .service file, to match config (Type=simple). + +* Tue Jan 31 2012 Fabian Deutsch - 2.4.6-2 +- Fix .service file, credits go to Timon. + +* Thu Jan 12 2012 Fabian Deutsch - 2.4.6-1 +- Update to 2.4.6 +- systemd unit file added +- Compiler flags changed to compile 2.4.6 +- Remove doc/ and Changelog + +* Sun Jul 24 2011 Silas Sewell - 2.2.12-1 +- Update to redis 2.2.12 + +* Fri May 06 2011 Dan HorĂ¡k - 2.2.5-2 +- google-perftools exists only on selected architectures + +* Sat Apr 23 2011 Silas Sewell - 2.2.5-1 +- Update to redis 2.2.5 + +* Sat Mar 26 2011 Silas Sewell - 2.2.2-1 +- Update to redis 2.2.2 + +* Wed Feb 09 2011 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Dec 19 2010 Silas Sewell - 2.0.4-1 +- Update to redis 2.0.4 + +* Tue Oct 19 2010 Silas Sewell - 2.0.3-1 +- Update to redis 2.0.3 + +* Fri Oct 08 2010 Silas Sewell - 2.0.2-1 +- Update to redis 2.0.2 +- Disable checks section for el5 + +* Fri Sep 11 2010 Silas Sewell - 2.0.1-1 +- Update to redis 2.0.1 + +* Sat Sep 04 2010 Silas Sewell - 2.0.0-1 +- Update to redis 2.0.0 + +* Thu Sep 02 2010 Silas Sewell - 1.2.6-3 +- Add Fedora build flags +- Send all scriplet output to /dev/null +- Remove debugging flags +- Add redis.conf check to init script + +* Mon Aug 16 2010 Silas Sewell - 1.2.6-2 +- Don't compress man pages +- Use patch to fix redis.conf + +* Tue Jul 06 2010 Silas Sewell - 1.2.6-1 +- Initial package -- cgit