소스 검색

new package: memcached 1.1.11 (Memory Caching Daemon)

Ralf S. Engelschall 21 년 전
부모
커밋
f436f9372e
2개의 변경된 파일199개의 추가작업 그리고 0개의 파일을 삭제
  1. 153 0
      memcached/memcached.spec
  2. 46 0
      memcached/rc.memcached

+ 153 - 0
memcached/memcached.spec

@@ -0,0 +1,153 @@
+##
+##  memcached.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2004 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
+##  Copyright (c) 2000-2004 Cable & Wireless <http://www.cw.com/>
+##
+##  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 versions
+%define       V_memcached       1.1.11
+%define       V_libmemcache     1.0.2
+%define       V_cache_memcached 1.14
+
+#   package information
+Name:         memcached
+Summary:      Memory Caching Daemon
+URL:          http://www.danga.com/memcached/
+Vendor:       Brad Fitzpatrick
+Packager:     The OpenPKG Project
+Distribution: OpenPKG
+Class:        EVAL
+Group:        System
+License:      GPL
+Version:      1.1.11
+Release:      20041208
+
+#   list of sources
+Source0:      http://www.danga.com/memcached/dist/memcached-%{V_memcached}.tar.gz
+Source1:      http://www.danga.com/memcached/dist/Cache-Memcached-%{V_cache_memcached}.tar.gz
+Source2:      http://people.freebsd.org/~seanc/libmemcache/libmemcache-%{V_libmemcache}.tar.bz2
+Source3:      rc.memcached
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20040130, gcc, make, pmk
+PreReq:       OpenPKG, openpkg >= 20040130
+BuildPreReq:  libevent
+PreReq:       libevent
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    Memcached is a high-performance, distributed memory object caching
+    system, generic in nature, but intended for use in speeding up
+    dynamic web applications by alleviating database load. Additionally,
+    this package contains Perl and C client APIs to memcached.
+
+%track
+    prog memcached:memcached = {
+        version   = %{V_memcached}
+        url       = http://www.danga.com/memcached/download.bml
+        regex     = memcached-(__VER__)\.tar\.gz
+    }
+    prog memcached:cache-memcached = {
+        version   = %{V_cache_memcached}
+        url       = http://www.danga.com/memcached/apis.bml
+        regex     = Cache-Memcached-(__VER__)\.tar\.gz
+    }
+    prog memcached:libmemcache = {
+        version   = %{V_libmemcache}
+        url       = http://people.freebsd.org/~seanc/libmemcache/
+        regex     = libmemcache-(__VER__)\.tar\.bz2
+    }
+
+%prep
+    %setup -q -c
+    %setup -q -T -D -a 1
+    %setup -q -T -D -a 2
+
+%build
+    #   build daemon
+    ( cd memcached-%{V_memcached}
+      CC="%{l_cc}" \
+      CFLAGS="%{l_cflags -O}" \
+      CPPFLAGS="%{l_cppflags}" \
+      LDFLAGS="%{l_ldflags}" \
+      ./configure \
+          --prefix=%{l_prefix} \
+          --with-libevent=%{l_prefix}
+      %{l_make} %{l_mflags -O}
+    ) || exit $?
+
+    #   build Perl client API
+    %{l_prefix}/bin/perl-openpkg prepare
+    %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build
+
+    #   build C client API
+    ( cd libmemcache-%{V_libmemcache}
+      %{l_prefix}/bin/pmk >/dev/null
+      %{l_make} %{l_mflags -O}
+    ) || exit $?
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install daemon
+    ( cd memcached-%{V_memcached}
+      %{l_shtool} mkdir -f -p -m 775 \
+          $RPM_BUILD_ROOT%{l_prefix}/bin \
+          $RPM_BUILD_ROOT%{l_prefix}/man/man1
+      %{l_shtool} install -c -s -m 775 \
+          memcached $RPM_BUILD_ROOT%{l_prefix}/bin/
+      %{l_shtool} install -c -m 644 \
+          doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
+    ) || exit $?
+
+    #   install Perl client API
+    %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install
+    %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
+
+    #   install C client API
+    ( cd libmemcache-%{V_libmemcache}
+      %{l_shtool} mkdir -f -p -m 755 \
+          $RPM_BUILD_ROOT%{l_prefix}/lib \
+          $RPM_BUILD_ROOT%{l_prefix}/include
+      %{l_shtool} install -c -m 644 \
+          libmemcache.a $RPM_BUILD_ROOT%{l_prefix}/lib/
+      %{l_shtool} install -c -m 644 \
+          memcache.h $RPM_BUILD_ROOT%{l_prefix}/include/
+    ) || exit $?
+
+    #   install daemon run-command script
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} `cat perl-openpkg-files`
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+

+ 46 - 0
memcached/rc.memcached

@@ -0,0 +1,46 @@
+#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
+##
+##  rc.memcached -- Run-Commands
+##
+
+%config
+    memcached_enable="$openpkg_rc_def"
+    memcached_flags=""
+    memcached_log_prolog="true"
+    memcached_log_epilog="true"
+    memcached_log_numfiles="10"
+    memcached_log_minsize="1M"
+    memcached_log_complevel="9"
+
+%status -u @l_susr@ -o
+    memcached_usable="no"
+    memcached_active="no"
+    echo "memcached_enable=\"$memcached_enable\""
+    echo "memcached_usable=\"$memcached_usable\""
+    echo "memcached_active=\"$memcached_active\""
+
+%start -p 100 -u @l_susr@
+    rcService memcached enable yes || exit 0
+    rcService memcached active yes && exit 0
+    @l_prefix@/bin/memcached ${memcached_flags}
+
+%stop -p 900 -u @l_susr@
+    rcService memcached enable yes || exit 0
+    rcService memcached active no  && exit 0
+    #   FIXME
+    sleep 2
+
+%restart -p 100 -u @l_susr@
+    rcService memcached enable yes || exit 0
+    rcService memcached active no  && exit 0
+    rc memcached stop start
+
+%daily -u @l_susr@
+    rcService memcached enable yes || exit 0
+    shtool rotate -f \
+        -n ${memcached_log_numfiles} -s ${memcached_log_minsize} -d \
+        -z ${memcached_log_complevel} -m 644 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${memcached_log_prolog}" \
+        -E "${memcached_log_epilog} && rc memcached reload" \
+        @l_prefix@/var/memcached/memcached.log
+