# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apache2
pkgver=2.4.9
pkgrel=1
pkgdesc="A high performance Unix-based HTTP server"
url="http://httpd.apache.org/"
arch="all"
license="ASL 2.0"
depends=""
install="$pkgname.pre-upgrade"
pkgusers="apache"
pkggroups="apache"
makedepends="openssl-dev zlib-dev apr-util-dev apr-dev pcre-dev sed lua-dev
	autoconf automake"
subpackages="$pkgname-dev $pkgname-doc $pkgname-utils $pkgname-ssl
	$pkgname-ldap $pkgname-webdav
	$pkgname-proxy-html:proxy_html
	$pkgname-proxy
	$pkgname-lua:_lua"
source="http://archive.apache.org/dist/httpd/httpd-$pkgver.tar.bz2
	apache2.confd
	apache2.logrotate
	apache2.initd
	httpd.conf
	ssl.conf
	ldap.conf
	proxy-html.conf
	proxy.conf
	lua.conf
	alpine.layout
	"
_builddir="$srcdir"/httpd-$pkgver

prepare() {
	cd "$srcdir"/httpd-$pkgver
	cat "$srcdir/alpine.layout" >> config.layout
}

build() {
	cd "$srcdir"/httpd-$pkgver
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--enable-layout=Alpine \
		--enable-so \
		--enable-suexec \
		--with-suexec-caller=http \
		--with-suexec-docroot=/var/www/localhost/htdocs \
		--with-suexec-logfile=/var/log/httpd/suexec.log \
		--with-suexec-bin=/usr/sbin/suexec \
		--with-suexec-uidmin=99 \
		--with-suexec-gidmin=99 \
		--with-apr=/usr/bin/apr-1-config \
		--with-apr-util=/usr/bin/apu-1-config \
		--with-pcre=/usr \
		--enable-mods-shared=all \
		--enable-mpms-shared=all \
		--enable-ssl \
		--with-ssl \
		--enable-proxy \
		--enable-cache \
		--enable-disk-cache \
		--enable-mem-cache \
		--enable-file-cache \
		--enable-ldap \
		--enable-authnz-ldap \
		--enable-cgid \
		--enable-cgi \
		--enable-authn-anon \
		--enable-authn-alias \
		--disable-imagemap \
		--enable-proxy-connect \
		--enable-proxy-http \
		--enable-proxy-ftp \
		--enable-deflate \
		--enable-dbd \
		--enable-exception-hook \
		--enable-dav \
		--enable-dav-fs \
		--enable-dav-lock \
		|| return 1
	make || return 1
}

package() {
	cd "$srcdir"/httpd-$pkgver
	make -j1 DESTDIR="$pkgdir" install || return 1
	# config
	rm -r "$pkgdir"/etc/apache2/httpd.conf \
		"$pkgdir"/etc/apache2/extra
	install -D -m644 "$srcdir"/httpd.conf "$pkgdir"/etc/apache2/httpd.conf \
		|| return 1
	install -d "$pkgdir"/etc/apache2/conf.d || return 1

	# init scripts and logrotate
	install -D -m755 "$srcdir"/apache2.initd \
		"$pkgdir"/etc/init.d/apache2 || return 1
	install -D -m644 "$srcdir"/apache2.logrotate \
		"$pkgdir"/etc/logrotate.d/apache2 || return 1
	install -D -m644 "$srcdir"/apache2.confd \
		"$pkgdir"/etc/conf.d/apache2 || return 1

	install -d "$pkgdir"/var/www || return 1
	ln -fs /var/log/apache2 "$pkgdir"/var/www/logs
	ln -fs /var/run/apache2 "$pkgdir"/var/www/run
	ln -fs /usr/lib/apache2 "$pkgdir"/var/www/modules
	ln -fs /etc/apache2/conf.d "$pkgdir"/var/www/conf.d

	# verify all MPMs are built
	# ref #2866
	for i in prefork event worker; do
		if ! [ -e "$pkgdir"/usr/lib/apache2/mod_mpm_$i.so ]; then
			error "$i MPM was not built"
			return 1
		fi
	done
}

