Merge pull request #24698 from nextcloud/backport/24416/stable20
[stable20] Check php compatibility of app store app releases
This commit is contained in:
commit
f0c2807cac
|
@ -101,14 +101,32 @@ class AppFetcher extends Fetcher {
|
|||
// Exclude all versions not compatible with the current version
|
||||
try {
|
||||
$versionParser = new VersionParser();
|
||||
$version = $versionParser->getVersion($release['rawPlatformVersionSpec']);
|
||||
$serverVersion = $versionParser->getVersion($release['rawPlatformVersionSpec']);
|
||||
$ncVersion = $this->getVersion();
|
||||
$min = $version->getMinimumVersion();
|
||||
$max = $version->getMaximumVersion();
|
||||
$minFulfilled = $this->compareVersion->isCompatible($ncVersion, $min, '>=');
|
||||
$maxFulfilled = $max !== '' &&
|
||||
$this->compareVersion->isCompatible($ncVersion, $max, '<=');
|
||||
if ($minFulfilled && ($this->ignoreMaxVersion || $maxFulfilled)) {
|
||||
$minServerVersion = $serverVersion->getMinimumVersion();
|
||||
$maxServerVersion = $serverVersion->getMaximumVersion();
|
||||
$minFulfilled = $this->compareVersion->isCompatible($ncVersion, $minServerVersion, '>=');
|
||||
$maxFulfilled = $maxServerVersion !== '' &&
|
||||
$this->compareVersion->isCompatible($ncVersion, $maxServerVersion, '<=');
|
||||
$isPhpCompatible = true;
|
||||
if (($release['rawPhpVersionSpec'] ?? '*') !== '*') {
|
||||
$phpVersion = $versionParser->getVersion($release['rawPhpVersionSpec']);
|
||||
$minPhpVersion = $phpVersion->getMinimumVersion();
|
||||
$maxPhpVersion = $phpVersion->getMaximumVersion();
|
||||
$minPhpFulfilled = $minPhpVersion === '' || $this->compareVersion->isCompatible(
|
||||
PHP_VERSION,
|
||||
$minPhpVersion,
|
||||
'>='
|
||||
);
|
||||
$maxPhpFulfilled = $maxPhpVersion === '' || $this->compareVersion->isCompatible(
|
||||
PHP_VERSION,
|
||||
$maxPhpVersion,
|
||||
'<='
|
||||
);
|
||||
|
||||
$isPhpCompatible = $minPhpFulfilled && $maxPhpFulfilled;
|
||||
}
|
||||
if ($minFulfilled && ($this->ignoreMaxVersion || $maxFulfilled) && $isPhpCompatible) {
|
||||
$releases[] = $release;
|
||||
}
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
|
|
Loading…
Reference in New Issue