pkgs.package.override - res of lib.makeOverridable (used by callPackage),
overrides arguments of callPackage
https://nixos.org/nixos/nix-pills/override-design-pattern.html
pkgs.foo.override { arg1 = val1; arg2 = val2; ... }
pkgs.package.overrideAttrs
overrides arguments of mkDerivation (after callPackage)
helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
separateDebugInfo = true;
});
pkgs.package.overrideScope - to override dependency completely and prevent unvanted dependency sneak
overrides = super: self: rec {
haskell-mode = self.melpaPackages.haskell-mode;
...
};
((emacsPackagesNgGen emacs).overrideScope overrides).emacsWithPackages (p: with p; [
# here both these package will use haskell-mode of our own choice
ghc-mod
dante
])
pkgs.haskell.lib.overrideCabal - combination of overrideScope and override
pkgs.lib.overrideDerivation - ?
pkgs.package.overrideDerivation - use overrideAttrs instead
mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
name = "sed-4.2.2-pre";
src = fetchurl {
url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
};
patches = [];
});