]> git.pld-linux.org Git - packages/nginx.git/blobdiff - nginx.spec
Release 2 (by relup.sh)
[packages/nginx.git] / nginx.spec
index b4581d3028e079d5a12134e5b4823edc15b9f874..0601ebf222cabd22baffe2ff67bf571a20bfc672 100644 (file)
@@ -1,10 +1,12 @@
 # TODO
 # - /etc/sysconfig/nginx file
 # - missing perl build/install requires
+# - add njs: https://nginx.org/en/docs/njs/
 #
 # Conditional build for nginx:
 # Features
 %bcond_with    debug           # enable debug logging: http://nginx.org/en/docs/debugging_log.html
+%bcond_without file_aio        # file AIO support
 %bcond_without threads         # thread pool support
 # Modules
 %bcond_without addition        # http addition module
 %bcond_with    http_browser    # http browser module (header "User-agent" parser)
 %bcond_with    modsecurity     # modsecurity module
 %bcond_with    rtmp            # rtmp support
+%bcond_without vts             # virtual host traffic status module
+%bcond_without headers_more    # headers more module
 
 %ifarch x32
 %undefine      with_rtsig
 %endif
 
 %define                ssl_version     1.0.2
-%define                rtmp_version    1.1.7
-%define                modsecurity_version     2.9.1
+%define                rtmp_version    1.2.2
+%define                vts_version     0.2.1
+%define                headers_more_version    0.34
+%define                modsecurity_version     3.0.8
+%define                http_cache_purge_version        2.5.2
+
 Summary:       High perfomance HTTP and reverse proxy server
 Summary(pl.UTF-8):     Serwer HTTP i odwrotne proxy o wysokiej wydajności
 # nginx lines:
 # - stable: production quality with stable API
 # - mainline: production quality but API can change
+# http://nginx.org/en/download.html
 Name:          nginx
-Version:       1.11.5
-Release:       0.2
+Version:       1.22.1
+Release:       2
 License:       BSD-like
 Group:         Networking/Daemons/HTTP
-Source0:       http://nginx.org/download/%{name}-%{version}.tar.gz
-# Source0-md5: db43f2b19746f6f47401c3afc3924dc6
-Source1:       http://nginx.net/favicon.ico
-# Source1-md5: 2aaf2115c752cbdbfb8a2f0b3c3189ab
+Source0:       https://nginx.org/download/%{name}-%{version}.tar.gz
+# Source0-md5: 8296d957561aeed0261d9be4d3decaec
+Source1:       https://nginx.org/favicon.ico
+# Source1-md5: 72e228c3809db53da8a884b6676ed36a
 Source2:       proxy.conf
 Source3:       %{name}.logrotate
 Source4:       %{name}.mime
@@ -57,15 +66,22 @@ Source7:    %{name}.init
 Source14:      %{name}.conf
 Source17:      %{name}-mime.types.sh
 Source18:      %{name}.service
-Source22:      http://www.modsecurity.org/tarball/%{modsecurity_version}/modsecurity-%{modsecurity_version}.tar.gz
-# Source22-md5:        0fa92b852abc857a20b9e24f83f814cf
+Source33:      https://github.com/SpiderLabs/ModSecurity/releases/download/v%{modsecurity_version}/modsecurity-v%{modsecurity_version}.tar.gz
+# Source33-md5:        ef62527cbed82c0993a1781414163b01
 Source101:     https://github.com/arut/nginx-rtmp-module/archive/v%{rtmp_version}/%{name}-rtmp-module-%{rtmp_version}.tar.gz
