Skip to content

Instantly share code, notes, and snippets.

@573
Forked from srghma/nix override flavours.md
Created May 20, 2025 09:15
Show Gist options
  • Save 573/c65072c1850584d4b0f6f7ed1f285e66 to your computer and use it in GitHub Desktop.
Save 573/c65072c1850584d4b0f6f7ed1f285e66 to your computer and use it in GitHub Desktop.
nix override

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 - ?


Dont use

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 = [];
  });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment