diff options
Diffstat (limited to 'eclass/php-2.eclass')
-rw-r--r-- | eclass/php-2.eclass | 513 |
1 files changed, 0 insertions, 513 deletions
diff --git a/eclass/php-2.eclass b/eclass/php-2.eclass deleted file mode 100644 index 68408070466e..000000000000 --- a/eclass/php-2.eclass +++ /dev/null @@ -1,513 +0,0 @@ -# Copyright 1999-2004 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/php-2.eclass,v 1.16 2004/06/30 17:24:12 vapier Exp $ -# Author: Robin H. Johnson <robbat2@gentoo.org> - -inherit eutils flag-o-matic - -ECLASS=php -INHERITED="$INHERITED $ECLASS" - -EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_preinst - -[ -z "${MY_PN}" ] && MY_PN=php -if [ -z "${MY_PV}" ]; then - MY_PV=${PV/_rc/RC} - # maybe do stuff for beta/alpha/pre here too? -fi - -# our major ver number -PHPMAJORVER=${MY_PV//\.*} - -[ -z "${MY_P}" ] && MY_P=${MY_PN}-${MY_PV} -[ -z "${MY_PF}" ] && MY_PF=${MY_P}-${PR} -[ -z "${HOMEPAGE}" ] && HOMEPAGE="http://www.php.net/" -[ -z "${LICENSE}" ] && LICENSE="PHP" -[ -z "${PROVIDE}" ] && PROVIDE="virtual/php" -# PHP.net does automatic mirroring from this URI -[ -z "${SRC_URI_BASE}" ] && SRC_URI_BASE="http://www.php.net/distributions" -if [ -z "${SRC_URI}" ]; then - SRC_URI="${SRC_URI_BASE}/${MY_P}.tar.bz2" -fi -# A patch for PHP for security -SRC_URI="${SRC_URI} mirror://gentoo/php-4.3.2-fopen-url-secure.patch" - -# Where we work -S=${WORKDIR}/${MY_P} - -IUSE="${IUSE} X crypt curl firebird flash freetds gd gd-external gdbm imap informix ipv6 java jpeg ldap mcal memlimit mysql nls oci8 odbc pam pdflib png postgres qt snmp spell ssl tiff truetype xml2" - -# berkdb stuff is complicated -# we need db-1.* for ndbm -# and then either of db3 or db4 -IUSE="${IUSE} berkdb" -RDEPEND="${RDEPEND} berkdb? ( =sys-libs/db-1.* - || ( >=sys-libs/db-4.0.14-r2 - >=sys-libs/db-3.2.9-r9 - ) - )" - -# Everything is in this list is dynamically linked agaist or needed at runtime -# in some other way -RDEPEND=" - >=sys-libs/cracklib-2.7-r7 - app-arch/bzip2 - X? ( virtual/x11 ) - crypt? ( >=dev-libs/libmcrypt-2.4 >=app-crypt/mhash-0.8 ) - curl? ( >=net-misc/curl-7.10.2 ) - x86? ( firebird? ( >=dev-db/firebird-1.0 ) ) - freetds? ( >=dev-db/freetds-0.53 ) - gd-external? ( media-libs/gd >=media-libs/jpeg-6b - >=media-libs/libpng-1.2.5 ) - gd? ( >=media-libs/jpeg-6b >=media-libs/libpng-1.2.5 ) - gdbm? ( >=sys-libs/gdbm-1.8.0 ) - !alpha? ( java? ( =virtual/jdk-1.4* dev-java/java-config ) ) - jpeg? ( >=media-libs/jpeg-6b ) - ldap? ( >=net-nds/openldap-1.2.11 ) - mysql? ( >=dev-db/mysql-3.23.26 ) - nls? ( sys-devel/gettext ) - odbc? ( >=dev-db/unixODBC-1.8.13 ) - pam? ( >=sys-libs/pam-0.75 ) - pdflib? ( >=media-libs/pdflib-4.0.3 >=media-libs/jpeg-6b - >=media-libs/libpng-1.2.5 >=media-libs/tiff-3.5.5 ) - png? ( >=media-libs/libpng-1.2.5 ) - postgres? ( >=dev-db/postgresql-7.1 ) - qt? ( >=x11-libs/qt-2.3.0 ) - snmp? ( net-analyzer/net-snmp ) - spell? ( app-text/aspell ) - ssl? ( >=dev-libs/openssl-0.9.5 ) - tiff? ( >=media-libs/tiff-3.5.5 ) - xml2? ( dev-libs/libxml2 >=dev-libs/libxslt-1.0.30 ) - truetype? ( =media-libs/freetype-2* =media-libs/freetype-1* - media-libs/t1lib ) - >=net-libs/libwww-5.3.2 - >=app-text/sablotron-0.97 - dev-libs/expat - sys-libs/zlib - virtual/mta" - -# libswf is ONLY available on x86 -RDEPEND="${RDEPEND} flash? ( - x86? ( media-libs/libswf ) - >=media-libs/ming-0.2a )" - -#The new XML extension in PHP5 requires libxml2-2.5.10 -if [ "${PHPMAJORVER}" -ge 5 ]; then - RDEPEND="${RDEPEND} >=dev-libs/libxml2-2.5.10" -fi - -# These are extra bits we need only at compile time -DEPEND="${RDEPEND} ${DEPEND} - imap? ( virtual/imap-c-client ) - mcal? ( dev-libs/libmcal )" -#9libs causes a configure error -DEPEND="${DEPEND} !dev-libs/9libs" -#dev-libs/libiconv causes a compile failure -DEPEND="${DEPEND} !dev-libs/libiconv" - -#Waiting for somebody to want this: -#cyrus? ( net-mail/cyrus-imapd net-mail/cyrus-imap-admin dev-libs/cyrus-imap-dev ) - -#export this here so we can use it -myconf="${myconf}" - -# These are the standard targets that we want to for the install stage since we -# can't do the full 'make install' You may need to add your own items here for -# SAPIs etc. -PHP_INSTALLTARGETS="${PHP_INSTALLTARGETS} install-modules install-programs" -# provided by php-core: -# install-pear install-build install-headers install-programs -# for use by other ebuilds: -# install-cli install-sapi install-modules install-programs -# -# all ebuilds should have install-programs, and then delete everything except -# php-config.${PN} - -# These are quick fixups for older ebuilds that didn't have PHPSAPI defined. -[ -z "${PHPSAPI}" ] && [ "${PN}" = "php" ] && PHPSAPI="cli" -if [ -z "${PHPSAPI}" ] && [ "${PN}" = "mod_php" ]; then - use apache2 && PHPSAPI="apache2" || PHPSAPI="apache1" -fi - -# Now enforce existance of PHPSAPI -if [ -z "${PHPSAPI}" ]; then - msg="The PHP eclass needs a PHPSAPI setting!" - eerror "${msg}" - die "${msg}" -fi -# build the destination and php.ini details -PHPINIDIRECTORY="/etc/php/${PHPSAPI}-php${PHPMAJORVER}" -PHPINIFILENAME="php.ini" - -php_check_java_config() { - JDKHOME="`java-config --jdk-home`" - NOJDKERROR="You need to use java-config to set your JVM to a JDK!" - if [ -z "${JDKHOME}" ] || [ ! -d "${JDKHOME}" ]; then - eerror "${NOJDKERROR}" - die "${NOJDKERROR}" - fi - - # stuart@gentoo.org - 2003/05/18 - # Kaffe JVM is not a drop-in replacement for the Sun JDK at this time - - if echo $JDKHOME | grep kaffe > /dev/null 2>&1 ; then - eerror - eerror "PHP will not build using the Kaffe Java Virtual Machine." - eerror "Please change your JVM to either Blackdown or Sun's." - eerror - eerror "To build PHP without Java support, please re-run this emerge" - eerror "and place the line:" - eerror " USE='-java'" - eerror "in front of your emerge command; e.g." - eerror " USE='-java' emerge mod_php" - eerror - eerror "or edit your USE flags in /etc/make.conf" - die - fi - - JDKVER="$(java-config --java-version 2>&1 | head -n1 | cut -d\" -f2)" - einfo "JDK version: ${JDKVER}" - if [ -n "${JDKVER/1.4.*}" -o -z "${JDKVER}" ]; then - eerror "Please ensure that you have a JDK with a version of at least" - eerror "1.4 selected using java-config" - die - fi -} - -php_src_unpack() { - use xml || \ - ( ewarn "You have the xml USE flag turned off. Previously this" - ewarn "disabled XML support in PHP. However PEAR has a hard" - ewarn "dependancy on it, so they are now enabled." ) - - unpack ${MY_P}.tar.bz2 - cd ${S} - - # Configure Patch for hard-wired uname -a - sed "s/PHP_UNAME=\`uname -a\`/PHP_UNAME=\`uname -s -n -r -v\`/g" -i configure - # ensure correct perms on configure - chmod 755 configure - - - # no longer needed and breaks pear - Tal, 20031223 - - # fix PEAR installer for our packaging - # we keep a backup of it as we need it at the end of the install - #cp pear/PEAR/Registry.php pear/PEAR/Registry.old - #sed -e "s:\$pear_install_dir\.:\'${D}/usr/lib/php/\' . :g" -i pear/PEAR/Registry.php - - sed -e 's|include/postgresql|include/postgresql include/postgresql/pgsql|g' -i configure -} - - -php_src_compile() { - [ -x "/usr/sbin/sendmail" ] || die "You need a virtual/mta that provides /usr/sbin/sendmail!" - - [ -f "/proc/self/stat" ] || die "You need /proc mounted for configure to complete correctly!" - - use java && use !alpha && php_check_java_config - - if use berkdb; then - einfo "Enabling NBDM" - myconf="${myconf} --with-ndbm=/usr" - #Hack to use db4 - if has_version '=sys-libs/db-4*' && grep -q -- '--with-db4' configure; then - einfo "Enabling DB4" - myconf="${myconf} --with-db4=/usr" - elif has_version '=sys-libs/db-3*' && grep -q -- '--with-db3' configure; then - einfo "Enabling DB3" - myconf="${myconf} --with-db3=/usr" - else - einfo "Enabling DB2" - myconf="${myconf} --with-db2=/usr" - fi - else - einfo "Skipping DB2, DB3, DB4, NDBM support" - myconf="${myconf} --without-db3 --without-db4 --without-db2 --without-ndbm" - fi - - use crypt && myconf="${myconf} --with-mcrypt=/usr --with-mhash=/usr" - use firebird && use x86 && myconf="${myconf} --with-interbase=/opt/interbase" - use flash && myconf="${myconf} --with-ming=/usr" - use flash && use x86 && myconf="${myconf} --with-swf=/usr" - use freetds && myconf="${myconf} --with-sybase=/usr" - use gdbm && myconf="${myconf} --with-gdbm=/usr" - use informix && [ -n "${INFORMIXDIR}" ] && myconf="${myconf} --with-informix=${INFORMIXDIR}" - use java && use !alpha && myconf="${myconf} --with-java=${JAVA_HOME}" - use mcal && myconf="${myconf} --with-mcal=/usr" - use oci8 && [ -n "${ORACLE_HOME}" ] && myconf="${myconf} --with-oci8=${ORACLE_HOME}" - use odbc && myconf="${myconf} --with-unixODBC=/usr" - use postgres && myconf="${myconf} --with-pgsql=/usr" || myconf="${myconf} --without-pgsql" - use snmp && myconf="${myconf} --with-snmp=/usr --enable-ucd-snmp-hack" - use X && myconf="${myconf} --with-xpm-dir=/usr/X11R6" LDFLAGS="${LDFLAGS} -L/usr/X11R6/lib" - - # This chunk is intended for png/tiff/jpg, as there are several things that need them, indepentandly! - REQUIREPNG= - REQUIREJPG= - REQUIRETIFF= - if use pdflib; then - myconf="${myconf} --with-pdflib=/usr" - REQUIREPNG=1 REQUIREJPG=1 REQUIRETIFF=1 - fi - if use gd-external; then - myconf="${myconf} --with-gd=/usr" - REQUIREPNG=1 - if has_version '>=media-libs/gd-2.0.17'; then - einfo "Fixing PHP for gd function name changes" - sed -i 's:gdFreeFontCache:gdFontCacheShutdown:' ${S}/ext/gd/gd.c - fi - elif use gd; then - myconf="${myconf} --with-gd" - myconf="${myconf} `use_enable truetype gd-native-ttf`" - REQUIREPNG=1 REQUIREJPG=1 - else - myconf="${myconf} --without-gd" - fi - use png && REQUIREPNG=1 - use jpeg && REQUIREJPG=1 - use tiff && REQUIRETIFF=1 - if [ -n "${REQUIREPNG}" ]; then - myconf="${myconf} --with-png=/usr --with-png-dir=/usr" - else - myconf="${myconf} --without-png" - fi - if [ -n "${REQUIREJPG}" ]; then - myconf="${myconf} --with-jpeg=/usr --with-jpeg-dir=/usr --enable-exif" - else - myconf="${myconf} --without-jpeg" - fi - if [ -n "${REQUIRETIFF}" ]; then - myconf="${myconf} --with-tiff=/usr --with-tiff-dir=/usr" - LDFLAGS="${LDFLAGS} -ltiff" - else - myconf="${myconf} --without-tiff" - fi - - if use mysql; then - # check for mysql4.1 and mysql4.1 support in this php - if [ -n "`mysql_config | grep '4.1'`" ] && grep -q -- '--with-mysqli' configure; then - myconf="${myconf} --with-mysqli=/usr" - else - myconf="${myconf} --with-mysql=/usr" - myconf="${myconf} --with-mysql-sock=`mysql_config --socket`" - fi - else - myconf="${myconf} --without-mysql" - fi - - if use truetype; then - myconf="${myconf} --with-freetype-dir=/usr" - myconf="${myconf} --with-ttf=/usr" - myconf="${myconf} --with-t1lib=/usr" - else - myconf="${myconf} --without-ttf --without-t1lib" - fi - - myconf="${myconf} `use_with nls gettext` `use_with qt qtdom /usr/qt/3`" - myconf="${myconf} `use_with spell pspell /usr` `use_with ssl openssl /usr`" - myconf="${myconf} `use_with imap imap /usr` `use_with ldap ldap /usr`" - myconf="${myconf} `use_with xml2 dom /usr` `use_with xml2 dom-xslt /usr`" - myconf="${myconf} `use_with xml2 dom-exslt /usr`" - myconf="${myconf} `use_with kerberos kerberos /usr` `use_with pam`" - myconf="${myconf} `use_enable memlimit memory-limit`" - myconf="${myconf} `use_enable ipv6`" - if use curl; then - myconf="${myconf} --with-curlwrappers --with-curl=/usr" - else - myconf="${myconf} --without-curl" - fi - - #Waiting for somebody to want Cyrus support :-) - #myconf="${myconf} `use_with cyrus`" - - # dbx AT LEAST one of mysql/odbc/postgres/oci8 - use mysql || use odbc || use postgres || use oci8 \ - && myconf="${myconf} --enable-dbx" \ - || myconf="${myconf} --disable-dbx" - - use imap && use ssl && \ - if [ -n "`strings ${ROOT}/usr/lib/c-client.a 2>/dev/null | grep ssl_onceonlyinit`" ]; then - myconf="${myconf} --with-imap-ssl" - einfo "Building IMAP with SSL support." - else - ewarn "USE=\"imap ssl\" specified but IMAP is built WITHOUT ssl support." - ewarn "Skipping IMAP-SSL support." - fi - - - # These were previously optional, but are now included directly as PEAR needs them. - # Zlib is needed for XML - myconf="${myconf} --with-zlib=/usr --with-zlib-dir=/usr" - LIBS="${LIBS} -lxmlparse -lxmltok" - myconf="${myconf} --with-sablot=/usr" - myconf="${myconf} --enable-xslt" - myconf="${myconf} --with-xslt-sablot" - myconf="${myconf} --with-xmlrpc" - myconf="${myconf} --enable-wddx" - myconf="${myconf} --with-xml" - - #Some extensions need mbstring statically built - myconf="${myconf} --enable-mbstring=all --enable-mbregex" - - # Somebody might want safe mode, but it causes some problems, so I disable it by default - #myconf="${myconf} --enable-safe-mode" - - # These are some things that we don't really need use flags for, we just - # throw them in for functionality. Somebody could turn them off if their - # heart so desired - # DEPEND - app-arch/bzip2 - myconf="${myconf} --with-bz2=/usr" - # DEPEND - sys-libs/cracklib - myconf="${myconf} --with-crack=/usr" - # DEPEND - nothing - myconf="${myconf} --with-cdb" - - # No DEPENDancies - myconf="${myconf} --enable-pcntl" - myconf="${myconf} --enable-bcmath" - myconf="${myconf} --enable-calendar" - myconf="${myconf} --enable-dbase" - myconf="${myconf} --enable-filepro" - myconf="${myconf} --enable-ftp" - myconf="${myconf} --with-mime-magic" - myconf="${myconf} --enable-sockets" - myconf="${myconf} --enable-sysvsem --enable-sysvshm --enable-sysvipc" - myconf="${myconf} --with-iconv" - myconf="${myconf} --enable-shmop" - myconf="${myconf} --enable-dio" - myconf="${myconf} --enable-yp" - - # recode is NOT used as it conflicts with IMAP - # iconv is better anyway - - # Now actual base PHP settings - myconf="${myconf} \ - --enable-inline-optimization \ - --enable-track-vars \ - --enable-trans-sid \ - --enable-versioning \ - --with-config-file-path=${PHPINIDIRECTORY}" - - #fixes bug #24373 - filter-flags "-D_FILE_OFFSET_BITS=64" - filter-flags "-D_FILE_OFFSET_BITS=32" - filter-flags "-D_LARGEFILE_SOURCE=1" - filter-flags "-D_LARGEFILE_SOURCE" - #fixes bug #14067 - # changed order to run it in reverse for bug #32022 and #12021 - replace-flags "-march=k6-3" "-march=i586" - replace-flags "-march=k6-2" "-march=i586" - replace-flags "-march=k6" "-march=i586" - - if [ -z "${PHP_SKIP_CONFIGURE}" ]; then - LIBS="${LIBS}" econf \ - ${myconf} || die "bad ./configure" - fi - - if [ -z "${PHP_SKIP_MAKE}" ]; then - emake || die "compile problem" - fi -} - -php_src_install() { - addwrite /usr/share/snmp/mibs/.index - dodir /usr/bin - dodir /usr/lib/php - dodir /usr/include/php - - # parallel make breaks it - # so no emake here - make INSTALL_ROOT=${D} ${PHP_INSTALLTARGETS} || die - - # install a php-config for EACH instance of php - # the php-core one is the default - mv ${D}/usr/bin/php-config ${D}/usr/bin/php-config.${PN} - # these files are provided solely by php-core - [ "${PN}" = "php-core" ] && dosym /usr/bin/php-config.${PN} /usr/bin/php-config - [ "${PN}" != "php-core" ] && rm ${D}/usr/bin/{phpize,phpextdist} - - # get the extension dir - PHPEXTDIR="`${D}/usr/bin/php-config.${PN} --extension-dir`" - - for doc in LICENSE EXTENSIONS CREDITS INSTALL README.* TODO* NEWS; do - [ -s "$doc" ] && dodoc $doc - done - - #install scripts - exeinto /usr/bin - - # See comment above regarding this - # only php-core has the PEAR stuff - #if [ "${PN}" = "php-core" ]; then - # #revert Pear patch - # cp ${S}/pear/PEAR/Registry.old ${D}/usr/lib/php/PEAR/Registry.php - #fi - - # Support for Java extension - # 1. install php_java.jar file into ${EXT_DIR} - # 2. edit the php.ini file ready for installation - # - stuart@gentoo.org - local phpinisrc=php.ini-dist - if use java && [ "${PN}" != "php-core" ] && use !alpha; then - # we put these into /usr/lib so that they cannot conflict with - # other versions of PHP (e.g. PHP 4 & PHP 5) - insinto ${PHPEXTDIR} - einfo "Installing JAR for PHP" - doins ext/java/php_java.jar - - einfo "Installing Java test page" - newins ext/java/except.php java-test.php - - JAVA_LIBRARY="`grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;'| sort | uniq `" - sed -e "s|;java.library .*$|java.library = ${JAVA_LIBRARY}|g" -i ${phpinisrc} - sed -e "s|;java.class.path .*$|java.class.path = ${PHPEXTDIR}/php_java.jar|g" -i ${phpinisrc} - sed -e "s|extension_dir .*$|extension_dir = ${PHPEXTDIR}|g" -i ${phpinisrc} - sed -e "s|;extension=php_java.dll.*$|extension = java.so|g" -i ${phpinisrc} - sed -e "s|;java.library.path .*$|java.library.path = ${PHPEXTDIR}|g" -i ${phpinisrc} - dosym ${PHPEXTDIR}/java.so ${PHPEXTDIR}/libphp_java.so - fi - - if [ "${PN}" != "php-core" ]; then - #url_fopen - patch ${phpinisrc} <${DISTDIR}/php-4.3.2-fopen-url-secure.patch - - #prevent bugs with php-ext eclasses - sed -e 's:extension_dir = "./"::' -i ${phpinisrc} - - # A lot of ini file funkiness - insinto ${PHPINIDIRECTORY} - newins ${phpinisrc} ${PHPINIFILENAME} - - # we don't install it anymore - # this is obsolete, and passed it's phaseout - #dodir /etc/php4 - #[ "${PHPMAJORVER}" -eq 4 ] && dosym ${PHPINIDIRECTORY}/${PHPINIFILENAME} /etc/php4/${PHPINIFILENAME} - fi -} - -php_pkg_preinst() { - # obsolete - einfo "Checking if we need to preserve a really old /etc/php4/php.ini file" - if [ -e /etc/php4/php.ini ] && [ ! -L /etc/php4/php.ini ]; then - ewarn "Old setup /etc/php4/php.ini file detected, moving to new location (${PHPINIDIRECTORY}/${PHPINIFILENAME})" - mkdir -p ${PHPINIDIRECTORY} - mv -f /etc/php4/php.ini ${PHPINIDIRECTORY}/${PHPINIFILENAME} - else - einfo "/etc/php4/php.ini doesn't exist or is a symlink, nothing wrong here" - fi -} - -php_pkg_postinst() { - einfo "The INI file for this build is ${PHPINIDIRECTORY}/php.ini" -} - -php_securityupgrade() { - if has_version "<${PF}"; then - ewarn "This is a security upgrade for PHP!" - ewarn "Please ensure that you apply any changes to the apache and PHP" - ewarn "configutation files!" - else - einfo "This is a security upgrade for PHP!" - einfo "However it is not critical for your machine" - fi -} |