doc: Add a "Related software" section to `README'.
[jackhill/guix/guix.git] / README
CommitLineData
4255d4e3
LC
1-*- mode: org -*-
2
f8348b91 3GNU Guix is Nix[0] from Guile[1]!
b7a7f598
LC
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'.
d38487e9
LC
59
60* Related software
61
62 - [[http://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated
63 software distribution, are the inspiration of Guix
64 - [[http://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a
65 symlink tree to create user environments
66 - [[http://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea
67 - [[https://live.gnome.org/OSTree/][GNOME's OSTree]] allows bootable system images to be built from a
68 specified set of packages
69 - The [[http://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software
70 distribution; unlike Guix, it relies on core tools available on the
71 host system