aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Gmelin <grembo@FreeBSD.org>2023-01-31 17:06:46 +0000
committerMichael Gmelin <grembo@FreeBSD.org>2023-01-31 18:51:50 +0000
commitbe146a923dbda66f50c6b04b406da790837f6287 (patch)
treeeca70c8ac4860d636e628c0df51a339a2f1e390e
parent1050eabf189747766f896cf6aa7f4310e422b692 (diff)
downloadports-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.
-rw-r--r--devel/arcanist-lib/Makefile2
-rw-r--r--devel/arcanist-lib/files/patch-src_error_PhutilErrorHandler.php14
-rw-r--r--devel/arcanist-lib/files/patch-src_parser_ArcanistBundle.php20
-rw-r--r--devel/arcanist-lib/files/patch-src_repository_api_ArcanistGitAPI.php11
-rw-r--r--devel/arcanist-lib/files/patch-src_workflow_ArcanistDiffWorkflow.php11
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) {