2 # - /etc/sysconfig/nginx file
3 # - missing perl build/install requires
4 # - prepare pld style like nginx.conf
5 # - maybe -with-cpu-opt=CPU (pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64)
7 # Conditional build for nginx:
8 %bcond_without light # don't build light version
9 %bcond_without mail # don't build imap/mail proxy
10 %bcond_without perl # don't build with perl module
11 %bcond_without addition # adds module
12 %bcond_without dav # WebDAV
13 %bcond_without flv # FLV stream
14 %bcond_without sub # ngx_http_sub_module
15 %bcond_without poll # poll
16 %bcond_without realip # real ip (behind proxy)
17 %bcond_without rtsig # rtsig
18 %bcond_without select # select
19 %bcond_without status # stats module
20 %bcond_without ssl # ssl support
21 %bcond_with http_browser # header "User-agent" parser
23 Summary: High perfomance HTTP and reverse proxy server
24 Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajności
29 Group: Networking/Daemons
30 Source0: http://sysoev.ru/nginx/%{name}-%{version}.tar.gz
31 # Source0-md5: a78be74b4fd8e009545ef02488fcac86
32 Source1: http://www.nginx.eu/favicon.ico
33 # Source1-md5: 2aaf2115c752cbdbfb8a2f0b3c3189ab
34 Source2: http://www.nginx.eu/download/proxy.conf
35 # Source2-md5: f5263ae01c2edb18f46d5d1df2d3a5cd
36 Source3: %{name}.logrotate
38 Source5: %{name}-light.conf
39 Source6: %{name}-light.monitrc
40 Source7: %{name}-mail.conf
41 Source8: %{name}-mail.monitrc
42 Source9: %{name}-perl.conf
43 Source10: %{name}-perl.monitrc
44 Source11: %{name}-standard.conf
45 Source12: %{name}-standard.monitrc
46 Patch0: %{name}-config.patch
47 URL: http://nginx.net/
48 BuildRequires: mailcap
49 BuildRequires: openssl-devel
50 BuildRequires: pcre-devel
51 %{?with_perl:BuildRequires: perl-CGI}
52 %{?with_perl:BuildRequires: perl-devel}
53 %{?with_perl:BuildRequires: rpm-perlprov}
54 BuildRequires: rpmbuild(macros) >= 1.268
55 BuildRequires: zlib-devel
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
66 Requires: rc-scripts >= 0.2.0
69 Provides: group(nginx)
72 Conflicts: logrotate < 3.7-4
73 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75 %define _sysconfdir /etc/%{name}
76 %define _nginxdir /home/services/%{name}
79 Nginx ("engine x") is a high-performance HTTP server and reverse
80 proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor
81 Sysoev for Rambler.ru, Russia's second-most visited website, where it
82 has been running in production for over two and a half years. Igor has
83 released the source code under a BSD-like license. Although still in
84 beta, Nginx is known for its stability, rich feature set, simple
85 configuration, and low resource consumption.
87 Common files for Nginx daemon.
89 %description -l pl.UTF-8
90 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy
91 a także IMAP/POP3 proxy. Nginx został napisany przez Igora Sysoev'a
92 na potrzeby serwisu Rambler.ru. Jest to drugi pod względem ilości
93 odwiedzin serwis w Rosji i działa od ponad dwóch i pół roku. Igor
94 opublikował źródła na licencji BSD. Mimo, że projekt jest ciągle
95 w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków,
96 prostej konfiguracji oraz maÅej "zasobożernoÅi".
98 Niezb¿dne pliki dla Nginx.
101 Summary: High perfomance HTTP and reverse proxy server
102 Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajności
104 Group: Networking/Daemons
105 URL: http://nginx.net/
106 Requires(post,preun): /sbin/chkconfig
107 Requires(postun): /usr/sbin/groupdel
108 Requires(postun): /usr/sbin/userdel
109 Requires: %{name} = %{version}-%{release}
113 Provides: group(http)
114 Provides: group(nginx)
115 Provides: user(nginx)
118 #Conflicts: %{name}-mail
119 #Conflicts: %{name}-perl
122 The smallest, but also the fastest Nginx edition. No additional
123 modules, no Perl, no DAV, no FLV, no IMAP, POP3, SMTP proxy.
125 %description light -l pl.UTF-8
126 Najmniejsza i najszybsza wersja Nginx. Bez wsparcia dla Perla,
127 DAV, FLV oraz IMAP, POP3, SMTP proxy.
130 Summary: High perfomance HTTP and reverse proxy server
131 Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajności
133 Group: Networking/Daemons
134 URL: http://nginx.net/
135 Requires(post,preun): /sbin/chkconfig
136 Requires(postun): /usr/sbin/groupdel
137 Requires(postun): /usr/sbin/userdel
138 Requires: %{name} = %{version}-%{release}
140 Provides: group(http)
141 Provides: group(nginx)
142 Provides: user(nginx)
145 #Conflicts: %{name}-light
146 #Conflicts: %{name}-mail
149 Nginx with Perl support. Mail modules not included.
151 %description perl -l pl.UTF-8
152 Nignx z obsługą Perla. Bez wsparcia dla modułów poczty.
155 Summary: High perfomance HTTP and reverse proxy server
156 Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajności
158 Group: Networking/Daemons
159 URL: http://nginx.net/
160 Requires(post,preun): /sbin/chkconfig
161 Requires(postun): /usr/sbin/groupdel
162 Requires(postun): /usr/sbin/userdel
163 Requires: %{name} = %{version}-%{release}
167 Provides: group(http)
168 Provides: group(nginx)
169 Provides: user(nginx)
172 #Conflicts: %{name}-light
173 #Conflicts: %{name}-perl
176 Nginx with mail support. Only mail modules included.
178 %description mail -l pl.UTF-8
179 Nginx ze wsparciem tylko dla modułów poczty.
182 Summary: Configuration files and documentation for Nginx
183 Summary(pl.UTF-8): Pliki konfiguracyjne i dokumentacja dla Nginx
185 Group: Networking/Daemons
186 URL: http://nginx.net/
187 Requires(post,preun): /sbin/chkconfig
188 Requires(postun): /usr/sbin/groupdel
189 Requires(postun): /usr/sbin/userdel
190 Requires: %{name} = %{version}-%{release}
191 Conflicts: logrotate < 3.7-4
193 %description standard
194 Nginx ("engine x") is a high-performance HTTP server and reverse
195 proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor
196 Sysoev for Rambler.ru, Russia's second-most visited website, where it
197 has been running in production for over two and a half years. Igor has
198 released the source code under a BSD-like license. Although still in
199 beta, Nginx is known for its stability, rich feature set, simple
200 configuration, and low resource consumption.
202 This is standard nginx version, without perl support and imap, pop3,
205 %description standard -l pl.UTF-8
206 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy
207 a także IMAP/POP3 proxy. Nginx został napisany przez Igora Sysoev'a
208 na potrzeby serwisu Rambler.ru. Jest to drugi pod względem ilości
209 odwiedzin serwis w Rosji i działa od ponad dwóch i pół roku. Igor
210 opublikował źródła na licencji BSD. Mimo, że projekt jest ciągle
211 w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków,
212 prostej konfiguracji oraz maÅej "zasobożernoÅi".
214 To jest standardowa wersja nginx, bez obs?ugi perla oraz proxy dla
222 # NB: not autoconf generated configure
223 cp -f configure auto/
227 --prefix=%{_prefix} \
228 --sbin-path=%{_sbindir}/%{name}-perl \
229 --conf-path=%{_sysconfdir}/%{name}-perl.conf \
230 --error-log-path=%{_localstatedir}/log/%{name}/%{name}-perl_error.log \
231 --http-log-path=%{_localstatedir}/log/%{name}/%{name}-perl_access.log \
232 --pid-path=%{_localstatedir}/run/%{name}-perl.pid \
233 --lock-path=%{_localstatedir}/lock/subsys/%{name}-perl \
236 --with-http_perl_module \
237 --without-mail_pop3_module \
238 --without-mail_imap_module \
239 --without-mail_smtp_module \
240 %{?with_addition:--with-http_addition_module} \
241 %{?with_dav:--with-http_dav_module} \
242 %{?with_flv:--with-http_flv_module} \
243 %{?with_sub:--with-http_sub_module} \
244 %{?with_poll:--with-poll_module} \
245 %{?with_realip:--with-http_realip_module} \
246 %{?with_rtsig:--with-rtsig_module} \
247 %{?with_select:--with-select_module} \
248 %{?with_status:--with-http_stub_status_module} \
249 %{?with_ssl:--with-http_ssl_module} \
250 %{!?with_http_browser:--without-http_browser_module} \
251 --http-client-body-temp-path=%{_localstatedir}/cache/%{name}-perl/client_body_temp \
252 --http-proxy-temp-path=%{_localstatedir}/cache/%{name}-perl/proxy_temp \
253 --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}-perl/fastcgi_temp \
254 --with-cc="%{__cc}" \
255 --with-cc-opt="%{rpmcflags}" \
256 --with-ld-opt="%{rpmldflags}"
258 mv -f objs/nginx contrib/nginx-perl
259 mv -f objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.bs contrib/nginx.bs
260 mv -f objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so contrib/nginx.so
261 mv -f objs/src/http/modules/perl/nginx.pm contrib/nginx.pm
267 --prefix=%{_prefix} \
268 --sbin-path=%{_sbindir}/%{name}-mail \
269 --conf-path=%{_sysconfdir}/%{name}-mail.conf \
270 --error-log-path=%{_localstatedir}/log/%{name}/%{name}-mail_error.log \
271 --http-log-path=%{_localstatedir}/log/%{name}/%{name}-mail_access.log \
272 --pid-path=%{_localstatedir}/run/%{name}-mail.pid \
273 --lock-path=%{_localstatedir}/lock/subsys/%{name}-mail \
278 --with-mail_ssl_module \
280 %{?with_poll:--with-poll_module} \
281 %{?with_rtsig:--with-rtsig_module} \
282 %{?with_select:--with-select_module} \
283 --http-client-body-temp-path=%{_localstatedir}/cache/%{name}-mail/client_body_temp \
284 --http-proxy-temp-path=%{_localstatedir}/cache/%{name}-mail/proxy_temp \
285 --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}-mail/fastcgi_temp \
286 --with-cc="%{__cc}" \
287 --with-cc-opt="%{rpmcflags}" \
288 --with-ld-opt="%{rpmldflags}" \
289 %{?debug:--with-debug}
291 mv -f objs/nginx contrib/nginx-mail
297 --prefix=%{_prefix} \
298 --sbin-path=%{_sbindir}/%{name}-light \
299 --conf-path=%{_sysconfdir}/%{name}-light.conf \
300 --error-log-path=%{_localstatedir}/log/%{name}/%{name}-light_error.log \
301 --http-log-path=%{_localstatedir}/log/%{name}/%{name}-light_access.log \
302 --pid-path=%{_localstatedir}/run/%{name}-light.pid \
303 --lock-path=%{_localstatedir}/lock/subsys/%{name}-light \
306 %{?with_poll:--with-poll_module} \
307 %{?with_realip:--with-http_realip_module} \
308 %{?with_rtsig:--with-rtsig_module} \
309 %{?with_select:--with-select_module} \
310 %{?with_status:--with-http_stub_status_module} \
311 %{?with_ssl:--with-http_ssl_module} \
312 --without-http_browser_module \
313 --without-mail_pop3_module \
314 --without-mail_imap_module \
315 --without-mail_smtp_module \
316 --http-client-body-temp-path=%{_localstatedir}/cache/%{name}-light/client_body_temp \
317 --http-proxy-temp-path=%{_localstatedir}/cache/%{name}-light/proxy_temp \
318 --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}-light/fastcgi_temp \
319 --with-cc="%{__cc}" \
320 --with-cc-opt="%{rpmcflags}" \
321 --with-ld-opt="%{rpmldflags}" \
322 %{?debug:--with-debug}
324 mv -f objs/nginx contrib/nginx-light
329 --prefix=%{_prefix} \
330 --sbin-path=%{_sbindir}/%{name}-standard \
331 --conf-path=%{_sysconfdir}/%{name}.conf \
332 --error-log-path=%{_localstatedir}/log/%{name}/%{name}-standard_error.log \
333 --http-log-path=%{_localstatedir}/log/%{name}/%{name}-standard_access.log \
334 --pid-path=%{_localstatedir}/run/%{name}-standard.pid \
335 --lock-path=%{_localstatedir}/lock/subsys/%{name}-standard \
338 %{?with_addition:--with-http_addition_module} \
339 %{?with_dav:--with-http_dav_module} \
340 %{?with_flv:--with-http_flv_module} \
341 %{?with_sub:--with-http_sub_module} \
342 %{?with_poll:--with-poll_module} \
343 %{?with_realip:--with-http_realip_module} \
344 %{?with_rtsig:--with-rtsig_module} \
345 %{?with_select:--with-select_module} \
346 %{?with_status:--with-http_stub_status_module} \
347 %{?with_ssl:--with-http_ssl_module} \
348 %{!?with_http_browser:--without-http_browser_module} \
349 --http-client-body-temp-path=%{_localstatedir}/cache/%{name}-standard/client_body_temp \
350 --http-proxy-temp-path=%{_localstatedir}/cache/%{name}-standard/proxy_temp \
351 --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}-standard/fastcgi_temp \
352 --with-cc="%{__cc}" \
353 --with-cc-opt="%{rpmcflags}" \
354 --with-ld-opt="%{rpmldflags}" \
355 %{?debug:--with-debug}
360 rm -rf $RPM_BUILD_ROOT
361 install -d $RPM_BUILD_ROOT/etc/rc.d/init.d \
362 $RPM_BUILD_ROOT%{_nginxdir}/{cgi-bin,html,errors} \
363 $RPM_BUILD_ROOT%{_localstatedir}/log/{%{name},archive/%{name}} \
364 $RPM_BUILD_ROOT%{_localstatedir}/cache/{%{name}-standard,%{name}-perl,%{name}-mail,%{name}-light} \
365 $RPM_BUILD_ROOT%{_localstatedir}/lock/subsys/{%{name}-standard,%{name}-perl,%{name}-mail,%{name}-light} \
366 $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}} \
367 $RPM_BUILD_ROOT/etc/{logrotate.d,monit}
369 #install conf/* $RPM_BUILD_ROOT%{_sysconfdir}
370 install html/index.html $RPM_BUILD_ROOT%{_nginxdir}/html
371 install html/50x.html $RPM_BUILD_ROOT%{_nginxdir}/errors
372 install %{SOURCE1} $RPM_BUILD_ROOT%{_nginxdir}/html/favicon.ico
373 install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/proxy.conf
374 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
375 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/mime.types
376 install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-standard.conf
377 install %{SOURCE12} $RPM_BUILD_ROOT/etc/monit/%{name}-standard.monitrc
378 install objs/%{name} $RPM_BUILD_ROOT%{_sbindir}/%{name}-standard
379 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-standard
382 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-light.conf
383 install %{SOURCE6} $RPM_BUILD_ROOT/etc/monit/%{name}-light.monitrc
384 install contrib/nginx-light $RPM_BUILD_ROOT%{_sbindir}/%{name}-light
389 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-mail.conf
390 install %{SOURCE8} $RPM_BUILD_ROOT/etc/monit/%{name}-mail.monitrc
391 install contrib/nginx-mail $RPM_BUILD_ROOT%{_sbindir}/%{name}-mail
395 install -d $RPM_BUILD_ROOT{%{perl_vendorarch},%{perl_vendorarch}/auto/%{name}}
396 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-perl.conf
397 install %{SOURCE8} $RPM_BUILD_ROOT/etc/monit/%{name}-perl.monitrc
398 install contrib/nginx.pm $RPM_BUILD_ROOT%{perl_vendorarch}/%{name}.pm
399 install contrib/nginx.so $RPM_BUILD_ROOT%{perl_vendorarch}/auto/%{name}/%{name}.so
400 install contrib/nginx.bs $RPM_BUILD_ROOT%{perl_vendorarch}/auto/%{name}/%{name}.bs
401 install contrib/nginx-perl $RPM_BUILD_ROOT%{_sbindir}/%{name}-perl
404 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/*.default
405 rm -rf $RPM_BUILD_ROOT%{_prefix}/html
408 rm -rf $RPM_BUILD_ROOT
411 %groupadd -r -g 213 %{name}
413 %useradd -r -u 213 -d /usr/share/empty -s /bin/false -c "Nginx HTTP User" -g %{name} %{name}
414 %addusertogroup %{name} http
417 for a in access.log error.log; do
418 if [ ! -f /var/log/%{name}/$a ]; then
419 touch /var/log/%{name}/$a
420 chown nginx:nginx /var/log/%{name}/$a
421 chmod 644 /var/log/%{name}/$a
426 /sbin/chkconfig --add %{name}-standard
427 %service %{name}-standard restart
430 /sbin/chkconfig --add %{name}-light
431 %service %{name}-light restart
434 /sbin/chkconfig --add %{name}-perl
435 %service %{name}-perl restart
438 /sbin/chkconfig --add %{name}-mail
439 %service %{name}-mail restart
442 if [ "$1" = "0" ]; then
443 %service -q %{name}-standard stop
444 /sbin/chkconfig --del %{name}-standard
448 if [ "$1" = "0" ]; then
449 %service -q %{name}-light stop
450 /sbin/chkconfig --del %{name}-light
454 if [ "$1" = "0" ]; then
455 %service -q %{name}-perl stop
456 /sbin/chkconfig --del %{name}-perl
460 if [ "$1" = "0" ]; then
461 %service -q %{name}-mail stop
462 /sbin/chkconfig --del %{name}-mail
466 if [ "$1" = "0" ]; then
472 %defattr(644,root,root,755)
473 %doc CHANGES LICENSE README html/index.html conf/nginx.conf
474 %doc %lang(ru) CHANGES.ru
475 %attr(754,root,root) /etc/rc.d/init.d/%{name}-standard
476 %dir %attr(754,root,root) %{_sysconfdir}
478 %dir %{_nginxdir}/cgi-bin
479 %dir %{_nginxdir}/html
480 %dir %{_nginxdir}/errors
481 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
482 %attr(640,root,root) %{_sysconfdir}/*[_-]*
483 %attr(640,root,root) %{_sysconfdir}/proxy.conf
484 %attr(640,root,root) %{_sysconfdir}/mime.types
485 %attr(750,root,root) %dir /var/log/archive/%{name}
486 %attr(750,%{name},logs) /var/log/%{name}
487 %config(noreplace,missingok) %verify(not md5 mtime size) %{_nginxdir}/html/*
488 %config(noreplace,missingok) %verify(not md5 mtime size) %{_nginxdir}/errors/*
491 %defattr(644,root,root,755)
492 %attr(755,root,root) %{_sbindir}/%{name}-standard
493 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}-standard.conf
494 %attr(770,root,%{name}) /var/cache/%{name}-standard
495 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}-standard.monitrc
499 %defattr(644,root,root,755)
500 %attr(755,root,root) %{_sbindir}/%{name}-mail
501 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}-mail.conf
502 %attr(770,root,%{name}) /var/cache/%{name}-mail
503 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}-mail.monitrc
508 %defattr(644,root,root,755)
509 %attr(755,root,root) %{_sbindir}/%{name}-light
510 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}-light.conf
511 %attr(770,root,%{name}) /var/cache/%{name}-light
512 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}-light.monitrc
517 %defattr(644,root,root,755)
518 %attr(755,root,root) %{_sbindir}/%{name}-perl
519 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}-perl.conf
520 %dir %{perl_vendorarch}/auto/%{name}
521 %attr(755,root,root) %{perl_vendorarch}/auto/%{name}/%{name}.so
522 %attr(700,root,root) %{perl_vendorarch}/auto/%{name}/%{name}.bs
523 %attr(700,root,root) %{perl_vendorarch}/%{name}.pm
524 %attr(770,root,%{name}) /var/cache/%{name}-perl
525 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}-perl.monitrc