Merge pull request #8490 from lethalman/overridepkgs
Add pkgs.overridePackages
This commit is contained in:
@@ -100,6 +100,8 @@ let
|
||||
# ... pkgs.foo ...").
|
||||
pkgs = applyGlobalOverrides (config.packageOverrides or (pkgs: {}));
|
||||
|
||||
mkOverrides = pkgsOrig: overrides: overrides //
|
||||
(lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) (pkgsOrig.stdenv.overrides pkgsOrig));
|
||||
|
||||
# Return the complete set of packages, after applying the overrides
|
||||
# returned by the `overrider' function (see above). Warning: this
|
||||
@@ -110,8 +112,7 @@ let
|
||||
# in the case of cross-building, or otherwise the basic
|
||||
# overrided packages will not be built with the crossStdenv
|
||||
# adapter.
|
||||
overrides = overrider pkgsOrig //
|
||||
(lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) (pkgsOrig.stdenv.overrides pkgsOrig));
|
||||
overrides = mkOverrides pkgsOrig (overrider pkgsOrig);
|
||||
|
||||
# The un-overriden packages, passed to `overrider'.
|
||||
pkgsOrig = pkgsFun pkgs {};
|
||||
@@ -142,6 +143,22 @@ let
|
||||
|
||||
newScope = extra: lib.callPackageWith (defaultScope // extra);
|
||||
|
||||
# Easily override this package set.
|
||||
# Warning: this function is very expensive and must not be used
|
||||
# from within the nixpkgs repository.
|
||||
#
|
||||
# Example:
|
||||
# pkgs.overridePackages (self: super: {
|
||||
# foo = super.foo.override { ... };
|
||||
# }
|
||||
#
|
||||
# The result is `pkgs' where all the derivations depending on `foo'
|
||||
# will use the new version.
|
||||
overridePackages = f:
|
||||
let
|
||||
newpkgs = pkgsFun newpkgs overrides;
|
||||
overrides = mkOverrides pkgs (f newpkgs pkgs);
|
||||
in newpkgs;
|
||||
|
||||
# Override system. This is useful to build i686 packages on x86_64-linux.
|
||||
forceSystem = system: kernel: (import ./all-packages.nix) {
|
||||
|
||||
Reference in New Issue
Block a user