Recently a few internal APIs have changed[1]. The outputPaths function
has been removed and a lot of data structures are modeled with
std::optional which broke compilation.
This patch updates the code in hydra-queue-runner accordingly to make
sure that Hydra compiles again.
[1] https://github.com/NixOS/nix/pull/3883
W7OCNTLFXNRGEHMQ5WBX4Z2Q6II3APKTLNWH76ZYZNRZDEVQACLAC 6NUK6AZAZLOKFHXPS74YV52B63Z4BYQMPY42VAU5ZEACMZ663M2QC NQPGIRXXVS356MRCPVTV4LCCMUEOVHGCQGXJNPJTSK6HGLYZJKEQC 5AIYUMTBY6TFQTBRP3MJ2PYWUMRF57I77NIVWYE74UMEVQMBWZVQC NAYQT2GTCJPBFRSK7CBFX655F2NGTBPICJSCYG2CSCQ5NRDHZG6QC SL3WSRACCX2IMJHHLTRAUQT7QDLCOKYLVO2FEHWIHXM5GPKSRJTQC 24BMQDZAWDQ7VNIA7TIROXSOYLOJBNZ2E4264WHWNJAEN6ZB3UOAC EBJP3MNAC4CRYGMJJHMKUYWTXP3N4WMMORRLDSDHQVF5ZLOTIENQC WV4SSAIYM4SVBQ2VISDTAXQJCPKRGTLSVFH44CQFEMC4COWG5OKQC YSZQ3ORRQ6ELPGEQMXO4IEVD5BT2JRXUPJ44K52DLDFTAJLHKQVAC MHVIT4JYWUYD4UCGB2AHLXWLX6B5SYE22BREERNGANT7RGGDUFOAC INVXGPNKOM33VJULCY7CKPSVAIHSV4EYM4TT3QVL4VBGTMPJ6HHAC YXYXJDMBKFCIM4AIKCGJROUK4U3RBK5OLCBPGLA5AGERRHLGHSGAC NJXD2ABJHKH7MBAPEOXQRKC3RK2OVNRO4ND44SOZJECZGCGZK7KQC BOCPRQ6EIMLOTOFB4R4AV6AT24CDM3VTLWIL4DKJ3673JH4DDPWAC 3A7HTJZP2B6NC4XOGHBO3SQSZVUXTSK5OZZH2JU5W3THSQHYU4XAC DKR2GXSAVIZGOR3HEAD46SZWTRXJO2EH43H57P2365Y5M2QCQHDAC IWB3F4Z6QZYHQFJ6FWZTGWLCPBYEUTFLUS3F7QT7JOA4DV4YLYGAC HTDANBLNORWZLQYXGUADX4KMUNYGH75TDF3FMMGRKE4Q2CHQMEWQC U55WNIDPCBAADLBSZXWUV6C3LVCILRWNDFJ7S3OJKL2WAWK2FLZAC YTAYNN7VNYZNLGUSGY3EF33MGQWMJW76FKV657SBKASQFQC7EB3AC IKJBYIGY3JABFXD2KOAQNA52ULE6VR4PBFKHWAHHBITXX5KC76MAC VQISTKOPNAEUS2K2F73CMNNLGZATWUYIURD5CSVNBNF7Q5ZF4PXQC WDGARQ76X6RLSFPJTW52BZYFKBC7DPSTABI7HHIKNYHBYXSUNTHQC SJTXNMXUCMLVP2NLFUBXKPSE6Y4HUDUDMIKEH23VYYIXZHTVH4YAC for (auto & output : outputs)store->computeFSClosure(output, closure);
for (auto & i : drv.outputsAndOptPaths(*store))if (i.second.second) {store->computeFSClosure(*i.second.second, closure);outputs.insert(*i.second.second);}
for (auto & path : step->drv->outputPaths(*localStore))addRoot(path);
for (auto & i : step->drv->outputsAndOptPaths(*localStore)) {if (i.second.second)addRoot(*i.second.second);}
for (auto & path : step->drv->outputPaths(*localStore))txn.exec_params0("insert into FailedPaths values ($1)", localStore->printStorePath(path));
for (auto & i : step->drv->outputsAndOptPaths(*localStore))if (i.second.second)txn.exec_params0("insert into FailedPaths values ($1)", localStore->printStorePath(*i.second.second));
for (auto & path : step->drv->outputPaths(*localStore))if (!txn.exec_params("select 1 from FailedPaths where path = $1", localStore->printStorePath(path)).empty())return true;
for (auto & i : step->drv->outputsAndOptPaths(*localStore))if (i.second.second)if (!txn.exec_params("select 1 from FailedPaths where path = $1", localStore->printStorePath(*i.second.second)).empty())return true;
for (auto & output : ex.step->drv->outputPaths(*localStore)) {auto res = txn.exec_params("select max(s.build) from BuildSteps s join BuildStepOutputs o on s.build = o.build where path = $1 and startTime != 0 and stopTime != 0 and status = 1",localStore->printStorePath(output));if (!res[0][0].is_null()) {propagatedFrom = res[0][0].as<BuildID>();break;
for (auto & i : ex.step->drv->outputsAndOptPaths(*localStore)) {if (i.second.second) {auto res = txn.exec_params("select max(s.build) from BuildSteps s join BuildStepOutputs o on s.build = o.build where path = $1 and startTime != 0 and stopTime != 0 and status = 1",localStore->printStorePath(*i.second.second));if (!res[0][0].is_null()) {propagatedFrom = res[0][0].as<BuildID>();break;}
auto path = i.second.path(*localStore, step->drv->name);if (/* localStore != destStore && */ localStore->isValidPath(path))
auto path = i.second.path(*localStore, step->drv->name, i.first);if (/* localStore != destStore && */ localStore->isValidPath(*path))