buildPython*: bring back buildPython*.override #366593
Open
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.
Like packages, build helpers returned by
callPackage
have their ownoverride
that can produce a customized version of them with specific dependencies overridden. However, the current implementation ofmakeOverridablePythonPackage
(the function that adds.overridePythonAttrs
to the packagesbuildPython*
returns) doesn't consider such<function>.override
attribute, causingbuildPython*.override
to get lost.This PR fixes
makeOverridablePythonPackage
and unshadowsbuildPython*.override
, making it possible to override the dependencies of buildPython*. E.g.,buildPythonPackage.override { unzip = unzip-custom; }
returns a derived version ofbuildPythonPackage
with theunzip
package overridden withunzip-custom
. Such overriding approaches can already be found in Nixpkgs. -- the implementation offetchFromGitHub
usesfetchzip.override { withUnzip = false; }
to obtain a custom version offetchzip
withoutunzip
-related dependencies inside its returning derivation.This is a much simplified and less controversial version of #271762.
This PR causes no rebuild and is fully backward compatible.
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.