.\" Automatically generated by Podwrapper::Man 1.48.6 (Pod::Simple 3.43)
.\"
.\" 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
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    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
.\" ========================================================================
.\"
.IX Title "guestfs-release-notes-1.24 1"
.TH guestfs-release-notes-1.24 1 "2022-11-28" "libguestfs-1.48.6" "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.24"
.IX Header "RELEASE NOTES FOR LIBGUESTFS 1.24"
These release notes only cover the differences from the previous
stable/dev branch split (1.22.0).  For detailed changelogs, please see
the git repository, or the ChangeLog file distributed in the tarball.
.SS "New features"
.IX Subsection "New features"
User-Mode Linux (\s-1UML\s0) can be used as an alternative backend
(ie. instead of \s-1KVM\s0).  This improves performance especially
when using libguestfs inside a \s-1VM\s0 (eg. in the cloud).  \s-1UML\s0 is
supported as a first-class backend.
See \*(L"USER-MODE \s-1LINUX BACKEND\*(R"\s0 in \fBguestfs\fR\|(3) for how to use this.
.PP
\&\s-1ARM\s0 (32 bit) and \s-1PPC64\s0 are now fully supported.
.PP
\fITools\fR
.IX Subsection "Tools"
.PP
\&\fBvirt\-builder\fR\|(1) is a new tool for building virtual machine images.
It lets you rapidly and securely create guests and customize them.
.PP
New \fBvirt\-sysprep\fR\|(1) operations:
Remove files in \fI/tmp\fR and \fI/var/tmp\fR.
Remove \s-1RPM\s0 database files.
Change root and user passwords.
More log files are removed.
New operations which are not enabled by default:
Create random UUIDs for filesystems.
Reset firewall rules.
(Wanlong Gao)
.PP
\&\fBvirt\-resize\fR\|(1) and virt-sysprep can now use URIs to specify a
remote disk.
.PP
Use \f(CW\*(C`guestfish \-N filename=type\*(C'\fR to create a named disk image
(instead of the default \fItest1.img\fR etc).
.PP
\&\fBvirt\-sparsify\fR\|(1) now tests if there is enough disk space to
complete the operation, instead of possibly running out of space half
way through.
.PP
\&\fBvirt\-format\fR\|(1) and \fBvirt\-make\-fs\fR\|(1): new \fI\-\-label\fR option for
setting filesystem label.
.PP
virt-resize \fI\-\-no\-sparse\fR flag can be used to resize on to partitions
and other targets that are not zeroed.
.PP
\fILanguage bindings\fR
.IX Subsection "Language bindings"
.PP
New bindings for the Go programming language.
.PP
\fI\s-1API\s0\fR
.IX Subsection "API"
.PP
Support for the systemd journal.
.PP
\&\f(CW\*(C`guestfs_add_drive_opts\*(C'\fR can now control the qemu caching mode
through a new \f(CW\*(C`cachemode\*(C'\fR parameter.  You can select improved
performance for temporary drives, or safety.
.PP
\&\f(CW\*(C`guestfs_set_label\*(C'\fR now works for \s-1XFS\s0 and btrfs.
.PP
New \s-1GUESTFS_EVENT_WARNING\s0 event for warning messages.
.PP
\fIInspection\fR
.IX Subsection "Inspection"
.PP
Better inspection of \s-1SUSE\s0 guests (Olaf Hering).
.PP
Better support for non-standard Windows \f(CW%systemroot\fR% (Matthew Booth).
.PP
Enhanced error reporting for Augeas errors.
.SS "Security"
.IX Subsection "Security"
.IP "\s-1CVE\-2013\-2124\s0" 4
.IX Item "CVE-2013-2124"
https://bugzilla.redhat.com/show_bug.cgi?id=968306
.Sp
A denial of service was possible when inspecting certain guests.  The
fix has been backported to 1.20 and 1.22 branches.
.IP "\s-1CVE\-2013\-4419\s0" 4
.IX Item "CVE-2013-4419"
https://www.redhat.com/archives/libguestfs/2013\-October/msg00031.html
.Sp
Fix insecure temporary directory handling for remote guestfish.  The
fix has been backported to 1.20 and 1.22 branches.
.SS "New APIs"
.IX Subsection "New APIs"
.Vb 12
\& add\-drive\-scratch: Add a temporary scratch drive
\& aug\-label
\& aug\-setm
\& journal\-open: Systemd journal support
\& journal\-close
\& journal\-next
\& journal\-skip
\& journal\-get
\& journal\-get\-data\-threshold
\& journal\-set\-data\-threshold
\& remount: Allow rw flag to be adjusted on mounted filesystems
\& set\-uuid: Set UUID of filesystem
.Ve
.PP
\&\f(CW\*(C`is\-file\*(C'\fR, \f(CW\*(C`is\-dir\*(C'\fR, \f(CW\*(C`is\-blockdev\*(C'\fR, \f(CW\*(C`is\-chardev\*(C'\fR, \f(CW\*(C`is\-fifo\*(C'\fR,
\&\f(CW\*(C`is\-socket\*(C'\fR APIs now have an extra \f(CW\*(C`followsymlinks\*(C'\fR flag.
.PP
\&\f(CW\*(C`add\-drive\*(C'\fR has a new \f(CW\*(C`cachemode\*(C'\fR parameter.
.SS "Build changes"
.IX Subsection "Build changes"
The following packages are required to build libguestfs 1.24:
.IP "Augeas ≥ 1.0.0" 4
.IX Item "Augeas ≥ 1.0.0"
.PP
The following optional packages may be added to enhance functionality
but are not required:
.IP "sd-journal" 4
.IX Item "sd-journal"
To read journal files from guests which use that.
.IP "url_mkcow" 4
.IX Item "url_mkcow"
For \s-1UML\s0 backend.
.IP "curl" 4
.IX Item "curl"
.PD 0
.IP "gpg" 4
.IX Item "gpg"
.IP "xz" 4
.IX Item "xz"
.PD
For virt-builder.
.IP "golang ≥ 1.1.1" 4
.IX Item "golang ≥ 1.1.1"
For Go language bindings.
.SS "Internals"
.IX Subsection "Internals"
New \f(CW\*(C`make check\-*\*(C'\fR rules replace \f(CW\*(C`make extra\-tests\*(C'\fR.  See \f(CW\*(C`make
help\*(C'\fR and \fBguestfs\fR\|(3) for details.
.PP
Perl code can now be valgrinded.
.PP
Inspection code is now fuzz-tested.
.PP
\&\f(CW\*(C`make\*(C'\fR no longer recurses into the generator directory in every other
directory.  This reduces the overhead of builds considerably.
.PP
Additional tests for Augeas, hivex.
.PP
Add a launch timeout of 20 minutes waiting for the appliance to start
up.
.PP
Add a timeout (4 hours) to all tests so we can catch the case where
qemu or other components hang.
.PP
Use kvmclock and \f(CW\*(C`\-cpu host\*(C'\fR.  This improves clock stability and
overall performance.
.PP
\&\f(CW\*(C`./configure \-\-enable\-packet\-dump\*(C'\fR mode is fixed.
.PP
\&\f(CW\*(C`./configure \-\-enable\-valgrind\-daemon\*(C'\fR mode has been rewritten.  It
is now feasible for developers to keep this flag enabled at all times.
.PP
Backends have been refactored to be modular (although they are not
actually loadable modules).
.PP
When enabled, the network now uses resolver configuration
(ie. /etc/resolv.conf) from the host.
.SS "Bugs fixed"
.IX Subsection "Bugs fixed"
.IP "https://bugzilla.redhat.com/1019889" 4
.IX Item "https://bugzilla.redhat.com/1019889"
libguestfs\-tools.conf should have a man page
.IP "https://bugzilla.redhat.com/1018149" 4
.IX Item "https://bugzilla.redhat.com/1018149"
valgrind errors in btrfs_subvolume_list
.IP "https://bugzilla.redhat.com/1002032" 4
.IX Item "https://bugzilla.redhat.com/1002032"
mke2fs can't return the correct filesystem type when blockscount is less than 2048 for ext3
.IP "https://bugzilla.redhat.com/1001876" 4
.IX Item "https://bugzilla.redhat.com/1001876"
Update \*(L"rsync-out\*(R" helpout for using wildcard
.IP "https://bugzilla.redhat.com/1001875" 4
.IX Item "https://bugzilla.redhat.com/1001875"
Argument 'excludes' of tar-out does not work
.IP "https://bugzilla.redhat.com/1000428" 4
.IX Item "https://bugzilla.redhat.com/1000428"
virt-format uses wrong partition type for vfat filesystems
.IP "https://bugzilla.redhat.com/1000121" 4
.IX Item "https://bugzilla.redhat.com/1000121"
\&'sh' command before mount causes daemon to segfault
.IP "https://bugzilla.redhat.com/998513" 4
.IX Item "https://bugzilla.redhat.com/998513"
guestfish does not work when you mix \-\-remote and \-\-add options
.IP "https://bugzilla.redhat.com/998482" 4
.IX Item "https://bugzilla.redhat.com/998482"
guestfish remote prints \*(L"libguestfs: error: waitpid (qemu): No child processes\*(R"
.IP "https://bugzilla.redhat.com/995711" 4
.IX Item "https://bugzilla.redhat.com/995711"
list-filesystems command fails if there are no block devices
.IP "https://bugzilla.redhat.com/994517" 4
.IX Item "https://bugzilla.redhat.com/994517"
cache=none/O_DIRECT workaround doesn't work for images with backing files
.IP "https://bugzilla.redhat.com/989356" 4
.IX Item "https://bugzilla.redhat.com/989356"
cap-get-file will return error if the file has not be set capabilities
.IP "https://bugzilla.redhat.com/986877" 4
.IX Item "https://bugzilla.redhat.com/986877"
\&\s-1RFE:\s0 Implement set-uuid command
.IP "https://bugzilla.redhat.com/986875" 4
.IX Item "https://bugzilla.redhat.com/986875"
\&\s-1RFE:\s0 Implement set-label for xfs
.IP "https://bugzilla.redhat.com/985269" 4
.IX Item "https://bugzilla.redhat.com/985269"
Can't set acl value for a specified user with 'acl\-set\-file'
.IP "https://bugzilla.redhat.com/983218" 4
.IX Item "https://bugzilla.redhat.com/983218"
libguestfs double free when kernel link fails during launch
.IP "https://bugzilla.redhat.com/981715" 4
.IX Item "https://bugzilla.redhat.com/981715"
Make xfs filesystem failed with specified blocksize, gives \*(L"unknown option \-b\*(R" error
.IP "https://bugzilla.redhat.com/981683" 4
.IX Item "https://bugzilla.redhat.com/981683"
\&\*(L"hivex-commit\*(R" should fail with a relative path
.IP "https://bugzilla.redhat.com/981663" 4
.IX Item "https://bugzilla.redhat.com/981663"
disk-format \*(L"qemu-img info: \s-1JSON\s0 parse error\*(R" when target file does not exist
.IP "https://bugzilla.redhat.com/978302" 4
.IX Item "https://bugzilla.redhat.com/978302"
mke2fs\-J should give a meaningful error when specified type is anything except 'ext{2,3,4}'
.IP "https://bugzilla.redhat.com/975797" 4
.IX Item "https://bugzilla.redhat.com/975797"
Specifying virtio interface ('iface' parameter) breaks the direct backend \- libguestfs hangs
.IP "https://bugzilla.redhat.com/975753" 4
.IX Item "https://bugzilla.redhat.com/975753"
\&\*(L"virt-resize \-\-expand\*(R" and \*(L"virt-resize \-\-resize\*(R" outputs error message for Win2008 32bit \s-1OS\s0
.IP "https://bugzilla.redhat.com/975412" 4
.IX Item "https://bugzilla.redhat.com/975412"
inspection: Augeas expressions are broken with augeas >= 0.10
.IP "https://bugzilla.redhat.com/974904" 4
.IX Item "https://bugzilla.redhat.com/974904"
virt-resize \-\-expand fails on Ubuntu Cloud Image
.IP "https://bugzilla.redhat.com/974489" 4
.IX Item "https://bugzilla.redhat.com/974489"
Regression: Fedora inspection broken by change from guestfs_exists to guestfs_is_file
.IP "https://bugzilla.redhat.com/972775" 4
.IX Item "https://bugzilla.redhat.com/972775"
txz-out command produces a bzip2\-compressed file (should be xz-compressed)
.IP "https://bugzilla.redhat.com/969845" 4
.IX Item "https://bugzilla.redhat.com/969845"
upload to a directory occasionally hangs instead of failing
.IP "https://bugzilla.redhat.com/968875" 4
.IX Item "https://bugzilla.redhat.com/968875"
virt-sysprep should support URL-type arguments
.IP "https://bugzilla.redhat.com/624334" 4
.IX Item "https://bugzilla.redhat.com/624334"
blockdev-setbsz succeeds, but does not affect blockdev-getbsz
.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 "AUTHOR"
.IX Header "AUTHOR"
Richard W.M. Jones
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (C) 2009\-2020 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 \s-1GNU\s0 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
\&\s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0  See the \s-1GNU\s0
General Public License for more details.
.PP
You should have received a copy of the \s-1GNU\s0 General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, \s-1MA 02110\-1301 USA.\s0
.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.