-# Source101-md5:       8006de2560db3e55bb15d110220076ac
+# Source101-md5:       9bb7a06aede38d9e36ad13dc1354d8f9
+Source102:     https://github.com/vozlt/nginx-module-vts/archive/v%{vts_version}.tar.gz
+# Source102-md5:       730163ed1eeecf39179f95fd973ac64b
+Source103:     https://github.com/openresty/headers-more-nginx-module/archive/v%{headers_more_version}.tar.gz
+# Source103-md5:       a1c5af547af31b058c3e75c40b6f58b1
+# https://github.com/nginx-modules/ngx_cache_purge
+Source104:     https://github.com/nginx-modules/ngx_cache_purge/archive/refs/tags/%{http_cache_purge_version}.tar.gz
+# Source104-md5:       ea728fb28ed6c7c6326fb1abb8aa66a8
 Patch0:                %{name}-no-Werror.patch
 Patch1:                %{name}-modsecurity-xheaders.patch
-URL:           http://nginx.net/
+URL:           https://nginx.org/
 BuildRequires: mailcap
-BuildRequires: pcre-devel
+BuildRequires: pcre2-8-devel
 BuildRequires: rpmbuild(macros) >= 1.644
 BuildRequires: zlib-devel
 %if %{with geoip}
@@ -117,11 +133,51 @@ Requires(pre):    /usr/sbin/useradd
 Requires:      rc-scripts >= 0.2.0
 Requires:      systemd-units >= 38
 Suggests:      vim-syntax-nginx
+Obsoletes:     nginx-common < 1.13.3
+Obsoletes:     nginx-light < 1.13.3
+Obsoletes:     nginx-standard < 1.13.3
+Conflicts:     rpm < 4.4.2-0.2
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
 %define                _nginxdir       /home/services/%{name}
 
+# minimizing restarts logics. we restart webserver:
+#
+# 1. at the end of transaction. (posttrans, feature from rpm 4.4.2)
+# 2. first install of module (post: $1 = 1)
+# 2. uninstall of module (postun: $1 == 0)
+#
+# the strict internal deps between modules and
+# main package are very important for all this to work.
+
+# restart webserver at the end of transaction
+
+%define        restart_webserver \
+       %systemd_post %{name}.service \
+       %service %{name} force-reload \
+       %{nil}
+
+# macro called at module post scriptlet
+%define        module_post \
+if [ "$1" = "1" ]; then \
+       %restart_webserver \
+fi
+
+# macro called at module postun scriptlet
+%define        module_postun \
+if [ "$1" = "0" ]; then \
+       %restart_webserver \
+fi
+
+# it's sooo annoying to write them
+%define        module_scripts() \
+%post %1 \
+%module_post \
+\
+%postun %1 \
+%module_postun
+
 %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
@@ -140,6 +196,14 @@ opublikował źródła na licencji BSD. Mimo, że projekt jest ciągle w
 fazie beta, już zasłynął dzięki stabilności, bogactwu dodatków,
 prostej konfiguracji oraz małej "zasobożerności".
 
+%package mod_headers_more
+Summary:       Nginx HTTP headers more module
+Group:         Daemons
+Requires:      %{name} = %{version}-%{release}
+
+%description mod_headers_more
+Set and clear input and output headers...more than "add".
+
 %package mod_http_geoip
 Summary:       Nginx HTTP geoip module
 Group:         Daemons
@@ -153,6 +217,7 @@ Nginx HTTP geoip module.
 Summary:       Nginx stream geoip module
 Group:         Daemons
 Requires:      %{name} = %{version}-%{release}
+Requires:      %{name}-mod_stream = %{version}-%{release}
 Requires:      GeoIP
 
 %description mod_stream_geoip
@@ -190,6 +255,14 @@ Requires:  %{name} = %{version}-%{release}
 %description mod_mail
 Nginx mail module.
 
+%package mod_vts
+Summary:       Nginx virtual host traffic status module
+Group:         Networking/Daemons/HTTP
+Requires:      %{name} = %{version}-%{release}
+
+%description mod_vts
+Nginx virtual host traffic status module.
+
 %package mod_stream
 Summary:       Nginx stream modules
 Group:         Daemons
@@ -198,6 +271,16 @@ Requires:  %{name} = %{version}-%{release}
 %description mod_stream
 Nginx stream modules.
 
