diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-14T10·19+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-14T10·19+0200 |
commit | fa13d3f4f3d8fb6dc3e3fc87ac5a2e26d8b32d84 (patch) | |
tree | 6f18ceb94403c242d3c8174663d135c5ba8a4251 /src | |
parent | b2e0293f022123b11759dfd498d4eff72233d3f7 (diff) |
build-remote.pl: Fix building multiple output derivations
We were importing paths without sorting them topologically, leading to "path is not valid" errors. See e.g. http://hydra.nixos.org/build/12451761
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/remote-store.cc | 1 | ||||
-rw-r--r-- | src/nix-store/nix-store.cc | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc index f566ccf53122..3b021bb2a50c 100644 --- a/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -35,7 +35,6 @@ template<class T> T readStorePaths(Source & from) } template PathSet readStorePaths(Source & from); -template Paths readStorePaths(Source & from); RemoteStore::RemoteStore() diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc index 0196c2fc1873..048f5c603008 100644 --- a/src/nix-store/nix-store.cc +++ b/src/nix-store/nix-store.cc @@ -992,7 +992,9 @@ static void opServe(Strings opFlags, Strings opArgs) } case cmdExportPaths: { - exportPaths(*store, readStorePaths<Paths>(in), false, out); + Paths sorted = topoSortPaths(*store, readStorePaths<PathSet>(in)); + reverse(sorted.begin(), sorted.end()); + exportPaths(*store, sorted, false, out); break; } |