Browse Source

upgrading package: redis -> 1.2.5

Ralf S. Engelschall 15 years ago
parent
commit
00a516419a
4 changed files with 234 additions and 0 deletions
  1. 55 0
      redis/rc.redis
  2. 36 0
      redis/redis.conf
  3. 46 0
      redis/redis.patch
  4. 97 0
      redis/redis.spec

+ 55 - 0
redis/rc.redis

@@ -0,0 +1,55 @@
+#!@l_prefix@/bin/openpkg rc
+##
+##  rc.redis -- Run-Commands
+##
+
+%config
+    redis_enable="$openpkg_rc_def"
+    redis_log_prolog="true"
+    redis_log_epilog="true"
+    redis_log_numfiles="10"
+    redis_log_minsize="1M"
+    redis_log_complevel="9"
+
+%common
+    redis_logfile="@l_prefix@/var/redis/log/redis.log"
+    redis_pidfile="@l_prefix@/var/redis/run/redis.pid"
+    redis_signal () {
+        [ -f $redis_pidfile ] && kill -$1 `cat $redis_pidfile`
+    }
+
+%status -u @l_rusr@ -o
+    redis_usable="unknown"
+    redis_active="no"
+    rcService redis enable yes && \
+        redis_signal 0 && redis_active="yes"
+    echo "redis_enable=\"$redis_enable\""
+    echo "redis_usable=\"$redis_usable\""
+    echo "redis_active=\"$redis_active\""
+
+%start -u @l_rusr@
+    rcService redis enable yes || exit 0
+    rcService redis active yes && exit 0
+    @l_prefix@/bin/redis-server @l_prefix@/etc/redis/redis.conf
+
+%stop -u @l_rusr@
+    rcService redis enable yes || exit 0
+    rcService redis active no  && exit 0
+    redis_signal TERM
+    sleep 2
+    rm -f $redis_pidfile >/dev/null 2>&1 || true
+
+%restart -u @l_rusr@
+    rcService redis enable yes || exit 0
+    rcService redis active no  && exit 0
+    rc redis stop start
+
+%daily -u @l_rusr@
+    rcService redis enable yes || exit 0
+    shtool rotate -f \
+        -n ${redis_log_numfiles} -s ${redis_log_minsize} -d \
+        -z ${redis_log_complevel} -m 664 -o @l_susr@ -g @l_mgrp@ \
+        -P "${redis_log_prolog}" \
+        -E "${redis_log_epilog}; rc redis restart" \
+        $redis_logfile
+

+ 36 - 0
redis/redis.conf

@@ -0,0 +1,36 @@
+##
+##  redis.conf -- Redis server configuration
+##
+
+daemonize yes
+pidfile @l_prefix@/var/redis/run/redis.pid
+
+bind 127.0.0.1
+port 6379
+timeout 300
+
+loglevel notice
+logfile @l_prefix@/var/redis/log/redis.log
+
+databases 16
+
+save 900 1
+save 300 10
+save 60 10000
+
+rdbcompression yes
+dbfilename dump.rdb
+dir @l_prefix@/var/redis/db/
+
+requirepass my-secret
+#slaveof 127.0.0.2 6379
+#masterauth remote-secret
+
+maxclients 128
+maxmemory 10485760
+appendonly no
+appendfsync always
+glueoutputbuf yes
+shareobjects no
+shareobjectspoolsize 1024
+

+ 46 - 0
redis/redis.patch

