#
%define nginx_user nginx
%define nginx_group nginx

%if "%%MODULE_CONFIGURE_ARGS%%" == ""
%define META_MODULE 1
%else
%define META_MODULE 0
%endif

%if 0%{?rhel} || 0%{?amzn}
%define _group System Environment/Daemons
%if 0%{?amzn} >= 2
BuildRequires: openssl11-devel
%else
BuildRequires: openssl-devel
%endif
%endif

%if 0%{?suse_version} >= 1315
%define _group Productivity/Networking/Web/Servers
BuildRequires: libopenssl-devel
%define _debugsource_template %{nil}
%endif

%if (0%{?rhel} == 7) && (0%{?amzn} == 0)
%define dist .el7
%endif

%if 0%{?rhel} == 8
%define _debugsource_template %{nil}
%endif

%if 0%{?fedora}
%define _debugsource_template %{nil}
%global _hardened_build 1
%endif

%%MODULE_DEFINITIONS%%

%define base_version %%BASE_VERSION%%
%if "x%%BASE_SUFFIX%%" != "x"
%define base_suffix %%BASE_SUFFIX%%
%endif
%define base_release %%BASE_RELEASE%%%{?dist}.ngx
%define plus_version %%PLUS_VERSION%%

%define bdir %{_builddir}/%{name}-%{base_version}

Summary: %%SUMMARY%%
Name: %%NAME%%
Version: %%VERSION_PREFIX%%%%VERSION%%
Release: %%RELEASE%%%{?dist}.ngx
Vendor: %%PACKAGE_VENDOR%%
URL: %%MODULE_PACKAGE_URL%%
Group: %{_group}

%if %{META_MODULE} == 1
BuildArch: noarch
%endif

Source0: nginx%{?base_suffix}-%{base_version}.tar.gz
Source1: %%COPYRIGHT_SOURCE%%
%%MODULE_SOURCES%%

%%MODULE_PATCHES%%

License: %%MODULE_PACKAGE_LICENSE%%

BuildRoot: %{_tmppath}/%{name}-%{base_version}-%{base_release}-root
BuildRequires: zlib-devel
BuildRequires: pcre-devel
Requires: nginx-plus-r%{plus_version}
Provides: %{name}-r%{plus_version}

%description
NGINX Plus: %%SHORT_SUMMARY%%.

%if 0%{?suse_version}
%debug_package
%endif

%define WITH_CC_OPT $(echo %{optflags} $(pcre-config --cflags))
%define WITH_LD_OPT -Wl,-z,relro -Wl,-z,now

%define BASE_CONFIGURE_ARGS $(echo "%%BASE_CONFIGURE_ARGS%%")
%define MODULE_CONFIGURE_ARGS $(echo "%%MODULE_CONFIGURE_ARGS%%")

%prep
%setup -qcTn %{name}-%{base_version}
%if %{META_MODULE} == 0
	tar --strip-components=1 -zxf %{SOURCE0}
	if ! test -e configure ; then ln -s auto/configure ./ ; fi
%endif
%%MODULE_PREP_SOURCES%%
%%MODULE_PREP_PATCHES%%

%build
%%MODULE_PREBUILD%%

%if %{META_MODULE} == 0
	cd %{bdir}
	%%MODULE_ENV%%
	./configure %{BASE_CONFIGURE_ARGS} %{MODULE_CONFIGURE_ARGS} \
		--with-cc-opt="%{WITH_CC_OPT} %%MODULE_CC_OPT_DEBUG%%" \
		--with-ld-opt="%{WITH_LD_OPT} %%MODULE_LD_OPT_DEBUG%%" \
		--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
	%%MODULE_ENV%%
	./configure %{BASE_CONFIGURE_ARGS} %{MODULE_CONFIGURE_ARGS} \
		--with-cc-opt="%{WITH_CC_OPT} %%MODULE_CC_OPT%%" \
		--with-ld-opt="%{WITH_LD_OPT} %%MODULE_LD_OPT%%"
	make %{?_smp_mflags} modules
%endif

%check
%{__rm} -rf $RPM_BUILD_ROOT/usr/src
cd %{bdir}
grep -v 'usr/src' debugfiles.list > debugfiles.list.new && mv debugfiles.list.new debugfiles.list
cat /dev/null > debugsources.list
%if 0%{?suse_version} >= 1500
cat /dev/null > debugsourcefiles.list
%endif

%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%%/COPYRIGHT

%%MODULE_PREINSTALL%%

%if %{META_MODULE} == 0
	%{__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
%endif

%clean
%{__rm} -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%if %{META_MODULE} == 0
%{_libdir}/nginx/modules/*
%endif
%dir %{_datadir}/doc/%%NAME%%
%{_datadir}/doc/%%NAME%%/*
%%MODULE_FILES%%

%pre

%post
if [ $1 -eq 1 ]; then
%%MODULE_POST%%
fi

%preun

%postun

%changelog
