#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); } ='list nowrap'>AgeCommit message (Expand)Author 2022-03-01initrd: Use non-hyphenated kernel command-line parameter names....This is to make it less surprising, given the common convention sets forth by the kernel Linux command-line parameters. * gnu/build/linux-boot.scm (boot-system): Rename '--load', '--repl', '--root' and '--system' to 'gnu.load', 'gnu.repl', 'root' and 'gnu.system', respectively. Adjust doc. (find-long-option): Adjust doc. * gnu/installer/parted.scm (installer-root-partition-path): Adjust accordingly. * gnu/system.scm (bootable-kernel-arguments): Add a VERSION argument and update doc. Use VERSION to conditionally return old style vs new style initrd arguments. (%boot-parameters-version): Increment to 1. (operating-system-boot-parameters): Adjust doc. (operating-system-boot-parameters-file): Likewise. * gnu/system/linux-initrd.scm (raw-initrd, base-initrd): Likewise. * doc/guix.texi: Adjust doc. * gnu/build/activation.scm (boot-time-system): Adjust accordingly. * gnu/build/hurd-boot.scm (boot-hurd-system): Likewise. * gnu/packages/commencement.scm (%final-inputs-riscv64): Adjust comment. Maxim Cournoyer 2021-12-12services: static-networking: Change interface to mimic netlink....* gnu/services/base.scm (<static-networking>)[interface, ip, netmask] [gateway]: Remove. [addresses, links, routes]: New fields. [requirement]: Default to '(udev). (<network-address>, <network-link>, <network-route>): New record types. (ensure-no-separate-netmask, %ensure-no-separate-netmask): Remove. (ipv6-address?, cidr->netmask, ip+netmask->cidr) (network-set-up/hurd, network-tear-down/hurd) (network-set-up/linux, network-tear-down/linux) (static-networking->hurd-pfinet-options): New procedures. (static-networking-shepherd-service): New procedure. (static-networking-shepherd-services): Rewrite in terms of the above. (static-networking-service): Deprecate. Adjust to new 'static-networking' API. (%base-services): Likewise. * gnu/system/install.scm (%installation-services): Likewise. * gnu/system/hurd.scm (%base-services/hurd): Likewise, and separate 'loopback' from 'networking'. * gnu/build/hurd-boot.scm (set-hurd-device-translators): Remove "servers/socket/2". * gnu/tests/networking.scm (run-openvswitch-test)["networking has started on ovs0"]: Check for 'networking instead of 'networking-ovs0, which is no longer provided. * doc/guix.texi (Networking Setup): Document the new interface. Remove documentation of 'static-networking-service'. (Virtualization Services): Change Ganeti example to use the new interface. Ludovic Courtès 2021-10-18hurd-boot: Set pfinet on the right node for AF_INET6....* gnu/build/hurd-boot.scm (set-hurd-device-translators): Fix /servers file name for AF_INET6. Ludovic Courtès