build-system/gnu: Have `configure-flags' and `make-flags' evaluated.
[guix.git] / README
blob442e4c3f3551a2bdbd66b5301a08e58e54824f6a
1 -*- mode: org -*-
3 Guix is Nix[0] from Guile[1]!
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.
10 [0] http://nixos.org/nix/
11 [1] http://gnu.org/software/guile/
14 * Hacking
16 Guix currently depends on the following packages:
18   - GNU Guile 2.0.x, http://gnu.org/software/guile/
19   - Nix, http://nixos.org/nix/
20   - libchop, http://nongnu.org/libchop/
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 with the `NIXPKGS' environment variable pointing to it.
26   - Nixpkgs, http://nixos.org/nixpkgs/
28 * How It Works
30 Guix does the high-level preparation of a /derivation/.  A derivation is
31 the promise of a build; it is stored as a text file under
32 =/nix/store/xxx.drv=.  The (guix derivations) module provides the
33 `derivation' primitive, as well as higher-level wrappers such as
34 `build-expression->derivation'.
36 Guix does remote procedure calls (RPCs) to the Nix daemon (the
37 =nix-worker --daemon= command), which in turn performs builds and
38 accesses to the Nix store on its behalf.  The RPCs are implemented in
39 the (guix store) module.
41 * Contact
43 The repository is at <https://gitorious.org/guix/>.
45 Please email <ludo@gnu.org> or <nix-dev@lists.science.uu.nl>, or
46 join #guile or #nixos on irc.freenode.net or `civodul'.