# Template file for 'nginx'
pkgname=nginx
reverts="1.17.7_1"
version=1.18.0
revision=2
build_style=gnu-makefile
hostmakedepends="libressl-devel pcre-devel $(vopt_if geoip geoip-devel)"
makedepends="${hostmakedepends}"
short_desc="High performance web and reverse proxy server"
maintainer="Orphaned <orphan@voidlinux.org>"
license="BSD-2-Clause"
homepage="https://nginx.org"
distfiles="https://nginx.org/download/nginx-${version}.tar.gz"
checksum=4c373e7ab5bf91d34a4f11a0c9496561061ba5eee6020db272a17a7228d35f99

# NOTE:
# On update, the pregenerated header file for ARM may need synchronization.
# See srcpkgs/nginx/files/ngx_auto_config.h.armv6l.patch for more information.

conf_files="/etc/nginx/fastcgi.conf
 /etc/nginx/fastcgi_params
 /etc/nginx/koi-win
 /etc/nginx/koi-utf
 /etc/nginx/mime.types
 /etc/nginx/nginx.conf
 /etc/nginx/scgi_params
 /etc/nginx/uwsgi_params
 /etc/nginx/win-utf"
system_accounts="nginx"
nginx_homedir="/var/tmp/nginx"
make_dirs="/var/log/nginx 0750 root root
 /var/tmp 1777 root root
 /var/tmp/nginx 0750 nginx root"

build_options="geoip stream"
desc_option_stream="Enable support for stream proxies"
build_options_default="geoip stream"

do_configure() {
	local cfgdir=/etc/nginx
	local tmpdir=/var/tmp/nginx

	if [ "$CROSS_BUILD" ]; then
		# fake configure run on host
		unset CC CPP LD CFLAGS CPPFLAGS LDFLAGS
	fi

	local stream_modules="\
		--with-stream \
		--with-stream_realip_module \
		--with-stream_ssl_module \
		--with-stream_ssl_preread_module \
		$(vopt_if geoip --with-stream_geoip_module) \
	"

	./configure --prefix=${cfgdir} \
		--conf-path=${cfgdir}/nginx.conf \
		--sbin-path=/usr/bin/nginx \
		--pid-path=/run/nginx.pid \
		--lock-path=/var/lock/nginx.lock \
		--user=nginx --group=nginx \
		--http-log-path=/var/log/nginx/access.log \
		--error-log-path=/var/log/nginx/error.log \
		--http-client-body-temp-path=${tmpdir}/client-body \
		--http-proxy-temp-path=${tmpdir}/proxy \
		--http-fastcgi-temp-path=${tmpdir}/fastcgi \
		--http-scgi-temp-path=${tmpdir}/scgi \
		--http-uwsgi-temp-path=${tmpdir}/uwsgi \
		--with-mail --with-mail_ssl_module \
		--with-pcre-jit --with-file-aio \
		--with-http_gunzip_module \
		--with-http_v2_module \
		--with-http_dav_module \
		--with-http_gzip_static_module \
		--with-http_realip_module \
		--with-http_ssl_module \
		--with-http_stub_status_module \
		--with-http_sub_module \
		$(vopt_if geoip --with-http_geoip_module) \
		$(vopt_if stream "$stream_modules")
}

pre_build() {
	if [ "$CROSS_BUILD" ]; then
		case "$XBPS_TARGET_MACHINE" in
			arm*|aarch64*) cp "${FILESDIR}/ngx_auto_config.h.armv6l" objs/ngx_auto_config.h;;
		esac
	fi

	sed -i 's/-lcrypt/$(LDFLAGS) &/' objs/Makefile
}

post_install() {
	sed -e 's|\<user\s\+\w\+;|user html;|g' \
		-e '44s|html|/usr/share/nginx/html|' \
		-e '54s|html|/usr/share/nginx/html|' \
		-i "$DESTDIR/etc/nginx/nginx.conf"
	rm -- "$DESTDIR"/etc/nginx/*.default

	vmkdir usr/share/nginx
	mv "$DESTDIR/etc/nginx/html" "$DESTDIR/usr/share/nginx"

	vman man/nginx.8

	vlicense LICENSE
	vsv nginx
}
