lix/src/libstore
John Ericson 0f7242ff87 Test nested sandboxing, and make nicer error
We were bedeviled by sandboxing issues when working on the layered
store. The problem ended up being that when we have nested nix builds,
and the inner store is inside the build dir (e.g. store is
`/build/nix-test/$name/store`, build dir is `/build`) bind mounts
clobber each other and store paths cannot be found.

After thoroughly cleaning up `local-derivation-goal.cc`, we might be
able to make that work. But that is a lot of work. For now, we just fail
earlier with a proper error message.

Finally, test this: nested sandboxing without the problematic store dir
should work, and with should fail with the expected error message.

Co-authored-by: Dylan Green <67574902+cidkidnix@users.noreply.github.com>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-07-14 09:40:24 -04:00
..
build Test nested sandboxing, and make nicer error 2023-07-14 09:40:24 -04:00
builtins Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
tests Upgrade downstreamPlaceholder to a type with methods 2023-05-17 17:41:16 -04:00
binary-cache-store.cc Explain various .self = false, 2023-04-17 09:15:11 -04:00
binary-cache-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
build-result.hh Introduce SingleDrvOutputs 2023-04-15 12:51:19 -04:00
builtins.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
ca-specific-schema.sql ca: add sqlite index on RealisationsRefs(realisationReference) 2022-04-21 10:06:39 +02:00
content-address.cc Improve error message for self reference with text hashing 2023-05-09 14:44:08 -04:00
content-address.hh Improve error message for self reference with text hashing 2023-05-09 14:44:08 -04:00
crypto.cc Make sodium a required dependency 2021-01-06 17:56:53 +01:00
crypto.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
daemon.cc Allow to sign path as unprivileged user 2023-06-27 18:31:31 +02:00
daemon.hh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
derivations.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
derivations.hh Upgrade downstreamPlaceholder to a type with methods 2023-05-17 17:41:16 -04:00
derived-path.cc Move BuiltPath to its own header/C++ file in libcmd 2023-07-12 23:01:10 -04:00
derived-path.hh Move BuiltPath to its own header/C++ file in libcmd 2023-07-12 23:01:10 -04:00
downstream-placeholder.cc Upgrade downstreamPlaceholder to a type with methods 2023-05-17 17:41:16 -04:00
downstream-placeholder.hh Upgrade downstreamPlaceholder to a type with methods 2023-05-17 17:41:16 -04:00
dummy-store.cc Push getFSAccessor unsupported(...) down Store class hierarchy 2023-04-13 13:39:44 -04:00
dummy-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
export-import.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
filetransfer.cc Allow tarball URLs to redirect to a lockable immutable URL 2023-06-13 14:17:45 +02:00
filetransfer.hh Allow tarball URLs to redirect to a lockable immutable URL 2023-06-13 14:17:45 +02:00
fs-accessor.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
gc-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
gc.cc Merge pull request #8552 from edolstra/fix-eagain 2023-06-20 12:12:53 +02:00
globals.cc Split OptionalPathSetting from PathSetting 2023-06-18 23:31:18 -04:00
globals.hh Merge pull request #8519 from fricklerhandwerk/reword-trusted-users 2023-06-23 13:08:46 +02:00
http-binary-cache-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
http-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
legacy-ssh-store.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
legacy-ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
local-binary-cache-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
local-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
local-fs-store.cc getBuildLog: factor out resolving derivations 2022-12-15 15:58:54 -05:00
local-fs-store.hh Split OptionalPathSetting from PathSetting 2023-06-18 23:31:18 -04:00
local-store.cc Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
local-store.hh Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
local-store.md Tweaks 2023-03-23 15:32:59 +01:00
local.mk Dedup some markdown -> C++ big literal stuff in build system 2023-05-15 10:38:11 -04:00
lock.cc Move enabled experimental feature to libutil struct 2023-03-20 11:05:22 -04:00
lock.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
log-store.cc Move the getBuildLog implementation to its own implementation file 2023-01-13 11:05:44 +01:00
log-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
machines.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
machines.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
make-content-addressed.cc makeContentAddressed: Add single path helper 2023-06-30 18:22:47 +02:00
make-content-addressed.hh makeContentAddressed: Add single path helper 2023-06-30 18:22:47 +02:00
misc.cc Rename a few things in new tests 2023-05-08 08:01:58 -04:00
names.cc return string_views from forceString* 2022-01-27 17:15:43 +01:00
names.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
nar-accessor.cc Add explicit case statements where -Wswitch-enum would report them 2023-04-03 18:17:32 +02:00
nar-accessor.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
nar-info-disk-cache.cc Use "raw pattern" for content address types 2023-03-30 17:12:49 -04:00
nar-info-disk-cache.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
nar-info.cc Make "NAR info file is corrupt" messages more informative 2023-04-18 14:10:49 +02:00
nar-info.hh Merge remote-tracking branch 'upstream/master' into path-info 2023-04-07 20:39:04 -04:00
nix-store.pc.in Fix building with GCC 9 2023-02-10 18:38:57 +01:00
optimise-store.cc Remove FormatOrString and remaining uses of format() 2023-03-02 15:57:54 +01:00
outputs-spec.cc Test store paths, with property tests 2023-01-23 07:05:50 -05:00
outputs-spec.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
parsed-derivations.cc Merge pull request #3600 from NixOS/auto-uid-allocation 2022-11-29 14:01:42 +01:00
parsed-derivations.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
path-info.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
path-info.hh Merge remote-tracking branch 'upstream/master' into path-info 2023-04-07 20:39:04 -04:00
path-references.cc Make RewritingSink accept a map of rewrites 2023-05-24 14:11:50 +02:00
path-references.hh Make RewritingSink accept a map of rewrites 2023-05-24 14:11:50 +02:00
path-regex.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
path-with-outputs.cc Merge pull request #6815 from obsidiansystems/better-wanted-outputs 2023-01-13 16:03:12 +01:00
path-with-outputs.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
path.cc Fix typo in error message of too long store path 2023-05-24 01:24:28 +08:00
path.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
pathlocks.cc Remove FormatOrString and remaining uses of format() 2023-03-02 15:57:54 +01:00
pathlocks.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
profiles.cc Clean up a few things related to profiles (#8526) 2023-06-19 04:04:59 +00:00
profiles.hh Clean up a few things related to profiles (#8526) 2023-06-19 04:04:59 +00:00
realisation.cc libstore: also pass unwanted outputs to the post-build-hook 2023-05-08 12:58:59 +02:00
realisation.hh libstore: also pass unwanted outputs to the post-build-hook 2023-05-08 12:58:59 +02:00
remote-fs-accessor.cc Replace src/libutil/json.cc with nlohmann json generation 2022-11-16 16:50:50 +01:00
remote-fs-accessor.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
remote-store-connection.hh Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
remote-store.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
remote-store.hh Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
repair-flag.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
s3-binary-cache-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
s3-binary-cache-store.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
s3-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
s3.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
schema.sql schema.sql: add comment about hash being in base16 2022-06-01 14:59:57 +02:00
serve-protocol.hh Likewise namespace and enum struct-ify ServeCommand 2023-06-19 12:08:23 -04:00
sqlite.cc Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
sqlite.hh Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
ssh-store-config.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
ssh-store.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
ssh.cc Fix ControlMaster behaviour 2023-05-16 18:50:09 +04:00
ssh.hh Fix ControlMaster behaviour 2023-05-16 18:50:09 +04:00
store-api.cc Merge remote-tracking branch 'upstream/master' into path-info 2023-04-07 20:39:04 -04:00
store-api.hh Split OptionalPathSetting from PathSetting 2023-06-18 23:31:18 -04:00
store-cast.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
uds-remote-store.cc Don't include uds-remote-store.md from a header file 2023-06-12 11:10:55 +02:00
uds-remote-store.hh Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
uds-remote-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
worker-protocol-impl.hh Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
worker-protocol.cc Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00
worker-protocol.hh Create worker_proto::{Read,Write}Conn 2023-06-19 12:08:23 -04:00