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