linux-initrd: Actually create /dev/console.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Add
"dev/console".
hydra: Make USB installation image smaller.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Reduce size of 'usb-image'
to 630 MiB.
derivations: Add #:allowed-references 'derivation' parameter.
* guix/derivations.scm (derivation): Add #:allowed-references
parameter.
[user+system-env-vars]: Honor it.
* tests/derivations.scm ("derivation #:allowed-references, ok",
"derivation #:allowed-references, not allowed",
"derivation #:allowed-references, self allowed",
"derivation #:allowed-references, self not allowed"): New tests.
* doc/guix.texi (Derivations): Document #:allowed-references.
gnu: util-linux: Remove dependency on Perl.
* gnu/packages/linux.scm (util-linux)[source](patches): New field.
* gnu/packages/patches/util-linux-perl.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
linux-initrd: Make more device nodes for SCSI disks and CD-ROM devices.
* guix/build/linux-initrd.scm (make-disk-device-nodes): New procedure.
(make-essential-device-nodes): Use it. Make more devices nodes for
SCSI disks and CD-ROM devices.
linux-initrd: Gracefully handle missing /dev nodes.
* guix/build/linux-initrd.scm (partition-label-predicate): Catch
'system-error' around 'read-ext2-superblock'; return #f upon ENOENT.
hydra: Build the installation image.
* build-aux/hydra/gnu-system.scm (demo-os): New procedure.
(qemu-jobs): Build for both x86_64-linux and i686-linux. Add
'usb-image' job that builds INSTALLATION-OS.
Add (gnu system install).
* gnu/system/install.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
system: Add 'issue' field.
* gnu/system.scm (<operating-system>)[issue]: New field.
(%default-issue): New variable.
(etc-directory): Add #:issue parameter and honor it.
(operating-system-etc-directory): Adjust call accordingly.
* build-aux/hydra/demo-os.scm: Add 'issue' field.
system: Add more options for 'mingetty-service'.
* gnu/services/base.scm (mingetty-service): Add #:auto-login,
#:login-program, and #:login-pause? parameters and honor them.
linux-initrd: Gracefully deal with partitions with no label.
* guix/build/linux-initrd.scm (partition-label-predicate): Check whether
'ext2-superblock-volume-name' returns #f, and return #f if it does.
gnu: Move libarchive to (gnu packages backup).
* gnu/packages/compression.scm (libarchive): Move to...
* gnu/packages/backup.scm (libarchive): ... here.
Import (guix licenses) with #:renamer to avoid conflicting 'zlib'
bindings.
vm: disk-image: Specify the root file system using a label.
* gnu/system/vm.scm (system-disk-image)[root-label]: New variable.
Use it for the root file system, and pass it as #:file-system-label to
'qemu-image'.
linux-initrd: Allow use of volume labels in 'file-system' declarations.
* guix/build/linux-initrd.scm (%ext2-endianness, %ext2-sblock-magic,
%ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name):
New macros.
(read-ext2-superblock, ext2-superblock-uuid,
ext2-superblock-volume-name, disk-partitions,
partition-label-predicate, find-partition-by-label,
canonicalize-device-spec): New procedures.
(mount-file-system): Use 'canonicalize-device-spec' on SOURCE.
(boot-system): Likewise for ROOT.
* doc/guix.texi (Using the Configuration System): Adjust 'file-system'
declaration accordingly.
gnu: Add rdiff-backup.
* gnu/packages/backup.scm (rdiff-backup): New variable.
gnu: Add btar.
* gnu/packages/backup.scm (btar): New variable.
gnu: Add rdup.
* gnu/packages/backup.scm (rdup): New variable.
gnu: Add libarchive.
* gnu/packages/compression.scm (libarchive): New variable.
gnu: Add hdup.
* gnu/packages/backup.scm (hdup): New variable.
hydra: Don't cross-build from MIPS to MIPS.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[same?, either]: New
procedure. Use it in 'remove' call.