# $Id$ PortSystem 1.0 name php5 version 5.2.3 categories lang php www maintainers ryandesign jwa homepage http://www.php.net/ distfiles php-${version}.tar.bz2:release use_bzip2 yes worksrcdir php-${version} platforms darwin freebsd description \ PHP: Hypertext Preprocessor long_description \ PHP is a widely-used general-purpose scripting language \ that is especially suited for developing web sites, but can also \ be used for command-line scripting. master_sites \ ${homepage}distributions/:release \ http://it.php.net/distributions/:release \ http://fi.php.net/distributions/:release \ http://de.php.net/distributions/:release \ http://gr.php.net/distributions/:release \ http://fr.php.net/distributions/:release \ http://es.php.net/distributions/:release \ http://se.php.net/distributions/:release \ http://downloads.php.net/ilia/:rc \ http://downloads.php.net/jani/:rc checksums \ md5 eb50b751c8e1ced05bd012d5a0e4dec3 \ sha1 0a02e05e1c663c0d4ee0b253917c0e140e606261 \ rmd160 3c895cf7e513e5a3d7d9f742a9d56102cbb3a79b # Locally fix PHP bug 41555; remove this when updating the port to 5.2.4. # See: http://bugs.php.net/bug.php?id=41555 patchfiles patch_configure depends_lib \ port:libxml2 \ port:libxslt \ port:openssl \ port:zlib \ port:libiconv \ port:expat \ port:gettext \ port:tiff \ port:mhash \ port:libmcrypt \ port:curl \ port:pcre \ port:jpeg \ port:libpng \ port:freetype configure.args \ --mandir=${prefix}/share/man \ --infodir=${prefix}/share/info \ --with-config-file-path=${prefix}/etc \ --enable-calendar \ --with-iconv=${prefix} \ --enable-exif \ --enable-ftp \ --enable-wddx\ --with-zlib=${prefix} \ --without-mysql \ --without-sqlite \ --without-pdo-sqlite \ --with-libxml-dir=${prefix} \ --with-gettext=${prefix} \ --with-xml \ --with-expat-dir=${prefix} \ --with-xmlrpc \ --enable-soap \ --enable-filepro \ --enable-bcmath \ --enable-trans-sid \ --enable-mbstring \ --enable-dbx \ --enable-dba \ --with-openssl=${prefix} \ --with-mhash=${prefix} \ --with-mcrypt=${prefix} \ --with-xsl=${prefix} \ --with-curl=${prefix} \ --with-pcre-regex=${prefix} \ --with-gd \ --with-jpeg-dir=${prefix} \ --with-png-dir=${prefix} \ --enable-gd-native-ttf \ --without-pear \ --with-freetype-dir=${prefix} platform darwin 6 { depends_lib-append \ lib:libdl:dlcompat configure.env-append \ LIBS=-ldl configure.cppflags-append \ "-no-cpp-precomp -DBIND_8_COMPAT" } platform darwin 7 { configure.env-append \ LIBS=-ldl configure.cppflags-append \ "-no-cpp-precomp" } platform darwin 8 { configure.env-append \ CC=/usr/bin/gcc-4.0 CPP=/usr/bin/cpp-4.0 CXX=/usr/bin/g++-4.0 } variant macosx { configure.args-append \ --with-ldap=/usr \ --with-kerberos=/usr \ --with-iodbc=/usr } # Build an Apache 1 module. On Mac OS X, it uses Apple's provided Apache 1 server. # On other platforms, the MacPorts apache port is used. Keep the options here # in sync with those in the relevant part of the post-destroot phase. variant apache conflicts apache2 { if { ! [variant_isset macosx] } { depends_lib-append \ path:${prefix}/sbin/apxs:apache configure.args-append \ --with-apxs=${prefix}/sbin/apxs } else { configure.args-append \ --with-apxs=/usr/sbin/apxs } } # Build an Apache 2 module. Keep the options here in sync with those in the # relevant part of the post-destroot phase. variant apache2 conflicts apache { depends_lib-append \ path:${prefix}/apache2/bin/apxs:apache2 configure.args-append \ --with-apxs2=${prefix}/apache2/bin/apxs } # Build a FastCGI binary. Keep the options here in sync with those in the # relevant part of the post-destroot phase. variant fastcgi { if { ![variant_isset apache] && ![variant_isset apache2] } { configure.args-append \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-memory-limit } } # Add IMAP support. See: # http://www.php.net/imap variant imap { depends_lib-append \ port:cclient configure.cppflags-append \ -I${prefix}/include/c-client configure.args-append \ --with-imap=${prefix} \ --with-imap-ssl=${prefix} } # Add Tidy support. See: # http://www.php.net/tidy variant tidy { depends_lib-append \ port:tidy configure.args-append \ --with-tidy=${prefix} } variant mssql { depends_lib-append \ port:freetds configure.args-append \ --with-mssql=${prefix} } variant snmp conflicts macports_snmp { # This compiles PHP5 with SNMP linked against Apple's included NET-SNMP. configure.args-append \ --with-snmp=/usr } variant macports_snmp conflicts snmp { # This compiles PHP with SNMP linked against MacPorts' NET-SNMP. depends_lib-append \ port:net-snmp configure.args-append \ --with-snmp=${prefix} } variant mysql3 conflicts mysql4 mysql5 { depends_lib-append \ port:mysql configure.args-delete \ --without-mysql configure.args-append \ --with-mysql=${prefix} \ --with-pdo-mysql=${prefix} } variant mysql4 conflicts mysql3 mysql5 { depends_lib-append \ port:mysql4 configure.args-delete \ --without-mysql configure.args-append \ --with-mysql=${prefix} \ --with-pdo-mysql=${prefix} } variant mysql5 conflicts mysql3 mysql4 { depends_lib-append \ port:mysql5 configure.args-delete \ --without-mysql configure.args-append \ --with-mysql=${workpath}/mysql5 \ --with-pdo-mysql=${prefix}/bin/mysql_config5 \ --with-mysql-sock=${prefix}/var/run/mysql5/mysqld.sock \ --with-mysqli=${prefix}/bin/mysql_config5 post-extract { file mkdir "${workpath}/mysql5" file link -symbolic "${workpath}/mysql5/lib" "${prefix}/lib/mysql5" file link -symbolic "${workpath}/mysql5/include" "${prefix}/include/mysql5" } } variant postgresql { depends_lib-append \ port:postgresql82 configure.args-append \ --with-pgsql=${prefix}/lib/postgresql82/bin \ --with-pdo-pgsql=${prefix}/lib/postgresql82/bin } # add sqlite support # note that standard sqlite support uses the built-in sqlite2 libraries # while pdo sqlite support uses the sqlite3 libraries from the sqlite3 port variant sqlite { depends_lib-append \ port:sqlite3 configure.args-delete \ --without-sqlite \ --without-pdo-sqlite configure.args-append \ --with-sqlite \ --with-pdo-sqlite=${prefix} \ --enable-sqlite-utf8 } # add semaphore, shared memory and IPC functions; see http://www.php.net/sem variant ipc { configure.args-append \ --enable-shmop \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg } # add process control functions; see http://www.php.net/pcntl variant pcntl { configure.args-append \ --enable-pcntl } # if no apache/apache2/fastcgi variant is set, we set it (need better default variant management) if { ![variant_isset apache] && ![variant_isset apache2] && ![variant_isset fastcgi] } { if { ! [variant_isset macosx] } { depends_lib-append \ path:${prefix}/sbin/apxs:apache configure.args-append \ --with-apxs=${prefix}/sbin/apxs } else { configure.args-append \ --with-apxs=/usr/sbin/apxs } } variant pear { configure.args-delete \ --without-pear configure.args-append \ --with-pear=${prefix}/lib/php destroot.target-append \ install-pear destroot.args-append \ PHP_PEAR_INSTALL_DIR=${prefix}/lib/php post-destroot { #nuke pear-stuff in ${destroot} system "cd ${destroot} && rm -rf .channels .depdb .depdblock .filemap .lock" system "if \[ -f ${prefix}/lib/php/.depdblock \]; then rm -f ${destroot}${prefix}/lib/php/.depdblock; fi" system "if \[ -f ${prefix}/lib/php/.depdb \]; then rm -f ${destroot}${prefix}/lib/php/.depdb; fi" system "if \[ -f ${prefix}/lib/php/.filemap \]; then rm -f ${destroot}${prefix}/lib/php/.filemap; fi" system "if \[ -f ${prefix}/lib/php/.lock \]; then rm -f ${destroot}${prefix}/lib/php/.lock; fi" system "if \[ -d ${prefix}/lib/php/.channels \]; then rm -rf ${destroot}${prefix}/lib/php/.channels; fi" } } destroot.args \ INSTALL_ROOT=${destroot} destroot.target \ install-cli install-build install-headers install-programs post-destroot { # Copy the Apache 1 module. if { [variant_isset apache] } { xinstall -m 755 -d ${destroot}${prefix}/libexec/apache \ ${destroot}${prefix}/etc/apache/extras-conf xinstall -m 755 ${worksrcpath}/libs/libphp5.so ${destroot}${prefix}/libexec/apache/ xinstall -m 755 -c ${filespath}/mod_php.conf ${destroot}$prefix/etc/apache/extras-conf } # Copy the Apache 2 module. if { [variant_isset apache2] } { xinstall -m 755 -d ${destroot}${prefix}/apache2/modules \ ${destroot}${prefix}/apache2/conf/extras-conf xinstall -m 755 ${worksrcpath}/libs/libphp5.so ${destroot}${prefix}/apache2/modules/ xinstall -m 755 -c ${filespath}/mod_php.conf ${destroot}${prefix}/apache2/conf/extras-conf } if { [variant_isset fastcgi] } { # If we've built an Apache module (any version) then the FastCGI binary # will not have been built, so we need to run through the whole process # again and build just the FastCGI binary. Keep the options here in sync # with the options specified in the apache and apache2 variants. if { [variant_isset apache] } { if { ![variant_isset macosx] } { configure.args-delete \ --with-apxs=${prefix}/sbin/apxs } else { configure.args-delete \ --with-apxs=/usr/sbin/apxs } } if { [variant_isset apache2] } { configure.args-delete \ --with-apxs2=${prefix}/apache2/bin/apxs } # Run the build again to get the FastCGI binary. Keep the options here # in sync with those in the fastcgi variant. if { [variant_isset apache] || [variant_isset apache2] } { configure.args-append \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-memory-limit ui_msg "$UI_PREFIX Configuring ${name} again for fastcgi" command_exec configure ui_msg "$UI_PREFIX Building ${name} again for fastcgi" command_exec build ui_msg "$UI_PREFIX Staging ${name} fastcgi into destroot" } # Copy the FastCGI binary to the bin dir under a new name so it doesn't # conflict with the cli version. xinstall -m 755 ${worksrcpath}/sapi/cgi/php-cgi ${destroot}${prefix}/bin } # file rename ${destroot}${prefix}/etc/pear.conf ${destroot}${prefix}/etc/pear.conf.sample # Copy the default php.ini files. xinstall -m 755 -d ${destroot}${prefix}/etc xinstall -m 755 ${workpath}/${worksrcdir}/php.ini-dist ${destroot}${prefix}/etc/php.ini-dist xinstall -m 755 ${workpath}/${worksrcdir}/php.ini-recommended ${destroot}${prefix}/etc/php.ini-recommended } post-install { ui_msg "\nIf this is your first install, you might want" if { [variant_isset apache] } { ui_msg " * enable php in apache :\n" ui_msg "cd ${prefix}/libexec/apache" ui_msg "${prefix}/apache/bin/apxs -a -e -n \"php5\" libphp5.so\n" ui_msg "* copy ${prefix}/etc/php.ini-dist to ${prefix}/etc/php.ini" } if { [variant_isset apache2] } { ui_msg "cd ${prefix}/apache2/modules" ui_msg "${prefix}/apache2/bin/apxs -a -e -n \"php5\" libphp5.so\n" ui_msg "* copy ${prefix}/etc/php.ini-dist to ${prefix}/etc/php.ini" } # ui_msg "* copy ${prefix}/etc/pear.conf.sample to ${prefix}/etc/pear.conf" } livecheck.check regex livecheck.url ${homepage}downloads.php livecheck.regex get/php-(5\.\[0-9\.\]+)\.tar