memcached/memcached.spec

changeset 764
b3f4be54aeb4
parent 379
5974eb964eec
equal deleted inserted replaced
1:1482adcd0c65 2:9016f91648b8
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE. 21 ## SUCH DAMAGE.
22 ## 22 ##
23 23
24 # package versions 24 # package versions
25 %define V_memcached 1.4.6 25 %define V_memcached 1.4.14
26 %define V_libmemcached 0.48 26 %define V_libmemcached 1.0.10
27 %define V_cache_memcached 1.28 27 %define V_cache_memcached 1.28
28 28
29 # package information 29 # package information
30 Name: memcached 30 Name: memcached
31 Summary: Memory Caching Daemon 31 Summary: Memory Caching Daemon
35 Distribution: OpenPKG Community 35 Distribution: OpenPKG Community
36 Class: EVAL 36 Class: EVAL
37 Group: System 37 Group: System
38 License: GPL 38 License: GPL
39 Version: %{V_memcached} 39 Version: %{V_memcached}
40 Release: 20110914 40 Release: 20120800
41 41
42 # list of sources 42 # list of sources
43 Source0: http://memcached.googlecode.com/files/memcached-%{V_memcached}.tar.gz 43 Source0: http://memcached.googlecode.com/files/memcached-%{V_memcached}.tar.gz
44 Source1: http://download.tangent.org/libmemcached-%{V_libmemcached}.tar.gz 44 Source1: http://download.tangent.org/libmemcached-%{V_libmemcached}.tar.gz
45 Source2: http://www.cpan.org/authors/id/B/BR/BRADFITZ/Cache-Memcached-%{V_cache_memcached}.tar.gz 45 Source2: http://www.cpan.org/authors/id/B/BR/BRADFITZ/Cache-Memcached-%{V_cache_memcached}.tar.gz
46 Source3: rc.memcached 46 Source3: rc.memcached
47 Patch0: memcached.patch 47 Patch0: memcached.patch
48 48
49 # build information 49 # build information
50 Prefix: %{l_prefix} 50 BuildPreReq: OpenPKG, openpkg >= 20100101, gcc, make, perl, perl-openpkg
51 BuildRoot: %{l_buildroot} 51 PreReq: OpenPKG, openpkg >= 20100101
52 BuildPreReq: OpenPKG, openpkg >= 20060823, gcc, make, perl, perl-openpkg 52 BuildPreReq: libevent, sasl, libexecinfo
53 PreReq: OpenPKG, openpkg >= 20060823 53 PreReq: libevent, sasl, libexecinfo
54 BuildPreReq: libevent, sasl
55 PreReq: libevent, sasl
56 AutoReq: no
57 AutoReqProv: no
58 54
59 %description 55 %description
60 Memcached is a high-performance, distributed memory object caching 56 Memcached is a high performance, distributed memory object caching
61 system, generic in nature, but intended for use in speeding up 57 system, generic in nature, but intended for use in speeding up
62 dynamic web applications by alleviating database load. Additionally, 58 dynamic web applications by alleviating database load. Additionally,
63 this package contains Perl and C client APIs to memcached. 59 this package contains Perl and C client APIs to memcached.
64 60
65 %track 61 %track
82 %prep 78 %prep
83 %setup -q -c 79 %setup -q -c
84 %setup -q -T -D -a 1 80 %setup -q -T -D -a 1
85 %setup -q -T -D -a 2 81 %setup -q -T -D -a 2
86 %patch -p0 82 %patch -p0
83 %{l_shtool} subst \
84 -e 's/b = \(__sync_sub_and_fetch(\&a, 2);\)/return \1/' \
85 memcached-%{V_memcached}/configure
87 %{l_shtool} subst \ 86 %{l_shtool} subst \
88 -e 's; *-Werror;;g' \ 87 -e 's; *-Werror;;g' \
89 memcached-%{V_memcached}/configure 88 memcached-%{V_memcached}/configure
90 %{l_shtool} subst \ 89 %{l_shtool} subst \
91 -e 's;\(libdir="\${libdir}\)/\${isainfo_k};\1;g' \ 90 -e 's;\(libdir="\${libdir}\)/\${isainfo_k};\1;g' \
112 %{l_make} %{l_mflags -O} 111 %{l_make} %{l_mflags -O}
113 ) || exit $? 112 ) || exit $?
114 113
115 # build C client API 114 # build C client API
116 ( cd libmemcached-%{V_libmemcached} 115 ( cd libmemcached-%{V_libmemcached}
116 ( echo "ac_cv_func_malloc_0_nonnull=yes"
117 echo "ac_cv_func_realloc_0_nonnull=yes"
118 echo "ac_cv_env_CXXFLAGS_set=barf"
119 echo "ac_cv_env_CFLAGS_set=barf"
120 echo "ac_cv_header_priv_h=no"
121 echo "ac_cv_header_umem_h=no"
122 ) >config.cache
117 CC="%{l_cc}" \ 123 CC="%{l_cc}" \
118 CFLAGS="%{l_cflags -O}" \ 124 CFLAGS="%{l_cflags -O}" \
119 CPPFLAGS="%{l_cppflags}" \ 125 CPPFLAGS="%{l_cppflags}" \
120 LDFLAGS="%{l_ldflags}" \ 126 LDFLAGS="%{l_ldflags}" \
121 ./configure \ 127 ./configure \
128 --cache-file=./config.cache \
122 --prefix=%{l_prefix} \ 129 --prefix=%{l_prefix} \
123 --mandir=%{l_prefix}/man \ 130 --mandir=%{l_prefix}/man \
124 --without-memcached \ 131 --without-memcached \
125 --enable-libevent \ 132 --enable-libevent \
126 --with-libevent-prefix=%{l_prefix} \ 133 --with-libevent-prefix=%{l_prefix} \
134 # build Perl client API 141 # build Perl client API
135 %{l_prefix}/bin/perl-openpkg prepare 142 %{l_prefix}/bin/perl-openpkg prepare
136 %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build 143 %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} configure build
137 144
138 %install 145 %install
139 # remove build cruft
140 rm -rf $RPM_BUILD_ROOT
141
142 # install daemon 146 # install daemon
143 ( cd memcached-%{V_memcached} 147 ( cd memcached-%{V_memcached}
144 %{l_shtool} mkdir -f -p -m 775 \ 148 %{l_shtool} mkdir -f -p -m 775 \
145 $RPM_BUILD_ROOT%{l_prefix}/bin \ 149 $RPM_BUILD_ROOT%{l_prefix}/bin \
146 $RPM_BUILD_ROOT%{l_prefix}/man/man1 150 $RPM_BUILD_ROOT%{l_prefix}/man/man1
150 doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/ 154 doc/memcached.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
151 ) || exit $? 155 ) || exit $?
152 156
153 # install C client API 157 # install C client API
154 ( cd libmemcached-%{V_libmemcached} 158 ( cd libmemcached-%{V_libmemcached}
155 %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" 159 %{l_make} %{l_mflags} install DESTDIR="$RPM_BUILD_ROOT"
160 ) || exit $?
161
162 # correct header names and references
163 ( cd $RPM_BUILD_ROOT%{l_prefix}/include
164 mv libmemcachedutil-[0-9]* libmemcachedutil
165 mv libmemcachedprotocol-[0-9]* libmemcachedprotocol
166 rm -rf libhashkit && mv libhashkit-[0-9]* libhashkit
167 rm -rf libmemcached && mv libmemcached-[0-9]* libmemcached
168 find . -type f -print | xargs %{l_shtool} subst \
169 -e 's;\(#include <lib[^\-][^\-]*\)-[0-9\.][0-9\.]*;\1;g'
156 ) || exit $? 170 ) || exit $?
157 171
158 # install Perl client API 172 # install Perl client API
159 %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install 173 %{l_prefix}/bin/perl-openpkg -d Cache-Memcached-%{V_cache_memcached} install
160 %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup 174 %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
161 175
162 # install daemon run-command script 176 # install daemon runcommand script
163 %{l_shtool} mkdir -f -p -m 755 \ 177 %{l_shtool} mkdir -f -p -m 755 \
164 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d 178 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
165 %{l_shtool} install -c -m 755 %{l_value -s -a} \ 179 %{l_shtool} install -c -m 755 %{l_value -s -a} \
166 %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ 180 %{SOURCE rc.memcached} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
167 181
168 # install daemon run-command script 182 # create directory hierarchy for daemon
169 %{l_shtool} mkdir -f -p -m 755 \ 183 %{l_shtool} mkdir -f -p -m 755 \
170 $RPM_BUILD_ROOT%{l_prefix}/var/memcached 184 $RPM_BUILD_ROOT%{l_prefix}/var/memcached
171 185
172 # determine installation files 186 # determine installation files
173 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ 187 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
175 '%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/memcached' 189 '%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/memcached'
176 190
177 %files -f files 191 %files -f files
178 192
179 %clean 193 %clean
180 rm -rf $RPM_BUILD_ROOT
181 194
182 %post 195 %post
183 # after upgrade, restart service 196 # after upgrade, restart service
184 [ $1 -eq 2 ] || exit 0 197 [ $1 -eq 2 ] || exit 0
185 eval `%{l_rc} memcached status 2>/dev/null` 198 eval `%{l_rc} memcached status 2>/dev/null`

mercurial