[Nix-dev] NixOS on embedded systems

Lluís Batlle i Rossell viriketo at gmail.com
Sat Jul 17 13:27:36 CEST 2010


Hello,

we talked about the defeat of putting Nixos into a small system. For example, a
router (12MB of RAM, 8MB of flash, for example, where OpenWrt works fine), or
the Ben Nanonote (2GB of flash, 32MB of RAM).

I have the idea that NixOS expressions usually don't need a compiler, but NixOS
relies on the nixpkgs expressions that need a compiler. So we could use in NixOS
not the nixpkgs stdenv to create some text files, but a simpler stdenv without
compilers.
Then, as NixOS does need nixpkgs attributes, we could try to have a tool
generating a nixpkgs attribute tree that would be composed not of
"stdenv.mkDerivation" derivations, but of "fetchurl-like" derivations that would
grab the files as stated in MANIFESTs nowadays.

>From "nixpkgs-stdenv-nix-expressions" and a corresponding "manifests-file" we can
create a new "nixpkgs-fetchurl-nix-expressions" (without any use of the stdenv
as we have it now, with a compiler). We would need to make a new kind of
fetchurl so it would be able to take buildInputs (store paths referenced in the
new store path created).

Then, nixos expressions (free of the need of a gcc compiler) could use those
light nixpkgs expressions (that will mostly download from hydra or whatever nar
repository), using usual GNU tools but not the heavy build toolchain.

So I think that to achieve that we have some simple targets to achieve:
- NixOS not to require a build toolchain in stdenv.
- Make a tool that would combine the current nixpkgs and the manifests to make
  "light nixpkgs" based on fetchurl kind of derivations (involving curl, tar,
  bunnzip2, and little more) handling the store paths references. Maybe this
  tool should be in charge also of generating the manifests, based maybe on a
  file like 'release.nix', as hydra does. In general hydra could be in charge of
  generating this nix file.

Notice that this kind of 'nixpkgs' could either come from natively build
packages or *cross-built-packages*.

What do you think? For me it sounds quite easy to achieve, compared to whatever
I had in mind before this idea.

Regards,
Lluís.



More information about the nix-dev mailing list