git: 95967c207776 - main - */*php83*: Sunrise

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Sat, 10 Jun 2023 14:58:04 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=95967c2077762985235e47db1fe9949bed5cbe8f

commit 95967c2077762985235e47db1fe9949bed5cbe8f
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2023-06-10 11:59:03 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-06-10 14:57:35 +0000

    */*php83*: Sunrise
    
    Please DO NOT use this version in production, it is an early test
    version.
    
    For upgrade notes please visit:
    https://github.com/php/php-src/blob/php-8.3.0alpha1/UPGRADING
    
    Changelog: https://github.com/php/php-src/blob/php-8.3.0alpha1/NEWS
    Sponsored by:   Bounce Experts
---
 Mk/Uses/php.mk                                     |   8 +-
 Mk/bsd.default-versions.mk                         |   2 +-
 archivers/Makefile                                 |   4 +
 archivers/php83-bz2/Makefile                       |   7 +
 archivers/php83-phar/Makefile                      |   7 +
 archivers/php83-phar/files/patch-config.m4         |  41 ++
 archivers/php83-zip/Makefile                       |   7 +
 archivers/php83-zlib/Makefile                      |   7 +
 archivers/php83-zlib/files/patch-zlib.c            |  10 +
 converters/Makefile                                |   2 +
 converters/php83-iconv/Makefile                    |   7 +
 converters/php83-mbstring/Makefile                 |   7 +
 converters/php83-mbstring/files/patch-config.m4    |  44 ++
 databases/Makefile                                 |  12 +
 databases/php83-dba/Makefile                       |   7 +
 databases/php83-dba/files/patch-config.m4          |  50 ++
 databases/php83-mysqli/Makefile                    |   7 +
 databases/php83-mysqli/files/patch-mysqli__api.c   |  12 +
 databases/php83-odbc/Makefile                      |   7 +
 databases/php83-odbc/files/patch-config.m4         | 112 ++++
 databases/php83-pdo/Makefile                       |   7 +
 databases/php83-pdo_dblib/Makefile                 |   7 +
 databases/php83-pdo_firebird/Makefile              |   7 +
 databases/php83-pdo_mysql/Makefile                 |   7 +
 databases/php83-pdo_odbc/Makefile                  |   7 +
 databases/php83-pdo_pgsql/Makefile                 |   7 +
 databases/php83-pdo_sqlite/Makefile                |   7 +
 databases/php83-pgsql/Makefile                     |   7 +
 databases/php83-sqlite3/Makefile                   |   7 +
 devel/Makefile                                     |  10 +
 devel/php83-ffi/Makefile                           |   7 +
 devel/php83-gettext/Makefile                       |   7 +
 devel/php83-intl/Makefile                          |   8 +
 devel/php83-pcntl/Makefile                         |   7 +
 devel/php83-readline/Makefile                      |   7 +
 devel/php83-readline/files/patch-config.m4         |  33 ++
 devel/php83-readline/files/patch-readline__cli.c   |  13 +
 devel/php83-shmop/Makefile                         |   7 +
 devel/php83-sysvmsg/Makefile                       |   7 +
 devel/php83-sysvsem/Makefile                       |   7 +
 devel/php83-sysvshm/Makefile                       |   7 +
 devel/php83-tokenizer/Makefile                     |   7 +
 ftp/Makefile                                       |   2 +
 ftp/php83-curl/Makefile                            |   7 +
 ftp/php83-ftp/Makefile                             |   7 +
 graphics/Makefile                                  |   2 +
 graphics/php83-exif/Makefile                       |   7 +
 graphics/php83-gd/Makefile                         |   7 +
 graphics/php83-gd/files/patch-gd.c                 |  11 +
 lang/Makefile                                      |   2 +
 lang/php80/Makefile.ext                            |   2 +-
 lang/php81/Makefile                                |   2 +-
 lang/php82/Makefile                                |   2 +-
 lang/php83-extensions/Makefile                     |  91 +++
 lang/php83-extensions/pkg-descr                    |   5 +
 lang/php83/Makefile                                | 636 +++++++++++++++++++++
 lang/php83/distinfo                                |   3 +
 lang/php83/files/patch-TSRM_TSRM.c                 |  11 +
 lang/php83/files/patch-build_Makefile.global       |  19 +
 lang/php83/files/patch-configure.ac                |  45 ++
 lang/php83/files/patch-ext_hash_xxhash_xxhash.h    |  46 ++
 lang/php83/files/patch-ext_mysqli_mysqli__api.c    |  12 +
 lang/php83/files/patch-ext_mysqli_mysqli__nonapi.c |  12 +
 lang/php83/files/patch-ext_mysqli_mysqli__prop.c   |  12 +
 ...h-ext_pcre_pcre2lib_sljit_sljitConfigInternal.h |  20 +
 .../files/patch-sapi_apache2handler_config.m4      |  11 +
 lang/php83/files/patch-sapi_fpm_config.m4          |  11 +
 lang/php83/files/patch-sapi_fpm_www.conf.in        |  17 +
 lang/php83/files/php-fpm.in                        |  66 +++
 lang/php83/pkg-descr                               |   6 +
 lang/php83/pkg-message.mod                         |  19 +
 lang/php83/pkg-plist                               | 318 +++++++++++
 lang/php83/pkg-plist.mod                           |   3 +
 mail/Makefile                                      |   1 +
 mail/php83-imap/Makefile                           |   7 +
 mail/php83-imap/files/patch-config.m4              |  47 ++
 math/Makefile                                      |   2 +
 math/php83-bcmath/Makefile                         |   7 +
 math/php83-gmp/Makefile                            |   7 +
 misc/Makefile                                      |   1 +
 misc/php83-calendar/Makefile                       |   7 +
 net-mgmt/Makefile                                  |   1 +
 net-mgmt/php83-snmp/Makefile                       |   7 +
 net/Makefile                                       |   3 +
 net/php83-ldap/Makefile                            |   7 +
 net/php83-soap/Makefile                            |   7 +
 net/php83-sockets/Makefile                         |   7 +
 net/php83-sockets/files/patch-conversions.c        |  14 +
 security/Makefile                                  |   2 +
 security/php83-filter/Makefile                     |   7 +
 security/php83-sodium/Makefile                     |   7 +
 sysutils/Makefile                                  |   2 +
 sysutils/php83-fileinfo/Makefile                   |   7 +
 sysutils/php83-fileinfo/files/patch-config.m4      |  21 +
 sysutils/php83-posix/Makefile                      |   7 +
 sysutils/php83-posix/files/patch-posix.c           |  38 ++
 textproc/Makefile                                  |   9 +
 textproc/php83-ctype/Makefile                      |   7 +
 textproc/php83-dom/Makefile                        |   7 +
 textproc/php83-enchant/Makefile                    |   7 +
 textproc/php83-enchant/files/patch-enchant.c       |  11 +
 textproc/php83-pspell/Makefile                     |   7 +
 textproc/php83-simplexml/Makefile                  |   7 +
 textproc/php83-simplexml/files/patch-config.m4     |  41 ++
 textproc/php83-xml/Makefile                        |   7 +
 textproc/php83-xml/files/patch-compat.c            |  13 +
 textproc/php83-xmlreader/Makefile                  |   7 +
 textproc/php83-xmlwriter/Makefile                  |   7 +
 textproc/php83-xsl/Makefile                        |   7 +
 textproc/php83-xsl/files/patch-php__xsl.h          |  11 +
 www/Makefile                                       |   4 +
 www/mod_php83/Makefile                             |  18 +
 www/php83-opcache/Makefile                         |   9 +
 www/php83-opcache/files/patch-config.m4            |  20 +
 www/php83-session/Makefile                         |   7 +
 www/php83-tidy/Makefile                            |   7 +
 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
*** 2367 LINES SKIPPED ***