Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Dec 2021 02:18:22 GMT
From:      Muhammad Moinur Rahman <bofh@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 44e99def8ddf - main - Add php81 to the tree
Message-ID:  <202112290218.1BT2IMvH021042@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=44e99def8ddf26311675cb2070eb062e1f7d0da5

commit 44e99def8ddf26311675cb2070eb062e1f7d0da5
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2021-12-29 02:09:08 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2021-12-29 02:09:08 +0000

    Add php81 to the tree
    
    Core:
      Fixed inclusion order for phpize builds on Windows.
      Added missing hashtable insertion APIs for arr/obj/ref.
      Implemented FR #77372 (Relative file path is removed from uploaded
      file).
      Fixed bug #81607 (CE_CACHE allocation with concurrent access).
      Fixed bug #81507 (Fiber does not compile on AIX).
      Fixed bug #78647 (SEGFAULT in zend_do_perform_implementation_check).
      Fixed bug #81518 (Header injection via default_mimetype / default_charset).
      Fixed bug #75941 (Fix compile failure on Solaris with clang).
      Fixed bug #81380 (Observer may not be initialized properly).
      Fixed bug #81514 (Using Enum as key in WeakMap triggers GC + SegFault).
      Fixed bug #81520 (TEST_PHP_CGI_EXECUTABLE badly set in run-tests.php).
      Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning).
      Fixed bug #81342 (New ampersand token parsing depends on new line after it).
      Fixed bug #81280 (Unicode characters in cli.prompt causes segfault).
      Fixed bug #81192 ("Declaration should be compatible with" gives incorrect line number with traits).
      Fixed bug #78919 (CLI server: insufficient cleanup if request startup fails).
      Fixed bug #81303 (match error message improvements).
      Fixed bug #81238 (Fiber support missing for Solaris Sparc).
      Fixed bug #81237 (Comparison of fake closures doesn't work).
      Fixed bug #81202 (powerpc64 build fails on fibers).
      Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak).
      Fixed bug #81163 (__sleep allowed to return non-array).
      Fixed bug #75474 (function scope static variables are not bound to a unique function).
      Fixed bug #53826 (__callStatic fired in base class through a parent call if the method is private).
      Fixed bug #81076 (incorrect debug info on Closures with implicit binds).
    CLI:
      Fixed bug #81496 (Server logs incorrect request method).
    COM:
      Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT.
    Curl:
      Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings).
    Date:
      Fixed bug #81458 (Regression Incorrect difference after timezone change).
      Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).
      Fixed bug #81504 (Incorrect timezone transition details for POSIX data).
      Fixed bug #80998 (Missing second with inverted interval).
      Speed up finding timezone offset information.
      Fixed bug #79580 (date_create_from_format misses leap year).
      Fixed bug #80963 (DateTimeZone::getTransitions() truncated).
      Fixed bug #80974 (Wrong diff between 2 dates in different timezones).
      Fixed bug #80998 (Missing second with inverted interval).
      Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an offset with seconds).
      Fixed bug #81106 (Regression in 8.1: add() now truncate ->f).
      Fixed bug #81273 (Date interval calculation not correct).
      Fixed bug #52480 (Incorrect difference using DateInterval).
      Fixed bug #62326 (date_diff() function returns false result).
      Fixed bug #64992 (dst not handled past 2038).
      Fixed bug #65003 (Wrong date diff).
      Fixed bug #66545 (DateTime. diff returns negative values).
      Fixed bug #68503 (date_diff on two dates with timezone set localised returns wrong results).
      Fixed bug #69806 (Incorrect date from timestamp).
      Fixed bug #71700 (Extra day on diff between begin and end of march 2016).
      Fixed bug #71826 (DateTime::diff confuse on timezone 'Asia/Tokyo').
      Fixed bug #73460 (Datetime add not realising it already applied DST change).
      Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in incorrect time).
      Fixed bug #74274 (Handling DST transitions correctly).
      Fixed bug #74524 (Date diff is bad calculated, in same time zone).
      Fixed bug #75167 (DateTime::add does only care about backward DST transition, not forward).
      Fixed bug #76032 (DateTime->diff having issues with leap days for timezones ahead of UTC).
      Fixed bug #76374 (Date difference varies according day time).
      Fixed bug #77571 (DateTime's diff DateInterval incorrect in timezones from UTC+01:00 to UTC+12:00).
      Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran).
      Fixed bug #79452 (DateTime::diff() generates months differently between time zones).
      Fixed bug #79698 (timelib mishandles future timestamps (triggered by 'zic -b slim')).
      Fixed bug #79716 (Invalid date time created (with day "00")).
      Fixed bug #80610 (DateTime calculate wrong with DateInterval).
      Fixed bug #80664 (DateTime objects behave incorrectly around DST transition).
      Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect time).
    DBA:
      Fixed bug #81588 (TokyoCabinet driver leaks memory).
    DOM:
      Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).
    FFI:
      Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).
    Filter:
      Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).
    FPM:
      Fixed bug #81513 (Future possibility for heap overflow in FPM zlog).
      Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).
      Added openmetrics status format.
      Enable process renaming on macOS.
      Added pm.max_spawn_rate option to configure max spawn child processes rate.
      Fixed bug #65800 (Events port mechanism).
    FTP:
      Convert resource<ftp> to object \FTP\Connection.
    GD:
      Fixed bug #71316 (libpng warning from imagecreatefromstring).
      Convert resource<gd font> to object \GdFont.
      Added support for Avif images
    hash:
      Implemented FR #68109 (Add MurmurHash V3).
      Implemented FR #73385 (Add xxHash support).
    JSON:
            Fixed bug #81532 (Change of $depth behaviour in json_encode() on PHP 8.1).
    LDAP:
      Convert resource<ldap link> to object \LDAP\Connection.
      Convert resource<ldap result> to object \LDAP\Result.
      Convert resource<ldap result entry> to object \LDAP\ResultEntry.
    MBString:
      Fixed bug #76167 (mbstring may use pointer from some previous request).
      Fixed bug #81390 (mb_detect_encoding() regression).
      Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases).
      Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is specified).
    MySQLi:
      Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient).
      Fixed bug #80330 (Replace language in APIs and source code/docs).
      Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder (including libmysql)).
    MySQLnd:
      Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment).
      Fixed bug #80761 (PDO uses too much memory).
    Opcache:
      Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array).
      Fixed bug #81255 (Memory leak in PHPUnit with functional JIT).
      Fixed bug #80959 (infinite loop in building cfg during JIT compilation).
      Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
      Fixed bug #81249 (Intermittent property assignment failure with JIT enabled).
      Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with JIT).
      Fixed bug #81133 (building opcache with phpize fails).
      Fixed bug #81136 (opcache header not installed).
      Added inheritance cache.
    OpenSSL:
      Fixed bug #81502 ($tag argument of openssl_decrypt() should accept null/empty string).
      Bump minimal OpenSSL version to 1.0.2.
    PCRE:
      Fixed bug #81424 (PCRE2 10.35 JIT performance regression).
      Bundled PCRE2 is 10.37.
    PDO:
      Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB).
    PDO MySQL:
      Fixed bug #80908 (PDO::lastInsertId() return wrong).
      Fixed bug #81037 (PDO discards error message text from prepared statement).
    PDO OCI:
      Fixed bug #77120 (Support 'success with info' at connection).
    PDO ODBC:
      Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for PDO::getAttribute().
    PDO PgSQL:
      Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling closeCursor()).
    PDO SQLite:
      Fixed bug #38334 (Proper data-type support for PDO_SQLITE).
    PgSQL:
      Fixed bug #81509 (pg_end_copy still expects a resource).
      Convert resource<pgsql link> to object \PgSql\Connection.
      Convert resource<pgsql result> to object \PgSql\Result.
      Convert resource<pgsql large object> to object \PgSql\Lob.
    Phar:
      Use SHA256 by default for signature.
      Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature.
    phpdbg:
      Fixed bug #81135 (unknown help topic causes assertion failure).
    PSpell:
      Convert resource<pspell> to object \PSpell\Dictionary.
      Convert resource<pspell config> to object \PSpell\Config.
    readline:
      Fixed bug #72998 (invalid read in readline completion).
    Reflection:
      Fixed bug #81611 (ArgumentCountError when getting default value from ReflectionParameter with new).
      Fixed bug #81630 (PHP 8.1: ReflectionClass->getTraitAliases() crashes with Internal error).
      Fixed bug #81457 (Enum: ReflectionMethod->getDeclaringClass() return a ReflectionClass).
      Fixed bug #81474 (Make ReflectionEnum and related class non-final).
      Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current value for statics).
      Fixed bug #80564 (ReflectionProperty::__toString() renders current value, not default value).
      Fixed bug #80097 (ReflectionAttribute is not a Reflector).
      Fixed bug #81200 (no way to determine if Closure is static).
      Implement ReflectionFunctionAbstract::getClosureUsedVariables.
    Shmop:
      Fixed bug #81407 (shmop_open won't attach and causes php to crash).
    SimpleXML:
      Fixed bug #81325 (Segfault in zif_simplexml_import_dom).
    SNMP:
      Implement SHA256 and SHA512 for security protocol.
    Sodium:
      Added the XChaCha20 stream cipher functions.
      Added the Ristretto255 functions, which are available in libsodium 1.0.18.
    SPL:
      Fixed bug #66588 (SplFileObject::fgetcsv incorrectly returns a row on premature EOF).
      Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).
      Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1).
      Fixed bug #81112 (Special json_encode behavior for SplFixedArray).
      Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject non-existing key).
      Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE from bitmask).
    Standard:
      Fixed bug #81441 (gethostbyaddr('::1') returns ip instead of name after calling some other method).
      Fixed bug #81491 (Incorrectly using libsodium for argon2 hashing).
      Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an associative array).
      Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes with __serialize()).
      Fixed bug #81137 (hrtime breaks build on OSX before Sierra).
      Fixed bug #77627 (method_exists on Closure::__invoke inconsistency).
    Streams:
      Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).
    XML:
      Fixed bug #79971 (special character is breaking the path in xml function) (CVE-2021-21707).
      Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).
    Zip:
      Fixed bug #81490 (ZipArchive::extractTo() may leak memory).
      Fixed bug #77978 (Dirname ending in colon unzips to wrong dir).
      Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination) (CVE-2021-21706).
      Fixed bug #80833 (ZipArchive::getStream doesn't use setPassword).
    
    FLAVORS won't be available untill it is added to the Uses framework
    which can be followed up :
    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260774
    
    Relnotes: https://www.php.net/ChangeLog-8.php#8.1.1
    Sponsored by:   Bounce Experts
---
 archivers/Makefile                                 |   4 +
 archivers/php81-bz2/Makefile                       |   7 +
 archivers/php81-phar/Makefile                      |   7 +
 archivers/php81-phar/files/patch-config.m4         |  41 ++
 archivers/php81-zip/Makefile                       |   7 +
 archivers/php81-zlib/Makefile                      |   7 +
 archivers/php81-zlib/files/patch-zlib.c            |  10 +
 converters/Makefile                                |   2 +
 converters/php81-iconv/Makefile                    |   7 +
 converters/php81-mbstring/Makefile                 |   7 +
 converters/php81-mbstring/files/patch-config.m4    |  44 ++
 databases/Makefile                                 |  12 +
 databases/php81-dba/Makefile                       |   7 +
 databases/php81-dba/files/patch-config.m4          |  50 ++
 databases/php81-mysqli/Makefile                    |   7 +
 databases/php81-mysqli/files/patch-mysqli__api.c   |  12 +
 .../php81-mysqli/files/patch-php_mysqli_structs.h  |  20 +
 databases/php81-odbc/Makefile                      |   7 +
 databases/php81-odbc/files/patch-config.m4         | 111 ++++
 databases/php81-pdo/Makefile                       |   7 +
 databases/php81-pdo_dblib/Makefile                 |   7 +
 databases/php81-pdo_firebird/Makefile              |   7 +
 databases/php81-pdo_mysql/Makefile                 |   7 +
 databases/php81-pdo_odbc/Makefile                  |   7 +
 databases/php81-pdo_pgsql/Makefile                 |   7 +
 databases/php81-pdo_sqlite/Makefile                |   7 +
 databases/php81-pgsql/Makefile                     |   7 +
 databases/php81-sqlite3/Makefile                   |   7 +
 devel/Makefile                                     |  10 +
 devel/php81-ffi/Makefile                           |   7 +
 devel/php81-gettext/Makefile                       |   7 +
 devel/php81-intl/Makefile                          |   7 +
 devel/php81-pcntl/Makefile                         |   7 +
 devel/php81-readline/Makefile                      |   7 +
 devel/php81-readline/files/patch-config.m4         |  33 +
 devel/php81-readline/files/patch-readline_cli.c    |  13 +
 devel/php81-shmop/Makefile                         |   7 +
 devel/php81-sysvmsg/Makefile                       |   7 +
 devel/php81-sysvsem/Makefile                       |   7 +
 devel/php81-sysvshm/Makefile                       |   7 +
 devel/php81-tokenizer/Makefile                     |   7 +
 ftp/Makefile                                       |   2 +
 ftp/php81-curl/Makefile                            |   7 +
 ftp/php81-ftp/Makefile                             |   7 +
 graphics/Makefile                                  |   2 +
 graphics/php81-exif/Makefile                       |   7 +
 graphics/php81-gd/Makefile                         |   7 +
 graphics/php81-gd/files/patch-gd.c                 |  11 +
 lang/Makefile                                      |   2 +
 lang/php81-extensions/Makefile                     |  91 +++
 lang/php81-extensions/pkg-descr                    |   7 +
 lang/php81/Makefile                                | 662 +++++++++++++++++++++
 lang/php81/distinfo                                |   3 +
 lang/php81/files/patch-build_Makefile.global       |  19 +
 lang/php81/files/patch-configure.ac                |  45 ++
 lang/php81/files/patch-ext_mysqli_mysqli__api.c    |  12 +
 lang/php81/files/patch-ext_mysqli_mysqli__nonapi.c |  12 +
 lang/php81/files/patch-ext_mysqli_mysqli__prop.c   |  12 +
 .../files/patch-ext_mysqli_php__mysqli__structs.h  |  11 +
 .../files/patch-sapi_apache2handler_config.m4      |  11 +
 lang/php81/files/patch-sapi_fpm_config.m4          |  11 +
 lang/php81/files/patch-sapi_fpm_www.conf.in        |  17 +
 lang/php81/files/php-fpm.in                        |  66 ++
 lang/php81/pkg-descr                               |   8 +
 lang/php81/pkg-message.mod                         |  19 +
 lang/php81/pkg-plist                               | 308 ++++++++++
 lang/php81/pkg-plist.mod                           |   3 +
 mail/Makefile                                      |   1 +
 mail/php81-imap/Makefile                           |   7 +
 mail/php81-imap/files/patch-config.m4              |  47 ++
 math/Makefile                                      |   2 +
 math/php81-bcmath/Makefile                         |   7 +
 math/php81-gmp/Makefile                            |   7 +
 misc/Makefile                                      |   1 +
 misc/php81-calendar/Makefile                       |   7 +
 net-mgmt/Makefile                                  |   1 +
 net-mgmt/php81-snmp/Makefile                       |   7 +
 net/Makefile                                       |   3 +
 net/php81-ldap/Makefile                            |   7 +
 net/php81-soap/Makefile                            |   7 +
 net/php81-sockets/Makefile                         |   7 +
 security/Makefile                                  |   3 +
 security/php81-filter/Makefile                     |   7 +
 security/php81-openssl/Makefile                    |   7 +
 security/php81-sodium/Makefile                     |   7 +
 sysutils/Makefile                                  |   2 +
 sysutils/php81-fileinfo/Makefile                   |   7 +
 sysutils/php81-fileinfo/files/patch-config.m4      |  21 +
 sysutils/php81-posix/Makefile                      |   7 +
 sysutils/php81-posix/files/patch-posix.c           |  38 ++
 textproc/Makefile                                  |   9 +
 textproc/php81-ctype/Makefile                      |   7 +
 textproc/php81-dom/Makefile                        |   7 +
 textproc/php81-enchant/Makefile                    |   7 +
 textproc/php81-enchant/files/patch-enchant.c       |  11 +
 textproc/php81-pspell/Makefile                     |   7 +
 textproc/php81-simplexml/Makefile                  |   7 +
 textproc/php81-simplexml/files/patch-config.m4     |  42 ++
 textproc/php81-xml/Makefile                        |   7 +
 textproc/php81-xml/files/patch-compat.c            |  13 +
 textproc/php81-xmlreader/Makefile                  |   7 +
 textproc/php81-xmlwriter/Makefile                  |   7 +
 textproc/php81-xsl/Makefile                        |   7 +
 textproc/php81-xsl/files/patch-php_xsl.h           |  11 +
 www/Makefile                                       |   4 +
 www/mod_php81/Makefile                             |  13 +
 www/php81-opcache/Makefile                         |   7 +
 www/php81-opcache/files/patch-config.m4            |  20 +
 www/php81-session/Makefile                         |   7 +
 www/php81-tidy/Makefile                            |   7 +
 110 files changed, 2337 insertions(+)

