diff --git a/lang/php81/Makefile b/lang/php81/Makefile index eecdfdc2114e..d8aa6a3deed3 100644 --- a/lang/php81/Makefile +++ b/lang/php81/Makefile @@ -1,630 +1,634 @@ PORTNAME= php81 DISTVERSION= 8.1.17 PORTREVISION?= 0 CATEGORIES?= lang devel www MASTER_SITES= PHP/distributions DISTNAME= php-${DISTVERSION} MAINTAINER= bofh@FreeBSD.org COMMENT= PHP Scripting Language (8.1.X branch) WWW= https://www.php.net/ LICENSE= PHP301 USES+= compiler:c11 cpe gnome pkgconfig tar:xz CPE_PRODUCT= php PHP_VER= 81 CONFLICTS_INSTALL?= php[0-9][0-9]${PKGNAMESUFFIX} .if !defined(PKGNAMESUFFIX) LIB_DEPENDS= libargon2.so:security/libargon2 \ libpcre2-8.so:devel/pcre2 GNU_CONFIGURE= yes CONFIGURE_ARGS+= --disable-all \ --program-prefix="" \ --with-config-file-scan-dir=${PREFIX}/etc/php \ --with-layout=GNU \ --with-libxml \ --with-openssl \ --with-password-argon2=${LOCALBASE} DESTDIRNAME= INSTALL_ROOT USES+= autoreconf:build ssl USE_GNOME= libxml2 CPPFLAGS= -I${LOCALBASE}/include LDFLAGS= -L${OPENSSLLIB} -lcrypto -lssl # PR230207 Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-z,notext OPTIONS_DEFINE+= CGI CLI DEBUG DTRACE EMBED FPM IPV6 LINKTHR \ MYSQLND PHPDBG ZTS OPTIONS_DEFAULT= CGI CLI DTRACE EMBED FPM LINKTHR MYSQLND 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_powerpc64= ${OPTIONS_EXCLUDE_${ARCH}_${OSREL:R}} OPTIONS_EXCLUDE_powerpc64_12= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE OPTIONS_EXCLUDE_sparc64= DTRACE NO_OPTIONS_SORT= yes OPTIONS_SUB= yes CGI_DESC= Build CGI version CLI_DESC= Build CLI version EMBED_DESC= Build embedded library FPM_DESC= Build FPM version LINKTHR_DESC= Link thread lib (for threaded extensions) MYSQLND_DESC= Build with MySQL Native Driver PHPDBG_DESC= Interactive PHP debugger ZTS_DESC= Force Zend Thread Safety (ZTS) build CGI_CONFIGURE_OFF= --disable-cgi CGI_VARS= PHP_SAPI+=cgi CLI_CONFIGURE_OFF= --disable-cli CLI_VARS= PHP_SAPI+=cli DEBUG_CONFIGURE_ON= --enable-debug DTRACE_CONFIGURE_ON= --enable-dtrace EMBED_CONFIGURE_ON= --enable-embed EMBED_VARS= PHP_SAPI+=embed FPM_CONFIGURE_ON= --enable-fpm \ --with-fpm-group=${WWWGRP} \ --with-fpm-user=${WWWOWN} FPM_VARS= PHP_SAPI+=fpm \ USE_RC_SUBR+=php-fpm IPV6_CONFIGURE_OFF= --disable-ipv6 LINKTHR_LIBS= -lpthread MYSQLND_CONFIGURE_ON= --enable-mysqlnd PHPDBG_CONFIGURE_ON= --enable-phpdbg PHPDBG_VARS= PHP_SAPI+=phpdbg ZTS_CONFIGURE_ON= --enable-zts ZTS_CONFIGURE_ENV= pthreads_working="yes" .if defined(PKGNAMEPREFIX) USES+= apache PLIST= ${PKGDIR}/pkg-plist.mod PKGMESSAGE= ${PKGDIR}/pkg-message.mod MODULENAME= libphp SHORTMODNAME= php WARNING= "!!! If you have a threaded Apache, you must build ${PHP_PORT} with ZTS support to enable thread-safety in extensions !!!" .endif .include .if ${ARCH} == riscv64 CONFIGURE_ARGS+= --without-pcre-jit .endif .if ${PORT_OPTIONS:MPHPDBG} && ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+= --enable-phpdbg-debug .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" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes post-patch: @${TOUCH} ${WRKSRC}/ext/php_config.h post-patch-FPM-on: @${REINPLACE_CMD} -e "s|^;\(pid\)|\1|;s|^;\(pm\.[a-z_]*_servers\)|\1|" \ ${WRKSRC}/sapi/fpm/php-fpm.conf.in pre-configure: @(cd ${WRKSRC} && ${SETENV} MAKE=${MAKE_CMD} ./buildconf --force) .if !defined(PKGNAMEPREFIX) post-build: @${ECHO_CMD} "PHP_VER=${PHP_VER}" > ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_SAPI=${PHP_SAPI}" >> ${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 @${ECHO_CMD} "PHP_EXT_INC=hash json openssl pcre spl" >> ${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 post-install-CGI-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/php-cgi post-install-PHPDBG-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/phpdbg post-install-CLI-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/php post-install-FPM-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/php-fpm post-install-EMBED-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libphp.so .else do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} ${INSTALL_LIB} ${WRKSRC}/libs/${MODULENAME}.so \ ${STAGEDIR}${PREFIX}/${APACHEMODDIR} .endif .else COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 81 IGNORE_WITH_PHP= 80 82 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} PATCHDIR= ${.CURDIR}/files PLIST= ${NONEXISTENT} EXTRACT_AFTER_ARGS?= ${EXTSUBDIR} TEST_TARGET= test .if ${PHP_MODNAME} == "bcmath" CONFIGURE_ARGS+= --enable-bcmath PHP_HEADER_DIRS= 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} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "dba" CONFIGURE_ARGS+= --enable-dba OPTIONS_DEFINE= CDB DB4 FLATFILE GDBM INIFILE LMDB QDBM TOKYO OPTIONS_DEFAULT= CDB FLATFILE INIFILE CDB_DESC= cdb database support DB4_DESC= Berkeley DB4 support FLATFILE_DESC= flatfile support GDBM_DESC= GDBM database support INIFILE_DESC= INI file support LMDB_DESC= LMDB database support QDBM_DESC= QDBM database support TOKYO_DESC= Tokyo Cabinet database support CDB_CONFIGURE_OFF= --without-cdb DB4_CONFIGURE_ON= --with-db4=${LOCALBASE} DB4_USES= bdb DB4_VARS= WITH_BDB_HIGHEST=yes FLATFILE_CONFIGURE_ON= --disable-flatfile GDBM_CONFIGURE_ARGS= --with-gdbm=${LOCALBASE} GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm INIFILE_CONFIGURE_OFF= --disable-inifile LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb LMDB_CONFIGURE_ARGS= --with-lmdb=${LOCALBASE} QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm QDBM_CONFIGURE_ARGS= --with-qdbm=${LOCALBASE} TOKYO_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet TOKYO_CONFIGURE_ON= --with-tcadb=${LOCALBASE} PHP_HEADER_DIRS= libcdb libflatfile libinifile .endif .if ${PHP_MODNAME} == "dom" CONFIGURE_ARGS+= --enable-dom USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "enchant" LIB_DEPENDS+= libenchant.so:textproc/enchant CONFIGURE_ARGS+= --with-enchant=${LOCALBASE} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "exif" CONFIGURE_ARGS+= --enable-exif .endif .if ${PHP_MODNAME} == "ffi" LIB_DEPENDS= libffi.so:devel/libffi CONFIGURE_ARGS+= --with-ffi .endif .if ${PHP_MODNAME} == "fileinfo" CONFIGURE_ARGS+= --enable-fileinfo PHP_HEADER_DIRS= libmagic .endif .if ${PHP_MODNAME} == "filter" CONFIGURE_ARGS+= --enable-filter .endif .if ${PHP_MODNAME} == "ftp" CONFIGURE_ARGS+= --enable-ftp CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= pkgconfig ssl .endif .if ${PHP_MODNAME} == "gd" LIB_DEPENDS= libfreetype.so:print/freetype2 \ libgd.so:graphics/gd \ libpng.so:graphics/png USES+= jpeg CONFIGURE_ARGS+= --enable-gd \ --with-external-gd EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions --exclude libgd \ php-${DISTVERSION}/ext/gd OPTIONS_DEFINE= JIS WEBP X11 JIS_DESC= Enable JIS-mapped Japanese font support WEBP_DESC= Enable WebP image format support X11_DESC= Enable XPM support JIS_CONFIGURE_ON= --enable-gd-jis-conv WEBP_CONFIGURE_ON= --with-webp WEBP_LIB_DEPENDS= libwebp.so:graphics/webp X11_CONFIGURE_ON= --with-xpm X11_USE= XORG=xpm X11_USES= xorg .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} == "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 PANDA_LIB_DEPENDS= libc-client.so.2010:mail/panda-cclient PANDA_LIB_DEPENDS_OFF= libc-client4.so.9:mail/cclient CONFIGURE_ARGS+= --with-imap-ssl=${OPENSSLBASE} \ --with-imap=${LOCALBASE} CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= ssl .endif .if ${PHP_MODNAME} == "intl" LIB_DEPENDS= libicui18n.so:devel/icu USES+= pkgconfig CPPFLAGS+= -DU_USING_ICU_NAMESPACE=1 .endif .if ${PHP_MODNAME} == "json" CONFIGURE_ARGS+= --enable-json BUILD_DEPENDS= re2c:devel/re2c .endif .if ${PHP_MODNAME} == "ldap" CONFIGURE_ARGS+= --with-ldap-sasl=${LOCALBASE} \ --with-ldap=${LOCALBASE} USES+= ldap .endif .if ${PHP_MODNAME} == "mbstring" CONFIGURE_ARGS+= --enable-mbstring OPTIONS_DEFINE= REGEX OPTIONS_DEFAULT= REGEX REGEX_DESC= Enable multibyte regex support REGEX_LIB_DEPENDS= libonig.so:devel/oniguruma REGEX_CONFIGURE_OFF= --disable-mbregex 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 MYSQLND_CONFIGURE_ON= --with-mysqli=mysqlnd MYSQLND_CONFIGURE_OFF= --with-mysqli=${LOCALBASE}/bin/mysql_config MYSQLND_USES_OFF= mysql .endif .if ${PHP_MODNAME} == "odbc" LIB_DEPENDS+= libodbc.so:databases/unixODBC CONFIGURE_ARGS+= --enable-odbc \ --with-unixODBC=${LOCALBASE} .endif .if ${PHP_MODNAME} == "opcache" # This is needed by Zend extensions, keep before everything. PHP_MOD_PRIO= 10 +.if ${ARCH} == aarch64 +CONFIGURE_ARGS+= --disable-opcache-jit +.else CONFIGURE_ARGS+= --enable-opcache .endif +.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 MSSQL_LIB_DEPENDS= libsybdb.so:databases/freetds MSSQL_LIB_DEPENDS_OFF= libct.so:databases/freetds .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 MYSQLND_CONFIGURE_OFF= --with-pdo-mysql=${LOCALBASE} \ --with-zlib-dir=/usr MYSQLND_USES_OFF= mysql MYSQLND_CONFIGURE_ON= --with-pdo-mysql=mysqlnd 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+= localbase 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 .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} == "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 USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "snmp" CONFIGURE_ARGS+= --with-snmp=${LOCALBASE} 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 USES+= pkgconfig 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+= localbase pkgconfig 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} == "xml" CONFIGURE_ARGS+= --enable-xml USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "xmlreader" CONFIGURE_ARGS+= --enable-xmlreader USE_GNOME= libxml2 USE_PHP= dom:build .endif .if ${PHP_MODNAME} == "xmlrpc" CONFIGURE_ARGS+= --with-iconv-dir=${LOCALBASE} \ --with-xmlrpc USES+= iconv:translit USE_GNOME= libxml2 PHP_HEADER_DIRS= libxmlrpc USE_PHP= xml:build .endif .if ${PHP_MODNAME} == "xmlwriter" CONFIGURE_ARGS+= --enable-xmlwriter USES+= pkgconfig 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+= --with-zip \ --with-zlib-dir=/usr USES+= pkgconfig .endif .if ${PHP_MODNAME} == "zlib" CONFIGURE_ARGS+= --with-zlib=/usr USES+= pkgconfig .endif .include .if ${PHP_MODNAME} == "sqlite3" || ${PHP_MODNAME} == "zlib" post-extract: @${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4 .endif .if ${PHP_MODNAME} == "xml" post-extract: @${MKDIR} ${WRKSRC}/ext/xml @${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml .endif .endif .include diff --git a/lang/php81/files/patch-TSRM_TSRM.c b/lang/php81/files/patch-TSRM_TSRM.c new file mode 100644 index 000000000000..f2e0059dcede --- /dev/null +++ b/lang/php81/files/patch-TSRM_TSRM.c @@ -0,0 +1,11 @@ +--- TSRM/TSRM.c.orig 2023-04-12 03:52:48 UTC ++++ TSRM/TSRM.c +@@ -750,7 +750,7 @@ TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void) + asm ("leal _tsrm_ls_cache@ntpoff,%0" + : "=r" (ret)); + return ret; +-#elif defined(__aarch64__) ++#elif defined(__aarch64__) && !defined(__FreeBSD__) + size_t ret; + + # ifdef __APPLE__ diff --git a/lang/php81/files/patch-build_Makefile.global b/lang/php81/files/patch-build_Makefile.global index 4b838d157941..d18a33114464 100644 --- a/lang/php81/files/patch-build_Makefile.global +++ b/lang/php81/files/patch-build_Makefile.global @@ -1,19 +1,19 @@ ---- build/Makefile.global.orig 2019-08-06 06:54:07 UTC +--- build/Makefile.global.orig 2023-03-14 19:50:20 UTC +++ build/Makefile.global -@@ -89,14 +89,14 @@ test: all +@@ -92,14 +92,14 @@ test: all @if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \ INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \ if test "$$INI_FILE"; then \ - $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \ + $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini || :; \ else \ echo > $(top_builddir)/tmp-php.ini; \ fi; \ INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \ if test "$$INI_SCANNED_PATH"; then \ INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \ - $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \ + $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini || :; \ fi; \ TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \ TEST_PHP_SRCDIR=$(top_srcdir) \ diff --git a/lang/php81/files/patch-configure.ac b/lang/php81/files/patch-configure.ac index b8c26f6c43f1..fae0134d0c7b 100644 --- a/lang/php81/files/patch-configure.ac +++ b/lang/php81/files/patch-configure.ac @@ -1,45 +1,45 @@ ---- configure.ac.orig 2021-12-15 02:00:45 UTC +--- configure.ac.orig 2023-03-14 19:50:20 UTC +++ configure.ac @@ -55,6 +55,7 @@ AH_BOTTOM([ #include +#include #endif /* PHP_CONFIG_H */ ]) @@ -273,7 +274,6 @@ sinclude(Zend/Zend.m4) dnl ---------------------------------------------------------------------------- -PTHREADS_CHECK PHP_HELP_SEPARATOR([SAPI modules:]) PHP_SHLIB_SUFFIX_NAMES PHP_BUILD_PROGRAM @@ -614,7 +614,7 @@ memmem \ AX_FUNC_WHICH_GETHOSTBYNAME_R dnl Some systems (like OpenSolaris) do not have nanosleep in libc. -PHP_CHECK_FUNC_LIB(nanosleep, rt) +PHP_CHECK_FUNC(nanosleep, rt) dnl Haiku does not have network api in libc. PHP_CHECK_FUNC_LIB(setsockopt, network) -@@ -1360,7 +1360,7 @@ EXPANDED_SYSCONFDIR=`eval echo $sysconfdir` +@@ -1372,7 +1372,7 @@ EXPANDED_SYSCONFDIR=`eval echo $sysconfdir` EXPANDED_DATADIR=$datadir EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` -INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR +INCLUDE_PATH=.:${prefix}/share/pear exec_prefix=$old_exec_prefix libdir=$old_libdir -@@ -1579,7 +1579,7 @@ PHP_SUBST(all_targets) +@@ -1591,7 +1591,7 @@ PHP_SUBST(all_targets) PHP_SUBST(install_targets) PHP_SUBST(install_binary_targets) -PHP_INSTALL_HEADERS([Zend/ TSRM/ include/ main/ main/streams/]) +PHP_INSTALL_HEADERS([Zend/ TSRM/ main/ main/streams/]) PHP_INSTALL_HEADERS([Zend/Optimizer], [ \ zend_call_graph.h \ zend_cfg.h \ diff --git a/lang/php81/files/patch-ext_mysqli_mysqli__nonapi.c b/lang/php81/files/patch-ext_mysqli_mysqli__nonapi.c index 9baa04218bf9..e7de52f5be9d 100644 --- a/lang/php81/files/patch-ext_mysqli_mysqli__nonapi.c +++ b/lang/php81/files/patch-ext_mysqli_mysqli__nonapi.c @@ -1,12 +1,12 @@ ---- ext/mysqli/mysqli_nonapi.c.orig 2020-01-09 11:40:57 UTC +--- ext/mysqli/mysqli_nonapi.c.orig 2023-03-14 19:50:20 UTC +++ ext/mysqli/mysqli_nonapi.c -@@ -28,7 +28,9 @@ +@@ -26,7 +26,9 @@ #include "php_ini.h" #include "ext/standard/info.h" #include "zend_smart_str.h" +#if defined(MYSQLI_USE_MYSQLND) #include "php_mysqli_structs.h" +#endif #include "mysqli_priv.h" + #define ERROR_ARG_POS(arg_num) (getThis() ? (arg_num-1) : (arg_num)) - #define SAFE_STR(a) ((a)?a:"") diff --git a/lang/php81/files/patch-ext_mysqli_mysqli__prop.c b/lang/php81/files/patch-ext_mysqli_mysqli__prop.c index 37d47a304440..26983cb2dbf9 100644 --- a/lang/php81/files/patch-ext_mysqli_mysqli__prop.c +++ b/lang/php81/files/patch-ext_mysqli_mysqli__prop.c @@ -1,12 +1,12 @@ ---- ext/mysqli/mysqli_prop.c.orig 2020-01-09 11:40:11 UTC +--- ext/mysqli/mysqli_prop.c.orig 2023-03-14 19:50:20 UTC +++ ext/mysqli/mysqli_prop.c -@@ -26,7 +26,9 @@ +@@ -24,7 +24,9 @@ #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" +#if defined(MYSQLI_USE_MYSQLND) #include "php_mysqli_structs.h" +#endif #include "mysqli_priv.h" - #define CHECK_STATUS(value) \ + #define CHECK_STATUS(value, quiet) \ diff --git a/lang/php81/files/patch-ext_mysqli_php__mysqli__structs.h b/lang/php81/files/patch-ext_mysqli_php__mysqli__structs.h index f0e33efd03aa..6884caf3f9f8 100644 --- a/lang/php81/files/patch-ext_mysqli_php__mysqli__structs.h +++ b/lang/php81/files/patch-ext_mysqli_php__mysqli__structs.h @@ -1,11 +1,11 @@ ---- ext/mysqli/php_mysqli_structs.h.orig 2019-12-17 10:29:23 UTC +--- ext/mysqli/php_mysqli_structs.h.orig 2023-03-14 19:50:20 UTC +++ ext/mysqli/php_mysqli_structs.h -@@ -36,7 +36,7 @@ - #define FALSE 0 +@@ -26,7 +26,7 @@ + #undef LIST #endif -#ifdef MYSQLI_USE_MYSQLND +#if defined(MYSQLI_USE_MYSQLND) #include "ext/mysqlnd/mysqlnd.h" #include "mysqli_mysqlnd.h" #else diff --git a/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h b/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h index 9a75bc3e86c1..0711e717f932 100644 --- a/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h +++ b/lang/php81/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h @@ -1,11 +1,11 @@ ---- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig 2022-03-25 09:54:56 UTC +--- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig 2023-03-14 19:50:20 UTC +++ ext/pcre/pcre2lib/sljit/sljitConfigInternal.h -@@ -283,7 +283,7 @@ +@@ -319,7 +319,7 @@ extern "C" { /* Instruction cache flush. */ /****************************/ -#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin) +#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32) #if __has_builtin(__builtin___clear_cache) #define SLJIT_CACHE_FLUSH(from, to) \ diff --git a/lang/php81/files/patch-sapi_apache2handler_config.m4 b/lang/php81/files/patch-sapi_apache2handler_config.m4 index 5b0cfb9d4591..3a33d9ad7f21 100644 --- a/lang/php81/files/patch-sapi_apache2handler_config.m4 +++ b/lang/php81/files/patch-sapi_apache2handler_config.m4 @@ -1,11 +1,11 @@ ---- sapi/apache2handler/config.m4.orig 2018-08-14 11:39:14 UTC +--- sapi/apache2handler/config.m4.orig 2023-03-14 19:50:20 UTC +++ sapi/apache2handler/config.m4 -@@ -65,7 +65,7 @@ if test "$PHP_APXS2" != "no"; then +@@ -64,7 +64,7 @@ if test "$PHP_APXS2" != "no"; then fi APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` - if test -z `$APXS -q SYSCONFDIR`; then + if true; then INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ - -i -n php7" + -i -n php" diff --git a/lang/php81/files/patch-sapi_fpm_config.m4 b/lang/php81/files/patch-sapi_fpm_config.m4 index e88c204384ae..6da0b1f4f40c 100644 --- a/lang/php81/files/patch-sapi_fpm_config.m4 +++ b/lang/php81/files/patch-sapi_fpm_config.m4 @@ -1,11 +1,11 @@ ---- sapi/fpm/config.m4.orig 2018-08-14 11:39:14 UTC +--- sapi/fpm/config.m4.orig 2023-03-14 19:50:20 UTC +++ sapi/fpm/config.m4 -@@ -319,7 +319,7 @@ AC_DEFUN([AC_FPM_LQ], +@@ -315,7 +315,7 @@ AC_DEFUN([AC_FPM_LQ], AC_MSG_RESULT([no]) ]) - if test "$have_lq" = "tcp_info"; then + if test "$have_lq" = "so_listenq"; then AC_DEFINE([HAVE_LQ_TCP_INFO], 1, [do we have TCP_INFO?]) fi diff --git a/lang/php81/files/patch-sapi_fpm_www.conf.in b/lang/php81/files/patch-sapi_fpm_www.conf.in index c7e7fe399854..ebe34421ef0f 100644 --- a/lang/php81/files/patch-sapi_fpm_www.conf.in +++ b/lang/php81/files/patch-sapi_fpm_www.conf.in @@ -1,17 +1,17 @@ ---- sapi/fpm/www.conf.in.orig 2019-01-26 15:54:27 UTC +--- sapi/fpm/www.conf.in.orig 2023-03-14 19:50:20 UTC +++ sapi/fpm/www.conf.in -@@ -27,10 +27,14 @@ group = @php_fpm_group@ +@@ -32,10 +32,14 @@ group = @php_fpm_group@ ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; a specific port; +; '0.0.0.0:port' - to listen on a TCP socket to all IPv4 addresses on +; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; ; 'port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; +; Note: IPv4-mapped addresses are disabled by-default in +; FreeBSD for security reasons; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = 127.0.0.1:9000 diff --git a/lang/php82/Makefile b/lang/php82/Makefile index 67f06b08868c..ecbc964bad66 100644 --- a/lang/php82/Makefile +++ b/lang/php82/Makefile @@ -1,632 +1,636 @@ PORTNAME= php82 DISTVERSION= 8.2.4 PORTREVISION?= 0 CATEGORIES?= lang devel www MASTER_SITES= PHP/distributions DISTNAME= php-${DISTVERSION} MAINTAINER= bofh@FreeBSD.org COMMENT= PHP Scripting Language (8.2.X branch) WWW= https://www.php.net/ LICENSE= PHP301 USES+= compiler:c11 cpe gnome pkgconfig tar:xz CPE_PRODUCT= php PHP_VER= 82 CONFLICTS_INSTALL?= php[0-9][0-9]${PKGNAMESUFFIX} .if !defined(PKGNAMESUFFIX) LIB_DEPENDS= libargon2.so:security/libargon2 \ libpcre2-8.so:devel/pcre2 GNU_CONFIGURE= yes CONFIGURE_ARGS+= --disable-all \ --program-prefix="" \ --with-config-file-scan-dir=${PREFIX}/etc/php \ --with-layout=GNU \ --with-libxml \ --with-openssl \ --with-password-argon2=${LOCALBASE} DESTDIRNAME= INSTALL_ROOT USES+= autoreconf:build ssl USE_GNOME= libxml2 CPPFLAGS= -I${LOCALBASE}/include LDFLAGS= -L${OPENSSLLIB} -lcrypto -lssl # PR230207 Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-z,notext OPTIONS_DEFINE+= CGI CLI DEBUG DTRACE EMBED FPM IPV6 LINKTHR \ MYSQLND PHPDBG ZTS OPTIONS_DEFAULT= CGI CLI DTRACE EMBED FPM LINKTHR MYSQLND 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_powerpc64= ${OPTIONS_EXCLUDE_${ARCH}_${OSREL:R}} OPTIONS_EXCLUDE_powerpc64_12= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE OPTIONS_EXCLUDE_sparc64= DTRACE NO_OPTIONS_SORT= yes OPTIONS_SUB= yes CGI_DESC= Build CGI version CLI_DESC= Build CLI version EMBED_DESC= Build embedded library FPM_DESC= Build FPM version LINKTHR_DESC= Link thread lib (for threaded extensions) MYSQLND_DESC= Build with MySQL Native Driver PHPDBG_DESC= Interactive PHP debugger ZTS_DESC= Force Zend Thread Safety (ZTS) build CGI_CONFIGURE_OFF= --disable-cgi CGI_VARS= PHP_SAPI+=cgi CLI_CONFIGURE_OFF= --disable-cli CLI_VARS= PHP_SAPI+=cli DEBUG_CONFIGURE_ON= --enable-debug DTRACE_CONFIGURE_ON= --enable-dtrace EMBED_CONFIGURE_ON= --enable-embed EMBED_VARS= PHP_SAPI+=embed FPM_CONFIGURE_ON= --enable-fpm \ --with-fpm-group=${WWWGRP} \ --with-fpm-user=${WWWOWN} FPM_VARS= PHP_SAPI+=fpm \ USE_RC_SUBR+=php-fpm IPV6_CONFIGURE_OFF= --disable-ipv6 LINKTHR_LIBS= -lpthread MYSQLND_CONFIGURE_ON= --enable-mysqlnd PHPDBG_CONFIGURE_ON= --enable-phpdbg PHPDBG_VARS= PHP_SAPI+=phpdbg ZTS_CONFIGURE_ON= --enable-zts ZTS_CONFIGURE_ENV= pthreads_working="yes" .if defined(PKGNAMEPREFIX) USES+= apache PLIST= ${PKGDIR}/pkg-plist.mod PKGMESSAGE= ${PKGDIR}/pkg-message.mod MODULENAME= libphp SHORTMODNAME= php WARNING= "!!! If you have a threaded Apache, you must build ${PHP_PORT} with ZTS support to enable thread-safety in extensions !!!" .endif .include .if ${ARCH} == riscv64 CONFIGURE_ARGS+= --without-pcre-jit .endif .if ${PORT_OPTIONS:MPHPDBG} && ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+= --enable-phpdbg-debug .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" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes post-patch: @${TOUCH} ${WRKSRC}/ext/php_config.h post-patch-FPM-on: @${REINPLACE_CMD} -e "s|^;\(pid\)|\1|;s|^;\(pm\.[a-z_]*_servers\)|\1|" \ ${WRKSRC}/sapi/fpm/php-fpm.conf.in pre-configure: @(cd ${WRKSRC} && ${SETENV} MAKE=${MAKE_CMD} ./buildconf --force) .if !defined(PKGNAMEPREFIX) post-build: @${ECHO_CMD} "PHP_VER=${PHP_VER}" > ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_SAPI=${PHP_SAPI}" >> ${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 @${ECHO_CMD} "PHP_EXT_INC=hash json openssl pcre random spl" >> ${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 post-install-CLI-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/php post-install-CGI-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/php-cgi post-install-EMBED-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/lib/libphp.so post-install-FPM-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/sbin/php-fpm post-install-PHPDBG-on: ${STRIP_CMD} ${STAGEDIR}/${PREFIX}/bin/phpdbg .else do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${APACHEMODDIR} ${INSTALL_LIB} ${WRKSRC}/libs/${MODULENAME}.so \ ${STAGEDIR}${PREFIX}/${APACHEMODDIR} .endif .else COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 82 IGNORE_WITH_PHP= 80 81 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} PATCHDIR= ${.CURDIR}/files PLIST= ${NONEXISTENT} EXTRACT_AFTER_ARGS?= ${EXTSUBDIR} TEST_TARGET= test .if ${PHP_MODNAME} == "bcmath" CONFIGURE_ARGS+= --enable-bcmath PHP_HEADER_DIRS= 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} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "dba" CONFIGURE_ARGS+= --enable-dba OPTIONS_DEFINE= CDB DB4 FLATFILE GDBM INIFILE LMDB QDBM TOKYO OPTIONS_DEFAULT= CDB FLATFILE INIFILE CDB_DESC= cdb database support DB4_DESC= Berkeley DB4 support FLATFILE_DESC= flatfile support GDBM_DESC= GDBM database support INIFILE_DESC= INI file support LMDB_DESC= LMDB database support QDBM_DESC= QDBM database support TOKYO_DESC= Tokyo Cabinet database support CDB_CONFIGURE_OFF= --without-cdb DB4_CONFIGURE_ON= --with-db4=${LOCALBASE} DB4_USES= bdb DB4_VARS= WITH_BDB_HIGHEST=yes FLATFILE_CONFIGURE_ON= --disable-flatfile GDBM_CONFIGURE_ARGS= --with-gdbm=${LOCALBASE} GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm INIFILE_CONFIGURE_OFF= --disable-inifile LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb LMDB_CONFIGURE_ARGS= --with-lmdb=${LOCALBASE} QDBM_LIB_DEPENDS= libqdbm.so:databases/qdbm QDBM_CONFIGURE_ARGS= --with-qdbm=${LOCALBASE} TOKYO_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet TOKYO_CONFIGURE_ON= --with-tcadb=${LOCALBASE} PHP_HEADER_DIRS= libcdb libflatfile libinifile .endif .if ${PHP_MODNAME} == "dom" CONFIGURE_ARGS+= --enable-dom USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "enchant" LIB_DEPENDS+= libenchant.so:textproc/enchant CONFIGURE_ARGS+= --with-enchant=${LOCALBASE} USES+= pkgconfig .endif .if ${PHP_MODNAME} == "exif" CONFIGURE_ARGS+= --enable-exif .endif .if ${PHP_MODNAME} == "ffi" LIB_DEPENDS= libffi.so:devel/libffi CONFIGURE_ARGS+= --with-ffi .endif .if ${PHP_MODNAME} == "fileinfo" CONFIGURE_ARGS+= --enable-fileinfo PHP_HEADER_DIRS= libmagic .endif .if ${PHP_MODNAME} == "filter" CONFIGURE_ARGS+= --enable-filter .endif .if ${PHP_MODNAME} == "ftp" CONFIGURE_ARGS+= --enable-ftp CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= pkgconfig ssl .endif .if ${PHP_MODNAME} == "gd" LIB_DEPENDS= libfreetype.so:print/freetype2 \ libgd.so:graphics/gd \ libpng.so:graphics/png USES+= jpeg CONFIGURE_ARGS+= --enable-gd \ --with-external-gd EXTRACT_AFTER_ARGS= --no-same-owner --no-same-permissions --exclude libgd \ php-${DISTVERSION}/ext/gd OPTIONS_DEFINE= JIS WEBP X11 JIS_DESC= Enable JIS-mapped Japanese font support WEBP_DESC= Enable WebP image format support X11_DESC= Enable XPM support JIS_CONFIGURE_ON= --enable-gd-jis-conv WEBP_CONFIGURE_ON= --with-webp WEBP_LIB_DEPENDS= libwebp.so:graphics/webp X11_CONFIGURE_ON= --with-xpm X11_USE= XORG=xpm X11_USES= xorg .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} == "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 PANDA_LIB_DEPENDS= libc-client.so.2010:mail/panda-cclient PANDA_LIB_DEPENDS_OFF= libc-client4.so.9:mail/cclient CONFIGURE_ARGS+= --with-imap-ssl=${OPENSSLBASE} \ --with-imap=${LOCALBASE} CONFIGURE_ENV+= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto" \ PHP_OPENSSL=yes LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl USES+= ssl .endif .if ${PHP_MODNAME} == "intl" LIB_DEPENDS= libicui18n.so:devel/icu USES+= pkgconfig CPPFLAGS+= -DU_USING_ICU_NAMESPACE=1 .endif .if ${PHP_MODNAME} == "json" CONFIGURE_ARGS+= --enable-json BUILD_DEPENDS= re2c:devel/re2c .endif .if ${PHP_MODNAME} == "ldap" CONFIGURE_ARGS+= --with-ldap-sasl=${LOCALBASE} \ --with-ldap=${LOCALBASE} USES+= ldap .endif .if ${PHP_MODNAME} == "mbstring" CONFIGURE_ARGS+= --enable-mbstring OPTIONS_DEFINE= REGEX OPTIONS_DEFAULT= REGEX REGEX_DESC= Enable multibyte regex support REGEX_LIB_DEPENDS= libonig.so:devel/oniguruma REGEX_CONFIGURE_OFF= --disable-mbregex 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 MYSQLND_CONFIGURE_ON= --with-mysqli=mysqlnd MYSQLND_CONFIGURE_OFF= --with-mysqli=${LOCALBASE}/bin/mysql_config MYSQLND_USES_OFF= mysql .endif .if ${PHP_MODNAME} == "odbc" LIB_DEPENDS+= libodbc.so:databases/unixODBC CONFIGURE_ARGS+= --enable-odbc \ --with-unixODBC=${LOCALBASE} .endif .if ${PHP_MODNAME} == "opcache" # This is needed by Zend extensions, keep before everything. PHP_MOD_PRIO= 10 -CONFIGURE_ARGS+= --enable-opcache +.if ${ARCH} == aarch64 +CONFIGURE_ARGS+= --disable-opcache-jit +.else +CONFIGURE_ARGS+= --enable-opcache +.endif .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 MSSQL_LIB_DEPENDS= libsybdb.so:databases/freetds MSSQL_LIB_DEPENDS_OFF= libct.so:databases/freetds .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 MYSQLND_CONFIGURE_OFF= --with-pdo-mysql=${LOCALBASE} \ --with-zlib-dir=/usr MYSQLND_USES_OFF= mysql MYSQLND_CONFIGURE_ON= --with-pdo-mysql=mysqlnd 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+= localbase 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 .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} == "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 USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "snmp" CONFIGURE_ARGS+= --with-snmp=${LOCALBASE} 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 USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "sockets" CONFIGURE_ARGS+= --enable-sockets CONFIGURE_ENV+= LOCAL_CREDS_PERSISTENT=yes .endif .if ${PHP_MODNAME} == "sodium" CONFIGURE_ARGS+= --with-sodium=${LOCALBASE} LIB_DEPENDS+= libsodium.so:security/libsodium .endif .if ${PHP_MODNAME} == "sqlite3" USES+= localbase pkgconfig 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} == "xml" CONFIGURE_ARGS+= --enable-xml USES+= pkgconfig USE_GNOME= libxml2 .endif .if ${PHP_MODNAME} == "xmlreader" CONFIGURE_ARGS+= --enable-xmlreader USE_GNOME= libxml2 USE_PHP= dom:build .endif .if ${PHP_MODNAME} == "xmlrpc" CONFIGURE_ARGS+= --with-iconv-dir=${LOCALBASE} \ --with-xmlrpc USES+= iconv:translit USE_GNOME= libxml2 PHP_HEADER_DIRS= libxmlrpc USE_PHP= xml:build .endif .if ${PHP_MODNAME} == "xmlwriter" CONFIGURE_ARGS+= --enable-xmlwriter USES+= pkgconfig 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+= --with-zip \ --with-zlib-dir=/usr USES+= pkgconfig .endif .if ${PHP_MODNAME} == "zlib" CONFIGURE_ARGS+= --with-zlib=/usr USES+= pkgconfig .endif .include .if ${PHP_MODNAME} == "sqlite3" || ${PHP_MODNAME} == "zlib" post-extract: @${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4 .endif .if ${PHP_MODNAME} == "xml" post-extract: @${MKDIR} ${WRKSRC}/ext/xml @${CP} ${WRKSRC}/expat_compat.h ${WRKSRC}/ext/xml .endif .endif .include diff --git a/lang/php82/files/patch-TSRM_TSRM.c b/lang/php82/files/patch-TSRM_TSRM.c new file mode 100644 index 000000000000..3746de1d8b36 --- /dev/null +++ b/lang/php82/files/patch-TSRM_TSRM.c @@ -0,0 +1,11 @@ +--- TSRM/TSRM.c.orig 2023-04-12 04:09:40 UTC ++++ TSRM/TSRM.c +@@ -740,7 +740,7 @@ TSRM_API size_t tsrm_get_ls_cache_tcb_offset(void) + asm ("leal _tsrm_ls_cache@ntpoff,%0" + : "=r" (ret)); + return ret; +-#elif defined(__aarch64__) ++#elif defined(__aarch64__) && !defined(__FreeBSD__) + size_t ret; + + # ifdef __APPLE__ diff --git a/lang/php82/files/patch-configure.ac b/lang/php82/files/patch-configure.ac index edf17428ebee..242c702f4b8d 100644 --- a/lang/php82/files/patch-configure.ac +++ b/lang/php82/files/patch-configure.ac @@ -1,45 +1,45 @@ ---- configure.ac.orig 2022-08-02 13:57:03 UTC +--- configure.ac.orig 2023-03-14 16:11:05 UTC +++ configure.ac @@ -55,6 +55,7 @@ AH_BOTTOM([ #include +#include #endif /* PHP_CONFIG_H */ ]) -@@ -279,7 +280,6 @@ dnl -------------------------------------------------- +@@ -279,7 +280,6 @@ sinclude(Zend/Zend.m4) dnl ---------------------------------------------------------------------------- -PTHREADS_CHECK PHP_HELP_SEPARATOR([SAPI modules:]) PHP_SHLIB_SUFFIX_NAMES PHP_BUILD_PROGRAM -@@ -627,7 +627,7 @@ dnl Some systems (like OpenSolaris) do not have nanosl +@@ -626,7 +626,7 @@ memrchr \ AX_FUNC_WHICH_GETHOSTBYNAME_R dnl Some systems (like OpenSolaris) do not have nanosleep in libc. -PHP_CHECK_FUNC_LIB(nanosleep, rt) +PHP_CHECK_FUNC(nanosleep, rt) dnl Haiku does not have network api in libc. PHP_CHECK_FUNC_LIB(setsockopt, network) -@@ -1375,7 +1375,7 @@ EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CON +@@ -1413,7 +1413,7 @@ EXPANDED_SYSCONFDIR=`eval echo $sysconfdir` EXPANDED_DATADIR=$datadir EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` -INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR +INCLUDE_PATH=.:${prefix}/share/pear exec_prefix=$old_exec_prefix libdir=$old_libdir -@@ -1600,7 +1600,7 @@ PHP_SUBST(install_binary_targets) +@@ -1638,7 +1638,7 @@ PHP_SUBST(all_targets) PHP_SUBST(install_targets) PHP_SUBST(install_binary_targets) -PHP_INSTALL_HEADERS([Zend/ TSRM/ include/ main/ main/streams/]) +PHP_INSTALL_HEADERS([Zend/ TSRM/ main/ main/streams/]) PHP_INSTALL_HEADERS([Zend/Optimizer], [ \ zend_call_graph.h \ zend_cfg.h \ diff --git a/lang/php82/files/patch-ext_hash_xxhash_xxhash.h b/lang/php82/files/patch-ext_hash_xxhash_xxhash.h index 714a074f7050..141fdc0c515c 100644 --- a/lang/php82/files/patch-ext_hash_xxhash_xxhash.h +++ b/lang/php82/files/patch-ext_hash_xxhash_xxhash.h @@ -1,46 +1,46 @@ ---- ext/hash/xxhash/xxhash.h.orig 2022-08-02 13:57:03 UTC +--- ext/hash/xxhash/xxhash.h.orig 2023-03-14 16:11:05 UTC +++ ext/hash/xxhash/xxhash.h -@@ -3048,22 +3048,32 @@ enum XXH_VECTOR_TYPE /* fake enum */ { +@@ -3047,22 +3047,32 @@ enum XXH_VECTOR_TYPE /* fake enum */ { * inconsistent intrinsics, spotty coverage, and multiple endiannesses. */ #if XXH_VECTOR == XXH_VSX +/* Annoyingly, these headers _may_ define three macros: `bool`, `vector`, + * and `pixel`. This is a problem for obvious reasons. + * + * These keywords are unnecessary; the spec literally says they are + * equivalent to `__bool`, `__vector`, and `__pixel` and may be undef'd + * after including the header. + * + * We use pragma push_macro/pop_macro to keep the namespace clean. */ +# pragma push_macro("bool") +# pragma push_macro("vector") +# pragma push_macro("pixel") +/* silence potential macro redefined warnings */ +# undef bool +# undef vector +# undef pixel + # if defined(__s390x__) # include # else -/* gcc's altivec.h can have the unwanted consequence to unconditionally - * #define bool, vector, and pixel keywords, - * with bad consequences for programs already using these keywords for other purposes. - * The paragraph defining these macros is skipped when __APPLE_ALTIVEC__ is defined. - * __APPLE_ALTIVEC__ is _generally_ defined automatically by the compiler, - * but it seems that, in some cases, it isn't. - * Force the build macro to be defined, so that keywords are not altered. - */ -# if defined(__GNUC__) && !defined(__APPLE_ALTIVEC__) -# define __APPLE_ALTIVEC__ -# endif # include # endif + +/* Restore the original macro values, if applicable. */ +# pragma pop_macro("pixel") +# pragma pop_macro("vector") +# pragma pop_macro("bool") typedef __vector unsigned long long xxh_u64x2; typedef __vector unsigned char xxh_u8x16; diff --git a/lang/php82/files/patch-sapi_apache2handler_config.m4 b/lang/php82/files/patch-sapi_apache2handler_config.m4 index 5b0cfb9d4591..a68054d116c2 100644 --- a/lang/php82/files/patch-sapi_apache2handler_config.m4 +++ b/lang/php82/files/patch-sapi_apache2handler_config.m4 @@ -1,11 +1,11 @@ ---- sapi/apache2handler/config.m4.orig 2018-08-14 11:39:14 UTC +--- sapi/apache2handler/config.m4.orig 2023-03-14 16:11:05 UTC +++ sapi/apache2handler/config.m4 -@@ -65,7 +65,7 @@ if test "$PHP_APXS2" != "no"; then +@@ -64,7 +64,7 @@ if test "$PHP_APXS2" != "no"; then fi APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` - if test -z `$APXS -q SYSCONFDIR`; then + if true; then INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ - -i -n php7" + -i -n php" diff --git a/lang/php82/files/patch-sapi_fpm_config.m4 b/lang/php82/files/patch-sapi_fpm_config.m4 index e88c204384ae..8f6824fdd4e8 100644 --- a/lang/php82/files/patch-sapi_fpm_config.m4 +++ b/lang/php82/files/patch-sapi_fpm_config.m4 @@ -1,11 +1,11 @@ ---- sapi/fpm/config.m4.orig 2018-08-14 11:39:14 UTC +--- sapi/fpm/config.m4.orig 2023-03-14 16:11:05 UTC +++ sapi/fpm/config.m4 -@@ -319,7 +319,7 @@ AC_DEFUN([AC_FPM_LQ], +@@ -339,7 +339,7 @@ AC_DEFUN([AC_FPM_LQ], AC_MSG_RESULT([no]) ]) - if test "$have_lq" = "tcp_info"; then + if test "$have_lq" = "so_listenq"; then AC_DEFINE([HAVE_LQ_TCP_INFO], 1, [do we have TCP_INFO?]) fi diff --git a/lang/php82/files/patch-sapi_fpm_www.conf.in b/lang/php82/files/patch-sapi_fpm_www.conf.in index c7e7fe399854..c7465018244d 100644 --- a/lang/php82/files/patch-sapi_fpm_www.conf.in +++ b/lang/php82/files/patch-sapi_fpm_www.conf.in @@ -1,17 +1,17 @@ ---- sapi/fpm/www.conf.in.orig 2019-01-26 15:54:27 UTC +--- sapi/fpm/www.conf.in.orig 2023-03-14 16:11:05 UTC +++ sapi/fpm/www.conf.in -@@ -27,10 +27,14 @@ group = @php_fpm_group@ +@@ -32,10 +32,14 @@ group = @php_fpm_group@ ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; a specific port; +; '0.0.0.0:port' - to listen on a TCP socket to all IPv4 addresses on +; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; ; 'port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; +; Note: IPv4-mapped addresses are disabled by-default in +; FreeBSD for security reasons; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = 127.0.0.1:9000