diff options
author | Luca Longinotti <chtekk@gentoo.org> | 2005-11-04 12:12:57 +0000 |
---|---|---|
committer | Luca Longinotti <chtekk@gentoo.org> | 2005-11-04 12:12:57 +0000 |
commit | abef673b9ec6fb9ff0f2f39d34ee5c455dbd80e8 (patch) | |
tree | e756569b98289910b4fe4c61ac510fb2f43ab73d /dev-php/mod_php | |
parent | Initial import to the tree to meet Eidetic deps. (diff) | |
download | historical-abef673b9ec6fb9ff0f2f39d34ee5c455dbd80e8.tar.gz historical-abef673b9ec6fb9ff0f2f39d34ee5c455dbd80e8.tar.bz2 historical-abef673b9ec6fb9ff0f2f39d34ee5c455dbd80e8.zip |
Revbump to fix http://bugs.php.net/bug.php?id=35067.
Package-Manager: portage-2.0.53_rc6
Diffstat (limited to 'dev-php/mod_php')
-rw-r--r-- | dev-php/mod_php/ChangeLog | 11 | ||||
-rw-r--r-- | dev-php/mod_php/Manifest | 8 | ||||
-rw-r--r-- | dev-php/mod_php/files/digest-mod_php-4.3.11-r4 | 5 | ||||
-rw-r--r-- | dev-php/mod_php/files/digest-mod_php-4.4.0-r8 | 5 | ||||
-rw-r--r-- | dev-php/mod_php/files/digest-mod_php-4.4.0-r9 | 5 | ||||
-rw-r--r-- | dev-php/mod_php/mod_php-4.3.11-r4.ebuild | 247 | ||||
-rw-r--r-- | dev-php/mod_php/mod_php-4.4.0-r8.ebuild | 244 | ||||
-rw-r--r-- | dev-php/mod_php/mod_php-4.4.0-r9.ebuild | 230 |
8 files changed, 753 insertions, 2 deletions
diff --git a/dev-php/mod_php/ChangeLog b/dev-php/mod_php/ChangeLog index 16d8a64d7a37..576ff54714bb 100644 --- a/dev-php/mod_php/ChangeLog +++ b/dev-php/mod_php/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for dev-php/mod_php # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-php/mod_php/ChangeLog,v 1.283 2005/11/04 10:58:43 chtekk Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-php/mod_php/ChangeLog,v 1.284 2005/11/04 12:12:57 chtekk Exp $ + +*mod_php-4.4.0-r9 (04 Nov 2005) +*mod_php-4.4.0-r8 (04 Nov 2005) +*mod_php-4.3.11-r4 (04 Nov 2005) + + 04 Nov 2005; Luca Longinotti <chtekk@gentoo.org> + +mod_php-4.3.11-r4.ebuild, +mod_php-4.4.0-r8.ebuild, + +mod_php-4.4.0-r9.ebuild: + Revbump to fix http://bugs.php.net/bug.php?id=35067. 04 Nov 2005; Luca Longinotti <chtekk@gentoo.org> files/php4.3.11-globals_overwrite.patch, diff --git a/dev-php/mod_php/Manifest b/dev-php/mod_php/Manifest index e55791976c4b..5353bbe7e5ea 100644 --- a/dev-php/mod_php/Manifest +++ b/dev-php/mod_php/Manifest @@ -1,4 +1,4 @@ -MD5 3b6fe097b281aefb4c0a281f832dc6b9 ChangeLog 50149 +MD5 130f2b866680a30b740026bc1e79dfdc ChangeLog 50437 MD5 158cb07377a3e2a0028947b0aeb505cb files/4.3.10-r1/70_mod_php.conf 1017 MD5 2dfe55aa49dbca0c3316e859f8bebcb1 files/4.3.11-r2/70_mod_php.conf 1125 MD5 389638f1d46b6c41cd4d87b471572f4b files/4.4.0-a1/70_mod_php.conf 484 @@ -7,12 +7,15 @@ MD5 79ed63479c494aeb2ed0bc7f5c059fb9 files/70_mod_php.conf 1022 MD5 cc21a816357d93a1d31cd44f861183c7 files/digest-mod_php-4.3.11 287 MD5 05df4c881b1833626d9a75a08a0098fd files/digest-mod_php-4.3.11-r1 364 MD5 05df4c881b1833626d9a75a08a0098fd files/digest-mod_php-4.3.11-r3 364 +MD5 05df4c881b1833626d9a75a08a0098fd files/digest-mod_php-4.3.11-r4 364 MD5 09d7dee078c684b0de0e4de6209ef634 files/digest-mod_php-4.4.0 285 MD5 09d7dee078c684b0de0e4de6209ef634 files/digest-mod_php-4.4.0-r1 285 MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r2 362 MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r3 362 MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r6 362 MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r7 362 +MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r8 362 +MD5 472ce8342d69fdad9d2a642b03b31bac files/digest-mod_php-4.4.0-r9 362 MD5 7515e9b1dc298a0fb1c12d35a58c265d files/mod_php-4.3.4-amd64hack.diff 1028 MD5 3bf664b414787f8f3c1dcbda5750aef4 files/mod_php-4.3.5-apache1security.diff 425 MD5 cceddd5c262e0ffef31d45b7da269851 files/mod_php.conf 148 @@ -39,10 +42,13 @@ MD5 83fb9efb602c178741ea2e40e13b014f files/php4.4.0-session_save_path-segf.patch MD5 38fe937e954ab7109395cefa86fcd2d4 metadata.xml 384 MD5 90610a0b9cdbcbec3cd33fcef432e00c mod_php-4.3.11-r1.ebuild 7127 MD5 3e4b2d8a6ea6c859ef96e9de3aed8b81 mod_php-4.3.11-r3.ebuild 8053 +MD5 5e982f7330d0825ed75c5d79e43d04db mod_php-4.3.11-r4.ebuild 8056 MD5 cd88a76d8ca70243cb58ed076582a857 mod_php-4.3.11.ebuild 6387 MD5 29d9e7ef90de139245d7c5e06dd9b67c mod_php-4.4.0-r1.ebuild 6561 MD5 68092beafbec1bd1b054a153b834bd13 mod_php-4.4.0-r2.ebuild 7074 MD5 47959bde0d770eddf3d212d43766332d mod_php-4.4.0-r3.ebuild 6145 MD5 9b13b3622e2a53585adc6c881198bdb6 mod_php-4.4.0-r6.ebuild 7994 MD5 921eddffa3b656c7c08da0d0c709622b mod_php-4.4.0-r7.ebuild 7069 +MD5 f074e7002350aa5d2d329dc2b1bf8ef5 mod_php-4.4.0-r8.ebuild 7997 +MD5 b6757ffb2af03dd263dafe618c3cbaa7 mod_php-4.4.0-r9.ebuild 7070 MD5 b7f57c4f896ce046f8a6b4472ddfcb2b mod_php-4.4.0.ebuild 6336 diff --git a/dev-php/mod_php/files/digest-mod_php-4.3.11-r4 b/dev-php/mod_php/files/digest-mod_php-4.3.11-r4 new file mode 100644 index 000000000000..8a51d50e2303 --- /dev/null +++ b/dev-php/mod_php/files/digest-mod_php-4.3.11-r4 @@ -0,0 +1,5 @@ +MD5 611cdddabfd71ffb724c428be33c14cb hardening-patch-4.3.11-0.3.2.patch.gz 80613 +MD5 fbc67d240812136a9842bc1f2a217b7a php-4.3.11.tar.bz2 4012575 +MD5 912ff94309b762563d0542db5187315f php-4.3.2-fopen-url-secure.patch 416 +MD5 fbb6b365f4c0263b1dfd498aef092a77 php-4.3.6-includepath.diff 285 +MD5 33be24619f3a10953f9e1e32beeee97a php-pcrelib-new-secpatch.tar.bz2 357619 diff --git a/dev-php/mod_php/files/digest-mod_php-4.4.0-r8 b/dev-php/mod_php/files/digest-mod_php-4.4.0-r8 new file mode 100644 index 000000000000..dfbd3919a8b5 --- /dev/null +++ b/dev-php/mod_php/files/digest-mod_php-4.4.0-r8 @@ -0,0 +1,5 @@ +MD5 0a52b85692ebbc299e6b1f6d9d206691 hardening-patch-4.4.0-0.3.2.patch.gz 33347 +MD5 912ff94309b762563d0542db5187315f php-4.3.2-fopen-url-secure.patch 416 +MD5 fbb6b365f4c0263b1dfd498aef092a77 php-4.3.6-includepath.diff 285 +MD5 e85b606fe48198bfcd785e5a5b1c9613 php-4.4.0.tar.bz2 4086074 +MD5 33be24619f3a10953f9e1e32beeee97a php-pcrelib-new-secpatch.tar.bz2 357619 diff --git a/dev-php/mod_php/files/digest-mod_php-4.4.0-r9 b/dev-php/mod_php/files/digest-mod_php-4.4.0-r9 new file mode 100644 index 000000000000..dfbd3919a8b5 --- /dev/null +++ b/dev-php/mod_php/files/digest-mod_php-4.4.0-r9 @@ -0,0 +1,5 @@ +MD5 0a52b85692ebbc299e6b1f6d9d206691 hardening-patch-4.4.0-0.3.2.patch.gz 33347 +MD5 912ff94309b762563d0542db5187315f php-4.3.2-fopen-url-secure.patch 416 +MD5 fbb6b365f4c0263b1dfd498aef092a77 php-4.3.6-includepath.diff 285 +MD5 e85b606fe48198bfcd785e5a5b1c9613 php-4.4.0.tar.bz2 4086074 +MD5 33be24619f3a10953f9e1e32beeee97a php-pcrelib-new-secpatch.tar.bz2 357619 diff --git a/dev-php/mod_php/mod_php-4.3.11-r4.ebuild b/dev-php/mod_php/mod_php-4.3.11-r4.ebuild new file mode 100644 index 000000000000..e356838bb73d --- /dev/null +++ b/dev-php/mod_php/mod_php-4.3.11-r4.ebuild @@ -0,0 +1,247 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-php/mod_php/mod_php-4.3.11-r4.ebuild,v 1.1 2005/11/04 12:12:57 chtekk Exp $ + +IUSE="apache2" + +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + +detectapache() { + # DO NOT REPLICATE THIS IN ANY OTHER PACKAGE WITHOUT PORTAGE DEVS PERMISSION + # IT IS BROKEN AND A TEMPORARY MEASURE! + # YOU'VE BEEN WARNED. + if [[ ${EBUILD_PHASE/depend} != ${EBUILD_PHASE} ]]; then + APACHEVER=1 + return + fi + local domsg= + [ -n "$1" ] && domsg=1 + HAVE_APACHE1= + HAVE_APACHE2= + has_version '=net-www/apache-1*' && HAVE_APACHE1=1 + has_version '=net-www/apache-2*' && HAVE_APACHE2=1 + + [ -n "${HAVE_APACHE1}" ] && APACHEVER=1 + [ -n "${HAVE_APACHE2}" ] && APACHEVER=2 + [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" ] && APACHEVER='both' + + case "${APACHEVER}" in + 1) [ -n "${domsg}" ] && einfo 'Apache1 only detected' ;; + 2) [ -n "${domsg}" ] && einfo 'Apache2 only detected';; + both) + if use apache2; then + [ -n "${domsg}" ] && einfo "Multiple Apache versions detected, using Apache2 (USE=apache2)" + APACHEVER=2 + else + [ -n "${domsg}" ] && einfo 'Multiple Apache versions detected, using Apache1 (USE=-apache2)' + APACHEVER=1 + fi ;; + *) if [ -n "${domsg}" ]; then + MSG="Unknown Apache version!"; eerror $MSG ; die $MSG + else + APACHEVER=0 + fi; ;; + esac +} + +detectapache + +SLOT="${APACHEVER}" +[ "${APACHEVER}" -eq '2' ] && USE_APACHE2='2' || USE_APACHE2='' + +PHPSAPI="apache${APACHEVER}" +SRC_URI_BASE="http://downloads.php.net/ilia/" # for RC only + +# BIG FAT WARNING! +# the php eclass requires the PHPSAPI setting! +# In this case the PHPSAPI setting is dependant on the detectapache function +# above this point as well! +inherit php-sapi eutils + +DESCRIPTION="Apache module for PHP" + +DEPEND_EXTRA=">=net-www/apache-1.3.26-r2 + apache2? ( >=net-www/apache-2.0.43-r1 + !>=net-www/apache-2.0.54-r30 )" +DEPEND="${DEPEND} ${DEPEND_EXTRA}" +RDEPEND="${RDEPEND} ${DEPEND_EXTRA}" +IUSE="${IUSE} debug" +# for this revision only +PDEPEND=">=${PHP_PROVIDER_PKG}-4.3.11" +PROVIDE="${PROVIDE} virtual/httpd-php" + +# fixed PCRE library for security issues, bug #102373 +SRC_URI="${SRC_URI} http://gentoo.longitekk.com/php-pcrelib-new-secpatch.tar.bz2" + +# Add a 'return 0' as we DON'T want the return code checked +pkg_setup() { + use debug && einfo "Installing in SLOT=${SLOT}" + return 0 +} + +src_unpack() { + multiinstwarn + detectapache domsg + php-sapi_src_unpack + if [ "${ARCH}" == "amd64" ] ; then + epatch ${FILESDIR}/mod_php-4.3.4-amd64hack.diff + fi + + # bug fix for security problem - bug #39952 + # second revision as the apache2 stuff was resolved upstream + epatch ${FILESDIR}/mod_php-4.3.5-apache1security.diff + + # Bug 88756 + use flash && epatch ${FILESDIR}/php-4.3.11-flash.patch + + # Bug 88795 + use gmp && epatch ${FILESDIR}/php-4.3.11-gmp.patch + + # stop php from activing the apache config, as we will do that ourselves + for i in configure sapi/apache/config.m4 sapi/apache2filter/config.m4 sapi/apache2handler/config.m4; do + sed -i.orig -e 's,-i -a -n php4,-i -n php4,g' $i + done + + # fix imap symlink creation, bug #105351 + use imap && epatch ${FILESDIR}/php4.3.11-imap-symlink.diff + + # patch to fix pspell extension, bug #99312 (new patch by upstream) + use spell && epatch "${FILESDIR}/php4.3.11-pspell-ext-segf.patch" + + # patch to fix safe_mode bypass in GD extension, bug #109669 + if use gd || use gd-external ; then + epatch "${FILESDIR}/php4.3.11-gd_safe_mode.patch" + fi + + # patch fo fix safe_mode bypass in CURL extension, bug #111032 + use curl && epatch "${FILESDIR}/php4.3.11-curl_safemode.patch" + + # patch $GLOBALS overwrite vulnerability, bug #111011 and bug #111014 + epatch "${FILESDIR}/php4.3.11-globals_overwrite.patch" + + # patch phpinfo() XSS vulnerability, bug #111015 + epatch "${FILESDIR}/php4.3.11-phpinfo_xss.patch" + + # patch open_basedir directory bypass, bug #102943 + epatch "${FILESDIR}/php4.3.11-fopen_wrappers.patch" + + # patch to fix session.save_path segfault and other issues in + # the apache2handler SAPI, bug #107602 + epatch "${FILESDIR}/php4.3.11-session_save_path-segf.patch" + + # we need to unpack the files here, the eclass doesn't handle this + cd ${WORKDIR} + unpack php-pcrelib-new-secpatch.tar.bz2 + cd ${S} + + # patch to fix PCRE library security issues, bug #102373 + epatch ${FILESDIR}/php4.3.11-pcre-security.patch + + # sobstitute the bundled PCRE library with a fixed version for bug #102373 + einfo "Updating bundled PCRE library" + rm -rf ${S}/ext/pcre/pcrelib && mv -f ${WORKDIR}/pcrelib-new ${S}/ext/pcre/pcrelib || die "Unable to update the bundled PCRE library" +} + +src_compile() { + # Every Apache2 MPM EXCEPT prefork needs Zend Thread Safety + if [ -n "${USE_APACHE2}" ]; then + APACHE2_MPM="`/usr/sbin/apache2 -l |egrep 'worker|perchild|leader|threadpool|prefork'|cut -d. -f1|sed -e 's/^[[:space:]]*//g;s/[[:space:]]+/ /g;'`" + einfo "Apache2 MPM: ${APACHE2_MPM}" + case "${APACHE2_MPM}" in + *prefork*) ;; + *) myconf="${myconf} --enable-experimental-zts" ; ewarn "Enabling ZTS for Apache2 MPM" ;; + esac; + fi + + #use apache2 \ + myconf="${myconf} --with-apxs${USE_APACHE2}=/usr/sbin/apxs${USE_APACHE2}" + + php-sapi_src_compile +} + + +src_install() { + PHP_INSTALLTARGETS="install" + php-sapi_src_install + einfo "Adding extra symlink to php.ini for Apache${USE_APACHE2}" + dodir /etc/apache${USE_APACHE2}/conf/ + dodir ${PHPINIDIRECTORY} + dosym ${PHPINIDIRECTORY}/${PHPINIFILENAME} /etc/apache${USE_APACHE2}/conf/${PHPINIFILENAME} + + einfo "Cleaning up a little" + rm -rf ${D}/usr/lib/apache${USE_APACHE2}/modules/libphp4.so + einfo "Adding extra symlink to Apache${USE_APACHE2} extramodules for PHP" + dosym /usr/lib/apache${USE_APACHE2}-extramodules ${PHPINIDIRECTORY}/lib + exeinto /usr/lib/apache${USE_APACHE2}-extramodules + einfo "Installing mod_php shared object now" + doexe .libs/libphp4.so + + if [ -n "${USE_APACHE2}" ] ; then + einfo "Installing a Apache2 config for PHP (70_mod_php.conf)" + insinto /etc/apache2/conf/modules.d + doins ${FILESDIR}/70_mod_php.conf + else + einfo "Installing a Apache config for PHP (mod_php.conf)" + insinto /etc/apache/conf/addon-modules + doins ${FILESDIR}/mod_php.conf + dosym ${PHPINIDIRECTORY}/${PHPINIFILENAME} /etc/apache/conf/addon-modules/${PHPINIFILENAME} + fi +} + +apache2msg() { + einfo "Edit /etc/conf.d/apache2 and add \"-D PHP4\" to APACHE2_OPTS" + ewarn "This is a CHANGE from previous behavior, which was \"-D PHP\"" + ewarn "This is for the upcoming PHP5 support. The ebuild will attempt" + ewarn "to make this update between PHP and PHP4 automatically" +} + +multiinstwarn() { + ewarn "Due to some previous bloopers with PHP and slotting, you may have" + ewarn "multiple instances of mod_php installed. Please look at the autoclean" + ewarn "output at the end of the emerge and unmerge all but relevant" + ewarn "instances." +} + +apache2fix() { + if egrep -q -- '-D PHP\>' /etc/conf.d/apache2; then + einfo "Attemping to update /etc/conf.d/apache2 automatically for the PHP/PHP4 change." + local oldfile="/etc/conf.d/apache2.old.`date +%Y%m%d%H%M%S`" + cp /etc/conf.d/apache2 ${oldfile} + sed -re 's,-D PHP\>,-D PHP4,g' ${oldfile} <${oldfile} >/etc/conf.d/apache2 + fi +} + + +pkg_preinst() { + multiinstwarn + [ "${APACHEVER}" -eq '2' ] && apache2fix + php-sapi_pkg_preinst +} + +pkg_postinst() { + php-sapi_pkg_postinst + multiinstwarn + einfo "To have Apache run php programs, please do the following:" + if [ -n "${USE_APACHE2}" ]; then + apache2msg + else + einfo "1. Execute the command:" + einfo " \"emerge --config =${PF}\"" + einfo "2. Edit /etc/conf.d/apache and add \"-D PHP4\" to APACHE_OPTS" + einfo "That will include the php mime types in your configuration" + einfo "automagically and setup Apache to load php when it starts." + fi +} + +pkg_config() { + multiinstwarn + if [ -n "${USE_APACHE2}" ]; then + apache2msg + else + ${ROOT}/usr/sbin/apacheaddmod \ + ${ROOT}/etc/apache/conf/apache.conf \ + extramodules/libphp4.so mod_php4.c php4_module \ + before=perl define=PHP4 addconf=conf/addon-modules/mod_php.conf + :; + fi +} diff --git a/dev-php/mod_php/mod_php-4.4.0-r8.ebuild b/dev-php/mod_php/mod_php-4.4.0-r8.ebuild new file mode 100644 index 000000000000..46c286bf6ff1 --- /dev/null +++ b/dev-php/mod_php/mod_php-4.4.0-r8.ebuild @@ -0,0 +1,244 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-php/mod_php/mod_php-4.4.0-r8.ebuild,v 1.1 2005/11/04 12:12:57 chtekk Exp $ + +IUSE="apache2" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + +detectapache() { + # DO NOT REPLICATE THIS IN ANY OTHER PACKAGE WITHOUT PORTAGE DEVS PERMISSION + # IT IS BROKEN AND A TEMPORARY MEASURE! + # YOU'VE BEEN WARNED. + if [[ ${EBUILD_PHASE/depend} != ${EBUILD_PHASE} ]]; then + APACHEVER=1 + return + fi + local domsg= + [ -n "$1" ] && domsg=1 + HAVE_APACHE1= + HAVE_APACHE2= + has_version '=net-www/apache-1*' && HAVE_APACHE1=1 + has_version '=net-www/apache-2*' && HAVE_APACHE2=1 + + [ -n "${HAVE_APACHE1}" ] && APACHEVER=1 + [ -n "${HAVE_APACHE2}" ] && APACHEVER=2 + [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" ] && APACHEVER='both' + + case "${APACHEVER}" in + 1) [ -n "${domsg}" ] && einfo 'Apache1 only detected' ;; + 2) [ -n "${domsg}" ] && einfo 'Apache2 only detected';; + both) + if use apache2; then + [ -n "${domsg}" ] && einfo "Multiple Apache versions detected, using Apache2 (USE=apache2)" + APACHEVER=2 + else + [ -n "${domsg}" ] && einfo 'Multiple Apache versions detected, using Apache1 (USE=-apache2)' + APACHEVER=1 + fi ;; + *) if [ -n "${domsg}" ]; then + MSG="Unknown Apache version!"; eerror $MSG ; die $MSG + else + APACHEVER=0 + fi; ;; + esac +} + +detectapache + +SLOT="${APACHEVER}" +[ "${APACHEVER}" -eq '2' ] && USE_APACHE2='2' || USE_APACHE2='' + +PHPSAPI="apache${APACHEVER}" +#SRC_URI_BASE="http://downloads.php.net/ilia/" # for RC only + +# BIG FAT WARNING! +# the php eclass requires the PHPSAPI setting! +# In this case the PHPSAPI setting is dependant on the detectapache function +# above this point as well! +inherit php-sapi eutils + +DESCRIPTION="Apache module for PHP" + +DEPEND_EXTRA=">=net-www/apache-1.3.26-r2 + apache2? ( >=net-www/apache-2.0.43-r1 + !>=net-www/apache-2.0.54-r30 )" +DEPEND="${DEPEND} ${DEPEND_EXTRA}" +RDEPEND="${RDEPEND} ${DEPEND_EXTRA}" +IUSE="${IUSE} debug" +# for this revision only +PDEPEND=">=${PHP_PROVIDER_PKG}-4.4.0" +PROVIDE="${PROVIDE} virtual/httpd-php" + +# fixed PCRE library for security issues, bug #102373 +SRC_URI="${SRC_URI} http://gentoo.longitekk.com/php-pcrelib-new-secpatch.tar.bz2" + +# Add a 'return 0' as we DON'T want the return code checked +pkg_setup() { + use debug && einfo "Installing in SLOT=${SLOT}" + return 0 +} + +src_unpack() { + multiinstwarn + detectapache domsg + php-sapi_src_unpack + if [ "${ARCH}" == "amd64" ] ; then + epatch ${FILESDIR}/mod_php-4.3.4-amd64hack.diff + fi + + # bug fix for security problem - bug #39952 + # second revision as the apache2 stuff was resolved upstream + epatch ${FILESDIR}/mod_php-4.3.5-apache1security.diff + + # stop php from activing the apache config, as we will do that ourselves + for i in configure sapi/apache/config.m4 sapi/apache2filter/config.m4 sapi/apache2handler/config.m4; do + sed -i.orig -e 's,-i -a -n php4,-i -n php4,g' $i + done + + # fix imap symlink creation, bug #105351 + use imap && epatch ${FILESDIR}/php4.4.0-imap-symlink.diff + + # patch to fix pspell extension, bug #99312 (new patch by upstream) + use spell && epatch "${FILESDIR}/php4.4.0-pspell-ext-segf.patch" + + # patch to fix safe_mode bypass in GD extension, bug #109669 + if use gd || use gd-external ; then + epatch "${FILESDIR}/php4.4.0-gd_safe_mode.patch" + fi + + # patch fo fix safe_mode bypass in CURL extension, bug #111032 + use curl && epatch "${FILESDIR}/php4.4.0-curl_safemode.patch" + + # patch $GLOBALS overwrite vulnerability, bug #111011 and bug #111014 + epatch "${FILESDIR}/php4.4.0-globals_overwrite.patch" + + # patch phpinfo() XSS vulnerability, bug #111015 + epatch "${FILESDIR}/php4.4.0-phpinfo_xss.patch" + + # patch open_basedir directory bypass, bug #102943 + epatch "${FILESDIR}/php4.4.0-fopen_wrappers.patch" + + # patch to fix session.save_path segfault and other issues in + # the apache2handler SAPI, bug #107602 + epatch "${FILESDIR}/php4.4.0-session_save_path-segf.patch" + + # we need to unpack the files here, the eclass doesn't handle this + cd ${WORKDIR} + unpack php-pcrelib-new-secpatch.tar.bz2 + cd ${S} + + # patch to fix PCRE library security issues, bug #102373 + epatch ${FILESDIR}/php4.4.0-pcre-security.patch + + # sobstitute the bundled PCRE library with a fixed version for bug #102373 + einfo "Updating bundled PCRE library" + rm -rf ${S}/ext/pcre/pcrelib && mv -f ${WORKDIR}/pcrelib-new ${S}/ext/pcre/pcrelib || die "Unable to update the bundled PCRE library" +} + +src_compile() { + # Every Apache2 MPM EXCEPT prefork needs Zend Thread Safety + if [ -n "${USE_APACHE2}" ]; then + APACHE2_MPM="`/usr/sbin/apache2 -l |egrep 'worker|perchild|leader|threadpool|prefork'|cut -d. -f1|sed -e 's/^[[:space:]]*//g;s/[[:space:]]+/ /g;'`" + einfo "Apache2 MPM: ${APACHE2_MPM}" + case "${APACHE2_MPM}" in + *prefork*) ;; + *) myconf="${myconf} --enable-experimental-zts" ; ewarn "Enabling ZTS for Apache2 MPM" ;; + esac; + fi + + # use apache2 + myconf="${myconf} --with-apxs${USE_APACHE2}=/usr/sbin/apxs${USE_APACHE2}" + + # Do not build CLI SAPI module. + myconf="${myconf} --disable-cli --without-pear" + + php-sapi_src_compile +} + + +src_install() { + PHP_INSTALLTARGETS="install" + php-sapi_src_install + einfo "Adding extra symlink to php.ini for Apache${USE_APACHE2}" + dodir /etc/apache${USE_APACHE2}/conf/ + dodir ${PHPINIDIRECTORY} + dosym ${PHPINIDIRECTORY}/${PHPINIFILENAME} /etc/apache${USE_APACHE2}/conf/${PHPINIFILENAME} + + einfo "Cleaning up a little" + rm -rf ${D}/usr/lib/apache${USE_APACHE2}/modules/libphp4.so + einfo "Adding extra symlink to Apache${USE_APACHE2} extramodules for PHP" + dosym /usr/lib/apache${USE_APACHE2}-extramodules ${PHPINIDIRECTORY}/lib + exeinto /usr/lib/apache${USE_APACHE2}-extramodules + einfo "Installing mod_php shared object now" + doexe .libs/libphp4.so + + if [ -n "${USE_APACHE2}" ] ; then + einfo "Installing a Apache2 config for PHP (70_mod_php.conf)" + insinto /etc/apache2/conf/modules.d + doins ${FILESDIR}/70_mod_php.conf + else + einfo "Installing a Apache config for PHP (mod_php.conf)" + insinto /etc/apache/conf/addon-modules + doins ${FILESDIR}/mod_php.conf + dosym ${PHPINIDIRECTORY}/${PHPINIFILENAME} /etc/apache/conf/addon-modules/${PHPINIFILENAME} + fi +} + +apache2msg() { + einfo "Edit /etc/conf.d/apache2 and add \"-D PHP4\" to APACHE2_OPTS" + ewarn "This is a CHANGE from previous behavior, which was \"-D PHP\"" + ewarn "This is for the upcoming PHP5 support. The ebuild will attempt" + ewarn "to make this update between PHP and PHP4 automatically" +} + +multiinstwarn() { + ewarn "Due to some previous bloopers with PHP and slotting, you may have" + ewarn "multiple instances of mod_php installed. Please look at the autoclean" + ewarn "output at the end of the emerge and unmerge all but relevant" + ewarn "instances." +} + +apache2fix() { + if egrep -q -- '-D PHP\>' /etc/conf.d/apache2; then + einfo "Attemping to update /etc/conf.d/apache2 automatically for the PHP/PHP4 change." + local oldfile="/etc/conf.d/apache2.old.`date +%Y%m%d%H%M%S`" + cp /etc/conf.d/apache2 ${oldfile} + sed -re 's,-D PHP\>,-D PHP4,g' ${oldfile} <${oldfile} >/etc/conf.d/apache2 + fi +} + + +pkg_preinst() { + multiinstwarn + [ "${APACHEVER}" -eq '2' ] && apache2fix + php-sapi_pkg_preinst +} + +pkg_postinst() { + php-sapi_pkg_postinst + multiinstwarn + einfo "To have Apache run php programs, please do the following:" + if [ -n "${USE_APACHE2}" ]; then + apache2msg + else + einfo "1. Execute the command:" + einfo " \"emerge --config =${PF}\"" + einfo "2. Edit /etc/conf.d/apache and add \"-D PHP4\" to APACHE_OPTS" + einfo "That will include the php mime types in your configuration" + einfo "automagically and setup Apache to load php when it starts." + fi +} + +pkg_config() { + multiinstwarn + if [ -n "${USE_APACHE2}" ]; then + apache2msg + else + ${ROOT}/usr/sbin/apacheaddmod \ + ${ROOT}/etc/apache/conf/apache.conf \ + extramodules/libphp4.so mod_php4.c php4_module \ + before=perl define=PHP4 addconf=conf/addon-modules/mod_php.conf + :; + fi +} diff --git a/dev-php/mod_php/mod_php-4.4.0-r9.ebuild b/dev-php/mod_php/mod_php-4.4.0-r9.ebuild new file mode 100644 index 000000000000..df939d9b7861 --- /dev/null +++ b/dev-php/mod_php/mod_php-4.4.0-r9.ebuild @@ -0,0 +1,230 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-php/mod_php/mod_php-4.4.0-r9.ebuild,v 1.1 2005/11/04 12:12:57 chtekk Exp $ + +IUSE="apache2" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + +detectapache() { + # DO NOT REPLICATE THIS IN ANY OTHER PACKAGE WITHOUT PORTAGE DEVS PERMISSION + # IT IS BROKEN AND A TEMPORARY MEASURE! + # YOU'VE BEEN WARNED. + if [[ ${EBUILD_PHASE/depend} != ${EBUILD_PHASE} ]]; then + APACHEVER=1 + return + fi + local domsg= + [ -n "$1" ] && domsg=1 + HAVE_APACHE1= + HAVE_APACHE2= + has_version '=net-www/apache-1*' && HAVE_APACHE1=1 + has_version '=net-www/apache-2*' && HAVE_APACHE2=1 + + [ -n "${HAVE_APACHE1}" ] && APACHEVER=1 + [ -n "${HAVE_APACHE2}" ] && APACHEVER=2 + [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" ] && APACHEVER='both' + + case "${APACHEVER}" in + 1) [ -n "${domsg}" ] && einfo 'Apache1 only detected' ;; + 2) [ -n "${domsg}" ] && einfo 'Apache2 only detected';; + both) + if use apache2; then + [ -n "${domsg}" ] && einfo "Multiple Apache versions detected, using Apache2 (USE=apache2)" + APACHEVER=2 + else + [ -n "${domsg}" ] && einfo 'Multiple Apache versions detected, using Apache1 (USE=-apache2)' + APACHEVER=1 + fi ;; + *) if [ -n "${domsg}" ]; then + MSG="Unknown Apache version!"; eerror $MSG ; die $MSG + else + APACHEVER=0 + fi; ;; + esac +} + +detectapache + +SLOT="${APACHEVER}" +[ "${APACHEVER}" -eq '2' ] && USE_APACHE2='2' || USE_APACHE2='' + +PHPSAPI="apache${APACHEVER}" +#SRC_URI_BASE="http://downloads.php.net/ilia/" # for RC only + +# BIG FAT WARNING! +# the php eclass requires the PHPSAPI setting! +# In this case the PHPSAPI setting is dependant on the detectapache function +# above this point as well! +inherit php-sapi eutils apache-module flag-o-matic + +DESCRIPTION="Apache module for PHP" + +DEPEND_EXTRA=">=net-www/apache-1.3.33-r10 + apache2? ( >=net-www/apache-2.0.54-r30 )" +DEPEND="${DEPEND} ${DEPEND_EXTRA}" +RDEPEND="${RDEPEND} ${DEPEND_EXTRA}" +IUSE="${IUSE} debug" +# for this revision only +PDEPEND=">=${PHP_PROVIDER_PKG}-4.4.0" +PROVIDE="${PROVIDE} virtual/httpd-php" + +# fixed PCRE library for security issues, bug #102373 +SRC_URI="${SRC_URI} http://gentoo.longitekk.com/php-pcrelib-new-secpatch.tar.bz2" + +# generalize some apache{,2} vars (defined by apache-module.eclass) +if [ -n ${USE_APACHE2} ]; then + APACHE_MODULESDIR=${APACHE2_MODULESDIR} + APACHE_CONFDIR=${APACHE2_CONFDIR} +else + APACHE_MODULESDIR=${APACHE_MODULESDIR} + APACHE_CONFDIR=${APACHE_CONFDIR} +fi + +# Add a 'return 0' as we DON'T want the return code checked +pkg_setup() { + use debug && einfo "Installing in SLOT=${SLOT}" + return 0 +} + +src_unpack() { + multiinstwarn + detectapache domsg + php-sapi_src_unpack + if [ "${ARCH}" == "amd64" ] ; then + epatch ${FILESDIR}/mod_php-4.3.4-amd64hack.diff + fi + + # bug fix for security problem - bug #39952 + # second revision as the apache2 stuff was resolved upstream + epatch ${FILESDIR}/mod_php-4.3.5-apache1security.diff + + # stop php from activing the apache config, as we will do that ourselves + for i in configure sapi/apache/config.m4 sapi/apache2filter/config.m4 sapi/apache2handler/config.m4; do + sed -i.orig -e 's,-i -a -n php4,-i -n php4,g' $i + done + + # fix imap symlink creation, bug #105351 + use imap && epatch ${FILESDIR}/php4.4.0-imap-symlink.diff + + # patch to fix pspell extension, bug #99312 (new patch by upstream) + use spell && epatch "${FILESDIR}/php4.4.0-pspell-ext-segf.patch" + + # patch to fix safe_mode bypass in GD extension, bug #109669 + if use gd || use gd-external ; then + epatch "${FILESDIR}/php4.4.0-gd_safe_mode.patch" + fi + + # patch fo fix safe_mode bypass in CURL extension, bug #111032 + use curl && epatch "${FILESDIR}/php4.4.0-curl_safemode.patch" + + # patch $GLOBALS overwrite vulnerability, bug #111011 and bug #111014 + epatch "${FILESDIR}/php4.4.0-globals_overwrite.patch" + + # patch phpinfo() XSS vulnerability, bug #111015 + epatch "${FILESDIR}/php4.4.0-phpinfo_xss.patch" + + # patch open_basedir directory bypass, bug #102943 + epatch "${FILESDIR}/php4.4.0-fopen_wrappers.patch" + + # patch to fix session.save_path segfault and other issues in + # the apache2handler SAPI, bug #107602 + epatch "${FILESDIR}/php4.4.0-session_save_path-segf.patch" + + # we need to unpack the files here, the eclass doesn't handle this + cd ${WORKDIR} + unpack php-pcrelib-new-secpatch.tar.bz2 + cd ${S} + + # patch to fix PCRE library security issues, bug #102373 + epatch ${FILESDIR}/php4.4.0-pcre-security.patch + + # sobstitute the bundled PCRE library with a fixed version for bug #102373 + einfo "Updating bundled PCRE library" + rm -rf ${S}/ext/pcre/pcrelib && mv -f ${WORKDIR}/pcrelib-new ${S}/ext/pcre/pcrelib || die "Unable to update the bundled PCRE library" +} + +setup_environ() { + append-flags `apr-config --cppflags --cflags` +} + +src_compile() { + setup_environ + + # Every Apache2 MPM EXCEPT prefork needs Zend Thread Safety + if [ -n "${USE_APACHE2}" ]; then + APACHE2_MPM="`/usr/sbin/apache2 -l | egrep 'worker|perchild|leader|threadpool|prefork'|cut -d. -f1|sed -e 's/^[[:space:]]*//g;s/[[:space:]]+/ /g;'`" + einfo "Apache2 MPM: ${APACHE2_MPM}" + case "${APACHE2_MPM}" in + *prefork*) ;; + *peruser*) ;; + *) myconf="${myconf} --enable-experimental-zts" ; ewarn "Enabling ZTS for Apache2 MPM" ;; + esac; + fi + + #use apache2 + myconf="${myconf} --with-apxs${USE_APACHE2}=/usr/sbin/apxs${USE_APACHE2}" + + # Do not build CLI SAPI module. + myconf="${myconf} --disable-cli --without-pear" + + php-sapi_src_compile +} + +src_install() { + PHP_INSTALLTARGETS="install" + php-sapi_src_install + + dodir ${APACHE_CONFDIR} + dodir ${PHPINIDIRECTORY} + + einfo "Cleaning up a little" + rm -rf ${D}${APACHE_MODULESDIR}/libphp4.so + + exeinto ${APACHE_MODULESDIR} + einfo "Installing mod_php shared object now" + doexe .libs/libphp4.so + + if [ -n "${USE_APACHE2}" ] ; then + einfo "Installing a Apache2 config for PHP (70_mod_php.conf)" + insinto ${APACHE2_MODULES_CONFDIR} + doins ${FILESDIR}/4.4.0-a2/70_mod_php.conf + else + einfo "Installing a Apache config for PHP (70_mod_php.conf)" + insinto ${APACHE1_MODULES_CONFDIR} + doins ${FILESDIR}/4.4.0-a1/70_mod_php.conf + fi +} + +multiinstwarn() { + ewarn "Due to some previous bloopers with PHP and slotting, you may have" + ewarn "multiple instances of mod_php installed. Please look at the autoclean" + ewarn "output at the end of the emerge and unmerge all but relevant" + ewarn "instances." +} + +apache2fix() { + if egrep -q -- '-D PHP\>' /etc/conf.d/apache2; then + einfo "Attemping to update /etc/conf.d/apache2 automatically for the PHP/PHP4 change." + local oldfile="/etc/conf.d/apache2.old.`date +%Y%m%d%H%M%S`" + cp /etc/conf.d/apache2 ${oldfile} + sed -re 's,-D PHP\>,-D PHP4,g' ${oldfile} <${oldfile} >/etc/conf.d/apache2 + fi +} + + +pkg_preinst() { + multiinstwarn + [ "${APACHEVER}" -eq '2' ] && apache2fix + php-sapi_pkg_preinst +} + +pkg_postinst() { + php-sapi_pkg_postinst + multiinstwarn + APACHE1_MOD_DEFINE="PHP4" + APACHE1_MOD_CONF="70_mod_php.conf" + APACHE2_MOD_DEFINE="PHP4" + APACHE2_MOD_CONF="70_mod_php.conf" + apache-module_pkg_postinst +} |