+%package mod_http_cache_purge
+Summary:       Nginx cache purge module
+Group:         Daemons
+Requires:      %{name} = %{version}-%{release}
+
+%description mod_http_cache_purge
+`ngx_cache_purge` is `nginx` module which adds ability to purge
+content from `FastCGI`, `proxy`, `SCGI` and `uWSGI` caches.
+
+
 %package -n monit-rc-nginx
 Summary:       nginx support for monit
 Summary(pl.UTF-8):     Wsparcie nginx dla monit
@@ -212,7 +295,7 @@ monitrc file for monitoring nginx webserver.
 Plik monitrc do monitorowania serwera WWW nginx.
 
 %prep
-%setup -q %{?with_rtmp:-a101} %{?with_modsecurity:-a22}
+%setup -q %{?with_rtmp:-a101} %{?with_modsecurity:-a22} %{?with_vts:-a102} %{?with_headers_more:-a103} -a104
 %patch0 -p0
 %{?with_modsecurity:%patch1 -p0}
 
@@ -220,6 +303,16 @@ Plik monitrc do monitorowania serwera WWW nginx.
 mv nginx-rtmp-module-%{rtmp_version} nginx-rtmp-module
 %endif
 
+%if %{with vts}
+mv nginx-module-vts-%{vts_version} nginx-vts-module
+%endif
+
+%if %{with headers_more}
+mv headers-more-nginx-module-%{headers_more_version} nginx-headers-more-module
+%endif
+
+mv ngx_cache_purge-* ngx_cache_purge
+
 # build mime.types.conf
 #sh %{SOURCE17} /etc/mime.types
 
@@ -239,6 +332,8 @@ cp -f configure auto/
        --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp \
        --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp \
        --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp \
+       --http-uwsgi-temp-path=%{_localstatedir}/cache/%{name}/uwsgi_temp \
+       --http-scgi-temp-path=%{_localstatedir}/cache/%{name}/scgi_temp \
        --user=nginx \
        --group=nginx \
        %{?with_select:--with-select_module} \
@@ -269,12 +364,16 @@ cp -f configure auto/
        %{?with_stub_status:--with-http_stub_status_module} \
        %{?with_ssl:--with-http_ssl_module} \
        %{!?with_http_browser:--without-http_browser_module} \
+       --add-dynamic-module=./ngx_cache_purge \
+       %{?with_headers_more:--add-dynamic-module=./nginx-headers-more-module} \
        %{?with_rtmp:--add-module=./nginx-rtmp-module} \
+       %{?with_vts:--add-dynamic-module=./nginx-vts-module} \
        %{?with_auth_request:--with-http_auth_request_module} \
        %{?with_threads:--with-threads} \
        %{?with_http2:--with-http_v2_module} \
        %{?with_modsecurity:--add-module=modsecurity-%{modsecurity_version}/nginx/modsecurity} \
        --with-http_secure_link_module \
+       %{?with_file_aio:--with-file-aio} \
        %{nil}
 
 %{__make}
@@ -298,7 +397,8 @@ install -d $RPM_BUILD_ROOT/etc/rc.d/init.d \
        $RPM_BUILD_ROOT%{_localstatedir}/log/{%{name},archive/%{name}} \
        $RPM_BUILD_ROOT%{_localstatedir}/cache/%{name} \
        $RPM_BUILD_ROOT%{_localstatedir}/lock/subsys/%{name} \
-       $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}/{conf,vhosts,webapps}.d} \
+       $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}/{conf,modules,vhosts,webapps}.d} \
+       $RPM_BUILD_ROOT%{_sysconfdir}/snippets \
        $RPM_BUILD_ROOT/etc/{logrotate.d,monit} \
        $RPM_BUILD_ROOT{%{systemdunitdir},/etc/systemd/system}
 
@@ -324,7 +424,7 @@ cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_nginxdir}/html/favicon.ico
 load_module() {
        local module=ngx_${1}_module.so conffile=mod_$1.conf
        printf 'load_module "%{_libdir}/%{name}/modules/%s";' "$module" \
-               > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$conffile
+               > $RPM_BUILD_ROOT%{_sysconfdir}/modules.d/$conffile
 }
 
 %if %{with perl}
