git: be146a923dbd - main - devel/arcanist-lib: Suppress certain runtime exceptions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 31 Jan 2023 18:53:03 UTC
The branch main has been updated by grembo:
URL: https://cgit.FreeBSD.org/ports/commit/?id=be146a923dbda66f50c6b04b406da790837f6287
commit be146a923dbda66f50c6b04b406da790837f6287
Author: Michael Gmelin <grembo@FreeBSD.org>
AuthorDate: 2023-01-31 17:06:46 +0000
Commit: Michael Gmelin <grembo@FreeBSD.org>
CommitDate: 2023-01-31 18:51:50 +0000
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.
---
devel/arcanist-lib/Makefile | 2 +-
.../files/patch-src_error_PhutilErrorHandler.php | 14 ++++++++++++++
.../files/patch-src_parser_ArcanistBundle.php | 20 --------------------
.../patch-src_repository_api_ArcanistGitAPI.php | 11 -----------
.../patch-src_workflow_ArcanistDiffWorkflow.php | 11 -----------
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) {