lix-releng-staging/src/nix-store
Maximilian Bosch 3a63fc6cd5
Allow substituting paths when building remotely using ssh-ng://
Until now, it was not possible to substitute missing paths from e.g.
`https://cache.nixos.org` on a remote server when building on it using
the new `ssh-ng` protocol.

This is because every store implementation except legacy `ssh://`
ignores the substitution flag passed to `Store::queryValidPaths` while
the `legacy-ssh-store` substitutes the remote store using
`cmdQueryValidPaths` when the remote store is opened with `nix-store
--serve`.

This patch slightly modifies the daemon protocol to allow passing an
integer value suggesting whether to substitute missing paths during
`wopQueryValidPaths`. To implement this on the daemon-side, the
substitution logic from `nix-store --serve` has been moved into a
protected method named `Store::substitutePaths` which gets currently
called from `LocalStore::queryValidPaths` and `Store::queryValidPaths`
if `maybeSubstitute` is `true`.

Fixes #2770
2020-11-05 20:12:37 +01:00
..
dotgraph.cc Remove StorePath::clone() and related functions 2020-06-16 22:20:18 +02:00
dotgraph.hh Make the Store API more type-safe 2019-12-10 22:06:05 +01:00
graphml.cc Remove StorePath::clone() and related functions 2020-06-16 22:20:18 +02:00
graphml.hh Make the Store API more type-safe 2019-12-10 22:06:05 +01:00
nix-store.cc Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00