summary refs log tree commit diff
Commit message (Collapse)AuthorAge
* scripts/dist-cloud-hypervisor.sh: compress with gzAlyssa Ross2024-04-29
| | | | | | | Previously the tarballs were named ".xz", but actually weren't compressed at all. Oops! Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: update to nixos-unstable-smallAlyssa Ross2024-04-29
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: update to nixos-unstableAlyssa Ross2024-04-24
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Add missing sfdisk-field.awk Make dependenciesAlyssa Ross2024-04-17
| | | | | | | Fixes: ec07104 ("host/initramfs: run QEMU from Make") Fixes: a96f09d ("host/initramfs: enable testing booting from loop") Fixes: 6af16d0 ("host/rootfs: use initramfs in "make run"") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/installer: remove obsolete msize overrideAlyssa Ross2024-04-17
| | | | | | We're long past 5.15, so a bigger msize is now the default. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Switch from writeReferencesToFile to writeClosureAlyssa Ross2024-04-04
| | | | | | writeReferencesToFile is deprecated. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/checks: use new create_machine interfaceAlyssa Ross2024-04-04
| | | | | | | The interface we were previously using now produces a deprecation warning. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: update to nixos-unstableAlyssa Ross2024-04-04
| | | | | | The foot patch is finally upstream! Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/checks/wayland: avoid unnecessary rebuildsAlyssa Ross2024-04-04
| | | | | | | Building surface-notify doesn't require any Spectrum sources outside of its own directory. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/checks/wayland: fix raceAlyssa Ross2024-04-04
| | | | | | | | | | | The test might not have opened /run/surface-notify by the time the surfaec appears. In that case, opening the file write-only would cause Weston to block, and cause a deadlock. On Linux, we can open the pipe read/write to have the open succeed immediately, avoiding this problem. Fixes: f76b542b ("release/checks/wayland: init") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/checks/wayland: fix surface-notify errorsAlyssa Ross2024-04-04
| | | | | | | | Weston's log handler might do other things that set errno before evaluating the format strings, so %m can produce the wrong result. Fixes: f76b542b ("release/checks/wayland: init") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* scripts/dist-cloud-hypervisor.sh: initAlyssa Ross2024-04-03
| | | | | | | | I've already been using this to generate the distributions of the last couple of releases of the Cloud Hypervisor patchset, and it's worked well so far. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: syn: 2.0.57 -> 2.0.58Alyssa Ross2024-04-03
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Access PACKAGES through the shell instead of makeAlyssa Ross2024-04-03
| | | | | | | | | | | | | | | | The command line here was still getting too long for the shell. Previously, I assumed this was make-erofs.sh's command line, but it was probably actually the command line for the shell invoked by make with sh -c. To reduce the length of this, don't have make pass the whole PACKAGES list to the shell. Instead have the shell read it from the environment itself. PACKAGES is not defined in the Makefile, so it has to be provided either in the environment or on the make command line. POSIX specifies that macros defined on the make command line are added to the environment, so this should still work in both cases. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: syn: 2.0.55 -> 2.0.57Alyssa Ross2024-04-01
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* scripts/make-erofs.sh: take paths on stdinAlyssa Ross2024-03-28
| | | | | | The command line for the rootfs EROFS is nearing argv limits. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: itoa: 1.0.10 -> 1.0.11Alyssa Ross2024-03-26
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* vm: remove explicit CONFIG_EXPERTAlyssa Ross2024-03-25
| | | | | | | This is set in Nixpkgs since 3b07356d2d55 ("linux/kernel/common-config: support DFS radiations for ath(9|10)k drivers"). Signed-off-by: Alyssa Ross <hi@alyssa.is>
* vm: unset CONFIG_RC_CORE for kernelAlyssa Ross2024-03-25
| | | | | | | This will be required to keep the kernel config building once our Nixpkgs includes cb39b353041d ("linux/common-config: enable RC_CORE explicitly"). Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: syn: 2.0.53 -> 2.0.55Alyssa Ross2024-03-24
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/common.mk: remove unused stuffAlyssa Ross2024-03-24
| | | | | | | OBJCOPY has been unused since b72a136 ("img/live: switch to systemd-boot"), and .tar.ext4 has been unused since d0d7906 ("host/rootfs: switch to EROFS"). Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: syn: 2.0.41 -> 2.0.53Alyssa Ross2024-03-22
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: use a Meson option for panicAlyssa Ross2024-03-22
| | | | | | | | | | | This is a much more meson-y way to handle this, and it should make it easier to use Meson's new Cargo wraps. I don't like that it's the non-native dependencies that need to have this option, but it seems to fit into Meson much better this way, so it is what it is. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: proc-macro2: 1.0.78 -> 1.0.79Alyssa Ross2024-03-22
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: use meson -rs convention for depsAlyssa Ross2024-02-27
| | | | | | | | Meson has now standardised on Rust library dependencies having names ending in "-rs", so we should do that too. It'll make it easier to use Cargo wraps later. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: remove unused inputAlyssa Ross2024-02-26
| | | | | Fixes: a2d362c ("host: allow VMs to be powered off") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: miniserde: 0.1.37 -> 0.1.38Alyssa Ross2024-02-26
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/rootfs: switch VMs to templated s6 servicesAlyssa Ross2024-02-23
| | | | | | | | | | | | | Now that VMMs and vhost-user devices are started immediately, we don't need the complexity of s6-rc for them any more. VMMs still depend on the vhost-user sockets, but since those will be available almost immediately, it's fine to just wait for them in ext-rc-init. Since we're now using pure s6, we can use s6 instanced services for these, which cuts down a lot on how much work ext-rc-init's up script has to do directly, and provides some nice namespacing. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host: properly namespace vhost-user backendsAlyssa Ross2024-02-23
| | | | | | | | Using a character that is not allowed in VM names to separate the VM name from the filesystem name means that there can't be conflicts between different VM/filesystem combinations. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vmm: allow VM names to contain commasAlyssa Ross2024-02-23
| | | | | | | | | This restriction was in place because we needed to be able to refer to VM directories on the cloud-hypervisor command line, where commas have special meaning. Now that we're instead using the JSON API for VM configuration, there's no need for the restriction. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host: allow VMs to be powered offAlyssa Ross2024-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the s6 services for cloud-hypervisor and virtiofsd were only started when a VM was started, and vm-stop would bring the service down. The problem with this was that if a VM powered itself off, instead of being stopped on the host using vm-stop, the VM would instantly be restarted by s6. To fix this, we disentangle keeping cloud-hypervisor running from keeping the VM running. cloud-hypervisor will now always be running, so s6 will never restart it in normal operation, but it won't be running a VM until it's told to. Accomplishing this means having start-vmm (renamed from start-vm to reflect its new purpose) configure the VM in cloud-hypervisor without booting it, which is only possible using the API, not the command line. As a result, start-vm now depends on miniserde so that it can construct the VM config JSON object required by the API. The build of start-vm has been adjusted to accomodate the complexity stemming from the new dependencies. Tests are moved into passthru, because the start-vm used in Spectrum should have panic=abort, but tests need panic=unwind, and we can't use both in the same Meson instance without duplicating the non-native dependencies. We can't use s6-rc dependencies to automatically boot provider VMs in this setup, so vm-start has been modified to recurse into provider VMs. lsvm has been updated to check the Cloud Hypervisor API to see whether a VM is running, rather than just checking to see whether the s6 service is up. Because cloud-hypervisor is now to be started as early as possible, we need to make the dependencies of ext-rc-init more precise, so that cloud-hypervisor does not attempt to start before /dev/kvm or /dev/net/tun is available. We're not using Meson's support for Cargo subprojects yet, because it currently always builds crates with all features enabled. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vm: find config from /run/vmAlyssa Ross2024-02-23
| | | | | | | | | | Having a symlink in the service directory was a nice idea, but since it has to be different for every service, it's not compatible with templated services, and would prevent us switching to them. The only thing that varies between instances of templated services is the name, so we have to introduce a mapping of VM name to config directory. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/rootfs: prefix VM service namesAlyssa Ross2024-02-23
| | | | | | | | This will allow adding other services that are not specific to any particular VM (e.g. multi-VM bundles) without risking conflicts with user-provided VM names. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* host/start-vm: add run-spectrum-vm to testsAlyssa Ross2024-02-19
| | | | | | | | | | | | release/checks/start-vm.nix wasn't actually imported anywhere, so it didn't do anything unless it was built on its own. We could have listed it in release/checks/default.nix, but I think it makes more sense to have it in start-vm's passthru.tests, so it's more obvious that it should be run when changing start-vm. Fixes: 009a036 ("release/checks/start-vm.nix: init") Signed-off-by: Alyssa Ross <hi@alyssa.is>
* pkgs: cloud-hypervisor: ch-remote: add add-gpuAlyssa Ross2024-02-19
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* pkgs: cloud-hypervisor: D-Bus: support adding GPUAlyssa Ross2024-02-19
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* pkgs: cloud-hypervisor: add virtio-gpu to OpenAPIAlyssa Ross2024-02-19
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: update to staging-nextAlyssa Ross2024-02-19
| | | | | | Going straight to staging-next lets us drop the patched Meson. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: update to nixos-unstableAlyssa Ross2024-02-02
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* pkgs: pkgsStatic: fix splicingAlyssa Ross2024-02-02
| | | | | | | Previously, packages declared in "scope" wouldn't be spliced correctly when used as inputs to other packages in the pkgsStatic set. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* vm: disable CONFIG_DRM_FBDEV_EMULATIONAlyssa Ross2024-01-19
| | | | | | | This fixes an empty crosvm GPU display being displayed when a wayland client in the VM disconnects, for example if a foot window is closed. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* vm: sort kernel config alphabeticallyAlyssa Ross2024-01-19
| | | | | | | | I don't think there's a better way to organise this, because some settings might be required for multiple different reasons, e.g. CONFIG_EXPERT. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* release/checks/no-roothash.nix: fix for aarch64Alyssa Ross2024-01-19
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Documentation: clarify use of announce@Alyssa Ross2024-01-19
| | | | | | | | There has never been a message sent to this list, because I consider the announcement list to be for communicating actionable things to potential users, and we haven't had any of those yet. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Documentation: mention that bugs go to devel@Alyssa Ross2024-01-19
| | | | Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Documentation: improve prose of communication pageAlyssa Ross2024-01-19
| | | | | | | | | | | | There was a lot of fluff here that got in the way of actually finding the information people are coming to this page to find. "You are strongly encouraged to mirror them." is probably confusing to people who don't know what mirroring this, so rephrase this to make it clearer that this isn't something people need to worry about in that case. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* Documentation: remove references to mailman-webAlyssa Ross2024-01-19
| | | | | | | | | | | | | | | | | | | | | | | Bots have been nonconsensually creating mailman-web accounts for people to flood them with spam. Aside from using reCAPTCHA (ugh) or modifying mailman-web, the only thing I can really do to prevent this is to disable unauthenticated web subscriptions, and the creation of mailman-web accounts, which I have now done. Ideally, it would be possible to configure it so that creating mailman-web accounts is only allowed for email addresses that have already subscribed to the list by sending an email, but that's not currently the case. This makes Postorius useless to people who don't already have an account. Hyperkitty is still useful, but people without existing accounts won't be able to use it to post to the lists, and the UI still shows Sign In and Sign Up links, which is pretty confusing when signups are disabled. It doesn't really offer anything that public-inbox doesn't any more. As a result of these changes, I'm removing all references to mailman-web from the documentation. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* img/app: add QEMU rutabaga deviceAlyssa Ross2024-01-14
| | | | | | This allows testing Wayland forwarding with the VM running in QEMU. Signed-off-by: Alyssa Ross <hi@alyssa.is>
* lib/nixpkgs.default.nix: updateAlyssa Ross2024-01-14
| | | | | | | | | | | | | | This is a manual update to the last commit in Nixpkgs that doesn't have Meson 1.3.0, which introduces a bug that breaks the Spectrum build[1], for which upstream have not yet accepted a patch. We can patch it ourselves if it's still not fixed by the time we need another update, but for now, we don't need anything more recent than this, so I'll give it a bit more time to get fixed. [1]: https://github.com/mesonbuild/meson/issues/12585 Signed-off-by: Alyssa Ross <hi@alyssa.is>
* .editorconfig: indent shell scripts with tabsAlyssa Ross2024-01-06
| | | | | | This was already mostly the case, but now it will be consistent. Signed-off-by: Alyssa Ross <hi@alyssa.is>