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