freebsd-ports/lang/php72/Makefile.ext
Torsten Zuehlsdorff 6d23d80a69 mail/php7[2-4]-imap: change client from cclient to panda-cclient
There are some reports about PHP crashes, when using php-imap
(especially with OpenSSL and TSL 1.3). All this problems went away,
when using the panda-cclient instead of the old cclient.

Therefore we make the panda-cclient the new default,
but still allow cclient in order to allow backwards compatibility.

Special thanks to bofh for figuring out the complex details and
the solution!

Special thanks to Jason for being patience and
helpful about so many months!

Reported by:	Jason de Cordoba <jason@aventia.pw>
Reviewed by:	bofh
Sponsored by:	Bounce Experts
2020-07-13 13:32:27 +00:00

576 lines
12 KiB
Text

# $FreeBSD$
COMMENT= The ${PHP_MODNAME} shared extension for php
USES+= php:ext,noflavors
PHP_MODNAME= ${PKGNAMESUFFIX:S/-//}
PHP_VER= 72
IGNORE_WITH_PHP= 73 74
EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME}
WRKSRC= ${WRKDIR}/${EXTSUBDIR}
PATCHDIR= ${.CURDIR}/files
PLIST= ${NONEXISTENT}
EXTRACT_AFTER_ARGS?= ${EXTSUBDIR}
.if ${PHP_MODNAME} == "bcmath"
CONFIGURE_ARGS+=--enable-bcmath
PHP_HEADER_DIRS=libbcmath libbcmath/src
.endif
.if ${PHP_MODNAME} == "bz2"
CONFIGURE_ARGS+=--with-bz2=/usr
.endif
.if ${PHP_MODNAME} == "calendar"
CONFIGURE_ARGS+=--enable-calendar
.endif
.if ${PHP_MODNAME} == "ctype"
CONFIGURE_ARGS+=--enable-ctype
.endif
.if ${PHP_MODNAME} == "curl"
LIB_DEPENDS+= libcurl.so:ftp/curl
CONFIGURE_ARGS+=--with-curl=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "dba"
CONFIGURE_ARGS+=--enable-dba
OPTIONS_DEFINE= CDB DB4 GDBM QDBM TOKYO INIFILE FLATFILE LMDB
OPTIONS_DEFAULT=CDB INIFILE FLATFILE
CDB_DESC= cdb database support
DB4_DESC= Berkeley DB4 support
GDBM_DESC= GDBM database support
QDBM_DESC= QDBM database support
TOKYO_DESC= Tokyo Cabinet database support
INIFILE_DESC= INI file support
FLATFILE_DESC= flatfile support
LMDB_DESC= LMDB database support
PHP_HEADER_DIRS= libcdb libflatfile libinifile
.endif
.if ${PHP_MODNAME} == "dom"
CONFIGURE_ARGS+=--enable-dom \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "enchant"
LIB_DEPENDS+= libenchant.so:textproc/enchant
CONFIGURE_ARGS+=--with-enchant=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "exif"
CONFIGURE_ARGS+=--enable-exif
.endif
.if ${PHP_MODNAME} == "fileinfo"
CONFIGURE_ARGS+=--enable-fileinfo \
--with-pcre-dir=${LOCALBASE}
PHP_HEADER_DIRS= libmagic
.endif
.if ${PHP_MODNAME} == "filter"
CONFIGURE_ARGS+=--enable-filter \
--with-pcre-dir=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "ftp"
CONFIGURE_ARGS+=--enable-ftp \
--with-openssl-dir=${OPENSSLBASE}
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "gd"
LIB_DEPENDS= libfreetype.so:print/freetype2 \
libpng.so:graphics/png
USES+= jpeg
CONFIGURE_ARGS+=--with-gd=${LOCALBASE} \
--with-freetype-dir=${LOCALBASE} \
--with-jpeg-dir=${LOCALBASE} \
--with-png-dir=${LOCALBASE} \
--with-zlib-dir=/usr
EXTRACT_AFTER_ARGS=--no-same-owner --no-same-permissions --exclude libgd \
php-${PORTVERSION}/ext/gd
OPTIONS_DEFINE=TRUETYPE JIS WEBP X11
OPTIONS_DEFAULT=TRUETYPE X11
TRUETYPE_DESC= Enable TrueType string function
JIS_DESC= Enable JIS-mapped Japanese font support
WEBP_DESC= Enable WebP image format support
X11_DESC= Enable XPM support
.endif
.if ${PHP_MODNAME} == "gettext"
CONFIGURE_ARGS+=--with-gettext=${LOCALBASE}
USES+= gettext
.endif
.if ${PHP_MODNAME} == "gmp"
LIB_DEPENDS+= libgmp.so:math/gmp
CONFIGURE_ARGS+=--with-gmp=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "hash"
CONFIGURE_ARGS+=--enable-hash \
--with-mhash
CFLAGS_mips64= -DHAVE_SLOW_HASH3
CFLAGS_powerpc64= -DHAVE_SLOW_HASH3
CFLAGS_powerpc= -DHAVE_SLOW_HASH3
CFLAGS_powerpcspe= -DHAVE_SLOW_HASH3
CFLAGS_sparc64= -DHAVE_SLOW_HASH3
.endif
.if ${PHP_MODNAME} == "iconv"
CONFIGURE_ARGS+=--with-iconv=${LOCALBASE}
USES+= iconv:translit
.endif
.if ${PHP_MODNAME} == "imap"
PHP_MOD_PRIO= 30
OPTIONS_RADIO= CLIENT
OPTIONS_RADIO_CLIENT= CCLIENT PANDA
OPTIONS_DEFAULT=PANDA
CCLIENT_DESC= Uses the original but unmaintained cclient
PANDA_DESC= Uses the forked panda-cclient instead of the original cclient
CONFIGURE_ARGS+=--with-imap=${LOCALBASE} \
--with-pcre-dir=${LOCALBASE} \
--with-imap-ssl=${OPENSSLBASE}
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "interbase"
CONFIGURE_ARGS+=--with-interbase=${LOCALBASE}
USES+= firebird
.endif
.if ${PHP_MODNAME} == "intl"
CONFIGURE_ARGS+=--with-intl=${LOCALBASE}
LIB_DEPENDS= libicui18n.so:devel/icu
.endif
.if ${PHP_MODNAME} == "json"
CONFIGURE_ARGS+=--enable-json
.endif
.if ${PHP_MODNAME} == "ldap"
CONFIGURE_ARGS+=--with-ldap=${LOCALBASE}
USE_OPENLDAP= yes
. ifdef(WANT_OPENLDAP_SASL)
CONFIGURE_ARGS+=--with-ldap-sasl=${LOCALBASE}
. endif
.endif
.if ${PHP_MODNAME} == "mbstring"
CONFIGURE_ARGS+=--enable-mbstring \
--with-pcre-dir=${LOCALBASE}
OPTIONS_DEFINE= REGEX
OPTIONS_DEFAULT=REGEX
REGEX_DESC= Enable multibyte regex support
PHP_HEADER_DIRS=libmbfl libmbfl/filters libmbfl/mbfl libmbfl/nls
.endif
.if ${PHP_MODNAME} == "mysqli"
OPTIONS_DEFINE= MYSQLND
OPTIONS_DEFAULT=MYSQLND
MYSQLND_DESC= Use MySQL Native Driver
.endif
.if ${PHP_MODNAME} == "odbc"
LIB_DEPENDS+= libodbc.so:databases/unixODBC
CONFIGURE_ARGS+=--enable-odbc \
--with-unixODBC=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "openssl"
CONFIGURE_ARGS+=--with-openssl=${OPENSSLBASE}
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "opcache"
# This is needed by Zend extensions, keep before everything.
PHP_MOD_PRIO= 10
CONFIGURE_ARGS+=--enable-opcache
USES+= localbase
.endif
.if ${PHP_MODNAME} == "pcntl"
CONFIGURE_ARGS+=--enable-pcntl
.endif
.if ${PHP_MODNAME} == "pdo"
CONFIGURE_ARGS+=--enable-pdo
.endif
.if ${PHP_MODNAME} == "pdo_dblib"
CONFIGURE_ARGS+=--with-pdo-dblib=${LOCALBASE}
USE_PHP= pdo:build
OPTIONS_DEFINE= MSSQL
MSSQL_DESC= Enable Microsoft SQL Server support
.endif
.if ${PHP_MODNAME} == "pdo_firebird"
CONFIGURE_ARGS+=--with-pdo-firebird=${LOCALBASE}
USES+= firebird
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_odbc"
LIB_DEPENDS+= libodbc.so:databases/unixODBC
CONFIGURE_ARGS+=--with-pdo-odbc=unixODBC,${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_mysql"
OPTIONS_DEFINE= MYSQLND
OPTIONS_DEFAULT=MYSQLND
MYSQLND_DESC= Use MySQL Native Driver
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_pgsql"
USES+= pgsql
CONFIGURE_ARGS+=--with-pdo-pgsql=${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pdo_sqlite"
USES+= sqlite
CONFIGURE_ARGS+=--with-pdo-sqlite=${LOCALBASE}
USE_PHP= pdo:build
.endif
.if ${PHP_MODNAME} == "pgsql"
USES+= pgsql
CONFIGURE_ARGS+=--with-pgsql=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "phar"
CONFIGURE_ARGS+=--enable-phar \
--with-pcre-dir=${LOCALBASE}
USE_PHP= hash:build
.endif
.if ${PHP_MODNAME} == "posix"
CONFIGURE_ARGS+=--enable-posix
.endif
.if ${PHP_MODNAME} == "pspell"
LIB_DEPENDS+= libaspell.so:textproc/aspell
CONFIGURE_ARGS+=--with-pspell=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "readline"
CONFIGURE_ARGS+=--with-readline=/usr
USES+= readline
.endif
.if ${PHP_MODNAME} == "recode"
LIB_DEPENDS+= librecode.so:converters/recode
CONFIGURE_ARGS+=--with-recode=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "session"
CONFIGURE_ARGS+=--enable-session
PHP_MOD_PRIO= 18
.endif
.if ${PHP_MODNAME} == "shmop"
CONFIGURE_ARGS+=--enable-shmop
.endif
.if ${PHP_MODNAME} == "simplexml"
CONFIGURE_ARGS+=--enable-simplexml \
--with-pcre-dir=${LOCALBASE} \
--with-libxml-dir=${LOCALBASE}
USES+= pkgconfig
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "snmp"
CONFIGURE_ARGS+=--with-snmp=${LOCALBASE} \
--with-openssl-dir=${OPENSSLBASE}
CONFIGURE_ENV+= ac_cv_buggy_snprint_value="no"
LIB_DEPENDS+= libnetsnmp.so:net-mgmt/net-snmp
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl
USES+= ssl
.endif
.if ${PHP_MODNAME} == "soap"
CONFIGURE_ARGS+=--enable-soap \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "sockets"
CONFIGURE_ARGS+=--enable-sockets
.endif
.if ${PHP_MODNAME} == "sodium"
CONFIGURE_ARGS+= --with-sodium=${LOCALBASE}
LIB_DEPENDS+= libsodium.so:security/libsodium
.endif
.if ${PHP_MODNAME} == "sqlite3"
USES+= sqlite
CONFIGURE_ARGS+=--with-sqlite3=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "sysvmsg"
CONFIGURE_ARGS+=--enable-sysvmsg
.endif
.if ${PHP_MODNAME} == "sysvsem"
CONFIGURE_ARGS+=--enable-sysvsem
.endif
.if ${PHP_MODNAME} == "sysvshm"
CONFIGURE_ARGS+=--enable-sysvshm
.endif
.if ${PHP_MODNAME} == "tidy"
CONFIGURE_ARGS+=--with-tidy=${LOCALBASE}
LIB_DEPENDS+= libtidy.so:www/tidy-lib
.endif
.if ${PHP_MODNAME} == "tokenizer"
CONFIGURE_ARGS+=--enable-tokenizer
.endif
.if ${PHP_MODNAME} == "wddx"
CONFIGURE_ARGS+=--enable-wddx \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
USE_PHP= xml:build session:build
.endif
.if ${PHP_MODNAME} == "xml"
CONFIGURE_ARGS+=--enable-xml \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xmlreader"
CONFIGURE_ARGS+=--enable-xmlreader \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
USE_PHP= dom:build
.endif
.if ${PHP_MODNAME} == "xmlrpc"
CONFIGURE_ARGS+=--with-xmlrpc \
--with-libxml-dir=${LOCALBASE} \
--with-iconv-dir=${LOCALBASE}
USES+= iconv:translit
USE_GNOME= libxml2
PHP_HEADER_DIRS=libxmlrpc
USE_PHP= xml:build
.endif
.if ${PHP_MODNAME} == "xmlwriter"
CONFIGURE_ARGS+=--enable-xmlwriter \
--with-libxml-dir=${LOCALBASE}
USE_GNOME= libxml2
.endif
.if ${PHP_MODNAME} == "xsl"
CONFIGURE_ARGS+=--with-xsl=${LOCALBASE}
USE_GNOME= libxslt
USE_PHP= dom:build xml:build
.endif
.if ${PHP_MODNAME} == "zip"
LIB_DEPENDS+= libzip.so:archivers/libzip
CONFIGURE_ARGS+=--enable-zip \
--with-zlib-dir=/usr \
--with-pcre-dir=${LOCALBASE} \
--with-libzip=${LOCALBASE}
.endif
.if ${PHP_MODNAME} == "zlib"
CONFIGURE_ARGS+=--with-zlib=/usr
.endif
.include <bsd.port.options.mk>
.if ${PHP_MODNAME} == "dba"
. if empty(PORT_OPTIONS:MCDB)
CONFIGURE_ARGS+=--without-cdb
. endif
. if ${PORT_OPTIONS:MDB4}
CONFIGURE_ARGS+=--with-db4=${LOCALBASE}
USES+= bdb
WITH_BDB_HIGHEST= yes
. endif
. if ${PORT_OPTIONS:MGDBM}
LIB_DEPENDS+= libgdbm.so:databases/gdbm
CONFIGURE_ARGS+=--with-gdbm=${LOCALBASE}
. endif
. if ${PORT_OPTIONS:MQDBM}
LIB_DEPENDS+= libqdbm.so:databases/qdbm
CONFIGURE_ARGS+=--with-qdbm=${LOCALBASE}
. endif
. if ${PORT_OPTIONS:MTOKYO}
LIB_DEPENDS+= libtokyocabinet.so:databases/tokyocabinet
CONFIGURE_ARGS+=--with-tcadb=${LOCALBASE}
. endif
. if empty(PORT_OPTIONS:MINIFILE)
CONFIGURE_ARGS+=--disable-inifile
. endif
. if empty(PORT_OPTIONS:MFLATFILE)
CONFIGURE_ARGS+=--disable-flatfile
. endif
. if ${PORT_OPTIONS:MLMDB}
LIB_DEPENDS+= liblmdb.so:databases/lmdb
CONFIGURE_ARGS+= --with-lmdb=${LOCALBASE}
.endif
.endif
.if ${PHP_MODNAME} == "mysqli"
. if ${PORT_OPTIONS:MMYSQLND}
CONFIGURE_ARGS+=--with-mysqli=mysqlnd
. else
CONFIGURE_ARGS+=--with-mysqli=${LOCALBASE}/bin/mysql_config
USES+= mysql
. endif
.endif
.if ${PHP_MODNAME} == "pdo_mysql"
. if ${PORT_OPTIONS:MMYSQLND}
CONFIGURE_ARGS+=--with-pdo-mysql=mysqlnd
. else
CONFIGURE_ARGS+=--with-pdo-mysql=${LOCALBASE} \
--with-zlib-dir=/usr
USES+= mysql
. endif
.endif
.if ${PHP_MODNAME} == "gd"
. if ${PORT_OPTIONS:MTRUETYPE}
CONFIGURE_ARGS+=--enable-gd-native-ttf
. endif
. if ${PORT_OPTIONS:MJIS}
CONFIGURE_ARGS+=--enable-gd-jis-conv
. endif
. if ${PORT_OPTIONS:MWEBP}
LIB_DEPENDS+= libwebp.so:graphics/webp
CONFIGURE_ARGS+=--with-webp-dir=${LOCALBASE}
. endif
. if ${PORT_OPTIONS:MX11}
USES+= xorg
USE_XORG= x11 xpm
CONFIGURE_ARGS+=--with-xpm-dir=${LOCALBASE}
. endif
.endif
.include <bsd.port.pre.mk>
.if ${PHP_MODNAME} == "imap"
. if ${PORT_OPTIONS:MPANDA}
LIB_DEPENDS+= libc-client4.so.10:mail/panda-cclient
. else
LIB_DEPENDS+= libc-client4.so.9:mail/cclient
. endif
.endif
.if ${PHP_MODNAME} == "mbstring"
. if ${PORT_OPTIONS:MREGEX}
LIB_DEPENDS+= libonig.so:devel/oniguruma
CONFIGURE_ARGS+=--with-onig=${LOCALBASE}
. else
CONFIGURE_ARGS+=--disable-mbregex
. endif
.endif
.if ${PHP_MODNAME} == "openssl" || ${PHP_MODNAME} == "sqlite3"
post-extract:
@${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4
.endif
.if ${PHP_MODNAME} == "pdo_dblib"
. if ${PORT_OPTIONS:MMSSQL}
LIB_DEPENDS+= libsybdb.so:databases/freetds
. else
LIB_DEPENDS+= libct.so:databases/freetds
. endif
.endif
.if ${PHP_MODNAME} == "xml"
post-extract:
@${MKDIR} ${WRKSRC}/ext/xml
@${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml
.endif
.if ${PHP_MODNAME} == "zlib"
post-extract:
@${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4
.endif