Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
nix3-derivation-add(1)	    General Commands Manual	nix3-derivation-add(1)

	      Warning
	      This  program  is	 experimental <../../development/experimental-
	      features.md#xp-feature-nix-command> and its interface is subject
	      to change.

Name
       nix derivation add - Add	a store	derivation

Synopsis
       nix derivation add [option...]

Description
       This command reads from standard	input a	JSON representation of a store
       derivation <../../glossary.md#gloss-store-derivation>.

       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.

       nix derivation add takes	a single derivation in the following format:

Derivation JSON	Format
	      Warning

	      This	JSON	  format     is	    currently	  experimental
	      <../../development/experimental-features.md#xp-feature-nix-
	      command> and subject to change.

       The JSON	serialization of a derivations <../../glossary.md#gloss-store-
       derivation> is a	JSON object with the following fields:

         name:	The name of the	derivation.  This is used when calculating the
	  store	paths of the derivation's outputs.

         version: Must	be 3.  This is a guard	that  allows  us  to  continue
	  evolving this	format.	 The choice of 3 is fairly arbitrary, but cor-
	  responds to this informal version:

	    Version 0:	A-Term format

	    Version  1:  Original JSON	format,	with ugly "r:sha256" inherited
	     from A-Term format.

	    Version 2:	Separate method	and hashAlgo fields in output specs

	    Verison 3:	Drop store dir from store  paths,  just	 include  base
	     name.

	  Note that while this format is experimental, the maintenance of ver-
	  sions	is best-effort,	and not	promised to identify every change.

         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:

	    path: The output path, if it is known  in	advanced.   Otherwise,
	     null.

	    method: For an output which will be [content addressed], a	string
	     representing    the   method   <../../store/store-object/content-
	     address.md> of content addressing that is chosen.	 Valid	method
	     strings are:

	    flat <../../store/store-object/content-address.md#method-flat>

	    nar      <../../store/store-object/content-address.md#method-nix-
	     archive>

	    text <../../store/store-object/content-address.md#method-text>

	    git <../../store/store-object/content-address.md#method-git>

	  Otherwise, null.

	    hashAlgo: For an output which will	be  [content  addressed],  the
	     name of the hash algorithm	used.  Valid algorithm strings are:

	    blake3

	    md5

	    sha1

	    sha256

	    sha512

	    hash:  For	fixed-output derivations, the expected content hash in
	     base-16.

		 Example

	  "outputs": {
	    "out": {
	      "method":	"nar",
	      "hashAlgo": "sha256",
	      "hash": "6fc80dcc62179dbc12fc0b5881275898f93444833d21b89dfe5f7fbcbb1d0d62"
	    }
	  }

         inputSrcs: A list of store paths on which this derivation depends.

		 Example

	  "inputSrcs": [
	    "47y241wqdhac3jm5l7nv0x4975mb1975-separate-debug-info.sh",
	    "56d0w71pjj9bdr363ym3wj1zkwyqq97j-fix-pop-var-context-error.patch"
	  ]

         inputDrvs: A JSON object specifying the derivations  on  which  this
	  derivation depends, and what outputs of those	derivations.

		 Example

	  "inputDrvs": {
	    "6lkh5yi7nlb7l6dr8fljlli5zfd9hq58-curl-7.73.0.drv":	["dev"],
	    "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/r3j288vpm-
	  czbl500w6zz89gyfa4nr0b1-bash-4.4-p23/bin/bash).

         args:	The command-line arguments passed to the builder.

         env: The environment passed to the builder.

         structuredAttrs: Strucutured Attributes  <../../store/derivation/in-
	  dex.md#structured-attrs>,  only  defined  if the derivation contains
	  them.	 Structured attributes are JSON, and thus embedded as-is.

Options
         --dry-run <#opt-dry-run>

	  Show what this command would do without doing	it.

   Logging-related options
         --debug <#opt-debug>

	  Set the logging verbosity level to `debug'.

         --log-format <#opt-log-format> format

	  Set the format of log	output;	one of raw, internal-json, bar or bar-
	  with-logs.

         --print-build-logs <#opt-print-build-logs> / -L

	  Print	full build logs	on standard error.

         --quiet <#opt-quiet>

	  Decrease the logging verbosity level.

         --verbose <#opt-verbose> / -v

	  Increase the logging verbosity level.

   Miscellaneous global	options
         --help <#opt-help>

	  Show usage information.

         --offline <#opt-offline>

	  Disable substituters and consider all	 previously  downloaded	 files
	  up-to-date.

         --option <#opt-option> name value

	  Set	the  Nix  configuration	 setting  name	to  value  (overriding
	  nix.conf).

         --refresh <#opt-refresh>

	  Consider all previously downloaded files out-of-date.

         --version <#opt-version>

	  Show version information.

	  Note

	  See man nix.conf <../../command-ref/conf-file.md#command-line-flags>
	  for overriding configuration settings	with command line flags.

							nix3-derivation-add(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nix3-derivation-add&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help