mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-22 14:06:16 +02:00
"Downstream placeholders" should not be store paths
Insead they should be opaque `/<hash>` like the placeholders we already have.
This commit is contained in:
parent
27a3f82c0b
commit
3a7b330b64
3 changed files with 7 additions and 9 deletions
|
@ -82,13 +82,13 @@ static void mkOutputString(EvalState & state, Value & v,
|
|||
auto optOutputPath = o.second.pathOpt(*state.store, drv.name, o.first);
|
||||
mkString(
|
||||
*state.allocAttr(v, state.symbols.create(o.first)),
|
||||
state.store->printStorePath(optOutputPath
|
||||
? *optOutputPath
|
||||
optOutputPath
|
||||
? state.store->printStorePath(*optOutputPath)
|
||||
/* Downstream we would substitute this for an actual path once
|
||||
we build the floating CA derivation */
|
||||
/* FIXME: we need to depend on the basic derivation, not
|
||||
derivation */
|
||||
: downstreamPlaceholder(*state.store, drvPath, o.first)),
|
||||
: downstreamPlaceholder(*state.store, drvPath, o.first),
|
||||
{"!" + o.first + "!" + state.store->printStorePath(drvPath)});
|
||||
}
|
||||
|
||||
|
|
|
@ -664,14 +664,12 @@ std::string hashPlaceholder(const std::string & outputName)
|
|||
return "/" + hashString(htSHA256, "nix-output:" + outputName).to_string(Base32, false);
|
||||
}
|
||||
|
||||
StorePath downstreamPlaceholder(const Store & store, const StorePath & drvPath, std::string_view outputName)
|
||||
std::string downstreamPlaceholder(const Store & store, const StorePath & drvPath, std::string_view outputName)
|
||||
{
|
||||
auto drvNameWithExtension = drvPath.name();
|
||||
auto drvName = drvNameWithExtension.substr(0, drvNameWithExtension.size() - 4);
|
||||
return store.makeStorePath(
|
||||
"downstream-placeholder:" + std::string { drvPath.name() } + ":" + std::string { outputName },
|
||||
"compressed:" + std::string { drvPath.hashPart() },
|
||||
outputPathName(drvName, outputName));
|
||||
auto clearText = "nix-upstream-output:" + std::string { drvPath.hashPart() } + ":" + outputPathName(drvName, outputName);
|
||||
return "/" + hashString(htSHA256, clearText).to_string(Base32, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -196,6 +196,6 @@ void writeDerivation(Sink & out, const Store & store, const BasicDerivation & dr
|
|||
|
||||
std::string hashPlaceholder(const std::string & outputName);
|
||||
|
||||
StorePath downstreamPlaceholder(const Store & store, const StorePath & drvPath, std::string_view outputName);
|
||||
std::string downstreamPlaceholder(const Store & store, const StorePath & drvPath, std::string_view outputName);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue