#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); } content'>
AgeCommit message (Expand)Author
2024-12-01gnu: xrdp: Only build with nasm on necessary platforms....* gnu/packages/rdesktop.scm (xrdp)[native-inputs]: Only include nasm on platforms which need it. Change-Id: I9f390af3c12752bc0c3696910170bc994b8a5fd6 Efraim Flashner
2024-12-01gnu: xorgxrdp: Only build with nasm on necessary platforms....* gnu/packages/rdesktop.scm (xorgxrdp)[native-inputs]: Only include nasm on platforms which need it. Change-Id: I00778cf4b53776754525d42e0586076d4f2be61b Efraim Flashner
2024-11-29gnu: xorgxrdp: Switch to git source....* gnu/packages/rdesktop.scm (xorgxrdp)[source]: Switch to git-fetch. [native-inputs]: Add autoconf, automake and libtool. Change-Id: I6ff0b7f76c750ab932aa3ffd5997c70479644b8d Zheng Junjie
2024-11-29gnu: xorgxrdp: Update to 0.10.2....* gnu/packages/rdesktop.scm (xorgxrdp): Update to 0.10.2. Change-Id: I7b25ac3b5aba0ae44729db5d83b7280f2ae33c55 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn> Andy Tai
2024-11-29gnu: xrdp: Update to 0.10.1....* gnu/packages/rdesktop.scm (xrdp): Update to 0.10.1. Change-Id: I876d2ba9deeaed721c7300537221848f4392b2d0 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn> Andy Tai
2024-07-11gnu: xrdp: update to 0.10.0....* gnu/packages/rdesktop.scm (xrdp): Update to 0.10.0. [native-inputs]: Add cmocka. Change-Id: Ifdf6e8759753d49a8f169aac128a943be71f2958 Signed-off-by: jgart <jgart@dismail.de> Andy Tai