You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
2589 lines
86 KiB
Tcl
2589 lines
86 KiB
Tcl
# -*- 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
|
|
|
|
PortSystem 1.0
|
|
PortGroup php 1.1
|
|
PortGroup openssl 1.0
|
|
|
|
# Disable by default adding openssl support.
|
|
# Specific sub-ports below enable as required.
|
|
openssl.branch no_version
|
|
|
|
name php
|
|
platforms darwin freebsd
|
|
maintainers {mathiesen.info:macintosh @BjarneDMat} {ryandesign @ryandesign}
|
|
license PHP-3.01
|
|
master_sites https://www.php.net/distributions/
|
|
use_parallel_build yes
|
|
livecheck.type none
|
|
|
|
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.
|
|
|
|
categories lang php
|
|
|
|
# The list of PHP branches this port provides.
|
|
php.branches 5.2 5.3 5.4 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 8.4 8.5
|
|
|
|
# Fix for users specifying the subport name with the wrong case.
|
|
set subport [string tolower ${subport}]
|
|
|
|
# Get rootname from subport.
|
|
regexp {^php\d+-(.+)$} ${subport} -> php.rootname
|
|
|
|
# Returns true if the subport is a SAPI, false otherwise (extension, stub port).
|
|
proc is_sapi_subport {} {
|
|
global name subport php.rootname
|
|
if {${name} eq ${subport}} {
|
|
return no
|
|
}
|
|
if {[regexp {^php\d+$} ${subport}]} {
|
|
return yes
|
|
}
|
|
return [expr {-1 != [lsearch -exact [list apache2handler cgi fpm] ${php.rootname}]}]
|
|
}
|
|
|
|
# Returns true if the subport is an extension, false otherwise (SAPI, stub port).
|
|
proc is_extension_subport {} {
|
|
global name subport
|
|
if {${name} eq ${subport}} {
|
|
return no
|
|
}
|
|
return [expr {![is_sapi_subport]}]
|
|
}
|
|
|
|
if {![is_extension_subport]} {
|
|
categories lang www
|
|
homepage https://www.php.net
|
|
}
|
|
|
|
set subport_branch [php.branch_from_subport]
|
|
|
|
# Remember to increment revision of ${php}-eaccelerator when updating version of ${php}.
|
|
switch ${subport_branch} {
|
|
5.2 {
|
|
version 5.2.17
|
|
master_sites https://museum.php.net/php5/
|
|
use_bzip2 yes
|
|
set suhosin_available yes
|
|
set suhosin_patch_version 5.2.16-0.9.7
|
|
set suhosin_patch suhosin-patch-${suhosin_patch_version}.patch.gz
|
|
checksums ${distname}${extract.suffix} \
|
|
md5 b27947f3045220faf16e4d9158cbfe13 \
|
|
rmd160 567fa8d718b93fb83a89494c83a8bec224ac99e9 \
|
|
sha256 e81beb13ec242ab700e56f366e9da52fd6cf18961d155b23304ca870e53f116c \
|
|
size 9092312 \
|
|
${suhosin_patch} \
|
|
rmd160 b28b70faf136b3e04c5b483da0f4c2279378f43a \
|
|
sha256 aae115a318d80b3f32cedf876e7a8e4b932febb1b0c743c0b398003ebe122f91 \
|
|
size 23069
|
|
}
|
|
5.3 {
|
|
version 5.3.29
|
|
use_bzip2 yes
|
|
set suhosin_available yes
|
|
set suhosin_patch_version 5.3.9-0.9.10
|
|
set suhosin_patch suhosin-patch-${suhosin_patch_version}.patch.gz
|
|
checksums ${distname}${extract.suffix} \
|
|
md5 9469e240cbe6ac865aeaec89b253dd30 \
|
|
rmd160 e57beb4fdda41bca81b5856161bc97f3c5e3e9da \
|
|
sha256 c4e1cf6972b2a9c7f2777a18497d83bf713cdbecabb65d3ff62ba441aebb0091 \
|
|
size 11396771 \
|
|
${suhosin_patch} \
|
|
rmd160 ce43921fd9b183b154713ecda98294f6c68d5f22 \
|
|
sha256 4438caeab0a10c6c94aee9f7eaa703f5799f97d4e0579f43a947bb7314e38317 \
|
|
size 40967
|
|
}
|
|
5.4 {
|
|
epoch 1
|
|
version 5.4.45
|
|
use_bzip2 yes
|
|
checksums rmd160 352a0ea8fb75a447301c1434609ac0e4b96acc0c \
|
|
sha256 4e0d28b1554c95cfaea6fa2b64aac85433f158ce72bb571bcd5574f98f4c6582 \
|
|
size 12703324
|
|
}
|
|
5.5 {
|
|
epoch 2
|
|
version 5.5.38
|
|
use_xz yes
|
|
checksums rmd160 08d200f9458f37ffd69a2daf30436c5f25fc948f \
|
|
sha256 cb527c44b48343c8557fe2446464ff1d4695155a95601083e5d1f175df95580f \
|
|
size 11077780
|
|
}
|
|
5.6 {
|
|
epoch 2
|
|
version 5.6.40
|
|
use_xz yes
|
|
checksums rmd160 43b648cf24cdea59765a1d12c247f83f60af283f \
|
|
sha256 1369a51eee3995d7fbd1c5342e5cc917760e276d561595b6052b21ace2656d1c \
|
|
size 12472236
|
|
}
|
|
7.0 {
|
|
epoch 2
|
|
version 7.0.33
|
|
use_xz yes
|
|
checksums rmd160 621c2459c182de0a071f591eec45e4a3c32d8bdd \
|
|
sha256 ab8c5be6e32b1f8d032909dedaaaa4bbb1a209e519abb01a52ce3914f9a13d96 \
|
|
size 12033040
|
|
}
|
|
7.1 {
|
|
epoch 2
|
|
version 7.1.33
|
|
use_xz yes
|
|
checksums rmd160 378d66957d3488ce92c74745c4bc799b7b04105a \
|
|
sha256 bd7c0a9bd5433289ee01fd440af3715309faf583f75832b64fe169c100d52968 \
|
|
size 12370228
|
|
}
|
|
7.2 {
|
|
epoch 2
|
|
version 7.2.34
|
|
use_xz yes
|
|
checksums rmd160 52a993c201241e2dce521bad225f07330505b2cc \
|
|
sha256 409e11bc6a2c18707dfc44bc61c820ddfd81e17481470f3405ee7822d8379903 \
|
|
size 12309432
|
|
}
|
|
7.3 {
|
|
epoch 2
|
|
version 7.3.33
|
|
use_xz yes
|
|
checksums rmd160 b35e975ea04ab1a86a95d17a4f8048d295ab1475 \
|
|
sha256 166eaccde933381da9516a2b70ad0f447d7cec4b603d07b9a916032b215b90cc \
|
|
size 12143820
|
|
}
|
|
7.4 {
|
|
epoch 2
|
|
version 7.4.33
|
|
use_xz yes
|
|
checksums rmd160 60d30e6ae3e711d1cdc2623a9ca4354018194299 \
|
|
sha256 924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927 \
|
|
size 10420144
|
|
}
|
|
8.0 {
|
|
epoch 2
|
|
version 8.0.30
|
|
use_xz yes
|
|
checksums rmd160 ef96103dc367a7ffbac94eb239fde4939ee83ddd \
|
|
sha256 216ab305737a5d392107112d618a755dc5df42058226f1670e9db90e77d777d9 \
|
|
size 10821076
|
|
}
|
|
8.1 {
|
|
epoch 2
|
|
version 8.1.34
|
|
use_xz yes
|
|
checksums rmd160 74139cb0606ee200dd3912284adcb103d7d166dd \
|
|
sha256 ffa9e0982e82eeaea848f57687b425ed173aa278fe563001310ae2638db5c251 \
|
|
size 11903896
|
|
}
|
|
8.2 {
|
|
epoch 2
|
|
version 8.2.32
|
|
use_xz yes
|
|
checksums rmd160 5926548f71926d4ab37dd21cac9e07b2cdcefa2f \
|
|
sha256 e02aa173c236c12791696254d607da680e6d5516f8f5c2339642de7c4f944bd2 \
|
|
size 12162364
|
|
}
|
|
8.3 {
|
|
epoch 2
|
|
version 8.3.32
|
|
use_xz yes
|
|
checksums rmd160 83608a2cc2bf333d77b56e669ed6661dfe3cc512 \
|
|
sha256 8698ec1f9402fa5e5e872ae3d0916b62f5f27503c1fbfc9cc3521e113355ea92 \
|
|
size 12606844
|
|
}
|
|
8.4 {
|
|
epoch 1
|
|
version 8.4.23
|
|
use_xz yes
|
|
checksums rmd160 7b25cac54279dc52ed101714a350318f79bdfa3b \
|
|
sha256 1ab9f52008414e43bb2427ffa288eff2a4de39e1a830f957e800ba368d887a72 \
|
|
size 13741236
|
|
}
|
|
8.5 {
|
|
epoch 2
|
|
version 8.5.8
|
|
use_xz yes
|
|
checksums rmd160 07c9a6946e95e9b7e3f7f509514f716b1a72d84e \
|
|
sha256 58910198d19e873048fe87cdfe16bc790025417ede3d1651bfa1c4b533d573f2 \
|
|
size 14410156
|
|
}
|
|
}
|
|
#### RCstart template
|
|
# RCbranch {
|
|
# # When this becomes a stable version, remove the overrides for homepage,
|
|
# # master_sites and livecheck, and update php.latest_stable_branch in the
|
|
# # php-1.1 portgroup.
|
|
# epoch 0
|
|
# version RCversion
|
|
# homepage https://www.php.net/release-candidates.php
|
|
# master_sites https://downloads.php.net/~saki/
|
|
# use_xz yes
|
|
# checksums rmd160 d78af388868bc0a1ca36955971c21ad77da81cf4 \
|
|
# sha256 5c42173cbde7d0add8249c2e8a0c19ae271f41d8c47d67d72bdf91a88dcc7e4b \
|
|
# size 13569728
|
|
# livecheck.url ${homepage}
|
|
# livecheck.regex php-([strsed ${subport_branch} {g/\\./\\./}](?:\\.\[0-9.\]+)*(?:(?:alpha|beta|RC)\\d+|-latest))\\.tar
|
|
# }
|
|
#### RCend template
|
|
|
|
# https://www.php.net/eol.php
|
|
set php.oldest_supported_branch 8.2
|
|
|
|
# Iterate through branches in reverse order, so that the list of subports in
|
|
# "port info" will show newer versions before older versions.
|
|
set i [llength ${php.branches}]
|
|
while {[incr i -1] >= 0} {
|
|
|
|
set branch [lindex ${php.branches} ${i}]
|
|
set major [lindex [split ${branch} .] 0]
|
|
set php php[php.suffix_from_branch ${branch}]
|
|
|
|
if {[regexp "^${php}" ${subport}]} {
|
|
|
|
if {${major} > 5} {
|
|
dist_subdir ${php}
|
|
} else {
|
|
dist_subdir php${major}
|
|
}
|
|
|
|
configure.checks.implicit_function_declaration.whitelist-append strchr
|
|
|
|
if {[vercmp ${branch} <= 8.1]} {
|
|
configure.cflags-append -std=gnu99
|
|
compiler.c_standard 1999
|
|
}
|
|
|
|
if {[is_sapi_subport]} {
|
|
|
|
if {${php.branch} in ${phpknownfails}} {
|
|
known_fail yes
|
|
}
|
|
|
|
platform darwin {
|
|
if {[vercmp ${branch} < 7.0] && [vercmp ${xcodeversion} >= 12.0]} {
|
|
# Implicit function declarations. Need to backport upstream fixes from php73+.
|
|
# https://bugs.php.net/80176
|
|
# https://trac.macports.org/ticket/60988
|
|
known_fail yes
|
|
pre-fetch {
|
|
ui_error "${subport} @${version} cannot currently be compiled with Xcode 12 or later"
|
|
return -code error "incompatible Xcode version"
|
|
}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 8.0]} {
|
|
PortGroup legacysupport 1.1
|
|
# clock_gettime
|
|
legacysupport.newest_darwin_requires_legacy 15
|
|
}
|
|
|
|
depends_build path:bin/pkg-config:pkgconfig
|
|
|
|
if {${subport} ne ${php}} {
|
|
depends_lib port:${php}
|
|
}
|
|
|
|
depends_lib-append path:bin/gsed:gsed \
|
|
port:libiconv \
|
|
port:libxml2 \
|
|
port:bzip2 \
|
|
port:mhash \
|
|
port:zlib
|
|
|
|
if {[vercmp ${branch} < 7.3]} {
|
|
depends_lib-append port:pcre
|
|
} else {
|
|
depends_lib-append port:pcre2
|
|
}
|
|
|
|
# Use -p1 to accommodate the Suhosin patch
|
|
patch.pre_args-replace -p0 -p1
|
|
patchfiles-append patch-${php}-scripts-php-config.in.diff
|
|
|
|
if {[vercmp ${branch} >= 8.2]} {
|
|
patchfiles-append \
|
|
patch-${php}-atomic.diff
|
|
}
|
|
if {[vercmp ${branch} >= 8.0]} {
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
patchfiles-append \
|
|
patch-${php}-conditional-Wno-implicit-fallthrough.diff
|
|
}
|
|
use_autoreconf yes
|
|
autoreconf.cmd ./buildconf
|
|
autoreconf.args --debug --force
|
|
autoreconf.env "PHP_AUTOCONF=${prefix}/bin/autoconf" \
|
|
"PHP_AUTOHEADER=${prefix}/bin/autoheader"
|
|
depends_build-append \
|
|
port:autoconf \
|
|
port:libtool
|
|
}
|
|
# this has to be done for <7.4 too
|
|
if {[vercmp ${branch} >= 7.4] && [vercmp ${branch} <= 8.0]} {
|
|
patchfiles-append \
|
|
patch-${php}-libxml.diff \
|
|
patch-${php}-ext-xml-compat.c.diff \
|
|
ext-xml-tests-gh14834.phpt
|
|
}
|
|
# https://trac.macports.org/ticket/70468
|
|
if {[vercmp ${branch} <= 7.4]} {
|
|
configure.cflags-append "-Os -Wno-error=implicit-int"
|
|
}
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
patchfiles-append \
|
|
patch-${php}-libxml2-overlinking.diff
|
|
}
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} <= 7.4]} {
|
|
patchfiles-append \
|
|
patch-${php}-implicit.diff
|
|
}
|
|
if {[vercmp ${branch} <= 5.3]} {
|
|
patchfiles-append \
|
|
patch-${php}-configure.diff
|
|
}
|
|
if {[vercmp ${branch} <= 5.2]} {
|
|
patchfiles-append \
|
|
patch-${php}-libxml2-2.9.diff \
|
|
patch-${php}-pcre-8.30.diff
|
|
}
|
|
if {[vercmp ${branch} >= 7.3] && [vercmp ${branch} < 8.1]} {
|
|
patchfiles-append \
|
|
patch-${php}-zend_string_equal_val.diff
|
|
}
|
|
|
|
# https://trac.macports.org/ticket/31590
|
|
# Tested all subports (except oracle) and they built with clang-425. The reported failure was with Xcode 4.2.
|
|
# Xcode 4.3 may work, but leaving it blacklisted due to lack of testing
|
|
compiler.blacklist {clang < 400}
|
|
|
|
set phpinidir ${prefix}/etc/${php}
|
|
set extraphpinidir ${prefix}/var/db/${php}
|
|
|
|
configure.args --mandir=${prefix}/share/man \
|
|
--infodir=${prefix}/share/info \
|
|
--program-suffix=[php.suffix_from_branch ${branch}] \
|
|
--includedir=${prefix}/include/${php} \
|
|
--libdir=${prefix}/lib/${php} \
|
|
--with-config-file-path=${phpinidir} \
|
|
--with-config-file-scan-dir=${extraphpinidir} \
|
|
--disable-all \
|
|
--enable-bcmath \
|
|
--enable-ctype \
|
|
--enable-dom \
|
|
--enable-filter \
|
|
--enable-pdo \
|
|
--enable-session \
|
|
--enable-simplexml \
|
|
--enable-tokenizer \
|
|
--enable-xml \
|
|
--enable-xmlreader \
|
|
--enable-xmlwriter \
|
|
--with-bz2=${prefix} \
|
|
--with-mhash=${prefix} \
|
|
--with-zlib=${prefix} \
|
|
--disable-cgi \
|
|
--disable-cli
|
|
|
|
if {[vercmp ${branch} < 8.0]} {
|
|
# JSON support is always on as of PHP 8.
|
|
# https://github.com/php/php-src/pull/5495
|
|
configure.args-append --enable-json
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --enable-hash \
|
|
--enable-libxml \
|
|
--with-libxml-dir=${prefix} \
|
|
--with-pcre-regex=${prefix} \
|
|
--without-pear
|
|
} else {
|
|
configure.args-append --with-libxml \
|
|
--with-external-pcre=${prefix}
|
|
}
|
|
|
|
# Ensure we don't regenerate the parsers even if flex/re2c/bison are installed.
|
|
configure.env LEX=true \
|
|
RE2C=true \
|
|
YACC=true
|
|
|
|
if {[vercmp ${branch} == 7.3]} {
|
|
# Regenerate datetime parsers with re2c < 0.16 to avoid
|
|
# miscompilation by clang > 700.1.81 < 802.0.38 that results in
|
|
# a runtime hang. See https://bugs.php.net/80376.
|
|
depends_build-append \
|
|
port:re2c-0.15
|
|
|
|
pre-configure {
|
|
foreach parser {parse_date parse_iso_intervals} {
|
|
# See https://github.com/derickr/timelib/blob/2018.04/Makefile#L32-L36
|
|
system -W ${worksrcpath}/ext/date/lib "${prefix}/bin/re2c-0.15 -d -b ${parser}.re > ${parser}.c"
|
|
}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
configure.args-append \
|
|
--enable-fileinfo \
|
|
--enable-phar \
|
|
--disable-fpm
|
|
|
|
# ${php}-mysql +mysqlnd needs mysqlnd support compiled into the SAPI
|
|
configure.env-append \
|
|
PHP_MYSQLND_ENABLED=yes
|
|
}
|
|
|
|
if {[vercmp ${branch} == 5.4]} {
|
|
# https://bugs.php.net/bug.php?id=68114
|
|
configure.args-append ac_cv_decimal_fp_supported=no
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.2]} {
|
|
depends_lib-append \
|
|
port:argon2
|
|
|
|
configure.args-append \
|
|
--with-password-argon2=${prefix} \
|
|
--without-valgrind
|
|
}
|
|
|
|
configure.universal_args-delete --disable-dependency-tracking
|
|
|
|
test.run yes
|
|
|
|
destroot.destdir INSTALL_ROOT=${destroot}
|
|
|
|
variant debug description {Enable debug support (useful to analyze a PHP-related core dump)} {
|
|
configure.args-append --enable-debug
|
|
}
|
|
|
|
variant pear description {Enable pear support} {
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-replace --without-pear --with-pear
|
|
} else {
|
|
configure.args-append --with-pear
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} <= 5.3]} {
|
|
variant suhosin description {Add Suhosin patch} {
|
|
pre-fetch {
|
|
if {${os.platform} eq "darwin" && ${os.major} < 9} {
|
|
ui_error "The suhosin variant requires Mac OS X 10.5 or greater."
|
|
return -code error "incompatible Mac OS X version"
|
|
}
|
|
if {!${suhosin_available}} {
|
|
ui_error "There is no suhosin patch for PHP ${version} yet. Please check back later."
|
|
}
|
|
if {![file exists ${extraphpinidir}/suhosin.ini]} {
|
|
ui_msg "You may also be interested in the suhosin extension, a related but different piece of software. See the ${php}-suhosin port."
|
|
}
|
|
if {!${suhosin_available}} {
|
|
return -code error "unavailable variant"
|
|
}
|
|
}
|
|
patch_sites-append http://download.suhosin.org/
|
|
if {${suhosin_available}} {
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
patchfiles-append patch-${php}-suhosin-before.diff
|
|
}
|
|
patchfiles-append ${suhosin_patch}
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
patchfiles-append patch-${php}-suhosin-after.diff
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if {${subport} ne ${php}} {
|
|
notes-append "If this is your first install, you need to enable ${subport} in your web server."
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
### CLI SAPI ###
|
|
|
|
subport ${php} {
|
|
PortGroup muniversal 1.0
|
|
PortGroup select 1.0
|
|
|
|
switch -- ${version} {
|
|
5.2.17 {revision 18}
|
|
5.3.29 {revision 9}
|
|
5.4.45 {revision 8}
|
|
5.5.38 {revision 9}
|
|
5.6.40 {revision 7}
|
|
7.0.33 {revision 7}
|
|
7.1.33 {revision 5}
|
|
7.2.34 {revision 6}
|
|
7.3.33 {revision 4}
|
|
7.4.33 {revision 3}
|
|
8.0.30 {revision 2}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
depends_run port:php_select
|
|
|
|
select.group php
|
|
select.file ${filespath}/${subport}
|
|
|
|
if {[vercmp ${branch} == 5.3]} {
|
|
patchfiles-append patch-${php}-C++11.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.5] && [vercmp ${branch} < 7.0]} {
|
|
patchfiles-append patch-${php}-Zend-EX_TMP_VAR.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3] && [vercmp ${branch} < 7.2]} {
|
|
patchfiles-append patch-${php}-icu-61.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
patchfiles-append dynamic_lookup-11.patch
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} < 7.4]} {
|
|
patchfiles-append patch-${php}-icu-71.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.0]} {
|
|
post-patch {
|
|
# Ensure the build date is the same for all universal archs.
|
|
reinplace "s|^PHP_BUILD_DATE=.*$|PHP_BUILD_DATE=[clock format [clock seconds] -format {%Y-%m-%d}]|g" ${worksrcpath}/configure
|
|
}
|
|
}
|
|
|
|
configure.args-replace --disable-cli --enable-cli
|
|
|
|
destroot.target install-cli install-build install-headers install-programs
|
|
|
|
destroot.keepdirs ${destroot}${extraphpinidir}
|
|
|
|
post-destroot {
|
|
# Copy the default php.ini files.
|
|
xinstall -m 755 -d ${destroot}${phpinidir}
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
xinstall -m 644 -W ${worksrcpath} \
|
|
php.ini-development \
|
|
php.ini-production \
|
|
${destroot}${phpinidir}
|
|
} else {
|
|
xinstall -m 644 -W ${worksrcpath} \
|
|
php.ini-dist \
|
|
php.ini-recommended \
|
|
${destroot}${phpinidir}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
# Copy mysqlnd headers.
|
|
xinstall -d ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
|
|
xinstall -m 644 {*}[glob ${worksrcpath}/ext/mysqlnd/*.h] ${destroot}${prefix}/include/${php}/php/ext/mysqlnd
|
|
}
|
|
|
|
# Verify the executable works.
|
|
system -W ${destroot}${prefix}/bin "./${php} -n -v"
|
|
}
|
|
|
|
# Include the readline extension https://www.php.net/readline directly in
|
|
# the PHP CLI SAPI because until PHP 6 the interactive mode "php -a" won't
|
|
# work with a separately built readline extension.
|
|
# https://bugs.php.net/bug.php?id=53878
|
|
# Users might prefer readline over libedit because only readline supports
|
|
# readline_list_history() (https://www.php.net/readline-list-history).
|
|
# On the other hand we want libedit to be the default because its license
|
|
# is compatible with PHP's which means PHP can be distributable.
|
|
variant libedit conflicts readline description {Build readline extension using libedit library} {
|
|
depends_lib-append port:libedit port:ncurses
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-libedit=${prefix}
|
|
} else {
|
|
configure.args-append --with-libedit
|
|
}
|
|
}
|
|
variant readline conflicts libedit description {Build readline extension using readline library} {
|
|
depends_lib-append port:ncurses port:readline
|
|
configure.args-append --with-readline=${prefix}
|
|
}
|
|
if {![variant_isset readline]} {
|
|
default_variants +libedit
|
|
}
|
|
|
|
if {[vercmp ${branch} < ${php.oldest_supported_branch}]} {
|
|
notes-append "
|
|
PHP ${branch} has reached end-of-life. Please upgrade to PHP ${php.oldest_supported_branch} or newer. The newest stable version is ${php.latest_stable_branch}.
|
|
|
|
To learn how to update your code, please read the following guide:
|
|
|
|
https://www.php.net/manual/en/migration[php.suffix_from_branch ${php.latest_stable_branch}].php
|
|
|
|
|
|
"
|
|
}
|
|
|
|
if {[vercmp ${branch} > ${php.latest_stable_branch}]} {
|
|
notes-append "${php} @${version} is a development preview—do not use it in production!\n\n\n"
|
|
}
|
|
|
|
if {![file exists ${phpinidir}/php.ini]} {
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
notes-append "
|
|
To customize ${php}, copy\
|
|
${phpinidir}/php.ini-development (if this is a development server) or\
|
|
${phpinidir}/php.ini-production (if this is a production server) to\
|
|
${phpinidir}/php.ini and then make changes.
|
|
"
|
|
} else {
|
|
notes-append "
|
|
To customize ${php}, copy ${phpinidir}/php.ini-recommended to\
|
|
${phpinidir}/php.ini and then make changes.
|
|
"
|
|
}
|
|
} else {
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
notes-append "
|
|
You may need to update your php.ini for any changes that have been made\
|
|
in this version of ${php}. Compare ${phpinidir}/php.ini with\
|
|
${phpinidir}/php.ini-development (if this is a development server) or\
|
|
${phpinidir}/php.ini-production (if this is a production server).
|
|
"
|
|
} else {
|
|
notes-append "
|
|
You may need to update your php.ini for any changes that have been made\
|
|
in this version of ${php}. Compare ${phpinidir}/php.ini with\
|
|
${phpinidir}/php.ini-recommended.
|
|
"
|
|
}
|
|
}
|
|
|
|
# Enable livecheck for all supported PHP branches and the development branch.
|
|
if {[vercmp ${branch} >= ${php.oldest_supported_branch}]} {
|
|
livecheck.type regex
|
|
default livecheck.url ${homepage}/downloads.php?source=Y
|
|
default livecheck.regex {[quotemeta /php-([quotemeta ${branch}](?:\\.\[0-9.\]+)*)\\.tar]}
|
|
}
|
|
}
|
|
|
|
### Apache 2 handler SAPI ###
|
|
|
|
subport ${php}-apache2handler {
|
|
PortGroup active_variants 1.1
|
|
|
|
switch -- ${version} {
|
|
5.2.17 {revision 4}
|
|
5.3.29 {revision 4}
|
|
5.4.45 {revision 4}
|
|
5.5.38 {revision 4}
|
|
5.6.40 {revision 2}
|
|
7.0.33 {revision 2}
|
|
7.1.33 {revision 2}
|
|
7.2.34 {revision 3}
|
|
7.3.33 {revision 2}
|
|
7.4.33 {revision 2}
|
|
8.0.30 {revision 2}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
description ${php} Apache 2 Handler SAPI
|
|
|
|
long_description ${description}
|
|
|
|
homepage https://www.php.net/install.unix.apache2
|
|
|
|
depends_lib-append port:apache2
|
|
|
|
require_active_variants apache2 preforkmpm
|
|
|
|
set apxs ${prefix}/bin/apxs
|
|
set confdir ${prefix}/etc/apache2
|
|
set moduledir ${prefix}/lib/apache2/modules
|
|
|
|
configure.args-append --with-apxs2=${apxs}
|
|
|
|
# https://trac.macports.org/ticket/70468
|
|
if {[vercmp ${branch} <= 7.4]} {
|
|
configure.cflags-append "-Os -Wno-error=implicit-int"
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.0]} {
|
|
set bundle_major ${major}
|
|
} else {
|
|
set bundle_major {}
|
|
}
|
|
|
|
build.target libs/libphp${bundle_major}.bundle
|
|
|
|
if {[vercmp ${branch} < 5.3]} {
|
|
patchfiles-append patch-${php}-apache24.diff
|
|
}
|
|
|
|
destroot {
|
|
xinstall -m 755 -d ${destroot}${moduledir} ${destroot}${confdir}/extra
|
|
xinstall -m 644 ${worksrcpath}/libs/libphp${bundle_major}.so ${destroot}${moduledir}/mod_${php}.so
|
|
xinstall -m 644 ${filespath}/mod_php.conf.in ${destroot}${confdir}/extra/mod_${php}.conf
|
|
reinplace s/@MAJOR@/${bundle_major}/g ${destroot}${confdir}/extra/mod_${php}.conf
|
|
}
|
|
|
|
notes-append "
|
|
|
|
To enable ${subport}, run:
|
|
|
|
cd ${moduledir}
|
|
sudo ${apxs} -a -e -n php${bundle_major} mod_${php}.so
|
|
"
|
|
}
|
|
|
|
### CGI SAPI ###
|
|
|
|
subport ${php}-cgi {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 3}
|
|
7.3.33 {revision 2}
|
|
7.4.33 {revision 2}
|
|
8.0.30 {revision 2}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
description ${php} CGI SAPI
|
|
|
|
long_description ${description}
|
|
|
|
homepage https://www.php.net/install.unix.commandline
|
|
|
|
configure.args-delete --disable-cgi
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
configure.args-append --enable-cgi
|
|
} else {
|
|
configure.args-append --enable-fastcgi --enable-force-cgi-redirect
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.4]} {
|
|
build.target cgi
|
|
destroot.target install-cgi
|
|
} else {
|
|
destroot {
|
|
xinstall ${worksrcpath}/sapi/cgi/php-cgi ${destroot}${prefix}/bin/php-cgi[php.suffix_from_branch ${branch}]
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
### FPM SAPI ###
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
subport ${php}-fpm {
|
|
switch -- ${version} {
|
|
5.3.29 {revision 2}
|
|
5.4.45 {revision 2}
|
|
5.5.38 {revision 2}
|
|
5.6.40 {revision 2}
|
|
7.0.33 {revision 2}
|
|
7.1.33 {revision 2}
|
|
7.2.34 {revision 3}
|
|
7.3.33 {revision 2}
|
|
7.4.33 {revision 2}
|
|
8.0.30 {revision 2}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
description ${php} FPM SAPI
|
|
|
|
long_description ${description}
|
|
|
|
homepage https://www.php.net/install.fpm
|
|
|
|
set fpmuser nobody
|
|
set fpmgroup nobody
|
|
|
|
patchfiles-append patch-${php}-sapi-fpm-php-fpm.conf.in.diff
|
|
|
|
post-patch {
|
|
reinplace "s|@PHP@|${php}|g" ${worksrcpath}/sapi/fpm/php-fpm.conf.in
|
|
}
|
|
|
|
configure.args-replace --disable-fpm --enable-fpm
|
|
configure.args-append --datadir=${prefix}/share/examples/${php} \
|
|
--sysconfdir=${phpinidir} \
|
|
--with-fpm-user=${fpmuser} \
|
|
--with-fpm-group=${fpmgroup}
|
|
|
|
build.target fpm
|
|
|
|
destroot.target install-fpm
|
|
|
|
destroot.keepdirs ${destroot}${prefix}/var/log/${php} \
|
|
${destroot}${prefix}/var/run/${php}
|
|
|
|
post-destroot {
|
|
xinstall -d -o ${fpmuser} -g ${fpmgroup} ${destroot}${prefix}/var/log/${php} ${destroot}${prefix}/var/run/${php}
|
|
}
|
|
|
|
startupitem.create yes
|
|
startupitem.executable ${prefix}/sbin/php-fpm[php.suffix_from_branch ${branch}]
|
|
|
|
if {![file exists ${phpinidir}/php-fpm.conf]} {
|
|
notes-append "
|
|
|
|
To use ${subport}, copy\
|
|
${phpinidir}/php-fpm.conf.default to\
|
|
${phpinidir}/php-fpm.conf and make changes if desired.
|
|
"
|
|
} else {
|
|
notes-append "
|
|
|
|
You may need to update your php-fpm.conf for any changes that have been made\
|
|
in this version of ${subport}. Compare ${phpinidir}/php-fpm.conf with\
|
|
${phpinidir}/php-fpm.conf.default.
|
|
"
|
|
}
|
|
}
|
|
}
|
|
|
|
### Bundled extensions ###
|
|
|
|
subport ${php}-calendar {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
description a PHP extension for converting between different \
|
|
calendar formats
|
|
|
|
long_description ${description}
|
|
}
|
|
|
|
subport ${php}-curl {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append net www
|
|
|
|
description a PHP interface to the curl library, which lets you \
|
|
download files from servers with a variety of protocols
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:curl
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} <= 7.1]} {
|
|
patchfiles-append \
|
|
patch-${php}-ext-curl-config.m4.diff
|
|
}
|
|
configure.args-append --with-curl=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-curl
|
|
}
|
|
}
|
|
|
|
subport ${php}-dba {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface for accessing DBM databases such as \
|
|
BerkeleyDB
|
|
|
|
long_description ${description}
|
|
|
|
variant gdbm conflicts qdbm description {Add GDBM support} {
|
|
depends_lib-append port:gdbm
|
|
configure.args-append --with-gdbm=${prefix}
|
|
}
|
|
|
|
variant qdbm conflicts gdbm description {Add QDBM support} {
|
|
depends_lib-append port:qdbm
|
|
configure.args-append --with-qdbm=${prefix}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
subport ${php}-enchant {
|
|
switch -- ${version} {
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 1}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append textproc devel
|
|
|
|
description a PHP interface to enchant
|
|
|
|
long_description ${name} is ${description}, a common API for many spell libraries.
|
|
|
|
if {[vercmp ${branch} >= 8.0]} {
|
|
depends_lib-append port:enchant2
|
|
|
|
extract.post_args-append ${worksrcdir}/ext/spl
|
|
} else {
|
|
depends_lib-append port:enchant
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-enchant=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-enchant
|
|
}
|
|
|
|
post-destroot {
|
|
set docdir ${prefix}/share/doc/${subport}
|
|
xinstall -d ${destroot}${docdir}
|
|
xinstall -m 644 -W ${destroot.dir} CREDITS ${destroot}${docdir}
|
|
|
|
if {[vercmp ${branch} < 7.3]} {
|
|
set examplesdir ${prefix}/share/examples/${subport}
|
|
xinstall -d ${destroot}${examplesdir}
|
|
xinstall -m 644 ${destroot.dir}/docs/examples/example1.php \
|
|
${destroot}${examplesdir}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-exif {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append graphics
|
|
|
|
description a PHP interface to the EXIF image metadata functions
|
|
|
|
long_description ${description}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.4]} {
|
|
subport ${php}-ffi {
|
|
switch -- ${version} {
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append devel
|
|
|
|
description a PHP interface to allow loading of shared libraries
|
|
|
|
long_description ${description}
|
|
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
depends_lib-append port:libffi
|
|
|
|
configure.args-append --with-ffi
|
|
}
|
|
}
|
|
|
|
subport ${php}-ftp {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 3}
|
|
5.3.29 {revision 3}
|
|
5.4.45 {revision 3}
|
|
5.5.38 {revision 3}
|
|
5.6.40 {revision 3}
|
|
7.0.33 {revision 2}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append net
|
|
|
|
description a PHP extension for accessing file servers using the \
|
|
File Transfer Protocol
|
|
|
|
long_description {*}${description}
|
|
|
|
if {[vercmp ${branch} >= 7.4]} {
|
|
depends_build-append \
|
|
path:bin/pkg-config:pkgconfig
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
patchfiles-append patch-${php}-ext-ftp-ftp_ssl_connect.diff
|
|
}
|
|
|
|
openssl.branch 3
|
|
configure.args-append --with-openssl-dir=[openssl::install_area]
|
|
}
|
|
|
|
subport ${php}-gd {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append graphics
|
|
|
|
description a PHP interface to the gd library
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:freetype \
|
|
path:include/turbojpeg.h:libjpeg-turbo \
|
|
port:libpng \
|
|
port:zlib
|
|
|
|
if {[vercmp ${branch} <= 5.2]} {
|
|
patchfiles-append patch-${php}-jpeg-9.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 5.5]} {
|
|
# This flag was removed in PHP 7.2.0 and does nothing in PHP >= 5.5.0.
|
|
# https://github.com/php/php-src/commit/494c5dc77ae92d21db915abada2ecefaca620543
|
|
configure.args-append --enable-gd-native-ttf
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.0]} {
|
|
depends_lib-append port:webp
|
|
}
|
|
|
|
if {[vercmp ${branch} == 8.1]} {
|
|
patchfiles-append patch-${php}-ext-gd.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
patchfiles-append patch-${php}-ext-gd-config.m4.diff
|
|
|
|
configure.args-append --with-freetype-dir=${prefix} \
|
|
--with-jpeg-dir=${prefix} \
|
|
--with-png-dir=${prefix} \
|
|
--with-zlib-dir=${prefix}
|
|
|
|
if {[vercmp ${branch} >= 7.0]} {
|
|
configure.args-append --with-webp-dir=${prefix}
|
|
}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-freetype \
|
|
--with-jpeg \
|
|
--with-webp
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
variant t1lib description {Add PostScript Type 1 font support with t1lib} {
|
|
depends_lib-append port:t1lib
|
|
configure.args-append --with-t1lib=${prefix}
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-gettext {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.31 {revision 0}
|
|
8.3.31 {revision 0}
|
|
8.4.21 {revision 0}
|
|
8.5.6 {revision 0}
|
|
}
|
|
|
|
categories-append devel
|
|
|
|
description a PHP interface to the gettext natural language \
|
|
support functions
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:gettext
|
|
|
|
configure.args-append --with-gettext=${prefix}
|
|
}
|
|
|
|
subport ${php}-gmp {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.31 {revision 0}
|
|
8.3.31 {revision 0}
|
|
8.4.21 {revision 0}
|
|
8.5.6 {revision 0}
|
|
}
|
|
|
|
categories-append devel math
|
|
|
|
description a PHP interface to GMP, the GNU multiprocessing \
|
|
library through which you can work with \
|
|
arbitrary-length integers
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:gmp
|
|
|
|
if {[vercmp ${branch} <= 5.2]} {
|
|
patchfiles-append patch-${php}-ext-gmp-gmp.c.diff
|
|
}
|
|
|
|
configure.args-append --with-gmp=${prefix}
|
|
}
|
|
|
|
subport ${php}-iconv {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.31 {revision 0}
|
|
8.3.31 {revision 0}
|
|
8.4.21 {revision 0}
|
|
8.4.13 {revision 0}
|
|
8.5.6 {revision 0}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP interface to the libiconv character encoding \
|
|
conversion functions
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:libiconv
|
|
|
|
configure.args-append --with-iconv=${prefix}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.3]} {
|
|
# imap was evicted from PHP core in version 8.4;
|
|
# php83-imap and later subports are found in the separate php-imap Portfile.
|
|
subport ${php}-imap {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
}
|
|
|
|
categories-append mail
|
|
|
|
description a PHP interface to the IMAP protocol
|
|
|
|
long_description ${description}
|
|
|
|
depends_build-append port:cclient
|
|
|
|
depends_lib-append port:kerberos5 \
|
|
port:libcomerr
|
|
|
|
configure.args-append --with-imap=${prefix} \
|
|
--with-imap-ssl=${prefix} \
|
|
--with-kerberos=${prefix}
|
|
|
|
if {[vercmp ${branch} >= 7.4]} {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
# https://bugs.php.net/bug.php?id=79112
|
|
configure.env-append PHP_OPENSSL=yes
|
|
}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
subport ${php}-intl {
|
|
switch -- ${version} {
|
|
5.3.29 {revision 11}
|
|
5.4.45 {revision 9}
|
|
5.5.38 {revision 9}
|
|
5.6.40 {revision 8}
|
|
7.0.33 {revision 8}
|
|
7.1.33 {revision 7}
|
|
7.2.34 {revision 6}
|
|
7.3.33 {revision 6}
|
|
7.4.33 {revision 4}
|
|
8.0.30 {revision 3}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append devel
|
|
|
|
description internationalization extension for PHP
|
|
|
|
long_description Internationalization extension implements ICU \
|
|
library functionality in PHP.
|
|
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
depends_lib-append path:lib/pkgconfig/icu-uc.pc:icu
|
|
|
|
if {[vercmp ${branch} >= 5.3] && [vercmp ${branch} < 7.0]} {
|
|
patchfiles-append patch-${php}-ext-intl-icu-68.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.5] && [vercmp ${branch} < 7.4]} {
|
|
patchfiles-append patch-${php}-ext-intl-icu-71.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} < 7.3]} {
|
|
patchfiles-append patch-${php}-ext-intl-icu-56.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} < 8.0]} {
|
|
patchfiles-append patch-${php}-ext-intl-icu-68.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.1]} {
|
|
patchfiles-append patch-${php}-ext-intl-config.m4.diff
|
|
}
|
|
|
|
# icu >= 75 requires C++17
|
|
compiler.cxx_standard 2017
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
post-patch {
|
|
reinplace "s|PHP_CXX_COMPILE_STDCXX(11,|PHP_CXX_COMPILE_STDCXX(17,|" \
|
|
${worksrcpath}/ext/intl/config.m4
|
|
}
|
|
}
|
|
|
|
platform darwin {
|
|
if {(${os.major} == 10 || ${os.major} == 11) && [vercmp ${branch} >= 7.1] && [vercmp ${branch} < 7.4]} {
|
|
# Need to investigate how this was fixed for php 7.4 and
|
|
# possibly backport the fix.
|
|
# https://bugs.php.net/bug.php?id=76826
|
|
known_fail yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-ipc {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions shmop sysvmsg sysvsem sysvshm
|
|
|
|
description interprocess communication extensions for PHP
|
|
|
|
long_description PHP extensions for interprocess communication (IPC), including the \
|
|
shmop, sysvmsg, sysvsem, and sysvshm extensions.
|
|
}
|
|
|
|
subport ${php}-ldap {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface to LDAP
|
|
|
|
long_description ${subport} is ${description}, the Lightweight Directory \
|
|
Access Protocol, which is used to access Directory \
|
|
Servers.
|
|
|
|
depends_lib-append path:lib/libldap.dylib:openldap \
|
|
port:cyrus-sasl2
|
|
|
|
configure.args-append --with-ldap=${prefix}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-ldap-sasl=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-ldap-sasl
|
|
}
|
|
}
|
|
|
|
subport ${php}-mbstring {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP extension for manipulating strings in multibyte \
|
|
encodings
|
|
|
|
long_description ${description}
|
|
|
|
if {[vercmp ${branch} >= 7.4]} {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
depends_lib-append port:oniguruma6
|
|
} else {
|
|
configure.cppflags-replace -I${prefix}/include -isystem${prefix}/include
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.2]} {
|
|
# mcrypt was evicted from PHP core in version 7.2; php72-mcrypt and later
|
|
# subports are found in the separate php-mcrypt Portfile.
|
|
subport ${php}-mcrypt {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
}
|
|
|
|
categories-append security
|
|
|
|
description a PHP interface to the mcrypt library, which offers \
|
|
a wide variety of algorithms
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:libmcrypt
|
|
|
|
# The mcrypt extension may be using libtool unnecessarily; monitor
|
|
# https://bugs.php.net/bug.php?id=54500
|
|
depends_lib-append port:libtool
|
|
|
|
configure.args-append --with-mcrypt=${prefix}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
subport ${php}-mssql {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
}
|
|
|
|
php.extensions mssql pdo_dblib
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface to MSSQL using FreeTDS, including \
|
|
the mssql and pdo_dblib extensions
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:freetds
|
|
|
|
configure.args-append --with-mssql=${prefix} \
|
|
--with-pdo-dblib=${prefix}
|
|
}
|
|
}
|
|
|
|
subport ${php}-mysql {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions mysqli pdo_mysql
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
php.extensions-prepend mysql
|
|
}
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface to MySQL databases, including the
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
description-append mysql,
|
|
}
|
|
description-append mysqli and pdo_mysql extensions
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:zlib
|
|
|
|
configure.args-append --with-zlib-dir=${prefix}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
variant mysqlnd conflicts mysql57 mysql8 mariadb10 mariadb11 mariadb12 description {Use MySQL Native Driver} {
|
|
configure.args-append --with-pdo-mysql=mysqlnd
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
configure.args-append --with-mysql=mysqlnd
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=mysqlnd
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
|
|
configure.cppflags-append -I${worksrcpath}
|
|
|
|
set phpini ${prefix}/etc/${php}/php.ini
|
|
notes "
|
|
To use mysqlnd with a local MySQL server, edit ${phpini} and set\
|
|
mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket\
|
|
to the path to your MySQL server's socket file.
|
|
|
|
For mysql57, use ${prefix}/var/run/mysql57/mysqld.sock
|
|
For mysql8, use ${prefix}/var/run/mysql8/mysqld.sock
|
|
For mariadb10, use ${prefix}/var/run/mariadb-10.11/mysqld.sock
|
|
For mariadb11, use ${prefix}/var/run/mariadb-11.8/mysqld.sock
|
|
For mariadb12, use ${prefix}/var/run/mariadb-12.3/mysqld.sock
|
|
"
|
|
}
|
|
}
|
|
|
|
variant mysql57 conflicts mysqlnd mysql8 mariadb10 mariadb11 mariadb12 description {Use MySQL 5.7 libraries} {
|
|
depends_lib-append port:mysql57
|
|
|
|
configure.args-append --with-mysql-sock=${prefix}/var/run/mysql57/mysqld.sock \
|
|
--with-pdo-mysql=${prefix}/lib/mysql57/bin/mysql_config
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
post-extract {
|
|
file mkdir ${workpath}/mysql57
|
|
file link -symbolic ${workpath}/mysql57/lib ${prefix}/lib/mysql57
|
|
file link -symbolic ${workpath}/mysql57/include ${prefix}/include/mysql57
|
|
}
|
|
|
|
configure.args-append --with-mysql=${workpath}/mysql57
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=${prefix}/lib/mysql57/bin/mysql_config
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.3]} {
|
|
variant mysql8 conflicts mysqlnd mysql57 mariadb10 mariadb11 mariadb12 description {Use MySQL 8 libraries} {
|
|
depends_lib-append port:mysql8
|
|
|
|
configure.args-append --with-mysql-sock=${prefix}/var/run/mysql8/mysqld.sock \
|
|
--with-pdo-mysql=${prefix}/lib/mysql8/bin/mysql_config
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=${prefix}/lib/mysql8/bin/mysql_config
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
}
|
|
}
|
|
|
|
variant mariadb10 conflicts mysqlnd mysql57 mysql8 mariadb11 mariadb12 description {Use MariaDB 10 libraries} {
|
|
set my_db 10.11
|
|
depends_lib-append port:mariadb-${my_db}
|
|
|
|
configure.args-append --with-mysql-sock=${prefix}/var/run/mariadb-${my_db}/mysqld.sock \
|
|
--with-pdo-mysql=${prefix}/lib/mariadb-${my_db}/bin/mysql_config
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
post-extract {
|
|
file mkdir ${workpath}/mariadb
|
|
file link -symbolic ${workpath}/mariadb/lib ${prefix}/lib/mariadb-${my_db}
|
|
file link -symbolic ${workpath}/mariadb/include ${prefix}/include/mariadb-${my_db}
|
|
}
|
|
|
|
configure.args-append --with-mysql=${workpath}/mariadb
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=${prefix}/lib/mariadb/bin-${my_db}/mysql_config
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
}
|
|
|
|
variant mariadb11 conflicts mysqlnd mysql57 mysql8 mariadb10 mariadb12 description {Use MariaDB 11 libraries} {
|
|
set my_db 11.8
|
|
depends_lib-append port:mariadb-${my_db}
|
|
|
|
configure.args-append --with-mysql-sock=${prefix}/var/run/mariadb-${my_db}/mysqld.sock \
|
|
--with-pdo-mysql=${prefix}/lib/mariadb-${my_db}/bin/mysql_config
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
post-extract {
|
|
file mkdir ${workpath}/mariadb
|
|
file link -symbolic ${workpath}/mariadb/lib ${prefix}/lib/mariadb-${my_db}
|
|
file link -symbolic ${workpath}/mariadb/include ${prefix}/include/mariadb-${my_db}
|
|
}
|
|
|
|
configure.args-append --with-mysql=${workpath}/mariadb
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=${prefix}/lib/mariadb/bin-${my_db}/mysql_config
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
}
|
|
|
|
variant mariadb12 conflicts mysqlnd mysql57 mysql8 mariadb10 mariadb11 description {Use MariaDB 12 libraries} {
|
|
set my_db 12.3
|
|
depends_lib-append port:mariadb-${my_db}
|
|
|
|
configure.args-append --with-mysql-sock=${prefix}/var/run/mariadb-${my_db}/mysqld.sock \
|
|
--with-pdo-mysql=${prefix}/lib/mariadb-${my_db}/bin/mysql_config
|
|
|
|
if {[vercmp ${branch} < 7.0]} {
|
|
post-extract {
|
|
file mkdir ${workpath}/mariadb
|
|
file link -symbolic ${workpath}/mariadb/lib ${prefix}/lib/mariadb-${my_db}
|
|
file link -symbolic ${workpath}/mariadb/include ${prefix}/include/mariadb-${my_db}
|
|
}
|
|
|
|
configure.args-append --with-mysql=${workpath}/mariadb
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.2]} {
|
|
configure.args-append --with-mysqli=${prefix}/lib/mariadb/bin-${my_db}/mysql_config
|
|
} else {
|
|
configure.args-append --with-mysqli
|
|
}
|
|
}
|
|
|
|
if {![variant_isset mysql57] && ![variant_isset mysql8] && ![variant_isset mariadb10] && ![variant_isset mariadb11] && ![variant_isset mariadb12]} {
|
|
if {[vercmp ${branch} < 5.3]} {
|
|
default_variants +mariadb10
|
|
} else {
|
|
default_variants +mysqlnd
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-odbc {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions odbc pdo_odbc
|
|
|
|
categories-append databases
|
|
|
|
if {[vercmp ${branch} <= 8.0]} {
|
|
patchfiles-append \
|
|
patch-${php}-odbc-stmt_get_col.diff
|
|
}
|
|
|
|
description a PHP interface for accessing databases via Open \
|
|
DataBase Connectivity (ODBC)
|
|
|
|
long_description ${description}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
variant iodbc conflicts unixodbc description {Use iODBC} {
|
|
depends_lib-append port:libiodbc
|
|
|
|
patchfiles-append patch-${php}-iODBC.diff
|
|
|
|
configure.args-append --with-pdo-odbc=iODBC,${prefix}
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-iODBC=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-iODBC
|
|
}
|
|
}
|
|
|
|
variant unixodbc conflicts iodbc description {Use unixODBC} {}
|
|
|
|
if {![variant_isset iodbc] && ![variant_isset unixodbc]} {
|
|
default_variants +unixodbc
|
|
}
|
|
}
|
|
|
|
if {[variant_isset unixodbc] || [vercmp ${branch} < 5.3]} {
|
|
depends_lib-append port:unixODBC
|
|
|
|
patchfiles-append patch-${php}-unixODBC.diff
|
|
|
|
configure.args-append --with-pdo-odbc=unixODBC,${prefix}
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-unixODBC=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-unixODBC
|
|
}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.5] && [vercmp ${branch} < 8.5]} {
|
|
# OPcache is integrated in php >= 8.5
|
|
# https://wiki.php.net/rfc/make_opcache_required
|
|
subport ${php}-opcache {
|
|
switch -- ${version} {
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 2}
|
|
7.1.33 {revision 2}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
}
|
|
|
|
php.extensions.zend opcache
|
|
|
|
description OPcache improves PHP performance by storing precompiled \
|
|
script bytecode in shared memory, thereby removing the \
|
|
need for PHP to load and parse scripts on each request.
|
|
|
|
long_description ${description}
|
|
|
|
configure.args-append --enable-opcache
|
|
|
|
# File-based opcode cache was added in 7.0 (3abde432) and can no longer
|
|
# be disabled as of 7.4 (c32da66e).
|
|
if {[vercmp ${branch} >= 7.0] && [vercmp ${branch} < 7.4]} {
|
|
# Chained fixups cause this error at runtime on Ventura:
|
|
# symbol not found in flat namespace '_zend_file_cache_invalidate'
|
|
if {[vercmp ${macosx_deployment_target} >= 11]} {
|
|
configure.ldflags-append -Wl,-no_fixup_chains
|
|
}
|
|
|
|
configure.args-append --enable-opcache-file
|
|
}
|
|
|
|
if {[vercmp ${branch} == 8.1]} {
|
|
patchfiles-append patch-${php}-opcache.diff
|
|
}
|
|
|
|
post-destroot {
|
|
set docdir ${destroot}${prefix}/share/doc/${subport}
|
|
xinstall -d ${docdir}
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
xinstall -W ${destroot.dir} -m 644 README ${docdir}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-openssl {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 3}
|
|
5.3.29 {revision 3}
|
|
5.4.45 {revision 3}
|
|
5.5.38 {revision 3}
|
|
5.6.40 {revision 3}
|
|
7.0.33 {revision 2}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append devel security
|
|
|
|
description a PHP interface to OpenSSL signature-generation \
|
|
and -verification and data-encryption and \
|
|
-decryption functions
|
|
|
|
long_description {*}${description}
|
|
|
|
depends_lib-append port:kerberos5 \
|
|
port:libcomerr
|
|
|
|
post-extract {
|
|
move ${php.build_dirs}/config0.m4 ${php.build_dirs}/config.m4
|
|
}
|
|
|
|
configure.args-append --with-kerberos=${prefix}
|
|
|
|
# Look in OpenSSL directories before the main include directory.
|
|
configure.cppflags-replace -I${prefix}/include -isystem${prefix}/include
|
|
|
|
if {[vercmp ${branch} <= 5.6]} {
|
|
openssl.branch 1.0
|
|
} elseif {[vercmp ${branch} <= 8.0]} {
|
|
openssl.branch 1.1
|
|
} else {
|
|
openssl.branch 3
|
|
}
|
|
|
|
if {[vercmp ${branch} <= 5.6]} {
|
|
configure.args-append --with-openssl=shared
|
|
} elseif {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-openssl=[openssl::install_area]
|
|
} else {
|
|
configure.args-append --with-openssl
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.4]} {
|
|
# oracle was evicted from PHP core in version 8.4;
|
|
subport ${php}-oracle {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.31 {revision 0}
|
|
8.3.31 {revision 0}
|
|
}
|
|
|
|
php.extensions oci8 pdo_oci
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface to Oracle, including the oci8 and \
|
|
pdo_oci extensions
|
|
|
|
long_description ${description}
|
|
|
|
# port:oracle-instantclient has to be manually installed
|
|
known_fail yes
|
|
depends_lib-append port:oracle-instantclient
|
|
|
|
patch.pre_args-replace -p0 -p1
|
|
if {[vercmp ${branch} <= 7.4]} {
|
|
patchfiles-append patch-${php}-ext-pdo_oci-oci_statement.c.diff
|
|
}
|
|
if {[vercmp ${branch} <= 5.2]} {
|
|
patchfiles-append patch-${php}-ext-pdo_oci-config.m4.diff
|
|
}
|
|
|
|
set lib_dir ${prefix}/lib/oracle
|
|
pre-configure {
|
|
regexp {\.dylib\.(.+)$} [glob -directory ${lib_dir} libclntsh.dylib.*] -> library_version
|
|
configure.args-append \
|
|
--with-oci8=instantclient,${lib_dir} \
|
|
--with-pdo-oci=instantclient,${lib_dir},${library_version}
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-pcntl {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append sysutils
|
|
|
|
description a PHP interface to Unix-style process creation, \
|
|
program execution, signal handling and process \
|
|
termination functions
|
|
|
|
long_description ${description}
|
|
|
|
patch.pre_args-replace -p0 -p1
|
|
if {[vercmp ${branch} <= 8.0]} {
|
|
patchfiles-append patch-${php}-ext-pcntl-pcntl.c.diff
|
|
}
|
|
|
|
notes "
|
|
${subport} should not be enabled within a web server environment.\
|
|
Unexpected results may occur if any process control functions are used within\
|
|
a web server environment.
|
|
"
|
|
}
|
|
|
|
subport ${php}-posix {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append sysutils
|
|
|
|
description a PHP interface to additional POSIX functions
|
|
|
|
long_description a PHP interface to those functions defined in the \
|
|
IEEE 1003.1 (POSIX.1) standards document which are \
|
|
not accessible through other means
|
|
}
|
|
|
|
subport ${php}-postgresql {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions pgsql pdo_pgsql
|
|
|
|
categories-append databases
|
|
|
|
homepage https://www.php.net/pgsql
|
|
|
|
description a PHP interface to PostgreSQL, including \
|
|
the pgsql and pdo_pgsql extensions
|
|
|
|
long_description ${description}
|
|
|
|
variant postgresql13 requires postgresql14 description "Legacy compatibility variant" {}
|
|
|
|
variant postgresql14 conflicts postgresql15 postgresql16 postgresql17 postgresql18 description {Use PostgreSQL 14 libraries} {
|
|
set pg_ver 14
|
|
depends_lib-append port:postgresql${pg_ver}
|
|
configure.args-append --with-pgsql=${prefix}/lib/postgresql${pg_ver}/bin \
|
|
--with-pdo-pgsql=${prefix}/lib/postgresql${pg_ver}/bin
|
|
}
|
|
|
|
variant postgresql15 conflicts postgresql14 postgresql16 postgresql17 postgresql18 description {Use PostgreSQL 15 libraries} {
|
|
set pg_ver 15
|
|
depends_lib-append port:postgresql${pg_ver}
|
|
configure.args-append --with-pgsql=${prefix}/lib/postgresql${pg_ver}/bin \
|
|
--with-pdo-pgsql=${prefix}/lib/postgresql${pg_ver}/bin
|
|
}
|
|
|
|
variant postgresql16 conflicts postgresql14 postgresql15 postgresql17 postgresql18 description {Use PostgreSQL 16 libraries} {
|
|
set pg_ver 16
|
|
depends_lib-append port:postgresql${pg_ver}
|
|
configure.args-append --with-pgsql=${prefix}/lib/postgresql${pg_ver}/bin \
|
|
--with-pdo-pgsql=${prefix}/lib/postgresql${pg_ver}/bin
|
|
}
|
|
|
|
variant postgresql17 conflicts postgresql14 postgresql15 postgresql16 postgresql18 description {Use PostgreSQL 17 libraries} {
|
|
set pg_ver 17
|
|
depends_lib-append port:postgresql${pg_ver}
|
|
configure.args-append --with-pgsql=${prefix}/lib/postgresql${pg_ver}/bin \
|
|
--with-pdo-pgsql=${prefix}/lib/postgresql${pg_ver}/bin
|
|
}
|
|
|
|
variant postgresql18 conflicts postgresql14 postgresql15 postgresql16 postgresql17 description {Use PostgreSQL 18 libraries} {
|
|
set pg_ver 18
|
|
depends_lib-append port:postgresql${pg_ver}
|
|
configure.args-append --with-pgsql=${prefix}/lib/postgresql${pg_ver}/bin \
|
|
--with-pdo-pgsql=${prefix}/lib/postgresql${pg_ver}/bin
|
|
}
|
|
|
|
if {![variant_isset postgresql14] && ![variant_isset postgresql15] && ![variant_isset postgresql16] && ![variant_isset postgresql17] && ![variant_isset postgresql18]} {
|
|
default_variants +postgresql18
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.1]} {
|
|
# pspell was evicted from PHP core in version 8.4
|
|
# php81-pspell and later
|
|
# subports are found in the separate php-pspell Portfile.
|
|
subport ${php}-pspell {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP interface to the aspell library, which lets you \
|
|
check spelling and offer spelling suggestions
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:aspell
|
|
|
|
configure.args-append --with-pspell=${prefix}
|
|
}
|
|
}
|
|
|
|
subport ${php}-snmp {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 2}
|
|
5.3.29 {revision 2}
|
|
5.4.45 {revision 2}
|
|
5.5.38 {revision 2}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append sysutils
|
|
|
|
description a PHP interface to the Simple Network Management \
|
|
Protocol (SNMP)
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:net-snmp
|
|
|
|
configure.args-append --with-snmp=${prefix}
|
|
}
|
|
|
|
subport ${php}-soap {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 1}
|
|
8.0.30 {revision 1}
|
|
8.1.34 {revision 1}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append net
|
|
|
|
description a PHP extension for writing SOAP clients and servers
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:libxml2
|
|
|
|
if {[vercmp ${branch} < 8.1]} {
|
|
patchfiles-append \
|
|
patch-${php}-ext-soap.diff
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-libxml-dir=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
}
|
|
}
|
|
|
|
subport ${php}-sockets {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 0}
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append net
|
|
|
|
description a PHP interface to BSD socket communication \
|
|
functions
|
|
|
|
long_description ${description}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 7.2]} {
|
|
subport ${php}-sodium {
|
|
switch -- ${version} {
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 1}
|
|
8.0.30 {revision 1}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions sodium
|
|
|
|
categories-append security
|
|
|
|
description a PHP interface to libsodium, a modern and \
|
|
easy-to-use crypto library
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:libsodium
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-sodium=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-sodium
|
|
}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} >= 5.3]} {
|
|
subport ${php}-sqlite {
|
|
switch -- ${version} {
|
|
5.3.29 {revision 0}
|
|
5.4.45 {revision 0}
|
|
5.5.38 {revision 0}
|
|
5.6.40 {revision 0}
|
|
7.0.33 {revision 0}
|
|
7.1.33 {revision 0}
|
|
7.2.34 {revision 0}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
php.extensions sqlite sqlite3 pdo_sqlite
|
|
|
|
categories-append databases
|
|
|
|
description a PHP interface to SQLite, including the sqlite, sqlite3 \
|
|
and pdo_sqlite extensions
|
|
|
|
if {[vercmp ${branch} >= 5.4]} {
|
|
php.extensions-delete sqlite
|
|
description-delete "sqlite,"
|
|
}
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:sqlite3
|
|
|
|
post-extract {
|
|
move ${worksrcpath}/ext/sqlite3/config0.m4 ${worksrcpath}/ext/sqlite3/config.m4
|
|
}
|
|
|
|
configure.args-append --enable-sqlite-utf8
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-sqlite3=${prefix} \
|
|
--with-pdo-sqlite=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-sqlite3 \
|
|
--with-pdo-sqlite
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-tidy {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 3}
|
|
5.3.29 {revision 3}
|
|
5.4.45 {revision 2}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 0}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append www
|
|
|
|
description a PHP interface to tidy, the HTML cleaning and \
|
|
repair utility
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:tidy
|
|
|
|
if {[vercmp ${branch} <= 7.0]} {
|
|
patchfiles-append patch-${php}-ext-tidy-tidy.c.diff
|
|
}
|
|
|
|
configure.args-append --with-tidy=${prefix}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
subport ${php}-wddx {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP interface to Web Distributed Data Exchange
|
|
|
|
long_description ${description}
|
|
|
|
depends_build-append port:expat \
|
|
port:libxml2
|
|
|
|
configure.args-append --with-libexpat-dir=${prefix} \
|
|
--with-libxml-dir=${prefix}
|
|
}
|
|
}
|
|
|
|
if {[vercmp ${branch} < 8.0]} {
|
|
subport ${php}-xmlrpc {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 1}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP extension for writing XML-RPC clients and servers
|
|
|
|
long_description ${description}
|
|
|
|
depends_build-append port:libiconv \
|
|
port:libxml2
|
|
|
|
depends_lib-append port:expat
|
|
|
|
configure.args-append --with-iconv-dir=${prefix}
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-libexpat-dir=${prefix} \
|
|
--with-libxml-dir=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-expat
|
|
}
|
|
|
|
pre-configure {
|
|
configure.cppflags-append [exec ${prefix}/bin/xml2-config --cflags]
|
|
}
|
|
}
|
|
}
|
|
|
|
subport ${php}-xsl {
|
|
switch -- ${version} {
|
|
5.2.17 {revision 1}
|
|
5.3.29 {revision 1}
|
|
5.4.45 {revision 1}
|
|
5.5.38 {revision 1}
|
|
5.6.40 {revision 1}
|
|
7.0.33 {revision 1}
|
|
7.1.33 {revision 1}
|
|
7.2.34 {revision 1}
|
|
7.3.33 {revision 1}
|
|
7.4.33 {revision 0}
|
|
8.0.30 {revision 0}
|
|
8.1.34 {revision 0}
|
|
8.2.32 {revision 0}
|
|
8.3.32 {revision 0}
|
|
8.4.23 {revision 0}
|
|
8.5.8 {revision 0}
|
|
}
|
|
|
|
categories-append textproc
|
|
|
|
description a PHP interface to libxslt, which implements the XSL \
|
|
standard and lets you perform XSL transformations
|
|
|
|
long_description ${description}
|
|
|
|
depends_lib-append port:libxslt
|
|
|
|
if {[vercmp ${branch} < 7.4]} {
|
|
configure.args-append --with-xsl=${prefix}
|
|
} else {
|
|
depends_build-append path:bin/pkg-config:pkgconfig
|
|
|
|
configure.args-append --with-xsl
|
|
}
|
|
|
|
configure.cppflags-append -I${prefix}/include/${php}/php/ext/dom
|
|
}
|
|
|
|
}
|
|
|
|
# These variables are not only required by the subsequent code but also by
|
|
# preceding code in phase blocks.
|
|
set branch ${subport_branch}
|
|
set major [lindex [split ${branch} .] 0]
|
|
set php php[php.suffix_from_branch ${branch}]
|
|
|
|
if {${name} eq ${subport}} {
|
|
PortGroup stub 1.0
|
|
|
|
version ${branch}
|
|
revision 0
|
|
supported_archs noarch
|
|
platforms any
|
|
depends_run port:${php}
|
|
} else {
|
|
# Set an explicit distname so the default from the php portgroup doesn't get used.
|
|
distname ${name}-${version}
|
|
}
|
|
|
|
proc get_default_php_extensions {} {
|
|
global php.extensions.zend php.rootname
|
|
if {0 < [llength ${php.extensions.zend}]} {
|
|
return
|
|
}
|
|
return ${php.rootname}
|
|
}
|
|
|
|
# Set up the php portgroup, for extension subports.
|
|
if {[is_extension_subport]} {
|
|
default php.extensions {[get_default_php_extensions]}
|
|
default homepage https://www.php.net/${php.rootname}
|
|
|
|
php.build_dirs
|
|
set pdo no
|
|
foreach extension [concat ${php.extensions} ${php.extensions.zend}] {
|
|
if {[regexp {^pdo_} ${extension}]} {
|
|
# The PDO extensions need the PDO headers.
|
|
set pdo yes
|
|
post-extract {
|
|
file mkdir ${worksrcpath}/ext/${extension}/ext
|
|
ln -s ${worksrcpath}/ext/pdo ${worksrcpath}/ext/${extension}/ext
|
|
}
|
|
}
|
|
|
|
# Speed up extraction by extracting only the modules we're going to be building.
|
|
extract.post_args-append ${worksrcdir}/ext/${extension}
|
|
|
|
# Run phpize, configure, build and destroot in each extension's directory.
|
|
php.build_dirs-append ${worksrcpath}/ext/${extension}
|
|
}
|
|
|
|
if {${pdo}} {
|
|
# The PDO extensions need the PDO headers.
|
|
extract.post_args-append ${worksrcdir}/ext/pdo
|
|
}
|
|
|
|
pre-configure {
|
|
set php_version [exec ${php.config} --version 2>/dev/null]
|
|
if {${version} ne ${php_version}} {
|
|
ui_error "${subport} @${version} requires ${php} @${version} but you have ${php} @${php_version}."
|
|
return -code error "incompatible ${php} installation"
|
|
}
|
|
}
|
|
|
|
destroot.target install-modules install-headers
|
|
|
|
php.add_port_code
|
|
}
|