diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2017-08-27 17:41:18 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2017-09-28 13:10:11 +0200 |
commit | fb1db385476bc4548d3eadea93b5dd6a346839f2 (patch) | |
tree | 6c505efc758fc6ecc15c567a906d353d5ef1adb5 /doc/guix.texi | |
parent | 5e892bc365a3da0d30a0982783ee2ab82ee090f8 (diff) | |
download | guix-fb1db385476bc4548d3eadea93b5dd6a346839f2.tar guix-fb1db385476bc4548d3eadea93b5dd6a346839f2.tar.gz |
import: Add JSON importer.
* doc/guix.texi (Invoking guix import): Document it.
* guix/scripts/import/json.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/import.scm (importers): Add json importer.
Diffstat (limited to 'doc/guix.texi')
-rw-r--r-- | doc/guix.texi | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 5a32476bd3..dd0a46a638 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5899,6 +5899,56 @@ CTAN while fetching the sources from the directory guix import texlive --archive=generic ifxetex @end example +@item json +@cindex JSON, import +Import package metadata from a local JSON file@footnote{This +functionality requires Guile-JSON to be installed. +@xref{Requirements}.}. Consider the following example package +definition in JSON format: + +@example +@{ + "name": "hello", + "version": "2.10", + "source": "mirror://gnu/hello/hello-2.10.tar.gz", + "build-system": "gnu", + "home-page": "https://www.gnu.org/software/hello/", + "synopsis": "Hello, GNU world: An example GNU package", + "description": "GNU Hello prints a greeting.", + "license": "GPL-3.0+", + "native-inputs": ["gcc@@6"] +@} +@end example + +The field names are the same as for the @code{<package>} record +(@xref{Defining Packages}). References to other packages are provided +as JSON lists of quoted package specification strings such as +@code{guile} or @code{guile@@2.0}. + +The importer also supports a more explicit source definition using the +common fields for @code{<origin>} records: + +@example +@{ + @dots{} + "source": @{ + "method": "url-fetch", + "uri": "mirror://gnu/hello/hello-2.10.tar.gz", + "sha256": @{ + "base32": "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i" + @} + @} + @dots{} +@} +@end example + +The command below reads metadata from the JSON file @code{hello.json} +and outputs a package expression: + +@example +guix import json hello.json +@end example + @item nix Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This |