Previously 'guix pull' would just fail with "No such file or directory"
if ~/.config didn't already exist.
* guix/ui.scm (config-directory): Use 'mkdir-p' instead of 'mkdir'.
Change the 'catch' handler to expect errors different from EEXIST.
* guix/build/utils.scm (wrap-program): Multiple invocations of
wrap-program for the same file create successive wrappers. Adjust
docstring.
* tests/build-utils.scm: Test new wrap-program behavior.
(%store): New variable.
* gnu/build/activation.scm (activate-current-system): Honor
$GUIX_NEW_SYSTEM by default.
* guix/scripts/system.scm (switch-to-system): Set $GUIX_NEW_SYSTEM
before loading SCRIPT.
* gnu/system/file-systems.scm (<mapped-device>): New record type.
* gnu/system.scm (<operating-system>)[mapped-devices]: New field.
(luks-device-mapping): New procedure.
(other-file-system-services)[device-mappings, requirements]: New
procedures. Pass #:requirements to 'file-system-service'.
(device-mapping-services): New procedure.
(essential-services): Use it. Append its result to the return value.
(operating-system-initrd-file): Add comment.
* gnu/services/base.scm (file-system-service): Add #:requirements
parameter and honor it.
(device-mapping-service): New procedure.
* gnu/system/linux-initrd.scm (base-initrd): Add comment.
* gnu/build/install.scm (directives): Remove "/bin/sh".
* gnu/build/activation.scm (activate-/bin/sh): New procedure.
* gnu/system.scm (operating-system-activation-script): Use it.
* gnu/services/base.scm (udev-rules-union): New procedure.
(udev-service): Add #:rules parameter. Call 'udev-rules-union' and
create udev.conf. Set $UDEV_CONFIG_FILE before spawning udevd.
* gnu/system.scm (<operating-system>)[hosts-file]: New field.
(default-/etc/hosts): New procedure.
(etc-directory): Add #:hosts-file parameter and honor it.
(operating-system-etc-directory): Build /etc/hosts, and pass
it as #:hosts-file to 'etc-directory'.
Before that, 'sudo' would exit with:
sudo: /etc/sudoers is not a regular file
sudo: no valid sudoers sources found, quitting
* gnu/build/activation.scm (activate-etc): Check if SOURCE matches
'file-is-directory?'. If not, use 'copy-file' instead of 'symlink'.
* gnu/packages/patches/lua51-liblua-so.patch: New file
* gnu/packages/lua.scm: Use of lua51-liblua-so.patch in lua-5.1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Reported by Andreas Enge <andreas@enge.fr>.
* guix/profiles.scm (right-arrow): Use 'set-port-conversion-strategy!'
instead of '%default-port-conversion-strategy'. The latter is only
available in Guile 2.0.5.
* gnu/build/install.scm (evaluate-populate-directive): Wrap body in
"catch 'system-error", and report clear errors. In the symlink case,
retry up EEXIST.
(populate-root-file-system): Remove /var/guix/profiles/system-1-link
before attempting to create it.