freebsd-ports/lang/php73/Makefile

189 lines
4.6 KiB
Makefile
Raw Normal View History

# $FreeBSD$
PORTNAME= php73
lang/php73: Upgrade from 7.3.0 to 7.3.1 Changelog: Core: Fixed bug #76654 (Build failure on Mac OS X on 32-bit Intel). Fixed bug #71041 (zend_signal_startup() needs ZEND_API). Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line). Fixed bug #77291 (magic methods inherited from a trait may be ignored). CURL: Fixed bug #77264 (curl_getinfo returning microseconds, not seconds). COM: Fixed bug #77177 (Serializing or unserializing COM objects crashes). Exif: Fixed bug #77184 (Unsigned rational numbers are written out as signed rationals). GD: Fixed bug #77195 (Incorrect error handling of imagecreatefromjpeg()). Fixed bug #77198 (auto cropping has insufficient precision). Fixed bug #77200 (imagecropauto(…, GD_CROP_SIDES) crops left but not right). Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free). Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). MBString: Fixed bug #77367 (Negative size parameter in mb_split). Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). Fixed bug #77381 (heap buffer overflow in multibyte match_at). Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). Fixed bug #77385 (buffer overflow in fetch_token). Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). OCI8: Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working). Added oci_set_call_timeout() for call timeouts. Added oci_set_db_operation() for the DBOP end-to-end-tracing attribute. Opcache: Fixed bug #77215 (CFG assertion failure on multiple finalizing switch frees in one block). Fixed bug #77275 (OPcache optimization problem for ArrayAccess->offsetGet). PCRE: Fixed bug #77193 (Infinite loop in preg_replace_callback). PDO: Handle invalid index passed to PDOStatement::fetchColumn() as error. Phar: Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). Soap: Fixed bug #77088 (Segfault when using SoapClient with null options). Sockets: Fixed bug #77136 (Unsupported IPV6_RECVPKTINFO constants on macOS). Sodium: Fixed bug #77297 (SodiumException segfaults on PHP 7.3). SPL: Fixed bug #77359 (spl_autoload causes segfault). Fixed bug #77360 (class_uses causes segfault). SQLite3: Fixed bug #77051 (Issue with re-binding on SQLite3). Xmlrpc: Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). Changelog taken from: http://www.php.net/ChangeLog-7.php#7.3.1 Also removing the patch committed in r489721. The patch disables the use of ifuncs and is part of the new relase 7.3.1. MFH: 2019Q1
2019-01-14 12:05:43 +01:00
DISTVERSION= 7.3.1
PORTREVISION?= 1
CATEGORIES?= lang devel www
MASTER_SITES= PHP/distributions
DISTNAME= php-${DISTVERSION}
MAINTAINER= tz@FreeBSD.org
COMMENT= PHP Scripting Language
LICENSE= PHP301
USES+= tar:xz cpe gnome
CPE_PRODUCT= php
NO_OPTIONS_SORT=yes
.if !defined(PKGNAMESUFFIX)
LIB_DEPENDS= libpcre2-8.so:devel/pcre2 \
libargon2.so:security/libargon2
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--with-layout=GNU \
--with-config-file-scan-dir=${PREFIX}/etc/php \
--disable-all \
--enable-libxml \
--with-libxml-dir=${LOCALBASE} \
--with-pcre-regex=${LOCALBASE} \
--with-password-argon2=${LOCALBASE} \
--program-prefix=""
USES+= autoreconf:build
USE_GNOME= libxml2
# PR230207 Allow relocations against read-only segments (override lld default)
LDFLAGS_i386= -Wl,-z,notext
OPTIONS_DEFINE+=CLI CGI FPM EMBED PHPDBG DEBUG DTRACE IPV6 MYSQL LINKTHR ZTS
OPTIONS_DEFAULT=CLI CGI FPM EMBED MYSQL LINKTHR DTRACE
OPTIONS_EXCLUDE_DragonFly= DTRACE
# ld(1) fails to link probes: Relocations in generic ELF (EM: 0)
OPTIONS_EXCLUDE_aarch64= DTRACE
# dt_modtext:opensolaris/ib/libdtrace/common/dt_link.c: arm not impemented
OPTIONS_EXCLUDE_armv6= DTRACE
OPTIONS_EXCLUDE_armv7= DTRACE
# Bug 197128: No ASM code for MIPS/MIPS64, disable FPM
OPTIONS_EXCLUDE_mips= DTRACE FPM
OPTIONS_EXCLUDE_mips64= DTRACE FPM
OPTIONS_EXCLUDE_sparc64= DTRACE
OPTIONS_SUB= yes
CLI_DESC= Build CLI version
CGI_DESC= Build CGI version
FPM_DESC= Build FPM version
EMBED_DESC= Build embedded library
PHPDBG_DESC= Interactive PHP debugger
MYSQL_DESC= Build with MySQL Native Driver
LINKTHR_DESC= Link thread lib (for threaded extensions)
ZTS_DESC= Force Zend Thread Safety (ZTS) build
CONFLICTS= php56-* php70-* php71-* php72-*
DESTDIRNAME= INSTALL_ROOT
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MMYSQL}
CONFIGURE_ARGS+=--enable-mysqlnd
.endif
.if ${PORT_OPTIONS:MCLI}
PHP_SAPI+= cli
.else
CONFIGURE_ARGS+=--disable-cli
.endif
.if ${PORT_OPTIONS:MCGI}
PHP_SAPI+= cgi
.else
CONFIGURE_ARGS+=--disable-cgi
.endif
.if ${PORT_OPTIONS:MFPM}
PHP_SAPI+= fpm
USE_RC_SUBR+= php-fpm
CONFIGURE_ARGS+=--enable-fpm \
--with-fpm-user=${WWWOWN} \
--with-fpm-group=${WWWGRP}
.endif
.if defined(PKGNAMEPREFIX)
USES+= apache:2.2+
.include "${PORTSDIR}/Mk/Uses/apache.mk"
.if ${PORT_OPTIONS:MAP2FILTER}
CONFIGURE_ARGS+=--with-apxs2filter=${APXS}
.else
CONFIGURE_ARGS+=--with-apxs2=${APXS}
.endif
PLIST= ${PKGDIR}/pkg-plist.mod
PKGMESSAGE= ${PKGDIR}/pkg-message.mod
MODULENAME= libphp7
SHORTMODNAME= php7
WARNING= "!!! If you have a threaded Apache, you must build ${PHP_PORT} with ZTS support to enable thread-safety in extensions !!!"
.endif
.if ${PORT_OPTIONS:MEMBED}
PHP_SAPI+= embed
CONFIGURE_ARGS+=--enable-embed
.endif
.if ${PORT_OPTIONS:MPHPDBG}
PHP_SAPI+= phpdbg
CONFIGURE_ARGS+=--enable-phpdbg
.if ${PORT_OPTIONS:MDEBUG}
CONFIGURE_ARGS+=--enable-phpdbg-debug
.endif
.endif
.if ${PORT_OPTIONS:MCLI} || ${PORT_OPTIONS:MEMBED}
PLIST_SUB+= SAPI_INC=""
.else
PLIST_SUB+= SAPI_INC="@comment "
.endif
CONFIGURE_ENV+= ac_cv_decimal_fp_supported="no" \
lt_cv_path_SED="sed"
.if ${PORT_OPTIONS:MLINKTHR}
LIBS+= -lpthread
.endif
.if ${PORT_OPTIONS:MDEBUG}
CONFIGURE_ARGS+=--enable-debug
.endif
.if ${PORT_OPTIONS:MZTS}
CONFIGURE_ARGS+=--enable-maintainer-zts
CONFIGURE_ENV+= pthreads_working="yes"
.endif
.if ${PORT_OPTIONS:MDTRACE}
CONFIGURE_ARGS+=--enable-dtrace
PLIST_SUB+= DTRACE=""
.else
PLIST_SUB+= DTRACE="@comment "
.endif
.if empty(PORT_OPTIONS:MIPV6)
CONFIGURE_ARGS+=--disable-ipv6
.endif
post-patch:
@${TOUCH} ${WRKSRC}/ext/php_config.h
@${REINPLACE_CMD} "s|^\(extension_dir\)|; \1|" ${WRKSRC}/php.ini-*
.if ${PORT_OPTIONS:MFPM}
@${REINPLACE_CMD} -e "s|^;\(pid\)|\1|;s|^;\(pm\.[a-z_]*_servers\)|\1|" \
${WRKSRC}/sapi/fpm/php-fpm.conf.in
.endif
pre-configure:
@(cd ${WRKSRC} && ${SETENV} MAKE=${MAKE_CMD} ./buildconf --force)
.if !defined(PKGNAMEPREFIX)
post-build:
@${ECHO_CMD} "PHP_VER=73" > ${WRKDIR}/php.conf
@${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf
@${ECHO_CMD} "PHP_SAPI=${PHP_SAPI}" >> ${WRKDIR}/php.conf
@${ECHO_CMD} "PHP_EXT_INC=pcre spl" >> ${WRKDIR}/php.conf
@${ECHO_CMD} -n "PHP_EXT_DIR=" >> ${WRKDIR}/php.conf
@${SH} ${WRKSRC}/scripts/php-config --extension-dir | ${SED} -ne 's,^${PREFIX}/lib/php/,,p' >> ${WRKDIR}/php.conf
test: build
@(cd ${WRKSRC} && ${MAKE} test)
post-install:
${INSTALL_DATA} ${WRKSRC}/php.ini-development ${WRKSRC}/php.ini-production \
${WRKDIR}/php.conf ${STAGEDIR}/${PREFIX}/etc
.else
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR}
${INSTALL_LIB} ${WRKSRC}/libs/${MODULENAME}.so \
${STAGEDIR}${PREFIX}/${APACHEMODDIR}
.endif
.else
.include "${MASTERDIR}/Makefile.ext"
.endif
.include <bsd.port.post.mk>