Don't expect TS only extensions to have NTS builds (#97)

As it is now, only DLLs of extensions which have been built for NTS and
ZTS are shown on the respective extension page.  This has probably been
done to avoid "broken" extensions to be shown, to avoid confusion for
users ("where are the ZTS builds?"), and likely to endorse NTS builds
for security (ASLR) and stability reasons.

However, there are some extensions which do not support NTS builds by
design, and I don't see a particularly good reason not to show their
DLLs.  To avoid issues with extensions which are supposed to be
compatible with NTS and ZTS, we hard-code the list of extensions which
are supposed to work in thread-safe mode only.
This commit is contained in:
Christoph M. Becker
2024-07-10 18:35:13 +02:00
committed by GitHub
parent 8fe853663b
commit c7e82865af

View File

@@ -100,6 +100,8 @@ class PackageDll
],
];
private $ts_only_dlls = ['parallel', 'pthreads'];
/**
* Class constructor.
*/
@@ -230,7 +232,8 @@ class PackageDll
}
/**
* Need always both ts/nts for each branch.
* Need always both ts/nts for each branch,
* except for explicitly listed ts only exts.
*/
private function getZipFileList($name, $version)
{
@@ -247,7 +250,9 @@ class PackageDll
if (!isset($ret[$branch][$set["arch"]])) {
$ret[$branch][$set["arch"]] = [];
}
$ret[$branch][$set["arch"]][] = strtolower($pref . "-nts-" . $suf);
if (!in_array($name, $this->ts_only_dlls, true)) {
$ret[$branch][$set["arch"]][] = strtolower($pref . "-nts-" . $suf);
}
$ret[$branch][$set["arch"]][] = strtolower($pref . "-ts-" . $suf);
}
}