# TODO # - /etc/sysconfig/nginx file # - missing perl build/install requires # - prepare pld style like nginx.conf # # Conditional build for nginx: %bcond_without light # don't build light version %bcond_without mail # don't build imap/mail proxy %bcond_without perl # don't build with perl module %bcond_without addition # adds module %bcond_without dav # WebDAV %bcond_without flv # FLV stream %bcond_without sub # ngx_http_sub_module %bcond_without poll # poll %bcond_without realip # real ip (behind proxy) %bcond_without rtsig # rtsig %bcond_without select # select %bcond_without status # stats module %bcond_without ssl # ssl support %bcond_with http_browser # header "User-agent" parser # Summary: High perfomance HTTP and reverse proxy server Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajnoÅ›ci Name: nginx Version: 0.5.33 Release: 0.5 License: BSD-like Group: Networking/Daemons Source0: http://sysoev.ru/nginx/%{name}-%{version}.tar.gz # Source0-md5: a78be74b4fd8e009545ef02488fcac86 Source1: %{name}.init Source2: %{name}-mime.types.sh Source3: http://www.nginx.eu/favicon.ico # Source3-md5: 2aaf2115c752cbdbfb8a2f0b3c3189ab Source4: http://www.nginx.eu/download/proxy.conf # Source4-md5: f5263ae01c2edb18f46d5d1df2d3a5cd Source5: http://www.nginx.eu/download/%{name}.monitrc # Source5-md5: 1d3f5eedfd34fe95213f9e0fc19daa88 Source6: http://www.nginx.eu/download/%{name}.conf # Source6-md5: 1c112d6f03d0f365e4acc98c1d96261a Source7: %{name}.logrotate Patch0: %{name}-config.patch URL: http://nginx.net/ BuildRequires: mailcap BuildRequires: openssl-devel BuildRequires: pcre-devel %{?with_perl:BuildRequires: perl-CGI} %{?with_perl:BuildRequires: perl-devel} %{?with_perl:BuildRequires: rpm-perlprov} BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: zlib-devel Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires: %{name}-common = %{version}-%{release} Requires: openssl Requires: pcre Requires: rc-scripts >= 0.2.0 Requires: zlib Provides: group(http) Provides: group(nginx) Provides: user(nginx) Provides: webserver Conflicts: logrotate < 3.7-4 Conflicts: %{name}-light Conflicts: %{name}-mail Conflicts: %{name}-perl BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sysconfdir /etc/%{name} %define _nginxdir /home/services/%{name} %description Nginx ("engine x") is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor Sysoev for Rambler.ru, Russia's second-most visited website, where it has been running in production for over two and a half years. Igor has released the source code under a BSD-like license. Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption. This is standard nginx version, without perl support and imap, pop3, smtp proxy. %description -l pl.UTF-8 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy a także IMAP/POP3 proxy. Nginx zostaÅ‚ napisany przez Igora Sysoev'a na potrzeby serwisu Rambler.ru. Jest to drugi pod wzglÄ™dem iloÅ›ci odwiedzin serwis w Rosji i dziaÅ‚a od ponad dwóch i pół roku. Igor opublikowaÅ‚ źródÅ‚a na licencji BSD. Mimo, że projekt jest ciÄ…gle w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków, prostej konfiguracji oraz maÅej "zasobożernoÅi". To jest standardowa wersja nginx, bez obs³ugi perla oraz proxy dla imap, pop3, smtp. %package light Summary: High perfomance HTTP and reverse proxy server Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajnoÅ›ci License: BSD-like Group: Networking/Daemons URL: http://nginx.net/ Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires: %{name}-common = %{version}-%{release} Requires: openssl Requires: pcre Requires: zlib Provides: group(http) Provides: group(nginx) Provides: user(nginx) Provides: webserver Conflicts: %{name} Conflicts: %{name}-mail Conflicts: %{name}-perl %description light Nginx ("engine x") is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor Sysoev for Rambler.ru, Russia's second-most visited website, where it has been running in production for over two and a half years. Igor has released the source code under a BSD-like license. Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption. The smallest, but also the fastest Nginx edition. No additional modules, no Perl, no DAV, no FLV, no IMAP, POP3, SMTP proxy. %description light -l pl.UTF-8 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy a także IMAP/POP3 proxy. Nginx zostaÅ‚ napisany przez Igora Sysoev'a na potrzeby serwisu Rambler.ru. Jest to drugi pod wzglÄ™dem iloÅ›ci odwiedzin serwis w Rosji i dziaÅ‚a od ponad dwóch i pół roku. Igor opublikowaÅ‚ źródÅ‚a na licencji BSD. Mimo, że projekt jest ciÄ…gle w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków, prostej konfiguracji oraz maÅej "zasobożernoÅi". Najmniejsza i najszybsza wersja Nginx. Bez wsparcia dla Perla, DAV, FLV oraz IMAP, POP3, SMTP proxy. %package perl Summary: High perfomance HTTP and reverse proxy server Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajnoÅ›ci License: BSD-like Group: Networking/Daemons URL: http://nginx.net/ Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires: %{name}-common = %{version}-%{release} Requires: openssl Provides: group(http) Provides: group(nginx) Provides: user(nginx) Provides: webserver Conflicts: %{name} Conflicts: %{name}-light Conflicts: %{name}-mail %description perl Nginx ("engine x") is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor Sysoev for Rambler.ru, Russia's second-most visited website, where it has been running in production for over two and a half years. Igor has released the source code under a BSD-like license. Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption. Nginx with Perl support. Mail modules not included. %description perl -l pl.UTF-8 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy a także IMAP/POP3 proxy. Nginx zostaÅ‚ napisany przez Igora Sysoev'a na potrzeby serwisu Rambler.ru. Jest to drugi pod wzglÄ™dem iloÅ›ci odwiedzin serwis w Rosji i dziaÅ‚a od ponad dwóch i pół roku. Igor opublikowaÅ‚ źródÅ‚a na licencji BSD. Mimo, że projekt jest ciÄ…gle w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków, prostej konfiguracji oraz maÅej "zasobożernoÅi". Nignx z obsÅ‚ugÄ… Perla. Bez wsparcia dla modułów poczty. %package mail Summary: High perfomance HTTP and reverse proxy server Summary(pl.UTF-8): Serwer HTTP i odwrotne proxy o wysokiej wydajnoÅ›ci License: BSD-like Group: Networking/Daemons URL: http://nginx.net/ Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires: %{name}-common = %{version}-%{release} Requires: openssl Requires: pcre Requires: zlib Provides: group(http) Provides: group(nginx) Provides: user(nginx) Provides: webserver Conflicts: %{name} Conflicts: %{name}-light Conflicts: %{name}-perl %description mail Nginx ("engine x") is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor Sysoev for Rambler.ru, Russia's second-most visited website, where it has been running in production for over two and a half years. Igor has released the source code under a BSD-like license. Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption. Nginx with mail support. Only mail modules included. %description mail -l pl.UTF-8 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy a także IMAP/POP3 proxy. Nginx zostaÅ‚ napisany przez Igora Sysoev'a na potrzeby serwisu Rambler.ru. Jest to drugi pod wzglÄ™dem iloÅ›ci odwiedzin serwis w Rosji i dziaÅ‚a od ponad dwóch i pół roku. Igor opublikowaÅ‚ źródÅ‚a na licencji BSD. Mimo, że projekt jest ciÄ…gle w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków, prostej konfiguracji oraz maÅej "zasobożernoÅi". Nginx ze wsparciem tylko dla modułów poczty. %package common Summary: Configuration files and documentation for Nginx Summary(pl.UTF-8): Pliki konfiguracyjne i dokumentacja dla Nginx License: BSD-like Group: Networking/Daemons URL: http://nginx.net/ Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires: rc-scripts >= 0.2.0 Conflicts: logrotate < 3.7-4 %description common Nginx ("engine x") is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Nginx was written by Igor Sysoev for Rambler.ru, Russia's second-most visited website, where it has been running in production for over two and a half years. Igor has released the source code under a BSD-like license. Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption. Common files for Nginx daemon. %description common -l pl.UTF-8 Nginx ("engine x") jest wysokowydajnym serwerem HTTP, odwrotnym proxy a także IMAP/POP3 proxy. Nginx zostaÅ‚ napisany przez Igora Sysoev'a na potrzeby serwisu Rambler.ru. Jest to drugi pod wzglÄ™dem iloÅ›ci odwiedzin serwis w Rosji i dziaÅ‚a od ponad dwóch i pół roku. Igor opublikowaÅ‚ źródÅ‚a na licencji BSD. Mimo, że projekt jest ciÄ…gle w fazie beta, już zasÅynÄÅ dzieki stabilnoÅi, bogactwu dodatków, prostej konfiguracji oraz maÅej "zasobożernoÅi". Niezbedne pliki dla Nginx. %package -n monit-rc-nginx Summary: Nginx support for monit Summary(pl.UTF-8): Wsparcie Nginx dla monit License: BSD-like Group: Applications/System URL: http://nginx.eu/ Requires: %{name} = %{version}-%{release} Requires: monit %description -n monit-rc-nginx monitrc file for monitoring Nginx webserver server. %description -n monit-rc-nginx -l pl.UTF-8 Plik monitrc do monitorowania serwera WWW Nginx. %prep %setup -q %patch0 -p0 # build mime.types.conf sh %{SOURCE2} /etc/mime.types %build # NB: not autoconf generated configure cp -f configure auto/ # %if %{with perl} ./configure \ --prefix=%{_prefix} \ --sbin-path=%{_sbindir}/%{name} \ --conf-path=%{_sysconfdir}/%{name}.conf \ --error-log-path=%{_localstatedir}/log/%{name}/error.log \ --pid-path=%{_localstatedir}/run/%{name}.pid \ --lock-path=%{_localstatedir}/lock/subsys/%{name} \ --user=nginx \ --group=nginx \ --with-http_perl_module \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module \ %{?with_addition:--with-http_addition_module} \ %{?with_dav:--with-http_dav_module} \ %{?with_flv:--with-http_flv_module} \ %{?with_sub:--with-http_sub_module} \ %{?with_poll:--with-poll_module} \ %{?with_realip:--with-http_realip_module} \ %{?with_rtsig:--with-rtsig_module} \ %{?with_select:--with-select_module} \ %{?with_status:--with-http_stub_status_module} \ %{?with_ssl:--with-http_ssl_module} \ %{!?with_http_browser:--without-http_browser_module} \ --http-log-path=%{_localstatedir}/log/%{name}/access.log \ --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp \ --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp \ --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp \ --with-cc="%{__cc}" \ --with-cc-opt="%{rpmcflags}" \ --with-ld-opt="%{rpmldflags}" %{__make} mv -f objs/nginx contrib/nginx.perl mv -f objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.bs contrib/nginx.bs mv -f objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so contrib/nginx.so mv -f objs/src/http/modules/perl/nginx.pm contrib/nginx.pm %endif %if %{with mail} %{__make} clean ./configure \ --prefix=%{_prefix} \ --sbin-path=%{_sbindir}/%{name} \ --conf-path=%{_sysconfdir}/%{name}.conf \ --error-log-path=%{_localstatedir}/log/%{name}/error.log \ --pid-path=%{_localstatedir}/run/%{name}.pid \ --lock-path=%{_localstatedir}/lock/subsys/%{name} \ --user=nginx \ --group=nginx \ --with-imap \ --with-mail \ --with-mail_ssl_module \ --without-http \ %{?with_poll:--with-poll_module} \ %{?with_rtsig:--with-rtsig_module} \ %{?with_select:--with-select_module} \ --http-log-path=%{_localstatedir}/log/%{name}/access.log \ --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp \ --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp \ --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp \ --with-cc="%{__cc}" \ --with-cc-opt="%{rpmcflags}" \ --with-ld-opt="%{rpmldflags}" \ %{?debug:--with-debug} %{__make} mv -f objs/nginx contrib/nginx.mail %endif %if %{with light} %{__make} clean ./configure \ --prefix=%{_prefix} \ --sbin-path=%{_sbindir}/%{name} \ --conf-path=%{_sysconfdir}/%{name}.conf \ --error-log-path=%{_localstatedir}/log/%{name}/error.log \ --pid-path=%{_localstatedir}/run/%{name}.pid \ --lock-path=%{_localstatedir}/lock/subsys/%{name} \ --user=nginx \ --group=nginx \ %{?with_poll:--with-poll_module} \ %{?with_realip:--with-http_realip_module} \ %{?with_rtsig:--with-rtsig_module} \ %{?with_select:--with-select_module} \ %{?with_status:--with-http_stub_status_module} \ %{?with_ssl:--with-http_ssl_module} \ --without-http_browser_module \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module \ --http-log-path=%{_localstatedir}/log/%{name}/access.log \ --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp \ --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp \ --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp \ --with-cc="%{__cc}" \ --with-cc-opt="%{rpmcflags}" \ --with-ld-opt="%{rpmldflags}" \ %{?debug:--with-debug} %{__make} mv -f objs/nginx contrib/nginx.light %endif %{__make} clean ./configure \ --prefix=%{_prefix} \ --sbin-path=%{_sbindir}/%{name} \ --conf-path=%{_sysconfdir}/%{name}.conf \ --error-log-path=%{_localstatedir}/log/%{name}/error.log \ --pid-path=%{_localstatedir}/run/%{name}.pid \ --lock-path=%{_localstatedir}/lock/subsys/%{name} \ --user=nginx \ --group=nginx \ %{?with_addition:--with-http_addition_module} \ %{?with_dav:--with-http_dav_module} \ %{?with_flv:--with-http_flv_module} \ %{?with_sub:--with-http_sub_module} \ %{?with_poll:--with-poll_module} \ %{?with_realip:--with-http_realip_module} \ %{?with_rtsig:--with-rtsig_module} \ %{?with_select:--with-select_module} \ %{?with_status:--with-http_stub_status_module} \ %{?with_ssl:--with-http_ssl_module} \ %{!?with_http_browser:--without-http_browser_module} \ --http-log-path=%{_localstatedir}/log/%{name}/access.log \ --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp \ --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp \ --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp \ --with-cc="%{__cc}" \ --with-cc-opt="%{rpmcflags}" \ --with-ld-opt="%{rpmldflags}" \ %{?debug:--with-debug} %{__make} %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/rc.d/init.d \ $RPM_BUILD_ROOT%{_nginxdir}/{cgi-bin,html,errors} \ $RPM_BUILD_ROOT{%{_localstatedir}/log/{%{name},archive/%{name}},%{_localstatedir}/cache/%{name}} \ $RPM_BUILD_ROOT%{_localstatedir}/lock/subsys/%{name} \ $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}} \ $RPM_BUILD_ROOT/etc/{logrotate.d,monit} install conf/* $RPM_BUILD_ROOT%{_sysconfdir} install mime.types $RPM_BUILD_ROOT%{_sysconfdir}/mime.types install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} install %{SOURCE3} $RPM_BUILD_ROOT%{_nginxdir}/html/favicon.ico install html/index.html $RPM_BUILD_ROOT%{_nginxdir}/html install html/50x.html $RPM_BUILD_ROOT%{_nginxdir}/errors install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/proxy.conf install %{SOURCE5} $RPM_BUILD_ROOT/etc/monit/%{name}.monitrc install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/nginx.conf install %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} install objs/%{name} $RPM_BUILD_ROOT%{_sbindir}/%{name} %if %{with light} install contrib/nginx.light $RPM_BUILD_ROOT%{_sbindir}/%{name} %endif %if %{with mail} install contrib/nginx.mail $RPM_BUILD_ROOT%{_sbindir}/%{name} %endif %if %{with perl} install -d $RPM_BUILD_ROOT{%{perl_vendorarch},%{perl_vendorarch}/auto/%{name}} install contrib/nginx.pm $RPM_BUILD_ROOT%{perl_vendorarch}/%{name}.pm install contrib/nginx.so $RPM_BUILD_ROOT%{perl_vendorarch}/auto/%{name}/%{name}.so install contrib/nginx.bs $RPM_BUILD_ROOT%{perl_vendorarch}/auto/%{name}/%{name}.bs install contrib/nginx.perl $RPM_BUILD_ROOT%{_sbindir}/%{name} %endif rm -f $RPM_BUILD_ROOT%{_sysconfdir}/*.default rm -rf $RPM_BUILD_ROOT%{_prefix}/html %clean rm -rf $RPM_BUILD_ROOT %pre common %groupadd -r -g 213 %{name} %groupadd -g 51 http %useradd -r -u 213 -d /usr/share/empty -s /bin/false -c "Nginx HTTP User" -g %{name} %{name} %addusertogroup %{name} http %post common for a in access.log error.log; do if [ ! -f /var/log/%{name}/$a ]; then touch /var/log/%{name}/$a chown nginx:nginx /var/log/%{name}/$a chmod 644 /var/log/%{name}/$a fi done %pre /sbin/chkconfig --add %{name} %service %{name} restart %pre light /sbin/chkconfig --add %{name} %service %{name} restart %pre perl /sbin/chkconfig --add %{name} %service %{name} restart %pre mail /sbin/chkconfig --add %{name} %service %{name} restart %preun if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi %preun light if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi %preun perl if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi %preun mail if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi %postun common if [ "$1" = "0" ]; then %userremove %{name} %groupremove %{name} fi %files %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/%{name} %files common %defattr(644,root,root,755) %doc CHANGES LICENSE README html/index.html conf/nginx.conf %doc %lang(ru) CHANGES.ru %attr(754,root,root) /etc/rc.d/init.d/%{name} %dir %attr(754,root,root) %{_sysconfdir} %dir %{_nginxdir} %dir %{_nginxdir}/cgi-bin %dir %{_nginxdir}/html %dir %{_nginxdir}/errors %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}.conf %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name} %attr(640,root,root) %{_sysconfdir}/*[_-]* %attr(640,root,root) %{_sysconfdir}/proxy.conf %attr(640,root,root) %{_sysconfdir}/mime.types %attr(770,root,%{name}) /var/cache/%{name} %attr(750,root,root) %dir /var/log/archive/%{name} %attr(750,%{name},logs) /var/log/%{name} %config(noreplace,missingok) %verify(not md5 mtime size) %{_nginxdir}/html/* %config(noreplace,missingok) %verify(not md5 mtime size) %{_nginxdir}/errors/* %if %{with mail} %files mail %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/%{name} %endif %if %{with light} %files light %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/%{name} %endif %if %{with perl} %files perl %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/%{name} %dir %{perl_vendorarch}/auto/%{name} %attr(755,root,root) %{perl_vendorarch}/auto/%{name}/%{name}.so %attr(700,root,root) %{perl_vendorarch}/auto/%{name}/%{name}.bs %attr(700,root,root) %{perl_vendorarch}/%{name}.pm %endif %files -n monit-rc-nginx %defattr(644,root,root,755) %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/monit/%{name}.monitrc