-*- mode: org -*- [[http://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][GNU system]]. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. It provides [[http://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded domain-specific languages (EDSLs) to describe how packages are to be built and composed. A user-land free software distribution for GNU/Linux comes as part of Guix. Guix is based on the [[http://nixos.org/nix/][Nix]] package manager. * Requirements GNU Guix currently depends on the following packages: - [[http://gnu.org/software/guile/][GNU Guile 2.0.x]], version 2.0.7 or later - [[http://gnupg.org/][GNU libgcrypt]] - [[http://www.gnu.org/software/make/][GNU Make]] - optionally [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command - optionally [[http://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support in the 'guix download' command. Note that 'guix import pypi' requires this functionality. Unless `--disable-daemon' was passed, the following packages are needed: - [[http://sqlite.org/][SQLite 3]] - [[http://www.bzip.org][libbz2]] - [[http://gcc.gnu.org][GCC's g++]] When `--disable-daemon' was passed, you instead need the following: - [[http://nixos.org/nix/][Nix]] * Installation See the manual for the installation instructions, either by running info -f doc/guix.info "(guix) Installation" or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]]. For information on installation from a Git checkout, please see the section "Building from Git" in the manual. * Installing Guix from Guix You can re-build and re-install Guix using a system that already runs Guix. To do so: - Start a shell with the development environment for Guix: guix environment guix - Re-run the 'configure' script passing it the option '--localstatedir=/somewhere', where '/somewhere' is the 'localstatedir' value of the currently installed Guix (failing to do that would lead the new Guix to consider the store to be empty!). - Run "make", "make check", and "make install". * How It Works Guix does the high-level preparation of a /derivation/. A derivation is the promise of a build; it is stored as a text file under =/gnu/store/xxx.drv=. The (guix derivations) module provides the `derivation' primitive, as well as higher-level wrappers such as `build-expression->derivation'. Guix does remote procedure calls (RPCs) to the Guix or Nix daemon (the =guix-daemon= or =nix-daemon= command), which in turn performs builds and accesses to the Nix store on its behalf. The RPCs are implemented in the (guix store) module. * Installing Guix as non-root The Guix daemon allows software builds to be performed under alternate user accounts, which are normally created specifically for this purpose. For instance, you may have a pool of accounts in the =guixbuild= group, and then you can instruct =guix-daemon= to use them like this: $ guix-daemon --build-users-group=guixbuild However, unless it is run as root, =guix-daemon= cannot switch users. In that case, it falls back to using a setuid-root helper program call =nix-setuid-helper=. That program is not setuid-root by default when you install it; instead you should run a command along these lines (assuming Guix is2016-04-14gnu: packages: Use 'search-patches' everywhere....* gnu/packages/abiword.scm: Use 'search-patches' for 'patches' field. * gnu/packages/acl.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/algebra.scm: Likewise. * gnu/packages/animation.scm: Likewise. * gnu/packages/apr.scm: Likewise. * gnu/packages/audacity.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/autotools.scm: Likewise. * gnu/packages/avahi.scm: Likewise. * gnu/packages/backup.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/bash.scm: Likewise. * gnu/packages/bioinformatics.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/ci.scm: Likewise. * gnu/packages/cmake.scm: Likewise. * gnu/packages/cpio.scm: Likewise. * gnu/packages/cross-base.scm: Likewise. * gnu/packages/dico.scm: Likewise. * gnu/packages/doxygen.scm: Likewise. * gnu/packages/ebook.scm: Likewise. * gnu/packages/elf.scm: Likewise. * gnu/packages/emacs.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/firmware.scm: Likewise. * gnu/packages/flashing-tools.scm: Likewise. * gnu/packages/fltk.scm: Likewise. * gnu/packages/ftp.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gawk.scm: Likewise. * gnu/packages/gcc.scm: Likewise. * gnu/packages/gd.scm: Likewise. * gnu/packages/ghostscript.scm: Likewise. * gnu/packages/glib.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/gnucash.scm: Likewise. * gnu/packages/gnunet.scm: Likewise. * gnu/packages/gnupg.scm: Likewise. * gnu/packages/gnuzilla.scm: Likewise. * gnu/packages/graphics.scm: Likewise. * gnu/packages/grub.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/icu4c.scm: Likewise. * gnu/packages/idutils.scm: Likewise. * gnu/packages/image.scm: Likewise. * gnu/packages/imagemagick.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/ldc.scm: Likewise. * gnu/packages/libcanberra.scm: Likewise. * gnu/packages/libevent.scm: Likewise. * gnu/packages/libreoffice.scm: Likewise. * gnu/packages/libunwind.scm: Likewise. * gnu/packages/libusb.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/lirc.scm: Likewise. * gnu/packages/llvm.scm: Likewise. * gnu/packages/lsh.scm: Likewise. * gnu/packages/lua.scm: Likewise. * gnu/packages/lxqt.scm: Likewise. * gnu/packages/mail.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mcrypt.scm: Likewise. * gnu/packages/messaging.scm: Likewise. * gnu/packages/mit-krb5.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/multiprecision.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/ninj