1 Release notes for libguestfs 1.10.0
2 -----------------------------------
4 [Not complete. Last update commit 872e67ffdf6c7b19782514445d13e8f405e435c1]
6 These release notes only cover the differences from the previous
7 stable/dev branch split (1.8.0). For detailed changelogs, please see
8 the git repository, or the ChangeLog file distributed in the tarball.
12 - libguestfs and tools can be used against live virtual machines.
13 See the 'guestfish --live' and 'guestmount --live' options, and (for
14 the low-level interface) the new APIs set-attach-method and
18 virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.
20 - libguestfs can get the drive letter mappings for Windows guests.
22 - virt-inspector displays drive letter mappings for Windows guests.
24 - Drive letters can now be used in virt-edit and guestfish programs
25 when operating on Windows guests.
27 - You can now inspect the install disks and live CDs of many different
30 - guestfish <! cmd which executes a shell cmd and inlines the result.
32 - guestfish, guestmount, virt-rescue now all support --ro and --rw
33 options, and the default for this can be chosen via a configuration
34 file (/etc/libguestfs-tools.conf).
36 - New event API allows more than one callback to be registered for
37 each event, makes it possible to call the API from other languages,
38 and allows nearly all log, debug and trace messages to be rerouted
41 - A series of protocol fixes has fixed the old bug RHBZ#576879
42 which used to cause errors during the upload command to lose
43 protocol synchronization.
45 - Greater FHS compliance for temporary files, including using /var/tmp
46 for large cached files that should survive reboot (instead of /tmp).
48 - guestfish, guestmount -m option allows mount options to be passed
49 through to the underlying filesystem.
51 - mkfs-opts allows filesystem features to be specified.
53 - More intelligent handling of mountpoints, allowing mkmountpoint, mount
54 and umount-all commands to work together properly.
56 - Trace messages are prefixed with a distinct string, allowing them to
57 be easily 'grepped' out from debug output.
59 - guestfs_launch (guestfish 'run' command) now produces progress
60 messages (a guestfish progress bar) if it takes longer than 5
63 - Several long-running commands where we are unable to estimate time
64 to completion generate "pulse mode" progress events. Progress bar
65 in guestfish has been updated to display these.
67 - Publish example code in: C, Perl, Python, OCaml, Ruby.
69 - New virt-dhcp-address example program.
71 - The Java and Ruby bindings have been improved greatly.
73 - Perl includes a way to get the errno of the last error.
75 - Python bindings now compatible with rpyc (thanks Erez Shinan).
77 - Transifex is now being used to manage translations.
78 http://www.transifex.net/projects/p/libguestfs/
80 - Inspection now supports Red Hat Desktop, Slackware distributions.
82 - Inspection no longer fails for Windows guests that have two or
85 - Inspection can now tell the difference between Windows 2008 Server
88 - Inspection can detect 32 bit applications installed in 64 bit
89 Windows, running on the WOW64 emulator.
101 inspect-get-drive-mappings,
102 inspect-get-product-variant,
103 inspect-get-windows-current-control-set,
110 - The 'HACKING' file is obsolete. The contents have been moved into
111 a section of the guestfs(3) manual page.
115 - 502533 Updated Polish translation of libguestfs
116 - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
117 - 599503 document that mkmountpoint and umount-all cannot be mixed
118 - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
119 - 664558 RFE: Allow to set log callback in Ruby bindings
120 - 665358 Punjabi Translation Completed (pa_IN)
121 - 666577 libguestfs: unknown filesystem /dev/fd0
122 - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
123 - 668112 virt-filesystems command fails on guest with corrupt filesystem label
124 - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
125 - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
126 - 674130 Inspection code fails for Windows guest with two disks
127 - 682756 libguestfs trace segfaults when list-filesystems returns error
128 - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
129 - 690819 mkfs fails creating a filesytem on a disk device when using a disk with 'ide' interface
130 - 691389 Extended attributes don't work over guestmount (FUSE)
131 - 691724 virt-inspector reports unknown filesystem /dev/vda1
132 - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
133 - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter
135 Release notes for libguestfs 1.8.0
136 ----------------------------------
138 These release notes only cover the differences from the previous
139 stable/dev branch split (1.6.0). For detailed changelogs, please see
140 the git repository, or the ChangeLog file distributed in the tarball.
144 - Support and packages for Debian and Ubuntu.
146 - Daily builds from git repository on Debian and Ubuntu to reduce risk
149 - Port to ArchLinux 'pacman' (thanks Thomas S Hatch).
151 - The following tools have been rewritten in C (originally in Perl):
159 - Some C tools support encrypted guests automatically. This is
160 supported in: guestfish, guestmount, virt-cat, virt-inspector,
163 - New tool virt-filesystems (in C) which is a replacement for
164 virt-list-filesystems and virt-list-partitions, and has a superset
165 of the functionality of those tools.
167 - guestfish, guestmount and the C tools use unified command line option
168 parsing, so they support many common options such as '-a disk.img',
169 '-d libvirt-domain', '-x', '-v'. The old command line option
170 parsing is preserved for compatibility in scripts etc.
172 - guestfish no longer has any dependencies on Perl
174 - New man pages containing programming examples: guestfs-examples(3) (C/C++),
175 guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).
177 - Trace mode prints return values from API functions.
179 - virt-inspector can list applications installed in Windows guests, along
180 with a great deal of information about those applications.
182 - Add support for inspecting: Linux Mint, Mandriva, FreeBSD.
184 - guestfish --rw option (with no effect currently) to make potentially
185 dangerous write access explicit.
187 - guestfish --listen --csh for compatibility with csh, tcsh (thanks
190 - The first upstream version that introduced each API function is now
191 documented in guestfs(3).
193 - guestfs_last_errno allows you to retrieve the errno from the
194 daemon, correctly translated to the local operating system.
196 - Functions can now have optional parameters.
198 - Progress bars and progress notifications can now happen for upload
201 - Appliance builder more careful about not leaving temporary files
204 - getfattr/setfattr commands added to virt-rescue.
206 - ROADMAP file covers roadmap and goals for future releases.
210 - New SECURITY section in guestfs(3) API documentation.
212 - virt-inspector no longer runs any guest commands.
214 - Inspection code is more careful about avoiding very large files
215 from guests which might previously have caused a denial of service.
217 - FUSE calls into guestmount are now traced when using guestmount -x.
224 - inspect-get-hostname
225 - inspect-get-package-format
226 - inspect-get-package-management
228 - inspect-list-applications
234 - C programs now only link precisely with the libraries that they use.
236 - PCRE, libmagic, hivex and libvirt libraries are now completely
237 optional for building.
239 - Multiple memory leaks and file descriptor leaks fixed.
241 - Add a POD wrapper to unify generation of man pages and HTML files
244 - Source includes phony images of Fedora, Debian, Ubuntu and
247 - Ruby bindings have 'make install' rule.
249 - <guestfs.h> is now a single file.
251 - <guestfs.h> does not require XDR headers.
253 - ocaml xml-light library is no longer required to build (thanks
256 - ./configure --disable-[...] for each language binding (thanks
259 - Old ocaml-viewer program removed (use guestfs-browser instead).
261 - New C API test type 'InitScratchFS' makes the tests run a little
264 - Excluded packages in the appliance are now listed in a separate
265 file appliance/excludelist.in, and can be customized per-distro.
269 - 663407 readlink and readlinklist returns /sysroot/ in some paths
270 - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
271 - 657499 checksum: wrong check sum type causes umount to fail
272 - 655554 Whole disk paths are not made canonical by virt-inspector
273 - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
274 - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution
276 Release notes for libguestfs 1.6.0
277 ----------------------------------
279 These release notes only cover the differences from the previous
280 stable/dev branch split (1.4.0). For detailed changelogs, please see
281 the git repository, or the ChangeLog file distributed in the tarball.
285 - Use a new method for creating and caching the appliance. This
286 greatly improves the performance of libguestfs, often by a factor
289 - Support for guest inspection (like virt-inspector) via the ordinary
290 API and all language bindings. 'guestfish -i' option is as a side-
293 - virt-inspector and core inspection API can now detect guests running:
294 Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
295 Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.
297 - Support for LUKS whole-disk encryption in guests.
301 - Progress messages (and progress bars in guestfish and virt-resize)
302 for certain long-running operations.
304 - virt-df is now much more efficient. Use '--one-per-guest' to restore
305 the old per-guest isolation behaviour.
307 - guestfish 'copy-in' and 'copy-out' commands for copying files and
308 directories recursively in and out of the guest.
310 - guestfish 'hexedit' command for doing binary edits to devices and
313 - Change guestfish -i syntax to allow commands to be specified on the
314 command line (retaining backwards compatibility).
316 - guestfish '-d <domain>' for adding disks from libvirt domains.
318 - guestfish '-N' option supports several new prepared disk image types:
319 lvfs : disk with LV formatted with filesystem
322 bootrootlv : boot and root on LV
324 - guestfish 'more' and 'edit' commands now work with arbitrary files.
326 - guestfish '--echo-keys' option allows you to echo keys/passphrases
329 - guestmount now supports -a / -d / -i options, like guestfish.
331 - Use virtio-serial for communications with the appliance. This
332 also has a major performance benefit.
334 - virt-edit '-b' option to create a backup of edited files.
336 - virt-edit '-e' option for non-interactive edits to files.
338 - Ability to capture core dumps from the appliance (thanks Matthew Booth).
340 - virt-rescue now shuts down cleanly (thanks Matthew Booth).
342 - virt-rescue now has a --network option to enable network access.
344 - virt-resize can now handle guests which use GPT partition table format.
346 - virt-resize has better support for shrinking guests.
348 - virt-resize supports qcow2-format guests.
350 - $TMPDIR can be used to override almost all temporary directory usage.
352 - OCaml users can use an alternate OO-style of coding, eg. g#launch ()
354 - The API supports calls which take optional parameters, eg.
355 $g->add_drive_opts ("disk", readonly => 1);
357 - Trace output now escapes and shortens large strings (thanks
360 - Autosync is now on by default, resulting in more reliable behaviour
361 when the handle is closed.
363 - virt-df --uuid option allows you to follow a domain across migration
366 - Translations of manual pages.
370 - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk
371 https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html
372 This is comprehensively fixed in this release, and the fix will be
373 backported to the other stable branches after more testing.
375 - virt-inspector no longer relies on untrusted guest code to list
376 applications in some guests.
380 download-offset, file-architecture, findfs-label, findfs-uuid,
381 inspect-os, inspect-get-arch, inspect-get-distro,
382 inspect-get-filesystems, inspect-get-major-version,
383 inspect-get-minor-version, inspect-get-mountpoints,
384 inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
385 is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
386 luks-close, luks-format, luks-format-cipher, luks-kill-slot,
387 luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
388 lvm-set-filter, part-to-dev, pread-device, pwrite-device,
393 - Use size_t for loop iterators.
394 - Refactor the library code into separate files.
395 - Refactor the generator code into separate files.
396 - Generate guestfish commands.
397 - guestfish & guestmount options processing is unified.
399 error message size increased to 64K
400 send errno to library
401 - Add 'make bindist' to make a binary distribution.
402 - Cleaner behaviour under valgrind.
403 - More testing of the guestfish command line options and libvirt
405 - The Perl inspection code is no longer used by any of the tools.
409 - 646822 libguestfs trace mode should not print long binary strings
410 - 646821 virt-df should have --uuid option
411 - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
412 - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
413 - 642934 No way to specify disk format when adding a disk to libguestfs
414 - 642933 guestfs_list_filesystems should be used in all possible places
415 - 642932 guestmount options should match guestfish options
416 - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
417 - 642929 C inspection code should ignore /dev/fd* in /etc/fstab
418 - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
419 - 640961 Document that grub-install might be needed for old Linux guests after virt-resize
420 - 639986 virt-df --csv does not properly quote " in libvirt domain names
421 - 639405 Interrupted cached appliance creation leaves libguestfs unusable
422 - 638901 Appliance filename should not contain repository name
423 - 638899 /dev/mapper paths should not be returned from C inspection APIs
424 - 636918 Updates to Spanish translation
425 - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
426 - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
427 - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
428 - 633766 virt-resize --shrink fails
429 - 633357 Updates to Spanish translation
430 - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
431 - 629593 Dutch translation added
432 - 627556 Updates to Spanish translations of libguestfs
433 - 626843 Updates to Spanish translations
434 - 619793 [RFE] Need a way to determine if a particular block device is a logical volume
435 - 618556 virt-rescue return none zero value when exit
436 - 617200 mount operation failed and hung on some images which running in read-only mode
437 - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
438 - 599503 document that mkmountpoint and umount-all cannot be mixed
439 - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
440 - 502533 Updated Polish translation of libguestfs
442 Release notes for libguestfs 1.4.0
443 ----------------------------------
445 These release notes only cover the differences from the previous
446 stable/dev branch split (1.2.0). For detailed changelogs, please see
447 the git repository, or the ChangeLog file distributed in the tarball.
451 - guestfish lets you choose a prepared disk image, eg:
454 - Add write support to guestmount (FUSE) module.
456 - virt-resize can now resize the content of partitions and logical
457 volumes in the guest, and we have better support for shrinking guests.
459 - Bash tab-completion script for guestfish.
461 - Add ZFS support to virt-rescue.
463 - New tool 'virt-make-fs' for creating filesystems with content.
465 - Allow suffixes on any guestfish number parameter, eg. "1M".
467 - guestfish 'man' command opens the manual page.
469 - guestfish supports a "heredoc" syntax for uploading files:
474 - Some guestfish commands now print their output in octal or hex
475 where appropriate (RHBZ#583242).
477 - Allow dash prefix on guestfish command line. This ignores any
478 error from the second command: (RHBZ#578407)
479 guestfish -- cmd1 : -cmd2 : cmd3
481 - guestfish -h / help command now returns an error for non-existent
482 commands (RHBZ#597145).
484 - New 'supported' command in guestfish to list optional groups of
485 commands which are supported by the daemon / configuration.
487 - virt-inspector and guestfish -i now work for filenames which
488 contain spaces (RHBZ#507810).
490 - Change the protocol to use link-local addresses, to avoid
491 conflicting with any address that the host might be using
494 - libguestfs now sets the correct time and timezone on filesystem
497 - Sort the domains into alphabetical order in virt-df.
499 - Make mkfs-b command work for FAT and NTFS by mapping the blocksize
500 parameter to the cluster size (RHBZ#599464).
502 - Add version numbers to Perl modules (RHBZ#521674).
504 - Localization now works for all the libguestfs tools (RHBZ#559963).
506 - Tools now support filesystem-on-image VMs (RHBZ#590167).
508 - virt-list-partitions has a '-t' option to show the total size of disks.
510 - Include extra Augeas lenses in the supermin appliance (Matthew Booth).
512 - Add error and close callbacks.
514 - Add explicit close method in the Perl API.
516 - Multiple fixes for RHEL 5 compatibility.
518 - Multiple fixes for Debian/Ubuntu compatibility.
520 - Multiple revisions to improve the documentation.
524 - Fix a potential DoS in virt-inspector and virt-v2v if a specially
525 crafted disk image contained a char device in place of one of the
526 configuration files that we read under /etc (RHBZ#582484).
530 - aug-clear - clear Augeas path
531 - available-all-groups - return a list of all optional groups
532 - base64-in - upload base64-encoded data to file
533 - base64-out - download file and encode as base64
534 - checksum-device - compute checksums on the contents of a device
535 - checksums-out - compute checksums of multiple files in a directory
536 - debug-upload - upload a file to the appliance
537 - fallocate64 - preallocate a file in the guest filesystem
538 - fill-pattern - fill a file with a repeating pattern of bytes
539 - get-umask - get the current umask
540 - lvresize-free - expand an LV to fill free space
541 - ntfsresize - resize an NTFS filesystem
542 - ntfsresize-size - resize an NTFS filesystem (with size)
543 - part-del - delete a partition
544 - part-get-bootable - get the bootable flag of a partition
545 - part-get-mbr-id - get the MBR type byte of a partition
546 - part-set-mbr-id - set the MBR type byte of a partition
547 - pvresize-size - resize a physical volume (with size)
548 - pwrite - write to part of a file
549 - resize2fs-size - resize an ext2/3/4 filesystem (with size)
550 - txz-in - unpack compressed tarball to directory (RHBZ#580556)
551 - txz-out - pack directory into compressed tarball (RHBZ#580556)
552 - vfs-label - get the filesystem label
553 - vfs-uuid - get the filesystem UUID
554 - vgscan - rescan for LVM physical volumes, volume groups and logical volumes
555 - write - create a new file
556 - zero-device - write zeroes to an entire device
560 - Extend the generator to support testing optional features.
561 - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894)
562 - Extend the protocol to support sending arbitrary 8 bit data buffers.
563 - Ship 'BUGS' file with releases. This is a summary of the bugs in
564 the Red Hat Bugzilla database.
565 - Ship 'RELEASE-NOTES' file with releases, containing release notes.
566 - Unify supermin appliance building into one place, in febootstrap 2.7.
567 - Fix the protocol code to handle the case where both ends send cancel
568 messages at the same time.
572 - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
573 - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
574 - 604691 OCaml bindings are not thread safe
575 - 603870 Updates to Spanish translation
576 - 602592 [RFE] expose guestfs_close in perl bindings
577 - 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
578 - 599464 mkfs-b does not support vfat/ntfs
579 - 598807 add_cdrom does not work in RHEL 6
580 - 598309 part-list and several other cmd failed on libguestfs on RHEL5
581 - 597145 guestfish 'help' command should indicate error in exit status with an unknown command
582 - 597135 guestfish write-file cmd does not check "size" parameter
583 - 597118 A warning should be given in the help of mke2journal-L for the length of label
584 - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
585 - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
586 - 596763 Updates to Spanish translation
587 - 593292 Updates to Spanish translation
588 - 592883 can not edit files on images mounted with guestmount cmd
589 - 592360 Updates to Spanish translation
590 - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
591 - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
592 - 591142 virt-inspector should give an error for unrecognized disk images
593 - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
594 - 589039 guestfish read-file cmd will cause daemon hang when read large files
595 - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
596 - 588763 libguestfs should use non-public or link-local addresses for appliance network
597 - 588733 Updates to Spanish translation
598 - 588651 guestfish 'strings-e' cmd does not give proper error message or hint
599 - 587484 lvresize can't reduce size of a volumn
600 - 585961 Updates to Spanish translation
601 - 585223 ntfsresize should support shrinking filesystems
602 - 585222 pvresize should support shrinking PVs
603 - 585221 resize2fs should support shrinking filesystems
604 - 584038 Updates to Spanish translation
605 - 583554 [FEAT] mknod-mode command is needed to set mode explicitly
606 - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
607 - 582993 guestfish eats words when tab completing case (in)sensitive paths
608 - 582953 Misleading help information about lvcreate command
609 - 582948 mknod command doesn't make block, character or FIFO devices
610 - 582929 mknod doesn't check for invalid mode
611 - 582901 guestfish chmod/umask commands do not check invalid mode value
612 - 582899 guestfish:sparse is missed from command autocomplete list
613 - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
614 - 582548 [mknod] umask shouldn't take effect when mode is set explicitly
615 - 582484 some guestfish sub commands can not handle special files properly
616 - 582252 Updates to Spanish translation
617 - 581501 Updates to Spanish translation
618 - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]"
619 - 580556 request for libguestfs to support .txz tarballs
620 - 580246 tar-in command hangs if uploading more than available space
621 - 580016 aug-ls in guestfish does not take augeas variable as argument
622 - 579664 guestfish doesn't report error when there is not enough space for image allocation
623 - 579608 multiple commands in guestfish can not work for symbol links
624 - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
625 - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
626 - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
627 - 559963 libguestfs Perl programs do set locale, but still localization doesn't work
628 - 521674 Perl modules are unversioned, but should carry version numbers
629 - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
630 - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
631 - 502533 Updated Polish translation of libguestfs
632 - 501894 Some String parameters should be OptString
633 - 501893 String parameters should be checked for != NULL
634 - 501889 write-file does not support strings containing ASCII NUL
635 - 484986 grub-install fails on virtio disk
637 Release notes for previous versions of libguestfs
638 -------------------------------------------------
641 https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html
644 https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html
647 https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html
650 https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html
652 2009-04-01 : Initial announcement
653 http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/