Cannot nixpkgs.callPackage the default.nix #32
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/flake-compat#32
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I put
in my default.nix and also
in my flake.nix. But when I try putting this in my configuration.nix
and doing
sudo nixos-rebuild switch
I get the following error:nix-build
works fine. But callPackage does not work. How can I fix this?The
default.nix
at the root of a project is not supposed to be called with withcallPackage
. This is a little bit confusing (at least it was for me), but let me try to explain:There are two types of
default.nix
files that are commonly used. The ones (typically at the root of a project) that get fed intonix-build
, and the ones (typically innixpkgs
) that get fed intocallPackage
.nix-build
expects a file with just a derivation in it.callPackage
expects a function from things innixpkgs
to a derivation.In other words, you should be able to just remove
pkgs.callPackage
, since yourdefault.nix
is just a derivation, it's not a function that needs to be applied to anything.@Radvendii Hi. I'm glad I've found your comment. I had the same issues as OP. However when I apply your suggestion I get another error:
6a31b6fba0/infra/flake.nix (L18)
I had to remove
{}
as well. Is there anything else that is obvious that I'm missing? (I'm still a Nix noob)After playing with repl I'm even more confused: https://discourse.nixos.org/t/different-result-on-import-path-default-nix-in-flake-nix-vs-repl/19997 - I'm able to get the derivation in
nix repl
(with(import ./path/default.nix).default
but not in myflake.nix
.I think it is breaking because
builtins.currentsystem
Edit: I was right! Here is the workaround that worked for me:
26824e3eb1
In case it helps someone else, I ran into both of the error messages in this thread trying to figure out how to use the default flake output in a normal
ci.nix
that I need tonix-build
. I might still be holding it wrong, but I ended up getting it working by just using: