Version Bump. Includes now complete suexec-config utility. Also now uses the already...
authorMichael Stewart <vericgar@gentoo.org>
Wed, 7 Jun 2006 00:18:42 +0000 (00:18 +0000)
committerMichael Stewart <vericgar@gentoo.org>
Wed, 7 Jun 2006 00:18:42 +0000 (00:18 +0000)
Package-Manager: portage-2.1_rc4-r1

net-www/apache/ChangeLog
net-www/apache/Manifest
net-www/apache/apache-2.2.2.ebuild [new file with mode: 0644]
net-www/apache/files/digest-apache-2.2.2 [new file with mode: 0644]

index ee5cc4dfb087e021dab9d828ccd8971a423fed04..0d1aac9ccc562316a60beb9c7b4e9c6125a6bb9d 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for net-www/apache
 # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.478 2006/06/06 16:28:00 vericgar Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.479 2006/06/07 00:18:42 vericgar Exp $
+
+*apache-2.2.2 (07 Jun 2006)
+
+  07 Jun 2006; Michael Stewart <vericgar@gentoo.org> +apache-2.2.2.ebuild:
+  Version Bump. Includes now complete suexec-config utility. Also now uses the
+  already installed libpcre rather then the bundled one. Refer to bug 114232.
+  Fixes bugs 124599, 133036, 133191.
 
   06 Jun 2006; Michael Stewart <vericgar@gentoo.org> apache-2.2.0-r2.ebuild:
   Remove as-needed filtering
index 204a29d9b722e125e7528d29930dcb39e66e4b21..0b50b6fe6cac25eea0b6bfde312f1948b76611e0 100644 (file)
@@ -8,10 +8,12 @@ DIST gentoo-apache-2.0.55-r1-20060115.tar.bz2 51735 RMD160 18902966bdce2cbe67ba1
 DIST gentoo-apache-2.0.58-20060515.tar.bz2 51174 RMD160 e029caa8107e37b66999935d6c1e9ed2e95351f0 SHA1 c88f42534f7419517905679f028be8b5754af962 SHA256 3d11702d3fd6b5c143b1c238e9b4a0d4bed2b3c4b9834efa6a3436cca492c0e5
 DIST gentoo-apache-2.2.0-r1-20060227.tar.bz2 27114 RMD160 f51361add210ec0e3737c77c3b81e6b8657e3acb SHA1 cdcf4e276030ee7922b2293d867b3c4b75be9634 SHA256 89096d554838016e282b1374ea02719389f0b04a9b92bbded5cd2e5f5bcc816f
 DIST gentoo-apache-2.2.0-r2-20060306.tar.bz2 48730 RMD160 adee915809097479cd0ed03012194351b7218732 SHA1 50ca64fba157a0490be537a1993ae9fe1077e10d SHA256 c6e054757a04d6d81b16e32caa2e88f9e9a61a68c560aa83654624b7c2fce068
+DIST gentoo-apache-2.2.2-20060606.tar.bz2 51183 RMD160 23b975aa7b24b8eb8f929b4e22af51057270b6ea SHA1 e29bdd31ac6e545784eaf82ddd81be3eaa2b94bd SHA256 75cc1b48361c5024faa2499f78fb5427d75010f4cc7f712b875c36bd8633e44e
 DIST httpd-2.0.54.tar.bz2 5566979 RMD160 c511cb2fa396ba04caf77bfc6ca03413df48ea08 SHA1 15b4fc3024cceea6562fb03383fd624e84e5e35a SHA256 55a3d1c3fc4ff5ed5a4c4a20050ab68d98a10b2ab7d52f02a485da1a0fb060e3
 DIST httpd-2.0.55.tar.bz2 4745220 RMD160 04749dcf9ea369152eddf9422e49bc0a77a443eb SHA1 ab016aace57f34cb3eae5c9d48f2bcc5759d6c84 SHA256 764d12f9f3ca1b01218077681a9c08b43bc8239079ec7c2ca99c8a7fa47d3652
 DIST httpd-2.0.58.tar.bz2 4704318 RMD160 2ff44b2254552db908f1defd09e3142527f9bf83 SHA1 697e1674f8efbbe05b9f6c1ba00cd28a37293229 SHA256 4f746715c408f4cac48099ea72560c50ef190568dfcfa8e0762bae66c0398029
 DIST httpd-2.2.0.tar.bz2 4839151 RMD160 7ee7364d24881c68f2d4643089fb996888bba9c0 SHA1 96136720434aa562b76e432b09b874ca6476dd4d SHA256 bbf1a452889f9d502840e3b8dda4938b6bd633b94b888ab799ee9aa5845115f7
