Date: Wednesday, March 3, 2010 @ 11:02:48
  Author: jgc
Revision: 71040

Add initial work for multi-MPM support. Needs more work

Modified:
  apache/trunk/PKGBUILD

----------+
 PKGBUILD |   99 +++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 58 insertions(+), 41 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2010-03-03 12:57:27 UTC (rev 71039)
+++ PKGBUILD    2010-03-03 16:02:48 UTC (rev 71040)
@@ -4,7 +4,8 @@
 
 pkgname=apache
 pkgver=2.2.14
-pkgrel=2
+pkgrel=3
+_itkver=20090414-00
 pkgdesc='A high performance Unix-based HTTP server'
 arch=('i686' 'x86_64')
 options=('!libtool')
@@ -17,56 +18,72 @@
         etc/logrotate.d/httpd)
 depends=('openssl' 'zlib' 'apr-util' 'pcre')
 optdepends=('lynx: apachectl status')
-source=("http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2";
-        'httpd.logrotate'
-       'httpd'
-       'arch.layout')
+source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2
+        http://mpm-itk.sesse.net/apache2.2-mpm-itk-${_itkver}.patch
+        httpd.logrotate
+       httpd
+       arch.layout)
 md5sums=('a5226203aaf97e5b941c41a71c112704'
+         'e26cf8ad861e41877c0f0dda6e471ca9'
          'f4d627c64024c1b7b95efb5ffbaa625e'
          '9e001fbb082a08113e7f4bc431085c11'
          '3d659d41276ba3bfcb20c231eb254e0c')
 
 build() {
-       cd ${srcdir}/httpd-${pkgver}
+       cd "${srcdir}/httpd-${pkgver}"
 
        # set default user
        sed -e 's#User daemon#User http#' \
            -e 's#Group daemon#Group http#' \
-           -i docs/conf/httpd.conf.in
+           -i docs/conf/httpd.conf.in || return 1
 
-       cat ${srcdir}/arch.layout >> config.layout
-       ./configure --enable-layout=Arch \
-               --enable-modules=all \
-               --enable-mods-shared=all \
-               --enable-so \
-               --enable-suexec \
-               --with-suexec-caller=http \
-               --with-suexec-docroot=/srv/http \
-               --with-suexec-logfile=/var/log/httpd/suexec.log \
-               --with-suexec-bin=/usr/sbin/suexec \
-               --with-suexec-uidmin=99 --with-suexec-gidmin=99 \
-               --enable-ldap --enable-authnz-ldap \
-               --enable-cache --enable-disk-cache --enable-mem-cache 
--enable-file-cache \
-               --enable-ssl --with-ssl \
-               --enable-deflate --enable-cgid \
-               --enable-proxy --enable-proxy-connect \
-               --enable-proxy-http --enable-proxy-ftp \
-               --enable-dbd \
-               --with-apr=/usr/bin/apr-1-config \
-               --with-apr-util=/usr/bin/apu-1-config \
-               --with-pcre=/usr
+       cat "${srcdir}/arch.layout" >> config.layout
 
-       make || return 1
+       for mpm in prefork worker itk; do
+               if [ "$mpm" = "itk" ]; then
+                       patch -Np1 -i 
"${srcdir}/apache2.2-mpm-itk-${_itkver}.patch" || return 1
+                       autoconf || return 1
+               fi
+               mkdir build-$mpm
+               pushd build-$mpm
+               ../configure --enable-layout=Arch \
+                       --enable-modules=all \
+                       --enable-mods-shared=all \
+                       --enable-so \
+                       --enable-suexec \
+                       --with-suexec-caller=http \
+                       --with-suexec-docroot=/srv/http \
+                       --with-suexec-logfile=/var/log/httpd/suexec.log \
+                       --with-suexec-bin=/usr/sbin/suexec \
+                       --with-suexec-uidmin=99 --with-suexec-gidmin=99 \
+                       --enable-ldap --enable-authnz-ldap \
+                       --enable-cache --enable-disk-cache --enable-mem-cache 
--enable-file-cache \
+                       --enable-ssl --with-ssl \
+                       --enable-deflate --enable-cgid \
+                       --enable-proxy --enable-proxy-connect \
+                       --enable-proxy-http --enable-proxy-ftp \
+                       --enable-dbd \
+                       --with-apr=/usr/bin/apr-1-config \
+                       --with-apr-util=/usr/bin/apu-1-config \
+                       --with-pcre=/usr \
+                       --with-mpm=${mpm} || return 1
+               make || return 1
+               if [ "$mpm" = "prefork" ]; then
+                       make DESTDIR="${pkgdir}" install || return 1
+               else
+                       install -m755 httpd "${pkgdir}/usr/sbin/httpd.${mpm}"
+               fi
+               popd
+       done
 
-       make DESTDIR=${pkgdir} install
-       install -D -m755 ${srcdir}/httpd ${pkgdir}/etc/rc.d/httpd
-       install -D -m644 ${srcdir}/httpd.logrotate 
${pkgdir}/etc/logrotate.d/httpd
+       install -D -m755 "${srcdir}/httpd" "${pkgdir}/etc/rc.d/httpd" || return 
1
+       install -D -m644 "${srcdir}/httpd.logrotate" 
"${pkgdir}/etc/logrotate.d/httpd" || return 1
 
        # symlinks for /etc/httpd
-       ln -fs /var/log/httpd ${pkgdir}/etc/httpd/logs
-       ln -fs /var/run/httpd ${pkgdir}/etc/httpd/run
-       ln -fs /usr/lib/httpd/modules ${pkgdir}/etc/httpd/modules
-       ln -fs /usr/lib/httpd/build ${pkgdir}/etc/httpd/build
+       ln -fs /var/log/httpd "${pkgdir}/etc/httpd/logs"
+       ln -fs /var/run/httpd "${pkgdir}/etc/httpd/run"
+       ln -fs /usr/lib/httpd/modules "${pkgdir}/etc/httpd/modules"
+       ln -fs /usr/lib/httpd/build "${pkgdir}/etc/httpd/build"
 
        # set sane defaults
        sed -e 's#/usr/lib/httpd/modules/#modules/#' \
@@ -75,11 +92,11 @@
            -e 's|#\(Include conf/extra/httpd-languages.conf\)|\1|' \
            -e 's|#\(Include conf/extra/httpd-userdir.conf\)|\1|' \
            -e 's|#\(Include conf/extra/httpd-default.conf\)|\1|' \
-           -i ${pkgdir}/etc/httpd/conf/httpd.conf
+           -i "${pkgdir}/etc/httpd/conf/httpd.conf" || return 1
 
        # cleanup
-       rm -rf ${pkgdir}/usr/share/httpd/manual
-       rm -rf ${pkgdir}/etc/httpd/conf/original
-       rm -rf ${pkgdir}/srv/
-       rm -rf ${pkgdir}/usr/bin
+       rm -rf "${pkgdir}/usr/share/httpd/manual"
+       rm -rf "${pkgdir}/etc/httpd/conf/original"
+       rm -rf "${pkgdir}/srv/"
+       rm -rf "${pkgdir}/usr/bin"
 }

Reply via email to