me
/
guix
Archived
1
0
Fork 0
Commit Graph

32 Commits (900ef8fb1ea8a85966a1a81ea01a9f3670fc8c58)

Author SHA1 Message Date
Maxim Cournoyer 77c2f4e206
services/qemu-binfmt: Use the F flag and the static output of QEMU.
Fixes <https://issues.guix.gnu.org/36117>.

Before this change, the 'binfmt_misc' entries registered for QEMU would not be
usable in container contexts outside of guix-daemon (without manually bind
mounting file names).

For example:

$ docker run --rm arm32v7/debian true
standard_init_linux.go:207: exec user process caused "no such file or directory"

After this change, any container can make use of the QEMU binfmt_misc
registrations, as their corresponding QEMU static binaries are fully
pre-loaded by the kernel.

* gnu/services/virtualization.scm (<qemu-platform>): Define using
'define-record-type*'.
[flags]: New field, which defaults to "F" (fix binary).
(%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus, %ppc, %ppc64)
(%ppc64le, %m68k, %mips, %mipsel, %mipsn32, %mipsn32el, %mips64, %mips64el)
(%riscv32, %riscv64, %sh4, %sh4eb, %s390x, %aarch64, %hppa): Adjust.
(qemu-binfmt-guix-chroot): Remove variable.
(qemu-binfmt-service-type): Remove the qemu-binfmt-guix-chroot extension.
* gnu/services/qemu-binfmt (qemu-platform->binfmt):  Use the static output of
QEMU.
* doc/contributing.texi (Submitting Patches): Update doc.
* doc/guix.texi (Virtualization Services): Update doc.
2021-03-15 18:00:35 -04:00
Stefan d4f5ea502d
services: qemu-binfmt: 'guix-support?' defaults to #t.
* gnu/services/virtualization.scm (qemu-binfmt-service-type)[guix-support?]:
Change the default from #f to #t.
* doc/guix.texi (Transparent Emulation with QEMU): Change the default of
‘guix-support?’ from #f to #t.  Describe the implication of setting it to #f.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-01-16 22:38:17 +01:00
Jan (janneke) Nieuwenhuizen 5b785b2a62
services: hurd-vm: Respect hurd-vm-configuration's disk-size.
This is a follow-up to commit 859b362f81.

* gnu/services/virtualization.scm (hurd-vm-disk-image): Use diks-size from
config to set image's size.
2021-01-14 20:18:09 +01:00
Ludovic Courtès 859b362f81
services: hurd-vm: Avoid circular dependency with (gnu system images hurd).
* gnu/services/virtualization.scm (hurd-vm-disk-image): Use
'lookup-image-type-by-name' instead of referring to 'hurd-disk-image'
from (gnu system images hurd).
2020-12-07 12:48:26 +01:00
Ludovic Courtès 3b6e4e5fd0
services: guix: Make /etc/guix/acl really declarative by default.
Fixes <https://bugs.gnu.org/39819>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* gnu/services/base.scm (substitute-key-authorization): Symlink
DEFAULT-ACL to /etc/guix/acl unconditionally.  Add code to optionally
back up /etc/guix/acl if it was possibly modified by hand.
* doc/guix.texi (Base Services): Clarify the effect of setting
'authorize-keys?' to true.  Mention the backup.  Give an example showing
how to authorize substitutes from another server.
2020-10-25 01:06:10 +02:00
Ludovic Courtès cf197bff6a
services: hurd-vm: Add 'gdb-minimal' to the default OS.
* gnu/services/virtualization.scm (%hurd-vm-operating-system)[packages]:
New field.
2020-10-09 23:59:14 +02:00
Jan (janneke) Nieuwenhuizen 04a459a069
services: hurd-vm: Add childhurd user to kvm group.
This is a follow-up to commit d692ebf980.

* gnu/services/virtualization.scm (%hurd-vm-accounts)[supplementary-groups]:
Add ’kvm’.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use #:group
"kvm"
2020-09-30 12:30:28 +02:00
Mathieu Othacehe 2f1f7b6667
services: virtualization: Use a compressed qcow2 hurd disk-image.
* gnu/services/virtualization.scm (hurd-vm-disk-image): Use 'compressed-qcow2
format.
2020-09-30 10:47:58 +02:00
Ludovic Courtès 59261a22f9
services: secret-service: Add initial client/server handshake.
This allows the client running on the host to know when it's actually
connect to the server running in the guest.  Failing that, the client
would connect right away to QEMU and send secrets even though the server
is not running yet in the guest, which is unreliable.

* gnu/build/secret-service.scm (secret-service-send-secrets): Add
 #:handshake-timeout.  Read from SOCK an initial message from the
