#pragma once #include "types.hh" #include "hash.hh" #include namespace nix { /* Extension of derivations in the Nix store. */ const string drvExtension = ".drv"; /* Abstract syntax of derivations. */ struct DerivationOutput { Path path; string hashAlgo; /* hash used for expected hash computation */ string hash; /* expected hash, may be null */ DerivationOutput() { } DerivationOutput(Path path, string hashAlgo, string hash) { this->path = path; this->hashAlgo = hashAlgo; this->hash = hash; } void parseHashInfo(bool & recursive, HashType & hashType, Hash & hash) const; }; typedef std::map DerivationOutputs; /* For inputs that are sub-derivations, we specify exactly which output IDs we are interested in. */ typedef std::map DerivationInputs; typedef std::map StringPairs; struct Derivation { DerivationOutputs outputs; /* keyed on symbolic IDs */ DerivationInputs inputDrvs; /* inputs that are sub-derivations */ PathSet inputSrcs; /* inputs that are sources */ string platform; Path builder; Strings args; StringPairs env; }; class StoreAPI; /* Write a derivation to the Nix store, and return its path. */ Path writeDerivation(StoreAPI & store, const Derivation & drv, const string & name, bool repair = false); /* Read a derivation from a file. */ Derivation readDerivation(const Path & drvPath); /* Print a derivation. */ string unparseDerivation(const Derivation & drv); /* Check whether a file name ends with the extensions for derivations. */ bool isDerivation(const string & fileName); /* Return true iff this is a fixed-output derivation. */ bool isFixedOutputDrv(const Derivation & drv); Hash hashDerivationModulo(StoreAPI & store, Derivation drv); /* Memoisation of hashDerivationModulo(). */ typedef std::map DrvHashes; extern DrvHashes drvHashes; /* Split a string specifying a derivation and a set of outputs (/nix/store/hash-foo!out1,out2,...) into the derivation path and the outputs. */ typedef std::pair > DrvPathWithOutputs; DrvPathWithOutputs parseDrvPathWithOutputs(const string & s); Path makeDrvPathWithOutputs(const Path & drvPath, const std::set & outputs); bool wantOutput(const string & output, const std::set & wanted); PathSet outputPaths(const Derivation & drv); } t'>
AgeCommit message (Collapse)Author
2022-12-18doc: Update URLs for the manual and cookbook translations.Ludovic Courtès
* doc/htmlxref.cnf: Update URLs for "guix" and "guix-cookbook".
2022-12-18doc: Add guile-netlink to 'htmlxref.cnf'.Ludovic Courtès
* doc/htmlxref.cnf: Add guile-netlink.
2022-08-05doc: Fix Guix manual URLs in 'htmlxref.cnf'.Ludovic Courtès
Fixes a regression introduced in 868da34d54365023223a4ff7520043ba55ad64e8. * doc/htmlxref.cnf (GUIX): Remove "/guix".
2022-06-16doc: Remove obsolete comment from htmlxref.cnf.Maxim Cournoyer
This is follow up to <https://issues.guix.gnu.org/55290>. * doc/htmlxref.cnf (geiser): Delete obsolete comment.
2022-04-08doc: Fix cookbook URLs in htmlxref.cnf.Ludovic Courtès
Reported by Greg Hogan <code@greghogan.com>. * doc/htmlxref.cnf (GUIX_ROOT): New variable. (GUIX, GUIX_COOKBOOK): Adjust.
2021-10-04doc: Update htmlxref.cnf.Sarah Morgensen
Update and fix broken references to cuirass, git, and guix-cookbook. * doc/htmlxref.cnf: Update from Texinfo. Factorize Guix manuals. (cuirass, git, guix-cookbook, guix-cookbook.de, guix-cookbook.fr): New entries. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-24doc: Fix cross-reference URL to translated manual.Julien Lepiller
* doc/htmlxref.cnf: Fix translated manual URL.