lix/src/libstore
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
..
build LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
builtins Fix build 2020-08-06 21:04:31 -05:00
binary-cache-store.cc Update src/libstore/binary-cache-store.cc 2020-09-28 11:32:58 -04:00
binary-cache-store.hh Return more info from BinaryCacheStore::addToStoreCommon 2020-09-23 14:40:41 +00:00
builtins.hh buildenv: Eliminate global variables, other cleanup 2020-03-24 14:06:47 +01:00
content-address.cc Style fixes 2020-09-22 11:40:19 +02:00
content-address.hh Add ContentAddressMethod and parse/render it 2020-09-17 20:21:04 +02:00
crypto.cc binary-cache-public-keys -> trusted-public-keys 2017-11-20 17:32:34 +01:00
crypto.hh Revert "Get rid of unicode quotes (#1140)" 2016-11-26 00:38:01 +01:00
daemon.cc Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
daemon.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
derivations.cc Inline unkownHashes 2020-10-27 07:29:25 +01:00
derivations.hh Allow non-CA derivations to depend on CA derivations 2020-10-27 07:29:23 +01:00
dummy-store.cc Shut up some clang warnings 2020-10-06 14:52:30 +02:00
export-import.cc nix::worker_proto -> worker_proto 2020-09-30 00:41:18 +00:00
filetransfer.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
filetransfer.hh Make Headers an optional argument 2020-09-29 13:05:19 +02:00
fs-accessor.hh Shut up some warnings 2019-09-22 21:57:05 +02:00
gc.cc Handle amount of disk space saved by hard linking being negative 2020-10-12 16:06:38 +00:00
globals.cc Generalize extra-* settings 2020-10-29 18:17:39 +01:00
globals.hh Generalize extra-* settings 2020-10-29 18:17:39 +01:00
http-binary-cache-store.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
legacy-ssh-store.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
local-binary-cache-store.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
local-fs-store.cc Split out local-fs-store.hh 2020-10-09 20:18:08 +00:00
local-fs-store.hh Split out local-fs-store.hh 2020-10-09 20:18:08 +00:00
local-store.cc LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
local-store.hh LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
local.mk Prepare for build/*.hh headers 2020-10-12 17:07:51 +00:00
lock.cc Trim lock.cc 2020-10-11 16:44:19 +00:00
lock.hh Trim lock.hh 2020-10-11 16:44:07 +00:00
machines.cc Make system-features a store setting 2020-08-12 18:13:00 +00:00
machines.hh Make system-features a store setting 2020-08-12 18:13:00 +00:00
misc.cc Move Callback into its own header 2020-09-21 18:42:21 +02:00
names.cc Don't include <regex> in header files 2020-09-21 18:22:45 +02:00
names.hh Don't include <regex> in header files 2020-09-21 18:22:45 +02:00
nar-accessor.cc Merge remote-tracking branch 'origin/master' into markdown 2020-07-31 16:07:04 +02:00
nar-accessor.hh NarAccessor: Run in constant memory 2020-07-13 17:30:42 +02:00
nar-info-disk-cache.cc Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nar-info-disk-cache.hh Misc changes from the flakes branch 2020-03-24 14:34:47 +01:00
nar-info.cc Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nar-info.hh Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nix-store.pc.in pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
optimise-store.cc Factor out common showBytes() 2020-10-06 10:40:49 +02:00
parsed-derivations.cc Make system-features a store setting 2020-08-12 18:13:00 +00:00
parsed-derivations.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
path-info.hh LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
path.cc toStorePath(): Return a StorePath and the suffix 2020-07-13 16:25:48 +02:00
path.hh Merge remote-tracking branch 'origin/master' into substitute-other-storedir 2020-07-02 11:14:04 -04:00
pathlocks.cc convert some printError calls to logError 2020-05-03 08:01:25 -06:00
pathlocks.hh Use BSD instead of POSIX file locks 2019-08-02 18:39:16 +02:00
profiles.cc Split out local-fs-store.hh 2020-10-09 20:18:08 +00:00
profiles.hh createGeneration(): Take a StorePath 2020-09-03 11:06:56 +02:00
references.cc Squashed get CA derivations building 2020-08-07 19:51:55 +00:00
references.hh Squashed get CA derivations building 2020-08-07 19:51:55 +00:00
remote-fs-accessor.cc toStorePath(): Return a StorePath and the suffix 2020-07-13 16:25:48 +02:00
remote-fs-accessor.hh toStorePath(): Return a StorePath and the suffix 2020-07-13 16:25:48 +02:00
remote-store.cc Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
remote-store.hh Split out uds-remote-store.{cc.hh} 2020-10-11 17:37:05 +00:00
s3-binary-cache-store.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
s3-binary-cache-store.hh Revert "Remove putBytes" 2020-08-04 15:56:10 +02:00
s3.hh DataTransfer -> FileTransfer 2020-04-08 22:26:57 +02:00
sandbox-defaults.sb sandbox: fix /bin/sh on catalina 2020-03-20 22:12:30 +01:00
sandbox-minimal.sb Always use the Darwin sandbox 2017-06-06 18:44:49 +02:00
sandbox-network.sb OS X sandbox: Improve builtin sandbox profile 2017-05-31 17:25:51 +02:00
schema.sql Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
serve-protocol.hh Make adding paths via nix-store --serve run in constant memory 2018-08-03 21:21:16 +02:00
sqlite.cc Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
sqlite.hh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
ssh-store.cc Remove static variable name clashes 2020-10-06 13:49:20 +02:00
ssh.cc Revert the enum struct change 2020-06-18 22:11:26 +00:00
ssh.hh SSHMaster: Bypass SSH when connecting to localhost 2018-08-03 21:20:38 +02:00
store-api.cc Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
store-api.hh Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00
uds-remote-store.cc Split out uds-remote-store.{cc.hh} 2020-10-11 17:37:05 +00:00
uds-remote-store.hh Split out uds-remote-store.{cc.hh} 2020-10-11 17:37:05 +00:00
worker-protocol.hh Allow substituting paths when building remotely using ssh-ng:// 2020-11-05 20:12:37 +01:00