server.  Return #f on error.
(secret-service-receive-secrets): Send 'secret-service-server' message
to the client.  Close SOCK upon timeout.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): 'start'
method returns #f when 'secret-service-send-secrets' returns #f.
2020-09-29 21:56:27 +02:00
Ludovic Courtès e352706ad3
services: secret-service: Move instance last in the list of services.
* gnu/services/virtualization.scm (secret-service-operating-system): Add
the SECRET-SERVICE-TYPE instance to the end of the list.
2020-09-29 21:56:27 +02:00
Ludovic Courtès 1edb7c7eec
services: hurd-vm: Pass "-no-reboot" when spawning the Hurd VM.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]:
Add "--no-reboot".
2020-09-29 21:56:27 +02:00
Ludovic Courtès 37283f9f3e
services: hurd-vm: Initialize the guest's SSH/Guix keys at activation time.
* gnu/services/virtualization.scm (initialize-hurd-vm-substitutes)
(hurd-vm-activation): New procedures.
(hurd-vm-service-type)[extensions]: Add ACTIVATION-SERVICE-TYPE
extension.
* doc/guix.texi (Transparent Emulation with QEMU): Mention GNU/Hurd.
(The Hurd in a Virtual Machine): Explain which files are automatically
installed and mention offloading.
2020-09-29 21:56:27 +02:00
Ludovic Courtès 8ac318068b
services: hurd-vm: Check whether /dev/kvm exists at run time.
This change allows a childhurd to run within Guix System in a VM.

* gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]:
Stage the 'file-exists?' call.
2020-09-29 21:56:26 +02:00
Ludovic Courtès dabb00ffee
services: childhurd: Tweak description.
* gnu/services/virtualization.scm (hurd-vm-service-type)[description]:
Mention "childhurd".
2020-09-29 21:56:26 +02:00
Ludovic Courtès d692ebf980
services: hurd-vm: Run QEMU as an unprivileged user.
Until qemu was running as "root", which is unnecessary.

* gnu/services/virtualization.scm (%hurd-vm-accounts): New variable.
(hurd-vm-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension.
2020-09-29 21:56:26 +02:00
Jan (janneke) Nieuwenhuizen 18a9c16b5e
services: childhurd: Always include the secret-service.
* gnu/services/virtualization.scm (secret-service-operating-system): New
procedure.
(hurd-vm-disk-image): Use it to ensure a Childhurd always includes the
secret-service.
(%hurd-vm-operating-system): Remove secret-service.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-09-02 07:24:15 +02:00
Jan (janneke) Nieuwenhuizen 01cefb7a57
services: childhurd: Support installing secrets from the host.
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Add
secret-service.
(hurd-vm-shepherd-service): Use it to install secrets.
* doc/guix.texi (The Hurd in a Virtual Machine): Document it.
2020-09-01 16:06:38 +02:00
Jan (janneke) Nieuwenhuizen ec32d4f291
services: Add secret-service-type.
This adds a "secret-service" that can be added to a Childhurd VM to receive
out-of-band secrets (keys) sent from the host.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>

* gnu/services/virtualization.scm (secret-service-activation): New procedure.
(secret-service-type): New variable.
* gnu/build/secret-service.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-09-01 16:06:38 +02:00
Jan (janneke) Nieuwenhuizen e1f2f3df84
services: virtualization: Export hurd-vm-configuration accessors.
* gnu/services/virtualization.scm (hurd-vm-id, hurd-vm-options): Rename export
to ...
(hurd-vm-configuration-id, hurd-vm-configuration-options): ... these correct
accessor names.
(hurd-vm-configuration?, hurd-vm-configuration-os, hurd-vm-configuration-qemu,
hurd-vm-configuration-image, hurd-vm-configuration-disk-size,
hurd-vm-configuration-memory-size, hurd-vm-configuration-options,
hurd-vm-configuration-id, hurd-vm-configuration-net-options): Export record
predicate and accessors.
2020-06-28 23:05:35 +02:00
Marius Bakke e30cf11bb0
services: childhurd: Adjust for hurd-disk-image move.
This is a follow-up to commit b904b59ce5.

* gnu/services/virtualization.scm: Import (gnu system images hurd).
2020-06-25 00:13:31 +02:00
Jan (janneke) Nieuwenhuizen b7249aa472
services: childhurd: Support more than one instance.
* gnu/services/virtualization.scm (<hurd-vm-configuration>)[options]: Remove
"--hda" option.
[id,net-options]: New fields.
(hurd-vm-net-options): New procedure.  Parameterize port forwarding with ID.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use them.
Parameterize provision with ID, if set.  Hardcode "--hda" option for image.
* doc/guix.texi (Virtualization Services): Document new fields.  Update for
hardcoding of "--hda".
2020-06-21 12:51:36 +02:00
Jan (janneke) Nieuwenhuizen 5e9cf93364
services: Add 'hurd-vm service-type'.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service,
hurd-vm-disk-image): New procedures.
(%hurd-vm-operating-system, hurd-vm-service-type): New variables.
(<hurd-vm-configuration>): New record type.
* doc/guix.texi (Virtualization Services): Document it.
* gnu/services/shepherd.scm (scm->go): Use let-system, remove FIXME.  Fixes
fixes cross-building of shepherd modules for the Hurd image.
2020-06-14 18:38:44 +02:00
Vagrant Cascadian 4a0dda74fc
services: libvirt-configuration: Fix grammar of "allows to select" to "allows
selecting".

