1guestfs-release-notes(1) Virtualization Support guestfs-release-notes(1)
2
3
4
6 guestfs-release-notes - libguestfs Release Notes
7
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
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
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
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
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
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
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
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
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
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
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
1806 Richard W.M. Jones
1807
1809 Copyright (C) 2009-2013 Red Hat Inc.
1810
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
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)