These are the release notes for libguestfs stable release 1.50. This describes the major changes since
1.48.
Libguestfs 1.50.0 was released on 7February2023.
Languagebindings
Fix the PHP bindings for PHP8 (Geoff Amey).
Fix various deprecation warnings in the GObject bindings.
We no longer use the deprecated Python distutils library (thanks Miro Hrončok).
Inspection
When listing the packages in RPM-based guests, the inspection API no longer checks package signatures.
This is because the newer librpm used by libguestfs does not understand signatures stored in older
guests, such as SHA1 used by RHEL 6 (thanks Panu Matilainen).
"guestfs_inspect_get_hostname" in guestfs(3) can now handle /etc/hostname files containing comments
(thanks Dawid Zamirski).
"guestfs_file_architecture" in guestfs(3) can now parse files using zstd compression.
"guestfs_inspect_get_osinfo" in guestfs(3) now returns the correct osinfo field for Windows 11. However
because of decisions made by Microsoft, these guests still return product name and other strings
identifying as Windows 10 (thanks Yaakov Selkowitz, Yongkui Guo).
APINewAPIs
"guestfs_device_name" in guestfs(3) is a new API to read the device name associated with a drive, for
example calling this with 0 will return "/dev/sda".
"guestfs_clevis_luks_unlock" in guestfs(3) is a new API for unlocking disks using the Clevis/Tang
network-based full disk encryption scheme. Furthermore implement this in guestfish and guestmount
(Laszlo Ersek).
"guestfs_inspect_get_build_id" in guestfs(3) is a new API for reading the build ID from some Linux and
Windows guests. It is not widely used on Linux, but for Windows it is vital for identifying Windows 11.
OtherAPIchanges
In the "guestfs_add_drive" in guestfs(3) API, the "name" and "iface" fields are not used. "name" has not
been used since around 2017, but the documentation has only just been updated to reflect this. "iface"
was never allowed for the libvirt backend and didn't work reliably with the direct backend (Laszlo
Ersek).
"guestfs_readdir" in guestfs(3) is no longer limited to the maximum message size but can read a directory
of any size (Laszlo Ersek).
BuildchangesNote that the Augeas bindings for libguestfs are no longer bundled with libguestfs and must be built
separately. See: https://people.redhat.com/~rjones/augeas/ For RHEL 7+ rebuilding the Fedora Rawhide
package will work.
Note that libguestfs now requires minimum OCaml 4.04. It will not compile on RHEL 6.
Note that zstd is now a required dependency.
OCaml gettext is no longer a dependency of libguestfs. (Plain gettext is still optionally used to
translate C source files.)
Add support for OCaml 4.14.
Fix build for missing stdlib functions in OCaml 4.04.
Fix "./configure --disable-ocaml". OCaml is still required to build libguestfs, but this now correctly
disables the OCaml bindings of the API.
Add support for building on Artix, Rocky and Virtuozzo (Halil Tezcan KARABULUT, Neil Hanlon, Andrey
Drobyshev). In addition when working out the local distro we now look at $ID_LIKE in /etc/os-release
before $ID which helps on Arch (thanks S D Rausty).
Add preliminary support for compiling libguestfs on macOS.
Fix website description of cloning the libguestfs repository (Kashyap Chamarthy).
We no longer use glibc custom printf.
We no longer use "LD_PRELOAD=libSegFault.so" in the appliance. This feature was removed in glibc 2.35.
We no longer use dtrace / systemtap probes.
Internals
Fix regression tests to use correct paths (Nikolay Shirokovskiy).
Various improvements to qcow2 appliance handling (Andrey Drobyshev).
Disable 5-level page tables in qemu. This avoids a bug in older versions of qemu.
Disable the LVM2 devicesfile in the appliance since it interferes with cloned LVs that have the same UUID
(Laszlo Ersek).
Don't use "-cpu max" on RISC-V as it is not yet supported by qemu's TCG emulation of that architecture.
This will be reenabled when qemu gets support.
Avoid a rare hang that would happen when launching the appliance. This turned out to be caused by using
the unsafe call setenv(3) between fork and exec (thanks Siddhesh Poyarekar).
When running the file command inside the appliance we now disable seccomp since it interferes with
processing compressed files (thanks David Runge, Toolybird).
Bugsfixed
https://bugzilla.redhat.com/2108425
compile of libguestfs-1.48.4 fails with Error: static declaration of ‘caml_alloc_initialized_string’
follows non-static declaration
https://bugzilla.redhat.com/2064182
SHA 1 signatures required to inspect packages in RHEL 6 guests
https://bugzilla.redhat.com/2033247
document encrypted RBD disk limitation
https://bugzilla.redhat.com/2012658
libguestfs fails to detect Windows 11 guest image
https://bugzilla.redhat.com/1965941
lvm-set-filter failed in guestfish with the latest lvm2 package
https://bugzilla.redhat.com/1844341
The duplicate block device is listed when iface is set to 'virtio'
https://bugzilla.redhat.com/1809453
[RFE] Add support for LUKS encrypted disks with Clevis & Tang
https://bugzilla.redhat.com/1794518
Rewrite libguestfs use of setfiles so that it doesn't stop on ext4 immutable bits
https://bugzilla.redhat.com/1674392
No return values from a directory listing when there are simply too many files in that directory
(NULL value return)
https://bugzilla.redhat.com/1554735
RFE: customize --selinux-relabel should be the default, with --no-selinux-relabel used to opt out