summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stewart <vericgar@gentoo.org>2005-07-28 22:59:12 +0000
committerMichael Stewart <vericgar@gentoo.org>2005-07-28 22:59:12 +0000
commite312aa7f7487ca4c86aa532b0455c1b4255a1a73 (patch)
tree5bd3fd0003361f42fc0678ec747ba68e2013e84c /net-www/apache
parentFixed SRC_URI and S (diff)
downloadhistorical-e312aa7f7487ca4c86aa532b0455c1b4255a1a73.tar.gz
historical-e312aa7f7487ca4c86aa532b0455c1b4255a1a73.tar.bz2
historical-e312aa7f7487ca4c86aa532b0455c1b4255a1a73.zip
New revision for new tarball that gives the users an option to disable the default SSL virtual and default virtual host (fixes bug 100624). Also fixes init script issues (bug 98496 and bug 99987)
Package-Manager: portage-2.0.51.22-r1
Diffstat (limited to 'net-www/apache')
-rw-r--r--net-www/apache/ChangeLog17
-rw-r--r--net-www/apache/apache-2.0.54-r13.ebuild426
-rw-r--r--net-www/apache/files/digest-apache-2.0.54-r132
3 files changed, 444 insertions, 1 deletions
diff --git a/net-www/apache/ChangeLog b/net-www/apache/ChangeLog
index 33053c754ad3..f948cfe0cf78 100644
--- a/net-www/apache/ChangeLog
+++ b/net-www/apache/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for net-www/apache
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.394 2005/07/16 23:41:24 josejx Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.395 2005/07/28 22:59:12 vericgar Exp $
+
+ 28 Jul 2005; Michael Stewart <vericgar@gentoo.org>
+ +apache-2.0.54-r13.ebuild:
+ Check to see if apache is running on reload, error out if it isn't. Fixes
+ bugs 98496 and 99987
+
+*apache-2.0.54-r13 (28 Jul 2005)
+
+ 28 Jul 2005; Michael Stewart <vericgar@gentoo.org>
+ +apache-2.0.54-r13.ebuild:
+ Added IfDefines around the default virtual host and default SSL virtual
+ host. Fixes bug 100624. Note that this breaks backwards compatibility with
+ previous revisions, users will need to add DEFAULT_VHOST and
+ SSL_DEFAULT_VHOST to APACHE2_OPTS in /etc/conf.d/apache2 after running
+ etc-update
16 Jul 2005; Joseph Jezak <josejx@gentoo.org> apache-1.3.33-r1.ebuild:
Marked ppc stable for bug #86052.
diff --git a/net-www/apache/apache-2.0.54-r13.ebuild b/net-www/apache/apache-2.0.54-r13.ebuild
new file mode 100644
index 000000000000..b098f5df0634
--- /dev/null
+++ b/net-www/apache/apache-2.0.54-r13.ebuild
@@ -0,0 +1,426 @@
+# Copyright 1999-2005 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-r13.ebuild,v 1.1 2005/07/28 22:59:12 vericgar Exp $
+
+inherit eutils gnuconfig
+
+# latest gentoo apache files
+GENTOO_PATCHNAME="gentoo-apache-${PVR}"
+GENTOO_PATCHSTAMP="20050728"
+GENTOO_DEVSPACE="vericgar"
+GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}"
+
+DESCRIPTION="The Apache Web Server, Version 2.0.x"
+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 ~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.6
+ ~dev-libs/apr-util-0.9.6
+ 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 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
+
+ EPATCH_SUFFIX="patch"
+ epatch ${GENTOO_PATCHDIR}/patches/[0-2]* || 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/lib" || 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 /bin/false /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/lib /usr/lib/apache2/lib
+ dosym /var/log/apache2 /usr/lib/apache2/logs
+ dosym /etc/apache2 /usr/lib/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/lib/apache2/build
+ dodoc etc/apache2/*-std.conf
+ rm -f etc/apache2/*.conf
+ 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
+ insinto /etc/conf.d
+ newins ${GENTOO_PATCHDIR}/init/apache2.confd apache2
+
+ exeinto /etc/init.d
+ newexe ${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() {
+
+ # Automatically generate test ceritificates if ssl USE flag is beeing set
+ if useq ssl; 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-r10' && 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/proj/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 [ -n "${mpm}" ]; 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-r13 b/net-www/apache/files/digest-apache-2.0.54-r13
new file mode 100644
index 000000000000..99b9cdb23847
--- /dev/null
+++ b/net-www/apache/files/digest-apache-2.0.54-r13
@@ -0,0 +1,2 @@
+MD5 4ae8a38c6b5db9046616ce10a0d551a2 httpd-2.0.54.tar.bz2 5566979
+MD5 c93463ceb6336d60ab5d5a32e84c8c79 gentoo-apache-2.0.54-r13-20050728.tar.bz2 51184