.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.54.0 (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 .\" ======================================================================== .\" .IX Title "guestfs-release-notes-1.18 1" .TH guestfs-release-notes-1.18 1 2024-10-08 libguestfs-1.54.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.18" .IX Header "RELEASE NOTES FOR LIBGUESTFS 1.18" These release notes only cover the differences from the previous stable/dev branch split (1.16.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. .SS "New features" .IX Subsection "New features" \fIvirt tools\fR .IX Subsection "virt tools" .PP .Vb 2 \& \- virt\-sysprep has been rewritten and expanded (thanks Wanlong Gao) \& http://libguestfs.org/virt\-sysprep.1.html \& \& \- virt\-sparsify \-\-zero is a new option that zeroes the named \& partition or filesystem \& \& \- virt\-sparsify can now safely sparsify Linux swap partitions \& \& \- virt\-sparsify fixed so it cleans up after ^C \& http://libguestfs.org/virt\-sparsify.1.html \& \& \- a new tool \*(Aqlibguestfs\-make\-fixed\-appliance\*(Aq is provided to build \& fixed appliances that can be copied to other machines that don\*(Aqt \& have febootstrap support \& http://libguestfs.org/libguestfs\-make\-fixed\-appliance.1.html \& \& \- virt\-filesystems now displays the parents (containers) of MD \& devices and volume groups \& \& \- virt\-alignment\-scan, run with no args, displays alignment information \& for all libvirt domains \& \& \- virt\-df and virt\-alignment\-scan will display information from all \& guests even when a disk is inaccessible \& \& \- virt\-rescue new \-\-scratch option to make scratch disks \& https://rwmj.wordpress.com/2012/04/26/virt\-rescue\-scratch/#content \& \& \- virt\-make\-fs can now be used to create btrfs \& \& \- virt\-edit preserves permissions, UID, GID and SELinux context \& when editing files \& \& \- guestfish passes the close event over stdout and remote correctly \& \& \- guestfish new \*(Aq\-\-pipe\-error\*(Aq option lets you detect errors in pipe \& commands \& \& \- guestfish globs now expand device names \& \& \- comma and colon characters in filenames now handled correctly by \& all virt tools .Ve .PP \fIinspection\fR .IX Subsection "inspection" .PP .Vb 1 \& \- added support for Fedora 17+ \& \& \- added support for FreeDOS \& \& \- added support for Buildroot and Cirros \& \& \- inspection is now compatible with Windows guests that have been \& sysprepped (thanks Grant Williamson). .Ve .PP \fIAPI\fR .IX Subsection "API" .PP .Vb 2 \& \- broad support for btrfs added, including adding multiple devices, \& fsck, snapshots (thanks Wanlong Gao) \& \& \- the new \*(Aqmount\-local\*(Aq API brings FUSE support directly into the \& core libguestfs API \& https://rwmj.wordpress.com/2012/05/14/tip\-using\-mount\-local\-api\-from\-c/#content \& \& \- new man page: guestfs\-performance(1), which contains performance \& tuning tips \& http://libguestfs.org/guestfs\-performance.1.html \& \& \- new man page: guestfs\-faq(1), Frequently Asked Questions \& http://libguestfs.org/guestfs\-faq.1.html \& \& \- ENOTSUP (from guestfs_last_errno) is now returned for APIs that \& are not supported .Ve .PP \fIexamples\fR .IX Subsection "examples" .PP .Vb 1 \& \- \*(Aqcopy_over\*(Aq example showing how to copy between two handles \& \& \- \*(Aqdisplay_icon\*(Aq program displays the icon associated with a guest \& \& \- \*(Aqmount_local.c\*(Aq example shows how to use the mount\-local API .Ve .SS Security .IX Subsection "Security" .Vb 1 \& (no security problems were found or fixed in this release) .Ve .SS "New APIs" .IX Subsection "New APIs" .Vb 10 \& btrfs\-device\-add: Add devices to a btrfs filesystem. \& btrfs\-device\-delete: Remove devices from a btrfs filesystem. \& btrfs\-filesystem\-sync: Sync a btrfs filesystem. \& btrfs\-filesystem\-balance: Balance a btrfs filesystem. \& btrfs\-fsck: Check btrfs filesystem. \& btrfs\-set\-seeding: Enable or disable seeding. \& btrfs\-subvolume\-create: Create a btrfs snapshot. \& btrfs\-subvolume\-delete: Delete a btrfs snapshot. \& btrfs\-subvolume\-list: List btrfs snapshots and subvolumes. \& btrfs\-subvolume\-set\-default: Set default btrfs subvolume. \& btrfs\-subvolume\-snapshot: Create a writable btrfs snapshot. \& get\-e2attrs: List ext2 file attributes of a file. \& get\-e2generation: Get ext2 file generation of a file. \& isoinfo, isoinfo\-device: Get information from the header of ISO files. \& llz: List files with SELinux information. \& lvcreate\-free: Create an LVM logical volume in % remaining free space. \& md\-stat: Return underlying devices from an MD device. \& mkfs\-brtfs: Make btrfs filesystem, with all tunables. \& mount\-local, mount\-local\-run, umount\-local: FUSE support in the API. \& ntfsclone\-in, ntfsclone\-out: Save, restore NTFS from backup. \& ntfsfix: Fix common errors and force Windows to check NTFS. \& set\-e2attrs: Set or clear ext2 file attributes of a file. \& set\-e2generation: Set ext2 file generation of a file. \& set\-label: Unified interface for setting filesystem label. \& vgmeta: Get volume group metadata. \& wipefs: Wipe filesystem signatures from a device. \& zero\-free\-space: Zero free space in a filesystem. .Ve .SS Internals .IX Subsection "Internals" .Vb 4 \& \- The debian/ subdirectory has been removed. We recommend you use \& the official Debian packages made by Hilko Bengen. \& http://people.debian.org/~bengen/libguestfs/ \& http://packages.debian.org/search?keywords=libguestfs \& \& \- O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file \& descriptors that the library opens. \& \& \- posix_fadvise is called when sequentially reading or writing large \& files. \& \& \- close all file descriptors and remove all signal handlers in the \& recovery process \& \& \- multiple gcc warnings and Coverity bugs have been fixed; many \& strict\-overflow bugs have also been fixed \& \& \- use ./configure \-\-enable\-valgrind\-daemon to use valgrind on the \& daemon; many errors have been fixed \& \& \- use ./configure \-\-with\-qemu\-options to pass extra options to qemu \& \& \- the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF) \& \& \- the header file works with C++ and we have a regression \& test for this \& \& \- multiple APIs which should only be called in the CONFIG state now \& give an error if they are not \& \& \- .gitignore fixed to use absolute paths \& \& \- gobject bindings have been expanded, including mapping libguestfs \& events to gobject signals (thanks Matt Booth) \& \& \- gobject documentation is generated properly (thanks Matt Booth) \& \& \- gobject header files now live in a subdirectory \& \& \- CompareWithString test in the generator now works \& \& \- FUInt32, FUInt64 struct field types now use the correct XDR type \& \& \- OCaml tests are now run on bytecode and native code. \& \& \- java \-Xlint:all is used, and all warnings have been fixed \& \& \- bmptopng, wrestool (etc) missing or failure no longer prints \& warning messages \& \& \- ruby: Use RbConfig instead of Config. \& \& \- PYTHONPATH is set by the ./run script. \& \& \- appliance building is now thread\-safe. \& \& \- appliance now uses \*(Aqip\*(Aq instead of \*(Aqifconfig\*(Aq and \*(Aqnetstat\*(Aq \& commands \& \& \- several fixes to make parallel builds work properly \& \& \- guestfish \-\-listen now cleans up properly \& \& \- the BUSY state has been removed \& \& \- gettextize has been removed, replaced by a simple Makefile.am \& \& \- gettext support now covers virt\-resize, virt\-sparsify and virt\-sysprep \& \& \- better support for the arm architecture .Ve .SS "Bugs fixed" .IX Subsection "Bugs fixed" .Vb 10 \& \- 822490 virt\-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL" \& \- 816839 data overflow error when debug progress \-1 \& \- 816098 virt\-make\-fs fails to make a btrfs filesystem because it doesn\*(Aqt allocate enough space \& \- 811872 inspection fails on ubuntu 10.04 guest with encrypted swap \& \- 811650 guestfs_last_error not set when qemu fails early during launch \& \- 811649 libguestfs cannot open disk images which are symlinks to files that contain \*(Aq:\*(Aq (colon) character \& \- 811117 [RFE][virt\-sysprep] net\-hwaddr not removed from "ifcfg\-*" files on rhel \& \- 811112 [RFE][virt\-sysprep] hostname can not be changed on rhel system \& \- 809361 inspection doesn\*(Aqt recognize Fedora 18 (grub2 + GPT) \& \- 807905 mkfs blocksize option breaks when creating btrfs \& \- 805070 virt\-filesystems should show \*(Aqparents\*(Aq of LV and RAID devices \& \- 804464 libguestfs cannot be built when LINGUAS is different then ja or uk \& \- 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\eSYSTEM\eMountedDevices \& \- 803533 guestfish: write error \& \- 802389 event handlers for \*(Aqclose\*(Aq event doesn\*(Aqt work in remote mode \& \- 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages \& \- 801640 [RFE] the error reported by resize2fs\-M need to be more clear \& \- 801298 Possible null dereference and resource leaks \& \- 801273 Document for set\-pgroup need to be updated \& \- 798196 virt\-resize confuses format and output_format variables; using \-\-output\-format sets the input format \& \- 797986 virt\-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD \& \- 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up \& \- 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs\-0/kernel /tmp/.guestfs\-0/kernel.10139: File exists \& \- 789960 guestfsd crash when try to mount non\-exist disk \& \- 789504 virt\-df (other tools?) should not give up if a guest disk is missing \& \- 788641 virt\-edit doesn\*(Aqt preserve file permissions \& \- 786215 libguestfs inspection does not recognize FreeDOS operating system \& \- 786188 libguestfs inspection does not recognize FreeDOS install CD \& \- 785668 aug\-defnode: daemon crash \& \- 784647 Libguestfs uses deprecated net\-tools \& \- 769304 virt\-resize on RHEL 6 kernel fails to re\-read the partition table \& \- 755729 Error message for resize2fs\-M needs tweaking \& \- 701814 virt\-win\-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters" \& \- 679737 libguestfs: improve error message when zerofree is not available in the appliance \& \- 635971 glob mkfs ext2 /dev/vd[b\-t]1 does not expand .Ve .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\-2023 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.