Augment `README'.
[jackhill/guix/guix.git] / README
1 -*- mode: org -*-
2
3 Guix is Nix[0] from Guile[1]!
4
5 Concretely, it allows Nix package management to be done entirely in
6 Scheme. The goal is to investigate whether Scheme, and in particular
7 the ability to define EDSLs, would allow it to fulfill the role of the
8 Nix language.
9
10 [0] http://nixos.org/nix/
11 [1] http://gnu.org/software/guile/
12
13
14 * Hacking
15
16 Guix currently depends on the following packages:
17
18 - [[http://gnu.org/software/guile/][GNU Guile 2.0.x]]
19 - [[http://nixos.org/nix/][Nix]]
20 - [[http://gnupg.org/][GNU libgcrypt]], or [[http://nongnu.org/libchop/][libchop]]
21
22 For bootstrapping purposes, it is useful to reuse packages from Nixpkgs.
23 For this to work, you need to have a checkout of the Nixpkgs repository;
24 the `--with-nixpkgs' option allows you to let `configure' know where the
25 Nixpkgs checkout is.
26
27 - [[http://nixos.org/nixpkgs/][Nixpkgs]]
28
29 When building Guix from a checkout, the following packages are also
30 required:
31
32 - [[http://www.gnu.org/software/autoconf/][GNU Autoconf]]
33 - [[http://www.gnu.org/software/automake/][GNU Automake]]
34 - [[http://www.gnu.org/software/gettext/][GNU Gettext]]
35
36 The "autoreconf -vi" command can be used to generate the build system
37 infrastructure; it reports an error if an inappropriate version of the
38 above packages is being used.
39
40 * How It Works
41
42 Guix does the high-level preparation of a /derivation/. A derivation is
43 the promise of a build; it is stored as a text file under
44 =/nix/store/xxx.drv=. The (guix derivations) module provides the
45 `derivation' primitive, as well as higher-level wrappers such as
46 `build-expression->derivation'.
47
48 Guix does remote procedure calls (RPCs) to the Nix daemon (the
49 =nix-worker --daemon= command), which in turn performs builds and
50 accesses to the Nix store on its behalf. The RPCs are implemented in
51 the (guix store) module.
52
53 * Contact
54
55 The repository is at <https://gitorious.org/guix/>.
56
57 Please email <ludo@gnu.org> or <nix-dev@lists.science.uu.nl>, or
58 join #guile or #nixos on irc.freenode.net or `civodul'.