@@ -346,9 +446,12 @@ load_module http_xslt_filter
 %if %{with mail}
 load_module mail
 %endif
+%{?with_vts:load_module http_vhost_traffic_status}
+%{?with_headers_more:load_module http_headers_more_filter}
 %if %{with stream}
 load_module stream
 %endif
+load_module http_cache_purge
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -369,8 +472,9 @@ for a in access.log error.log; do
        fi
 done
 /sbin/chkconfig --add %{name}
-%systemd_post %{name}.service
-%service %{name} force-reload
+
+%posttrans
+%restart_webserver
 
 %preun
 if [ "$1" = "0" ];then
@@ -386,6 +490,17 @@ if [ "$1" = "0" ]; then
 fi
 %systemd_reload
 
+%module_scripts mod_http_geoip
+%module_scripts mod_http_image_filter
+%module_scripts mod_http_perl
+%module_scripts mod_http_xslt_filter
+%module_scripts mod_mail
+%module_scripts mod_vts
+%module_scripts mod_headers_more
+%module_scripts mod_stream
+%module_scripts mod_stream_geoip
+%module_scripts mod_http_cache_purge
+
 %files
 %defattr(644,root,root,755)
 %doc CHANGES LICENSE README html/index.html conf/nginx.conf
@@ -394,12 +509,15 @@ fi
 %attr(754,root,root) /etc/rc.d/init.d/%{name}
 %dir %attr(750,root,nginx) %{_sysconfdir}
 %dir %{_sysconfdir}/conf.d
+%dir %{_sysconfdir}/modules.d
+%dir %{_sysconfdir}/snippets
 %dir %{_sysconfdir}/vhosts.d
 %dir %{_sysconfdir}/webapps.d
 %attr(640,root,root) %{_sysconfdir}/mime.types
 %attr(640,root,root) %{_sysconfdir}/koi-utf
 %attr(640,root,root) %{_sysconfdir}/koi-win
 %attr(640,root,root) %{_sysconfdir}/win-utf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fastcgi.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nginx.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/proxy.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fastcgi_params
@@ -424,26 +542,26 @@ fi
 %if %{with geoip}
 %files mod_http_geoip
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_http_geoip.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_geoip.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_geoip_module.so
 
 %files mod_stream_geoip
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_stream_geoip.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_stream_geoip.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_stream_geoip_module.so
 %endif
 
 %if %{with gd}
 %files mod_http_image_filter
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_http_image_filter.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_image_filter.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_image_filter_module.so
 %endif
 
 %if %{with perl}
 %files mod_http_perl
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_http_perl.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_perl.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_perl_module.so
 %dir %{perl_vendorarch}/auto/%{name}
 %attr(755,root,root) %{perl_vendorarch}/auto/%{name}/%{name}.so
@@ -454,24 +572,44 @@ fi
 %if %{with xslt}
 %files mod_http_xslt_filter
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_http_xslt_filter.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_xslt_filter.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_xslt_filter_module.so
 %endif
 
 %if %{with mail}
 %files mod_mail
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_mail.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_mail.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_mail_module.so
 %endif
 
+%if %{with headers_more}
+%files mod_headers_more
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_headers_more_filter.conf
+%attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_headers_more_filter_module.so
+%endif
+
+%if %{with vts}
+%files mod_vts
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_vhost_traffic_status.conf
+%attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_vhost_traffic_status_module.so
+%endif
+
 %if %{with stream}
 %files mod_stream
 %defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_stream.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_stream.conf
 %attr(755,root,root) %{_libdir}/%{name}/modules/ngx_stream_module.so
 %endif
 
+%files mod_http_cache_purge
+%defattr(644,root,root,755)
+%doc ngx_cache_purge/{CHANGES,README.md}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modules.d/mod_http_cache_purge.conf
+%attr(755,root,root) %{_libdir}/%{name}/modules/ngx_http_cache_purge_module.so
+
 %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
This page took 0.075419 seconds and 4 git commands to generate.