+DIST httpd-2.2.2.tar.bz2 4851887 RMD160 618e8365fe790f5fef8c329dc294be373d19acf2 SHA1 26544ebc5a9f8c383ffc247dcd47f65dae12a732 SHA256 51f8e00ca27ba4d4259daeff30ce6efcdcf086d277ffb7130e215b492a6f77cc
 DIST lingerd-0.94.tar.gz 33938 RMD160 2d7363b763a68c0c7acdadc23779929f4d02153f SHA1 25d32aca3f03fbc9273fca6491444d1920818a1c SHA256 632030f9c1b9e8f817ee19bad74988f3dce7f6ec617677ad5a522e8d491382a0
 DIST mod_ssl-2.8.25-1.3.34.tar.gz 820352 RMD160 90a3913d30c7f4d194907463125c90101005837a SHA1 150f726539d74c0d2af02e482be78bbcdb811395 SHA256 832b240157666efdbdfc1a2fd593ee4eebbc9441ec48ece8276660092b974d07
 EBUILD apache-1.3.34-r10.ebuild 8690 RMD160 28f379c344ab089cb5063f443d0463fd558b1774 SHA1 2a9f35b87ab43a90e6f13891c351935b17a46061 SHA256 65d70183f5e960ab316a265ff80c14d4ed0c2364dc30ee8337c89998222849d1
@@ -50,10 +52,14 @@ EBUILD apache-2.2.0-r2.ebuild 14292 RMD160 60298e76c2c75fb6cbb48f9d1ef4cf19950ce
 MD5 dfb15083b9b42e94e6af367de6a6632b apache-2.2.0-r2.ebuild 14292
 RMD160 60298e76c2c75fb6cbb48f9d1ef4cf19950ce4a0 apache-2.2.0-r2.ebuild 14292
 SHA256 cebf4be7a8f2e23231544846e85fa315f00130ab7d41fce75689979c3b88abca apache-2.2.0-r2.ebuild 14292
