diff --git a/.gitignore b/.gitignore index e69de29..0af108d 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/redis-2.0.3.tar.gz diff --git a/redis-2.0.0-redis.conf.patch b/redis-2.0.0-redis.conf.patch new file mode 100644 index 0000000..f3ae784 --- /dev/null +++ b/redis-2.0.0-redis.conf.patch @@ -0,0 +1,50 @@ +diff -up redis-2.0.0/redis.conf.orig redis-2.0.0/redis.conf +--- redis-2.0.0/redis.conf.orig 2010-09-04 15:59:16.599206633 -0400 ++++ redis-2.0.0/redis.conf 2010-09-04 16:01:59.234209087 -0400 +@@ -14,11 +14,11 @@ + + # 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 ++pidfile /var/run/redis/redis.pid + + # Accept connections on the specified port, default is 6379 + port 6379 +@@ -26,7 +26,7 @@ port 6379 + # 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 + + # Close the connection after a client is idle for N seconds (0 to disable) + timeout 300 +@@ -37,12 +37,12 @@ timeout 300 + # 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 + + # Set the number of databases. The default database is DB 0, you can select + # a different one on a per-connection basis using SELECT where +@@ -86,7 +86,7 @@ dbfilename dump.rdb + # 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.spec b/redis.spec new file mode 100644 index 0000000..436a2ae --- /dev/null +++ b/redis.spec @@ -0,0 +1,125 @@ +# Check for status of man pages +# http://code.google.com/p/redis/issues/detail?id=202 + +Name: redis +Version: 2.0.3 +Release: 1%{?dist} +Summary: A persistent key-value database + +Group: Applications/Databases +License: BSD +URL: http://code.google.com/p/redis/ +Source0: http://redis.googlecode.com/files/%{name}-%{version}.tar.gz +Source1: %{name}.logrotate +Source2: %{name}.init +# Update configuration for Fedora +Patch0: %{name}-2.0.0-redis.conf.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%if !0%{?el5} +BuildRequires: tcl >= 8.5 +%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 +# Remove integration tests +sed -i '/ execute_tests "integration\/replication"/d' tests/test_helper.tcl +sed -i '/ execute_tests "integration\/aof"/d' tests/test_helper.tcl + +%build +make %{?_smp_mflags} DEBUG="" CFLAGS='%{optflags} -std=c99' all + +%check +%if !0%{?el5} +tclsh tests/test_helper.tcl +%endif + +%install +rm -fr %{buildroot} +# Install binaries +install -p -D -m 755 %{name}-benchmark %{buildroot}%{_bindir}/%{name}-benchmark +install -p -D -m 755 %{name}-cli %{buildroot}%{_bindir}/%{name}-cli +install -p -D -m 755 %{name}-check-aof %{buildroot}%{_bindir}/%{name}-check-aof +install -p -D -m 755 %{name}-check-dump %{buildroot}%{_bindir}/%{name}-check-dump +install -p -D -m 755 %{name}-server %{buildroot}%{_sbindir}/%{name}-server +# 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} + +%clean +rm -fr %{buildroot} + +%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 COPYING Changelog README TODO doc/ +%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} + +%changelog +* 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 diff --git a/sources b/sources index e69de29..927a682 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +7799de79f36ebdb73bcb8f09816d1ac3 redis-2.0.3.tar.gz