mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
2652 lines
84 KiB
Plaintext
2652 lines
84 KiB
Plaintext
=encoding utf8
|
|
|
|
=head1 NAME
|
|
|
|
guestfs-release-notes - libguestfs Release Notes
|
|
|
|
=begin comment
|
|
|
|
<script>
|
|
document.body.style.backgroundImage = "url('draft.png')";
|
|
document.body.style.backgroundRepeat = "no-repeat";
|
|
</script>
|
|
|
|
=end comment
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.24
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.22.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
User-Mode Linux (UML) can be used as an alternative backend
|
|
(ie. instead of KVM). This improves performance especially
|
|
when using libguestfs inside a VM (eg. in the cloud). UML is
|
|
supported as a first-class backend.
|
|
See L<guestfs(3)/USER-MODE LINUX BACKEND> for how to use this.
|
|
|
|
ARM (32 bit) and PPC64 are now fully supported.
|
|
|
|
=head3 Tools
|
|
|
|
L<virt-builder(1)> is a new tool for building virtual machine images.
|
|
It lets you rapidly and securely create guests and customize them.
|
|
|
|
New L<virt-sysprep(1)> operations:
|
|
Remove files in C</tmp> and C</var/tmp>.
|
|
Remove RPM database files.
|
|
Change root and user passwords.
|
|
More log files are removed.
|
|
New operations which are not enabled by default:
|
|
Create random UUIDs for filesystems.
|
|
Reset firewall rules.
|
|
(Wanlong Gao)
|
|
|
|
L<virt-resize(1)> and virt-sysprep can now use URIs to specify a
|
|
remote disk.
|
|
|
|
Use C<guestfish -N filename=type> to create a named disk image
|
|
(instead of the default C<test1.img> etc).
|
|
|
|
L<virt-sparsify(1)> now tests if there is enough disk space to
|
|
complete the operation, instead of possibly running out of space half
|
|
way through.
|
|
|
|
L<virt-format(1)> and L<virt-make-fs(1)>: new I<--label> option for
|
|
setting filesystem label.
|
|
|
|
virt-resize I<--no-sparse> flag can be used to resize on to partitions
|
|
and other targets that are not zeroed.
|
|
|
|
=head3 Language bindings
|
|
|
|
New bindings for the Go programming language.
|
|
|
|
=head3 API
|
|
|
|
Support for the systemd journal.
|
|
|
|
C<guestfs_add_drive_opts> can now control the qemu caching mode
|
|
through a new C<cachemode> parameter. You can select improved
|
|
performance for temporary drives, or safety.
|
|
|
|
C<guestfs_set_label> now works for XFS and btrfs.
|
|
|
|
New GUESTFS_EVENT_WARNING event for warning messages.
|
|
|
|
=head3 Inspection
|
|
|
|
Better inspection of SUSE guests (Olaf Hering).
|
|
|
|
Better support for non-standard Windows %systemroot% (Matthew Booth).
|
|
|
|
Enhanced error reporting for Augeas errors.
|
|
|
|
=head2 Security
|
|
|
|
=over 4
|
|
|
|
=item CVE-2013-2124
|
|
|
|
L<https://bugzilla.redhat.com/show_bug.cgi?id=968306>
|
|
|
|
A denial of service was possible when inspecting certain guests. The
|
|
fix has been backported to 1.20 and 1.22 branches.
|
|
|
|
=item CVE-2013-4419
|
|
|
|
L<https://www.redhat.com/archives/libguestfs/2013-October/msg00031.html>
|
|
|
|
Fix insecure temporary directory handling for remote guestfish. The
|
|
fix has been backported to 1.20 and 1.22 branches.
|
|
|
|
=back
|
|
|
|
=head2 New APIs
|
|
|
|
add-drive-scratch: Add a temporary scratch drive
|
|
aug-label
|
|
aug-setm
|
|
journal-open: Systemd journal support
|
|
journal-close
|
|
journal-next
|
|
journal-skip
|
|
journal-get
|
|
journal-get-data-threshold
|
|
journal-set-data-threshold
|
|
remount: Allow rw flag to be adjusted on mounted filesystems
|
|
set-uuid: Set UUID of filesystem
|
|
|
|
C<is-file>, C<is-dir>, C<is-blockdev>, C<is-chardev>, C<is-fifo>,
|
|
C<is-socket> APIs now have an extra C<followsymlinks> flag.
|
|
|
|
C<add-drive> has a new C<cachemode> parameter.
|
|
|
|
=head2 Build changes
|
|
|
|
The following packages are required to build libguestfs 1.24:
|
|
|
|
=over 4
|
|
|
|
=item Augeas E<ge> 1.0.0
|
|
|
|
=back
|
|
|
|
The following optional packages may be added to enhance functionality
|
|
but are not required:
|
|
|
|
=over 4
|
|
|
|
=item sd-journal
|
|
|
|
To read journal files from guests which use that.
|
|
|
|
=item url_mkcow
|
|
|
|
For UML backend.
|
|
|
|
=item curl
|
|
|
|
=item gpg
|
|
|
|
=item xz
|
|
|
|
For virt-builder.
|
|
|
|
=item golang E<ge> 1.1.1
|
|
|
|
For Go language bindings.
|
|
|
|
=back
|
|
|
|
=head2 Internals
|
|
|
|
New C<make check-*> rules replace C<make extra-tests>. See C<make
|
|
help> and L<guestfs(3)> for details.
|
|
|
|
Perl code can now be valgrinded.
|
|
|
|
Inspection code is now fuzz-tested.
|
|
|
|
C<make> no longer recurses into the generator directory in every other
|
|
directory. This reduces the overhead of builds considerably.
|
|
|
|
Additional tests for Augeas, hivex.
|
|
|
|
Add a launch timeout of 20 minutes waiting for the appliance to start
|
|
up.
|
|
|
|
Add a timeout (4 hours) to all tests so we can catch the case where
|
|
qemu or other components hang.
|
|
|
|
Use kvmclock and C<-cpu host>. This improves clock stability and
|
|
overall performance.
|
|
|
|
C<./configure --enable-packet-dump> mode is fixed.
|
|
|
|
C<./configure --enable-valgrind-daemon> mode has been rewritten. It
|
|
is now feasible for developers to keep this flag enabled at all times.
|
|
|
|
Backends have been refactored to be modular (although they are not
|
|
actually loadable modules).
|
|
|
|
When enabled, the network now uses resolver configuration
|
|
(ie. /etc/resolv.conf) from the host.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
=begin comment
|
|
|
|
./bugs-in-changelog.sh 1.22.0..
|
|
|
|
=end comment
|
|
|
|
=over 4
|
|
|
|
=item L<https://bugzilla.redhat.com/1019889>
|
|
|
|
libguestfs-tools.conf should have a man page
|
|
|
|
=item L<https://bugzilla.redhat.com/1018149>
|
|
|
|
valgrind errors in btrfs_subvolume_list
|
|
|
|
=item L<https://bugzilla.redhat.com/1002032>
|
|
|
|
mke2fs can't return the correct filesystem type when blockscount is less than 2048 for ext3
|
|
|
|
=item L<https://bugzilla.redhat.com/1001876>
|
|
|
|
Update "rsync-out" helpout for using wildcard
|
|
|
|
=item L<https://bugzilla.redhat.com/1001875>
|
|
|
|
Argument 'excludes' of tar-out does not work
|
|
|
|
=item L<https://bugzilla.redhat.com/1000428>
|
|
|
|
virt-format uses wrong partition type for vfat filesystems
|
|
|
|
=item L<https://bugzilla.redhat.com/1000121>
|
|
|
|
'sh' command before mount causes daemon to segfault
|
|
|
|
=item L<https://bugzilla.redhat.com/998513>
|
|
|
|
guestfish does not work when you mix --remote and --add options
|
|
|
|
=item L<https://bugzilla.redhat.com/998482>
|
|
|
|
guestfish remote prints "libguestfs: error: waitpid (qemu): No child processes"
|
|
|
|
=item L<https://bugzilla.redhat.com/995711>
|
|
|
|
list-filesystems command fails if there are no block devices
|
|
|
|
=item L<https://bugzilla.redhat.com/994517>
|
|
|
|
cache=none/O_DIRECT workaround doesn't work for images with backing files
|
|
|
|
=item L<https://bugzilla.redhat.com/989356>
|
|
|
|
cap-get-file will return error if the file has not be set capabilities
|
|
|
|
=item L<https://bugzilla.redhat.com/986877>
|
|
|
|
RFE: Implement set-uuid command
|
|
|
|
=item L<https://bugzilla.redhat.com/986875>
|
|
|
|
RFE: Implement set-label for xfs
|
|
|
|
=item L<https://bugzilla.redhat.com/985269>
|
|
|
|
Can't set acl value for a specified user with 'acl-set-file'
|
|
|
|
=item L<https://bugzilla.redhat.com/983218>
|
|
|
|
libguestfs double free when kernel link fails during launch
|
|
|
|
=item L<https://bugzilla.redhat.com/981715>
|
|
|
|
Make xfs filesystem failed with specified blocksize, gives "unknown option -b" error
|
|
|
|
=item L<https://bugzilla.redhat.com/981683>
|
|
|
|
"hivex-commit" should fail with a relative path
|
|
|
|
=item L<https://bugzilla.redhat.com/981663>
|
|
|
|
disk-format "qemu-img info: JSON parse error" when target file does not exist
|
|
|
|
=item L<https://bugzilla.redhat.com/978302>
|
|
|
|
mke2fs-J should give a meaningful error when specified type is anything except 'ext{2,3,4}'
|
|
|
|
=item L<https://bugzilla.redhat.com/975797>
|
|
|
|
Specifying virtio interface ('iface' parameter) breaks the direct backend - libguestfs hangs
|
|
|
|
=item L<https://bugzilla.redhat.com/975753>
|
|
|
|
"virt-resize --expand" and "virt-resize --resize" outputs error message for Win2008 32bit OS
|
|
|
|
=item L<https://bugzilla.redhat.com/975412>
|
|
|
|
inspection: Augeas expressions are broken with augeas >= 0.10
|
|
|
|
=item L<https://bugzilla.redhat.com/974904>
|
|
|
|
virt-resize --expand fails on Ubuntu Cloud Image
|
|
|
|
=item L<https://bugzilla.redhat.com/974489>
|
|
|
|
Regression: Fedora inspection broken by change from guestfs_exists to guestfs_is_file
|
|
|
|
=item L<https://bugzilla.redhat.com/972775>
|
|
|
|
txz-out command produces a bzip2-compressed file (should be xz-compressed)
|
|
|
|
=item L<https://bugzilla.redhat.com/969845>
|
|
|
|
upload to a directory occasionally hangs instead of failing
|
|
|
|
=item L<https://bugzilla.redhat.com/968875>
|
|
|
|
virt-sysprep should support URL-type arguments
|
|
|
|
=item L<https://bugzilla.redhat.com/624334>
|
|
|
|
blockdev-setbsz succeeds, but does not affect blockdev-getbsz
|
|
|
|
=back
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.22
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.20.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
=head3 API
|
|
|
|
Remote access to disks:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
Network Block Device (nbd)
|
|
|
|
=item *
|
|
|
|
Secure Shell (ssh)
|
|
|
|
=item *
|
|
|
|
HTTP and HTTPS
|
|
|
|
=item *
|
|
|
|
FTP and FTPS
|
|
|
|
=item *
|
|
|
|
iSCSI
|
|
|
|
=item *
|
|
|
|
Gluster
|
|
|
|
=item *
|
|
|
|
Ceph/rbd
|
|
(Mike Kelly)
|
|
|
|
=item *
|
|
|
|
Sheepdog
|
|
|
|
=item *
|
|
|
|
TFTP
|
|
|
|
=back
|
|
|
|
The SYSLINUX and EXTLINUX bootloaders can now be installed in disk
|
|
images using the API.
|
|
|
|
Inspection can now handle filesystems such as btrfs where subvolumes
|
|
are separately mountable (Matthew Booth).
|
|
|
|
"Attach methods" are now known as "backends". Compatibility with
|
|
existing code is preserved.
|
|
|
|
Filenames can contain ':', as long as newer QEMU is being used.
|
|
|
|
=head3 Tools
|
|
|
|
Virt-alignment-scan and virt-df scan multiple guests in parallel.
|
|
|
|
Guestmount now passes errno accurately back to userspace in almost
|
|
all cases.
|
|
|
|
Guestfish and other tools can now use a URI-like syntax to access
|
|
remote disks, eg:
|
|
|
|
guestfish -a ssh://example.com/path/to/disk.img
|
|
|
|
Guestfish and guestmount now allow you to specify the filesystem type
|
|
when mounting, which is more secure (Dave Vasilevsky).
|
|
|
|
Guestfish is now the "guest filesystem shell".
|
|
|
|
Guestfish allows only C<1> C<true> C<t> C<yes> C<y> C<on> C<0>
|
|
C<false> C<f> C<no> C<n> C<off> for boolean values (case insensitive),
|
|
and gives an error for all other strings.
|
|
|
|
New tool C<guestunmount> for unmounting FUSE filesystems safely.
|
|
|
|
C<guestmount --no-fork> flag prevents guestmount from daemonizing.
|
|
|
|
Virt-resize now uses sparse copies by default, saving considerable
|
|
space for guests which are mostly empty.
|
|
|
|
Bash tab completion has been rewritten and can now handle most tools,
|
|
and correctly tab-complete C<--long> options. In addition, bash
|
|
completion scripts are loaded on demand.
|
|
|
|
=head3 Language bindings
|
|
|
|
The Java API now supports events.
|
|
|
|
The Python object now inherits from the C<object> base class.
|
|
|
|
Python methods which previously returned lists of tuples can now
|
|
be made to return a Python dict. For backwards compatibility, you
|
|
have to enable this by using the constructor option
|
|
S<C<guestfs.GuestFS (python_return_dict=True)>>.
|
|
|
|
The PHP bindings are now tested properly, and have had multiple fixes.
|
|
|
|
The long-deprecated Perl C<Sys::Guestfs::Lib> library has been
|
|
removed.
|
|
L<https://www.redhat.com/archives/libguestfs/2013-April/msg00001.html>
|
|
|
|
=head3 Examples
|
|
|
|
New example program showing how to enable debugging and capture
|
|
log messages.
|
|
|
|
=head3 Other
|
|
|
|
Distributors can add arbitrary extra packages to the appliance by
|
|
doing:
|
|
|
|
./configure --with-extra-packages="list of package names"
|
|
|
|
Distributors can use:
|
|
|
|
./configure --with-supermin-extra-options="..."
|
|
|
|
to add arbitrary extra options to supermin.
|
|
|
|
=head2 Security
|
|
|
|
No security issues were found in this release.
|
|
|
|
=head2 New APIs
|
|
|
|
cp-r
|
|
extlinux
|
|
feature-available
|
|
get-program
|
|
is-whole-device
|
|
part-get-gpt-type
|
|
part-set-gpt-type
|
|
rename
|
|
set-program
|
|
syslinux
|
|
|
|
C only:
|
|
|
|
guestfs_event_to_string
|
|
|
|
=head2 Internals
|
|
|
|
The febootstrap tool has now been renamed to "supermin". Libguestfs
|
|
can use either, but now prefers "supermin".
|
|
L<http://people.redhat.com/~rjones/supermin/>
|
|
|
|
libxml2 is required to build libguestfs.
|
|
|
|
The hivexregedit program (from hivex) is required to build from git.
|
|
|
|
Internal functions can no longer be used unless the caller defines
|
|
C<-DGUESTFS_PRIVATE=1>.
|
|
|
|
Enable C compiler warnings in Python, Ruby bindings.
|
|
|
|
Fail early and clearly if libvirt does not support qemu/KVM (eg. if
|
|
default libvirt connection is to Xen).
|
|
|
|
C<make print-subdirs> rule, useful for selectively running tests.
|
|
|
|
Multiple fixes to allow separated (sourcedir != builddir) builds.
|
|
|
|
Multiple fixes to Haskell bindings.
|
|
|
|
C<ln> and C<ln-f> APIs now capture C<errno> correctly.
|
|
|
|
Language binding tests use (mostly) a standard numbering scheme and
|
|
aim to test the same range of features in each language. Also the
|
|
number of launches required has been reduced so these tests should run
|
|
much more quickly.
|
|
|
|
Library code internally uses GCC C<__attribute__((cleanup))> (if
|
|
available) to simplify memory allocation.
|
|
|
|
Internal header files have been reorganized. See the comments in
|
|
C<src/guestfs-internal*.h>
|
|
|
|
Internal code shared between the library and certain tools is now
|
|
located in a static C<libutils> library.
|
|
|
|
Almost all subdirectories can now use parallel builds, although note
|
|
that the top-level directories still build in series.
|
|
|
|
Use of C<PATH_MAX> and C<NAME_MAX> has been eliminated from the code.
|
|
|
|
The Java API now requires JVM E<ge> 1.6.
|
|
|
|
Force use of C<serial-tests> with automake E<ge> 1.12.
|
|
|
|
Use of sockets in the library protocol layer is abstracted, allowing
|
|
other non-POSIX layers to be added in future (see
|
|
C<src/conn-socket.c>).
|
|
|
|
C<qemu-img info --output json> is used if available, for more secure
|
|
parsing of the output of this command.
|
|
|
|
Distros can now use C<make INSTALLDIRS=vendor install> to place Ruby
|
|
bindings in vendordir. This eliminates a non-upstream patch carried
|
|
by both Fedora and Debian.
|
|
|
|
Valgrind log files are now written to C<tmp/valgrind-I<DATE>-I<PID>.log>
|
|
|
|
C<make clean> cleans the local C<tmp/> directory.
|
|
|
|
The C API tests have been rewritten using a more flexible generator
|
|
language that allows arbitrary C code to be executing during tests.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
=begin comment
|
|
|
|
./bugs-in-changelog.sh 1.20.0..
|
|
|
|
=end comment
|
|
|
|
=over 4
|
|
|
|
=item L<https://bugzilla.redhat.com/961812>
|
|
|
|
Segfault in inspect-fs.c in mountable code
|
|
|
|
=item L<https://bugzilla.redhat.com/957772>
|
|
|
|
tar-out and base64-out quoting error
|
|
|
|
=item L<https://bugzilla.redhat.com/957380>
|
|
|
|
libguestfs: error: btrfsvol:/dev/sda2/root: root device not found: only call this function with a root device previously returned by guestfs_inspect_os
|
|
|
|
=item L<https://bugzilla.redhat.com/948324>
|
|
|
|
inspection fails if libosinfo is not installed
|
|
|
|
=item L<https://bugzilla.redhat.com/928995>
|
|
|
|
file on zero-sized file now produces "empty " instead of "empty"
|
|
|
|
=item L<https://bugzilla.redhat.com/921292>
|
|
|
|
qemu: could not open disk image /tmp/.../snapshot1: Permission denied
|
|
|
|
=item L<https://bugzilla.redhat.com/921040>
|
|
|
|
"error: external command failed, see earlier error messages" message needs to change
|
|
|
|
=item L<https://bugzilla.redhat.com/920225>
|
|
|
|
libguestfs should use --output json (if supported) to safely parse the output of qemu-img command
|
|
|
|
=item L<https://bugzilla.redhat.com/916780>
|
|
|
|
feature request: guestmount --with-cleanup-pipefd
|
|
|
|
=item L<https://bugzilla.redhat.com/914934>
|
|
|
|
oom-killer kills guestfsd when tar-in a lot of data
|
|
|
|
=item L<https://bugzilla.redhat.com/914931>
|
|
|
|
FileIn commands cause segfault if appliance dies during the file copy in
|
|
|
|
=item L<https://bugzilla.redhat.com/913145>
|
|
|
|
Misc leaks in virNetClientProgramCall in libvirt 1.0.2
|
|
|
|
=item L<https://bugzilla.redhat.com/912499>
|
|
|
|
Security context on image file gets reset
|
|
|
|
=item L<https://bugzilla.redhat.com/909836>
|
|
|
|
libguestfs-test-tool --qemu segfaults
|
|
|
|
=item L<https://bugzilla.redhat.com/909624>
|
|
|
|
Unexpected non-tail recursion in recv_from_daemon results in stack overflow in very long-running API calls that send progress messages
|
|
|
|
=item L<https://bugzilla.redhat.com/908322>
|
|
|
|
virt-tar fails on non-existent directory names "error in chunked encoding at /home/rjones/d/libguestfs/tools/virt-tar line 272."
|
|
|
|
=item L<https://bugzilla.redhat.com/908321>
|
|
|
|
virt-cat fails on directory names "/dev/stdout: error in chunked encoding"
|
|
|
|
=item L<https://bugzilla.redhat.com/907554>
|
|
|
|
btrfs causes subsequent ntfs-3g filesystem to fail
|
|
|
|
=item L<https://bugzilla.redhat.com/905341>
|
|
|
|
"No such file or directory" when execute "hivex-commit"
|
|
|
|
=item L<https://bugzilla.redhat.com/903620>
|
|
|
|
btrfs_subvolume_list broken due to change in subvolume list output
|
|
|
|
=item L<https://bugzilla.redhat.com/895910>
|
|
|
|
guestmount: rename() incorrectly follows symbolic links
|
|
|
|
=item L<https://bugzilla.redhat.com/895905>
|
|
|
|
guestmount: link() incorrectly returns ENOENT, when it should be EXDEV
|
|
|
|
=item L<https://bugzilla.redhat.com/895904>
|
|
|
|
checksums-out fail to compute the checksums of all regular files in directory
|
|
|
|
=item L<https://bugzilla.redhat.com/894545>
|
|
|
|
libguestfs FTBFS on Fedora 19 because of new ruby
|
|
|
|
=item L<https://bugzilla.redhat.com/890027>
|
|
|
|
virt-sysprep: Setting hostname, domain name and pretty name on Fedora 18 correctly
|
|
|
|
=item L<https://bugzilla.redhat.com/887971>
|
|
|
|
pvcreate fails if partition contains a swap signature
|
|
|
|
=item L<https://bugzilla.redhat.com/887520>
|
|
|
|
zero_free_space: open: /sysroot//ujqqq135.rd3: Cannot allocate memory
|
|
|
|
=item L<https://bugzilla.redhat.com/886915>
|
|
|
|
libguestfs with libvirt attach-method fails with odd error if default hypervisor is Xen
|
|
|
|
=item L<https://bugzilla.redhat.com/847549>
|
|
|
|
Addng a zero-length virtio-scsi disk causes: qemu-kvm: hw/scsi-bus.c:1568: scsi_req_complete: Assertion `req->status == -1' failed.
|
|
|
|
=item L<https://bugzilla.redhat.com/811649>
|
|
|
|
libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
|
|
|
|
=item L<https://bugzilla.redhat.com/664558>
|
|
|
|
RFE: Allow to set log callback in Ruby bindings
|
|
|
|
=back
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.20
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.18.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
=head3 libvirt and sVirt (SELinux confinement)
|
|
|
|
You can I<optionally> use libvirt to launch and manage the backend
|
|
appliance by:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
setting C<LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]>
|
|
|
|
=item *
|
|
|
|
using C<./configure --with-default-attach-method=libvirt[:URI]>
|
|
|
|
=item *
|
|
|
|
or calling the API method C<guestfs_set_attach_method>
|
|
|
|
=back
|
|
|
|
SVirt (SELinux confinement) is used to secure the libguestfs
|
|
appliance, if the libvirt backend is selected.
|
|
|
|
=head3 virtio-scsi, larger number of drives, hotplugging
|
|
|
|
Virtio-scsi is now used by default, if it is available. This greatly
|
|
increases the number of drives that can be added to a single
|
|
libguestfs handle (up to 255).
|
|
|
|
You can now hotplug drives (add and remove drives after launch).
|
|
|
|
Libguestfs can now handle E<gt> 25 disks, in all APIs, tools and tests.
|
|
|
|
You can label drives when adding them, then refer to them by label
|
|
(C</dev/disk/guestfs/LABEL>) instead of having to use device names
|
|
(C</dev/sda>).
|
|
|
|
=head3 new library features
|
|
|
|
POSIX Access Control Lists (ACLs) and Linux filesystem capabilities
|
|
can now be read and written through the API.
|
|
|
|
Windows Dynamic Disks are now supported. The metadata can only be
|
|
read (volumes cannot be modified or created). However the
|
|
data/filesystems in the volumes themselves can be mounted, read and
|
|
written (Matthew Booth).
|
|
|
|
Hivex (Windows Registry editing) is now directly supported through the
|
|
API, making reading or editing the Windows Registry much more
|
|
efficient.
|
|
|
|
Several libguestfs APIs were reimplemented so they no longer have any
|
|
limits on output. The reimplemented APIs are: C<guestfs_cat>,
|
|
C<guestfs_find>, C<guestfs_read_file>, C<guestfs_read_lines>,
|
|
C<guestfs_write>, C<guestfs_write_append>, C<guestfs_lstatlist>,
|
|
C<guestfs_lxattrlist>, C<guestfs_readlinklist>, C<guestfs_ls>.
|
|
|
|
=head3 virt tools
|
|
|
|
C<guestfish touch 'win:c:\new_file'> now works as expected.
|
|
|
|
C<guestfish> has a new I<--network> option, which enables the user
|
|
network in libguestfs.
|
|
|
|
You can set C<GUESTFISH_PS1> to use fancy prompts in C<guestfish>.
|
|
|
|
C<rsync>, C<ssh>, C<less> and C<lrzip> commands are now available in
|
|
virt-rescue. In addition, C<rsync> can be used through the API for
|
|
doing incremental copies.
|
|
|
|
C<virt-sparsify> uses qcow2 v3 for increased efficiency.
|
|
|
|
C<virt-sysprep> enhancements:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
generate new UUIDs for PVs and VGs
|
|
|
|
=item *
|
|
|
|
remove the local machine ID (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
remove ABRT data (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
remove puppet keys and log files (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
remove process accounting files (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
new I<--firstboot> parameter allowing firstboot scripts
|
|
for customizing guests
|
|
|
|
=item *
|
|
|
|
remove HOSTNAME field from C<ifcfg-eth*> files (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
miscellaneous improvements for SuSE (Olaf Hering)
|
|
|
|
=item *
|
|
|
|
remove man pages cache (Wanlong Gao)
|
|
|
|
=item *
|
|
|
|
remove crash data generated by kexec-tools (Wanlong Gao)
|
|
|
|
=back
|
|
|
|
C<virt-make-fs> can now create virtual floppy disks (VFDs).
|
|
|
|
C<guestmount> has a I<--pid-file> option, which can be used to avoid a
|
|
race condition between unmounting the filesystem and using the
|
|
underlying disk image.
|
|
|
|
=head3 language bindings
|
|
|
|
Full-featured Lua bindings have been added in this release
|
|
(thanks to Jerome Vuarand for many suggestions).
|
|
|
|
In Ruby, optional arguments hash is optional.
|
|
|
|
In Python, optional arguments now don't use special "sentinel"
|
|
values, so any integer can be passed as an optional argument.
|
|
|
|
Erlang bindings now come with examples and tests.
|
|
|
|
Erlang bindings now handle 64 bit integer parameters correctly.
|
|
|
|
The automated 'bindtests' now test for 64 bit cleanliness in parameter
|
|
passing. Several bugs in the bindings were found and fixed as a
|
|
result.
|
|
|
|
Better handling of blocking and non-blocking functions should make
|
|
libguestfs calls more efficient.
|
|
|
|
=head3 inspection
|
|
|
|
Windows guests with unlimited-sized Registries are now supported.
|
|
By adding the hivex API to the libguestfs API, it is much more
|
|
efficient and easier to inspect and modify the Windows Registry
|
|
in guests.
|
|
|
|
Better support for SuSE guests (Olaf Hering).
|
|
|
|
Return the architecture of installed applications (John Eckersberg).
|
|
|
|
Windows 8 is now supported.
|
|
|
|
Fedora 18 is now supported.
|
|
|
|
Inspection of ISOs/CDs/DVDs can now use the libosinfo database.
|
|
|
|
=head3 ports
|
|
|
|
Libguestfs without the appliance can be compiled on Mac OS X
|
|
(Masami HIRATA).
|
|
|
|
RHEL 5 is now explicitly supported through the 'oldlinux' branch
|
|
in upstream git.
|
|
|
|
PowerPC 64 bit is now supported. Also libguestfs has been
|
|
examined for endianness bugs and these have been fixed.
|
|
|
|
=head3 daemon
|
|
|
|
A man page for the daemon (L<guestfsd(8)>) is included.
|
|
|
|
=head2 Security
|
|
|
|
=head3 guestfish history file
|
|
|
|
The C<$HOME/.guestfish> history file is now created with 0600
|
|
permissions (instead of 0644 before) so it is no longer world
|
|
readable.
|
|
|
|
=head3 CVE-2012-2690
|
|
|
|
Old versions of both C<virt-edit> and the C<guestfish> C<edit> command
|
|
created a new file containing the changes but did not set the
|
|
permissions, etc of the new file to match the old one. The result
|
|
of this was that if you edited a security sensitive file such as
|
|
C</etc/shadow> then it would be left world-readable after the edit.
|
|
|
|
This issue was assigned CVE-2012-2690, and is fixed in libguestfs E<ge> 1.16.
|
|
|
|
For further information, see
|
|
L<https://bugzilla.redhat.com/show_bug.cgi?id=788642>
|
|
|
|
=head2 New APIs
|
|
|
|
acl-delete-def-file
|
|
acl-get-file
|
|
acl-set-file
|
|
canonical-device-name
|
|
cap-get-file
|
|
cap-set-file
|
|
create-flags
|
|
device-index
|
|
disk-has-backing-file
|
|
disk-format
|
|
disk-virtual-size
|
|
filesystem-available
|
|
fill-dir
|
|
fstrim
|
|
get-cachedir
|
|
get-libvirt-requested-credentials
|
|
get-libvirt-requested-credential-prompt
|
|
get-libvirt-requested-credential-challenge
|
|
get-libvirt-requested-credential-defresult
|
|
get-tmpdir
|
|
hivex-close
|
|
hivex-commit
|
|
hivex-node-add-child
|
|
hivex-node-children
|
|
hivex-node-delete-child
|
|
hivex-node-get-child
|
|
hivex-node-get-value
|
|
hivex-node-name
|
|
hivex-node-parent
|
|
hivex-node-set-value
|
|
hivex-node-values
|
|
hivex-open
|
|
hivex-root
|
|
hivex-value-key
|
|
hivex-value-type
|
|
hivex-value-utf8
|
|
hivex-value-value
|
|
inspect-list-applications2 (John Eckersberg)
|
|
list-ldm-volumes
|
|
list-ldm-partitions
|
|
ldmtool-create-all
|
|
ldmtool-diskgroup-disks
|
|
ldmtool-diskgroup-name
|
|
ldmtool-diskgroup-volumes
|
|
ldmtool-remove-all
|
|
ldmtool-scan
|
|
ldmtool-scan-devices
|
|
ldmtool-volume-hint
|
|
ldmtool-volume-partitions
|
|
ldmtool-volume-type
|
|
ls0
|
|
max-disks
|
|
mke2fs (Wanlong Gao)
|
|
mklost-and-found
|
|
mkswap [added label and uuid optional arguments]
|
|
mktemp (Wanlong Gao)
|
|
nr-devices
|
|
parse-environment
|
|
parse-environment-list
|
|
rm-f
|
|
rsync
|
|
rsync-in
|
|
rsync-out
|
|
set-cachedir
|
|
set-libvirt-supported-credentials
|
|
set-libvirt-requested-credential
|
|
set-tmpdir
|
|
shutdown [backported to 1.16 and 1.18]
|
|
tar-in [added compress flag]
|
|
tar-out [added compress, numericowner, excludes flags]
|
|
umount [added force and lazy optional arguments]
|
|
utsname
|
|
xfs-admin (Wanlong Gao)
|
|
xfs-growfs (Wanlong Gao)
|
|
xfs-info (Wanlong Gao)
|
|
xfs-repair (Wanlong Gao)
|
|
|
|
In the C API only:
|
|
|
|
guestfs_push_error_handler
|
|
guestfs_pop_error_handler
|
|
|
|
=head2 Internals
|
|
|
|
qemu E<ge> 1.1 is required (E<ge> 1.2 preferred).
|
|
|
|
febootstrap E<ge> 3.20 is required.
|
|
|
|
libvirt is optional, but if you want to use the new libvirt
|
|
backend for launching the appliance then libvirt E<ge> 0.10.2 would
|
|
be required.
|
|
|
|
Coverity has been run over the complete codebase, and many
|
|
issues fixed (thanks Ondrej Vasik, Kamil Dudka).
|
|
|
|
Functions which previously had no optargs can now be converted to ones
|
|
with optargs, making extending the API much more flexible. Source and
|
|
binary backwards compatibility is preserved for users of the API.
|
|
|
|
The way that libguestfs APIs and structures are represented in the
|
|
generator has changed to use an OCaml struct instead of a tuple. This
|
|
makes generator descriptions more flexible and easier to understand.
|
|
For details see commits 39d1a7db and eb185eef.
|
|
|
|
Separation of the library code into more files:
|
|
|
|
=over 4
|
|
|
|
=item *
|
|
|
|
Launch backends are now located in separate files
|
|
eg. C<src/launch-appliance.c>, C<src/launch-libvirt.c>.
|
|
|
|
=item *
|
|
|
|
Generated action code is now split over several C<src/action*.c>
|
|
files, for faster compilation.
|
|
|
|
=item *
|
|
|
|
The huge C<src/guestfs.c> file is now split into smaller logical
|
|
units.
|
|
|
|
=back
|
|
|
|
POD (documentation) is now generated using a rewritten Perl
|
|
program instead of pod2* + shell scripts.
|
|
|
|
Man pages now contain stable dates (Hilko Bengen).
|
|
|
|
Skipped tests now exit with code 77, so they appear as
|
|
C<SKIP:> in C<make check> output.
|
|
|
|
The parallel mount-local test has been rewritten in C (RHBZ#838081).
|
|
|
|
Ruby 1.8.5 is now supported (though Ruby E<ge> 1.9 is preferred).
|
|
|
|
Perl bindings can be disabled via C<./configure --disable-perl>
|
|
(Wulf C. Krueger). Note that Perl is still required in order to build
|
|
libguestfs.
|
|
|
|
Java bindings are now enabled/disabled using C<./configure --with-java>
|
|
or C<./configure --without-java> (Wulf C. Krueger).
|
|
|
|
New configure options C<./configure --enable-code-profiling> and
|
|
C<./configure --enable-code-coverage>.
|
|
|
|
Multiple fixes to use of 64 bit integers in language bindings.
|
|
|
|
The appliance backend now uses sgabios instead of vgabios
|
|
(Dan Berrange).
|
|
|
|
The C<./run> script now sets enough environment variables that you
|
|
can run OCaml, Python, Ruby, Java, GJS, Erlang, Lua programs.
|
|
|
|
C<./run --test> flag for running tests with minimal output. It also
|
|
prints the time taken to run each test.
|
|
|
|
The C<./run> script now builds up paths cumulatively, meaning that you
|
|
can use C<./run> twice, or use the libguestfs and libvirt C<./run>
|
|
scripts together.
|
|
|
|
You can extract a list of external commands required by the
|
|
daemon, making building the appliance on certain distros easier
|
|
(Olaf Hering).
|
|
|
|
The C<virt-rescue> command is now tested during C<make check>.
|
|
|
|
The generator now removes unused generated files. This helps
|
|
when going back and forth with git rebase, git bisect, etc.
|
|
|
|
Tests now run in a separate toplevel C<tmp/> directory in the source.
|
|
This allows the directory to be labelled for SELinux (sVirt), and also
|
|
makes it easier to clean up.
|
|
|
|
C<make syntax-check> now works to a greater extent, and many problems
|
|
in the main code that were found by syntax-check have been fixed
|
|
(thanks Jim Meyering).
|
|
|
|
Emacs mode (-*- foo -*-) has been added to generated files.
|
|
|
|
Progress bar output is now sent to C</dev/tty> so it doesn't end up in
|
|
the regular output of the program. virt-resize and virt-sparsify now
|
|
suppress progress bars if stdout is not a tty.
|
|
|
|
There is now a C<./configure --without-libvirt> option. This is
|
|
useful for testing that the code still compiles without libvirt.
|
|
|
|
There is now an internal mini-library for running commands. This
|
|
allows us to redirect errors from external commands into events.
|
|
|
|
Code for handling temporary directories and the appliance cache was
|
|
completely overhauled.
|
|
|
|
Code for temporarily ignoring/disabling errors now looks like this:
|
|
|
|
guestfs_push_error_handler (g, NULL, NULL);
|
|
guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */
|
|
guestfs_pop_error_handler (g);
|
|
|
|
The C<tests/extra> directory has gone. The "extra tests" are now
|
|
split into separately runnable targets, such as C<make check-valgrind>.
|
|
Use C<make help> to get a summary of the targets.
|
|
|
|
The C<lpj> option is passed to the appliance kernel when using TCG.
|
|
This should improve clock stability (thanks Marcelo Tosatti,
|
|
Olaf Hering).
|
|
|
|
=head2 Bugs fixed
|
|
|
|
=begin comment
|
|
|
|
./bugs-in-changelog.sh 1.18.0..
|
|
|
|
=end comment
|
|
|
|
=over 4
|
|
|
|
=item L<https://bugzilla.redhat.com/882417>
|
|
|
|
libguestfs tools fail with odd error messages if TMPDIR is not an absolute path
|
|
|
|
=item L<https://bugzilla.redhat.com/882299>
|
|
|
|
Windows 8 guest disks can't be mounted: "The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option."
|
|
|
|
=item L<https://bugzilla.redhat.com/881953>
|
|
|
|
libguestfs: migration to /etc/hostname, /etc/vconsole.conf, /etc/locale.conf
|
|
|
|
=item L<https://bugzilla.redhat.com/880801>
|
|
|
|
virt-df with two -a options displays incorrect disk image name
|
|
|
|
=item L<https://bugzilla.redhat.com/879416>
|
|
|
|
libguestfs-test-tool pauses when you use --help option
|
|
|
|
=item L<https://bugzilla.redhat.com/876579>
|
|
|
|
mke2fs API does not apply block device naming translation to journaldevice optarg
|
|
|
|
=item L<https://bugzilla.redhat.com/860235>
|
|
|
|
SELinux policy ought to allow qemu to write to unconfined_u:object_r:user_tmp_t:s0
|
|
|
|
=item L<https://bugzilla.redhat.com/859949>
|
|
|
|
RFE: inspect-list-applications does not return the architecture of RPM packages
|
|
|
|
=item L<https://bugzilla.redhat.com/859885>
|
|
|
|
inspect-list-applications does not list all installed RPM packages with same name and different versions
|
|
|
|
=item L<https://bugzilla.redhat.com/859876>
|
|
|
|
guestfish printed paths are not canonicalized
|
|
|
|
=item L<https://bugzilla.redhat.com/859875>
|
|
|
|
Progress bar output should go to tty(?) stderr(?)
|
|
|
|
=item L<https://bugzilla.redhat.com/858696>
|
|
|
|
virt-sysprep reports Guestfs.Error("read_lines: fopen: /etc/sysconfig/network: No such file or directory") on some Fedora guests
|
|
|
|
=item L<https://bugzilla.redhat.com/858128>
|
|
|
|
libguestfs fail to list devices added by add-drive-ro-with-if twice
|
|
|
|
=item L<https://bugzilla.redhat.com/858126>
|
|
|
|
virt-inspector fail to work with some windows guests
|
|
|
|
=item L<https://bugzilla.redhat.com/853762>
|
|
|
|
virt-sparsify should use a more robust method to detect the input format
|
|
|
|
=item L<https://bugzilla.redhat.com/853393>
|
|
|
|
libvirt doesn't label console, serial sockets
|
|
|
|
=item L<https://bugzilla.redhat.com/853159>
|
|
|
|
virt-rescue in Fedora 18 is completely broken
|
|
|
|
=item L<https://bugzilla.redhat.com/852394>
|
|
|
|
libguestfs inspection limits registries to 100 MiB
|
|
|
|
=item L<https://bugzilla.redhat.com/852194>
|
|
|
|
virt-sparsify --compress fails if output is raw format
|
|
|
|
=item L<https://bugzilla.redhat.com/847881>
|
|
|
|
RFE: allow extra arguments (like --exclude) to tar-out
|
|
|
|
=item L<https://bugzilla.redhat.com/847880>
|
|
|
|
tar-out should allow (or force) --numeric-owner
|
|
|
|
=item L<https://bugzilla.redhat.com/845522>
|
|
|
|
guestfish "copy-out / localdir" command fails with "No such file or directory"
|
|
|
|
=item L<https://bugzilla.redhat.com/845488>
|
|
|
|
Long filenames on NTFS cause tar-out, copy-out etc to fail with error "Cannot open: File name too long"
|
|
|
|
=item L<https://bugzilla.redhat.com/842307>
|
|
|
|
RFE: Need help designing and implementing selinux policy for libguestfs/sVirt
|
|
|
|
=item L<https://bugzilla.redhat.com/840572>
|
|
|
|
virt-make-fs / tar-in should support vfat properly
|
|
|
|
=item L<https://bugzilla.redhat.com/840115>
|
|
|
|
guestfish touch problem - case_sensitive_path API expects the file to exist
|
|
|
|
=item L<https://bugzilla.redhat.com/836710>
|
|
|
|
Data loss when writing to qcow2-format disk files
|
|
|
|
=item L<https://bugzilla.redhat.com/834712>
|
|
|
|
lvresize, lvresize-free fail unnecessarily if you don't change the size of the LV: "New size (nn extents) matches existing size (nn extents)"
|
|
|
|
=item L<https://bugzilla.redhat.com/824716>
|
|
|
|
compress-device-out didn't support bzip2
|
|
|
|
=item L<https://bugzilla.redhat.com/824043>
|
|
|
|
guestfish unrecognized mount option gives confusing error message
|
|
|
|
=item L<https://bugzilla.redhat.com/823887>
|
|
|
|
Filenames containing Chinese characters can't be created on vfat filesystems
|
|
|
|
=item L<https://bugzilla.redhat.com/823885>
|
|
|
|
virt-make-fs cannot create vfat filesystem containing filesystems with chinese characters
|
|
|
|
=item L<https://bugzilla.redhat.com/823883>
|
|
|
|
virt-make-fs -t fat fails with an obscure error message
|
|
|
|
=item L<https://bugzilla.redhat.com/823821>
|
|
|
|
Inspection fails when /etc/HOSTNAME is empty
|
|
|
|
=item L<https://bugzilla.redhat.com/801117>
|
|
|
|
libguestfs cannot get icon for Windows 8
|
|
|
|
=item L<https://bugzilla.redhat.com/798979>
|
|
|
|
Ubuntu install CDs from oneiric onwards are not recognized: "multi-boot operating systems are not supported"
|
|
|
|
=item L<https://bugzilla.redhat.com/782167>
|
|
|
|
libguestfs doesn't recognize Windows Dynamic disks in some configurations, eg. spanned
|
|
|
|
=item L<https://bugzilla.redhat.com/713678>
|
|
|
|
Not all febootstrap messages are redirected to log callbacks
|
|
|
|
=item L<https://bugzilla.redhat.com/627675>
|
|
|
|
libguestfs inspector code cannot handle /dev/disk/by-id/* paths
|
|
|
|
=item L<https://bugzilla.redhat.com/602997>
|
|
|
|
part-get-bootable gives wrong result with an unordered part layout
|
|
|
|
=back
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.18
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.16.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
=head3 virt tools
|
|
|
|
- virt-sysprep has been rewritten and expanded (thanks Wanlong Gao)
|
|
http://libguestfs.org/virt-sysprep.1.html
|
|
|
|
- virt-sparsify --zero is a new option that zeroes the named
|
|
partition or filesystem
|
|
|
|
- virt-sparsify can now safely sparsify Linux swap partitions
|
|
|
|
- virt-sparsify fixed so it cleans up after ^C
|
|
http://libguestfs.org/virt-sparsify.1.html
|
|
|
|
- a new tool 'libguestfs-make-fixed-appliance' is provided to build
|
|
fixed appliances that can be copied to other machines that don't
|
|
have febootstrap support
|
|
http://libguestfs.org/libguestfs-make-fixed-appliance.1.html
|
|
|
|
- virt-filesystems now displays the parents (containers) of MD
|
|
devices and volume groups
|
|
|
|
- virt-alignment-scan, run with no args, displays alignment information
|
|
for all libvirt domains
|
|
|
|
- virt-df and virt-alignment-scan will display information from all
|
|
guests even when a disk is inaccessible
|
|
|
|
- virt-rescue new --scratch option to make scratch disks
|
|
https://rwmj.wordpress.com/2012/04/26/virt-rescue-scratch/#content
|
|
|
|
- virt-make-fs can now be used to create btrfs
|
|
|
|
- virt-edit preserves permissions, UID, GID and SELinux context
|
|
when editing files
|
|
|
|
- guestfish passes the close event over stdout and remote correctly
|
|
|
|
- guestfish new '--pipe-error' option lets you detect errors in pipe
|
|
commands
|
|
|
|
- guestfish globs now expand device names
|
|
|
|
- comma and colon characters in filenames now handled correctly by
|
|
all virt tools
|
|
|
|
=head3 inspection
|
|
|
|
- added support for Fedora 17+
|
|
|
|
- added support for FreeDOS
|
|
|
|
- added support for Buildroot and Cirros
|
|
|
|
- inspection is now compatible with Windows guests that have been
|
|
sysprepped (thanks Grant Williamson).
|
|
|
|
=head3 API
|
|
|
|
- broad support for btrfs added, including adding multiple devices,
|
|
fsck, snapshots (thanks Wanlong Gao)
|
|
|
|
- the new 'mount-local' API brings FUSE support directly into the
|
|
core libguestfs API
|
|
https://rwmj.wordpress.com/2012/05/14/tip-using-mount-local-api-from-c/#content
|
|
|
|
- new man page: guestfs-performance(1), which contains performance
|
|
tuning tips
|
|
http://libguestfs.org/guestfs-performance.1.html
|
|
|
|
- new man page: guestfs-faq(1), Frequently Asked Questions
|
|
http://libguestfs.org/guestfs-faq.1.html
|
|
|
|
- ENOTSUP (from guestfs_last_errno) is now returned for APIs that
|
|
are not supported
|
|
|
|
=head3 examples
|
|
|
|
- 'copy_over' example showing how to copy between two handles
|
|
|
|
- 'display_icon' program displays the icon associated with a guest
|
|
|
|
- 'mount_local.c' example shows how to use the mount-local API
|
|
|
|
=head2 Security
|
|
|
|
(no security problems were found or fixed in this release)
|
|
|
|
=head2 New APIs
|
|
|
|
btrfs-device-add: Add devices to a btrfs filesystem.
|
|
btrfs-device-delete: Remove devices from a btrfs filesystem.
|
|
btrfs-filesystem-sync: Sync a btrfs filesystem.
|
|
btrfs-filesystem-balance: Balance a btrfs filesystem.
|
|
btrfs-fsck: Check btrfs filesystem.
|
|
btrfs-set-seeding: Enable or disable seeding.
|
|
btrfs-subvolume-create: Create a btrfs snapshot.
|
|
btrfs-subvolume-delete: Delete a btrfs snapshot.
|
|
btrfs-subvolume-list: List btrfs snapshots and subvolumes.
|
|
btrfs-subvolume-set-default: Set default btrfs subvolume.
|
|
btrfs-subvolume-snapshot: Create a writable btrfs snapshot.
|
|
get-e2attrs: List ext2 file attributes of a file.
|
|
get-e2generation: Get ext2 file generation of a file.
|
|
isoinfo, isoinfo-device: Get information from the header of ISO files.
|
|
llz: List files with SELinux information.
|
|
lvcreate-free: Create an LVM logical volume in % remaining free space.
|
|
md-stat: Return underlying devices from an MD device.
|
|
mkfs-brtfs: Make btrfs filesystem, with all tunables.
|
|
mount-local, mount-local-run, umount-local: FUSE support in the API.
|
|
ntfsclone-in, ntfsclone-out: Save, restore NTFS from backup.
|
|
ntfsfix: Fix common errors and force Windows to check NTFS.
|
|
set-e2attrs: Set or clear ext2 file attributes of a file.
|
|
set-e2generation: Set ext2 file generation of a file.
|
|
set-label: Unified interface for setting filesystem label.
|
|
vgmeta: Get volume group metadata.
|
|
wipefs: Wipe filesystem signatures from a device.
|
|
zero-free-space: Zero free space in a filesystem.
|
|
|
|
=head2 Internals
|
|
|
|
- The debian/ subdirectory has been removed. We recommend you use
|
|
the official Debian packages made by Hilko Bengen.
|
|
http://people.debian.org/~bengen/libguestfs/
|
|
http://packages.debian.org/search?keywords=libguestfs
|
|
|
|
- O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file
|
|
descriptors that the library opens.
|
|
|
|
- posix_fadvise is called when sequentially reading or writing large
|
|
files.
|
|
|
|
- close all file descriptors and remove all signal handlers in the
|
|
recovery process
|
|
|
|
- multiple gcc warnings and Coverity bugs have been fixed; many
|
|
strict-overflow bugs have also been fixed
|
|
|
|
- use ./configure --enable-valgrind-daemon to use valgrind on the
|
|
daemon; many errors have been fixed
|
|
|
|
- use ./configure --with-qemu-options to pass extra options to qemu
|
|
|
|
- the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF)
|
|
|
|
- the <guestfs.h> header file works with C++ and we have a regression
|
|
test for this
|
|
|
|
- multiple APIs which should only be called in the CONFIG state now
|
|
give an error if they are not
|
|
|
|
- .gitignore fixed to use absolute paths
|
|
|
|
- gobject bindings have been expanded, including mapping libguestfs
|
|
events to gobject signals (thanks Matt Booth)
|
|
|
|
- gobject documentation is generated properly (thanks Matt Booth)
|
|
|
|
- gobject header files now live in a subdirectory
|
|
|
|
- CompareWithString test in the generator now works
|
|
|
|
- FUInt32, FUInt64 struct field types now use the correct XDR type
|
|
|
|
- OCaml tests are now run on bytecode and native code.
|
|
|
|
- java -Xlint:all is used, and all warnings have been fixed
|
|
|
|
- bmptopng, wrestool (etc) missing or failure no longer prints
|
|
warning messages
|
|
|
|
- ruby: Use RbConfig instead of Config.
|
|
|
|
- PYTHONPATH is set by the ./run script.
|
|
|
|
- appliance building is now thread-safe.
|
|
|
|
- appliance now uses 'ip' instead of 'ifconfig' and 'netstat'
|
|
commands
|
|
|
|
- several fixes to make parallel builds work properly
|
|
|
|
- guestfish --listen now cleans up properly
|
|
|
|
- the BUSY state has been removed
|
|
|
|
- gettextize has been removed, replaced by a simple Makefile.am
|
|
|
|
- gettext support now covers virt-resize, virt-sparsify and virt-sysprep
|
|
|
|
- better support for the arm architecture
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
|
|
- 816839 data overflow error when debug progress -1
|
|
- 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
|
|
- 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
|
|
- 811650 guestfs_last_error not set when qemu fails early during launch
|
|
- 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
|
|
- 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
|
|
- 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
|
|
- 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
|
|
- 807905 mkfs blocksize option breaks when creating btrfs
|
|
- 805070 virt-filesystems should show 'parents' of LV and RAID devices
|
|
- 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
|
|
- 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
|
|
- 803533 guestfish: write error
|
|
- 802389 event handlers for 'close' event doesn't work in remote mode
|
|
- 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
|
|
- 801640 [RFE] the error reported by resize2fs-M need to be more clear
|
|
- 801298 Possible null dereference and resource leaks
|
|
- 801273 Document for set-pgroup need to be updated
|
|
- 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
|
|
- 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
|
|
- 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
|
|
- 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
|
|
- 789960 guestfsd crash when try to mount non-exist disk
|
|
- 789504 virt-df (other tools?) should not give up if a guest disk is missing
|
|
- 788641 virt-edit doesn't preserve file permissions
|
|
- 786215 libguestfs inspection does not recognize FreeDOS operating system
|
|
- 786188 libguestfs inspection does not recognize FreeDOS install CD
|
|
- 785668 aug-defnode: daemon crash
|
|
- 784647 Libguestfs uses deprecated net-tools
|
|
- 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
|
|
- 755729 Error message for resize2fs-M needs tweaking
|
|
- 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
|
|
- 679737 libguestfs: improve error message when zerofree is not available in the appliance
|
|
- 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.16
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.14.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
=head3 libguestfs
|
|
|
|
- allow XFS filesystems to be created over an existing filesystem
|
|
(Wanlong Gao)
|
|
|
|
- the (unspecified) default alignment for part-disk has been
|
|
changed to 64K for better support of high-end network-attached
|
|
storage
|
|
|
|
- new guestfs-testing(1) man page
|
|
|
|
- list-filesystems returns MD devices containing filesystems
|
|
(Matthew Booth)
|
|
|
|
- support for GCC >= 4.7 (Jim Meyering)
|
|
|
|
- check user does not add the same drive twice (Wanlong Gao).
|
|
|
|
=head3 language bindings
|
|
|
|
- Experimental GObject bindings, with support for GObject
|
|
Introspection. You can now use libguestfs from Javascript.
|
|
Please note these are not stable and final in this release.
|
|
(Matthew Booth).
|
|
|
|
- support for Ruby >= 1.9
|
|
|
|
- Ruby bindings can be disabled individually (Hilko Bengen)
|
|
|
|
- support for Python 2.6, 3.x (Richard Jones, Hilko Bengen)
|
|
|
|
- support for PHP >= 5.4
|
|
|
|
- new %guestfs_introspection hash is available in Perl bindings so
|
|
you can query which optional arguments are available
|
|
|
|
=head3 inspection
|
|
|
|
- guests with MD devices can be inspected (Matthew Booth)
|
|
|
|
- support for GNU/Hurd guests
|
|
|
|
=head3 guestfish
|
|
|
|
- libguestfs events (such as progress bar events and log messages) can
|
|
be trapped and processed by user-defined shell scripts.
|
|
|
|
- MD devices are tab-completed (Matthew Booth)
|
|
|
|
=head3 virt tools
|
|
|
|
- New tool virt-format for erasing and making blank disks
|
|
|
|
- virt-sparsify new --compress and -o options to allow for compressed
|
|
and different format output
|
|
|
|
- virt-sparsify can now detect and sparsify .vdi files
|
|
|
|
- virt-sysprep no longer requires xmlstarlet; a new virt-inspector --xpath
|
|
option has been added to replace this functionality
|
|
|
|
- virt-rescue has a new --suggest option which suggests mount commands
|
|
for the guest
|
|
|
|
- virt-resize no longer requires OCaml pcre library
|
|
|
|
=head3 libguestfs live
|
|
|
|
- daemon will no longer try to edit your live /etc/lvm configuration
|
|
|
|
- fix a potential security problem with predictable /tmp names (Steve Kemp)
|
|
|
|
=head2 Security
|
|
|
|
CVE-2011-4127, RHBZ#757071
|
|
Mitigate possible privilege escalation via SG_IO ioctl
|
|
For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db
|
|
|
|
=head2 New APIs
|
|
|
|
blkid: print all attributes of a device known to blkid (Wanlong Gao)
|
|
e2fsck: access to more features of e2fsck (Wanlong Gao)
|
|
list-md-devices: list of Linux MD devices (Matthew Booth)
|
|
md-create: create an MD device
|
|
md-detail: returns metadata for an MD device (Matthew Booth)
|
|
md-stop: stop an MD device (Wanlong Gao)
|
|
tune2fs: allow ext2/3/4 filesystems to be tuned
|
|
|
|
=head2 Internals
|
|
|
|
Git hosting has moved to http://github.com/libguestfs
|
|
|
|
The various test directories have been rearranged logically, and now
|
|
all appear under 'tests/'.
|
|
|
|
There is a 'make extra-tests' rule which runs ordinary tests and
|
|
additional tests, using valgrind to check for memory problems.
|
|
|
|
Multiple memory leaks and other problems found by valgrind and fixed.
|
|
|
|
Support for optional arguments in the generator has been rewritten
|
|
to provide more features and safety (Matthew Booth).
|
|
|
|
With gcc -fvisibility=hidden is used for internal symbols, avoiding
|
|
call indirection via the PLT.
|
|
|
|
RHashtable functions can be tested in the generator.
|
|
|
|
ADD_ARG macro in daemon allows arg lists to be constructed without
|
|
risk of stack smashing.
|
|
|
|
Fix generation of OCaml functions that have more than 10 arguments.
|
|
|
|
psmisc has been added to the appliance, allowing use of 'fuser',
|
|
'killall' and 'pstree' for debugging.
|
|
|
|
bindtests now cover RBufferOut and optional arguments (Matthew Booth).
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 769680 temporary directories created during appliance builds are not cleaned up on error
|
|
- 761460 guestfs_utimens hangs on named pipes
|
|
- 761451 guestfs_utimens cannot set times on a directory
|
|
- 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory
|
|
- 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
|
|
- 760000 libguestfs fails to compile with Ruby >= 1.9
|
|
- 755729 Error message for resize2fs-M needs tweaking
|
|
- 750889 Python code incompatible with Python v3.
|
|
- 596761 Ctrl-\ causes guestfish to abort
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.14
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.12.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
Erlang bindings.
|
|
|
|
virt-alignment-scan is a new tool to check the alignment of
|
|
partitions within virtual machines or disk images.
|
|
|
|
virt-sparsify is a new tool to make virtual machine disk images
|
|
sparse.
|
|
|
|
virt-sysprep is a new tool to make cloning guests from a template
|
|
simpler.
|
|
|
|
=head3 guestfish
|
|
|
|
- New commands setenv, unsetenv, to set environment variables.
|
|
|
|
- The input file and line number is printed in error messages.
|
|
|
|
- guestfish progress bars are now a "mini-library" used by other
|
|
tools too.
|
|
|
|
=head3 guestmount
|
|
|
|
- the --live option (for access to live VMs) now works.
|
|
|
|
=head3 virt-cat
|
|
|
|
- virt-cat can now handle Windows paths and drive letters (RHBZ#693359).
|
|
|
|
=head3 virt-filesystems
|
|
|
|
- the MBR partition type byte is displayed in --long output.
|
|
|
|
=head3 virt-make-fs
|
|
|
|
- virt-make-fs now sets the MBR partition type byte correctly,
|
|
improving compatibility with Windows (RHBZ#746295).
|
|
|
|
=head3 virt-resize
|
|
|
|
- virt-resize can now work with guests using extended and logical
|
|
partitions, in particular Ubuntu guests.
|
|
|
|
- virt-resize can now align the first partition of Windows guests,
|
|
improving performance. The new virt-resize --align-first option
|
|
controls this behaviour.
|
|
|
|
- The virt-resize --machine-readable flag makes it possible to use
|
|
virt-resize from other programs.
|
|
|
|
- Partitions are now aligned to 128 sectors (usually 64K) by
|
|
default. This improves efficiency on high-end storage. The new
|
|
virt-resize --alignment option allows the alignment to be
|
|
adjusted.
|
|
|
|
=head3 virt-win-reg
|
|
|
|
- The syntax for deleting registry keys and values is documented
|
|
in the man page (RHBZ#737944).
|
|
|
|
=head3 library
|
|
|
|
- non-printing characters are escaped correctly in debug output.
|
|
|
|
- GUESTFS_EVENT_ENTER is a new event type generated whenever a
|
|
libguestfs function is called.
|
|
|
|
- the library contains systemtap/DTrace probes.
|
|
|
|
- the library can now be compiled without hivex (RHBZ#723474).
|
|
|
|
=head3 inspection
|
|
|
|
- Improve detection of Windows disks.
|
|
|
|
- Adds support for:
|
|
ttylinux - a minimal Linux
|
|
Mageia (thanks Michael Scherer)
|
|
OpenSUSE and zypper (thanks Michael Scherer, Vincent Untz)
|
|
Ubuntu logos (thanks Michael Scherer)
|
|
NetBSD and pkgsrc (thanks Michael Scherer)
|
|
|
|
- Handle some guest types that use /dev/root in /etc/fstab.
|
|
|
|
- Fix handling of guests with > 26 disks (thanks Matthew Booth)
|
|
|
|
- Add support for guests with HP Smart Array disks (thanks Matthew Booth)
|
|
|
|
=head3 febootstrap
|
|
|
|
- FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can
|
|
be set in order to choose which kernel to use for the appliance.
|
|
|
|
=head3 misc
|
|
|
|
- ArchLinux support now working with Linux 3.0 (thanks Erik Nolte)
|
|
|
|
- libvirt disks marked <readonly/> are now added readonly when
|
|
using the virt-tools '-d' option.
|
|
|
|
=head2 Security
|
|
|
|
(no security problems were found or fixed in this release)
|
|
|
|
=head2 New APIs
|
|
|
|
compress-out, compress-device-out, copy-device-to-device,
|
|
copy-device-to-file, copy-file-to-device, copy-file-to-file,
|
|
get-smp, part-to-partnum, set-smp.
|
|
|
|
The mount API no longer implicitly adds -o sync,noatime options.
|
|
|
|
add-domain has a new 'readonlydisk' optional parameter to control
|
|
how <readonly/> disks are handled.
|
|
|
|
=head2 Internals
|
|
|
|
- Coverity was run on the source and more bugs were identified and
|
|
fixed.
|
|
|
|
- PCRE library is now required to build libguestfs.
|
|
|
|
- APIC is now the default for the appliance. You can also enable
|
|
SMP support in the appliance.
|
|
|
|
- OCaml bindings now correctly acquire GC lock during callbacks.
|
|
|
|
- Out of tree builds should now work correctly (thanks Hilko Bengen).
|
|
|
|
- ./configure --with-extra="..." can be used by packagers to set
|
|
the extra version string.
|
|
|
|
- zero, zero-device APIs: if the blocks already contain zeroes,
|
|
don't write zeroes, so that we don't unnecessarily make the
|
|
underlying storage non-sparse.
|
|
|
|
- is-zero, is-zero-device APIs: optimize these so zero detection is
|
|
faster.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 748266 libguestfs should detect versions of qemu which require -machine pc option
|
|
- 747290 libguestfs ignores <readonly/> in libvirt XML
|
|
- 747287 Misleading error message when permission denied opening a disk image
|
|
- 746295 virt-make-fs doesn't set partition ID
|
|
- 744795 guestmount --live is not usable
|
|
- 737944 virt-win-reg hyphen (delete key) syntax may be wrong, and is not documented
|
|
- 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)"
|
|
- 731744 libguestfs should escape special/non-printing characters in debug output
|
|
- 729887 appliance crashes running aug_init with flags=4
|
|
- 729075 libguestfs confuses Hp_recovery partition with Windows root filesystem
|
|
- 727178 error: luks_open: cryptsetup: error while loading shared libraries: libfipscheck.so.1: cannot open shared object file: No such file or directory
|
|
- 726739 libguestfs: error: aug_get: no matching node, trying to find hostname
|
|
- 723474 If hivex and/or pcre not installed, libguestfs fails to compile
|
|
- 693359 virt-cat and virt-edit don't handle case sensitive NTFS paths properly
|
|
- 678231 virt-inspector reports unknown filesystem UUID
|
|
- 671082 libguestfs does not work with kernel-rt
|
|
- 666578 libguestfs: unknown filesystem label SWAP-sda2
|
|
- 642821 virt-resize falls over on a disk image with a logical swap partition
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.12
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.10.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
=head3 guestfish
|
|
|
|
- guestfish strings can use escapes,
|
|
eg. ><fs> write /foo "line 1\nline 2\n"
|
|
|
|
- guestfish write-append command can be used to append to files.
|
|
|
|
- Long-running file uploads and downloads can be cancelled through the
|
|
API or by hitting ^C in guestfish.
|
|
|
|
- New guestfish "display" command for displaying graphical files
|
|
inside guests.
|
|
|
|
- In guestfish, tab completion now works on /dev/mapper devices.
|
|
|
|
=head3 virt-inspector
|
|
|
|
- Inspection API can get an icon or logo for certain guests.
|
|
|
|
- virt-inspector includes the logo and hostname for certain guests.
|
|
|
|
- virt-inspector can now get the version and release numbers for RPM
|
|
packages.
|
|
|
|
- CentOS and Scientific Linux are now treated as separate distros by
|
|
the inspection API.
|
|
|
|
=head3 virt-resize
|
|
|
|
- virt-resize can now handle btrfs.
|
|
|
|
- New virt-resize --ntfsresize-force option allows Windows VMs to be
|
|
resized multiple times.
|
|
|
|
=head3 other virt tools
|
|
|
|
- guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems,
|
|
virt-inspector, virt-ls and virt-rescue now allow you to use
|
|
"-d UUID" option to specify a guest by UUID. This makes them more
|
|
robust to use from other programs.
|
|
|
|
- virt-ls -lR option allows complex file iteration and guest analysis.
|
|
|
|
- virt-win-reg supports HKEY_USERS\<SID> and HKEY_USERS\<username>.
|
|
|
|
- virt-win-reg new option --unsafe-printable-strings allows printable
|
|
strings to be displayed in the output (unsafely: read the documentation
|
|
before using).
|
|
|
|
- virt-edit has been rewritten in C.
|
|
|
|
=head3 API and language bindings
|
|
|
|
- Java is now completely supported.
|
|
See http://libguestfs.org/guestfs-java.3.html
|
|
|
|
- JRuby is supported via the Java bindings.
|
|
|
|
- guestfs_close now appears in trace messages.
|
|
|
|
- Python binding adds explicit g.close() method.
|
|
|
|
- Python programs can now use the new event API.
|
|
|
|
- Python GIL is released during libguestfs calls, allowing multithreaded
|
|
Python programs to work properly.
|
|
|
|
- 9pfs (Plan 9 filesystems exported from the host) are now supported.
|
|
|
|
- Add -DGUESTFS_WARN_DEPRECATED=1 to warn about use of deprecated API
|
|
functions in C programs.
|
|
|
|
- New manual page guestfs-recipes(1) with recipes.
|
|
|
|
- mkfs-opts can now set inode size and sector size on created filesystems
|
|
(thanks Nikita Menkovich).
|
|
|
|
- guestfs_last_errno is now accessible from OCaml (as g#last_errno ()).
|
|
|
|
=head2 Security
|
|
|
|
- optargs_bitmask is checked even for calls that have no optional
|
|
arguments. This closes a possible exploit in the daemon from
|
|
untrusted callers.
|
|
|
|
=head2 New APIs
|
|
|
|
btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero,
|
|
is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts,
|
|
set-pgroup, write-append
|
|
|
|
=head2 Internals
|
|
|
|
- Coverity (a static analysis tool) was run across the codebase and
|
|
many fixes were made.
|
|
|
|
- Generator can handle functions that return RBufferOut and have
|
|
optional arguments.
|
|
|
|
- Compatible with Perl 5.14.
|
|
|
|
- Compatible with gcc 4.6.
|
|
|
|
- Perform safety checks on QEMU.
|
|
|
|
- C API tests can now fully test calls that have optional arguments.
|
|
|
|
- Use ./configure --enable-install-daemon to install /usr/sbin/guestfsd.
|
|
|
|
- po-docs directory now covers all man pages.
|
|
|
|
- stderr from qemu process is now captured by the event subsystem.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 602997 part-get-bootable gives wrong result with an unordered part layout
|
|
- 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
|
|
- 700369 qemu-system-x86_64 says 'KVM not supported for this target'
|
|
- 705200 guestmount attempt results in access denied
|
|
- 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts
|
|
- 717786 libguestfs python bindings should have an explicit close call
|
|
- 721275 virt-resize in F16 should support btrfs
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 Release notes for libguestfs 1.10.0
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.8.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
- libguestfs and tools can be used against live virtual machines.
|
|
See the 'guestfish --live' and 'guestmount --live' options, and (for
|
|
the low-level interface) the new APIs set-attach-method and
|
|
get-attach-method.
|
|
|
|
- New virt tools:
|
|
virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.
|
|
|
|
- libguestfs can get the drive letter mappings for Windows guests.
|
|
|
|
- virt-inspector displays drive letter mappings for Windows guests.
|
|
|
|
- Drive letters can now be used in virt-edit and guestfish programs
|
|
when operating on Windows guests.
|
|
|
|
- virt-resize now works on 32 bit hosts.
|
|
|
|
- You can now inspect the install disks and live CDs of many different
|
|
operating systems.
|
|
|
|
- guestfish <! cmd which executes a shell cmd and inlines the result.
|
|
|
|
- guestfish, guestmount, virt-rescue now all support --ro and --rw
|
|
options, and the default for this can be chosen via a configuration
|
|
file (/etc/libguestfs-tools.conf).
|
|
|
|
- New event API allows more than one callback to be registered for
|
|
each event, makes it possible to call the API from other languages,
|
|
and allows nearly all log, debug and trace messages to be rerouted
|
|
from stderr.
|
|
|
|
- Greater FHS compliance for temporary files, including using /var/tmp
|
|
for large cached files that should survive reboot (instead of /tmp).
|
|
|
|
- guestfish, guestmount -m option allows mount options to be passed
|
|
through to the underlying filesystem.
|
|
|
|
- mkfs-opts allows filesystem features to be specified.
|
|
|
|
- More intelligent handling of mountpoints, allowing mkmountpoint, mount
|
|
and umount-all commands to work together properly.
|
|
|
|
- Trace messages are prefixed with a distinct string, allowing them to
|
|
be easily 'grepped' out from debug output.
|
|
|
|
- guestfs_launch (guestfish 'run' command) now produces progress
|
|
messages (a guestfish progress bar) if it takes longer than 5
|
|
seconds to run.
|
|
|
|
- Several long-running commands where we are unable to estimate time
|
|
to completion generate "pulse mode" progress events. Progress bar
|
|
in guestfish has been updated to display these.
|
|
|
|
- Publish new example code in: C, Perl, Python, OCaml, Ruby.
|
|
|
|
- New virt-dhcp-address example program.
|
|
|
|
- The Java and Ruby bindings have been improved greatly.
|
|
|
|
- Perl includes a way to get the errno of the last error.
|
|
|
|
- Python bindings now compatible with rpyc (thanks Erez Shinan).
|
|
|
|
- Transifex is now being used to manage translations.
|
|
http://www.transifex.net/projects/p/libguestfs/
|
|
|
|
- Inspection now supports Red Hat Desktop, Slackware distributions.
|
|
|
|
- Inspection no longer fails for Windows guests that have two or
|
|
more disks.
|
|
|
|
- Inspection can now tell the difference between Windows 2008 Server
|
|
and Windows 7.
|
|
|
|
- Inspection can detect 32 bit applications installed in 64 bit
|
|
Windows, running on the WOW64 emulator.
|
|
|
|
- A series of protocol fixes has fixed the old bug RHBZ#576879
|
|
which used to cause errors during the upload command to lose
|
|
protocol synchronization.
|
|
|
|
- New logo!
|
|
|
|
=head2 Security
|
|
|
|
[none]
|
|
|
|
=head2 New APIs
|
|
|
|
first-private, get-attach-method, inspect-get-drive-mappings,
|
|
inspect-get-product-variant,
|
|
inspect-get-windows-current-control-set, next-private, resize2fs-M,
|
|
set-attach-method.
|
|
|
|
=head2 Internals
|
|
|
|
- The 'HACKING' file is obsolete. The contents have been moved into
|
|
a section of the guestfs(3) manual page.
|
|
|
|
- libguestfs-test-tool simplified. It no longer needs the static
|
|
binary or tries to construct an ISO.
|
|
|
|
- rpcgen-generated files are compiled with -fno-strict-aliasing
|
|
which should be safer (thanks Matt Booth).
|
|
|
|
- virt-resize was rewritten in OCaml.
|
|
|
|
- guestfish and other tools tested with valgrind; some memory leaks
|
|
were fixed.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 502533 Updated Polish translation of libguestfs
|
|
- 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
|
|
- 599503 document that mkmountpoint and umount-all cannot be mixed
|
|
- 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
|
|
- 664558 RFE: Allow to set log callback in Ruby bindings
|
|
- 665358 Punjabi Translation Completed (pa_IN)
|
|
- 666577 libguestfs: unknown filesystem /dev/fd0
|
|
- 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
|
|
- 668112 virt-filesystems command fails on guest with corrupt filesystem label
|
|
- 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
|
|
- 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
|
|
- 674130 Inspection code fails for Windows guest with two disks
|
|
- 682756 libguestfs trace segfaults when list-filesystems returns error
|
|
- 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
|
|
- 690819 mkfs fails creating a filesytem on a disk device when using a disk with 'ide' interface
|
|
- 691389 Extended attributes don't work over guestmount (FUSE)
|
|
- 691724 virt-inspector reports unknown filesystem /dev/vda1
|
|
- 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
|
|
- 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 Release notes for libguestfs 1.8
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.6.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
- Support and packages for Debian and Ubuntu.
|
|
|
|
- Daily builds from git repository on Debian and Ubuntu to reduce risk
|
|
of regressions.
|
|
|
|
- Port to ArchLinux 'pacman' (thanks Thomas S Hatch).
|
|
|
|
- The following tools have been rewritten in C (originally in Perl):
|
|
|
|
. virt-cat
|
|
. virt-df
|
|
. virt-inspector
|
|
. virt-ls
|
|
. virt-rescue
|
|
|
|
- Some C tools support encrypted guests automatically. This is
|
|
supported in: guestfish, guestmount, virt-cat, virt-inspector,
|
|
virt-ls.
|
|
|
|
- New tool virt-filesystems (in C) which is a replacement for
|
|
virt-list-filesystems and virt-list-partitions, and has a superset
|
|
of the functionality of those tools.
|
|
|
|
- guestfish, guestmount and the C tools use unified command line option
|
|
parsing, so they support many common options such as '-a disk.img',
|
|
'-d libvirt-domain', '-x', '-v'. The old command line option
|
|
parsing is preserved for compatibility in scripts etc.
|
|
|
|
- guestfish no longer has any dependencies on Perl
|
|
|
|
- New man pages containing programming examples: guestfs-examples(3) (C/C++),
|
|
guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).
|
|
|
|
- Trace mode prints return values from API functions.
|
|
|
|
- virt-inspector can list applications installed in Windows guests, along
|
|
with a great deal of information about those applications.
|
|
|
|
- Add support for inspecting: Linux Mint, Mandriva, FreeBSD.
|
|
|
|
- guestfish --rw option (with no effect currently) to make potentially
|
|
dangerous write access explicit.
|
|
|
|
- guestfish --listen --csh for compatibility with csh, tcsh (thanks
|
|
Eric Blake).
|
|
|
|
- The first upstream version that introduced each API function is now
|
|
documented in guestfs(3).
|
|
|
|
- guestfs_last_errno allows you to retrieve the errno from the
|
|
daemon, correctly translated to the local operating system.
|
|
|
|
- Functions can now have optional parameters.
|
|
|
|
- Progress bars and progress notifications can now happen for upload
|
|
commands.
|
|
|
|
- Appliance builder more careful about not leaving temporary files
|
|
around in /tmp.
|
|
|
|
- getfattr/setfattr commands added to virt-rescue.
|
|
|
|
- ROADMAP file covers roadmap and goals for future releases.
|
|
|
|
=head2 Security
|
|
|
|
- New SECURITY section in guestfs(3) API documentation.
|
|
|
|
- virt-inspector no longer runs any guest commands.
|
|
|
|
- Inspection code is more careful about avoiding very large files
|
|
from guests which might previously have caused a denial of service.
|
|
|
|
- FUSE calls into guestmount are now traced when using guestmount -x.
|
|
|
|
=head2 New APIs
|
|
|
|
- add-domain
|
|
- add-drive-opts
|
|
- getxattr
|
|
- inspect-get-hostname
|
|
- inspect-get-package-format
|
|
- inspect-get-package-management
|
|
- inspect-get-roots
|
|
- inspect-list-applications
|
|
- lgetxattr
|
|
- mkfs-opts
|
|
|
|
=head2 Internals
|
|
|
|
- C programs now only link precisely with the libraries that they use.
|
|
|
|
- PCRE, libmagic, hivex and libvirt libraries are now completely
|
|
optional for building.
|
|
|
|
- Multiple memory leaks and file descriptor leaks fixed.
|
|
|
|
- Add a POD wrapper to unify generation of man pages and HTML files
|
|
across all programs.
|
|
|
|
- Source includes phony images of Fedora, Debian, Ubuntu and
|
|
Windows guests.
|
|
|
|
- Ruby bindings have 'make install' rule.
|
|
|
|
- <guestfs.h> is now a single file.
|
|
|
|
- <guestfs.h> does not require XDR headers.
|
|
|
|
- ocaml xml-light library is no longer required to build (thanks
|
|
Maxim Koltsov).
|
|
|
|
- ./configure --disable-[...] for each language binding (thanks
|
|
Maxim Koltsov).
|
|
|
|
- Old ocaml-viewer program removed (use guestfs-browser instead).
|
|
|
|
- New C API test type 'InitScratchFS' makes the tests run a little
|
|
more quickly.
|
|
|
|
- Excluded packages in the appliance are now listed in a separate
|
|
file appliance/excludelist.in, and can be customized per-distro.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 663407 readlink and readlinklist returns /sysroot/ in some paths
|
|
- 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
|
|
- 657499 checksum: wrong check sum type causes umount to fail
|
|
- 655554 Whole disk paths are not made canonical by virt-inspector
|
|
- 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
|
|
- 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.6
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.4.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
- Use a new method for creating and caching the appliance. This
|
|
greatly improves the performance of libguestfs, often by a factor
|
|
of x 4 to x 5.
|
|
|
|
- Support for guest inspection (like virt-inspector) via the ordinary
|
|
API and all language bindings. 'guestfish -i' option is as a side-
|
|
effect much quicker.
|
|
|
|
- virt-inspector and core inspection API can now detect guests running:
|
|
Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
|
|
Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.
|
|
|
|
- Support for LUKS whole-disk encryption in guests.
|
|
|
|
- PHP bindings.
|
|
|
|
- Progress messages (and progress bars in guestfish and virt-resize)
|
|
for certain long-running operations.
|
|
|
|
- virt-df is now much more efficient. Use '--one-per-guest' to restore
|
|
the old per-guest isolation behaviour.
|
|
|
|
- guestfish 'copy-in' and 'copy-out' commands for copying files and
|
|
directories recursively in and out of the guest.
|
|
|
|
- guestfish 'hexedit' command for doing binary edits to devices and
|
|
files.
|
|
|
|
- Change guestfish -i syntax to allow commands to be specified on the
|
|
command line (retaining backwards compatibility).
|
|
|
|
- guestfish '-d <domain>' for adding disks from libvirt domains.
|
|
|
|
- guestfish '-N' option supports several new prepared disk image types:
|
|
lvfs : disk with LV formatted with filesystem
|
|
lv : disk with LV
|
|
bootroot : boot+root
|
|
bootrootlv : boot and root on LV
|
|
|
|
- guestfish 'more' and 'edit' commands now work with arbitrary files.
|
|
|
|
- guestfish '--echo-keys' option allows you to echo keys/passphrases
|
|
while typing them.
|
|
|
|
- guestmount now supports -a / -d / -i options, like guestfish.
|
|
|
|
- Use virtio-serial for communications with the appliance. This
|
|
also has a major performance benefit.
|
|
|
|
- virt-edit '-b' option to create a backup of edited files.
|
|
|
|
- virt-edit '-e' option for non-interactive edits to files.
|
|
|
|
- Ability to capture core dumps from the appliance (thanks Matthew Booth).
|
|
|
|
- virt-rescue now shuts down cleanly (thanks Matthew Booth).
|
|
|
|
- virt-rescue now has a --network option to enable network access.
|
|
|
|
- virt-resize can now handle guests which use GPT partition table format.
|
|
|
|
- virt-resize has better support for shrinking guests.
|
|
|
|
- virt-resize supports qcow2-format guests.
|
|
|
|
- $TMPDIR can be used to override almost all temporary directory usage.
|
|
|
|
- OCaml users can use an alternate OO-style of coding, eg. g#launch ()
|
|
|
|
- The API supports calls which take optional parameters, eg.
|
|
$g->add_drive_opts ("disk", readonly => 1);
|
|
|
|
- Trace output now escapes and shortens large strings (thanks
|
|
Matthew Booth).
|
|
|
|
- Autosync is now on by default, resulting in more reliable behaviour
|
|
when the handle is closed.
|
|
|
|
- virt-df --uuid option allows you to follow a domain across migration
|
|
and renaming.
|
|
|
|
- Translations of manual pages.
|
|
|
|
=head2 Security
|
|
|
|
- CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk
|
|
https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html
|
|
This is comprehensively fixed in this release, and the fix will be
|
|
backported to the other stable branches after more testing.
|
|
|
|
- virt-inspector no longer relies on untrusted guest code to list
|
|
applications in some guests.
|
|
|
|
=head2 New APIs
|
|
|
|
download-offset, file-architecture, findfs-label, findfs-uuid,
|
|
inspect-os, inspect-get-arch, inspect-get-distro,
|
|
inspect-get-filesystems, inspect-get-major-version,
|
|
inspect-get-minor-version, inspect-get-mountpoints,
|
|
inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
|
|
is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
|
|
luks-close, luks-format, luks-format-cipher, luks-kill-slot,
|
|
luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
|
|
lvm-set-filter, part-to-dev, pread-device, pwrite-device,
|
|
upload-offset
|
|
|
|
=head2 Internals
|
|
|
|
- Use size_t for loop iterators.
|
|
- Refactor the library code into separate files.
|
|
- Refactor the generator code into separate files.
|
|
- Generate guestfish commands.
|
|
- guestfish & guestmount options processing is unified.
|
|
- Protocol changes:
|
|
error message size increased to 64K
|
|
send errno to library
|
|
- Add 'make bindist' to make a binary distribution.
|
|
- Cleaner behaviour under valgrind.
|
|
- More testing of the guestfish command line options and libvirt
|
|
integration.
|
|
- The Perl inspection code is no longer used by any of the tools.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 646822 libguestfs trace mode should not print long binary strings
|
|
- 646821 virt-df should have --uuid option
|
|
- 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
|
|
- 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
|
|
- 642934 No way to specify disk format when adding a disk to libguestfs
|
|
- 642933 guestfs_list_filesystems should be used in all possible places
|
|
- 642932 guestmount options should match guestfish options
|
|
- 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
|
|
- 642929 C inspection code should ignore /dev/fd* in /etc/fstab
|
|
- 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
|
|
- 640961 Document that grub-install might be needed for old Linux guests after virt-resize
|
|
- 639986 virt-df --csv does not properly quote " in libvirt domain names
|
|
- 639405 Interrupted cached appliance creation leaves libguestfs unusable
|
|
- 638901 Appliance filename should not contain repository name
|
|
- 638899 /dev/mapper paths should not be returned from C inspection APIs
|
|
- 636918 Updates to Spanish translation
|
|
- 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
|
|
- 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
|
|
- 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
|
|
- 633766 virt-resize --shrink fails
|
|
- 633357 Updates to Spanish translation
|
|
- 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
|
|
- 629593 Dutch translation added
|
|
- 627556 Updates to Spanish translations of libguestfs
|
|
- 626843 Updates to Spanish translations
|
|
- 619793 [RFE] Need a way to determine if a particular block device is a logical volume
|
|
- 618556 virt-rescue return none zero value when exit
|
|
- 617200 mount operation failed and hung on some images which running in read-only mode
|
|
- 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
|
|
- 599503 document that mkmountpoint and umount-all cannot be mixed
|
|
- 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
|
|
- 502533 Updated Polish translation of libguestfs
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR LIBGUESTFS 1.4
|
|
|
|
These release notes only cover the differences from the previous
|
|
stable/dev branch split (1.2.0). For detailed changelogs, please see
|
|
the git repository, or the ChangeLog file distributed in the tarball.
|
|
|
|
=head2 New features
|
|
|
|
- guestfish lets you choose a prepared disk image, eg:
|
|
guestfish -N fs:ext4
|
|
|
|
- Add write support to guestmount (FUSE) module.
|
|
|
|
- virt-resize can now resize the content of partitions and logical
|
|
volumes in the guest, and we have better support for shrinking guests.
|
|
|
|
- Bash tab-completion script for guestfish.
|
|
|
|
- Add ZFS support to virt-rescue.
|
|
|
|
- New tool 'virt-make-fs' for creating filesystems with content.
|
|
|
|
- Allow suffixes on any guestfish number parameter, eg. "1M".
|
|
|
|
- guestfish 'man' command opens the manual page.
|
|
|
|
- guestfish supports a "heredoc" syntax for uploading files:
|
|
upload -<<_end_ /foo
|
|
content
|
|
_end_
|
|
|
|
- Some guestfish commands now print their output in octal or hex
|
|
where appropriate (RHBZ#583242).
|
|
|
|
- Allow dash prefix on guestfish command line. This ignores any
|
|
error from the second command: (RHBZ#578407)
|
|
guestfish -- cmd1 : -cmd2 : cmd3
|
|
|
|
- guestfish -h / help command now returns an error for non-existent
|
|
commands (RHBZ#597145).
|
|
|
|
- New 'supported' command in guestfish to list optional groups of
|
|
commands which are supported by the daemon / configuration.
|
|
|
|
- virt-inspector and guestfish -i now work for filenames which
|
|
contain spaces (RHBZ#507810).
|
|
|
|
- Change the protocol to use link-local addresses, to avoid
|
|
conflicting with any address that the host might be using
|
|
(RHBZ#588763).
|
|
|
|
- libguestfs now sets the correct time and timezone on filesystem
|
|
modifications.
|
|
|
|
- Sort the domains into alphabetical order in virt-df.
|
|
|
|
- Make mkfs-b command work for FAT and NTFS by mapping the blocksize
|
|
parameter to the cluster size (RHBZ#599464).
|
|
|
|
- Add version numbers to Perl modules (RHBZ#521674).
|
|
|
|
- Localization now works for all the libguestfs tools (RHBZ#559963).
|
|
|
|
- Tools now support filesystem-on-image VMs (RHBZ#590167).
|
|
|
|
- virt-list-partitions has a '-t' option to show the total size of disks.
|
|
|
|
- Include extra Augeas lenses in the supermin appliance (Matthew Booth).
|
|
|
|
- Add error and close callbacks.
|
|
|
|
- Add explicit close method in the Perl API.
|
|
|
|
- Multiple fixes for RHEL 5 compatibility.
|
|
|
|
- Multiple fixes for Debian/Ubuntu compatibility.
|
|
|
|
- Multiple revisions to improve the documentation.
|
|
|
|
=head2 Security
|
|
|
|
- Fix a potential DoS in virt-inspector and virt-v2v if a specially
|
|
crafted disk image contained a char device in place of one of the
|
|
configuration files that we read under /etc (RHBZ#582484).
|
|
|
|
=head2 New APIs
|
|
|
|
- aug-clear - clear Augeas path
|
|
- available-all-groups - return a list of all optional groups
|
|
- base64-in - upload base64-encoded data to file
|
|
- base64-out - download file and encode as base64
|
|
- checksum-device - compute checksums on the contents of a device
|
|
- checksums-out - compute checksums of multiple files in a directory
|
|
- debug-upload - upload a file to the appliance
|
|
- fallocate64 - preallocate a file in the guest filesystem
|
|
- fill-pattern - fill a file with a repeating pattern of bytes
|
|
- get-umask - get the current umask
|
|
- lvresize-free - expand an LV to fill free space
|
|
- ntfsresize - resize an NTFS filesystem
|
|
- ntfsresize-size - resize an NTFS filesystem (with size)
|
|
- part-del - delete a partition
|
|
- part-get-bootable - get the bootable flag of a partition
|
|
- part-get-mbr-id - get the MBR type byte of a partition
|
|
- part-set-mbr-id - set the MBR type byte of a partition
|
|
- pvresize-size - resize a physical volume (with size)
|
|
- pwrite - write to part of a file
|
|
- resize2fs-size - resize an ext2/3/4 filesystem (with size)
|
|
- txz-in - unpack compressed tarball to directory (RHBZ#580556)
|
|
- txz-out - pack directory into compressed tarball (RHBZ#580556)
|
|
- vfs-label - get the filesystem label
|
|
- vfs-uuid - get the filesystem UUID
|
|
- vgscan - rescan for LVM physical volumes, volume groups and logical volumes
|
|
- write - create a new file
|
|
- zero-device - write zeroes to an entire device
|
|
|
|
=head2 Internals
|
|
|
|
- Extend the generator to support testing optional features.
|
|
- Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894)
|
|
- Extend the protocol to support sending arbitrary 8 bit data buffers.
|
|
- Ship 'BUGS' file with releases. This is a summary of the bugs in
|
|
the Red Hat Bugzilla database.
|
|
- Ship 'RELEASE-NOTES' file with releases, containing release notes.
|
|
- Unify supermin appliance building into one place, in febootstrap 2.7.
|
|
- Fix the protocol code to handle the case where both ends send cancel
|
|
messages at the same time.
|
|
|
|
=head2 Bugs fixed
|
|
|
|
- 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
|
|
- 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
|
|
- 604691 OCaml bindings are not thread safe
|
|
- 603870 Updates to Spanish translation
|
|
- 602592 [RFE] expose guestfs_close in perl bindings
|
|
- 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
|
|
- 599464 mkfs-b does not support vfat/ntfs
|
|
- 598807 add_cdrom does not work in RHEL 6
|
|
- 598309 part-list and several other cmd failed on libguestfs on RHEL5
|
|
- 597145 guestfish 'help' command should indicate error in exit status with an unknown command
|
|
- 597135 guestfish write-file cmd does not check "size" parameter
|
|
- 597118 A warning should be given in the help of mke2journal-L for the length of label
|
|
- 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
|
|
- 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
|
|
- 596763 Updates to Spanish translation
|
|
- 593292 Updates to Spanish translation
|
|
- 592883 can not edit files on images mounted with guestmount cmd
|
|
- 592360 Updates to Spanish translation
|
|
- 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
|
|
- 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
|
|
- 591142 virt-inspector should give an error for unrecognized disk images
|
|
- 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
|
|
- 589039 guestfish read-file cmd will cause daemon hang when read large files
|
|
- 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
|
|
- 588763 libguestfs should use non-public or link-local addresses for appliance network
|
|
- 588733 Updates to Spanish translation
|
|
- 588651 guestfish 'strings-e' cmd does not give proper error message or hint
|
|
- 587484 lvresize can't reduce size of a volumn
|
|
- 585961 Updates to Spanish translation
|
|
- 585223 ntfsresize should support shrinking filesystems
|
|
- 585222 pvresize should support shrinking PVs
|
|
- 585221 resize2fs should support shrinking filesystems
|
|
- 584038 Updates to Spanish translation
|
|
- 583554 [FEAT] mknod-mode command is needed to set mode explicitly
|
|
- 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
|
|
- 582993 guestfish eats words when tab completing case (in)sensitive paths
|
|
- 582953 Misleading help information about lvcreate command
|
|
- 582948 mknod command doesn't make block, character or FIFO devices
|
|
- 582929 mknod doesn't check for invalid mode
|
|
- 582901 guestfish chmod/umask commands do not check invalid mode value
|
|
- 582899 guestfish:sparse is missed from command autocomplete list
|
|
- 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
|
|
- 582548 [mknod] umask shouldn't take effect when mode is set explicitly
|
|
- 582484 some guestfish sub commands can not handle special files properly
|
|
- 582252 Updates to Spanish translation
|
|
- 581501 Updates to Spanish translation
|
|
- 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]"
|
|
- 580556 request for libguestfs to support .txz tarballs
|
|
- 580246 tar-in command hangs if uploading more than available space
|
|
- 580016 aug-ls in guestfish does not take augeas variable as argument
|
|
- 579664 guestfish doesn't report error when there is not enough space for image allocation
|
|
- 579608 multiple commands in guestfish can not work for symbol links
|
|
- 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
|
|
- 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
|
|
- 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
|
|
- 559963 libguestfs Perl programs do set locale, but still localization doesn't work
|
|
- 521674 Perl modules are unversioned, but should carry version numbers
|
|
- 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
|
|
- 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
|
|
- 502533 Updated Polish translation of libguestfs
|
|
- 501894 Some String parameters should be OptString
|
|
- 501893 String parameters should be checked for != NULL
|
|
- 501889 write-file does not support strings containing ASCII NUL
|
|
- 484986 grub-install fails on virtio disk
|
|
|
|
=for comment ################################################################
|
|
|
|
=head1 RELEASE NOTES FOR HISTORICAL VERSIONS OF LIBGUESTFS
|
|
|
|
Before 2010 libguestfs did not have official release notes or a
|
|
formalized version numbering system. However these are links to
|
|
historically significant versions.
|
|
|
|
=over 4
|
|
|
|
=item 2009-11-10 (1.0.78)
|
|
|
|
L<https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html>
|
|
|
|
=item 2009-09-13 (1.0.67)
|
|
|
|
L<https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html>
|
|
|
|
=item 2009-07-23 (1.0.64)
|
|
|
|
L<https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html>
|
|
|
|
=item 2009-07-14 (1.0.59)
|
|
|
|
L<https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html>
|
|
|
|
=item 2009-04-01 (the initial announcement)
|
|
|
|
L<http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/>
|
|
|
|
=back
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<guestfs-examples(1)>,
|
|
L<guestfs-faq(1)>,
|
|
L<guestfs-performance(1)>,
|
|
L<guestfs-recipes(1)>,
|
|
L<guestfs-testing(1)>,
|
|
L<guestfs(3)>,
|
|
L<guestfish(1)>,
|
|
L<http://libguestfs.org/>
|
|
|
|
=head1 AUTHOR
|
|
|
|
Richard W.M. Jones
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright (C) 2009-2014 Red Hat Inc.
|