php.buildPecl: Make it possible for PECLs to depend on other PECLs, fix apcu_bc and couchbase #86614
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
Some PECLs depend on other PECLs and, like internal PHP extension dependencies, need to be loaded in the correct order. This makes this possible by adding the argument
peclDeps
tobuildPecl
, which adds the extension tobuildInputs
and is treated the same way asinternalDeps
when the extension config is generated.Fix an issue brought up in PHP Module Rdkafka #86463, where the
apcu_bc
extension isn't loaded correctly since it produces a.so
with a different name than the extension name. Also, theapcu
extension has to be loaded and loaded prior to loading this extension.The
couchbase
extension depends on theigbinary
PECL which needs to be loaded and loaded prior to it. It also seems like thepcs
extension isn't actually needed - it at least builds and loads without it. Since thepcs
extension dependency was the reasoncouchbase
didn't build onPHP 7.4 it now does. I don't have any couchbase testing setup, though, so I can't verify that the extension really works - if anyone does, help with testing would be greatly appreciated.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)