From 1a3bd510dd4dc4f85bbde399d983e94745869473 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 16 Apr 2014 00:11:20 +0000
Subject: apache: update to 2.4.9. refs #961

---
 abs/core/apache/PKGBUILD              | 230 ++++++++++++++--------------------
 abs/core/apache/apache.conf.d         |  15 ---
 abs/core/apache/apache.install        |  15 ++-
 abs/core/apache/apachectl-confd.patch |  15 ---
 abs/core/apache/arch.layout           |   4 +-
 abs/core/apache/httpd                 |  65 ----------
 abs/core/apache/httpd.logrotate       |   6 +
 abs/core/apache/httpd.service         |  15 +++
 abs/core/apache/pcre_info.patch       |  22 ----
 9 files changed, 133 insertions(+), 254 deletions(-)
 delete mode 100644 abs/core/apache/apache.conf.d
 delete mode 100644 abs/core/apache/apachectl-confd.patch
 delete mode 100755 abs/core/apache/httpd
 create mode 100644 abs/core/apache/httpd.logrotate
 create mode 100644 abs/core/apache/httpd.service
 delete mode 100644 abs/core/apache/pcre_info.patch

diff --git a/abs/core/apache/PKGBUILD b/abs/core/apache/PKGBUILD
index fd13bdd..d4344e6 100644
--- a/abs/core/apache/PKGBUILD
+++ b/abs/core/apache/PKGBUILD
@@ -1,155 +1,117 @@
-# $Id: PKGBUILD 161295 2012-06-08 23:50:11Z heftig $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Andrea Scarpino <andrea@archlinux.org>
 # Contributor: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=apache
-pkgver=2.2.22
-pkgrel=4
+pkgver=2.4.9
+pkgrel=1
 pkgdesc='A high performance Unix-based HTTP server'
 arch=('i686' 'x86_64')
-options=('!libtool')
 url='http://www.apache.org/dist/httpd'
 license=('APACHE')
-backup=(etc/conf.d/apache etc/httpd/conf/httpd.conf
-        etc/httpd/conf/extra/httpd-{autoindex,dav,default,info,languages}.conf
-        etc/httpd/conf/extra/httpd-{manual,mpm,multilang-errordoc}.conf
-        etc/httpd/conf/extra/httpd-{ssl,userdir,vhosts}.conf
-        etc/logrotate.d/httpd)
-depends=('openssl' 'zlib' 'apr-util' 'pcre')
-optdepends=('lynx: apachectl status')
+backup=(
+    etc/httpd/conf/httpd.conf
+    etc/httpd/conf/extra/httpd-{autoindex,dav,default,info,languages}.conf
+    etc/httpd/conf/extra/httpd-{manual,mpm,multilang-errordoc}.conf
+    etc/httpd/conf/extra/httpd-{ssl,userdir,vhosts}.conf
+    etc/httpd/conf/extra/proxy-html.conf
+    etc/httpd/conf/{mime.types,magic}
+    etc/logrotate.d/httpd
+)
+depends=('zlib' 'apr-util' 'pcre')
+makedepends=('libxml2' 'lua' 'openssl')
+optdepends=(
+    'lua: for mod_lua module'
+    'openssl: for mod_ssl module'
+    'libxml2: for mod_proxy_html, mod_xml2enc modules' 
+    'lynx: apachectl status'
+)
 install=apache.install
-_itkurl=http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.17-01
-source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2
-        http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2.asc
-        ${_itkurl}/02-rename-prefork-to-itk.patch
-        ${_itkurl}/03-add-mpm-to-build-system.patch
-        ${_itkurl}/04-correct-output-makefile-location.patch
-        ${_itkurl}/05-add-copyright.patch
-        ${_itkurl}/06-hook-just-after-merging-perdir-config.patch
-        ${_itkurl}/07-base-functionality.patch
-        ${_itkurl}/08-max-clients-per-vhost.patch
-        ${_itkurl}/09-capabilities.patch
-        ${_itkurl}/10-nice.patch
-        ${_itkurl}/11-fix-htaccess-reads-for-persistent-connections.patch
-        apachectl-confd.patch
-        apache.conf.d
-        apache.tmpfiles.conf
-        httpd.logrotate
-        httpd
-        arch.layout
-        pcre_info.patch)
-md5sums=('9fe3093194c8a57f085ff7c3fc43715f'
-         '41b3a6e4948679cab70b9caf490877c4'
-         'f1d9d41360908ceb2374da55ae99197a'
-         'cdfa04985a0efa850976aef01c2a0c40'
-         '0930d2d0612eb0a53a0d00aea7e8687f'
-         '3a0c29bb91442c33ea73ebbe072af922'
-         '0ef4729a6f1ffc848ad0e9b440a66f66'
-         '940944caa948340b11ddae56adaef89b'
-         'ce09a987523884de8838f73dc8ec0d19'
-         'e75b7dd8d8afcd299ba4ab2ab81c11e4'
-         'ce1ccc21f3ad8625169c8f62913450ac'
-         '1e5b222edcfbf99a3edc56fcb2074fbe'
-         '4ac64df6e019edbe137017cba1ff2f51'
-         '08b3c875f6260644f2f52b4056d656b0'
-         '82068753dab92fe86312b1010a2904d7'
-         '6382331e9700ed9e8cc78ea51887b537'
-         'c7e300a287ef7e2e066ac7639536f87e'
-         '3d659d41276ba3bfcb20c231eb254e0c'
-         'fde5121e32b5aeef5a7eedb5a97009ff')
+source=(
+    http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2{,.asc}
+    apache.tmpfiles.conf
+    httpd.logrotate
+    httpd.service
+    arch.layout
+)
+sha256sums=('f78cc90dfa47caf3d83ad18fd6b4e85f237777c1733fc9088594b70ce2847603'
+            'SKIP'
+            '63da1a420f4714a3e7af2672d28384419cc7eedbe7bf35baebd02938fabc15bf'
+            '875903831634edf35d8d57e9a51bacb818255ecb3bfff29627f03e43d1ab65c3'
+            '14d0a775eea7f8c66ba55399a9ad1e4fd29e0302f479a15b28bbfc754c5aa347'
+            'dda05c6e76f12624e418ca18a36f2e90ec1c5b1cc52fed7142fce6076ec413f3')
 
 build() {
-	cd "${srcdir}/httpd-${pkgver}"
+  cd httpd-${pkgver}
 
-	patch -p1 -i "${srcdir}/pcre_info.patch"
-	patch -Np0 -i "${srcdir}/apachectl-confd.patch"
+  # set default user
+  sed -e 's#User daemon#User http#' \
+      -e 's#Group daemon#Group http#' \
+      -i docs/conf/httpd.conf.in
 
-	# set default user
-	sed -e 's#User daemon#User http#' \
-	    -e 's#Group daemon#Group http#' \
-	    -i docs/conf/httpd.conf.in
+  cat "${srcdir}/arch.layout" >> config.layout
+	
+  ./configure --sbindir=/usr/bin \
+      --enable-layout=Arch \
+      --enable-mpms-shared=all \
+      --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/bin/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-cgi --enable-cgid \
+      --enable-proxy --enable-proxy-connect \
+      --enable-proxy-http --enable-proxy-ftp \
+      --enable-dbd --enable-imagemap --enable-ident --enable-cern-meta \
+      --enable-lua --enable-xml2enc \
+      --with-apr=/usr/bin/apr-1-config \
+      --with-apr-util=/usr/bin/apu-1-config \
+      --with-pcre=/usr
 
-	cat "${srcdir}/arch.layout" >> config.layout
-
-	for mpm in prefork worker itk; do
-		if [ "${mpm}" = "itk" ]; then
-                        # Fix patch to apply with latest Apache version
-                        sed -i -e 's/mpmt_os2}/mpmt_os2|winnt}/g' "${srcdir}/03-add-mpm-to-build-system.patch"
-
-			mkdir -p server/mpm/experimental/itk
-			cp -r server/mpm/prefork/* server/mpm/experimental/itk/
-			mv server/mpm/experimental/itk/prefork.c server/mpm/experimental/itk/itk.c
-
-			patch -Np1 -i "${srcdir}/02-rename-prefork-to-itk.patch"
-			patch -Np1 -i "${srcdir}/03-add-mpm-to-build-system.patch"
-			patch -Np1 -i "${srcdir}/04-correct-output-makefile-location.patch"
-			patch -Np1 -i "${srcdir}/05-add-copyright.patch"
-			patch -Np1 -i "${srcdir}/06-hook-just-after-merging-perdir-config.patch"
-			patch -Np1 -i "${srcdir}/07-base-functionality.patch"
-			patch -Np1 -i "${srcdir}/08-max-clients-per-vhost.patch"
-			patch -Np1 -i "${srcdir}/09-capabilities.patch"
-			patch -Np1 -i "${srcdir}/10-nice.patch"
-                        patch -Np1 -i "${srcdir}/11-fix-htaccess-reads-for-persistent-connections.patch"
+  make
+}
 
-			autoconf
-		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}
-		make
-		if [ "${mpm}" = "prefork" ]; then
-			make DESTDIR="${pkgdir}" install
-		else
-			install -m755 httpd "${pkgdir}/usr/sbin/httpd.${mpm}"
-		fi
-		popd
-	done
+package() {
+  cd httpd-${pkgver}
 
-	install -D -m755 "${srcdir}/httpd" "${pkgdir}/etc/rc.d/httpd"
-	install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd"
-	install -D -m644 "${srcdir}/apache.conf.d" "${pkgdir}/etc/conf.d/apache"
-	install -D -m644 "${srcdir}/apache.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/apache.conf"
+  make DESTDIR="${pkgdir}" install
+   
+  install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd"
+  install -D -m644 "${srcdir}/apache.tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/apache.conf"
+  install -D -m644 "${srcdir}/httpd.service" "${pkgdir}/usr/lib/systemd/system/httpd.service"	
+  install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 
-	# 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"
+  # symlinks for /etc/httpd
+  # do we really need these symlinks?
+  #ln -fs /var/log/httpd "${pkgdir}/etc/httpd/logs"
+  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/#' \
-	    -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \
-	    -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \
-	    -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"
+  # set sane defaults
+  sed -e 's#/usr/lib/httpd/modules/#modules/#' \
+      -e 's|#\(LoadModule negotiation_module \)|\1|' \
+      -e 's|#\(LoadModule include_module \)|\1|' \
+      -e 's|#\(LoadModule userdir_module \)|\1|' \
+      -e 's|#\(LoadModule slotmem_shm_module \)|\1|' \
+      -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \
+      -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \
+      -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|' \
+      -e 's|#\(Include conf/extra/httpd-mpm.conf\)|\1|' \
+      -i "${pkgdir}/etc/httpd/conf/httpd.conf"
 
-	# 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}/var/run"
+  # cleanup
+  rm -r "${pkgdir}/usr/share/httpd/manual"
+  rm -r "${pkgdir}/etc/httpd/conf/original"
+  rm -r "${pkgdir}/srv/"
+  rm -r "${pkgdir}/run"
 }
diff --git a/abs/core/apache/apache.conf.d b/abs/core/apache/apache.conf.d
deleted file mode 100644
index c6d0ebf..0000000
--- a/abs/core/apache/apache.conf.d
+++ /dev/null
@@ -1,15 +0,0 @@
-# Configuration file for the httpd service.
-
-#
-# The default processing model (MPM) is the process-based
-# 'prefork' model. A thread-based model, 'worker', is also
-# available, but does not work with some modules (such as PHP).
-# The service must be stopped before changing this variable.
-#
-#HTTPD=/usr/sbin/httpd.worker
-
-#
-# To pass additional options (for instance, -D definitions) to the
-# httpd binary at startup, set OPTIONS here.
-#
-#OPTIONS=
diff --git a/abs/core/apache/apache.install b/abs/core/apache/apache.install
index 9b74e60..5665f08 100644
--- a/abs/core/apache/apache.install
+++ b/abs/core/apache/apache.install
@@ -1,3 +1,16 @@
 post_install() {
-  systemd-tmpfiles --create usr/lib/tmpfiles.d/apache.conf
+  if type -P systemd-tmpfiles &> /dev/null; then
+    systemd-tmpfiles --create apache.conf
+  fi
+}
+
+post_upgrade() {
+  if type -P systemd-tmpfiles &> /dev/null; then
+    systemd-tmpfiles --create apache.conf
+  fi
+
+  if [[ $2 == 2\.2\.* ]]; then
+    # it is a major upgrade, show a useful link to upgrade instructions
+    echo '    Check Apache upgrade instructions: https://httpd.apache.org/docs/2.4/upgrading.html'
+  fi
 }
diff --git a/abs/core/apache/apachectl-confd.patch b/abs/core/apache/apachectl-confd.patch
deleted file mode 100644
index d0f4b69..0000000
--- a/abs/core/apache/apachectl-confd.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- support/apachectl.in.orig	2010-03-06 18:09:11.000000000 +0100
-+++ support/apachectl.in	2010-03-06 18:12:31.000000000 +0100
-@@ -56,6 +56,12 @@
- # the URL to your server's mod_status status page.  If you do not
- # have one, then status and fullstatus will not work.
- STATUSURL="http://localhost:@PORT@/server-status"
-+
-+# Source /etc/conf.d/apache for $HTTPD setting, etc.
-+if [ -r /etc/conf.d/apache ]; then
-+    . /etc/conf.d/apache
-+fi
-+
- #
- # Set this variable to a command that increases the maximum
- # number of file descriptors allowed per child process. This is
diff --git a/abs/core/apache/arch.layout b/abs/core/apache/arch.layout
index ab59db8..d5d2e8a 100644
--- a/abs/core/apache/arch.layout
+++ b/abs/core/apache/arch.layout
@@ -2,7 +2,7 @@
 	prefix:          /etc/httpd
 	exec_prefix:     /usr
 	bindir:          /usr/bin
-	sbindir:         /usr/sbin
+	sbindir:         /usr/bin
 	libdir:          /usr/lib/httpd
 	libexecdir:      /usr/lib/httpd/modules
 	mandir:          /usr/share/man
@@ -16,7 +16,7 @@
 	cgidir:          /srv/http/cgi-bin
 	includedir:      /usr/include/httpd
 	localstatedir:   /var
-	runtimedir:      /var/run/httpd
+	runtimedir:      /run/httpd
 	logfiledir:      /var/log/httpd
 	proxycachedir:   /var/cache/httpd
 </Layout>
\ No newline at end of file
diff --git a/abs/core/apache/httpd b/abs/core/apache/httpd
deleted file mode 100755
index 6fa9c3c..0000000
--- a/abs/core/apache/httpd
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-daemon_name=httpd
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-APACHECTL=/usr/sbin/apachectl
-
-case "$1" in
-  start)
-    stat_busy "Starting Apache Web Server"
-    [ ! -d /var/run/httpd ] && install -d /var/run/httpd
-    if $APACHECTL start >/dev/null ; then
-      add_daemon $daemon_name
-      stat_done
-    else
-      stat_fail
-      exit 1
-    fi
-    ;;
-
-  stop)
-    stat_busy "Stopping Apache Web Server"
-    if $APACHECTL stop >/dev/null ; then
-      rm_daemon $daemon_name
-      stat_done
-    else
-      stat_fail
-      exit 1
-    fi
-    ;;
-
-  reload)
-    stat_busy "Reloading Apache Web Server"
-    if $APACHECTL graceful >/dev/null ; then
-      add_daemon $daemon_name
-      stat_done
-    else
-      stat_fail
-      exit 1
-    fi
-    ;;
-
-  restart)
-    stat_busy "Restarting Apache Web Server"
-    if $APACHECTL restart >/dev/null ; then
-      add_daemon $daemon_name
-      stat_done
-    else
-      stat_fail
-      exit 1
-    fi
-    ;;
-
-  status)
-    stat_busy "Checking Apache Web Server status";
-    ck_status $daemon_name
-    ;;
-
-  *)
-    echo "usage: $0 {start|stop|reload|restart|status}"
-esac
-
-exit 0
diff --git a/abs/core/apache/httpd.logrotate b/abs/core/apache/httpd.logrotate
new file mode 100644
index 0000000..c9755de
--- /dev/null
+++ b/abs/core/apache/httpd.logrotate
@@ -0,0 +1,6 @@
+/var/log/httpd/*log {
+   missingok
+   postrotate
+      /bin/kill -HUP `cat /run/httpd/httpd.pid 2>/dev/null` 2> /dev/null || true
+   endscript
+}
diff --git a/abs/core/apache/httpd.service b/abs/core/apache/httpd.service
new file mode 100644
index 0000000..247e28f
--- /dev/null
+++ b/abs/core/apache/httpd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Apache Web Server
+After=network.target remote-fs.target nss-lookup.target
+
+[Service]
+Type=forking
+PIDFile=/run/httpd/httpd.pid
+ExecStart=/usr/bin/apachectl start
+ExecStop=/usr/bin/apachectl graceful-stop
+ExecReload=/usr/bin/apachectl graceful
+PrivateTmp=true
+LimitNOFILE=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/core/apache/pcre_info.patch b/abs/core/apache/pcre_info.patch
deleted file mode 100644
index 906a315..0000000
--- a/abs/core/apache/pcre_info.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- httpd-2.2.22/server/util_pcre.c	2005-11-10 16:20:05.000000000 +0100
-+++ httpd-2.2.22/server/util_pcre.c	2012-02-08 11:23:56.273855663 +0100
-@@ -128,6 +128,7 @@
- const char *errorptr;
- int erroffset;
- int options = 0;
-+int nsub;
- 
- if ((cflags & AP_REG_ICASE) != 0) options |= PCRE_CASELESS;
- if ((cflags & AP_REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
-@@ -136,8 +137,9 @@
- preg->re_erroffset = erroffset;
- 
- if (preg->re_pcre == NULL) return AP_REG_INVARG;
--
--preg->re_nsub = pcre_info((const pcre *)preg->re_pcre, NULL, NULL);
-+pcre_fullinfo((const pcre *)preg->re_pcre, NULL,
-+               PCRE_INFO_CAPTURECOUNT, &nsub);
-+preg->re_nsub = nsub;
- return 0;
- }
- 
-- 
cgit v0.12