vm: Enable QEMU support in the freestanding VM image.
* gnu/system/vm.scm (system-qemu-image): Add 'initrd' field.
linux-initrd: Rename 'qemu-initrd' to 'base-initrd'.
* gnu/system/linux-initrd.scm (qemu-initrd): Rename to...
(base-initrd): ... this.
* gnu/system.scm (<operating-system>)[initrd]: Update accordingly.
* gnu/system/vm.scm (expression->derivation-in-linux-vm,
system-disk-image, virtualized-operating-system): Likewise.
linux-initrd: Disable QEMU networking by default.
* gnu/system/linux-initrd.scm (qemu-initrd): Remove default value for
#:qemu-networking?.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass
#:qemu-networking? #t.
(system-disk-image): Remove #:qemu-networking? #f.
(virtualized-operating-system): Pass #:qemu-networking? #t.
linux-initrd: Make the virtio kernel modules optional.
* gnu/system/linux-initrd.scm (qemu-initrd): Add #:virtio? parameter.
Use it.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass
'qemu-initrd' #:virtio?.
(virtualized-operating-system): Likewise.
system: Add a 'system?' field to user accounts.
* gnu/system/shadow.scm (<user-account>)[system?]: New field.
* gnu/system.scm (user-account->gexp): Add it.
* guix/build/activation.scm (add-user): Add #:system? parameter and
honor it.
(activate-users+groups): Handle the 'system?' part of user tuples.
Pass it to 'add-user'. Don't create PROFILE-DIR when SYSTEM? is
true.
* gnu/services/dbus.scm (dbus-service): Add 'system?' field for
"messagebus" account.
* gnu/services/base.scm (guix-build-accounts): Likewise.
* gnu/services/avahi.scm (avahi-service): Likewise.
system: Install /var/guix/profiles/system-1-link on new systems.
* guix/build/install.scm (directives): Add /var/guix/profiles/system.
(populate-root-file-system): Add 'system' parameter. Create
/var/guix/profiles/system-1-link.
* guix/scripts/system.scm (install): Pass OS-DIR to
'populate-root-file-system'.
* guix/build/vm.scm (initialize-root-partition): Add #:system-directory
parameter, and pass it to 'populate-root-file-system'.
(initialize-hard-disk): Add #:system-directory parameter, and pass it
to 'initialize-root-partition'.
* gnu/system/vm.scm (qemu-image): Add #:os-derivation parameter and pass
it to 'initialize-hard-disk'.
(system-disk-image, system-qemu-image,
system-qemu-image/shared-store): Pass #:os-derivation to 'qemu-image.
system: Support the addition of old entries in the GRUB menu.
* gnu/system.scm (operating-system-grub.cfg): Add 'old-entries'
parameter. Pass it to 'grub-configuration-file'.
* gnu/system/grub.scm (grub-configuration-file): Add #:old-entries
parameter. Honor it.
install: Use udev.
* gnu/system/install.scm (installation-services): Call 'udev-service'.
system: Use the default 'groups' field.
* gnu/system/install.scm (installation-os): Remove 'groups' field.
* build-aux/hydra/demo-os.scm: Likewise.
system: Augment the default set of groups.
* gnu/system/shadow.scm (%base-groups): New variable.
* gnu/system.scm (<operating-system>)[groups]: Use it as the default.
system: Remove useless 'members' field of 'user-group'.
* gnu/system/shadow.scm (<user-group>)[members]: Remove field.
* gnu/system/install.scm (installation-os)[users]: Remove 'members'
fields. Use 'supplementary-groups' for 'guest'.
* build-aux/hydra/demo-os.scm (users): Likewise.
* gnu/services/base.scm (guix-service): Remove 'members' field.
Merge branch 'master' into core-updates
install: Add missing argv[0] in Info invocation.
* gnu/system/install.scm (log-to-info): Add "info" as second argument to
'execl'.
vm: Add #:name parameter for 'system-disk-image'.
* gnu/system/vm.scm (system-disk-image): Add #:name parameter; pass it
to 'qemu-image'.
install: Register the hydra.gnu.org key on the installation image.
* gnu/services/base.scm (hydra-key-authorization): New procedure.
(guix-service): Add #:authorize-hydra-key? parameter; honor it using
'hydra-key-authorization'.
* gnu/system/install.scm (installation-services): Pass
#:authorize-hydra-key? #t.
system: Define '%base-packages' and use it.
* gnu/system.scm (<operating-system>)[packages]: Change default value to
%BASE-PACKAGES.
(%base-packages): New variable.
* gnu/system/install.scm (installation-os): Use it when defining the
'packages' field.
* doc/guix.texi (Using the Configuration System): Use %BASE-PACKAGES in
example. Remove now unneeded module imports. Explain this.
install: Add more useful packages.
* gnu/system/install.scm (installation-os)[packages]: Add isc-dhcp,
net-tools, ddrescue, kbd, and texinfo-4.
gnu: Merge Parted, fdisk, and ddrescue in (gnu packages disk).
* gnu/packages/parted.scm: Rename to...
* gnu/packages/disk.scm: ... this. New file. Merge with...
* gnu/packages/fdisk.scm: ... this; remove file;
* gnu/packages/ddrescue.scm: ... and this; remove file.
* gnu/system/install.scm, gnu/system/vm.scm: Adjust accordingly.
* gnu-system.am (GNU_SYSTEM_MODULES): Remove
gnu/packages/{parted,fdisk,ddrescue}.scm and add
gnu/packages/disk.scm.
system: File system sources can be marked as labels or devices.
* gnu/system/file-systems.scm (<file-system>)[title]: New field.
* gnu/services/base.scm (file-system-service): Add #:title parameter.
In 'start' gexp, use 'canonicalize-device-spec' and honor TITLE.
* gnu/system.scm (other-file-system-services,
operating-system-root-file-system, operating-system-initrd-file):
Adjust accordingly.
* gnu/system/linux-initrd.scm (file-system->spec): Likewise.
* gnu/system/vm.scm (system-disk-image): Add 'title' field for the root
file system.
* guix/build/linux-initrd.scm (mount-file-system): Expect the second
element of SPEC to be the title.
(boot-system)[root-mount-point?, root-fs-type]: Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Select
'canonicalize-device-spec'.
Add (gnu system install).
* gnu/system/install.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.