1guestfs-release-notes(1)    Virtualization Support    guestfs-release-notes(1)
2
3
4

NAME

6       guestfs-release-notes - libguestfs Release Notes
7

RELEASE NOTES FOR LIBGUESTFS 1.20

9       These release notes only cover the differences from the previous
10       stable/dev branch split (1.18.0).  For detailed changelogs, please see
11       the git repository, or the ChangeLog file distributed in the tarball.
12
13   New features
14       libvirt and sVirt (SELinux confinement)
15
16       You can optionally use libvirt to launch and manage the backend
17       appliance by:
18
19       ·   setting "LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]"
20
21       ·   using "./configure --with-default-attach-method=libvirt[:URI]"
22
23       ·   or calling the API method "guestfs_set_attach_method"
24
25       SVirt (SELinux confinement) is used to secure the libguestfs appliance,
26       if the libvirt backend is selected.
27
28       virtio-scsi, larger number of drives, hotplugging
29
30       Virtio-scsi is now used by default, if it is available.  This greatly
31       increases the number of drives that can be added to a single libguestfs
32       handle (up to 255).
33
34       You can now hotplug drives (add and remove drives after launch).
35
36       Libguestfs can now handle > 25 disks, in all APIs, tools and tests.
37
38       You can label drives when adding them, then refer to them by label
39       ("/dev/disk/guestfs/LABEL") instead of having to use device names
40       ("/dev/sda").
41
42       new library features
43
44       POSIX Access Control Lists (ACLs) and Linux filesystem capabilities can
45       now be read and written through the API.
46
47       Windows Dynamic Disks are now supported.  The metadata can only be read
48       (volumes cannot be modified or created).  However the data/filesystems
49       in the volumes themselves can be mounted, read and written (Matthew
50       Booth).
51
52       Hivex (Windows Registry editing) is now directly supported through the
53       API, making reading or editing the Windows Registry much more
54       efficient.
55
56       Several libguestfs APIs were reimplemented so they no longer have any
57       limits on output.  The reimplemented APIs are: "guestfs_cat",
58       "guestfs_find", "guestfs_read_file", "guestfs_read_lines",
59       "guestfs_write", "guestfs_write_append", "guestfs_lstatlist",
60       "guestfs_lxattrlist", "guestfs_readlinklist", "guestfs_ls".
61
62       virt tools
63
64       "guestfish touch 'win:c:\new_file'" now works as expected.
65
66       "guestfish" has a new --network option, which enables the user network
67       in libguestfs.
68
69       You can set "GUESTFISH_PS1" to use fancy prompts in "guestfish".
70
71       "rsync", "ssh", "less" and "lrzip" commands are now available in virt-
72       rescue.  In addition, "rsync" can be used through the API for doing
73       incremental copies.
74
75       "virt-sparsify" uses qcow2 v3 for increased efficiency.
76
77       "virt-sysprep" enhancements:
78
79       ·   generate new UUIDs for PVs and VGs
80
81       ·   remove the local machine ID (Wanlong Gao)
82
83       ·   remove ABRT data (Wanlong Gao)
84
85       ·   remove puppet keys and log files (Wanlong Gao)
86
87       ·   remove process accounting files (Wanlong Gao)
88
89       ·   new --firstboot parameter allowing firstboot scripts for
90           customizing guests
91
92       ·   remove HOSTNAME field from "ifcfg-eth*" files (Wanlong Gao)
93
94       ·   miscellaneous improvements for SuSE (Olaf Hering)
95
96       ·   remove man pages cache (Wanlong Gao)
97
98       ·   remove crash data generated by kexec-tools (Wanlong Gao)
99
100       "virt-make-fs" can now create virtual floppy disks (VFDs).
101
102       "guestmount" has a --pid-file option, which can be used to avoid a race
103       condition between unmounting the filesystem and using the underlying
104       disk image.
105
106       language bindings
107
108       Full-featured Lua bindings have been added in this release (thanks to
109       Jerome Vuarand for many suggestions).
110
111       In Ruby, optional arguments hash is optional.
112
113       In Python, optional arguments now don't use special "sentinel" values,
114       so any integer can be passed as an optional argument.
115
116       Erlang bindings now come with examples and tests.
117
118       Erlang bindings now handle 64 bit integer parameters correctly.
119
120       The automated 'bindtests' now test for 64 bit cleanliness in parameter
121       passing.  Several bugs in the bindings were found and fixed as a
122       result.
123
124       Better handling of blocking and non-blocking functions should make
125       libguestfs calls more efficient.
126
127       inspection
128
129       Windows guests with unlimited-sized Registries are now supported.  By
130       adding the hivex API to the libguestfs API, it is much more efficient
131       and easier to inspect and modify the Windows Registry in guests.
132
133       Better support for SuSE guests (Olaf Hering).
134
135       Return the architecture of installed applications (John Eckersberg).
136
137       Windows 8 is now supported.
138
139       Fedora 18 is now supported.
140
141       Inspection of ISOs/CDs/DVDs can now use the libosinfo database.
142
143       ports
144
145       Libguestfs without the appliance can be compiled on Mac OS X (Masami
146       HIRATA).
147
148       RHEL 5 is now explicitly supported through the 'oldlinux' branch in
149       upstream git.
150
151       PowerPC 64 bit is now supported.  Also libguestfs has been examined for
152       endianness bugs and these have been fixed.
153
154       daemon
155
156       A man page for the daemon (guestfsd(8)) is included.
157
158   Security
159       guestfish history file
160
161       The "$HOME/.guestfish" history file is now created with 0600
162       permissions (instead of 0644 before) so it is no longer world readable.
163
164       CVE-2012-2690
165
166       Old versions of both "virt-edit" and the "guestfish" "edit" command
167       created a new file containing the changes but did not set the
168       permissions, etc of the new file to match the old one.  The result of
169       this was that if you edited a security sensitive file such as
170       "/etc/shadow" then it would be left world-readable after the edit.
171
172       This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥
173       1.16.
174
175       For further information, see
176       https://bugzilla.redhat.com/show_bug.cgi?id=788642
177
178   New APIs
179        acl-delete-def-file
180        acl-get-file
181        acl-set-file
182        canonical-device-name
183        cap-get-file
184        cap-set-file
185        create-flags
186        device-index
187        disk-has-backing-file
188        disk-format
189        disk-virtual-size
190        filesystem-available
191        fill-dir
192        fstrim
193        get-cachedir
194        get-libvirt-requested-credentials
195        get-libvirt-requested-credential-prompt
196        get-libvirt-requested-credential-challenge
197        get-libvirt-requested-credential-defresult
198        get-tmpdir
199        hivex-close
200        hivex-commit
201        hivex-node-add-child
202        hivex-node-children
203        hivex-node-delete-child
204        hivex-node-get-child
205        hivex-node-get-value
206        hivex-node-name
207        hivex-node-parent
208        hivex-node-set-value
209        hivex-node-values
210        hivex-open
211        hivex-root
212        hivex-value-key
213        hivex-value-type
214        hivex-value-utf8
215        hivex-value-value
216        inspect-list-applications2 (John Eckersberg)
217        list-ldm-volumes
218        list-ldm-partitions
219        ldmtool-create-all
220        ldmtool-diskgroup-disks
221        ldmtool-diskgroup-name
222        ldmtool-diskgroup-volumes
223        ldmtool-remove-all
224        ldmtool-scan
225        ldmtool-scan-devices
226        ldmtool-volume-hint
227        ldmtool-volume-partitions
228        ldmtool-volume-type
229        ls0
230        max-disks
231        mke2fs (Wanlong Gao)
232        mklost-and-found
233        mkswap [added label and uuid optional arguments]
234        mktemp (Wanlong Gao)
235        nr-devices
236        parse-environment
237        parse-environment-list
238        rm-f
239        rsync
240        rsync-in
241        rsync-out
242        set-cachedir
243        set-libvirt-supported-credentials
244        set-libvirt-requested-credential
245        set-tmpdir
246        shutdown [backported to 1.16 and 1.18]
247        tar-in [added compress flag]
248        tar-out [added compress, numericowner, excludes flags]
249        umount [added force and lazy optional arguments]
250        utsname
251        xfs-admin (Wanlong Gao)
252        xfs-growfs (Wanlong Gao)
253        xfs-info (Wanlong Gao)
254        xfs-repair (Wanlong Gao)
255
256       In the C API only:
257
258        guestfs_push_error_handler
259        guestfs_pop_error_handler
260
261   Internals
262       qemu ≥ 1.1 is required (≥ 1.2 preferred).
263
264       febootstrap ≥ 3.20 is required.
265
266       libvirt is optional, but if you want to use the new libvirt backend for
267       launching the appliance then libvirt ≥ 0.10.2 would be required.
268
269       Coverity has been run over the complete codebase, and many issues fixed
270       (thanks Ondrej Vasik, Kamil Dudka).
271
272       Functions which previously had no optargs can now be converted to ones
273       with optargs, making extending the API much more flexible.  Source and
274       binary backwards compatibility is preserved for users of the API.
275
276       The way that libguestfs APIs and structures are represented in the
277       generator has changed to use an OCaml struct instead of a tuple.  This
278       makes generator descriptions more flexible and easier to understand.
279       For details see commits 39d1a7db and eb185eef.
280
281       Separation of the library code into more files:
282
283       ·   Launch backends are now located in separate files eg.
284           "src/launch-appliance.c", "src/launch-libvirt.c".
285
286       ·   Generated action code is now split over several "src/action*.c"
287           files, for faster compilation.
288
289       ·   The huge "src/guestfs.c" file is now split into smaller logical
290           units.
291
292       POD (documentation) is now generated using a rewritten Perl program
293       instead of pod2* + shell scripts.
294
295       Man pages now contain stable dates (Hilko Bengen).
296
297       Skipped tests now exit with code 77, so they appear as "SKIP:" in "make
298       check" output.
299
300       The parallel mount-local test has been rewritten in C (RHBZ#838081).
301
302       Ruby 1.8.5 is now supported (though Ruby ≥ 1.9 is preferred).
303
304       Perl bindings can be disabled via "./configure --disable-perl" (Wulf C.
305       Krueger).  Note that Perl is still required in order to build
306       libguestfs.
307
308       Java bindings are now enabled/disabled using "./configure --with-java"
309       or "./configure --without-java" (Wulf C. Krueger).
310
311       New configure options "./configure --enable-code-profiling" and
312       "./configure --enable-code-coverage".
313
314       Multiple fixes to use of 64 bit integers in language bindings.
315
316       The appliance backend now uses sgabios instead of vgabios (Dan
317       Berrange).
318
319       The "./run" script now sets enough environment variables that you can
320       run OCaml, Python, Ruby, Java, GJS, Erlang, Lua programs.
321
322       "./run --test" flag for running tests with minimal output.  It also
323       prints the time taken to run each test.
324
325       The "./run" script now builds up paths cumulatively, meaning that you
326       can use "./run" twice, or use the libguestfs and libvirt "./run"
327       scripts together.
328
329       You can extract a list of external commands required by the daemon,
330       making building the appliance on certain distros easier (Olaf Hering).
331
332       The "virt-rescue" command is now tested during "make check".
333
334       The generator now removes unused generated files.  This helps when
335       going back and forth with git rebase, git bisect, etc.
336
337       Tests now run in a separate toplevel "tmp/" directory in the source.
338       This allows the directory to be labelled for SELinux (sVirt), and also
339       makes it easier to clean up.
340
341       "make syntax-check" now works to a greater extent, and many problems in
342       the main code that were found by syntax-check have been fixed (thanks
343       Jim Meyering).
344
345       Emacs mode (-*- foo -*-) has been added to generated files.
346
347       Progress bar output is now sent to "/dev/tty" so it doesn't end up in
348       the regular output of the program.  virt-resize and virt-sparsify now
349       suppress progress bars if stdout is not a tty.
350
351       There is now a "./configure --without-libvirt" option.  This is useful
352       for testing that the code still compiles without libvirt.
353
354       There is now an internal mini-library for running commands.  This
355       allows us to redirect errors from external commands into events.
356
357       Code for handling temporary directories and the appliance cache was
358       completely overhauled.
359
360       Code for temporarily ignoring/disabling errors now looks like this:
361
362        guestfs_push_error_handler (g, NULL, NULL);
363        guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */
364        guestfs_pop_error_handler (g);
365
366       The "tests/extra" directory has gone.  The "extra tests" are now split
367       into separately runnable targets, such as "make check-valgrind".  Use
368       "make help" to get a summary of the targets.
369
370       The "lpj" option is passed to the appliance kernel when using TCG.
371       This should improve clock stability (thanks Marcelo Tosatti, Olaf
372       Hering).
373
374   Bugs fixed
375       https://bugzilla.redhat.com/882417
376           libguestfs tools fail with odd error messages if TMPDIR is not an
377           absolute path
378
379       https://bugzilla.redhat.com/882299
380           Windows 8 guest disks can't be mounted: "The NTFS partition is in
381           an unsafe state. Please resume and shutdown Windows fully (no
382           hibernation or fast restarting), or mount the volume read-only with
383           the 'ro' mount option."
384
385       https://bugzilla.redhat.com/881953
386           libguestfs: migration to /etc/hostname, /etc/vconsole.conf,
387           /etc/locale.conf
388
389       https://bugzilla.redhat.com/880801
390           virt-df with two -a options displays incorrect disk image name
391
392       https://bugzilla.redhat.com/879416
393           libguestfs-test-tool pauses when you use --help option
394
395       https://bugzilla.redhat.com/876579
396           mke2fs API does not apply block device naming translation to
397           journaldevice optarg
398
399       https://bugzilla.redhat.com/860235
400           SELinux policy ought to allow qemu to write to
401           unconfined_u:object_r:user_tmp_t:s0
402
403       https://bugzilla.redhat.com/859949
404           RFE: inspect-list-applications does not return the architecture of
405           RPM packages
406
407       https://bugzilla.redhat.com/859885
408           inspect-list-applications does not list all installed RPM packages
409           with same name and different versions
410
411       https://bugzilla.redhat.com/859876
412           guestfish printed paths are not canonicalized
413
414       https://bugzilla.redhat.com/859875
415           Progress bar output should go to tty(?) stderr(?)
416
417       https://bugzilla.redhat.com/858696
418           virt-sysprep reports Guestfs.Error("read_lines: fopen:
419           /etc/sysconfig/network: No such file or directory") on some Fedora
420           guests
421
422       https://bugzilla.redhat.com/858128
423           libguestfs fail to list devices added by add-drive-ro-with-if twice
424
425       https://bugzilla.redhat.com/858126
426           virt-inspector fail to work with some windows guests
427
428       https://bugzilla.redhat.com/853762
429           virt-sparsify should use a more robust method to detect the input
430           format
431
432       https://bugzilla.redhat.com/853393
433           libvirt doesn't label console, serial sockets
434
435       https://bugzilla.redhat.com/853159
436           virt-rescue in Fedora 18 is completely broken
437
438       https://bugzilla.redhat.com/852394
439           libguestfs inspection limits registries to 100 MiB
440
441       https://bugzilla.redhat.com/852194
442           virt-sparsify --compress fails if output is raw format
443
444       https://bugzilla.redhat.com/847881
445           RFE: allow extra arguments (like --exclude) to tar-out
446
447       https://bugzilla.redhat.com/847880
448           tar-out should allow (or force) --numeric-owner
449
450       https://bugzilla.redhat.com/845522
451           guestfish "copy-out / localdir" command fails with "No such file or
452           directory"
453
454       https://bugzilla.redhat.com/845488
455           Long filenames on NTFS cause tar-out, copy-out etc to fail with
456           error "Cannot open: File name too long"
457
458       https://bugzilla.redhat.com/842307
459           RFE: Need help designing and implementing selinux policy for
460           libguestfs/sVirt
461
462       https://bugzilla.redhat.com/840572
463           virt-make-fs / tar-in should support vfat properly
464
465       https://bugzilla.redhat.com/840115
466           guestfish touch problem - case_sensitive_path API expects the file
467           to exist
468
469       https://bugzilla.redhat.com/836710
470           Data loss when writing to qcow2-format disk files
471
472       https://bugzilla.redhat.com/834712
473           lvresize, lvresize-free fail unnecessarily if you don't change the
474           size of the LV: "New size (nn extents) matches existing size (nn
475           extents)"
476
477       https://bugzilla.redhat.com/824716
478           compress-device-out didn't support bzip2
479
480       https://bugzilla.redhat.com/824043
481           guestfish unrecognized mount option gives confusing error message
482
483       https://bugzilla.redhat.com/823887
484           Filenames containing Chinese characters can't be created on vfat
485           filesystems
486
487       https://bugzilla.redhat.com/823885
488           virt-make-fs cannot create vfat filesystem containing filesystems
489           with Chinese characters
490
491       https://bugzilla.redhat.com/823883
492           virt-make-fs -t fat fails with an obscure error message
493
494       https://bugzilla.redhat.com/823821
495           Inspection fails when /etc/HOSTNAME is empty
496
497       https://bugzilla.redhat.com/801117
498           libguestfs cannot get icon for Windows 8
499
500       https://bugzilla.redhat.com/798979
501           Ubuntu install CDs from oneiric onwards are not recognized: "multi-
502           boot operating systems are not supported"
503
504       https://bugzilla.redhat.com/782167
505           libguestfs doesn't recognize Windows Dynamic disks in some
506           configurations, eg. spanned
507
508       https://bugzilla.redhat.com/713678
509           Not all febootstrap messages are redirected to log callbacks
510
511       https://bugzilla.redhat.com/627675
512           libguestfs inspector code cannot handle /dev/disk/by-id/* paths
513
514       https://bugzilla.redhat.com/602997
515           part-get-bootable gives wrong result with an unordered part layout
516

RELEASE NOTES FOR LIBGUESTFS 1.18

518       These release notes only cover the differences from the previous
519       stable/dev branch split (1.16.0).  For detailed changelogs, please see
520       the git repository, or the ChangeLog file distributed in the tarball.
521
522   New features
523       virt tools
524
525          - virt-sysprep has been rewritten and expanded (thanks Wanlong Gao)
526            http://libguestfs.org/virt-sysprep.1.html
527
528          - virt-sparsify --zero is a new option that zeroes the named
529            partition or filesystem
530
531          - virt-sparsify can now safely sparsify Linux swap partitions
532
533          - virt-sparsify fixed so it cleans up after ^C
534            http://libguestfs.org/virt-sparsify.1.html
535
536          - a new tool 'libguestfs-make-fixed-appliance' is provided to build
537            fixed appliances that can be copied to other machines that don't
538            have febootstrap support
539            http://libguestfs.org/libguestfs-make-fixed-appliance.1.html
540
541          - virt-filesystems now displays the parents (containers) of MD
542            devices and volume groups
543
544          - virt-alignment-scan, run with no args, displays alignment information
545            for all libvirt domains
546
547          - virt-df and virt-alignment-scan will display information from all
548            guests even when a disk is inaccessible
549
550          - virt-rescue new --scratch option to make scratch disks
551            https://rwmj.wordpress.com/2012/04/26/virt-rescue-scratch/#content
552
553          - virt-make-fs can now be used to create btrfs
554
555          - virt-edit preserves permissions, UID, GID and SELinux context
556            when editing files
557
558          - guestfish passes the close event over stdout and remote correctly
559
560          - guestfish new '--pipe-error' option lets you detect errors in pipe
561            commands
562
563          - guestfish globs now expand device names
564
565          - comma and colon characters in filenames now handled correctly by
566            all virt tools
567
568       inspection
569
570          - added support for Fedora 17+
571
572          - added support for FreeDOS
573
574          - added support for Buildroot and Cirros
575
576          - inspection is now compatible with Windows guests that have been
577            sysprepped (thanks Grant Williamson).
578
579       API
580
581          - broad support for btrfs added, including adding multiple devices,
582            fsck, snapshots (thanks Wanlong Gao)
583
584          - the new 'mount-local' API brings FUSE support directly into the
585            core libguestfs API
586            https://rwmj.wordpress.com/2012/05/14/tip-using-mount-local-api-from-c/#content
587
588          - new man page: guestfs-performance(1), which contains performance
589            tuning tips
590            http://libguestfs.org/guestfs-performance.1.html
591
592          - new man page: guestfs-faq(1), Frequently Asked Questions
593            http://libguestfs.org/guestfs-faq.1.html
594
595          - ENOTSUP (from guestfs_last_errno) is now returned for APIs that
596            are not supported
597
598       examples
599
600          - 'copy_over' example showing how to copy between two handles
601
602          - 'display_icon' program displays the icon associated with a guest
603
604          - 'mount_local.c' example shows how to use the mount-local API
605
606   Security
607         (no security problems were found or fixed in this release)
608
609   New APIs
610         btrfs-device-add: Add devices to a btrfs filesystem.
611         btrfs-device-delete: Remove devices from a btrfs filesystem.
612         btrfs-filesystem-sync: Sync a btrfs filesystem.
613         btrfs-filesystem-balance: Balance a btrfs filesystem.
614         btrfs-fsck: Check btrfs filesystem.
615         btrfs-set-seeding: Enable or disable seeding.
616         btrfs-subvolume-create: Create a btrfs snapshot.
617         btrfs-subvolume-delete: Delete a btrfs snapshot.
618         btrfs-subvolume-list: List btrfs snapshots and subvolumes.
619         btrfs-subvolume-set-default: Set default btrfs subvolume.
620         btrfs-subvolume-snapshot: Create a writable btrfs snapshot.
621         get-e2attrs: List ext2 file attributes of a file.
622         get-e2generation: Get ext2 file generation of a file.
623         isoinfo, isoinfo-device: Get information from the header of ISO files.
624         llz: List files with SELinux information.
625         lvcreate-free: Create an LVM logical volume in % remaining free space.
626         md-stat: Return underlying devices from an MD device.
627         mkfs-brtfs: Make btrfs filesystem, with all tunables.
628         mount-local, mount-local-run, umount-local: FUSE support in the API.
629         ntfsclone-in, ntfsclone-out: Save, restore NTFS from backup.
630         ntfsfix: Fix common errors and force Windows to check NTFS.
631         set-e2attrs: Set or clear ext2 file attributes of a file.
632         set-e2generation: Set ext2 file generation of a file.
633         set-label: Unified interface for setting filesystem label.
634         vgmeta: Get volume group metadata.
635         wipefs: Wipe filesystem signatures from a device.
636         zero-free-space: Zero free space in a filesystem.
637
638   Internals
639        - The debian/ subdirectory has been removed.  We recommend you use
640          the official Debian packages made by Hilko Bengen.
641          http://people.debian.org/~bengen/libguestfs/
642          http://packages.debian.org/search?keywords=libguestfs
643
644        - O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file
645          descriptors that the library opens.
646
647        - posix_fadvise is called when sequentially reading or writing large
648          files.
649
650        - close all file descriptors and remove all signal handlers in the
651          recovery process
652
653        - multiple gcc warnings and Coverity bugs have been fixed;  many
654          strict-overflow bugs have also been fixed
655
656        - use ./configure --enable-valgrind-daemon to use valgrind on the
657          daemon;  many errors have been fixed
658
659        - use ./configure --with-qemu-options to pass extra options to qemu
660
661        - the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF)
662
663        - the <guestfs.h> header file works with C++ and we have a regression
664          test for this
665
666        - multiple APIs which should only be called in the CONFIG state now
667          give an error if they are not
668
669        - .gitignore fixed to use absolute paths
670
671        - gobject bindings have been expanded, including mapping libguestfs
672          events to gobject signals (thanks Matt Booth)
673
674        - gobject documentation is generated properly (thanks Matt Booth)
675
676        - gobject header files now live in a subdirectory
677
678        - CompareWithString test in the generator now works
679
680        - FUInt32, FUInt64 struct field types now use the correct XDR type
681
682        - OCaml tests are now run on bytecode and native code.
683
684        - java -Xlint:all is used, and all warnings have been fixed
685
686        - bmptopng, wrestool (etc) missing or failure no longer prints
687          warning messages
688
689        - ruby: Use RbConfig instead of Config.
690
691        - PYTHONPATH is set by the ./run script.
692
693        - appliance building is now thread-safe.
694
695        - appliance now uses 'ip' instead of 'ifconfig' and 'netstat'
696          commands
697
698        - several fixes to make parallel builds work properly
699
700        - guestfish --listen now cleans up properly
701
702        - the BUSY state has been removed
703
704        - gettextize has been removed, replaced by a simple Makefile.am
705
706        - gettext support now covers virt-resize, virt-sparsify and virt-sysprep
707
708        - better support for the arm architecture
709
710   Bugs fixed
711        - 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
712        - 816839 data overflow error when debug progress -1
713        - 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
714        - 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
715        - 811650 guestfs_last_error not set when qemu fails early during launch
716        - 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
717        - 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
718        - 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
719        - 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
720        - 807905 mkfs blocksize option breaks when creating btrfs
721        - 805070 virt-filesystems should show 'parents' of LV and RAID devices
722        - 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
723        - 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
724        - 803533 guestfish: write error
725        - 802389 event handlers for 'close' event doesn't work in remote mode
726        - 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
727        - 801640 [RFE] the error reported by resize2fs-M need to be more clear
728        - 801298 Possible null dereference and resource leaks
729        - 801273 Document for set-pgroup need to be updated
730        - 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
731        - 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
732        - 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
733        - 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
734        - 789960 guestfsd crash when try to mount non-exist disk
735        - 789504 virt-df (other tools?) should not give up if a guest disk is missing
736        - 788641 virt-edit doesn't preserve file permissions
737        - 786215 libguestfs inspection does not recognize FreeDOS operating system
738        - 786188 libguestfs inspection does not recognize FreeDOS install CD
739        - 785668 aug-defnode: daemon crash
740        - 784647 Libguestfs uses deprecated net-tools
741        - 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
742        - 755729 Error message for resize2fs-M needs tweaking
743        - 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
744        - 679737 libguestfs: improve error message when zerofree is not available in the appliance
745        - 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand
746

RELEASE NOTES FOR LIBGUESTFS 1.16

748       These release notes only cover the differences from the previous
749       stable/dev branch split (1.14.0).  For detailed changelogs, please see
750       the git repository, or the ChangeLog file distributed in the tarball.
751
752   New features
753       libguestfs
754
755          - allow XFS filesystems to be created over an existing filesystem
756            (Wanlong Gao)
757
758          - the (unspecified) default alignment for part-disk has been
759            changed to 64K for better support of high-end network-attached
760            storage
761
762          - new guestfs-testing(1) man page
763
764          - list-filesystems returns MD devices containing filesystems
765            (Matthew Booth)
766
767          - support for GCC >= 4.7 (Jim Meyering)
768
769          - check user does not add the same drive twice (Wanlong Gao).
770
771       language bindings
772
773          - Experimental GObject bindings, with support for GObject
774            Introspection.  You can now use libguestfs from Javascript.
775            Please note these are not stable and final in this release.
776            (Matthew Booth).
777
778          - support for Ruby >= 1.9
779
780          - Ruby bindings can be disabled individually (Hilko Bengen)
781
782          - support for Python 2.6, 3.x (Richard Jones, Hilko Bengen)
783
784          - support for PHP >= 5.4
785
786          - new %guestfs_introspection hash is available in Perl bindings so
787            you can query which optional arguments are available
788
789       inspection
790
791          - guests with MD devices can be inspected (Matthew Booth)
792
793          - support for GNU/Hurd guests
794
795       guestfish
796
797          - libguestfs events (such as progress bar events and log messages) can
798            be trapped and processed by user-defined shell scripts.
799
800          - MD devices are tab-completed (Matthew Booth)
801
802       virt tools
803
804          - New tool virt-format for erasing and making blank disks
805
806          - virt-sparsify new --compress and -o options to allow for compressed
807            and different format output
808
809          - virt-sparsify can now detect and sparsify .vdi files
810
811          - virt-sysprep no longer requires xmlstarlet; a new virt-inspector --xpath
812            option has been added to replace this functionality
813
814          - virt-rescue has a new --suggest option which suggests mount commands
815            for the guest
816
817          - virt-resize no longer requires OCaml pcre library
818
819       libguestfs live
820
821          - daemon will no longer try to edit your live /etc/lvm configuration
822
823          - fix a potential security problem with predictable /tmp names (Steve Kemp)
824
825   Security
826         CVE-2011-4127, RHBZ#757071
827         Mitigate possible privilege escalation via SG_IO ioctl
828         For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db
829
830   New APIs
831         blkid: print all attributes of a device known to blkid (Wanlong Gao)
832         e2fsck: access to more features of e2fsck (Wanlong Gao)
833         list-md-devices: list of Linux MD devices (Matthew Booth)
834         md-create: create an MD device
835         md-detail: returns metadata for an MD device (Matthew Booth)
836         md-stop: stop an MD device (Wanlong Gao)
837         tune2fs: allow ext2/3/4 filesystems to be tuned
838
839   Internals
840         Git hosting has moved to http://github.com/libguestfs
841
842         The various test directories have been rearranged logically, and now
843         all appear under 'tests/'.
844
845         There is a 'make extra-tests' rule which runs ordinary tests and
846         additional tests, using valgrind to check for memory problems.
847
848         Multiple memory leaks and other problems found by valgrind and fixed.
849
850         Support for optional arguments in the generator has been rewritten
851         to provide more features and safety (Matthew Booth).
852
853         With gcc -fvisibility=hidden is used for internal symbols, avoiding
854         call indirection via the PLT.
855
856         RHashtable functions can be tested in the generator.
857
858         ADD_ARG macro in daemon allows arg lists to be constructed without
859         risk of stack smashing.
860
861         Fix generation of OCaml functions that have more than 10 arguments.
862
863         psmisc has been added to the appliance, allowing use of 'fuser',
864         'killall' and 'pstree' for debugging.
865
866         bindtests now cover RBufferOut and optional arguments (Matthew Booth).
867
868   Bugs fixed
869        - 769680 temporary directories created during appliance builds are not cleaned up on error
870        - 761460 guestfs_utimens hangs on named pipes
871        - 761451 guestfs_utimens cannot set times on a directory
872        - 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory
873        - 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
874        - 760000 libguestfs fails to compile with Ruby >= 1.9
875        - 755729 Error message for resize2fs-M needs tweaking
876        - 750889 Python code incompatible with Python v3.
877        - 596761 Ctrl-\ causes guestfish to abort
878

RELEASE NOTES FOR LIBGUESTFS 1.14

880       These release notes only cover the differences from the previous
881       stable/dev branch split (1.12.0).  For detailed changelogs, please see
882       the git repository, or the ChangeLog file distributed in the tarball.
883
884   New features
885         Erlang bindings.
886
887         virt-alignment-scan is a new tool to check the alignment of
888         partitions within virtual machines or disk images.
889
890         virt-sparsify is a new tool to make virtual machine disk images
891         sparse.
892
893         virt-sysprep is a new tool to make cloning guests from a template
894         simpler.
895
896       guestfish
897
898          - New commands setenv, unsetenv, to set environment variables.
899
900          - The input file and line number is printed in error messages.
901
902          - guestfish progress bars are now a "mini-library" used by other
903            tools too.
904
905       guestmount
906
907          - the --live option (for access to live VMs) now works.
908
909       virt-cat
910
911          - virt-cat can now handle Windows paths and drive letters (RHBZ#693359).
912
913       virt-filesystems
914
915          - the MBR partition type byte is displayed in --long output.
916
917       virt-make-fs
918
919          - virt-make-fs now sets the MBR partition type byte correctly,
920            improving compatibility with Windows (RHBZ#746295).
921
922       virt-resize
923
924          - virt-resize can now work with guests using extended and logical
925            partitions, in particular Ubuntu guests.
926
927          - virt-resize can now align the first partition of Windows guests,
928            improving performance.  The new virt-resize --align-first option
929            controls this behaviour.
930
931          - The virt-resize --machine-readable flag makes it possible to use
932            virt-resize from other programs.
933
934          - Partitions are now aligned to 128 sectors (usually 64K) by
935            default.  This improves efficiency on high-end storage.  The new
936            virt-resize --alignment option allows the alignment to be
937            adjusted.
938
939       virt-win-reg
940
941          - The syntax for deleting registry keys and values is documented
942            in the man page (RHBZ#737944).
943
944       library
945
946          - non-printing characters are escaped correctly in debug output.
947
948          - GUESTFS_EVENT_ENTER is a new event type generated whenever a
949            libguestfs function is called.
950
951          - the library contains systemtap/DTrace probes.
952
953          - the library can now be compiled without hivex (RHBZ#723474).
954
955       inspection
956
957          - Improve detection of Windows disks.
958
959          - Adds support for:
960                ttylinux - a minimal Linux
961                Mageia (thanks Michael Scherer)
962                OpenSUSE and zypper (thanks Michael Scherer, Vincent Untz)
963                Ubuntu logos (thanks Michael Scherer)
964                NetBSD and pkgsrc (thanks Michael Scherer)
965
966          - Handle some guest types that use /dev/root in /etc/fstab.
967
968          - Fix handling of guests with > 26 disks (thanks Matthew Booth)
969
970          - Add support for guests with HP Smart Array disks (thanks Matthew Booth)
971
972       febootstrap
973
974          - FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can
975            be set in order to choose which kernel to use for the appliance.
976
977       misc
978
979          - ArchLinux support now working with Linux 3.0 (thanks Erik Nolte)
980
981          - libvirt disks marked <readonly/> are now added readonly when
982            using the virt-tools '-d' option.
983
984   Security
985         (no security problems were found or fixed in this release)
986
987   New APIs
988         compress-out, compress-device-out, copy-device-to-device,
989         copy-device-to-file, copy-file-to-device, copy-file-to-file,
990         get-smp, part-to-partnum, set-smp.
991
992         The mount API no longer implicitly adds -o sync,noatime options.
993
994         add-domain has a new 'readonlydisk' optional parameter to control
995         how <readonly/> disks are handled.
996
997   Internals
998        - Coverity was run on the source and more bugs were identified and
999          fixed.
1000
1001        - PCRE library is now required to build libguestfs.
1002
1003        - APIC is now the default for the appliance.  You can also enable
1004          SMP support in the appliance.
1005
1006        - OCaml bindings now correctly acquire GC lock during callbacks.
1007
1008        - Out of tree builds should now work correctly (thanks Hilko Bengen).
1009
1010        - ./configure --with-extra="..." can be used by packagers to set
1011          the extra version string.
1012
1013        - zero, zero-device APIs: if the blocks already contain zeroes,
1014          don't write zeroes, so that we don't unnecessarily make the
1015          underlying storage non-sparse.
1016
1017        - is-zero, is-zero-device APIs: optimize these so zero detection is
1018          faster.
1019
1020   Bugs fixed
1021        - 748266 libguestfs should detect versions of qemu which require -machine pc option
1022        - 747290 libguestfs ignores <readonly/> in libvirt XML
1023        - 747287 Misleading error message when permission denied opening a disk image
1024        - 746295 virt-make-fs doesn't set partition ID
1025        - 744795 guestmount --live is not usable
1026        - 737944 virt-win-reg hyphen (delete key) syntax may be wrong, and is not documented
1027        - 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)"
1028        - 731744 libguestfs should escape special/non-printing characters in debug output
1029        - 729887 appliance crashes running aug_init with flags=4
1030        - 729075 libguestfs confuses Hp_recovery partition with Windows root filesystem
1031        - 727178 error: luks_open: cryptsetup: error while loading shared libraries: libfipscheck.so.1: cannot open shared object file: No such file or directory
1032        - 726739 libguestfs: error: aug_get: no matching node, trying to find hostname
1033        - 723474 If hivex and/or pcre not installed, libguestfs fails to compile
1034        - 693359 virt-cat and virt-edit don't handle case sensitive NTFS paths properly
1035        - 678231 virt-inspector reports unknown filesystem UUID
1036        - 671082 libguestfs does not work with kernel-rt
1037        - 666578 libguestfs: unknown filesystem label SWAP-sda2
1038        - 642821 virt-resize falls over on a disk image with a logical swap partition
1039

RELEASE NOTES FOR LIBGUESTFS 1.12

1041       These release notes only cover the differences from the previous
1042       stable/dev branch split (1.10.0).  For detailed changelogs, please see
1043       the git repository, or the ChangeLog file distributed in the tarball.
1044
1045   New features
1046       guestfish
1047
1048          - guestfish strings can use escapes,
1049            eg. ><fs> write /foo "line 1\nline 2\n"
1050
1051          - guestfish write-append command can be used to append to files.
1052
1053          - Long-running file uploads and downloads can be cancelled through the
1054            API or by hitting ^C in guestfish.
1055
1056          - New guestfish "display" command for displaying graphical files
1057            inside guests.
1058
1059          - In guestfish, tab completion now works on /dev/mapper devices.
1060
1061       virt-inspector
1062
1063          - Inspection API can get an icon or logo for certain guests.
1064
1065          - virt-inspector includes the logo and hostname for certain guests.
1066
1067          - virt-inspector can now get the version and release numbers for RPM
1068            packages.
1069
1070          - CentOS and Scientific Linux are now treated as separate distros by
1071            the inspection API.
1072
1073       virt-resize
1074
1075          - virt-resize can now handle btrfs.
1076
1077          - New virt-resize --ntfsresize-force option allows Windows VMs to be
1078            resized multiple times.
1079
1080       other virt tools
1081
1082          - guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems,
1083            virt-inspector, virt-ls and virt-rescue now allow you to use
1084            "-d UUID" option to specify a guest by UUID.  This makes them more
1085            robust to use from other programs.
1086
1087          - virt-ls -lR option allows complex file iteration and guest analysis.
1088
1089          - virt-win-reg supports HKEY_USERS\<SID> and HKEY_USERS\<username>.
1090
1091          - virt-win-reg new option --unsafe-printable-strings allows printable
1092            strings to be displayed in the output (unsafely: read the documentation
1093            before using).
1094
1095          - virt-edit has been rewritten in C.
1096
1097       API and language bindings
1098
1099          - Java is now completely supported.
1100            See http://libguestfs.org/guestfs-java.3.html
1101
1102          - JRuby is supported via the Java bindings.
1103
1104          - guestfs_close now appears in trace messages.
1105
1106          - Python binding adds explicit g.close() method.
1107
1108          - Python programs can now use the new event API.
1109
1110          - Python GIL is released during libguestfs calls, allowing multithreaded
1111            Python programs to work properly.
1112
1113          - 9pfs (Plan 9 filesystems exported from the host) are now supported.
1114
1115          - Add -DGUESTFS_WARN_DEPRECATED=1 to warn about use of deprecated API
1116            functions in C programs.
1117
1118          - New manual page guestfs-recipes(1) with recipes.
1119
1120          - mkfs-opts can now set inode size and sector size on created filesystems
1121            (thanks Nikita Menkovich).
1122
1123          - guestfs_last_errno is now accessible from OCaml (as g#last_errno ()).
1124
1125   Security
1126        - optargs_bitmask is checked even for calls that have no optional
1127          arguments.  This closes a possible exploit in the daemon from
1128          untrusted callers.
1129
1130   New APIs
1131         btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero,
1132         is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts,
1133         set-pgroup, write-append
1134
1135   Internals
1136        - Coverity (a static analysis tool) was run across the codebase and
1137          many fixes were made.
1138
1139        - Generator can handle functions that return RBufferOut and have
1140          optional arguments.
1141
1142        - Compatible with Perl 5.14.
1143
1144        - Compatible with gcc 4.6.
1145
1146        - Perform safety checks on QEMU.
1147
1148        - C API tests can now fully test calls that have optional arguments.
1149
1150        - Use ./configure --enable-install-daemon to install /usr/sbin/guestfsd.
1151
1152        - po-docs directory now covers all man pages.
1153
1154        - stderr from qemu process is now captured by the event subsystem.
1155
1156   Bugs fixed
1157        - 602997 part-get-bootable gives wrong result with an unordered part layout
1158        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
1159        - 700369 qemu-system-x86_64 says 'KVM not supported for this target'
1160        - 705200 guestmount attempt results in access denied
1161        - 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts
1162        - 717786 libguestfs python bindings should have an explicit close call
1163        - 721275 virt-resize in F16 should support btrfs
1164

Release notes for libguestfs 1.10.0

1166       These release notes only cover the differences from the previous
1167       stable/dev branch split (1.8.0).  For detailed changelogs, please see
1168       the git repository, or the ChangeLog file distributed in the tarball.
1169
1170   New features
1171        - libguestfs and tools can be used against live virtual machines.
1172          See the 'guestfish --live' and 'guestmount --live' options, and (for
1173          the low-level interface) the new APIs set-attach-method and
1174          get-attach-method.
1175
1176        - New virt tools:
1177          virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.
1178
1179        - libguestfs can get the drive letter mappings for Windows guests.
1180
1181        - virt-inspector displays drive letter mappings for Windows guests.
1182
1183        - Drive letters can now be used in virt-edit and guestfish programs
1184          when operating on Windows guests.
1185
1186        - virt-resize now works on 32 bit hosts.
1187
1188        - You can now inspect the install disks and live CDs of many different
1189          operating systems.
1190
1191        - guestfish <! cmd which executes a shell cmd and inlines the result.
1192
1193        - guestfish, guestmount, virt-rescue now all support --ro and --rw
1194          options, and the default for this can be chosen via a configuration
1195          file (/etc/libguestfs-tools.conf).
1196
1197        - New event API allows more than one callback to be registered for
1198          each event, makes it possible to call the API from other languages,
1199          and allows nearly all log, debug and trace messages to be rerouted
1200          from stderr.
1201
1202        - Greater FHS compliance for temporary files, including using /var/tmp
1203          for large cached files that should survive reboot (instead of /tmp).
1204
1205        - guestfish, guestmount -m option allows mount options to be passed
1206          through to the underlying filesystem.
1207
1208        - mkfs-opts allows filesystem features to be specified.
1209
1210        - More intelligent handling of mountpoints, allowing mkmountpoint, mount
1211          and umount-all commands to work together properly.
1212
1213        - Trace messages are prefixed with a distinct string, allowing them to
1214          be easily 'grepped' out from debug output.
1215
1216        - guestfs_launch (guestfish 'run' command) now produces progress
1217          messages (a guestfish progress bar) if it takes longer than 5
1218          seconds to run.
1219
1220        - Several long-running commands where we are unable to estimate time
1221          to completion generate "pulse mode" progress events.  Progress bar
1222          in guestfish has been updated to display these.
1223
1224        - Publish new example code in: C, Perl, Python, OCaml, Ruby.
1225
1226        - New virt-dhcp-address example program.
1227
1228        - The Java and Ruby bindings have been improved greatly.
1229
1230        - Perl includes a way to get the errno of the last error.
1231
1232        - Python bindings now compatible with rpyc (thanks Erez Shinan).
1233
1234        - Transifex is now being used to manage translations.
1235          http://www.transifex.net/projects/p/libguestfs/
1236
1237        - Inspection now supports Red Hat Desktop, Slackware distributions.
1238
1239        - Inspection no longer fails for Windows guests that have two or
1240          more disks.
1241
1242        - Inspection can now tell the difference between Windows 2008 Server
1243          and Windows 7.
1244
1245        - Inspection can detect 32 bit applications installed in 64 bit
1246          Windows, running on the WOW64 emulator.
1247
1248        - A series of protocol fixes has fixed the old bug RHBZ#576879
1249          which used to cause errors during the upload command to lose
1250          protocol synchronization.
1251
1252        - New logo!
1253
1254   Security
1255         [none]
1256
1257   New APIs
1258         first-private, get-attach-method, inspect-get-drive-mappings,
1259         inspect-get-product-variant,
1260         inspect-get-windows-current-control-set, next-private, resize2fs-M,
1261         set-attach-method.
1262
1263   Internals
1264        - The 'HACKING' file is obsolete.  The contents have been moved into
1265          a section of the guestfs(3) manual page.
1266
1267        - libguestfs-test-tool simplified.  It no longer needs the static
1268          binary or tries to construct an ISO.
1269
1270        - rpcgen-generated files are compiled with -fno-strict-aliasing
1271          which should be safer (thanks Matt Booth).
1272
1273        - virt-resize was rewritten in OCaml.
1274
1275        - guestfish and other tools tested with valgrind; some memory leaks
1276          were fixed.
1277
1278   Bugs fixed
1279        - 502533 Updated Polish translation of libguestfs
1280        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
1281        - 599503 document that mkmountpoint and umount-all cannot be mixed
1282        - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
1283        - 664558 RFE: Allow to set log callback in Ruby bindings
1284        - 665358 Punjabi Translation Completed (pa_IN)
1285        - 666577 libguestfs: unknown filesystem /dev/fd0
1286        - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
1287        - 668112 virt-filesystems command fails on guest with corrupt filesystem label
1288        - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
1289        - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
1290        - 674130 Inspection code fails for Windows guest with two disks
1291        - 682756 libguestfs trace segfaults when list-filesystems returns error
1292        - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
1293        - 690819 mkfs fails creating a filesystem on a disk device when using a disk with 'ide' interface
1294        - 691389 Extended attributes don't work over guestmount (FUSE)
1295        - 691724 virt-inspector reports unknown filesystem /dev/vda1
1296        - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
1297        - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter
1298

Release notes for libguestfs 1.8

1300       These release notes only cover the differences from the previous
1301       stable/dev branch split (1.6.0).  For detailed changelogs, please see
1302       the git repository, or the ChangeLog file distributed in the tarball.
1303
1304   New features
1305        - Support and packages for Debian and Ubuntu.
1306
1307        - Daily builds from git repository on Debian and Ubuntu to reduce risk
1308          of regressions.
1309
1310        - Port to ArchLinux 'pacman' (thanks Thomas S Hatch).
1311
1312        - The following tools have been rewritten in C (originally in Perl):
1313
1314            . virt-cat
1315            . virt-df
1316            . virt-inspector
1317            . virt-ls
1318            . virt-rescue
1319
1320        - Some C tools support encrypted guests automatically.  This is
1321          supported in: guestfish, guestmount, virt-cat, virt-inspector,
1322          virt-ls.
1323
1324        - New tool virt-filesystems (in C) which is a replacement for
1325          virt-list-filesystems and virt-list-partitions, and has a superset
1326          of the functionality of those tools.
1327
1328        - guestfish, guestmount and the C tools use unified command line option
1329          parsing, so they support many common options such as '-a disk.img',
1330          '-d libvirt-domain', '-x', '-v'.  The old command line option
1331          parsing is preserved for compatibility in scripts etc.
1332
1333        - guestfish no longer has any dependencies on Perl
1334
1335        - New man pages containing programming examples: guestfs-examples(3) (C/C++),
1336          guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).
1337
1338        - Trace mode prints return values from API functions.
1339
1340        - virt-inspector can list applications installed in Windows guests, along
1341          with a great deal of information about those applications.
1342
1343        - Add support for inspecting: Linux Mint, Mandriva, FreeBSD.
1344
1345        - guestfish --rw option (with no effect currently) to make potentially
1346          dangerous write access explicit.
1347
1348        - guestfish --listen --csh for compatibility with csh, tcsh (thanks
1349          Eric Blake).
1350
1351        - The first upstream version that introduced each API function is now
1352          documented in guestfs(3).
1353
1354        - guestfs_last_errno allows you to retrieve the errno from the
1355          daemon, correctly translated to the local operating system.
1356
1357        - Functions can now have optional parameters.
1358
1359        - Progress bars and progress notifications can now happen for upload
1360          commands.
1361
1362        - Appliance builder more careful about not leaving temporary files
1363          around in /tmp.
1364
1365        - getfattr/setfattr commands added to virt-rescue.
1366
1367        - ROADMAP file covers roadmap and goals for future releases.
1368
1369   Security
1370        - New SECURITY section in guestfs(3) API documentation.
1371
1372        - virt-inspector no longer runs any guest commands.
1373
1374        - Inspection code is more careful about avoiding very large files
1375          from guests which might previously have caused a denial of service.
1376
1377        - FUSE calls into guestmount are now traced when using guestmount -x.
1378
1379   New APIs
1380        - add-domain
1381        - add-drive-opts
1382        - getxattr
1383        - inspect-get-hostname
1384        - inspect-get-package-format
1385        - inspect-get-package-management
1386        - inspect-get-roots
1387        - inspect-list-applications
1388        - lgetxattr
1389        - mkfs-opts
1390
1391   Internals
1392        - C programs now only link precisely with the libraries that they use.
1393
1394        - PCRE, libmagic, hivex and libvirt libraries are now completely
1395          optional for building.
1396
1397        - Multiple memory leaks and file descriptor leaks fixed.
1398
1399        - Add a POD wrapper to unify generation of man pages and HTML files
1400          across all programs.
1401
1402        - Source includes phony images of Fedora, Debian, Ubuntu and
1403          Windows guests.
1404
1405        - Ruby bindings have 'make install' rule.
1406
1407        - <guestfs.h> is now a single file.
1408
1409        - <guestfs.h> does not require XDR headers.
1410
1411        - ocaml xml-light library is no longer required to build (thanks
1412          Maxim Koltsov).
1413
1414        - ./configure --disable-[...] for each language binding (thanks
1415          Maxim Koltsov).
1416
1417        - Old ocaml-viewer program removed (use guestfs-browser instead).
1418
1419        - New C API test type 'InitScratchFS' makes the tests run a little
1420          more quickly.
1421
1422        - Excluded packages in the appliance are now listed in a separate
1423          file appliance/excludelist.in, and can be customized per-distro.
1424
1425   Bugs fixed
1426        - 663407 readlink and readlinklist returns /sysroot/ in some paths
1427        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
1428        - 657499 checksum: wrong check sum type causes umount to fail
1429        - 655554 Whole disk paths are not made canonical by virt-inspector
1430        - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
1431        - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution
1432

RELEASE NOTES FOR LIBGUESTFS 1.6

1434       These release notes only cover the differences from the previous
1435       stable/dev branch split (1.4.0).  For detailed changelogs, please see
1436       the git repository, or the ChangeLog file distributed in the tarball.
1437
1438   New features
1439        - Use a new method for creating and caching the appliance.  This
1440          greatly improves the performance of libguestfs, often by a factor
1441          of x 4 to x 5.
1442
1443        - Support for guest inspection (like virt-inspector) via the ordinary
1444          API and all language bindings.  'guestfish -i' option is as a side-
1445          effect much quicker.
1446
1447        - virt-inspector and core inspection API can now detect guests running:
1448          Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
1449          Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.
1450
1451        - Support for LUKS whole-disk encryption in guests.
1452
1453        - PHP bindings.
1454
1455        - Progress messages (and progress bars in guestfish and virt-resize)
1456          for certain long-running operations.
1457
1458        - virt-df is now much more efficient.  Use '--one-per-guest' to restore
1459          the old per-guest isolation behaviour.
1460
1461        - guestfish 'copy-in' and 'copy-out' commands for copying files and
1462          directories recursively in and out of the guest.
1463
1464        - guestfish 'hexedit' command for doing binary edits to devices and
1465          files.
1466
1467        - Change guestfish -i syntax to allow commands to be specified on the
1468          command line (retaining backwards compatibility).
1469
1470        - guestfish '-d <domain>' for adding disks from libvirt domains.
1471
1472        - guestfish '-N' option supports several new prepared disk image types:
1473                lvfs : disk with LV formatted with filesystem
1474                  lv : disk with LV
1475            bootroot : boot+root
1476          bootrootlv : boot and root on LV
1477
1478        - guestfish 'more' and 'edit' commands now work with arbitrary files.
1479
1480        - guestfish '--echo-keys' option allows you to echo keys/passphrases
1481          while typing them.
1482
1483        - guestmount now supports -a / -d / -i options, like guestfish.
1484
1485        - Use virtio-serial for communications with the appliance.  This
1486          also has a major performance benefit.
1487
1488        - virt-edit '-b' option to create a backup of edited files.
1489
1490        - virt-edit '-e' option for non-interactive edits to files.
1491
1492        - Ability to capture core dumps from the appliance (thanks Matthew Booth).
1493
1494        - virt-rescue now shuts down cleanly (thanks Matthew Booth).
1495
1496        - virt-rescue now has a --network option to enable network access.
1497
1498        - virt-resize can now handle guests which use GPT partition table format.
1499
1500        - virt-resize has better support for shrinking guests.
1501
1502        - virt-resize supports qcow2-format guests.
1503
1504        - $TMPDIR can be used to override almost all temporary directory usage.
1505
1506        - OCaml users can use an alternate OO-style of coding, eg. g#launch ()
1507
1508        - The API supports calls which take optional parameters, eg.
1509            $g->add_drive_opts ("disk", readonly => 1);
1510
1511        - Trace output now escapes and shortens large strings (thanks
1512          Matthew Booth).
1513
1514        - Autosync is now on by default, resulting in more reliable behaviour
1515          when the handle is closed.
1516
1517        - virt-df --uuid option allows you to follow a domain across migration
1518          and renaming.
1519
1520        - Translations of manual pages.
1521
1522   Security
1523        - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk
1524          https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html
1525          This is comprehensively fixed in this release, and the fix will be
1526          backported to the other stable branches after more testing.
1527
1528        - virt-inspector no longer relies on untrusted guest code to list
1529          applications in some guests.
1530
1531   New APIs
1532         download-offset, file-architecture, findfs-label, findfs-uuid,
1533         inspect-os, inspect-get-arch, inspect-get-distro,
1534         inspect-get-filesystems, inspect-get-major-version,
1535         inspect-get-minor-version, inspect-get-mountpoints,
1536         inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
1537         is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
1538         luks-close, luks-format, luks-format-cipher, luks-kill-slot,
1539         luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
1540         lvm-set-filter, part-to-dev, pread-device, pwrite-device,
1541         upload-offset
1542
1543   Internals
1544        - Use size_t for loop iterators.
1545        - Refactor the library code into separate files.
1546        - Refactor the generator code into separate files.
1547        - Generate guestfish commands.
1548        - guestfish & guestmount options processing is unified.
1549        - Protocol changes:
1550            error message size increased to 64K
1551            send errno to library
1552        - Add 'make bindist' to make a binary distribution.
1553        - Cleaner behaviour under valgrind.
1554        - More testing of the guestfish command line options and libvirt
1555          integration.
1556        - The Perl inspection code is no longer used by any of the tools.
1557
1558   Bugs fixed
1559        - 646822 libguestfs trace mode should not print long binary strings
1560        - 646821 virt-df should have --uuid option
1561        - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
1562        - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
1563        - 642934 No way to specify disk format when adding a disk to libguestfs
1564        - 642933 guestfs_list_filesystems should be used in all possible places
1565        - 642932 guestmount options should match guestfish options
1566        - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
1567        - 642929 C inspection code should ignore /dev/fd* in /etc/fstab
1568        - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
1569        - 640961 Document that grub-install might be needed for old Linux guests after virt-resize
1570        - 639986 virt-df --csv does not properly quote " in libvirt domain names
1571        - 639405 Interrupted cached appliance creation leaves libguestfs unusable
1572        - 638901 Appliance filename should not contain repository name
1573        - 638899 /dev/mapper paths should not be returned from C inspection APIs
1574        - 636918 Updates to Spanish translation
1575        - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
1576        - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
1577        - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
1578        - 633766 virt-resize --shrink fails
1579        - 633357 Updates to Spanish translation
1580        - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
1581        - 629593 Dutch translation added
1582        - 627556 Updates to Spanish translations of libguestfs
1583        - 626843 Updates to Spanish translations
1584        - 619793 [RFE] Need a way to determine if a particular block device is a logical volume
1585        - 618556 virt-rescue return none zero value when exit
1586        - 617200 mount operation failed and hung on some images which running in read-only mode
1587        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
1588        - 599503 document that mkmountpoint and umount-all cannot be mixed
1589        - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
1590        - 502533 Updated Polish translation of libguestfs
1591

RELEASE NOTES FOR LIBGUESTFS 1.4

1593       These release notes only cover the differences from the previous
1594       stable/dev branch split (1.2.0).  For detailed changelogs, please see
1595       the git repository, or the ChangeLog file distributed in the tarball.
1596
1597   New features
1598        - guestfish lets you choose a prepared disk image, eg:
1599            guestfish -N fs:ext4
1600
1601        - Add write support to guestmount (FUSE) module.
1602
1603        - virt-resize can now resize the content of partitions and logical
1604          volumes in the guest, and we have better support for shrinking guests.
1605
1606        - Bash tab-completion script for guestfish.
1607
1608        - Add ZFS support to virt-rescue.
1609
1610        - New tool 'virt-make-fs' for creating filesystems with content.
1611
1612        - Allow suffixes on any guestfish number parameter, eg. "1M".
1613
1614        - guestfish 'man' command opens the manual page.
1615
1616        - guestfish supports a "heredoc" syntax for uploading files:
1617            upload -<<_end_ /foo
1618            content
1619            _end_
1620
1621        - Some guestfish commands now print their output in octal or hex
1622          where appropriate (RHBZ#583242).
1623
1624        - Allow dash prefix on guestfish command line.  This ignores any
1625          error from the second command:                   (RHBZ#578407)
1626            guestfish -- cmd1 : -cmd2 : cmd3
1627
1628        - guestfish -h / help command now returns an error for non-existent
1629          commands (RHBZ#597145).
1630
1631        - New 'supported' command in guestfish to list optional groups of
1632          commands which are supported by the daemon / configuration.
1633
1634        - virt-inspector and guestfish -i now work for filenames which
1635          contain spaces (RHBZ#507810).
1636
1637        - Change the protocol to use link-local addresses, to avoid
1638          conflicting with any address that the host might be using
1639          (RHBZ#588763).
1640
1641        - libguestfs now sets the correct time and timezone on filesystem
1642          modifications.
1643
1644        - Sort the domains into alphabetical order in virt-df.
1645
1646        - Make mkfs-b command work for FAT and NTFS by mapping the blocksize
1647          parameter to the cluster size (RHBZ#599464).
1648
1649        - Add version numbers to Perl modules (RHBZ#521674).
1650
1651        - Localization now works for all the libguestfs tools (RHBZ#559963).
1652
1653        - Tools now support filesystem-on-image VMs (RHBZ#590167).
1654
1655        - virt-list-partitions has a '-t' option to show the total size of disks.
1656
1657        - Include extra Augeas lenses in the supermin appliance (Matthew Booth).
1658
1659        - Add error and close callbacks.
1660
1661        - Add explicit close method in the Perl API.
1662
1663        - Multiple fixes for RHEL 5 compatibility.
1664
1665        - Multiple fixes for Debian/Ubuntu compatibility.
1666
1667        - Multiple revisions to improve the documentation.
1668
1669   Security
1670        - Fix a potential DoS in virt-inspector and virt-v2v if a specially
1671          crafted disk image contained a char device in place of one of the
1672          configuration files that we read under /etc (RHBZ#582484).
1673
1674   New APIs
1675        - aug-clear - clear Augeas path
1676        - available-all-groups - return a list of all optional groups
1677        - base64-in - upload base64-encoded data to file
1678        - base64-out - download file and encode as base64
1679        - checksum-device - compute checksums on the contents of a device
1680        - checksums-out - compute checksums of multiple files in a directory
1681        - debug-upload - upload a file to the appliance
1682        - fallocate64 - preallocate a file in the guest filesystem
1683        - fill-pattern - fill a file with a repeating pattern of bytes
1684        - get-umask - get the current umask
1685        - lvresize-free - expand an LV to fill free space
1686        - ntfsresize - resize an NTFS filesystem
1687        - ntfsresize-size - resize an NTFS filesystem (with size)
1688        - part-del - delete a partition
1689        - part-get-bootable - get the bootable flag of a partition
1690        - part-get-mbr-id - get the MBR type byte of a partition
1691        - part-set-mbr-id - set the MBR type byte of a partition
1692        - pvresize-size - resize a physical volume (with size)
1693        - pwrite - write to part of a file
1694        - resize2fs-size - resize an ext2/3/4 filesystem (with size)
1695        - txz-in - unpack compressed tarball to directory (RHBZ#580556)
1696        - txz-out - pack directory into compressed tarball (RHBZ#580556)
1697        - vfs-label - get the filesystem label
1698        - vfs-uuid - get the filesystem UUID
1699        - vgscan - rescan for LVM physical volumes, volume groups and logical volumes
1700        - write - create a new file
1701        - zero-device - write zeroes to an entire device
1702
1703   Internals
1704        - Extend the generator to support testing optional features.
1705        - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894)
1706        - Extend the protocol to support sending arbitrary 8 bit data buffers.
1707        - Ship 'BUGS' file with releases.  This is a summary of the bugs in
1708          the Red Hat Bugzilla database.
1709        - Ship 'RELEASE-NOTES' file with releases, containing release notes.
1710        - Unify supermin appliance building into one place, in febootstrap 2.7.
1711        - Fix the protocol code to handle the case where both ends send cancel
1712          messages at the same time.
1713
1714   Bugs fixed
1715        - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
1716        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
1717        - 604691 OCaml bindings are not thread safe
1718        - 603870 Updates to Spanish translation
1719        - 602592 [RFE] expose guestfs_close in perl bindings
1720        - 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
1721        - 599464 mkfs-b does not support vfat/ntfs
1722        - 598807 add_cdrom does not work in RHEL 6
1723        - 598309 part-list and several other cmd failed on libguestfs on RHEL5
1724        - 597145 guestfish 'help' command should indicate error in exit status with an unknown command
1725        - 597135 guestfish write-file cmd does not check "size" parameter
1726        - 597118 A warning should be given in the help of mke2journal-L for the length of label
1727        - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
1728        - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
1729        - 596763 Updates to Spanish translation
1730        - 593292 Updates to Spanish translation
1731        - 592883 can not edit files on  images mounted with guestmount cmd
1732        - 592360 Updates to Spanish translation
1733        - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
1734        - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
1735        - 591142 virt-inspector should give an error for unrecognized disk images
1736        - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
1737        - 589039 guestfish read-file cmd will cause daemon hang when read large files
1738        - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
1739        - 588763 libguestfs should use non-public or link-local addresses for appliance network
1740        - 588733 Updates to Spanish translation
1741        - 588651 guestfish 'strings-e' cmd does not give proper error message or hint
1742        - 587484 lvresize can't reduce size of a volumn
1743        - 585961 Updates to Spanish translation
1744        - 585223 ntfsresize should support shrinking filesystems
1745        - 585222 pvresize should support shrinking PVs
1746        - 585221 resize2fs should support shrinking filesystems
1747        - 584038 Updates to Spanish translation
1748        - 583554 [FEAT] mknod-mode command is needed to set mode explicitly
1749        - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
1750        - 582993 guestfish eats words when tab completing case (in)sensitive paths
1751        - 582953 Misleading help information about lvcreate command
1752        - 582948 mknod command doesn't make block, character or FIFO devices
1753        - 582929 mknod doesn't check for invalid mode
1754        - 582901 guestfish chmod/umask commands do not check invalid mode value
1755        - 582899 guestfish:sparse is missed from command autocomplete list
1756        - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
1757        - 582548 [mknod] umask shouldn't take effect when mode is set explicitly
1758        - 582484 some guestfish sub commands can not handle special files properly
1759        - 582252 Updates to Spanish translation
1760        - 581501 Updates to Spanish translation
1761        - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]"
1762        - 580556 request for libguestfs to support .txz tarballs
1763        - 580246 tar-in command hangs if uploading more than available space
1764        - 580016 aug-ls in guestfish does not take augeas variable as argument
1765        - 579664 guestfish doesn't report error when there is not enough space for image allocation
1766        - 579608 multiple commands in guestfish can not work for symbol links
1767        - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
1768        - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
1769        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
1770        - 559963 libguestfs Perl programs do set locale, but still localization doesn't work
1771        - 521674 Perl modules are unversioned, but should carry version numbers
1772        - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
1773        - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
1774        - 502533 Updated Polish translation of libguestfs
1775        - 501894 Some String parameters should be OptString
1776        - 501893 String parameters should be checked for != NULL
1777        - 501889 write-file does not support strings containing ASCII NUL
1778        - 484986 grub-install fails on virtio disk
1779

RELEASE NOTES FOR HISTORICAL VERSIONS OF LIBGUESTFS

1781       Before 2010 libguestfs did not have official release notes or a
1782       formalized version numbering system.  However these are links to
1783       historically significant versions.
1784
1785       2009-11-10 (1.0.78)
1786           https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html
1787
1788       2009-09-13 (1.0.67)
1789           https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html
1790
1791       2009-07-23 (1.0.64)
1792           https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html
1793
1794       2009-07-14 (1.0.59)
1795           https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html
1796
1797       2009-04-01 (the initial announcement)
1798           http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/
1799

SEE ALSO

1801       guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
1802       guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
1803       http://libguestfs.org/
1804

AUTHOR

1806       Richard W.M. Jones
1807
1809       Copyright (C) 2009-2013 Red Hat Inc.
1810

LICENSE

1812       This program is free software; you can redistribute it and/or modify it
1813       under the terms of the GNU General Public License as published by the
1814       Free Software Foundation; either version 2 of the License, or (at your
1815       option) any later version.
1816
1817       This program is distributed in the hope that it will be useful, but
1818       WITHOUT ANY WARRANTY; without even the implied warranty of
1819       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1820       General Public License for more details.
1821
1822       You should have received a copy of the GNU General Public License along
1823       with this program; if not, write to the Free Software Foundation, Inc.,
1824       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1825

BUGS

1827       To get a list of bugs against libguestfs, use this link:
1828       https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
1829
1830       To report a new bug against libguestfs, use this link:
1831       https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
1832
1833       When reporting a bug, please supply:
1834
1835       ·   The version of libguestfs.
1836
1837       ·   Where you got libguestfs (eg. which Linux distro, compiled from
1838           source, etc)
1839
1840       ·   Describe the bug accurately and give a way to reproduce it.
1841
1842       ·   Run libguestfs-test-tool(1) and paste the complete, unedited output
1843           into the bug report.
1844
1845
1846
1847libguestfs-1.20.11                2013-08-27          guestfs-release-notes(1)
Impressum