summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--redis-2.4.6-redis.conf.patch44
-rw-r--r--redis.init88
-rw-r--r--redis.logrotate9
-rw-r--r--redis.service13
-rw-r--r--redis.spec195
6 files changed, 353 insertions, 0 deletions
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 <rel-eng@lists.fedoraproject.org> - 2.4.15-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Sun Jul 08 2012 Silas Sewell <silas@sewell.org> - 2.4.15-2
+- Remove TODO from docs
+
+* Sun Jul 08 2012 Silas Sewell <silas@sewell.org> - 2.4.15-1
+- Update to redis 2.4.15
+
+* Sat May 19 2012 Silas Sewell <silas@sewell.org> - 2.4.13-1
+- Update to redis 2.4.13
+
+* Sat Mar 31 2012 Silas Sewell <silas@sewell.org> - 2.4.10-1
+- Update to redis 2.4.10
+
+* Fri Feb 24 2012 Silas Sewell <silas@sewell.org> - 2.4.8-1
+- Update to redis 2.4.8
+
+* Sat Feb 04 2012 Silas Sewell <silas@sewell.org> - 2.4.7-1
+- Update to redis 2.4.7
+
+* Tue Feb 01 2012 Fabian Deutsch <fabiand@fedoraproject.org> - 2.4.6-4
+- Fixed a typo in the spec
+
+* Tue Jan 31 2012 Fabian Deutsch <fabiand@fedoraproject.org> - 2.4.6-3
+- Fix .service file, to match config (Type=simple).
+
+* Tue Jan 31 2012 Fabian Deutsch <fabiand@fedoraproject.org> - 2.4.6-2
+- Fix .service file, credits go to Timon.
+
+* Thu Jan 12 2012 Fabian Deutsch <fabiand@fedoraproject.org> - 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 <silas@sewell.org> - 2.2.12-1
+- Update to redis 2.2.12
+
+* Fri May 06 2011 Dan HorĂ¡k <dan[at]danny.cz> - 2.2.5-2
+- google-perftools exists only on selected architectures
+
+* Sat Apr 23 2011 Silas Sewell <silas@sewell.ch> - 2.2.5-1
+- Update to redis 2.2.5
+
+* Sat Mar 26 2011 Silas Sewell <silas@sewell.ch> - 2.2.2-1
+- Update to redis 2.2.2
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Sun Dec 19 2010 Silas Sewell <silas@sewell.ch> - 2.0.4-1
+- Update to redis 2.0.4
+
+* Tue Oct 19 2010 Silas Sewell <silas@sewell.ch> - 2.0.3-1
+- Update to redis 2.0.3
+
+* Fri Oct 08 2010 Silas Sewell <silas@sewell.ch> - 2.0.2-1
+- Update to redis 2.0.2
+- Disable checks section for el5
+
+* Fri Sep 11 2010 Silas Sewell <silas@sewell.ch> - 2.0.1-1
+- Update to redis 2.0.1
+
+* Sat Sep 04 2010 Silas Sewell <silas@sewell.ch> - 2.0.0-1
+- Update to redis 2.0.0
+
+* Thu Sep 02 2010 Silas Sewell <silas@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@sewell.ch> - 1.2.6-2
+- Don't compress man pages
+- Use patch to fix redis.conf
+
+* Tue Jul 06 2010 Silas Sewell <silas@sewell.ch> - 1.2.6-1
+- Initial package