I’m trying to build a few nodejs packages with node2nix in a flake. Most of the files are automatically generated by node2nix
, and they have no problem evaluate in Nixpkgs, and I’m getting:
error: value is a path while a set was expected
at /home/doron/repos/nixNodeJSPkgs/composition.nix:8:36:
7| let
8| nodeEnv = import ./node-env.nix {
| ^
9| inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
… while evaluating the attribute 'buildNodePackage'
at /home/doron/repos/nixNodeJSPkgs/node-env.nix:564:3:
563| buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
564| buildNodePackage = lib.makeOverridable buildNodePackage;
| ^
565| buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
… while evaluating the attribute 'balena-cli.override'
at /home/doron/repos/nixNodeJSPkgs/node-packages.nix:11085:3:
11084| {
11085| balena-cli = nodeEnv.buildNodePackage {
| ^
11086| name = "balena-cli";
I have in flake.nix
:
packages = import ./default.nix {
inherit pkgs;
stdenv = pkgs.stdenv;
lib = pkgs.lib;
nodejs = pkgs.nodejs-12_x;
};
And default.nix
is based on what’s in Nixpkgs’ node-packages/default.nix
:
{ pkgs ? <nixpkgs>, nodejs ? pkgs.nodejs-12_x, stdenv ? pkgs.stdenv, lib ? pkgs.lib }:
let
since = (version: pkgs.lib.versionAtLeast nodejs.version version);
before = (version: pkgs.lib.versionOlder nodejs.version version);
super = import ./composition.nix {
inherit pkgs nodejs;
inherit (stdenv.hostPlatform) system;
};
self = super // {
balena-cli = super.balena-cli.override {
buildInputs = [ self.node-pre-gyp self.node-gyp-build ];
meta = super.balena-cli.meta // {
maintainers = with lib.maintainers; [ doronbehar ];
};
};
};
in self
The full repository is at: GitHub - doronbehar/nixNodeJSPkgs
I also noticed there’s an old Nix issue related at: error "value is a list while a set was expected" is too vague · Issue #963 · NixOS/nix · GitHub