-MISC ChangeLog 81663 RMD160 7f77b452cd55afa7db9250bdddaa376ddda5f36b SHA1 67a1619b97b63970c3cb56ff401809ef2c4a1bb9 SHA256 411661e109e5558316110460a9c8ba0b31b9c6e77026fb77213f13bdc3393314
-MD5 9d596ffbaa156bbb532c2859bca33974 ChangeLog 81663
-RMD160 7f77b452cd55afa7db9250bdddaa376ddda5f36b ChangeLog 81663
-SHA256 411661e109e5558316110460a9c8ba0b31b9c6e77026fb77213f13bdc3393314 ChangeLog 81663
+EBUILD apache-2.2.2.ebuild 14005 RMD160 e196c5a626b6c52e0c3f70f31931c8c57ae3dfcd SHA1 28dd9d5f9f87716380a31f1cf6f53e40a2b43255 SHA256 ef643ad76a26e0e735bda81b3099c1d3f346c02c79d2d359b2cda13b86052c90
+MD5 5613070f51bf561da55b6cd594d9d77f apache-2.2.2.ebuild 14005
+RMD160 e196c5a626b6c52e0c3f70f31931c8c57ae3dfcd apache-2.2.2.ebuild 14005
+SHA256 ef643ad76a26e0e735bda81b3099c1d3f346c02c79d2d359b2cda13b86052c90 apache-2.2.2.ebuild 14005
+MISC ChangeLog 81962 RMD160 ee5b99b25d7446f44083496313ee0825a0ece51c SHA1 1e67a43225bace6533e457772060e514a9460b5f SHA256 215df13682ebfc245e68b1fa2bfdecfb1e715828e2ccdba9d5c992a1a2e8b057
+MD5 9d4c92a9c987b0904651a1187bdcf73f ChangeLog 81962
+RMD160 ee5b99b25d7446f44083496313ee0825a0ece51c ChangeLog 81962
+SHA256 215df13682ebfc245e68b1fa2bfdecfb1e715828e2ccdba9d5c992a1a2e8b057 ChangeLog 81962
 MISC metadata.xml 566 RMD160 8aad2cbb313fa91b77c6f4891f8d3483d1460adc SHA1 cfaab8d65125c65cb5c66c37dd200f7b3586baf9 SHA256 9826f38d29b803e954faa6fafffc4d6f197bfcb0e14cc76af891c41081d948e2
 MD5 27c9cb37c510e08bb69df277229a03ea metadata.xml 566
 RMD160 8aad2cbb313fa91b77c6f4891f8d3483d1460adc metadata.xml 566
@@ -85,3 +91,6 @@ SHA256 33e99840918bb5d10d5d4ecf2368b3246cd91a640e0c9a094256e4025ca0425b files/di
 MD5 b7db57ee172c09170afffd74a77d3dbc files/digest-apache-2.2.0-r2 536
 RMD160 0bc246f9c4f2c1707c3f393ea1fa3baa2d140287 files/digest-apache-2.2.0-r2 536
 SHA256 da35bf941e330235aa37b4fffe5d32cb6c006f12f754ac7ee7955e171f51b6e3 files/digest-apache-2.2.0-r2 536
