lib: add makeOverridableWithName + build*Package overrides#87394
Closed
B4dM4n wants to merge 6 commits intoNixOS:masterfrom
Closed
lib: add makeOverridableWithName + build*Package overrides#87394B4dM4n wants to merge 6 commits intoNixOS:masterfrom
B4dM4n wants to merge 6 commits intoNixOS:masterfrom
Conversation
Member
|
Good initiative! But.... Do we actually need another override option? Maybe we should just ensure the custom builders use I still need to extend this, but please have a look at the RFC regarding this topic NixOS/rfcs#67. Please also have a look at the links in the PR which may give more context. |
Member
|
I think this would be a great idea, I've had something like this in mind for a while, as it might be the only way to not need a dozen different override mechanisms for nested function calls. Thanks for bringing this up @B4dM4n, I'll definitely push for something like this in the future |
11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Improve the extensibility of language specific package builders.
Some of current
build*Packagefunctions support more overriding capabilities than others:buildPythonPackagesupports overriding packages viamakeOverridableandoverridePythonAttrsbuildLuarocksPackageandbuildRubyGemsupport overriding packages viamakeOverridablebuildRustPackageandbuildPerlPackagesupports no overridingIn theory
makeOverridableshould be enough to make a builder function overridable, but in practice this doesn't always work, because anothercallPackagemight shadow the wantedoverridefunction.buildPythonPackageworks around this by providing aoverridePythonAttrsfunction which is essentially aoverridewith a custom name.Things done
This PR adds a
lib.makeOverridableWithNamefunction, which is justlib.makeOverridablewith a additional namedoverridefunction.It also adjusts the
build*Packagefunctions that I'm familiar with to use the new helper.sandboxinnix.confon non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"./result/bin/)nix path-info -Sbefore and after)