]> git.pld-linux.org Git - packages/redis.git/blob - redis.spec
use same make opts for make test
[packages/redis.git] / redis.spec
1 # TODO
2 # - Check for status of man pages http://code.google.com/p/redis/issues/detail?id=202
3 # - use shared jemalloc?
4 #
5 # Conditional build:
6 %if "%{pld_release}" == "ac"
7 %bcond_with             tests           # build without tests
8 %bcond_with             perftools       # google perftools
9 %else
10 %bcond_without  tests           # build without tests
11 %bcond_without  perftools       # google perftools
12 %endif
13
14 %ifnarch %{ix86} %{x8664} ppc
15 # available only on selected architectures
16 %undefine       with_perftools
17 %endif
18
19 Summary:        A persistent key-value database
20 Name:           redis
21 Version:        2.8.24
22 Release:        1
23 License:        BSD
24 Group:          Applications/Databases
25 Source0:        http://download.redis.io/releases/%{name}-%{version}.tar.gz
26 # Source0-md5:  7b6eb6e4ccc050c351df8ae83c55a035
27 Source1:        %{name}.logrotate
28 Source2:        %{name}.init
29 Source3:        %{name}.tmpfiles
30 Patch0:         %{name}.conf.patch
31 Patch1:         %{name}-tcl.patch
32 URL:            http://www.redis.io/
33 %{?with_perftools:BuildRequires:    gperftools-devel}
34 BuildRequires:  jemalloc-static
35 BuildRequires:  rpm >= 4.4.9-56
36 BuildRequires:  rpmbuild(macros) >= 1.202
37 BuildRequires:  sed >= 4.0
38 %{?with_tests:BuildRequires:    tcl >= 8.5}
39 Obsoletes:      redis-doc
40 Conflicts:      logrotate < 3.8.0
41 ExcludeArch:    sparc sparc64 alpha
42 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
44 %description
45 Redis is an advanced key-value store. It is similar to memcached but
46 the data set is not volatile, and values can be strings, exactly like
47 in memcached, but also lists, sets, and ordered sets. All this data
48 types can be manipulated with atomic operations to push/pop elements,
49 add/remove elements, perform server side union, intersection,
50 difference between sets, and so forth. Redis supports different kind
51 of sorting abilities.
52
53 %package server
54 Summary:        Persistent key-value database with network interface
55 Group:          Applications/Databases
56 Requires(post,preun):   /sbin/chkconfig
57 Requires(postun):       /usr/sbin/groupdel
58 Requires(postun):       /usr/sbin/userdel
59 Requires(pre):  /bin/id
60 Requires(pre):  /usr/bin/getgid
61 Requires(pre):  /usr/sbin/groupadd
62 Requires(pre):  /usr/sbin/useradd
63 Requires:       rc-scripts
64 Provides:       group(redis)
65 Provides:       user(redis)
66
67 %description server
68 Redis is a key-value database in a similar vein to memcache but the
69 dataset is non-volatile. Redis additionally provides native support
70 for atomically manipulating and querying data structures such as lists
71 and sets.
72
73 The dataset is stored entirely in memory and periodically flushed to
74 disk.
75
76 %prep
77 %setup -q
78 %patch0 -p1
79 %patch1 -p1
80
81 # Remove integration tests
82 %{__sed} -i -e '/    integration\/replication/d' tests/test_helper.tcl
83 %{__sed} -i -e '/    unit\/memefficiency/d' tests/test_helper.tcl
84
85 # use system jemalloc
86 mv deps/jemalloc{,-local}
87 install -d deps/jemalloc
88 ln -s %{_libdir} deps/jemalloc/lib
89 ln -s %{_includedir} deps/jemalloc/include
90
91 %build
92 %define _make_opts CC="%{__cc}" CFLAGS="%{rpmcflags} -std=c99" DEBUG="" V=1
93
94 %{__make} -j1 all
95
96 %if %{with tests}
97 %{__make} test
98 %endif
99
100 %install
101 rm -rf $RPM_BUILD_ROOT
102 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir}} \
103         $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d} \
104         $RPM_BUILD_ROOT%{_localstatedir}/{{lib,log,run}/%{name},log/archive/%{name}} \
105         $RPM_BUILD_ROOT%{systemdtmpfilesdir}
106
107 %{__make} install \
108         PREFIX=$RPM_BUILD_ROOT%{_prefix}
109
110 # Fix non-standard-executable-perm error
111 chmod a+x $RPM_BUILD_ROOT%{_bindir}/%{name}-*
112
113 # Ensure redis-server location doesn't change
114 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/%{name}-server
115 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/%{name}-sentinel
116
117 # Install misc other
118 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
119 cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
120 cp -p %{name}.conf $RPM_BUILD_ROOT%{_sysconfdir}
121 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
122
123 %clean
124 rm -rf $RPM_BUILD_ROOT
125
126 %pre server
127 %groupadd -g 256 redis
128 %useradd -u 256 -g redis -d %{_sharedstatedir}/redis -s /sbin/nologin -c 'Redis Server' redis
129
130 %post server
131 /sbin/chkconfig --add redis
132 %service redis restart
133
134 %preun server
135 if [ "$1" = 0 ]; then
136         %service redis stop
137         /sbin/chkconfig --del redis
138 fi
139
140 %postun server
141 if [ "$1" = "0" ]; then
142         %userremove redis
143         %groupremove redis
144 fi
145
146 %files
147 %defattr(644,root,root,755)
148 %doc COPYING 00-RELEASENOTES BUGS README
149 %attr(755,root,root) %{_bindir}/redis-benchmark
150 %attr(755,root,root) %{_bindir}/redis-check-aof
151 %attr(755,root,root) %{_bindir}/redis-check-dump
152 %attr(755,root,root) %{_bindir}/redis-cli
153
154 %files server
155 %defattr(644,root,root,755)
156 %config(noreplace) %{_sysconfdir}/%{name}.conf
157 %attr(754,root,root) /etc/rc.d/init.d/%{name}
158 %attr(755,root,root) %{_sbindir}/redis-sentinel
159 %attr(755,root,root) %{_sbindir}/redis-server
160 %config(noreplace) /etc/logrotate.d/%{name}
161 %dir %attr(755,redis,root) %{_localstatedir}/lib/%{name}
162 %dir %attr(755,redis,root) %{_localstatedir}/log/%{name}
163 %dir %attr(755,redis,root) %{_localstatedir}/log/archive/%{name}
164 %dir %attr(755,redis,root) %{_localstatedir}/run/%{name}
165 %{systemdtmpfilesdir}/%{name}.conf
This page took 0.182024 seconds and 4 git commands to generate.