summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenedikt Boehm <hollow@gentoo.org>2005-01-08 23:37:10 +0000
committerBenedikt Boehm <hollow@gentoo.org>2005-01-08 23:37:10 +0000
commitf9d6314ca0d1416e22e88fee7a50052ca014c481 (patch)
tree91d82966d4f40f44a79840f2690a809bd481a7e0 /net-www/apache/apache-1.3.33-r1.ebuild
parentStable on amd64. (diff)
downloadhistorical-f9d6314ca0d1416e22e88fee7a50052ca014c481.tar.gz
historical-f9d6314ca0d1416e22e88fee7a50052ca014c481.tar.bz2
historical-f9d6314ca0d1416e22e88fee7a50052ca014c481.zip
Apache herd package refresh
Diffstat (limited to 'net-www/apache/apache-1.3.33-r1.ebuild')
-rw-r--r--net-www/apache/apache-1.3.33-r1.ebuild296
1 files changed, 296 insertions, 0 deletions
diff --git a/net-www/apache/apache-1.3.33-r1.ebuild b/net-www/apache/apache-1.3.33-r1.ebuild
new file mode 100644
index 000000000000..877a47091ccf
--- /dev/null
+++ b/net-www/apache/apache-1.3.33-r1.ebuild
@@ -0,0 +1,296 @@
+# 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-1.3.33-r1.ebuild,v 1.1 2005/01/08 23:37:10 hollow Exp $
+
+inherit eutils fixheadtails
+
+# latest gentoo apache files
+GENTOO_PATCHNAME="gentoo-apache-${PVR}"
+GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}"
+
+# The mod_ssl archive is only for providing the EAPI patch in here.
+# You should install the net-www/mod_ssl package for the actual DSO.
+mod_ssl_ver=2.8.22
+lingerd_ver=0.94
+
+DESCRIPTION="The Apache Web Server"
+HOMEPAGE="http://httpd.apache.org"
+SRC_URI="mirror://apache/httpd/apache_${PV}.tar.gz
+ ssl? ftp://ftp.modssl.org/source/mod_ssl-${mod_ssl_ver}-${PV}.tar.gz
+ lingerd? http://images.iagora.com/media/software/lingerd/lingerd-${lingerd_ver}.tar.gz
+ mirror://gentoo/${GENTOO_PATCHNAME}.tar.bz2"
+
+LICENSE="Apache-2.0"
+SLOT="1"
+KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~amd64 ~ia64 ~mips"
+IUSE="doc ssl pam lingerd no-suexec static-modules"
+
+DEPEND="dev-lang/perl
+ >=sys-libs/db-1.85-r1
+ >=dev-libs/mm-1.1.3
+ >=sys-libs/gdbm-1.8
+ >=dev-libs/expat-1.95.2
+ >=sys-apps/sed-4
+ app-misc/mime-types
+ selinux? ( sec-policy/selinux-apache )
+ lingerd? ( =net-www/lingerd-${lingerd_ver} )"
+
+# so leave it out until it's available
+PDEPEND="ssl? ( =net-www/mod_ssl-${mod_ssl_ver} )"
+
+S=${WORKDIR}/${PN}_${PV}
+
+src_unpack() {
+ unpack ${A} || die
+ cd ${S} || die
+
+ EPATCH_SUFFIX="patch"
+ epatch ${GENTOO_PATCHDIR}/patches/[0-2]*
+
+ # setup the filesystem layout config
+ cat ${GENTOO_PATCHDIR}/patches/config.layout >> config.layout
+ sed -i -e 's:version:${PF}:g' config.layout
+
+ if useq pam; then
+ epatch ${GENTOO_PATCHDIR}/patches/31_all_gentoo_suexec_pam.patch || die "pam patch failed"
+ fi
+
+ # fix obsolete 'head -1' and 'tail -1' calls
+ ht_fix_file src/Configure src/helpers/getuid.sh src/helpers/buildinfo.sh src/helpers/fmn.sh
+
+ # setup mod_ssl eapi
+ if useq ssl; then
+ local myssl
+ myssl=${WORKDIR}/mod_ssl-${mod_ssl_ver}-${PV}
+ cp ${myssl}/pkg.eapi/*.h src/include
+ cp ${myssl}/pkg.eapi/*.c src/ap
+ epatch ${myssl}/pkg.eapi/eapi.patch || die "failed to setup mod_ssl eapi"
+ fi
+
+ # set a reasonable MM_CORE_PATH location..
+ sed -i -e 's:logs/mm:/var/cache/apache-mm/mm:' src/include/httpd.h
+
+ if useq lingerd; then
+ local mylingerd=${WORKDIR}/lingerd-${lingerd_ver}
+ cp ${mylingerd}/apache-1.3/ap_lingerd.c ${mylingerd}/li_config.h src/main
+ cd src
+ if useq ssl; then
+ epatch ${mylingerd}/apache-1.3/aplinger-ssl.diff
+ else
+ epatch ${mylingerd}/apache-1.3/aplinger.diff
+ fi
+ cd ..
+ fi
+}
+
+src_compile() {
+ local myconf
+
+ setup_apache_vars
+
+ select_modules_config || die "determining modules"
+
+ if ! useq no-suexec; then
+ myconf="${myconf}
+ --enable-suexec
+ --suexec-uidmin=1000 \
+ --suexec-gidmin=100 \
+ --suexec-caller=apache \
+ --suexec-userdir=public_html \
+ --suexec-docroot=/var/www \
+ --suexec-safepath="/usr/local/bin:/usr/bin:/bin" \
+ --suexec-logfile=/var/log/apache/suexec_log"
+ fi
+
+ if useq ssl; then
+ myconf="${myconf} --enable-rule=EAPI"
+ fi
+
+ OPTIM="${MY_CFLAGS} -DHARD_SERVER_LIMIT=${HARD_SERVER_LIMIT:=512} \
+ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \
+ LIBS="-ldb -lgdbm -lgdbm_compat -lpthread" \
+ EAPI_MM=SYSTEM \
+ ./configure \
+ --with-layout=Gentoo \
+ --target=apache \
+ --server-uid=apache \
+ --server-gid=apache \
+ --with-perl=/usr/bin/perl \
+ --enable-rule=SHARED_CHAIN \
+ ${MY_BUILTINS} ${myconf} || die "bad ./configure please submit bug report to bugs.gentoo.org. Include your config.layout and config.log"
+
+ emake || die "problem compiling apache"
+
+ # build ssl version of apache bench (ab-ssl)
+ if useq ssl; then
+ cd src/support
+ rm -f ab 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.o
+ make ab || die
+ fi
+}
+
+src_install() {
+ make install-quiet root=${D} || die
+ dodoc ABOUT_APACHE Announcement INSTALL LICENSE README* ${GENTOO_PATCHDIR}/docs/robots.txt
+
+ # protect the suexec binary
+ if ! useq no-suexec; then
+ local gid=`id -g apache`
+ fowners root:${gid:-81} /usr/sbin/suexec
+ fperms 4710 /usr/sbin/suexec
+ fi
+
+ # apxs needs this to pickup the right lib for install
+ dosym /usr/lib /usr/lib/apache/lib
+ dosym /var/log/apache /usr/lib/apache/logs
+ dosym /etc/apache /usr/lib/apache/conf
+
+ # nice support scripts
+ exeinto /usr/sbin
+ for i in apachelogserverstatus apachesplitlogfile; do
+ doexe ${GENTOO_PATCHDIR}/scripts/${i}
+ done
+
+ # some more scripts
+ for i in split-logfile logresolve.pl log_server_status; do
+ doexe ${S}/src/support/${i}
+ done
+
+ # the ssl version of apache bench
+ if useq ssl; then
+ doexe src/support/ab-ssl
+ fi
+
+ # drop in a convenient link to the manual
+ if useq doc; then
+ insinto /etc/apache/modules.d
+ doins ${GENTOO_PATCHDIR}/conf/modules.d/00_apache_manual.conf
+ sed -i -e "s:1.3.32:${PVR}:" ${D}/etc/apache/modules.d/00_apache_manual.conf
+ else
+ rm -rf ${D}/usr/share/doc/${PF}/manual
+ fi
+
+ # tidy up
+ cd ${D}
+ dodoc etc/apache/*.default
+ rm -f etc/apache/*.default
+ rm -f etc/apache/*.conf
+ rm -f etc/apache/mime.types
+ rm -rf var/www/localhost/htdocs/*
+
+ keepdir /var/www/localhost/htdocs
+ insinto /var/www/localhost/htdocs
+ doins ${GENTOO_PATCHDIR}/docs/index.html
+
+ # config files
+ insinto /etc/conf.d
+ newins ${GENTOO_PATCHDIR}/init/apache.confd apache
+
+ exeinto /etc/init.d
+ newexe ${GENTOO_PATCHDIR}/init/apache.initd apache
+
+ insinto /etc/apache
+ doins ${GENTOO_PATCHDIR}/conf/apache-builtin-mods
+ doins ${GENTOO_PATCHDIR}/conf/httpd.conf
+
+ keepdir /etc/apache/vhosts.d
+ keepdir /etc/apache/modules.d
+
+ # Added by Jason Wever <weeve@gentoo.org>
+ # A little sedfu to fix bug #7172 for sparc64s
+ if [ ${ARCH} = "sparc" ]; then
+ sed -i -e '15a\AcceptMutex fcntl' ${D}/etc/apache/httpd.conf
+ fi
+
+ if useq lingerd; then
+ sed -i 's:\(need net.*\):\1 lingerd:g' ${D}/etc/init.d/apache
+ fi
+
+ if useq pam; then
+ insinto /etc/pam.d
+ newins ${GENTOO_PATCHDIR}/patches/suexec.pam suexec
+ fi
+
+ # empty dirs
+ for i in /var/log/apache /var/cache/apache /var/cache/apache-mm; do
+ keepdir ${i}
+ fowners apache:apache ${i}
+ fperms 755 ${i}
+ done
+}
+
+pkg_postinst() {
+ einfo
+ einfo "Please remember to update your config files in /etc/apache"
+ einfo "as --datadir has been changed to ${DATADIR}, and ServerRoot"
+ einfo "has changed to /usr/lib/apache!"
+ einfo
+
+ # Check for obsolete symlinks
+ local list=""
+ for i in lib logs modules extramodules; do
+ local d="/etc/apache/${i}"
+ [ -s "${d}" ] && list="${list} ${d}"
+ done
+ [ -n "${list}" ] && einfo "You should delete these old symlinks: ${list}"
+
+ if has_version '<net-www/apache-1.3.33-r1' ; then
+ einfo "Configuration locations have changed, you will need to migrate"
+ einfo "your configuration from /etc/apache/conf/apache.conf and"
+ einfo "/etc/apache/conf/commonapache.conf to /etc/apache/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 "For more information, see"
+ einfo " http://dev.gentoo.org/~vericgar/package-refresh.txt"
+ fi
+
+
+}
+
+setup_apache_vars() {
+ MY_CFLAGS="${CFLAGS}"
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # standard location for Gentoo Linux
+ DATADIR="${DATADIR:-/var/www/localhost}"
+ einfo "DATADIR is set to: ${DATADIR}"
+}
+
+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-module=$name"
+ name="" ; disable=""
+ elif [ $i == "static" ] || useq static-modules; then
+ MY_BUILTINS="${MY_BUILTINS} --enable-module=$name --disable-shared=$name"
+ name="" ; disable=""
+ elif [ $i == "shared" ]; then
+ MY_BUILTINS="${MY_BUILTINS} --enable-module=$name --enable-shared=$name"
+ name="" ; disable=""
+ fi
+ done
+
+ einfo "${1} options:\n${MY_BUILTINS}"
+}
+
+select_modules_config() {
+ parse_modules_config /etc/apache/apache-builtin-mods || \
+ parse_modules_config ${GENTOO_PATCHDIR}/conf/apache-builtin-mods || \
+ return 1
+}
+
+# vim:ts=4