1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-28 09:31:16 +02:00

Merge pull request #9348 from obsidiansystems/json-formats

Document JSON formats
This commit is contained in:
John Ericson 2024-01-20 17:22:39 -05:00 committed by GitHub
commit a93b204c27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 181 additions and 61 deletions

View file

@ -635,7 +635,7 @@ public:
- the store object has been signed using a key in the trusted keys list
- the [`require-sigs`](#conf-require-sigs) option has been set to `false`
- the store object is [output-addressed](@docroot@/glossary.md#gloss-output-addressed-store-object)
- the store object is [content-addressed](@docroot@/glossary.md#gloss-content-addressed-store-object)
)",
{"binary-cache-public-keys"}};

View file

@ -9,10 +9,11 @@ Store derivations are used internally by Nix. They are store paths with
extension `.drv` that represent the build-time dependency graph to which
a Nix expression evaluates.
[store derivation]: ../../glossary.md#gloss-store-derivation
The JSON format is documented under the [`derivation show`] command.
[store derivation]: @docroot@/glossary.md#gloss-store-derivation
[`derivation show`]: ./nix3-derivation-show.md
`nix derivation add` takes a single derivation in the following format:
{{#include ../../json/derivation.md}}
)""

View file

@ -5,8 +5,6 @@ R""(
* Show the [store derivation] that results from evaluating the Hello
package:
[store derivation]: ../../glossary.md#gloss-store-derivation
```console
# nix derivation show nixpkgs#hello
{
@ -48,62 +46,12 @@ a Nix expression evaluates.
By default, this command only shows top-level derivations, but with
`--recursive`, it also shows their dependencies.
The JSON output is a JSON object whose keys are the store paths of the
derivations, and whose values are a JSON object with the following
fields:
[store derivation]: @docroot@/glossary.md#gloss-store-derivation
* `name`: The name of the derivation. This is used when calculating the
store paths of the derivation's outputs.
`nix derivation show` outputs a JSON map of [store path]s to derivations in the following format:
* `outputs`: Information about the output paths of the
derivation. This is a JSON object with one member per output, where
the key is the output name and the value is a JSON object with these
fields:
[store path]: @docroot@/glossary.md#gloss-store-path
* `path`: The output path.
* `hashAlgo`: For fixed-output derivations, the hashing algorithm
(e.g. `sha256`), optionally prefixed by `r:` if `hash` denotes a
NAR hash rather than a flat file hash.
* `hash`: For fixed-output derivations, the expected content hash in
base-16.
Example:
```json
"outputs": {
"out": {
"path": "/nix/store/2543j7c6jn75blc3drf4g5vhb1rhdq29-source",
"hashAlgo": "r:sha256",
"hash": "6fc80dcc62179dbc12fc0b5881275898f93444833d21b89dfe5f7fbcbb1d0d62"
}
}
```
* `inputSrcs`: A list of store paths on which this derivation depends.
* `inputDrvs`: A JSON object specifying the derivations on which this
derivation depends, and what outputs of those derivations. For
example,
```json
"inputDrvs": {
"/nix/store/6lkh5yi7nlb7l6dr8fljlli5zfd9hq58-curl-7.73.0.drv": ["dev"],
"/nix/store/fn3kgnfzl5dzym26j8g907gq3kbm8bfh-unzip-6.0.drv": ["out"]
}
```
specifies that this derivation depends on the `dev` output of
`curl`, and the `out` output of `unzip`.
* `system`: The system type on which this derivation is to be built
(e.g. `x86_64-linux`).
* `builder`: The absolute path of the program to be executed to run
the build. Typically this is the `bash` shell
(e.g. `/nix/store/r3j288vpmczbl500w6zz89gyfa4nr0b1-bash-4.4-p23/bin/bash`).
* `args`: The command-line arguments passed to the `builder`.
* `env`: The environment passed to the `builder`.
{{#include ../../json/derivation.md}}
)""