diff --git a/flake.lock b/flake.lock index 3afec6c..c679e3c 100644 --- a/flake.lock +++ b/flake.lock @@ -17,16 +17,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1645433236, - "narHash": "sha256-4va4MvJ076XyPp5h8sm5eMQvCrJ6yZAbBmyw95dGyw4=", - "owner": "NixOS", + "lastModified": 1647186833, + "narHash": "sha256-62CMNrhICLcI/5jNSQDAQpUUvtvTXBsYWSU6ZlhPIzs=", + "owner": "Mic92", "repo": "nixpkgs", - "rev": "7f9b6e2babf232412682c09e57ed666d8f84ac2d", + "rev": "de173cbbb66e9b454e0e836cec1b807856934539", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", + "owner": "Mic92", + "ref": "nix-unstable", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 3b0b7ff..5ab579e 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,9 @@ { description = "Hydra's builtin hydra-eval-jobs as a standalone"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + # switch back when https://github.com/NixOS/nixpkgs/pull/164012 is merged + #inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs.nixpkgs.url = "github:Mic92/nixpkgs/nix-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, nixpkgs, flake-utils }: diff --git a/src/nix-eval-jobs.cc b/src/nix-eval-jobs.cc index 842040c..51fb27e 100644 --- a/src/nix-eval-jobs.cc +++ b/src/nix-eval-jobs.cc @@ -142,7 +142,7 @@ static void worker( callFlake(state, lockedFlake, *vFlake); auto vOutputs = vFlake->attrs->get(state.symbols.create("outputs"))->value; - state.forceValue(*vOutputs); + state.forceValue(*vOutputs, noPos); vTop = *vOutputs; if (fragment.length() > 0) { @@ -186,8 +186,8 @@ static void worker( if (drv->querySystem() == "unknown") throw EvalError("derivation must have a 'system' attribute"); - auto drvPath = drv->queryDrvPath(); auto localStore = state.store.dynamic_pointer_cast(); + auto drvPath = localStore->printStorePath(drv->requireDrvPath()); auto storePath = localStore->parseStorePath(drvPath); auto outputs = drv->queryOutputs(false); @@ -195,7 +195,7 @@ static void worker( reply["system"] = drv->querySystem(); reply["drvPath"] = drvPath; for (auto out : outputs){ - reply["outputs"][out.first] = out.second; + reply["outputs"][out.first] = localStore->printStorePath(out.second); } if (myArgs.meta) {