* gnu/services/virtualization (libvirt-configuration): Fix grammar.
2020-04-12 13:04:34 -07:00
Vagrant Cascadian 3d0c79186c
services: virtualization: Add riscv32 and riscv64 to qemu platforms.
* gnu/services/virtualization (%riscv32): New variable.
  (%riscv64): New variable.
  (%qemu-platforms): Add riscv32 and riscv64.
2020-02-01 16:40:41 -08:00
Miguel Ángel Arruga Vivas 2dfb9ba406
services: libvirtd: Provide ip binary at runtime.
* gnu/services/virtualization.scm (libvirt-shepherd-service): Add sbin to
the PATH variable, as ip binary is installed there.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-11-05 15:13:15 +01:00
Christopher Baines b64fa7f062
services: virtualization: Change libvirtd use syslog by default.
As defaulting by stderr, along with the shepherd service not directing the
output to a log file makes seeing the output difficult, compared to logging to
syslog.

* gnu/services/virtualization.scm (libvirt-configuration)[log-outputs]: Change
default from "3:stderr" to "3:syslog:libvirtd".
2019-09-21 17:40:04 +01:00
宋文武 5df412bfe6
services: libvirtd: Use '/run/current-system/profile/bin' as PATH.
This is a followup to ef640db2f5.

* gnu/services/virtualization.scm (libvirt-shepherd-service): Set
'#:environment-variables' for 'make-forkexec-constructor'.
2019-09-11 23:12:02 +08:00
宋文武 ef640db2f5
gnu: libvirt: Don't wrap with PATH.
This reverts commit 903e051a71 to fix
<https://bugs.gnu.org/31365>.  The full path of the 'ip' command is already
embedded, and we want to search 'qemu' in PATH.

* gnu/packages/virtualization.scm (libvirt): Remove 'wrap-libvirtd phase.  Add
configure flags to run qemu as 'nobody:kvm'.
* gnu/services/virtualization.scm (libvirt-service-type): Add 'qemu' to the
system profile.
2019-09-11 19:15:30 +08:00
Julien Lepiller daf823ad27
gnu: services: Export virtlog-configuration.
* gnu/services/virtualization.scm (virtlog-configuration): Export.
2018-07-14 13:19:37 +02:00
Ludovic Courtès 71b98b9de9
services: qemu-binfmt: Extend guix-daemon with extra chroot directories.
Fixes <https://bugs.gnu.org/20239>.

* gnu/services/virtualization.scm (<qemu-binfmt-configuration>)[guix-support?]:
New field.
(qemu-binfmt-guix-chroot): New procedure.
(qemu-binfmt-service-type)[extensions]: Add GUIX-SERVICE-TYPE.
* doc/guix.texi (Virtualization Services): Document 'guix-support?'.
(Additional Build Options): Mention binfmt_misc and offloading under
'--system'.
2018-01-11 14:42:31 +01:00
Ludovic Courtès 6738c29fbf
services: Add qemu-binfmt.
* gnu/services/virtualization.scm (<qemu-platform>): New record type.
(bv): New macro.
(%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus)
(%ppc, %ppc64, %ppc64le, %m68k, %mips, %mipsel, %mipsn32el)
(%mips64, %mips64el, %sh4, %sh4eb, %s390x, %aarch64, %hppa)
(%qemu-platforms): New variables.
(lookup-qemu-platforms): New procedure.
(<qemu-binfmt-configuration>): New record type.
(qemu-platform->binfmt): New procedures.
(%binfmt-mount-point, %binfmt-register-file, %binfmt-file-system)
(qemu-binfmt-service-type): New variables.
(qemu-binfmt-shepherd-services): New procedures.
* doc/guix.texi (Virtualization Services): Add "Transparent Emulation
with QEMU" heading.

binfmt fixlet
2018-01-11 14:29:49 +01:00
Ryan Moe e6051057ab
services: Add libvirt services
* gnu/services/virtualization.scm: New file.
* doc/guix.texi (Virtualization Services): Document it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2017-08-23 12:47:24 +01:00