vm: 'qemu-command' honors its argument. * gnu/build/vm.scm (qemu-command): Refer to SYSTEM rather than %HOST-TYPE in the body.
container: Gracefully report mount errors in the child process. Fixes <http://bugs.gnu.org/23306>. * gnu/build/linux-container.scm (run-container): Use 'socketpair' instead of 'pipe'. Rename 'in' to 'child' and 'out' to 'parent'. Send a 'ready message or an exception argument list from the child to the parent; adjust the parent accordingly. * tests/containers.scm ("call-with-container, mnt namespace, wrong bind mount"): New test. * tests/guix-environment-container.sh: Add test with --expose=/does-not-exist.
container: Gracefully handle failure to set up user namespaces. * gnu/build/linux-container.scm (run-container): Exit when the parent process doesn't say 'ready.
Merge branch 'master' into gnome-updates
Add (gnu tests) and (gnu build marionette). * gnu/build/marionette.scm, gnu/tests.scm: New files. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. * gnu/system/vm.scm (common-qemu-options): Remove '-serial stdio'.
file-systems: Add 'find-partition-by-luks-uuid'. * gnu/build/file-systems.scm (%luks-endianness, %luks-header-size): New macros. (%luks-magic): New variable. (sub-bytevector, read-luks-header, luks-header-uuid): New procedures. (partition-predicate): Add 'read' parameter; wrap it with 'ENOENT-safe'. Use it instead of 'read-ext2-superblock*'. (read-ext2-superblock*): Remove. (partition-label-predicate, partition-uuid-predicate): Pass 'read-ext2-superblock' as the first argument. (partition-luks-uuid-predicate): New variable. (find-partition-by-luks-uuid): New procedure.
file-systems: Separate ENOENT catching from ext2 superblock reads. * gnu/build/file-systems.scm (ENOENT-safe): New procedure. (read-ext2-superblock*): Rewrite in terms of it.
activation: Copy account skeletons silently. * gnu/build/activation.scm (copy-account-skeletons): Pass #:log to 'copy-recursively'.
system: Allow account skeletons to be directories. * gnu/system/shadow.scm (skeleton-directory): Use 'copy-recursively' instead of 'copy-file'. * gnu/build/activation.scm (copy-account-skeletons): Likewise.
Merge branch 'master' into security-updates
build: reset-timestamps: Include directories. * guix/build/install.scm (reset-timestamps): Reset timestamps of directories as well.
vm: Only pass "-enable-kvm" to qemu if /dev/kvm is present. Fixes <http://bugs.gnu.org/22633>. * gnu/build/vm.scm (load-in-linux-vm): Only pass "-enable-kvm" flag to qemu if "/dev/kvm" is present. * gnu/system/vm.scm (common-kvm-options): Same as above.
linux-modules: Use normalized module names for 'modprobe.blacklist'. * gnu/build/linux-modules.scm (normalize-module-name): New procedure. (file-name->module-name): Use it. (module-black-list): Expound docstring.
file-systems: Spawn a Bournish REPL upon fsck failure. Fixes <http://bugs.gnu.org/22588>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/build/file-systems.scm (check-file-system): Pass %BOURNISH-LANGUAGE as the argument to 'start-repl'. * gnu/services.scm (activation-script): Add (guix build bournish). * gnu/services/base.scm (file-system-shepherd-service)[imported-modules]: Likewise. * gnu/system/linux-container.scm (container-script): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
Rename 'dmd' to 'shepherd' in comments and strings. * build-aux/hydra/demo-os.scm (operating-system)[issue]: Point to shepherd instead of dmd. * ROADMAP: Likewise. * gnu/build/install.scm (directives): Adjust comment.
Rename '/root/etc/dmd' directory and 'do-not-kill' file. * gnu/services/base.scm (%do-not-kill-file): Rename to "/etc/shepherd/do-not-kill". * gnu/build/linux-boot.scm (mount-root-file-system): Rename "/root/etc/dmd" to "/root/etc/shepherd".
Merge branch 'master' into core-updates
build: container: Make 'unprivileged-user-namespace-supported?' more robust. * gnu/build/linux-container.scm (unprivileged-user-namespace-supported?): Only read and check the first character, to cope with a possible newline in the (pseudo-)file.
Merge branch 'master' into core-updates
linux-modules: Support 'modprobe.blacklist' on the command line. * gnu/build/linux-modules.scm (file-name->module-name) (module-black-list): New procedure. * gnu/build/linux-modules.scm (load-linux-module*): Add #:black-list parameter. [black-listed?, load-dependencies]: New procedures. Use them.