doc: Add "Adding new packages" in `HACKING'.
* HACKING (Adding new packages): New section.master
parent
10226c05b1
commit
59b775cca9
44
HACKING
44
HACKING
|
@ -9,6 +9,50 @@ Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||||
notice and this notice are preserved.
|
notice and this notice are preserved.
|
||||||
|
|
||||||
|
|
||||||
|
* Adding new packages
|
||||||
|
|
||||||
|
Package recipes in Guix look like this:
|
||||||
|
|
||||||
|
#+BEGIN_SRC scheme
|
||||||
|
(package
|
||||||
|
(name "nettle")
|
||||||
|
(version "2.5")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method http-fetch)
|
||||||
|
(uri (string-append "http://ftp.gnu.org/gnu/nettle/nettle-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0wicr7amx01l03rm0pzgr1qvw3f9blaw17vjsy1301dh13ll58aa"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs `(("gnum4" ,gnum4)))
|
||||||
|
(propagated-inputs `(("gmp" ,gmp)))
|
||||||
|
(home-page
|
||||||
|
"http://www.lysator.liu.se/~nisse/nettle/")
|
||||||
|
(synopsis "GNU Nettle, a cryptographic library")
|
||||||
|
(description
|
||||||
|
"Nettle is a cryptographic library...")
|
||||||
|
(license "GPLv2+"))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Such a recipe can be written by hand, and then tested by running
|
||||||
|
‘./pre-inst-env guix-build nettle’.
|
||||||
|
|
||||||
|
When writing the recipe, the base32-encoded SHA256 hash of the source
|
||||||
|
code tarball, which can be seen in the example above, can be obtained by
|
||||||
|
running:
|
||||||
|
|
||||||
|
guix-download http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
|
||||||
|
|
||||||
|
Alternatively, it is possible to semi-automatically import recipes from
|
||||||
|
the [[http://nixos.org/nixpkgs/][Nixpkgs]] software distribution using this command:
|
||||||
|
|
||||||
|
guix-import /path/to/nixpkgs/checkout nettle
|
||||||
|
|
||||||
|
The command automatically fetches and converts to Guix the “Nix
|
||||||
|
expression” of Nettle.
|
||||||
|
|
||||||
* Porting the Guix distro on a new platform
|
* Porting the Guix distro on a new platform
|
||||||
|
|
||||||
** Introduction
|
** Introduction
|
||||||
|
|
Reference in New Issue