# include the builddir and apxs in -dev package
dev() {
	local _mpm
	local _file
	default_dev
	depends="$depends perl apr-util-dev"
	arch="noarch"

	# install apxs utility
	install -d "$subpkgdir"/usr/bin || return 1
	mv "$pkgdir"/usr/bin/apxs \
		"$subpkgdir"/usr/bin/apxs || return 1


	install -d "$subpkgdir"/usr/share/apache2/build
	mv "$pkgdir"/usr/share/apache2/build/* \
		"$subpkgdir"/usr/share/apache2/build/ || return 1
}

utils() {
	local _bin
	pkgdesc="Apache utility programs for webservers"
	install -d "$subpkgdir"/usr/sbin || return 1
	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
	for i in checkgid htcacheclean rotatelogs; do
		mv "$pkgdir"/usr/sbin/$i "$subpkgdir"/usr/sbin/ || return 1
	done
}

ssl() {
	pkgdesc="SSL/TLS module for the Apache HTTP Server"
	install="apache2-ssl.post-install"
	depends="apache2 openssl"

	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/mod_ssl.so \
		"$subpkgdir"/usr/lib/apache2/mod_ssl.so || return 1
	install -D -m644 "$srcdir"/ssl.conf \
		"$subpkgdir"/etc/apache2/conf.d/ssl.conf || return 1
	install -d "$subpkgdir"/etc/ssl/apache2 || return 1
}

ldap() {
	pkgdesc="LDAP authentication/authorization module for the Apache HTTP Server"
	url="http://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html"
	depends="apache2 apr-util-ldap"

	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/mod_*ldap.so \
		"$subpkgdir"/usr/lib/apache2/ || return 1
	install -D -m644 "$srcdir"/ldap.conf \
		"$subpkgdir"/etc/apache2/conf.d/ldap.conf || return 1
}

webdav() {
	pkgdesc="WebDAV support for the Apache HTTP Server"
	depends="apache2"
	replaces="apache2"

	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/mod_*dav.so \
		"$pkgdir"/usr/lib/apache2/mod_dav_*.so \
		"$subpkgdir"/usr/lib/apache2/ || return 1
	install -D -m644 "$_builddir"/docs/conf/extra/httpd-dav.conf \
		"$subpkgdir"/etc/apache2/conf.d/http-dav.conf || return 1
}

proxy_html() {
	pkgdesc="HTML and XML content filters for the Apache HTTP Server"
	depends="apache2"
	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/*_proxy_html.so \
		"$pkgdir"/usr/lib/apache2/*xml2enc*.so \
		"$subpkgdir"/usr/lib/apache2/ || return 1
	install -D -m644 "$srcdir"/proxy-html.conf \
		"$subpkgdir"/etc/apache2/conf.d/proxy-html.conf || return 1
}

proxy() {
	pkgdesc="Proxy modules for the Apache HTTP Server"
	depends="apache2"
	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/*_proxy*.so \
		"$pkgdir"/usr/lib/apache2/*_lbmethod*.so \
		"$subpkgdir"/usr/lib/apache2/ || return 1
	install -D -m644 "$srcdir"/proxy.conf \
		"$subpkgdir"/etc/apache2/conf.d/proxy.conf || return 1
}

_lua() {
	pkgdesc="Lua support for the Apache HTTP server"
	depends="apache2"
	install -d "$subpkgdir"/usr/lib/apache2 || return 1
	mv "$pkgdir"/usr/lib/apache2/*_lua.so \
		"$subpkgdir"/usr/lib/apache2/ || return 1
	install -D -m644 "$srcdir"/lua.conf \
		"$subpkgdir"/etc/apache2/conf.d/lua.conf || return 1
}


md5sums="2ef4e65353497606b24fa9bb3e5a3c40  httpd-2.4.9.tar.bz2
e322b5211e49511cac6e40c86af1b1da  apache2.confd
75fe4138b98fcffd01b8c8c077b944f3  apache2.logrotate
cda94e6ec9e6f0322db0f32de2b3d68d  apache2.initd
d99af87f64688e7e62703ca27fcfe3bd  httpd.conf
5d0d024ca43571b863874ab871b2c109  ssl.conf
b70fe826486043e3953cfe21f9e6fa16  ldap.conf
fe26a0a70f572eb256a3c6c183a62223  proxy-html.conf
96eddccfca1ec0349f844e2460cf655b  proxy.conf
449a4aea60473ac4a16f025fca4463e3  lua.conf
c66ff5f70260d5266e6803a59b39bd7f  alpine.layout"
sha256sums="f78cc90dfa47caf3d83ad18fd6b4e85f237777c1733fc9088594b70ce2847603  httpd-2.4.9.tar.bz2
8b0ce62fc4e7cea3801744969d0b2390e28e4d11dd533816eb91e9d7af225500  apache2.confd
dabf43e11c941125c771d2f4f5dadd1038906420716b747dfc8f5a946a0bdad5  apache2.logrotate
312a35bddc4f6e78d2f951be02e46ac48a13a19038cbc480cb6b498120c65636  apache2.initd
758f7dca0070544697247e42338fc72511eb8927055fc66e8b1b39592b236e67  httpd.conf
5c97ba711b062427682c342e233bb81a8c1b62f714ca25143e856a47f3f0c031  ssl.conf
25771023d7c921a13c792607d47bd716c92698b20af21c018f0922eaf79a9604  ldap.conf
2511d6ea64c0f253b219670c445ed4f403f94caba5fb05e0b9600f0d107e1dda  proxy-html.conf
00c42b7806eaa73e732be9d9e92c3e841b20c6d91a9920be47f19db8aee3513e  proxy.conf
edf701795137566c7cf4b9c0c95ecd5f8c58269f5600217a0a4d289d2bf15384  lua.conf
cf0033a245d1d7752539613b6c92beaea9c0a755e7a877c8d41a2d4fd0f3eb22  alpine.layout"
sha512sums="3a66302e18a2d165b3851665dc73be7d3849fc3359c1ff9dd9e2eaebf1f1d8fb89b7b0a05929d6247750bf0ed1abf9cf3c236a373b2d99635c8ca41698719c96  httpd-2.4.9.tar.bz2
e0a0b87889eff01e8a1ee21853d26c0307ceb87428727e60819d29644d8e54e9bfc08c197924567bed26befc904f8384af19516aea849f3cd6859d76b175b742  apache2.confd
566a8c469ef148dfbb9449e91d6fb93baf85d06a31a52c283a7e402aef7bfa8b46c34ebed91c76b3e5a2cc606660145e8fc63fa41bdb22574c7efc4fc4d993e5  apache2.logrotate
64480330f8a73c0b9c5a59a6a22c41869dd2593c97b3a4715f4e97670a4cbf8414986fa504f278042a081faad519d35294c1d9267a561bbffaa1739a491377f8  apache2.initd
ddbf077826ea16c9ecafea7b606adad04d5f4ce126f0d64fe677d9b6f4d81fddcd83a3f9d73c5c734ea0012e69c44c9d81bd0d4864aa4111045ab20f68cfbd13  httpd.conf
07493965ba04d29ad9bc94bf21cf9bdad74947952c61a1050f1f9ff60d8d08d6b4f9de107ca01b9c3f2764b9bc55ce0777cfaf9005dbbfa050a423b513acfda9  ssl.conf
fbdc28ea4b94af91640794945ac4e1f45e4200e54d5bdf64c0c03fc8bdb589e444cc4f7dd0b70b696c0e5e033c8489b8bd8f8fd090906c4379651c7d032c2449  ldap.conf
263149f4a0b515e3b6d162ff282ffa90f8a448c10eb7185aec0caf75af7691b5486fa74ebe4fd46ae0ccdcf226a227705b4be4c23ed12b6d0c0aedd94a348810  proxy-html.conf
aabbe171219f15efe47f8e972fc1a43f98b48977aae91b597b65bb447027992bf81757bde68b26a67e5e3b9f2e748d94b3c85d5c07433627b6048d60a51d400b  proxy.conf
f2950005ac0d8c7a5e34958f1274c9ed0f5f634a5bc766e12834917937df9db901c5fc2460da70e1a62f17440d4719163cd4213496dbf579c80a789b8e18f65c  lua.conf
30faedf3683e1600d9505dc593b0193359eed7e3d925da772ba795b1354171821233072293105d0da41376b2561823fa48c2406f07276648a87b858dcf323c5e  alpine.layout"