distro: Rebuild bootstrap Binutils and GCC.
[jackhill/guix/guix.git] / README
CommitLineData
4255d4e3
LC
1-*- mode: org -*-
2
b7a7f598
LC
3Guix is Nix[0] from Guile[1]!
4
5Concretely, it allows Nix package management to be done entirely in
6Scheme. The goal is to investigate whether Scheme, and in particular
7the ability to define EDSLs, would allow it to fulfill the role of the
8Nix language.
9
10[0] http://nixos.org/nix/
11[1] http://gnu.org/software/guile/
4255d4e3
LC
12
13
14* Hacking
15
16Guix currently depends on the following packages:
17
a1e4a936
LC
18 - [[http://gnu.org/software/guile/][GNU Guile 2.0.x]]
19 - [[http://nixos.org/nix/][Nix]]
d388c2c4 20 - [[http://gnupg.org/][GNU libgcrypt]]
4255d4e3 21
e76bdf8b 22Optionally, packages from Nixpkgs may be transparently reused from Guix.
7da7ae93
LC
23For this to work, you need to have a checkout of the Nixpkgs repository;
24the `--with-nixpkgs' option allows you to let `configure' know where the
25Nixpkgs checkout is.
4255d4e3 26
a1e4a936 27 - [[http://nixos.org/nixpkgs/][Nixpkgs]]
4255d4e3 28
7da7ae93
LC
29When building Guix from a checkout, the following packages are also
30required:
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
36The "autoreconf -vi" command can be used to generate the build system
37infrastructure; it reports an error if an inappropriate version of the
38above packages is being used.
39
4255d4e3
LC
40* How It Works
41
42Guix does the high-level preparation of a /derivation/. A derivation is
43the 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
48Guix does remote procedure calls (RPCs) to the Nix daemon (the
49=nix-worker --daemon= command), which in turn performs builds and
50accesses to the Nix store on its behalf. The RPCs are implemented in
51the (guix store) module.
52
53* Contact
54
55The repository is at <https://gitorious.org/guix/>.
56
57Please email <ludo@gnu.org> or <nix-dev@lists.science.uu.nl>, or
58join #guile or #nixos on irc.freenode.net or `civodul'.