memcached.spec 6.1 KB

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