# $Id$ PortSystem 1.0 name php5 version 5.2.6 revision 1 categories www lang php maintainers ryandesign jwa homepage http://www.php.net/ distname php-${version} use_bzip2 yes platforms darwin freebsd use_parallel_build yes 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/ \ http://it.php.net/distributions/ \ http://fi.php.net/distributions/ \ http://de.php.net/distributions/ \ http://gr.php.net/distributions/ \ http://fr.php.net/distributions/ \ http://es.php.net/distributions/ \ http://se.php.net/distributions/ checksums \ md5 7380ffecebd95c6edb317ef861229ebd \ sha1 2a2b1afa657a7739a23784c869d57c3e0a7ad6b4 \ rmd160 27f730d4b1ceb1c42ff03618dbfa0dc87a00990b depends_lib \ port:libtool \ port:libxml2 \ port:libxslt \ port:openssl \ port:zlib \ port:bzip2 \ port:libiconv \ port:expat \ port:gettext \ port:tiff \ port:mhash \ port:libmcrypt \ port:curl \ port:pcre \ port:gd2 \ 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} \ --with-bz2=${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 \ --enable-zip \ --with-openssl=${prefix} \ --with-mhash=${prefix} \ --with-mcrypt=${prefix} \ --with-xsl=${prefix} \ --with-curl=${prefix} \ --with-pcre-regex=${prefix} \ --with-gd=${prefix} \ --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 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 description {for Apple Apache} { if { ! [variant_isset macosx] } { depends_lib-append \ path:${prefix}/sbin/apxs:apache configure.args-append \ --with-apxs=${prefix}/sbin/apxs } else { destroot.violate_mtree yes 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 description {for current Apache} { destroot.violate_mtree yes 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 description {add fastcgi binary} { if { ![variant_isset apache] && ![variant_isset apache2] } { configure.args-append \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-memory-limit } } variant gmp description {Add GNU MP functions} { depends_lib-append \ port:gmp configure.args-append \ --with-gmp=${prefix} } variant dbase description {Add dBase file format support} { configure.args-append \ --enable-dbase } # Add IMAP support. See: # http://www.php.net/imap variant imap description {enable operation with IMAP protocol} { depends_lib-append \ port:cclient configure.args-append \ --with-imap=${prefix} \ --with-imap-ssl=${prefix} } variant pspell description {Add pspell spell-checking functions} { depends_lib-append \ port:aspell configure.args-append \ --with-pspell=${prefix} } # Add Tidy support. See: # http://www.php.net/tidy variant tidy description {add Tidy support} { depends_lib-append \ port:tidy configure.args-append \ --with-tidy=${prefix} } variant mssql description {add support for MS-SQL server} { depends_lib-append \ port:freetds configure.args-append \ --with-mssql=${prefix} # See http://bugs.php.net/bug.php?id=44991 post-patch { reinplace "s|tds.h|sybdb.h|g" ${worksrcpath}/configure reinplace "s|libtds.a|libsybdb.a|g" ${worksrcpath}/configure reinplace "s|libtds.so|libsybdb.dylib|g" ${worksrcpath}/configure } } variant snmp conflicts macports_snmp description {use Apple snmp} { # This compiles PHP5 with SNMP linked against Apple's included NET-SNMP. configure.args-append \ --with-snmp=/usr } variant macports_snmp conflicts snmp description {use MacPorts 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 description {build MySQL 3 support} { depends_lib-append \ port:mysql3 configure.args-delete \ --without-mysql configure.args-append \ --with-mysql=${prefix} \ --with-pdo-mysql=${prefix} } variant mysql4 conflicts mysql3 mysql5 description {build MySQL 4 support} { 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 description {build MySQL 5 support} { depends_lib-append \ path:${prefix}/bin/mysql_config5: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 oracle description {Add Oracle oci8 database functions with the Oracle Instant Client} { depends_lib-append \ port:oracle-instantclient configure.args-append \ --with-oci8=instantclient,${prefix}/lib/oracle } variant postgresql82 conflicts postgresql83 description {provide postgresql82 support} { depends_lib-append \ port:postgresql82 configure.args-append \ --with-pgsql=${prefix}/lib/postgresql82/bin \ --with-pdo-pgsql=${prefix}/lib/postgresql82/bin } variant postgresql83 conflicts postgresql82 description {provide postgresql83 support} { depends_lib-append \ port:postgresql83 configure.args-append \ --with-pgsql=${prefix}/lib/postgresql83/bin \ --with-pdo-pgsql=${prefix}/lib/postgresql83/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 description {build sqlite support} { 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 description {build IPC support} { configure.args-append \ --enable-shmop \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg } # add process control functions; see http://www.php.net/pcntl variant pcntl description {provide process control} { 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 description {add pear stuff} { 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" } } variant readline description {Add GNU readline functions} { depends_lib-append \ port:readline configure.args-append \ --with-readline=${prefix} } variant sockets description {Add socket communication functions} { # Note: This extension will be moved to the PECL repository and will no longer be bundled with PHP as of PHP 5.3.0. # This variant should be removed when the port is upgraded to PHP 5.3.0. configure.args-append \ --enable-sockets } variant t1lib description {Add PostScript Type 1 font support with t1lib} { depends_lib-append \ port:t1lib configure.args-append \ --with-t1lib=${prefix} \ } 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" } test.run yes livecheck.check regex livecheck.url ${homepage}downloads.php livecheck.regex get/php-(5\\.\[0-9.\]+)\\.tar