.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Podwrapper::Man 1.60.1 (Pod::Simple 3.45)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Required to disable full justification in groff 1.23.0.
.if n .ds AD l
.\" ========================================================================
.\"
.IX Title "guestfs-release-notes-1.60 1"
.TH guestfs-release-notes-1.60 1 2026-07-14 libguestfs-1.60.1 "Virtualization Support"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
guestfs\-release\-notes \- libguestfs Release Notes
.SH "RELEASE NOTES FOR LIBGUESTFS 1.60"
.IX Header "RELEASE NOTES FOR LIBGUESTFS 1.60"
These are the release notes for libguestfs stable release 1.60.
This describes the major changes since 1.58.
.PP
Libguestfs 1.60.0 was released on \fB9 July 2026\fR.
.SS Inspection
.IX Subsection "Inspection"
Add support for Kylin, NeoKylin and Anolis Linux distributions (grass
lu).
.PP
Guests using Veritas partition tables (reusing the Sun partition type)
can now be inspected.
.PP
Windows Defender (antivirus) is now detected if present in Windows
guests (Susant Sahani).
.SS API
.IX Subsection "API"
New \f(CW\*(C`guestfs_xfs_info2\*(C'\fR API.  This is similar to the existing
\&\f(CW\*(C`guestfs_xfs_info\*(C'\fR API but returns a flexible hashtable allowing more
fields to be added to the output in future.
.PP
\&\f(CW\*(C`guestfs_get_hv\*(C'\fR now returns the default hypervisor.
.PP
\&\f(CW\*(C`guestfs_tar_in\*(C'\fR adds a new option \f(CW\*(C`keepdirlink\*(C'\fR which controls the
tar \fI\-\-keep\-directory\-symlink\fR flag (Anders Roxell).
.PP
\&\f(CW\*(C`guestfs_xfs_repair\*(C'\fR \f(CW\*(C`maxmem\*(C'\fR option now produces better error
messages if maxmem is too small.
.PP
All functions that take LUKS key parameters may now use either
\&\f(CW\*(C`text:...\*(C'\fR or \f(CW\*(C`base64:...\*(C'\fR prefixes, allowing binary keys to be
encoded as base64 and passed to these APIs.  \fBguestfish\fR\|(1) and other
tools taking a key file now allow a binary file to be used.
.PP
\&\f(CW\*(C`guestfs_command*\*(C'\fR and \f(CW\*(C`guestfs_sh*\*(C'\fR now use a bind mount to
override \f(CW\*(C`/etc/resolv.conf\*(C'\fR inside the guest, allowing these commands
to work even when this file is marked as immutable, a common change
that system administrators make (Srihari Parimi).
.SS Tools
.IX Subsection "Tools"
New \fBguestfish\fR\|(1) \f(CW\*(C`not\*(C'\fR subcommand, which negates the status of a
command.
.SS "Language bindings"
.IX Subsection "Language bindings"
GObject and Vala bindings were removed.  They were previously
deprecated in libguestfs 1.56 (Cole Robinson).
.SS Documentation
.IX Subsection "Documentation"
All information related to firstboot scripts was moved to and
consolidated in "FIRSTBOOT" in \fBvirt\-customize\fR\|(1) (Srihari Parimi).
.PP
Fix documentation of \f(CW\*(C`guestfs_copy_out\*(C'\fR API.
.SS "Build changes"
.IX Subsection "Build changes"
Fix Weblate (i18n) web hooks (Rafael Fontenelle).
.PP
Fix build when libselinux is not available (David Runge).
.PP
Github CI is now used more comprehensively (Cole Robinson).
.PP
Fix \f(CW\*(C`make dist\*(C'\fR command when certain language bindings are disabled
(Cole Robinson).
.PP
\&\f(CW\*(C`./configure \-\-with\-qemu\*(C'\fR was removed.
.PP
\&\f(CW\*(C`CFLAGS\*(C'\fR is now prepended to the default, allowing default flags to
be overridden.  In addition \fI\-fPIC\fR is added to the default flags
(Cole Robinson).
.PP
Some bash completion scripts that were no longer used by libguestfs
(they moved to guestfs\-tools) were removed.  Also new \f(CW\*(C`./configure
\&\-\-with\-bash\-completion\*(C'\fR and \f(CW\*(C`./configure \-\-with\-bash\-completion\-dir\*(C'\fR
options were added (Christopher Byrne).
.PP
No longer over\-link Lua bindings with libxml2 and libvirt (David
Runge).
.PP
Improve appliance support for Arch (David Runge).
.SS Internals
.IX Subsection "Internals"
Simplify qemu property testing.  Most of the code was eliminated
completely, and also we no longer start up an empty guest when
detecting if KVM is available (thanks Daniel Berrange).  Also we now
print stderr if qemu fails to start during detection (Hilko Bengen).
.PP
Use \fI\-cpu max\fR on RISC\-V (thanks Apache553).
.PP
Very minimal support for Apple Filesystem (APFS) was added on Fedora.
.PP
Many memory and file descriptor leaks found by Claude Code were fixed
(shivanayak).
.PP
In the libguestfs appliance, increase the number of pre\-process memory
maps.  This may allow xfs_repair to work on larger filesystems (Eric
Sandeen).
.PP
Fix DHCP on fast machines by making it wait for an address when
networking is enabled.  In addition use \f(CW\*(C`dhcpcd \-\-debug\*(C'\fR which makes
it easier to see if DHCP requests are working (Cole Robinson).
.PP
Improvements to debug output (Surya Gupta, Srihari Parimi).
.PP
Fix Fedora bin/sbin symlinking to be less noisy (Cole Robinson).
.PP
Rewrite xfs_repair and luks_* implementations in the daemon in OCaml.
.PP
Ensure fds 0, 1 and 2 are open when running subcommands.
.SS "Bugs fixed"
.IX Subsection "Bugs fixed"
.IP https://issues.redhat.com/browse/RHEL\-129145 4
.IX Item "https://issues.redhat.com/browse/RHEL-129145"
RFE: Detect Windows Defender antivirus when enabled in default Windows 11 installs
.IP https://issues.redhat.com/browse/RHEL\-143673 4
.IX Item "https://issues.redhat.com/browse/RHEL-143673"
Add new xfs_info2 API to expose XFS version information
.IP https://issues.redhat.com/browse/RHEL\-165220 4
.IX Item "https://issues.redhat.com/browse/RHEL-165220"
virt\-v2v with sun partition table and Veritas storage failed with: parted exited with status 1: Warning: The disk CHS geometry reported by the operating system does not match the geometry stored on the disk label
.IP https://issues.redhat.com/browse/RHEL\-165677 4
.IX Item "https://issues.redhat.com/browse/RHEL-165677"
Stop using xfs_repair \-m because memory required scales with filesystem size and has sharp edges
.IP https://issues.redhat.com/browse/RHEL\-170864 4
.IX Item "https://issues.redhat.com/browse/RHEL-170864"
virt\-v2v failing with binary LUKS keys [virt\-v2v]
.IP https://issues.redhat.com/browse/RHEL\-171895 4
.IX Item "https://issues.redhat.com/browse/RHEL-171895"
virt\-v2v failing with binary LUKS keys [libguestfs]
.IP https://issues.redhat.com/browse/RHEL\-171896 4
.IX Item "https://issues.redhat.com/browse/RHEL-171896"
virt\-v2v failing with binary LUKS keys [guestfs\-tools]
.IP https://issues.redhat.com/browse/RHEL\-178287 4
.IX Item "https://issues.redhat.com/browse/RHEL-178287"
virt\-v2v fails during migration of RHEL 7 VMs due to XFS filesystem errors, potentially related to RHEL 10.1 xfs_repair running against a RHEL 7 XFS filesystem.
.IP https://issues.redhat.com/browse/RHEL\-178556 4
.IX Item "https://issues.redhat.com/browse/RHEL-178556"
Use bind mount to overwrite /sysroot/etc/resolv.conf during "sh" operations
.IP https://github.com/libguestfs/libguestfs/issues/290 4
.IX Item "https://github.com/libguestfs/libguestfs/issues/290"
1.58.0: undefined reference to optgroup_selinuxrelabel_available
.IP https://github.com/libguestfs/libguestfs/issues/292 4
.IX Item "https://github.com/libguestfs/libguestfs/issues/292"
guestfs_int_get_cpu_model: use \-cpu max for riscv
.IP https://github.com/libguestfs/libguestfs/issues/312 4
.IX Item "https://github.com/libguestfs/libguestfs/issues/312"
switch to po4a
.IP https://github.com/libguestfs/libguestfs/issues/336 4
.IX Item "https://github.com/libguestfs/libguestfs/issues/336"
flaky test network/test\-network.sh
.IP https://github.com/libguestfs/libguestfs/issues/359 4
.IX Item "https://github.com/libguestfs/libguestfs/issues/359"
1.58.1: The Lua bindings link against libxml2 but don\*(Aqt seem to use it
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBguestfs\-examples\fR\|(1),
\&\fBguestfs\-faq\fR\|(1),
\&\fBguestfs\-performance\fR\|(1),
\&\fBguestfs\-recipes\fR\|(1),
\&\fBguestfs\-testing\fR\|(1),
\&\fBguestfs\fR\|(3),
\&\fBguestfish\fR\|(1),
http://libguestfs.org/
.SH AUTHORS
.IX Header "AUTHORS"
.IP "Adolfo Jayme Barrientos" 4
.IX Item "Adolfo Jayme Barrientos"
.PD 0
.IP "Anders Roxell" 4
.IX Item "Anders Roxell"
.IP "Andi Chandler" 4
.IX Item "Andi Chandler"
.IP "Arif Budiman" 4
.IX Item "Arif Budiman"
.IP "Christopher Byrne" 4
.IX Item "Christopher Byrne"
.IP "Cole Robinson" 4
.IX Item "Cole Robinson"
.IP "David Runge" 4
.IX Item "David Runge"
.IP "Emilio Herrera" 4
.IX Item "Emilio Herrera"
.IP "Ettore Atalan" 4
.IX Item "Ettore Atalan"
.IP "Fco. Javier F. Serrador" 4
.IX Item "Fco. Javier F. Serrador"
.IP grimst 4
.IX Item "grimst"
.IP "Hela Basa" 4
.IX Item "Hela Basa"
.IP "Hilko Bengen" 4
.IX Item "Hilko Bengen"
.IP "Jan Kuparinen" 4
.IX Item "Jan Kuparinen"
.IP "Krascovict Petrov" 4
.IX Item "Krascovict Petrov"
.IP "Léane GRASSER" 4
.IX Item "Léane GRASSER"
.IP Nathan95 4
.IX Item "Nathan95"
.IP "Pavel Borecki" 4
.IX Item "Pavel Borecki"
.IP "Piotr Drąg" 4
.IX Item "Piotr Drąg"
.IP "Rafael Fontenelle" 4
.IX Item "Rafael Fontenelle"
.IP "Richard W.M. Jones" 4
.IX Item "Richard W.M. Jones"
.IP "Ricky Tigg" 4
.IX Item "Ricky Tigg"
.IP shivanayak 4
.IX Item "shivanayak"
.IP "Srihari Parimi" 4
.IX Item "Srihari Parimi"
.IP "Surya Gupta" 4
.IX Item "Surya Gupta"
.IP "Susant Sahani" 4
.IX Item "Susant Sahani"
.IP "Temuri Doghonadze" 4
.IX Item "Temuri Doghonadze"
.IP "Tian Shixiong" 4
.IX Item "Tian Shixiong"
.IP "Yuri Chornoivan" 4
.IX Item "Yuri Chornoivan"
.IP "zhanchun li" 4
.IX Item "zhanchun li"
.PD
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright (C) 2009\-2026 Red Hat Inc.
.SH LICENSE
.IX Header "LICENSE"
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
.PP
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
.PP
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110\-1301 USA.
.SH BUGS
.IX Header "BUGS"
To get a list of bugs against libguestfs, use this link:
https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
.PP
To report a new bug against libguestfs, use this link:
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
.PP
When reporting a bug, please supply:
.IP \(bu 4
The version of libguestfs.
.IP \(bu 4
Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
.IP \(bu 4
Describe the bug accurately and give a way to reproduce it.
.IP \(bu 4
Run \fBlibguestfs\-test\-tool\fR\|(1) and paste the \fBcomplete, unedited\fR
output into the bug report.
