diff options
116 files changed, 2387 insertions, 6 deletions
diff --git a/Mk/Uses/php.mk b/Mk/Uses/php.mk index 39d91019af7b..07a5193dce92 100644 --- a/Mk/Uses/php.mk +++ b/Mk/Uses/php.mk @@ -110,7 +110,7 @@ DIST_SUBDIR= PECL PHPBASE?= ${LOCALBASE} -_ALL_PHP_VERSIONS= 80 81 82 +_ALL_PHP_VERSIONS= 80 81 82 83 # Make the already installed PHP the default one. . if exists(${PHPBASE}/etc/php.conf) @@ -179,7 +179,10 @@ PHP_VER= ${FLAVOR:S/^php//} (${FLAVOR:Mphp[0-9][0-9]} && ${FLAVOR} != ${FLAVORS:[1]}) # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -. if ${PHP_VER} == 82 +. if ${PHP_VER} == 83 +PHP_EXT_DIR= 20220830 +PHP_EXT_INC= hash json openssl pcre random spl +. elif ${PHP_VER} == 82 PHP_EXT_DIR= 20220829 PHP_EXT_INC= hash json openssl pcre random spl . elif ${PHP_VER} == 81 @@ -383,6 +386,7 @@ _USE_PHP_ALL= bcmath bitset bz2 calendar ctype curl dba dom \ _USE_PHP_VER80= ${_USE_PHP_ALL} _USE_PHP_VER81= ${_USE_PHP_ALL} _USE_PHP_VER82= ${_USE_PHP_ALL} +_USE_PHP_VER83= ${_USE_PHP_ALL} bcmath_DEPENDS= math/php${PHP_VER}-bcmath bitset_DEPENDS= math/pecl-bitset@${PHP_FLAVOR} diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index a2ce9ffc99eb..f173a3e1b72a 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -118,7 +118,7 @@ PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R} . endif # Possible values: 11, 12, 13, 14, 15 PGSQL_DEFAULT?= 13 -# Possible values: 8.0, 8.1, 8.2 +# Possible values: 8.0, 8.1, 8.2 8.3 PHP_DEFAULT?= 8.1 # Possible values: 2.7, 3.7, 3.8, 3.9, 3.10, 3.11 PYTHON_DEFAULT?= 3.9 diff --git a/archivers/Makefile b/archivers/Makefile index f94187aeed97..bb18abda91cd 100644 --- a/archivers/Makefile +++ b/archivers/Makefile @@ -170,6 +170,10 @@ SUBDIR += php82-phar SUBDIR += php82-zip SUBDIR += php82-zlib + SUBDIR += php83-bz2 + SUBDIR += php83-phar + SUBDIR += php83-zip + SUBDIR += php83-zlib SUBDIR += pigz SUBDIR += pixz SUBDIR += plzip diff --git a/archivers/php83-bz2/Makefile b/archivers/php83-bz2/Makefile new file mode 100644 index 000000000000..d9dc09ebbe8c --- /dev/null +++ b/archivers/php83-bz2/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= archivers + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -bz2 + +.include "${MASTERDIR}/Makefile" diff --git a/archivers/php83-phar/Makefile b/archivers/php83-phar/Makefile new file mode 100644 index 000000000000..3ec86adea302 --- /dev/null +++ b/archivers/php83-phar/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= archivers + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -phar + +.include "${MASTERDIR}/Makefile" diff --git a/archivers/php83-phar/files/patch-config.m4 b/archivers/php83-phar/files/patch-config.m4 new file mode 100644 index 000000000000..b17f5099072c --- /dev/null +++ b/archivers/php83-phar/files/patch-config.m4 @@ -0,0 +1,41 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -4,8 +4,38 @@ PHP_ARG_ENABLE([phar], + [Disable phar support])], + [yes]) + ++PHP_ARG_WITH(pcre-dir, pcre install prefix, ++[ --with-pcre-dir PHAR: pcre install prefix], no, no) ++ ++ + if test "$PHP_PHAR" != "no"; then ++ ++ dnl This is PECL build, check if bundled PCRE library is used ++ old_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS=$INCLUDES ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=yes ++ ],[ ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=pecl ++ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) ++ ],[ ++ PHP_PCRE_REGEX=no ++ ]) ++ ]) ++ + PHP_NEW_EXTENSION(phar, util.c tar.c zip.c stream.c func_interceptors.c dirstream.c phar.c phar_object.c phar_path_check.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) ++ PHP_HASH=yes + AC_MSG_CHECKING([for phar openssl support]) + if test "$PHP_OPENSSL_SHARED" = "yes"; then + AC_MSG_RESULT([no (shared openssl)]) diff --git a/archivers/php83-zip/Makefile b/archivers/php83-zip/Makefile new file mode 100644 index 000000000000..f0cb25ca596d --- /dev/null +++ b/archivers/php83-zip/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= archivers + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -zip + +.include "${MASTERDIR}/Makefile" diff --git a/archivers/php83-zlib/Makefile b/archivers/php83-zlib/Makefile new file mode 100644 index 000000000000..658b1b1395b6 --- /dev/null +++ b/archivers/php83-zlib/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= archivers + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -zlib + +.include "${MASTERDIR}/Makefile" diff --git a/archivers/php83-zlib/files/patch-zlib.c b/archivers/php83-zlib/files/patch-zlib.c new file mode 100644 index 000000000000..fb0e9e44311a --- /dev/null +++ b/archivers/php83-zlib/files/patch-zlib.c @@ -0,0 +1,10 @@ +--- zlib.c.orig 2023-06-06 15:54:29 UTC ++++ zlib.c +@@ -1380,6 +1380,7 @@ static PHP_MSHUTDOWN_FUNCTION(zlib) + /* {{{ PHP_RINIT_FUNCTION */ + static PHP_RINIT_FUNCTION(zlib) + { ++ ZLIBG(output_compression) = 0; + ZLIBG(compression_coding) = 0; + if (!ZLIBG(handler_registered)) { + ZLIBG(output_compression) = ZLIBG(output_compression_default); diff --git a/converters/Makefile b/converters/Makefile index f67512d5479d..6f13c8261a34 100644 --- a/converters/Makefile +++ b/converters/Makefile @@ -142,6 +142,8 @@ SUBDIR += php81-mbstring SUBDIR += php82-iconv SUBDIR += php82-mbstring + SUBDIR += php83-iconv + SUBDIR += php83-mbstring SUBDIR += psiconv SUBDIR += py-bencode.py SUBDIR += py-bencoder diff --git a/converters/php83-iconv/Makefile b/converters/php83-iconv/Makefile new file mode 100644 index 000000000000..24e13b998f27 --- /dev/null +++ b/converters/php83-iconv/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= converters + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -iconv + +.include "${MASTERDIR}/Makefile" diff --git a/converters/php83-mbstring/Makefile b/converters/php83-mbstring/Makefile new file mode 100644 index 000000000000..f02ceabb09ed --- /dev/null +++ b/converters/php83-mbstring/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= converters + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -mbstring + +.include "${MASTERDIR}/Makefile" diff --git a/converters/php83-mbstring/files/patch-config.m4 b/converters/php83-mbstring/files/patch-config.m4 new file mode 100644 index 000000000000..85fd4b3bae15 --- /dev/null +++ b/converters/php83-mbstring/files/patch-config.m4 @@ -0,0 +1,44 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -37,6 +37,31 @@ AC_DEFUN([PHP_MBSTRING_EXTENSION], [ + + out="php_config.h" + ++ dnl This is PECL build, check if bundled PCRE library is used ++ old_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS=$INCLUDES ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=yes ++ ],[ ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=pecl ++ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) ++ ],[ ++ PHP_PCRE_REGEX=no ++ ]) ++ ]) ++ ++ + if test "$ext_shared" != "no" && test -f "$ext_builddir/config.h.in"; then + out="$abs_builddir/config.h" + fi +@@ -148,6 +173,9 @@ PHP_ARG_ENABLE([mbregex], + [MBSTRING: Disable multibyte regex support])], + [yes], + [no]) ++ ++PHP_ARG_WITH(pcre-dir, pcre install prefix, ++[ --with-pcre-dir MBSTRING: pcre install prefix], no, no) + + if test "$PHP_MBSTRING" != "no"; then + AC_DEFINE([HAVE_MBSTRING],1,[whether to have multibyte string support]) diff --git a/databases/Makefile b/databases/Makefile index ae2d32c143e2..95e423650b2f 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -638,6 +638,18 @@ SUBDIR += php82-pdo_sqlite SUBDIR += php82-pgsql SUBDIR += php82-sqlite3 + SUBDIR += php83-dba + SUBDIR += php83-mysqli + SUBDIR += php83-odbc + SUBDIR += php83-pdo + SUBDIR += php83-pdo_dblib + SUBDIR += php83-pdo_firebird + SUBDIR += php83-pdo_mysql + SUBDIR += php83-pdo_odbc + SUBDIR += php83-pdo_pgsql + SUBDIR += php83-pdo_sqlite + SUBDIR += php83-pgsql + SUBDIR += php83-sqlite3 SUBDIR += phpliteadmin SUBDIR += phpminiadmin SUBDIR += phpmyadmin diff --git a/databases/php83-dba/Makefile b/databases/php83-dba/Makefile new file mode 100644 index 000000000000..42731fa31770 --- /dev/null +++ b/databases/php83-dba/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -dba + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-dba/files/patch-config.m4 b/databases/php83-dba/files/patch-config.m4 new file mode 100644 index 000000000000..f93406046ff3 --- /dev/null +++ b/databases/php83-dba/files/patch-config.m4 @@ -0,0 +1,50 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -387,6 +387,38 @@ if test "$PHP_DB4" != "no"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.3/db.h + break ++ elif test -f "$i/include/db5/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db5/db.h ++ break ++ elif test -f "$i/include/db48/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db48/db.h ++ break ++ elif test -f "$i/include/db47/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db47/db.h ++ break ++ elif test -f "$i/include/db46/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db46/db.h ++ break ++ elif test -f "$i/include/db44/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db44/db.h ++ break ++ elif test -f "$i/include/db43/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db43/db.h ++ break ++ elif test -f "$i/include/db42/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db42/db.h ++ break ++ elif test -f "$i/include/db41/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db41/db.h ++ break + elif test -f "$i/include/db5.1/db.h"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.1/db.h +@@ -429,7 +461,7 @@ if test "$PHP_DB4" != "no"; then + break + fi + done +- PHP_DBA_DB_CHECK(4, db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) ++ PHP_DBA_DB_CHECK(4, db-5 db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) + fi + PHP_DBA_STD_RESULT(db4,Berkeley DB4) + diff --git a/databases/php83-mysqli/Makefile b/databases/php83-mysqli/Makefile new file mode 100644 index 000000000000..7eaf262211a5 --- /dev/null +++ b/databases/php83-mysqli/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -mysqli + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-mysqli/files/patch-mysqli__api.c b/databases/php83-mysqli/files/patch-mysqli__api.c new file mode 100644 index 000000000000..a100e8205fb6 --- /dev/null +++ b/databases/php83-mysqli/files/patch-mysqli__api.c @@ -0,0 +1,12 @@ +--- mysqli_api.c.orig 2020-09-29 22:36:51 UTC ++++ mysqli_api.c +@@ -29,7 +29,9 @@ + #include "zend_smart_str.h" + #include "php_mysqli_structs.h" + #include "mysqli_priv.h" ++#if defined(MYSQLI_USE_MYSQLND) + #include "ext/mysqlnd/mysql_float_to_double.h" ++#endif + + #define ERROR_ARG_POS(arg_num) (getThis() ? (arg_num-1) : (arg_num)) + diff --git a/databases/php83-odbc/Makefile b/databases/php83-odbc/Makefile new file mode 100644 index 000000000000..545e1942d5ce --- /dev/null +++ b/databases/php83-odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-odbc/files/patch-config.m4 b/databases/php83-odbc/files/patch-config.m4 new file mode 100644 index 000000000000..1b28c64c9d69 --- /dev/null +++ b/databases/php83-odbc/files/patch-config.m4 @@ -0,0 +1,112 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -91,7 +91,10 @@ AC_DEFUN([PHP_ODBC_FIND_EMPRESS_BCS_LIBS],[ + dnl + dnl configure options + dnl ++PHP_ARG_ENABLE(odbc,, ++[ --enable-odbc Enable ODBC support with selected driver]) + ++ + PHP_ARG_WITH([odbcver],, + [AS_HELP_STRING([[--with-odbcver[=HEX]]], + [Force support for the passed ODBC version. A hex number is expected, +@@ -102,7 +105,7 @@ PHP_ARG_WITH([odbcver],, + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([adabas],, + [AS_HELP_STRING([[--with-adabas[=DIR]]], +- [Include Adabas D support [/usr/local]])]) ++ [Include Adabas D support [/usr/local]])], [no], [no]) + + AC_MSG_CHECKING([for Adabas support]) + if test "$PHP_ADABAS" != "no"; then +@@ -132,7 +135,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([sapdb],, + [AS_HELP_STRING([[--with-sapdb[=DIR]]], +- [Include SAP DB support [/usr/local]])]) ++ [Include SAP DB support [/usr/local]])], [no], [no]) + + AC_MSG_CHECKING([for SAP DB support]) + if test "$PHP_SAPDB" != "no"; then +@@ -153,7 +156,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([solid],, + [AS_HELP_STRING([[--with-solid[=DIR]]], +- [Include Solid support [/usr/local/solid]])]) ++ [Include Solid support [/usr/local/solid]])], [no], [no]) + + AC_MSG_CHECKING(for Solid support) + if test "$PHP_SOLID" != "no"; then +@@ -181,7 +184,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([ibm-db2],, + [AS_HELP_STRING([[--with-ibm-db2[=DIR]]], +- [Include IBM DB2 support [/home/db2inst1/sqllib]])]) ++ [Include IBM DB2 support [/home/db2inst1/sqllib]])], [no], [no]) + + AC_MSG_CHECKING(for IBM DB2 support) + if test "$PHP_IBM_DB2" != "no"; then +@@ -222,7 +225,7 @@ if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([empress],, + [AS_HELP_STRING([[--with-empress[=DIR]]], + [Include Empress support $EMPRESSPATH (Empress Version >= 8.60 +- required)])]) ++ required)])], [no], [no]) + + AC_MSG_CHECKING(for Empress support) + if test "$PHP_EMPRESS" != "no"; then +@@ -248,7 +251,7 @@ if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([empress-bcs],, + [AS_HELP_STRING([[--with-empress-bcs[=DIR]]], + [Include Empress Local Access support $EMPRESSPATH (Empress Version >= +- 8.60 required)])]) ++ 8.60 required)])], [no], [no]) + + AC_MSG_CHECKING(for Empress local access support) + if test "$PHP_EMPRESS_BCS" != "no"; then +@@ -294,7 +297,7 @@ PHP_ARG_WITH([custom-odbc],, + your include dirs. For example, you should define following for Sybase SQL + Anywhere 5.5.00 on QNX, prior to running this configure script: + CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix +- CUSTOM_ODBC_LIBS="-ldblib -lodbc"])]) ++ CUSTOM_ODBC_LIBS="-ldblib -lodbc"])], [no], [no]) + + AC_MSG_CHECKING(for a custom ODBC support) + if test "$PHP_CUSTOM_ODBC" != "no"; then +@@ -317,7 +320,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([iodbc],, + [AS_HELP_STRING([--with-iodbc], +- [Include iODBC support])]) ++ [Include iODBC support])], [no], [no]) + + AC_MSG_CHECKING(whether to build with iODBC support) + if test "$PHP_IODBC" != "no"; then +@@ -335,7 +338,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([esoob],, + [AS_HELP_STRING([[--with-esoob[=DIR]]], +- [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])]) ++ [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])], [no], [no]) + + AC_MSG_CHECKING(for Easysoft ODBC-ODBC Bridge support) + if test "$PHP_ESOOB" != "no"; then +@@ -358,7 +361,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([unixODBC],, + [AS_HELP_STRING([--with-unixODBC], +- [Include unixODBC support])]) ++ [Include unixODBC support])], [no], [no]) + + AC_MSG_CHECKING(whether to build with unixODBC support) + if test "$PHP_UNIXODBC" != "no"; then +@@ -386,7 +389,7 @@ fi + if test -z "$ODBC_TYPE"; then + PHP_ARG_WITH([dbmaker],, + [AS_HELP_STRING([[--with-dbmaker[=DIR]]], +- [Include DBMaker support])]) ++ [Include DBMaker support])], [no], [no]) + + AC_MSG_CHECKING(for DBMaker support) + if test "$PHP_DBMAKER" != "no"; then diff --git a/databases/php83-pdo/Makefile b/databases/php83-pdo/Makefile new file mode 100644 index 000000000000..1f11229df9e0 --- /dev/null +++ b/databases/php83-pdo/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_dblib/Makefile b/databases/php83-pdo_dblib/Makefile new file mode 100644 index 000000000000..2067eb0985c9 --- /dev/null +++ b/databases/php83-pdo_dblib/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_dblib + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_firebird/Makefile b/databases/php83-pdo_firebird/Makefile new file mode 100644 index 000000000000..6e5f91d61099 --- /dev/null +++ b/databases/php83-pdo_firebird/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_firebird + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_mysql/Makefile b/databases/php83-pdo_mysql/Makefile new file mode 100644 index 000000000000..6a9667b14bed --- /dev/null +++ b/databases/php83-pdo_mysql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_mysql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_odbc/Makefile b/databases/php83-pdo_odbc/Makefile new file mode 100644 index 000000000000..753ff0ef5600 --- /dev/null +++ b/databases/php83-pdo_odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_pgsql/Makefile b/databases/php83-pdo_pgsql/Makefile new file mode 100644 index 000000000000..1b005d44278a --- /dev/null +++ b/databases/php83-pdo_pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pdo_sqlite/Makefile b/databases/php83-pdo_sqlite/Makefile new file mode 100644 index 000000000000..916d47ab1219 --- /dev/null +++ b/databases/php83-pdo_sqlite/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pdo_sqlite + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-pgsql/Makefile b/databases/php83-pgsql/Makefile new file mode 100644 index 000000000000..3c7091a5e265 --- /dev/null +++ b/databases/php83-pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php83-sqlite3/Makefile b/databases/php83-sqlite3/Makefile new file mode 100644 index 000000000000..96e5277e3ac3 --- /dev/null +++ b/databases/php83-sqlite3/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sqlite3 + +.include "${MASTERDIR}/Makefile" diff --git a/devel/Makefile b/devel/Makefile index a88a031f68e0..f1b93368ed7c 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -4099,6 +4099,16 @@ SUBDIR += php82-sysvsem SUBDIR += php82-sysvshm SUBDIR += php82-tokenizer + SUBDIR += php83-ffi + SUBDIR += php83-gettext + SUBDIR += php83-intl + SUBDIR += php83-pcntl + SUBDIR += php83-readline + SUBDIR += php83-shmop + SUBDIR += php83-sysvmsg + SUBDIR += php83-sysvsem + SUBDIR += php83-sysvshm + SUBDIR += php83-tokenizer SUBDIR += phpunit10 SUBDIR += phpunit8 SUBDIR += phpunit9 diff --git a/devel/php83-ffi/Makefile b/devel/php83-ffi/Makefile new file mode 100644 index 000000000000..3c42d1a97047 --- /dev/null +++ b/devel/php83-ffi/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -ffi + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-gettext/Makefile b/devel/php83-gettext/Makefile new file mode 100644 index 000000000000..774b96957b2f --- /dev/null +++ b/devel/php83-gettext/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -gettext + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-intl/Makefile b/devel/php83-intl/Makefile new file mode 100644 index 000000000000..347b1c99552a --- /dev/null +++ b/devel/php83-intl/Makefile @@ -0,0 +1,8 @@ +PORTREVISION= 0 +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -intl + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-pcntl/Makefile b/devel/php83-pcntl/Makefile new file mode 100644 index 000000000000..86b079f961fd --- /dev/null +++ b/devel/php83-pcntl/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pcntl + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-readline/Makefile b/devel/php83-readline/Makefile new file mode 100644 index 000000000000..83b8bcff9cd6 --- /dev/null +++ b/devel/php83-readline/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -readline + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-readline/files/patch-config.m4 b/devel/php83-readline/files/patch-config.m4 new file mode 100644 index 000000000000..1031a78360b1 --- /dev/null +++ b/devel/php83-readline/files/patch-config.m4 @@ -0,0 +1,33 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -3,16 +3,10 @@ PHP_ARG_WITH([libedit], + [AS_HELP_STRING([--with-libedit], + [Include libedit readline replacement (CLI/CGI only)])]) + +-if test "$PHP_LIBEDIT" = "no"; then + PHP_ARG_WITH([readline], + [for readline support], + [AS_HELP_STRING([[--with-readline[=DIR]]], + [Include readline support (CLI/CGI only)])]) +-else +- dnl "register" the --with-readline option to prevent invalid "unknown +- dnl configure option" warning +- php_with_readline=no +-fi + + if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then + for i in $PHP_READLINE /usr/local /usr; do +@@ -77,6 +71,13 @@ if test "$PHP_READLINE" && test "$PHP_READLINE" != "no + + AC_DEFINE(HAVE_HISTORY_LIST, 1, [ ]) + AC_DEFINE(HAVE_LIBREADLINE, 1, [ ]) ++ ++ PHP_CHECK_LIBRARY(readline, rl_completion_matches, ++ [ ++ AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, [ ]) ++ ],[],[ ++ -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS ++ ]) + + elif test "$PHP_LIBEDIT" != "no"; then + if test "$PHP_LIBEDIT" != "yes"; then diff --git a/devel/php83-readline/files/patch-readline__cli.c b/devel/php83-readline/files/patch-readline__cli.c new file mode 100644 index 000000000000..650523302696 --- /dev/null +++ b/devel/php83-readline/files/patch-readline__cli.c @@ -0,0 +1,13 @@ +--- readline_cli.c.orig 2023-06-06 15:54:29 UTC ++++ readline_cli.c +@@ -19,6 +19,10 @@ + #include "config.h" + #endif + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include "php.h" + + #ifndef HAVE_RL_COMPLETION_MATCHES diff --git a/devel/php83-shmop/Makefile b/devel/php83-shmop/Makefile new file mode 100644 index 000000000000..8928f4307eea --- /dev/null +++ b/devel/php83-shmop/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -shmop + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-sysvmsg/Makefile b/devel/php83-sysvmsg/Makefile new file mode 100644 index 000000000000..6863a2740214 --- /dev/null +++ b/devel/php83-sysvmsg/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sysvmsg + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-sysvsem/Makefile b/devel/php83-sysvsem/Makefile new file mode 100644 index 000000000000..cd39afcb6965 --- /dev/null +++ b/devel/php83-sysvsem/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sysvsem + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-sysvshm/Makefile b/devel/php83-sysvshm/Makefile new file mode 100644 index 000000000000..9246f9ebaa65 --- /dev/null +++ b/devel/php83-sysvshm/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sysvshm + +.include "${MASTERDIR}/Makefile" diff --git a/devel/php83-tokenizer/Makefile b/devel/php83-tokenizer/Makefile new file mode 100644 index 000000000000..3336e8e3cc3f --- /dev/null +++ b/devel/php83-tokenizer/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= devel + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -tokenizer + +.include "${MASTERDIR}/Makefile" diff --git a/ftp/Makefile b/ftp/Makefile index f1cc5aa31ef7..d4a64f8e0d8f 100644 --- a/ftp/Makefile +++ b/ftp/Makefile @@ -57,6 +57,8 @@ SUBDIR += php81-ftp SUBDIR += php82-curl SUBDIR += php82-ftp + SUBDIR += php83-curl + SUBDIR += php83-ftp SUBDIR += phpwebftp SUBDIR += proftpd SUBDIR += proftpd-mod_vroot diff --git a/ftp/php83-curl/Makefile b/ftp/php83-curl/Makefile new file mode 100644 index 000000000000..247af9ee3511 --- /dev/null +++ b/ftp/php83-curl/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= ftp + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -curl + +.include "${MASTERDIR}/Makefile" diff --git a/ftp/php83-ftp/Makefile b/ftp/php83-ftp/Makefile new file mode 100644 index 000000000000..bbf8a31dcfc6 --- /dev/null +++ b/ftp/php83-ftp/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= ftp + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -ftp + +.include "${MASTERDIR}/Makefile" diff --git a/graphics/Makefile b/graphics/Makefile index 6704f771cd94..d65655c497fc 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -786,6 +786,8 @@ SUBDIR += php81-gd SUBDIR += php82-exif SUBDIR += php82-gd + SUBDIR += php83-exif + SUBDIR += php83-gd SUBDIR += phplot SUBDIR += picpuz SUBDIR += piddle diff --git a/graphics/php83-exif/Makefile b/graphics/php83-exif/Makefile new file mode 100644 index 000000000000..9e90a682b13c --- /dev/null +++ b/graphics/php83-exif/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= graphics + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -exif + +.include "${MASTERDIR}/Makefile" diff --git a/graphics/php83-gd/Makefile b/graphics/php83-gd/Makefile new file mode 100644 index 000000000000..2460a0247ad0 --- /dev/null +++ b/graphics/php83-gd/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= graphics + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -gd + +.include "${MASTERDIR}/Makefile" diff --git a/graphics/php83-gd/files/patch-gd.c b/graphics/php83-gd/files/patch-gd.c new file mode 100644 index 000000000000..c5c0fe89f9d4 --- /dev/null +++ b/graphics/php83-gd/files/patch-gd.c @@ -0,0 +1,11 @@ +--- gd.c.orig 2023-06-06 15:54:29 UTC ++++ gd.c +@@ -80,7 +80,7 @@ + # include FT_FREETYPE_H + #endif + +-#if defined(HAVE_GD_XPM) && defined(HAVE_GD_BUNDLED) ++#if defined(HAVE_XPM) && defined(HAVE_GD_XPM) && defined(HAVE_GD_BUNDLED) + # include "X11/xpm.h" + #endif + diff --git a/lang/Makefile b/lang/Makefile index 6e9b036b8828..dcf627ee6f5f 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -273,6 +273,8 @@ SUBDIR += php81-extensions SUBDIR += php82 SUBDIR += php82-extensions + SUBDIR += php83 + SUBDIR += php83-extensions SUBDIR += picoc SUBDIR += plexil SUBDIR += pocl diff --git a/lang/php80/Makefile.ext b/lang/php80/Makefile.ext index 0b8d6c30897e..26b4e9f76151 100644 --- a/lang/php80/Makefile.ext +++ b/lang/php80/Makefile.ext @@ -3,7 +3,7 @@ COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 80 -IGNORE_WITH_PHP= 81 82 +IGNORE_WITH_PHP= 81 82 83 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} diff --git a/lang/php81/Makefile b/lang/php81/Makefile index df2e6ee86e67..655c187df6b2 100644 --- a/lang/php81/Makefile +++ b/lang/php81/Makefile @@ -173,7 +173,7 @@ COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 81 -IGNORE_WITH_PHP= 80 82 +IGNORE_WITH_PHP= 80 82 83 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} diff --git a/lang/php82/Makefile b/lang/php82/Makefile index 2636aac271d0..929e0c446e01 100644 --- a/lang/php82/Makefile +++ b/lang/php82/Makefile @@ -174,7 +174,7 @@ COMMENT= The ${PHP_MODNAME} shared extension for php USES+= php:ext,noflavors PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} PHP_VER= 82 -IGNORE_WITH_PHP= 80 81 +IGNORE_WITH_PHP= 80 81 83 EXTSUBDIR= ${DISTNAME}/ext/${PHP_MODNAME} WRKSRC= ${WRKDIR}/${EXTSUBDIR} diff --git a/lang/php83-extensions/Makefile b/lang/php83-extensions/Makefile new file mode 100644 index 000000000000..53c961e03081 --- /dev/null +++ b/lang/php83-extensions/Makefile @@ -0,0 +1,91 @@ +PORTNAME= php83 +PORTVERSION= 1.0 +CATEGORIES= lang +PKGNAMESUFFIX= -extensions + +MAINTAINER= bofh@FreeBSD.org +COMMENT= "meta-port" to install PHP extensions +WWW= https://www.php.net/ + +USES= metaport php + +PHP_VER= 82 +IGNORE_WITH_PHP= 80 81 + +OPTIONS_DEFINE= BCMATH BZ2 CALENDAR CTYPE CURL DBA DOM ENCHANT EXIF FFI \ + FILEINFO FILTER FTP GD GETTEXT GMP ICONV IMAP INTL LDAP \ + MBSTRING MYSQLI ODBC OPCACHE PCNTL PDO \ + PDO_DBLIB PDO_FIREBIRD PDO_MYSQL PDO_ODBC PDO_PGSQL \ + PDO_SQLITE PGSQL PHAR POSIX PSPELL READLINE SESSION \ + SHMOP SIMPLEXML SNMP SOAP SOCKETS SODIUM SQLITE3 \ + SYSVMSG SYSVSEM SYSVSHM TIDY TOKENIZER XML XMLREADER \ + XMLWRITER XSL ZIP ZLIB +OPTIONS_DEFAULT= CTYPE DOM FILTER ICONV OPCACHE PDO PDO_SQLITE PHAR \ + POSIX SESSION SIMPLEXML SQLITE3 TOKENIZER XML XMLREADER \ + XMLWRITER + +BCMATH_DESC= bc style precision math functions +BZ2_DESC= bzip2 library support +CALENDAR_DESC= calendar conversion support +CTYPE_DESC= ctype functions +CURL_DESC= CURL support +DBA_DESC= dba support +DOM_DESC= DOM support +ENCHANT_DESC= Enchant spelling support +EXIF_DESC= EXIF support +FFI_DESC= Foreign Function Interface support +FILEINFO_DESC= fileinfo support +FILTER_DESC= input filter support +FTP_DESC= FTP support +GD_DESC= GD library support +GETTEXT_DESC= gettext library support +GMP_DESC= GNU MP support +ICONV_DESC= iconv support +IMAP_DESC= IMAP support +INTL_DESC= Internationalization(ICU) +LDAP_DESC= OpenLDAP support +MBSTRING_DESC= multibyte string support +MYSQLI_DESC= MySQLi database support +ODBC_DESC= ODBC support +OPCACHE_DESC= OPcache support +PCNTL_DESC= pcntl support (CLI only) +PDO_DBLIB_DESC= PDO DBLIB-DB driver +PDO_DESC= PHP Data Objects Interface (PDO) +PDO_FIREBIRD_DESC= PDO Firebird driver +PDO_MYSQL_DESC= PDO MySQL driver +PDO_ODBC_DESC= PDO ODBC driver +PDO_PGSQL_DESC= PDO PostgreSQL driver +PDO_SQLITE_DESC= PDO sqlite driver +PHAR_DESC= phar support +POSIX_DESC= POSIX-like functions +PSPELL_DESC= pspell support +READLINE_DESC= readline support (CLI only) +SESSION_DESC= session support +SHMOP_DESC= shmop support +SIMPLEXML_DESC= simplexml support +SNMP_DESC= SNMP support +SOAP_DESC= SOAP support +SOCKETS_DESC= sockets support +SODIUM_DESC= Sodium encryption support +SQLITE3_DESC= sqlite3 support +SYSVMSG_DESC= System V message support +SYSVSEM_DESC= System V semaphore support +SYSVSHM_DESC= System V shared memory support +TIDY_DESC= TIDY support +TOKENIZER_DESC= tokenizer support +XMLREADER_DESC= XMLReader support +XMLWRITER_DESC= XMLWriter support +XML_DESC= XML support +XSL_DESC= XSL support (Implies DOM) +ZIP_DESC= ZIP support +ZLIB_DESC= ZLIB support + +.include <bsd.port.options.mk> + +.for opt in ${OPTIONS_DEFINE} +. if ${PORT_OPTIONS:M${opt}} +USE_PHP+= ${opt:tl} +. endif +.endfor + +.include <bsd.port.mk> diff --git a/lang/php83-extensions/pkg-descr b/lang/php83-extensions/pkg-descr new file mode 100644 index 000000000000..4acc6c163e60 --- /dev/null +++ b/lang/php83-extensions/pkg-descr @@ -0,0 +1,5 @@ +This is a "meta-port" to install the extensions for PHP 8.0 + +Defaults to: +ctype, dom, filter, iconv, json, opcache, pdo, pdo_sqlite, phar, posix, +session, simplexml, sqlite3, tokenizer, xml, xmlreader and xmlwriter. diff --git a/lang/php83/Makefile b/lang/php83/Makefile new file mode 100644 index 000000000000..01a147c271b6 --- /dev/null +++ b/lang/php83/Makefile @@ -0,0 +1,636 @@ +PORTNAME= php83 +DISTVERSION= 8.3.0alpha1 +PORTREVISION?= 0 +CATEGORIES?= lang devel www +MASTER_SITES= https://downloads.php.net/~jakub/ +DISTNAME= php-${DISTVERSION} + +MAINTAINER= bofh@FreeBSD.org +COMMENT= PHP Scripting Language (8.3.X branch) +WWW= https://www.php.net/ + +LICENSE= PHP301 + +USES+= compiler:c11 cpe gnome pkgconfig tar:xz +CPE_PRODUCT= php +PHP_VER= 83 + +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 <bsd.port.pre.mk> + +.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= 83 +IGNORE_WITH_PHP= 80 81 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 +CONFIGURE_ARGS+= --enable-opcache +.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 <bsd.port.pre.mk> + +.if ${ARCH} == aarch64 && ${PHP_MODNAME} == "opcache" +CONFIGURE_ARGS+=--disable-opcache-jit +.endif + +.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 <bsd.port.post.mk> diff --git a/lang/php83/distinfo b/lang/php83/distinfo new file mode 100644 index 000000000000..8a9f536ca965 --- /dev/null +++ b/lang/php83/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1686332997 +SHA256 (php-8.3.0alpha1.tar.xz) = 7df01cbae615cccdc01a811094a74326119080e1141988fd57aeefd6b751165c +SIZE (php-8.3.0alpha1.tar.xz) = 12276384 diff --git a/lang/php83/files/patch-TSRM_TSRM.c b/lang/php83/files/patch-TSRM_TSRM.c new file mode 100644 index 000000000000..86cd732dd5f1 --- /dev/null +++ b/lang/php83/files/patch-TSRM_TSRM.c @@ -0,0 +1,11 @@ +--- TSRM/TSRM.c.orig 2023-06-06 15:54:29 UTC ++++ TSRM/TSRM.c +@@ -769,7 +769,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/php83/files/patch-build_Makefile.global b/lang/php83/files/patch-build_Makefile.global new file mode 100644 index 000000000000..266f29958043 --- /dev/null +++ b/lang/php83/files/patch-build_Makefile.global @@ -0,0 +1,19 @@ +--- build/Makefile.global.orig 2022-08-02 13:57:03 UTC ++++ build/Makefile.global +@@ -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/php83/files/patch-configure.ac b/lang/php83/files/patch-configure.ac new file mode 100644 index 000000000000..e81f933fbdfb --- /dev/null +++ b/lang/php83/files/patch-configure.ac @@ -0,0 +1,45 @@ +--- configure.ac.orig 2023-06-06 15:54:29 UTC ++++ configure.ac +@@ -55,6 +55,7 @@ AH_BOTTOM([ + + #include <string.h> + ++#include <ext/php_config.h> + #endif /* PHP_CONFIG_H */ + ]) + +@@ -281,7 +282,6 @@ sinclude(Zend/Zend.m4) + + dnl ---------------------------------------------------------------------------- + +-PTHREADS_CHECK + PHP_HELP_SEPARATOR([SAPI modules:]) + PHP_SHLIB_SUFFIX_NAMES + PHP_BUILD_PROGRAM +@@ -652,7 +652,7 @@ strerror_r \ + 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) +@@ -1464,7 +1464,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 +@@ -1689,7 +1689,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/php83/files/patch-ext_hash_xxhash_xxhash.h b/lang/php83/files/patch-ext_hash_xxhash_xxhash.h new file mode 100644 index 000000000000..d284f4c94f74 --- /dev/null +++ b/lang/php83/files/patch-ext_hash_xxhash_xxhash.h @@ -0,0 +1,46 @@ +--- ext/hash/xxhash/xxhash.h.orig 2023-06-06 15:54:29 UTC ++++ ext/hash/xxhash/xxhash.h +@@ -3078,22 +3078,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 <s390intrin.h> + # 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 <altivec.h> + # 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/php83/files/patch-ext_mysqli_mysqli__api.c b/lang/php83/files/patch-ext_mysqli_mysqli__api.c new file mode 100644 index 000000000000..535503954e3d --- /dev/null +++ b/lang/php83/files/patch-ext_mysqli_mysqli__api.c @@ -0,0 +1,12 @@ +--- ext/mysqli/mysqli_api.c.orig 2020-09-29 22:36:51 UTC ++++ ext/mysqli/mysqli_api.c +@@ -29,7 +29,9 @@ + #include "zend_smart_str.h" + #include "php_mysqli_structs.h" + #include "mysqli_priv.h" ++#if defined(MYSQLI_USE_MYSQLND) + #include "ext/mysqlnd/mysql_float_to_double.h" ++#endif + + #define ERROR_ARG_POS(arg_num) (getThis() ? (arg_num-1) : (arg_num)) + diff --git a/lang/php83/files/patch-ext_mysqli_mysqli__nonapi.c b/lang/php83/files/patch-ext_mysqli_mysqli__nonapi.c new file mode 100644 index 000000000000..83d0d8dfc8cb --- /dev/null +++ b/lang/php83/files/patch-ext_mysqli_mysqli__nonapi.c @@ -0,0 +1,12 @@ +--- ext/mysqli/mysqli_nonapi.c.orig 2022-08-02 13:57:03 UTC ++++ ext/mysqli/mysqli_nonapi.c +@@ -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)) + diff --git a/lang/php83/files/patch-ext_mysqli_mysqli__prop.c b/lang/php83/files/patch-ext_mysqli_mysqli__prop.c new file mode 100644 index 000000000000..bc201d57981e --- /dev/null +++ b/lang/php83/files/patch-ext_mysqli_mysqli__prop.c @@ -0,0 +1,12 @@ +--- ext/mysqli/mysqli_prop.c.orig 2022-08-02 13:57:03 UTC ++++ ext/mysqli/mysqli_prop.c +@@ -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, quiet) \ diff --git a/lang/php83/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h b/lang/php83/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h new file mode 100644 index 000000000000..12705b62543e --- /dev/null +++ b/lang/php83/files/patch-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h @@ -0,0 +1,20 @@ +--- ext/pcre/pcre2lib/sljit/sljitConfigInternal.h.orig 2022-08-02 13:57:03 UTC ++++ ext/pcre/pcre2lib/sljit/sljitConfigInternal.h +@@ -303,7 +303,7 @@ extern "C" { + /* Type of public API functions. */ + /*********************************/ + +-#ifndef SLJIT_API_FUNC_ATTRIBUTE ++#ifndef SLJIT_API_FUNC_ATTRIBUTE + #if (defined SLJIT_CONFIG_STATIC && SLJIT_CONFIG_STATIC) + /* Static ABI functions. For all-in-one programs. */ + +@@ -333,7 +333,7 @@ extern "C" { + * beware APPLE is known to have removed the code in iOS so + * it will need to be excempted or result in broken builds + */ +-#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) && !defined(__clang__) + + /* diff --git a/lang/php83/files/patch-sapi_apache2handler_config.m4 b/lang/php83/files/patch-sapi_apache2handler_config.m4 new file mode 100644 index 000000000000..a68054d116c2 --- /dev/null +++ b/lang/php83/files/patch-sapi_apache2handler_config.m4 @@ -0,0 +1,11 @@ +--- sapi/apache2handler/config.m4.orig 2023-03-14 16:11:05 UTC ++++ sapi/apache2handler/config.m4 +@@ -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 php" diff --git a/lang/php83/files/patch-sapi_fpm_config.m4 b/lang/php83/files/patch-sapi_fpm_config.m4 new file mode 100644 index 000000000000..88ee4c787791 --- /dev/null +++ b/lang/php83/files/patch-sapi_fpm_config.m4 @@ -0,0 +1,11 @@ +--- sapi/fpm/config.m4.orig 2023-06-06 15:54:29 UTC ++++ sapi/fpm/config.m4 +@@ -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/php83/files/patch-sapi_fpm_www.conf.in b/lang/php83/files/patch-sapi_fpm_www.conf.in new file mode 100644 index 000000000000..c7465018244d --- /dev/null +++ b/lang/php83/files/patch-sapi_fpm_www.conf.in @@ -0,0 +1,17 @@ +--- sapi/fpm/www.conf.in.orig 2023-03-14 16:11:05 UTC ++++ sapi/fpm/www.conf.in +@@ -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/php83/files/php-fpm.in b/lang/php83/files/php-fpm.in new file mode 100644 index 000000000000..c234856b0e54 --- /dev/null +++ b/lang/php83/files/php-fpm.in @@ -0,0 +1,66 @@ +#!/bin/sh + +# PROVIDE: php-fpm +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable php-fpm: +# php_fpm_enable="YES" +# + +. /etc/rc.subr + +name="php_fpm" +rcvar=php_fpm_enable + +start_precmd="php_fpm_prestart" +restart_precmd="php_fpm_checkconfig" +reload_precmd="php_fpm_checkconfig" +configtest_cmd="php_fpm_checkconfig" + +load_rc_config "$name" + +: ${php_fpm_enable="NO"} +: ${php_fpm_umask=""} + +extra_commands="reload configtest logrotate" + +command="%%PREFIX%%/sbin/php-fpm" +pidfile="/var/run/php-fpm.pid" +sig_stop="QUIT" +sig_reload="USR2" +logrotate_cmd="php_fpm_logrotate" + +required_files="%%PREFIX%%/etc/php-fpm.conf" + +php_fpm_logrotate() { + if [ -z "$rc_pid" ]; then + _run_rc_notrunning + return 1 + fi + echo "Rotating logs $name." + kill -USR1 $rc_pid +} + +php_fpm_checkconfig() +{ + echo "Performing sanity check on php-fpm configuration:" + eval ${command} -t +} + +php_fpm_prestart() +{ + php_fpm_checkconfig + checkconfig=$? + if [ $checkconfig -ne 0 ]; then + return $checkconfig + fi + + if [ ! -z "$php_fpm_umask" ]; then + echo "Setting umask to: ${php_fpm_umask}" + umask $php_fpm_umask + fi +} + +run_rc_command "$1" diff --git a/lang/php83/pkg-descr b/lang/php83/pkg-descr new file mode 100644 index 000000000000..60a2137716fb --- /dev/null +++ b/lang/php83/pkg-descr @@ -0,0 +1,6 @@ +PHP, which stands for "PHP: Hypertext Preprocessor" is a widely-used Open +Source general-purpose scripting language that is especially suited for +Web development and can be embedded into HTML. Its syntax draws upon C, +Java, and Perl, and is easy to learn. The main goal of the language is to +allow web developers to write dynamically generated webpages quickly, but +you can do much more with PHP. diff --git a/lang/php83/pkg-message.mod b/lang/php83/pkg-message.mod new file mode 100644 index 000000000000..a0c2c87889a7 --- /dev/null +++ b/lang/php83/pkg-message.mod @@ -0,0 +1,19 @@ +****************************************************************************** + +Make sure index.php is part of your DirectoryIndex. + +You should add the following to your Apache configuration file: + +<FilesMatch "\.php$"> + SetHandler application/x-httpd-php +</FilesMatch> +<FilesMatch "\.phps$"> + SetHandler application/x-httpd-php-source +</FilesMatch> + +****************************************************************************** + +If you are building PHP-based ports in poudriere(8) or Synth with ZTS enabled, +add WITH_MPM=event to /etc/make.conf to prevent build failures. + +****************************************************************************** diff --git a/lang/php83/pkg-plist b/lang/php83/pkg-plist new file mode 100644 index 000000000000..b1b861ca8d01 --- /dev/null +++ b/lang/php83/pkg-plist @@ -0,0 +1,318 @@ +%%CLI%%bin/php +%%CGI%%bin/php-cgi +bin/php-config +%%PHPDBG%%bin/phpdbg +bin/phpize +%%FPM%%sbin/php-fpm +etc/php.conf +etc/php.ini-development +etc/php.ini-production +%%FPM%%@sample etc/php-fpm.conf.default etc/php-fpm.conf +%%FPM%%@sample etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf +include/php/TSRM/TSRM.h +include/php/TSRM/tsrm_win32.h +include/php/Zend/Optimizer/zend_call_graph.h +include/php/Zend/Optimizer/zend_cfg.h +include/php/Zend/Optimizer/zend_dfg.h +include/php/Zend/Optimizer/zend_dump.h +include/php/Zend/Optimizer/zend_func_info.h +include/php/Zend/Optimizer/zend_inference.h +include/php/Zend/Optimizer/zend_optimizer.h +include/php/Zend/Optimizer/zend_ssa.h +include/php/Zend/zend.h +include/php/Zend/zend_API.h +include/php/Zend/zend_alloc.h +include/php/Zend/zend_alloc_sizes.h +include/php/Zend/zend_arena.h +include/php/Zend/zend_ast.h +include/php/Zend/zend_atomic.h +include/php/Zend/zend_attributes.h +include/php/Zend/zend_attributes_arginfo.h +include/php/Zend/zend_bitset.h +include/php/Zend/zend_build.h +include/php/Zend/zend_builtin_functions.h +include/php/Zend/zend_builtin_functions_arginfo.h +include/php/Zend/zend_call_stack.h +include/php/Zend/zend_closures.h +include/php/Zend/zend_closures_arginfo.h +include/php/Zend/zend_compile.h +include/php/Zend/zend_config.h +include/php/Zend/zend_config.w32.h +include/php/Zend/zend_constants.h +include/php/Zend/zend_constants_arginfo.h +include/php/Zend/zend_cpuinfo.h +include/php/Zend/zend_dtrace.h +%%DTRACE%%include/php/Zend/zend_dtrace_gen.h +include/php/Zend/zend_enum.h +include/php/Zend/zend_enum_arginfo.h +include/php/Zend/zend_errors.h +include/php/Zend/zend_exceptions.h +include/php/Zend/zend_exceptions_arginfo.h +include/php/Zend/zend_execute.h +include/php/Zend/zend_extensions.h +include/php/Zend/zend_fibers.h +include/php/Zend/zend_fibers_arginfo.h +include/php/Zend/zend_float.h +include/php/Zend/zend_gc.h +include/php/Zend/zend_gdb.h +include/php/Zend/zend_generators.h +include/php/Zend/zend_generators_arginfo.h +include/php/Zend/zend_globals.h +include/php/Zend/zend_globals_macros.h +include/php/Zend/zend_hash.h +include/php/Zend/zend_highlight.h +include/php/Zend/zend_inheritance.h +include/php/Zend/zend_ini.h +include/php/Zend/zend_ini_parser.h +include/php/Zend/zend_ini_scanner.h +include/php/Zend/zend_ini_scanner_defs.h +include/php/Zend/zend_interfaces.h +include/php/Zend/zend_interfaces_arginfo.h +include/php/Zend/zend_istdiostream.h +include/php/Zend/zend_iterators.h +include/php/Zend/zend_language_parser.h +include/php/Zend/zend_language_scanner.h +include/php/Zend/zend_language_scanner_defs.h +include/php/Zend/zend_list.h +include/php/Zend/zend_llist.h +include/php/Zend/zend_long.h +include/php/Zend/zend_map_ptr.h +include/php/Zend/zend_max_execution_timer.h +include/php/Zend/zend_mmap.h +include/php/Zend/zend_modules.h +include/php/Zend/zend_multibyte.h +include/php/Zend/zend_multiply.h +include/php/Zend/zend_object_handlers.h +include/php/Zend/zend_objects.h +include/php/Zend/zend_objects_API.h +include/php/Zend/zend_observer.h +include/php/Zend/zend_operators.h +include/php/Zend/zend_portability.h +include/php/Zend/zend_ptr_stack.h +include/php/Zend/zend_range_check.h +include/php/Zend/zend_signal.h +include/php/Zend/zend_smart_str.h +include/php/Zend/zend_smart_str_public.h +include/php/Zend/zend_smart_string.h +include/php/Zend/zend_smart_string_public.h +include/php/Zend/zend_sort.h +include/php/Zend/zend_stack.h +include/php/Zend/zend_stream.h +include/php/Zend/zend_string.h +include/php/Zend/zend_strtod.h +include/php/Zend/zend_strtod_int.h +include/php/Zend/zend_system_id.h +include/php/Zend/zend_type_info.h +include/php/Zend/zend_types.h +include/php/Zend/zend_variables.h +include/php/Zend/zend_virtual_cwd.h +include/php/Zend/zend_vm.h +include/php/Zend/zend_vm_def.h +include/php/Zend/zend_vm_execute.h +include/php/Zend/zend_vm_handlers.h +include/php/Zend/zend_vm_opcodes.h +include/php/Zend/zend_vm_trace_handlers.h +include/php/Zend/zend_vm_trace_lines.h +include/php/Zend/zend_vm_trace_map.h +include/php/Zend/zend_weakrefs.h +include/php/Zend/zend_weakrefs_arginfo.h +include/php/ext/date/lib/timelib.h +include/php/ext/date/lib/timelib_config.h +include/php/ext/date/php_date.h +include/php/ext/hash/php_hash.h +include/php/ext/hash/php_hash_adler32.h +include/php/ext/hash/php_hash_crc32.h +include/php/ext/hash/php_hash_fnv.h +include/php/ext/hash/php_hash_gost.h +include/php/ext/hash/php_hash_haval.h +include/php/ext/hash/php_hash_joaat.h +include/php/ext/hash/php_hash_md.h +include/php/ext/hash/php_hash_murmur.h +include/php/ext/hash/php_hash_ripemd.h +include/php/ext/hash/php_hash_sha.h +include/php/ext/hash/php_hash_sha3.h +include/php/ext/hash/php_hash_snefru.h +include/php/ext/hash/php_hash_tiger.h +include/php/ext/hash/php_hash_whirlpool.h +include/php/ext/hash/php_hash_xxhash.h +include/php/ext/json/php_json.h +include/php/ext/json/php_json_parser.h +include/php/ext/json/php_json_scanner.h +include/php/ext/libxml/php_libxml.h +%%MYSQLND%%include/php/ext/mysqlnd/config-win.h +%%MYSQLND%%include/php/ext/mysqlnd/mysql_float_to_double.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_alloc.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_auth.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_block_alloc.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_charset.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_commands.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_connection.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_debug.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_enum_n_def.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_ext_plugin.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_plugin.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_portability.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_priv.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_ps.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_read_buffer.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_result.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_result_meta.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_reverse_api.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_statistics.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_structs.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_vio.h +%%MYSQLND%%include/php/ext/mysqlnd/mysqlnd_wireprotocol.h +%%MYSQLND%%include/php/ext/mysqlnd/php_mysqlnd.h +include/php/ext/pcre/pcre2lib/config.h +include/php/ext/pcre/pcre2lib/pcre2.h +include/php/ext/pcre/pcre2lib/pcre2_internal.h +include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h +include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h +include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h +include/php/ext/pcre/pcre2lib/pcre2_ucp.h +include/php/ext/pcre/php_pcre.h +include/php/ext/random/php_random.h +include/php/ext/spl/php_spl.h +include/php/ext/spl/spl_array.h +include/php/ext/spl/spl_directory.h +include/php/ext/spl/spl_dllist.h +include/php/ext/spl/spl_engine.h +include/php/ext/spl/spl_exceptions.h +include/php/ext/spl/spl_fixedarray.h +include/php/ext/spl/spl_functions.h +include/php/ext/spl/spl_heap.h +include/php/ext/spl/spl_iterators.h +include/php/ext/spl/spl_observer.h +include/php/ext/standard/base64.h +include/php/ext/standard/basic_functions.h +include/php/ext/standard/basic_functions_arginfo.h +include/php/ext/standard/crc32.h +include/php/ext/standard/crc32_x86.h +include/php/ext/standard/credits.h +include/php/ext/standard/credits_ext.h +include/php/ext/standard/credits_sapi.h +include/php/ext/standard/crypt_blowfish.h +include/php/ext/standard/crypt_freesec.h +include/php/ext/standard/css.h +include/php/ext/standard/datetime.h +include/php/ext/standard/dir_arginfo.h +include/php/ext/standard/dl.h +include/php/ext/standard/dl_arginfo.h +include/php/ext/standard/exec.h +include/php/ext/standard/file.h +include/php/ext/standard/file_arginfo.h +include/php/ext/standard/flock_compat.h +include/php/ext/standard/fsock.h +include/php/ext/standard/head.h +include/php/ext/standard/hrtime.h +include/php/ext/standard/html.h +include/php/ext/standard/html_tables.h +include/php/ext/standard/info.h +include/php/ext/standard/md5.h +include/php/ext/standard/pack.h +include/php/ext/standard/pageinfo.h +include/php/ext/standard/php_array.h +include/php/ext/standard/php_assert.h +include/php/ext/standard/php_browscap.h +include/php/ext/standard/php_crypt.h +include/php/ext/standard/php_crypt_r.h +include/php/ext/standard/php_dir.h +include/php/ext/standard/php_dns.h +include/php/ext/standard/php_ext_syslog.h +include/php/ext/standard/php_filestat.h +include/php/ext/standard/php_fopen_wrappers.h +include/php/ext/standard/php_http.h +include/php/ext/standard/php_image.h +include/php/ext/standard/php_incomplete_class.h +include/php/ext/standard/php_lcg.h +include/php/ext/standard/php_mail.h +include/php/ext/standard/php_math.h +include/php/ext/standard/php_mt_rand.h +include/php/ext/standard/php_net.h +include/php/ext/standard/php_password.h +include/php/ext/standard/php_rand.h +include/php/ext/standard/php_random.h +include/php/ext/standard/php_smart_string.h +include/php/ext/standard/php_smart_string_public.h +include/php/ext/standard/php_standard.h +include/php/ext/standard/php_string.h +include/php/ext/standard/php_uuencode.h +include/php/ext/standard/php_var.h +include/php/ext/standard/php_versioning.h +include/php/ext/standard/proc_open.h +include/php/ext/standard/quot_print.h +include/php/ext/standard/scanf.h +include/php/ext/standard/sha1.h +include/php/ext/standard/streamsfuncs.h +include/php/ext/standard/url.h +include/php/ext/standard/url_scanner_ex.h +include/php/ext/standard/user_filters_arginfo.h +include/php/ext/standard/winver.h +@touch include/php/ext/php_config.h +@rmempty include/php/ext/php_config.h +include/php/main/SAPI.h +include/php/main/build-defs.h +include/php/main/fastcgi.h +include/php/main/fopen_wrappers.h +include/php/main/http_status_codes.h +include/php/main/main_arginfo.h +include/php/main/php.h +include/php/main/php_compat.h +include/php/main/php_config.h +include/php/main/php_content_types.h +include/php/main/php_getopt.h +include/php/main/php_globals.h +include/php/main/php_ini.h +include/php/main/php_ini_builder.h +include/php/main/php_main.h +include/php/main/php_memory_streams.h +include/php/main/php_network.h +include/php/main/php_odbc_utils.h +include/php/main/php_open_temporary_file.h +include/php/main/php_output.h +include/php/main/php_reentrancy.h +include/php/main/php_scandir.h +include/php/main/php_streams.h +include/php/main/php_syslog.h +include/php/main/php_ticks.h +include/php/main/php_variables.h +include/php/main/php_version.h +include/php/main/rfc1867.h +include/php/main/snprintf.h +include/php/main/spprintf.h +include/php/main/streams/php_stream_context.h +include/php/main/streams/php_stream_filter_api.h +include/php/main/streams/php_stream_glob_wrapper.h +include/php/main/streams/php_stream_mmap.h +include/php/main/streams/php_stream_plain_wrapper.h +include/php/main/streams/php_stream_transport.h +include/php/main/streams/php_stream_userspace.h +include/php/main/streams/php_streams_int.h +include/php/main/streams/userspace_arginfo.h +%%CLI%%include/php/sapi/cli/cli.h +%%EMBED%%include/php/sapi/embed/php_embed.h +%%EMBED%%lib/libphp.so +lib/php/build/Makefile.global +lib/php/build/ax_check_compile_flag.m4 +lib/php/build/ax_gcc_func_attribute.m4 +lib/php/build/config.guess +lib/php/build/config.sub +lib/php/build/gen_stub.php +lib/php/build/libtool.m4 +lib/php/build/ltmain.sh +lib/php/build/php.m4 +lib/php/build/php_cxx_compile_stdcxx.m4 +lib/php/build/phpize.m4 +lib/php/build/pkg.m4 +lib/php/build/run-tests.php +lib/php/build/shtool +%%CGI%%man/man1/php-cgi.1.gz +man/man1/php-config.1.gz +%%CLI%%man/man1/php.1.gz +%%PHPDBG%%man/man1/phpdbg.1.gz +man/man1/phpize.1.gz +%%FPM%%man/man8/php-fpm.8.gz +%%FPM%%share/php/fpm/status.html diff --git a/lang/php83/pkg-plist.mod b/lang/php83/pkg-plist.mod new file mode 100644 index 000000000000..8939be6d3d5e --- /dev/null +++ b/lang/php83/pkg-plist.mod @@ -0,0 +1,3 @@ +%%APACHEMODDIR%%/%%AP_MODULE%% +@postexec %D/sbin/apxs -e -a -n %%AP_NAME%% %f +@preunexec %D/sbin/apxs -e -A -n %%AP_NAME%% %f diff --git a/mail/Makefile b/mail/Makefile index 43f21b58cd33..32b5ef3550d0 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -458,6 +458,7 @@ SUBDIR += php80-imap SUBDIR += php81-imap SUBDIR += php82-imap + SUBDIR += php83-imap SUBDIR += phplist SUBDIR += phpmailer SUBDIR += phpmailer6 diff --git a/mail/php83-imap/Makefile b/mail/php83-imap/Makefile new file mode 100644 index 000000000000..473b73fd34f9 --- /dev/null +++ b/mail/php83-imap/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= mail + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -imap + +.include "${MASTERDIR}/Makefile" diff --git a/mail/php83-imap/files/patch-config.m4 b/mail/php83-imap/files/patch-config.m4 new file mode 100644 index 000000000000..18c6da8e6e00 --- /dev/null +++ b/mail/php83-imap/files/patch-config.m4 @@ -0,0 +1,47 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -117,6 +117,13 @@ PHP_ARG_WITH([imap-ssl], + [no], + [no]) + ++PHP_ARG_WITH([pcre-dir], ++ [pcre install prefix], ++ [AS_HELP_STRING([[--with-pcre-dir]], ++ [IMAP: pcre install prefix])], ++ [no], ++ [no]) ++ + if test "$PHP_IMAP" != "no"; then + PHP_SUBST(IMAP_SHARED_LIBADD) + PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) +@@ -131,6 +138,30 @@ if test "$PHP_IMAP" != "no"; then + el[]IMAP_INC_CHK(/c-client) + fi + done ++ ++ dnl This is PECL build, check if bundled PCRE library is used ++ old_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS=$INCLUDES ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=yes ++ ],[ ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=pecl ++ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) ++ ],[ ++ PHP_PCRE_REGEX=no ++ ]) ++ ]) + + dnl Check for c-client version 2004 + AC_EGREP_HEADER(mail_fetch_overview_sequence, $IMAP_INC_DIR/mail.h, [ diff --git a/math/Makefile b/math/Makefile index 87fd0f7d3d34..28d1cda1bbc7 100644 --- a/math/Makefile +++ b/math/Makefile @@ -843,6 +843,8 @@ SUBDIR += php81-gmp SUBDIR += php82-bcmath SUBDIR += php82-gmp + SUBDIR += php83-bcmath + SUBDIR += php83-gmp SUBDIR += physcalc SUBDIR += picosat SUBDIR += piranha diff --git a/math/php83-bcmath/Makefile b/math/php83-bcmath/Makefile new file mode 100644 index 000000000000..0a99efa1c253 --- /dev/null +++ b/math/php83-bcmath/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= math + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -bcmath + +.include "${MASTERDIR}/Makefile" diff --git a/math/php83-gmp/Makefile b/math/php83-gmp/Makefile new file mode 100644 index 000000000000..88b716ec3028 --- /dev/null +++ b/math/php83-gmp/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= math + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -gmp + +.include "${MASTERDIR}/Makefile" diff --git a/misc/Makefile b/misc/Makefile index f5e200fe93b0..f5c636a7a679 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -379,6 +379,7 @@ SUBDIR += php80-calendar SUBDIR += php81-calendar SUBDIR += php82-calendar + SUBDIR += php83-calendar SUBDIR += pinfo SUBDIR += pipe SUBDIR += posixtestsuite diff --git a/misc/php83-calendar/Makefile b/misc/php83-calendar/Makefile new file mode 100644 index 000000000000..79794903d10c --- /dev/null +++ b/misc/php83-calendar/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= misc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -calendar + +.include "${MASTERDIR}/Makefile" diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile index 2374fa6eeae7..0c7b72eec009 100644 --- a/net-mgmt/Makefile +++ b/net-mgmt/Makefile @@ -290,6 +290,7 @@ SUBDIR += php80-snmp SUBDIR += php81-snmp SUBDIR += php82-snmp + SUBDIR += php83-snmp SUBDIR += phpfpm_exporter SUBDIR += phpipam SUBDIR += phpweathermap diff --git a/net-mgmt/php83-snmp/Makefile b/net-mgmt/php83-snmp/Makefile new file mode 100644 index 000000000000..331e0779b14d --- /dev/null +++ b/net-mgmt/php83-snmp/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= net-mgmt + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -snmp + +.include "${MASTERDIR}/Makefile" diff --git a/net/Makefile b/net/Makefile index 9233d1ecbd7d..0f36eb1fb1b1 100644 --- a/net/Makefile +++ b/net/Makefile @@ -998,6 +998,9 @@ SUBDIR += php82-ldap SUBDIR += php82-soap SUBDIR += php82-sockets + SUBDIR += php83-ldap + SUBDIR += php83-soap + SUBDIR += php83-sockets SUBDIR += phpldapadmin SUBDIR += pichi SUBDIR += pimcommon diff --git a/net/php83-ldap/Makefile b/net/php83-ldap/Makefile new file mode 100644 index 000000000000..719cff911f0f --- /dev/null +++ b/net/php83-ldap/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= net + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -ldap + +.include "${MASTERDIR}/Makefile" diff --git a/net/php83-soap/Makefile b/net/php83-soap/Makefile new file mode 100644 index 000000000000..da25aa254607 --- /dev/null +++ b/net/php83-soap/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= net + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -soap + +.include "${MASTERDIR}/Makefile" diff --git a/net/php83-sockets/Makefile b/net/php83-sockets/Makefile new file mode 100644 index 000000000000..d5d4cbbc5ad1 --- /dev/null +++ b/net/php83-sockets/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= net + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sockets + +.include "${MASTERDIR}/Makefile" diff --git a/net/php83-sockets/files/patch-conversions.c b/net/php83-sockets/files/patch-conversions.c new file mode 100644 index 000000000000..999e26343986 --- /dev/null +++ b/net/php83-sockets/files/patch-conversions.c @@ -0,0 +1,14 @@ +--- conversions.c.orig 2023-06-06 15:54:29 UTC ++++ conversions.c +@@ -1325,11 +1325,6 @@ static const field_descriptor descriptors_ucred[] = { + {"uid", sizeof("uid"), 1, offsetof(struct sockcred2, sc_euid), from_zval_write_uid_t, to_zval_read_uid_t}, + /* the type gid_t is the same as uid_t: */ + {"gid", sizeof("gid"), 1, offsetof(struct sockcred2, sc_egid), from_zval_write_uid_t, to_zval_read_uid_t}, +-#elif defined(LOCAL_CREDS) +- {"pid", sizeof("pid"), 1, offsetof(struct sockcred, sc_pid), from_zval_write_pid_t, to_zval_read_pid_t}, +- {"uid", sizeof("uid"), 1, offsetof(struct sockcred, sc_euid), from_zval_write_uid_t, to_zval_read_uid_t}, +- /* the type gid_t is the same as uid_t: */ +- {"gid", sizeof("gid"), 1, offsetof(struct sockcred, sc_egid), from_zval_write_uid_t, to_zval_read_uid_t}, + #elif defined(ANC_CREDS_CMSGCRED) + {"pid", sizeof("pid"), 1, offsetof(struct cmsgcred, cmcred_pid), from_zval_write_pid_t, to_zval_read_pid_t}, + {"uid", sizeof("uid"), 1, offsetof(struct cmsgcred, cmcred_uid), from_zval_write_uid_t, to_zval_read_uid_t}, diff --git a/security/Makefile b/security/Makefile index 77a2c542c210..91ef27e58eaf 100644 --- a/security/Makefile +++ b/security/Makefile @@ -798,6 +798,8 @@ SUBDIR += php81-sodium SUBDIR += php82-filter SUBDIR += php82-sodium + SUBDIR += php83-filter + SUBDIR += php83-sodium SUBDIR += picocrypt SUBDIR += picosha2 SUBDIR += pidgin-encryption diff --git a/security/php83-filter/Makefile b/security/php83-filter/Makefile new file mode 100644 index 000000000000..1d71d3bff20e --- /dev/null +++ b/security/php83-filter/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= security + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -filter + +.include "${MASTERDIR}/Makefile" diff --git a/security/php83-sodium/Makefile b/security/php83-sodium/Makefile new file mode 100644 index 000000000000..1d475b2390fd --- /dev/null +++ b/security/php83-sodium/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= security + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -sodium + +.include "${MASTERDIR}/Makefile" diff --git a/sysutils/Makefile b/sysutils/Makefile index ba438cf73f33..78a691343ceb 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1009,6 +1009,8 @@ SUBDIR += php81-posix SUBDIR += php82-fileinfo SUBDIR += php82-posix + SUBDIR += php83-fileinfo + SUBDIR += php83-posix SUBDIR += phybs SUBDIR += pick SUBDIR += pidof diff --git a/sysutils/php83-fileinfo/Makefile b/sysutils/php83-fileinfo/Makefile new file mode 100644 index 000000000000..0cb5594a050b --- /dev/null +++ b/sysutils/php83-fileinfo/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= sysutils + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -fileinfo + +.include "${MASTERDIR}/Makefile" diff --git a/sysutils/php83-fileinfo/files/patch-config.m4 b/sysutils/php83-fileinfo/files/patch-config.m4 new file mode 100644 index 000000000000..042170100462 --- /dev/null +++ b/sysutils/php83-fileinfo/files/patch-config.m4 @@ -0,0 +1,21 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -4,6 +4,9 @@ PHP_ARG_ENABLE([fileinfo], + [Disable fileinfo support])], + [yes]) + ++PHP_ARG_WITH(pcre-dir, pcre install prefix, ++[ --with-pcre-dir FILEINFO: pcre install prefix], no, no) ++ + if test "$PHP_FILEINFO" != "no"; then + + libmagic_sources=" \ +@@ -48,6 +51,8 @@ int main(void) + AC_MSG_NOTICE(using libmagic strcasestr implementation) + libmagic_sources="$libmagic_sources libmagic/strcasestr.c" + ],[AC_MSG_RESULT([skipped, cross-compiling])]) ++ ++ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) + + PHP_NEW_EXTENSION(fileinfo, fileinfo.c php_libmagic.c $libmagic_sources, $ext_shared,,-I@ext_srcdir@/libmagic) + PHP_ADD_BUILD_DIR($ext_builddir/libmagic) diff --git a/sysutils/php83-posix/Makefile b/sysutils/php83-posix/Makefile new file mode 100644 index 000000000000..59d39c1be278 --- /dev/null +++ b/sysutils/php83-posix/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= sysutils + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -posix + +.include "${MASTERDIR}/Makefile" diff --git a/sysutils/php83-posix/files/patch-posix.c b/sysutils/php83-posix/files/patch-posix.c new file mode 100644 index 000000000000..bf034ba887b4 --- /dev/null +++ b/sysutils/php83-posix/files/patch-posix.c @@ -0,0 +1,38 @@ +--- posix.c.orig 2023-06-06 15:54:29 UTC ++++ posix.c +@@ -779,7 +779,7 @@ PHP_FUNCTION(posix_getgrnam) + #if defined(ZTS) && defined(HAVE_GETGRNAM_R) && defined(_SC_GETGR_R_SIZE_MAX) + buflen = sysconf(_SC_GETGR_R_SIZE_MAX); + if (buflen < 1) { +- RETURN_FALSE; ++ buflen = 1024; + } + buf = emalloc(buflen); + try_again: +@@ -835,7 +835,7 @@ PHP_FUNCTION(posix_getgrgid) + + grbuflen = sysconf(_SC_GETGR_R_SIZE_MAX); + if (grbuflen < 1) { +- RETURN_FALSE; ++ grbuflen = 1024; + } + + grbuf = emalloc(grbuflen); +@@ -909,7 +909,7 @@ PHP_FUNCTION(posix_getpwnam) + #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWNAM_R) + buflen = sysconf(_SC_GETPW_R_SIZE_MAX); + if (buflen < 1) { +- RETURN_FALSE; ++ buflen = 1024; + } + buf = emalloc(buflen); + pw = &pwbuf; +@@ -964,7 +964,7 @@ PHP_FUNCTION(posix_getpwuid) + #if defined(ZTS) && defined(_SC_GETPW_R_SIZE_MAX) && defined(HAVE_GETPWUID_R) + pwbuflen = sysconf(_SC_GETPW_R_SIZE_MAX); + if (pwbuflen < 1) { +- RETURN_FALSE; ++ pwbuflen = 1024; + } + pwbuf = emalloc(pwbuflen); + diff --git a/textproc/Makefile b/textproc/Makefile index b31620bdcd94..8b2d52e90501 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -1267,6 +1267,15 @@ SUBDIR += php82-xmlreader SUBDIR += php82-xmlwriter SUBDIR += php82-xsl + SUBDIR += php83-ctype + SUBDIR += php83-dom + SUBDIR += php83-enchant + SUBDIR += php83-pspell + SUBDIR += php83-simplexml + SUBDIR += php83-xml + SUBDIR += php83-xmlreader + SUBDIR += php83-xmlwriter + SUBDIR += php83-xsl SUBDIR += pict SUBDIR += po4a SUBDIR += pod2mdoc diff --git a/textproc/php83-ctype/Makefile b/textproc/php83-ctype/Makefile new file mode 100644 index 000000000000..87d8a9f291ed --- /dev/null +++ b/textproc/php83-ctype/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -ctype + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-dom/Makefile b/textproc/php83-dom/Makefile new file mode 100644 index 000000000000..152ab51944ab --- /dev/null +++ b/textproc/php83-dom/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -dom + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-enchant/Makefile b/textproc/php83-enchant/Makefile new file mode 100644 index 000000000000..1cd5744b4173 --- /dev/null +++ b/textproc/php83-enchant/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -enchant + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-enchant/files/patch-enchant.c b/textproc/php83-enchant/files/patch-enchant.c new file mode 100644 index 000000000000..b43d7930efde --- /dev/null +++ b/textproc/php83-enchant/files/patch-enchant.c @@ -0,0 +1,11 @@ +--- enchant.c.orig 2023-06-06 15:54:29 UTC ++++ enchant.c +@@ -23,7 +23,7 @@ + #include "php_ini.h" + #include "ext/standard/info.h" + #include "Zend/zend_exceptions.h" +-#include "../spl/spl_exceptions.h" ++#include "ext/spl/spl_exceptions.h" + #include <enchant.h> + #include "php_enchant.h" + diff --git a/textproc/php83-pspell/Makefile b/textproc/php83-pspell/Makefile new file mode 100644 index 000000000000..e5fa5c463262 --- /dev/null +++ b/textproc/php83-pspell/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -pspell + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-simplexml/Makefile b/textproc/php83-simplexml/Makefile new file mode 100644 index 000000000000..87996eb406d9 --- /dev/null +++ b/textproc/php83-simplexml/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -simplexml + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-simplexml/files/patch-config.m4 b/textproc/php83-simplexml/files/patch-config.m4 new file mode 100644 index 000000000000..710e56e7b57c --- /dev/null +++ b/textproc/php83-simplexml/files/patch-config.m4 @@ -0,0 +1,41 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -4,7 +4,38 @@ PHP_ARG_ENABLE([simplexml], + [Disable SimpleXML support])], + [yes]) + ++PHP_ARG_ENABLE([pcre-dir], ++ [pcre install prefix], ++ [AS_HELP_STRING([--with-pcre-dir], ++ [SimpleXML: pcre install dir])], ++ [no], ++ [no]) ++ + if test "$PHP_SIMPLEXML" != "no"; then ++ ++ dnl This is PECL build, check if bundled PCRE library is used ++ old_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS=$INCLUDES ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=yes ++ ],[ ++ AC_EGREP_CPP(yes,[ ++#include <main/php_config.h> ++#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) ++yes ++#endif ++ ],[ ++ PHP_PCRE_REGEX=pecl ++ PHP_ADD_INCLUDE($PHP_PCRE_DIR/include) ++ ],[ ++ PHP_PCRE_REGEX=no ++ ]) ++ ]) + + if test "$PHP_LIBXML" = "no"; then + AC_MSG_ERROR([SimpleXML extension requires LIBXML extension, add --with-libxml]) diff --git a/textproc/php83-xml/Makefile b/textproc/php83-xml/Makefile new file mode 100644 index 000000000000..e9650249edbd --- /dev/null +++ b/textproc/php83-xml/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -xml + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-xml/files/patch-compat.c b/textproc/php83-xml/files/patch-compat.c new file mode 100644 index 000000000000..0752de99e2da --- /dev/null +++ b/textproc/php83-xml/files/patch-compat.c @@ -0,0 +1,13 @@ +--- compat.c.orig 2023-06-06 15:54:29 UTC ++++ compat.c +@@ -14,6 +14,10 @@ + +----------------------------------------------------------------------+ + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #include "php.h" + #if defined(HAVE_LIBXML) && (defined(HAVE_XML) || defined(HAVE_XMLRPC)) && !defined(HAVE_LIBEXPAT) + #include "expat_compat.h" diff --git a/textproc/php83-xmlreader/Makefile b/textproc/php83-xmlreader/Makefile new file mode 100644 index 000000000000..fc29a603edcd --- /dev/null +++ b/textproc/php83-xmlreader/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -xmlreader + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-xmlwriter/Makefile b/textproc/php83-xmlwriter/Makefile new file mode 100644 index 000000000000..0aec419cb0a5 --- /dev/null +++ b/textproc/php83-xmlwriter/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -xmlwriter + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-xsl/Makefile b/textproc/php83-xsl/Makefile new file mode 100644 index 000000000000..f96e320bf41d --- /dev/null +++ b/textproc/php83-xsl/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= textproc + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -xsl + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/php83-xsl/files/patch-php__xsl.h b/textproc/php83-xsl/files/patch-php__xsl.h new file mode 100644 index 000000000000..69f1140af49d --- /dev/null +++ b/textproc/php83-xsl/files/patch-php__xsl.h @@ -0,0 +1,11 @@ +--- php_xsl.h.orig 2020-10-16 22:10:29 UTC ++++ php_xsl.h +@@ -37,7 +37,7 @@ extern zend_module_entry xsl_module_entr + #include <libexslt/exsltconfig.h> + #endif + +-#include "../dom/xml_common.h" ++#include "ext/dom/xml_common.h" + + #include <libxslt/extensions.h> + #include <libxml/xpathInternals.h> diff --git a/www/Makefile b/www/Makefile index c685c620d943..fd65277c33c1 100644 --- a/www/Makefile +++ b/www/Makefile @@ -392,6 +392,7 @@ SUBDIR += mod_php80 SUBDIR += mod_php81 SUBDIR += mod_php82 + SUBDIR += mod_php83 SUBDIR += mod_proctitle SUBDIR += mod_qos SUBDIR += mod_realdoc @@ -1389,6 +1390,9 @@ SUBDIR += php82-opcache SUBDIR += php82-session SUBDIR += php82-tidy + SUBDIR += php83-opcache + SUBDIR += php83-session + SUBDIR += php83-tidy SUBDIR += phpbb SUBDIR += phpbb3 SUBDIR += phpfpmtop diff --git a/www/mod_php83/Makefile b/www/mod_php83/Makefile new file mode 100644 index 000000000000..1972e34e820a --- /dev/null +++ b/www/mod_php83/Makefile @@ -0,0 +1,18 @@ +CATEGORIES= www devel +PKGNAMEPREFIX= mod_ + +MAINTAINER= bofh@FreeBSD.org + +CONFLICTS_INSTALL= mod_php[0-9][0-9] + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +OPTIONS_DEFINE= AP2FILTER +OPTIONS_EXCLUDE= CGI CLI EMBED FPM + +AP2FILTER_DESC= Use Apache 2.x filter interface (experimental) + +AP2FILTER_CONFIGURE_ON=--with-apxs2filter=${APXS} +AP2FILTER_CONFIGURE_OFF=--with-apxs2=${APXS} + +.include "${MASTERDIR}/Makefile" diff --git a/www/php83-opcache/Makefile b/www/php83-opcache/Makefile new file mode 100644 index 000000000000..90279381be26 --- /dev/null +++ b/www/php83-opcache/Makefile @@ -0,0 +1,9 @@ +CATEGORIES= www + +PKGNAMESUFFIX= -opcache + +USES= php:zend,noflavors + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +.include "${MASTERDIR}/Makefile" diff --git a/www/php83-opcache/files/patch-config.m4 b/www/php83-opcache/files/patch-config.m4 new file mode 100644 index 000000000000..ac1219142024 --- /dev/null +++ b/www/php83-opcache/files/patch-config.m4 @@ -0,0 +1,20 @@ +--- config.m4.orig 2023-06-06 15:54:29 UTC ++++ config.m4 +@@ -35,7 +35,7 @@ if test "$PHP_OPCACHE" != "no"; then + + if test "$PHP_OPCACHE_JIT" = "yes"; then + case $host_cpu in +- i[[34567]]86*|x86*|aarch64) ++ i[[34567]]86*|x86*|aarch64|amd64) + ;; + *) + AC_MSG_WARN([JIT not supported by host architecture]) +@@ -54,7 +54,7 @@ if test "$PHP_OPCACHE" != "no"; then + DASM_FLAGS="-D X64APPLE=1 -D X64=1" + DASM_ARCH="x86" + ;; +- x86_64*) ++ *x86_64*|amd64-*-freebsd*) + DASM_FLAGS="-D X64=1" + DASM_ARCH="x86" + ;; diff --git a/www/php83-session/Makefile b/www/php83-session/Makefile new file mode 100644 index 000000000000..58a67a0e5c4a --- /dev/null +++ b/www/php83-session/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= www + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -session + +.include "${MASTERDIR}/Makefile" diff --git a/www/php83-tidy/Makefile b/www/php83-tidy/Makefile new file mode 100644 index 000000000000..ee01c71c663a --- /dev/null +++ b/www/php83-tidy/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= www + +MASTERDIR= ${.CURDIR}/../../lang/php83 + +PKGNAMESUFFIX= -tidy + +.include "${MASTERDIR}/Makefile" |