linux-initrd: Add modules for ATA controllers by default. Reported by th3kent on #guix. * gnu/system/linux-initrd.scm (base-initrd)[linux-modules]: Add pata_acpi.ko and pata_atiixp.ko.
gnu: Introduce (gnu artwork) module. * gnu/artwork.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/services/xorg.scm: Use it. (%artwork-repository): Remove. * gnu/system/grub.scm: Use it. (%artwork-repository): Remove.
services: Add 'auto-start?' field to <service>. * gnu/services.scm (<service>)[auto-start?]: New field. * gnu/services/dmd.scm (dmd-configuration-file): Honor it. * gnu/system/install.scm (cow-store-service): Add 'auto-start?' field.
doc: Mention "audio" and "video" groups in configuration template. * gnu/system/os-config.tmpl (users): Add "audio" and "video" groups and explain.
services: Add 'user-unmount-service' as an essential service. * gnu/services/base.scm (user-unmount-service): New procedure. * gnu/system.scm (essential-services): Use it. * gnu/system/install.scm (cow-store-service): Mention it in comment.
install: Add GRUB to the set of global packages. * gnu/system/install.scm (installation-os)[packages]: Add GRUB.
system: grub: Adjust default theme color. * gnu/system/grub.scm (%default-theme)[color-highlight]: Change foreground to cyan, as suggested by Felipe López.
system: grub: Add preliminary support for themes. * gnu/system/grub.scm (<grub-image>, <grub-theme>): New record types. (%artwork-repository, %background-image): New variables. (<grub-configuration>)[theme]: New field. (svg->png, resize-image, grub-background-image, eye-candy): New procedures. (grub-configuration-file): Use 'eye-candy' and add it in BUILDER.
vm: The 'run-vm' scripts now passes its arguments to QEMU. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Add "$@" at the end of the script. (common-qemu-options): Remove trailing newline. * doc/guix.texi (Invoking guix system): Document it.
vm: Fix 'vm --full-boot' to produce a sufficient disk image. * gnu/system/vm.scm (system-qemu-image/shared-store): Add #:disk-image-size and #:full-boot? parameters and honor them. Pass '#:copy-inputs? full-boot?', and change #:inputs argument. * guix/scripts/system.scm (system-derivation-for-action): Pass #:disk-image-size to 'system-qemu-image/shared-store'. * doc/guix.texi (Invoking guix system): Mention use of '--image-size' in conjunction with '--full-boot'.
vm: Support 'guix system vm --full-boot'. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Add #:full-boot? parameter and honor it. * guix/scripts/system.scm (system-derivation-for-action): Likewise. (perform-action): Likewise. (show-help): Document '--full-boot'. (%options): Add '--full-boot'. (guix-system): Add #:full-boot? argument in call to 'perform-action'. * doc/guix.texi (Invoking guix system): Document it.
vm: Factorize common QEMU options. * gnu/system/vm.scm (common-qemu-options): New procedure. (system-qemu-image/shared-store-script): Use it.
vm: Remove unused procedure. * gnu/system/vm.scm (input->name+output): Remove. Its last user disappeared in commit b53833b.
vm: Disable swap devices in virtualized OSes. * gnu/system/vm.scm (virtualized-operating-system): Add 'swap-devices' field.
linux-initrd: Adjust VM code and doc to new 'base-initrd' signature. This fixes regressions introduced in de1c158 ("system: Add support for boot-time mapped devices."). * doc/guix.texi (Initial RAM Disk): Adjust example with custom use of 'base-initrd'. Document #:mapped-devices parameter of 'base-initrd'. * gnu/system/vm.scm (system-disk-image, system-qemu-image, virtualized-operating-system): Adjust call to 'base-initrd' to new signature.
system: Add support for boot-time mapped devices. * gnu/build/linux-boot.scm (boot-system): Add #:pre-mount parameter and honor it. * gnu/system/linux-initrd.scm (base-initrd): Add #:mapped-devices parameter. Add 'device-mapping-commands' variable, and use it to build the #:pre-mount argument of 'boot-system'. * gnu/system.scm (mapped-device-user, operating-system-user-mapped-devices, operating-system-boot-mapped-devices): New procedures. (device-mapping-services): Use 'operating-system-user-mapped-devices' instead of 'operating-system-mapped-devices'. (operating-system-initrd-file): Call the initrd with #:mapped-devices.
system: Add udev rule for /dev/kvm. * gnu/services/base.scm (kvm-udev-rule): New procedure. (udev-service): Use it, and add it to RULES. (guix-build-accounts): Add "kvm" to the 'supplementary-groups' field. * gnu/system/shadow.scm (%base-groups): Add "kvm".
linux-initrd: Remove now obsolete #:guile-modules-in-chroot? parameter. * gnu/build/linux-boot.scm (boot-system): Remove #:guile-modules-in-chroot? and related code. * gnu/system/linux-initrd.scm (base-initrd): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove #:guile-modules-in-chroot? argument in 'base-initrd' call.
system: Define 'device-mapping-kind', and add a 'close' procedure. * gnu/system/file-systems.scm (<mapped-device-type>): New record type. (<mapped-device>)[command]: Remove field. [type]: New field. * gnu/services/base.scm (device-mapping-service): Rename 'command' parameter to 'open'. Add 'close' parameter and honor it. * gnu/system.scm (luks-device-mapping): Rename to... (open-luks-device): ... this. (close-luks-device): New procedure. (luks-device-mapping): New variable. (device-mapping-services): Get the type of MD, and pass its 'open' and 'close' fields to 'device-mapping-service'.
system: Add "input" to '%base-groups'. * gnu/system/shadow.scm (%base-groups): Add "input" group.