* 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>
* 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.
* gnu/system/linux-initrd.scm (expression->initrd): Remove #:linux and
#:linux-modules parameters. Remove call to
'float-linux-module-directory'.
(base-initrd): Add call to 'float-linux-module-directory'. Use it in
#:linux-modules argument in the gexp. Remove #:linux and
#:linux-modules arguments to 'expression->initrd'.
* gnu/build/linux-initrd.scm (build-initrd): Remove
#:linux-module-directory parameter. Don't create 'modules'
sub-directory.
* gnu/build/linux-boot.scm (boot-system): Mentin that LINUX-MODULES is a
list of absolute file names. Don't prepend "/modules/" to
LINUX-MODULES.
* doc/guix.texi (Initial RAM Disk): Adjust accordingly.
* gnu/build/linux-initrd.scm (cache-compiled-file-name,
compile-to-cache, build-initrd): New procedures.
* gnu/system/linux-initrd.scm (expression->initrd)[builder]: Remove code
now moved above. Use 'build-initrd'.
* gnu/system/linux-initrd.scm (expression->initrd): Remove calls to
'imported-modules' and 'compiled-modules'. Use 'gexp->script' with
EXP. Add the result to TO-COPY. Make /init a symlink to that script,
and copy its closure into the "contents" directory. Add fake
/proc/self/exe symlink.
* gnu/build/linux-boot.scm (load-linux-module*): Add comment about mmap.
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Add "-m
256". This turns out to be needed for initrds containing things like
e2fsck and several modules; with the default of 128 MiB, loading
libahci.ko may fail with -1.
* gnu/system/linux-initrd.scm (expression->initrd): Add 'graph-files'.
Use (guix build store-copy) and 'populate-store' instead of local
hack. Pass #:references-graphs to 'gexp->derivation'.