New tool: virt-alignment-scan to check alignment of partitions.
[libguestfs.git] / RELEASE-NOTES
1 Release notes for libguestfs 1.14.0
2 -----------------------------------
3
4 UPDATED TO COMMIT b0605f265be3f501930516ff95deab2910ced3ac
5
6 These release notes only cover the differences from the previous
7 stable/dev branch split (1.12.0).  For detailed changelogs, please see
8 the git repository, or the ChangeLog file distributed in the tarball.
9
10 New features
11
12   Erlang bindings.
13
14   virt-sparsify: A new tool to make virtual machine disk images sparse.
15
16   inspection:
17
18    - Improve detection of Windows disks.
19
20    - Add support for ttylinux (a minimal Linux).
21
22    - Handle some guest types that use /dev/root in /etc/fstab.
23
24   guestfish:
25
26    - New commands setenv, unsetenv, to set environment variables.
27
28    - The input file and line number is printed in error messages.
29
30    - guestfish progress bars are now a "mini-library" used by other
31      tools too.
32
33   febootstrap:
34
35    - FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can
36      be set in order to choose which kernel to use for the appliance.
37
38   virt-resize:
39
40    - The virt-resize --machine-readable flag makes it possible to use
41      virt-resize from other programs.
42
43   library:
44
45    - non-printing characters are escaped correctly in debug output.
46
47    - GUESTFS_EVENT_ENTER is a new event type generated whenever a
48      libguestfs function is called.
49
50   misc:
51
52 Security
53
54 New APIs
55
56   The mount API no longer implicitly adds -o sync,noatime options.
57
58   compress-out, compress-device-out, set-smp, get-smp
59
60 Internals
61
62  - Coverity was run on the source and more bugs were identified and
63    fixed.
64
65  - PCRE library is now required to build libguestfs.
66
67  - APIC is now the default for the appliance.  You can also enable
68    SMP support in the appliance.
69
70  - OCaml bindings now correctly acquire GC lock during callbacks.
71
72  - Out of tree builds should now work correctly (thanks Hilko Bengen).
73
74  - ./configure --with-extra="..." can be used by packagers to set
75    the extra version string.
76
77  - zero, zero-device APIs: if the blocks already contain zeroes,
78    don't write zeroes, so that we don't unnecessarily make the
79    underlying storage non-sparse.
80
81  - is-zero, is-zero-device APIs: optimize these so zero detection is
82    faster.
83
84 Bugs fixed
85
86             ./bugs-in-changelog.sh 1.12.0..
87
88  - 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)"
89  - 731744 libguestfs should escape special/non-printing characters in debug output
90  - 729887 appliance crashes running aug_init with flags=4
91  - 727178 error: luks_open: cryptsetup: error while loading shared libraries: libfipscheck.so.1: cannot open shared object file: No such file or directory
92  - 726739 libguestfs: error: aug_get: no matching node, trying to find hostname
93  - 678231 virt-inspector reports unknown filesystem UUID
94  - 671082 libguestfs does not work with kernel-rt
95  - 666578 libguestfs: unknown filesystem label SWAP-sda2
96
97
98 Release notes for libguestfs 1.12.0
99 -----------------------------------
100
101 These release notes only cover the differences from the previous
102 stable/dev branch split (1.10.0).  For detailed changelogs, please see
103 the git repository, or the ChangeLog file distributed in the tarball.
104
105 New features
106
107   guestfish:
108
109    - guestfish strings can use escapes,
110      eg. ><fs> write /foo "line 1\nline 2\n"
111
112    - guestfish write-append command can be used to append to files.
113
114    - Long-running file uploads and downloads can be cancelled through the
115      API or by hitting ^C in guestfish.
116
117    - New guestfish "display" command for displaying graphical files
118      inside guests.
119
120    - In guestfish, tab completion now works on /dev/mapper devices.
121
122   virt-inspector:
123
124    - Inspection API can get an icon or logo for certain guests.
125
126    - virt-inspector includes the logo and hostname for certain guests.
127
128    - virt-inspector can now get the version and release numbers for RPM
129      packages.
130
131    - CentOS and Scientific Linux are now treated as separate distros by
132      the inspection API.
133
134   virt-resize:
135
136    - virt-resize can now handle btrfs.
137
138    - New virt-resize --ntfsresize-force option allows Windows VMs to be
139      resized multiple times.
140
141   other virt tools:
142
143    - guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems,
144      virt-inspector, virt-ls and virt-rescue now allow you to use
145      "-d UUID" option to specify a guest by UUID.  This makes them more
146      robust to use from other programs.
147
148    - virt-ls -lR option allows complex file iteration and guest analysis.
149
150    - virt-win-reg supports HKEY_USERS\<SID> and HKEY_USERS\<username>.
151
152    - virt-win-reg new option --unsafe-printable-strings allows printable
153      strings to be displayed in the output (unsafely: read the documentation
154      before using).
155
156    - virt-edit has been rewritten in C.
157
158   API and language bindings:
159
160    - Java is now completely supported.
161      See http://libguestfs.org/guestfs-java.3.html
162
163    - JRuby is supported via the Java bindings.
164
165    - guestfs_close now appears in trace messages.
166
167    - Python binding adds explicit g.close() method.
168
169    - Python programs can now use the new event API.
170
171    - Python GIL is released during libguestfs calls, allowing multithreaded
172      Python programs to work properly.
173
174    - 9pfs (Plan 9 filesystems exported from the host) are now supported.
175
176    - Add -DGUESTFS_WARN_DEPRECATED=1 to warn about use of deprecated API
177      functions in C programs.
178
179    - New manual page guestfs-recipes(1) with recipes.
180
181    - mkfs-opts can now set inode size and sector size on created filesystems
182      (thanks Nikita Menkovich).
183
184    - guestfs_last_errno is now accessible from OCaml (as g#last_errno ()).
185
186 Security
187
188  - optargs_bitmask is checked even for calls that have no optional
189    arguments.  This closes a possible exploit in the daemon from
190    untrusted callers.
191
192 New APIs
193
194   btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero,
195   is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts,
196   set-pgroup, write-append
197
198 Internals
199
200  - Coverity (a static analysis tool) was run across the codebase and
201    many fixes were made.
202
203  - Generator can handle functions that return RBufferOut and have
204    optional arguments.
205
206  - Compatible with Perl 5.14.
207
208  - Compatible with gcc 4.6.
209
210  - Perform safety checks on QEMU.
211
212  - C API tests can now fully test calls that have optional arguments.
213
214  - Use ./configure --enable-install-daemon to install /usr/sbin/guestfsd.
215
216  - po-docs directory now covers all man pages.
217
218  - stderr from qemu process is now captured by the event subsystem.
219
220 Bugs fixed
221
222  - 602997 part-get-bootable gives wrong result with an unordered part layout
223  - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
224  - 700369 qemu-system-x86_64 says 'KVM not supported for this target'
225  - 705200 guestmount attempt results in access denied
226  - 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts
227  - 717786 libguestfs python bindings should have an explicit close call
228  - 721275 virt-resize in F16 should support btrfs
229
230
231 Release notes for libguestfs 1.10.0
232 -----------------------------------
233
234 These release notes only cover the differences from the previous
235 stable/dev branch split (1.8.0).  For detailed changelogs, please see
236 the git repository, or the ChangeLog file distributed in the tarball.
237
238 New features
239
240  - libguestfs and tools can be used against live virtual machines.
241    See the 'guestfish --live' and 'guestmount --live' options, and (for
242    the low-level interface) the new APIs set-attach-method and
243    get-attach-method.
244
245  - New virt tools:
246    virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.
247
248  - libguestfs can get the drive letter mappings for Windows guests.
249
250  - virt-inspector displays drive letter mappings for Windows guests.
251
252  - Drive letters can now be used in virt-edit and guestfish programs
253    when operating on Windows guests.
254
255  - virt-resize now works on 32 bit hosts.
256
257  - You can now inspect the install disks and live CDs of many different
258    operating systems.
259
260  - guestfish <! cmd which executes a shell cmd and inlines the result.
261
262  - guestfish, guestmount, virt-rescue now all support --ro and --rw
263    options, and the default for this can be chosen via a configuration
264    file (/etc/libguestfs-tools.conf).
265
266  - New event API allows more than one callback to be registered for
267    each event, makes it possible to call the API from other languages,
268    and allows nearly all log, debug and trace messages to be rerouted
269    from stderr.
270
271  - Greater FHS compliance for temporary files, including using /var/tmp
272    for large cached files that should survive reboot (instead of /tmp).
273
274  - guestfish, guestmount -m option allows mount options to be passed
275    through to the underlying filesystem.
276
277  - mkfs-opts allows filesystem features to be specified.
278
279  - More intelligent handling of mountpoints, allowing mkmountpoint, mount
280    and umount-all commands to work together properly.
281
282  - Trace messages are prefixed with a distinct string, allowing them to
283    be easily 'grepped' out from debug output.
284
285  - guestfs_launch (guestfish 'run' command) now produces progress
286    messages (a guestfish progress bar) if it takes longer than 5
287    seconds to run.
288
289  - Several long-running commands where we are unable to estimate time
290    to completion generate "pulse mode" progress events.  Progress bar
291    in guestfish has been updated to display these.
292
293  - Publish new example code in: C, Perl, Python, OCaml, Ruby.
294
295  - New virt-dhcp-address example program.
296
297  - The Java and Ruby bindings have been improved greatly.
298
299  - Perl includes a way to get the errno of the last error.
300
301  - Python bindings now compatible with rpyc (thanks Erez Shinan).
302
303  - Transifex is now being used to manage translations.
304    http://www.transifex.net/projects/p/libguestfs/
305
306  - Inspection now supports Red Hat Desktop, Slackware distributions.
307
308  - Inspection no longer fails for Windows guests that have two or
309    more disks.
310
311  - Inspection can now tell the difference between Windows 2008 Server
312    and Windows 7.
313
314  - Inspection can detect 32 bit applications installed in 64 bit
315    Windows, running on the WOW64 emulator.
316
317  - A series of protocol fixes has fixed the old bug RHBZ#576879
318    which used to cause errors during the upload command to lose
319    protocol synchronization.
320
321  - New logo!
322
323 Security
324
325   [none]
326
327 New APIs
328
329   first-private, get-attach-method, inspect-get-drive-mappings,
330   inspect-get-product-variant,
331   inspect-get-windows-current-control-set, next-private, resize2fs-M,
332   set-attach-method.
333
334 Internals
335
336  - The 'HACKING' file is obsolete.  The contents have been moved into
337    a section of the guestfs(3) manual page.
338
339  - libguestfs-test-tool simplified.  It no longer needs the static
340    binary or tries to construct an ISO.
341
342  - rpcgen-generated files are compiled with -fno-strict-aliasing
343    which should be safer (thanks Matt Booth).
344
345  - virt-resize was rewritten in OCaml.
346
347  - guestfish and other tools tested with valgrind; some memory leaks
348    were fixed.
349
350 Bugs fixed
351
352  - 502533 Updated Polish translation of libguestfs
353  - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
354  - 599503 document that mkmountpoint and umount-all cannot be mixed
355  - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
356  - 664558 RFE: Allow to set log callback in Ruby bindings
357  - 665358 Punjabi Translation Completed (pa_IN)
358  - 666577 libguestfs: unknown filesystem /dev/fd0
359  - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
360  - 668112 virt-filesystems command fails on guest with corrupt filesystem label
361  - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
362  - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
363  - 674130 Inspection code fails for Windows guest with two disks
364  - 682756 libguestfs trace segfaults when list-filesystems returns error
365  - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
366  - 690819 mkfs fails creating a filesytem on a disk device when using a disk with 'ide' interface
367  - 691389 Extended attributes don't work over guestmount (FUSE)
368  - 691724 virt-inspector reports unknown filesystem /dev/vda1
369  - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
370  - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter
371
372 Release notes for libguestfs 1.8.0
373 ----------------------------------
374
375 These release notes only cover the differences from the previous
376 stable/dev branch split (1.6.0).  For detailed changelogs, please see
377 the git repository, or the ChangeLog file distributed in the tarball.
378
379 New features
380
381  - Support and packages for Debian and Ubuntu.
382
383  - Daily builds from git repository on Debian and Ubuntu to reduce risk
384    of regressions.
385
386  - Port to ArchLinux 'pacman' (thanks Thomas S Hatch).
387
388  - The following tools have been rewritten in C (originally in Perl):
389
390      . virt-cat
391      . virt-df
392      . virt-inspector
393      . virt-ls
394      . virt-rescue
395
396  - Some C tools support encrypted guests automatically.  This is
397    supported in: guestfish, guestmount, virt-cat, virt-inspector,
398    virt-ls.
399
400  - New tool virt-filesystems (in C) which is a replacement for
401    virt-list-filesystems and virt-list-partitions, and has a superset
402    of the functionality of those tools.
403
404  - guestfish, guestmount and the C tools use unified command line option
405    parsing, so they support many common options such as '-a disk.img',
406    '-d libvirt-domain', '-x', '-v'.  The old command line option
407    parsing is preserved for compatibility in scripts etc.
408
409  - guestfish no longer has any dependencies on Perl
410
411  - New man pages containing programming examples: guestfs-examples(3) (C/C++),
412    guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).
413
414  - Trace mode prints return values from API functions.
415
416  - virt-inspector can list applications installed in Windows guests, along
417    with a great deal of information about those applications.
418
419  - Add support for inspecting: Linux Mint, Mandriva, FreeBSD.
420
421  - guestfish --rw option (with no effect currently) to make potentially
422    dangerous write access explicit.
423
424  - guestfish --listen --csh for compatibility with csh, tcsh (thanks
425    Eric Blake).
426
427  - The first upstream version that introduced each API function is now
428    documented in guestfs(3).
429
430  - guestfs_last_errno allows you to retrieve the errno from the
431    daemon, correctly translated to the local operating system.
432
433  - Functions can now have optional parameters.
434
435  - Progress bars and progress notifications can now happen for upload
436    commands.
437
438  - Appliance builder more careful about not leaving temporary files
439    around in /tmp.
440
441  - getfattr/setfattr commands added to virt-rescue.
442
443  - ROADMAP file covers roadmap and goals for future releases.
444
445 Security
446
447  - New SECURITY section in guestfs(3) API documentation.
448
449  - virt-inspector no longer runs any guest commands.
450
451  - Inspection code is more careful about avoiding very large files
452    from guests which might previously have caused a denial of service.
453
454  - FUSE calls into guestmount are now traced when using guestmount -x.
455
456 New APIs
457
458  - add-domain
459  - add-drive-opts
460  - getxattr
461  - inspect-get-hostname
462  - inspect-get-package-format
463  - inspect-get-package-management
464  - inspect-get-roots
465  - inspect-list-applications
466  - lgetxattr
467  - mkfs-opts
468
469 Internals
470
471  - C programs now only link precisely with the libraries that they use.
472
473  - PCRE, libmagic, hivex and libvirt libraries are now completely
474    optional for building.
475
476  - Multiple memory leaks and file descriptor leaks fixed.
477
478  - Add a POD wrapper to unify generation of man pages and HTML files
479    across all programs.
480
481  - Source includes phony images of Fedora, Debian, Ubuntu and
482    Windows guests.
483
484  - Ruby bindings have 'make install' rule.
485
486  - <guestfs.h> is now a single file.
487
488  - <guestfs.h> does not require XDR headers.
489
490  - ocaml xml-light library is no longer required to build (thanks
491    Maxim Koltsov).
492
493  - ./configure --disable-[...] for each language binding (thanks
494    Maxim Koltsov).
495
496  - Old ocaml-viewer program removed (use guestfs-browser instead).
497
498  - New C API test type 'InitScratchFS' makes the tests run a little
499    more quickly.
500
501  - Excluded packages in the appliance are now listed in a separate
502    file appliance/excludelist.in, and can be customized per-distro.
503
504 Bugs fixed
505
506  - 663407 readlink and readlinklist returns /sysroot/ in some paths
507  - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
508  - 657499 checksum: wrong check sum type causes umount to fail
509  - 655554 Whole disk paths are not made canonical by virt-inspector
510  - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
511  - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution
512
513 Release notes for libguestfs 1.6.0
514 ----------------------------------
515
516 These release notes only cover the differences from the previous
517 stable/dev branch split (1.4.0).  For detailed changelogs, please see
518 the git repository, or the ChangeLog file distributed in the tarball.
519
520 New features
521
522  - Use a new method for creating and caching the appliance.  This
523    greatly improves the performance of libguestfs, often by a factor
524    of x 4 to x 5.
525
526  - Support for guest inspection (like virt-inspector) via the ordinary
527    API and all language bindings.  'guestfish -i' option is as a side-
528    effect much quicker.
529
530  - virt-inspector and core inspection API can now detect guests running:
531    Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
532    Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.
533
534  - Support for LUKS whole-disk encryption in guests.
535
536  - PHP bindings.
537
538  - Progress messages (and progress bars in guestfish and virt-resize)
539    for certain long-running operations.
540
541  - virt-df is now much more efficient.  Use '--one-per-guest' to restore
542    the old per-guest isolation behaviour.
543
544  - guestfish 'copy-in' and 'copy-out' commands for copying files and
545    directories recursively in and out of the guest.
546
547  - guestfish 'hexedit' command for doing binary edits to devices and
548    files.
549
550  - Change guestfish -i syntax to allow commands to be specified on the
551    command line (retaining backwards compatibility).
552
553  - guestfish '-d <domain>' for adding disks from libvirt domains.
554
555  - guestfish '-N' option supports several new prepared disk image types:
556          lvfs : disk with LV formatted with filesystem
557            lv : disk with LV
558      bootroot : boot+root
559    bootrootlv : boot and root on LV
560
561  - guestfish 'more' and 'edit' commands now work with arbitrary files.
562
563  - guestfish '--echo-keys' option allows you to echo keys/passphrases
564    while typing them.
565
566  - guestmount now supports -a / -d / -i options, like guestfish.
567
568  - Use virtio-serial for communications with the appliance.  This
569    also has a major performance benefit.
570
571  - virt-edit '-b' option to create a backup of edited files.
572
573  - virt-edit '-e' option for non-interactive edits to files.
574
575  - Ability to capture core dumps from the appliance (thanks Matthew Booth).
576
577  - virt-rescue now shuts down cleanly (thanks Matthew Booth).
578
579  - virt-rescue now has a --network option to enable network access.
580
581  - virt-resize can now handle guests which use GPT partition table format.
582
583  - virt-resize has better support for shrinking guests.
584
585  - virt-resize supports qcow2-format guests.
586
587  - $TMPDIR can be used to override almost all temporary directory usage.
588
589  - OCaml users can use an alternate OO-style of coding, eg. g#launch ()
590
591  - The API supports calls which take optional parameters, eg.
592      $g->add_drive_opts ("disk", readonly => 1);
593
594  - Trace output now escapes and shortens large strings (thanks
595    Matthew Booth).
596
597  - Autosync is now on by default, resulting in more reliable behaviour
598    when the handle is closed.
599
600  - virt-df --uuid option allows you to follow a domain across migration
601    and renaming.
602
603  - Translations of manual pages.
604
605 Security
606
607  - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk
608    https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html
609    This is comprehensively fixed in this release, and the fix will be
610    backported to the other stable branches after more testing.
611
612  - virt-inspector no longer relies on untrusted guest code to list
613    applications in some guests.
614
615 New APIs
616
617   download-offset, file-architecture, findfs-label, findfs-uuid,
618   inspect-os, inspect-get-arch, inspect-get-distro,
619   inspect-get-filesystems, inspect-get-major-version,
620   inspect-get-minor-version, inspect-get-mountpoints,
621   inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
622   is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
623   luks-close, luks-format, luks-format-cipher, luks-kill-slot,
624   luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
625   lvm-set-filter, part-to-dev, pread-device, pwrite-device,
626   upload-offset
627
628 Internals
629
630  - Use size_t for loop iterators.
631  - Refactor the library code into separate files.
632  - Refactor the generator code into separate files.
633  - Generate guestfish commands.
634  - guestfish & guestmount options processing is unified.
635  - Protocol changes:
636      error message size increased to 64K
637      send errno to library
638  - Add 'make bindist' to make a binary distribution.
639  - Cleaner behaviour under valgrind.
640  - More testing of the guestfish command line options and libvirt
641    integration.
642  - The Perl inspection code is no longer used by any of the tools.
643
644 Bugs fixed
645
646  - 646822 libguestfs trace mode should not print long binary strings
647  - 646821 virt-df should have --uuid option
648  - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
649  - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
650  - 642934 No way to specify disk format when adding a disk to libguestfs
651  - 642933 guestfs_list_filesystems should be used in all possible places
652  - 642932 guestmount options should match guestfish options
653  - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
654  - 642929 C inspection code should ignore /dev/fd* in /etc/fstab
655  - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
656  - 640961 Document that grub-install might be needed for old Linux guests after virt-resize
657  - 639986 virt-df --csv does not properly quote " in libvirt domain names
658  - 639405 Interrupted cached appliance creation leaves libguestfs unusable
659  - 638901 Appliance filename should not contain repository name
660  - 638899 /dev/mapper paths should not be returned from C inspection APIs
661  - 636918 Updates to Spanish translation
662  - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
663  - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
664  - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
665  - 633766 virt-resize --shrink fails
666  - 633357 Updates to Spanish translation
667  - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
668  - 629593 Dutch translation added
669  - 627556 Updates to Spanish translations of libguestfs
670  - 626843 Updates to Spanish translations
671  - 619793 [RFE] Need a way to determine if a particular block device is a logical volume
672  - 618556 virt-rescue return none zero value when exit
673  - 617200 mount operation failed and hung on some images which running in read-only mode
674  - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
675  - 599503 document that mkmountpoint and umount-all cannot be mixed
676  - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
677  - 502533 Updated Polish translation of libguestfs
678
679 Release notes for libguestfs 1.4.0
680 ----------------------------------
681
682 These release notes only cover the differences from the previous
683 stable/dev branch split (1.2.0).  For detailed changelogs, please see
684 the git repository, or the ChangeLog file distributed in the tarball.
685
686 New features
687
688  - guestfish lets you choose a prepared disk image, eg:
689      guestfish -N fs:ext4
690
691  - Add write support to guestmount (FUSE) module.
692
693  - virt-resize can now resize the content of partitions and logical
694    volumes in the guest, and we have better support for shrinking guests.
695
696  - Bash tab-completion script for guestfish.
697
698  - Add ZFS support to virt-rescue.
699
700  - New tool 'virt-make-fs' for creating filesystems with content.
701
702  - Allow suffixes on any guestfish number parameter, eg. "1M".
703
704  - guestfish 'man' command opens the manual page.
705
706  - guestfish supports a "heredoc" syntax for uploading files:
707      upload -<<_end_ /foo
708      content
709      _end_
710
711  - Some guestfish commands now print their output in octal or hex
712    where appropriate (RHBZ#583242).
713
714  - Allow dash prefix on guestfish command line.  This ignores any
715    error from the second command:                   (RHBZ#578407)
716      guestfish -- cmd1 : -cmd2 : cmd3
717
718  - guestfish -h / help command now returns an error for non-existent
719    commands (RHBZ#597145).
720
721  - New 'supported' command in guestfish to list optional groups of
722    commands which are supported by the daemon / configuration.
723
724  - virt-inspector and guestfish -i now work for filenames which
725    contain spaces (RHBZ#507810).
726
727  - Change the protocol to use link-local addresses, to avoid
728    conflicting with any address that the host might be using
729    (RHBZ#588763).
730
731  - libguestfs now sets the correct time and timezone on filesystem
732    modifications.
733
734  - Sort the domains into alphabetical order in virt-df.
735
736  - Make mkfs-b command work for FAT and NTFS by mapping the blocksize
737    parameter to the cluster size (RHBZ#599464).
738
739  - Add version numbers to Perl modules (RHBZ#521674).
740
741  - Localization now works for all the libguestfs tools (RHBZ#559963).
742
743  - Tools now support filesystem-on-image VMs (RHBZ#590167).
744
745  - virt-list-partitions has a '-t' option to show the total size of disks.
746
747  - Include extra Augeas lenses in the supermin appliance (Matthew Booth).
748
749  - Add error and close callbacks.
750
751  - Add explicit close method in the Perl API.
752
753  - Multiple fixes for RHEL 5 compatibility.
754
755  - Multiple fixes for Debian/Ubuntu compatibility.
756
757  - Multiple revisions to improve the documentation.
758
759 Security
760
761  - Fix a potential DoS in virt-inspector and virt-v2v if a specially
762    crafted disk image contained a char device in place of one of the
763    configuration files that we read under /etc (RHBZ#582484).
764
765 New APIs
766
767  - aug-clear - clear Augeas path
768  - available-all-groups - return a list of all optional groups
769  - base64-in - upload base64-encoded data to file
770  - base64-out - download file and encode as base64
771  - checksum-device - compute checksums on the contents of a device
772  - checksums-out - compute checksums of multiple files in a directory
773  - debug-upload - upload a file to the appliance
774  - fallocate64 - preallocate a file in the guest filesystem
775  - fill-pattern - fill a file with a repeating pattern of bytes
776  - get-umask - get the current umask
777  - lvresize-free - expand an LV to fill free space
778  - ntfsresize - resize an NTFS filesystem
779  - ntfsresize-size - resize an NTFS filesystem (with size)
780  - part-del - delete a partition
781  - part-get-bootable - get the bootable flag of a partition
782  - part-get-mbr-id - get the MBR type byte of a partition
783  - part-set-mbr-id - set the MBR type byte of a partition
784  - pvresize-size - resize a physical volume (with size)
785  - pwrite - write to part of a file
786  - resize2fs-size - resize an ext2/3/4 filesystem (with size)
787  - txz-in - unpack compressed tarball to directory (RHBZ#580556)
788  - txz-out - pack directory into compressed tarball (RHBZ#580556)
789  - vfs-label - get the filesystem label
790  - vfs-uuid - get the filesystem UUID
791  - vgscan - rescan for LVM physical volumes, volume groups and logical volumes
792  - write - create a new file
793  - zero-device - write zeroes to an entire device
794
795 Internals
796
797  - Extend the generator to support testing optional features.
798  - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894)
799  - Extend the protocol to support sending arbitrary 8 bit data buffers.
800  - Ship 'BUGS' file with releases.  This is a summary of the bugs in
801    the Red Hat Bugzilla database.
802  - Ship 'RELEASE-NOTES' file with releases, containing release notes.
803  - Unify supermin appliance building into one place, in febootstrap 2.7.
804  - Fix the protocol code to handle the case where both ends send cancel
805    messages at the same time.
806
807 Bugs fixed
808
809  - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
810  - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
811  - 604691 OCaml bindings are not thread safe
812  - 603870 Updates to Spanish translation
813  - 602592 [RFE] expose guestfs_close in perl bindings
814  - 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
815  - 599464 mkfs-b does not support vfat/ntfs
816  - 598807 add_cdrom does not work in RHEL 6
817  - 598309 part-list and several other cmd failed on libguestfs on RHEL5
818  - 597145 guestfish 'help' command should indicate error in exit status with an unknown command
819  - 597135 guestfish write-file cmd does not check "size" parameter
820  - 597118 A warning should be given in the help of mke2journal-L for the length of label
821  - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
822  - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
823  - 596763 Updates to Spanish translation
824  - 593292 Updates to Spanish translation
825  - 592883 can not edit files on  images mounted with guestmount cmd
826  - 592360 Updates to Spanish translation
827  - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
828  - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
829  - 591142 virt-inspector should give an error for unrecognized disk images
830  - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
831  - 589039 guestfish read-file cmd will cause daemon hang when read large files
832  - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
833  - 588763 libguestfs should use non-public or link-local addresses for appliance network
834  - 588733 Updates to Spanish translation
835  - 588651 guestfish 'strings-e' cmd does not give proper error message or hint
836  - 587484 lvresize can't reduce size of a volumn
837  - 585961 Updates to Spanish translation
838  - 585223 ntfsresize should support shrinking filesystems
839  - 585222 pvresize should support shrinking PVs
840  - 585221 resize2fs should support shrinking filesystems
841  - 584038 Updates to Spanish translation
842  - 583554 [FEAT] mknod-mode command is needed to set mode explicitly
843  - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
844  - 582993 guestfish eats words when tab completing case (in)sensitive paths
845  - 582953 Misleading help information about lvcreate command
846  - 582948 mknod command doesn't make block, character or FIFO devices
847  - 582929 mknod doesn't check for invalid mode
848  - 582901 guestfish chmod/umask commands do not check invalid mode value
849  - 582899 guestfish:sparse is missed from command autocomplete list
850  - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
851  - 582548 [mknod] umask shouldn't take effect when mode is set explicitly
852  - 582484 some guestfish sub commands can not handle special files properly
853  - 582252 Updates to Spanish translation
854  - 581501 Updates to Spanish translation
855  - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]"
856  - 580556 request for libguestfs to support .txz tarballs
857  - 580246 tar-in command hangs if uploading more than available space
858  - 580016 aug-ls in guestfish does not take augeas variable as argument
859  - 579664 guestfish doesn't report error when there is not enough space for image allocation
860  - 579608 multiple commands in guestfish can not work for symbol links
861  - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
862  - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
863  - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
864  - 559963 libguestfs Perl programs do set locale, but still localization doesn't work
865  - 521674 Perl modules are unversioned, but should carry version numbers
866  - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
867  - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
868  - 502533 Updated Polish translation of libguestfs
869  - 501894 Some String parameters should be OptString
870  - 501893 String parameters should be checked for != NULL
871  - 501889 write-file does not support strings containing ASCII NUL
872  - 484986 grub-install fails on virtio disk
873
874 Release notes for previous versions of libguestfs
875 -------------------------------------------------
876
877 2009-11-10 : 1.0.78
878 https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html
879
880 2009-09-13 : 1.0.67
881 https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html
882
883 2009-07-23 : 1.0.64
884 https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html
885
886 2009-07-14 : 1.0.59
887 https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html
888
889 2009-04-01 : Initial announcement
890 http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/