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