On 16-04-13 06:56pm, Nicolas Pierron wrote: > On Mon, Apr 11, 2016 at 7:34 AM, Roger Qiu <[email protected]> wrote: > > ``` > > { pkgs }: { # pkgs is the fully configured packages, after overrides > > packageOverrides = super: let self = super.pkgs; in rec { # super is > > without overrides, self is with > > # ... overrides go here ... > > }; > > } > > ``` > > > > While I understand that `super` is the package set that hasn't been > > overridden yet, what's the difference between `self` and `pkgs`? Do both > > of them have the overrides applied? > > For the moment there is no difference between the two. > > This makes me think that we should get rid of the `packagesOverrides` > function, and let the content of config.nix be similar to what > all-packages.nix is. > > My wish by getting rid of `packagesOverrides` function is to make sure > that we can properly document this in NixOS modules.
There is already a `overridePackages` function in the packageset, which is used by `packageOverrides` and is similar to what `haskellPackages` uses, though not identical. People should use it more. :) I dislike `packageOverrides` in that it creates an implicit global state which complicates the local understanding of nixpkgs expressions. Maybe related, I was trying to create a local (module-scoped) nixpkgs in order to overwrite some packages that are used by options enabled in that module, but there is no way to do that atm. Since we have a lot of packages with `xy.packages` (and the rest is not accessible) I think that would be a worthwhile improvement. Perhaps it is already possible? -- Proudly written in Mutt with Vim on NixOS. Q: Why is this email five sentences or less? A: http://five.sentenc.es May take up to five days to read your message. If it’s urgent, call me. _______________________________________________ nix-dev mailing list [email protected] http://lists.science.uu.nl/mailman/listinfo/nix-dev