+MD5 acbe49d5cc1970e0ccb40c0ce74307e1 files/digest-apache-2.2.2 527
+RMD160 8fb87b136255e5ca6d1c9d4b5ee410efd97a8dbb files/digest-apache-2.2.2 527
+SHA256 0b557e84751b1903abe7da1eb561cba43a0c471c2fe07304b22e6e3c31f0df78 files/digest-apache-2.2.2 527
diff --git a/net-www/apache/apache-2.2.2.ebuild b/net-www/apache/apache-2.2.2.ebuild
new file mode 100644 (file)
index 0000000..23abde2
--- /dev/null
@@ -0,0 +1,495 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-www/apache/apache-2.2.2.ebuild,v 1.1 2006/06/07 00:18:42 vericgar Exp $
+
+inherit eutils flag-o-matic gnuconfig multilib autotools
+
+# latest gentoo apache files
+GENTOO_PATCHNAME="gentoo-apache-${PVR}"
+GENTOO_PATCHSTAMP="20060606"
+GENTOO_DEVSPACE="vericgar"
+GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}"
+
+DESCRIPTION="The Apache Web Server"
+HOMEPAGE="http://httpd.apache.org/"
+SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2
+       http://dev.gentoo.org/~${GENTOO_DEVSPACE}/dist/apache/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2"
+
+# some helper scripts are apache-1.1, thus both are here
+LICENSE="Apache-2.0 Apache-1.1"
+
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="debug doc ldap no-suexec ssl static-modules threads selinux mpm-prefork mpm-worker mpm-event mpm-peruser"
+
+RDEPEND="dev-lang/perl
+       >=dev-libs/apr-1.2.7
+       >=dev-libs/apr-util-1.2.7
+       dev-libs/expat
+       dev-libs/libpcre
+       app-misc/mime-types
+       sys-libs/zlib
+       ssl? ( dev-libs/openssl )
+       selinux? ( sec-policy/selinux-apache )
+       !mips? ( ldap? ( =net-nds/openldap-2* ) )"
+DEPEND="${RDEPEND}
+       >=sys-devel/autoconf-2.59-r4"
+
+S="${WORKDIR}/httpd-${PV}"
+
+
+
+pkg_setup() {
+       if use ldap && ! built_with_use 'dev-libs/apr-util' ldap; then
+               eerror "dev-libs/apr-util is missing LDAP support. For apache to have"
+               eerror "ldap support, apr-util must be built with the ldap USE-flag"
+               eerror "enabled."
+               die "ldap USE-flag enabled while not supported in apr-util"
+       fi
+
+       # select our MPM
+       MPM_LIST="prefork worker event peruser"
+       for x in ${MPM_LIST}; do
+               if useq mpm-${x}; then
+                       if [ "x${mpm}" == "x" ]; then
+                               mpm=${x}
+                               einfo "Selected MPM: ${mpm}"
+                       else
+                               eerror "You have selected more then one mpm USE-flag."
+                               eerror "Only one MPM is supported."
+                               die "more then one mpm was specified"
+                       fi
+               fi
+       done
+
+       if [ "x${mpm}" == "x" ]; then
+               if useq "threads"; then
+                       mpm=worker
+                       einfo "Selected default threaded MPM: ${mpm}";
+               else
+                       mpm=prefork
+                       einfo "Selected default MPM: ${mpm}";
+               fi
+       fi
+}
+
+
+
+src_unpack() {
+       unpack ${A} || die
+       cd ${S} || die
+
+       # Use correct multilib libdir in gentoo patches
+       sed -i -e "s:/usr/lib:/usr/$(get_libdir):g" \
+               ${GENTOO_PATCHDIR}/{conf/httpd.conf,init/*,patches/config.layout,scripts/Makefile.suexec,scripts/suexec2-config} \
+               || die "sed failed"
+
+
+       #### Patch Organization
+       # 00-19 Gentoo specific  (00_all_some-title.patch)
+       # 20-39 Additional MPMs  (20_all_${MPM}_some-title.patch)
+       # 40-59 USE-flag based   (40_all_${USE}_some-title.patch)
+       # 60-79 Version specific (60_all_${PV}_some-title.patch)
+       # 80-99 Security patches (80_all_${PV}_cve-####-####.patch)
+
+       EPATCH_SUFFIX="patch"
+       epatch ${GENTOO_PATCHDIR}/patches/[0-1]* || die "Patching failed"
+       if $(ls ${GENTOO_PATCHDIR}/patches/[2-3]?_*_${mpm}_* &>/dev/null); then
+               epatch ${GENTOO_PATCHDIR}/patches/[2-3]?_*_${mpm}_* || \
+               die "MPM ${mpm} Patching failed"
+       fi
+       for uf in ${IUSE}; do
+               if useq ${uf} && $(ls ${GENTOO_PATCHDIR}/patches/[4-5]?_*_${uf}_* &>/dev/null)
+               then
+                       epatch ${GENTOO_PATCHDIR}/patches/[4-5]?_*_${uf}_* || \
+                       die "USE=\"${uf}\" Patching failed"
+               fi
+       done
+       if $(ls ${GENTOO_PATCHDIR}/patches/[6-9]?_*_${PV}_* &>/dev/null); then
+               epatch ${GENTOO_PATCHDIR}/patches/[6-9]?_*_${PV}_* || \
+               die "Version ${PV} Patching failed"
+       fi
+
+
+       # avoid utf-8 charset problems
+       export LC_CTYPE=C
+
+       # setup the filesystem layout config
+       cat ${GENTOO_PATCHDIR}/patches/config.layout >> config.layout
+       sed -i -e "s:version:${PF}:g" config.layout
+
+       # patched-in MPMs need the build environment rebuilt
+       sed -i -e '/sinclude/d' configure.in
+       AT_GNUCONF_UPDATE=yes AT_M4DIR=build WANT_AUTOCONF=2.5 eautoreconf
+
+}
+
+
+
+src_compile() {
+
+       local modtype
+       if useq static-modules; then
+               modtype="static"
+       else
+               modtype="shared"
+       fi
+
+       select_modules_config || die "determining modules failed"
+
+       local myconf
+       useq ldap && mods="${mods} ldap authnz-ldap" && \
+               myconf="${myconf} --enable-authnz-ldap=${modtype}" && \
+               myconf="${myconf} --enable-ldap=${modtype}"
+       useq ssl && mods="${mods} ssl" && \
+               myconf="${myconf} --with-ssl=/usr  --enable-ssl=${modtype}"
+
+       # Fix for bug #24215 - robbat2@gentoo.org, 30 Oct 2003
+       # We pre-load the cache with the correct answer!  This avoids
+       # it violating the sandbox.  This may have to be changed for
+       # non-Linux systems or if sem_open changes on Linux.  This
+       # hack is built around documentation in /usr/include/semaphore.h
+       # and the glibc (pthread) source
+       echo 'ac_cv_func_sem_open=${ac_cv_func_sem_open=no}' >> ${S}/config.cache
+
+       if useq no-suexec; then
+               myconf="${myconf} --disable-suexec"
+       else
+               mods="${mods} suexec"
+               myconf="${myconf} $(${GENTOO_PATCHDIR}/scripts/suexec2-config --config)"
+
+               myconf="${myconf}
+                               --with-suexec-bin=/usr/sbin/suexec2 \
+                               --enable-suexec=${modtype}"
+       fi
+
+       # common confopts
+       myconf="${myconf} \
+                       --cache-file=${S}/config.cache \
+                       --with-perl=/usr/bin/perl \
+                       --with-expat=/usr \
+                       --with-z=/usr \
+                       --with-port=80 \
+                       --enable-layout=Gentoo \
+                       --with-program-name=apache2 \
+                       --host=${CHOST} ${MY_BUILTINS} \
+                       --with-apr=/usr \
+                       --with-apr-util=/usr \
+                       --with-pcre=/usr "
+
+       # debugging support
+       if useq debug ; then
+               myconf="${myconf} --enable-maintainer-mode"
+       fi
+
+       ./configure --with-mpm=${mpm} ${myconf} || die "bad ./configure please submit bug report to bugs.gentoo.org. Include your config.layout and config.log"
+
+       sed -i -e 's:apache2\.conf:httpd.conf:' include/ap_config_auto.h
+
+       emake || die "problem compiling apache2"
+
+}
+
+pkg_preinst() {
+       # setup apache user and group
+       enewgroup apache 81
+       enewuser apache 81 -1 /var/www apache
+}
+
+src_install () {
+
+       #### DEFAULT SETUP & INSTALL
+
+       # general install
+       einfo "Beginning install phase"
+       make DESTDIR=${D} install || die
+
+       #### CLEAN-UP
+       rm -rf ${D}/etc
+       rm ${D}/usr/sbin/envvars*
+       rm ${D}/usr/sbin/apachectl
+
+       #### CONFIGURATION
+       einfo "Setting up configuration"
+       insinto /etc/apache2
+
+       # restore the magic file
+       doins docs/conf/magic
+
+
+       # This is a mapping of module names to the -D option in APACHE2_OPTS
+       # Used for creating optional LoadModule lines
+       mod_defines="info:INFO status:INFO
+                               ldap:LDAP authnz-ldap:AUTH_LDAP
+                               proxy:PROXY proxy_connect:PROXY proxy_http:PROXY
+                               ssl:SSL
+                               suexec:SUEXEC
+                               userdir:USERDIR"
+
+       # create our LoadModule lines
+       if ! useq static-modules; then
+       load_module=''
+       moddir="${D}/usr/$(get_libdir)/apache2/modules"
+       for m in ${mods}; do
+               endid="no"
+
+               if [ -e "${moddir}/mod_${m}.so" ]; then
+                       for def in ${mod_defines}; do
+                               if [ "${m}" == "${def%:*}" ]; then
+                                       load_module="${load_module}\n<IfDefine ${def#*:}>"
+                                       endid="yes"
+                               fi
+                       done
+                       load_module="${load_module}\nLoadModule ${m}_module modules/mod_${m}.so"
+                       if [ "${endid}" == "yes" ]; then
+                               load_module="${load_module}\n</IfDefine>"
+                       fi
+               fi
+       done
+       fi
+       sed -i -e "s:%%LOAD_MODULE%%:${load_module}:" \
+               ${GENTOO_PATCHDIR}/conf/httpd.conf || die "sed failed"
+
+       # install our configuration     
+       doins -r ${GENTOO_PATCHDIR}/conf/*
+
+       insinto /etc/logrotate.d
+       newins ${GENTOO_PATCHDIR}/scripts/apache2-logrotate apache2
+
+       # generate a sane default APACHE2_OPTS
+       APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE"
+       useq doc && APACHE2_OPTS="${APACHE2_OPTS} -D MANUAL"
+       useq ssl && APACHE2_OPTS="${APACHE2_OPTS} -D SSL -D SSL_DEFAULT_VHOST"
+       useq no-suexec || APACHE2_OPTS="${APACHE2_OPTS} -D SUEXEC"
+
+       sed -i -e "s:APACHE2_OPTS=\".*\":APACHE2_OPTS=\"${APACHE2_OPTS}\":" \
+               ${GENTOO_PATCHDIR}/init/apache2.confd \
+               || die "sed failed"
+
+       mv ${D}/etc/apache2/apache2-builtin-mods ${D}/etc/apache2/apache2-builtin-mods-2.2
+
+       newconfd ${GENTOO_PATCHDIR}/init/apache2.confd apache2
+       newinitd ${GENTOO_PATCHDIR}/init/apache2.initd apache2
+
+
+       #### HELPER SCRIPTS
+       einfo "Installing helper scripts"
+       exeinto /usr/sbin
+       for i in apache2logserverstatus apache2splitlogfile suexec2-config; do
+               doexe ${GENTOO_PATCHDIR}/scripts/${i}
+       done
+       useq ssl && doexe ${GENTOO_PATCHDIR}/scripts/gentestcrt.sh
+
+       for i in logresolve.pl split-logfile log_server_status; do
+               doexe support/${i}
+       done
+
+       # needed for suexec2-config
+       insinto /usr/${get_libdir}/apache2/build
+       doins ${GENTOO_PATCHDIR}/scripts/Makefile.suexec
+       doins support/suexec.c
+
+
+       #### SLOTTING
+       einfo "Applying SLOT=2"
+       cd ${D}
+
+       # sbin binaries
+       slotmv="apxs htpasswd htdigest rotatelogs logresolve log_server_status
+                       ab checkgid dbmmanage split-logfile suexec"
+       for i in ${slotmv}; do
+               mv usr/sbin/${i} usr/sbin/${i}2
+       done
+       mv usr/sbin/logresolve.pl usr/sbin/logresolve2.pl
+
+       # man.1
+       for i in dbmmanage htdigest htpasswd; do
+               mv usr/share/man/man1/${i}.1 usr/share/man/man1/${i}2.1
+       done
+
+       # man.8
+       for i in ab apxs logresolve rotatelogs suexec; do
+               mv usr/share/man/man8/${i}.8 usr/share/man/man8/${i}2.8
+       done
+
+       mv usr/share/man/man8/httpd.8 usr/share/man/man8/apache2.8
+       mv usr/share/man/man8/apachectl.8 usr/share/man/man8/apache2ctl.8
+
+
+
+       #### DOCS
+       # basic info
+       einfo "Installing docs"
+       cd ${S}
+       dodoc ABOUT_APACHE CHANGES LAYOUT README README.platforms VERSIONING
+
+       # drop in a convenient link to the manual
+       if useq doc; then
+               sed -i -e "s:VERSION:${PVR}:" ${D}/etc/apache2/modules.d/00_apache_manual.conf
+       else
+               einfo "USE=-docs :: Removing Manual"
+               rm ${D}/etc/apache2/modules.d/00_apache_manual.conf
+               rm -rf ${D}/usr/share/doc/${PF}/manual
+       fi
+
+       # the default webroot gets stored in /usr/share/doc
+       einfo "Installing default webroot to /usr/share/doc/${PF}"
+       mv ${D}/var/www/localhost ${D}/usr/share/doc/${PF}/webroot
+
+
+       #### PERMISSONS
+       einfo "Applying permissions"
+
+
+       # protect the suexec binary
+       if ! useq no-suexec; then
+               fowners root:apache /usr/sbin/suexec2
+               fperms 4710 /usr/sbin/suexec2
+       fi
+
+       keepdir /etc/apache2/vhosts.d
+       keepdir /etc/apache2/modules.d
+
+       # empty dirs
+       for i in /var/lib/dav /var/log/apache2 /var/cache/apache2; do
+               keepdir ${i}
+               fowners apache:apache ${i}
+               fperms 755 ${i}
+       done
+
+       # We'll be needing /etc/apache2/ssl if USE=ssl
+       useq ssl && keepdir /etc/apache2/ssl
+
+       fperms 755 /usr/sbin/apache2logserverstatus
+       fperms 755 /usr/sbin/apache2splitlogfile
+
+}
+
+pkg_postinst() {
+       # setup apache user and group
+       enewgroup apache 81
+       enewuser apache 81 -1 /var/www apache
+
+       # Automatically generate test ceritificates if ssl USE flag is being set
+       if useq ssl -a !-e ${ROOT}/etc/apache2/ssl/server.crt; then
+               cd ${ROOT}/etc/apache2/ssl
+               einfo
+               einfo "Generating self-signed test certificate in /etc/apache2/ssl..."
+               yes "" 2>/dev/null | \
+                       ${ROOT}/usr/sbin/gentestcrt.sh >/dev/null 2>&1 || \
+                       die "gentestcrt.sh failed"
+               einfo
+       fi
+
+       # we do this here because the default webroot is a copy of the files
+       # that exist elsewhere and we don't want them managed/removed by portage
+       # when apache is upgraded.
+       if [ -e "${ROOT}/var/www/localhost" ]; then
+               einfo "The default webroot has not been installed into"
+               einfo "${ROOT}/var/www/localhost because the directory already exists"
+               einfo "and we do not want to overwrite any files you have put there."
+               einfo
+               einfo "If you would like to install the latest webroot, please run"
+               einfo "emerge --config =${PF}"
+       else
+               einfo "Installing default webroot to ${ROOT}/var/www/localhost"
+               cp -r ${ROOT}/usr/share/doc/${PF}/webroot/* ${ROOT}/var/www/localhost
+               chown -R apache: ${ROOT}/var/www/localhost
+       fi
+
+       # Check for dual/upgrade install
+       # The hasq is a hack so we don't throw QA warnings for not putting
+       # apache2 in IUSE - the only use of the flag is this warning
+       if has_version '=net-www/apache-1*' || ! hasq apache2 ${USE}; then
+               ewarn
+               ewarn "Please add the 'apache2' flag to your USE variable and (re)install"
+               ewarn "any additional DSO modules you may wish to use with Apache-2.x."
+               ewarn "Addon modules are configured in /etc/apache2/modules.d/"
+               ewarn
+       fi
+
+
+       if has_version '<net-www/apache-2.2.0'; then
+               einfo
+               einfo "When upgrading from versions below 2.2.0 to this version, you"
+               einfo "need to rebuild all your modules. Please do so for your modules"
+               einfo "to continue working correctly."
+               einfo
+               einfo "Also note that some configuration directives have been"
+               einfo "split into thier own files under /etc/apache2/modules.d"
+               einfo
+               einfo "For more information on what you may need to change, please"
+               einfo "see the overview of changes at:"
+               einfo "http://httpd.apache.org/docs/2.2/new_features_2_2.html"
+               einfo
+       fi
+
+}
+
+
+pkg_config() {
+
+       einfo "Installing default webroot to ${ROOT}/var/www/localhost"
+       cp -r ${ROOT}/usr/share/doc/${PF}/webroot/* ${ROOT}/var/www/localhost
+       chown -R apache: ${ROOT}/var/www/localhost
+
+}
+
+
+
+
+
+parse_modules_config() {
+       local name=""
+       local disable=""
+       local version="undef"
+       MY_BUILTINS=""
+       mods=""
+       [ -f "${1}" ] || return 1
+
+       for i in $(sed 's/#.*//' < $1); do
+
+               if [ "$i" == "VERSION:" ]; then
+                       version="select"
+               elif [ "${version}" == "select" ]; then
+                       version=$i
+               # start with - option for backwards compatibility only
+               elif [ "$i" == "-" ]; then
+                       disable="true"
+               elif [ -z "${name}" ] && [ "$i" != "${i/mod_/}" ]; then
+                       name="${i/mod_/}"
+               elif [ -n "${disable}" ] || [ "$i" == "disabled" ]; then
+                       MY_BUILTINS="${MY_BUILTINS} --disable-${name}"
+                       name="" ; disable=""
+               elif [ "$i" == "static" ] || useq static-modules; then
+                       MY_BUILTINS="${MY_BUILTINS} --enable-${name}=yes"
+                       name="" ; disable=""
+               elif [ "$i" == "shared" ]; then
+                       MY_BUILTINS="${MY_BUILTINS} --enable-${name}=shared"
+                       mods="${mods} ${name}"
+                       name="" ; disable=""
+               else
+                       ewarn "Parse error in ${1} - unknown option: $i";
+               fi
+       done
+
+       # reject the file if it's unversioned or doesn't match our
+       # package major.minor. This is to make upgrading work smoothly.
+       if [ "${version}" != "${PV%.*}" ]; then
+               mods=""
+               MY_BUILTINS=""
+               return 1
+       fi
+
+       einfo "Using ${1}"
+       einfo "options: ${MY_BUILTINS}"
+       einfo "LoadModules: ${mods}"
+}
+
+select_modules_config() {
+       parse_modules_config /etc/apache2/apache2-builtin-mods-2.2 || \
+       parse_modules_config ${GENTOO_PATCHDIR}/conf/apache2-builtin-mods || \
+       return 1
+}
+
+# vim:ts=4
diff --git a/net-www/apache/files/digest-apache-2.2.2 b/net-www/apache/files/digest-apache-2.2.2
new file mode 100644 (file)
index 0000000..0ab93be
--- /dev/null
@@ -0,0 +1,6 @@
+MD5 22b1bd6b6ea8301f1faf37101f37d29a gentoo-apache-2.2.2-20060606.tar.bz2 51183
+RMD160 23b975aa7b24b8eb8f929b4e22af51057270b6ea gentoo-apache-2.2.2-20060606.tar.bz2 51183
+SHA256 75cc1b48361c5024faa2499f78fb5427d75010f4cc7f712b875c36bd8633e44e gentoo-apache-2.2.2-20060606.tar.bz2 51183
+MD5 9c759a9744436de6a6aa2ddbc49d6e81 httpd-2.2.2.tar.bz2 4851887
+RMD160 618e8365fe790f5fef8c329dc294be373d19acf2 httpd-2.2.2.tar.bz2 4851887
+SHA256 51f8e00ca27ba4d4259daeff30ce6efcdcf086d277ffb7130e215b492a6f77cc httpd-2.2.2.tar.bz2 4851887