You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.0 KiB

  1. -*- mode: org -*-
  2. Guix is Nix[0] from Guile[1]!
  3. Concretely, it allows Nix package management to be done entirely in
  4. Scheme. The goal is to investigate whether Scheme, and in particular
  5. the ability to define EDSLs, would allow it to fulfill the role of the
  6. Nix language.
  7. [0]
  8. [1]
  9. * Hacking
  10. Guix currently depends on the following packages:
  11. - [[][GNU Guile 2.0.x]]
  12. - [[][Nix]]
  13. - [[][GNU libgcrypt]], or [[][libchop]]
  14. Optionally, packages from Nixpkgs may be transparently reused from Guix.
  15. For this to work, you need to have a checkout of the Nixpkgs repository;
  16. the `--with-nixpkgs' option allows you to let `configure' know where the
  17. Nixpkgs checkout is.
  18. - [[][Nixpkgs]]
  19. When building Guix from a checkout, the following packages are also
  20. required:
  21. - [[][GNU Autoconf]]
  22. - [[][GNU Automake]]
  23. - [[][GNU Gettext]]
  24. The "autoreconf -vi" command can be used to generate the build system
  25. infrastructure; it reports an error if an inappropriate version of the
  26. above packages is being used.
  27. * How It Works
  28. Guix does the high-level preparation of a /derivation/. A derivation is
  29. the promise of a build; it is stored as a text file under
  30. =/nix/store/xxx.drv=. The (guix derivations) module provides the
  31. `derivation' primitive, as well as higher-level wrappers such as
  32. `build-expression->derivation'.
  33. Guix does remote procedure calls (RPCs) to the Nix daemon (the
  34. =nix-worker --daemon= command), which in turn performs builds and
  35. accesses to the Nix store on its behalf. The RPCs are implemented in
  36. the (guix store) module.
  37. * Contact
  38. The repository is at <>.
  39. Please email <> or <>, or
  40. join #guile or #nixos on or `civodul'.