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