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