Overlays: Difference between revisions
imported>Dramforever m Add a heading to improve table of contents structure |
imported>Mickours Add python package override |
||
Line 97: | Line 97: | ||
* [https://nixos.org/nixpkgs/manual/#chap-overlays Overlays in nixpkgs manual] | * [https://nixos.org/nixpkgs/manual/#chap-overlays Overlays in nixpkgs manual] | ||
* [https://blog.flyingcircus.io/2017/11/07/nixos-the-dos-and-donts-of-nixpkgs-overlays/ Blog post "The DOs and DON’Ts of nixpkgs overlays"] | * [https://blog.flyingcircus.io/2017/11/07/nixos-the-dos-and-donts-of-nixpkgs-overlays/ Blog post "The DOs and DON’Ts of nixpkgs overlays"] | ||
== Python Packages Overlay == | |||
Here is an example of Python packages overlay. The trick is to also override python itself with `packageOverrides`. | |||
Github issue with the snippet below: [[https://github.com/NixOS/nixpkgs/issues/26487#issuecomment-307363295]] | |||
<syntaxhighlight lang="nix"> | |||
self: super: | |||
# Within the overlay we use a recursive set, though I think we can use `self` as well. | |||
rec { | |||
# nix-shell -p python.pkgs.my_stuff | |||
python = super.python.override { | |||
# Careful, we're using a different self and super here! | |||
packageOverrides = self: super: { | |||
my_stuff = super.buildPythonPackage rec { | |||
pname = "pyaes"; | |||
version = "1.6.0"; | |||
name = "${pname}-${version}"; | |||
src = super.fetchPypi { | |||
inherit pname version; | |||
sha256 = "0bp9bjqy1n6ij1zb86wz9lqa1dhla8qr1d7w2kxyn7jbj56sbmcw"; | |||
}; | |||
}; | |||
}; | |||
}; | |||
# nix-shell -p pythonPackages.my_stuff | |||
pythonPackages = python.pkgs; | |||
# nix-shell -p my_stuff | |||
my_stuff = pythonPackages.buildPythonPackage rec { | |||
pname = "pyaes"; | |||
version = "1.6.0"; | |||
name = "${pname}-${version}"; | |||
src = pythonPackages.fetchPypi { | |||
inherit pname version; | |||
sha256 = "0bp9bjqy1n6ij1zb86wz9lqa1dhla8qr1d7w2kxyn7jbj56sbmcw"; | |||
}; | |||
}; | |||
} | |||
</syntaxhighlight> | |||
=== References === | === References === |