In theory, this should work, but in practice it fails since libmemcached
ships headers with standard names[1] which are erroneously included. We
still make the change, if only as a reminder that libmemcached needs to
be fixed.
We shall have a look at building with `--enable-memcached-igbinary` when
the header issue has been resolved.
[1] <https://github.com/awesomized/libmemcached/issues/61#issuecomment-1063228187>
As of PHP 8.0.0, pecl_http no longer can use propro, since that
extension had to be discontinued. Since we no longer build packages
for PHP < 7.4 anymore, we change the default package configuration.
As of Xdebug 3.1.0, the config option `--with-xdebug-compression` is
supported, but that does not work prior to PHP 7.4.20 because gzfwrite
is not exported. Thus, we build Xdebug for PHP 7.3 without compression
support.
Since LuaSandbox is not compatible with latest Lua versions[1], we use
lua 5.1.5. It should be noted that the lua-5.1.5 packages are not
suitable to build the lua extension.
[1] <https://bugs.php.net/80850>
This is a follow up on the quick fix for exporting from the php-src
Github mirror[1]. Instead of hard-coding everything in the code, we
introduce a configurable `gh_url`, and use it if given. We cannot use
the repository URL, though, because the toplevel folder inside the
downloaded archive would have a different name (the shortened revision
number is expanded again); downloading from the codeload subdomain
gives the desired result.
[1] <9e1ca1002a>
Due to server overload, the snapshot downloads from http://git.php.net/
have been recently disabled. Therefore, we have to fetch the snapshots
from Github. Unfortunately, rmtools expect everything available via
GitWeb, so we can't just change the configuration in the respective INI
files, so we hack around by hard-coding the download URL. Even worse,
`wget()` apparently does not yet support redirects, so we use the
codeload subdomain directly.
For now this seems to resolve the snapshot build issues, but needs to
be properly resolved soonish.
Some extensions have the actual extension code in a subfolder of the
toplevel package folder, and as such can't currently be built. For
instance, xhprof has `xhprof-x.y.z/extension/config.w32`, but we only
check for `xhprof-x.y.z/config.w32` and `config.w32`.
Changing `PeclExt::tmp_extract_path` to point to the subfolder which
contains ' config.w32` wouldn't work, though, because then the folders
in package.xml won't match anymore. Therefore, we attempt to copy the
whole subfolder one level up, and resume the build process.
If a PGO build is requested, but a build error occurs after the PGI
build has succeeded and before the PGO build has even been attempted
(for instance, if the PGO training fails), we may get a bogus archive
containing the PGI build, without any hint.
We apply a quick fix which bails out early, because if the PGI build
failed, it makes no sense to do the PGO build, and if the binaries
couldn't be built, it makes no sense to create the archive. However,
we still allow the PGO training to fail for snapshot builds.