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