linux-initrd: Allow setuid binaries from the unionfs to run.
* guix/build/linux-initrd.scm (boot-system): Pass the 'suid' option to
UNIONFS.
system: Add (guix build activation).
* gnu/services/dmd.scm (dmd-configuration-file): Remove 'etc'
parameter. Move /etc activation code to...
* guix/build/activation.scm: ... here; new file.
* gnu/system.scm (operating-system-boot-script): Augment script: add
(guix build activation) to the load path; call 'activate-etc'.
* Makefile.am (MODULES): Add guix/build/activation.scm.
gnu: calcurse: Fix module definition.
* gnu/packages/calcurse.scm: Define calcurse module correctly.
gnu: gmsh: Fix typos
* gnu/packages/maths.scm (gmsh): Fix typo and space aftern
end-of-sentence.
gnu: Add gmsh
* gnu/packages/maths.scm (gmsh): New variable
derivations: Micro-optimize 'derivation'.
* guix/derivations.scm (derivation->string): New procedure.
(derivation-hash, derivation): Use it.
Memoization here yields a 5% improvement on "guix build -e '(@ (gnu
packages emacs) emacs)' -n --no-substitutes".
gnu: guile-ncurses: Build with Unicode support.
* gnu/packages/guile.scm (guile-ncurses)[arguments]: Pass
"--with-ncursesw".
gnu-maintenance: Avoid network access in 'gnu-package?'.
* guix/gnu-maintenance.scm (gnu-package?): Add 'mirror-type' procedure.
Resort to 'official-gnu-packages' only when 'mirror-type' returns #f.
gexp: Remove leftover parameter.
* guix/gexp.scm (gexp->sexp): Remove #:outputs parameter. Adjust
callers accordingly.
gnu: screen: Upgrade to 4.2.1.
* gnu/packages/screen.scm (screen): Upgrade to 4.2.1.
gnu: mcron: Upgrade to 1.0.7.
* gnu/packages/guile.scm (mcron): Upgrade to 1.0.7.
Use GUILE-2.0 instead of GUILE-1.8; add 'native-inputs' field.
monads: Hide 'derivation-expression' and 'lower-inputs'.
* guix/monads.scm: Unexport 'lower-inputs' and 'derivation-expression'.
(text-file*): Add comment about the switch to 'gexp->derivation'.
(lower-inputs): Add comment about its doom.
(derivation-expression): Likewise.
* guix/gexp.scm (lower-inputs*): Rename to...
(lower-inputs): ... this. Update callers.
* tests/monads.scm (derivation-expression): New procedure.
* doc/guix.texi (The Store Monad): Use 'gexp->derivation' instead of
'derivation-expression'. Remove documentation of
'derivation-expression'.
* guix/ui.scm (read/eval): Use THE-ROOT-MODULE so that macros are
properly expanded.
* tests/guix-build.sh: Use 'gexp->derivation' instead of
'derivation-expression'.monads: Hide 'derivation-expression' and 'lower-inputs'.
linux-initrd: Rewrite using gexps.
* gnu/system/linux-initrd.scm (expression->initrd): Rename 'inputs'
parameter to 'to-copy'. Remove 'files-to-copy'. Rewrite 'builder' as
a gexp, and use 'gexp->derivation'.
(qemu-initrd): Adjust accordingly.
system: Rewrite 'union' using gexps.
* gnu/system.scm (union): Rewrite using 'gexp->derivation'.
services: xorg: Rewrite using gexps.
* gnu/services/xorg.scm (xorg-start-command): Rewrite in terms of
'gexp->script'.
(xinitrc): Likewise.
system: grub: Rewrite using gexps.
* gnu/system/grub.scm (grub-configuration-file): Rewrite using
'gexp->derivation'.
* gnu/system.scm (operating-system-derivation): Adjust accordingly.
system: Change 'file-union' to use gexps.
* gnu/system.scm (file-union): Make 'name' the first parameter; remove
'inputs' parameter. Rewrite using 'gexp->derivation'.
(etc-directory): Adjust accordingly.
(operating-system-derivation): Ditto.
services: Rewrite using gexps.
* gnu/services.scm (<service>)[inputs]: Remove.
* gnu/system.scm (links): Remove.
(etc-directory): Add PASSWD and SHADOW to #:inputs.
(operating-system-boot-script): Pass ETC to 'dmd-configuration-file'.
(operating-system-derivation): Remove EXTRAS from the union.
* gnu/system/linux.scm (pam-service->configuration): Rewrite in terms of
'gexp->derivation'. Compute the contents on the build side. Expect
'arguments' to contain a list of gexps.
(pam-services->directory): Rewrite in terms of 'gexp->derivation'.
(unix-pam-service): Change 'arguments' to a list of one gexp.
* gnu/system/shadow.scm (<user-account>)[inputs]: Remove.
[shell]: Change default value to a gexp.
(passwd-file): Rewrite in terms of 'gexp->derivation'. Compute
contents on the build side.
* gnu/services/base.scm (host-name-service, mingetty-service,
nscd-service, syslog-service, guix-service): Change 'start' and 'stop'
to gexps; remove 'inputs' field.
(guix-build-accounts): Change 'shell' field to a gexp.
* gnu/services/networking.scm (static-networking-service): Change
'start' and 'stop' to gexps; remove 'inputs' field.
* gnu/services/xorg.scm (slim-service): Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Expect ETC to be a
derivation. Change 'config' to a gexp. Use 'gexp->file' instead of
'text-file'.
* doc/guix.texi (Defining Services): Update nscd example with gexps, and
without 'inputs'. Add xref to "G-Expressions".
vm: Rewrite support procedures to use gexps.
* gnu/system/vm.scm (%imported-modules): Remove.
(expression->derivation-in-linux-vm): Remove 'inputs' parameter.
Rename 'imported-modules' to 'modules'. Rewrite using gexps and
'gexp->derivation'.
(qemu-image): Add 'qemu' parameter. Pass NAME to
'expression->derivation-in-linux-vm'. Rewrite using gexps. Remove
#:inputs argument to 'expression->derivation-in-linux-vm'.
(operating-system-default-contents): Rewrite using gexps.
* gnu/system.scm (operating-system-profile-derivation): Rename to...
(operating-system-profile): ... this. Adjust callers.
(operating-system-profile-directory): Remove.