diff options
author | Chuck Short <zul@gentoo.org> | 2004-04-25 23:19:24 +0000 |
---|---|---|
committer | Chuck Short <zul@gentoo.org> | 2004-04-25 23:19:24 +0000 |
commit | 509808e477450098f1e3840b8064bc2ef3fb425f (patch) | |
tree | 61a52f82d0589a623a0847c33b58f0231688b908 /net-www/apache | |
parent | Add die following econf for bug 48950 (Manifest recommit) (diff) | |
download | gentoo-2-509808e477450098f1e3840b8064bc2ef3fb425f.tar.gz gentoo-2-509808e477450098f1e3840b8064bc2ef3fb425f.tar.bz2 gentoo-2-509808e477450098f1e3840b8064bc2ef3fb425f.zip |
Ebuild clean up. Added patch that fixes the CookieName bug in mod_usertrack.
Diffstat (limited to 'net-www/apache')
-rw-r--r-- | net-www/apache/ChangeLog | 8 | ||||
-rw-r--r-- | net-www/apache/Manifest | 3 | ||||
-rw-r--r-- | net-www/apache/apache-1.3.29-r2.ebuild | 251 | ||||
-rw-r--r-- | net-www/apache/files/apache-1.3.29-usertrack_bug.patch | 72 | ||||
-rw-r--r-- | net-www/apache/files/digest-apache-1.3.29-r2 | 3 |
5 files changed, 336 insertions, 1 deletions
diff --git a/net-www/apache/ChangeLog b/net-www/apache/ChangeLog index fc7f8b773e29..c54be39407f3 100644 --- a/net-www/apache/ChangeLog +++ b/net-www/apache/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-www/apache # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.133 2004/04/24 13:04:20 zul Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-www/apache/ChangeLog,v 1.134 2004/04/25 23:19:24 zul Exp $ + +*apache-1.3.29-r2 (26 Apr 2004) + + 26 Apr 2004; Chuck Short <zul@gentoo.org> apache-1.3.29-r2.ebuild, + files/apache-1.3.29-usertrack_bug.patch: + Ebuild cleanup. Added workaround patch work CookieName patch. 24 Apr 2004; Chuck Short <zul@gentoo.org> apache-2.0.48-r4.ebuild, apache-2.0.49-r1.ebuild, apache-2.0.49.ebuild: diff --git a/net-www/apache/Manifest b/net-www/apache/Manifest index 381bb83c1765..c98c97e0aaaf 100644 --- a/net-www/apache/Manifest +++ b/net-www/apache/Manifest @@ -1,3 +1,4 @@ +MD5 3c1d79b106fde1c8dce7b047a79f16bd apache-1.3.29-r2.ebuild 7151 MD5 5fa557ec8a5b26ec62e9238fa55518be apache-2.0.49-r1.ebuild 11708 MD5 738de16a708fdae922876faebfa4ddd7 apache-2.0.48-r4.ebuild 12398 MD5 e51a4bbbd442f2d14e53c16eb603d501 apache-1.3.29-r1.ebuild 7414 @@ -8,6 +9,7 @@ MD5 d4b8a4908870107e15cc1edbd0ec6ebb files/apache-1.3.29_mod_auth_db.patch 729 MD5 161245c7aa1eb785db53b34d6a10be43 files/suexec_pam_gentoo.patch 2149 MD5 97c7a2efed7a3fd05614167426c495d9 files/apache-builtin-mods 2465 MD5 589e8773eb94f785be510f74b2e39ad0 files/digest-apache-1.3.29-r1 211 +MD5 589e8773eb94f785be510f74b2e39ad0 files/digest-apache-1.3.29-r2 211 MD5 d3626a1e31a675c60d066c111d552adf files/suexec.pam 59 MD5 4cc91d25cf4117b8db0fec344bebec4d files/digest-apache-2.0.48-r4 65 MD5 3a7818b24f0952694c7b878ba3d8e79a files/digest-apache-2.0.49-r1 65 @@ -26,6 +28,7 @@ MD5 d3339c25967ce7b36ef24495542f044a files/apachesplitlogfile 4948 MD5 3a7818b24f0952694c7b878ba3d8e79a files/digest-apache-2.0.49 65 MD5 b9ff3534313dae1b8ac96df0e3e01373 files/httpd-2.0.48-ipv6.patch 865 MD5 17aee0f7a9de0f390fa046bc82436309 files/apache.confd 998 +MD5 c2866f70c91c7c7f718b89d92530d5f2 files/apache-1.3.29-usertrack_bug.patch 2588 MD5 8cb4313e58d7bd5dc369eb92f75daa2b files/httpd-2.0.49-ipv6.patch 788 MD5 a7f15bdba3786353deb7bfaf8de0efb9 files/conf/apache.conf 8115 MD5 75e88ab5a3193fe8ff31c09f5bae2c09 files/conf/commonapache.conf 22175 diff --git a/net-www/apache/apache-1.3.29-r2.ebuild b/net-www/apache/apache-1.3.29-r2.ebuild new file mode 100644 index 000000000000..a23f23c31d07 --- /dev/null +++ b/net-www/apache/apache-1.3.29-r2.ebuild @@ -0,0 +1,251 @@ +# Copyright 1999-2004 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-www/apache/apache-1.3.29-r2.ebuild,v 1.1 2004/04/25 23:19:24 zul Exp $ + +inherit eutils fixheadtails + +#IUSE="ipv6 pam" +IUSE="pam" + +mod_ssl_ver=2.8.16 + +S=${WORKDIR}/${PN}_${PV} +DESCRIPTION="The Apache Web Server" +HOMEPAGE="http://www.apache.org http://www.modssl.org" +KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~amd64 ~ia64 ~mips" +SRC_URI="http://httpd.apache.org/dist/httpd/apache_${PV}.tar.gz + mirror://gentoo/${P}-gentoo.diff.bz2 + ftp://ftp.modssl.org/source/mod_ssl-${mod_ssl_ver}-${PV}.tar.gz" + +# 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. + +DEPEND="dev-lang/perl <sys-libs/db-4.1 + >=dev-libs/mm-1.1.3 + >=sys-libs/gdbm-1.8 + >=dev-libs/expat-1.95.2 + >=sys-apps/sed-4" +LICENSE="Apache-1.1" +SLOT="1" + +#Standard location for Gentoo Linux +DATADIR="/var/www/localhost" + +src_unpack() { + local myssl + unpack ${A} || die + cd ${S} || die + epatch ${WORKDIR}/${P}-gentoo.diff || die + + #Obsolete 'head -1' and 'tail -1' calls. + ht_fix_file src/Configure src/helpers/getuid.sh src/helpers/buildinfo.sh src/helpers/fmn.sh + + #Make apachectl read /etc/conf.d/apache + epatch ${FILESDIR}/apache-1.3.27-apachectl.patch || die + + sed -i "s:/usr/local/bin/perl5:/usr/bin/perl:" \ + htdocs/manual/search/manual-index.cgi + + # setup eapi... + 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 "eapi" + + # set a reasonable MM_CORE_PATH location.. + sed -i -e 's:logs/mm:/var/cache/apache-mm/mm:' \ + src/include/httpd.h + + if use pam; then + epatch ${FILESDIR}/suexec_pam_gentoo.patch || die + fi + + # Detect db4 correctly + epatch ${FILESDIR}/apache-1.3.27_db4_gentoo.patch || die + + # Fixes mod_auth_db compile breakages with db4.0 + epatch ${FILESDIR}/apache-1.3.29_mod_auth_db.patch + + # Fixes mod_user_track false positives for cookiename + epatch ${FILESDIR}/apache-1.3.29-usertrack_bug.patch +} + +src_compile() { + local myconf mycflags + mycflags="${CFLAGS}" + unset CFLAGS ; unset CXXFLAGS + + select_modules_config || die "determining modules" + + #-DBUFFERED_LOGS + OPTIM="${mycflags} -DHARD_SERVER_LIMIT=${HARD_SERVER_LIMIT:=512} \ + -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \ + LIBS="-lgdbm -lpthread" \ + EAPI_MM=SYSTEM \ + ./configure \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --libexecdir=/usr/lib/apache \ + --mandir=/usr/share/man \ + --sysconfdir=/etc/apache/conf \ + --datadir=${DATADIR} \ + --cgidir=${DATADIR}/cgi-bin \ + --iconsdir=${DATADIR}/icons \ + --htdocsdir=${DATADIR}/htdocs \ + --manualdir=/usr/share/doc/${PF}/manual \ + --includedir=/usr/include/apache \ + --localstatedir=/var \ + --runtimedir=/var/run \ + --logfiledir=/var/log/apache \ + --proxycachedir=/var/cache/apache \ + --serverroot=/etc/apache \ + \ + --target=apache \ + --server-uid=apache \ + --server-gid=apache \ + --enable-rule=EAPI \ + --enable-rule=SHARED_CHAIN \ + --with-perl=/usr/bin/perl \ + \ + ${MY_BUILTINS} \ + \ + --enable-suexec \ + --suexec-uidmin=1000 \ + --suexec-gidmin=100 \ + --suexec-caller=apache \ + --suexec-userdir=public_html \ + --suexec-docroot=/var/www \ + --suexec-safepath="/bin:/usr/bin" \ + --suexec-logfile=/var/log/apache/suexec_log \ + \ + ${myconf} || die "bad ./configure" + + emake || die "compile problem" +} + +src_install() { + local myfile + + GID=`id -g apache` + if [ -z "${GID}" ]; then + einfo "Using default GID of 81 for Apache" + GID=81 + fi + + make install-quiet root=${D} || die + dodoc ABOUT_APACHE Announcement INSTALL* LICENSE* README* WARNING* \ + ${FILESDIR}/robots.txt + + #protect the suexec binary + fowners root:${GID} /usr/sbin/suexec + fperms 4710 /usr/sbin/suexec + + # nice support scripts.. + for myfile in apacheaddmod apachedelmod \ + apachelogserverstatus apachesplitlogfile + do + exeinto /usr/sbin + doexe ${FILESDIR}/$myfile + done + + # setup links in /etc/apache.. + cd ${D}/etc/apache + ln -sf ../../usr/lib/apache modules + # apxs needs this to pickup the right lib for install.. + ln -sf ../../usr/lib lib + ln -sf ../../var/log/apache logs + ln -sf ../../usr/lib/apache-extramodules extramodules + + # drop in a convenient link to the manual + dosym /usr/share/doc/${PF}/manual ${DATADIR}/htdocs/manual + + # deprecated config files, empty dirs.. + rm -f ${D}/etc/apache/conf/apache.conf.default + rm -f ${D}/etc/apache/conf/access.conf* + rm -f ${D}/etc/apache/conf/srm.conf* + + # now the config files.. + insinto /etc/apache/conf + doins ${FILESDIR}/conf/commonapache.conf + doins ${FILESDIR}/conf/apache.conf + + # 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/conf/apache.conf + fi + + insinto /etc/apache/conf/vhosts + doins ${FILESDIR}/conf/VirtualHomePages.conf + doins ${FILESDIR}/conf/DynamicVhosts.conf + doins ${FILESDIR}/conf/Vhosts.conf + + exeinto /etc/init.d ; newexe ${FILESDIR}/apache.rc6 apache + insinto /etc/conf.d ; newins ${FILESDIR}/apache.confd apache + insinto /etc/apache ; doins ${FILESDIR}/apache-builtin-mods + + if use pam; then + insinto /etc/pam.d ; newins ${FILESDIR}/suexec.pam suexec + fi + + #empty dirs + keepdir /var/cache/apache /var/cache/apache-mm /usr/lib/apache-extramodules /etc/apache/conf/addon-modules /var/log/apache +} + +pkg_postinst() { + # these are in baselayout now; it will not hurt to leave them here though + # moved to pkg_postinst by jnelson, moved to pkg_preinst by lostlogic + getent group apache >/dev/null 2>&1 + if [ $? -ne 0 ]; then + groupadd -g 81 apache || die "problem adding group apache" + fi + + # usermod returns 2 on user-exists-but-no-flags-given + #usermod apache &>/dev/null + #if [ $? != 2 ]; then + getent passwd apache >/dev/null 2>&1 + if [ $? -ne 0 ]; then + useradd -u 81 -g apache -s /bin/false -d /var/www/localhost -c "apache" apache + assert "problem adding user apache" + fi + + einfo + einfo "Please remember to update your config files in /etc/apache" + einfo "as --datadir has been changed to ${DATADIR}!" + einfo +} + +parse_modules_config() { + local filename=$1 + local name="" + local dso="" + local disable="" + [ -f ${filename} ] || return 1 + einfo "Using ${filename} for builtins." + 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-module=$name" + name="" ; disable="" + elif [ $i == "static" ] ; 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 +} + +select_modules_config() { + parse_modules_config /etc/apache/apache-builtin-mods || \ + parse_modules_config ${FILESDIR}/apache-builtin-mods || \ + return 1 +} diff --git a/net-www/apache/files/apache-1.3.29-usertrack_bug.patch b/net-www/apache/files/apache-1.3.29-usertrack_bug.patch new file mode 100644 index 000000000000..6794206aada8 --- /dev/null +++ b/net-www/apache/files/apache-1.3.29-usertrack_bug.patch @@ -0,0 +1,72 @@ +=================================================================== +RCS file: /home/cvspublic/apache-1.3/src/modules/standard/mod_usertrack.c,v +retrieving revision 1.59 +retrieving revision 1.60 +diff -u -r1.59 -r1.60 +--- apache-1.3/src/modules/standard/mod_usertrack.c 2004/01/13 10:22:44 1.59 ++++ apache-1.3/src/modules/standard/mod_usertrack.c 2004/01/13 13:47:34 1.60 +@@ -286,10 +286,29 @@ + return; + } + +-/* dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)", +- * which has three subexpressions, $0..$2 */ ++/* ++ * dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)", ++ * which has three subexpressions, $0..$2 ++ */ + #define NUM_SUBS 3 + ++static void set_and_comp_regexp(cookie_dir_rec *dcfg, ++ pool *p, ++ const char *cookie_name) ++{ ++ /* ++ * The goal is to end up with this regexp, ++ * ^cookie_name=([^;]+)|;[\t]+cookie_name=([^;]+) ++ * with cookie_name obviously substituted either ++ * with the real cookie name set by the user in httpd.conf, ++ * or with the default COOKIE_NAME. ++ */ ++ dcfg->regexp_string = ap_pstrcat(p, "^", cookie_name, ++ "=([^;]+)|;[ \t]+", cookie_name, ++ "=([^;]+)", NULL); ++ dcfg->regexp = ap_pregcomp(p, dcfg->regexp_string, REG_EXTENDED); ++} ++ + static int spot_cookie(request_rec *r) + { + cookie_dir_rec *dcfg = ap_get_module_config(r->per_dir_config, +@@ -352,6 +371,11 @@ + dcfg->style = CT_UNSET; + dcfg->format = CF_NORMAL; + dcfg->enabled = 0; ++ /* ++ * In case the user does not use the CookieName directive, ++ * we need to compile the regexp for the default cookie name. ++ */ ++ set_and_comp_regexp(dcfg, p, COOKIE_NAME); + return dcfg; + } + +@@ -436,18 +460,10 @@ + { + cookie_dir_rec *dcfg = (cookie_dir_rec *) mconfig; + +- /* The goal is to end up with this regexp, +- * ^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+) +- * with cookie_name +- * obviously substituted with the real cookie name set by the +- * user in httpd.conf. */ +- dcfg->regexp_string = ap_pstrcat(cmd->pool, "^", name, +- "=([^;]+)|;[ \t]+", name, +- "=([^;]+)", NULL); +- + dcfg->cookie_name = ap_pstrdup(cmd->pool, name); + +- dcfg->regexp = ap_pregcomp(cmd->pool, dcfg->regexp_string, REG_EXTENDED); ++ set_and_comp_regexp(dcfg, cmd->pool, name); ++ + if (dcfg->regexp == NULL) { + return "Regular expression could not be compiled."; + } diff --git a/net-www/apache/files/digest-apache-1.3.29-r2 b/net-www/apache/files/digest-apache-1.3.29-r2 new file mode 100644 index 000000000000..a5423284e321 --- /dev/null +++ b/net-www/apache/files/digest-apache-1.3.29-r2 @@ -0,0 +1,3 @@ +MD5 e97fe9bf51dc2c9c233d53f63b1347e3 apache_1.3.29.tar.gz 2435809 +MD5 2faa15ad074ab273af41496a1afa527f apache-1.3.29-gentoo.diff.bz2 6862 +MD5 4f6c580ffa07d33e8584406132b98e86 mod_ssl-2.8.16-1.3.29.tar.gz 754325 |