aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2024-11-08 14:44:54 +0100
committerGitHub <noreply@github.com>2024-11-08 14:44:54 +0100
commit78cf3129aa535502f2baea49944e11221a2acf5c (patch)
tree94dbcfc44bd0fbe826f3ff24355d50bc17d44ec0
parentd5caf9125d6af1be077fee49e051a73d46a88975 (diff)
parent298948c28ce2d01446e718f6cf96e8fe0a444c6c (diff)
downloadnextcloud-server-78cf3129aa535502f2baea49944e11221a2acf5c.tar.gz
nextcloud-server-78cf3129aa535502f2baea49944e11221a2acf5c.zip
Merge pull request #49145 from nextcloud/ci/noid/php-8.4
feat(PHP): Allow PHP 8.4
-rw-r--r--.github/workflows/files-external-ftp.yml2
-rw-r--r--.github/workflows/files-external-s3.yml2
-rw-r--r--.github/workflows/files-external-sftp.yml2
-rw-r--r--.github/workflows/files-external-smb.yml2
-rw-r--r--.github/workflows/files-external-webdav.yml2
-rw-r--r--.github/workflows/files-external.yml2
-rw-r--r--.github/workflows/lint-php.yml2
-rw-r--r--.github/workflows/phpunit-mariadb.yml2
-rw-r--r--.github/workflows/phpunit-memcached.yml2
-rw-r--r--.github/workflows/phpunit-mysql.yml2
-rw-r--r--.github/workflows/phpunit-nodb.yml2
-rw-r--r--.github/workflows/phpunit-oci.yml2
-rw-r--r--.github/workflows/phpunit-pgsql.yml2
-rw-r--r--.github/workflows/phpunit-sqlite.yml2
-rw-r--r--apps/dav/tests/unit/Files/FileSearchBackendTest.php4
-rw-r--r--lib/private/Log/ExceptionSerializer.php5
-rw-r--r--lib/private/legacy/OC_Util.php7
-rw-r--r--lib/versioncheck.php6
18 files changed, 35 insertions, 15 deletions
diff --git a/.github/workflows/files-external-ftp.yml b/.github/workflows/files-external-ftp.yml
index 20629605ad6..2dfa5d7dec5 100644
--- a/.github/workflows/files-external-ftp.yml
+++ b/.github/workflows/files-external-ftp.yml
@@ -43,7 +43,7 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['8.1', '8.3']
+ php-versions: ['8.1', '8.4']
ftpd: ['proftpd', 'vsftpd', 'pure-ftpd']
include:
- php-versions: '8.1'
diff --git a/.github/workflows/files-external-s3.yml b/.github/workflows/files-external-s3.yml
index 87198c6b91c..738bf115c8d 100644
--- a/.github/workflows/files-external-s3.yml
+++ b/.github/workflows/files-external-s3.yml
@@ -41,7 +41,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.2', '8.3']
+ php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/files-external-sftp.yml b/.github/workflows/files-external-sftp.yml
index 4a63f073303..59607a0806f 100644
--- a/.github/workflows/files-external-sftp.yml
+++ b/.github/workflows/files-external-sftp.yml
@@ -43,7 +43,7 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['8.1', '8.3']
+ php-versions: ['8.1', '8.4']
sftpd: ['openssh']
include:
- php-versions: '8.1'
diff --git a/.github/workflows/files-external-smb.yml b/.github/workflows/files-external-smb.yml
index d555a86d926..e2ffccadf7c 100644
--- a/.github/workflows/files-external-smb.yml
+++ b/.github/workflows/files-external-smb.yml
@@ -41,7 +41,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.3']
+ php-versions: ['8.1']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/files-external-webdav.yml b/.github/workflows/files-external-webdav.yml
index 0dc353d01d8..f48e8a01f92 100644
--- a/.github/workflows/files-external-webdav.yml
+++ b/.github/workflows/files-external-webdav.yml
@@ -41,7 +41,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.2', '8.3']
+ php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/files-external.yml b/.github/workflows/files-external.yml
index 1079f611c44..f8c7c2067e5 100644
--- a/.github/workflows/files-external.yml
+++ b/.github/workflows/files-external.yml
@@ -40,7 +40,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.2', '8.3']
+ php-versions: ['8.1', '8.2', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index f04b68f89a3..47a733a1ae4 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -47,7 +47,7 @@ jobs:
strategy:
matrix:
- php-versions: [ '8.1', '8.2', '8.3' ]
+ php-versions: [ '8.1', '8.2', '8.3', '8.4' ]
name: php-lint
diff --git a/.github/workflows/phpunit-mariadb.yml b/.github/workflows/phpunit-mariadb.yml
index d3643b8a571..66326619cd5 100644
--- a/.github/workflows/phpunit-mariadb.yml
+++ b/.github/workflows/phpunit-mariadb.yml
@@ -61,6 +61,8 @@ jobs:
- php-versions: '8.3'
mariadb-versions: '10.11'
coverage: ${{ github.event_name != 'pull_request' }}
+ - php-versions: '8.4'
+ mariadb-versions: '11.4'
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
diff --git a/.github/workflows/phpunit-memcached.yml b/.github/workflows/phpunit-memcached.yml
index 52ea3d16fd3..8e2f963c2ae 100644
--- a/.github/workflows/phpunit-memcached.yml
+++ b/.github/workflows/phpunit-memcached.yml
@@ -55,7 +55,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.3']
+ php-versions: ['8.1', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml
index 198dd55c5df..fc1da488ee4 100644
--- a/.github/workflows/phpunit-mysql.yml
+++ b/.github/workflows/phpunit-mysql.yml
@@ -61,6 +61,8 @@ jobs:
- mysql-versions: '8.0'
php-versions: '8.3'
coverage: ${{ github.event_name != 'pull_request' }}
+ - mysql-versions: '8.4'
+ php-versions: '8.4'
name: MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
diff --git a/.github/workflows/phpunit-nodb.yml b/.github/workflows/phpunit-nodb.yml
index e0b0a2088b8..5d8e0797ba2 100644
--- a/.github/workflows/phpunit-nodb.yml
+++ b/.github/workflows/phpunit-nodb.yml
@@ -57,7 +57,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1', '8.3']
+ php-versions: ['8.1', '8.3', '8.4']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/.github/workflows/phpunit-oci.yml b/.github/workflows/phpunit-oci.yml
index a71017fce65..0e098898fdf 100644
--- a/.github/workflows/phpunit-oci.yml
+++ b/.github/workflows/phpunit-oci.yml
@@ -66,6 +66,8 @@ jobs:
php-versions: '8.2'
- oracle-versions: '23'
php-versions: '8.3'
+ - oracle-versions: '23'
+ php-versions: '8.4'
name: Oracle ${{ matrix.oracle-versions }} (PHP ${{ matrix.php-versions }}) - database tests
diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml
index 2e3496420b5..118a09a93cc 100644
--- a/.github/workflows/phpunit-pgsql.yml
+++ b/.github/workflows/phpunit-pgsql.yml
@@ -62,6 +62,8 @@ jobs:
- php-versions: '8.3'
postgres-versions: '16'
coverage: ${{ github.event_name != 'pull_request' }}
+ - php-versions: '8.4'
+ postgres-versions: '16'
name: PostgreSQL ${{ matrix.postgres-versions }} (PHP ${{ matrix.php-versions }}) - database tests
diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml
index 12b73e5d8c1..a572dd1593b 100644
--- a/.github/workflows/phpunit-sqlite.yml
+++ b/.github/workflows/phpunit-sqlite.yml
@@ -55,7 +55,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.2', '8.3']
+ php-versions: ['8.2', '8.3', '8.4']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
diff --git a/apps/dav/tests/unit/Files/FileSearchBackendTest.php b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
index f6fe8b1c116..aaa3d8c147e 100644
--- a/apps/dav/tests/unit/Files/FileSearchBackendTest.php
+++ b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
@@ -55,6 +55,10 @@ class FileSearchBackendTest extends TestCase {
private $davFolder;
protected function setUp(): void {
+ if (PHP_VERSION_ID >= 80400) {
+ $this->markTestSkipped('SearchDAV is not yet PHP 8.4 compatible');
+ }
+
parent::setUp();
$this->user = $this->createMock(IUser::class);
diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php
index 904107f6998..6d94bf51f45 100644
--- a/lib/private/Log/ExceptionSerializer.php
+++ b/lib/private/Log/ExceptionSerializer.php
@@ -34,6 +34,7 @@ class ExceptionSerializer {
'validateUserPass',
'loginWithToken',
'{closure}',
+ '{closure:*',
'createSessionToken',
// Provisioning
@@ -200,7 +201,9 @@ class ExceptionSerializer {
return $this->editTrace($sensitiveValues, $traceLine);
}
foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
- if (str_contains($traceLine['function'], $sensitiveMethod)) {
+ if (str_contains($traceLine['function'], $sensitiveMethod)
+ || (str_ends_with($sensitiveMethod, '*')
+ && str_starts_with($traceLine['function'], substr($sensitiveMethod, 0, -1)))) {
return $this->editTrace($sensitiveValues, $traceLine);
}
}
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 7b41f797e32..f82082d3d12 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -878,7 +878,12 @@ class OC_Util {
* @return bool
*/
public static function isAnnotationsWorking() {
- $reflection = new \ReflectionMethod(__METHOD__);
+ if (PHP_VERSION_ID >= 80300) {
+ /** @psalm-suppress UndefinedMethod */
+ $reflection = \ReflectionMethod::createFromMethodName(__METHOD__);
+ } else {
+ $reflection = new \ReflectionMethod(__METHOD__);
+ }
$docs = $reflection->getDocComment();
return (is_string($docs) && strlen($docs) > 50);
diff --git a/lib/versioncheck.php b/lib/versioncheck.php
index 43539468e3b..9e33f584a9a 100644
--- a/lib/versioncheck.php
+++ b/lib/versioncheck.php
@@ -13,10 +13,10 @@ if (PHP_VERSION_ID < 80100) {
exit(1);
}
-// Show warning if >= PHP 8.4 is used as Nextcloud is not compatible with >= PHP 8.4 for now
-if (PHP_VERSION_ID >= 80400) {
+// Show warning if >= PHP 8.5 is used as Nextcloud is not compatible with >= PHP 8.5 for now
+if (PHP_VERSION_ID >= 80500) {
http_response_code(500);
- echo 'This version of Nextcloud is not compatible with PHP>=8.4.<br/>';
+ echo 'This version of Nextcloud is not compatible with PHP>=8.5.<br/>';
echo 'You are currently running ' . PHP_VERSION . '.';
exit(1);
}