From aae3ea7cbfa07f70b2a2ea421b09af8581aeac6a Mon Sep 17 00:00:00 2001 From: El RIDO Date: Mon, 1 Apr 2024 14:34:23 +0200 Subject: [PATCH 1/3] update documentation - clarify all template options & link to previews - document new ctype extension requirement --- cfg/conf.sample.php | 13 ++++++++----- doc/Installation.md | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cfg/conf.sample.php b/cfg/conf.sample.php index 141888f2..b128bf48 100644 --- a/cfg/conf.sample.php +++ b/cfg/conf.sample.php @@ -37,9 +37,12 @@ defaultformatter = "plaintext" ; size limit per paste or comment in bytes, defaults to 10 Mebibytes sizelimit = 10485760 -; template to include, default is "bootstrap" (tpl/bootstrap.php) -; Also available is a dark version ("bootstrap-dark",) and -; a theme that resembles the classic ZeroBin style ("page".) +; template to include, default is "bootstrap" (tpl/bootstrap.php), also +; available are "page" (tpl/page.php), the classic ZeroBin style and several +; bootstrap variants: "bootstrap-dark", "bootstrap-compact", "bootstrap-page", +; which can be combined with "-dark" and "-compact" for "bootstrap-dark-page" +; and finally "bootstrap-compact-page" - previews at: +; https://privatebin.info/screenshots.html template = "bootstrap" ; (optional) info text to display @@ -242,7 +245,7 @@ dir = PATH "data" ; - AWS_ACCESS_KEY_ID ; - AWS_SECRET_ACCESS_KEY ; - AWS_SESSION_TOKEN (if needed) -; for more details, see https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html#default-credential-chain +; for more details, see https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html#default-credential-chain ;class = S3Storage ;[model_options] ;region = "eu-central-1" @@ -264,4 +267,4 @@ dir = PATH "data" ; (optional) the "signature" (access key) issued by YOURLS for the using account ; signature = "" ; (optional) the URL of the YOURLS API, called to shorten a PrivateBin URL -; apiurl = "https://yourls.example.com/yourls-api.php" \ No newline at end of file +; apiurl = "https://yourls.example.com/yourls-api.php" diff --git a/doc/Installation.md b/doc/Installation.md index 77f79fbb..b09de9e1 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -22,6 +22,7 @@ for more information. ### Minimal Requirements - PHP version 7.3 or above +- ctype extension - GD extension (when using identicon or vizhash icons, jdenticon works without it) - zlib extension - some disk space or a database supported by [PDO](https://php.net/manual/book.pdo.php) From b9a9e7c3241fc5697701a00d5db73fee45afd605 Mon Sep 17 00:00:00 2001 From: El RIDO Date: Mon, 1 Apr 2024 14:34:55 +0200 Subject: [PATCH 2/3] bump versions of optional cloud storage dependencies --- composer.json | 4 ++-- tst/Bootstrap.php | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index bbd720ae..0d792ebf 100644 --- a/composer.json +++ b/composer.json @@ -30,8 +30,8 @@ "yzalis/identicon": "2.0.0" }, "suggest" : { - "google/cloud-storage" : "1.32.0", - "aws/aws-sdk-php" : "3.275.1" + "google/cloud-storage" : "1.41.0", + "aws/aws-sdk-php" : "3.302.0" }, "require-dev" : { "phpunit/phpunit" : "^9" diff --git a/tst/Bootstrap.php b/tst/Bootstrap.php index 7f4caa32..183d1b1d 100644 --- a/tst/Bootstrap.php +++ b/tst/Bootstrap.php @@ -508,6 +508,11 @@ class ConnectionInterfaceStub implements ConnectionInterface throw new BadMethodCallException('not supported by this stub'); } + public function restoreObject(array $args = array()) + { + throw new BadMethodCallException('not supported by this stub'); + } + public function copyObject(array $args = array()) { throw new BadMethodCallException('not supported by this stub'); From 6bcef2fa24e04b96e9f630c8b47fa91bb4ac95f8 Mon Sep 17 00:00:00 2001 From: El RIDO Date: Mon, 1 Apr 2024 14:40:23 +0200 Subject: [PATCH 3/3] handle PHP 8.2 deprecation PHP 8.2 deprecates implicit conversion from float to int if it loses precision, hence the explicit conversion. PHP 8.1 deprecates the (optional since PHP 8.0) 3rd parameter of imagefilledpolygon(), but 7.3 & 7.4 require it. --- lib/Vizhash16x16.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/Vizhash16x16.php b/lib/Vizhash16x16.php index b61fd56b..2d296af8 100644 --- a/lib/Vizhash16x16.php +++ b/lib/Vizhash16x16.php @@ -109,9 +109,9 @@ class Vizhash16x16 for ($i = 0; $i < 7; ++$i) { $action = $this->getInt(); $color = imagecolorallocate($image, $r, $g, $b); - $r = $r0 = ($r0 + $this->getInt() / 25) % 256; - $g = $g0 = ($g0 + $this->getInt() / 25) % 256; - $b = $b0 = ($b0 + $this->getInt() / 25) % 256; + $r = $r0 = ((int) $r0 + $this->getInt() / 25) % 256; + $g = $g0 = ((int) $g0 + $this->getInt() / 25) % 256; + $b = $b0 = ((int) $b0 + $this->getInt() / 25) % 256; $this->drawshape($image, $action, $color); } @@ -136,7 +136,7 @@ class Vizhash16x16 { $v = $this->VALUES[$this->VALUES_INDEX]; ++$this->VALUES_INDEX; - $this->VALUES_INDEX %= count($this->VALUES); // Warp around the array + $this->VALUES_INDEX %= count($this->VALUES); // Wrap around the array return $v; } @@ -148,7 +148,7 @@ class Vizhash16x16 */ private function getX() { - return $this->width * $this->getInt() / 256; + return (int) $this->width * $this->getInt() / 256; } /** @@ -159,7 +159,7 @@ class Vizhash16x16 */ private function getY() { - return $this->height * $this->getInt() / 256; + return (int) $this->height * $this->getInt() / 256; } /** @@ -190,9 +190,9 @@ class Vizhash16x16 ($color2[2] - $color1[2]) / $size, ); for ($i = 0; $i < $size; ++$i) { - $r = $color1[0] + ($diffs[0] * $i); - $g = $color1[1] + ($diffs[1] * $i); - $b = $color1[2] + ($diffs[2] * $i); + $r = $color1[0] + ((int) $diffs[0] * $i); + $g = $color1[1] + ((int) $diffs[1] * $i); + $b = $color1[2] + ((int) $diffs[2] * $i); if ($direction == 'h') { imageline($img, $i, 0, $i, $sizeinv, imagecolorallocate($img, $r, $g, $b)); } else { @@ -222,7 +222,7 @@ class Vizhash16x16 break; case 3: $points = array($this->getX(), $this->getY(), $this->getX(), $this->getY(), $this->getX(), $this->getY(), $this->getX(), $this->getY()); - imagefilledpolygon($image, $points, 4, $color); + version_compare(PHP_VERSION, '8.1', '<') ? imagefilledpolygon($image, $points, 4, $color) : imagefilledpolygon($image, $points, $color); break; default: $start = $this->getInt() * 360 / 256;