diff --git a/docs/guestfs-release-notes.pod b/docs/guestfs-release-notes.pod index 6e30a6d23..d12a0ac27 100644 --- a/docs/guestfs-release-notes.pod +++ b/docs/guestfs-release-notes.pod @@ -4,19 +4,497 @@ guestfs-release-notes - libguestfs Release Notes =begin comment -UPDATED TO #commit hash here +UPDATED TO 6c6c3ea67596afd1947f71d4f3f1252f1cc0f2d6 =end comment -=begin comment +=begin html +=end html + +=head1 RELEASE NOTES FOR LIBGUESTFS 1.32 + +These release notes only cover the differences from the previous +stable/dev branch split (1.30.0). For detailed changelogs, please see +the git repository, or the ChangeLog file distributed in the tarball. + +=head2 New features + +=head3 New tools + +The new L tool is an auxiliary tool for +L allowing you to convert source guests that virt-v2v is +unable to access directly. + +=head3 New features in existing tools + +Virt-customize knows how to write a random seed to CirrOS (Pino Toscano). + +On Fedora, virt-customize runs L with the I<--best> flag, +ensuring it always updates to the latest available packages. + +Virt-builder now provides 32 bit Fedora templates. + +Virt-builder and virt-customize I<--install> option now works on 32 +bit Fedora guests. Previously it would try to install 64 bit +packages (Jan Sedlák). + +Virt-builder can now fetch cloud images using Simple Streams v1.0 +metadata (Pino Toscano). + +Virt-builder can now fetch openSUSE cloud images out of the box +(Cédric Bosdonnat). + +Virt-customize will now use stronger (SHA-512) encrypted passwords by +default on openSUSE E 11 (Pino Toscano). + +Virt-builder will now correctly handle output filenames containing +colon characters (C<:>), and will create temporary files in the +libguestfs cache directory instead of defaulting to C +(Pino Toscano). + +Virt-builder has a new I<--unknown-filesystems> option to control what +to do when asked to resize a filesystem that libguestfs doesn't know +how to resize. + +Virt-v2v now has an I<--in-place> flag/mode, allowing in-place +conversion of guests (Roman Kagan). + +Virt-v2v has a I<--compressed> option for creating compressed qcow2 +output files. + +Virt-v2v can now correctly get the VMware datacenter path (dcPath) +from libvirt, instead of having to calculate it using an algorithm +that occasionally got the wrong answer (Matthias Bolte, Tingting +Zheng). + +Virt-v2v now processes RAM sizes correctly for 64 bit guests when +running on a 32 bit host. + +=head3 Language bindings + +In Perl and Python programs, the C API now returns +the true program name, instead of the incorrect string C or +C. + +The Python bindings can now be compiled against a different version of +libguestfs, allowing the pip module to be built against any version of +libguestfs (instead of requiring the pip module and libguestfs to have +exactly the same version). + +The quality of the Ruby rdoc (documentation) has been improved (Pino +Toscano). + +Perl scripts no longer hard-code the location of perl in the shebang +line, but use L to locate it instead (Pino Toscano). + +In OCaml programs, the guestfs handle was incorrectly made into a +global root, meaning it could never be garbage collected. If you +didn't call the C function explicitly, the handle would not be +closed until the whole program exited. This has now been fixed so +handles will be garbage collected in the usual way. This changes the +API of the OCaml function C. Note that non-C +language bindings are not covered by the libguestfs API/ABI guarantee, +although we try hard not to change them, but in this case it was +essential in order to fix this very serious bug. + +=head3 Inspection + +Alpine Linux and the APK package manager, ALT Linux, Frugalware, and +PLD Linux are now recognized (Pino Toscano). + +If it exists, C will be preferred for inspecting +Linux guests (Pino Toscano). + +The correct kernel version is returned for Windows guests E 10. + +=head3 Documentation + +The large L man page has been split into several separate +man pages: L L +L. In the source tree, a new C directory +contains this documentation. + +=head3 Architectures and platforms + +Libguestfs now supports ARM 64 bit platforms with vGICv3. + +=head2 Security + +See also L. + +=over 4 + +=item C + +L + +This is not a vulnerability in libguestfs, but because we always give +a virtio-serial port to each guest (since that is how guest-host +communication happens), an escalation from the appliance to the host +qemu process is possible. This could affect you if: + +=over 4 + +=item * + +your libguestfs program runs untrusted programs out of the guest +(using L etc), or + +=item * + +another exploit was found in (for example) kernel filesystem code that +allowed a malformed filesystem to take over the appliance. + +=back + +If you use sVirt to confine qemu, that would thwart some attacks. + +=item Virt-customize permissions on C<.ssh>, C<.ssh/authorized_keys> + +L. + +Previously when asked to inject an SSH key into a guest, +virt-customize (hence virt-builder too) would create the C<.ssh> +directory and C<.ssh/authorized_keys> file with too broad permissions, +allowing other users to read. They are now created as C<0700> and +C<0600> respectively, which is the same as the L +utility. + +=back + +=head2 API + +=head3 New APIs + +=over 4 + +=item C + +=item C + +Get/set a per-handle identifier. The main effect of this is to +change trace output from: + + libguestfs: trace: foo + +to: + + libguestfs: trace: ID: foo + +making it easier to follow traces in multi-threaded programs, or where +a program uses multiple handles (especially virt-v2v). + +=item C + +Return the minimum size of a filesystem (when shrunk). This supports +ext2/3/4, XFS and btrfs, and can support other filesystem types in +future (Maxim Perevedentsev). + +=back + +=head3 Other API changes + +=over 4 + +=item C: add C = C/C/C. + +For raw, this allows C as a synonym for C (making it +consistent with qcow2). For qcow2, this allows C as a synonym +for C. + +It also adds C, which corresponds to fully allocated, but uses +L for efficiency. + +=item C: new C, C, C parameters. + +=item C: new C, C, C parameters. + +These extra parameters control whether extended attributes, SELinux +contexts and/or POSIX ACLs are restored from / saved to tarballs. + +=back + +=head2 Build changes + +The C<./configure --enable-valgrind-daemon> option has been removed. + +You can no longer build libguestfs on RHEL 5-era (c.2007) machines. +See the C branch if you need (limited) RHEL 5 support. + +Virt-p2v can now be built on RHEL 6-era (c.2010) Linux distros. + +OCaml E 3.11 (released in 2008) is now required to build from git. + +Building the Perl bindings now requires C (instead of +C). + +Builds should be faster (especially when incrementally rebuilding), +because work was done to reduce build times. + +Both OCaml and the OCaml findlib module are required if you need to +run the generator at build time. Previously the build would have +failed if findlib was not installed. + +C tests now run in parallel (within each test directory). + +C no longer installs OCaml C files +incorrectly. + +C can now be run twice. Previously it would fail on the +second run. + +C should now remove nearly every file that C +creates. + +A new C rule has been added, allowing the installed +copy of libguestfs to be tested. + +=head2 Internals + +Some effort was put into minimizing the size of the appliance, which +reduces temporary disk space and time needed by libguestfs handles. + +The appliance now passes the NIC name to dhcpd, fixing hangs when +running the appliance on some distros (Cédric Bosdonnat). + +OCaml C is now generated (Pino Toscano). + +In OCaml tools, common code now handles I<--debug-gc>, I<--verbose> +and other common options (Roman Kagan, Pino Toscano). + +The virt-v2v test harness allows us to boot the test guests at fixed +dates in the past, ensuring that Windows reactivation doesn't kick in. + +There is a new internal API for reading/writing a subprocess via a +pipe from library code. + +Used C program to remove unused C<#include> directives. + +In OCaml tools, the C and C modules now implicitly +reference the C and C modules +(instead of the ones from stdlib). The C modules +contain a number of extra char/string utility functions, and also hide +some unsafe functions in stdlib. + +Many more virt-v2v tests will now be run even if you don't have +rhsrvany and virtio-win installed (Roman Kagan). + +The C file has been split into several smaller files +called C. + +The old C and C directories have been moved +to C. This new top level directory carries all test data +which is common, large and/or shared between multiple tests. + +There is a new top level C directory containing the public +L website (or most of it). + +The fuzz testing of inspection (C) has been removed. + +Virt-p2v now saves the source physical machine dmesg output into the +conversion server debug directory, making it simpler to debug cases of +missing drivers, firmware etc. + +=head2 Bugs fixed + +=begin comment + +https_proxy= ./bugs-in-changelog.sh 1.30.0.. + =end comment +=over 4 + +=item L + +Add a Fedora 23 32-bit base image for virt-builder + +=item L + +virt-builder writes temporary files to /tmp + +=item L + +virt-resize does not copy logical partitions + +=item L + +virt-inspector returns version 6.3 for win10 images (should return 10.0) + +=item L + +virt-inspector --xpath segfault on attribute get + +=item L + +libguestfs can run commands with stdin not open (or worse still, connected to arbitrary guest-chosen random devices) + +=item L + +About compression option for qcow2 + +=item L + +guestfish should be able to handle LVM thin layouts + +=item L + +DNF python programming error when run from virt-builder + +=item L + +inspection returns arch="unknown" for Windows guest if file command is not installed + +=item L + +Document permissions needed for non-admin users to use virt-v2v + +=item L + +RFE: virt-sparsify: make '--in-place' sparsification safe to abort (gracefully or ungracefully) + +=item L + +Virt-p2v client shouldn't present the vdsm option because it's not usable + +=item L + +virt-v2v fails to convert Windows raw image: error "device name is not a partition" + +=item L + +virt-builder: error: [file] is not a regular file in the guest + +=item L + +Simplestreams test fails: virt-builder: error: the value for the key 'size' is not an integer + +=item L + +guestfish copy-in command behaves oddly/unexpectedly with wildcards + +=item L + +python: Cannot compile pip module if installed libguestfs != pip guestfs version + +=item L + +Better diagnostic message when virbr0 doesn't exist + +=item L + +No warning shows when convert a win7 guest with AVG AntiVirus installed + +=item L + +virt-builder --ssh-inject doesn't set proper permissions on created files + +=item L + +RFE: V2V to check and warn user to disable group policy and anti virus on Windows guests + +=item L + +Wrong graphics protocal and video type set for guest after convert to rhev 3.6 by virt-v2v + +=item L + +extra slashes in vcenter URL confuses virt-v2v + +=item L + +[RHEV][V2V] virt-v2v ignores NIC if interface source/@network or source/@bridge is an empty string + +=item L + +virt-builder created Fedora 22 32bit disk image cannot be updated + +=item L + +virt-p2v no GUI mode:error opening control connection to $ip:22:unexpected …rompt + +=item L + +Option -oa preallocated -of qcow2 of virt-v2v didn't work efficiently + +=item L + +v2v: spaces need to be escaped as %20 in paths + +=item L + +Close all incoming ports on virt-p2v ISO + +=item L + +man virt-customize shows synopsis twice + +=item L + +mount-loop failed to setup loop device: No such file or directory + +=item L + +BUG: unable to handle kernel NULL pointer dereference at in function __blkg_lookup + +=item L + +virt-v2v should ignore bogus kernel entries in grub config + +=item L + +Unrelated info in fstab makes virt-v2v fail with unclear error info + +=item L + +virt-p2v: Using "Back" button causes output list to be repopulated multiple times + +=item L + +Wrong video driver is installed for rhel5.11 guest after conversion to libvirt + +=item L + +RFE: virt-builder creates qcow v3 images, add build option for qcow v2 + +=item L + +File /etc/sysconfig/kernel isn't updated when convert XenPV guest with regular kernel installed + +=item L + +"lstatnslist" and "lstatlist" don't give an error if the API is used wrongly + +=item L + +koji spin-livecd cannot build a working live CD + +=item L + +mount-loop command fails: mount failed: Unknown error -1 + +=item L + +set-label can only set <=127 bytes for btrfs and <=126 bytes for ntfs filesystem which not meet the help message. Also for ntfs it should give a warning message when the length >128 bytes + +=item L + +libvirt fails to shut down domain: could not destroy libvirt domain: Requested operation is not valid: domain is not running + +=item L + +mount-loop failed to setup loop device: No such file or directory + +=back + +=for comment ################################################################ + =head1 RELEASE NOTES FOR LIBGUESTFS 1.30 These release notes only cover the differences from the previous