diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-08-04 19:24:30 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-08-11 14:18:29 +0100 |
commit | 589db4e42ad5e759041521e7673bd7aa2f800736 (patch) | |
tree | bf56c353d76219623df9f0d626ed05f7b7541408 | |
parent | 198cc630f0634fa318c6943f8de6706951701250 (diff) | |
download | libguestfs-589db4e42ad5e759041521e7673bd7aa2f800736.tar.gz libguestfs-589db4e42ad5e759041521e7673bd7aa2f800736.tar.xz libguestfs-589db4e42ad5e759041521e7673bd7aa2f800736.zip |
Convert release notes to a POD file / man page.
Note that we add the text version to git so that it's available for
people to read without requiring any special tools.
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile.am | 27 | ||||
-rw-r--r-- | ROADMAP | 2 | ||||
-rwxr-xr-x | bugs-in-changelog.sh | 17 | ||||
-rw-r--r-- | guestfs-release-notes.pod (renamed from RELEASE-NOTES) | 509 | ||||
-rw-r--r-- | guestfs-release-notes.txt | 1560 | ||||
-rw-r--r-- | src/guestfs.pod | 2 |
7 files changed, 1906 insertions, 214 deletions
@@ -148,6 +148,7 @@ Makefile.in /gobject/guestfs-gobject*.h /.guestfs-* /guestfs.* +/guestfs-release-notes.1 /guestfsd-in-wine.log /haskell/Bindtests /haskell/Bindtests.hs @@ -165,6 +166,7 @@ Makefile.in /html/guestfs-perl.3.html /html/guestfs-python.3.html /html/guestfs-recipes.1.html +/html/guestfs-release-notes.1.html /html/guestfs-ruby.3.html /html/guestfs-testing.1.html /html/guestmount.1.html @@ -352,6 +354,7 @@ Makefile.in /src/libguestfs.syms /src/.libs/libguestfs.so /src/stamp-guestfs.pod +/stamp-guestfs-release-notes.pod /stamp-h1 /sysprep/.depend /sysprep/stamp-script1.sh diff --git a/Makefile.am b/Makefile.am index 803aec83..5c76075b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -119,7 +119,7 @@ endif EXTRA_DIST = \ $(generator_built) \ - BUGS HACKING RELEASE-NOTES ROADMAP TODO \ + BUGS HACKING ROADMAP TODO \ .gitignore \ bugs-in-changelog.sh \ autogen.sh \ @@ -142,6 +142,7 @@ EXTRA_DIST = \ contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch \ contrib/visualize-alignment/README \ contrib/visualize-alignment/tracetops.ml \ + guestfs-release-notes.pod \ html/pod.css \ libtool-kill-dependency_libs.sh \ logo/fish.svg logo/fish.png \ @@ -160,6 +161,7 @@ HTMLFILES = \ html/guestfs-perl.3.html \ html/guestfs-python.3.html \ html/guestfs-recipes.1.html \ + html/guestfs-release-notes.1.html \ html/guestfs-ruby.3.html \ html/guestfs-testing.1.html \ html/guestfish.1.html \ @@ -188,7 +190,7 @@ HTMLFILES = \ html/virt-tar-out.1.html \ html/virt-win-reg.1.html -TEXTFILES = BUGS README RELEASE-NOTES ROADMAP TODO +TEXTFILES = BUGS README ROADMAP TODO WEBSITEDIR = $(HOME)/d/redhat/websites/libguestfs @@ -243,11 +245,30 @@ all-local: find resize sparsify sysprep -name '*.ml' | \ LC_ALL=C sort > po/POTFILES-ml +# Manual pages in top level directory. + +man_MANS = \ + guestfs-release-notes.1 +noinst_DATA = \ + $(top_builddir)/html/guestfs-release-notes.1.html + +guestfs-release-notes.1 $(top_builddir)/html/guestfs-release-notes.1.html: stamp-guestfs-release-notes.pod + +stamp-guestfs-release-notes.pod: guestfs-release-notes.pod + $(PODWRAPPER) \ + --section 1 \ + --man guestfs-release-notes.1 \ + --text guestfs-release-notes.txt \ + --html $(top_builddir)/html/guestfs-release-notes.1.html \ + $< + touch $@ + # Make clean. CLEANFILES = \ pod2htm?.tmp \ - html/*.html + html/*.html \ + stamp-guestfs-release-notes.pod # If you don't want to run all of the tests ('make check') then this # will just run libguestfs-test-tool for a quick check. Note this @@ -3,7 +3,7 @@ Roadmap for future releases Before you read this: -(1) To see what's in the current release, read 'RELEASE-NOTES'. +(1) To see what's in the current release, read 'guestfs-release-notes(1)'. (2) To see the list of bugs, read 'BUGS'. diff --git a/bugs-in-changelog.sh b/bugs-in-changelog.sh index b5a6e2c0..173bf442 100755 --- a/bugs-in-changelog.sh +++ b/bugs-in-changelog.sh @@ -16,10 +16,10 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# Used when preparing the RELEASE-NOTES file. This script looks at -# the bugs noted in the git changelog since the last stable release -# (or any release). To use it, the only parameter should be the git -# commit range, eg: +# Used when preparing the guestfs-release-notes(1) man page. This +# script looks at the bugs noted in the git changelog since the last +# stable release (or any release). To use it, the only parameter +# should be the git commit range, eg: # # ./bugs-in-changelog.sh "1.0.89.." @@ -42,5 +42,10 @@ bugids=$( # Filter out any bugs which may still be in NEW or ASSIGNED: bugzilla query -b "$bugids" \ -t MODIFIED,POST,ON_QA,PASSES_QA,VERIFIED,RELEASE_PENDING,CLOSED \ - --outputformat=' - %{bug_id} %{short_desc}' | - sort -n -r + --outputformat='%{bug_id} %{short_desc}' | + sort -n -r | + perl -pe ' + s{([0-9]+)\s+(.*)}{ + sprintf ("=item L<https://bugzilla.redhat.com/%s>\n\n%s\n", + $1, $2) + }xe' diff --git a/RELEASE-NOTES b/guestfs-release-notes.pod index 6407cbaf..48e3278f 100644 --- a/RELEASE-NOTES +++ b/guestfs-release-notes.pod @@ -1,167 +1,259 @@ -Release notes for libguestfs 1.20.0 ------------------------------------ +=encoding utf8 -NOTES UPDATED TO COMMIT 47410e79995f9d8c5fb9739ca4609c78e13218ee. +=head1 NAME + +guestfs-release-notes - libguestfs Release Notes + +=head1 RELEASE NOTES FOR LIBGUESTFS 1.20 + +I<NOTES UPDATED TO COMMIT 47410e79995f9d8c5fb9739ca4609c78e13218ee> These release notes only cover the differences from the previous stable/dev branch split (1.18.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - library: +=head3 library - - You can optionally use libvirt to launch the backend appliance - by setting either: - (a) setting LIBGUESTFS_ATTACH_METHOD=libvirt[:URI] - (b) ./configure --with-default-attach-method=libvirt[:URI] - (c) setting the attach-method through the API +You can optionally use libvirt to launch the backend appliance +by: - - virtio-scsi is now used by default, if available. This greatly - increases the number of drives that can be added to a single - libguestfs handle (up to 255). +=over 4 - - libguestfs can now handle > 25 disks, in all APIs, tools and tests +=item (a) - virt tools: +setting C<LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]> - - guestfish touch 'win:c:\new_file' now works as expected +=item (b) - - 'rsync' and 'ssh' commands are now availble in virt-rescue + ./configure --with-default-attach-method=libvirt[:URI] - - virt-sparsify uses qcow2 v3 for increased efficiency +=item (c) - - virt-sysprep enhancements: - * generate new UUIDs for PVs and VGs - * remote the local machine ID (Wanlong Gao) - * remove ABRT data (Wanlong Gao) - * remove puppet keys and log files (Wanlong Gao) +setting the attach-method through the API - - virt-make-fs can now create virtual floppy disks (VFDs) +=back - - guestmount has a --pid-file option +virtio-scsi is now used by default, if available. This greatly +increases the number of drives that can be added to a single +libguestfs handle (up to 255). - language bindings: +Libguestfs can now handle E<gt> 25 disks, in all APIs, tools and tests. - - in Ruby, optional arguments hash is optional +=head3 virt tools - ports: +C<guestfish touch 'win:c:\new_file'> now works as expected. - - libguestfs without the appliance can be compiled on Mac OS X - (Masami HIRATA) +C<rsync> and C<ssh> commands are now availble in virt-rescue. - - RHEL 5 is now explicitly supported through the 'oldlinux' branch - in upstream git +C<virt-sparsify> uses qcow2 v3 for increased efficiency. - - PowerPC 64 bit is now supported. Also libguestfs has been - examined for endianness bugs and these have been fixed. +C<virt-sysprep> enhancements: -Security +=over 4 - - the $HOME/.guestfish history file is now created with 0600 - permissions (instead of 0644 before) so it is no longer world - readable +=item * - - CVE-2012-2690 +generate new UUIDs for PVs and VGs - Old versions of both virt-edit and the guestfish "edit" command - created a new file containing the changes but did not set the - permissions, etc of the new file to match the old one. The result - of this was that if you edited a security sensitive file such as - "/etc/shadow" then it would be left world-readable after the edit. +=item * - This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥ 1.16. +remote the local machine ID (Wanlong Gao) - For further information, see - https://bugzilla.redhat.com/show_bug.cgi?id=788642 +=item * -New APIs +remove ABRT data (Wanlong Gao) - canonical-device-name - device-index - filesystem-available - fstrim - max-disks - nr-devices - shutdown [backported to 1.16 and 1.18] - umount [added force and lazy optional arguments] - utsname - xfs-growfs - xfs-info +=item * -Internals +remove puppet keys and log files (Wanlong Gao) - - qemu >= 1.1.0 is required - febootstrap >= 3.19 is required +=back - - Functions which previously had no optargs can now be converted - to ones with optargs, making extending the API much more - flexible. Source and binary backwards compatibility is - preserved for users of the API. +C<virt-make-fs> can now create virtual floppy disks (VFDs). - APIs changed like this: - * grep and related *grep* functions - * add_drive / add_drive_opts - * mkfs / mkfs_opts - * ntfsresize / ntfsresize_opts - * umount +C<guestmount> has a I<--pid-file> option. - - The way that libguestfs APIs are represented in the generator - has changed to use an OCaml struct instead of a tuple. This - makes it far more flexible. For details see commit 39d1a7db. +=head3 language bindings - - launch backends are now located in separate files - eg. src/launch-appliance.c, src/launch-libvirt.c +In Ruby, optional arguments hash is optional. - - POD (documentation) is now generated using a rewritten Perl - program instead of pod2* + shell scripts +=head3 ports - - man pages now contain stable dates (Hilko Bengen) +Libguestfs without the appliance can be compiled on Mac OS X +(Masami HIRATA). - - skipped tests now exit with code 77, so they appear as - 'SKIP:' in make check output +RHEL 5 is now explicitly supported through the 'oldlinux' branch +in upstream git. - - the parallel mount-local test has been rewritten in C (RHBZ#838081) +PowerPC 64 bit is now supported. Also libguestfs has been +examined for endianness bugs and these have been fixed. - - Ruby 1.8.5 is now supported (though not recommended) +=head2 Security - - the appliance backend now uses sgabios instead of vgabios - (Dan Berrange) +The C<$HOME/.guestfish> history file is now created with 0600 +permissions (instead of 0644 before) so it is no longer world +readable. - - the './run' script now sets enough environment variables that you - can run OCaml, Python, Ruby, Java, GJS programs +=head3 CVE-2012-2690 - - 'run --test' flag for running tests with minimal output +Old versions of both C<virt-edit> and the C<guestfish> C<edit> command +created a new file containing the changes but did not set the +permissions, etc of the new file to match the old one. The result +of this was that if you edited a security sensitive file such as +C</etc/shadow> then it would be left world-readable after the edit. -Bugs fixed +This issue was assigned CVE-2012-2690, and is fixed in libguestfs E<ge> 1.16. -[./bugs-in-changelog.sh 1.18.0..] +For further information, see +L<https://bugzilla.redhat.com/show_bug.cgi?id=788642> - - 845522 guestfish "copy-out / localdir" command fails with "No such file or directory" - - 845488 Long filenames on NTFS cause tar-out, copy-out etc to fail with error "Cannot open: File name too long" - - 840572 virt-make-fs / tar-in should support vfat properly - - 840115 guestfish touch problem - case_sensitive_path API expects the file to exist - - 836710 Data loss when writing to qcow2-format disk files - - 824716 compress-device-out didn't support bzip2 - - 824043 guestfish unrecognized mount option gives confusing error message - - 823887 Filenames containing Chinese characters can't be created on vfat filesystems - - 823885 virt-make-fs cannot create vfat filesystem containing filesystems with chinese characters - - 823883 virt-make-fs -t fat fails with an obscure error message - - 823821 Inspection fails when /etc/HOSTNAME is empty - - 627675 libguestfs inspector code cannot handle /dev/disk/by-id/* paths - - 602997 part-get-bootable gives wrong result with an unordered part layout +=head2 New APIs + + canonical-device-name + device-index + filesystem-available + fstrim + max-disks + nr-devices + shutdown [backported to 1.16 and 1.18] + umount [added force and lazy optional arguments] + utsname + xfs-growfs + xfs-info + +=head2 Internals + +qemu E<ge> 1.1.0 is required. + +febootstrap E<ge> 3.19 is required. + +Functions which previously had no optargs can now be converted to ones +with optargs, making extending the API much more flexible. Source and +binary backwards compatibility is preserved for users of the API. +APIs which were changed are: + +=over 4 + +=item * + +C<grep> and related C<*grep*> functions + +=item * + +C<add_drive> / C<add_drive_opts> + +=item * + +C<mkfs> / C<mkfs_opts> + +=item * + +C<ntfsresize> / C<ntfsresize_opts> + +=item * + +C<umount> + +=back + +The way that libguestfs APIs are represented in the generator +has changed to use an OCaml struct instead of a tuple. This +makes it far more flexible. For details see commit 39d1a7db. + +Launch backends are now located in separate files +eg. C<src/launch-appliance.c>, C<src/launch-libvirt.c>. + +POD (documentation) is now generated using a rewritten Perl +program instead of pod2* + shell scripts. + +Man pages now contain stable dates (Hilko Bengen). + +Skipped tests now exit with code 77, so they appear as +C<SKIP:> in make check output. + +The parallel mount-local test has been rewritten in C (RHBZ#838081). + +Ruby 1.8.5 is now supported (though not recommended). + +The appliance backend now uses sgabios instead of vgabios +(Dan Berrange). + +The C<./run> script now sets enough environment variables that you +can run OCaml, Python, Ruby, Java, GJS programs. + +C<run --test> flag for running tests with minimal output. + +=head2 Bugs fixed + + ./bugs-in-changelog.sh 1.18.0.. + +=over 4 + +=item L<https://bugzilla.redhat.com/845522> + +guestfish "copy-out / localdir" command fails with "No such file or directory" + +=item L<https://bugzilla.redhat.com/845488> + +Long filenames on NTFS cause tar-out, copy-out etc to fail with error "Cannot open: File name too long" +=item L<https://bugzilla.redhat.com/840572> -Release notes for libguestfs 1.18.0 ------------------------------------ +virt-make-fs / tar-in should support vfat properly + +=item L<https://bugzilla.redhat.com/840115> + +guestfish touch problem - case_sensitive_path API expects the file to exist + +=item L<https://bugzilla.redhat.com/836710> + +Data loss when writing to qcow2-format disk files + +=item L<https://bugzilla.redhat.com/824716> + +compress-device-out didn't support bzip2 + +=item L<https://bugzilla.redhat.com/824043> + +guestfish unrecognized mount option gives confusing error message + +=item L<https://bugzilla.redhat.com/823887> + +Filenames containing Chinese characters can't be created on vfat filesystems + +=item L<https://bugzilla.redhat.com/823885> + +virt-make-fs cannot create vfat filesystem containing filesystems with chinese characters + +=item L<https://bugzilla.redhat.com/823883> + +virt-make-fs -t fat fails with an obscure error message + +=item L<https://bugzilla.redhat.com/823821> + +Inspection fails when /etc/HOSTNAME is empty + +=item L<https://bugzilla.redhat.com/627675> + +libguestfs inspector code cannot handle /dev/disk/by-id/* paths + +=item L<https://bugzilla.redhat.com/602997> + +part-get-bootable gives wrong result with an unordered part layout + +=back + +=head1 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. -New features +=head2 New features - virt tools: +=head3 virt tools - virt-sysprep has been rewritten and expanded (thanks Wanlong Gao) http://libguestfs.org/virt-sysprep.1.html @@ -206,7 +298,7 @@ New features - comma and colon characters in filenames now handled correctly by all virt tools - inspection: +=head3 inspection - added support for Fedora 17+ @@ -217,7 +309,7 @@ New features - inspection is now compatible with Windows guests that have been sysprepped (thanks Grant Williamson). - API: +=head3 API - broad support for btrfs added, including adding multiple devices, fsck, snapshots (thanks Wanlong Gao) @@ -236,7 +328,7 @@ New features - ENOTSUP (from guestfs_last_errno) is now returned for APIs that are not supported - examples: +=head3 examples - 'copy_over' example showing how to copy between two handles @@ -244,11 +336,11 @@ New features - 'mount_local.c' example shows how to use the mount-local API -Security +=head2 Security (no security problems were found or fixed in this release) -New APIs +=head2 New APIs btrfs-device-add: Add devices to a btrfs filesystem. btrfs-device-delete: Remove devices from a btrfs filesystem. @@ -278,7 +370,7 @@ New APIs wipefs: Wipe filesystem signatures from a device. zero-free-space: Zero free space in a filesystem. -Internals +=head2 Internals - The debian/ subdirectory has been removed. We recommend you use the official Debian packages made by Hilko Bengen. @@ -351,7 +443,7 @@ Internals - better support for the arm architecture -Bugs fixed +=head2 Bugs fixed - 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL" - 816839 data overflow error when debug progress -1 @@ -389,17 +481,15 @@ Bugs fixed - 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 - -Release notes for libguestfs 1.16.0 ------------------------------------ +=head1 RELEASE NOTES FOR LIBGUESTFS 1.16 These release notes only cover the differences from the previous stable/dev branch split (1.14.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - libguestfs: +=head3 libguestfs - allow XFS filesystems to be created over an existing filesystem (Wanlong Gao) @@ -417,7 +507,7 @@ New features - check user does not add the same drive twice (Wanlong Gao). - language bindings: +=head3 language bindings - Experimental GObject bindings, with support for GObject Introspection. You can now use libguestfs from Javascript. @@ -435,20 +525,20 @@ New features - new %guestfs_introspection hash is available in Perl bindings so you can query which optional arguments are available - inspection: +=head3 inspection - guests with MD devices can be inspected (Matthew Booth) - support for GNU/Hurd guests - guestfish: +=head3 guestfish - libguestfs events (such as progress bar events and log messages) can be trapped and processed by user-defined shell scripts. - MD devices are tab-completed (Matthew Booth) - virt tools: +=head3 virt tools - New tool virt-format for erasing and making blank disks @@ -465,19 +555,19 @@ New features - virt-resize no longer requires OCaml pcre library - libguestfs live: +=head3 libguestfs live - daemon will no longer try to edit your live /etc/lvm configuration - fix a potential security problem with predictable /tmp names (Steve Kemp) -Security +=head2 Security CVE-2011-4127, RHBZ#757071 Mitigate possible privilege escalation via SG_IO ioctl For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db -New APIs +=head2 New APIs blkid: print all attributes of a device known to blkid (Wanlong Gao) e2fsck: access to more features of e2fsck (Wanlong Gao) @@ -487,7 +577,7 @@ New APIs md-stop: stop an MD device (Wanlong Gao) tune2fs: allow ext2/3/4 filesystems to be tuned -Internals +=head2 Internals Git hosting has moved to http://github.com/libguestfs @@ -517,7 +607,7 @@ Internals bindtests now cover RBufferOut and optional arguments (Matthew Booth). -Bugs fixed +=head2 Bugs fixed - 769680 temporary directories created during appliance builds are not cleaned up on error - 761460 guestfs_utimens hangs on named pipes @@ -529,15 +619,13 @@ Bugs fixed - 750889 Python code incompatible with Python v3. - 596761 Ctrl-\ causes guestfish to abort - -Release notes for libguestfs 1.14.0 ------------------------------------ +=head1 RELEASE NOTES FOR LIBGUESTFS 1.14 These release notes only cover the differences from the previous stable/dev branch split (1.12.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features Erlang bindings. @@ -550,7 +638,7 @@ New features virt-sysprep is a new tool to make cloning guests from a template simpler. - guestfish: +=head3 guestfish - New commands setenv, unsetenv, to set environment variables. @@ -559,24 +647,24 @@ New features - guestfish progress bars are now a "mini-library" used by other tools too. - guestmount: +=head3 guestmount - the --live option (for access to live VMs) now works. - virt-cat: +=head3 virt-cat - virt-cat can now handle Windows paths and drive letters (RHBZ#693359). - virt-filesystems: +=head3 virt-filesystems - the MBR partition type byte is displayed in --long output. - virt-make-fs: +=head3 virt-make-fs - virt-make-fs now sets the MBR partition type byte correctly, improving compatibility with Windows (RHBZ#746295). - virt-resize: +=head3 virt-resize - virt-resize can now work with guests using extended and logical partitions, in particular Ubuntu guests. @@ -593,12 +681,12 @@ New features virt-resize --alignment option allows the alignment to be adjusted. - virt-win-reg: +=head3 virt-win-reg - The syntax for deleting registry keys and values is documented in the man page (RHBZ#737944). - library: +=head3 library - non-printing characters are escaped correctly in debug output. @@ -609,7 +697,7 @@ New features - the library can now be compiled without hivex (RHBZ#723474). - inspection: +=head3 inspection - Improve detection of Windows disks. @@ -626,23 +714,23 @@ New features - Add support for guests with HP Smart Array disks (thanks Matthew Booth) - febootstrap: +=head3 febootstrap - FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can be set in order to choose which kernel to use for the appliance. - misc: +=head3 misc - ArchLinux support now working with Linux 3.0 (thanks Erik Nolte) - libvirt disks marked <readonly/> are now added readonly when using the virt-tools '-d' option. -Security +=head2 Security (no security problems were found or fixed in this release) -New APIs +=head2 New APIs compress-out, compress-device-out, copy-device-to-device, copy-device-to-file, copy-file-to-device, copy-file-to-file, @@ -653,7 +741,7 @@ New APIs add-domain has a new 'readonlydisk' optional parameter to control how <readonly/> disks are handled. -Internals +=head2 Internals - Coverity was run on the source and more bugs were identified and fixed. @@ -677,7 +765,7 @@ Internals - is-zero, is-zero-device APIs: optimize these so zero detection is faster. -Bugs fixed +=head2 Bugs fixed - 748266 libguestfs should detect versions of qemu which require -machine pc option - 747290 libguestfs ignores <readonly/> in libvirt XML @@ -698,18 +786,15 @@ Bugs fixed - 666578 libguestfs: unknown filesystem label SWAP-sda2 - 642821 virt-resize falls over on a disk image with a logical swap partition - - -Release notes for libguestfs 1.12.0 ------------------------------------ +=head1 RELEASE NOTES FOR LIBGUESTFS 1.12 These release notes only cover the differences from the previous stable/dev branch split (1.10.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - guestfish: +=head3 guestfish - guestfish strings can use escapes, eg. ><fs> write /foo "line 1\nline 2\n" @@ -724,7 +809,7 @@ New features - In guestfish, tab completion now works on /dev/mapper devices. - virt-inspector: +=head3 virt-inspector - Inspection API can get an icon or logo for certain guests. @@ -736,14 +821,14 @@ New features - CentOS and Scientific Linux are now treated as separate distros by the inspection API. - virt-resize: +=head3 virt-resize - virt-resize can now handle btrfs. - New virt-resize --ntfsresize-force option allows Windows VMs to be resized multiple times. - other virt tools: +=head3 other virt tools - guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems, virt-inspector, virt-ls and virt-rescue now allow you to use @@ -760,7 +845,7 @@ New features - virt-edit has been rewritten in C. - API and language bindings: +=head3 API and language bindings - Java is now completely supported. See http://libguestfs.org/guestfs-java.3.html @@ -788,19 +873,19 @@ New features - guestfs_last_errno is now accessible from OCaml (as g#last_errno ()). -Security +=head2 Security - optargs_bitmask is checked even for calls that have no optional arguments. This closes a possible exploit in the daemon from untrusted callers. -New APIs +=head2 New APIs btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero, is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts, set-pgroup, write-append -Internals +=head2 Internals - Coverity (a static analysis tool) was run across the codebase and many fixes were made. @@ -822,7 +907,7 @@ Internals - stderr from qemu process is now captured by the event subsystem. -Bugs fixed +=head2 Bugs fixed - 602997 part-get-bootable gives wrong result with an unordered part layout - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory" @@ -832,15 +917,13 @@ Bugs fixed - 717786 libguestfs python bindings should have an explicit close call - 721275 virt-resize in F16 should support btrfs - -Release notes for libguestfs 1.10.0 ------------------------------------ +=head1 Release notes for libguestfs 1.10.0 These release notes only cover the differences from the previous stable/dev branch split (1.8.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - libguestfs and tools can be used against live virtual machines. See the 'guestfish --live' and 'guestmount --live' options, and (for @@ -925,18 +1008,18 @@ New features - New logo! -Security +=head2 Security [none] -New APIs +=head2 New APIs first-private, get-attach-method, inspect-get-drive-mappings, inspect-get-product-variant, inspect-get-windows-current-control-set, next-private, resize2fs-M, set-attach-method. -Internals +=head2 Internals - The 'HACKING' file is obsolete. The contents have been moved into a section of the guestfs(3) manual page. @@ -952,7 +1035,7 @@ Internals - guestfish and other tools tested with valgrind; some memory leaks were fixed. -Bugs fixed +=head2 Bugs fixed - 502533 Updated Polish translation of libguestfs - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks @@ -974,14 +1057,13 @@ Bugs fixed - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter -Release notes for libguestfs 1.8.0 ----------------------------------- +=head1 Release notes for libguestfs 1.8 These release notes only cover the differences from the previous stable/dev branch split (1.6.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - Support and packages for Debian and Ubuntu. @@ -1047,7 +1129,7 @@ New features - ROADMAP file covers roadmap and goals for future releases. -Security +=head2 Security - New SECURITY section in guestfs(3) API documentation. @@ -1058,7 +1140,7 @@ Security - FUSE calls into guestmount are now traced when using guestmount -x. -New APIs +=head2 New APIs - add-domain - add-drive-opts @@ -1071,7 +1153,7 @@ New APIs - lgetxattr - mkfs-opts -Internals +=head2 Internals - C programs now only link precisely with the libraries that they use. @@ -1106,7 +1188,7 @@ Internals - Excluded packages in the appliance are now listed in a separate file appliance/excludelist.in, and can be customized per-distro. -Bugs fixed +=head2 Bugs fixed - 663407 readlink and readlinklist returns /sysroot/ in some paths - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory" @@ -1115,14 +1197,13 @@ Bugs fixed - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution -Release notes for libguestfs 1.6.0 ----------------------------------- +=head1 RELEASE NOTES FOR LIBGUESTFS 1.6 These release notes only cover the differences from the previous stable/dev branch split (1.4.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - Use a new method for creating and caching the appliance. This greatly improves the performance of libguestfs, often by a factor @@ -1207,7 +1288,7 @@ New features - Translations of manual pages. -Security +=head2 Security - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html @@ -1217,7 +1298,7 @@ Security - virt-inspector no longer relies on untrusted guest code to list applications in some guests. -New APIs +=head2 New APIs download-offset, file-architecture, findfs-label, findfs-uuid, inspect-os, inspect-get-arch, inspect-get-distro, @@ -1230,7 +1311,7 @@ New APIs lvm-set-filter, part-to-dev, pread-device, pwrite-device, upload-offset -Internals +=head2 Internals - Use size_t for loop iterators. - Refactor the library code into separate files. @@ -1246,7 +1327,7 @@ Internals integration. - The Perl inspection code is no longer used by any of the tools. -Bugs fixed +=head2 Bugs fixed - 646822 libguestfs trace mode should not print long binary strings - 646821 virt-df should have --uuid option @@ -1281,14 +1362,13 @@ Bugs fixed - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it. - 502533 Updated Polish translation of libguestfs -Release notes for libguestfs 1.4.0 ----------------------------------- +=head1 RELEASE NOTES FOR LIBGUESTFS 1.4 These release notes only cover the differences from the previous stable/dev branch split (1.2.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. -New features +=head2 New features - guestfish lets you choose a prepared disk image, eg: guestfish -N fs:ext4 @@ -1361,13 +1441,13 @@ New features - Multiple revisions to improve the documentation. -Security +=head2 Security - Fix a potential DoS in virt-inspector and virt-v2v if a specially crafted disk image contained a char device in place of one of the configuration files that we read under /etc (RHBZ#582484). -New APIs +=head2 New APIs - aug-clear - clear Augeas path - available-all-groups - return a list of all optional groups @@ -1397,7 +1477,7 @@ New APIs - write - create a new file - zero-device - write zeroes to an entire device -Internals +=head2 Internals - Extend the generator to support testing optional features. - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894) @@ -1409,7 +1489,7 @@ Internals - Fix the protocol code to handle the case where both ends send cancel messages at the same time. -Bugs fixed +=head2 Bugs fixed - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077 @@ -1476,20 +1556,43 @@ Bugs fixed - 501889 write-file does not support strings containing ASCII NUL - 484986 grub-install fails on virtio disk -Release notes for previous versions of libguestfs -------------------------------------------------- +=head1 RELEASE NOTES FOR HISTORICAL VERSIONS OF LIBGUESTFS + +Before 2010 libguestfs did not have official release notes or a +formalized version numbering system. However these are links to +historically significant versions. + +=over 4 + +=item 2009-11-10 (1.0.78) + +L<https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html> + +=item 2009-09-13 (1.0.67) + +L<https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html> + +=item 2009-07-23 (1.0.64) + +L<https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html> + +=item 2009-07-14 (1.0.59) + +L<https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html> -2009-11-10 : 1.0.78 -https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html +=item 2009-04-01 (the initial announcement) -2009-09-13 : 1.0.67 -https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html +L<http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/> -2009-07-23 : 1.0.64 -https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html +=back -2009-07-14 : 1.0.59 -https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html +=head1 SEE ALSO -2009-04-01 : Initial announcement -http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/ +L<guestfs-examples(1)>, +L<guestfs-faq(1)>, +L<guestfs-performance(1)>, +L<guestfs-recipes(1)>, +L<guestfs-testing(1)>, +L<guestfs(3)>, +L<guestfish(1)>, +L<http://libguestfs.org/> diff --git a/guestfs-release-notes.txt b/guestfs-release-notes.txt new file mode 100644 index 00000000..20355ac1 --- /dev/null +++ b/guestfs-release-notes.txt @@ -0,0 +1,1560 @@ +NAME + + guestfs-release-notes - libguestfs Release Notes + +RELEASE NOTES FOR LIBGUESTFS 1.20 + + NOTES UPDATED TO COMMIT 47410e79995f9d8c5fb9739ca4609c78e13218ee + + These release notes only cover the differences from the previous + stable/dev branch split (1.18.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + library + + You can optionally use libvirt to launch the backend appliance by: + + (a) + + setting LIBGUESTFS_ATTACH_METHOD=libvirt[:URI] + + (b) + + ./configure --with-default-attach-method=libvirt[:URI] + + (c) + + setting the attach-method through the API + + virtio-scsi is now used by default, if available. This greatly + increases the number of drives that can be added to a single libguestfs + handle (up to 255). + + Libguestfs can now handle > 25 disks, in all APIs, tools and tests. + + virt tools + + guestfish touch 'win:c:\new_file' now works as expected. + + rsync and ssh commands are now availble in virt-rescue. + + virt-sparsify uses qcow2 v3 for increased efficiency. + + virt-sysprep enhancements: + + * generate new UUIDs for PVs and VGs + + * remote the local machine ID (Wanlong Gao) + + * remove ABRT data (Wanlong Gao) + + * remove puppet keys and log files (Wanlong Gao) + + virt-make-fs can now create virtual floppy disks (VFDs). + + guestmount has a --pid-file option. + + language bindings + + In Ruby, optional arguments hash is optional. + + ports + + Libguestfs without the appliance can be compiled on Mac OS X (Masami + HIRATA). + + RHEL 5 is now explicitly supported through the 'oldlinux' branch in + upstream git. + + PowerPC 64 bit is now supported. Also libguestfs has been examined for + endianness bugs and these have been fixed. + + Security + + The $HOME/.guestfish history file is now created with 0600 permissions + (instead of 0644 before) so it is no longer world readable. + + CVE-2012-2690 + + Old versions of both virt-edit and the guestfish edit command created a + new file containing the changes but did not set the permissions, etc of + the new file to match the old one. The result of this was that if you + edited a security sensitive file such as /etc/shadow then it would be + left world-readable after the edit. + + This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥ + 1.16. + + For further information, see + https://bugzilla.redhat.com/show_bug.cgi?id=788642 + + New APIs + + canonical-device-name + device-index + filesystem-available + fstrim + max-disks + nr-devices + shutdown [backported to 1.16 and 1.18] + umount [added force and lazy optional arguments] + utsname + xfs-growfs + xfs-info + + Internals + + qemu ≥ 1.1.0 is required. + + febootstrap ≥ 3.19 is required. + + Functions which previously had no optargs can now be converted to ones + with optargs, making extending the API much more flexible. Source and + binary backwards compatibility is preserved for users of the API. APIs + which were changed are: + + * grep and related *grep* functions + + * add_drive / add_drive_opts + + * mkfs / mkfs_opts + + * ntfsresize / ntfsresize_opts + + * umount + + The way that libguestfs APIs are represented in the generator has + changed to use an OCaml struct instead of a tuple. This makes it far + more flexible. For details see commit 39d1a7db. + + Launch backends are now located in separate files eg. + src/launch-appliance.c, src/launch-libvirt.c. + + POD (documentation) is now generated using a rewritten Perl program + instead of pod2* + shell scripts. + + Man pages now contain stable dates (Hilko Bengen). + + Skipped tests now exit with code 77, so they appear as SKIP: in make + check output. + + The parallel mount-local test has been rewritten in C (RHBZ#838081). + + Ruby 1.8.5 is now supported (though not recommended). + + The appliance backend now uses sgabios instead of vgabios (Dan + Berrange). + + The ./run script now sets enough environment variables that you can run + OCaml, Python, Ruby, Java, GJS programs. + + run --test flag for running tests with minimal output. + + Bugs fixed + + ./bugs-in-changelog.sh 1.18.0.. + + https://bugzilla.redhat.com/845522 + + guestfish "copy-out / localdir" command fails with "No such file or + directory" + + https://bugzilla.redhat.com/845488 + + Long filenames on NTFS cause tar-out, copy-out etc to fail with error + "Cannot open: File name too long" + + https://bugzilla.redhat.com/840572 + + virt-make-fs / tar-in should support vfat properly + + https://bugzilla.redhat.com/840115 + + guestfish touch problem - case_sensitive_path API expects the file to + exist + + https://bugzilla.redhat.com/836710 + + Data loss when writing to qcow2-format disk files + + https://bugzilla.redhat.com/824716 + + compress-device-out didn't support bzip2 + + https://bugzilla.redhat.com/824043 + + guestfish unrecognized mount option gives confusing error message + + https://bugzilla.redhat.com/823887 + + Filenames containing Chinese characters can't be created on vfat + filesystems + + https://bugzilla.redhat.com/823885 + + virt-make-fs cannot create vfat filesystem containing filesystems + with chinese characters + + https://bugzilla.redhat.com/823883 + + virt-make-fs -t fat fails with an obscure error message + + https://bugzilla.redhat.com/823821 + + Inspection fails when /etc/HOSTNAME is empty + + https://bugzilla.redhat.com/627675 + + libguestfs inspector code cannot handle /dev/disk/by-id/* paths + + https://bugzilla.redhat.com/602997 + + part-get-bootable gives wrong result with an unordered part layout + +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. + + New features + + virt tools + + - 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 'libguestfs-make-fixed-appliance' is provided to build + fixed appliances that can be copied to other machines that don't + 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 '--pipe-error' 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 + + inspection + + - 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). + + API + + - broad support for btrfs added, including adding multiple devices, + fsck, snapshots (thanks Wanlong Gao) + + - the new 'mount-local' 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 + + examples + + - 'copy_over' example showing how to copy between two handles + + - 'display_icon' program displays the icon associated with a guest + + - 'mount_local.c' example shows how to use the mount-local API + + Security + + (no security problems were found or fixed in this release) + + New APIs + + 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. + + Internals + + - 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 <guestfs.h> 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 'ip' instead of 'ifconfig' and 'netstat' + 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 + + Bugs fixed + + - 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't 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 ':' (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't recognize Fedora 18 (grub2 + GPT) + - 807905 mkfs blocksize option breaks when creating btrfs + - 805070 virt-filesystems should show 'parents' 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\SYSTEM\MountedDevices + - 803533 guestfish: write error + - 802389 event handlers for 'close' event doesn't 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't 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 + +RELEASE NOTES FOR LIBGUESTFS 1.16 + + These release notes only cover the differences from the previous + stable/dev branch split (1.14.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + libguestfs + + - allow XFS filesystems to be created over an existing filesystem + (Wanlong Gao) + + - the (unspecified) default alignment for part-disk has been + changed to 64K for better support of high-end network-attached + storage + + - new guestfs-testing(1) man page + + - list-filesystems returns MD devices containing filesystems + (Matthew Booth) + + - support for GCC >= 4.7 (Jim Meyering) + + - check user does not add the same drive twice (Wanlong Gao). + + language bindings + + - Experimental GObject bindings, with support for GObject + Introspection. You can now use libguestfs from Javascript. + Please note these are not stable and final in this release. + (Matthew Booth). + + - support for Ruby >= 1.9 + + - Ruby bindings can be disabled individually (Hilko Bengen) + + - support for Python 2.6, 3.x (Richard Jones, Hilko Bengen) + + - support for PHP >= 5.4 + + - new %guestfs_introspection hash is available in Perl bindings so + you can query which optional arguments are available + + inspection + + - guests with MD devices can be inspected (Matthew Booth) + + - support for GNU/Hurd guests + + guestfish + + - libguestfs events (such as progress bar events and log messages) can + be trapped and processed by user-defined shell scripts. + + - MD devices are tab-completed (Matthew Booth) + + virt tools + + - New tool virt-format for erasing and making blank disks + + - virt-sparsify new --compress and -o options to allow for compressed + and different format output + + - virt-sparsify can now detect and sparsify .vdi files + + - virt-sysprep no longer requires xmlstarlet; a new virt-inspector --xpath + option has been added to replace this functionality + + - virt-rescue has a new --suggest option which suggests mount commands + for the guest + + - virt-resize no longer requires OCaml pcre library + + libguestfs live + + - daemon will no longer try to edit your live /etc/lvm configuration + + - fix a potential security problem with predictable /tmp names (Steve Kemp) + + Security + + CVE-2011-4127, RHBZ#757071 + Mitigate possible privilege escalation via SG_IO ioctl + For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db + + New APIs + + blkid: print all attributes of a device known to blkid (Wanlong Gao) + e2fsck: access to more features of e2fsck (Wanlong Gao) + list-md-devices: list of Linux MD devices (Matthew Booth) + md-create: create an MD device + md-detail: returns metadata for an MD device (Matthew Booth) + md-stop: stop an MD device (Wanlong Gao) + tune2fs: allow ext2/3/4 filesystems to be tuned + + Internals + + Git hosting has moved to http://github.com/libguestfs + + The various test directories have been rearranged logically, and now + all appear under 'tests/'. + + There is a 'make extra-tests' rule which runs ordinary tests and + additional tests, using valgrind to check for memory problems. + + Multiple memory leaks and other problems found by valgrind and fixed. + + Support for optional arguments in the generator has been rewritten + to provide more features and safety (Matthew Booth). + + With gcc -fvisibility=hidden is used for internal symbols, avoiding + call indirection via the PLT. + + RHashtable functions can be tested in the generator. + + ADD_ARG macro in daemon allows arg lists to be constructed without + risk of stack smashing. + + Fix generation of OCaml functions that have more than 10 arguments. + + psmisc has been added to the appliance, allowing use of 'fuser', + 'killall' and 'pstree' for debugging. + + bindtests now cover RBufferOut and optional arguments (Matthew Booth). + + Bugs fixed + + - 769680 temporary directories created during appliance builds are not cleaned up on error + - 761460 guestfs_utimens hangs on named pipes + - 761451 guestfs_utimens cannot set times on a directory + - 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory + - 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes + - 760000 libguestfs fails to compile with Ruby >= 1.9 + - 755729 Error message for resize2fs-M needs tweaking + - 750889 Python code incompatible with Python v3. + - 596761 Ctrl-\ causes guestfish to abort + +RELEASE NOTES FOR LIBGUESTFS 1.14 + + These release notes only cover the differences from the previous + stable/dev branch split (1.12.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + Erlang bindings. + + virt-alignment-scan is a new tool to check the alignment of + partitions within virtual machines or disk images. + + virt-sparsify is a new tool to make virtual machine disk images + sparse. + + virt-sysprep is a new tool to make cloning guests from a template + simpler. + + guestfish + + - New commands setenv, unsetenv, to set environment variables. + + - The input file and line number is printed in error messages. + + - guestfish progress bars are now a "mini-library" used by other + tools too. + + guestmount + + - the --live option (for access to live VMs) now works. + + virt-cat + + - virt-cat can now handle Windows paths and drive letters (RHBZ#693359). + + virt-filesystems + + - the MBR partition type byte is displayed in --long output. + + virt-make-fs + + - virt-make-fs now sets the MBR partition type byte correctly, + improving compatibility with Windows (RHBZ#746295). + + virt-resize + + - virt-resize can now work with guests using extended and logical + partitions, in particular Ubuntu guests. + + - virt-resize can now align the first partition of Windows guests, + improving performance. The new virt-resize --align-first option + controls this behaviour. + + - The virt-resize --machine-readable flag makes it possible to use + virt-resize from other programs. + + - Partitions are now aligned to 128 sectors (usually 64K) by + default. This improves efficiency on high-end storage. The new + virt-resize --alignment option allows the alignment to be + adjusted. + + virt-win-reg + + - The syntax for deleting registry keys and values is documented + in the man page (RHBZ#737944). + + library + + - non-printing characters are escaped correctly in debug output. + + - GUESTFS_EVENT_ENTER is a new event type generated whenever a + libguestfs function is called. + + - the library contains systemtap/DTrace probes. + + - the library can now be compiled without hivex (RHBZ#723474). + + inspection + + - Improve detection of Windows disks. + + - Adds support for: + ttylinux - a minimal Linux + Mageia (thanks Michael Scherer) + OpenSUSE and zypper (thanks Michael Scherer, Vincent Untz) + Ubuntu logos (thanks Michael Scherer) + NetBSD and pkgsrc (thanks Michael Scherer) + + - Handle some guest types that use /dev/root in /etc/fstab. + + - Fix handling of guests with > 26 disks (thanks Matthew Booth) + + - Add support for guests with HP Smart Array disks (thanks Matthew Booth) + + febootstrap + + - FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can + be set in order to choose which kernel to use for the appliance. + + misc + + - ArchLinux support now working with Linux 3.0 (thanks Erik Nolte) + + - libvirt disks marked <readonly/> are now added readonly when + using the virt-tools '-d' option. + + Security + + (no security problems were found or fixed in this release) + + New APIs + + compress-out, compress-device-out, copy-device-to-device, + copy-device-to-file, copy-file-to-device, copy-file-to-file, + get-smp, part-to-partnum, set-smp. + + The mount API no longer implicitly adds -o sync,noatime options. + + add-domain has a new 'readonlydisk' optional parameter to control + how <readonly/> disks are handled. + + Internals + + - Coverity was run on the source and more bugs were identified and + fixed. + + - PCRE library is now required to build libguestfs. + + - APIC is now the default for the appliance. You can also enable + SMP support in the appliance. + + - OCaml bindings now correctly acquire GC lock during callbacks. + + - Out of tree builds should now work correctly (thanks Hilko Bengen). + + - ./configure --with-extra="..." can be used by packagers to set + the extra version string. + + - zero, zero-device APIs: if the blocks already contain zeroes, + don't write zeroes, so that we don't unnecessarily make the + underlying storage non-sparse. + + - is-zero, is-zero-device APIs: optimize these so zero detection is + faster. + + Bugs fixed + + - 748266 libguestfs should detect versions of qemu which require -machine pc option + - 747290 libguestfs ignores <readonly/> in libvirt XML + - 747287 Misleading error message when permission denied opening a disk image + - 746295 virt-make-fs doesn't set partition ID + - 744795 guestmount --live is not usable + - 737944 virt-win-reg hyphen (delete key) syntax may be wrong, and is not documented + - 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)" + - 731744 libguestfs should escape special/non-printing characters in debug output + - 729887 appliance crashes running aug_init with flags=4 + - 729075 libguestfs confuses Hp_recovery partition with Windows root filesystem + - 727178 error: luks_open: cryptsetup: error while loading shared libraries: libfipscheck.so.1: cannot open shared object file: No such file or directory + - 726739 libguestfs: error: aug_get: no matching node, trying to find hostname + - 723474 If hivex and/or pcre not installed, libguestfs fails to compile + - 693359 virt-cat and virt-edit don't handle case sensitive NTFS paths properly + - 678231 virt-inspector reports unknown filesystem UUID + - 671082 libguestfs does not work with kernel-rt + - 666578 libguestfs: unknown filesystem label SWAP-sda2 + - 642821 virt-resize falls over on a disk image with a logical swap partition + +RELEASE NOTES FOR LIBGUESTFS 1.12 + + These release notes only cover the differences from the previous + stable/dev branch split (1.10.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + guestfish + + - guestfish strings can use escapes, + eg. ><fs> write /foo "line 1\nline 2\n" + + - guestfish write-append command can be used to append to files. + + - Long-running file uploads and downloads can be cancelled through the + API or by hitting ^C in guestfish. + + - New guestfish "display" command for displaying graphical files + inside guests. + + - In guestfish, tab completion now works on /dev/mapper devices. + + virt-inspector + + - Inspection API can get an icon or logo for certain guests. + + - virt-inspector includes the logo and hostname for certain guests. + + - virt-inspector can now get the version and release numbers for RPM + packages. + + - CentOS and Scientific Linux are now treated as separate distros by + the inspection API. + + virt-resize + + - virt-resize can now handle btrfs. + + - New virt-resize --ntfsresize-force option allows Windows VMs to be + resized multiple times. + + other virt tools + + - guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems, + virt-inspector, virt-ls and virt-rescue now allow you to use + "-d UUID" option to specify a guest by UUID. This makes them more + robust to use from other programs. + + - virt-ls -lR option allows complex file iteration and guest analysis. + + - virt-win-reg supports HKEY_USERS\<SID> and HKEY_USERS\<username>. + + - virt-win-reg new option --unsafe-printable-strings allows printable + strings to be displayed in the output (unsafely: read the documentation + before using). + + - virt-edit has been rewritten in C. + + API and language bindings + + - Java is now completely supported. + See http://libguestfs.org/guestfs-java.3.html + + - JRuby is supported via the Java bindings. + + - guestfs_close now appears in trace messages. + + - Python binding adds explicit g.close() method. + + - Python programs can now use the new event API. + + - Python GIL is released during libguestfs calls, allowing multithreaded + Python programs to work properly. + + - 9pfs (Plan 9 filesystems exported from the host) are now supported. + + - Add -DGUESTFS_WARN_DEPRECATED=1 to warn about use of deprecated API + functions in C programs. + + - New manual page guestfs-recipes(1) with recipes. + + - mkfs-opts can now set inode size and sector size on created filesystems + (thanks Nikita Menkovich). + + - guestfs_last_errno is now accessible from OCaml (as g#last_errno ()). + + Security + + - optargs_bitmask is checked even for calls that have no optional + arguments. This closes a possible exploit in the daemon from + untrusted callers. + + New APIs + + btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero, + is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts, + set-pgroup, write-append + + Internals + + - Coverity (a static analysis tool) was run across the codebase and + many fixes were made. + + - Generator can handle functions that return RBufferOut and have + optional arguments. + + - Compatible with Perl 5.14. + + - Compatible with gcc 4.6. + + - Perform safety checks on QEMU. + + - C API tests can now fully test calls that have optional arguments. + + - Use ./configure --enable-install-daemon to install /usr/sbin/guestfsd. + + - po-docs directory now covers all man pages. + + - stderr from qemu process is now captured by the event subsystem. + + Bugs fixed + + - 602997 part-get-bootable gives wrong result with an unordered part layout + - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory" + - 700369 qemu-system-x86_64 says 'KVM not supported for this target' + - 705200 guestmount attempt results in access denied + - 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts + - 717786 libguestfs python bindings should have an explicit close call + - 721275 virt-resize in F16 should support btrfs + +Release notes for libguestfs 1.10.0 + + These release notes only cover the differences from the previous + stable/dev branch split (1.8.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + - libguestfs and tools can be used against live virtual machines. + See the 'guestfish --live' and 'guestmount --live' options, and (for + the low-level interface) the new APIs set-attach-method and + get-attach-method. + + - New virt tools: + virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out. + + - libguestfs can get the drive letter mappings for Windows guests. + + - virt-inspector displays drive letter mappings for Windows guests. + + - Drive letters can now be used in virt-edit and guestfish programs + when operating on Windows guests. + + - virt-resize now works on 32 bit hosts. + + - You can now inspect the install disks and live CDs of many different + operating systems. + + - guestfish <! cmd which executes a shell cmd and inlines the result. + + - guestfish, guestmount, virt-rescue now all support --ro and --rw + options, and the default for this can be chosen via a configuration + file (/etc/libguestfs-tools.conf). + + - New event API allows more than one callback to be registered for + each event, makes it possible to call the API from other languages, + and allows nearly all log, debug and trace messages to be rerouted + from stderr. + + - Greater FHS compliance for temporary files, including using /var/tmp + for large cached files that should survive reboot (instead of /tmp). + + - guestfish, guestmount -m option allows mount options to be passed + through to the underlying filesystem. + + - mkfs-opts allows filesystem features to be specified. + + - More intelligent handling of mountpoints, allowing mkmountpoint, mount + and umount-all commands to work together properly. + + - Trace messages are prefixed with a distinct string, allowing them to + be easily 'grepped' out from debug output. + + - guestfs_launch (guestfish 'run' command) now produces progress + messages (a guestfish progress bar) if it takes longer than 5 + seconds to run. + + - Several long-running commands where we are unable to estimate time + to completion generate "pulse mode" progress events. Progress bar + in guestfish has been updated to display these. + + - Publish new example code in: C, Perl, Python, OCaml, Ruby. + + - New virt-dhcp-address example program. + + - The Java and Ruby bindings have been improved greatly. + + - Perl includes a way to get the errno of the last error. + + - Python bindings now compatible with rpyc (thanks Erez Shinan). + + - Transifex is now being used to manage translations. + http://www.transifex.net/projects/p/libguestfs/ + + - Inspection now supports Red Hat Desktop, Slackware distributions. + + - Inspection no longer fails for Windows guests that have two or + more disks. + + - Inspection can now tell the difference between Windows 2008 Server + and Windows 7. + + - Inspection can detect 32 bit applications installed in 64 bit + Windows, running on the WOW64 emulator. + + - A series of protocol fixes has fixed the old bug RHBZ#576879 + which used to cause errors during the upload command to lose + protocol synchronization. + + - New logo! + + Security + + [none] + + New APIs + + first-private, get-attach-method, inspect-get-drive-mappings, + inspect-get-product-variant, + inspect-get-windows-current-control-set, next-private, resize2fs-M, + set-attach-method. + + Internals + + - The 'HACKING' file is obsolete. The contents have been moved into + a section of the guestfs(3) manual page. + + - libguestfs-test-tool simplified. It no longer needs the static + binary or tries to construct an ISO. + + - rpcgen-generated files are compiled with -fno-strict-aliasing + which should be safer (thanks Matt Booth). + + - virt-resize was rewritten in OCaml. + + - guestfish and other tools tested with valgrind; some memory leaks + were fixed. + + Bugs fixed + + - 502533 Updated Polish translation of libguestfs + - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks + - 599503 document that mkmountpoint and umount-all cannot be mixed + - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset + - 664558 RFE: Allow to set log callback in Ruby bindings + - 665358 Punjabi Translation Completed (pa_IN) + - 666577 libguestfs: unknown filesystem /dev/fd0 + - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings + - 668112 virt-filesystems command fails on guest with corrupt filesystem label + - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists + - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output + - 674130 Inspection code fails for Windows guest with two disks + - 682756 libguestfs trace segfaults when list-filesystems returns error + - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat' + - 690819 mkfs fails creating a filesytem on a disk device when using a disk with 'ide' interface + - 691389 Extended attributes don't work over guestmount (FUSE) + - 691724 virt-inspector reports unknown filesystem /dev/vda1 + - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows + - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter + +Release notes for libguestfs 1.8 + + These release notes only cover the differences from the previous + stable/dev branch split (1.6.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + - Support and packages for Debian and Ubuntu. + + - Daily builds from git repository on Debian and Ubuntu to reduce risk + of regressions. + + - Port to ArchLinux 'pacman' (thanks Thomas S Hatch). + + - The following tools have been rewritten in C (originally in Perl): + + . virt-cat + . virt-df + . virt-inspector + . virt-ls + . virt-rescue + + - Some C tools support encrypted guests automatically. This is + supported in: guestfish, guestmount, virt-cat, virt-inspector, + virt-ls. + + - New tool virt-filesystems (in C) which is a replacement for + virt-list-filesystems and virt-list-partitions, and has a superset + of the functionality of those tools. + + - guestfish, guestmount and the C tools use unified command line option + parsing, so they support many common options such as '-a disk.img', + '-d libvirt-domain', '-x', '-v'. The old command line option + parsing is preserved for compatibility in scripts etc. + + - guestfish no longer has any dependencies on Perl + + - New man pages containing programming examples: guestfs-examples(3) (C/C++), + guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3). + + - Trace mode prints return values from API functions. + + - virt-inspector can list applications installed in Windows guests, along + with a great deal of information about those applications. + + - Add support for inspecting: Linux Mint, Mandriva, FreeBSD. + + - guestfish --rw option (with no effect currently) to make potentially + dangerous write access explicit. + + - guestfish --listen --csh for compatibility with csh, tcsh (thanks + Eric Blake). + + - The first upstream version that introduced each API function is now + documented in guestfs(3). + + - guestfs_last_errno allows you to retrieve the errno from the + daemon, correctly translated to the local operating system. + + - Functions can now have optional parameters. + + - Progress bars and progress notifications can now happen for upload + commands. + + - Appliance builder more careful about not leaving temporary files + around in /tmp. + + - getfattr/setfattr commands added to virt-rescue. + + - ROADMAP file covers roadmap and goals for future releases. + + Security + + - New SECURITY section in guestfs(3) API documentation. + + - virt-inspector no longer runs any guest commands. + + - Inspection code is more careful about avoiding very large files + from guests which might previously have caused a denial of service. + + - FUSE calls into guestmount are now traced when using guestmount -x. + + New APIs + + - add-domain + - add-drive-opts + - getxattr + - inspect-get-hostname + - inspect-get-package-format + - inspect-get-package-management + - inspect-get-roots + - inspect-list-applications + - lgetxattr + - mkfs-opts + + Internals + + - C programs now only link precisely with the libraries that they use. + + - PCRE, libmagic, hivex and libvirt libraries are now completely + optional for building. + + - Multiple memory leaks and file descriptor leaks fixed. + + - Add a POD wrapper to unify generation of man pages and HTML files + across all programs. + + - Source includes phony images of Fedora, Debian, Ubuntu and + Windows guests. + + - Ruby bindings have 'make install' rule. + + - <guestfs.h> is now a single file. + + - <guestfs.h> does not require XDR headers. + + - ocaml xml-light library is no longer required to build (thanks + Maxim Koltsov). + + - ./configure --disable-[...] for each language binding (thanks + Maxim Koltsov). + + - Old ocaml-viewer program removed (use guestfs-browser instead). + + - New C API test type 'InitScratchFS' makes the tests run a little + more quickly. + + - Excluded packages in the appliance are now listed in a separate + file appliance/excludelist.in, and can be customized per-distro. + + Bugs fixed + + - 663407 readlink and readlinklist returns /sysroot/ in some paths + - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory" + - 657499 checksum: wrong check sum type causes umount to fail + - 655554 Whole disk paths are not made canonical by virt-inspector + - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names + - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution + +RELEASE NOTES FOR LIBGUESTFS 1.6 + + These release notes only cover the differences from the previous + stable/dev branch split (1.4.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + - Use a new method for creating and caching the appliance. This + greatly improves the performance of libguestfs, often by a factor + of x 4 to x 5. + + - Support for guest inspection (like virt-inspector) via the ordinary + API and all language bindings. 'guestfish -i' option is as a side- + effect much quicker. + + - virt-inspector and core inspection API can now detect guests running: + Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS, + Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo. + + - Support for LUKS whole-disk encryption in guests. + + - PHP bindings. + + - Progress messages (and progress bars in guestfish and virt-resize) + for certain long-running operations. + + - virt-df is now much more efficient. Use '--one-per-guest' to restore + the old per-guest isolation behaviour. + + - guestfish 'copy-in' and 'copy-out' commands for copying files and + directories recursively in and out of the guest. + + - guestfish 'hexedit' command for doing binary edits to devices and + files. + + - Change guestfish -i syntax to allow commands to be specified on the + command line (retaining backwards compatibility). + + - guestfish '-d <domain>' for adding disks from libvirt domains. + + - guestfish '-N' option supports several new prepared disk image types: + lvfs : disk with LV formatted with filesystem + lv : disk with LV + bootroot : boot+root + bootrootlv : boot and root on LV + + - guestfish 'more' and 'edit' commands now work with arbitrary files. + + - guestfish '--echo-keys' option allows you to echo keys/passphrases + while typing them. + + - guestmount now supports -a / -d / -i options, like guestfish. + + - Use virtio-serial for communications with the appliance. This + also has a major performance benefit. + + - virt-edit '-b' option to create a backup of edited files. + + - virt-edit '-e' option for non-interactive edits to files. + + - Ability to capture core dumps from the appliance (thanks Matthew Booth). + + - virt-rescue now shuts down cleanly (thanks Matthew Booth). + + - virt-rescue now has a --network option to enable network access. + + - virt-resize can now handle guests which use GPT partition table format. + + - virt-resize has better support for shrinking guests. + + - virt-resize supports qcow2-format guests. + + - $TMPDIR can be used to override almost all temporary directory usage. + + - OCaml users can use an alternate OO-style of coding, eg. g#launch () + + - The API supports calls which take optional parameters, eg. + $g->add_drive_opts ("disk", readonly => 1); + + - Trace output now escapes and shortens large strings (thanks + Matthew Booth). + + - Autosync is now on by default, resulting in more reliable behaviour + when the handle is closed. + + - virt-df --uuid option allows you to follow a domain across migration + and renaming. + + - Translations of manual pages. + + Security + + - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk + https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html + This is comprehensively fixed in this release, and the fix will be + backported to the other stable branches after more testing. + + - virt-inspector no longer relies on untrusted guest code to list + applications in some guests. + + New APIs + + download-offset, file-architecture, findfs-label, findfs-uuid, + inspect-os, inspect-get-arch, inspect-get-distro, + inspect-get-filesystems, inspect-get-major-version, + inspect-get-minor-version, inspect-get-mountpoints, + inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev, + is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key, + luks-close, luks-format, luks-format-cipher, luks-kill-slot, + luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name, + lvm-set-filter, part-to-dev, pread-device, pwrite-device, + upload-offset + + Internals + + - Use size_t for loop iterators. + - Refactor the library code into separate files. + - Refactor the generator code into separate files. + - Generate guestfish commands. + - guestfish & guestmount options processing is unified. + - Protocol changes: + error message size increased to 64K + send errno to library + - Add 'make bindist' to make a binary distribution. + - Cleaner behaviour under valgrind. + - More testing of the guestfish command line options and libvirt + integration. + - The Perl inspection code is no longer used by any of the tools. + + Bugs fixed + + - 646822 libguestfs trace mode should not print long binary strings + - 646821 virt-df should have --uuid option + - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints + - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell + - 642934 No way to specify disk format when adding a disk to libguestfs + - 642933 guestfs_list_filesystems should be used in all possible places + - 642932 guestmount options should match guestfish options + - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs + - 642929 C inspection code should ignore /dev/fd* in /etc/fstab + - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this + - 640961 Document that grub-install might be needed for old Linux guests after virt-resize + - 639986 virt-df --csv does not properly quote " in libvirt domain names + - 639405 Interrupted cached appliance creation leaves libguestfs unusable + - 638901 Appliance filename should not contain repository name + - 638899 /dev/mapper paths should not be returned from C inspection APIs + - 636918 Updates to Spanish translation + - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV) + - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage + - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem + - 633766 virt-resize --shrink fails + - 633357 Updates to Spanish translation + - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target + - 629593 Dutch translation added + - 627556 Updates to Spanish translations of libguestfs + - 626843 Updates to Spanish translations + - 619793 [RFE] Need a way to determine if a particular block device is a logical volume + - 618556 virt-rescue return none zero value when exit + - 617200 mount operation failed and hung on some images which running in read-only mode + - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077 + - 599503 document that mkmountpoint and umount-all cannot be mixed + - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it. + - 502533 Updated Polish translation of libguestfs + +RELEASE NOTES FOR LIBGUESTFS 1.4 + + These release notes only cover the differences from the previous + stable/dev branch split (1.2.0). For detailed changelogs, please see + the git repository, or the ChangeLog file distributed in the tarball. + + New features + + - guestfish lets you choose a prepared disk image, eg: + guestfish -N fs:ext4 + + - Add write support to guestmount (FUSE) module. + + - virt-resize can now resize the content of partitions and logical + volumes in the guest, and we have better support for shrinking guests. + + - Bash tab-completion script for guestfish. + + - Add ZFS support to virt-rescue. + + - New tool 'virt-make-fs' for creating filesystems with content. + + - Allow suffixes on any guestfish number parameter, eg. "1M". + + - guestfish 'man' command opens the manual page. + + - guestfish supports a "heredoc" syntax for uploading files: + upload -<<_end_ /foo + content + _end_ + + - Some guestfish commands now print their output in octal or hex + where appropriate (RHBZ#583242). + + - Allow dash prefix on guestfish command line. This ignores any + error from the second command: (RHBZ#578407) + guestfish -- cmd1 : -cmd2 : cmd3 + + - guestfish -h / help command now returns an error for non-existent + commands (RHBZ#597145). + + - New 'supported' command in guestfish to list optional groups of + commands which are supported by the daemon / configuration. + + - virt-inspector and guestfish -i now work for filenames which + contain spaces (RHBZ#507810). + + - Change the protocol to use link-local addresses, to avoid + conflicting with any address that the host might be using + (RHBZ#588763). + + - libguestfs now sets the correct time and timezone on filesystem + modifications. + + - Sort the domains into alphabetical order in virt-df. + + - Make mkfs-b command work for FAT and NTFS by mapping the blocksize + parameter to the cluster size (RHBZ#599464). + + - Add version numbers to Perl modules (RHBZ#521674). + + - Localization now works for all the libguestfs tools (RHBZ#559963). + + - Tools now support filesystem-on-image VMs (RHBZ#590167). + + - virt-list-partitions has a '-t' option to show the total size of disks. + + - Include extra Augeas lenses in the supermin appliance (Matthew Booth). + + - Add error and close callbacks. + + - Add explicit close method in the Perl API. + + - Multiple fixes for RHEL 5 compatibility. + + - Multiple fixes for Debian/Ubuntu compatibility. + + - Multiple revisions to improve the documentation. + + Security + + - Fix a potential DoS in virt-inspector and virt-v2v if a specially + crafted disk image contained a char device in place of one of the + configuration files that we read under /etc (RHBZ#582484). + + New APIs + + - aug-clear - clear Augeas path + - available-all-groups - return a list of all optional groups + - base64-in - upload base64-encoded data to file + - base64-out - download file and encode as base64 + - checksum-device - compute checksums on the contents of a device + - checksums-out - compute checksums of multiple files in a directory + - debug-upload - upload a file to the appliance + - fallocate64 - preallocate a file in the guest filesystem + - fill-pattern - fill a file with a repeating pattern of bytes + - get-umask - get the current umask + - lvresize-free - expand an LV to fill free space + - ntfsresize - resize an NTFS filesystem + - ntfsresize-size - resize an NTFS filesystem (with size) + - part-del - delete a partition + - part-get-bootable - get the bootable flag of a partition + - part-get-mbr-id - get the MBR type byte of a partition + - part-set-mbr-id - set the MBR type byte of a partition + - pvresize-size - resize a physical volume (with size) + - pwrite - write to part of a file + - resize2fs-size - resize an ext2/3/4 filesystem (with size) + - txz-in - unpack compressed tarball to directory (RHBZ#580556) + - txz-out - pack directory into compressed tarball (RHBZ#580556) + - vfs-label - get the filesystem label + - vfs-uuid - get the filesystem UUID + - vgscan - rescan for LVM physical volumes, volume groups and logical volumes + - write - create a new file + - zero-device - write zeroes to an entire device + + Internals + + - Extend the generator to support testing optional features. + - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894) + - Extend the protocol to support sending arbitrary 8 bit data buffers. + - Ship 'BUGS' file with releases. This is a summary of the bugs in + the Red Hat Bugzilla database. + - Ship 'RELEASE-NOTES' file with releases, containing release notes. + - Unify supermin appliance building into one place, in febootstrap 2.7. + - Fix the protocol code to handle the case where both ends send cancel + messages at the same time. + + Bugs fixed + + - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die + - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077 + - 604691 OCaml bindings are not thread safe + - 603870 Updates to Spanish translation + - 602592 [RFE] expose guestfs_close in perl bindings + - 600977 virt-df -h --csv "Argument .. isn't numeric in printf" + - 599464 mkfs-b does not support vfat/ntfs + - 598807 add_cdrom does not work in RHEL 6 + - 598309 part-list and several other cmd failed on libguestfs on RHEL5 + - 597145 guestfish 'help' command should indicate error in exit status with an unknown command + - 597135 guestfish write-file cmd does not check "size" parameter + - 597118 A warning should be given in the help of mke2journal-L for the length of label + - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID + - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests + - 596763 Updates to Spanish translation + - 593292 Updates to Spanish translation + - 592883 can not edit files on images mounted with guestmount cmd + - 592360 Updates to Spanish translation + - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format + - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable + - 591142 virt-inspector should give an error for unrecognized disk images + - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs + - 589039 guestfish read-file cmd will cause daemon hang when read large files + - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL + - 588763 libguestfs should use non-public or link-local addresses for appliance network + - 588733 Updates to Spanish translation + - 588651 guestfish 'strings-e' cmd does not give proper error message or hint + - 587484 lvresize can't reduce size of a volumn + - 585961 Updates to Spanish translation + - 585223 ntfsresize should support shrinking filesystems + - 585222 pvresize should support shrinking PVs + - 585221 resize2fs should support shrinking filesystems + - 584038 Updates to Spanish translation + - 583554 [FEAT] mknod-mode command is needed to set mode explicitly + - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes) + - 582993 guestfish eats words when tab completing case (in)sensitive paths + - 582953 Misleading help information about lvcreate command + - 582948 mknod command doesn't make block, character or FIFO devices + - 582929 mknod doesn't check for invalid mode + - 582901 guestfish chmod/umask commands do not check invalid mode value + - 582899 guestfish:sparse is missed from command autocomplete list + - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed + - 582548 [mknod] umask shouldn't take effect when mode is set explicitly + - 582484 some guestfish sub commands can not handle special files properly + - 582252 Updates to Spanish translation + - 581501 Updates to Spanish translation + - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]" + - 580556 request for libguestfs to support .txz tarballs + - 580246 tar-in command hangs if uploading more than available space + - 580016 aug-ls in guestfish does not take augeas variable as argument + - 579664 guestfish doesn't report error when there is not enough space for image allocation + - 579608 multiple commands in guestfish can not work for symbol links + - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode) + - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode + - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks + - 559963 libguestfs Perl programs do set locale, but still localization doesn't work + - 521674 Perl modules are unversioned, but should carry version numbers + - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy + - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames + - 502533 Updated Polish translation of libguestfs + - 501894 Some String parameters should be OptString + - 501893 String parameters should be checked for != NULL + - 501889 write-file does not support strings containing ASCII NUL + - 484986 grub-install fails on virtio disk + +RELEASE NOTES FOR HISTORICAL VERSIONS OF LIBGUESTFS + + Before 2010 libguestfs did not have official release notes or a + formalized version numbering system. However these are links to + historically significant versions. + + 2009-11-10 (1.0.78) + + https://www.redhat.com/archives/libguestfs/2009-November/msg00095.htm + l + + 2009-09-13 (1.0.67) + + https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html + + 2009-07-23 (1.0.64) + + https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html + + 2009-07-14 (1.0.59) + + https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html + + 2009-04-01 (the initial announcement) + + http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-vir + tual-machine-disk-images/ + +SEE ALSO + + guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), + guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), + http://libguestfs.org/ + diff --git a/src/guestfs.pod b/src/guestfs.pod index 1b4f99ba..5b709f64 100644 --- a/src/guestfs.pod +++ b/src/guestfs.pod @@ -3181,7 +3181,7 @@ Ubuntu. =item * -Finalize RELEASE-NOTES. +Finalize C<guestfs-release-notes.pod> =item * |