diff --git a/rpm/SOURCES/njs-0.1.2.tar.gz b/rpm/SOURCES/njs-0.1.2.tar.gz
deleted file mode 100644
index cc6ade5..0000000
--- a/rpm/SOURCES/njs-0.1.2.tar.gz
+++ /dev/null
Binary files differ
diff --git a/rpm/SOURCES/njs-0.1.3.tar.gz b/rpm/SOURCES/njs-0.1.3.tar.gz
new file mode 100644
index 0000000..7978c47
--- /dev/null
+++ b/rpm/SOURCES/njs-0.1.3.tar.gz
Binary files differ
diff --git a/rpm/SPECS/Makefile b/rpm/SPECS/Makefile
new file mode 100644
index 0000000..230b557
--- /dev/null
+++ b/rpm/SPECS/Makefile
@@ -0,0 +1,393 @@
+SHELL=		/bin/bash
+
+BASE_VERSION=	1.11.5
+BASE_RELEASE=	1
+BASE_SRC=	nginx-$(BASE_VERSION).tar.gz
+SRCPATH?=	../SOURCES
+
+MODULES=	geoip image-filter njs perl xslt
+
+MODULE_SUMMARY_geoip=		GeoIP dynamic modules
+MODULE_SUMMARY_image_filter=	image filter dynamic module
+MODULE_SUMMARY_njs=		nginScript dynamic modules
+MODULE_SUMMARY_perl=		Perl dynamic module
+MODULE_SUMMARY_xslt=		xslt dynamic module
+
+MODULE_VERSION_geoip=		$(BASE_VERSION)
+MODULE_RELEASE_geoip=		1
+MODULE_VERSION_image_filter=	$(BASE_VERSION)
+MODULE_RELEASE_image_filter=	1
+MODULE_VERSION_njs=		0.1.3
+MODULE_RELEASE_njs=		1
+MODULE_VERSION_perl=		$(BASE_VERSION)
+MODULE_RELEASE_perl=		1
+MODULE_VERSION_xslt=		$(BASE_VERSION)
+MODULE_RELEASE_xslt=		1
+
+MODULE_SOURCES_njs=		njs-$(MODULE_VERSION_njs).tar.gz
+
+MODULE_CONFARGS_geoip=		--with-http_geoip_module=dynamic \
+				--with-stream_geoip_module=dynamic
+MODULE_CONFARGS_image_filter=	--with-http_image_filter_module=dynamic
+MODULE_CONFARGS_njs=		--add-dynamic-module=njs-$(MODULE_VERSION_njs)/nginx
+MODULE_CONFARGS_perl=		--with-http_perl_module=dynamic
+MODULE_CONFARGS_xslt=		--with-http_xslt_module=dynamic
+
+# geoip
+
+define MODULE_DEFINITIONS_geoip
+%if 0%{?suse_version} == 1315
+BuildRequires: libGeoIP-devel
+Requires: libGeoIP1
+%else
+BuildRequires: GeoIP-devel
+Requires: GeoIP
+%endif
+endef
+export MODULE_DEFINITIONS_geoip
+
+define MODULE_POST_geoip
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_geoip) for nginx have been installed.
+To enable these modules, add the following to /etc/nginx/nginx.conf
+and reload nginx:
+
+    load_module modules/ngx_http_geoip_module.so;
+    load_module modules/ngx_stream_geoip_module.so;
+
+Please refer to the modules documentation for further details:
+http://nginx.org/en/docs/http/ngx_http_geoip_module.html
+http://nginx.org/en/docs/stream/ngx_stream_geoip_module.html
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_geoip
+
+# image-filter
+
+define MODULE_DEFINITIONS_image_filter
+BuildRequires: gd-devel
+Requires: gd
+endef
+export MODULE_DEFINITIONS_image_filter
+
+define MODULE_POST_image_filter
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_image_filter) for nginx has been installed.
+To enable this module, add the following to /etc/nginx/nginx.conf
+and reload nginx:
+
+    load_module modules/ngx_http_image_filter_module.so;
+
+Please refer to the module documentation for further details:
+http://nginx.org/en/docs/http/ngx_http_image_filter_module.html
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_image_filter
+
+# njs
+
+MODULE_VERSION_PREFIX_njs=$(BASE_VERSION).
+
+define MODULE_PREINSTALL_njs
+%{__install} -m644 %{bdir}/njs-$(MODULE_VERSION_njs)/README \
+    $$RPM_BUILD_ROOT%{_datadir}/doc/nginx-module-njs/
+endef
+export MODULE_PREINSTALL_njs
+
+define MODULE_POST_njs
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_njs) for nginx have been installed.
+To enable these modules, add the following to /etc/nginx/nginx.conf
+and reload nginx:
+
+    load_module modules/ngx_http_js_module.so;
+    load_module modules/ngx_stream_js_module.so;
+
+Please refer to the modules documentation for further details:
+/usr/share/doc/nginx-module-njs/README
+https://www.nginx.com/resources/wiki/nginScript/
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_njs
+
+# perl
+
+define MODULE_DEFINITIONS_perl
+%if (0%{?rhel} \&\& 0%{?rhel} == 5) || (0%{?suse_version} == 1315)
+BuildRequires: perl
+%else
+BuildRequires: perl-devel
+BuildRequires: perl-ExtUtils-Embed
+%endif
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $$version))
+endef
+export MODULE_DEFINITIONS_perl
+
+define MODULE_PREINSTALL_perl
+%{__make} DESTDIR=$$RPM_BUILD_ROOT INSTALLDIRS=vendor -f objs/Makefile install_perl_modules
+find %{buildroot} -type f -name .packlist -exec rm -f '{}' \\;
+find %{buildroot} -type f -name perllocal.pod -exec rm -f '{}' \\;
+find %{buildroot} -type f -empty -exec rm -f '{}' \\;
+find %{buildroot} -type f -iname '*.so' -exec chmod 0755 '{}' \\;
+endef
+export MODULE_PREINSTALL_perl
+
+define MODULE_FILES_perl
+%dir %{perl_vendorarch}/auto/nginx
+%{perl_vendorarch}/nginx.pm
+%{perl_vendorarch}/auto/nginx/nginx.so
+%{perl_vendorarch}/auto/nginx/nginx-debug.so
+%{_mandir}/man3/nginx.3pm*
+endef
+export MODULE_FILES_perl
+
+define MODULE_POST_perl
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_perl) for nginx has been installed.
+To enable this module, add the following to /etc/nginx/nginx.conf
+and reload nginx:
+
+    load_module modules/ngx_http_perl_module.so;
+
+Please refer to the module documentation for further details:
+http://nginx.org/en/docs/http/ngx_http_perl_module.html
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_perl
+
+# xslt
+
+define MODULE_DEFINITIONS_xslt
+BuildRequires: libxslt-devel
+Requires: libxslt
+endef
+export MODULE_DEFINITIONS_xslt
+
+define MODULE_POST_xslt
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_xslt) for nginx has been installed.
+To enable this module, add the following to /etc/nginx/nginx.conf
+and reload nginx:
+
+    load_module modules/ngx_http_xslt_filter_module.so;
+
+Please refer to the module documentation for further details:
+http://nginx.org/en/docs/http/ngx_http_xslt_module.html
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_xslt
+
+
+BASE_CONFIGURE_ARGS=\
+	--prefix=%{_sysconfdir}/nginx \
+	--sbin-path=%{_sbindir}/nginx \
+	--modules-path=%{_libdir}/nginx/modules \
+	--conf-path=%{_sysconfdir}/nginx/nginx.conf \
+	--error-log-path=%{_localstatedir}/log/nginx/error.log \
+	--http-log-path=%{_localstatedir}/log/nginx/access.log \
+	--pid-path=%{_localstatedir}/run/nginx.pid \
+	--lock-path=%{_localstatedir}/run/nginx.lock \
+	--http-client-body-temp-path=%{_localstatedir}/cache/nginx/client_temp \
+	--http-proxy-temp-path=%{_localstatedir}/cache/nginx/proxy_temp \
+	--http-fastcgi-temp-path=%{_localstatedir}/cache/nginx/fastcgi_temp \
+	--http-uwsgi-temp-path=%{_localstatedir}/cache/nginx/uwsgi_temp \
+	--http-scgi-temp-path=%{_localstatedir}/cache/nginx/scgi_temp \
+	--user=%{nginx_user} \
+	--group=%{nginx_group} \
+	--with-compat \
+	--with-file-aio \
+	--with-threads \
+	--with-http_addition_module \
+	--with-http_auth_request_module \
+	--with-http_dav_module \
+	--with-http_flv_module \
+	--with-http_gunzip_module \
+	--with-http_gzip_static_module \
+	--with-http_mp4_module \
+	--with-http_random_index_module \
+	--with-http_realip_module \
+	--with-http_secure_link_module \
+	--with-http_slice_module \
+	--with-http_ssl_module \
+	--with-http_stub_status_module \
+	--with-http_sub_module \
+	--with-http_v2_module \
+	--with-mail \
+	--with-mail_ssl_module \
+	--with-stream \
+	--with-stream_realip_module \
+	--with-stream_ssl_module \
+	--with-stream_ssl_preread_module
+
+export CR=\\n
+
+modname = $(shell echo $1 | cut -c 14- | cut -d '.' -f 1 | tr '-' '_')
+
+default:
+	@echo "valid targets: all base $(addprefix module-, $(MODULES)) test test-debug"
+
+all:	base modules
+	@echo "===> all done"
+
+modules:	$(addprefix module-, $(MODULES))
+
+specs:	nginx.spec $(addsuffix .spec, $(addprefix nginx-module-, $(MODULES)))
+
+$(SRCPATH)/$(BASE_SRC):
+	@cd $(SRCPATH) && wget http://nginx.org/download/$(BASE_SRC)
+
+base:	nginx.spec $(SRCPATH)/$(BASE_SRC)
+	@echo "===> Building base package"
+	@$(SHELL) -c "time -p rpmbuild -ba nginx.spec"
+	@ln -s ../BUILD/nginx-$(BASE_VERSION)/objs base
+
+nginx.spec:
+	@echo "===> Creating $@"
+	@{ \
+	set -e ; \
+	cat nginx.spec.in | sed \
+		-e 's#%%MAIN_VERSION%%#$(BASE_VERSION)#g' \
+		-e 's#%%MAIN_RELEASE%%#$(BASE_RELEASE)#g' \
+		-e 's#%%BASE_CONFIGURE_ARGS%%#$(BASE_CONFIGURE_ARGS)#g' \
+		> nginx.spec ; \
+	}
+
+module-%: nginx-module-%.spec $(SRCPATH)/$(BASE_SRC)
+	@echo "===> Building nginx-$@ package" ; \
+	$(SHELL) -c "time -p rpmbuild -ba nginx-$@.spec" ; \
+	ln -s ../BUILD/nginx-$@-$(BASE_VERSION)/objs $@
+
+nginx-module-%.spec:
+	@echo "===> Creating $@"
+	@{ \
+	set -e ; \
+	i=100 ; \
+	sources= ; \
+	prepsources= ; \
+	for src in $(MODULE_SOURCES_$(call modname, $@)); do \
+		s="`printf "Source%d: %s\n" $${i} $${src}`" ; \
+		sources="$${sources}\n$${s}" ; \
+		s="`printf "tar zxf %%{SOURCE%d\}" $${i}`" ; \
+		prepsources="$${prepsources}\n$${s}" ; \
+		i=$$(($${i}+1)) ; \
+	done ; \
+	i=100 ; \
+	patches= ; \
+	preppatches= ; \
+	for src in $(MODULE_PATCHES_$(call modname, $@)); do \
+		s="`printf "Patch%d: %s\n" $${i} $${src}`" ; \
+		patches="$${patches}\n$${s}" ; \
+		s="`printf "%%patch%d -p1" $${i}`" ; \
+		preppatches="$${preppatches}\n$${s}" ; \
+		i=$$(($${i}+1)) ; \
+	done ; \
+	module_copyright=`echo $@ | sed -e "s#.spec#.copyright#"` ; \
+	if [ -f ../SOURCES/$${module_copyright} ]; then \
+		copyright_source=$${module_copyright} ; \
+	else \
+		copyright_source=COPYRIGHT ; \
+	fi ; \
+	module_changelog=`echo $@ | sed -e "s#.spec#.changelog.in#"` ; \
+	if [ -f $${module_changelog} ]; then \
+		changelog_file=$${module_changelog} ; \
+	else \
+		changelog_file=nginx-module.changelog.in ; \
+	fi ; \
+	definitions=`echo "$$MODULE_DEFINITIONS_$(call modname, $@)" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
+	prebuild=`echo "$$MODULE_PREBUILD_$(call modname, $@)" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
+	preinstall=`echo "$$MODULE_PREINSTALL_$(call modname, $@)" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
+	files=`echo "$$MODULE_FILES_$(call modname, $@)" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
+	post=`echo "$$MODULE_POST_$(call modname, $@)" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
+	cat nginx-module.spec.in | sed \
+		-e "s#%%NAME%%#$(shell echo $@ | cut -d '.' -f 1)#g" \
+		-e "s#%%SUMMARY%%#nginx $(MODULE_SUMMARY_$(call modname, $@))#g" \
+		-e "s#%%SHORT_SUMMARY%%#$(MODULE_SUMMARY_$(call modname, $@))#g" \
+		-e "s#%%MAIN_VERSION%%#$(BASE_VERSION)#g" \
+		-e "s#%%MAIN_RELEASE%%#$(BASE_RELEASE)#g" \
+		-e "s#%%VERSION_PREFIX%%#$(MODULE_VERSION_PREFIX_$(call modname, $@))#g" \
+		-e "s#%%VERSION%%#$(MODULE_VERSION_$(call modname, $@))#g" \
+		-e "s#%%RELEASE%%#$(MODULE_RELEASE_$(call modname, $@))#g" \
+		-e "s#%%BASE_CONFIGURE_ARGS%%#$(BASE_CONFIGURE_ARGS)#g" \
+		-e "s#%%MODULE_CONFIGURE_ARGS%%#$(MODULE_CONFARGS_$(call modname, $@))#g" \
+		-e "s#%%COPYRIGHT_SOURCE%%#$${copyright_source}#g" \
+		-e "s#%%MODULE_SOURCES%%#$${sources}#g" \
+		-e "s#%%MODULE_PATCHES%%#$${patches}#g" \
+		-e "s#%%MODULE_PREP_SOURCES%%#$${prepsources}#g" \
+		-e "s#%%MODULE_PREP_PATCHES%%#$${preppatches}#g" \
+		-e "s#%%MODULE_DEFINITIONS%%#$${definitions}#g" \
+		-e "s#%%MODULE_PREBUILD%%#$${prebuild}#g" \
+		-e "s#%%MODULE_PREINSTALL%%#$${preinstall}#g" \
+		-e "s#%%MODULE_FILES%%#$${files}#g" \
+		-e "s#%%MODULE_POST%%#$${post}#g" \
+		> $@.tmp && \
+	cat $${changelog_file} | grep -v "^#" >> $@.tmp && \
+	mv $@.tmp $@ ; \
+	}
+
+nginx-tests:
+	@{ \
+	if [ -d "../nginx-tests" ]; then \
+		echo "===> Copying tests from ../nginx-tests" ; \
+		cp -rP ../nginx-tests nginx-tests ; \
+	else \
+		echo "===> Cloning tests" ; \
+		hg clone http://hg.nginx.org/nginx-tests ; \
+	fi ; \
+	}
+
+test: base nginx-tests
+	@echo "===> Running tests with regular binary/modules"
+	@{ \
+	pwd=`pwd` ; \
+	globals= ; \
+	for so in `find module-*/ -maxdepth 1 -type f -name "*module.so"`; do \
+		globals="$$globals load_module $$pwd/$$so;" ; \
+	done ; \
+	if [ -d $$pwd/module-perl ]; then \
+		globals="$$globals env PERL5LIB=$$pwd/module-perl/src/http/modules/perl:$$pwd/module-perl/src/http/modules/perl/blib/arch;" ; \
+	fi ; \
+	cd nginx-tests && TEST_NGINX_BINARY=$$pwd/base/nginx TEST_NGINX_GLOBALS="$$globals" prove . ; \
+	}
+
+test-debug: base nginx-tests
+	@echo "===> Running tests with debug binary/modules"
+	@{ \
+	pwd=`pwd` ; \
+	globals= ; \
+	for so in `find module-*/ -maxdepth 1 -type f -name "*module-debug.so"`; do \
+		globals="$$globals load_module $$pwd/$$so;" ; \
+	done ; \
+	if [ -d $$pwd/module-perl ]; then \
+		globals="$$globals env PERL5LIB=$$pwd/module-perl/src/http/modules/perl:$$pwd/module-perl/src/http/modules/perl/blib/arch;" ; \
+	fi ; \
+	cd nginx-tests && TEST_NGINX_BINARY=$$pwd/base/nginx-debug TEST_NGINX_GLOBALS="$$globals" prove . ; \
+	}
+
+clean:
+	@rm -f base module-*
+	@rm -f nginx.spec nginx-module-*.spec
+	@rm -rf nginx-tests
+
+.PHONY:	default all modules specs test test-debug clean
+
+.SECONDARY:
diff --git a/rpm/SPECS/nginx-module-njs.changelog.in b/rpm/SPECS/nginx-module-njs.changelog.in
new file mode 100644
index 0000000..2980cb5
--- /dev/null
+++ b/rpm/SPECS/nginx-module-njs.changelog.in
@@ -0,0 +1,3 @@
+* Mon Oct 10 2016 Andrei Belov <defan@nginx.com>
+- base version updated to 1.11.5
+- njs module updated to 0.1.3
diff --git a/rpm/SPECS/nginx-module.changelog.in b/rpm/SPECS/nginx-module.changelog.in
new file mode 100644
index 0000000..e1c787a
--- /dev/null
+++ b/rpm/SPECS/nginx-module.changelog.in
@@ -0,0 +1,4 @@
+# default changelog for module packages
+#
+* Mon Oct 10 2016 Andrei Belov <defan@nginx.com>
+- base version updated to 1.11.5
diff --git a/rpm/SPECS/nginx-module.spec.in b/rpm/SPECS/nginx-module.spec.in
new file mode 100644
index 0000000..b6a278d
--- /dev/null
+++ b/rpm/SPECS/nginx-module.spec.in
@@ -0,0 +1,111 @@
+#
+%define nginx_user nginx
+%define nginx_group nginx
+
+%%MODULE_DEFINITIONS%%
+
+%if 0%{?rhel} || 0%{?amzn}
+%define _group System Environment/Daemons
+BuildRequires: openssl-devel
+%endif
+
+%if 0%{?suse_version} == 1315
+%define _group Productivity/Networking/Web/Servers
+BuildRequires: libopenssl-devel
+%endif
+
+%if 0%{?rhel} == 7
+%define epoch 1
+Epoch: %{epoch}
+%endif
+
+%define main_version %%MAIN_VERSION%%
+%define main_release %%MAIN_RELEASE%%%{?dist}.ngx
+
+%define bdir %{_builddir}/%{name}-%{main_version}
+
+Summary: %%SUMMARY%%
+Name: %%NAME%%
+Version: %%VERSION_PREFIX%%%%VERSION%%
+Release: %%RELEASE%%%{?dist}.ngx
+Vendor: Nginx, Inc.
+URL: http://nginx.org/
+Group: %{_group}
+
+Source0: http://nginx.org/download/nginx-%{main_version}.tar.gz
+Source1: %%COPYRIGHT_SOURCE%%
+%%MODULE_SOURCES%%
+
+%%MODULE_PATCHES%%
+
+License: 2-clause BSD-like license
+
+BuildRoot: %{_tmppath}/%{name}-%{main_version}-%{main_release}-root
+BuildRequires: zlib-devel
+BuildRequires: pcre-devel
+Requires: nginx == %{?epoch:%{epoch}:}%%MAIN_VERSION%%-%%MAIN_RELEASE%%%{?dist}.ngx
+
+%description
+nginx %%SHORT_SUMMARY%%.
+
+%if 0%{?suse_version} || 0%{?amzn}
+%debug_package
+%endif
+
+%define WITH_CC_OPT $(echo %{optflags} $(pcre-config --cflags))
+
+%define BASE_CONFIGURE_ARGS $(echo "%%BASE_CONFIGURE_ARGS%%")
+%define MODULE_CONFIGURE_ARGS $(echo "%%MODULE_CONFIGURE_ARGS%%")
+
+%prep
+%setup -qcTn %{name}-%{main_version}
+tar --strip-components=1 -zxf %{SOURCE0}
+%%MODULE_PREP_SOURCES%%
+%%MODULE_PREP_PATCHES%%
+
+%build
+%%MODULE_PREBUILD%%
+cd %{bdir}
+./configure %{BASE_CONFIGURE_ARGS} %{MODULE_CONFIGURE_ARGS} \
+	--with-cc-opt="%{WITH_CC_OPT}" \
+	--with-debug
+make %{?_smp_mflags} modules
+for so in `find %{bdir}/objs/ -type f -name "*.so"`; do
+debugso=`echo $so | sed -e "s|.so|-debug.so|"`
+mv $so $debugso
+done
+./configure %{BASE_CONFIGURE_ARGS} %{MODULE_CONFIGURE_ARGS} \
+	--with-cc-opt="%{WITH_CC_OPT}"
+make %{?_smp_mflags} modules
+
+%install
+cd %{bdir}
+%{__rm} -rf $RPM_BUILD_ROOT
+%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/doc/%%NAME%%
+%{__install} -m 644 -p %{SOURCE1} \
+    $RPM_BUILD_ROOT%{_datadir}/doc/%%NAME%%/
+
+%%MODULE_PREINSTALL%%
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_libdir}/nginx/modules
+for so in `find %{bdir}/objs/ -maxdepth 1 -type f -name "*.so"`; do
+%{__install} -m755 $so \
+   $RPM_BUILD_ROOT%{_libdir}/nginx/modules/
+done
+
+%clean
+%{__rm} -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%{_libdir}/nginx/modules/*
+%dir %{_datadir}/doc/%%NAME%%
+%{_datadir}/doc/%%NAME%%/*
+%%MODULE_FILES%%
+
+%post
+if [ $1 -eq 1 ]; then
+%%MODULE_POST%%
+fi
+
+%changelog
diff --git a/rpm/SPECS/nginx.spec b/rpm/SPECS/nginx.spec
deleted file mode 100644
index b61fbe3..0000000
--- a/rpm/SPECS/nginx.spec
+++ /dev/null
@@ -1,823 +0,0 @@
-#
-%define nginx_home %{_localstatedir}/cache/nginx
-%define nginx_user nginx
-%define nginx_group nginx
-%define nginx_loggroup adm
-
-# distribution specific definitions
-%define use_systemd (0%{?fedora} && 0%{?fedora} >= 18) || (0%{?rhel} && 0%{?rhel} >= 7) || (0%{?suse_version} == 1315)
-
-%if 0%{?rhel}  == 5
-%define _group System Environment/Daemons
-Requires(pre): shadow-utils
-Requires: initscripts >= 8.36
-Requires(post): chkconfig
-Requires: openssl
-BuildRequires: openssl-devel
-BuildRequires: perl
-BuildRequires: GeoIP-devel
-%endif
-
-%if 0%{?rhel}  == 6
-%define _group System Environment/Daemons
-%define with_http2 1
-Requires(pre): shadow-utils
-Requires: initscripts >= 8.36
-Requires(post): chkconfig
-Requires: openssl >= 1.0.1
-BuildRequires: openssl-devel >= 1.0.1
-BuildRequires: perl-devel
-BuildRequires: perl-ExtUtils-Embed
-BuildRequires: GeoIP-devel
-%endif
-
-%if 0%{?rhel}  == 7
-%define _group System Environment/Daemons
-%define epoch 1
-%define with_http2 1
-Epoch: %{epoch}
-Requires(pre): shadow-utils
-Requires: systemd
-Requires: openssl >= 1.0.1
-BuildRequires: systemd
-BuildRequires: openssl-devel >= 1.0.1
-BuildRequires: perl-devel
-BuildRequires: perl-ExtUtils-Embed
-BuildRequires: GeoIP-devel
-%endif
-
-%if 0%{?suse_version} == 1315
-%define _group Productivity/Networking/Web/Servers
-%define with_http2 1
-%define nginx_loggroup trusted
-Requires(pre): shadow
-Requires: systemd
-BuildRequires: libopenssl-devel
-BuildRequires: systemd
-BuildRequires: perl
-BuildRequires: libGeoIP-devel
-%endif
-
-# end of distribution specific definitions
-
-%define main_version                 1.11.4
-%define main_release                 1%{?dist}.ngx
-%define njs_version                  0.1.2
-%define module_xslt_version          %{main_version}
-%define module_xslt_release          1%{?dist}.ngx
-%define module_geoip_version         %{main_version}
-%define module_geoip_release         1%{?dist}.ngx
-%define module_image_filter_version  %{main_version}
-%define module_image_filter_release  1%{?dist}.ngx
-%define module_perl_version          %{main_version}
-%define module_perl_release          1%{?dist}.ngx
-%define module_njs_version           %{main_version}.%{njs_version}
-%define module_njs_release           1%{?dist}.ngx
-
-%define bdir %{_builddir}/%{name}-%{main_version}
-
-%define WITH_CC_OPT $(echo %{optflags} $(pcre-config --cflags))
-
-%define COMMON_CONFIGURE_ARGS $(echo "\
-        --prefix=%{_sysconfdir}/nginx \
-        --sbin-path=%{_sbindir}/nginx \
-        --modules-path=%{_libdir}/nginx/modules \
-        --conf-path=%{_sysconfdir}/nginx/nginx.conf \
-        --error-log-path=%{_localstatedir}/log/nginx/error.log \
-        --http-log-path=%{_localstatedir}/log/nginx/access.log \
-        --pid-path=%{_localstatedir}/run/nginx.pid \
-        --lock-path=%{_localstatedir}/run/nginx.lock \
-        --http-client-body-temp-path=%{_localstatedir}/cache/nginx/client_temp \
-        --http-proxy-temp-path=%{_localstatedir}/cache/nginx/proxy_temp \
-        --http-fastcgi-temp-path=%{_localstatedir}/cache/nginx/fastcgi_temp \
-        --http-uwsgi-temp-path=%{_localstatedir}/cache/nginx/uwsgi_temp \
-        --http-scgi-temp-path=%{_localstatedir}/cache/nginx/scgi_temp \
-        --user=%{nginx_user} \
-        --group=%{nginx_group} \
-        --with-http_ssl_module \
-        --with-http_realip_module \
-        --with-http_addition_module \
-        --with-http_sub_module \
-        --with-http_dav_module \
-        --with-http_flv_module \
-        --with-http_mp4_module \
-        --with-http_gunzip_module \
-        --with-http_gzip_static_module \
-        --with-http_random_index_module \
-        --with-http_secure_link_module \
-        --with-http_stub_status_module \
-        --with-http_auth_request_module \
-        --with-http_xslt_module=dynamic \
-        --with-http_image_filter_module=dynamic \
-        --with-http_geoip_module=dynamic \
-        --with-http_perl_module=dynamic \
-        --add-dynamic-module=njs-%{njs_version}/nginx \
-        --with-threads \
-        --with-stream \
-        --with-stream_ssl_module \
-        --with-stream_ssl_preread_module \
-        --with-stream_realip_module \
-        --with-stream_geoip_module=dynamic \
-        --with-http_slice_module \
-        --with-mail \
-        --with-mail_ssl_module \
-        --with-file-aio \
-        --with-ipv6 \
-        %{?with_http2:--with-http_v2_module}")
-
-Summary: High performance web server
-Name: nginx
-Version: %{main_version}
-Release: %{main_release}
-Vendor: Nginx, Inc.
-URL: http://nginx.org/
-Group: %{_group}
-
-Source0: http://nginx.org/download/%{name}-%{version}.tar.gz
-Source1: logrotate
-Source2: nginx.init.in
-Source3: nginx.sysconf
-Source4: nginx.conf
-Source5: nginx.vh.default.conf
-Source7: nginx-debug.sysconf
-Source8: nginx.service
-Source9: nginx.upgrade.sh
-Source10: nginx.suse.logrotate
-Source11: nginx-debug.service
-Source12: COPYRIGHT
-Source13: njs-%{njs_version}.tar.gz
-
-License: 2-clause BSD-like license
-
-BuildRoot: %{_tmppath}/%{name}-%{main_version}-%{main_release}-root
-BuildRequires: zlib-devel
-BuildRequires: pcre-devel
-BuildRequires: libxslt-devel
-BuildRequires: gd-devel
-
-Provides: webserver
-
-%description
-nginx [engine x] is an HTTP and reverse proxy server, as well as
-a mail proxy server.
-
-%if 0%{?suse_version} == 1315
-%debug_package
-%endif
-
-%package module-xslt
-Version: %{module_xslt_version}
-Release: %{module_xslt_release}
-Group: %{_group}
-Requires: nginx = %{?epoch:%{epoch}:}%{main_version}-%{main_release}
-Summary: nginx xslt module
-%description module-xslt
-Dynamic xslt module for nginx.
-
-%package module-image-filter
-Version: %{module_image_filter_version}
-Release: %{module_image_filter_release}
-Group: %{_group}
-Requires: nginx = %{?epoch:%{epoch}:}%{main_version}-%{main_release}
-Summary: nginx image filter module
-%description module-image-filter
-Dynamic image filter module for nginx.
-
-%package module-geoip
-Version: %{module_geoip_version}
-Release: %{module_geoip_release}
-Group: %{_group}
-Requires: nginx = %{?epoch:%{epoch}:}%{main_version}-%{main_release}
-Summary: nginx geoip modules
-%description module-geoip
-Dynamic geoip modules for nginx.
-
-%package module-perl
-Version: %{module_perl_version}
-Release: %{module_perl_release}
-Group: %{_group}
-Requires: nginx = %{?epoch:%{epoch}:}%{main_version}-%{main_release}
-Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
-Summary: nginx perl module
-%description module-perl
-Dynamic perl module for nginx.
-
-%package module-njs
-Version: %{module_njs_version}
-Release: %{module_njs_release}
-Group: %{_group}
-Requires: nginx = %{?epoch:%{epoch}:}%{main_version}-%{main_release}
-Summary: nginx nJScript module
-%description module-njs
-Dynamic nJScript module for nginx.
-
-%prep
-%setup -q
-tar xvzf %SOURCE13
-cp %{SOURCE2} .
-sed -e 's|%%DEFAULTSTART%%|2 3 4 5|g' -e 's|%%DEFAULTSTOP%%|0 1 6|g' \
-    -e 's|%%PROVIDES%%|nginx|g' < %{SOURCE2} > nginx.init
-sed -e 's|%%DEFAULTSTART%%||g' -e 's|%%DEFAULTSTOP%%|0 1 2 3 4 5 6|g' \
-    -e 's|%%PROVIDES%%|nginx-debug|g' < %{SOURCE2} > nginx-debug.init
-
-%build
-./configure %{COMMON_CONFIGURE_ARGS} \
-    --with-cc-opt="%{WITH_CC_OPT}" \
-    --with-debug
-make %{?_smp_mflags}
-%{__mv} %{bdir}/objs/nginx \
-    %{bdir}/objs/nginx-debug
-%{__mv} %{bdir}/objs/ngx_http_xslt_filter_module.so \
-    %{bdir}/objs/ngx_http_xslt_filter_module-debug.so
-%{__mv} %{bdir}/objs/ngx_http_image_filter_module.so \
-    %{bdir}/objs/ngx_http_image_filter_module-debug.so
-%{__mv} %{bdir}/objs/ngx_http_geoip_module.so \
-    %{bdir}/objs/ngx_http_geoip_module-debug.so
-%{__mv} %{bdir}/objs/ngx_http_perl_module.so \
-    %{bdir}/objs/ngx_http_perl_module-debug.so
-%{__mv} %{bdir}/objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so \
-    %{bdir}/objs/src/http/modules/perl/blib/arch/auto/nginx/nginx-debug.so
-%{__mv} %{bdir}/objs/ngx_http_js_module.so \
-    %{bdir}/objs/ngx_http_js_module-debug.so
-%{__mv} %{bdir}/objs/ngx_stream_js_module.so \
-    %{bdir}/objs/ngx_stream_js_module-debug.so
-%{__mv} %{bdir}/objs/ngx_stream_geoip_module.so \
-    %{bdir}/objs/ngx_stream_geoip_module-debug.so
-./configure %{COMMON_CONFIGURE_ARGS} \
-    --with-cc-opt="%{WITH_CC_OPT}"
-make %{?_smp_mflags}
-
-%install
-%{__rm} -rf $RPM_BUILD_ROOT
-%{__make} DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor install
-
-find %{buildroot} -type f -name .packlist -exec rm -f '{}' \;
-find %{buildroot} -type f -name perllocal.pod -exec rm -f '{}' \;
-find %{buildroot} -type f -empty -exec rm -f '{}' \;
-find %{buildroot} -type f -name nginx.so -exec chmod u+w '{}' \;
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/nginx
-%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/html $RPM_BUILD_ROOT%{_datadir}/nginx/
-
-%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/*.default
-%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/fastcgi.conf
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/log/nginx
-%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/run/nginx
-%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/cache/nginx
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_libdir}/nginx/modules
-cd $RPM_BUILD_ROOT%{_sysconfdir}/nginx && \
-    %{__ln_s} ../..%{_libdir}/nginx/modules modules && cd -
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/doc/%{name}-%{main_version}
-%{__install} -m 644 -p %{SOURCE12} \
-    $RPM_BUILD_ROOT%{_datadir}/doc/%{name}-%{main_version}/
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf
-%{__install} -m 644 -p %{SOURCE4} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf
-%{__install} -m 644 -p %{SOURCE5} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/default.conf
-
-%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
-%{__install} -m 644 -p %{SOURCE3} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/nginx
-%{__install} -m 644 -p %{SOURCE7} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/nginx-debug
-
-%if %{use_systemd}
-# install systemd-specific files
-%{__mkdir} -p $RPM_BUILD_ROOT%{_unitdir}
-%{__install} -m644 %SOURCE8 \
-    $RPM_BUILD_ROOT%{_unitdir}/nginx.service
-%{__install} -m644 %SOURCE11 \
-    $RPM_BUILD_ROOT%{_unitdir}/nginx-debug.service
-%{__mkdir} -p $RPM_BUILD_ROOT%{_libexecdir}/initscripts/legacy-actions/nginx
-%{__install} -m755 %SOURCE9 \
-    $RPM_BUILD_ROOT%{_libexecdir}/initscripts/legacy-actions/nginx/upgrade
-%else
-# install SYSV init stuff
-%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir}
-%{__install} -m755 nginx.init $RPM_BUILD_ROOT%{_initrddir}/nginx
-%{__install} -m755 nginx-debug.init $RPM_BUILD_ROOT%{_initrddir}/nginx-debug
-%endif
-
-# install log rotation stuff
-%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
-%if 0%{?suse_version}
-%{__install} -m 644 -p %{SOURCE10} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/nginx
-%else
-%{__install} -m 644 -p %{SOURCE1} \
-    $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/nginx
-%endif
-
-%{__install} -m755 %{bdir}/objs/nginx-debug \
-    $RPM_BUILD_ROOT%{_sbindir}/nginx-debug
-
-%{__install} -m644 %{bdir}/objs/ngx_http_xslt_filter_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_http_xslt_filter_module-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_http_image_filter_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_http_image_filter_module-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_http_geoip_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_http_geoip_module-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_http_perl_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_http_perl_module-debug.so
-%{__mkdir} -p $RPM_BUILD_ROOT%{perl_vendorarch}/auto/nginx
-%{__install} -m644 %{bdir}/objs/src/http/modules/perl/blib/arch/auto/nginx/nginx-debug.so \
-    $RPM_BUILD_ROOT%{perl_vendorarch}/auto/nginx/nginx-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_http_js_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_http_js_module-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_stream_js_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_stream_js_module-debug.so
-%{__install} -m644 %{bdir}/objs/ngx_stream_geoip_module-debug.so \
-    $RPM_BUILD_ROOT%{_libdir}/nginx/modules/ngx_stream_geoip_module-debug.so
-
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-
-%{_sbindir}/nginx
-%{_sbindir}/nginx-debug
-
-%dir %{_sysconfdir}/nginx
-%dir %{_sysconfdir}/nginx/conf.d
-%{_sysconfdir}/nginx/modules
-
-%config(noreplace) %{_sysconfdir}/nginx/nginx.conf
-%config(noreplace) %{_sysconfdir}/nginx/conf.d/default.conf
-%config(noreplace) %{_sysconfdir}/nginx/mime.types
-%config(noreplace) %{_sysconfdir}/nginx/fastcgi_params
-%config(noreplace) %{_sysconfdir}/nginx/scgi_params
-%config(noreplace) %{_sysconfdir}/nginx/uwsgi_params
-%config(noreplace) %{_sysconfdir}/nginx/koi-utf
-%config(noreplace) %{_sysconfdir}/nginx/koi-win
-%config(noreplace) %{_sysconfdir}/nginx/win-utf
-
-%config(noreplace) %{_sysconfdir}/logrotate.d/nginx
-%config(noreplace) %{_sysconfdir}/sysconfig/nginx
-%config(noreplace) %{_sysconfdir}/sysconfig/nginx-debug
-%if %{use_systemd}
-%{_unitdir}/nginx.service
-%{_unitdir}/nginx-debug.service
-%dir %{_libexecdir}/initscripts/legacy-actions/nginx
-%{_libexecdir}/initscripts/legacy-actions/nginx/*
-%else
-%{_initrddir}/nginx
-%{_initrddir}/nginx-debug
-%endif
-
-%attr(0755,root,root) %dir %{_libdir}/nginx
-%attr(0755,root,root) %dir %{_libdir}/nginx/modules
-%dir %{_datadir}/nginx
-%dir %{_datadir}/nginx/html
-%{_datadir}/nginx/html/*
-
-%attr(0755,root,root) %dir %{_localstatedir}/cache/nginx
-%attr(0755,root,root) %dir %{_localstatedir}/log/nginx
-
-%dir %{_datadir}/doc/%{name}-%{main_version}
-%doc %{_datadir}/doc/%{name}-%{main_version}/COPYRIGHT
-
-%files module-xslt
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_xslt_filter_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_xslt_filter_module-debug.so
-
-%files module-image-filter
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_image_filter_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_image_filter_module-debug.so
-
-%files module-geoip
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_geoip_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_geoip_module-debug.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_stream_geoip_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_stream_geoip_module-debug.so
-
-%files module-perl
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_perl_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_perl_module-debug.so
-%dir %{perl_vendorarch}/auto/nginx
-%{perl_vendorarch}/nginx.pm
-%{perl_vendorarch}/auto/nginx/nginx.so
-%{perl_vendorarch}/auto/nginx/nginx-debug.so
-%{_mandir}/man3/nginx.3pm*
-
-%files module-njs
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_js_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_http_js_module-debug.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_stream_js_module.so
-%attr(0644,root,root) %{_libdir}/nginx/modules/ngx_stream_js_module-debug.so
-
-%pre
-# Add the "nginx" user
-getent group %{nginx_group} >/dev/null || groupadd -r %{nginx_group}
-getent passwd %{nginx_user} >/dev/null || \
-    useradd -r -g %{nginx_group} -s /sbin/nologin \
-    -d %{nginx_home} -c "nginx user"  %{nginx_user}
-exit 0
-
-%post
-# Register the nginx service
-if [ $1 -eq 1 ]; then
-%if %{use_systemd}
-    /usr/bin/systemctl preset nginx.service >/dev/null 2>&1 ||:
-    /usr/bin/systemctl preset nginx-debug.service >/dev/null 2>&1 ||:
-%else
-    /sbin/chkconfig --add nginx
-    /sbin/chkconfig --add nginx-debug
-%endif
-    # print site info
-    cat <<BANNER
-----------------------------------------------------------------------
-
-Thanks for using nginx!
-
-Please find the official documentation for nginx here:
-* http://nginx.org/en/docs/
-
-Commercial subscriptions for nginx are available on:
-* http://nginx.com/products/
-
-----------------------------------------------------------------------
-BANNER
-
-    # Touch and set permisions on default log files on installation
-
-    if [ -d %{_localstatedir}/log/nginx ]; then
-        if [ ! -e %{_localstatedir}/log/nginx/access.log ]; then
-            touch %{_localstatedir}/log/nginx/access.log
-            %{__chmod} 640 %{_localstatedir}/log/nginx/access.log
-            %{__chown} nginx:%{nginx_loggroup} %{_localstatedir}/log/nginx/access.log
-        fi
-
-        if [ ! -e %{_localstatedir}/log/nginx/error.log ]; then
-            touch %{_localstatedir}/log/nginx/error.log
-            %{__chmod} 640 %{_localstatedir}/log/nginx/error.log
-            %{__chown} nginx:%{nginx_loggroup} %{_localstatedir}/log/nginx/error.log
-        fi
-    fi
-fi
-
-%post module-xslt
-if [ $1 -eq 1 ]; then
-    cat <<BANNER
-----------------------------------------------------------------------
-
-The XSLT dynamic module for nginx has been installed.
-To enable this module, add the following to /etc/nginx/nginx.conf
-and reload nginx:
-
-    load_module modules/ngx_http_xslt_filter_module.so;
-
-Please refer to the module documentation for further details:
-http://nginx.org/en/docs/http/ngx_http_xslt_module.html
-
-----------------------------------------------------------------------
-BANNER
-fi
-
-%post module-geoip
-if [ $1 -eq 1 ]; then
-    cat <<BANNER
-----------------------------------------------------------------------
-
-The GeoIP dynamic modules for nginx have been installed.
-To enable those modules, add the following to /etc/nginx/nginx.conf
-and reload nginx:
-
-    load_module modules/ngx_http_geoip_module.so;
-    load_module modules/ngx_stream_geoip_module.so;
-
-Please refer to the modules documentation for further details:
-http://nginx.org/en/docs/http/ngx_http_geoip_module.html
-http://nginx.org/en/docs/stream/ngx_stream_geoip_module.html
-
-----------------------------------------------------------------------
-BANNER
-fi
-
-%post module-image-filter
-if [ $1 -eq 1 ]; then
-    cat <<BANNER
-----------------------------------------------------------------------
-
-The image filter dynamic module for nginx has been installed.
-To enable this module, add the following to /etc/nginx/nginx.conf
-and reload nginx:
-
-    load_module modules/ngx_http_image_filter_module.so;
-
-Please refer to the module documentation for further details:
-http://nginx.org/en/docs/http/ngx_http_image_filter_module.html
-
-----------------------------------------------------------------------
-BANNER
-fi
-
-%post module-perl
-if [ $1 -eq 1 ]; then
-    cat <<BANNER
-----------------------------------------------------------------------
-
-The perl dynamic module for nginx has been installed.
-To enable this module, add the following to /etc/nginx/nginx.conf
-and reload nginx:
-
-    load_module modules/ngx_http_perl_module.so;
-
-Please refer to the module documentation for further details:
-http://nginx.org/en/docs/http/ngx_http_perl_module.html
-
-----------------------------------------------------------------------
-BANNER
-fi
-
-%post module-njs
-if [ $1 -eq 1 ]; then
-    cat <<BANNER
-----------------------------------------------------------------------
-
-The nJScript dynamic modules for nginx have been installed.
-To enable those modules, add the following to /etc/nginx/nginx.conf
-and reload nginx:
-
-    load_module modules/ngx_http_js_module.so;
-    load_module modules/ngx_stream_js_module.so;
-
-Please refer to the modules documentation for further details:
-https://www.nginx.com/resources/wiki/nginScript/
-
-----------------------------------------------------------------------
-BANNER
-fi
-
-%preun
-if [ $1 -eq 0 ]; then
-%if %use_systemd
-    /usr/bin/systemctl --no-reload disable nginx.service >/dev/null 2>&1 ||:
-    /usr/bin/systemctl stop nginx.service >/dev/null 2>&1 ||:
-%else
-    /sbin/service nginx stop > /dev/null 2>&1
-    /sbin/chkconfig --del nginx
-    /sbin/chkconfig --del nginx-debug
-%endif
-fi
-
-%postun
-%if %use_systemd
-/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
-%endif
-if [ $1 -ge 1 ]; then
-    /sbin/service nginx status  >/dev/null 2>&1 || exit 0
-    /sbin/service nginx upgrade >/dev/null 2>&1 || echo \
-        "Binary upgrade failed, please check nginx's error.log"
-fi
-
-%changelog
-* Tue Sep 13 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.11.4.
-- njs updated to 0.1.2.
-
-* Tue Jul 26 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.11.3.
-- njs updated to 0.1.0.
-- njs stream dynamic module added to nginx-module-njs package.
-- geoip stream dynamic module added to nginx-module-geoip package.
-
-* Tue Jul  5 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.11.2
-- njs updated to ef2b708510b1.
-
-* Tue May 31 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.11.1
-
-* Wed May 24 2016 Sergey Budnevitch <sb@nginx.com>
-- Fixed logrotate error if nginx is not running
-- 1.11.0
-
-* Tue Apr 19 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.15
-- njs updated to 1c50334fbea6.
-
-* Tue Apr  5 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.14
-
-* Tue Mar 29 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.13
-- Added perl and nJScript dynamic modules
-- Fixed Requires section for dynamic modules on CentOS7/RHEL7
-
-* Wed Feb 24 2016 Sergey Budnevitch <sb@nginx.com>
-- common configure args are now in macros
-- xslt, image-filter and geoip dynamic modules added
-- 1.9.12
-
-* Tue Feb  9 2016 Sergey Budnevitch <sb@nginx.com>
-- dynamic modules path and symlink in %{_sysconfdir}/nginx added
-- 1.9.11
-
-* Tue Jan 26 2016 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.10
-
-* Wed Dec  9 2015 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.9
-
-* Tue Dec  8 2015 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.8
-- http_slice module enabled
-
-* Tue Nov 17 2015 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.7
-
-* Tue Oct 27 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.9.6
-
-* Tue Sep 22 2015 Andrei Belov <defan@nginx.com>
-- 1.9.5
-- http_spdy module replaced with http_v2 module
-
-* Tue Aug 18 2015 Konstantin Pavlov <thresh@nginx.com>
-- 1.9.4
-
-* Tue Jul 14 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.9.3
-
-* Tue May 26 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.9.1
-
-* Tue Apr 28 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.9.0
-- thread pool support added
-- stream module added
-- example_ssl.conf removed
-
-* Tue Apr  7 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.7.12
-
-* Tue Mar 24 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.7.11
-
-* Tue Feb 10 2015 Sergey Budnevitch <sb@nginx.com>
-- 1.7.10
-
-* Tue Dec 23 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.9
-
-* Tue Dec  2 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.8
-
-* Tue Sep 30 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.6
-
-* Tue Sep 16 2014 Sergey Budnevitch <sb@nginx.com>
-- epoch added to the EPEL7/CentOS7 spec to override EPEL one
-- 1.7.5
-
-* Tue Aug  5 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.4
-
-* Tue Jul  8 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.3
-
-* Tue Jun 17 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.2
-
-* Tue May 27 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.7.1
-- incorrect sysconfig filename finding in the initscript fixed
-
-* Thu Apr 24 2014 Konstantin Pavlov <thresh@nginx.com>
-- 1.7.0
-
-* Tue Apr  8 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.5.13
-- built spdy module on rhel/centos 6
-
-* Tue Mar 18 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.5.12
-- spec cleanup
-- openssl version dependence added
-- upgrade() function in the init script improved
-- warning added when binary upgrade returns non-zero exit code
-
-* Tue Mar  4 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.5.11
-
-* Tue Feb  4 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.5.10
-
-* Wed Jan 22 2014 Sergey Budnevitch <sb@nginx.com>
-- 1.5.9
-
-* Tue Dec 17 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.8
-- fixed invalid week days in the changelog
-
-* Tue Nov 19 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.7
-
-* Tue Oct  1 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.6
-
-* Tue Sep 17 2013 Andrei Belov <defan@nginx.com>
-- 1.5.5
-
-* Tue Aug 27 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.4
-- auth request module added
-
-* Tue Jul 30 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.3
-
-* Tue Jul  2 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.2
-
-* Tue Jun  4 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.1
-
-* Mon May  6 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.5.0
-
-* Tue Apr 16 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.3.16
-
-* Tue Mar 26 2013 Sergey Budnevitch <sb@nginx.com>
-- 1.3.15
-- gunzip module added
-- set permissions on default log files at installation
-
-* Tue Feb 12 2013 Sergey Budnevitch <sb@nginx.com>
-- excess slash removed from --prefix
-- 1.2.7
-
-* Tue Dec 11 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.6
-
-* Tue Nov 13 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.5
-
-* Tue Sep 25 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.4
-
-* Tue Aug  7 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.3
-- nginx-debug package now actually contains non stripped binary
-
-* Tue Jul  3 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.2
-
-* Tue Jun  5 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.1
-
-* Mon Apr 23 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.2.0
-
-* Thu Apr 12 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.0.15
-
-* Thu Mar 15 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.0.14
-- OpenSUSE init script and SuSE specific changes to spec file added
-
-* Mon Mar  5 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.0.13
-
-* Mon Feb  6 2012 Sergey Budnevitch <sb@nginx.com>
-- 1.0.12
-- banner added to install script
-
-* Thu Dec 15 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.11
-- init script enhancements (thanks to Gena Makhomed)
-- one second sleep during upgrade replaced with 0.1 sec usleep
-
-* Tue Nov 15 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.10
-
-* Tue Nov  1 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.9
-- nginx-debug package added
-
-* Tue Oct 11 2011 Sergey Budnevitch <sb@nginx.com>
-- spec file cleanup (thanks to Yury V. Zaytsev)
-- log dir permitions fixed
-- logrotate creates new logfiles with nginx owner
-- "upgrade" argument to init-script added (based on fedora one)
-
-* Sat Oct  1 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.8
-- built with mp4 module
-
-* Fri Sep 30 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.7
-
-* Tue Aug 30 2011 Sergey Budnevitch <sb@nginx.com>
-- 1.0.6
-- replace "conf.d/*" config include with "conf.d/*.conf" in default nginx.conf
-
-* Wed Aug 10 2011 Sergey Budnevitch
-- Initial release
diff --git a/rpm/SPECS/nginx.spec.in b/rpm/SPECS/nginx.spec.in
new file mode 100644
index 0000000..9629d01
--- /dev/null
+++ b/rpm/SPECS/nginx.spec.in
@@ -0,0 +1,550 @@
+#
+%define nginx_home %{_localstatedir}/cache/nginx
+%define nginx_user nginx
+%define nginx_group nginx
+%define nginx_loggroup adm
+
+# distribution specific definitions
+%define use_systemd (0%{?fedora} && 0%{?fedora} >= 18) || (0%{?rhel} && 0%{?rhel} >= 7) || (0%{?suse_version} == 1315)
+
+%if 0%{?rhel} == 5
+%define _group System Environment/Daemons
+Requires(pre): shadow-utils
+Requires: initscripts >= 8.36
+Requires(post): chkconfig
+Requires: openssl
+BuildRequires: openssl-devel
+%endif
+
+%if 0%{?rhel} == 6
+%define _group System Environment/Daemons
+Requires(pre): shadow-utils
+Requires: initscripts >= 8.36
+Requires(post): chkconfig
+Requires: openssl >= 1.0.1
+BuildRequires: openssl-devel >= 1.0.1
+%endif
+
+%if 0%{?rhel} == 7
+%define _group System Environment/Daemons
+%define epoch 1
+Epoch: %{epoch}
+Requires(pre): shadow-utils
+Requires: systemd
+Requires: openssl >= 1.0.1
+BuildRequires: systemd
+BuildRequires: openssl-devel >= 1.0.1
+%endif
+
+%if 0%{?suse_version} == 1315
+%define _group Productivity/Networking/Web/Servers
+%define nginx_loggroup trusted
+Requires(pre): shadow
+Requires: systemd
+BuildRequires: libopenssl-devel
+BuildRequires: systemd
+%endif
+
+# end of distribution specific definitions
+
+%define main_version %%MAIN_VERSION%%
+%define main_release %%MAIN_RELEASE%%%{?dist}.ngx
+
+%define bdir %{_builddir}/%{name}-%{main_version}
+
+%define WITH_CC_OPT $(echo %{optflags} $(pcre-config --cflags))
+
+%define BASE_CONFIGURE_ARGS $(echo "%%BASE_CONFIGURE_ARGS%%")
+
+Summary: High performance web server
+Name: nginx
+Version: %{main_version}
+Release: %{main_release}
+Vendor: Nginx, Inc.
+URL: http://nginx.org/
+Group: %{_group}
+
+Source0: http://nginx.org/download/%{name}-%{version}.tar.gz
+Source1: logrotate
+Source2: nginx.init.in
+Source3: nginx.sysconf
+Source4: nginx.conf
+Source5: nginx.vh.default.conf
+Source7: nginx-debug.sysconf
+Source8: nginx.service
+Source9: nginx.upgrade.sh
+Source10: nginx.suse.logrotate
+Source11: nginx-debug.service
+Source12: COPYRIGHT
+
+License: 2-clause BSD-like license
+
+BuildRoot: %{_tmppath}/%{name}-%{main_version}-%{main_release}-root
+BuildRequires: zlib-devel
+BuildRequires: pcre-devel
+
+Provides: webserver
+
+%description
+nginx [engine x] is an HTTP and reverse proxy server, as well as
+a mail proxy server.
+
+%if 0%{?suse_version} == 1315
+%debug_package
+%endif
+
+%prep
+%setup -q
+cp %{SOURCE2} .
+sed -e 's|%%DEFAULTSTART%%|2 3 4 5|g' -e 's|%%DEFAULTSTOP%%|0 1 6|g' \
+    -e 's|%%PROVIDES%%|nginx|g' < %{SOURCE2} > nginx.init
+sed -e 's|%%DEFAULTSTART%%||g' -e 's|%%DEFAULTSTOP%%|0 1 2 3 4 5 6|g' \
+    -e 's|%%PROVIDES%%|nginx-debug|g' < %{SOURCE2} > nginx-debug.init
+
+%build
+./configure %{BASE_CONFIGURE_ARGS} \
+    --with-cc-opt="%{WITH_CC_OPT}" \
+    --with-debug
+make %{?_smp_mflags}
+%{__mv} %{bdir}/objs/nginx \
+    %{bdir}/objs/nginx-debug
+./configure %{BASE_CONFIGURE_ARGS} \
+    --with-cc-opt="%{WITH_CC_OPT}"
+make %{?_smp_mflags}
+
+%install
+%{__rm} -rf $RPM_BUILD_ROOT
+%{__make} DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor install
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/nginx
+%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/html $RPM_BUILD_ROOT%{_datadir}/nginx/
+
+%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/*.default
+%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/nginx/fastcgi.conf
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/log/nginx
+%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/run/nginx
+%{__mkdir} -p $RPM_BUILD_ROOT%{_localstatedir}/cache/nginx
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_libdir}/nginx/modules
+cd $RPM_BUILD_ROOT%{_sysconfdir}/nginx && \
+    %{__ln_s} ../..%{_libdir}/nginx/modules modules && cd -
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/doc/%{name}-%{main_version}
+%{__install} -m 644 -p %{SOURCE12} \
+    $RPM_BUILD_ROOT%{_datadir}/doc/%{name}-%{main_version}/
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf
+%{__install} -m 644 -p %{SOURCE4} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/nginx/nginx.conf
+%{__install} -m 644 -p %{SOURCE5} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/default.conf
+
+%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+%{__install} -m 644 -p %{SOURCE3} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/nginx
+%{__install} -m 644 -p %{SOURCE7} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/nginx-debug
+
+%{__install} -p -D -m 0644 %{bdir}/objs/nginx.8 \
+    $RPM_BUILD_ROOT%{_mandir}/man8/nginx.8
+
+%if %{use_systemd}
+# install systemd-specific files
+%{__mkdir} -p $RPM_BUILD_ROOT%{_unitdir}
+%{__install} -m644 %SOURCE8 \
+    $RPM_BUILD_ROOT%{_unitdir}/nginx.service
+%{__install} -m644 %SOURCE11 \
+    $RPM_BUILD_ROOT%{_unitdir}/nginx-debug.service
+%{__mkdir} -p $RPM_BUILD_ROOT%{_libexecdir}/initscripts/legacy-actions/nginx
+%{__install} -m755 %SOURCE9 \
+    $RPM_BUILD_ROOT%{_libexecdir}/initscripts/legacy-actions/nginx/upgrade
+%else
+# install SYSV init stuff
+%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir}
+%{__install} -m755 nginx.init $RPM_BUILD_ROOT%{_initrddir}/nginx
+%{__install} -m755 nginx-debug.init $RPM_BUILD_ROOT%{_initrddir}/nginx-debug
+%endif
+
+# install log rotation stuff
+%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
+%if 0%{?suse_version}
+%{__install} -m 644 -p %{SOURCE10} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/nginx
+%else
+%{__install} -m 644 -p %{SOURCE1} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/nginx
+%endif
+
+%{__install} -m755 %{bdir}/objs/nginx-debug \
+    $RPM_BUILD_ROOT%{_sbindir}/nginx-debug
+
+%clean
+%{__rm} -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+
+%{_sbindir}/nginx
+%{_sbindir}/nginx-debug
+
+%dir %{_sysconfdir}/nginx
+%dir %{_sysconfdir}/nginx/conf.d
+%{_sysconfdir}/nginx/modules
+
+%config(noreplace) %{_sysconfdir}/nginx/nginx.conf
+%config(noreplace) %{_sysconfdir}/nginx/conf.d/default.conf
+%config(noreplace) %{_sysconfdir}/nginx/mime.types
+%config(noreplace) %{_sysconfdir}/nginx/fastcgi_params
+%config(noreplace) %{_sysconfdir}/nginx/scgi_params
+%config(noreplace) %{_sysconfdir}/nginx/uwsgi_params
+%config(noreplace) %{_sysconfdir}/nginx/koi-utf
+%config(noreplace) %{_sysconfdir}/nginx/koi-win
+%config(noreplace) %{_sysconfdir}/nginx/win-utf
+
+%config(noreplace) %{_sysconfdir}/logrotate.d/nginx
+%config(noreplace) %{_sysconfdir}/sysconfig/nginx
+%config(noreplace) %{_sysconfdir}/sysconfig/nginx-debug
+%if %{use_systemd}
+%{_unitdir}/nginx.service
+%{_unitdir}/nginx-debug.service
+%dir %{_libexecdir}/initscripts/legacy-actions/nginx
+%{_libexecdir}/initscripts/legacy-actions/nginx/*
+%else
+%{_initrddir}/nginx
+%{_initrddir}/nginx-debug
+%endif
+
+%attr(0755,root,root) %dir %{_libdir}/nginx
+%attr(0755,root,root) %dir %{_libdir}/nginx/modules
+%dir %{_datadir}/nginx
+%dir %{_datadir}/nginx/html
+%{_datadir}/nginx/html/*
+
+%attr(0755,root,root) %dir %{_localstatedir}/cache/nginx
+%attr(0755,root,root) %dir %{_localstatedir}/log/nginx
+
+%dir %{_datadir}/doc/%{name}-%{main_version}
+%doc %{_datadir}/doc/%{name}-%{main_version}/COPYRIGHT
+%{_mandir}/man8/nginx.8*
+
+%pre
+# Add the "nginx" user
+getent group %{nginx_group} >/dev/null || groupadd -r %{nginx_group}
+getent passwd %{nginx_user} >/dev/null || \
+    useradd -r -g %{nginx_group} -s /sbin/nologin \
+    -d %{nginx_home} -c "nginx user"  %{nginx_user}
+exit 0
+
+%post
+# Register the nginx service
+if [ $1 -eq 1 ]; then
+%if %{use_systemd}
+    /usr/bin/systemctl preset nginx.service >/dev/null 2>&1 ||:
+    /usr/bin/systemctl preset nginx-debug.service >/dev/null 2>&1 ||:
+%else
+    /sbin/chkconfig --add nginx
+    /sbin/chkconfig --add nginx-debug
+%endif
+    # print site info
+    cat <<BANNER
+----------------------------------------------------------------------
+
+Thanks for using nginx!
+
+Please find the official documentation for nginx here:
+* http://nginx.org/en/docs/
+
+Commercial subscriptions for nginx are available on:
+* http://nginx.com/products/
+
+----------------------------------------------------------------------
+BANNER
+
+    # Touch and set permisions on default log files on installation
+
+    if [ -d %{_localstatedir}/log/nginx ]; then
+        if [ ! -e %{_localstatedir}/log/nginx/access.log ]; then
+            touch %{_localstatedir}/log/nginx/access.log
+            %{__chmod} 640 %{_localstatedir}/log/nginx/access.log
+            %{__chown} nginx:%{nginx_loggroup} %{_localstatedir}/log/nginx/access.log
+        fi
+
+        if [ ! -e %{_localstatedir}/log/nginx/error.log ]; then
+            touch %{_localstatedir}/log/nginx/error.log
+            %{__chmod} 640 %{_localstatedir}/log/nginx/error.log
+            %{__chown} nginx:%{nginx_loggroup} %{_localstatedir}/log/nginx/error.log
+        fi
+    fi
+fi
+
+%preun
+if [ $1 -eq 0 ]; then
+%if %use_systemd
+    /usr/bin/systemctl --no-reload disable nginx.service >/dev/null 2>&1 ||:
+    /usr/bin/systemctl stop nginx.service >/dev/null 2>&1 ||:
+%else
+    /sbin/service nginx stop > /dev/null 2>&1
+    /sbin/chkconfig --del nginx
+    /sbin/chkconfig --del nginx-debug
+%endif
+fi
+
+%postun
+%if %use_systemd
+/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
+%endif
+if [ $1 -ge 1 ]; then
+    /sbin/service nginx status  >/dev/null 2>&1 || exit 0
+    /sbin/service nginx upgrade >/dev/null 2>&1 || echo \
+        "Binary upgrade failed, please check nginx's error.log"
+fi
+
+%changelog
+* Mon Oct 10 2016 Andrei Belov <defan@nginx.com>
+- 1.11.5
+
+* Tue Sep 13 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.11.4.
+- njs updated to 0.1.2.
+
+* Tue Jul 26 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.11.3.
+- njs updated to 0.1.0.
+- njs stream dynamic module added to nginx-module-njs package.
+- geoip stream dynamic module added to nginx-module-geoip package.
+
+* Tue Jul  5 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.11.2
+- njs updated to ef2b708510b1.
+
+* Tue May 31 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.11.1
+
+* Wed May 24 2016 Sergey Budnevitch <sb@nginx.com>
+- Fixed logrotate error if nginx is not running
+- 1.11.0
+
+* Tue Apr 19 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.15
+- njs updated to 1c50334fbea6.
+
+* Tue Apr  5 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.14
+
+* Tue Mar 29 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.13
+- Added perl and nJScript dynamic modules
+- Fixed Requires section for dynamic modules on CentOS7/RHEL7
+
+* Wed Feb 24 2016 Sergey Budnevitch <sb@nginx.com>
+- common configure args are now in macros
+- xslt, image-filter and geoip dynamic modules added
+- 1.9.12
+
+* Tue Feb  9 2016 Sergey Budnevitch <sb@nginx.com>
+- dynamic modules path and symlink in %{_sysconfdir}/nginx added
+- 1.9.11
+
+* Tue Jan 26 2016 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.10
+
+* Wed Dec  9 2015 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.9
+
+* Tue Dec  8 2015 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.8
+- http_slice module enabled
+
+* Tue Nov 17 2015 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.7
+
+* Tue Oct 27 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.9.6
+
+* Tue Sep 22 2015 Andrei Belov <defan@nginx.com>
+- 1.9.5
+- http_spdy module replaced with http_v2 module
+
+* Tue Aug 18 2015 Konstantin Pavlov <thresh@nginx.com>
+- 1.9.4
+
+* Tue Jul 14 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.9.3
+
+* Tue May 26 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.9.1
+
+* Tue Apr 28 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.9.0
+- thread pool support added
+- stream module added
+- example_ssl.conf removed
+
+* Tue Apr  7 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.7.12
+
+* Tue Mar 24 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.7.11
+
+* Tue Feb 10 2015 Sergey Budnevitch <sb@nginx.com>
+- 1.7.10
+
+* Tue Dec 23 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.9
+
+* Tue Dec  2 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.8
+
+* Tue Sep 30 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.6
+
+* Tue Sep 16 2014 Sergey Budnevitch <sb@nginx.com>
+- epoch added to the EPEL7/CentOS7 spec to override EPEL one
+- 1.7.5
+
+* Tue Aug  5 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.4
+
+* Tue Jul  8 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.3
+
+* Tue Jun 17 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.2
+
+* Tue May 27 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.7.1
+- incorrect sysconfig filename finding in the initscript fixed
+
+* Thu Apr 24 2014 Konstantin Pavlov <thresh@nginx.com>
+- 1.7.0
+
+* Tue Apr  8 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.5.13
+- built spdy module on rhel/centos 6
+
+* Tue Mar 18 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.5.12
+- spec cleanup
+- openssl version dependence added
+- upgrade() function in the init script improved
+- warning added when binary upgrade returns non-zero exit code
+
+* Tue Mar  4 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.5.11
+
+* Tue Feb  4 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.5.10
+
+* Wed Jan 22 2014 Sergey Budnevitch <sb@nginx.com>
+- 1.5.9
+
+* Tue Dec 17 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.8
+- fixed invalid week days in the changelog
+
+* Tue Nov 19 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.7
+
+* Tue Oct  1 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.6
+
+* Tue Sep 17 2013 Andrei Belov <defan@nginx.com>
+- 1.5.5
+
+* Tue Aug 27 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.4
+- auth request module added
+
+* Tue Jul 30 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.3
+
+* Tue Jul  2 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.2
+
+* Tue Jun  4 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.1
+
+* Mon May  6 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.5.0
+
+* Tue Apr 16 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.3.16
+
+* Tue Mar 26 2013 Sergey Budnevitch <sb@nginx.com>
+- 1.3.15
+- gunzip module added
+- set permissions on default log files at installation
+
+* Tue Feb 12 2013 Sergey Budnevitch <sb@nginx.com>
+- excess slash removed from --prefix
+- 1.2.7
+
+* Tue Dec 11 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.6
+
+* Tue Nov 13 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.5
+
+* Tue Sep 25 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.4
+
+* Tue Aug  7 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.3
+- nginx-debug package now actually contains non stripped binary
+
+* Tue Jul  3 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.2
+
+* Tue Jun  5 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.1
+
+* Mon Apr 23 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.2.0
+
+* Thu Apr 12 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.0.15
+
+* Thu Mar 15 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.0.14
+- OpenSUSE init script and SuSE specific changes to spec file added
+
+* Mon Mar  5 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.0.13
+
+* Mon Feb  6 2012 Sergey Budnevitch <sb@nginx.com>
+- 1.0.12
+- banner added to install script
+
+* Thu Dec 15 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.11
+- init script enhancements (thanks to Gena Makhomed)
+- one second sleep during upgrade replaced with 0.1 sec usleep
+
+* Tue Nov 15 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.10
+
+* Tue Nov  1 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.9
+- nginx-debug package added
+
+* Tue Oct 11 2011 Sergey Budnevitch <sb@nginx.com>
+- spec file cleanup (thanks to Yury V. Zaytsev)
+- log dir permitions fixed
+- logrotate creates new logfiles with nginx owner
+- "upgrade" argument to init-script added (based on fedora one)
+
+* Sat Oct  1 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.8
+- built with mp4 module
+
+* Fri Sep 30 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.7
+
+* Tue Aug 30 2011 Sergey Budnevitch <sb@nginx.com>
+- 1.0.6
+- replace "conf.d/*" config include with "conf.d/*.conf" in default nginx.conf
+
+* Wed Aug 10 2011 Sergey Budnevitch
+- Initial release
