I'm pleased to announce the new stable release of libguestfs.
Libguestfs is a library for creating and manipulating disk images,
virtual machines and similar. You can read more about it here:
https://libguestfs.org/
The release notes for this version are attached below, or you can read
them online here:
https://libguestfs.org/guestfs-release-notes-1.58.1.html
You can get source tarballs from:
https://download.libguestfs.org/1.58-stable/
Rich.
RELEASE NOTES FOR LIBGUESTFS 1.58
These are the release notes for libguestfs stable release 1.58. This
describes the major changes since 1.56.
Libguestfs 1.58.0 was released on 5th January 2026.
Inspection
Fix inspection of SLES 15 guests that have an encrypted Btrfs
filesystem, by correctly parsing /etc/crypttab (Cole Robinson).
Windows named drives (like "D:") which point to completely blank disks
are now ignored instead of causing an error (thanks Ming Xie, Ameen
Barakat).
Existing code in virt-v2v which recognized Windows Antivirus (AV)
software is now part of inspection. The new code recognizes a wider
range of AV software.
API
"guestfs_selinux_relabel" was deprecated, replaced by new
"guestfs_setfiles". This new API also uses the setfiles(8) -A option to
reduce memory usage.
New "guestfs_ntfs_chmod" API which changes the permissions of Windows
paths (Cole Robinson).
In the list of structures returned by
"guestfs_inspect_get_applications2", a new "app2_class" field
has been
added. This classifies the application by its primary usage, but
currently only "antivirus" can be returned here for Windows AV software.
New "guestfs_inspect_get_windows_group_policy" API which reports whether
Group Policy Objects were found in the Windows guest.
"guestfs_btrfs_subvolume_show" would sometimes crash when parsing the
snapshots of a Btrfs subvolume. Furthermore, in any API that returned a
device name associated with a Btrfs volume, the device name might not be
translated correctly resulting in the wrong device name being returned.
(Both problems fixed by Arye Yurkovsky.)
Fix a memory leak in "guestfs_filesystem_walk" (Susant Sahani).
In "guestfs_disk_create", when creating raw block devices, check for
errors in the close(2) system call, ensuring we don't miss any delayed
I/O errors (Susant Sahani).
In several LVM-related APIs, it was possible for an internal failure to
happen for logical volumes which are incomplete (eg. missing a physical
volume). This was fixed by skipping these LVs (Arye Yurkovsky).
Language bindings
Note that GObject / Javascript bindings will be removed in the next
release of libguestfs.
Ruby deprecation warnings were fixed (Cole Robinson).
Documentation
Fix links to ntfs-3g documentation (Cole Robinson).
Build changes
libvirt ≥ 11.10.0 with passt support is now required.
qemu ≥ 7.2.0 is now required.
Fix guestmount compilation on macOS (thanks Mohamed Akram).
Basic github CI has been implemented. Pull requests now do the
equivalent of "./configure --enable-werror && make && make
check" on a
few common platforms.
Several obsolete tests were removed, and the test suite in general has
been fixed and made more robust against missing dependencies and other
common problems (Cole Robinson).
In test output we no longer print absolute paths for the test names
(Cole Robinson).
"AM_GNU_GETTEXT" usage was completely removed and replaced with a simple
test for LIBINTL (Cole Robinson).
build-aux/config.rpath was removed since it was no longer actually used
(Cole Robinson).
Fix const-correctness issues caused by changes to the strchr(3) and
strrchr(3) functions in C23.
Internals
If the "sit.ko" Linux kernel module is loaded, then a "sit0" (a
kind of
IPv6 tunnel) network device is created in the appliance. Ignore this as
it would break appliance networking (thanks Srikanth Aithal, Stefano
Brivio).
In the direct backend we simplified probing of qemu features by assuming
that qemu ≥ 7.2.0.
In the libvirt backend:
• Fix compatibility with SeaBIOS 1.17 (thanks Gerd Hoffmann).
• We made some changes to how errors from the libvirt call
"virDomainDestroyFlags" are handled when shutting down the
appliance. If there is an error, the error message is now printed
when debug is enabled (but it is still non-fatal). Also we sleep
between retries instead of busy looping.
• The libvirt backend now adds a virtio-rng device to the appliance
unconditionally so that we always have good entropy (for
cryptographic operations).
• When running as root, remove explicit socket relabelling and allow
libvirt to relabel the sockets instead (Cole Robinson).
• Enable sVirt for the appliance, which was sometimes accidentally
disabled (Cole Robinson).
During inspection of Linux/Unix guests, the contents of guest /etc/fstab
and some mdadm files are written to debug output. This can help with
debugging inspection issues (thanks Ming Xie).
When the appliance starts up, if debugging is enabled, then we log
lsblk(8) and blkid(8) info to debugging output (thanks Ming Xie).
In the generator StringList(Pathname) was implemented for OCaml
functions.
Add more debugging in Windows Registry inspection functions to make it
easier to track what's going on.
OCaml "{|...|}" string literals are now used in the code for things like
literal Windows batch files that we inject into the guest, regular
expressions, and POD documentation in the generator (thanks Nicolas
Ojeda Bar).
Internal calls to pcre2_match(3) which return an unexpected error now
emit a debug message, although the error is still ignored.
Multiple code cleanups throughout (Susant Sahani).
Fix order of inclusion of Python header file because of changes in
recent Python 3.14.
Some test scripts which were written in Perl before have been rewritten
in Python (Susant Sahani).
Bugs fixed
https://issues.redhat.com/browse/RHEL-104352
Change permission of guestfs folder created
https://issues.redhat.com/browse/RHEL-106490
Adding the commands "lsblk", "cat /etc/fstab" and
"blkid" to the v2v
debug log
https://issues.redhat.com/browse/RHEL-108803
Parted fails to read a blank disk "virt-v2v: error: libguestfs
error: inspect_os: parted: /dev/sdb: parted exited with status 1:
Error: /dev/sdb: unrecognised disk label: Invalid argument"
[rhel-9.7]
https://issues.redhat.com/browse/RHEL-111165
[Testonly]virt-v2v of RHEL 8.10 VM fails because setfiles invoked
oom-killer
https://issues.redhat.com/browse/RHEL-111505
Lots of memory used in 'setfiles' utility / 'restorecon_sb'
function
https://issues.redhat.com/browse/RHEL-113397
[DEV Task]: The available subscriptions of guest sometimes can't be
shown unless use --sm-remove and --sm-unregister options to remove
all subscriptions from the guest
https://issues.redhat.com/browse/RHEL-113398
[DEV Task]: Virt-v2v can't use --sm-remove and --sm-unregister
options to remove the subscriptions from guest if consumer profile
has been deleted from the guest.
https://issues.redhat.com/browse/RHEL-114292
Use setfiles -A option when relabelling
https://issues.redhat.com/browse/RHEL-121076
[libguestfs] [aarch64] libguestfs-test-tool failed with
LIBGUESTFS_BACKEND=direct
https://issues.redhat.com/browse/RHEL-125846
virt-inspector detect if AV/GPOs are present in a VM
https://issues.redhat.com/browse/RHEL-93584
virt-v2v can't convert sles15sp6 guest with encrypted brtfs
fliesystem
https://github.com/libguestfs/libguestfs/issues/180
Fails to build with macFUSE
https://github.com/libguestfs/libguestfs/issues/234
make -j8 check failures with selinux enforcing
SEE ALSO
guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
http://libguestfs.org/
AUTHORS
Arye Yurkovsky
Cole Robinson
Ettore Atalan
Fco. Javier F. Serrador
Pavel Borecki
Richard W.M. Jones
Susant Sahani
Yuri Chornoivan
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html