summaryrefslogtreecommitdiff
path: root/gnu/system/vm.scm
AgeCommit message (Collapse)Author
2021-09-07Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-08-29Migrate to the new 'targets' field of bootloader-configuration.Maxim Cournoyer
The old 'target' field is deprecated; adjust the sources to use the new 'targets' one instead. * doc/guix-cookbook.texi<target>: Replace by 'targets'. * gnu/bootloader/grub.scm: Likewise. * gnu/installer/parted.scm: Likewise. * gnu/machine/digital-ocean.scm: Likewise. * gnu/system/examples/asus-c201.tmpl: Likewise * gnu/system/examples/bare-bones.tmpl: Likewise * gnu/system/examples/bare-hurd.tmpl: Likewise * gnu/system/examples/beaglebone-black.tmpl: Likewise * gnu/system/examples/desktop.tmpl: Likewise * gnu/system/examples/docker-image.tmpl: Likewise * gnu/system/examples/lightweight-desktop.tmpl: Likewise * gnu/system/examples/vm-image.tmpl: Likewise * gnu/system/examples/yggdrasil.tmpl: Likewise * gnu/system/hurd.scm: Likewise * gnu/system/images/hurd.scm: Likewise * gnu/system/images/novena.scm: Likewise * gnu/system/images/pine64.scm: Likewise * gnu/system/images/pinebook-pro.scm: Likewise * gnu/system/images/rock64.scm: Likewise * gnu/system/install.scm: Likewise * gnu/system/vm.scm: Likewise * gnu/tests.scm: Likewise * gnu/tests/ganeti.scm: Likewise * gnu/tests/install.scm: Likewise * gnu/tests/nfs.scm: Likewise * gnu/tests/telephony.scm: Likewise * tests/boot-parameters.scm: Likewise * tests/system.scm: Likewise
2021-08-15Update copyright/name notices for Christine Lemmer-Webber.Christopher Lemmer Webber
* doc/guix-cookbook.texi: Update copyright/name for Christine Lemmer-Webber. * gnu/build/image.scm: Likewise. * gnu/build/vm.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/assembly.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/backup.scm: Likewise. * gnu/packages/check.scm: Likewise. * gnu/packages/databases.scm: Likewise. * gnu/packages/emacs-xyz.scm: Likewise. * gnu/packages/finance.scm: Likewise. * gnu/packages/gnupg.scm: Likewise. * gnu/packages/guile-xyz.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/haskell-xyz.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/mail.scm: Likewise. * gnu/packages/password-utils.scm: Likewise. * gnu/packages/perl.scm: Likewise. * gnu/packages/python-web.scm: Likewise. * gnu/packages/python-xyz.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/sphinx.scm: Likewise. * gnu/packages/ssh.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/services/networking.scm: Likewise. * gnu/system/vm.scm: Likewise.
2021-07-18Merge branch 'master' into core-updatesLudovic Courtès
2021-06-25vm: Update deprecated QEMU option syntax.Tobias Geerinckx-Rice
Fixes: warning: short-form boolean option 'readonly' deprecated Please use readonly=on instead * gnu/system/vm.scm (common-qemu-options): Use it instead.
2021-05-22Merge branch 'master' into core-updatesMarius Bakke
2021-05-18Revert "vm: Autoload (gnu build vm)."Tobias Geerinckx-Rice
This reverts commit a67c00f4f7ee0a70fce14a7e1907cce332c85813 in an attempt to fix <http://issues.guix.gnu.org/48496>.
2021-05-17vm: Remove unused imports.Ludovic Courtès
* gnu/system/vm.scm (gnu): Remove unused imports.
2021-05-17vm: Autoload (gnu build vm).Ludovic Courtès
* gnu/system/vm.scm: Autoload (gnu build vm), which was pulling in (sqlite3).
2021-04-16Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
Conflicts: gnu/local.mk gnu/packages/boost.scm gnu/packages/chez.scm gnu/packages/compression.scm gnu/packages/crates-io.scm gnu/packages/docbook.scm gnu/packages/engineering.scm gnu/packages/gcc.scm gnu/packages/gl.scm gnu/packages/gtk.scm gnu/packages/nettle.scm gnu/packages/python-check.scm gnu/packages/python-xyz.scm gnu/packages/radio.scm gnu/packages/rust.scm gnu/packages/sqlite.scm guix/build-system/node.scm
2021-04-12system: vm: Add a memory-size argument to system-docker-image.Mathieu Othacehe
* gnu/system/vm.scm (system-docker-image): Add a memory-size argument and pass it to expression->derivation-in-linux-vm.
2021-04-08system: vm: Set a larger value for the msize option of the 9p file system.Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/47225>. * gnu/system/vm.scm (%default-msize-value): New variable. (%linux-vm-file-systems): Use it as the value of the msize option. (mapping->file-system): Likewise. Reported-by: Leo Famulari <leo@famulari.name>
2021-03-06Merge branch 'master' into core-updatesChristopher Baines
2021-02-25system: vm: Use Guile 3.0 in Docker images.Ludovic Courtès
* gnu/system/vm.scm (system-docker-image): Use GUILE-3.0.
2021-02-17scripts: system: Remove 'vm-image' command.Mathieu Othacehe
Remove the 'vm-image' command that has been superseded by the 'image' command. * gnu/system/vm.scm (system-qemu-image): Remove it. * guix/scripts/system.scm (system-derivation-for-action): Mark 'vm-image' command as deprecated and use the image API to produce the VM image. (perform-action, show-help): Adapt accordingly. * tests/guix-system.sh: Ditto. * doc/guix.texi (Invoking guix system, Running Guix in a VM): Ditto. * etc/completion/fish/guix.fish: Ditto. * etc/completion/zsh/_guix: Ditto.
2020-11-29Merge remote-tracking branch 'origin/master' into core-updatesChristopher Baines
2020-11-17system: vm: Remove unused system-disk-image-in-vm.Maxim Cournoyer
* gnu/system/vm.scm (system-disk-image-in-vm): Remove. Reported-by: Ludovic Courtès <ludo@gnu.org>
2020-11-10vm: expression->derivation-in-linux-vm: Run in a UTF-8 locale.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add calls to 'setenv' and 'setlocale'.
2020-11-10vm: 'system-qemu-image' forces the use of i386/BIOS GRUB.Ludovic Courtès
Fixes <https://bugs.gnu.org/44511>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * gnu/system/vm.scm (system-qemu-image): Add 'bootloader' field to OS.
2020-11-05vm: system-qemu-image: Fix type error, remove more actual file systems.Ludovic Courtès
* gnu/system/vm.scm (system-qemu-image)[file-systems-to-keep]: Check whether SOURCE is a string before calling 'string-prefix?'. Remove UUIDs and file system labels as well.
2020-10-16Remove the last vestiges of GuixSD.Tobias Geerinckx-Rice
* gnu/build/vm.scm (load-in-linux-vm): Rename the RNG. * gnu/system/vm.scm (common-qemu-options): Likewise. (system-docker-image): Rename the ROOT-DIRECTORY. * gnu/packages/crypto.scm (eschalot)[arguments]: Use a different arbitrary string. * gnu/packages/wicd.scm (wicd)[arguments]: Remove unused configure flag. * gnu/packages/xorg.scm (xorg-server): Set a more accurate OS vendor.
2020-08-31vm: Disable caching for writable file system mappings.Ludovic Courtès
Fixes <https://bugs.gnu.org/43062>. Reported by elaexuotee@wilsonb.com. * gnu/system/vm.scm (mapping->file-system)[options]: Disable loose caching when WRITABLE? is true.
2020-07-11Revert "vm: Use virtio network driver."Marius Bakke
This allows users to specify network interface settings with 'guix system vm' without having to create a new NIC. Fixes <https://bugs.gnu.org/42252>. Reported by Christopher Lemmer Webber <cwebber@dustycloud.org>. This reverts commit 5379392731b52eef22b4936637eb592b93e04318.
2020-06-09system: vm: Add missing imported module.Royce Strange
* gnu/system/vm.scm (qemu-image): Import missing (gnu build hurd-boot) module. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2020-06-08hurd-boot: Further cleanup of "rc".Jan (janneke) Nieuwenhuizen
* gnu/packages/hurd.scm (hurd-rc-script): Move implementation to ... * gnu/build/hurd-boot.scm (boot-hurd-system): ...here, new file. * gnu/build/linux-boot.scm (make-hurd-device-nodes): Move there likewise. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-06-06vm: Shared-store script runs the native QEMU and Bash.Ludovic Courtès
* gnu/system/vm.scm (system-qemu-image/shared-store-script): Use #+ for QEMU and BASH.
2020-06-06vm: <virtual-machine> compiler honors system and target.Ludovic Courtès
* gnu/system/vm.scm (system-qemu-image/shared-store): Add #:system and #:target. Pass it down. (system-qemu-image/shared-store-script): Likewise. (virtual-machine-compiler): Likewise.
2020-06-06vm: 'qemu-image' preserves the cross-compilation target of the OS.Ludovic Courtès
* gnu/system/vm.scm (qemu-image)[preserve-target, inputs*]: New variables. In gexp, use INPUTS* instead of INPUTS. Wrap OS and BOOTCFG-DRV in 'preserve-target'. Pass INPUTS* instead of INPUTS as the #:references-graphs.
2020-06-06vm: 'qemu-image' uses the native partitioning tools and bootloader.Ludovic Courtès
* gnu/system/vm.scm (qemu-image): Use #+ for Parted, the bootloader, etc.
2020-06-06vm: 'expression->derivation-in-linux-vm' always returns a native build.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove #:target. [builder]: Use #+. Don't pass #:target-arm32? and #:target-aarch64? to 'load-in-linux-vm'. Pass #:target #f to 'gexp->derivation'. (qemu-image): Adjust accordingly. * gnu/build/vm.scm (load-in-linux-vm): Remove #:target-aarch64? and #:target-arm32?. Define them as local variables.
2020-05-16vm: Use 'let-system'.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm)[check]: New macro. [builder]: Use 'let-system' and 'check' instead of referencing '%current-system' and '%current-target-system'.
2020-05-08Merge branch 'core-updates'Marius Bakke
2020-05-07guix system: 'docker-image' honors '--network'.Ludovic Courtès
* gnu/system/vm.scm (system-docker-image): Add #:shared-network? and pass it to 'containerized-operating-system'. (qemu-image): * guix/scripts/system.scm (system-derivation-for-action): Pass #:shared-network? to 'system-docker-image'. * doc/guix.texi (Invoking guix system): Document it.
2020-05-05Merge branch 'master' into core-updatesMarius Bakke
2020-05-05vm: Remove obsolete procedures.Mathieu Othacehe
* gnu/build/vm.scm (install-efi, make-iso9660-image): Remove those procedures that are now implemented in (gnu build image) module, (initialize-hard-disk): remove efi support. * gnu/system/vm.scm (iso9660-image): Remove it, (qemu-image): adapt it to remove ISO9660 support.
2020-05-05image: Add a new API.Mathieu Othacehe
Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This is quite fragile, very slow, and almost unusable without KVM. For all these reasons, add support for host image generation. This implies the use new image generation mechanisms. - Raw disk images: images of partitions are created using tools such as mke2fs and mkdosfs depending on the partition file-system type. The partition images are then assembled into a final image using genimage. - ISO9660 images: the ISO root directory is populated within the store. GNU xorriso is then called on that directory, in the exact same way as this is done in (gnu build vm) module. Those mechanisms are built upon the new (gnu image) module. * gnu/image.scm: New file. * gnu/system/image.scm: New file. * gnu/build/image: New file. * gnu/local.mk: Add them. * gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm. * gnu/ci.scm (qemu-jobs): Adapt to new API. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Ditto.
2020-05-05system: vm: Move operating-system-uuid.Mathieu Othacehe
* gnu/system/vm.scm (operating-system-uuid): Move to ... * gnu/system.scm: ... here.
2020-04-26Merge branch 'master' into core-updatesMarius Bakke
2020-04-26vm: Remove unused import.Marius Bakke
* gnu/system/vm.scm: Do not import (gnu packages make-bootstrap).
2020-04-11vm: Make the device node procedure a parameter.Ludovic Courtès
* gnu/build/vm.scm (root-partition-initializer): Add #:make-device-nodes parameter and use it. * gnu/system/vm.scm (qemu-image): Add #:device-node parameter. Pass #:make-device-nodes to 'root-partition-initializer'.
2020-04-11vm: 'qemu-image' can pass options to the 'mkfs' command.Ludovic Courtès
* gnu/build/vm.scm (<partition>)[file-system-options]: New field. (create-ext-file-system, create-fat-file-system) (format-partition): Add #:options and honor it. (initialize-partition): Pass #:options to 'format-partition'. * gnu/system/vm.scm (qemu-image): Add #:file-system-options and use it for the root partition.
2020-04-11vm: 'qemu-image' accepts a list of extra populate directives.Ludovic Courtès
* gnu/build/vm.scm (root-partition-initializer): Add #:extra-directives parameter and pass it to 'populate-root-file-system'. * gnu/system/vm.scm (qemu-image): Add #:extra-directives parameter and pass it to 'root-partition-initializer'.
2020-04-10vm: Use virtio network driver.Marius Bakke
This fixes a regression introduced in 8e53fe2b91d2776bc1529e7b34967c8f1d9edc32 where 'guix system vm' would no longer be using virtio. * gnu/system/vm.scm (common-qemu-options): Add "-nic user,model=virtio-net-pci".
2020-04-10vm: 'system-disk-image' honors #:substitutable? for ISO9660 images.Ludovic Courtès
This is a followup to a328f66a9e16d7bae765d8bc088e4a97037e6e2b. * gnu/system/vm.scm (iso9660-image): Add #:substitutable? and pass it to 'expression->derivation-in-linux-vm'. (system-disk-image): Pass #:substitutable? to 'iso9660-image'.
2020-04-08vm: Allow images to be marked as non-substitutable.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add #:substitutable? parameter. Pass it to 'gexp->derivation'. (qemu-image): Add #:substitutable? and pass it to 'expression->derivation-in-linux-vm'. (system-disk-image): Add #:substitutable? and pass it to 'qemu-image'.
2020-03-26vm: Distinguish between success and failure of the guest code.Ludovic Courtès
Fixes <https://bugs.gnu.org/34276>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Produce '/xchg/.exit-status' file upon success. * gnu/build/vm.scm (load-in-linux-vm): Check for 'xchg/.exit-status' once QEMU has completed and respond accordingly.
2020-03-10vm: Compute UUIDs truly deterministically.Ludovic Courtès
This is a followup to 1540075c790dfaeff52c93392f2fc63b9e23b77e. The mistake had no effect on prior Guile versions but it's visible since Guile 3.0.1 and the fix for <https://bugs.gnu.org/39634>. * gnu/system/vm.scm (operating-system-uuid): Hash a list of 'file-system-digest' values, not the 'file-system-type' procedure.
2020-03-02file-systems: Add a 'file-system-device->string' procedure.Maxim Cournoyer
* gnu/system/file-systems.scm (file-system-device->string): New procedure. * gnu/system.scm (bootable-kernel-arguments): Use it. * gnu/system/vm.scm (operating-system-uuid): Likewise. * guix/scripts/system.scm (display-system-generation): Likewise.
2019-12-18gnu: Remove uses of deprecated Qemu network configuration.Marius Bakke
* gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from ARCH-SPECIFIC-FLAGS to the Qemu command line. Use the "-nic" option of Qemu instead of "-device" and "-net". * gnu/system/vm.scm (common-qemu-options): Do not add a '-net' command. (virtual-machine-compiler): Use "-nic user,..." instead of "-net". * doc/guix.texi (Installing Guix in a VM, Invoking guix system, Running Guix in a VM): Do the same for examples.
2019-12-01system: vm: Support cross-compilation.Mathieu Othacehe
* gnu/system.scm (system-linux-image-file-name): Add support for cross-built systems. Remove system argument that was ignored, (operating-system-kernel-file): adapt by removing ignored os argument. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add target argument and turn inputs into native-inputs. Pass target to qemu-command and gexp->derivation calls. (iso9660-image): Add target argument and pass it to expression->derivation-in-linux-vm. Remove qemu from inputs as it is not necessary. (qemu-image): Add target argument, also remove qemu from inputs. Pass target argument to expression->derivation-in-linux-vm call.