lix/src/libstore
John Ericson 5e3986f59c Adapt scheduler to work with dynamic derivations
To avoid dealing with an optional `drvPath` (because we might not know
it yet) everywhere, make an `CreateDerivationAndRealiseGoal`. This goal
just builds/substitutes the derivation file, and then kicks of a build
for that obtained derivation; in other words it does the chaining of
goals when the drv file is missing (as can already be the case) or
computed (new case).

This also means the `getDerivation` state can be removed from
`DerivationGoal`, which makes the `BasicDerivation` / in memory case and
`Derivation` / drv file file case closer together.

The map type is factored out for clarity, and because we will soon hvae
a second use for it (`Derivation` itself).

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-08-25 10:01:25 -04:00
..
build Adapt scheduler to work with dynamic derivations 2023-08-25 10:01:25 -04:00
builtins Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
tests Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
binary-cache-store.cc Simplify ContentAddress 2023-07-07 07:30:01 -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
content-address.cc Fixing #7479 2023-08-18 11:44:00 -04:00
content-address.hh Fixing #7479 2023-08-18 11:44:00 -04:00
crypto.cc
crypto.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
daemon.cc Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
daemon.hh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
derivations.cc Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
derivations.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
derived-path-map.cc Adapt scheduler to work with dynamic derivations 2023-08-25 10:01:25 -04:00
derived-path-map.hh Adapt scheduler to work with dynamic derivations 2023-08-25 10:01:25 -04:00
derived-path.cc Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
derived-path.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
downstream-placeholder.cc Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
downstream-placeholder.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -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 FileTransfer::download: fix use-after-move 2023-08-11 12:00:31 +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 Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
gc.cc Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
globals.cc Split OptionalPathSetting from PathSetting 2023-06-18 23:31:18 -04:00
globals.hh Merge pull request #7973 from fricklerhandwerk/remove-channels 2023-07-19 14:02:26 +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
indirect-root-store.hh Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
legacy-ssh-store.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -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
local-fs-store.hh Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
local-store.cc Fix misread of source if path is already valid 2023-08-07 10:27:40 +02:00
local-store.hh LocalStore::verifyPath: Use StorePathSet for store local var 2023-07-31 12:44:18 -04: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
log-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
machines.cc
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 Merge pull request #8650 from obsidiansystems/content-address-simpler 2023-07-21 13:46:53 +02:00
make-content-addressed.hh makeContentAddressed: Add single path helper 2023-06-30 18:22:47 +02:00
misc.cc Throw MissingRealisation not plain Error in both resolveDerivedPath 2023-08-25 09:55:07 -04:00
names.cc
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 Fixing #7479 2023-08-18 11:44:00 -04:00
outputs-spec.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -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 Simplify ContentAddress 2023-07-07 07:30:01 -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 Fixing #7479 2023-08-18 11:44:00 -04:00
path-with-outputs.hh Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04: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 Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
remote-fs-accessor.cc
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 Make RemoteStore::ConnectionHandle part of class and expose 2023-07-24 09:17:01 -04:00
remote-store.cc Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
remote-store.hh Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -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
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 Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
ssh.cc Pass common ssh options in isMasterRunning 2023-06-13 00:55:34 -03:00
ssh.hh Fix ControlMaster behaviour 2023-05-16 18:50:09 +04:00
store-api.cc Add infra for experimental store implemenations 2023-08-02 15:46:38 -04:00
store-api.hh Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -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 Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
uds-remote-store.hh Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -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