diff options
author | Michael Stewart <vericgar@gentoo.org> | 2006-01-17 02:54:14 +0000 |
---|---|---|
committer | Michael Stewart <vericgar@gentoo.org> | 2006-01-17 02:54:14 +0000 |
commit | 29459f3cc5d4f05093485de31a9055cdc70ee9ed (patch) | |
tree | cf7758b7e1ea22da591bcad61f1fca1f3725d24c /net-www | |
parent | Stable on SPARC. (diff) | |
download | historical-29459f3cc5d4f05093485de31a9055cdc70ee9ed.tar.gz historical-29459f3cc5d4f05093485de31a9055cdc70ee9ed.tar.bz2 historical-29459f3cc5d4f05093485de31a9055cdc70ee9ed.zip |
Security bump. Fixes bugs 115324 and 118874.
Package-Manager: portage-2.1_pre3-r1
Diffstat (limited to 'net-www')
-rw-r--r-- | net-www/apache/ChangeLog | 9 | ||||
-rw-r--r-- | net-www/apache/Manifest | 16 | ||||
-rw-r--r-- | net-www/apache/apache-2.0.54-r16.ebuild | 417 | ||||
-rw-r--r-- | net-www/apache/apache-2.0.55-r1.ebuild | 441 | ||||
-rw-r--r-- | net-www/apache/files/digest-apache-2.0.54-r16 | 3 | ||||
-rw-r--r-- | net-www/apache/files/digest-apache-2.0.55-r1 | 2 |
6 files changed, 876 insertions, 12 deletions
diff --git a/net-www/apache/ChangeLog b/net-www/apache/ChangeLog index d7aafb012ce8..b4d68c65e730 100644 --- a/net-www/apache/ChangeLog +++ b/net-www/apache/ChangeLog @@ -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.448 2006/01/15 02:35:49 cryos Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.449 2006/01/17 02:54:14 vericgar Exp $ + +*apache-2.0.55-r1 (16 Jan 2006) +*apache-2.0.54-r16 (16 Jan 2006) + + 16 Jan 2006; Michael Stewart <vericgar@gentoo.org> + +apache-2.0.54-r16.ebuild, +apache-2.0.55-r1.ebuild: + Security bump. Fixes bugs 115324 and 118874. 15 Jan 2006; Marcus D. Hanwell <cryos@gentoo.org> apache-2.0.55.ebuild: Stable on amd64, bug 117835. diff --git a/net-www/apache/Manifest b/net-www/apache/Manifest index 51f6459a80ae..b49ae73a2d75 100644 --- a/net-www/apache/Manifest +++ b/net-www/apache/Manifest @@ -1,16 +1,15 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -MD5 9b3366c2a6d3be00ec57b3ed25fd753e ChangeLog 74777 +MD5 1e23ef7958203114a769e3b6171c59e8 ChangeLog 75002 MD5 26a30fcfe2a6fbbf994b64756ed4f604 apache-1.3.32-r1.ebuild 6685 MD5 f154daabfa5b59d9597f8ede26b839d2 apache-1.3.33-r13.ebuild 8674 MD5 17e12318b6dd1cd8bb25cb987490c7fd apache-1.3.33-r6.ebuild 7108 MD5 f98b6437e47b471cea336f1cbb6ac240 apache-1.3.34-r1.ebuild 7114 MD5 0eb24bf60ddc4cc541b0fe6e70fb48b1 apache-1.3.34-r10.ebuild 8666 MD5 8dfa3f0fbdc01264e754bd3ebf7b8a5a apache-2.0.54-r15.ebuild 12594 +MD5 544edd9b266ccb2190a299905b7f3c79 apache-2.0.54-r16.ebuild 13055 MD5 be59fbc220730a0212fbf6f34a1a6652 apache-2.0.54-r30.ebuild 12930 MD5 17f7420f9957d17a514ee70bc4786a25 apache-2.0.54-r31.ebuild 13375 MD5 e1e33b99a1b8f95a419f0e95a6ebb2dc apache-2.0.54-r9.ebuild 12595 +MD5 32d7a2c6dce73cfb36063fd43f7b8a2a apache-2.0.55-r1.ebuild 13385 MD5 2eef71adb67bd3ddf3f8c4743a5ebe6a apache-2.0.55.ebuild 13370 MD5 8b12871dd74fcd3f4fdf451c9d8c259e files/00_apache_manual.conf 781 MD5 3d94c56af17136b6c408f076c32e0362 files/2.0.49/40_mod_ssl.conf 3213 @@ -48,10 +47,12 @@ MD5 324e63ccba6d27b9d9b08209c9992fe4 files/digest-apache-1.3.33-r6 221 MD5 33b6746d8bc97e23fd7f4420ad437b8c files/digest-apache-1.3.34-r1 221 MD5 947bc1e2e4792fd492a8d90f7abe9e78 files/digest-apache-1.3.34-r10 287 MD5 282e8f0ae737d778a643251ad4f21122 files/digest-apache-2.0.54-r15 217 +MD5 548fdbc1f64f79b0bcda8af19d1c1f8c files/digest-apache-2.0.54-r16 217 MD5 b9925be24e72acc1031f76a8bc0a07cb files/digest-apache-2.0.54-r30 151 MD5 f3ab77f6b13c80af68614aa80de7af2b files/digest-apache-2.0.54-r31 154 MD5 35d8cf2217559d96a69696d69f4c85cc files/digest-apache-2.0.54-r9 214 MD5 76c56212c3095c58a713ffb7d5263cdf files/digest-apache-2.0.55 147 +MD5 d505d0e0fb4d17095848855d54c6b0f1 files/digest-apache-2.0.55-r1 150 MD5 b9ff3534313dae1b8ac96df0e3e01373 files/httpd-2.0.48-ipv6.patch 865 MD5 d52999376f67a872ee48cbae72db0160 files/httpd-2.0.49-cgi.patch 10319 MD5 8cb4313e58d7bd5dc369eb92f75daa2b files/httpd-2.0.49-ipv6.patch 788 @@ -64,10 +65,3 @@ MD5 59a6ba7dcde461f5350af41e6aff92b1 files/robots.txt 342 MD5 d3626a1e31a675c60d066c111d552adf files/suexec.pam 59 MD5 161245c7aa1eb785db53b34d6a10be43 files/suexec_pam_gentoo.patch 2149 MD5 27c9cb37c510e08bb69df277229a03ea metadata.xml 566 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2 (GNU/Linux) - -iD8DBQFDzEp+2+ySkm8kpY0RAgaZAJ4lIK+Or5mu9qVKaHRGua/YERIkxQCfZKPm -MM28Rrkf0J/eIHmTnqrgXNk= -=pV0N ------END PGP SIGNATURE----- diff --git a/net-www/apache/apache-2.0.54-r16.ebuild b/net-www/apache/apache-2.0.54-r16.ebuild new file mode 100644 index 000000000000..2c0aad4a4ad8 --- /dev/null +++ b/net-www/apache/apache-2.0.54-r16.ebuild @@ -0,0 +1,417 @@ +# 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.0.54-r16.ebuild,v 1.1 2006/01/17 02:54:14 vericgar Exp $ + +inherit flag-o-matic eutils fixheadtails gnuconfig + +PATCH_LEVEL="${PVR}" +S="${WORKDIR}/httpd-${PV}" +DESCRIPTION="Apache Web Server" +HOMEPAGE="http://www.apache.org/" +SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2 + http://dev.gentoo.org/~vericgar/dist/apache/old/apache-patches-${PATCH_LEVEL}.tar.bz2 + http://dev.gentoo.org/~vericgar/dist/apache/old/apache-conf-${PATCH_LEVEL}.tar.bz2" + +LICENSE="Apache-2.0" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="berkdb gdbm ldap threads ipv6 doc static ssl selinux" + +#Standard location for Gentoo Linux +DATADIR="/var/www/localhost" + +# Location for the two additional tarballs +APACHE_PATCHDIR=${WORKDIR}/apache-patches-${PATCH_LEVEL} +APACHE_CONFDIR=${WORKDIR}/apache-conf-${PATCH_LEVEL} + +DEPEND="dev-util/yacc + dev-lang/perl + sys-libs/zlib + dev-libs/expat + dev-libs/openssl + >=sys-devel/autoconf-2.59-r4 + berkdb? ( sys-libs/db ) + gdbm? ( sys-libs/gdbm ) + !mips? ( ldap? ( =net-nds/openldap-2* ) ) + selinux? ( sec-policy/selinux-apache ) + !dev-libs/apr + !dev-libs/apr-util" + +apache_setup_vars() { + # Sets the USERDIR to default. + USERDIR="public_html" + einfo "DATADIR is set to: ${DATADIR}" + einfo "USERDIR is set to: $USERDIR" +} + +set_filter_flags() { + CFLAGS="${CFLAGS/ / }" + has_version =sys-libs/glibc-2.2* && filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE +} + +src_unpack() { + set_filter_flags + + unpack ${A} || die + cd ${S} || die + + # apply the patches from the patch tarball + EPATCH_SUFFIX="patch" + epatch ${APACHE_PATCHDIR} || die + + if use berkdb; then + einfo "Enabling berkdb." + if has_version '=sys-libs/db-4*'; then + einfo "Enabling db4" + myconf="${myconf} --with-dbm=db4 --with-berkely-db=/usr" + elif has_version '=sys-libs/db-3*'; then + einfo "Enabling db3" + myconf="${myconf} --with-dbm=db3 --with-berkely-db=/usr" + elif has_version '=sys-libs/db-2'; then + einfo "Enabling db2" + myconf="${myconf} --with-dbm=db2 --with-berkely-db=/usr" + fi + else + echo "Disabling berkdb" + fi + + #avoid utf-8 charset problems + export LC_CTYPE=C + + ht_fix_file srclib/apr/build/buildcheck.sh + + #give it the stamp + sed -i -e 's:(" PLATFORM "):(Gentoo/Linux):g' server/core.c + + #fix perl with perl! + find . -type f | xargs perl -pi -e \ + "s|/usr/local/bin/perl|/usr/bin/perl|g; \ + s|/usr/local/bin/perl5|/usr/bin/perl|g; \ + s|/path/to/bin/perl|/usr/bin/perl|g;" + #dont want this cruft in /usr/bin + sed -i -e 's:@exp_bindir@:@exp_installbuilddir:g' support/apachectl.in + + #setup the filesystem layout config + cat ${FILESDIR}/common/config.layout >> config.layout + sed -i -e 's:version:${PF}:g' config.layout + + cat ${FILESDIR}/common/apr-config.layout >> srclib/apr/config.layout + cat ${FILESDIR}/common/apr-util-config.layout >> srclib/apr-util/config.layout + + sed -i -e "s:/var/www/localhost:${DATADIR}:g" srclib/apr/config.layout + sed -i -e "s:/var/www/localhost:${DATADIR}:g" srclib/apr-util/config.layout + + WANT_AUTOCONF=2.5 ./buildconf || die "buildconf failed" +} + +src_compile() { + set_filter_flags + apache_setup_vars + + # Detect mips and uclibc systems properly + gnuconfig_update + + local myconf + if use ldap; then + if use mips; then + eerror "Sorry, LDAP support isn't available yet for MIPS" + eerror "Test out OpenLDAP and report it via BugZilla!" + eerror "Continuing in 5 seconds" + sleep 5s + else + einfo "Enabling LDAP" + if use static; then + myconf="--with-ldap --enable-auth-ldap=static --enable-ldap=static" + else + myconf="--with-ldap --enable-auth-ldap=shared --enable-ldap=shared" + fi + fi + fi + + if use ipv6; then + einfo "Enabling ipv6" + myconf="${myconf} --enable-vp4" + else + myconf="${myconf} --disable-ipv6" + fi + + if use threads; then + einfo "Enabling threads support" + myconf="${myconf} --with-mpm=worker" + else + myconf="${myconf} --with-mpm=${MPM:=prefork}" + fi + + select_modules_config || die "determining modules" + + # 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 + + # Workaround for bug #32444 - robbat2@gentoo.org, 28 Nov 2003 + # Apache2 tries to build SCTP support even when all the parts of it aren't there + # So for the moment we tell it to ignore SCTP support + echo 'ac_cv_sctp=${ac_cv_sctp=no}' >> ${S}/config.cache + echo 'ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no}' >> ${S}/config.cache + echo 'ac_cv_header_netinet_sctp_uio_h=${ac_cv_header_netinet_sctp_uio_h=no}' >> ${S}/config.cache + + SSL_BASE="SYSTEM" \ + WANT_AUTOCONF_2_5=1 WANT_AUTOCONF=2.5 + ./configure \ + --with-suexec-safepath="/usr/local/bin:/usr/bin:/bin" \ + --with-suexec-logfile=/var/log/apache2/suexec_log \ + --with-suexec-bin=/usr/sbin/suexec2 \ + --with-suexec-userdir=${USERDIR} \ + --with-suexec-caller=apache \ + --with-suexec-docroot=/var/www \ + --with-suexec-uidmin=1000 \ + --with-suexec-gidmin=100 \ + --with-suexec-umask=077 \ + --enable-suexec=shared \ + \ + ${MY_BUILTINS} \ + \ + --cache-file=${S}/config.cache \ + --with-perl=/usr/bin/perl \ + --with-expat=/usr \ + --with-ssl=/usr \ + --with-z=/usr \ + --with-port=80 \ + --enable-layout=Gentoo \ + --with-program-name=apache2 \ + --with-devrandom=/dev/urandom \ + --host=${CHOST} ${myconf} || die "bad ./configure please submit bug report to bugs.gentoo.org. Include your config.layout." + #--with-mpm={worker|prefork|perchild|leader|threadpool} + + # we don't want to try and recompile the ssl_expr_parse.c file, because + # the lex source is broken + touch modules/ssl/ssl_expr_scan.c + + emake || die "problem compiling Apache2 :(" + + #build ssl version of apache bench (ab-ssl) + cd support; rm -f ab .libs/ab ab.lo ab.o + make ab CFLAGS="${CFLAGS} -DUSE_SSL -lcrypto -lssl \ + -I/usr/include/openssl -L/usr/lib" || die + mv ab ab-ssl; mv .libs/ab .libs/ab-ssl; rm -f ab.lo ab.o + make ab || die +} + +src_install () { + set_filter_flags + + # setup apache user and group + enewgroup apache 81 + enewuser apache 81 -1 /var/www apache + + local i + make DESTDIR=${D} install || die + dodoc ABOUT_APACHE CHANGES INSTALL LAYOUT \ + LICENSE README* ${FILESDIR}/robots.txt + + #bogus values pointing at /var/tmp/portage + sed -i -e 's:APR_SOURCE_DIR=.*:APR_SOURCE_DIR=:g' ${D}/usr/bin/apr-config + sed -i -e 's:APU_SOURCE_DIR=.*:APU_SOURCE_DIR=:g' ${D}/usr/bin/apu-config + sed -i -e 's:APU_BUILD_DIR=.*:APU_BUILD_DIR=:g' ${D}/usr/bin/apu-config + + #protect the suexec binary + local gid=`id -g apache` + [ -z "${gid}" ] && gid=81 + fowners root:${gid} /usr/sbin/suexec + fperms 4710 /usr/sbin/suexec + + #apxs needs this to pickup the right lib for install + dosym /usr/lib /usr/lib/apache2/lib + dosym /var/log/apache2 /usr/lib/apache2/logs + dosym /usr/lib/apache2-extramodules /usr/lib/apache2/extramodules + dosym /etc/apache2/conf /usr/lib/apache2/conf + + cd ${S} + #Credits to advx.org people for these scripts. Heck, thanks for + #the nice layout and everything else ;-) + for i in apache2logserverstatus apache2splitlogfile + do + dosbin ${APACHE_CONFDIR}/usr/sbin/$i + done + exeinto /usr/lib/ssl/apache2-mod_ssl + doexe ${APACHE_CONFDIR}/usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh + + #some more scripts + for i in split-logfile list_hooks.pl logresolve.pl log_server_status + do + dosbin ${S}/support/$i + done + #the ssl version of apache bench + dosbin support/.libs/ab-ssl + + #move some mods to extramodules + dodir /usr/lib/apache2-extramodules + for i in mod_ssl.so mod_ldap.so mod_auth_ldap.so + do + [ -x ${D}/usr/lib/apache2/modules/$i ] && \ + mv ${D}/usr/lib/apache2/modules/$i ${D}/usr/lib/apache2-extramodules + done + + #tidy up + mv ${D}/usr/sbin/envvars* ${D}/usr/lib/apache2/build + dodoc ${D}/etc/apache2/conf/*-std.conf + rm -f ${D}/etc/apache2/conf/*.conf + rm -rf ${D}/var/log ${D}/var/run + + # install our default config files + cd ${D} + ( cd ${APACHE_CONFDIR} && tar -cpvf - * ) | tar -xpvf - + find etc/apache2 -type f -exec chmod 644 {} \; + find etc/apache2 -type f -exec chown root: {} \; + + #drop in a convenient link to the manual + if use doc; then + dosym /usr/share/doc/${PF}/manual ${DATADIR}/htdocs/manual + else + rm -rf ${D}/usr/share/doc/${PF}/manual + fi + + #SLOT=2!!! + cd ${D} + mv -v usr/sbin/apachectl usr/sbin/apache2ctl + mv -v usr/sbin/htdigest usr/sbin/htdigest2 + mv -v usr/sbin/htpasswd usr/sbin/htpasswd2 + mv -v usr/sbin/logresolve usr/sbin/logresolve2 + mv -v usr/sbin/apxs usr/sbin/apxs2 + mv -v usr/sbin/ab usr/sbin/ab2 + mv -v usr/sbin/ab-ssl usr/sbin/ab2-ssl + mv -v usr/sbin/suexec usr/sbin/suexec2 + mv -v usr/sbin/rotatelogs usr/sbin/rotatelogs2 + mv -v usr/sbin/dbmmanage usr/sbin/dbmmanage2 + mv -v usr/sbin/checkgid usr/sbin/checkgid2 + mv -v usr/sbin/split-logfile usr/sbin/split-logfile2 + mv -v usr/sbin/list_hooks.pl usr/sbin/list_hooks2.pl + mv -v usr/sbin/logresolve.pl usr/sbin/logresolve2.pl + + # do the man pages + mv -v usr/share/man/man1/htdigest.1 usr/share/man/man1/htdigest2.1 + mv -v usr/share/man/man1/htpasswd.1 usr/share/man/man1/htpasswd2.1 + mv -v usr/share/man/man1/dbmmanage.1 usr/share/man/man1/dbmmanage2.1 + mv -v usr/share/man/man8/ab.8 usr/share/man/man8/ab2.8 + mv -v usr/share/man/man8/apxs.8 usr/share/man/man8/apxs2.8 + mv -v usr/share/man/man8/apachectl.8 usr/share/man/man8/apache2ctl.8 + mv -v usr/share/man/man8/httpd.8 usr/share/man/man8/apache2.8 + mv -v usr/share/man/man8/logresolve.8 usr/share/man/man8/logresolve2.8 + mv -v usr/share/man/man8/rotatelogs.8 usr/share/man/man8/rotatelogs2.8 + mv -v usr/share/man/man8/suexec.8 usr/share/man/man8/suexec2.8 + + # Fix for dav and SSL dirs + keepdir /var/lib/dav + fowners apache:apache /var/lib/dav + fperms 755 /var/lib/dav + + keepdir /var/log/apache2 + fowners apache:apache /var/log/apache2 + fperms 755 /var/log/apache2 + + keepdir /var/cache/apache2 + fowners apache:apache /var/cache/apache2 + fperms 755 /var/cache/apache2 + + keepdir /etc/apache2/conf/ssl + + # fix bug 92348 + fperms 755 /usr/sbin/apache2logserverstatus + fperms 755 /usr/sbin/apache2splitlogfile + + # Added by Jason Wever <weeve@gentoo.org> + # A little sedfu to fix bug #7172 for sparc64s + if [ ${ARCH} = "sparc" ] + then + sed -i -e '13a\AcceptMutex fcntl' \ + ${D}/etc/apache2/conf/apache2.conf + fi +} + +parse_modules_config() { + set_filter_flags + + local filename=$1 + local name="" + local dso="" + local disable="" + [ -f ${filename} ] || return 1 + for i in `cat $filename | sed "s/^#.*//"` ; do + if [ $i == "-" ] ; then + disable="true" + elif [ -z "$name" ] && [ ! -z "`echo $i | grep "mod_"`" ] ; then + name=`echo $i | sed "s/mod_//"` + elif [ "$disable" ] && ( [ $i == "static" ] || [ $i == "shared" ] ) ; then + MY_BUILTINS="${MY_BUILTINS} --disable-$name" + name="" ; disable="" + elif [ $i == "static" ] ; then + MY_BUILTINS="${MY_BUILTINS} --enable-$name=yes" + name="" ; disable="" + elif [ $i == "shared" ] ; then + MY_BUILTINS="${MY_BUILTINS} --enable-$name=shared" + name="" ; disable="" + fi + done + einfo "${filename} options:\n${MY_BUILTINS}" +} + +select_modules_config() { + parse_modules_config /etc/apache2/apache2-builtin-mods || \ + parse_modules_config ${FILESDIR}/2.0.49/apache2-builtin-mods || \ + return 1 +} + +pkg_postinst() { + set_filter_flags + + if use ssl; then + cd ${ROOT}/etc/apache2/conf/ssl + einfo + einfo "Generating self-signed test certificate in /etc/apache2/conf/ssl..." + yes "" 2>/dev/null | ${ROOT}/usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh >/dev/null 2>&1 + einfo + fi + + if has_version '=net-www/apache-1*' ; 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/conf/modules.d/" + ewarn + fi + + if [ -d /home/httpd ]; + then + einfo + einfo "Please remember to update your config files in /etc/apache2" + einfo "as --datadir has been changed to ${DATADIR}, and ServerRoot" + einfo "has changed to /usr/lib/apache2!" + einfo + fi + + einfo "Fixing permissions problem introduced in previous revision" + find ${ROOT}/etc/apache2 -type f -user apache -exec chown root: {} \; + + local list="" + for i in lib logs modules extramodules; do + local d="/etc/apache2/${i}" + [ -s "${d}" ] && list="${list} ${d}" + done + if [ -n "${list}" ]; then + einfo "You should delete these old symlinks: ${list}" + fi + + einfo + einfo "This ebuild uses the old-style configuration of apache, which has" + einfo "been deprecated and will no longer be supported as of March 1, 2006." + einfo "It is strongly suggested that you upgrade to the latest version of" + einfo "apache by following the Apache Upgrading Guide at" + einfo "http://www.gentoo.org/doc/en/apache-upgrading.xml. If you have" + einfo "questions, please join us on #gentoo-apache on irc.freenode.net" + einfo + +} diff --git a/net-www/apache/apache-2.0.55-r1.ebuild b/net-www/apache/apache-2.0.55-r1.ebuild new file mode 100644 index 000000000000..ce28097739fc --- /dev/null +++ b/net-www/apache/apache-2.0.55-r1.ebuild @@ -0,0 +1,441 @@ +# 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.0.55-r1.ebuild,v 1.1 2006/01/17 02:54:14 vericgar Exp $ + +inherit eutils gnuconfig multilib + +# latest gentoo apache files +GENTOO_PATCHNAME="gentoo-apache-${PVR}" +GENTOO_PATCHSTAMP="20060115" +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" + +LICENSE="Apache-2.0" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="apache2 debug doc ldap mpm-leader mpm-peruser mpm-prefork mpm-threadpool mpm-worker no-suexec ssl static-modules threads selinux" + +RDEPEND="dev-lang/perl + ~dev-libs/apr-0.9.7 + ~dev-libs/apr-util-0.9.7 + dev-libs/expat + net-www/gentoo-webroot-default + 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}" + +big_fat_warnings() { + + 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 + + if use mpm-peruser; then + ewarn " -BIG- -FAT- -WARNING-" + ewarn "" + ewarn "The peruser (USE=mpm-peruser) MPM is considered highly experimental" + ewarn "and are not (yet) supported, nor are they recommended for production" + ewarn "use. You have been warned!" + ewarn + ewarn "Continuing in 5 seconds.." + sleep 5 + fi + + ewarn "" + ewarn "LFS support has been removed due to incompatibilites with other packages." + ewarn "You _will_ have to re-emerge any Apache modules you have installed, or" + ewarn "they will likely misbehave/segfault." + ewarn "" + ewarn "" + ewarn "Multiple MPM support has been disabled due to problems with external" + ewarn "modules. If you have relied on this functionality you will need" + ewarn "to find another solution. The Gentoo Apache team apologizes for" + ewarn "any inconvienence this may cause you." + ewarn "" +} + +pkg_setup() { + big_fat_warnings + select_mpms +} + +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} \ + || die "sed failed" + + EPATCH_SUFFIX="patch" + epatch ${GENTOO_PATCHDIR}/patches/[0-9]* || die "internal ebuild error" + + # 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 + + # peruser need to build conf + WANT_AUTOCONF=2.5 ./buildconf || die "buildconf failed" +} + +src_compile() { + setup_apache_vars + + # Detect mips and uclibc systems properly + gnuconfig_update + + local modtype + if useq static-modules; then + modtype="static" + else + modtype="shared" + fi + + select_modules_config || die "determining modules" + + local myconf + useq ldap && myconf="${myconf} --enable-auth-ldap=${modtype} --enable-ldap=${modtype}" + useq 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 + myconf="${myconf} + --with-suexec-safepath="/usr/local/bin:/usr/bin:/bin" \ + --with-suexec-logfile=/var/log/apache2/suexec_log \ + --with-suexec-bin=/usr/sbin/suexec2 \ + --with-suexec-userdir=${USERDIR} \ + --with-suexec-caller=apache \ + --with-suexec-docroot=/var/www \ + --with-suexec-uidmin=1000 \ + --with-suexec-gidmin=100 \ + --with-suexec-umask=077 \ + --enable-suexec=shared" + fi + + # common confopts + myconf="${myconf} \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --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 \ + --with-devrandom=/dev/urandom \ + --host=${CHOST} ${MY_BUILTINS}" + + # 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" + + # we don't want to try and recompile the ssl_expr_parse.c file, because + # the lex source is broken + touch modules/ssl/ssl_expr_scan.c + + # as decided on IRC-AGENDA-10.2004, we use httpd.conf as standard config file name + sed -i -e 's:apache2\.conf:httpd.conf:' include/ap_config_auto.h + + emake || die "problem compiling apache2" + + # build ssl version of apache bench (ab-ssl) + if useq ssl; then + cd support + rm -f ab .libs/ab ab.lo ab.o + make ab CFLAGS="${CFLAGS} -DUSE_SSL -lcrypto -lssl -I/usr/include/openssl -L/usr/$(get_libdir)" || die + mv ab ab-ssl + rm -f ab.lo ab.o + make ab || die + fi +} + +src_install () { + # setup apache user and group + enewgroup apache 81 + enewuser apache 81 -1 /var/www apache + + # general install + make DESTDIR=${D} install || die + dodoc ABOUT_APACHE CHANGES INSTALL LAYOUT LICENSE README* ${GENTOO_PATCHDIR}/docs/robots.txt + + # protect the suexec binary + if ! useq no-suexec; then + fowners root:apache /usr/sbin/suexec + fperms 4710 /usr/sbin/suexec + fi + + # apxs needs this to pickup the right lib for install + dosym /usr/$(get_libdir) /usr/$(get_libdir)/apache2/lib + dosym /var/log/apache2 /usr/$(get_libdir)/apache2/logs + dosym /etc/apache2 /usr/$(get_libdir)/apache2/conf + + # Credits to advx.org people for these scripts. Heck, thanks for + # the nice layout and everything else ;-) + exeinto /usr/sbin + for i in apache2logserverstatus apache2splitlogfile; do + doexe ${GENTOO_PATCHDIR}/scripts/${i} + done + # gentestcrt.sh only if USE=ssl + useq ssl && doexe ${GENTOO_PATCHDIR}/scripts/gentestcrt.sh + + # some more scripts + for i in split-logfile list_hooks.pl logresolve.pl log_server_status; do + doexe ${S}/support/${i} + done + + # the ssl version of apache bench + useq ssl && doexe support/ab-ssl + + # install mpm bins + doexe ${S}/apache2 + + # modules.d config file snippets + insinto /etc/apache2/modules.d + doins ${GENTOO_PATCHDIR}/conf/modules.d/45_mod_dav.conf + useq ldap && doins ${GENTOO_PATCHDIR}/conf/modules.d/46_mod_ldap.conf + if useq ssl; then + doins ${GENTOO_PATCHDIR}/conf/modules.d/40_mod_ssl.conf + doins ${GENTOO_PATCHDIR}/conf/modules.d/41_mod_ssl.default-vhost.conf + fi + + # drop in a convenient link to the manual + if useq doc; then + insinto /etc/apache2/modules.d + doins ${GENTOO_PATCHDIR}/conf/modules.d/00_apache_manual.conf + sed -i -e "s:2.0.49:${PVR}:" ${D}/etc/apache2/modules.d/00_apache_manual.conf + else + rm -rf ${D}/usr/share/doc/${PF}/manual + fi + + # SLOT=2 + cd ${D} + for i in htdigest htpasswd logresolve apxs ab rotatelogs dbmmanage checkgid split-logfile; do + mv -v usr/sbin/${i} usr/sbin/${i}2 + done + mv -v usr/sbin/apachectl usr/sbin/apache2ctl + mv -v usr/sbin/list_hooks.pl usr/sbin/list_hooks2.pl + mv -v usr/sbin/logresolve.pl usr/sbin/logresolve2.pl + useq ssl && mv -v usr/sbin/ab-ssl usr/sbin/ab2-ssl + useq no-suexec || mv -v usr/sbin/suexec usr/sbin/suexec2 + + # do the man pages + for i in htdigest.1 htpasswd.1 dbmmanage.1; do + mv -v usr/share/man/man1/${i} usr/share/man/man1/${i/./2.} + done + for i in ab.8 apxs.8 logresolve.8 rotatelogs.8; do + mv -v usr/share/man/man8/${i} usr/share/man/man8/${i/./2.} + done + useq no-suexec || mv -v usr/share/man/man8/suexec.8 usr/share/man/man8/suexec2.8 + mv -v usr/share/man/man8/apachectl.8 usr/share/man/man8/apache2ctl.8 + mv -v usr/share/man/man8/httpd.8 usr/share/man/man8/apache2.8 + + # tidy up + mv usr/sbin/envvars* usr/$(get_libdir)/apache2/build + dodoc etc/apache2/*-std.conf + rm -f etc/apache2/*.conf + rm -f etc/apache2/mime.types + rm -rf var/run var/log + + # we DEPEND on net-www/gentoo-webroot-default for sharing this by now + rm -rf var/www/localhost + + # config files + newconfd ${GENTOO_PATCHDIR}/init/apache2.confd apache2 + newinitd ${GENTOO_PATCHDIR}/init/apache2.initd apache2 + + insinto /etc/logrotate.d + newins ${GENTOO_PATCHDIR}/scripts/apache2-logrotate apache2 + + insinto /etc/apache2 + doins ${GENTOO_PATCHDIR}/conf/apache2-builtin-mods + doins ${GENTOO_PATCHDIR}/conf/httpd.conf + + insinto /etc/apache2/vhosts.d + doins ${GENTOO_PATCHDIR}/conf/vhosts.d/00_default_vhost.conf + + keepdir /etc/apache2/vhosts.d + keepdir /etc/apache2/modules.d + + # fix bug 92348 + fperms 755 /usr/sbin/apache2logserverstatus + fperms 755 /usr/sbin/apache2splitlogfile + + # 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 + +} + +pkg_postinst() { + # setup apache user and group + # we do this twice for binary packages + 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 + + # Check for dual/upgrade install + if has_version '=net-www/apache-1*' || ! use apache2 ; 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 + + # Check for obsolete symlinks + local list="" + for i in lib logs modules extramodules; do + local d="/etc/apache2/${i}" + [ -s "${d}" ] && list="${list} ${d}" + done + [ -n "${list}" ] && einfo "You should delete these old symlinks: ${list}" + + if has_version '<net-www/apache-2.0.54-r30' && has_version '>=net-www/apache-2.0.0' ; then + einfo "Configuration locations have changed, you will need to migrate" + einfo "your configuration from /etc/apache2/conf/apache2.conf and" + einfo "/etc/apache2/conf/commonapache2.conf to /etc/apache2/httpd.conf." + einfo + einfo "Apache now checks for the old configuration and refuses to start" + einfo "if it exists. You must remove the old configuration first" + einfo + einfo "You should also at this time rebuild all your modules" + einfo + einfo "For more information, see" + einfo " http://www.gentoo.org/doc/en/apache-upgrading.xml" + einfo + fi + + big_fat_warnings +} + +setup_apache_vars() { + # actually we do not provide a very dynamic way of those vars + # however, you may predefine them in shell before emerging + # to override the official default locations + + # standard location for Gentoo Linux + DATADIR="${DATADIR:-/var/www/localhost}" + USERDIR="${USERDIR:-public_html}" + + einfo "DATADIR is set to: ${DATADIR}" + einfo "USERDIR is set to: ${USERDIR}" +} + +mpm_die() { + eerror "You attempted to specify the MPM $1, but MPM $2 was already specified." + eerror "The apache ebuilds no longer support multiple MPM installations. Please choose" + eerror "one MPM and reinstall." + die "More than one MPM was specified." +} + +try_mpm() { + local nmpm=$1 + + if [ -z "${nmpm}" ]; then + die "mpm to try not specified!" + fi + + if [ "x${mpm}" != "x" -a "x${mpm}" != "x${nmpm}" ]; then + mpm_die ${nmpm} ${mpm} + fi + + mpm="${nmpm}" +} + +select_mpms() { + useq mpm-prefork && try_mpm prefork + useq mpm-worker && try_mpm worker + useq mpm-peruser && try_mpm peruser + useq mpm-threadpool && try_mpm threadpool + useq mpm-leader && try_mpm leader + + if [ "x${mpm}" = "x" ]; then + if useq threads; then + einfo "Threads specified without a mpm-specification, using mpm-worker." + mpm="worker" + else + einfo "No MPM style was specified, defaulting to mpm-prefork." + mpm="prefork" + fi + fi +} + +parse_modules_config() { + local name="" + local disable="" + [ -f ${1} ] || return 1 + + for i in `cat $1 | sed "s/^#.*//"`; do + if [ $i == "-" ]; then + disable="true" + elif [ -z "$name" ] && [ ! -z "`echo $i | grep "mod_"`" ]; then + name=`echo $i | sed "s/mod_//"` + elif [ "$disable" ] && ( [ $i == "static" ] || [ $i == "shared" ] ); 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" + name="" ; disable="" + fi + done + + einfo "${1} options:\n${MY_BUILTINS}" +} + +select_modules_config() { + parse_modules_config /etc/apache2/apache2-builtin-mods || \ + parse_modules_config ${GENTOO_PATCHDIR}/conf/apache2-builtin-mods || \ + return 1 +} + +# vim:ts=4 diff --git a/net-www/apache/files/digest-apache-2.0.54-r16 b/net-www/apache/files/digest-apache-2.0.54-r16 new file mode 100644 index 000000000000..67577431b3df --- /dev/null +++ b/net-www/apache/files/digest-apache-2.0.54-r16 @@ -0,0 +1,3 @@ +MD5 dced19b097cc84d8b13fcb014bff70bb apache-conf-2.0.54-r16.tar.bz2 24850 +MD5 2108f75d179cad41283db6369b523c2d apache-patches-2.0.54-r16.tar.bz2 12016 +MD5 4ae8a38c6b5db9046616ce10a0d551a2 httpd-2.0.54.tar.bz2 5566979 diff --git a/net-www/apache/files/digest-apache-2.0.55-r1 b/net-www/apache/files/digest-apache-2.0.55-r1 new file mode 100644 index 000000000000..38288b6588fa --- /dev/null +++ b/net-www/apache/files/digest-apache-2.0.55-r1 @@ -0,0 +1,2 @@ +MD5 c39c5c2cc1d86898f6025d8a97c35937 gentoo-apache-2.0.55-r1-20060115.tar.bz2 51735 +MD5 f1b5b65c8661db9ffe38b5a4a865a0e2 httpd-2.0.55.tar.bz2 4745220 |