Subject: [alpine-devel] [PATCH] main/apache2: improved APKBUILD

From: Matt Smith <[email-masked]>
Date: Fri, 7 Jan 2011 12:20:12 -0600

---
 main/apache2/APKBUILD |  234 ++++++++++++++++++++++++++++++------------------
 1 files changed, 146 insertions(+), 88 deletions(-)

diff --git a/main/apache2/APKBUILD b/main/apache2/APKBUILD
index 2288a4e..20aaad8 100644
--- a/main/apache2/APKBUILD
+++ b/main/apache2/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer: Natanael Copa <[email-masked]>
 pkgname=apache2
 pkgver=2.2.17
-pkgrel=3
+pkgrel=4
 pkgdesc="A high performance Unix-based HTTP server"
 url="http://httpd.apache.org/"
 arch="x86 x86_64"
@@ -32,39 +32,29 @@ source="http://archive.apache.org/dist/httpd/httpd-$pkgver.tar.bz2
 	alpine.layout"
 
 prepare() {
-	cd "$srcdir"
-	cat "$srcdir/alpine.layout" >> httpd-$pkgver/config.layout
+	cd "$srcdir"/httpd-$pkgver
+	cat "$srcdir/alpine.layout" >> config.layout
 
-	# create symlinks to soruces for prefork and worker
-	ln -s httpd-$pkgver prefork
-	ln -s httpd-$pkgver worker
-
-	# make a patched clone of itk sources
-	cp -ra httpd-$pkgver itk
-	cd itk 
+	# create itk directory and apply itk patches
 	mkdir -p server/mpm/experimental/itk
 	cp -r server/mpm/prefork/* \
 		server/mpm/experimental/itk/ || return 1
 	mv server/mpm/experimental/itk/prefork.c \
 		server/mpm/experimental/itk/itk.c || return 1
-	patch -Np1 -i "$srcdir/02-rename-prefork-to-itk.patch" || return 1
-	patch -Np1 -i "$srcdir/03-add-mpm-to-build-system.patch" || return 1
-	patch -Np1 -i "$srcdir/04-correct-output-makefile-location.patch" || return 1
-	patch -Np1 -i "$srcdir/05-add-copyright.patch" || return 1
-	patch -Np1 -i "$srcdir/06-hook-just-after-merging-perdir-config.patch" || return 1
-	patch -Np1 -i "$srcdir/07-base-functionality.patch" || return 1
-	patch -Np1 -i "$srcdir/08-max-clients-per-vhost.patch" || return 1
-	patch -Np1 -i "$srcdir/09-capabilities.patch" || return 1
-	patch -Np1 -i "$srcdir/10-nice.patch" || return 1
+	patch -Np1 -i "$srcdir"/02-rename-prefork-to-itk.patch || return 1
+	patch -Np1 -i "$srcdir"/03-add-mpm-to-build-system.patch || return 1
+	patch -Np1 -i "$srcdir"/04-correct-output-makefile-location.patch || return 1
+	patch -Np1 -i "$srcdir"/05-add-copyright.patch || return 1
+	patch -Np1 -i "$srcdir"/06-hook-just-after-merging-perdir-config.patch || return 1
+	patch -Np1 -i "$srcdir"/07-base-functionality.patch || return 1
+	patch -Np1 -i "$srcdir"/08-max-clients-per-vhost.patch || return 1
+	patch -Np1 -i "$srcdir"/09-capabilities.patch || return 1
+	patch -Np1 -i "$srcdir"/10-nice.patch || return 1
 	autoconf || return 1
 }
 
-_buildmpm() {
-	local mpm=$1
-	shift
-	mkdir "$srcdir"/build-${mpm}
-	cd "$srcdir"/build-${mpm}
-	"$srcdir"/$mpm/configure --prefix=/usr \
+build() {
+	local _apacheconfig="--prefix=/usr \
 		--enable-layout=Alpine \
 		--enable-so \
 		--enable-suexec \
@@ -77,104 +67,172 @@ _buildmpm() {
 		--with-apr=/usr/bin/apr-1-config \
 		--with-apr-util=/usr/bin/apu-1-config \
 		--with-pcre=/usr \
-		--with-mpm=${mpm} \
-		$@ \
-		|| return 1
+		--enable-mods-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-authn-anon --enable-authn-alias \
+		--disable-imagemap \
+		--enable-proxy-connect \
+		--enable-proxy-http \
+		--enable-proxy-ftp \
+		--enable-deflate \
+		--enable-dbd \
+		--enable-exception-hook"
+	local _mpm
+
+	_mpm="prefork"
+	cd "$srcdir"/httpd-$pkgver
+	./configure ${_apacheconfig} --with-mpm=${_mpm} || return 1
 	make || return 1
-}
 
-build () { 
-	local mpm
-
-	#build the mpms
-	for mpm in prefork worker itk; do
-		_buildmpm $mpm \
-			--enable-mods-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-authn-anon --enable-authn-alias \
-		        --disable-imagemap \
-			--enable-proxy-connect \
-			--enable-proxy-http \
-			--enable-proxy-ftp \
-			--enable-deflate \
-			--enable-dbd \
-			|| return 1
-	done
+	_mpm="itk"
+	cp -a "$srcdir"/httpd-$pkgver "$srcdir"/httpd-${_mpm}
+	cd "$srcdir"/httpd-${_mpm}
+	./configure ${_apacheconfig} --with-mpm=${_mpm} || return 1
+	make || return 1
+
+	_mpm="worker"
+	cp -a "$srcdir"/httpd-$pkgver "$srcdir"/httpd-${_mpm}
+	cd "$srcdir"/httpd-${_mpm}
+	make clean
+	./configure ${_apacheconfig} --with-mpm=${_mpm} || return 1
+	make || return 1
 }
 
 package() {
-	cd "$srcdir"/build-prefork
+	local _mpm
+
+	# prefork
+	cd "$srcdir"/httpd-$pkgver
 	make -j1 DESTDIR="$pkgdir" install || return 1
-	for mpm in worker itk; do
-		install -m755 "$srcdir"/build-$mpm/httpd \
-			"$pkgdir/usr/sbin/httpd.${mpm}" || return 1
+
+	# itk and worker
+	for _mpm in itk worker; do
+		install -D -m755 "$srcdir"/httpd-${_mpm}/httpd \
+			"$pkgdir"/usr/sbin/httpd.${_mpm} || return 1
 	done
 	
 	# config
 	rm -r "$pkgdir"/etc/apache2/httpd.conf \
-		"$pkgdir"/etc/apache2/extra 
-	install -D -m644 "$srcdir"/httpd.conf "$pkgdir"/etc/apache2/httpd.conf
-	install -d "$pkgdir"/etc/apache2/conf.d
+		"$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
-	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"
+	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
 }
 
 # include the builddir and apxs in -dev package
 dev() {
+	local _mpm
+	local _file
 	default_dev
 	depends="$depends perl apr-util-dev"
 	arch="noarch"
-	install -d "$subpkgdir"/usr/share/apache2/ \
-		"$subpkgdir"/usr/sbin
-	mv "$pkgdir"/usr/sbin/apxs "$subpkgdir"/usr/sbin/ || return 1
-	mv "$pkgdir"/usr/share/apache2/build "$subpkgdir"/usr/share/apache2/
+
+	# install apxs utility
+	install -d "$subpkgdir"/usr/sbin || return 1
+	mv "$pkgdir"/usr/sbin/apxs \
+		"$subpkgdir"/usr/sbin/apxs || return 1
+
+
+	_mpm="prefork"
+	install -d "$subpkgdir"/usr/share/apache2/build-${_mpm} || return 1
+	mv "$pkgdir"/usr/share/apache2/build/* \
+		"$subpkgdir"/usr/share/apache2/build-${_mpm} || return 1
+	rm -rf "$pkgdir"/usr/share/apache2/build
+	ln -s /usr/share/apache2/build-${_mpm} \
+		"$pkgdir"/usr/share/apache2/build || return 1
+
+
+	_mpm="itk"
+	install -d "$subpkgdir"/usr/share/apache2/build-${_mpm} || return 1
+	for _file in `ls -1 "$subpkgdir"/usr/share/apache2/build-prefork | grep -v "config\.nice"`; do
+		mv "$srcdir"/httpd-${_mpm}/build/${_file} \
+			"$subpkgdir"/usr/share/apache2/build-${_mpm}/${_file} \
+			|| return 1
+	done
+	cp -a "$subpkgdir"/usr/share/apache2/build-prefork/config.nice \
+		"$subpkgdir"/usr/share/apache2/build-${_mpm}/config.nice \
+		|| return 1
+	sed -ri "s/prefork/${_mpm}/g" \
+		"$subpkgdir"/usr/share/apache2/build-${_mpm}/config.nice \
+		|| return 1
+
+
+	_mpm="worker"
+	install -d "$subpkgdir"/usr/share/apache2/build-${_mpm} || return 1
+	for _file in `ls -1 "$subpkgdir"/usr/share/apache2/build-prefork | grep -v "config\.nice"`; do
+		mv "$srcdir"/httpd-${_mpm}/build/${_file} \
+			"$subpkgdir"/usr/share/apache2/build-${_mpm}/${_file} \
+			|| return 1
+	done
+	cp -a "$subpkgdir"/usr/share/apache2/build-prefork/config.nice \
+		"$subpkgdir"/usr/share/apache2/build-${_mpm}/config.nice \
+		|| return 1
+	sed -ri "s/prefork/${_mpm}/g" \
+		"$subpkgdir"/usr/share/apache2/build-${_mpm}/config.nice \
+		|| return 1
 }
 
 utils() {
+	local _bin
 	pkgdesc="Apache utility programs for webservers"
-	install -d "$subpkgdir"/usr/bin "$subpkgdir"/usr/sbin
-	cd "$pkgdir"/usr/sbin
-	mv ab dbmmanage htdbm htdigest htpasswd logresolve "$subpkgdir"/usr/bin
-	mv checkgid htcacheclean rotatelogs "$subpkgdir"/usr/sbin
+
+	install -d "$subpkgdir"/usr/bin || return 1
+	for _bin in ab dbmmanage htdbm htdigest htpasswd logresolve; do
+		mv "$pkgdir"/usr/sbin/${_bin} \
+			"$subpkgdir"/usr/bin/${_bin} || return 1
+	done
+
+	install -d "$subpkgdir"/usr/sbin || return 1
+	for _bin in checkgid htcacheclean rotatelogs; do
+		mv "$pkgdir"/usr/sbin/${_bin} \
+			"$subpkgdir"/usr/sbin/${_bin} || 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 \
-		"$subpkgdir"/etc/ssl/apache2
-	mv "$pkgdir"/usr/lib/apache2/mod_ssl.so "$subpkgdir"/usr/lib/apache2/ \
-		|| return 1
-	install -m644 -D "$srcdir"/ssl.conf "$subpkgdir"/etc/apache2/conf.d/ssl.conf
+
+	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.2/mod/mod_authnz_ldap.html"
 	depends="apache2"
-	install -d "$subpkgdir"/usr/lib/apache2 
-	mv "$pkgdir"/usr/lib/apache2/mod_*ldap*.so "$subpkgdir"/usr/lib/apache2
-	install -m644 -D  "$srcdir"/ldap.conf "$subpkgdir"/etc/apache2/conf.d/ldap.conf
+
+	install -d "$subpkgdir"/usr/lib/apache2 || return 1
+	mv "$pkgdir"/usr/lib/apache2/mod_ldap.so \
+		"$subpkgdir"/usr/lib/apache2/mod_ldap.so || return 1
+	install -D -m644 "$srcdir"/ldap.conf \
+		"$subpkgdir"/etc/apache2/conf.d/ldap.conf || return 1
 }
 
 md5sums="16eadc59ea6b38af33874d300973202e  httpd-2.2.17.tar.bz2
-- 
1.7.3.3

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Natanael Copa <[email-masked]>
Date: Sun, 9 Jan 2011 14:04:48 +0000

On Fri,  7 Jan 2011 12:20:12 -0600
Matt Smith <[email-masked]> wrote:

> ---
>  main/apache2/APKBUILD |  234
> ++++++++++++++++++++++++++++++------------------ 1 files changed, 146
> insertions(+), 88 deletions(-)
> 

Applied. Thanks!
-nc

---