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