memcached.spec 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. ##
  2. ## memcached.spec -- OpenPKG RPM Package Specification
  3. ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
  4. ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
  5. ##
  6. ## Permission to use, copy, modify, and distribute this software for
  7. ## any purpose with or without fee is hereby granted, provided that
  8. ## the above copyright notice and this permission notice appear in all
  9. ## copies.
  10. ##
  11. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  12. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  13. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  14. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  15. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  16. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  17. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  18. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  19. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  20. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  21. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  22. ## SUCH DAMAGE.
  23. ##
  24. # package versions
  25. %define V_memcached 1.2.3
  26. %define V_libmemcache 1.4.0.rc2
  27. %define V_cache_memcached 1.24
  28. # package information
  29. Name: memcached
  30. Summary: Memory Caching Daemon
  31. URL: http://www.danga.com/memcached/
  32. Vendor: Brad Fitzpatrick
  33. Packager: OpenPKG Foundation e.V.
  34. Distribution: OpenPKG Community
  35. Class: EVAL
  36. Group: System
  37. License: GPL
  38. Version: %{V_memcached}
  39. Release: 20070929
  40. # list of sources
  41. Source0: http://www.danga.com/memcached/dist/memcached-%{V_memcached}.tar.gz
  42. Source1: http://www.cpan.org/authors/id/B/BR/BRADFITZ/Cache-Memcached-%{V_cache_memcached}.tar.gz
  43. Source2: http://people.freebsd.org/~seanc/libmemcache/libmemcache-%{V_libmemcache}.tar.bz2
  44. Source3: rc.memcached
  45. Patch0: memcached.patch
  46. # build information
  47. Prefix: %{l_prefix}
  48. BuildRoot: %{l_buildroot}
  49. BuildPreReq: OpenPKG, openpkg >= 20060823, gcc, make, perl, perl-openpkg
  50. PreReq: OpenPKG, openpkg >= 20060823
  51. BuildPreReq: libevent
  52. PreReq: libevent
  53. AutoReq: no
  54. AutoReqProv: no
  55. %description
  56. Memcached is a high-performance, distributed memory object caching
  57. system, generic in nature, but intended for use in speeding up
  58. dynamic web applications by alleviating database load. Additionally,
  59. this package contains Perl and C client APIs to memcached.
  60. %track
  61. prog memcached:memcached = {
  62. version = %{V_memcached}
  63. url = http://www.danga.com/memcached/dist/
  64. regex = memcached-(__VER__)\.tar\.gz
  65. }
  66. prog memcached:cache-memcached = {
  67. version = %{V_cache_memcached}
  68. url = http://www.cpan.org/authors/id/B/BR/BRADFITZ/
  69. regex = Cache-Memcached-(__VER__)\.tar\.gz
  70. }
  71. prog memcached:libmemcache = {
  72. version = %{V_libmemcache}
  73. url = http://people.freebsd.org/~seanc/libmemcache/
  74. regex = libmemcache-(\d+\.\d+(\.\d+)*(\.rc\d+)?)\.tar\.bz2
  75. }
  76. %prep
  77. %setup -q -c
  78. %setup -q -T -D -a 1
  79. %setup -q -T -D -a 2
  80. %patch -p0 -d memcached-%{V_memcached}
  81. %build
  82. # build daemon
  83. ( cd memcached-%{V_memcached}
  84. CC="%{l_cc}" \
  85. CFLAGS="%{l_cflags -O}" \
  86. CPPFLAGS="%{l_cppflags}" \
  87. LDFLAGS="%{l_ldflags}" \
  88. ./configure \
  89. --prefix=%{l_prefix} \
  90. --with-libevent=%{l_prefix}
  91. %{l_make} %{l_mflags -O}
  92. ) || exit $?
  93. # build Perl client API
  94. %{l_prefix}/bin/perl-openpkg prepare
  95. %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build
  96. # build C client API
  97. ( cd libmemcache-%{V_libmemcache}
  98. CC="%{l_cc}" \
  99. CFLAGS="%{l_cflags -O}" \
  100. CPPFLAGS="%{l_cppflags}" \
  101. LDFLAGS="%{l_ldflags}" \
  102. ./configure \
  103. --prefix=%{l_prefix} \
  104. --disable-shared
  105. %{l_make} %{l_mflags -O}
  106. ) || exit $?
  107. %install
  108. rm -rf $RPM_BUILD_ROOT
  109. # install daemon
  110. ( cd memcached-%{V_memcached}
  111. %{l_shtool} mkdir -f -p -m 775 \
  112. $RPM_BUILD_ROOT%{l_prefix}/bin \
  113. $RPM_BUILD_ROOT%{l_prefix}/man/man1
  114. %{l_shtool} install -c -s -m 775 \
  115. memcached $RPM_BUILD_ROOT%{l_prefix}/bin/
  116. %{l_shtool} install -c -m 644 \
  117. doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
  118. ) || exit $?
  119. # install Perl client API
  120. %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install
  121. %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
  122. # install C client API
  123. ( cd libmemcache-%{V_libmemcache}
  124. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  125. ) || exit $?
  126. # install daemon run-command script
  127. %{l_shtool} mkdir -f -p -m 755 \
  128. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  129. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  130. %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  131. # install daemon run-command script
  132. %{l_shtool} mkdir -f -p -m 755 \
  133. $RPM_BUILD_ROOT%{l_prefix}/var/memcached
  134. # determine installation files
  135. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  136. %{l_files_std} `cat perl-openpkg-files` \
  137. '%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/memcached'
  138. %files -f files
  139. %clean
  140. rm -rf $RPM_BUILD_ROOT
  141. %post
  142. # after upgrade, restart service
  143. [ $1 -eq 2 ] || exit 0
  144. eval `%{l_rc} memcached status 2>/dev/null`
  145. [ ".$memcached_active" = .yes ] && %{l_rc} memcached restart
  146. exit 0
  147. %preun
  148. # before erase, stop service and remove log files
  149. [ $1 -eq 0 ] || exit 0
  150. %{l_rc} memcached stop 2>/dev/null
  151. rm -f $RPM_INSTALL_PREFIX/var/memcached/* >/dev/null 2>&1 || true
  152. exit 0