Re: [Nix-dev] ‘callPackage’ vs. ‘all-packages.nix’

Marc Weber marco-oweber at gmx.de
Tue Sep 15 18:16:06 CEST 2009


> >     - Use "{ arg1, arg2, ... }:" in the package's function definition
> >       (i.e. use the ellipis "..." to allow arbitrary additional
> >       arguments), and then call the function with all of "pkgs" as an
> >       argument.  But this inhibits error detection if you call it with
> >       an misspelled (or obsolete) argument.

Eelco Dolstra, can you explain this inhibiting of error detection?

I mean when writing this:

  all-packages.nix :

    vice = import ../misc/emulators/vice pkgs;

  vice/default.nix :

    { dep1, dep2, ... }:

    [..]

    buildInputs = [ dep1 dep2 ];

you can't misspell dep1 dep2 without passing wrong arguments.

So I only see a reimplementation of the ellipsis here because they are
no not listed in all-packages neither using using callPackage nor using
ellipis.

So what makes the difference exactly?
It even adds a redundant function call to each package (thus some
complexity) to all-packages.nix.

Marc Weber



More information about the nix-dev mailing list