@@ -0,0 +1,46 @@
+Index: Makefile
+--- Makefile.orig	2010-03-02 13:56:03.000000000 +0100
++++ Makefile	2010-03-18 08:57:01.000000000 +0100
+@@ -4,14 +4,14 @@
+ 
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
+ ifeq ($(uname_S),SunOS)
+-  CFLAGS?= -std=c99 -pedantic -O2 -Wall -W -D__EXTENSIONS__ -D_XPG6
+-  CCLINK?= -ldl -lnsl -lsocket -lm
++  CFLAGS?= -std=c99 -D__EXTENSIONS__ -D_XPG6
++  LIBS?= -ldl -lnsl -lsocket -lm
+ else
+-  CFLAGS?= -std=c99 -pedantic -O2 -Wall -W $(ARCH) $(PROF)
+-  CCLINK?= -lm
++  CFLAGS?= -std=c99 $(ARCH) $(PROF)
++  LIBS?= -lm
+ endif
+-CCOPT= $(CFLAGS) $(CCLINK) $(ARCH) $(PROF)
+-DEBUG?= -g -rdynamic -ggdb 
++CCOPT= $(CFLAGS) $(ARCH) $(PROF)
++DEBUG?=
+ 
+ OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o
+ BENCHOBJ = ae.o anet.o benchmark.o sds.o adlist.o zmalloc.o
+@@ -40,7 +40,7 @@
+ zmalloc.o: zmalloc.c config.h
+ 
+ redis-server: $(OBJ)
+-	$(CC) -o $(PRGNAME) $(CCOPT) $(DEBUG) $(OBJ)
++	$(CC) -o $(PRGNAME) $(CCOPT) $(DEBUG) $(OBJ) $(LIBS)
+ 	@echo ""
+ 	@echo "Hint: To run the test-redis.tcl script is a good idea."
+ 	@echo "Launch the redis server with ./redis-server, then in another"
+@@ -48,10 +48,10 @@
+ 	@echo ""
+ 
+ redis-benchmark: $(BENCHOBJ)
+-	$(CC) -o $(BENCHPRGNAME) $(CCOPT) $(DEBUG) $(BENCHOBJ)
++	$(CC) -o $(BENCHPRGNAME) $(CCOPT) $(DEBUG) $(BENCHOBJ) $(LIBS)
+ 
+ redis-cli: $(CLIOBJ)
+-	$(CC) -o $(CLIPRGNAME) $(CCOPT) $(DEBUG) $(CLIOBJ)
++	$(CC) -o $(CLIPRGNAME) $(CCOPT) $(DEBUG) $(CLIOBJ) $(LIBS)
+ 
+ .c.o:
+ 	$(CC) -c $(CFLAGS) $(DEBUG) $(COMPILE_TIME) $<

+ 97 - 0
redis/redis.spec

@@ -0,0 +1,97 @@
+##
+##  redis.spec -- OpenPKG RPM Package Specification
+##  Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package information
+Name:         redis
+Summary:      Persistent Key-Value Database
+URL:          http://code.google.com/p/redis/
+Vendor:       Salvatore Sanfilippo
+Packager:     OpenPKG Foundation e.V.
+Distribution: OpenPKG Community
+Class:        EVAL
+Group:        Database
+License:      BSD
+Version:      1.2.5
+Release:      20100318
+
+#   list of sources
+Source0:      http://redis.googlecode.com/files/redis-%{version}.tar.gz
+Source1:      rc.redis
+Source2:      redis.conf
+Patch0:       redis.patch
+
+#   build information
+BuildPreReq:  OpenPKG, openpkg >= 20100101, config
+PreReq:       OpenPKG, openpkg >= 20100101
+
+%description
+    Redis is an advanced key-value store. It is similar to memcached
+    but the dataset 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.
+
+%track
+    prog redis = {
+        version   = %{version}
+        url       = http://code.google.com/p/redis/downloads/list
+        regex     = redis-(__VER__)\.tar\.gz
+    }
+
+%prep
+    %setup -q
+    %patch -p0
+
+%build
+    %{l_shtool} subst \
+        -e 's;/var/run/redis\.pid;%{l_prefix}/var/redis/run/redis.pid;' \
+        redis.c
+    %{l_make} %{l_mflags -O} \
+        CC="%{l_cc} %{l_cflags -O}"
+
+%install
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/bin \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/redis \
+        $RPM_BUILD_ROOT%{l_prefix}/var/redis/run \
+        $RPM_BUILD_ROOT%{l_prefix}/var/redis/log \
+        $RPM_BUILD_ROOT%{l_prefix}/var/redis/db
+    %{l_shtool} install -c -s -m 755 \
+        redis-server redis-cli redis-benchmark \
+        $RPM_BUILD_ROOT%{l_prefix}/bin/
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE rc.redis} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+    %{l_shtool} install -c -m 644 %{l_value -s -a} \
+        %{SOURCE redis.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/redis/
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/redis/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/redis/*'
+
+%files -f files
+
+%clean
+