From 439dfe502819dfc491c4d4444ef3a24f898354a2 Mon Sep 17 00:00:00 2001 From: geos_one Date: Sun, 21 Oct 2007 09:05:33 +0000 Subject: [PATCH] www-servers/apache: update to latest apache git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@257 6952d904-891a-0410-993b-d76249ca496b --- www-servers/apache/ChangeLog | 4 + www-servers/apache/Manifest | 20 +- www-servers/apache/apache-2.2.6-r102.ebuild | 504 ++++++++++++++++++ .../apache/files/apache-2.2.6-r102.patch | 58 ++ .../apache/files/digest-apache-2.2.6-r102 | 6 + 5 files changed, 588 insertions(+), 4 deletions(-) create mode 100644 www-servers/apache/apache-2.2.6-r102.ebuild create mode 100644 www-servers/apache/files/apache-2.2.6-r102.patch create mode 100644 www-servers/apache/files/digest-apache-2.2.6-r102 diff --git a/www-servers/apache/ChangeLog b/www-servers/apache/ChangeLog index 42803b8e..f138187c 100644 --- a/www-servers/apache/ChangeLog +++ b/www-servers/apache/ChangeLog @@ -2,6 +2,10 @@ # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 21 Oct 2007; Mario Fetka + +files/apache-2.2.6-r102.patch, +apache-2.2.6-r102.ebuild: + update to latest apache + 05 Oct 2007; Mario Fetka ++, ++, +metadata.xml, -apache-2.2.6-r2.ebuild: add mozldap support diff --git a/www-servers/apache/Manifest b/www-servers/apache/Manifest index df76b747..746e87f4 100644 --- a/www-servers/apache/Manifest +++ b/www-servers/apache/Manifest @@ -1,17 +1,29 @@ +AUX apache-2.2.6-r102.patch 2593 RMD160 d5d81c4a7d23a5c7625d394dab87eed913ad3fc0 SHA1 3b40ab5066ff7a1db09fd828f343efc86ec605f9 SHA256 ce4f897430acb3a563c29faf61927c029084e119f467529e1b072122a9ff4580 +MD5 395ae99d8e3e9a3d5de609545f7ecccc files/apache-2.2.6-r102.patch 2593 +RMD160 d5d81c4a7d23a5c7625d394dab87eed913ad3fc0 files/apache-2.2.6-r102.patch 2593 +SHA256 ce4f897430acb3a563c29faf61927c029084e119f467529e1b072122a9ff4580 files/apache-2.2.6-r102.patch 2593 +DIST gentoo-apache-2.2.6-r102-20071020.tar.bz2 58752 RMD160 705f6913612dd02b21e0ce0399a80899be688ac2 SHA1 26bffdc3490261c8abd9826e8dc0934fd4f148ee SHA256 e208bd87a3cd0708ade1176bda1d5ea95c250dc1260c1a231b00ce32d4028467 DIST gentoo-apache-2.2.6-r99-20070921.tar.bz2 58066 RMD160 85285c079b6e975c2bfcd8b8ed8070ae6f8ee7cb SHA1 fb3f091b2e5a3cfab912535c50b5286bd65b813a SHA256 d10754cb517ea68a717e5da6bb5897b103a3e5ac864e99ada8e35c69e1da9c89 DIST httpd-2.2.6.tar.bz2 4717066 RMD160 5ae895c6898213e1e3b7e7b02cdfcbe5b36a108f SHA1 e6ef926ecd1f9a412af8c266239f0a6f58c63854 SHA256 f27cd9df50a2acd9df8f37520f62f6ce51758689d425ead5883e75ff5ed6548c +EBUILD apache-2.2.6-r102.ebuild 16331 RMD160 feb61aae899968d8e4f85187e05ca66d2f78c679 SHA1 b203f3caa5ff19826c6b2c5e3efe1f48af22902a SHA256 39160a715f18abf318a01574884d773ddfab32a0c218ffceba3238653ea8715a +MD5 9172f6c426d98505ed01dfed8a7ac5e5 apache-2.2.6-r102.ebuild 16331 +RMD160 feb61aae899968d8e4f85187e05ca66d2f78c679 apache-2.2.6-r102.ebuild 16331 +SHA256 39160a715f18abf318a01574884d773ddfab32a0c218ffceba3238653ea8715a apache-2.2.6-r102.ebuild 16331 EBUILD apache-2.2.6-r99.ebuild 16198 RMD160 c65320efc11db2097567991a198981c7446284b6 SHA1 bcad52bbb6ef4fb2280ae80c2b2d1362540f1580 SHA256 be5295da5ede9286b52b2a1f8e167a13814b21abef6d5759fe2ec13abde4e6d4 MD5 ec61850f97c4061bf1e91de3947bddcd apache-2.2.6-r99.ebuild 16198 RMD160 c65320efc11db2097567991a198981c7446284b6 apache-2.2.6-r99.ebuild 16198 SHA256 be5295da5ede9286b52b2a1f8e167a13814b21abef6d5759fe2ec13abde4e6d4 apache-2.2.6-r99.ebuild 16198 -MISC ChangeLog 240 RMD160 ae237e5195383d0c8727e403ce1b6b0858dfff87 SHA1 77a17dace2739855ac792de52af644ee7cbe1929 SHA256 6466927d71492110e673e730eb63d67d551a740643ca3edca5367e9d8bb93b55 -MD5 121293941f84df24ffcdd20d8b9510fb ChangeLog 240 -RMD160 ae237e5195383d0c8727e403ce1b6b0858dfff87 ChangeLog 240 -SHA256 6466927d71492110e673e730eb63d67d551a740643ca3edca5367e9d8bb93b55 ChangeLog 240 +MISC ChangeLog 376 RMD160 a67786c9d7252a39ae9139edf858bf7135476958 SHA1 ea4db281dcbfc6b8a978ba5b78ec1e891567335b SHA256 a3a0d151ebc3028803622c29388ecc29976f1e14092d911fc6463d9631fc883a +MD5 ec3b9a14c5ea561ff1d9d89beabfecf9 ChangeLog 376 +RMD160 a67786c9d7252a39ae9139edf858bf7135476958 ChangeLog 376 +SHA256 a3a0d151ebc3028803622c29388ecc29976f1e14092d911fc6463d9631fc883a ChangeLog 376 MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42 MD5 1e678929a9fec6632e227bdf2262e9a1 metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 metadata.xml 170 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42 metadata.xml 170 +MD5 79a6a075e10732527cdbbe6aae280c49 files/digest-apache-2.2.6-r102 542 +RMD160 e9a6e9e422844c0b070d269da5be14dd2f55fc42 files/digest-apache-2.2.6-r102 542 +SHA256 28e9143218044c4503121bc966793a1aade78d5fda6bdb99e143ff1c8879ff1d files/digest-apache-2.2.6-r102 542 MD5 5e923f52ede7540a4d8e7fdcefe76042 files/digest-apache-2.2.6-r99 539 RMD160 44b0718fbe6d485d1601a1eb2dc946908e8353d7 files/digest-apache-2.2.6-r99 539 SHA256 76d37e10679163de4e46ffbb1f69112f5403f6271d0e6bc225bb6163e131dd5d files/digest-apache-2.2.6-r99 539 diff --git a/www-servers/apache/apache-2.2.6-r102.ebuild b/www-servers/apache/apache-2.2.6-r102.ebuild new file mode 100644 index 00000000..fcd95bbe --- /dev/null +++ b/www-servers/apache/apache-2.2.6-r102.ebuild @@ -0,0 +1,504 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-servers/apache/apache-2.2.6-r2.ebuild,v 1.1 2007/10/20 17:15:21 hollow Exp $ + +inherit eutils flag-o-matic multilib autotools + +# latest gentoo apache files +GENTOO_PATCHNAME="gentoo-${PF}" +GENTOO_PATCHSTAMP="20071020" +GENTOO_DEVSPACE="hollow" +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 + http://ftp.mars.arge.at/pub/${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 ~x86-fbsd" +IUSE="debug doc ldap mozldap mpm-event mpm-itk mpm-peruser mpm-prefork mpm-worker no-suexec selinux ssl static-modules threads" + +DEPEND="dev-lang/perl + =dev-libs/apr-1* + =dev-libs/apr-util-1* + dev-libs/expat + dev-libs/libpcre + sys-libs/zlib + ldap? ( =net-nds/openldap-2* ) + mozldap? ( =dev-libs/mozldap-6* ) + selinux? ( sec-policy/selinux-apache ) + ssl? ( dev-libs/openssl ) + !=www-servers/apache-1* + !=app-admin/apache-tools-2.2.4-r2" + +RDEPEND="${DEPEND} + app-misc/mime-types" + +PDEPEND="~app-admin/apache-tools-${PV}" + +S="${WORKDIR}/httpd-${PV}" + +pkg_setup() { + if use ldap && use mozldap ; then + eerror "you cant activate ldap & mozldap at the same time " + eerror "plz deactivate \"www-servers/apache -ldap mozldap\" one in" + eerror "\"etc/portage/package.use\" ;p" + die "ldap and mozldap USE conflict" + fi + + if ( use ldap && ! built_with_use 'dev-libs/apr-util' ldap ) || ( use mozldap && ! built_with_use 'dev-libs/apr-util' mozldap ) ; 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 or mozldap USE-flag" + eerror "enabled." + die "ldap or mozldap USE-flag enabled while not supported in apr-util" + fi + + # Select the default MPM module + MPM_LIST="event itk peruser prefork worker" + for x in ${MPM_LIST} ; do + if use mpm-${x} ; then + if [[ "x${mpm}" == "x" ]] ; then + mpm=${x} + elog + elog "Selected MPM: ${mpm}" + elog + 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 use threads ; then + mpm=worker + elog + elog "Selected default threaded MPM: ${mpm}"; + elog + else + mpm=prefork + elog + elog "Selected default MPM: ${mpm}"; + elog + fi + fi + + # setup apache user and group + enewgroup apache 81 + enewuser apache 81 -1 /var/www apache + + if ! use no-suexec ; then + elog + elog "You can manipulate several configure options of suexec" + elog "through the following environment variables:" + elog + elog " SUEXEC_SAFEPATH: Default PATH for suexec (default: /usr/local/bin:/usr/bin:/bin)" + elog " SUEXEC_LOGFILE: Path to the suexec logfile (default: /var/log/apache2/suexec_log)" + elog " SUEXEC_CALLER: Name of the user Apache is running as (default: apache)" + elog " SUEXEC_DOCROOT: Directory in which suexec will run scripts (default: /var/www)" + elog " SUEXEC_MINUID: Minimum UID, which is allowed to run scripts via suexec (default: 1000)" + elog " SUEXEC_MINGID: Minimum GID, which is allowed to run scripts via suexec (default: 100)" + elog " SUEXEC_USERDIR: User subdirectories (like /home/user/html) (default: public_html)" + elog " SUEXEC_UMASK: Umask for the suexec process (default: 077)" + elog + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # 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} \ + || die "libdir 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 "${GENTOO_PATCHDIR}"/patches/*.patch + + # setup the filesystem layout config + cat "${GENTOO_PATCHDIR}"/patches/config.layout >> "${S}"/config.layout || \ + die "Failed preparing config.layout!" + sed -i -e "s:version:${PF}:g" "${S}"/config.layout + + # patched-in MPMs need the build environment rebuilt + sed -i -e '/sinclude/d' configure.in + AT_GNUCONF_UPDATE=yes AT_M4DIR=build eautoreconf + + # apache2.8 instead of httpd.8 (bug #194828) + mv docs/man/{httpd,apache2}.8 +} + +src_compile() { + local modtype="shared" myconf="" + cd "${S}" + + # Instead of filtering --as-needed (bug #128505), append --no-as-needed + # Thanks to Harald van Dijk + append-ldflags -Wl,--no-as-needed + + # peruser MPM debugging with -X is nearly impossible + use mpm-peruser && use debug && append-flags -DMPM_PERUSER_DEBUG + + use static-modules && modtype="static" + select_modules_config || die "determining modules failed" + + if use ldap || use mozldap ; then + mods="${mods} ldap authnz_ldap" + myconf="${myconf} --enable-authnz-ldap=${modtype} --enable-ldap=${modtype}" + fi + + if use threads || use mpm-worker || use mpm-event; then + mods="${mods} cgid" + myconf="${myconf} --enable-cgid=${modtype}" + else + mods="${mods} cgi" + myconf="${myconf} --enable-cgi=${modtype}" + fi + + if use ssl; then + mods="${mods} ssl" + myconf="${myconf} --with-ssl=/usr --enable-ssl=${modtype}" + fi + + if use debug; then + myconf="${myconf} --enable-maintainer-mode --enable-exception-hook" + fi + + # Only build suexec with USE=-no-suexec + if use no-suexec ; then + myconf="${myconf} --disable-suexec" + else + myconf="${myconf} --with-suexec-safepath=${SUEXEC_SAFEPATH:-/usr/local/bin:/usr/bin:/bin}" + myconf="${myconf} --with-suexec-logfile=${SUEXEC_LOGFILE:-/var/log/apache2/suexec_log}" + myconf="${myconf} --with-suexec-bin=/usr/sbin/suexec" + myconf="${myconf} --with-suexec-userdir=${SUEXEC_USERDIR:-public_html}" + myconf="${myconf} --with-suexec-caller=${SUEXEC_CALLER:-apache}" + myconf="${myconf} --with-suexec-docroot=${SUEXEC_DOCROOT:-/var/www}" + myconf="${myconf} --with-suexec-uidmin=${SUEXEC_MINUID:-1000}" + myconf="${myconf} --with-suexec-gidmin=${SUEXEC_MINGID:-100}" + myconf="${myconf} --with-suexec-umask=${SUEXEC_UMASK:-077}" + myconf="${myconf} --enable-suexec=${modtype}" + mods="${mods} suexec" + fi + + # econf overwrites the stuff from config.layout, so we have to put them into + # our myconf line too + + econf \ + --includedir=/usr/include/apache2 \ + --libexecdir=/usr/$(get_libdir)/apache2/modules \ + --datadir=/var/www/localhost \ + --sysconfdir=/etc/apache2 \ + --localstatedir=/var \ + --with-mpm=${mpm} \ + --with-perl=/usr/bin/perl \ + --with-expat=/usr \ + --with-z=/usr \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --with-pcre=/usr \ + --with-port=80 \ + --with-program-name=apache2 \ + --enable-layout=Gentoo \ + ${myconf} ${MY_BUILTINS} || die "econf failed!" + + sed -i -e 's:apache2\.conf:httpd.conf:' include/ap_config_auto.h + + emake || die "emake failed" +} + +src_install () { + emake DESTDIR="${D}" install || die "emake install failed" + + # This is a mapping of module names to the -D options in APACHE2_OPTS + # Used for creating optional LoadModule lines + mod_defines=" + auth_digest:AUTH_DIGEST + authnz_ldap:AUTHNZ_LDAP + cache:CACHE + dav:DAV + dav_fs:DAV + dav_lock:DAV + disk_cache:CACHE + file_cache:CACHE + info:INFO + ldap:LDAP + mem_cache:CACHE + proxy:PROXY + proxy_ajp:PROXY + proxy_balancer:PROXY + proxy_connect:PROXY + proxy_http:PROXY + ssl:SSL + status:INFO + suexec:SUEXEC + userdir:USERDIR + " + + # create our LoadModule lines + if ! use static-modules ; then + load_module="" + moddir="${D}/usr/$(get_libdir)/apache2/modules" + for m in $(echo ${mods}|tr ' ' '\n'|sort -u) ; 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" + endid="yes" + fi + done + load_module="${load_module}\nLoadModule ${m}_module modules/mod_${m}.so" + if [[ "${endid}" == "yes" ]] ; then + load_module="${load_module}\n" + fi + fi + done + fi + sed -i -e "s:%%LOAD_MODULE%%:${load_module}:" \ + "${GENTOO_PATCHDIR}"/conf/httpd.conf || die "sed failed" + + # Install our configuration files + insinto /etc/apache2 + doins docs/conf/magic + 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" + use doc && APACHE2_OPTS="${APACHE2_OPTS} -D MANUAL" + use ssl && APACHE2_OPTS="${APACHE2_OPTS} -D SSL -D SSL_DEFAULT_VHOST" + use 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" + + newconfd "${GENTOO_PATCHDIR}"/init/apache2.confd apache2 + newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2 + + # Link apache2ctl to the init script + dosym /etc/init.d/apache2 /usr/sbin/apache2ctl + + # provide symlinks for all the stuff we no longer rename, bug 177697 + for i in suexec apxs; do + dosym /usr/sbin/${i} /usr/sbin/${i}2 + done + + # Install some thirdparty scripts + exeinto /usr/sbin + use ssl && doexe "${GENTOO_PATCHDIR}"/scripts/gentestcrt.sh + + # Install some documentation + dodoc ABOUT_APACHE CHANGES LAYOUT README README.platforms VERSIONING + dodoc "${GENTOO_PATCHDIR}"/docs/* + + # drop in a convenient link to the manual + if use doc ; then + sed -i -e "s:VERSION:${PVR}:" "${D}/etc/apache2/modules.d/00_apache_manual.conf" + else + rm -f "${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 + ebegin "Installing default webroot to /usr/share/doc/${PF}" + mv -f "${D}/var/www/localhost" "${D}/usr/share/doc/${PF}/webroot" + eend $? + keepdir /var/www/localhost/htdocs + + if ! use no-suexec ; then + # Set some sane permissions for suexec + fowners 0:apache /usr/sbin/suexec + fperms 4710 /usr/sbin/suexec + 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 0755 ${i} + done + + # We'll be needing /etc/apache2/ssl if USE=ssl + use ssl && keepdir /etc/apache2/ssl +} + +pkg_postinst() { + # Automatically generate test certificates if ssl USE flag is being set + if use ssl && [[ ! -e "${ROOT}/etc/apache2/ssl/server.crt" ]] ; then + cd "${ROOT}"/etc/apache2/ssl + einfo + einfo "Generating self-signed test certificate in ${ROOT}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 + elog "The default webroot has not been installed into" + elog "${ROOT}var/www/localhost because the directory already exists" + elog "and we do not want to overwrite any files you have put there." + elog + elog "If you would like to install the latest webroot, please run" + elog "emerge --config =${PF}" + else + einfo "Installing default webroot to ${ROOT}var/www/localhost" + mkdir -p "${ROOT}"/var/www/localhost + cp -R "${ROOT}"/usr/share/doc/${PF}/webroot/* "${ROOT}"/var/www/localhost + chown -R apache:0 "${ROOT}"/var/www/localhost + fi + + # Previous installations of apache-2.2 installed the upstream configuration + # files, which shouldn't even have been installed! + if has_version '>=www-servers/apache-2.2.4' ; then + [ -f "${ROOT}"/etc/apache2/apache2.conf ] && \ + rm -f "${ROOT}"/etc/apache2/apache2.conf >/dev/null 2>&1 + + for i in extra original ; do + [ -d "${ROOT}"/etc/apache2/$i ] && \ + rm -rf "${ROOT}"/etc/apache2/$i >/dev/null 2>&1 + done + fi + + # Note regarding IfDefine changes + if has_version '