Aquí hi ha 6 versions d’anyvm, des de 7 d’agost del 2026 fins a l’actual, 0.7.5. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.7.5Darrera versió | 21 d’octubre del 2026 | — | 64 bits Portable Notes de la versióriscos: keyboard and mouse on the VNC desktop; pinned-QEMU cache keyed by release
RISC OS guests now get a USB keyboard and a USB mouse (usb-kbd and
usb-mouse; QEMU's usb-tablet never moves the RISC OS pointer because it
rejects SET_PROTOCOL). Both work with riscos-builder v2.0.1, whose
patched QEMU keeps framing the USB bus after the port reset RISC OS
issues at Wimp startup; DEFAULT_BUILDER_VERSIONS moves riscos to 2.0.1.
Earlier anyvm releases attach nothing but a tablet to that guest, so
its desktop stayed view-only (vmactions/riscos-vm#12).
The pinned-QEMU cache now lives under tools/-v/
instead of tools//. A builder that republishes a same-named
tarball with a fix (riscos-builder v2.0.1 did) was invisible to any
machine that had already extracted the old one. Existing tools/
directories are left in place and simply no longer used.
Full Changelog: v0.7.4...v0.7.5 |
| 0.7.4 | 20 d’octubre del 2026 | — | 64 bits Portable Notes de la versiónfs: non-root guest users can write the synced folder
Both nfs sync methods mapped only guest root to the host user who
launched anyvm. Any other guest account kept its own uid, so it could
write the share only when that uid happened to equal the host's.
FreeBSD's first pw useradd hands out 1001, the GitHub runner's uid, so
it worked there by luck; Solaris's useradd hands out 1000, and every
write failed with EACCES (vmactions/solaris-vm#70).
Every guest uid is now squashed to the launching user:
--sync sys-nfs the kernel nfsd export gets all_squash
--sync nfs the user-space nfsd moves to v0.1.1 and runs with
its new -all_squash
Files a non-root guest user creates are owned by you on the host, the
same as the ones guest root creates. Where anyvm has to start nfsd
under sudo (the BSD guests that need the portmapper on port 111), the
squash target is still the user who launched anyvm, not root.
The Hurd keeps its guest root unsquashed in both modes, because
/hurd/nfs chowns every new file to uid 0.
DragonFly BSD is a known exception: its NFS client checks a create or
delete against the parent directory's mode bits locally, before any
request reaches the server, so a non-root guest user still cannot
write a 0755 share it does not own, whatever the server would allow.
nfsd v0.1.1 also makes its permission checks match the Linux kernel
nfsd when nothing is squashed: owner override, read access to
execute-only files, sticky directories, and special stateids.
New default builder versions:
openbsd 2.1.0 -> 2.1.1 adds OpenBSD 8.0, now the default
release
openindiana 2.1.2 -> 2.1.4 gcc-14 is optimized again (oi-3), and
std::locale("") no longer crashes
(oi-4)
Other: CI checks that a non-root guest user can write the share with
both nfs methods, and refreshes the apt index when an install hits a
stale one.
Full Changelog: v0.7.3...v0.7.4 |
| 0.7.3 | 3 d’octubre del 2026 | — | 64 bits Portable Notes de la versiórename rocky to rockylinux; new default images for netbsd, midnightbsd
and openeuler
Rocky Linux is now --os rockylinux, the same name as its builder
(anyvm-org/rockylinux-builder, renamed from rocky-builder) and its
GitHub Action (vmactions/rockylinux-vm). The default image is
rockylinux-builder v2.0.1. The old name is not kept as an alias, so
replace --os rocky with --os rockylinux: anyvm no longer applies the
Rocky Linux settings (virtio NIC, TCG under nested Windows) to "rocky".
New default builder versions:
netbsd 2.2.6 -> 2.2.7 adds NetBSD 10.2, fixes 9.x packages
midnightbsd 2.0.7 -> 2.0.8 MidnightBSD 4.0.8
openeuler 2.0.5 -> 2.0.6 adds openEuler 26.09 (x86_64, aarch64)
rockylinux 2.0.1 was rocky 2.0.0
Fixed: Redox no longer fails to mount its root filesystem when the host
is slow to sync the disk image. Redox 0.9.0's IDE driver gives each ATA
command 1 s and flushes after every write, while QEMU completes a guest
flush only once the host fdatasync returns. The Redox disk now runs with
cache.no-flush=on; guest writes still reach the host page cache, so
only a host crash could lose them.
Other: --debug now logs the host CPU model on every run, not only when
a boot times out. CI tests NetBSD 10.2, and the builder bump bot also
picks up point releases of older branches.
Full Changelog: v0.7.2...v0.7.3 |
| 0.7.2 | 25 de setembre del 2026 | — | 64 bits Portable Notes de la versióUbuntu 26.04 as a host
anyvm now runs every guest it runs on 24.04 from an Ubuntu 26.04 host too, and
CI has moved to the ubuntu-26.04 runners to keep it that way. Getting there
meant working around four regressions in 26.04's QEMU 10.2.1 / edk2 stack, each
pinned down to where it starts and fixed only there, so older hosts are
untouched.
aarch64 guests hung in the firmware. edk2-stable202508 added FEAT_LPA2
support, and from then on ArmConfigureMmu() switches the page-table format
while ArmVirtQemu is still running on its flash-resident early ID map in the old
format. On a CPU that reports a 52-bit PA range with LPA2 -- QEMU's -cpu max
under TCG, the default for most aarch64 guests here -- the next instruction fetch
faults and the firmware spins forever right after its banner
(tianocore/edk2#11962).
Ubuntu 26.04's qemu-efi-aarch64 2025.11 has the bug, so every aarch64 guest on
a 26.04 host hung. The first upstream build with the fix is no way out either:
edk2 2026.05 raises a Synchronous Exception when the loaders of FreeBSD 12.4 and
openEuler 22.03-LTS-SP4 hand over to the kernel.
anyvm now reads the build stamp embedded in the host's aarch64 UEFI image, and
when it is 2025.08 or later swaps in a pinned edk2 2024.02 build -- the
unmodified QEMU_EFI.fd from Ubuntu 24.04's qemu-efi-aarch64
2024.02-2ubuntu0.9, the firmware these guests were tested on before the move.
It is downloaded once from anyvm-org/firmware and checked against a sha256
pinned in anyvm itself, so a truncated or re-uploaded asset is discarded rather
than booted. Hosts with an older firmware keep their own.
NetBSD 9.x aarch64 hung at the interrupt controller when booting through
ACPI on QEMU 10.2.1 -- with or without the GICv3 ITS, on GICv2, and on older
virt machine types alike. It now boots from the device tree (acpi=off), which
works on 10.2.1 and on 8.2.2. NetBSD 10.x and 11.0 are not affected.
FreeBSD 13.2 - 14.3 riscv64 hung before "Timecounters tick" on QEMU 10.2.1,
the release where the Sstc timer code was reworked; turning the extension off
lets them boot, and S-mode then sets its timer through SBI as on hardware
without Sstc. anyvm uses -cpu rv64,sstc=off for those releases on QEMU 10.1
and later. 14.4, 14.5 and 15.x boot with Sstc and are left alone.
LoongArch guests had no firmware. 26.04's QEMU 10.2.1 is new enough by
version but ships without edk2-loongarch64-code.fd, so anyvm now falls back to
its pinned QEMU build whenever the system QEMU has no LoongArch firmware to
find, not only when it is older than 9.2.
Packaging. From Ubuntu 25.10 / Debian 13 on, the riscv64 emulator moved out
of qemu-system-misc into a separate qemu-system-riscv package, and the
binary names are only virtual packages apt refuses to pick between. The
dependency hint adds qemu-system-riscv only where apt knows it, and a missing
QEMU binary is now reported together with the Debian/Ubuntu package that ships
it.
New
- --firmware accepts an http(s) URL as well as a path. The image is downloaded
once into the VM's directory under a name derived from the whole URL, and a
failed download is fatal rather than silently falling back to a firmware you
did not ask for.
Fixed
- A data dir that ignores Unix permissions now fails fast with the cause. On
a WSL /mnt/<drive> mount without the metadata option every file reads as
0777, so ssh ignores the private key, every login fails, and the guest's sshd
soon refuses the host outright -- the boot could only ever time out. anyvm now
checks the key after chmod 600, stops, and prints the /etc/wsl.conf line
that fixes it (or use a --data-dir elsewhere).
- WSL without interop now says so instead of silently not opening the
browser. When explorer.exe fails with "Exec format error" -- a WSL distro
with systemd whose binfmt entry for Windows programs is gone, as on a fresh
Ubuntu 26.04 -- anyvm prints the Web VNC URL to open by hand and the two
commands that restore interop, rather than logging it only under --debug.
Other
- CI: all test workflows |
| 0.7.1 | 16 de setembre del 2026 | — | 64 bits Portable Notes de la versióNew: FreeBSD 10.4 and 11.4
Two more FreeBSD generations, from builder 2.2.8, on x86_64 only:
anyvm.py --os freebsd --release 10.4
anyvm.py --os freebsd --release 11.4
pkg.FreeBSD.org dropped its FreeBSD 10 / 11 / 12 repositories long ago, so these
images take their packages from the preserved SGGS mirror, which keeps FreeBSD's
original repository signatures -- pkg verifies them against the fingerprint
shipped in the base system. That also reaches 12.4 x86_64: it now ships
rsync and fusefs-sshfs, so all five sync backends work there instead of
nfs / scp / tar only. 12.4 aarch64 stays base-only; no aarch64 packages
exist for FreeBSD 12.
Two things anyvm had to learn to run them:
- Boot via SeaBIOS below 12. FreeBSD's VM images only gained an EFI system
partition on amd64 from 12.x on, so under OVMF a 10.x / 11.x image has nothing
to boot from and parks at the EFI shell. anyvm now drops its UEFI default for
those releases once the release is resolved, and boots the freebsd-boot
partition they do ship. An explicit --uefi still wins.
- 10.x runs on the qemu64 CPU model. FreeBSD 10's signal delivery panics
when -cpu host exposes the full modern XSAVE feature set, so the image is
built and must be run on QEMU's baseline model, under every accelerator.
Mirrors the builder's pin; --cpu-type overrides.
Fixed: a lost network probe no longer reports "Unsupported OS"
vmactions/freebsd-vm#163:
a single failed probe of the release download URL sent the run down the
unauthenticated GitHub REST API, which the shared runner IP had already
exhausted. The 403 was retried for three minutes and then reported as
Unsupported OS: freebsd -- true of nothing.
- The release-URL probe now retries transient failures; only a 404 means the
asset is absent.
- A rate-limited 403 (X-RateLimit-Remaining: 0) or a 429 stops the retry loop
immediately and reports the reset time and the remedy (GITHUB_TOKEN)
instead of burning minutes on a limit that will not lift.
- "The API could not be asked" and "this repository does not exist" are now
distinct outcomes, so a connectivity failure is reported as one rather than
as an unsupported guest.
- The Authorization header no longer follows a cross-host redirect.
urllib's default handler forwards it to whatever host the redirect names;
anyvm now drops it whenever the host changes, so a token set for the GitHub
API cannot leak to a release-asset CDN or anywhere else.
Other
- Default builder pin: freebsd 2.2.7 -> 2.2.8.
- CI: 10.4 and 11.4 joined the FreeBSD x86_64 matrix, and 12.4 x86_64 gained
its rsync + sshfs legs. |
| 0.5.7 | 7 d’agost del 2026 | — | 64 bits Portable |