From 59b775cca97813a24e529171606e967b61e80877 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 4 Nov 2012 19:45:40 +0100 Subject: doc: Add "Adding new packages" in `HACKING'. * HACKING (Adding new packages): New section. --- HACKING | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/HACKING b/HACKING index 500d2e3bf0..836ad51a32 100644 --- a/HACKING +++ b/HACKING @@ -9,6 +9,50 @@ Copyright © 2012 Ludovic Courtès 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 ** Introduction -- cgit v1.2.3