[redis/el5/master] Initial commit

Silas Sewell silas at fedoraproject.org
Tue Oct 19 15:57:19 UTC 2010


commit 4724f71dee493ac60e439255b0d4929cf621a376
Author: Silas Sewell <silas at sewell.ch>
Date:   Tue Oct 19 11:57:11 2010 -0400

    Initial commit

 .gitignore                   |    1 +
 redis-2.0.0-redis.conf.patch |   50 +++++++++++++++++
 redis.init                   |   88 +++++++++++++++++++++++++++++
 redis.logrotate              |    9 +++
 redis.spec                   |  125 ++++++++++++++++++++++++++++++++++++++++++
 sources                      |    1 +
 6 files changed, 274 insertions(+), 0 deletions(-)
---
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 <dbid> 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 <silas at sewell.ch> - 2.0.3-1
+- Update to redis 2.0.3
+
+* Fri Oct 08 2010 Silas Sewell <silas at sewell.ch> - 2.0.2-1
+- Update to redis 2.0.2
+- Disable checks section for el5
+
+* Fri Sep 11 2010 Silas Sewell <silas at sewell.ch> - 2.0.1-1
+- Update to redis 2.0.1
+
+* Sat Sep 04 2010 Silas Sewell <silas at sewell.ch> - 2.0.0-1
+- Update to redis 2.0.0
+
+* Thu Sep 02 2010 Silas Sewell <silas at sewell.ch> - 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 <silas at sewell.ch> - 1.2.6-2
+- Don't compress man pages
+- Use patch to fix redis.conf
+
+* Tue Jul 06 2010 Silas Sewell <silas at sewell.ch> - 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


More information about the scm-commits mailing list