[Nix-dev] How to build all of nixpkgs?

Bjørn Forsman bjorn.forsman at gmail.com
Mon May 22 17:18:27 CEST 2017


On 21 May 2017 at 19:26, Tomasz Czyż <tomasz.czyz at gmail.com> wrote:
> check release.nix (release-*.nix)

I've tried to look at some of those. For instance,
./pkgs/top-level/release{,-small}.nix, and
./nixos/release-{small,combined}.nix. But I don't seem to get them
working like I want with 'nix-build'.

Examples:

1. "nix-build ./pkgs/top-level/release-small.nix" doesn't build any of
the packages, it only builds channel, manual, isos and a bunch of VM
tests. It seems to be because the attributes of the 'nixpkgs'
attribute in that top-level expression does not contain direct
derivations as sub-attributes but rather the derivations are one level
further down, in an 'arch' attribute. Like mypkg.x86_64-linux instead
of just mypkg. I tried adding 'recurseIntoAttrs', but it didn't help.

2. "nix-build ./pkgs/top-level/release.nix" gives "error: value is a
set while a Boolean was expected". AFAICT, the expression has sensible
default arguments. I don't know where it fails and --show-trace
doesn't show any trace. So I'm stuck there.

3. "nix-build ./nixos/release-combined.nix" (and the -small variant)
doesn't build any packages from the 'nixpkgs' set because it doesn't
contain (direct) derivations. Same problem as (1).

So is Hydra doing some magic with these expressions? Is it possible to
build "world" with a simple "nix-build"?

Best regards,
Bjørn Forsman


More information about the nix-dev mailing list