diff --git a/archivers/Makefile b/archivers/Makefile
index caea780b16f5..c96743259a10 100644
--- a/archivers/Makefile
+++ b/archivers/Makefile
@@ -162,9 +162,13 @@
     SUBDIR += php74-zip
     SUBDIR += php74-zlib
     SUBDIR += php80-bz2
+    SUBDIR += php81-bz2
     SUBDIR += php80-phar
+    SUBDIR += php81-phar
     SUBDIR += php80-zip
+    SUBDIR += php81-zip
     SUBDIR += php80-zlib
+    SUBDIR += php81-zlib
     SUBDIR += pigz
     SUBDIR += pixz
     SUBDIR += plzip
diff --git a/archivers/php81-bz2/Makefile b/archivers/php81-bz2/Makefile
new file mode 100644
index 000000000000..acda1fa77a92
--- /dev/null
+++ b/archivers/php81-bz2/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	archivers
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-bz2
+
+.include "${MASTERDIR}/Makefile"
diff --git a/archivers/php81-phar/Makefile b/archivers/php81-phar/Makefile
new file mode 100644
index 000000000000..810e19ae4e32
--- /dev/null
+++ b/archivers/php81-phar/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	archivers
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-phar
+
+.include "${MASTERDIR}/Makefile"
diff --git a/archivers/php81-phar/files/patch-config.m4 b/archivers/php81-phar/files/patch-config.m4
new file mode 100644
index 000000000000..1aba3bd9a5a8
--- /dev/null
+++ b/archivers/php81-phar/files/patch-config.m4
@@ -0,0 +1,41 @@
+--- config.m4.orig	2016-06-21 19:56:50 UTC
++++ config.m4
+@@ -4,8 +4,38 @@ dnl config.m4 for extension phar
+ PHP_ARG_ENABLE(phar, for phar archive support,
+ [  --disable-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_HASH_SHARED" != "yes"; then
+     if test "$PHP_HASH" != "no"; then
diff --git a/archivers/php81-zip/Makefile b/archivers/php81-zip/Makefile
new file mode 100644
index 000000000000..448cb8fad537
--- /dev/null
+++ b/archivers/php81-zip/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	archivers
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-zip
+
+.include "${MASTERDIR}/Makefile"
diff --git a/archivers/php81-zlib/Makefile b/archivers/php81-zlib/Makefile
new file mode 100644
index 000000000000..751ffb1ae6b5
--- /dev/null
+++ b/archivers/php81-zlib/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	archivers
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-zlib
+
+.include "${MASTERDIR}/Makefile"
diff --git a/archivers/php81-zlib/files/patch-zlib.c b/archivers/php81-zlib/files/patch-zlib.c
new file mode 100644
index 000000000000..be02c50d1df6
--- /dev/null
+++ b/archivers/php81-zlib/files/patch-zlib.c
@@ -0,0 +1,10 @@
+--- zlib.c.orig	2016-06-21 19:57:08 UTC
++++ zlib.c
+@@ -1480,6 +1480,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 35de0a964209..2a0031cfd8a2 100644
--- a/converters/Makefile
+++ b/converters/Makefile
@@ -141,7 +141,9 @@
     SUBDIR += php74-iconv
     SUBDIR += php74-mbstring
     SUBDIR += php80-iconv
+    SUBDIR += php81-iconv
     SUBDIR += php80-mbstring
+    SUBDIR += php81-mbstring
     SUBDIR += psiconv
     SUBDIR += py-bencode.py
     SUBDIR += py-bencoder
diff --git a/converters/php81-iconv/Makefile b/converters/php81-iconv/Makefile
new file mode 100644
index 000000000000..cd797676267b
--- /dev/null
+++ b/converters/php81-iconv/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	converters
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-iconv
+
+.include "${MASTERDIR}/Makefile"
diff --git a/converters/php81-mbstring/Makefile b/converters/php81-mbstring/Makefile
new file mode 100644
index 000000000000..5ec26ef20ab5
--- /dev/null
+++ b/converters/php81-mbstring/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	converters
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-mbstring
+
+.include "${MASTERDIR}/Makefile"
diff --git a/converters/php81-mbstring/files/patch-config.m4 b/converters/php81-mbstring/files/patch-config.m4
new file mode 100644
index 000000000000..a3e5c14477a3
--- /dev/null
+++ b/converters/php81-mbstring/files/patch-config.m4
@@ -0,0 +1,44 @@
+--- config.m4.orig	2019-08-06 06:54:10 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
+@@ -200,6 +225,9 @@ PHP_ARG_ENABLE([mbregex],
+   [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 a2f7c0fb2374..8243c1fa738f 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -636,17 +636,29 @@
     SUBDIR += php74-pgsql
     SUBDIR += php74-sqlite3
     SUBDIR += php80-dba
+    SUBDIR += php81-dba
     SUBDIR += php80-mysqli
+    SUBDIR += php81-mysqli
     SUBDIR += php80-odbc
+    SUBDIR += php81-odbc
     SUBDIR += php80-pdo
+    SUBDIR += php81-pdo
     SUBDIR += php80-pdo_dblib
+    SUBDIR += php81-pdo_dblib
     SUBDIR += php80-pdo_firebird
+    SUBDIR += php81-pdo_firebird
     SUBDIR += php80-pdo_mysql
+    SUBDIR += php81-pdo_mysql
     SUBDIR += php80-pdo_odbc
+    SUBDIR += php81-pdo_odbc
     SUBDIR += php80-pdo_pgsql
+    SUBDIR += php81-pdo_pgsql
     SUBDIR += php80-pdo_sqlite
+    SUBDIR += php81-pdo_sqlite
     SUBDIR += php80-pgsql
+    SUBDIR += php81-pgsql
     SUBDIR += php80-sqlite3
+    SUBDIR += php81-sqlite3
     SUBDIR += phpliteadmin
     SUBDIR += phpminiadmin
     SUBDIR += phpmyadmin
diff --git a/databases/php81-dba/Makefile b/databases/php81-dba/Makefile
new file mode 100644
index 000000000000..5c5380de17df
--- /dev/null
+++ b/databases/php81-dba/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-dba
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-dba/files/patch-config.m4 b/databases/php81-dba/files/patch-config.m4
new file mode 100644
index 000000000000..30f662138374
--- /dev/null
+++ b/databases/php81-dba/files/patch-config.m4
@@ -0,0 +1,50 @@
+--- config.m4.orig	2016-01-06 15:14:47 UTC
++++ config.m4
+@@ -324,6 +324,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
+@@ -366,7 +398,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/php81-mysqli/Makefile b/databases/php81-mysqli/Makefile
new file mode 100644
index 000000000000..26619c0bed72
--- /dev/null
+++ b/databases/php81-mysqli/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-mysqli
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-mysqli/files/patch-mysqli__api.c b/databases/php81-mysqli/files/patch-mysqli__api.c
new file mode 100644
index 000000000000..a100e8205fb6
--- /dev/null
+++ b/databases/php81-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/php81-mysqli/files/patch-php_mysqli_structs.h b/databases/php81-mysqli/files/patch-php_mysqli_structs.h
new file mode 100644
index 000000000000..68568dd214fd
--- /dev/null
+++ b/databases/php81-mysqli/files/patch-php_mysqli_structs.h
@@ -0,0 +1,20 @@
+--- php_mysqli_structs.h.orig	2010-07-26 15:52:54.000000000 +0200
++++ php_mysqli_structs.h	2010-07-26 15:53:14.000000000 +0200
+@@ -36,7 +36,7 @@
+ #define FALSE 0
+ #endif
+ 
+-#ifdef MYSQLI_USE_MYSQLND
++#if defined(MYSQLI_USE_MYSQLND)
+ #include "ext/mysqlnd/mysqlnd.h"
+ #include "mysqli_mysqlnd.h"
+ #else
+@@ -53,6 +53,8 @@
+ #undef HAVE_MBSTATE_T
+ #define WE_HAD_MBSTATE_T
+ #endif
++
++typedef zend_ulong ulong;
+ 
+ #if defined(ulong) && !defined(HAVE_ULONG)
+ #define HAVE_ULONG
diff --git a/databases/php81-odbc/Makefile b/databases/php81-odbc/Makefile
new file mode 100644
index 000000000000..8bc4a42dd7ce
--- /dev/null
+++ b/databases/php81-odbc/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-odbc
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-odbc/files/patch-config.m4 b/databases/php81-odbc/files/patch-config.m4
new file mode 100644
index 000000000000..04efc6ded7c9
--- /dev/null
+++ b/databases/php81-odbc/files/patch-config.m4
@@ -0,0 +1,111 @@
+--- config.m4.orig	2019-08-06 06:54:18 UTC
++++ config.m4
+@@ -91,6 +91,9 @@ 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]]],
+@@ -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/php81-pdo/Makefile b/databases/php81-pdo/Makefile
new file mode 100644
index 000000000000..436a6554b434
--- /dev/null
+++ b/databases/php81-pdo/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_dblib/Makefile b/databases/php81-pdo_dblib/Makefile
new file mode 100644
index 000000000000..1634ef611565
--- /dev/null
+++ b/databases/php81-pdo_dblib/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_dblib
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_firebird/Makefile b/databases/php81-pdo_firebird/Makefile
new file mode 100644
index 000000000000..3d8a88b9eb21
--- /dev/null
+++ b/databases/php81-pdo_firebird/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_firebird
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_mysql/Makefile b/databases/php81-pdo_mysql/Makefile
new file mode 100644
index 000000000000..2f00ba00c8b9
--- /dev/null
+++ b/databases/php81-pdo_mysql/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_mysql
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_odbc/Makefile b/databases/php81-pdo_odbc/Makefile
new file mode 100644
index 000000000000..ea600d80a450
--- /dev/null
+++ b/databases/php81-pdo_odbc/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_odbc
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_pgsql/Makefile b/databases/php81-pdo_pgsql/Makefile
new file mode 100644
index 000000000000..f13461131114
--- /dev/null
+++ b/databases/php81-pdo_pgsql/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_pgsql
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pdo_sqlite/Makefile b/databases/php81-pdo_sqlite/Makefile
new file mode 100644
index 000000000000..c18088284a0b
--- /dev/null
+++ b/databases/php81-pdo_sqlite/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pdo_sqlite
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-pgsql/Makefile b/databases/php81-pgsql/Makefile
new file mode 100644
index 000000000000..f23a2e371612
--- /dev/null
+++ b/databases/php81-pgsql/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-pgsql
+
+.include "${MASTERDIR}/Makefile"
diff --git a/databases/php81-sqlite3/Makefile b/databases/php81-sqlite3/Makefile
new file mode 100644
index 000000000000..c68eab2dfba2
--- /dev/null
+++ b/databases/php81-sqlite3/Makefile
@@ -0,0 +1,7 @@
+CATEGORIES=	databases
+
+MASTERDIR=	${.CURDIR}/../../lang/php81
+
+PKGNAMESUFFIX=	-sqlite3
+
+.include "${MASTERDIR}/Makefile"
diff --git a/devel/Makefile b/devel/Makefile
index 5d929ccff89a..a4f7dbab77e1 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4037,15 +4037,25 @@
     SUBDIR += php74-sysvshm
     SUBDIR += php74-tokenizer
     SUBDIR += php80-ffi
+    SUBDIR += php81-ffi
     SUBDIR += php80-gettext
+    SUBDIR += php81-gettext
     SUBDIR += php80-intl
+    SUBDIR += php81-intl
     SUBDIR += php80-pcntl
+    SUBDIR += php81-pcntl
     SUBDIR += php80-readline
+    SUBDIR += php81-readline
     SUBDIR += php80-shmop
+    SUBDIR += php81-shmop
     SUBDIR += php80-sysvmsg
+    SUBDIR += php81-sysvmsg
     SUBDIR += php80-sysvsem
+    SUBDIR += php81-sysvsem
     SUBDIR += php80-sysvshm
+    SUBDIR += php81-sysvshm
     SUBDIR += php80-tokenizer
*** 2471 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202112290218.1BT2IMvH021042>