.\" Automatically generated by Podwrapper::Man 1.44.0 (Pod::Simple 3.40) .\" .\" 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.30 1" .TH guestfs-release-notes-1.30 1 "2021-01-05" "libguestfs-1.44.0" "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.30" .IX Header "RELEASE NOTES FOR LIBGUESTFS 1.30" These release notes only cover the differences from the previous stable/dev branch split (1.28.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. .SS "New features" .IX Subsection "New features" \fINew tools\fR .IX Subsection "New tools" .PP \&\fBvirt\-dib\fR\|(1) is a secure and safe alternative to the OpenStack \&\*(L"diskimage-builder\*(R" tool. It is compatible with diskimage-builder elements. (Pino Toscano) .PP \&\fBvirt\-get\-kernel\fR\|(1) extracts the kernel and ramdisk from a disk image. Previously this functionality was part of \fBvirt\-builder\fR\|(1), but the new tool is more featureful. (Pino Toscano) .PP \fINew features in existing tools\fR .IX Subsection "New features in existing tools" .PP \&\fBvirt\-v2v\fR\|(1) \fI\-i ova\fR mode can now read a wider range of \s-1OVA\s0 files, and also unpacked files (directories). .PP virt\-v2v now securely passes options to curl, so passwords, cookies and so on cannot be seen by users with shell access on the same machine. .PP virt\-v2v has a new \fI\-\-password\-file\fR option to allow you to securely pass in a password, and to avoid an interactive prompt. .PP virt\-v2v disables Windows autoreboot, making debugging conversion failures on Windows easier. .PP virt\-v2v now comes with an extensive external test suite. See \fBvirt\-v2v\-test\-harness\fR\|(1). .PP virt\-v2v allows virtio drivers to come from any location (Roman Kagan), and drivers can be read directly from the virtio \s-1ISO.\s0 .PP virt\-v2v supports conversion of Windows ≥ 8. Note this is experimental, and possibly broken. Use with caution. .PP virt\-v2v can now convert \s-1UEFI\s0 guests. .PP \&\fBvirt\-p2v\fR\|(1) adds a network configuration dialog. .PP virt\-p2v now has \f(CW\*(C`p2v.pre\*(C'\fR, \f(CW\*(C`p2v.post\*(C'\fR and \f(CW\*(C`p2v.fail\*(C'\fR triggers, allowing arbitrary scripts for preparing the host for conversion and tidying up post-conversion. .PP virt\-p2v now uses the more advanced metacity window manager (instead of matchbox). .PP \&\fBvirt\-sysprep\fR\|(1) will remove \f(CW\*(C`/var/spool/mail/username\*(C'\fR for non-root accounts (Hu Tao). .PP \&\fBvirt\-customize\fR\|(1), \fBvirt\-builder\fR\|(1) and virt-sysprep have the following new options: .IP "\fI\-\-commands\-from\-file\fR" 4 .IX Item "--commands-from-file" allow long lists of commands to be read from a file instead of from the command line (Pino Toscano) .IP "\fI\-\-copy\fR" 4 .IX Item "--copy" copy files inside the guest (Maros Zatko) .IP "\fI\-\-copy\-in\fR" 4 .IX Item "--copy-in" copy host files recursively into the guest (Pino Toscano) .IP "\fI\-\-move\fR" 4 .IX Item "--move" move files inside the guest (Maros Zatko) .IP "\fI\-\-ssh\-inject\fR" 4 .IX Item "--ssh-inject" inject \s-1SSH\s0 keys into a guest (Pino Toscano) .IP "\fI\-\-sm\-attach\fR" 4 .IX Item "--sm-attach" .PD 0 .IP "\fI\-\-sm\-credentials\fR" 4 .IX Item "--sm-credentials" .IP "\fI\-\-sm\-register\fR" 4 .IX Item "--sm-register" .IP "\fI\-\-sm\-remove\fR" 4 .IX Item "--sm-remove" .IP "\fI\-\-sm\-unregister\fR" 4 .IX Item "--sm-unregister" .PD register and unregister a guest from subscription-manager (Pino Toscano) .IP "\fI\-\-touch\fR" 4 .IX Item "--touch" touch a file in the guest (Pino Toscano) .IP "\fI\-\-truncate\fR" 4 .IX Item "--truncate" .PD 0 .IP "\fI\-\-truncate\-recursive\fR" 4 .IX Item "--truncate-recursive" .PD truncate files (Maros Zatko) .PP Improvements to virt-customize firstboot support. In particular, Windows firstboot should work as well as Linux (Roman Kagan). .PP \&\fBvirt\-df\fR\|(1) can now use PolicyKit, \s-1SASL\s0 and other authentication methods when getting the list of domains from libvirt. .PP Improvements to guestfish bash completion (Pino Toscano). .PP Bash completion now completes short options as well as long options (Pino Toscano). .PP \&\fBguestfish\fR\|(1) now displays a command synopsis if the number of parameters given to a command is wrong (Hu Tao). .PP virt-builder now supports Red Hat Enterprise Linux versions back to \s-1RHEL 3.\s0 .PP virt-builder supports \s-1SUSE\s0 guests using zypper (Cédric Bosdonnat). .PP \fILanguage bindings\fR .IX Subsection "Language bindings" .PP The Java bindings now include validated Javadoc, and other improvements (Pino Toscano). .PP Multiple fixes and improvements to the \s-1PHP\s0 bindings (Pino Toscano). .PP \fIInspection\fR .IX Subsection "Inspection" .PP Inspection can now get icons from \s-1RHEL 7\s0 and CentOS 7. .PP \&\fI/etc/favicon.png\fR is now allowed to be a symbolic link. .PP For RPM-based guests, inspection now returns \s-1RPM\s0 Epoch fields. .PP Debian packages now have separate Epoch and Version fields (Nikos Skalkotos). .PP OpenBSD detection added, FreeBSD and NetBSD added as separate \&\*(L"distros\*(R", and other \s-1BSD\s0 inspection improvements and bug fixes (Nikos Skalkotos). .PP CoreOS detection added (Nikos Skalkotos). .PP The package manager in Fedora ≥ 22 is \f(CW\*(C`dnf\*(C'\fR. .PP ReactOS guests can be inspected (Maros Zatko). .PP Add support for \s-1UEFI\s0 guests. .PP Inspection now works when kernel modules are gzip or xz compressed (Pino Toscano). .PP Inspection now recognizes ppc64 and ppc64le guests (Maros Zatko). .PP Inspection lists the installed applications on Archlinux guests (Nikos Skalkotos). .PP \fIArchitectures and platforms\fR .IX Subsection "Architectures and platforms" .PP \&\s-1PPC64\s0 (\s-1POWER7\s0) and \s-1PPC64LE\s0 (\s-1POWER8\s0) architectures are now much better supported, and should work out of the box. .PP For aarch64, we use \s-1AAVMF\s0 (an open source \s-1UEFI\s0 implementation based on \&\s-1OVMF\s0) if available to run the appliance. .PP For armv7, we now use the \fI\-M virt\fR machine type by default. .PP There is better support for compiling on non-Linux platforms (Pino Toscano, Margaret Lewicka). .PP Libguestfs should now work on \s-1MIPS 32\s0 bit little endian (\*(L"mipsel\*(R"). I have not been able to try 64 bit or big endian. .SS "Security" .IX Subsection "Security" .IP "\s-1CVE\-2014\-8484\s0" 4 .IX Item "CVE-2014-8484" .PD 0 .IP "\s-1CVE\-2014\-8485\s0" 4 .IX Item "CVE-2014-8485" .PD Libguestfs previously ran the \fBstrings\fR\|(1) utility on untrusted files. Strings could parse \s-1BFD\s0 headers in an unsafe way, leading to possible arbitrary code execution. Libguestfs now runs strings with a flag to ensure it does not try to parse \s-1BFD\s0 headers. This could have led to exploitation of the libguestfs appliance, but since libguestfs further constrains the appliance through virtualization, SELinux and other techniques, it was unlikely to have caused any privilege escalation on the host. .IP "XPath injection in virt\-v2v" 4 .IX Item "XPath injection in virt-v2v" One possible XPath injection vulnerability was fixed in virt\-v2v. This might have allowed a malicious guest which was being converted by virt\-v2v to construct an arbitrary XPath expression which would have been evaluated on the host (by the libxml2 library linked to the virt\-v2v binary). It is not clear what the effects of this might be. .Sp For further information, see upstream commit https://github.com/libguestfs/libguestfs/commit/6c6ce85f94c36803fe2db35a98db436bff0c14b0 .ie n .IP "Denial of service problems when using ""qemu\-img info""" 4 .el .IP "Denial of service problems when using \f(CWqemu\-img info\fR" 4 .IX Item "Denial of service problems when using qemu-img info" When using the American Fuzzy Lop fuzzer (\f(CW\*(C`afl\-fuzz\*(C'\fR) on the \&\f(CW\*(C`qemu\-img info\*(C'\fR command, Richard W.M. Jones found that certain files can cause the \f(CW\*(C`qemu\-img\*(C'\fR program to use lots of memory and time (for example 6GB of heap and 14 seconds of \s-1CPU\s0 time on a fast Intel processor), and in some cases to crash. Since libguestfs may run \&\f(CW\*(C`qemu\-img info\*(C'\fR on disk images to find out what they contain, this transitively could cause libguestfs to hang or consume lots of memory. .Sp Libguestfs was modified so that it uses resource limits to limit the space and time used by \f(CW\*(C`qemu\-img info\*(C'\fR, to avoid this problem. If a malicious user tries to pass one of these disk images to libguestfs, \&\f(CW\*(C`qemu\-img\*(C'\fR will crash and the crash is reported back to libguestfs callers as an error message. .SS "\s-1API\s0" .IX Subsection "API" \fINew APIs\fR .IX Subsection "New APIs" .ie n .IP """guestfs_add_libvirt_dom""" 4 .el .IP "\f(CWguestfs_add_libvirt_dom\fR" 4 .IX Item "guestfs_add_libvirt_dom" This exposes a previously private \s-1API\s0 that allows you to pass a \&\f(CW\*(C`virDomainPtr\*(C'\fR object directly from libvirt to libguestfs. .ie n .IP """guestfs_blockdev_setra""" 4 .el .IP "\f(CWguestfs_blockdev_setra\fR" 4 .IX Item "guestfs_blockdev_setra" Adjust readahead parameter for devices. See \f(CW\*(C`blockdev \-\-setra\*(C'\fR command. .ie n .IP """guestfs_btrfs_balance""" 4 .el .IP "\f(CWguestfs_btrfs_balance\fR" 4 .IX Item "guestfs_btrfs_balance" .PD 0 .ie n .IP """guestfs_btrfs_balance_cancel""" 4 .el .IP "\f(CWguestfs_btrfs_balance_cancel\fR" 4 .IX Item "guestfs_btrfs_balance_cancel" .ie n .IP """guestfs_btrfs_balance_pause""" 4 .el .IP "\f(CWguestfs_btrfs_balance_pause\fR" 4 .IX Item "guestfs_btrfs_balance_pause" .ie n .IP """guestfs_btrfs_balance_resume""" 4 .el .IP "\f(CWguestfs_btrfs_balance_resume\fR" 4 .IX Item "guestfs_btrfs_balance_resume" .ie n .IP """guestfs_btrfs_balance_status""" 4 .el .IP "\f(CWguestfs_btrfs_balance_status\fR" 4 .IX Item "guestfs_btrfs_balance_status" .PD Balance support for Btrfs filesystems (Hu Tao). .ie n .IP """guestfs_btrfs_filesystem_defragment""" 4 .el .IP "\f(CWguestfs_btrfs_filesystem_defragment\fR" 4 .IX Item "guestfs_btrfs_filesystem_defragment" Filesystem defragmentation support for Btrfs filesystems (Hu Tao). .ie n .IP """guestfs_btrfs_image""" 4 .el .IP "\f(CWguestfs_btrfs_image\fR" 4 .IX Item "guestfs_btrfs_image" Create an image of a Btrfs filesystem (Chen Hanxiao) .ie n .IP """guestfs_btrfs_qgroup_assign""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_assign\fR" 4 .IX Item "guestfs_btrfs_qgroup_assign" .PD 0 .ie n .IP """guestfs_btrfs_qgroup_create""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_create\fR" 4 .IX Item "guestfs_btrfs_qgroup_create" .ie n .IP """guestfs_btrfs_qgroup_destroy""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_destroy\fR" 4 .IX Item "guestfs_btrfs_qgroup_destroy" .ie n .IP """guestfs_btrfs_qgroup_limit""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_limit\fR" 4 .IX Item "guestfs_btrfs_qgroup_limit" .ie n .IP """guestfs_btrfs_qgroup_remove""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_remove\fR" 4 .IX Item "guestfs_btrfs_qgroup_remove" .ie n .IP """guestfs_btrfs_qgroup_show""" 4 .el .IP "\f(CWguestfs_btrfs_qgroup_show\fR" 4 .IX Item "guestfs_btrfs_qgroup_show" .ie n .IP """guestfs_btrfs_quota_enable""" 4 .el .IP "\f(CWguestfs_btrfs_quota_enable\fR" 4 .IX Item "guestfs_btrfs_quota_enable" .ie n .IP """guestfs_btrfs_quota_rescan""" 4 .el .IP "\f(CWguestfs_btrfs_quota_rescan\fR" 4 .IX Item "guestfs_btrfs_quota_rescan" .PD Quote support for Btrfs filesystems (Hu Tao). .ie n .IP """guestfs_btrfs_rescue_chunk_recover""" 4 .el .IP "\f(CWguestfs_btrfs_rescue_chunk_recover\fR" 4 .IX Item "guestfs_btrfs_rescue_chunk_recover" Scan and recover the chunk tree in Btrfs filesystems (Hu Tao). .ie n .IP """guestfs_btrfs_rescue_super_recover""" 4 .el .IP "\f(CWguestfs_btrfs_rescue_super_recover\fR" 4 .IX Item "guestfs_btrfs_rescue_super_recover" Restore superblocks in Btrfs filesystems (Hu Tao). .ie n .IP """guestfs_btrfs_replace""" 4 .el .IP "\f(CWguestfs_btrfs_replace\fR" 4 .IX Item "guestfs_btrfs_replace" Replace a device in a Btrfs filesystem (Cao Jin). .ie n .IP """guestfs_btrfs_scrub""" 4 .el .IP "\f(CWguestfs_btrfs_scrub\fR" 4 .IX Item "guestfs_btrfs_scrub" .PD 0 .ie n .IP """guestfs_btrfs_scrub_cancel""" 4 .el .IP "\f(CWguestfs_btrfs_scrub_cancel\fR" 4 .IX Item "guestfs_btrfs_scrub_cancel" .ie n .IP """guestfs_btrfs_scrub_resume""" 4 .el .IP "\f(CWguestfs_btrfs_scrub_resume\fR" 4 .IX Item "guestfs_btrfs_scrub_resume" .ie n .IP """guestfs_btrfs_scrub_status""" 4 .el .IP "\f(CWguestfs_btrfs_scrub_status\fR" 4 .IX Item "guestfs_btrfs_scrub_status" .PD Scrub a Btrfs filesystem (Hu Tao). .ie n .IP """guestfs_btrfs_subvolume_get_default""" 4 .el .IP "\f(CWguestfs_btrfs_subvolume_get_default\fR" 4 .IX Item "guestfs_btrfs_subvolume_get_default" Get the default subvolume of a Btrfs filesystem (Hu Tao). .ie n .IP """guestfs_btrfs_subvolume_show""" 4 .el .IP "\f(CWguestfs_btrfs_subvolume_show\fR" 4 .IX Item "guestfs_btrfs_subvolume_show" List detailed information about the subvolume of a Btrfs filesystem (Hu Tao). .ie n .IP """guestfs_btrfstune_enable_extended_inode_refs""" 4 .el .IP "\f(CWguestfs_btrfstune_enable_extended_inode_refs\fR" 4 .IX Item "guestfs_btrfstune_enable_extended_inode_refs" .PD 0 .ie n .IP """guestfs_btrfstune_enable_skinny_metadata_extent_refs""" 4 .el .IP "\f(CWguestfs_btrfstune_enable_skinny_metadata_extent_refs\fR" 4 .IX Item "guestfs_btrfstune_enable_skinny_metadata_extent_refs" .ie n .IP """guestfs_btrfstune_seeding""" 4 .el .IP "\f(CWguestfs_btrfstune_seeding\fR" 4 .IX Item "guestfs_btrfstune_seeding" .PD Various tuning parameters for Btrfs filesystems (Chen Hanxiao). .ie n .IP """guestfs_c_pointer""" 4 .el .IP "\f(CWguestfs_c_pointer\fR" 4 .IX Item "guestfs_c_pointer" Return the C pointer to the underlying \f(CW\*(C`guestfs_h *\*(C'\fR. This allows interworking of libguestfs bindings with bindings from other libraries. For further information see https://bugzilla.redhat.com/1075164 .ie n .IP """guestfs_copy_in""" 4 .el .IP "\f(CWguestfs_copy_in\fR" 4 .IX Item "guestfs_copy_in" .PD 0 .ie n .IP """guestfs_copy_out""" 4 .el .IP "\f(CWguestfs_copy_out\fR" 4 .IX Item "guestfs_copy_out" .PD Flexible APIs for recursively copying directories of files between the host and guest filesystem. Previously these were available only as guestfish commands, but now any \s-1API\s0 users can call them (Pino Toscano). .ie n .IP """guestfs_part_get_gpt_guid""" 4 .el .IP "\f(CWguestfs_part_get_gpt_guid\fR" 4 .IX Item "guestfs_part_get_gpt_guid" .PD 0 .ie n .IP """guestfs_part_set_gpt_guid""" 4 .el .IP "\f(CWguestfs_part_set_gpt_guid\fR" 4 .IX Item "guestfs_part_set_gpt_guid" .PD Get and set the \s-1GPT\s0 per-partition \s-1GUID.\s0 .ie n .IP """guestfs_part_get_mbr_part_type""" 4 .el .IP "\f(CWguestfs_part_get_mbr_part_type\fR" 4 .IX Item "guestfs_part_get_mbr_part_type" Get \s-1MBR\s0 partition type (Chen Hanxiao). .ie n .IP """guestfs_set_uuid_random""" 4 .el .IP "\f(CWguestfs_set_uuid_random\fR" 4 .IX Item "guestfs_set_uuid_random" Set the \s-1UUID\s0 of a filesystem to a randomly generated value; supported filesystems currently are ext2/3/4, \s-1XFS,\s0 Btrfs, and swap partitions. (Chen Hanxiao). .PP \fIOther \s-1API\s0 changes\fR .IX Subsection "Other API changes" .PP \&\f(CW\*(C`guestfs_disk_create\*(C'\fR can now use \s-1VMDK\s0 files as backing files. .PP \&\f(CW\*(C`guestfs_btrfs_subvolume_snapshot\*(C'\fR takes extra optional parameters (all added by Hu Tao): .ie n .IP """ro""" 4 .el .IP "\f(CWro\fR" 4 .IX Item "ro" for creating a read-only Btrfs snapshot .ie n .IP """qgroupid""" 4 .el .IP "\f(CWqgroupid\fR" 4 .IX Item "qgroupid" for adding the snapshot to a qgroup .PP \&\f(CW\*(C`guestfs_btrfs_subvolume_create\*(C'\fR can also take the optional \&\f(CW\*(C`qgroupid\*(C'\fR parameter (Hu Tao). .PP \&\f(CW\*(C`guestfs_set_uuid\*(C'\fR can set \s-1UUID\s0 of swap partitions, Btrfs (Hu Tao, Chen Hanxiao). .PP \&\f(CW\*(C`guestfs_copy_device_to_file\*(C'\fR and \f(CW\*(C`guestfs_copy_file_to_file\*(C'\fR have a new optional \f(CW\*(C`append\*(C'\fR parameter, allowing you to append to the output file instead of truncating it. .PP \&\f(CW\*(C`guestfs_mkfs\*(C'\fR has a new optional \f(CW\*(C`label\*(C'\fR parameter to set the initial label of the new filesystem (Pino Toscano). .PP \&\f(CW\*(C`guestfs_set_label\*(C'\fR and \f(CW\*(C`guestfs_set_uuid\*(C'\fR now set \f(CW\*(C`ENOTSUP\*(C'\fR as errno when there is no implemented support for the filesystem of the specified mountable (Chen Hanxiao). .PP Environment variables now let you write \f(CW\*(C`LIBGUESTFS_DEBUG=true\*(C'\fR, \&\f(CW\*(C`LIBGUESTFS_DEBUG=0\*(C'\fR and so on. .PP All \f(CW\*(C`guestfs_sfdisk*\*(C'\fR APIs have been deprecated. Because \&\fBsfdisk\fR\|(8) was rewritten, incompatibly, upstream, we don't recommend using these APIs in future code. Use the \f(CW\*(C`guestfs_part*\*(C'\fR APIs as replacements. .PP APIs such as \f(CW\*(C`guestfs_download\*(C'\fR do not truncate \fI/dev/stdout\fR or \&\fI/dev/stderr\fR when writing to them, meaning that if you redirect stdout or stderr to a file, the file is no longer truncated. .SS "Build changes" .IX Subsection "Build changes" The daemon no longer uses its own separate copy of gnulib. Instead it shares a single copy with the library. .PP OCaml \fI.annot\fR files are now created, so IDEs and editors like emacs and vi can browse OCaml types in the source code. .PP Various fixes to allow different host/appliance architecture builds (Pino Toscano). .PP Automake is now used directly to build all the OCaml programs, instead of ad hoc Makefile rules. One side effect of this is to enable warnings in all the C code used by OCaml programs. .PP \&\f(CW\*(C`\-fno\-strict\-overflow\*(C'\fR is used throughout the build to avoid dubious \&\s-1GCC\s0 optimizations. .PP Multiple cleanups to support \s-1GCC 5.\s0 .PP OCaml OUnit2 is needed to run some OCaml tests. .PP Creating a statically linked \fIlibguestfs.a\fR should work again. .PP The \fIsrc/api\-support\fR subdirectory and its scripts are no longer used. Instead we store in the \fIgenerator/actions.ml\fR when the \s-1API\s0 was added to libguestfs. .SS "Internationalization" .IX Subsection "Internationalization" The translation service has changed from Transifex to Zanata. .PP Many more translations are available now, for both library and tools messages and documentation. .SS "Internals" .IX Subsection "Internals" In all OCaml tools, there are now common \f(CW\*(C`error\*(C'\fR, \f(CW\*(C`warning\*(C'\fR, \f(CW\*(C`info\*(C'\fR functions, and common way to set and get the \fI\-\-quiet\fR, \fI\-x\fR (trace) and \fI\-v\fR (verbose) flags, and colour highlighting used consistently. .PP \&\f(CW\*(C`COMPILE_REGEXP\*(C'\fR macros are used to simplify \s-1PCRE\s0 constructors and destructors. .PP In the generator, \f(CW\*(C`Pointer\*(C'\fR arguments have finally been implemented. .PP Internal identifiers no longer use double and triple underscores (eg. \f(CW\*(C`guestfs_\|_\|_program_name\*(C'\fR). These identifiers are invalid for C99 and \*(C+ programs, although compilers would accept them. .PP The daemon no longer parses \f(CW\*(C`guestfs_*\*(C'\fR options from \&\fI/proc/cmdline\fR. Instead it only takes ordinary command line options. The appliance init script turns \fI/proc/cmdline\fR into daemon command line options. .PP The tests can now run the daemon as a \*(L"captive process\*(R", allowing it to be run directly on the host. The main advantage of this is we can run valgrind directly on the daemon during testing. .SS "Bugs fixed" .IX Subsection "Bugs fixed" .IP "https://bugzilla.redhat.com/1239053" 4 .IX Item "https://bugzilla.redhat.com/1239053" virt\-v2v error reporting when grub.conf cannot be parsed by Augeas .IP "https://bugzilla.redhat.com/1238053" 4 .IX Item "https://bugzilla.redhat.com/1238053" v2v:Duplicate disk target set when convert guest with cdrom attached .IP "https://bugzilla.redhat.com/1237869" 4 .IX Item "https://bugzilla.redhat.com/1237869" Virtio drivers are not installed for windows 2008 guests by virt\-v2v .IP "https://bugzilla.redhat.com/1234351" 4 .IX Item "https://bugzilla.redhat.com/1234351" virt\-v2v Support for Fedora virtio-win drivers .IP "https://bugzilla.redhat.com/1232192" 4 .IX Item "https://bugzilla.redhat.com/1232192" Virt\-v2v gives an error on a blank disk: part_get_parttype: unknown signature, of the output: \s-1BYT\s0; .IP "https://bugzilla.redhat.com/1229385" 4 .IX Item "https://bugzilla.redhat.com/1229385" virt\-p2v in kernel command line mode should power off the machine after conversion .IP "https://bugzilla.redhat.com/1229340" 4 .IX Item "https://bugzilla.redhat.com/1229340" virt\-p2v no \s-1GUI\s0 mode appends \en to the final command line parameter .IP "https://bugzilla.redhat.com/1229305" 4 .IX Item "https://bugzilla.redhat.com/1229305" virt-sysprep at cleanup deletes /var/spool/at/.SEQ which results in failing at .IP "https://bugzilla.redhat.com/1226794" 4 .IX Item "https://bugzilla.redhat.com/1226794" \&\*(L"Doing conversion……\*(R" still shows after cancel the conversion from virt\-p2v client .IP "https://bugzilla.redhat.com/1215042" 4 .IX Item "https://bugzilla.redhat.com/1215042" Memory leak in virNetSocketNewConnectUNIX .IP "https://bugzilla.redhat.com/1213324" 4 .IX Item "https://bugzilla.redhat.com/1213324" virt\-v2v: warning: unknown guest operating system: windows windows 6.3 when converting win8,win8.1,win2012,win2012R2 to rhev .IP "https://bugzilla.redhat.com/1213247" 4 .IX Item "https://bugzilla.redhat.com/1213247" virt tools should print the same format of version string .IP "https://bugzilla.redhat.com/1212808" 4 .IX Item "https://bugzilla.redhat.com/1212808" \&\s-1RFE:\s0 virt-builder \-\-touch .IP "https://bugzilla.redhat.com/1212807" 4 .IX Item "https://bugzilla.redhat.com/1212807" virt-builder \-\-selinux\-relabel flag fails on cross-architecture builds .IP "https://bugzilla.redhat.com/1212680" 4 .IX Item "https://bugzilla.redhat.com/1212680" \&\s-1RFE:\s0 virt-inspector xpath query should output a neat format of the query element .IP "https://bugzilla.redhat.com/1212152" 4 .IX Item "https://bugzilla.redhat.com/1212152" virt-builder firstboot-command fails: File name too long .IP "https://bugzilla.redhat.com/1211996" 4 .IX Item "https://bugzilla.redhat.com/1211996" virt-inspector gives incorrect arch (ppc64) for ppc64le guest .IP "https://bugzilla.redhat.com/1203817" 4 .IX Item "https://bugzilla.redhat.com/1203817" \&\s-1RFE:\s0 virt-customize \-\-move and \-\-copy .IP "https://bugzilla.redhat.com/1201526" 4 .IX Item "https://bugzilla.redhat.com/1201526" index-parser can't parse systemd mount files properly .IP "https://bugzilla.redhat.com/1196101" 4 .IX Item "https://bugzilla.redhat.com/1196101" virt-builder \-\-upload option doesn't work to a \s-1FAT\s0 partition .IP "https://bugzilla.redhat.com/1196100" 4 .IX Item "https://bugzilla.redhat.com/1196100" virt-builder \-x option on its own does not enable tracing .IP "https://bugzilla.redhat.com/1195204" 4 .IX Item "https://bugzilla.redhat.com/1195204" `virt\-builder` should create \f(CW$HOME\fR/.cache directory if it already doesn't exist .IP "https://bugzilla.redhat.com/1193237" 4 .IX Item "https://bugzilla.redhat.com/1193237" Virt-builder fingerprint is required even when no check desired .IP "https://bugzilla.redhat.com/1189284" 4 .IX Item "https://bugzilla.redhat.com/1189284" virt-resize should preserve \s-1GPT\s0 partition UUIDs, else \s-1EFI\s0 guests become unbootable .IP "https://bugzilla.redhat.com/1188866" 4 .IX Item "https://bugzilla.redhat.com/1188866" Performance regression in virt-builder when uncompressing image .IP "https://bugzilla.redhat.com/1186800" 4 .IX Item "https://bugzilla.redhat.com/1186800" virt\-v2v should support gzip format ova as input .IP "https://bugzilla.redhat.com/1185561" 4 .IX Item "https://bugzilla.redhat.com/1185561" virt-sparsify should ignore read-only LVs .IP "https://bugzilla.redhat.com/1182463" 4 .IX Item "https://bugzilla.redhat.com/1182463" \&\*(L"mknod-b\*(R", \*(L"mknod-c\*(R", and \*(L"mkfifo\*(R" do not strip non-permissions bits from \*(L"mode\*(R" .IP "https://bugzilla.redhat.com/1176493" 4 .IX Item "https://bugzilla.redhat.com/1176493" virt\-v2v ignores sound device when convert xen guest to local kvm .IP "https://bugzilla.redhat.com/1175676" 4 .IX Item "https://bugzilla.redhat.com/1175676" Typo error in 'help ping\-daemon' .IP "https://bugzilla.redhat.com/1175196" 4 .IX Item "https://bugzilla.redhat.com/1175196" \&\*(L"parse-environment\*(R" and \*(L"parse-environment-list\*(R" fail to parse \*(L"\s-1LIBGUESTFS_TRACE\s0 = 0\*(R" .IP "https://bugzilla.redhat.com/1175035" 4 .IX Item "https://bugzilla.redhat.com/1175035" \&\*(L"is\-blockdev\*(R"/\*(L"is\-blockdev\-opts\*(R" fail to detect \*(L"/dev/sda\*(R" .IP "https://bugzilla.redhat.com/1174280" 4 .IX Item "https://bugzilla.redhat.com/1174280" \&\s-1RFE:\s0 Allow v2v conversion of Oracle Linux 5.8 VMware \s-1VM\s0 .IP "https://bugzilla.redhat.com/1174200" 4 .IX Item "https://bugzilla.redhat.com/1174200" New virt\-v2v failure: \s-1CURL:\s0 Error opening file: \s-1NSS:\s0 client certificate not found (nickname not specified): Invalid argument .IP "https://bugzilla.redhat.com/1174123" 4 .IX Item "https://bugzilla.redhat.com/1174123" Graphics password disappear after conversion of virt\-v2v .IP "https://bugzilla.redhat.com/1174073" 4 .IX Item "https://bugzilla.redhat.com/1174073" The listen address for vnc is changed after conversion by virt\-v2v .IP "https://bugzilla.redhat.com/1171666" 4 .IX Item "https://bugzilla.redhat.com/1171666" inspection thinks \s-1EFI\s0 partition is a separate operating system .IP "https://bugzilla.redhat.com/1171130" 4 .IX Item "https://bugzilla.redhat.com/1171130" virt\-v2v conversion of \s-1RHEL 3\s0 guest fails with: All of your loopback devices are in use .IP "https://bugzilla.redhat.com/1170685" 4 .IX Item "https://bugzilla.redhat.com/1170685" Conversion of \s-1RHEL 4\s0 guest fails: rpm \-ql 1:kernel\-utils\-2.4\-23.el4: virt\-v2v: error: libguestfs error: command_lines: .IP "https://bugzilla.redhat.com/1170073" 4 .IX Item "https://bugzilla.redhat.com/1170073" virt\-v2v picks debug kernels over non-debug kernels when versions are equal .IP "https://bugzilla.redhat.com/1169045" 4 .IX Item "https://bugzilla.redhat.com/1169045" virt-sparsify: libguestfs error: qemu-img info: 'virtual\-size' is not representable as a 64 bit integer .IP "https://bugzilla.redhat.com/1169015" 4 .IX Item "https://bugzilla.redhat.com/1169015" virt-resize \-\-expand fails on ubuntu\-14.04.img image (regression) .IP "https://bugzilla.redhat.com/1168144" 4 .IX Item "https://bugzilla.redhat.com/1168144" warning: fstrim: fstrim: /sysroot/: \s-1FITRIM\s0 ioctl failed: Operation not supported (ignored) when convert win2003 guest from xen server .IP "https://bugzilla.redhat.com/1167921" 4 .IX Item "https://bugzilla.redhat.com/1167921" p2v: No Network Connection dialog .IP "https://bugzilla.redhat.com/1167774" 4 .IX Item "https://bugzilla.redhat.com/1167774" virt\-p2v fails with error:\*(L"nbd.\fBc:nbd_receive_negotiate()\fR:L501: read failed\*(R" .IP "https://bugzilla.redhat.com/1167623" 4 .IX Item "https://bugzilla.redhat.com/1167623" Remove \*(L"If reporting bugs, run virt\-v2v with debugging enabled ..\*(R" message when running virt\-p2v .IP "https://bugzilla.redhat.com/1167601" 4 .IX Item "https://bugzilla.redhat.com/1167601" \&\*(L"Conversion was successful\*(R" pop out even virt\-p2v fails .IP "https://bugzilla.redhat.com/1167302" 4 .IX Item "https://bugzilla.redhat.com/1167302" virt\-v2v: warning: ova hard disk has no parent controller when convert from a ova file .IP "https://bugzilla.redhat.com/1166618" 4 .IX Item "https://bugzilla.redhat.com/1166618" virt-resize should give out the detail warning info to let customers know what's going wrong .IP "https://bugzilla.redhat.com/1165975" 4 .IX Item "https://bugzilla.redhat.com/1165975" File \*(L"/boot/grub2/device.map\*(R" showing is not right after converting a rhel7 guest from esx server .IP "https://bugzilla.redhat.com/1165785" 4 .IX Item "https://bugzilla.redhat.com/1165785" mount-loop command fails: mount failed: Unknown error \-1 .IP "https://bugzilla.redhat.com/1165569" 4 .IX Item "https://bugzilla.redhat.com/1165569" Disable \*(L"cancel conversion\*(R" button after virt\-p2v conversion finished .IP "https://bugzilla.redhat.com/1165564" 4 .IX Item "https://bugzilla.redhat.com/1165564" Provide Reboot/Shutdown button after virt\-p2v .IP "https://bugzilla.redhat.com/1164853" 4 .IX Item "https://bugzilla.redhat.com/1164853" Booting in qemu found no volume groups and failed checking the filesystems .IP "https://bugzilla.redhat.com/1164732" 4 .IX Item "https://bugzilla.redhat.com/1164732" The description of 'help append' is not accurately, it add the kernel options to libguestfs appliance not the guest kernel .IP "https://bugzilla.redhat.com/1164697" 4 .IX Item "https://bugzilla.redhat.com/1164697" typo errors in man pages .IP "https://bugzilla.redhat.com/1164619" 4 .IX Item "https://bugzilla.redhat.com/1164619" Inspect-get-icon failed on \s-1RHEL7\s0 guest .IP "https://bugzilla.redhat.com/1162966" 4 .IX Item "https://bugzilla.redhat.com/1162966" xfs should also give a warning out to let customer know the limitation .IP "https://bugzilla.redhat.com/1161575" 4 .IX Item "https://bugzilla.redhat.com/1161575" Failed to import guest with \*(L"rtl8139\*(R" nic to openstack server after converted by v2v .IP "https://bugzilla.redhat.com/1159651" 4 .IX Item "https://bugzilla.redhat.com/1159651" virt-sysprep firstboot script is not deleted if it reboot a \s-1RHEL 7\s0 guest .IP "https://bugzilla.redhat.com/1159258" 4 .IX Item "https://bugzilla.redhat.com/1159258" esx win2008 32 bit guest fail to load after conversion because the firmware isn't \s-1ACPI\s0 compatible .IP "https://bugzilla.redhat.com/1159016" 4 .IX Item "https://bugzilla.redhat.com/1159016" libvirt backend does not set \s-1RBD\s0 password .IP "https://bugzilla.redhat.com/1158526" 4 .IX Item "https://bugzilla.redhat.com/1158526" Use password file instead of process interaction .IP "https://bugzilla.redhat.com/1157679" 4 .IX Item "https://bugzilla.redhat.com/1157679" virt\-p2v\-make\-disk should add firmwares .IP "https://bugzilla.redhat.com/1156449" 4 .IX Item "https://bugzilla.redhat.com/1156449" libguestfs \s-1FTBFS\s0 on f21 ppc64le .IP "https://bugzilla.redhat.com/1156301" 4 .IX Item "https://bugzilla.redhat.com/1156301" virt-inspector support adding a remote disk, but in its man page \-a \s-1URI /\s0 \-\-add \s-1URI\s0 is missing .IP "https://bugzilla.redhat.com/1155121" 4 .IX Item "https://bugzilla.redhat.com/1155121" Virt\-v2v will fail when using relative path for \-i ova .IP "https://bugzilla.redhat.com/1153844" 4 .IX Item "https://bugzilla.redhat.com/1153844" Redundancy whitespace at the end of directory name when use <\s-1TAB\s0> to complete the directory name in guestfish with a xfs filesystem in guest .IP "https://bugzilla.redhat.com/1153589" 4 .IX Item "https://bugzilla.redhat.com/1153589" virt\-v2v will hang when converting esx guest before disk copy phase .IP "https://bugzilla.redhat.com/1152998" 4 .IX Item "https://bugzilla.redhat.com/1152998" virt\-v2v / qemu-img fails on ova image .IP "https://bugzilla.redhat.com/1151910" 4 .IX Item "https://bugzilla.redhat.com/1151910" virt-ls should remove '/' in the output when specify the directory name as /etc/ .IP "https://bugzilla.redhat.com/1151900" 4 .IX Item "https://bugzilla.redhat.com/1151900" Should also add a field for directory files when run virt-ls with \-\-csv option .IP "https://bugzilla.redhat.com/1151033" 4 .IX Item "https://bugzilla.redhat.com/1151033" virt\-v2v conversions from VMware vCenter server run slowly .IP "https://bugzilla.redhat.com/1146832" 4 .IX Item "https://bugzilla.redhat.com/1146832" virt\-v2v fail to convert guest with disk type volume .IP "https://bugzilla.redhat.com/1146007" 4 .IX Item "https://bugzilla.redhat.com/1146007" Input/output error during conversion of esx guest. .IP "https://bugzilla.redhat.com/1135585" 4 .IX Item "https://bugzilla.redhat.com/1135585" [\s-1RFE\s0] virt-builder should support copying in a directory/list of files .IP "https://bugzilla.redhat.com/1089566" 4 .IX Item "https://bugzilla.redhat.com/1089566" [abrt] livecd-tools: kickstart.py:276:apply:IOError: [Errno 2] No such file or directory: '/run/media/jones/2tp001data/createlive/temp/imgcreate\-_dX8Us/install_root/etc/rpm/macros.imgcreate' .IP "https://bugzilla.redhat.com/1079625" 4 .IX Item "https://bugzilla.redhat.com/1079625" virt-sparsify fails if a btrfs filesystem contains readonly snapshots .IP "https://bugzilla.redhat.com/1075164" 4 .IX Item "https://bugzilla.redhat.com/1075164" \&\s-1RFE:\s0 allow passing in a pre-opened libvirt connection from python .IP "https://bugzilla.redhat.com/912499" 4 .IX Item "https://bugzilla.redhat.com/912499" Security context on image file gets reset .IP "https://bugzilla.redhat.com/889082" 4 .IX Item "https://bugzilla.redhat.com/889082" [\s-1RFE\s0] virt\-v2v should check whether guest with same name exist on target first then transfer the disk .IP "https://bugzilla.redhat.com/855059" 4 .IX Item "https://bugzilla.redhat.com/855059" \&\s-1RFE:\s0 virt\-p2v: display more information about network devices such as topology, bonding, etc. .IP "https://bugzilla.redhat.com/823758" 4 .IX Item "https://bugzilla.redhat.com/823758" p2v client should have largest number restrictions for \s-1CPU\s0 and Memory settings .IP "https://bugzilla.redhat.com/709327" 4 .IX Item "https://bugzilla.redhat.com/709327" hivex cannot read registry hives from ReactOS .IP "https://bugzilla.redhat.com/709326" 4 .IX Item "https://bugzilla.redhat.com/709326" virt-inspector cannot detect ReactOS .IP "https://bugzilla.redhat.com/119673" 4 .IX Item "https://bugzilla.redhat.com/119673" installation via \s-1NFS\s0 doesn't seem to work .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.