memcached.spec 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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_libmemcached 0.3
  28. %define V_cache_memcached 1.24
  29. # package information
  30. Name: memcached
  31. Summary: Memory Caching Daemon
  32. URL: http://www.danga.com/memcached/
  33. Vendor: Brad Fitzpatrick
  34. Packager: OpenPKG Foundation e.V.
  35. Distribution: OpenPKG Community
  36. Class: EVAL
  37. Group: System
  38. License: GPL
  39. Version: %{V_memcached}
  40. Release: 20071002
  41. # list of sources
  42. Source0: http://www.danga.com/memcached/dist/memcached-%{V_memcached}.tar.gz
  43. Source1: http://www.cpan.org/authors/id/B/BR/BRADFITZ/Cache-Memcached-%{V_cache_memcached}.tar.gz
  44. Source2: http://people.freebsd.org/~seanc/libmemcache/libmemcache-%{V_libmemcache}.tar.bz2
  45. Source3: http://download.tangent.org/libmemcached-%{V_libmemcached}.tar.gz
  46. Source4: rc.memcached
  47. Patch0: memcached.patch
  48. # build information
  49. Prefix: %{l_prefix}
  50. BuildRoot: %{l_buildroot}
  51. BuildPreReq: OpenPKG, openpkg >= 20060823, gcc, make, perl, perl-openpkg
  52. PreReq: OpenPKG, openpkg >= 20060823
  53. BuildPreReq: libevent
  54. PreReq: libevent
  55. AutoReq: no
  56. AutoReqProv: no
  57. %description
  58. Memcached is a high-performance, distributed memory object caching
  59. system, generic in nature, but intended for use in speeding up
  60. dynamic web applications by alleviating database load. Additionally,
  61. this package contains Perl and C client APIs to memcached.
  62. %track
  63. prog memcached:memcached = {
  64. version = %{V_memcached}
  65. url = http://www.danga.com/memcached/dist/
  66. regex = memcached-(__VER__)\.tar\.gz
  67. }
  68. prog memcached:cache-memcached = {
  69. version = %{V_cache_memcached}
  70. url = http://www.cpan.org/authors/id/B/BR/BRADFITZ/
  71. regex = Cache-Memcached-(__VER__)\.tar\.gz
  72. }
  73. prog memcached:libmemcache = {
  74. version = %{V_libmemcache}
  75. url = http://people.freebsd.org/~seanc/libmemcache/
  76. regex = libmemcache-(\d+\.\d+(\.\d+)*(\.rc\d+)?)\.tar\.bz2
  77. }
  78. prog memcached:libmemcached = {
  79. version = %{V_libmemcached}
  80. url = http://tangent.org/552/libmemcached.html
  81. regex = libmemcached-(__VER__)\.tar\.gz
  82. }
  83. %prep
  84. %setup -q -c
  85. %setup -q -T -D -a 1
  86. %setup -q -T -D -a 2
  87. %setup -q -T -D -a 3
  88. %patch -p0 -d memcached-%{V_memcached}
  89. %build
  90. # build daemon
  91. ( cd memcached-%{V_memcached}
  92. CC="%{l_cc}" \
  93. CFLAGS="%{l_cflags -O}" \
  94. CPPFLAGS="%{l_cppflags}" \
  95. LDFLAGS="%{l_ldflags}" \
  96. ./configure \
  97. --prefix=%{l_prefix} \
  98. --with-libevent=%{l_prefix}
  99. %{l_make} %{l_mflags -O}
  100. ) || exit $?
  101. # build Perl client API
  102. %{l_prefix}/bin/perl-openpkg prepare
  103. %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build
  104. # build C client APIs
  105. ( cd libmemcache-%{V_libmemcache}
  106. CC="%{l_cc}" \
  107. CFLAGS="%{l_cflags -O}" \
  108. CPPFLAGS="%{l_cppflags}" \
  109. LDFLAGS="%{l_ldflags}" \
  110. ./configure \
  111. --prefix=%{l_prefix} \
  112. --disable-shared
  113. %{l_make} %{l_mflags -O}
  114. ) || exit $?
  115. ( cd libmemcached-%{V_libmemcached}
  116. CC="%{l_cc}" \
  117. CFLAGS="%{l_cflags -O}" \
  118. CPPFLAGS="%{l_cppflags}" \
  119. LDFLAGS="%{l_ldflags}" \
  120. ./configure \
  121. --prefix=%{l_prefix} \
  122. --disable-shared
  123. %{l_make} %{l_mflags -O}
  124. ) || exit $?
  125. %install
  126. rm -rf $RPM_BUILD_ROOT
  127. # install daemon
  128. ( cd memcached-%{V_memcached}
  129. %{l_shtool} mkdir -f -p -m 775 \
  130. $RPM_BUILD_ROOT%{l_prefix}/bin \
  131. $RPM_BUILD_ROOT%{l_prefix}/man/man1
  132. %{l_shtool} install -c -s -m 775 \
  133. memcached $RPM_BUILD_ROOT%{l_prefix}/bin/
  134. %{l_shtool} install -c -m 644 \
  135. doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
  136. ) || exit $?
  137. # install Perl client API
  138. %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install
  139. %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
  140. # install C client APIs
  141. ( cd libmemcache-%{V_libmemcache}
  142. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  143. ) || exit $?
  144. ( cd libmemcached-%{V_libmemcached}
  145. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  146. ) || exit $?
  147. # install daemon run-command script
  148. %{l_shtool} mkdir -f -p -m 755 \
  149. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  150. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  151. %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  152. # install daemon run-command script
  153. %{l_shtool} mkdir -f -p -m 755 \
  154. $RPM_BUILD_ROOT%{l_prefix}/var/memcached
  155. # determine installation files
  156. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  157. %{l_files_std} `cat perl-openpkg-files` \
  158. '%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/memcached'
  159. %files -f files
  160. %clean
  161. rm -rf $RPM_BUILD_ROOT
  162. %post
  163. # after upgrade, restart service
  164. [ $1 -eq 2 ] || exit 0
  165. eval `%{l_rc} memcached status 2>/dev/null`
  166. [ ".$memcached_active" = .yes ] && %{l_rc} memcached restart
  167. exit 0
  168. %preun
  169. # before erase, stop service and remove log files
  170. [ $1 -eq 0 ] || exit 0
  171. %{l_rc} memcached stop 2>/dev/null
  172. rm -f $RPM_INSTALL_PREFIX/var/memcached/* >/dev/null 2>&1 || true
  173. exit 0