diff options
author | Michael Gmelin <grembo@FreeBSD.org> | 2023-01-31 17:06:46 +0000 |
---|---|---|
committer | Michael Gmelin <grembo@FreeBSD.org> | 2023-01-31 18:51:50 +0000 |
commit | be146a923dbda66f50c6b04b406da790837f6287 (patch) | |
tree | eca70c8ac4860d636e628c0df51a339a2f1e390e | |
parent | 1050eabf189747766f896cf6aa7f4310e422b692 (diff) | |
download | ports-be146a923dbda66f50c6b04b406da790837f6287.tar.gz ports-be146a923dbda66f50c6b04b406da790837f6287.zip |
devel/arcanist-lib: Suppress certain runtime exceptions
Default configured PHP 8.1+ issues deprecation errors when NULL
strings are passed into various library functions.
In the past, we tried to address those one by one, which feels
a bit like playing Whac-A-Mole.
This patch adds custom error handling for this kind of deprecation
error, so that it is ignored. This should fix this entire class of
errors at least until PHP 9.0 is released, at which point a different
workaround (or real solution is needed). Therefore previous patches
were removed.
5 files changed, 15 insertions, 43 deletions
diff --git a/devel/arcanist-lib/Makefile b/devel/arcanist-lib/Makefile index 88851111a747..35298455a620 100644 --- a/devel/arcanist-lib/Makefile +++ b/devel/arcanist-lib/Makefile @@ -1,6 +1,6 @@ PORTNAME?= arcanist PORTVERSION?= 20220518 -PORTREVISION?= 3 +PORTREVISION?= 4 CATEGORIES?= devel PKGNAMESUFFIX= ${SLAVE_PKGNAMESUFFIX}${PHP_PKGNAMESUFFIX} diff --git a/devel/arcanist-lib/files/patch-src_error_PhutilErrorHandler.php b/devel/arcanist-lib/files/patch-src_error_PhutilErrorHandler.php new file mode 100644 index 000000000000..c5a89b45c7de --- /dev/null +++ b/devel/arcanist-lib/files/patch-src_error_PhutilErrorHandler.php @@ -0,0 +1,14 @@ +--- src/error/PhutilErrorHandler.php.orig 2022-05-17 23:20:14 UTC ++++ src/error/PhutilErrorHandler.php +@@ -181,6 +181,11 @@ final class PhutilErrorHandler extends Phobject { + * @task internal + */ + public static function handleError($num, $str, $file, $line, $ctx = null) { ++ // work around PHP 8.1+ null argument deprecation error ++ if ($num === E_DEPRECATED && preg_match('/Passing null to parameter #.* of type .* is deprecated/', $str)) { ++ return true; ++ } ++ + foreach (self::$traps as $trap) { + $trap->addError($num, $str, $file, $line); + } diff --git a/devel/arcanist-lib/files/patch-src_parser_ArcanistBundle.php b/devel/arcanist-lib/files/patch-src_parser_ArcanistBundle.php deleted file mode 100644 index 095e1b24ee81..000000000000 --- a/devel/arcanist-lib/files/patch-src_parser_ArcanistBundle.php +++ /dev/null @@ -1,20 +0,0 @@ ---- src/parser/ArcanistBundle.php.orig 2022-09-08 16:04:09 UTC -+++ src/parser/ArcanistBundle.php -@@ -762,7 +762,7 @@ final class ArcanistBundle extends Phobject { - $old_data = $this->getBlob($old_phid, $name); - } - -- $old_length = strlen($old_data); -+ $old_length = strlen($old_data ?? ''); - - // Here, and below, the binary will be emitted with base85 encoding. This - // encoding encodes each 4 bytes of input in 5 bytes of output, so we may -@@ -795,7 +795,7 @@ final class ArcanistBundle extends Phobject { - $new_data = $this->getBlob($new_phid, $name); - } - -- $new_length = strlen($new_data); -+ $new_length = strlen($new_data ?? ''); - $this->reserveBytes($new_length * 5 / 4); - - if ($new_data === null) { diff --git a/devel/arcanist-lib/files/patch-src_repository_api_ArcanistGitAPI.php b/devel/arcanist-lib/files/patch-src_repository_api_ArcanistGitAPI.php deleted file mode 100644 index fa73cbef6e63..000000000000 --- a/devel/arcanist-lib/files/patch-src_repository_api_ArcanistGitAPI.php +++ /dev/null @@ -1,11 +0,0 @@ ---- src/repository/api/ArcanistGitAPI.php.orig 2023-01-06 17:27:38 UTC -+++ src/repository/api/ArcanistGitAPI.php -@@ -1143,7 +1143,7 @@ final class ArcanistGitAPI extends ArcanistRepositoryA - - public function hasLocalCommit($commit) { - try { -- if (!$this->getCanonicalRevisionName($commit)) { -+ if (!$this->getCanonicalRevisionName($commit ?? '')) { - return false; - } - } catch (CommandException $exception) { diff --git a/devel/arcanist-lib/files/patch-src_workflow_ArcanistDiffWorkflow.php b/devel/arcanist-lib/files/patch-src_workflow_ArcanistDiffWorkflow.php deleted file mode 100644 index f132ed21d524..000000000000 --- a/devel/arcanist-lib/files/patch-src_workflow_ArcanistDiffWorkflow.php +++ /dev/null @@ -1,11 +0,0 @@ ---- src/workflow/ArcanistDiffWorkflow.php.orig 2023-01-09 21:24:25 UTC -+++ src/workflow/ArcanistDiffWorkflow.php -@@ -2361,7 +2361,7 @@ EOTEXT - - // If we track an upstream branch either directly or indirectly, use that. - $branch = $api->getBranchName(); -- if (strlen($branch)) { -+ if (strlen($branch ?? '')) { - $upstream_path = $api->getPathToUpstream($branch); - $remote_branch = $upstream_path->getRemoteBranchName(); - if ($remote_branch !== null) { |