gnu: linux-initrd: Make /dev/{mem,kmem}.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
dev/{mem,kmem}.
gnu: xorg-server: Use /var as $localstatedir.
* gnu/packages/xorg.scm (xorg-server): Pass --localstatedir=/var. In
'configure' phase, patch 'hw/xfree86/Makefile.in'.
gnu: vm: Add support for running a VM that shares its store with the host.
* gnu/system/vm.scm (qemu-image): Check whether GUIX is #f.
(operating-system-build-gid, operating-system-default-contents): New
procedures.
(system-qemu-image): Use 'operating-system-build-gid'.
(system-qemu-image/shared-store,
system-qemu-image/shared-store-script): New procedures.
* gnu/system.scm: Add missing exports.
gnu: linux-initrd: Allow the root file system to be volatile.
* gnu/system/linux-initrd.scm (qemu-initrd): Add 'volatile-root?'
parameter.
* guix/build/linux-initrd.scm (boot-system): Likewise. Honor it.
gnu: linux: Really build 9p/virtio modules.
* gnu/packages/linux.scm (linux-libre): Add CONFIG_NET_9P and
CONFIG_9P_FS.
gnu: linux-initrd: Recognize 9p file systems.
* gnu/system/linux-initrd.scm (qemu-initrd)[virtio-9p-modules]: New
variable.
[linux-modules]: Append VIRTIO-9P-MODULES when a 9p file system is in
MOUNTS.
* guix/build/linux-initrd.scm (mount-qemu-9p): New procedure.
(boot-system): Recognize '9p' in MOUNTS, and use 'mount-qemu-9p'.
gnu: linux-initrd: Match kernel module file names exactly.
* gnu/system/linux-initrd.scm (expression->initrd)[string->regexp]: New
procedure. Use it in the call to 'find-files'.
gnu: linux-initrd: Properly distinguish between /dev/sda* and /dev/vda*.
* guix/build/linux-initrd.scm (make-essential-device-nodes): Rename
devices with major = 8 to /dev/sda*. Make /dev/vda* devices.
* gnu/system/vm.scm (qemu-image): Change '/dev/vda' to '/dev/sda'.
* gnu/system.scm (operating-system-derivation): Likewise.
gnu: linux-initrd: Start a REPL when the root could not be mounted.
* guix/build/linux-initrd.scm (boot-system): Catch errors when mounting
ROOT and call 'start-repl' upon error.
gnu: linux-libre: Build more virtio modules.
* gnu/packages/linux.scm (linux-libre): Append CONFIG_NET_9P_VIRTIO and
CONFIG_VIRTIO_{NET,BLK,BALLOON} to '.config'.
gnu: vm: Run QEMU with '-enable-kvm'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass QEMU
'-enable-kvm'.
gnu: Add GNU Octave.
* gnu/packages/maths.scm (octave): New variable.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu: linux-libre: Build virtio modules.
* gnu/packages/linux.scm (linux-libre): Build modules matching
CONFIG.*VIRTIO.
gnu: linux-libre: Upgrade to 3.13.
* gnu/packages/linux.scm (linux-libre): Upgrade to 3.13.
gnu: gnunet: Add gnurl 7.34.0.
* gnu/packages/gnunet.scm (gnurl): New variable. Thanks to Zerwas for
the initial recipe.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu: libgcrypt: Upgrade to 1.6.1.
* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.6.1.
gnu: linux-initrd: Factorize boot code.
* guix/build/linux-initrd.scm (boot-system): New procedure.
* gnu/system/linux-initrd.scm (qemu-initrd): Add keyword parameters
'guile-modules-in-chroot?' and 'mounts'. Change builder to simply
call 'boot-system'.
(gnu-system-initrd): Change to a simple call to 'qemu-initrd'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Call
'qemu-initrd' with #:guile-modules-in-chroot?.
gnu: Lower initrd makers from packages to monadic procedures.
* gnu/packages/linux-initrd.scm: Remove.
* gnu/system/linux-initrd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/system.scm (<operating-system>): Change default 'initrd' value
to (gnu-system-initrd).
(operating-system-derivation): Bind 'operating-system-initrd'. Pass
'menu-entry' an initrd file name instead of a package.
* gnu/system/grub.scm (grub-configuration-file): Expect 'initrd' to be
file name.
monads: Add 'imported-modules' and 'compiled-modules'.
* guix/monads.scm (package-file): Fix typo.
(imported-modules, compiled-modules): New procedures.
gnu: qemu-initrd: Adjust to allow booting with a non-empty /root.
* gnu/packages/linux-initrd.scm (qemu-initrd): Use 'mkdir-p' instead of
'mkdir' for /root/xchg and /root/{share,lib}. When TO-LOAD is a
symlink, resolve it.
(gnu-system-initrd): Fix typo in message.