source: trunk/dports/lang/php/Portfile @ 106554

Last change on this file since 106554 was 106554, checked in by cal@…, 7 years ago

icu: update to 51.2, revbump port echo depends:icu

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 39.2 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 106554 2013-05-30 23:03:55Z cal@macports.org $
3
4PortSystem              1.0
5PortGroup               php 1.1
6
7name                    php
8platforms               darwin freebsd
9maintainers             ryandesign
10license                 PHP-3.01
11default master_sites    {php:get/[lindex ${distfiles} 0]/from/this/mirror?dummy=}
12use_parallel_build      yes
13use_bzip2               yes
14livecheck.type          none
15
16description             PHP: Hypertext Preprocessor
17
18long_description        PHP is a widely-used general-purpose scripting \
19                        language that is especially suited for developing \
20                        web sites, but can also be used for command-line \
21                        scripting.
22
23# The list of PHP branches this port provides.
24php.branches            5.3 5.4 5.5
25
26# Fix for users specifying the subport name with the wrong case.
27set subport             [string tolower ${subport}]
28
29# Get rootname from subport.
30regexp {^php\d+-(.+)$} ${subport} -> php.rootname
31
32# Returns true if the subport is a SAPI, false otherwise (extension, stub port).
33proc is_sapi_subport {} {
34    global name subport php.rootname
35    if {${name} == ${subport}} {
36        return no
37    }
38    if {[regexp {^php\d+$} ${subport}]} {
39        return yes
40    }
41    return [expr {-1 != [lsearch -exact [list apache2handler cgi fpm] ${php.rootname}]}]
42}
43
44# Returns true if the subport is an extension, false otherwise (SAPI, stub port).
45proc is_extension_subport {} {
46    global name subport
47    if {${name} == ${subport}} {
48        return no
49    }
50    return [expr {![is_sapi_subport]}]
51}
52
53if {![is_extension_subport]} {
54    categories          lang www
55    homepage            http://www.php.net/
56}
57
58set subport_branch      [php.branch_from_subport]
59
60# Remember to increment revision of ${php}-eaccelerator when updating version of ${php}.
61switch ${subport_branch} {
62    5.3 {
63        version         5.3.25
64        set suhosin_available       yes
65        set suhosin_patch_version   5.3.9-0.9.10
66        set suhosin_patch           suhosin-patch-${suhosin_patch_version}.patch.gz
67        checksums       [suffix ${distname}] \
68                        rmd160  09889369bd711e37ce8d4c79b1ae6513614a2e24 \
69                        sha256  d51cadb2d783177627f272cb575ef3a973c8b6eb1e958d07dba00e81809ebc95 \
70                        ${suhosin_patch} \
71                        rmd160  ce43921fd9b183b154713ecda98294f6c68d5f22 \
72                        sha256  4438caeab0a10c6c94aee9f7eaa703f5799f97d4e0579f43a947bb7314e38317
73    }
74    5.4 {
75        epoch           1
76        version         5.4.15
77        set suhosin_available       no
78        checksums       [suffix ${distname}] \
79                        rmd160  91eedfca8b9cd31da30707d821111a263663b11e \
80                        sha256  2d2285da48ccd2db311b2608fdfafd18b363a9f7e3796d53dd53e5b6752a0136
81    }
82    5.5 {
83        # When this becomes a stable version, remove the overrides for homepage,
84        # master_sites and livecheck, and update php.latest_stable_branch in the
85        # php-1.1 portgroup.
86        epoch           1
87        version         5.5.0RC2
88        homepage        http://qa.php.net/
89        master_sites    http://downloads.php.net/dsp/
90        use_bzip2       no
91        use_xz          yes
92        set suhosin_available       no
93        checksums       [suffix ${distname}] \
94                        rmd160  68b7b31c4d9057f320dea1558853f67c367182aa \
95                        sha256  d9b763305642112251452504a9d3b658d0a67da28de348d6d96bcc10b6c9d4ba
96        livecheck.url   ${homepage}
97        livecheck.regex php-([strsed ${subport_branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*(?:(?:alpha|beta|RC)\\d+|-latest))\\.tar
98    }
99}
100
101# Iterate through branches in reverse order, so that the list of subports in
102# "port info" will show newer versions before older versions.
103set i [llength ${php.branches}]
104while {[incr i -1] >= 0} {
105
106set branch              [lindex ${php.branches} ${i}]
107set major               [lindex [split ${branch} .] 0]
108set php                 php[php.suffix_from_branch ${branch}]
109
110if {[regexp "^${php}" ${subport}]} {
111
112dist_subdir             php${major}
113
114if {[is_sapi_subport]} {
115   
116    depends_build       port:pkgconfig
117   
118    if {${subport} != ${php}} {
119        depends_lib     port:${php}
120    }
121   
122    depends_lib-append  path:bin/gsed:gsed \
123                        port:libiconv \
124                        port:libxml2 \
125                        port:bzip2 \
126                        port:mhash \
127                        port:pcre \
128                        port:zlib
129   
130    # Use -p1 to accommodate the Suhosin patch
131    patch.pre_args      -p1
132    patchfiles          patch-${php}-scripts-php-config.in.diff
133   
134    compiler.blacklist  clang
135   
136    set phpinidir       ${prefix}/etc/${php}
137    set extraphpinidir  ${prefix}/var/db/${php}
138   
139    configure.args      --mandir=${prefix}/share/man \
140                        --infodir=${prefix}/share/info \
141                        --program-suffix=[php.suffix_from_branch ${branch}] \
142                        --includedir=${prefix}/include/${php} \
143                        --libdir=${prefix}/lib/${php} \
144                        --with-config-file-path=${phpinidir} \
145                        --with-config-file-scan-dir=${extraphpinidir} \
146                        --disable-all \
147                        --enable-bcmath \
148                        --enable-ctype \
149                        --enable-dom \
150                        --enable-fileinfo \
151                        --enable-filter \
152                        --enable-hash \
153                        --enable-json \
154                        --enable-libxml \
155                        --enable-pdo \
156                        --enable-phar \
157                        --enable-session \
158                        --enable-simplexml \
159                        --enable-tokenizer \
160                        --enable-xml \
161                        --enable-xmlreader \
162                        --enable-xmlwriter \
163                        --with-bz2=${prefix} \
164                        --with-mhash=${prefix} \
165                        --with-pcre-regex=${prefix} \
166                        --with-libxml-dir=${prefix} \
167                        --with-zlib=${prefix} \
168                        --without-pear \
169                        --disable-cgi \
170                        --disable-cli \
171                        --disable-fpm
172   
173    # ${php}-mysql +mysqlnd needs mysqlnd support compiled into the SAPI
174    configure.env       PHP_MYSQLND_ENABLED=yes
175   
176    configure.universal_args-delete --disable-dependency-tracking
177   
178    test.run            yes
179   
180    destroot.args       INSTALL_ROOT=${destroot}
181   
182    variant debug description {Enable debug support (useful to analyze a PHP-related core dump)} {
183        configure.args-append   --enable-debug
184    }
185   
186    variant suhosin description {Add Suhosin patch} {
187        pre-fetch {
188            if {"darwin" == ${os.platform} && ${os.major} < 9} {
189                ui_error "The suhosin variant requires Mac OS X 10.5 or greater."
190                return -code error "incompatible Mac OS X version"
191            }
192            if {!${suhosin_available}} {
193                ui_error "There is no suhosin patch for PHP ${version} yet. Please check back later."
194            }
195            if {![file exists ${extraphpinidir}/suhosin.ini]} {
196                ui_msg "You may also be interested in the suhosin extension, a related but different piece of software. See the ${php}-suhosin port."
197            }
198            if {!${suhosin_available}} {
199                return -code error "unavailable variant"
200            }
201        }
202        patch_sites-append          http://download.suhosin.org/
203        if {${suhosin_available}} {
204            patchfiles-append       patch-${php}-suhosin-before.diff
205            patchfiles-append       ${suhosin_patch}
206            patchfiles-append       patch-${php}-suhosin-after.diff
207        }
208    }
209   
210    if {${subport} != ${php}} {
211        notes-append "If this is your first install, you need to enable ${subport} in your web server."
212    }
213   
214}
215
216}
217
218### CLI SAPI ###
219
220subport ${php} {
221    PortGroup               select 1.0
222   
223    depends_run             port:php_select
224   
225    select.group            php
226    select.file             ${filespath}/${subport}
227   
228    configure.args-delete   --disable-cli
229    configure.args-append   --enable-cli
230   
231    destroot.target         install-cli install-build install-headers install-programs
232   
233    destroot.keepdirs       ${destroot}${extraphpinidir}
234   
235    post-destroot {
236        # Copy the default php.ini files.
237        xinstall -m 755 -d ${destroot}${phpinidir}
238        xinstall -m 644 -W ${worksrcpath} \
239            php.ini-development \
240            php.ini-production \
241            ${destroot}${phpinidir}
242       
243        # Copy mysqlnd headers.
244        xinstall -d ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
245        eval xinstall -m 644 [glob ${worksrcpath}/ext/mysqlnd/*.h] ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
246    }
247   
248    # Include the readline extension http://www.php.net/readline directly in
249    # the PHP CLI SAPI because until PHP 6 the interactive mode "php -a" won't
250    # work with a separately built readline extension.
251    # https://bugs.php.net/bug.php?id=53878
252    # Users might prefer readline over libedit because only readline supports
253    # readline_list_history() (http://www.php.net/readline-list-history).
254    # On the other hand we want libedit to be the default because its license
255    # is compatible with PHP's which means PHP can be distributable.
256    variant libedit conflicts readline description {Build readline extension using libedit library} {
257        depends_lib-append      port:libedit
258        configure.args-append   --with-libedit=${prefix}
259    }
260    variant readline conflicts libedit description {Build readline extension using readline library} {
261        depends_lib-append      port:readline
262        configure.args-append   --with-readline=${prefix}
263    }
264    if {![variant_isset readline]} {
265        default_variants +libedit
266    }
267   
268    if {[vercmp ${php.branch} ${php.latest_stable_branch}] > 0} {
269        notes-append "${php} @${version}_${revision} is a development preview—do not use it in production!\n\n\n"
270    }
271   
272    if {![file exists ${phpinidir}/php.ini]} {
273        notes-append "
274To customize ${php}, copy\
275${phpinidir}/php.ini-development (if this is a development server) or\
276${phpinidir}/php.ini-production (if this is a production server) to\
277${phpinidir}/php.ini and then make changes.
278"
279    } else {
280        notes-append "
281You may need to update your php.ini for any changes that have been made\
282in this version of ${php}. Compare ${phpinidir}/php.ini with\
283${phpinidir}/php.ini-development (if this is a development server) or\
284${phpinidir}/php.ini-production (if this is a production server).
285"
286    }
287   
288    # Enable livecheck for the two most recent stable PHP branches and the development branch.
289    if {[vercmp ${branch} [lindex ${php.branches} end-2]] >= 0} {
290        livecheck.type      regex
291        default livecheck.url   ${homepage}downloads.php
292        default livecheck.regex {get/php-([strsed ${branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*)\\.tar}
293    }
294}
295
296### Apache 2 handler SAPI ###
297
298subport ${php}-apache2handler {
299    description             ${php} Apache 2 Handler SAPI
300   
301    long_description        ${description}
302   
303    homepage                http://www.php.net/install.unix.apache2
304   
305    depends_lib-append      port:apache2
306   
307    set apxs ${prefix}/apache2/bin/apxs
308    set confdir ${prefix}/apache2/conf
309    set moduledir ${prefix}/apache2/modules
310   
311    pre-configure {
312        # Checking for mod_cgi.so is a convenient way to verify apache2 is using its
313        # +preforkmpm variant. (+eventmpm and +workermpm instead provide mod_cgid.so.)
314        if {![file exists ${moduledir}/mod_cgi.so]} {
315            ui_error "To use ${subport}, apache2 must be installed with the +preforkmpm variant."
316            return -code error "incompatible apache2 installation"
317        }
318    }
319   
320    configure.args-append   --with-apxs2=${apxs}
321   
322    build.target            libs/libphp5.bundle
323   
324    destroot.violate_mtree  yes
325   
326    destroot {
327        xinstall -m 755 -d ${destroot}${moduledir} ${destroot}${confdir}/extra
328        xinstall -m 644 ${worksrcpath}/libs/libphp5.so ${destroot}${moduledir}/mod_${php}.so
329        xinstall -m 644 ${filespath}/mod_php.conf ${destroot}${confdir}/extra/mod_${php}.conf
330    }
331   
332    notes-append "
333
334To enable ${subport}, run:
335
336    cd ${moduledir}
337    sudo ${apxs} -a -e -n php${major} mod_${php}.so
338"
339}
340
341### CGI SAPI ###
342
343subport ${php}-cgi {
344    description             ${php} CGI SAPI
345   
346    long_description        ${description}
347   
348    homepage                http://www.php.net/install.unix.commandline
349   
350    configure.args-delete   --disable-cgi
351    configure.args-append   --enable-cgi
352   
353    if {[vercmp ${branch} 5.4] >= 0} {
354        build.target        cgi
355        destroot.target     install-cgi
356    } else {
357        destroot {
358            xinstall ${worksrcpath}/sapi/cgi/php-cgi ${destroot}${prefix}/bin/php-cgi[php.suffix_from_branch ${branch}]
359        }
360    }
361   
362}
363
364### FPM SAPI ###
365
366subport ${php}-fpm {
367    description             ${php} FPM SAPI
368   
369    long_description        ${description}
370   
371    homepage                http://www.php.net/install.fpm
372   
373    set fpmuser             nobody
374    set fpmgroup            nobody
375   
376    patchfiles-append       patch-${php}-sapi-fpm-php-fpm.conf.in.diff
377   
378    post-patch {
379        reinplace "s|@PHP@|${php}|g" ${worksrcpath}/sapi/fpm/php-fpm.conf.in
380    }
381   
382    configure.args-delete   --disable-fpm
383    configure.args-append   --enable-fpm \
384                            --datadir=${prefix}/share/examples/${php} \
385                            --sysconfdir=${phpinidir} \
386                            --with-fpm-user=${fpmuser} \
387                            --with-fpm-group=${fpmgroup}
388   
389    build.target            fpm
390   
391    destroot.target         install-fpm
392   
393    destroot.keepdirs       ${destroot}${prefix}/var/log/${php} \
394                            ${destroot}${prefix}/var/run/${php}
395   
396    post-destroot {
397        xinstall -d -o ${fpmuser} -g ${fpmgroup} ${destroot}${prefix}/var/log/${php} ${destroot}${prefix}/var/run/${php}
398    }
399   
400    startupitem.create      yes
401    startupitem.executable  ${prefix}/sbin/php-fpm[php.suffix_from_branch ${branch}]
402   
403    if {![file exists ${phpinidir}/php-fpm.conf]} {
404        notes-append "
405
406To use ${subport}, copy\
407${phpinidir}/php-fpm.conf.default to\
408${phpinidir}/php-fpm.conf and make changes if desired.
409"
410    } else {
411        notes-append "
412
413You may need to update your php-fpm.conf for any changes that have been made\
414in this version of ${subport}. Compare ${phpinidir}/php-fpm.conf with\
415${phpinidir}/php-fpm.conf.default.
416"
417    }
418}
419
420### Bundled extensions ###
421
422subport ${php}-calendar {
423    description             a PHP extension for converting between different \
424                            calendar formats
425   
426    long_description        ${description}
427}
428
429subport ${php}-curl {
430    categories-append       net www
431   
432    description             a PHP interface to the curl library, which lets you \
433                            download files from servers with a variety of protocols
434   
435    long_description        ${description}
436   
437    depends_lib-append      port:curl
438   
439    configure.args-append   --with-curl=${prefix}
440}
441
442subport ${php}-dba {
443    categories-append       databases
444   
445    description             a PHP interface for accessing DBM databases such as \
446                            BerkeleyDB
447   
448    long_description        ${description}
449   
450    variant gdbm conflicts qdbm description {Add GDBM support} {
451        depends_lib-append      port:gdbm
452        configure.args-append   --with-gdbm=${prefix}
453    }
454   
455    variant qdbm conflicts gdbm description {Add QDBM support} {
456        depends_lib-append      port:qdbm
457        configure.args-append   --with-qdbm=${prefix}
458    }
459}
460
461subport ${php}-enchant {
462    categories-append       textproc devel
463   
464    description             a PHP interface to enchant
465   
466    long_description        ${name} is ${description}, a common API for many spell libraries.
467   
468    depends_lib-append      port:enchant
469   
470    configure.args-append   --with-enchant=${prefix}
471   
472    post-destroot {
473        set docdir ${prefix}/share/doc/${subport}
474        xinstall -d ${destroot}${docdir}
475        xinstall -m 644 -W ${destroot.dir} CREDITS ${destroot}${docdir}
476       
477        set examplesdir ${prefix}/share/examples/${subport}
478        xinstall -d ${destroot}${examplesdir}
479        xinstall -m 644 ${destroot.dir}/docs/examples/example1.php \
480            ${destroot}${examplesdir}
481    }
482}
483
484subport ${php}-exif {
485    categories-append       graphics
486   
487    description             a PHP interface to the EXIF image metadata functions
488   
489    long_description        ${description}
490}
491
492subport ${php}-ftp {
493    categories-append       net
494   
495    description             a PHP extension for accessing file servers using the \
496                            File Transfer Protocol
497   
498    long_description        ${description}
499   
500    depends_lib-append      port:openssl
501   
502    configure.args-append   --with-openssl-dir=${prefix}
503}
504
505subport ${php}-gd {
506    categories-append       graphics
507   
508    description             a PHP interface to the gd library
509   
510    long_description        ${description}
511   
512    depends_lib-append      port:freetype \
513                            port:jpeg \
514                            port:libpng \
515                            port:zlib
516   
517    configure.args-append   --with-freetype-dir=${prefix} \
518                            --with-jpeg-dir=${prefix} \
519                            --with-png-dir=${prefix} \
520                            --with-zlib-dir=${prefix} \
521                            --enable-gd-native-ttf
522   
523    variant t1lib description {Add PostScript Type 1 font support with t1lib} {
524        depends_lib-append      port:t1lib
525        configure.args-append   --with-t1lib=${prefix}
526    }
527}
528
529subport ${php}-gettext {
530    categories-append       devel
531   
532    description             a PHP interface to the gettext natural language \
533                            support functions
534   
535    long_description        ${description}
536   
537    depends_lib-append      port:gettext
538   
539    configure.args-append   --with-gettext=${prefix}
540}
541
542subport ${php}-gmp {
543    categories-append       devel math
544   
545    description             a PHP interface to GMP, the GNU multiprocessing \
546                            library through which you can work with \
547                            arbitrary-length integers
548   
549    long_description        ${description}
550   
551    depends_lib-append      port:gmp
552   
553    configure.args-append   --with-gmp=${prefix}
554}
555
556subport ${php}-iconv {
557    categories-append       textproc
558   
559    description             a PHP interface to the libiconv character encoding \
560                            conversion functions
561   
562    long_description        ${description}
563   
564    depends_lib-append      port:libiconv
565   
566    configure.args-append   --with-iconv=${prefix}
567}
568
569subport ${php}-imap {
570    categories-append       mail
571   
572    description             a PHP interface to the IMAP protocol
573   
574    long_description        ${description}
575   
576    depends_build-append    port:cclient
577   
578    depends_lib-append      port:kerberos5 \
579                            port:libcomerr
580   
581    configure.args-append   --with-imap=${prefix} \
582                            --with-imap-ssl=${prefix} \
583                            --with-kerberos=${prefix}
584}
585
586subport ${php}-intl {
587    revision                1
588   
589    categories-append       devel
590   
591    description             internationalization extension for PHP
592   
593    long_description        Internationalization extension implements ICU \
594                            library functionality in PHP.
595   
596    depends_lib-append      port:icu
597}
598
599subport ${php}-ldap {
600    categories-append       databases
601   
602    description             a PHP interface to LDAP
603   
604    long_description        ${subport} is ${description}, the Lightweight Directory \
605                            Access Protocol, which is used to access Directory \
606                            Servers.
607   
608    depends_lib-append      port:openldap \
609                            port:cyrus-sasl2
610   
611    configure.args-append   --with-ldap=${prefix} \
612                            --with-ldap-sasl=${prefix}
613}
614
615subport ${php}-mbstring {
616    categories-append       textproc
617   
618    description             a PHP extension for manipulating strings in multibyte \
619                            encodings
620   
621    long_description        ${description}
622}
623
624subport ${php}-mcrypt {
625    categories-append       security
626   
627    description             a PHP interface to the mcrypt library, which offers \
628                            a wide variety of algorithms
629   
630    long_description        ${description}
631   
632    depends_lib-append      port:libmcrypt
633   
634    # The mcrypt extension may be using libtool unnecessarily; monitor
635    # https://bugs.php.net/bug.php?id=54500
636    depends_lib-append      port:libtool
637   
638    configure.args-append   --with-mcrypt=${prefix}
639}
640
641subport ${php}-mssql {
642    php.extensions          mssql pdo_dblib
643   
644    categories-append       databases
645   
646    description             a PHP interface to MSSQL using FreeTDS, including \
647                            the mssql and pdo_dblib extensions
648   
649    long_description        ${description}
650   
651    depends_lib-append      port:freetds
652   
653    configure.args-append   --with-mssql=${prefix} \
654                            --with-pdo-dblib=${prefix}
655}
656
657subport ${php}-mysql {
658    php.extensions          mysql mysqli pdo_mysql
659   
660    categories-append       databases
661   
662    description             a PHP interface to MySQL databases, including the \
663                            mysql, mysqli and pdo_mysql extensions
664   
665    long_description        ${description}
666   
667    depends_lib-append      port:zlib
668   
669    configure.args-append   --with-zlib-dir=${prefix}
670   
671    variant mysqlnd conflicts mysql4 mysql5 mysql51 mysql55 mariadb percona description {Use MySQL Native Driver} {
672        configure.args-append   --with-mysql=mysqlnd \
673                                --with-mysqli=mysqlnd \
674                                --with-pdo-mysql=mysqlnd
675       
676        configure.cppflags-append   -I${worksrcpath}
677       
678        set phpini ${prefix}/etc/${php}/php.ini
679        notes "
680To use mysqlnd with a local MySQL server, edit ${phpini} and set\
681mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket\
682to the path to your MySQL server's socket file.
683
684For mysql5, use ${prefix}/var/run/mysql5/mysqld.sock
685For mysql51, use ${prefix}/var/run/mysql51/mysqld.sock
686For mysql55, use ${prefix}/var/run/mysql55/mysqld.sock
687For mariadb, use ${prefix}/var/run/mariadb/mysqld.sock
688For percona, use ${prefix}/var/run/percona/mysqld.sock
689"
690    }
691   
692    variant mysql4 conflicts mysqlnd mysql5 mysql51 mysql55 mariadb percona description {Use MySQL 4 libraries} {
693        depends_lib-append      port:mysql4
694       
695        configure.args-append   --with-mysql=${prefix} \
696                                --with-pdo-mysql=${prefix}
697    }
698   
699    variant mysql5 conflicts mysqlnd mysql4 mysql51 mysql55 mariadb percona description {Use MySQL 5 libraries} {
700        depends_lib-append      path:bin/mysql_config5:mysql5
701       
702        post-extract {
703            file mkdir ${workpath}/mysql5
704            file link -symbolic ${workpath}/mysql5/lib ${prefix}/lib/mysql5
705            file link -symbolic ${workpath}/mysql5/include ${prefix}/include/mysql5
706        }
707       
708        configure.args-append   --with-mysql=${workpath}/mysql5 \
709                                --with-mysqli=${prefix}/bin/mysql_config5 \
710                                --with-pdo-mysql=${prefix}/bin/mysql_config5 \
711                                --with-mysql-sock=${prefix}/var/run/mysql5/mysqld.sock
712    }
713   
714    variant mysql51 conflicts mysqlnd mysql4 mysql5 mysql55 mariadb percona description {Use MySQL 5.1 libraries} {
715        depends_lib-append      port:mysql51
716       
717        post-extract {
718            file mkdir ${workpath}/mysql51
719            file link -symbolic ${workpath}/mysql51/lib ${prefix}/lib/mysql51
720            file link -symbolic ${workpath}/mysql51/include ${prefix}/include/mysql51
721        }
722       
723        configure.args-append   --with-mysql=${workpath}/mysql51 \
724                                --with-mysqli=${prefix}/lib/mysql51/bin/mysql_config \
725                                --with-pdo-mysql=${prefix}/lib/mysql51/bin/mysql_config \
726                                --with-mysql-sock=${prefix}/var/run/mysql51/mysqld.sock
727    }
728   
729    variant mysql55 conflicts mysqlnd mysql4 mysql5 mysql51 mariadb percona description {Use MySQL 5.5 libraries} {
730        depends_lib-append      port:mysql55
731       
732        post-extract {
733            file mkdir ${workpath}/mysql55
734            file link -symbolic ${workpath}/mysql55/lib ${prefix}/lib/mysql55
735            file link -symbolic ${workpath}/mysql55/include ${prefix}/include/mysql55
736        }
737       
738        configure.args-append   --with-mysql=${workpath}/mysql55 \
739                                --with-mysqli=${prefix}/lib/mysql55/bin/mysql_config \
740                                --with-pdo-mysql=${prefix}/lib/mysql55/bin/mysql_config \
741                                --with-mysql-sock=${prefix}/var/run/mysql55/mysqld.sock
742    }
743   
744    variant mariadb conflicts mysqlnd mysql4 mysql5 mysql51 mysql55 percona description {Use MariaDB libraries} {
745        depends_lib-append      port:mariadb
746       
747        post-extract {
748            file mkdir ${workpath}/mariadb
749            file link -symbolic ${workpath}/mariadb/lib ${prefix}/lib/mariadb
750            file link -symbolic ${workpath}/mariadb/include ${prefix}/include/mariadb
751        }
752       
753        configure.args-append   --with-mysql=${workpath}/mariadb \
754                                --with-mysqli=${prefix}/lib/mariadb/bin/mysql_config \
755                                --with-pdo-mysql=${prefix}/lib/mariadb/bin/mysql_config \
756                                --with-mysql-sock=${prefix}/var/run/mariadb/mysqld.sock
757    }
758   
759    variant percona conflicts mysqlnd mysql4 mysql5 mysql51 mysql55 mariadb description {Use Percona libraries} {
760        depends_lib-append      port:percona
761       
762        post-extract {
763            file mkdir ${workpath}/percona
764            file link -symbolic ${workpath}/percona/lib ${prefix}/lib/percona
765            file link -symbolic ${workpath}/percona/include ${prefix}/include/percona
766        }
767       
768        configure.args-append   --with-mysql=${workpath}/percona \
769                                --with-mysqli=${prefix}/lib/percona/bin/mysql_config \
770                                --with-pdo-mysql=${prefix}/lib/percona/bin/mysql_config \
771                                --with-mysql-sock=${prefix}/var/run/percona/mysqld.sock
772    }
773   
774    if {![variant_isset mysql4] && ![variant_isset mysql5] && ![variant_isset mysql51] && ![variant_isset mysql55] && ![variant_isset mariadb] && ![variant_isset percona]} {
775        default_variants +mysqlnd
776    }
777}
778
779subport ${php}-odbc {
780    php.extensions          odbc pdo_odbc
781   
782    categories-append       databases
783   
784    description             a PHP interface for accessing databases via Open \
785                            DataBase Connectivity (ODBC)
786   
787    long_description        ${description}
788   
789    variant iodbc conflicts unixodbc description {Use iODBC} {
790        depends_lib-append      port:libiodbc
791       
792        patchfiles-append       patch-${php}-iODBC.diff
793       
794        configure.args-append   --with-iODBC=${prefix} \
795                                --with-pdo-odbc=iODBC,${prefix}
796    }
797   
798    variant unixodbc conflicts iodbc description {Use unixODBC} {
799        depends_lib-append      port:unixODBC
800       
801        patchfiles-append       patch-${php}-unixODBC.diff
802       
803        configure.args-append   --with-unixODBC=${prefix} \
804                                --with-pdo-odbc=unixODBC,${prefix}
805    }
806   
807    if {![variant_isset iodbc] && ![variant_isset unixodbc]} {
808        default_variants +unixodbc
809    }
810}
811
812subport ${php}-openssl {
813    categories-append       devel security
814   
815    description             a PHP interface to OpenSSL signature-generation \
816                            and -verification and data-encryption and \
817                            -decryption functions
818   
819    long_description        ${description}
820   
821    depends_lib-append      port:kerberos5 \
822                            port:libcomerr \
823                            port:openssl
824   
825    post-extract {
826        move ${php.build_dirs}/config0.m4 ${php.build_dirs}/config.m4
827    }
828   
829    configure.args-append   --with-kerberos=${prefix} \
830                            --with-openssl=${prefix}
831}
832
833subport ${php}-oracle {
834    php.extensions          oci8 pdo_oci
835   
836    categories-append       databases
837   
838    description             a PHP interface to Oracle, including the oci8 and \
839                            pdo_oci extensions
840   
841    long_description        ${description}
842   
843    depends_lib-append      port:oracle-instantclient
844   
845    set lib_dir             ${prefix}/lib/oracle
846    pre-configure {
847        regexp {\.dylib\.(.+)$} [glob -directory ${lib_dir} libclntsh.dylib.*] -> library_version
848        configure.args-append \
849                            --with-oci8=instantclient,${lib_dir} \
850                            --with-pdo-oci=instantclient,${lib_dir},${library_version}
851    }
852}
853
854subport ${php}-pcntl {
855    categories-append       sysutils
856   
857    description             a PHP interface to Unix-style process creation, \
858                            program execution, signal handling and process \
859                            termination functions
860   
861    long_description        ${description}
862   
863    notes "
864${subport} should not be enabled within a web server environment.\
865Unexpected results may occur if any process control functions are used within\
866a web server environment.
867"
868}
869
870subport ${php}-posix {
871    categories-append       sysutils
872   
873    description             a PHP interface to additional POSIX functions
874   
875    long_description        a PHP interface to those functions defined in the \
876                            IEEE 1003.1 (POSIX.1) standards document which are \
877                            not accessible through other means
878}
879
880subport ${php}-postgresql {
881    php.extensions          pgsql pdo_pgsql
882   
883    categories-append       databases
884   
885    homepage                http://www.php.net/pgsql
886   
887    description             a PHP interface to PostgreSQL, including \
888                            the pgsql and pdo_pgsql extensions
889   
890    long_description        ${description}
891   
892    variant postgresql82 conflicts postgresql83 postgresql84 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.2 libraries} {
893        depends_lib-append      port:postgresql82
894       
895        configure.args-append   --with-pgsql=${prefix}/lib/postgresql82/bin \
896                                --with-pdo-pgsql=${prefix}/lib/postgresql82/bin
897    }
898   
899    variant postgresql83 conflicts postgresql82 postgresql84 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.3 libraries} {
900        depends_lib-append      port:postgresql83
901       
902        configure.args-append   --with-pgsql=${prefix}/lib/postgresql83/bin \
903                                --with-pdo-pgsql=${prefix}/lib/postgresql83/bin
904    }
905   
906    variant postgresql84 conflicts postgresql82 postgresql83 postgresql90 postgresql91 postgresql92 description {Use PostgreSQL 8.4 libraries} {
907        depends_lib-append      port:postgresql84
908       
909        configure.args-append   --with-pgsql=${prefix}/lib/postgresql84/bin \
910                                --with-pdo-pgsql=${prefix}/lib/postgresql84/bin
911    }
912   
913    variant postgresql90 conflicts postgresql82 postgresql83 postgresql84 postgresql91 postgresql92 description {Use PostgreSQL 9.0 libraries} {
914        depends_lib-append      port:postgresql90
915       
916        configure.args-append   --with-pgsql=${prefix}/lib/postgresql90/bin \
917                                --with-pdo-pgsql=${prefix}/lib/postgresql90/bin
918    }
919   
920    variant postgresql91 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql92 description {Use PostgreSQL 9.1 libraries} {
921        depends_lib-append      port:postgresql91
922       
923        configure.args-append   --with-pgsql=${prefix}/lib/postgresql91/bin \
924                                --with-pdo-pgsql=${prefix}/lib/postgresql91/bin
925    }
926   
927    variant postgresql92 conflicts postgresql82 postgresql83 postgresql84 postgresql90 postgresql91 description {Use PostgreSQL 9.2 libraries} {
928        depends_lib-append      port:postgresql92
929       
930        configure.args-append   --with-pgsql=${prefix}/lib/postgresql92/bin \
931                                --with-pdo-pgsql=${prefix}/lib/postgresql92/bin
932    }
933   
934    if {![variant_isset postgresql82] && ![variant_isset postgresql83] && ![variant_isset postgresql84] && ![variant_isset postgresql90] && ![variant_isset postgresql91] && ![variant_isset postgresql92]} {
935        default_variants +postgresql92
936    }
937}
938
939subport ${php}-pspell {
940    categories-append       textproc
941   
942    description             a PHP interface to the aspell library, which lets you \
943                            check spelling and offer spelling suggestions
944   
945    long_description        ${description}
946   
947    depends_lib-append      port:aspell
948   
949    configure.args-append   --with-pspell=${prefix}
950}
951
952subport ${php}-snmp {
953    categories-append       sysutils
954   
955    description             a PHP interface to the Simple Network Management \
956                            Protocol (SNMP)
957   
958    long_description        ${description}
959   
960    depends_lib-append      port:net-snmp
961   
962    configure.args-append   --with-snmp=${prefix}
963}
964
965subport ${php}-soap {
966    categories-append       net
967   
968    description             a PHP extension for writing SOAP clients and servers
969   
970    long_description        ${description}
971   
972    depends_lib-append      port:libxml2
973   
974    configure.args-append   --with-libxml-dir=${prefix}
975}
976
977subport ${php}-sockets {
978    categories-append       net
979   
980    description             a PHP interface to BSD socket communication \
981                            functions
982   
983    long_description        ${description}
984}
985
986subport ${php}-sqlite {
987    php.extensions          sqlite sqlite3 pdo_sqlite
988   
989    categories-append       databases
990   
991    description             a PHP interface to SQLite, including the sqlite, sqlite3 \
992                            and pdo_sqlite extensions
993   
994    if {[vercmp ${branch} 5.4] >= 0} {
995        php.extensions-delete sqlite
996        description-delete "sqlite,"
997    }
998   
999    long_description        ${description}
1000   
1001    depends_lib-append      port:sqlite3
1002   
1003    post-extract {
1004        move ${worksrcpath}/ext/sqlite3/config0.m4 ${worksrcpath}/ext/sqlite3/config.m4
1005    }
1006   
1007    configure.args-append   --with-sqlite3=${prefix} \
1008                            --with-pdo-sqlite=${prefix} \
1009                            --enable-sqlite-utf8
1010}
1011
1012subport ${php}-tidy {
1013    categories-append       www
1014   
1015    description             a PHP interface to tidy, the HTML cleaning and \
1016                            repair utility
1017   
1018    long_description        ${description}
1019   
1020    depends_lib-append      port:tidy
1021   
1022    configure.args-append   --with-tidy=${prefix}
1023}
1024
1025subport ${php}-wddx {
1026    categories-append       textproc
1027   
1028    description             a PHP interface to Web Distributed Data Exchange
1029   
1030    long_description        ${description}
1031   
1032    depends_build-append    port:expat \
1033                            port:libxml2
1034   
1035    configure.args-append   --with-libexpat-dir=${prefix} \
1036                            --with-libxml-dir=${prefix}
1037}
1038
1039subport ${php}-xmlrpc {
1040    categories-append       textproc
1041   
1042    description             a PHP extension for writing XML-RPC clients and servers
1043   
1044    long_description        ${description}
1045   
1046    depends_build-append    port:libiconv \
1047                            port:libxml2
1048   
1049    depends_lib-append      port:expat
1050   
1051    configure.args-append   --with-iconv-dir=${prefix} \
1052                            --with-libexpat-dir=${prefix} \
1053                            --with-libxml-dir=${prefix}
1054   
1055    pre-configure {
1056        configure.cppflags-append [exec ${prefix}/bin/xml2-config --cflags]
1057    }
1058}
1059
1060subport ${php}-xsl {
1061    categories-append       textproc
1062   
1063    description             a PHP interface to libxslt, which implements the XSL \
1064                            standard and lets you perform XSL transformations
1065   
1066    long_description        ${description}
1067   
1068    depends_lib-append      port:libxslt
1069   
1070    configure.args-append   --with-xsl=${prefix}
1071   
1072    configure.cppflags-append   -I${prefix}/include/${php}/php/ext/dom
1073}
1074
1075subport ${php}-zip {
1076    categories-append       archivers
1077   
1078    description             PHP zip functions
1079   
1080    long_description        ${description}
1081   
1082    depends_build-append    port:pcre
1083   
1084    depends_lib-append      port:zlib
1085}
1086
1087}
1088
1089# These variables are not only required by the subsequent code but also by
1090# preceding code in phase blocks.
1091set branch              ${subport_branch}
1092set php                 php[php.suffix_from_branch ${branch}]
1093
1094if {${name} == ${subport}} {
1095    # Set up the stub port.
1096    version             ${branch}
1097    revision            1
1098    supported_archs     noarch
1099    distfiles
1100    depends_run         port:${php}
1101    use_configure       no
1102    build {}
1103    destroot {
1104        xinstall -d -m 755 ${destroot}${prefix}/share/doc/${subport}
1105        system "echo \"${name} is a stub port\" > ${destroot}${prefix}/share/doc/${subport}/README"
1106    }
1107} else {
1108    # Set an explicit distname so the default from the php portgroup doesn't get used.
1109    distname            ${name}-${version}
1110}
1111
1112# Set up the php portgroup, for extension subports.
1113if {[is_extension_subport]} {
1114    default php.extensions ${php.rootname}
1115    default homepage    http://www.php.net/${php.rootname}
1116   
1117    php.build_dirs
1118    foreach extension ${php.extensions} {
1119        # Speed up extraction by extracting only the modules we're going to be building.
1120        extract.post_args-append ${worksrcdir}/ext/${extension}
1121       
1122        # Run phpize, configure, build and destroot in each extension's directory.
1123        php.build_dirs-append ${worksrcpath}/ext/${extension}
1124    }
1125   
1126    post-extract {
1127        # The PDO extensions need the PDO headers which are installed by the ${php} port.
1128        foreach extension ${php.extensions} {
1129            if {[regexp {^pdo_} ${extension}]} {
1130                file mkdir ${worksrcpath}/ext/${extension}/ext
1131                ln -s ${prefix}/include/${php}/php/ext/pdo ${worksrcpath}/ext/${extension}/ext
1132            }
1133        }
1134    }
1135   
1136    pre-configure {
1137        set php_version [exec ${php.config} --version 2>/dev/null]
1138        if {${version} != ${php_version}} {
1139            ui_error "${subport} @${version} requires ${php} @${version} but you have ${php} @${php_version}."
1140            return -code error "incompatible ${php} installation"
1141        }
1142    }
1143   
1144    destroot.target     install-modules install-headers
1145   
1146    php.add_port_code
1147}
Note: See TracBrowser for help on using the repository browser.