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

NAME

6       guestfs-release-notes - libguestfs Release Notes
7

RELEASE NOTES FOR LIBGUESTFS 1.38

9       These release notes only cover the differences from the previous
10       stable/dev branch split (1.36.0).  For detailed changelogs, please see
11       the git repository, or the ChangeLog file distributed in the tarball.
12
13   New features
14       New tools
15
16       Virt-builder-repository is a new tool allowing end users to create and
17       update virt-builder repositories (Cédric Bosdonnat).
18
19       Virt-rescue (while not a new tool) has been substantially rewritten,
20       implementing job control, -m and -i options, escape keys, etc.
21
22       New features in existing tools
23
24       Virt-builder planner has been improved so that faster and more
25       efficient build plans are chosen for complex cases, especially when
26       either the tmpdir or output is on networked storage.
27
28       New virt-builder Fedora templates (starting with Fedora 26) will have
29       plain partition layout and use GPT for partitions.
30
31       Virt-customize "firstboot" scripts in guests using systemd are now
32       installed under the "multi-user.target" instead of "default.target" so
33       they will only run when the system is booted normally.
34
35       Virt-customize now sets a random /etc/machine-id for Linux guests, if
36       one is not already set.
37
38       Virt-df now works correctly on filesystems with block sizes smaller
39       than 1K (Nikolay Ivanets).
40
41       Virt-dib has further compatibility enhancements with diskimage-builder
42       (Pino Toscano).
43
44       Virt-sysprep removes "DHCP_HOSTNAME" from ifcfg-* files.
45
46       Virt-sysprep now works on Oracle Linux (Jamie Iles).
47
48       Virt-resize now correctly copies GPT partition attributes from the
49       source to the destination (Cédric Bosdonnat).
50
51       Bash tab completion implemented or enhanced for: virt-win-reg,
52       virt-v2v-copy-to-local.
53
54       virt-v2v and virt-p2v
55
56       Virt-v2v can now read VMware VMX files directly, either from local
57       disk, NFS storage, or over SSH from an ESXi hypervisor.
58
59       Virt-v2v can now use VDDK as an input source.
60
61       Both virt-v2v and virt-p2v are now able to pass through the source CPU
62       vendor, model and topology.  However unfortunately not all source and
63       target hypervisors are able to provide or consume this data at present
64       (Tomáš Golembiovský).
65
66       Virt-v2v now supports encrypted guests (Pino Toscano).
67
68       Virt-v2v can now handle VMware snapshots.  Note that the snapshots are
69       collapsed — it does not convert the chain of snapshots into a chain of
70       snapshots.
71
72       Virt-v2v now installs Windows 10 / Windows Server 2016 virtio block
73       drivers correctly (Pavel Butsykin, Kun Wei).
74
75       Virt-v2v now installs virtio-rng, balloon and pvpanic drivers, and
76       correctly sets this in the target hypervisor metadata for hypervisors
77       which support that (Tomáš Golembiovský).
78
79       Virt-v2v now installs both legacy and modern virtio keys in the Windows
80       registry (Ladi Prosek).
81
82       Virt-p2v can now preserve (in some cases) the offset of the Real Time
83       Clock from UTC.
84
85       Virt-p2v now combines several scp commands to the conversion server
86       into a single command, improving conversion times.
87
88       Virt-v2v now detects the special Linux Xen PV-only kernels correctly
89       (Laszlo Ersek).
90
91       Virt-v2v -o glance now generates the right properties for UEFI guests
92       (Pino Toscano).
93
94       Virt-v2v -o null now avoids spooling the guest to a temporary file,
95       instead it writes to the qemu "null block device".  This makes it
96       faster and use almost no disk space.
97
98       Virt-v2v -o rhv now supports Windows 2016 Server guest type.
99
100       Virt-v2v -i libvirtxml can now open network disks over http or https.
101
102       Virt-v2v will now give a warning about host passthrough devices (Pino
103       Toscano).
104
105       The virt-v2v --machine-readable output has been enhanced so it includes
106       "vcenter-https", "xen-ssh" and "in-place" facts (Pino Toscano).
107
108       Language bindings
109
110       Fix multiple memory leaks and other data corruption problems in the
111       Java bindings (Pino Toscano).
112
113       Perl %guestfs_introspection has been dropped.
114
115       Inspection
116
117       Inspection support was rewritten in OCaml and included inside the
118       daemon.  This makes inspection considerably faster, more robust and
119       more easily extensible in future.
120
121       Better icon support for ALT Linux guests (Pino Toscano).
122
123       Better support for NeoKylin (Qingzheng Zhang).
124
125       Can handle OSes like Void Linux which do not include "VERSION_ID" in
126       /etc/os-release (Pino Toscano).
127
128       Add support for Microsoft MS-DOS (Daniel Berrangé).
129
130       Architectures and platforms
131
132       Multiple fixes for S/390 architecture.  Libguestfs and all the tools
133       should now compile and run on this architecture.
134
135       Other
136
137       The libguestfs API is now thread-safe (although not parallel).  You can
138       call APIs on the same handle from multiple threads without needing to
139       take a lock.
140
141   Security
142       There were multiple vulnerabilities in the icoutils "wrestool" program
143       which is run by libguestfs to create icons for Windows guests.  Using
144       the latest "wrestool" is recommended.
145
146   API
147       New APIs
148
149       "hivex_value_string"
150           This replaces the deprecated "hivex_value_utf8" API, but does the
151           same thing.
152
153       "part_get_gpt_attributes"
154       "part_set_gpt_attributes"
155           Read and write GPT partition attribute flags (Cédric Bosdonnat).
156
157       "part_resize"
158           Enlarge or shrink an existing partition (Nikos Skalkotos).
159
160       "yara_destroy"
161       "yara_load"
162       "yara_scan"
163           Support for the Yara malware scanning engine (Matteo Cafasso).
164
165       Other API changes
166
167       APIs implemented in the daemon can now be written in either C or OCaml.
168       Several APIs were rewritten in OCaml, although we are not planning to
169       rewrite all of them.
170
171       You will now get a clear error message if you try to add too many disks
172       to the appliance, instead of getting a peculiar failure from qemu.
173
174       Certain APIs accidentally allowed you to use "/dev/urandom" as an input
175       "device", eg. "g.copy_device_to_device("/dev/urandom", "/dev/sda")".
176       The code has been modified to forbid this usage.
177
178       All APIs for inspecting installer CDs have been deprecated.  Use
179       libosinfo for this task.
180
181   Build changes
182       A working OCaml compiler ≥ 4.01 is now required for building
183       libguestfs.  The "./configure --disable-ocaml" option remains but is
184       only used to disable the OCaml language bindings.
185
186       Add "RELEASES" file which lists release dates for each version of
187       libguestfs.  You must update this file when making a new release.
188
189       Documentation generated by "gtk-doc" has been removed.  "./configure
190       --enable-gtk-doc" now does nothing.
191
192       Libtirpc is now used for XDR functions and rpcgen.  Note that glibc has
193       deprecated and in most Linux distros dropped these, so for most people
194       this will be an extra dependency (Martin Kletzander).
195
196       Libxcrypt is now used for crypt(3).  This is required if using glibc ≥
197       2.27.
198
199       "ocaml-hivex" is now required.
200
201       Libvirt ≥ 1.2.20 is now required.
202
203       There is now a "make check-root" target for tests which need to be run
204       as root (analogous to "make check-slow").
205
206       "./configure"-time check for "__attribute__((cleanup))" now works in
207       the cross-compilation case (Yann E. Morin).
208
209       The "AUTHORS" and "p2v/about-authors.c" files are now generated from a
210       single place.
211
212       Either GnuPG v1 or v2 can be used.
213
214       "./configure --with-guestfs-path" may be used to set the default
215       "LIBGUESTFS_PATH".  In addition the way that the path is searched has
216       changed slightly so that all types of appliances are searched in each
217       path element separately (Pavel Butsykin).
218
219       "GUESTFSD_EXT_CMD" which was used to mark external commands in the
220       daemon has been removed.  It was originally used by SUSE builds, but
221       they have not been using it for a while.
222
223       The output from "./configure" is now visually grouped under headings
224       related to what it is doing, making it much easier to scan (Pino
225       Toscano).
226
227       OCaml dependencies are now generated from a single script instead of
228       multiple not-quite-the-same Makefile fragments.
229
230       "./configure --with-distro=ID" can be used to override automatic Linux
231       distro detection at build time (Pino Toscano).
232
233       qemu ≥ 2.10 is supported (but not required).  This adds mandatory
234       locking to disks and libguestfs turns this off in certain circumstances
235       when it is known to be safe (Lars Seipel, Peter Krempa, Daniel
236       Berrangé, Pino Toscano, Fam Zheng, Yongkui Guo, Václav Kadlčík).
237
238   Internals
239       Most common code has been moved to the common/ subdirectory, with OCaml
240       common code being in common/ml* directories (eg.  common/visit and
241       common/mlvisit contain the visitor library in C and OCaml
242       respectively).  The mllib directory has been deleted and replaced by
243       common/mltools.
244
245       There is now a lightweight OCaml binding for PCRE, see common/mlpcre.
246       Use of OCaml "Str" library has been mostly replaced with PCRE.
247
248       Add more calls to "udev_settle" to improve stability of partition code
249       (Dawid Zamirski).
250
251       Run "udev_settle" with --exit-if-exists option, which improves the
252       speed of this command (Pavel Butsykin).
253
254       Detect new locations of major(3), minor(3), makedev(3).
255
256       Actions can now be deprecated with no suggested replacement, for APIs
257       such as "guestfs_wait_ready" that should simply be removed from client
258       code.
259
260       Use gnulib "set_nonblocking_flag" wrapper instead of calling fcntl(2)
261       with "O_NONBLOCK" (Eric Blake).  Similarly "set_cloexec_flag".
262
263       Fix memory leak in XFS version of "guestfs_vfs_minimum_size" (Pino
264       Toscano).
265
266       Valgrind checks now run on the virt-p2v binary.
267
268       Unicode single quotes ("‘’") and now used in place of '' or `'
269       throughout the code and documentation.  Similarly for "’s" instead of
270       "'s".
271
272       The "is_zero" function has been reimplemented for greater speed (Eric
273       Blake).
274
275       In the direct backend, virtio-blk support has been removed.  Virtio-
276       scsi is now the only supported way to add disks.
277
278       Generator string parameter and return types have been rationalised so
279       there are only two types ("String", "StringList") with many subtypes
280       eg. "FileIn" becomes "String (FileIn, ...)".
281
282       The appliance disk image can now be in formats other than raw (Pavel
283       Butsykin).
284
285       Multiple improvements to how we automatically build Debian templates
286       for virt-builder (Pino Toscano).  Enable serial console for these
287       templates (Florian Klink).
288
289       In the daemon, instead of making a private copy of lvm.conf and
290       modifying it (eg for filters), start with an empty file since LVM
291       understands that to mean "all defaults" (Alasdair Kergon, Zdenek
292       Kabelac).
293
294       The "direct" backend can now run QMP queries against the QEMU binary,
295       enhancing the kinds of information we can detect.  In addition the code
296       to query QEMU has been made more robust for handling multiple parallel
297       queries of different versions of QEMU.
298
299       OCaml Augeas bindings are bundled under common/mlaugeas.  The long term
300       plan is to remove this and use system ocaml-augeas when it is more
301       widely available in distros (Pino Toscano).
302
303       All OCaml modules ("*.ml" files) are now required to have an interface
304       file ("*.mli").  If they don't export anything then the interface will
305       be empty except for comments.
306
307       Certain OCaml features in OCaml ≥ 4.01 are used throughout the code,
308       including replacing ‘{ field = field }’ with ‘{ field }’.
309
310       Virt-builder "make-template" utility now uses the "virt-install
311       --transient" option so that we should never need to clean up left over
312       domains after a crash.  It also saves kickstarts and virt-install
313       commands, which are committed to git for future reference.
314
315       /dev/shm is now created in the appliance (Nicolas Hicher).
316
317       In verbose mode on Fedora guests, virt-customize will now use "dnf
318       --verbose" enabling better debugging output.
319
320       Virt-v2v input and output classes now contain a "#precheck" method
321       which is used to perform environmental checks before conversion starts.
322
323       Virt-p2v enables miniexpect debugging.  It is written to stderr (of
324       virt-p2v).
325
326       Virt-v2v free space checks are more liberal especially for smaller
327       guests (Pino Toscano).
328
329   Bugs fixed
330       https://bugzilla.redhat.com/1540535
331           Example URI of "Convert from ESXi hypervisor over SSH to local
332           libvirt" is incorrect in v2v man page
333
334       https://bugzilla.redhat.com/1539395
335           virt-customize segfaults after upgrading to 1.37.35-3
336
337       https://bugzilla.redhat.com/1536765
338           Libguestfs Perl bindings can leak a small amount of memory on error
339
340       https://bugzilla.redhat.com/1536763
341           libguestfs Lua bindings use strerror(), which isn’t thread safe
342
343       https://bugzilla.redhat.com/1536603
344           man page makes no mention of using '--' when trying to change exit
345           on error behavior
346
347       https://bugzilla.redhat.com/1525241
348           virt-df displays zeros for filesystems with block size =512
349
350       https://bugzilla.redhat.com/1519204
351           v2v should improve the result when convert a rhel7.4 guest with no
352           available kernels found in the bootloader
353
354       https://bugzilla.redhat.com/1518517
355           virt-v2v fails with "unsupported configuration: shared access for
356           disk 'sdb' requires use of supported storage format"
357
358       https://bugzilla.redhat.com/1516094
359           Mere presence of QEMU file locking options breaks NBD (Block
360           protocol 'nbd' doesn't support the option 'locking')
361
362       https://bugzilla.redhat.com/1514756
363           ./configure --disable-ocaml breaks building common/mlpcre which
364           breaks building daemon
365
366       https://bugzilla.redhat.com/1513884
367           [RFE]Should update some vddk info in v2v man page
368
369       https://bugzilla.redhat.com/1508874
370           virt-v2v: warning: ova disk has an unknown VMware controller type
371           (20)
372
373       https://bugzilla.redhat.com/1506572
374           virt-v2v '-i ova' is not parsing the MAC address from the source
375           OVF
376
377       https://bugzilla.redhat.com/1506511
378           virt-builder fails to parse repo file if it has blank space after
379           the repository identifier
380
381       https://bugzilla.redhat.com/1503958
382           Failed to convert the rhel5 guest with kmod-xenpv installed from
383           xen server by virt-v2v
384
385       https://bugzilla.redhat.com/1503497
386           qemu-kvm fails to open qcow2 files in read-only mode with qemu-kvm
387           1.5.3
388
389       https://bugzilla.redhat.com/1500673
390           Error info shows wrong sometimes when ssh to conversion server
391           using non-root user with sudo on p2v client
392
393       https://bugzilla.redhat.com/1500537
394           /dev/shm does not exist in the appliance environment
395
396       https://bugzilla.redhat.com/1497475
397           guestfish cannot list commands from interactive mode
398
399       https://bugzilla.redhat.com/1493048
400           Unbound constructor Hivex.OPEN_UNSAFE
401
402       https://bugzilla.redhat.com/1484957
403           bump debian images to use single-partition layout
404
405       https://bugzilla.redhat.com/1482737
406           virt-resize failed to expand swap partition for RHEL5.11 guest
407           image with "parsing UUID failed"
408
409       https://bugzilla.redhat.com/1477623
410           Running file API on a special chardev may hang forever
411
412       https://bugzilla.redhat.com/1476081
413           inspect-os  report error: could not parse integer in version
414           number: V7Update2
415
416       https://bugzilla.redhat.com/1472719
417           [RFE]Add warning in process of v2v converting guest which has pci
418           passthrough device
419
420       https://bugzilla.redhat.com/1472208
421           virt-v2v fails on opensuse 13.2 guest with error: statns:
422           statns_stub: path must start with a / character
423
424       https://bugzilla.redhat.com/1469655
425           firstboot scripts are not correctly installed in Fedora 26
426
427       https://bugzilla.redhat.com/1466563
428           Libguestfs should pass copyonread flag through to the libvirt XML
429
430       https://bugzilla.redhat.com/1465665
431           1.36.x build failure: gtkdocize fails using newer autotools due to
432           missing GTK_DOC_CHECK in configure.ac
433
434       https://bugzilla.redhat.com/1460338
435           guestfs_shutdown hangs if main process sets signal handlers
436
437       https://bugzilla.redhat.com/1459979
438           guestfs_add_domain_argv fails with readonly option when vdi/vhd
439           disk is attached to libvirt domain
440
441       https://bugzilla.redhat.com/1451665
442           RFE: Virt-v2v can't convert the guest which has encrypted partition
443
444       https://bugzilla.redhat.com/1450325
445           document URI format for -a parameters of tools
446
447       https://bugzilla.redhat.com/1448739
448           RFE: Support multicore decompression for OVA files using pigz and
449           pxz
450
451       https://bugzilla.redhat.com/1447202
452           Win 2016 guest is described as Win 10 after imported to RHEVM
453
454       https://bugzilla.redhat.com/1441197
455           RFE: ability to convert VMware virtual machines via vmx
456
457       https://bugzilla.redhat.com/1438939
458           Please drop or update GnuPG (1.4.x) dependency
459
460       https://bugzilla.redhat.com/1438794
461           [RFE] Install Windows virtio-rng drivers on VMs imported
462
463       https://bugzilla.redhat.com/1433937
464           virt-inspector can't get icon info from altlinux-centaurus
465
466       https://bugzilla.redhat.com/1433577
467           policycoreutils setfiles >= 2.6 does .. nothing
468
469       https://bugzilla.redhat.com/1431579
470           Windows 8 UEFI from VMware to KVM fails to boot after conversion
471
472       https://bugzilla.redhat.com/1430680
473           There is error info about "No such file or directory" when convert
474           a guest from ova file by v2v
475
476       https://bugzilla.redhat.com/1430184
477           virt-dib should generate sha256 checksum instead of sha512
478
479       https://bugzilla.redhat.com/1429506
480           RFE: OVMF should be detected on conversion server to prevent failed
481           conversion
482
483       https://bugzilla.redhat.com/1429491
484           Should rename network name of rhv in virt-v2v man page
485
486       https://bugzilla.redhat.com/1427529
487           virt-sysprep should remove DHCP_HOSTNAME
488
489       https://bugzilla.redhat.com/1417306
490           QEMU image file locking (libguestfs)
491
492       https://bugzilla.redhat.com/1409024
493           [Debian] Missing db_dump abort inspection
494
495       https://bugzilla.redhat.com/1406906
496           Segmentation fault when reading corrupted path with Python 3
497           bindings
498
499       https://bugzilla.redhat.com/1379289
500           RFE: virt-p2v should support mnemonic operations
501
502       https://bugzilla.redhat.com/1378022
503           There is virt-v2v warning about <listen type='none'> during
504           converting a guest which has listen type='none' in XML
505
506       https://bugzilla.redhat.com/1376547
507           qemu-system-s390x: -device
508           isa-serial,chardev=charserial0,id=serial0: 'isa-serial' is not a
509           valid device model name
510
511       https://bugzilla.redhat.com/1374232
512           selinux relabel fails on RHEL 6.2 guests with "libguestfs error:
513           selinux_relabel: : Success"
514
515       https://bugzilla.redhat.com/1367738
516           Missing bash completion scripts for: virt-diff guestunmount virt-
517           copy-in virt-copy-out virt-customize virt-get-kernel
518           virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in virt-tar-out
519           virt-v2v-copy-to-local virt-win-reg
520
521       https://bugzilla.redhat.com/1362649
522           RFE: virt-sysprep does not utilize libguestfs encryption support
523
524       https://bugzilla.redhat.com/1172425
525           [RFE]virt-v2v failed to convert VMware ESX VM with snapshot
526
527       https://bugzilla.redhat.com/1171654
528           Modify a file in virt-rescue with vi on some linux terminal such as
529           yakuake, can lead to abnormal display in virt-rescue shell
530
531       https://bugzilla.redhat.com/1167623
532           Remove "If reporting bugs, run virt-v2v with debugging enabled .."
533           message when running virt-p2v
534
535       https://bugzilla.redhat.com/1152819
536           Can not end a running command in virt-rescue by press ^C or other
537           keys, the only way is to exit virt-rescue
538

RELEASE NOTES FOR LIBGUESTFS 1.36

540       These release notes only cover the differences from the previous
541       stable/dev branch split (1.34.0).  For detailed changelogs, please see
542       the git repository, or the ChangeLog file distributed in the tarball.
543
544   New features
545       New tools
546
547       Virt-tail is a new tool for following (tailing) log files within a
548       guest, similar to the regular "tail -f" command.
549
550       New features in existing tools
551
552       Virt-customize, virt-get-kernel, virt-sparsify and virt-sysprep can now
553       handle encrypted guests (Pino Toscano).
554
555       Virt-builder and virt-customize now support --append-line, which is
556       useful for adding lines to the end of configuration files.
557
558       Virt-resize can now shrink and expand swap partitions (Pino Toscano).
559
560       Virt-resize can now output to non-local disks (Pino Toscano).
561
562       Virt-sysprep has a new operation called "backup-files" for removing
563       editor backups, and "passwd-backups" for removing /etc/passwd- and
564       similar.
565
566       Virt-dib can now create checksums using the new --checksum option (Pino
567       Toscano).
568
569       Virt-dib can now create tgz files.  In addition, extended attributes
570       and SELinux labels are preserved in the output tar file (Pino Toscano).
571
572       Virt-dib can now create squashfs files (Pino Toscano).
573
574       Bash tab-completion is now available in every command line tool that is
575       shipped.
576
577       virt-v2v and virt-p2v
578
579       Conversions of Debian (6+) and Ubuntu (10.04+) guests are now supported
580       (Tomáš Golembiovský, Pino Toscano).
581
582       Conversions from SUSE Xen hypervisor have now been tested (Cédric
583       Bosdonnat).
584
585       Windows conversions may now install a program "pnp_wait.exe" which
586       prevents conflicts between the Windows Plug-and-Play Manager and our
587       own scripts that install virtio device drivers.  Enabling this requires
588       the "pnp_wait.exe" program to be built separately (Roman Kagan).
589
590       OVA files exported from AWS can now be converted (Shahar Havivi).
591
592       When converting OVA files, in some circumstances virt-v2v can now read
593       disk images directly from the OVA input file instead of needing to
594       unpack the OVA file to a temporary directory.  This can save large
595       amounts of disk space, and is quicker (Tomáš Golembiovský).
596
597       Virt-p2v can now be built on RHEL 5 (2007-era) Linux and RHEL 6, which
598       means that 32 bit and hardware with ancient fakeraid disks can be
599       virtualized.  Binaries of virt-p2v based on these old versions of RHEL
600       can be found at http://oirase.annexia.org/virt-p2v/
601
602       Virt-p2v can now use nbdkit (an NBD server) as an alternative to qemu-
603       nbd.  In addition, virt-p2v can use "socket activation" which is a more
604       robust method for opening the NBD listening socket.  Socket activation
605       works with qemu-nbd or nbdkit, but requires the most up to date
606       versions.
607
608       To prevent timeouts during P2V conversions, virt-p2v inhibits power
609       saving on the physical machine, and also sends ping packets over the
610       ssh control and data connections.
611
612       Virt-v2v no longer removes the "Processor" and "Intelppm" nodes from
613       the Windows Registry.
614
615       Xen and vCenter conversions can now be done using the libvirt backend,
616       provided libvirt ≥ 2.1.0 is used.
617
618       /dev/srX (SCSI CD-ROM) devices are ignored (Tomáš Golembiovský).
619
620       When converting SUSE Linux guests, use /etc/modprobe.conf.local if it
621       exists.
622
623       Removing VMware tools from Linux guests should now work reliably (Pino
624       Toscano).
625
626       When converting OVA files, virt-v2v now checks the disk image hash
627       contained in the manifest file, whereas previously it was ignored
628       because of a mistake in the code.  In addition, SHA256 hashes are now
629       supported (Tomáš Golembiovský).
630
631       When converting OVA files that contain compressed disk images, we now
632       trust the "ovf:compression" attribute from the metadata instead of
633       using content sniffing on the disk image (Tomáš Golembiovský).
634
635       A new flag --vdsm-compat has been added to -o vdsm mode, allowing more
636       efficient qcow2 images to be generated.
637
638       Since the RHEV product [commercially supported version of oVirt] has
639       now been renamed to RHV, "RHEV" was changed to "RHV" throughout the
640       tooling.  In particular, -o rhev becomes -o rhv, although the old name
641       can be used for backwards compatibility.
642
643       The "RHEV-APT" utility is only installed when the output hypervisor is
644       oVirt or RHV.
645
646       A problem with virt-v2v running out of memory when doing an SELinux
647       relabel of the guest filesystem should now be resolved.
648
649       Language bindings
650
651       Setting "EXTRA_JAVAC_FLAGS" before ./configure allows you to add
652       arbitrary flags to "javac" when compiling the Java bindings.
653
654       Use of any libguestfs API which returned a single struct, from Perl or
655       Java bindings, would have leaked memory.  This has now been fixed (Pino
656       Toscano).
657
658       Inspection
659
660       Inspection of Windows guests with mildly corrupted Windows Registry
661       hives should now work instead of failing with an error.  This feature
662       requires hivex ≥ 1.3.14 (Dawid Zamirski).
663
664       For Debian guests, we can now read the URL, source name, summary and
665       full description of installed packages.  For RPM-based guests we can
666       read the URL, summary and description (Pino Toscano).
667
668       Inspection of guest operating systems that use a separate /usr
669       partition should now work more reliably (Pino Toscano).
670
671       When parsing guest /etc/fstab, paths are reduced to a canonical form
672       (eg. "///usr//local//" → "/usr/local").
673
674       Inspection of btrfs subvolumes now works where the /etc/fstab options
675       field contains commas.
676
677       /dev/cdN devices in guest /etc/fstab are ignored (Pino Toscano).
678
679       Architectures and platforms
680
681       Stable releases are now tested on aarch64, ppc64 and ppc64le
682       architectures.
683
684       The RISC-V architecture is now handled as a guest, and libguestfs will
685       now at least compile on RISC-V (but probably not work as there is no
686       usable qemu at the time of writing).
687
688       Detection of S/390 and S/390x binaries and guests is now supported.
689
690       Other
691
692       ExFAT filesystems are now supported (Miles Wolbe).
693
694   Security
695       See also guestfs-security(1).
696
697       There were no CVEs reported in this development cycle.  However some
698       security-related hardening was carried out as described below.
699
700       Temporary filenames are now always generated using randomness from
701       /dev/urandom (previously the C function random(3) was used in one
702       case).
703
704       The $TERM environment variable is now validated before passing it
705       through to the appliance kernel command line.
706
707   API
708       New APIs
709
710       "guestfs_aug_transform"
711           Exposes the Augeas "aug_transform" API (Pino Toscano).
712
713       "guestfs_find_inode"
714           Find files by inode number (Matteo Cafasso).
715
716       "guestfs_inspect_get_windows_software_hive"
717       "guestfs_inspect_get_windows_system_hive"
718           Return the path to the Windows "HKLM\SYSTEM" and "HKLM\SOFTWARE"
719           hives computed during inspection.
720
721       "guestfs_mksquashfs"
722           Create a squashfs filesystem from a path (Pino Toscano).
723
724       Other API changes
725
726       "guestfs_add_domain"
727           This call now handles libvirt file-based volumes correctly, where
728           previously these would have been ignored.  Also handled are disks
729           which require libvirt authentication secrets to open (Pino
730           Toscano).
731
732       "guestfs_canonical_device_name"
733           This call will no longer incorrectly modify Linux software RAID
734           device names (like /dev/mdX).
735
736       "guestfs_file_architecture"
737           Previously the "file_architecture" API could return either of the
738           strings "i386" or "i486" for 32 bit x86 binaries.  It now only
739           returns "i386" (as documented).
740
741           This API can now return the following new values: "riscv32",
742           "riscv64", "riscv128", "s390", "s390x".
743
744       "guestfs_hivex_open"
745           This now has an optional "GUESTFS_HIVEX_OPEN_UNSAFE" flag which
746           allows certain corrupted Windows Registry hives to be opened.  This
747           feature requires hivex ≥ 1.3.14 (Dawid Zamirski).
748
749       "guestfs_list_partitions"
750           This call now returns Linux software RAID partitions.
751
752       "guestfs_part_to_dev"
753           This call now correctly handles partition names which include
754           "p<N>" (Pino Toscano).
755
756       "guestfs_set_label"
757           This call can now change the labels of swap partitions (Pino
758           Toscano).
759
760   Build changes
761       libmagic, the library part of the "file" command, is now required at
762       build time (previously optional).
763
764       GCC 7 is now supported.
765
766       "Silent rules" are now used for OCaml programs, Java bindings.  To show
767       the full command line executed, add "V=1" on the make command line
768       (Pino Toscano).
769
770       Slow testing ("make check-slow") now covers: firstboot scripts in Linux
771       guests; v2v conversion of a selection of real Linux guests; the virt-
772       customize --hostname and --timezone settings; the --root-password
773       parameter; that the serial console works in virt-builder guests.
774
775       Large generated C source files, eg. the list of commands found in
776       fish/cmds.c (and many more), have been split into smaller files to
777       speed parallel compilation.
778
779       "make maintainer-check-extra-dist" now checks that all generated files
780       are included in the tarball.
781
782       The tests no longer assume that "." is in Perl's @INC, as it is going
783       to be removed soon (Pino Toscano).
784
785       Debian hosts using UsrMerge are now supported (Pino Toscano).
786
787       Header files and C structs can now have internal documentation using
788       the special "/** ... */" comments.
789
790       "@VAR@" subtitutions in "./run" are now fully quoted.  This is
791       necessary so that (eg) "./configure PYTHON=/some/path" works robustly
792       if "/some/path" contains characters that need to be quoted (Hilko
793       Bengen).
794
795       gperf ≥ 3.1 is now supported.
796
797       Kraxel's old edk2 builds can no longer be used for UEFI support.  UEFI
798       code is now fully free software, so use the versions bundled with your
799       Linux distro instead.
800
801       Virt-p2v can now be compiled on RHEL 5 (2007-era) Linux with Gtk 2.10.
802
803   Internals
804       The generator and mllib "Common_utils" modules are now shared from the
805       same source file.
806
807       A considerable amount of common code has been moved into the common
808       directory in the source and is now compiled only once.  The mini-
809       libraries located under here are: common/edit, common/errnostring,
810       common/miniexpect, common/options, common/parallel, common/progress,
811       common/protocol, common/utils, common/visit, common/windows.
812
813       The directory containing the main library code has moved from src
814       lib.
815
816       All tests written in shell script now use a common file of utility
817       functions (tests/test-functions.sh).  There are several new utility
818       functions, mainly for skipping tests.  Also these test scripts can now
819       use autoconf-like path variables like $abs_top_srcdir.
820
821       UEFI paths are now stored in the generator (generator/uefi.ml).
822
823       The way the generator handles actions and procedure numbers was changed
824       quite substantially.  See generator/actions_*.ml and
825       generator/proc_nr.ml.
826
827       The gnulib "getprogname" module is now used everywhere when
828       needing/printing the program name (Pino Toscano).
829
830       perl/Guestfs.c is not translatable (Nikos Skalkotos).
831
832       Virt-builder templates moved from builder/website to builder/templates
833       and there is now a single unified program which can build any template.
834
835       All Windows registry utilities used by virt-customize and virt-v2v have
836       been moved to a common module called "Registry" under mllib.
837
838       All POSIX bindings have been moved to a new module called "Unix_utils"
839       under mllib.
840
841       Inspection, virt-customize and virt-v2v no longer recompute the Windows
842       "%systemroot%", "CurrentControlSet" or paths to the "HKLM\SYSTEM" and
843       "HKLM\SOFTWARE" hives in multiple places.  Instead these are all
844       computed once (during inspection) and passed to the other tools through
845       various "guestfs_inspect_get_windows_*" APIs.
846
847       "/dev/pts" is now available inside the appliance, so any tools we run
848       which require a pty will now work (Pino Toscano).
849
850       Most OCaml warnings have been fixed.
851
852       There is now a single common function for creating temporary files
853       ("guestfs_int_make_temp_path") (Matteo Cafasso).
854
855       The $TERM environment variable is now validated before passing it
856       through to the appliance kernel command line.
857
858       Useless USB and memballoon devices are no longer created in the
859       appliance (Laine Stump).
860
861       On aarch64 we now use virtio-pci for the appliance.  This is somewhat
862       faster than virtio-mmio.
863
864       Use of srandom(3) and random(3) has been minimized.  In particular,
865       temporary filenames are no longer created based on randomness returned
866       by random(3), but /dev/urandom is used instead.
867
868   Bugs fixed
869       https://bugzilla.redhat.com/1425306
870           typo error in virt-tail man page
871
872       https://bugzilla.redhat.com/1418283
873           virt-v2v: appliance runs out of memory running setfiles command
874
875       https://bugzilla.redhat.com/1417549
876           /usr/bin/x86_64-linux-gnu-ld.bfd.real:
877           ../common/progress/.libs/libprogress.a(libprogress_la-progress.o):
878           undefined reference to symbol 'UP@@NCURSES_TINFO_5.0.19991023'
879
880       https://bugzilla.redhat.com/1417444
881           *** No rule to make target '../perl/lib/Sys/Guestfs.c', needed by
882           'libguestfs.pot'
883
884       https://bugzilla.redhat.com/1416941
885           compile of 1.34.3 fails with gperf 3.1
886
887       https://bugzilla.redhat.com/1414682
888           guestfs_canonical_device_name incorrectly returns /dev/sd0 for MD
889           devices (/dev/md0)
890
891       https://bugzilla.redhat.com/1414510
892           guestfs_list_filesystems does not recognize ddf partitions
893
894       https://bugzilla.redhat.com/1409023
895           [Debian] ldmtool not installed in the appliance
896
897       https://bugzilla.redhat.com/1404287
898           qemu-kvm cannot boot RHEL 7 kernel with TCG, hangs at "Probing EDD
899           (edd=off to disable)..."
900
901       https://bugzilla.redhat.com/1404182
902           RFE: virt-resize should support a URL as the outdisk
903
904       https://bugzilla.redhat.com/1401474
905           Importing VMs from VMware is failing with error "Inspection field
906           'i_arch' was 'unknown'"
907
908       https://bugzilla.redhat.com/1401320
909           RFE: Increate virt-sysprep coverage a bit
910
911       https://bugzilla.redhat.com/1400205
912           Add --vdsm-compat=1.1 flag for VDSM
913
914       https://bugzilla.redhat.com/1398070
915           typo error in man page
916
917       https://bugzilla.redhat.com/1392798
918           secrets from libvirt domains are not read
919
920       https://bugzilla.redhat.com/1390876
921           "--machine-readable" info should be updated in virt-v2v manual page
922
923       https://bugzilla.redhat.com/1379289
924           RFE: virt-p2v should support mnemonic operations
925
926       https://bugzilla.redhat.com/1378022
927           There is virt-v2v warning about <listen type='none'> during
928           converting a guest which has listen type='none' in XML
929
930       https://bugzilla.redhat.com/1377081
931           virt-p2v manual should update the new dialog information
932
933       https://bugzilla.redhat.com/1375157
934           virt-v2v: -i ova: Permission denied when using libvirt and running
935           as root
936
937       https://bugzilla.redhat.com/1374651
938           Can't install qxl driver for display device in win7 guest after
939           converting to glance by virt-v2v
940
941       https://bugzilla.redhat.com/1374405
942           There is HTTP 404 error info when convert guest to glance by
943           virt-v2v
944
945       https://bugzilla.redhat.com/1374232
946           selinux relabel fails on RHEL 6.2 guests with "libguestfs error:
947           selinux_relabel: : Success"
948
949       https://bugzilla.redhat.com/1372668
950           Process status is not normal in windows guest after converted from
951           kvm to rhev by virt-v2v
952
953       https://bugzilla.redhat.com/1372269
954           Builder does not set hostname properly for Debian 8 (Jessie)
955
956       https://bugzilla.redhat.com/1371843
957           Improve OVA import compatibility
958
959       https://bugzilla.redhat.com/1370424
960           virt-manager coredump when vm with gluster image exists
961
962       https://bugzilla.redhat.com/1367839
963           Cannot import VMs from Xen and VMware when using RHEL7.3 host.
964
965       https://bugzilla.redhat.com/1367738
966           Missing bash completion scripts for: virt-diff guestunmount virt-
967           copy-in virt-copy-out virt-customize virt-get-kernel
968           virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in virt-tar-out
969           virt-v2v-copy-to-local virt-win-reg
970
971       https://bugzilla.redhat.com/1367615
972           OVMF file which is built for rhel7.3  can't be used for virt-v2v
973           uefi conversion
974
975       https://bugzilla.redhat.com/1366456
976           Converting rhel7 host installed on RAID:warning: fstrim: fstrim:
977           /sysroot/: the discard operation is not supported
978
979       https://bugzilla.redhat.com/1366049
980           RFE: libvirt backend: support handling disks stored as volume name
981           in a pool
982
983       https://bugzilla.redhat.com/1365005
984           Guest name is incorrect if convert guest from disk image by
985           virt-v2v
986
987       https://bugzilla.redhat.com/1362649
988           RFE: virt-sysprep does not utilize libguestfs encryption support
989
990       https://bugzilla.redhat.com/1354507
991           virt-v2v conversions from vCenter do not consistently obey the
992           proxy environment variables
993
994       https://bugzilla.redhat.com/1168144
995           warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation
996           not supported (ignored) when convert win2003 guest from xen server
997
998       https://bugzilla.redhat.com/1161019
999           RFE: Only install RHEV-APT if virt-v2v -o rhev/-o vdsm option is
1000           used
1001
1002       https://bugzilla.redhat.com/1152369
1003           virt-v2v failed to convert RHEL 6.7 UEFI guest: no
1004           grub1/grub-legacy or grub2 configuration file was found
1005
1006       https://bugzilla.redhat.com/1141631
1007           [RFE] virt-v2v should support convert a guest to a dir-pool with
1008           using pool's uuid
1009
1010       https://bugzilla.redhat.com/1134878
1011           libvirt reports json "backing file" is missing
1012
1013       https://bugzilla.redhat.com/1019388
1014           firstboot scripts (virt-builder, virt-sysprep) don't work for
1015           Debian 6 & 7 guests
1016
1017       https://bugzilla.redhat.com/737600
1018           virt-v2v windows xp - machine dies BSOD - processr,sys - workaround
1019           provided
1020

RELEASE NOTES FOR LIBGUESTFS 1.34

1022       These release notes only cover the differences from the previous
1023       stable/dev branch split (1.32.0).  For detailed changelogs, please see
1024       the git repository, or the ChangeLog file distributed in the tarball.
1025
1026   New features
1027       Multiple performance enhancements were made in libguestfs.  The "hot
1028       cache" time to launch to appliance should be under 1 second assuming
1029       recent qemu and kernel are installed.  There are also new utilities for
1030       precisely benchmarking libguestfs (utils/boot-benchmark and
1031       utils/boot-analysis in the source tree).
1032
1033       The virt-p2v tool for converting physical machines to virtual machines
1034       was substantially improved.  This includes: clearer, coloured output
1035       during conversions, support for Gtk 3, more detailed information about
1036       hardware, click to identify network interfaces, more debugging tools
1037       included with the ISO, and many bug fixes.
1038
1039       f2fs (Flash Friendly File System) is now supported (Pino Toscano).
1040
1041       New tools
1042
1043       virt-p2v-make-kiwi(1) can be used to build the virt-p2v ISO based on
1044       SLES and openSUSE, using the kiwi utility (Cédric Bosdonnat).
1045
1046       New features in existing tools
1047
1048       virt-resize will now preserve the GPT GUID.  This was required for
1049       Windows Server 2012 R2, where the bootloader would become confused if
1050       the GUID changed (Maxim Perevedentsev).
1051
1052       virt-resize will use sparse copying for (old MBR-style) extended
1053       partitions.  This makes resizing of guests that use extended partitions
1054       much faster (Maxim Perevedentsev).
1055
1056       virt-p2v kernel command line options can now be used to set defaults
1057       for GUI configuration.
1058
1059       The virt-p2v debugging options have been completely removed,
1060       simplifying the interface and documentation.  Debugging information is
1061       now captured fully automatically.
1062
1063       virt-p2v-make-disk lets you specify an --arch option, allowing you to
1064       build a 32 bit virt-p2v, for compatibility with older systems.
1065
1066       virt-p2v-make-disk no longer requires that you specify an "os-version"
1067       for the virt-p2v disk.  If omitted it will try to choose a suitable
1068       "os-version" depending on your host system.
1069
1070       virt-p2v-make-disk and virt-p2v-make-kickstart both gain a new
1071       --install option that allows you to add arbitrary extra packages to the
1072       virt-p2v ISO, for customization, additional debugging tools and so on.
1073
1074       virt-v2v will now uninstall Parallels Tools (or the equivalent
1075       Virtuozzo Tools) from Linux guests.  Also stop the Windows drivers from
1076       loading at boot.  (Roman Kagan and Pavel Butsykin)
1077
1078       virt-v2v --in-place mode has been enhanced to allow the caller to
1079       choose whether or not to install certain virtio drivers in the guest
1080       (Roman Kagan).
1081
1082       virt-v2v conversion of Windows guests was substantially rewritten and
1083       simplified (Roman Kagan).
1084
1085       virt-v2v --in-place mode now supports installing virtio-scsi drivers in
1086       guests (Roman Kagan).
1087
1088       virt-v2v can now convert SUSE guests and SUSE guests using UEFI (Cédric
1089       Bosdonnat and Jim Fehlig).
1090
1091       virt-v2v can now convert guests to Glance that have multiple disks.
1092       Previously it would fail on such guests.
1093
1094       The virt-v2v --no-trim and --vmtype options are now no-ops.  They will
1095       print a warning but are otherwise ignored.  virt-v2v can now generate
1096       the OVF vmtype correctly without user intervention.
1097
1098       virt-v2v has now been tested against SUSE Xen as a source hypervisor
1099       (Cédric Bosdonnat).
1100
1101       virt-v2v adds support for SUSE VMDP drivers (Cédric Bosdonnat).
1102
1103       virt-v2v can convert OVA files containing subfolders, as produced by
1104       SUSE Studio (Cédric Bosdonnat).
1105
1106       virt-v2v sets the OVF "<Origin>" element correctly.  oVirt has been
1107       extended to support more source hypervisors (Shahar Havivi).
1108
1109       virt-v2v now supports Windows Server 2016 (Tomáš Golembiovský).
1110
1111       The virt-builder --list option can now be used to show all templates or
1112       a single template (Pino Toscano).
1113
1114       All OCaml-based tools now use getopt_long(3) for option parsing, and
1115       --help output has been improved (Pino Toscano).
1116
1117       virt-builder and virt-customize --selinux-relabel option can now fully
1118       relabel the guest filesystem at build time, without requiring a lengthy
1119       autorelabel at first boot.
1120
1121       virt-customize --delete now accepts globs.
1122
1123       New virt-customize --uninstall option lets you uninstall packages.
1124
1125       virt-customize can now use "pvvxsvc" as an alternative to "rhsrvany"
1126       for running firstboot scripts in Windows guests (Cédric Bosdonnat).
1127
1128       virt-customize now uses the strongest hashing scheme for passwords on
1129       Arch and Void Linux (Pino Toscano).
1130
1131       virt-customize --install now works correctly on Arch (Pino Toscano).
1132
1133       virt-inspector has new options --no-applications and --no-icon to
1134       prevent the list of applications and icon from being included in the
1135       XML output (Pino Toscano).
1136
1137       New virt-sysprep --network option has been added, allowing you to
1138       actually use the --install etc options which were present in virt-
1139       sysprep before but did not usually work.  Note that the network is
1140       still disabled by default.
1141
1142       virt-sysprep "fs-uuids" operation no longer fails on btrfs guests
1143       (Maxim Perevedentsev).
1144
1145       virt-dib can output Docker images (Pino Toscano).
1146
1147       virt-dib has a new --drive-format option to allow the user to specify
1148       the format of the helper drive (Pino Toscano).
1149
1150       All OCaml virt tools now have a --colors/--colours option which enables
1151       coloured output (using ANSI escape sequences) even if the output is not
1152       a tty.  The default is to check if the output is a tty and disable
1153       coloured output if not.  This allows coloured output to be consumed by
1154       other tools.
1155
1156       Language bindings
1157
1158       PHP test coverage has been enhanced (Pino Toscano).
1159
1160       PHP 7 is now supported (Pino Toscano).
1161
1162       Python bindings are now compliant with PEP 8 (Pino Toscano).
1163
1164       A Python pip package is available in
1165       http://libguestfs.org/download/python/
1166
1167       The Ruby bindings now print the full exception if one is thrown by the
1168       event callback.  Note this is still incorrect behaviour as event
1169       callbacks should not throw exceptions, but it aids debugging.
1170
1171       All OCaml libraries and programs are now compiled with -safe-string, if
1172       supported by the OCaml compiler.
1173
1174       Inspection
1175
1176       Alpine Linux using busybox can now be inspected.  Also the APK package
1177       manager is supported in virt-customize (Pino Toscano).
1178
1179       We now handle inspection of Mageia 4 (Pino Toscano).
1180
1181       Void Linux and the Void Linux xbps package manager are fully supported
1182       (Pino Toscano).
1183
1184       Parsing of CoreOS version information has been enhanced (Pino Toscano).
1185
1186       It is now possible to get an icon from ALT Linux (Pino Toscano).
1187
1188       PLD Linux versions < 3 are now recognized (Pino Toscano).
1189
1190       Windows drive letters are now returned for guests using GPT partitions
1191       (Dawid Zamirski).
1192
1193       We can now correctly inspect Unix guests that do not have an /etc/fstab
1194       file (Pino Toscano).
1195
1196       Added another source for the Ubuntu icon which doesn't rely on GNOME
1197       having been installed in the guest.
1198
1199       We can now get an icon for Windows 7 64 bit guests.
1200
1201       Libosinfo integration was rewritten to deal with the new database
1202       format used by osinfo (Pino Toscano).
1203
1204       Documentation
1205
1206       New manual page guestfs-building(1) describes how to build libguestfs
1207       from source.
1208
1209       The man pages, tools and tool --help output is now automatically
1210       checked to ensure that all tool options are properly documented, that
1211       warning sections are included where necessary, and that every page has
1212       a description section.
1213
1214       The guestfs-testing(1) man page has been refreshed and based on a newer
1215       libguestfs.
1216
1217       Architectures and platforms
1218
1219       virt-customize now works on POWER7 and POWER8 platforms, both big
1220       endian and little endian (Xianghua Chen and Hu Zhang).
1221
1222   Security
1223       See also guestfs-security(1).
1224
1225       CVE-2015-8869
1226
1227       https://bugzilla.redhat.com/CVE-2015-8869
1228
1229       This vulnerability in OCaml might affect virt tools written in the
1230       OCaml programming language.  It affects only 64 bit platforms.  Because
1231       this bug affects code generation it is difficult to predict which
1232       precise software could be affected, and therefore our recommendation is
1233       that you recompile libguestfs using a version of the OCaml compiler
1234       where this bug has been fixed (or ask your Linux distro to do the
1235       same).
1236
1237       virt-customize ownership of .ssh, .ssh/authorized_keys
1238
1239       https://bugzilla.redhat.com/1337561
1240
1241       Previously when virt-customize injected an SSH key into a guest, when
1242       it created the ~/.ssh and ~/.ssh/authorized_keys directory and file (in
1243       case they were missing) it created them with owner and group
1244       "root.root".  This has been fixed so the correct user is used.  This is
1245       not thought to have been exploitable.
1246
1247       Windows "%systemroot%"
1248
1249       The inspection code has been made more robust against guests which
1250       might use very long "%systemroot%" (derived from the guest-controlled
1251       Windows Registry).  This is not thought to have been exploitable.
1252
1253       Virtio-rng is now available in the appliance
1254
1255       virtio-rng (the virtual Random Number Generator device) is now passed
1256       to the appliance, which should improve the quality random numbers
1257       generated for GUIDs and cryptographic key generation.
1258
1259   API
1260       New APIs
1261
1262       "btrfs_filesystem_show"
1263           List all devices where a btrfs filesystem is spanned (Pino
1264           Toscano).
1265
1266       "download_blocks"
1267       "download_inode"
1268       "filesystem_walk"
1269           Download filesystem data blocks from a given partition.  Download
1270           arbitrary files by inode number.  Retrieve all files from a
1271           filesystem including deleted files.
1272
1273           Note these require optional dependency The Sleuth Kit.  (Matteo
1274           Cafasso)
1275
1276       "get_sockdir"
1277           Read the path where temporary sockets are stored (Pino Toscano).
1278
1279       "mountable_device"
1280       "mountable_subvolume"
1281           Split a Mountable into device name and subvolume (Cédric
1282           Bosdonnat).
1283
1284       "ntfscat_i"
1285           Download NTFS file by inode number (Matteo Cafasso).
1286
1287       "part_expand_gpt"
1288           Allow in-place expanding of GPT partitions by moving the second
1289           (backup) partition table to the end of the disk (Maxim
1290           Perevedentsev).
1291
1292       "part_get_disk_guid"
1293       "part_set_disk_guid"
1294       "part_set_disk_guid_random"
1295           Get and set the GPT disk GUID, or set it to a fresh random value
1296           (Maxim Perevedentsev).
1297
1298       "selinux_relabel"
1299           SELinux-relabel part or all of the guest filesystem.
1300
1301       Other API changes
1302
1303       "guestfs_set_selinux", "guestfs_get_selinux", "guestfs_setcon",
1304       "guestfs_getcon" and "guestfs_llz" have been deprecated.  Use the new
1305       API "guestfs_selinux_relabel" to relabel filesystems.  Use
1306       "guestfs_lgetxattrs" to list the "security.selinux" extended attributes
1307       of existing files.
1308
1309       "guestfs_vfs_minimum_size" can now be used on dirty filesystems (Maxim
1310       Perevedentsev).
1311
1312       "guestfs_ll" now works on paths which contain absolute symlinks (Pino
1313       Toscano).
1314
1315       "guestfs_glob_expand" now has an optional "directoryslash" boolean
1316       parameter which controls whether trailing slashes are returned for
1317       directory names (Pino Toscano).
1318
1319       "guestfs_lvs" will no longer return LVs which have the "activationskip"
1320       flag set.  The reason is that such LVs have no "/dev/VG/LV" device node
1321       and so code which read the list of LVs and then probed the devices
1322       themselves would immediately fail.  You can use "guestfs_lvs_full" if
1323       you want to read all LVs.  (Pino Toscano).
1324
1325       "guestfs_list_disk_labels" now no longer fails if no disks with labels
1326       were added.  Instead it now returns an empty list (Pino Toscano).
1327
1328       "guestfs_is_lv" no longer fails if passed a btrfs subvolume, it returns
1329       false instead (Maxim Perevedentsev).
1330
1331   Build changes
1332       qemu ≥ 1.3.0 is required.
1333
1334       yajl (a JSON parsing library) is required to build libguestfs.
1335
1336       You can now build with GCC 6.
1337
1338       "make check-valgrind" now has substantially better coverage.
1339
1340       "make check-slow" now works again.
1341
1342       Use "make -C appliance clean-supermin-appliance" to clean the supermin
1343       appliance (it will be rebuilt on next "make").
1344
1345       There are a variety of new rules for running virt-p2v from the source
1346       directory: "make -C p2v run-virt-p2v-directly" | "run-virt-p2v-in-a-vm"
1347       | "run-virt-p2v-non-gui-conversion".  These are documented further in
1348       guestfs-hacking(1).
1349
1350       virt-p2v may be built using either Gtk 2 or Gtk 3.  To force a
1351       particular version of Gtk to be used, "./configure --with-gtk=2|3"
1352
1353       The "./configure" options are now mostly documented in
1354       guestfs-building(1).
1355
1356   Internals
1357       In git, versions are now tagged with "v1.XX.YY" (previously they were
1358       tagged with "1.XX.YY").  Using the "v-" prefix is more common in git
1359       repositories.
1360
1361       When using the libvirt backend, we now wait for qemu to exit gracefully
1362       instead of killing it after 15 seconds.  This helps when writing to
1363       slow devices (especially cheap USB keys).
1364
1365       Error messages from libvirt now include the "err->int1" field which
1366       usually contains the "errno".
1367
1368       On ARM, all DTB (device tree) code has been removed.  qemu creates the
1369       right device tree on the fly, we do not need to specify one.
1370
1371       The C API tests now use larger test disks, allowing BTRFS to be tested
1372       properly (Pino Toscano).
1373
1374       The tests should now work on a pure Python 3 host (Pino Toscano).
1375
1376       In C bindings, internal functions are now (mostly) consistently named
1377       "guestfs_int_*" whereas previously there was no consistent scheme.
1378
1379       The old "safe_malloc" etc functions are now no longer exported by the
1380       library, nor used in language bindings.
1381
1382       Setting TMPDIR to a path longer than ~ 100 characters will no longer
1383       cause libguestfs to fail silently and randomly when creating Unix
1384       domain sockets (Pino Toscano).
1385
1386       The "COMPILE_REGEXP" macro can now be used in the daemon.
1387
1388       When tracing, results containing structs are now printed in full (Pino
1389       Toscano).
1390
1391       The Perl "Sys::Guestfs" module now no longer embeds an incrementing API
1392       "version number".  This module is now always at phony version "1.0".
1393       To find the real version of libguestfs from Perl you must call
1394       "$g->version".
1395
1396       All code is compiled with "-Wstack-usage=10000" and multiple changes
1397       have been made to remove stack allocation of large strings and buffers.
1398
1399       The error(3) function is now used everywhere, replacing most previous
1400       uses of perror(3) + exit(3), and fprintf(3) + exit.
1401
1402       In C code, "/**" comments are turned into documentation which is
1403       automatically added to the guestfs-hacking(1) manual page.
1404
1405       A safe "getumask" function has been added.  For recent Linux kernels
1406       this uses the newly added "Umask" field in /proc/self/status.  For
1407       older Linux and other Unix, this uses a thread-safe technique involving
1408       fork(2) (thanks: Josh Stone, Jiri Jaburek, Eric Blake).
1409
1410       Safe posix_fadvise(2) wrappers have been added, and more hints have
1411       been added to the code which may make a minor difference to
1412       performance.
1413
1414       A safe wrapper around waitpid(2) has been added which handles "INTR"
1415       properly.
1416
1417       "podwrapper.pl" (used to generate the manual pages) now stops if any
1418       POD error is found.  A new script called "podcheck.pl" does cross-
1419       checking of --help output, tool options and manual pages.
1420
1421       All version numbers in the library (eg. versions of qemu, versions of
1422       libvirt, versions of guest operating systems) are unified in a single
1423       file src/version.c (Pino Toscano).
1424
1425       On Windows guests, virt-customize will use the vendor-neutral path
1426       "C:\Program Files\Guestfs\Firstboot" to store firstboot scripts.
1427       Previously it used "C:\Program Files\Red Hat\Firstboot".  This change
1428       should be invisible to the scripts themselves.  (Cédric Bosdonnat)
1429
1430       On Linux guests, the firstboot services generated by virt-builder
1431       --firstboot etc have been renamed to "guestfs-firstboot" (Pino
1432       Toscano).
1433
1434       There is now a common "debug" function used by all OCaml tools,
1435       replacing previous code which did "if verbose () then printf ...".
1436
1437       virt-p2v copies files it needs over to the virt-v2v conversion server
1438       using scp(1), instead of trying to send them via the shell session.
1439       This should improve reliability and should be a completely transparent
1440       to end users.
1441
1442       All code in mllib is now built into a single "mllib.cma" or
1443       "mllib.cmxa" library.  All code in customize is now built into a single
1444       "customize.cma" or "customize.cmxa" library.  This simplifies the build
1445       of the OCaml tools.
1446
1447       lvmetad(8) is now used in the appliance when available (Pino Toscano).
1448
1449       "Silent rules" are used for OCaml, Java, Erlang and POD.  Use "make
1450       V=1" to see the full command lines again (Pino Toscano).
1451
1452   Bugs fixed
1453       https://bugzilla.redhat.com/1364347
1454           virt-sparsify --in-place failed with UEFI system
1455
1456       https://bugzilla.redhat.com/1362357
1457           run_command runs exit handlers when execve fails (e.g. due to
1458           missing executable)
1459
1460       https://bugzilla.redhat.com/1362354
1461           virt-dib failed to create image using DIB_YUM_REPO_CONF
1462
1463       https://bugzilla.redhat.com/1359652
1464           Fail to inspect Windows ISO file
1465
1466       https://bugzilla.redhat.com/1358142
1467           Some info will show when convert guest to libvirt by virt-v2v with
1468           parameter --quiet
1469
1470       https://bugzilla.redhat.com/1354335
1471           overlay of disk images does not specify the format of the backing
1472           file
1473
1474       https://bugzilla.redhat.com/1352761
1475           Virt-manager can't show OS icons of win7/win8/ubuntu guest.
1476
1477       https://bugzilla.redhat.com/1350363
1478           Improve error info "remote server timeout unexpectedly waiting for
1479           password prompt" when connect to a bogus server at p2v client
1480
1481       https://bugzilla.redhat.com/1348900
1482           virt-p2v should update error prompt when 'Test connection' with a
1483           non-existing user in conversion server
1484
1485       https://bugzilla.redhat.com/1345813
1486           virt-sysprep --install always failed to install the packages
1487           specified
1488
1489       https://bugzilla.redhat.com/1345809
1490           virt-customize --truncate-recursive should give an error message
1491           when specifying a no-existing path
1492
1493       https://bugzilla.redhat.com/1343423
1494           [RFE]Should give a better description about 'curl error 22' when
1495           failed using ssh identity http url at p2v client
1496
1497       https://bugzilla.redhat.com/1343414
1498           Failed SSH to conversion server by ssh identity http url at p2v
1499           client
1500
1501       https://bugzilla.redhat.com/1343375
1502           [RFE] uninstall packages inside the VM
1503
1504       https://bugzilla.redhat.com/1342447
1505           Ifconfig command is not supported on p2v client
1506
1507       https://bugzilla.redhat.com/1342398
1508           Convert a guest from RHEL by virt-v2v but its origin info shows
1509           RHEV at rhevm
1510
1511       https://bugzilla.redhat.com/1342337
1512           Should remind a warning about disk image has a partition when using
1513           virt-p2v-make-disk
1514
1515       https://bugzilla.redhat.com/1341984
1516           virt-get-kernel prompts an 'invalid value' error when using
1517           --format auto
1518
1519       https://bugzilla.redhat.com/1341564
1520           virt-p2v spinner should be hidden when it stops spinning
1521
1522       https://bugzilla.redhat.com/1340809
1523           Testing connection timeout when input regular user of conversion
1524           server with checked "use sudo......"button
1525
1526       https://bugzilla.redhat.com/1340464
1527           [RFE] Suggestion give user a reminder for "Cancel conversion"
1528           button
1529
1530       https://bugzilla.redhat.com/1340407
1531           Multiple network ports will not be aligned at p2v client
1532
1533       https://bugzilla.redhat.com/1338083
1534           Update UEFI whitelist for official fedora packages
1535
1536       https://bugzilla.redhat.com/1337561
1537           virt-customize --ssh-inject not applying correct file permission
1538
1539       https://bugzilla.redhat.com/1335671
1540           extra quotes around UUID confuses findfs in RHEL (but not in
1541           Fedora)
1542
1543       https://bugzilla.redhat.com/1332025
1544           Inspection does not parse /etc/redhat-release containing "Derived
1545           from Red Hat Enterprise Linux 7.1 (Source)"
1546
1547       https://bugzilla.redhat.com/1327488
1548           RFE: Allow p2v kernel options without p2v.server to set defaults
1549
1550       https://bugzilla.redhat.com/1325825
1551           virt-v2v should prevent using multiple '-b' and '-n' option appears
1552           on the command line
1553
1554       https://bugzilla.redhat.com/1321620
1555           libguestfs: error: could not parse integer in version number: 7"
1556
1557       https://bugzilla.redhat.com/1321338
1558           [1.33.16] Compilation Error: Unbound value List.sort_uniq in v2v.ml
1559           line 988, characters 10-24:
1560
1561       https://bugzilla.redhat.com/1317843
1562           `virt-builder --update` fails with: "dnf -y --best upgrade: command
1563           exited with an error"
1564
1565       https://bugzilla.redhat.com/1316479
1566           v2v cmd cannot exit and "block I/O error in device 'appliance': No
1567           space left on device (28)" is printed when specified "-v -x"
1568
1569       https://bugzilla.redhat.com/1316041
1570           virt-rescue fails, but missing error message
1571
1572       https://bugzilla.redhat.com/1314244
1573           RFE: virt-p2v log window should process colour escapes and
1574           backspaces
1575
1576       https://bugzilla.redhat.com/1312254
1577           virt-v2v -o libvirt doesn't preserve or use correct <graphics
1578           type="vnc|spice">
1579
1580       https://bugzilla.redhat.com/1309706
1581           error: internal error: Invalid floppy device name: hdb
1582
1583       https://bugzilla.redhat.com/1309619
1584           Wrong warning info "use standard VGA" shows when converting windows
1585           > 7 by virt-v2v
1586
1587       https://bugzilla.redhat.com/1309580
1588           OS name of win8.1 x64 guest shows incorrect in rhevm3.6 general
1589           info
1590
1591       https://bugzilla.redhat.com/1308769
1592           virt-v2v does not copy additional disks to Glance
1593
1594       https://bugzilla.redhat.com/1306666
1595           Failure when disk contains an LV with activationskip=y
1596
1597       https://bugzilla.redhat.com/1296606
1598           virt-v2v doesn't remove VirtualBox additions correctly because of
1599           file quoting
1600
1601       https://bugzilla.redhat.com/1293527
1602           There should be a reminder to avoid user to edit a guest image by
1603           multiple tools at the same time in guestfish man page
1604
1605       https://bugzilla.redhat.com/1293276
1606           guestfish can not ll a symbolic link dir or edit a file in it
1607
1608       https://bugzilla.redhat.com/1278878
1609           guestfish should be able to handle LVM thin layouts
1610
1611       https://bugzilla.redhat.com/1264835
1612           ppc64le: virt-customize --install fail to detect the guest arch
1613
1614       https://bugzilla.redhat.com/1264332
1615           Test that trimming in virt-v2v doesn't regress
1616
1617       https://bugzilla.redhat.com/1232192
1618           Virt-v2v gives an error on a blank disk: part_get_parttype: unknown
1619           signature, of the output: BYT;
1620
1621       https://bugzilla.redhat.com/1229386
1622           virt-p2v in non-GUI mode doesn't show any conversion progress or
1623           status
1624
1625       https://bugzilla.redhat.com/1227599
1626           P2V invalid password prints unexpected end of file waiting for
1627           command prompt.
1628
1629       https://bugzilla.redhat.com/1224795
1630           On Ubuntu, virt-builder --install and --update cannot use the
1631           network
1632
1633       https://bugzilla.redhat.com/1213324
1634           virt-v2v: warning: unknown guest operating system: windows windows
1635           6.3 when converting win8,win8.1,win2012,win2012R2,win10 to rhev
1636
1637       https://bugzilla.redhat.com/1203898
1638           Support inspecting docker images without /etc/fstab
1639
1640       https://bugzilla.redhat.com/1186935
1641           libguestfs cannot inspect recent Fedora / RHEL >= 7 when /usr is a
1642           separate partition
1643
1644       https://bugzilla.redhat.com/1167916
1645           P2V: invalid conversion server prints unexpected end of file
1646           waiting for password prompt.
1647
1648       https://bugzilla.redhat.com/1152825
1649           virt-rescue --selinux can not work well, when enable selinux in the
1650           command line the value of 'getenforce' is still Disabled in virt-
1651           rescue appliance
1652
1653       https://bugzilla.redhat.com/1150298
1654           ARM 32 bit on Ubuntu: warning: cast to pointer from integer of
1655           different size [-Wint-to-pointer-cast]
1656
1657       https://bugzilla.redhat.com/1089100
1658           NetworkManager avc unlink denied for resolv.conf after using
1659           --selinux-relabel
1660
1661       https://bugzilla.redhat.com/983969
1662           RFE: virt-sysprep should be SELinux-aware
1663
1664       https://bugzilla.redhat.com/855058
1665           RFE: virt-p2v: display more information about storage devices
1666
1667       https://bugzilla.redhat.com/554829
1668           SELinux handling could be done better.
1669

RELEASE NOTES FOR LIBGUESTFS 1.32

1671       These release notes only cover the differences from the previous
1672       stable/dev branch split (1.30.0).  For detailed changelogs, please see
1673       the git repository, or the ChangeLog file distributed in the tarball.
1674
1675   New features
1676       New tools
1677
1678       The new virt-v2v-copy-to-local(1) tool is an ancillary tool for
1679       virt-v2v(1) allowing you to convert source guests that virt-v2v is
1680       unable to access directly.
1681
1682       New features in existing tools
1683
1684       Virt-customize knows how to write a random seed to CirrOS (Pino
1685       Toscano).
1686
1687       On Fedora, virt-customize runs dnf(8) with the --best flag, ensuring it
1688       always updates to the latest available packages.
1689
1690       Virt-builder now provides 32 bit Fedora templates.
1691
1692       Virt-builder and virt-customize --install option now works on 32 bit
1693       Fedora guests.  Previously it would try to install 64 bit packages (Jan
1694       Sedlák).
1695
1696       Virt-builder can now fetch cloud images using Simple Streams v1.0
1697       metadata (Pino Toscano).
1698
1699       Virt-builder can now fetch openSUSE cloud images out of the box (Cédric
1700       Bosdonnat).
1701
1702       Virt-customize will now use stronger (SHA-512) encrypted passwords by
1703       default on openSUSE ≥ 11 (Pino Toscano).
1704
1705       Virt-builder will now correctly handle output filenames containing
1706       colon characters (":"), and will create temporary files in the
1707       libguestfs cache directory instead of defaulting to /tmp (Pino
1708       Toscano).
1709
1710       Virt-resize has a new --unknown-filesystems option to control what to
1711       do when asked to resize a filesystem that libguestfs doesn't know how
1712       to resize.
1713
1714       Virt-v2v now has an --in-place flag/mode, allowing in-place conversion
1715       of guests (Roman Kagan).
1716
1717       Virt-v2v has a --compressed option for creating compressed qcow2 output
1718       files.
1719
1720       Virt-v2v can now correctly get the VMware datacenter path (dcPath) from
1721       libvirt, instead of having to calculate it using an algorithm that
1722       occasionally got the wrong answer (Matthias Bolte, Tingting Zheng).
1723
1724       Virt-v2v now processes RAM sizes correctly for 64 bit guests when
1725       running on a 32 bit host.
1726
1727       Language bindings
1728
1729       In Perl and Python programs, the "get_program_name" API now returns the
1730       true program name, instead of the incorrect string "perl" or "python".
1731
1732       The Python bindings can now be compiled against a different version of
1733       libguestfs, allowing the pip module to be built against any version of
1734       libguestfs (instead of requiring the pip module and libguestfs to have
1735       exactly the same version).
1736
1737       The quality of the Ruby rdoc (documentation) has been improved (Pino
1738       Toscano).
1739
1740       Perl scripts no longer hard-code the location of perl in the shebang
1741       line, but use env(1) to locate it instead (Pino Toscano).
1742
1743       In OCaml programs, the guestfs handle was incorrectly made into a
1744       global root, meaning it could never be garbage collected.  If you
1745       didn't call the "close" function explicitly, the handle would not be
1746       closed until the whole program exited.  This has now been fixed so
1747       handles will be garbage collected in the usual way.  This changes the
1748       API of the OCaml function "Guestfs.event_callback".  Note that non-C
1749       language bindings are not covered by the libguestfs API/ABI guarantee,
1750       although we try hard not to change them, but in this case it was
1751       essential in order to fix this very serious bug.
1752
1753       Inspection
1754
1755       Alpine Linux and the APK package manager, ALT Linux, Frugalware, and
1756       PLD Linux are now recognized (Pino Toscano).
1757
1758       If it exists, /etc/os-release will be preferred for inspecting Linux
1759       guests (Pino Toscano).
1760
1761       The correct kernel version is returned for Windows guests ≥ 10.
1762
1763       Documentation
1764
1765       The large guestfs(3) man page has been split into several separate man
1766       pages: guestfs-hacking(1) guestfs-internals(1) guestfs-security(1).  In
1767       the source tree, a new docs directory contains this documentation.
1768
1769       Architectures and platforms
1770
1771       Libguestfs now supports ARM 64 bit platforms with vGICv3.
1772
1773   Security
1774       See also guestfs-security(1).
1775
1776       "CVE-2015-5745"
1777           https://bugzilla.redhat.com/1251157
1778
1779           This is not a vulnerability in libguestfs, but because we always
1780           give a virtio-serial port to each guest (since that is how guest-
1781           host communication happens), an escalation from the appliance to
1782           the host qemu process is possible.  This could affect you if:
1783
1784           ·   your libguestfs program runs untrusted programs out of the
1785               guest (using "guestfs_sh" etc), or
1786
1787           ·   another exploit was found in (for example) kernel filesystem
1788               code that allowed a malformed filesystem to take over the
1789               appliance.
1790
1791           If you use sVirt to confine qemu, that would thwart some attacks.
1792
1793       Virt-customize permissions on .ssh, .ssh/authorized_keys
1794           https://bugzilla.redhat.com/1260778.
1795
1796           Previously when asked to inject an SSH key into a guest, virt-
1797           customize (hence virt-builder too) would create the .ssh directory
1798           and .ssh/authorized_keys file with too broad permissions, allowing
1799           other users to read.  They are now created as 0700 and 0600
1800           respectively, which is the same as the ssh-copy-id(1) utility.
1801
1802   API
1803       New APIs
1804
1805       "guestfs_get_identifier"
1806       "guestfs_set_identifier"
1807           Get/set a per-handle identifier.  The main effect of this is to
1808           change trace output from:
1809
1810            libguestfs: trace: foo
1811
1812           to:
1813
1814            libguestfs: trace: ID: foo
1815
1816           making it easier to follow traces in multi-threaded programs, or
1817           where a program uses multiple handles (especially virt-v2v).
1818
1819       "guestfs_vfs_minimum_size"
1820           Return the minimum size of a filesystem (when shrunk).  This
1821           supports ext2/3/4, XFS and btrfs, and can support other filesystem
1822           types in future (Maxim Perevedentsev).
1823
1824       Other API changes
1825
1826       "guestfs_disk_create": add "preallocation" = "off"/"metadata"/"full".
1827           For raw, this allows "off" as a synonym for "sparse" (making it
1828           consistent with qcow2).  For qcow2, this allows "sparse" as a
1829           synonym for "off".
1830
1831           It also adds "full", which corresponds to fully allocated, but uses
1832           posix_fallocate(3) for efficiency.
1833
1834       "guestfs_tar_in": new "xattrs", "selinux", "acl" parameters.
1835       "guestfs_tar_out": new "xattrs", "selinux", "acl" parameters.
1836           These extra parameters control whether extended attributes, SELinux
1837           contexts and/or POSIX ACLs are restored from / saved to tarballs.
1838
1839       "guestfs_add_drive"
1840           The existing "username" and "secret" parameters can be used to
1841           supply authentication for iSCSI (Pino Toscano).
1842
1843   Build changes
1844       The "./configure --enable-valgrind-daemon" option has been removed.
1845
1846       You can no longer build libguestfs on RHEL 5-era (c.2007) machines.
1847       See the "oldlinux" branch if you need (limited) RHEL 5 support.
1848
1849       Virt-p2v can now be built on RHEL 6-era (c.2010) Linux distros.
1850
1851       OCaml ≥ 3.11 (released in 2008) is now required to build from git.
1852
1853       Building the Perl bindings now requires "Module::Build" (instead of
1854       "ExtUtils::MakeMaker").
1855
1856       Builds should be faster (especially when incrementally rebuilding),
1857       because work was done to reduce build times.
1858
1859       Both OCaml and the OCaml findlib module are required if you need to run
1860       the generator at build time.  Previously the build would have failed if
1861       findlib was not installed.
1862
1863       "make check" tests now run in parallel (within each test directory).
1864
1865       "make install" no longer installs OCaml bindtests.* files incorrectly.
1866
1867       "make install" can now be run twice.  Previously it would fail on the
1868       second run.
1869
1870       "make clean" should now remove nearly every file that "make" creates.
1871
1872       A new "make installcheck" rule has been added, allowing the installed
1873       copy of libguestfs to be tested.
1874
1875   Internals
1876       Some effort was put into minimizing the size of the appliance, which
1877       reduces temporary disk space and time needed by libguestfs handles.
1878
1879       The appliance now passes the NIC name to dhcpd, fixing hangs when
1880       running the appliance on some distros (Cédric Bosdonnat).
1881
1882       OCaml "Guestfs.Errno" is now generated (Pino Toscano).
1883
1884       In OCaml tools, common code now handles --debug-gc, --verbose and other
1885       common options (Roman Kagan, Pino Toscano).
1886
1887       The virt-v2v test harness allows us to boot the test guests at fixed
1888       dates in the past, ensuring that Windows reactivation doesn't kick in.
1889
1890       There is a new internal API for reading/writing a subprocess via a pipe
1891       from library code.
1892
1893       Used "deheader" program to remove unused "#include" directives.
1894
1895       In OCaml tools, the "Char" and "String" modules now implicitly
1896       reference the "Common_utils.Char" and "Common_utils.String" modules
1897       (instead of the ones from stdlib).  The "Common_utils" modules contain
1898       a number of extra char/string utility functions, and also hide some
1899       unsafe functions in stdlib.
1900
1901       Many more virt-v2v tests will now be run even if you don't have
1902       rhsrvany and virtio-win installed (Roman Kagan).
1903
1904       The huge configure.ac file has been split into several smaller files
1905       called m4/guestfs_*.m4.
1906
1907       The old tests/data and tests/guests directories have been moved to
1908       test-data/.  This new top level directory carries all test data which
1909       is common, large and/or shared between multiple tests.
1910
1911       There is a new top level website/ directory containing the public
1912       http://libguestfs.org website (or most of it).
1913
1914       The fuzz testing of inspection (tests/fuzz) has been removed.
1915
1916       Virt-p2v now saves the source physical machine dmesg output into the
1917       conversion server debug directory, making it simpler to debug cases of
1918       missing drivers, firmware etc.
1919
1920   Bugs fixed
1921       https://bugzilla.redhat.com/1294956
1922           set-label returns wrong error message when set the ext3/ext4
1923           filesystem label
1924
1925       https://bugzilla.redhat.com/1288733
1926           Add a Fedora 23 32-bit base image for virt-builder
1927
1928       https://bugzilla.redhat.com/1288201
1929           virt-builder writes temporary files to /tmp
1930
1931       https://bugzilla.redhat.com/1285847
1932           virt-resize does not copy logical partitions
1933
1934       https://bugzilla.redhat.com/1281578
1935           virt-inspector returns version 6.3 for win10 images (should return
1936           10.0)
1937
1938       https://bugzilla.redhat.com/1281577
1939           virt-inspector --xpath segfault on attribute get
1940
1941       https://bugzilla.redhat.com/1280029
1942           libguestfs can run commands with stdin not open (or worse still,
1943           connected to arbitrary guest-chosen random devices)
1944
1945       https://bugzilla.redhat.com/1279273
1946           About compression option for qcow2
1947
1948       https://bugzilla.redhat.com/1278878
1949           guestfish should be able to handle LVM thin layouts
1950
1951       https://bugzilla.redhat.com/1278382
1952           DNF python programming error when run from virt-builder
1953
1954       https://bugzilla.redhat.com/1278371
1955           inspection returns arch="unknown" for Windows guest if file command
1956           is not installed
1957
1958       https://bugzilla.redhat.com/1277274
1959           Document permissions needed for non-admin users to use virt-v2v
1960
1961       https://bugzilla.redhat.com/1277122
1962           RFE: virt-sparsify: make '--in-place' sparsification safe to abort
1963           (gracefully or ungracefully)
1964
1965       https://bugzilla.redhat.com/1277074
1966           Virt-p2v client shouldn't present the vdsm option because it's not
1967           usable
1968
1969       https://bugzilla.redhat.com/1276540
1970           virt-v2v fails to convert Windows raw image: error "device name is
1971           not a partition"
1972
1973       https://bugzilla.redhat.com/1275806
1974           virt-builder: error: [file] is not a regular file in the guest
1975
1976       https://bugzilla.redhat.com/1270011
1977           Simplestreams test fails: virt-builder: error: the value for the
1978           key 'size' is not an integer
1979
1980       https://bugzilla.redhat.com/1267032
1981           guestfish copy-in command behaves oddly/unexpectedly with wildcards
1982
1983       https://bugzilla.redhat.com/1262983
1984           python: Cannot compile pip module if installed libguestfs != pip
1985           guestfs version
1986
1987       https://bugzilla.redhat.com/1262127
1988           Better diagnostic message when virbr0 doesn't exist
1989
1990       https://bugzilla.redhat.com/1261436
1991           No warning shows when convert a win7 guest with AVG AntiVirus
1992           installed
1993
1994       https://bugzilla.redhat.com/1260778
1995           virt-builder --ssh-inject doesn't set proper permissions on created
1996           files
1997
1998       https://bugzilla.redhat.com/1260689
1999           RFE: V2V to check and warn user to disable group policy and anti
2000           virus on Windows guests
2001
2002       https://bugzilla.redhat.com/1260590
2003           Wrong graphics protocal and video type set for guest after convert
2004           to rhev 3.6 by virt-v2v
2005
2006       https://bugzilla.redhat.com/1258342
2007           extra slashes in vcenter URL confuses virt-v2v
2008
2009       https://bugzilla.redhat.com/1257895
2010           [RHEV][V2V] virt-v2v ignores NIC if interface source/@network or
2011           source/@bridge is an empty string
2012
2013       https://bugzilla.redhat.com/1256405
2014           virt-builder created Fedora 22 32bit disk image cannot be updated
2015
2016       https://bugzilla.redhat.com/1256222
2017           virt-p2v no GUI mode:error opening control connection to
2018           $ip:22:unexpected …rompt
2019
2020       https://bugzilla.redhat.com/1251909
2021           Option -oa preallocated -of qcow2 of virt-v2v didn't work
2022           efficiently
2023
2024       https://bugzilla.redhat.com/1250715
2025           v2v: spaces need to be escaped as %20 in paths
2026
2027       https://bugzilla.redhat.com/1248678
2028           Close all incoming ports on virt-p2v ISO
2029
2030       https://bugzilla.redhat.com/1246882
2031           man virt-customize shows synopsis twice
2032
2033       https://bugzilla.redhat.com/1242853
2034           mount-loop failed to setup loop device: No such file or directory
2035
2036       https://bugzilla.redhat.com/1237136
2037           BUG: unable to handle kernel NULL pointer dereference at <addr> in
2038           function __blkg_lookup
2039
2040       https://bugzilla.redhat.com/1230412
2041           virt-v2v should ignore bogus kernel entries in grub config
2042
2043       https://bugzilla.redhat.com/1229119
2044           Unrelated info in fstab makes virt-v2v fail with unclear error info
2045
2046       https://bugzilla.redhat.com/1227609
2047           virt-p2v: Using "Back" button causes output list to be repopulated
2048           multiple times
2049
2050       https://bugzilla.redhat.com/1225789
2051           Wrong video driver is installed for rhel5.11 guest after conversion
2052           to libvirt
2053
2054       https://bugzilla.redhat.com/1204131
2055           RFE: virt-builder creates qcow v3 images, add build option for qcow
2056           v2
2057
2058       https://bugzilla.redhat.com/1176801
2059           File /etc/sysconfig/kernel isn't updated when convert XenPV guest
2060           with regular kernel installed
2061
2062       https://bugzilla.redhat.com/1174551
2063           "lstatnslist" and "lstatlist" don't give an error if the API is
2064           used wrongly
2065
2066       https://bugzilla.redhat.com/1168223
2067           koji spin-livecd cannot build a working live CD
2068
2069       https://bugzilla.redhat.com/1165785
2070           mount-loop command fails: mount failed: Unknown error -1
2071
2072       https://bugzilla.redhat.com/1164708
2073           set-label can only set <=127 bytes for btrfs and <=126 bytes for
2074           ntfs filesystem which not meet the help message. Also for ntfs it
2075           should give a warning message when the length >128 bytes
2076
2077       https://bugzilla.redhat.com/1020216
2078           libvirt fails to shut down domain: could not destroy libvirt
2079           domain: Requested operation is not valid: domain is not running
2080
2081       https://bugzilla.redhat.com/1011907
2082           mount-loop failed to setup loop device: No such file or directory
2083

RELEASE NOTES FOR LIBGUESTFS 1.30

2085       These release notes only cover the differences from the previous
2086       stable/dev branch split (1.28.0).  For detailed changelogs, please see
2087       the git repository, or the ChangeLog file distributed in the tarball.
2088
2089   New features
2090       New tools
2091
2092       virt-dib(1) is a secure and safe alternative to the OpenStack
2093       "diskimage-builder" tool.  It is compatible with diskimage-builder
2094       elements.  (Pino Toscano)
2095
2096       virt-get-kernel(1) extracts the kernel and ramdisk from a disk image.
2097       Previously this functionality was part of virt-builder(1), but the new
2098       tool is more featureful.  (Pino Toscano)
2099
2100       New features in existing tools
2101
2102       virt-v2v(1) -i ova mode can now read a wider range of OVA files, and
2103       also unpacked files (directories).
2104
2105       virt-v2v now securely passes options to curl, so passwords, cookies and
2106       so on cannot be seen by users with shell access on the same machine.
2107
2108       virt-v2v has a new --password-file option to allow you to securely pass
2109       in a password, and to avoid an interactive prompt.
2110
2111       virt-v2v disables Windows autoreboot, making debugging conversion
2112       failures on Windows easier.
2113
2114       virt-v2v now comes with an extensive external test suite.  See
2115       virt-v2v-test-harness(1).
2116
2117       virt-v2v allows virtio drivers to come from any location (Roman Kagan),
2118       and drivers can be read directly from the virtio ISO.
2119
2120       virt-v2v supports conversion of Windows ≥ 8.  Note this is
2121       experimental, and possibly broken.  Use with caution.
2122
2123       virt-v2v can now convert UEFI guests.
2124
2125       virt-p2v(1) adds a network configuration dialog.
2126
2127       virt-p2v now has "p2v.pre", "p2v.post" and "p2v.fail" triggers,
2128       allowing arbitrary scripts for preparing the host for conversion and
2129       tidying up post-conversion.
2130
2131       virt-p2v now uses the more advanced metacity window manager (instead of
2132       matchbox).
2133
2134       virt-sysprep(1) will remove "/var/spool/mail/username" for non-root
2135       accounts (Hu Tao).
2136
2137       virt-customize(1), virt-builder(1) and virt-sysprep have the following
2138       new options:
2139
2140       --commands-from-file
2141           allow long lists of commands to be read from a file instead of from
2142           the command line (Pino Toscano)
2143
2144       --copy
2145           copy files inside the guest (Maros Zatko)
2146
2147       --copy-in
2148           copy host files recursively into the guest (Pino Toscano)
2149
2150       --move
2151           move files inside the guest (Maros Zatko)
2152
2153       --ssh-inject
2154           inject SSH keys into a guest (Pino Toscano)
2155
2156       --sm-attach
2157       --sm-credentials
2158       --sm-register
2159       --sm-remove
2160       --sm-unregister
2161           register and unregister a guest from subscription-manager (Pino
2162           Toscano)
2163
2164       --touch
2165           touch a file in the guest (Pino Toscano)
2166
2167       --truncate
2168       --truncate-recursive
2169           truncate files (Maros Zatko)
2170
2171       Improvements to virt-customize firstboot support.  In particular,
2172       Windows firstboot should work as well as Linux (Roman Kagan).
2173
2174       virt-df(1) can now use PolicyKit, SASL and other authentication methods
2175       when getting the list of domains from libvirt.
2176
2177       Improvements to guestfish bash completion (Pino Toscano).
2178
2179       Bash completion now completes short options as well as long options
2180       (Pino Toscano).
2181
2182       guestfish(1) now displays a command synopsis if the number of
2183       parameters given to a command is wrong (Hu Tao).
2184
2185       virt-builder now supports Red Hat Enterprise Linux versions back to
2186       RHEL 3.
2187
2188       virt-builder supports SUSE guests using zypper (Cédric Bosdonnat).
2189
2190       Language bindings
2191
2192       The Java bindings now include validated Javadoc, and other improvements
2193       (Pino Toscano).
2194
2195       Multiple fixes and improvements to the PHP bindings (Pino Toscano).
2196
2197       Inspection
2198
2199       Inspection can now get icons from RHEL 7 and CentOS 7.
2200
2201       /etc/favicon.png is now allowed to be a symbolic link.
2202
2203       For RPM-based guests, inspection now returns RPM Epoch fields.
2204
2205       Debian packages now have separate Epoch and Version fields (Nikos
2206       Skalkotos).
2207
2208       OpenBSD detection added, FreeBSD and NetBSD added as separate
2209       "distros", and other BSD inspection improvements and bug fixes (Nikos
2210       Skalkotos).
2211
2212       CoreOS detection added (Nikos Skalkotos).
2213
2214       The package manager in Fedora ≥ 22 is "dnf".
2215
2216       ReactOS guests can be inspected (Maros Zatko).
2217
2218       Add support for UEFI guests.
2219
2220       Inspection now works when kernel modules are gzip or xz compressed
2221       (Pino Toscano).
2222
2223       Inspection now recognizes ppc64 and ppc64le guests (Maros Zatko).
2224
2225       Inspection lists the installed applications on Archlinux guests (Nikos
2226       Skalkotos).
2227
2228       Architectures and platforms
2229
2230       PPC64 (POWER7) and PPC64LE (POWER8) architectures are now much better
2231       supported, and should work out of the box.
2232
2233       For aarch64, we use AAVMF (an open source UEFI implementation based on
2234       OVMF) if available to run the appliance.
2235
2236       For armv7, we now use the -M virt machine type by default.
2237
2238       There is better support for compiling on non-Linux platforms (Pino
2239       Toscano, Margaret Lewicka).
2240
2241       Libguestfs should now work on MIPS 32 bit little endian ("mipsel").  I
2242       have not been able to try 64 bit or big endian.
2243
2244   Security
2245       CVE-2014-8484
2246       CVE-2014-8485
2247           Libguestfs previously ran the strings(1) utility on untrusted
2248           files.  Strings could parse BFD headers in an unsafe way, leading
2249           to possible arbitrary code execution.  Libguestfs now runs strings
2250           with a flag to ensure it does not try to parse BFD headers.  This
2251           could have led to exploitation of the libguestfs appliance, but
2252           since libguestfs further constrains the appliance through
2253           virtualization, SELinux and other techniques, it was unlikely to
2254           have caused any privilege escalation on the host.
2255
2256       XPath injection in virt-v2v
2257           One possible XPath injection vulnerability was fixed in virt-v2v.
2258           This might have allowed a malicious guest which was being converted
2259           by virt-v2v to construct an arbitrary XPath expression which would
2260           have been evaluated on the host (by the libxml2 library linked to
2261           the virt-v2v binary).  It is not clear what the effects of this
2262           might be.
2263
2264           For further information, see upstream commit
2265           https://github.com/libguestfs/libguestfs/commit/6c6ce85f94c36803fe2db35a98db436bff0c14b0
2266
2267       Denial of service problems when using "qemu-img info"
2268           When using the American Fuzzy Lop fuzzer ("afl-fuzz") on the
2269           "qemu-img info" command, Richard W.M. Jones found that certain
2270           files can cause the "qemu-img" program to use lots of memory and
2271           time (for example 6GB of heap and 14 seconds of CPU time on a fast
2272           Intel processor), and in some cases to crash.  Since libguestfs may
2273           run "qemu-img info" on disk images to find out what they contain,
2274           this transitively could cause libguestfs to hang or consume lots of
2275           memory.
2276
2277           Libguestfs was modified so that it uses resource limits to limit
2278           the space and time used by "qemu-img info", to avoid this problem.
2279           If a malicious user tries to pass one of these disk images to
2280           libguestfs, "qemu-img" will crash and the crash is reported back to
2281           libguestfs callers as an error message.
2282
2283   API
2284       New APIs
2285
2286       "guestfs_add_libvirt_dom"
2287           This exposes a previously private API that allows you to pass a
2288           "virDomainPtr" object directly from libvirt to libguestfs.
2289
2290       "guestfs_blockdev_setra"
2291           Adjust readahead parameter for devices.  See "blockdev --setra"
2292           command.
2293
2294       "guestfs_btrfs_balance"
2295       "guestfs_btrfs_balance_cancel"
2296       "guestfs_btrfs_balance_pause"
2297       "guestfs_btrfs_balance_resume"
2298       "guestfs_btrfs_balance_status"
2299           Balance support for Btrfs filesystems (Hu Tao).
2300
2301       "guestfs_btrfs_filesystem_defragment"
2302           Filesystem defragmentation support for Btrfs filesystems (Hu Tao).
2303
2304       "guestfs_btrfs_image"
2305           Create an image of a Btrfs filesystem (Chen Hanxiao)
2306
2307       "guestfs_btrfs_qgroup_assign"
2308       "guestfs_btrfs_qgroup_create"
2309       "guestfs_btrfs_qgroup_destroy"
2310       "guestfs_btrfs_qgroup_limit"
2311       "guestfs_btrfs_qgroup_remove"
2312       "guestfs_btrfs_qgroup_show"
2313       "guestfs_btrfs_quota_enable"
2314       "guestfs_btrfs_quota_rescan"
2315           Quote support for Btrfs filesystems (Hu Tao).
2316
2317       "guestfs_btrfs_rescue_chunk_recover"
2318           Scan and recover the chunk tree in Btrfs filesystems (Hu Tao).
2319
2320       "guestfs_btrfs_rescue_super_recover"
2321           Restore superblocks in Btrfs filesystems (Hu Tao).
2322
2323       "guestfs_btrfs_replace"
2324           Replace a device in a Btrfs filesystem (Cao Jin).
2325
2326       "guestfs_btrfs_scrub"
2327       "guestfs_btrfs_scrub_cancel"
2328       "guestfs_btrfs_scrub_resume"
2329       "guestfs_btrfs_scrub_status"
2330           Scrub a Btrfs filesystem (Hu Tao).
2331
2332       "guestfs_btrfs_subvolume_get_default"
2333           Get the default subvolume of a Btrfs filesystem (Hu Tao).
2334
2335       "guestfs_btrfs_subvolume_show"
2336           List detailed information about the subvolume of a Btrfs filesystem
2337           (Hu Tao).
2338
2339       "guestfs_btrfstune_enable_extended_inode_refs"
2340       "guestfs_btrfstune_enable_skinny_metadata_extent_refs"
2341       "guestfs_btrfstune_seeding"
2342           Various tuning parameters for Btrfs filesystems (Chen Hanxiao).
2343
2344       "guestfs_c_pointer"
2345           Return the C pointer to the underlying "guestfs_h *".  This allows
2346           interworking of libguestfs bindings with bindings from other
2347           libraries.  For further information see
2348           https://bugzilla.redhat.com/1075164
2349
2350       "guestfs_copy_in"
2351       "guestfs_copy_out"
2352           Flexible APIs for recursively copying directories of files between
2353           the host and guest filesystem.  Previously these were available
2354           only as guestfish commands, but now any API users can call them
2355           (Pino Toscano).
2356
2357       "guestfs_part_get_gpt_guid"
2358       "guestfs_part_set_gpt_guid"
2359           Get and set the GPT per-partition GUID.
2360
2361       "guestfs_part_get_mbr_part_type"
2362           Get MBR partition type (Chen Hanxiao).
2363
2364       "guestfs_set_uuid_random"
2365           Set the UUID of a filesystem to a randomly generated value;
2366           supported filesystems currently are ext2/3/4, XFS, Btrfs, and swap
2367           partitions.  (Chen Hanxiao).
2368
2369       Other API changes
2370
2371       "guestfs_disk_create" can now use VMDK files as backing files.
2372
2373       "guestfs_btrfs_subvolume_snapshot" takes extra optional parameters (all
2374       added by Hu Tao):
2375
2376       "ro"
2377           for creating a read-only Btrfs snapshot
2378
2379       "qgroupid"
2380           for adding the snapshot to a qgroup
2381
2382       "guestfs_btrfs_subvolume_create" can also take the optional "qgroupid"
2383       parameter (Hu Tao).
2384
2385       "guestfs_set_uuid" can set UUID of swap partitions, Btrfs (Hu Tao, Chen
2386       Hanxiao).
2387
2388       "guestfs_copy_device_to_file" and "guestfs_copy_file_to_file" have a
2389       new optional "append" parameter, allowing you to append to the output
2390       file instead of truncating it.
2391
2392       "guestfs_mkfs" has a new optional "label" parameter to set the initial
2393       label of the new filesystem (Pino Toscano).
2394
2395       "guestfs_set_label" and "guestfs_set_uuid" now set "ENOTSUP" as errno
2396       when there is no implemented support for the filesystem of the
2397       specified mountable (Chen Hanxiao).
2398
2399       Environment variables now let you write "LIBGUESTFS_DEBUG=true",
2400       "LIBGUESTFS_DEBUG=0" and so on.
2401
2402       All "guestfs_sfdisk*" APIs have been deprecated.  Because sfdisk(8) was
2403       rewritten, incompatibly, upstream, we don't recommend using these APIs
2404       in future code.  Use the "guestfs_part*" APIs as replacements.
2405
2406       APIs such as "guestfs_download" do not truncate /dev/stdout or
2407       /dev/stderr when writing to them, meaning that if you redirect stdout
2408       or stderr to a file, the file is no longer truncated.
2409
2410   Build changes
2411       The daemon no longer uses its own separate copy of gnulib.  Instead it
2412       shares a single copy with the library.
2413
2414       OCaml .annot files are now created, so IDEs and editors like emacs and
2415       vi can browse OCaml types in the source code.
2416
2417       Various fixes to allow different host/appliance architecture builds
2418       (Pino Toscano).
2419
2420       Automake is now used directly to build all the OCaml programs, instead
2421       of ad hoc Makefile rules.  One side effect of this is to enable
2422       warnings in all the C code used by OCaml programs.
2423
2424       "-fno-strict-overflow" is used throughout the build to avoid dubious
2425       GCC optimizations.
2426
2427       Multiple cleanups to support GCC 5.
2428
2429       OCaml OUnit2 is needed to run some OCaml tests.
2430
2431       Creating a statically linked libguestfs.a should work again.
2432
2433       The src/api-support subdirectory and its scripts are no longer used.
2434       Instead we store in the generator/actions.ml when the API was added to
2435       libguestfs.
2436
2437   Internationalization
2438       The translation service has changed from Transifex to Zanata.
2439
2440       Many more translations are available now, for both library and tools
2441       messages and documentation.
2442
2443   Internals
2444       In all OCaml tools, there are now common "error", "warning", "info"
2445       functions, and common way to set and get the --quiet, -x (trace) and -v
2446       (verbose) flags, and colour highlighting used consistently.
2447
2448       "COMPILE_REGEXP" macros are used to simplify PCRE constructors and
2449       destructors.
2450
2451       In the generator, "Pointer" arguments have finally been implemented.
2452
2453       Internal identifiers no longer use double and triple underscores (eg.
2454       "guestfs___program_name").  These identifiers are invalid for C99 and
2455       C++ programs, although compilers would accept them.
2456
2457       The daemon no longer parses "guestfs_*" options from /proc/cmdline.
2458       Instead it only takes ordinary command line options.  The appliance
2459       init script turns /proc/cmdline into daemon command line options.
2460
2461       The tests can now run the daemon as a "captive process", allowing it to
2462       be run directly on the host.  The main advantage of this is we can run
2463       valgrind directly on the daemon during testing.
2464
2465   Bugs fixed
2466       https://bugzilla.redhat.com/1239053
2467           virt-v2v error reporting when grub.conf cannot be parsed by Augeas
2468
2469       https://bugzilla.redhat.com/1238053
2470           v2v:Duplicate disk target set when convert guest with cdrom
2471           attached
2472
2473       https://bugzilla.redhat.com/1237869
2474           Virtio drivers are not installed for windows 2008 guests by
2475           virt-v2v
2476
2477       https://bugzilla.redhat.com/1234351
2478           virt-v2v Support for Fedora virtio-win drivers
2479
2480       https://bugzilla.redhat.com/1232192
2481           Virt-v2v gives an error on a blank disk: part_get_parttype: unknown
2482           signature, of the output: BYT;
2483
2484       https://bugzilla.redhat.com/1229385
2485           virt-p2v in kernel command line mode should power off the machine
2486           after conversion
2487
2488       https://bugzilla.redhat.com/1229340
2489           virt-p2v no GUI mode appends \n to the final command line parameter
2490
2491       https://bugzilla.redhat.com/1229305
2492           virt-sysprep at cleanup deletes /var/spool/at/.SEQ which results in
2493           failing at
2494
2495       https://bugzilla.redhat.com/1226794
2496           "Doing conversion……" still shows after cancel the conversion from
2497           virt-p2v client
2498
2499       https://bugzilla.redhat.com/1215042
2500           Memory leak in virNetSocketNewConnectUNIX
2501
2502       https://bugzilla.redhat.com/1213324
2503           virt-v2v: warning: unknown guest operating system: windows windows
2504           6.3 when converting win8,win8.1,win2012,win2012R2 to rhev
2505
2506       https://bugzilla.redhat.com/1213247
2507           virt tools should print the same format of version string
2508
2509       https://bugzilla.redhat.com/1212808
2510           RFE: virt-builder --touch
2511
2512       https://bugzilla.redhat.com/1212807
2513           virt-builder --selinux-relabel flag fails on cross-architecture
2514           builds
2515
2516       https://bugzilla.redhat.com/1212680
2517           RFE: virt-inspector xpath query should output a neat format of the
2518           query element
2519
2520       https://bugzilla.redhat.com/1212152
2521           virt-builder firstboot-command fails: File name too long
2522
2523       https://bugzilla.redhat.com/1211996
2524           virt-inspector gives incorrect arch (ppc64) for ppc64le guest
2525
2526       https://bugzilla.redhat.com/1203817
2527           RFE: virt-customize --move and --copy
2528
2529       https://bugzilla.redhat.com/1201526
2530           index-parser can't parse systemd mount files properly
2531
2532       https://bugzilla.redhat.com/1196101
2533           virt-builder --upload option doesn't work to a FAT partition
2534
2535       https://bugzilla.redhat.com/1196100
2536           virt-builder -x option on its own does not enable tracing
2537
2538       https://bugzilla.redhat.com/1195204
2539           `virt-builder` should create $HOME/.cache directory if it already
2540           doesn't exist
2541
2542       https://bugzilla.redhat.com/1193237
2543           Virt-builder fingerprint is required even when no check desired
2544
2545       https://bugzilla.redhat.com/1189284
2546           virt-resize should preserve GPT partition UUIDs, else EFI guests
2547           become unbootable
2548
2549       https://bugzilla.redhat.com/1188866
2550           Performance regression in virt-builder when uncompressing image
2551
2552       https://bugzilla.redhat.com/1186800
2553           virt-v2v should support gzip format ova as input
2554
2555       https://bugzilla.redhat.com/1185561
2556           virt-sparsify should ignore read-only LVs
2557
2558       https://bugzilla.redhat.com/1182463
2559           "mknod-b", "mknod-c", and "mkfifo" do not strip non-permissions
2560           bits from "mode"
2561
2562       https://bugzilla.redhat.com/1176493
2563           virt-v2v ignores sound device when convert xen guest to local kvm
2564
2565       https://bugzilla.redhat.com/1175676
2566           Typo error in 'help ping-daemon'
2567
2568       https://bugzilla.redhat.com/1175196
2569           "parse-environment" and "parse-environment-list" fail to parse
2570           "LIBGUESTFS_TRACE = 0"
2571
2572       https://bugzilla.redhat.com/1175035
2573           "is-blockdev"/"is-blockdev-opts" fail to detect "/dev/sda"
2574
2575       https://bugzilla.redhat.com/1174280
2576           RFE: Allow v2v conversion of Oracle Linux 5.8 VMware VM
2577
2578       https://bugzilla.redhat.com/1174200
2579           New virt-v2v failure: CURL: Error opening file: NSS: client
2580           certificate not found (nickname not specified): Invalid argument
2581
2582       https://bugzilla.redhat.com/1174123
2583           Graphics password disappear after conversion of virt-v2v
2584
2585       https://bugzilla.redhat.com/1174073
2586           The listen address for vnc is changed after conversion by virt-v2v
2587
2588       https://bugzilla.redhat.com/1171666
2589           inspection thinks EFI partition is a separate operating system
2590
2591       https://bugzilla.redhat.com/1171130
2592           virt-v2v conversion of RHEL 3 guest fails with: All of your
2593           loopback devices are in use
2594
2595       https://bugzilla.redhat.com/1170685
2596           Conversion of RHEL 4 guest fails: rpm -ql
2597           1:kernel-utils-2.4-23.el4: virt-v2v: error: libguestfs error:
2598           command_lines:
2599
2600       https://bugzilla.redhat.com/1170073
2601           virt-v2v picks debug kernels over non-debug kernels when versions
2602           are equal
2603
2604       https://bugzilla.redhat.com/1169045
2605           virt-sparsify: libguestfs error: qemu-img info: 'virtual-size' is
2606           not representable as a 64 bit integer
2607
2608       https://bugzilla.redhat.com/1169015
2609           virt-resize --expand fails on ubuntu-14.04.img image (regression)
2610
2611       https://bugzilla.redhat.com/1168144
2612           warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation
2613           not supported (ignored) when convert win2003 guest from xen server
2614
2615       https://bugzilla.redhat.com/1167921
2616           p2v: No Network Connection dialog
2617
2618       https://bugzilla.redhat.com/1167774
2619           virt-p2v fails with error:"nbd.c:nbd_receive_negotiate():L501: read
2620           failed"
2621
2622       https://bugzilla.redhat.com/1167623
2623           Remove "If reporting bugs, run virt-v2v with debugging enabled .."
2624           message when running virt-p2v
2625
2626       https://bugzilla.redhat.com/1167601
2627           "Conversion was successful" pop out even virt-p2v fails
2628
2629       https://bugzilla.redhat.com/1167302
2630           virt-v2v: warning: ova hard disk has no parent controller when
2631           convert from a ova file
2632
2633       https://bugzilla.redhat.com/1166618
2634           virt-resize should give out the detail warning info to let
2635           customers know what's going wrong
2636
2637       https://bugzilla.redhat.com/1165975
2638           File "/boot/grub2/device.map" showing is not right after converting
2639           a rhel7 guest from esx server
2640
2641       https://bugzilla.redhat.com/1165785
2642           mount-loop command fails: mount failed: Unknown error -1
2643
2644       https://bugzilla.redhat.com/1165569
2645           Disable "cancel conversion" button after virt-p2v conversion
2646           finished
2647
2648       https://bugzilla.redhat.com/1165564
2649           Provide Reboot/Shutdown button after virt-p2v
2650
2651       https://bugzilla.redhat.com/1164853
2652           Booting in qemu found no volume groups and failed checking the
2653           filesystems
2654
2655       https://bugzilla.redhat.com/1164732
2656           The description of 'help append' is not accurately, it add the
2657           kernel options to libguestfs appliance not the guest kernel
2658
2659       https://bugzilla.redhat.com/1164697
2660           typo errors in man pages
2661
2662       https://bugzilla.redhat.com/1164619
2663           Inspect-get-icon failed on RHEL7 guest
2664
2665       https://bugzilla.redhat.com/1162966
2666           xfs should also give a warning out to let customer know the
2667           limitation
2668
2669       https://bugzilla.redhat.com/1161575
2670           Failed to import guest with "rtl8139" nic  to openstack server
2671           after converted by v2v
2672
2673       https://bugzilla.redhat.com/1159651
2674           virt-sysprep firstboot script is not deleted if it reboot a RHEL 7
2675           guest
2676
2677       https://bugzilla.redhat.com/1159258
2678           esx win2008 32 bit guest fail to load after conversion because the
2679           firmware isn't ACPI compatible
2680
2681       https://bugzilla.redhat.com/1159016
2682           libvirt backend does not set RBD password
2683
2684       https://bugzilla.redhat.com/1158526
2685           Use password file instead of process interaction
2686
2687       https://bugzilla.redhat.com/1157679
2688           virt-p2v-make-disk should add firmwares
2689
2690       https://bugzilla.redhat.com/1156449
2691           libguestfs FTBFS on f21 ppc64le
2692
2693       https://bugzilla.redhat.com/1156301
2694           virt-inspector support adding a remote disk, but in its man page -a
2695           URI / --add URI is missing
2696
2697       https://bugzilla.redhat.com/1155121
2698           Virt-v2v will fail when using relative path for -i ova
2699
2700       https://bugzilla.redhat.com/1153844
2701           Redundancy whitespace at the end of directory name when use <TAB>
2702           to complete the directory name in guestfish with a xfs filesystem
2703           in guest
2704
2705       https://bugzilla.redhat.com/1153589
2706           virt-v2v will hang when converting esx guest before disk copy phase
2707
2708       https://bugzilla.redhat.com/1152998
2709           virt-v2v / qemu-img fails on ova image
2710
2711       https://bugzilla.redhat.com/1151910
2712           virt-ls should remove '/' in the output when specify the directory
2713           name as /etc/
2714
2715       https://bugzilla.redhat.com/1151900
2716           Should also add a field for directory files when run virt-ls with
2717           --csv option
2718
2719       https://bugzilla.redhat.com/1151033
2720           virt-v2v conversions from VMware vCenter server run slowly
2721
2722       https://bugzilla.redhat.com/1146832
2723           virt-v2v fail to convert guest with disk type volume
2724
2725       https://bugzilla.redhat.com/1146007
2726           Input/output error during conversion of esx guest.
2727
2728       https://bugzilla.redhat.com/1135585
2729           [RFE] virt-builder should support copying in a directory/list of
2730           files
2731
2732       https://bugzilla.redhat.com/1089566
2733           [abrt] livecd-tools: kickstart.py:276:apply:IOError: [Errno 2] No
2734           such file or directory:
2735           '/run/media/jones/2tp001data/createlive/temp/imgcreate-_dX8Us/install_root/etc/rpm/macros.imgcreate'
2736
2737       https://bugzilla.redhat.com/1079625
2738           virt-sparsify fails if a btrfs filesystem contains readonly
2739           snapshots
2740
2741       https://bugzilla.redhat.com/1075164
2742           RFE: allow passing in a pre-opened libvirt connection from python
2743
2744       https://bugzilla.redhat.com/912499
2745           Security context on image file gets reset
2746
2747       https://bugzilla.redhat.com/889082
2748           [RFE] virt-v2v should check whether guest with same name exist on
2749           target first then transfer the disk
2750
2751       https://bugzilla.redhat.com/855059
2752           RFE: virt-p2v: display more information about network devices such
2753           as topology, bonding, etc.
2754
2755       https://bugzilla.redhat.com/823758
2756           p2v client should have largest number restrictions for CPU and
2757           Memory settings
2758
2759       https://bugzilla.redhat.com/709327
2760           hivex cannot read registry hives from ReactOS
2761
2762       https://bugzilla.redhat.com/709326
2763           virt-inspector cannot detect ReactOS
2764
2765       https://bugzilla.redhat.com/119673
2766           installation via NFS doesn't seem to work
2767

RELEASE NOTES FOR LIBGUESTFS 1.28

2769       These release notes only cover the differences from the previous
2770       stable/dev branch split (1.26.0).  For detailed changelogs, please see
2771       the git repository, or the ChangeLog file distributed in the tarball.
2772
2773   New features
2774       Tools
2775
2776       virt-v2v(1) and virt-p2v(1) are tools for converting from foreign
2777       hypervisors (such as VMware or Xen) or physical machines, to KVM.
2778       These tools were previously a separate project.  The code for both
2779       tools has been integrated into the libguestfs tree.  As part of the
2780       refactoring, virt-p2v has been rewritten (from Ruby, now C), and
2781       virt-v2v now uses several modern features of qemu which make it run
2782       many times faster than before.  virt-v2v(1) can import from: VMware
2783       vCenter, VMware OVA files, local disk files, libvirt, RHEL 5 Xen.  It
2784       can output to: oVirt or Red Hat Enterprise Virtualization (RHEV-M),
2785       OpenStack Glance, libvirt, qemu, local disk files.
2786
2787       virt-log(1) is a new tool for listing log files from guests.  It
2788       supports a variety of guests including Linux traditional, Linux using
2789       journal, and Windows event log.
2790
2791       virt-builder(1) has a new "--machine-readable" option to make it
2792       simpler to consume virt-builder from other programs.
2793
2794       New virt-builder(1) and virt-customize(1) --chmod option.
2795
2796       virt-sysprep(1) will now remove: systemd journals, anaconda logs,
2797       lightdm logs, debian-installer files, apt logs, exim logs, ConsoleKit
2798       logs, firewalld logs, grubby logs, proftpd logs, libvirt/libxml logs,
2799       and several other log files.  The virt-sysprep "user-account" operation
2800       is now able to remove or keep particular user accounts.  (Pino
2801       Toscano).
2802
2803       New guestmount(1) --fd option, allowing you to run guestmount captive
2804       under another process.
2805
2806       virt-sparsify(1) has a new --tmp option allowing you to precisely
2807       control where temporary files are stored.
2808
2809       virt-sparsify(1) can now write to a block device.
2810
2811       virt-customize(1) and virt-sysprep(1) now support adding firstboot
2812       scripts to Windows guests.
2813
2814       virt-cat(1), virt-edit(1), virt-ls(1) now support the -m option,
2815       allowing you to override automatic inspection of guests and instead
2816       specify where to mount partitions (Pino Toscano).
2817
2818       The virt tools now have coloured output: green for OK, red for errors,
2819       blue for warnings.
2820
2821       Language bindings
2822
2823       You can build a Python distribution using "make -C python sdist"
2824
2825       Ruby bindings have switched from "Test::Unit" to "MiniTest".
2826
2827       The Java bindings are now compatible with OpenJDK 8 (Pino Toscano).
2828
2829       Inspection
2830
2831       Oracle Linux is returned as "oraclelinux" (Nikos Skalkotos).
2832
2833       Linux guests which do not have /etc/fstab can now be handled (Pino
2834       Toscano).
2835
2836       Minix is returned as "minix" (Pino Toscano).
2837
2838       Architectures
2839
2840       Aarch64 (64 bit ARM) support has been added.
2841
2842       Inspection and the "guestfs_file_architecture" call can now recognize
2843       arm (32 bit) and aarch64 guests.
2844
2845   Security
2846       CVE-2014-0191 Network usage and entity resolution in XML parsing
2847           Libguestfs previously used unsafe libxml2 APIs for parsing libvirt
2848           XML.  These APIs defaulted to allowing network connections to be
2849           made when certain XML documents were presented.  Using a malformed
2850           XML document it was also possible to exhaust all CPU, memory or
2851           file descriptors on the machine.
2852
2853           Since the libvirt XML comes from a trusted source (the libvirt
2854           daemon) it is not thought that this could have been exploitable.
2855
2856           This was fixed in libguestfs ≥ 1.27.9 and the fix was backported to
2857           stable versions ≥ 1.26.2, ≥ 1.24.9, ≥ 1.22.10 and ≥ 1.20.13.
2858           (Thanks: Dan Berrange, Pino Toscano).
2859
2860       Shellshock (bash CVE-2014-6271)
2861           This bash bug indirectly affects libguestfs.  For more information
2862           see:
2863           https://www.redhat.com/archives/libguestfs/2014-September/msg00252.html
2864
2865   API
2866       New APIs
2867
2868       "guestfs_clear_backend_setting"
2869       "guestfs_get_backend_setting"
2870       "guestfs_set_backend_setting"
2871           Use these APIs to set individual backend settings.
2872
2873       "guestfs_cpio_out"
2874           Convert a directory within the disk image to cpio format.
2875
2876       "guestfs_journal_get_realtime_usec"
2877           Fetch precise journal times, see sd_journal_get_realtime_usec(3).
2878
2879       "guestfs_lstatns"
2880       "guestfs_lstatnslist"
2881       "guestfs_statns"
2882           Enhanced versions of "guestfs_lstat", "guestfs_lstatlist",
2883           "guestfs_stat" which return nanosecond timestamps.
2884
2885   Build changes
2886       Libguestfs can now be built with qemu 2.x.
2887
2888       Add support for packaging the appliance on Mageia (Joseph Wang, Thierry
2889       Vignaud).
2890
2891       Augeas is now a required dependency.
2892
2893       Flex and bison are now required dependencies.
2894
2895   Internals
2896       User-Mode Linux (UML) is no longer a supported backend (although still
2897       available).  It will be supported again once someone steps in and fixes
2898       various regressions and brokenness in the UML (Linux) kernel.
2899
2900       You can now connect gdb to qemu by specifying
2901       "LIBGUESTFS_BACKEND_SETTINGS=gdb"
2902
2903       Serial BIOS (sgabios) is now used by the libvirt backend (on x86 only)
2904       so that we see early BIOS messages.
2905
2906       For the OCaml virt tools, exceptions are now handled and printed by a
2907       common function.
2908
2909       A GCC warning about large stack frames is now enabled by default.
2910       Several places that used large arrays and structures on the stack have
2911       been fixed.
2912
2913       There is now a test for booting the appliance repeatedly.  Useful for
2914       finding kernel leaks.  See: tests/qemu/qemu-boot.c
2915
2916       There is a test for testing the speed of various qemu features such as
2917       virtio-serial uploads and block device writes.  See:
2918       tests/qemu/qemu-speed-test.c
2919
2920       GCC warnings are now enabled for OCaml-C bindings in the OCaml virt
2921       tools.
2922
2923       The code for editing files used by virt-edit(1), guestfish(1) "edit"
2924       command, virt-customize(1) --edit option and more is now shared between
2925       all these utilities (thanks Pino Toscano).
2926
2927       The FUSE tests were rewritten in C to ensure finer control over how
2928       system calls are tested.
2929
2930       The update-bugs.sh script has been fixed so it should no longer create
2931       an empty "BUGS" file if the Bugzilla server is unavailable.
2932
2933       The virt-resize(1) tests now use a stochastic method to ensure much
2934       deeper and broader testing.
2935
2936       When the network is enabled, the appliance now uses DHCP to acquire an
2937       IP address.
2938
2939       If libvirt is being used then the appliance will connect to "virbr0"
2940       (can be overridden by setting
2941       "LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<some_bridge>").  This
2942       enables full-featured network connections, with working ICMP, ping and
2943       so on.
2944
2945   Bugs fixed
2946       https://bugzilla.redhat.com/1153515
2947           empty (but set) LIBGUESTFS_BACKEND prints libguestfs: error:
2948           invalid backend:
2949
2950       https://bugzilla.redhat.com/1151766
2951           libguestfs-bash-completion package contains file
2952           /usr/share/bash-completion/completions/virt-log, but no _virt_log()
2953           function in that file
2954
2955       https://bugzilla.redhat.com/1151738
2956           typo error in man page of virt-edit
2957
2958       https://bugzilla.redhat.com/1151033
2959           virt-v2v conversions from VMware vCenter server run slowly
2960
2961       https://bugzilla.redhat.com/1150880
2962           virt-v2v: warning: display <graphics type='sdl'> was ignored when
2963           converting rhel5 guest with sdl graphics
2964
2965       https://bugzilla.redhat.com/1150867
2966           'copy-file-to-file /src /dest' create file /dest even if command
2967           'copy-file-to-file /src /dest' failed
2968
2969       https://bugzilla.redhat.com/1150815
2970           Can not find "RECURSIVE LONG LISTING" in 'man virt-diff'
2971
2972       https://bugzilla.redhat.com/1150701
2973           virt-v2v does not fstrim data disks and non-mounted filesystems
2974
2975       https://bugzilla.redhat.com/1150475
2976           Exporting 2+ disk guest to RHEV, only one disk shows after import
2977
2978       https://bugzilla.redhat.com/1148355
2979           virt-filesystems: incorrect LVM vg name when listing Fedora 21
2980           Alpha Atomic image filesystems
2981
2982       https://bugzilla.redhat.com/1148072
2983           Option missing --no-selinux-relabel
2984
2985       https://bugzilla.redhat.com/1148012
2986           RFE: Allow qemu-bridge-helper to be used to implement
2987           guestfs_set_network
2988
2989       https://bugzilla.redhat.com/1146815
2990           virt-v2v prints warning: /files/etc/fstab/8/spec references unknown
2991           device "cdrom"
2992
2993       https://bugzilla.redhat.com/1146275
2994           regression setting root password with virt-builder/virt-customize
2995
2996       https://bugzilla.redhat.com/1146017
2997           virt-v2v -v -x during windows guest conversion will hang at hivex:
2998           hivex_open: used block id ……
2999
3000       https://bugzilla.redhat.com/1145995
3001           Improve the error info when converting windows guest with unclean
3002           file system
3003
3004       https://bugzilla.redhat.com/1145916
3005           virt-v2v fails to convert win7 guest
3006
3007       https://bugzilla.redhat.com/1144891
3008           RFE: stat calls do not return nanosecond timestamps
3009
3010       https://bugzilla.redhat.com/1144766
3011           futimens() is a no-op via guestmount
3012
3013       https://bugzilla.redhat.com/1144201
3014           guestfish can not restore terminal's output colour when exit
3015           guestfish, if the terminal's background colour is black then it
3016           will make a inconvenient
3017
3018       https://bugzilla.redhat.com/1143949
3019           virt-customize option '--password-crypto' do not work
3020
3021       https://bugzilla.redhat.com/1143887
3022           Warning shows when converting guests to rhev:chown: changing
3023           ownership of ‘/tmp/v2v.u48xag/*.ovf’: Invalid argument
3024
3025       https://bugzilla.redhat.com/1143883
3026           warning shows when converting rhel7 guest:virt-v2v:could not update
3027           grub2 console: aug_get: no matching node (ignored)
3028
3029       https://bugzilla.redhat.com/1143866
3030           virt-v2v fails with error: cannot open Packages index using db5
3031
3032       https://bugzilla.redhat.com/1142416
3033           part-get-name give 'libguestfs: error: part_get_name: parted does
3034           not support the machine output (-m)' error message when run
3035           'part-get-name /dev/sda 1'
3036
3037       https://bugzilla.redhat.com/1142186
3038           virt-sysprep option '--mount-options' don't work well
3039
3040       https://bugzilla.redhat.com/1142158
3041           Illegal command 'part-get-name /dev/sda1 1' cause libguestfs
3042           appliance crashed
3043
3044       https://bugzilla.redhat.com/1142004
3045           virt-v2v prints warning:WARNING:/files/boot/grub/device.map
3046           references unknown device "xvda"
3047
3048       https://bugzilla.redhat.com/1141723
3049           virt-v2v: error: disk sda has no defined format shows when
3050           converting xen hvm guest
3051
3052       https://bugzilla.redhat.com/1141680
3053           [RFE] virt-v2 should support convert a domain with using domain's
3054           UUID instead of domain name
3055
3056       https://bugzilla.redhat.com/1141631
3057           [RFE] virt-v2 should support convert a guest to a dir-pool with
3058           using pool's uuid
3059
3060       https://bugzilla.redhat.com/1141157
3061           virt-sysprep option '--user-accounts' don't work well
3062
3063       https://bugzilla.redhat.com/1141145
3064           virt-v2v fails to convert xen pv guests.
3065
3066       https://bugzilla.redhat.com/1141113
3067           virt-v2v fails to convert esx guests
3068
3069       https://bugzilla.redhat.com/1140946
3070           qemu-img shows error message for backing file twice
3071
3072       https://bugzilla.redhat.com/1140894
3073           No error messages output if append '--format qcow2' after '-a
3074           guest.img', guest.img is a raw format image file
3075
3076       https://bugzilla.redhat.com/1140547
3077           virt-builder option '--format' don't work well
3078
3079       https://bugzilla.redhat.com/1140156
3080           RFE: Export to RHEV data domain
3081
3082       https://bugzilla.redhat.com/1140050
3083           No error shows when multiple conflicting options used with virt-v2v
3084
3085       https://bugzilla.redhat.com/1139973
3086           Improve the error info when converting xen guest with no
3087           passwordless SSH access configured
3088
3089       https://bugzilla.redhat.com/1139543
3090           Improve the error info when converting guest with no space left
3091
3092       https://bugzilla.redhat.com/1138586
3093           No error shows when converting running guest with virt-v2v
3094
3095       https://bugzilla.redhat.com/1138184
3096           virt-v2v will fail when converting guests with initramfs-*kdump.img
3097           under /boot
3098
3099       https://bugzilla.redhat.com/1138182
3100           xen guest will be kernel panic after converted by virt-v2v
3101
3102       https://bugzilla.redhat.com/1130189
3103           Annoying message about permissions of /dev/kvm
3104
3105       https://bugzilla.redhat.com/1123007
3106           libguestfs 'direct' backend should close file descriptors before
3107           exec-ing qemu to avoid leaking !O_CLOEXEC fds
3108
3109       https://bugzilla.redhat.com/1122557
3110           virt-sparsify overwrites block devices if used as output files
3111
3112       https://bugzilla.redhat.com/1113156
3113           Empty fstab breaks libguestfs inspection
3114
3115       https://bugzilla.redhat.com/1111662
3116           Guestfs.Error("vgchange_uuid_all:   Volume group has active logical
3117           volumes")
3118
3119       https://bugzilla.redhat.com/1109174
3120           virt-win-reg manual page is corrupted
3121
3122       https://bugzilla.redhat.com/1106548
3123           root gets an error accessing to a non-root dir on a snapshot
3124           guestmount VMDK img
3125
3126       https://bugzilla.redhat.com/1103877
3127           These APIs also need to add to `guestfish -h` command list
3128
3129       https://bugzilla.redhat.com/1102448
3130           mageia package list is incorrect
3131
3132       https://bugzilla.redhat.com/1102447
3133           libguestfs 1.27.13 does not build due to libxml library order
3134
3135       https://bugzilla.redhat.com/1100498
3136           RFE: non-polling mechanism to detect guestmount --no-fork readiness
3137
3138       https://bugzilla.redhat.com/1099490
3139           scrub-file can't handle link file
3140
3141       https://bugzilla.redhat.com/1099284
3142           typo errors in man pages
3143
3144       https://bugzilla.redhat.com/1098718
3145           RFE: virt-builder aliases
3146
3147       https://bugzilla.redhat.com/1096465
3148           virt-builder "proxy=off" setting doesn't turn off the proxy for
3149           downloads
3150
3151       https://bugzilla.redhat.com/1094746
3152           virt-sparsify man failes to mention what happens to snapshots
3153           within a qcow2 image (they are discarded)
3154
3155       https://bugzilla.redhat.com/1092753
3156           virt-builder: If several repos contain the same os-version images,
3157           then they are duplicated in -l output
3158
3159       https://bugzilla.redhat.com/1091803
3160           tar-in-opts execute failed that cause libguestfs appliance crashed
3161
3162       https://bugzilla.redhat.com/1088424
3163           virt-resize: libguestfs error: part_set_name: parted: /dev/sdb:
3164           Error during translation: Invalid or incomplete multibyte or wide
3165           character
3166
3167       https://bugzilla.redhat.com/1088262
3168           virt-builder cannot write to a block device
3169
3170       https://bugzilla.redhat.com/1085029
3171           Ruby tests fail with latest Ruby
3172
3173       https://bugzilla.redhat.com/1079210
3174           virt-sparsify --in-place cannot sparsify as much as it should
3175
3176       https://bugzilla.redhat.com/1079182
3177           virt-df cannot report used disk space of windows guest when updated
3178           to 6.5
3179
3180       https://bugzilla.redhat.com/1077817
3181           virt-builder error: "syntax error at line 3: syntax error"
3182
3183       https://bugzilla.redhat.com/1056290
3184           virt-sparsify overwrites block devices if used as output files
3185
3186       https://bugzilla.redhat.com/812970
3187           virt-rescue cannot set ≥<rescue> prompt, on Ubuntu 12.04
3188

RELEASE NOTES FOR LIBGUESTFS 1.26

3190       These release notes only cover the differences from the previous
3191       stable/dev branch split (1.24.0).  For detailed changelogs, please see
3192       the git repository, or the ChangeLog file distributed in the tarball.
3193
3194   New features
3195       Tools
3196
3197       virt-customize(1) is a new tool for customizing virtual machine disk
3198       images.  It lets you install packages, edit configuration files, run
3199       scripts, set passwords and so on.  virt-builder(1) and virt-sysprep(1)
3200       use virt-customize, and command line options across all these tools are
3201       now identical.
3202
3203       virt-diff(1) is a new tool for showing the differences between the
3204       filesystems of two virtual machines.  It is mainly useful when showing
3205       what files have been changed between snapshots.
3206
3207       virt-builder(1) has been greatly enhanced.  There are many more ways to
3208       customize the virtual machine.  It can pull templates from multiple
3209       repositories.  A parallelized internal xzcat implementation speeds up
3210       template decompression.  Virt-builder uses an optimizing planner to
3211       choose the fastest way to build the VM.  It is now easier to use virt-
3212       builder from other programs.  Internationalization support has been
3213       added to metadata.  More efficient SELinux relabelling of files.  Can
3214       build guests for multiple architectures.  Error messages have been
3215       improved.  (Pino Toscano)
3216
3217       virt-sparsify(1) has a new --in-place option.  This sparsifies an image
3218       in place (without copying it) and is also much faster.  (Lots of help
3219       provided by Paolo Bonzini)
3220
3221       virt-sysprep(1) can delete and scrub files under user control.  You can
3222       lock user accounts or set random passwords on accounts.  Can remove
3223       more log files.  Can unsubscribe a guest from Red Hat Subscription
3224       Manager.  New flexible way to enable and disable operations.  (Wanlong
3225       Gao, Pino Toscano)
3226
3227       virt-win-reg(1) allows you to use URIs to specify remote disk images.
3228
3229       virt-format(1) can now pass the extra space that it recovers back to
3230       the host.
3231
3232       guestfish(1) has additional environment variables to give fine control
3233       over the "><fs>" prompt.  Guestfish reads its (rarely used)
3234       configuration file in a different order now so that local settings
3235       override global settings.  (Pino Toscano)
3236
3237       virt-make-fs(1) was rewritten in C, but is unchanged in terms of
3238       functionality and command line usage.
3239
3240       Language bindings
3241
3242       The OCaml bindings have a new "Guestfs.Errno" module, used to check the
3243       error number returned by "Guestfs.last_errno".
3244
3245       PHP tests now work.  (Pino Toscano)
3246
3247       Inspection
3248
3249       Inspection can recognize Debian live images.
3250
3251       Architectures
3252
3253       ARMv7 (32 bit) now supports KVM acceleration.
3254
3255       Aarch64 (ARM 64 bit) is supported, but the appliance part does not work
3256       yet.
3257
3258       PPC64 support has been fixed and enhanced.
3259
3260   Security
3261       Denial of service when inspecting disk images with corrupt btrfs
3262       volumes
3263           It was possible to crash libguestfs (and programs that use
3264           libguestfs as a library) by presenting a disk image containing a
3265           corrupt btrfs volume.
3266
3267           This was caused by a NULL pointer dereference causing a denial of
3268           service, and is not thought to be exploitable any further.
3269
3270           See commit d70ceb4cbea165c960710576efac5a5716055486 for the fix.
3271           This fix is included in libguestfs stable branches ≥ 1.26.0,
3272           ≥ 1.24.6 and ≥ 1.22.8, and also in RHEL ≥ 7.0.  Earlier versions of
3273           libguestfs are not vulnerable.
3274
3275       Better generation of random root passwords and random seeds
3276           When generating random root passwords and random seeds, two bugs
3277           were fixed which are possibly security related.  Firstly we no
3278           longer read excessive bytes from /dev/urandom (most of which were
3279           just thrown away).  Secondly we changed the code to avoid modulo
3280           bias.  These issues were not thought to be exploitable.  (Both
3281           changes suggested by Edwin Török)
3282
3283   API
3284       GUID parameters are now validated when they are passed to API calls,
3285       whereas previously you could have passed any string.  (Pino Toscano)
3286
3287       New APIs
3288
3289       "guestfs_add_drive_opts": new "discard" parameter
3290           The new "discard" parameter allows fine-grained control over
3291           discard/trim support for a particular disk.  This allows the host
3292           file to become more sparse (or thin-provisioned) when you delete
3293           files or issue the "guestfs_fstrim" API call.
3294
3295       "guestfs_add_domain": new parameters: "cachemode", "discard"
3296           These parameters are passed through when adding the domain's disks.
3297
3298       "guestfs_blkdiscard"
3299           Discard all blocks on a guestfs device.  Combined with the
3300           "discard" parameter above, this makes the host file sparse.
3301
3302       "guestfs_blkdiscardzeroes"
3303           Test if discarded blocks read back as zeroes.
3304
3305       "guestfs_compare_*"
3306       "guestfs_copy_*"
3307           For each struct returned through the API, libguestfs now generates
3308           "guestfs_compare_*" and "guestfs_copy_*" functions to allow you to
3309           compare and copy structs.
3310
3311       "guestfs_copy_attributes"
3312           Copy attributes (like permissions, xattrs, ownership) from one file
3313           to another.  (Pino Toscano)
3314
3315       "guestfs_disk_create"
3316           A flexible API for creating empty disk images from scratch.  This
3317           avoids the need to call out to external programs like qemu-img(1).
3318
3319       "guestfs_get_backend_settings"
3320       "guestfs_set_backend_settings"
3321           Per-backend settings (can also be set via the environment variable
3322           "LIBGUESTFS_BACKEND_SETTINGS").  The main use for this is forcing
3323           TCG mode in the qemu-based backends, for example:
3324
3325            export LIBGUESTFS_BACKEND=direct
3326            export LIBGUESTFS_BACKEND_SETTINGS=force_tcg
3327
3328       "guestfs_part_get_name"
3329           Get the label or name of a partition (for GPT disk images).
3330
3331   Build changes
3332       The following extra packages are required to build libguestfs 1.26:
3333
3334       supermin ≥ 5
3335           Supermin version 5 is required to build this version of libguestfs.
3336
3337       flex, bison
3338           Virt-builder now uses a real parser to parse its metadata file, so
3339           these tools are required.
3340
3341       xz  This is now a required build dependency, where previously it was
3342           (in theory) optional.
3343
3344   Internals
3345       PO message extraction rewritten to be more robust.  (Pino Toscano)
3346
3347       "podwrapper" gives an error if the --insert or --verbatim argument
3348       pattern is not found.
3349
3350       Libguestfs now passes the qemu -enable-fips option to enable FIPS, if
3351       qemu supports it.
3352
3353       "./configure --without-qemu" can be used if you don't want to specify a
3354       default hypervisor.
3355
3356       Copy-on-write [COW] overlays, used for example for read-only drives,
3357       are now created through an internal backend API
3358       (".create_cow_overlay").
3359
3360       Libvirt backend uses some funky C macros to generate XML.  These are
3361       simpler and safer.
3362
3363       The ChangeLog file format has changed.  It is now just the same as "git
3364       log", instead of using a custom format.
3365
3366       Appliance start-up has changed:
3367
3368       ·   The libguestfs appliance now initializes LVM the same way as it is
3369           done on physical machines.
3370
3371       ·   The libguestfs appliance does not write an empty string to
3372           /proc/sys/kernel/hotplug when starting up.
3373
3374           Note that you must configure your kernel to have
3375           "CONFIG_UEVENT_HELPER_PATH=""" otherwise you will get strange LVM
3376           errors (this applies as much to any Linux machine, not just
3377           libguestfs).  (Peter Rajnoha)
3378
3379       Libguestfs can now be built on arches that have ocamlc(1) but not
3380       ocamlopt(1).  (Hilko Bengen, Olaf Hering)
3381
3382       You cannot use "./configure --disable-daemon --enable-appliance".  It
3383       made no sense anyway.  Now it is expressly forbidden by the configure
3384       script.
3385
3386       The packagelist file uses "m4" for macro expansion instead of "cpp".
3387
3388   Bugs fixed
3389       https://bugzilla.redhat.com/1073906
3390           java bindings inspect_list_applications2 throws
3391           java.lang.ArrayIndexOutOfBoundsException:
3392
3393       https://bugzilla.redhat.com/1063374
3394           [RFE] enable subscription manager clean or unregister operation to
3395           sysprep
3396
3397       https://bugzilla.redhat.com/1060404
3398           virt-resize does not preserve GPT partition names
3399
3400       https://bugzilla.redhat.com/1057504
3401           mount-local should give a clearer error if root is not mounted
3402
3403       https://bugzilla.redhat.com/1056290
3404           virt-sparsify overwrites block devices if used as output files
3405
3406       https://bugzilla.redhat.com/1055452
3407           libguestfs: error: invalid backend: appliance
3408
3409       https://bugzilla.redhat.com/1054761
3410           guestfs_pvs prints "unknown device" if a physical volume is missing
3411
3412       https://bugzilla.redhat.com/1053847
3413           Recommended default clock/timer settings
3414
3415       https://bugzilla.redhat.com/1046509
3416           ruby-libguestfs throws "expecting 0 or 1 arguments" on
3417           Guestfs::Guestfs.new
3418
3419       https://bugzilla.redhat.com/1045450
3420           Cannot inspect cirros 0.3.1 disk image fully
3421
3422       https://bugzilla.redhat.com/1045033
3423           LIBVIRT_DEFAULT_URI=qemu:///system breaks libguestfs
3424
3425       https://bugzilla.redhat.com/1044585
3426           virt-builder network (eg. --install) doesn't work if resolv.conf
3427           sets nameserver 127.0.0.1
3428
3429       https://bugzilla.redhat.com/1044014
3430           When SSSD is installed, libvirt configuration requires
3431           authentication, but not clear to user
3432
3433       https://bugzilla.redhat.com/1039995
3434           virt-make-fs fails making fat/vfat whole disk: Device partition
3435           expected, not making filesystem on entire device '/dev/sda' (use -I
3436           to override)
3437
3438       https://bugzilla.redhat.com/1039540
3439           virt-sysprep to delete more logfiles
3440
3441       https://bugzilla.redhat.com/1033207
3442           RFE: libguestfs inspection does not recognize Free4NAS live CD
3443
3444       https://bugzilla.redhat.com/1028660
3445           RFE: virt-sysprep/virt-builder should have an option to lock a user
3446           account
3447
3448       https://bugzilla.redhat.com/1026688
3449           libguestfs fails examining libvirt guest with ceph drives: rbd:
3450           image name must begin with a '/'
3451
3452       https://bugzilla.redhat.com/1022431
3453           virt-builder fails if $HOME/.cache doesn't exist
3454
3455       https://bugzilla.redhat.com/1022184
3456           libguestfs: do not use versioned jar file
3457
3458       https://bugzilla.redhat.com/1020806
3459           All libguestfs LVM operations fail on Debian/Ubuntu
3460
3461       https://bugzilla.redhat.com/1008417
3462           Need update helpout of part-set-gpt-type
3463
3464       https://bugzilla.redhat.com/953907
3465           virt-sysprep does not correctly set the hostname on Debian/Ubuntu
3466
3467       https://bugzilla.redhat.com/923355
3468           guestfish prints literal "\n" in error messages
3469
3470       https://bugzilla.redhat.com/660687
3471           guestmount: "touch" command fails: touch: setting times of
3472           `timestamp': Invalid argument
3473
3474       https://bugzilla.redhat.com/593511
3475           [RFE] function to get partition name
3476
3477       https://bugzilla.redhat.com/563450
3478           list-devices returns devices of different types out of order
3479

RELEASE NOTES FOR LIBGUESTFS 1.24

3481       These release notes only cover the differences from the previous
3482       stable/dev branch split (1.22.0).  For detailed changelogs, please see
3483       the git repository, or the ChangeLog file distributed in the tarball.
3484
3485   New features
3486       User-Mode Linux (UML) can be used as an alternative backend (ie.
3487       instead of KVM).  This improves performance especially when using
3488       libguestfs inside a VM (eg. in the cloud).  UML is supported as a
3489       first-class backend.  See "USER-MODE LINUX BACKEND" in guestfs(3) for
3490       how to use this.
3491
3492       ARM (32 bit) and PPC64 are now fully supported.
3493
3494       Tools
3495
3496       virt-builder(1) is a new tool for building virtual machine images.  It
3497       lets you rapidly and securely create guests and customize them.
3498
3499       New virt-sysprep(1) operations: Remove files in /tmp and /var/tmp.
3500       Remove RPM database files.  Change root and user passwords.  More log
3501       files are removed.  New operations which are not enabled by default:
3502       Create random UUIDs for filesystems.  Reset firewall rules.  (Wanlong
3503       Gao)
3504
3505       virt-resize(1) and virt-sysprep can now use URIs to specify a remote
3506       disk.
3507
3508       Use "guestfish -N filename=type" to create a named disk image (instead
3509       of the default test1.img etc).
3510
3511       virt-sparsify(1) now tests if there is enough disk space to complete
3512       the operation, instead of possibly running out of space half way
3513       through.
3514
3515       virt-format(1) and virt-make-fs(1): new --label option for setting
3516       filesystem label.
3517
3518       virt-resize --no-sparse flag can be used to resize on to partitions and
3519       other targets that are not zeroed.
3520
3521       Language bindings
3522
3523       New bindings for the Go programming language.
3524
3525       API
3526
3527       Support for the systemd journal.
3528
3529       "guestfs_add_drive_opts" can now control the qemu caching mode through
3530       a new "cachemode" parameter.  You can select improved performance for
3531       temporary drives, or safety.
3532
3533       "guestfs_set_label" now works for XFS and btrfs.
3534
3535       New GUESTFS_EVENT_WARNING event for warning messages.
3536
3537       Inspection
3538
3539       Better inspection of SUSE guests (Olaf Hering).
3540
3541       Better support for non-standard Windows %systemroot% (Matthew Booth).
3542
3543       Enhanced error reporting for Augeas errors.
3544
3545   Security
3546       CVE-2013-2124
3547           https://bugzilla.redhat.com/show_bug.cgi?id=968306
3548
3549           A denial of service was possible when inspecting certain guests.
3550           The fix has been backported to 1.20 and 1.22 branches.
3551
3552       CVE-2013-4419
3553           https://www.redhat.com/archives/libguestfs/2013-October/msg00031.html
3554
3555           Fix insecure temporary directory handling for remote guestfish.
3556           The fix has been backported to 1.20 and 1.22 branches.
3557
3558   New APIs
3559        add-drive-scratch: Add a temporary scratch drive
3560        aug-label
3561        aug-setm
3562        journal-open: Systemd journal support
3563        journal-close
3564        journal-next
3565        journal-skip
3566        journal-get
3567        journal-get-data-threshold
3568        journal-set-data-threshold
3569        remount: Allow rw flag to be adjusted on mounted filesystems
3570        set-uuid: Set UUID of filesystem
3571
3572       "is-file", "is-dir", "is-blockdev", "is-chardev", "is-fifo",
3573       "is-socket" APIs now have an extra "followsymlinks" flag.
3574
3575       "add-drive" has a new "cachemode" parameter.
3576
3577   Build changes
3578       The following packages are required to build libguestfs 1.24:
3579
3580       Augeas ≥ 1.0.0
3581
3582       The following optional packages may be added to enhance functionality
3583       but are not required:
3584
3585       sd-journal
3586           To read journal files from guests which use that.
3587
3588       url_mkcow
3589           For UML backend.
3590
3591       curl
3592       gpg
3593       xz  For virt-builder.
3594
3595       golang ≥ 1.1.1
3596           For Go language bindings.
3597
3598   Internals
3599       New "make check-*" rules replace "make extra-tests".  See "make help"
3600       and guestfs(3) for details.
3601
3602       Perl code can now be valgrinded.
3603
3604       Inspection code is now fuzz-tested.
3605
3606       "make" no longer recurses into the generator directory in every other
3607       directory.  This reduces the overhead of builds considerably.
3608
3609       Additional tests for Augeas, hivex.
3610
3611       Add a launch timeout of 20 minutes waiting for the appliance to start
3612       up.
3613
3614       Add a timeout (4 hours) to all tests so we can catch the case where
3615       qemu or other components hang.
3616
3617       Use kvmclock and "-cpu host".  This improves clock stability and
3618       overall performance.
3619
3620       "./configure --enable-packet-dump" mode is fixed.
3621
3622       "./configure --enable-valgrind-daemon" mode has been rewritten.  It is
3623       now feasible for developers to keep this flag enabled at all times.
3624
3625       Backends have been refactored to be modular (although they are not
3626       actually loadable modules).
3627
3628       When enabled, the network now uses resolver configuration (ie.
3629       /etc/resolv.conf) from the host.
3630
3631   Bugs fixed
3632       https://bugzilla.redhat.com/1019889
3633           libguestfs-tools.conf should have a man page
3634
3635       https://bugzilla.redhat.com/1018149
3636           valgrind errors in btrfs_subvolume_list
3637
3638       https://bugzilla.redhat.com/1002032
3639           mke2fs can't return the correct filesystem type when blockscount is
3640           less than 2048 for ext3
3641
3642       https://bugzilla.redhat.com/1001876
3643           Update "rsync-out" helpout for using wildcard
3644
3645       https://bugzilla.redhat.com/1001875
3646           Argument 'excludes' of tar-out does not work
3647
3648       https://bugzilla.redhat.com/1000428
3649           virt-format uses wrong partition type for vfat filesystems
3650
3651       https://bugzilla.redhat.com/1000121
3652           'sh' command before mount causes daemon to segfault
3653
3654       https://bugzilla.redhat.com/998513
3655           guestfish does not work when you mix --remote and --add options
3656
3657       https://bugzilla.redhat.com/998482
3658           guestfish remote prints "libguestfs: error: waitpid (qemu): No
3659           child processes"
3660
3661       https://bugzilla.redhat.com/995711
3662           list-filesystems command fails if there are no block devices
3663
3664       https://bugzilla.redhat.com/994517
3665           cache=none/O_DIRECT workaround doesn't work for images with backing
3666           files
3667
3668       https://bugzilla.redhat.com/989356
3669           cap-get-file will return error if the file has not be set
3670           capabilities
3671
3672       https://bugzilla.redhat.com/986877
3673           RFE: Implement set-uuid command
3674
3675       https://bugzilla.redhat.com/986875
3676           RFE: Implement set-label for xfs
3677
3678       https://bugzilla.redhat.com/985269
3679           Can't set acl value for a specified user with 'acl-set-file'
3680
3681       https://bugzilla.redhat.com/983218
3682           libguestfs double free when kernel link fails during launch
3683
3684       https://bugzilla.redhat.com/981715
3685           Make xfs filesystem failed with specified blocksize, gives "unknown
3686           option -b" error
3687
3688       https://bugzilla.redhat.com/981683
3689           "hivex-commit" should fail with a relative path
3690
3691       https://bugzilla.redhat.com/981663
3692           disk-format "qemu-img info: JSON parse error" when target file does
3693           not exist
3694
3695       https://bugzilla.redhat.com/978302
3696           mke2fs-J should give a meaningful error when specified type is
3697           anything except 'ext{2,3,4}'
3698
3699       https://bugzilla.redhat.com/975797
3700           Specifying virtio interface ('iface' parameter) breaks the direct
3701           backend - libguestfs hangs
3702
3703       https://bugzilla.redhat.com/975753
3704           "virt-resize --expand" and "virt-resize --resize" outputs error
3705           message for Win2008 32bit OS
3706
3707       https://bugzilla.redhat.com/975412
3708           inspection: Augeas expressions are broken with augeas >= 0.10
3709
3710       https://bugzilla.redhat.com/974904
3711           virt-resize --expand fails on Ubuntu Cloud Image
3712
3713       https://bugzilla.redhat.com/974489
3714           Regression: Fedora inspection broken by change from guestfs_exists
3715           to guestfs_is_file
3716
3717       https://bugzilla.redhat.com/972775
3718           txz-out command produces a bzip2-compressed file (should be xz-
3719           compressed)
3720
3721       https://bugzilla.redhat.com/969845
3722           upload to a directory occasionally hangs instead of failing
3723
3724       https://bugzilla.redhat.com/968875
3725           virt-sysprep should support URL-type arguments
3726
3727       https://bugzilla.redhat.com/624334
3728           blockdev-setbsz succeeds, but does not affect blockdev-getbsz
3729

RELEASE NOTES FOR LIBGUESTFS 1.22

3731       These release notes only cover the differences from the previous
3732       stable/dev branch split (1.20.0).  For detailed changelogs, please see
3733       the git repository, or the ChangeLog file distributed in the tarball.
3734
3735   New features
3736       API
3737
3738       Remote access to disks:
3739
3740       ·   Network Block Device (nbd)
3741
3742       ·   Secure Shell (ssh)
3743
3744       ·   HTTP and HTTPS
3745
3746       ·   FTP and FTPS
3747
3748       ·   iSCSI
3749
3750       ·   Gluster
3751
3752       ·   Ceph/rbd (Mike Kelly)
3753
3754       ·   Sheepdog
3755
3756       ·   TFTP
3757
3758       The SYSLINUX and EXTLINUX bootloaders can now be installed in disk
3759       images using the API.
3760
3761       Inspection can now handle filesystems such as btrfs where subvolumes
3762       are separately mountable (Matthew Booth).
3763
3764       "Attach methods" are now known as "backends".  Compatibility with
3765       existing code is preserved.
3766
3767       Filenames can contain ':', as long as newer QEMU is being used.
3768
3769       Tools
3770
3771       Virt-alignment-scan and virt-df scan multiple guests in parallel.
3772
3773       Guestmount now passes errno accurately back to userspace in almost all
3774       cases.
3775
3776       Guestfish and other tools can now use a URI-like syntax to access
3777       remote disks, eg:
3778
3779        guestfish -a ssh://example.com/path/to/disk.img
3780
3781       Guestfish and guestmount now allow you to specify the filesystem type
3782       when mounting, which is more secure (Dave Vasilevsky).
3783
3784       Guestfish is now the "guest filesystem shell".
3785
3786       Guestfish allows only 1 "true" "t" "yes" "y" "on" 0 "false" "f" "no"
3787       "n" "off" for boolean values (case insensitive), and gives an error for
3788       all other strings.
3789
3790       New tool "guestunmount" for unmounting FUSE filesystems safely.
3791
3792       "guestmount --no-fork" flag prevents guestmount from daemonizing.
3793
3794       Virt-resize now uses sparse copies by default, saving considerable
3795       space for guests which are mostly empty.
3796
3797       Bash tab completion has been rewritten and can now handle most tools,
3798       and correctly tab-complete "--long" options.  In addition, bash
3799       completion scripts are loaded on demand.
3800
3801       Language bindings
3802
3803       The Java API now supports events.
3804
3805       The Python object now inherits from the "object" base class.
3806
3807       Python methods which previously returned lists of tuples can now be
3808       made to return a Python dict.  For backwards compatibility, you have to
3809       enable this by using the constructor option
3810       "guestfs.GuestFS (python_return_dict=True)".
3811
3812       The PHP bindings are now tested properly, and have had multiple fixes.
3813
3814       The long-deprecated Perl "Sys::Guestfs::Lib" library has been removed.
3815       https://www.redhat.com/archives/libguestfs/2013-April/msg00001.html
3816
3817       Examples
3818
3819       New example program showing how to enable debugging and capture log
3820       messages.
3821
3822       Other
3823
3824       Distributors can add arbitrary extra packages to the appliance by
3825       doing:
3826
3827        ./configure --with-extra-packages="list of package names"
3828
3829       Distributors can use:
3830
3831        ./configure --with-supermin-extra-options="..."
3832
3833       to add arbitrary extra options to supermin.
3834
3835   Security
3836       No security issues were found in this release.
3837
3838   New APIs
3839        cp-r
3840        extlinux
3841        feature-available
3842        get-program
3843        is-whole-device
3844        part-get-gpt-type
3845        part-set-gpt-type
3846        rename
3847        set-program
3848        syslinux
3849
3850       C only:
3851
3852        guestfs_event_to_string
3853
3854   Internals
3855       The febootstrap tool has now been renamed to "supermin".  Libguestfs
3856       can use either, but now prefers "supermin".
3857       http://people.redhat.com/~rjones/supermin/
3858
3859       libxml2 is required to build libguestfs.
3860
3861       The hivexregedit program (from hivex) is required to build from git.
3862
3863       Internal functions can no longer be used unless the caller defines
3864       "-DGUESTFS_PRIVATE=1".
3865
3866       Enable C compiler warnings in Python, Ruby bindings.
3867
3868       Fail early and clearly if libvirt does not support qemu/KVM (eg. if
3869       default libvirt connection is to Xen).
3870
3871       "make print-subdirs" rule, useful for selectively running tests.
3872
3873       Multiple fixes to allow separated (sourcedir != builddir) builds.
3874
3875       Multiple fixes to Haskell bindings.
3876
3877       "ln" and "ln-f" APIs now capture "errno" correctly.
3878
3879       Language binding tests use (mostly) a standard numbering scheme and aim
3880       to test the same range of features in each language.  Also the number
3881       of launches required has been reduced so these tests should run much
3882       more quickly.
3883
3884       Library code internally uses GCC "__attribute__((cleanup))" (if
3885       available) to simplify memory allocation.
3886
3887       Internal header files have been reorganized.  See the comments in
3888       src/guestfs-internal*.h
3889
3890       Internal code shared between the library and certain tools is now
3891       located in a static "libutils" library.
3892
3893       Almost all subdirectories can now use parallel builds, although note
3894       that the top-level directories still build in series.
3895
3896       Use of "PATH_MAX" and "NAME_MAX" has been eliminated from the code.
3897
3898       The Java API now requires JVM ≥ 1.6.
3899
3900       Force use of "serial-tests" with automake ≥ 1.12.
3901
3902       Use of sockets in the library protocol layer is abstracted, allowing
3903       other non-POSIX layers to be added in future (see src/conn-socket.c).
3904
3905       "qemu-img info --output json" is used if available, for more secure
3906       parsing of the output of this command.
3907
3908       Distros can now use "make INSTALLDIRS=vendor install" to place Ruby
3909       bindings in vendordir.  This eliminates a non-upstream patch carried by
3910       both Fedora and Debian.
3911
3912       Valgrind log files are now written to tmp/valgrind-DATE-PID.log
3913
3914       "make clean" cleans the local "tmp/" directory.
3915
3916       The C API tests have been rewritten using a more flexible generator
3917       language that allows arbitrary C code to be executing during tests.
3918
3919   Bugs fixed
3920       https://bugzilla.redhat.com/961812
3921           Segfault in inspect-fs.c in mountable code
3922
3923       https://bugzilla.redhat.com/957772
3924           tar-out and base64-out quoting error
3925
3926       https://bugzilla.redhat.com/957380
3927           libguestfs: error: btrfsvol:/dev/sda2/root: root device not found:
3928           only call this function with a root device previously returned by
3929           guestfs_inspect_os
3930
3931       https://bugzilla.redhat.com/948324
3932           inspection fails if libosinfo is not installed
3933
3934       https://bugzilla.redhat.com/928995
3935           file on zero-sized file now produces "empty " instead of "empty"
3936
3937       https://bugzilla.redhat.com/921292
3938           qemu: could not open disk image /tmp/.../snapshot1: Permission
3939           denied
3940
3941       https://bugzilla.redhat.com/921040
3942           "error: external command failed, see earlier error messages"
3943           message needs to change
3944
3945       https://bugzilla.redhat.com/920225
3946           libguestfs should use --output json (if supported) to safely parse
3947           the output of qemu-img command
3948
3949       https://bugzilla.redhat.com/916780
3950           feature request: guestmount --with-cleanup-pipefd
3951
3952       https://bugzilla.redhat.com/914934
3953           oom-killer kills guestfsd when tar-in a lot of data
3954
3955       https://bugzilla.redhat.com/914931
3956           FileIn commands cause segfault if appliance dies during the file
3957           copy in
3958
3959       https://bugzilla.redhat.com/913145
3960           Misc leaks in virNetClientProgramCall in libvirt 1.0.2
3961
3962       https://bugzilla.redhat.com/912499
3963           Security context on image file gets reset
3964
3965       https://bugzilla.redhat.com/909836
3966           libguestfs-test-tool --qemu segfaults
3967
3968       https://bugzilla.redhat.com/909624
3969           Unexpected non-tail recursion in recv_from_daemon results in stack
3970           overflow in very long-running API calls that send progress messages
3971
3972       https://bugzilla.redhat.com/908322
3973           virt-tar fails on non-existent directory names "error in chunked
3974           encoding at /home/rjones/d/libguestfs/tools/virt-tar line 272."
3975
3976       https://bugzilla.redhat.com/908321
3977           virt-cat fails on directory names "/dev/stdout: error in chunked
3978           encoding"
3979
3980       https://bugzilla.redhat.com/907554
3981           btrfs causes subsequent ntfs-3g filesystem to fail
3982
3983       https://bugzilla.redhat.com/905341
3984           "No such file or directory" when execute "hivex-commit"
3985
3986       https://bugzilla.redhat.com/903620
3987           btrfs_subvolume_list broken due to change in subvolume list output
3988
3989       https://bugzilla.redhat.com/895910
3990           guestmount: rename() incorrectly follows symbolic links
3991
3992       https://bugzilla.redhat.com/895905
3993           guestmount: link() incorrectly returns ENOENT, when it should be
3994           EXDEV
3995
3996       https://bugzilla.redhat.com/895904
3997           checksums-out fail to compute the checksums of all regular files in
3998           directory
3999
4000       https://bugzilla.redhat.com/894545
4001           libguestfs FTBFS on Fedora 19 because of new ruby
4002
4003       https://bugzilla.redhat.com/890027
4004           virt-sysprep: Setting hostname, domain name and pretty name on
4005           Fedora 18 correctly
4006
4007       https://bugzilla.redhat.com/887971
4008           pvcreate fails if partition contains a swap signature
4009
4010       https://bugzilla.redhat.com/887520
4011           zero_free_space: open: /sysroot//ujqqq135.rd3: Cannot allocate
4012           memory
4013
4014       https://bugzilla.redhat.com/886915
4015           libguestfs with libvirt attach-method fails with odd error if
4016           default hypervisor is Xen
4017
4018       https://bugzilla.redhat.com/847549
4019           Adding a zero-length virtio-scsi disk causes: qemu-kvm:
4020           hw/scsi-bus.c:1568: scsi_req_complete: Assertion `req->status ==
4021           -1' failed.
4022
4023       https://bugzilla.redhat.com/811649
4024           libguestfs cannot open disk images which are symlinks to files that
4025           contain ':' (colon) character
4026
4027       https://bugzilla.redhat.com/664558
4028           RFE: Allow to set log callback in Ruby bindings
4029

RELEASE NOTES FOR LIBGUESTFS 1.20

4031       These release notes only cover the differences from the previous
4032       stable/dev branch split (1.18.0).  For detailed changelogs, please see
4033       the git repository, or the ChangeLog file distributed in the tarball.
4034
4035   New features
4036       libvirt and sVirt (SELinux confinement)
4037
4038       You can optionally use libvirt to launch and manage the backend
4039       appliance by:
4040
4041       ·   setting "LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]"
4042
4043       ·   using "./configure --with-default-attach-method=libvirt[:URI]"
4044
4045       ·   or calling the API method "guestfs_set_attach_method"
4046
4047       SVirt (SELinux confinement) is used to secure the libguestfs appliance,
4048       if the libvirt backend is selected.
4049
4050       virtio-scsi, larger number of drives, hotplugging
4051
4052       Virtio-scsi is now used by default, if it is available.  This greatly
4053       increases the number of drives that can be added to a single libguestfs
4054       handle (up to 255).
4055
4056       You can now hotplug drives (add and remove drives after launch).
4057
4058       Libguestfs can now handle > 25 disks, in all APIs, tools and tests.
4059
4060       You can label drives when adding them, then refer to them by label
4061       (/dev/disk/guestfs/LABEL) instead of having to use device names
4062       (/dev/sda).
4063
4064       new library features
4065
4066       POSIX Access Control Lists (ACLs) and Linux filesystem capabilities can
4067       now be read and written through the API.
4068
4069       Windows Dynamic Disks are now supported.  The metadata can only be read
4070       (volumes cannot be modified or created).  However the data/filesystems
4071       in the volumes themselves can be mounted, read and written (Matthew
4072       Booth).
4073
4074       Hivex (Windows Registry editing) is now directly supported through the
4075       API, making reading or editing the Windows Registry much more
4076       efficient.
4077
4078       Several libguestfs APIs were reimplemented so they no longer have any
4079       limits on output.  The reimplemented APIs are: "guestfs_cat",
4080       "guestfs_find", "guestfs_read_file", "guestfs_read_lines",
4081       "guestfs_write", "guestfs_write_append", "guestfs_lstatlist",
4082       "guestfs_lxattrlist", "guestfs_readlinklist", "guestfs_ls".
4083
4084       virt tools
4085
4086       "guestfish touch 'win:c:\new_file'" now works as expected.
4087
4088       "guestfish" has a new --network option, which enables the user network
4089       in libguestfs.
4090
4091       You can set "GUESTFISH_PS1" to use fancy prompts in "guestfish".
4092
4093       "rsync", "ssh", "less" and "lrzip" commands are now available in virt-
4094       rescue.  In addition, "rsync" can be used through the API for doing
4095       incremental copies.
4096
4097       "virt-sparsify" uses qcow2 v3 for increased efficiency.
4098
4099       "virt-sysprep" enhancements:
4100
4101       ·   generate new UUIDs for PVs and VGs
4102
4103       ·   remove the local machine ID (Wanlong Gao)
4104
4105       ·   remove ABRT data (Wanlong Gao)
4106
4107       ·   remove puppet keys and log files (Wanlong Gao)
4108
4109       ·   remove process accounting files (Wanlong Gao)
4110
4111       ·   new --firstboot parameter allowing firstboot scripts for
4112           customizing guests
4113
4114       ·   remove HOSTNAME field from "ifcfg-eth*" files (Wanlong Gao)
4115
4116       ·   miscellaneous improvements for SuSE (Olaf Hering)
4117
4118       ·   remove man pages cache (Wanlong Gao)
4119
4120       ·   remove crash data generated by kexec-tools (Wanlong Gao)
4121
4122       "virt-make-fs" can now create virtual floppy disks (VFDs).
4123
4124       "guestmount" has a --pid-file option, which can be used to avoid a race
4125       condition between unmounting the filesystem and using the underlying
4126       disk image.
4127
4128       language bindings
4129
4130       Full-featured Lua bindings have been added in this release (thanks to
4131       Jerome Vuarand for many suggestions).
4132
4133       In Ruby, optional arguments hash is optional.
4134
4135       In Python, optional arguments now don't use special "sentinel" values,
4136       so any integer can be passed as an optional argument.
4137
4138       Erlang bindings now come with examples and tests.
4139
4140       Erlang bindings now handle 64 bit integer parameters correctly.
4141
4142       The automated 'bindtests' now test for 64 bit cleanliness in parameter
4143       passing.  Several bugs in the bindings were found and fixed as a
4144       result.
4145
4146       Better handling of blocking and non-blocking functions should make
4147       libguestfs calls more efficient.
4148
4149       inspection
4150
4151       Windows guests with unlimited-sized Registries are now supported.  By
4152       adding the hivex API to the libguestfs API, it is much more efficient
4153       and easier to inspect and modify the Windows Registry in guests.
4154
4155       Better support for SuSE guests (Olaf Hering).
4156
4157       Return the architecture of installed applications (John Eckersberg).
4158
4159       Windows 8 is now supported.
4160
4161       Fedora 18 is now supported.
4162
4163       Inspection of ISOs/CDs/DVDs can now use the libosinfo database.
4164
4165       ports
4166
4167       Libguestfs without the appliance can be compiled on Mac OS X (Masami
4168       HIRATA).
4169
4170       RHEL 5 is now explicitly supported through the 'oldlinux' branch in
4171       upstream git.
4172
4173       PowerPC 64 bit is now supported.  Also libguestfs has been examined for
4174       endianness bugs and these have been fixed.
4175
4176       daemon
4177
4178       A man page for the daemon (guestfsd(8)) is included.
4179
4180   Security
4181       guestfish history file
4182
4183       The $HOME/.guestfish history file is now created with 0600 permissions
4184       (instead of 0644 before) so it is no longer world readable.
4185
4186       CVE-2012-2690
4187
4188       Old versions of both "virt-edit" and the "guestfish" "edit" command
4189       created a new file containing the changes but did not set the
4190       permissions, etc of the new file to match the old one.  The result of
4191       this was that if you edited a security sensitive file such as
4192       /etc/shadow then it would be left world-readable after the edit.
4193
4194       This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥
4195       1.16.
4196
4197       For further information, see
4198       https://bugzilla.redhat.com/show_bug.cgi?id=788642
4199
4200   New APIs
4201        acl-delete-def-file
4202        acl-get-file
4203        acl-set-file
4204        canonical-device-name
4205        cap-get-file
4206        cap-set-file
4207        create-flags
4208        device-index
4209        disk-has-backing-file
4210        disk-format
4211        disk-virtual-size
4212        filesystem-available
4213        fill-dir
4214        fstrim
4215        get-cachedir
4216        get-libvirt-requested-credentials
4217        get-libvirt-requested-credential-prompt
4218        get-libvirt-requested-credential-challenge
4219        get-libvirt-requested-credential-defresult
4220        get-tmpdir
4221        hivex-close
4222        hivex-commit
4223        hivex-node-add-child
4224        hivex-node-children
4225        hivex-node-delete-child
4226        hivex-node-get-child
4227        hivex-node-get-value
4228        hivex-node-name
4229        hivex-node-parent
4230        hivex-node-set-value
4231        hivex-node-values
4232        hivex-open
4233        hivex-root
4234        hivex-value-key
4235        hivex-value-type
4236        hivex-value-utf8
4237        hivex-value-value
4238        inspect-list-applications2 (John Eckersberg)
4239        list-ldm-volumes
4240        list-ldm-partitions
4241        ldmtool-create-all
4242        ldmtool-diskgroup-disks
4243        ldmtool-diskgroup-name
4244        ldmtool-diskgroup-volumes
4245        ldmtool-remove-all
4246        ldmtool-scan
4247        ldmtool-scan-devices
4248        ldmtool-volume-hint
4249        ldmtool-volume-partitions
4250        ldmtool-volume-type
4251        ls0
4252        max-disks
4253        mke2fs (Wanlong Gao)
4254        mklost-and-found
4255        mkswap [added label and uuid optional arguments]
4256        mktemp (Wanlong Gao)
4257        nr-devices
4258        parse-environment
4259        parse-environment-list
4260        rm-f
4261        rsync
4262        rsync-in
4263        rsync-out
4264        set-cachedir
4265        set-libvirt-supported-credentials
4266        set-libvirt-requested-credential
4267        set-tmpdir
4268        shutdown [backported to 1.16 and 1.18]
4269        tar-in [added compress flag]
4270        tar-out [added compress, numericowner, excludes flags]
4271        umount [added force and lazy optional arguments]
4272        utsname
4273        xfs-admin (Wanlong Gao)
4274        xfs-growfs (Wanlong Gao)
4275        xfs-info (Wanlong Gao)
4276        xfs-repair (Wanlong Gao)
4277
4278       In the C API only:
4279
4280        guestfs_push_error_handler
4281        guestfs_pop_error_handler
4282
4283   Internals
4284       qemu ≥ 1.1 is required (≥ 1.2 preferred).
4285
4286       febootstrap ≥ 3.20 is required.
4287
4288       libvirt is optional, but if you want to use the new libvirt backend for
4289       launching the appliance then libvirt ≥ 0.10.2 would be required.
4290
4291       Coverity has been run over the complete codebase, and many issues fixed
4292       (thanks Ondrej Vasik, Kamil Dudka).
4293
4294       Functions which previously had no optargs can now be converted to ones
4295       with optargs, making extending the API much more flexible.  Source and
4296       binary backwards compatibility is preserved for users of the API.
4297
4298       The way that libguestfs APIs and structures are represented in the
4299       generator has changed to use an OCaml struct instead of a tuple.  This
4300       makes generator descriptions more flexible and easier to understand.
4301       For details see commits 39d1a7db and eb185eef.
4302
4303       Separation of the library code into more files:
4304
4305       ·   Launch backends are now located in separate files eg.
4306           src/launch-appliance.c, "src/launch-libvirt.c".
4307
4308       ·   Generated action code is now split over several src/action*.c
4309           files, for faster compilation.
4310
4311       ·   The huge src/guestfs.c file is now split into smaller logical
4312           units.
4313
4314       POD (documentation) is now generated using a rewritten Perl program
4315       instead of pod2* + shell scripts.
4316
4317       Man pages now contain stable dates (Hilko Bengen).
4318
4319       Skipped tests now exit with code 77, so they appear as "SKIP:" in "make
4320       check" output.
4321
4322       The parallel mount-local test has been rewritten in C (RHBZ#838081).
4323
4324       Ruby 1.8.5 is now supported (though Ruby ≥ 1.9 is preferred).
4325
4326       Perl bindings can be disabled via "./configure --disable-perl" (Wulf C.
4327       Krueger).  Note that Perl is still required in order to build
4328       libguestfs.
4329
4330       Java bindings are now enabled/disabled using "./configure --with-java"
4331       or "./configure --without-java" (Wulf C. Krueger).
4332
4333       New configure options "./configure --enable-code-profiling" and
4334       "./configure --enable-code-coverage".
4335
4336       Multiple fixes to use of 64 bit integers in language bindings.
4337
4338       The appliance backend now uses sgabios instead of vgabios (Dan
4339       Berrange).
4340
4341       The "./run" script now sets enough environment variables that you can
4342       run OCaml, Python, Ruby, Java, GJS, Erlang, Lua programs.
4343
4344       "./run --test" flag for running tests with minimal output.  It also
4345       prints the time taken to run each test.
4346
4347       The "./run" script now builds up paths cumulatively, meaning that you
4348       can use "./run" twice, or use the libguestfs and libvirt "./run"
4349       scripts together.
4350
4351       You can extract a list of external commands required by the daemon,
4352       making building the appliance on certain distros easier (Olaf Hering).
4353
4354       The "virt-rescue" command is now tested during "make check".
4355
4356       The generator now removes unused generated files.  This helps when
4357       going back and forth with git rebase, git bisect, etc.
4358
4359       Tests now run in a separate toplevel "tmp/" directory in the source.
4360       This allows the directory to be labelled for SELinux (sVirt), and also
4361       makes it easier to clean up.
4362
4363       "make syntax-check" now works to a greater extent, and many problems in
4364       the main code that were found by syntax-check have been fixed (thanks
4365       Jim Meyering).
4366
4367       Emacs mode (-*- foo -*-) has been added to generated files.
4368
4369       Progress bar output is now sent to /dev/tty so it doesn't end up in the
4370       regular output of the program.  virt-resize and virt-sparsify now
4371       suppress progress bars if stdout is not a tty.
4372
4373       There is now a "./configure --without-libvirt" option.  This is useful
4374       for testing that the code still compiles without libvirt.
4375
4376       There is now an internal mini-library for running commands.  This
4377       allows us to redirect errors from external commands into events.
4378
4379       Code for handling temporary directories and the appliance cache was
4380       completely overhauled.
4381
4382       Code for temporarily ignoring/disabling errors now looks like this:
4383
4384        guestfs_push_error_handler (g, NULL, NULL);
4385        guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */
4386        guestfs_pop_error_handler (g);
4387
4388       The "tests/extra" directory has gone.  The "extra tests" are now split
4389       into separately runnable targets, such as "make check-valgrind".  Use
4390       "make help" to get a summary of the targets.
4391
4392       The "lpj" option is passed to the appliance kernel when using TCG.
4393       This should improve clock stability (thanks Marcelo Tosatti, Olaf
4394       Hering).
4395
4396   Bugs fixed
4397       https://bugzilla.redhat.com/882417
4398           libguestfs tools fail with odd error messages if TMPDIR is not an
4399           absolute path
4400
4401       https://bugzilla.redhat.com/882299
4402           Windows 8 guest disks can't be mounted: "The NTFS partition is in
4403           an unsafe state. Please resume and shutdown Windows fully (no
4404           hibernation or fast restarting), or mount the volume read-only with
4405           the 'ro' mount option."
4406
4407       https://bugzilla.redhat.com/881953
4408           libguestfs: migration to /etc/hostname, /etc/vconsole.conf,
4409           /etc/locale.conf
4410
4411       https://bugzilla.redhat.com/880801
4412           virt-df with two -a options displays incorrect disk image name
4413
4414       https://bugzilla.redhat.com/879416
4415           libguestfs-test-tool pauses when you use --help option
4416
4417       https://bugzilla.redhat.com/876579
4418           mke2fs API does not apply block device naming translation to
4419           journaldevice optarg
4420
4421       https://bugzilla.redhat.com/860235
4422           SELinux policy ought to allow qemu to write to
4423           unconfined_u:object_r:user_tmp_t:s0
4424
4425       https://bugzilla.redhat.com/859949
4426           RFE: inspect-list-applications does not return the architecture of
4427           RPM packages
4428
4429       https://bugzilla.redhat.com/859885
4430           inspect-list-applications does not list all installed RPM packages
4431           with same name and different versions
4432
4433       https://bugzilla.redhat.com/859876
4434           guestfish printed paths are not canonicalized
4435
4436       https://bugzilla.redhat.com/859875
4437           Progress bar output should go to tty(?) stderr(?)
4438
4439       https://bugzilla.redhat.com/858696
4440           virt-sysprep reports Guestfs.Error("read_lines: fopen:
4441           /etc/sysconfig/network: No such file or directory") on some Fedora
4442           guests
4443
4444       https://bugzilla.redhat.com/858128
4445           libguestfs fail to list devices added by add-drive-ro-with-if twice
4446
4447       https://bugzilla.redhat.com/858126
4448           virt-inspector fail to work with some windows guests
4449
4450       https://bugzilla.redhat.com/853762
4451           virt-sparsify should use a more robust method to detect the input
4452           format
4453
4454       https://bugzilla.redhat.com/853393
4455           libvirt doesn't label console, serial sockets
4456
4457       https://bugzilla.redhat.com/853159
4458           virt-rescue in Fedora 18 is completely broken
4459
4460       https://bugzilla.redhat.com/852394
4461           libguestfs inspection limits registries to 100 MiB
4462
4463       https://bugzilla.redhat.com/852194
4464           virt-sparsify --compress fails if output is raw format
4465
4466       https://bugzilla.redhat.com/847881
4467           RFE: allow extra arguments (like --exclude) to tar-out
4468
4469       https://bugzilla.redhat.com/847880
4470           tar-out should allow (or force) --numeric-owner
4471
4472       https://bugzilla.redhat.com/845522
4473           guestfish "copy-out / localdir" command fails with "No such file or
4474           directory"
4475
4476       https://bugzilla.redhat.com/845488
4477           Long filenames on NTFS cause tar-out, copy-out etc to fail with
4478           error "Cannot open: File name too long"
4479
4480       https://bugzilla.redhat.com/842307
4481           RFE: Need help designing and implementing selinux policy for
4482           libguestfs/sVirt
4483
4484       https://bugzilla.redhat.com/840572
4485           virt-make-fs / tar-in should support vfat properly
4486
4487       https://bugzilla.redhat.com/840115
4488           guestfish touch problem - case_sensitive_path API expects the file
4489           to exist
4490
4491       https://bugzilla.redhat.com/836710
4492           Data loss when writing to qcow2-format disk files
4493
4494       https://bugzilla.redhat.com/834712
4495           lvresize, lvresize-free fail unnecessarily if you don't change the
4496           size of the LV: "New size (nn extents) matches existing size (nn
4497           extents)"
4498
4499       https://bugzilla.redhat.com/824716
4500           compress-device-out didn't support bzip2
4501
4502       https://bugzilla.redhat.com/824043
4503           guestfish unrecognized mount option gives confusing error message
4504
4505       https://bugzilla.redhat.com/823887
4506           Filenames containing Chinese characters can't be created on vfat
4507           filesystems
4508
4509       https://bugzilla.redhat.com/823885
4510           virt-make-fs cannot create vfat filesystem containing filesystems
4511           with Chinese characters
4512
4513       https://bugzilla.redhat.com/823883
4514           virt-make-fs -t fat fails with an obscure error message
4515
4516       https://bugzilla.redhat.com/823821
4517           Inspection fails when /etc/HOSTNAME is empty
4518
4519       https://bugzilla.redhat.com/801117
4520           libguestfs cannot get icon for Windows 8
4521
4522       https://bugzilla.redhat.com/798979
4523           Ubuntu install CDs from oneiric onwards are not recognized: "multi-
4524           boot operating systems are not supported"
4525
4526       https://bugzilla.redhat.com/782167
4527           libguestfs doesn't recognize Windows Dynamic disks in some
4528           configurations, eg. spanned
4529
4530       https://bugzilla.redhat.com/713678
4531           Not all febootstrap messages are redirected to log callbacks
4532
4533       https://bugzilla.redhat.com/627675
4534           libguestfs inspector code cannot handle /dev/disk/by-id/* paths
4535
4536       https://bugzilla.redhat.com/602997
4537           part-get-bootable gives wrong result with an unordered part layout
4538

RELEASE NOTES FOR LIBGUESTFS 1.18

4540       These release notes only cover the differences from the previous
4541       stable/dev branch split (1.16.0).  For detailed changelogs, please see
4542       the git repository, or the ChangeLog file distributed in the tarball.
4543
4544   New features
4545       virt tools
4546
4547          - virt-sysprep has been rewritten and expanded (thanks Wanlong Gao)
4548            http://libguestfs.org/virt-sysprep.1.html
4549
4550          - virt-sparsify --zero is a new option that zeroes the named
4551            partition or filesystem
4552
4553          - virt-sparsify can now safely sparsify Linux swap partitions
4554
4555          - virt-sparsify fixed so it cleans up after ^C
4556            http://libguestfs.org/virt-sparsify.1.html
4557
4558          - a new tool 'libguestfs-make-fixed-appliance' is provided to build
4559            fixed appliances that can be copied to other machines that don't
4560            have febootstrap support
4561            http://libguestfs.org/libguestfs-make-fixed-appliance.1.html
4562
4563          - virt-filesystems now displays the parents (containers) of MD
4564            devices and volume groups
4565
4566          - virt-alignment-scan, run with no args, displays alignment information
4567            for all libvirt domains
4568
4569          - virt-df and virt-alignment-scan will display information from all
4570            guests even when a disk is inaccessible
4571
4572          - virt-rescue new --scratch option to make scratch disks
4573            https://rwmj.wordpress.com/2012/04/26/virt-rescue-scratch/#content
4574
4575          - virt-make-fs can now be used to create btrfs
4576
4577          - virt-edit preserves permissions, UID, GID and SELinux context
4578            when editing files
4579
4580          - guestfish passes the close event over stdout and remote correctly
4581
4582          - guestfish new '--pipe-error' option lets you detect errors in pipe
4583            commands
4584
4585          - guestfish globs now expand device names
4586
4587          - comma and colon characters in filenames now handled correctly by
4588            all virt tools
4589
4590       inspection
4591
4592          - added support for Fedora 17+
4593
4594          - added support for FreeDOS
4595
4596          - added support for Buildroot and Cirros
4597
4598          - inspection is now compatible with Windows guests that have been
4599            sysprepped (thanks Grant Williamson).
4600
4601       API
4602
4603          - broad support for btrfs added, including adding multiple devices,
4604            fsck, snapshots (thanks Wanlong Gao)
4605
4606          - the new 'mount-local' API brings FUSE support directly into the
4607            core libguestfs API
4608            https://rwmj.wordpress.com/2012/05/14/tip-using-mount-local-api-from-c/#content
4609
4610          - new man page: guestfs-performance(1), which contains performance
4611            tuning tips
4612            http://libguestfs.org/guestfs-performance.1.html
4613
4614          - new man page: guestfs-faq(1), Frequently Asked Questions
4615            http://libguestfs.org/guestfs-faq.1.html
4616
4617          - ENOTSUP (from guestfs_last_errno) is now returned for APIs that
4618            are not supported
4619
4620       examples
4621
4622          - 'copy_over' example showing how to copy between two handles
4623
4624          - 'display_icon' program displays the icon associated with a guest
4625
4626          - 'mount_local.c' example shows how to use the mount-local API
4627
4628   Security
4629         (no security problems were found or fixed in this release)
4630
4631   New APIs
4632         btrfs-device-add: Add devices to a btrfs filesystem.
4633         btrfs-device-delete: Remove devices from a btrfs filesystem.
4634         btrfs-filesystem-sync: Sync a btrfs filesystem.
4635         btrfs-filesystem-balance: Balance a btrfs filesystem.
4636         btrfs-fsck: Check btrfs filesystem.
4637         btrfs-set-seeding: Enable or disable seeding.
4638         btrfs-subvolume-create: Create a btrfs snapshot.
4639         btrfs-subvolume-delete: Delete a btrfs snapshot.
4640         btrfs-subvolume-list: List btrfs snapshots and subvolumes.
4641         btrfs-subvolume-set-default: Set default btrfs subvolume.
4642         btrfs-subvolume-snapshot: Create a writable btrfs snapshot.
4643         get-e2attrs: List ext2 file attributes of a file.
4644         get-e2generation: Get ext2 file generation of a file.
4645         isoinfo, isoinfo-device: Get information from the header of ISO files.
4646         llz: List files with SELinux information.
4647         lvcreate-free: Create an LVM logical volume in % remaining free space.
4648         md-stat: Return underlying devices from an MD device.
4649         mkfs-brtfs: Make btrfs filesystem, with all tunables.
4650         mount-local, mount-local-run, umount-local: FUSE support in the API.
4651         ntfsclone-in, ntfsclone-out: Save, restore NTFS from backup.
4652         ntfsfix: Fix common errors and force Windows to check NTFS.
4653         set-e2attrs: Set or clear ext2 file attributes of a file.
4654         set-e2generation: Set ext2 file generation of a file.
4655         set-label: Unified interface for setting filesystem label.
4656         vgmeta: Get volume group metadata.
4657         wipefs: Wipe filesystem signatures from a device.
4658         zero-free-space: Zero free space in a filesystem.
4659
4660   Internals
4661        - The debian/ subdirectory has been removed.  We recommend you use
4662          the official Debian packages made by Hilko Bengen.
4663          http://people.debian.org/~bengen/libguestfs/
4664          http://packages.debian.org/search?keywords=libguestfs
4665
4666        - O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file
4667          descriptors that the library opens.
4668
4669        - posix_fadvise is called when sequentially reading or writing large
4670          files.
4671
4672        - close all file descriptors and remove all signal handlers in the
4673          recovery process
4674
4675        - multiple gcc warnings and Coverity bugs have been fixed;  many
4676          strict-overflow bugs have also been fixed
4677
4678        - use ./configure --enable-valgrind-daemon to use valgrind on the
4679          daemon;  many errors have been fixed
4680
4681        - use ./configure --with-qemu-options to pass extra options to qemu
4682
4683        - the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF)
4684
4685        - the <guestfs.h> header file works with C++ and we have a regression
4686          test for this
4687
4688        - multiple APIs which should only be called in the CONFIG state now
4689          give an error if they are not
4690
4691        - .gitignore fixed to use absolute paths
4692
4693        - gobject bindings have been expanded, including mapping libguestfs
4694          events to gobject signals (thanks Matt Booth)
4695
4696        - gobject documentation is generated properly (thanks Matt Booth)
4697
4698        - gobject header files now live in a subdirectory
4699
4700        - CompareWithString test in the generator now works
4701
4702        - FUInt32, FUInt64 struct field types now use the correct XDR type
4703
4704        - OCaml tests are now run on bytecode and native code.
4705
4706        - java -Xlint:all is used, and all warnings have been fixed
4707
4708        - bmptopng, wrestool (etc) missing or failure no longer prints
4709          warning messages
4710
4711        - ruby: Use RbConfig instead of Config.
4712
4713        - PYTHONPATH is set by the ./run script.
4714
4715        - appliance building is now thread-safe.
4716
4717        - appliance now uses 'ip' instead of 'ifconfig' and 'netstat'
4718          commands
4719
4720        - several fixes to make parallel builds work properly
4721
4722        - guestfish --listen now cleans up properly
4723
4724        - the BUSY state has been removed
4725
4726        - gettextize has been removed, replaced by a simple Makefile.am
4727
4728        - gettext support now covers virt-resize, virt-sparsify and virt-sysprep
4729
4730        - better support for the arm architecture
4731
4732   Bugs fixed
4733        - 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
4734        - 816839 data overflow error when debug progress -1
4735        - 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
4736        - 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
4737        - 811650 guestfs_last_error not set when qemu fails early during launch
4738        - 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
4739        - 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
4740        - 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
4741        - 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
4742        - 807905 mkfs blocksize option breaks when creating btrfs
4743        - 805070 virt-filesystems should show 'parents' of LV and RAID devices
4744        - 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
4745        - 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
4746        - 803533 guestfish: write error
4747        - 802389 event handlers for 'close' event doesn't work in remote mode
4748        - 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
4749        - 801640 [RFE] the error reported by resize2fs-M need to be more clear
4750        - 801298 Possible null dereference and resource leaks
4751        - 801273 Document for set-pgroup need to be updated
4752        - 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
4753        - 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
4754        - 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
4755        - 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
4756        - 789960 guestfsd crash when try to mount non-exist disk
4757        - 789504 virt-df (other tools?) should not give up if a guest disk is missing
4758        - 788641 virt-edit doesn't preserve file permissions
4759        - 786215 libguestfs inspection does not recognize FreeDOS operating system
4760        - 786188 libguestfs inspection does not recognize FreeDOS install CD
4761        - 785668 aug-defnode: daemon crash
4762        - 784647 Libguestfs uses deprecated net-tools
4763        - 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
4764        - 755729 Error message for resize2fs-M needs tweaking
4765        - 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
4766        - 679737 libguestfs: improve error message when zerofree is not available in the appliance
4767        - 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand
4768

RELEASE NOTES FOR LIBGUESTFS 1.16

4770       These release notes only cover the differences from the previous
4771       stable/dev branch split (1.14.0).  For detailed changelogs, please see
4772       the git repository, or the ChangeLog file distributed in the tarball.
4773
4774   New features
4775       libguestfs
4776
4777          - allow XFS filesystems to be created over an existing filesystem
4778            (Wanlong Gao)
4779
4780          - the (unspecified) default alignment for part-disk has been
4781            changed to 64K for better support of high-end network-attached
4782            storage
4783
4784          - new guestfs-testing(1) man page
4785
4786          - list-filesystems returns MD devices containing filesystems
4787            (Matthew Booth)
4788
4789          - support for GCC >= 4.7 (Jim Meyering)
4790
4791          - check user does not add the same drive twice (Wanlong Gao).
4792
4793       language bindings
4794
4795          - Experimental GObject bindings, with support for GObject
4796            Introspection.  You can now use libguestfs from Javascript.
4797            Please note these are not stable and final in this release.
4798            (Matthew Booth).
4799
4800          - support for Ruby >= 1.9
4801
4802          - Ruby bindings can be disabled individually (Hilko Bengen)
4803
4804          - support for Python 2.6, 3.x (Richard Jones, Hilko Bengen)
4805
4806          - support for PHP >= 5.4
4807
4808          - new %guestfs_introspection hash is available in Perl bindings so
4809            you can query which optional arguments are available
4810
4811       inspection
4812
4813          - guests with MD devices can be inspected (Matthew Booth)
4814
4815          - support for GNU/Hurd guests
4816
4817       guestfish
4818
4819          - libguestfs events (such as progress bar events and log messages) can
4820            be trapped and processed by user-defined shell scripts.
4821
4822          - MD devices are tab-completed (Matthew Booth)
4823
4824       virt tools
4825
4826          - New tool virt-format for erasing and making blank disks
4827
4828          - virt-sparsify new --compress and -o options to allow for compressed
4829            and different format output
4830
4831          - virt-sparsify can now detect and sparsify .vdi files
4832
4833          - virt-sysprep no longer requires xmlstarlet; a new virt-inspector --xpath
4834            option has been added to replace this functionality
4835
4836          - virt-rescue has a new --suggest option which suggests mount commands
4837            for the guest
4838
4839          - virt-resize no longer requires OCaml pcre library
4840
4841       libguestfs live
4842
4843          - daemon will no longer try to edit your live /etc/lvm configuration
4844
4845          - fix a potential security problem with predictable /tmp names (Steve Kemp)
4846
4847   Security
4848         CVE-2011-4127, RHBZ#757071
4849         Mitigate possible privilege escalation via SG_IO ioctl
4850         For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db
4851
4852   New APIs
4853         blkid: print all attributes of a device known to blkid (Wanlong Gao)
4854         e2fsck: access to more features of e2fsck (Wanlong Gao)
4855         list-md-devices: list of Linux MD devices (Matthew Booth)
4856         md-create: create an MD device
4857         md-detail: returns metadata for an MD device (Matthew Booth)
4858         md-stop: stop an MD device (Wanlong Gao)
4859         tune2fs: allow ext2/3/4 filesystems to be tuned
4860
4861   Internals
4862         Git hosting has moved to http://github.com/libguestfs
4863
4864         The various test directories have been rearranged logically, and now
4865         all appear under 'tests/'.
4866
4867         There is a 'make extra-tests' rule which runs ordinary tests and
4868         additional tests, using valgrind to check for memory problems.
4869
4870         Multiple memory leaks and other problems found by valgrind and fixed.
4871
4872         Support for optional arguments in the generator has been rewritten
4873         to provide more features and safety (Matthew Booth).
4874
4875         With gcc -fvisibility=hidden is used for internal symbols, avoiding
4876         call indirection via the PLT.
4877
4878         RHashtable functions can be tested in the generator.
4879
4880         ADD_ARG macro in daemon allows arg lists to be constructed without
4881         risk of stack smashing.
4882
4883         Fix generation of OCaml functions that have more than 10 arguments.
4884
4885         psmisc has been added to the appliance, allowing use of 'fuser',
4886         'killall' and 'pstree' for debugging.
4887
4888         bindtests now cover RBufferOut and optional arguments (Matthew Booth).
4889
4890   Bugs fixed
4891        - 769680 temporary directories created during appliance builds are not cleaned up on error
4892        - 761460 guestfs_utimens hangs on named pipes
4893        - 761451 guestfs_utimens cannot set times on a directory
4894        - 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory
4895        - 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
4896        - 760000 libguestfs fails to compile with Ruby >= 1.9
4897        - 755729 Error message for resize2fs-M needs tweaking
4898        - 750889 Python code incompatible with Python v3.
4899        - 596761 Ctrl-\ causes guestfish to abort
4900

RELEASE NOTES FOR LIBGUESTFS 1.14

4902       These release notes only cover the differences from the previous
4903       stable/dev branch split (1.12.0).  For detailed changelogs, please see
4904       the git repository, or the ChangeLog file distributed in the tarball.
4905
4906   New features
4907         Erlang bindings.
4908
4909         virt-alignment-scan is a new tool to check the alignment of
4910         partitions within virtual machines or disk images.
4911
4912         virt-sparsify is a new tool to make virtual machine disk images
4913         sparse.
4914
4915         virt-sysprep is a new tool to make cloning guests from a template
4916         simpler.
4917
4918       guestfish
4919
4920          - New commands setenv, unsetenv, to set environment variables.
4921
4922          - The input file and line number is printed in error messages.
4923
4924          - guestfish progress bars are now a "mini-library" used by other
4925            tools too.
4926
4927       guestmount
4928
4929          - the --live option (for access to live VMs) now works.
4930
4931       virt-cat
4932
4933          - virt-cat can now handle Windows paths and drive letters (RHBZ#693359).
4934
4935       virt-filesystems
4936
4937          - the MBR partition type byte is displayed in --long output.
4938
4939       virt-make-fs
4940
4941          - virt-make-fs now sets the MBR partition type byte correctly,
4942            improving compatibility with Windows (RHBZ#746295).
4943
4944       virt-resize
4945
4946          - virt-resize can now work with guests using extended and logical
4947            partitions, in particular Ubuntu guests.
4948
4949          - virt-resize can now align the first partition of Windows guests,
4950            improving performance.  The new virt-resize --align-first option
4951            controls this behaviour.
4952
4953          - The virt-resize --machine-readable flag makes it possible to use
4954            virt-resize from other programs.
4955
4956          - Partitions are now aligned to 128 sectors (usually 64K) by
4957            default.  This improves efficiency on high-end storage.  The new
4958            virt-resize --alignment option allows the alignment to be
4959            adjusted.
4960
4961       virt-win-reg
4962
4963          - The syntax for deleting registry keys and values is documented
4964            in the man page (RHBZ#737944).
4965
4966       library
4967
4968          - non-printing characters are escaped correctly in debug output.
4969
4970          - GUESTFS_EVENT_ENTER is a new event type generated whenever a
4971            libguestfs function is called.
4972
4973          - the library contains systemtap/DTrace probes.
4974
4975          - the library can now be compiled without hivex (RHBZ#723474).
4976
4977       inspection
4978
4979          - Improve detection of Windows disks.
4980
4981          - Adds support for:
4982                ttylinux - a minimal Linux
4983                Mageia (thanks Michael Scherer)
4984                OpenSUSE and zypper (thanks Michael Scherer, Vincent Untz)
4985                Ubuntu logos (thanks Michael Scherer)
4986                NetBSD and pkgsrc (thanks Michael Scherer)
4987
4988          - Handle some guest types that use /dev/root in /etc/fstab.
4989
4990          - Fix handling of guests with > 26 disks (thanks Matthew Booth)
4991
4992          - Add support for guests with HP Smart Array disks (thanks Matthew Booth)
4993
4994       febootstrap
4995
4996          - FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES environment variables can
4997            be set in order to choose which kernel to use for the appliance.
4998
4999       misc
5000
5001          - ArchLinux support now working with Linux 3.0 (thanks Erik Nolte)
5002
5003          - libvirt disks marked <readonly/> are now added readonly when
5004            using the virt-tools '-d' option.
5005
5006   Security
5007         (no security problems were found or fixed in this release)
5008
5009   New APIs
5010         compress-out, compress-device-out, copy-device-to-device,
5011         copy-device-to-file, copy-file-to-device, copy-file-to-file,
5012         get-smp, part-to-partnum, set-smp.
5013
5014         The mount API no longer implicitly adds -o sync,noatime options.
5015
5016         add-domain has a new 'readonlydisk' optional parameter to control
5017         how <readonly/> disks are handled.
5018
5019   Internals
5020        - Coverity was run on the source and more bugs were identified and
5021          fixed.
5022
5023        - PCRE library is now required to build libguestfs.
5024
5025        - APIC is now the default for the appliance.  You can also enable
5026          SMP support in the appliance.
5027
5028        - OCaml bindings now correctly acquire GC lock during callbacks.
5029
5030        - Out of tree builds should now work correctly (thanks Hilko Bengen).
5031
5032        - ./configure --with-extra="..." can be used by packagers to set
5033          the extra version string.
5034
5035        - zero, zero-device APIs: if the blocks already contain zeroes,
5036          don't write zeroes, so that we don't unnecessarily make the
5037          underlying storage non-sparse.
5038
5039        - is-zero, is-zero-device APIs: optimize these so zero detection is
5040          faster.
5041
5042   Bugs fixed
5043        - 748266 libguestfs should detect versions of qemu which require -machine pc option
5044        - 747290 libguestfs ignores <readonly/> in libvirt XML
5045        - 747287 Misleading error message when permission denied opening a disk image
5046        - 746295 virt-make-fs doesn't set partition ID
5047        - 744795 guestmount --live is not usable
5048        - 737944 virt-win-reg hyphen (delete key) syntax may be wrong, and is not documented
5049        - 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)"
5050        - 731744 libguestfs should escape special/non-printing characters in debug output
5051        - 729887 appliance crashes running aug_init with flags=4
5052        - 729075 libguestfs confuses Hp_recovery partition with Windows root filesystem
5053        - 727178 error: luks_open: cryptsetup: error while loading shared libraries: libfipscheck.so.1: cannot open shared object file: No such file or directory
5054        - 726739 libguestfs: error: aug_get: no matching node, trying to find hostname
5055        - 723474 If hivex and/or pcre not installed, libguestfs fails to compile
5056        - 693359 virt-cat and virt-edit don't handle case sensitive NTFS paths properly
5057        - 678231 virt-inspector reports unknown filesystem UUID
5058        - 671082 libguestfs does not work with kernel-rt
5059        - 666578 libguestfs: unknown filesystem label SWAP-sda2
5060        - 642821 virt-resize falls over on a disk image with a logical swap partition
5061

RELEASE NOTES FOR LIBGUESTFS 1.12

5063       These release notes only cover the differences from the previous
5064       stable/dev branch split (1.10.0).  For detailed changelogs, please see
5065       the git repository, or the ChangeLog file distributed in the tarball.
5066
5067   New features
5068       guestfish
5069
5070          - guestfish strings can use escapes,
5071            eg. ><fs> write /foo "line 1\nline 2\n"
5072
5073          - guestfish write-append command can be used to append to files.
5074
5075          - Long-running file uploads and downloads can be cancelled through the
5076            API or by hitting ^C in guestfish.
5077
5078          - New guestfish "display" command for displaying graphical files
5079            inside guests.
5080
5081          - In guestfish, tab completion now works on /dev/mapper devices.
5082
5083       virt-inspector
5084
5085          - Inspection API can get an icon or logo for certain guests.
5086
5087          - virt-inspector includes the logo and hostname for certain guests.
5088
5089          - virt-inspector can now get the version and release numbers for RPM
5090            packages.
5091
5092          - CentOS and Scientific Linux are now treated as separate distros by
5093            the inspection API.
5094
5095       virt-resize
5096
5097          - virt-resize can now handle btrfs.
5098
5099          - New virt-resize --ntfsresize-force option allows Windows VMs to be
5100            resized multiple times.
5101
5102       other virt tools
5103
5104          - guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems,
5105            virt-inspector, virt-ls and virt-rescue now allow you to use
5106            "-d UUID" option to specify a guest by UUID.  This makes them more
5107            robust to use from other programs.
5108
5109          - virt-ls -lR option allows complex file iteration and guest analysis.
5110
5111          - virt-win-reg supports HKEY_USERS\<SID> and HKEY_USERS\<username>.
5112
5113          - virt-win-reg new option --unsafe-printable-strings allows printable
5114            strings to be displayed in the output (unsafely: read the documentation
5115            before using).
5116
5117          - virt-edit has been rewritten in C.
5118
5119       API and language bindings
5120
5121          - Java is now completely supported.
5122            See http://libguestfs.org/guestfs-java.3.html
5123
5124          - JRuby is supported via the Java bindings.
5125
5126          - guestfs_close now appears in trace messages.
5127
5128          - Python binding adds explicit g.close() method.
5129
5130          - Python programs can now use the new event API.
5131
5132          - Python GIL is released during libguestfs calls, allowing multithreaded
5133            Python programs to work properly.
5134
5135          - 9pfs (Plan 9 filesystems exported from the host) are now supported.
5136
5137          - Add -DGUESTFS_WARN_DEPRECATED=1 to warn about use of deprecated API
5138            functions in C programs.
5139
5140          - New manual page guestfs-recipes(1) with recipes.
5141
5142          - mkfs-opts can now set inode size and sector size on created filesystems
5143            (thanks Nikita Menkovich).
5144
5145          - guestfs_last_errno is now accessible from OCaml (as g#last_errno ()).
5146
5147   Security
5148        - optargs_bitmask is checked even for calls that have no optional
5149          arguments.  This closes a possible exploit in the daemon from
5150          untrusted callers.
5151
5152   New APIs
5153         btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero,
5154         is-zero-device, list-9p, list-dm-devices, mount-9p, ntfsresize-opts,
5155         set-pgroup, write-append
5156
5157   Internals
5158        - Coverity (a static analysis tool) was run across the codebase and
5159          many fixes were made.
5160
5161        - Generator can handle functions that return RBufferOut and have
5162          optional arguments.
5163
5164        - Compatible with Perl 5.14.
5165
5166        - Compatible with gcc 4.6.
5167
5168        - Perform safety checks on QEMU.
5169
5170        - C API tests can now fully test calls that have optional arguments.
5171
5172        - Use ./configure --enable-install-daemon to install /usr/sbin/guestfsd.
5173
5174        - po-docs directory now covers all man pages.
5175
5176        - stderr from qemu process is now captured by the event subsystem.
5177
5178   Bugs fixed
5179        - 602997 part-get-bootable gives wrong result with an unordered part layout
5180        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
5181        - 700369 qemu-system-x86_64 says 'KVM not supported for this target'
5182        - 705200 guestmount attempt results in access denied
5183        - 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts
5184        - 717786 libguestfs python bindings should have an explicit close call
5185        - 721275 virt-resize in F16 should support btrfs
5186

Release notes for libguestfs 1.10.0

5188       These release notes only cover the differences from the previous
5189       stable/dev branch split (1.8.0).  For detailed changelogs, please see
5190       the git repository, or the ChangeLog file distributed in the tarball.
5191
5192   New features
5193        - libguestfs and tools can be used against live virtual machines.
5194          See the 'guestfish --live' and 'guestmount --live' options, and (for
5195          the low-level interface) the new APIs set-attach-method and
5196          get-attach-method.
5197
5198        - New virt tools:
5199          virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.
5200
5201        - libguestfs can get the drive letter mappings for Windows guests.
5202
5203        - virt-inspector displays drive letter mappings for Windows guests.
5204
5205        - Drive letters can now be used in virt-edit and guestfish programs
5206          when operating on Windows guests.
5207
5208        - virt-resize now works on 32 bit hosts.
5209
5210        - You can now inspect the install disks and live CDs of many different
5211          operating systems.
5212
5213        - guestfish <! cmd which executes a shell cmd and inlines the result.
5214
5215        - guestfish, guestmount, virt-rescue now all support --ro and --rw
5216          options, and the default for this can be chosen via a configuration
5217          file (/etc/libguestfs-tools.conf).
5218
5219        - New event API allows more than one callback to be registered for
5220          each event, makes it possible to call the API from other languages,
5221          and allows nearly all log, debug and trace messages to be rerouted
5222          from stderr.
5223
5224        - Greater FHS compliance for temporary files, including using /var/tmp
5225          for large cached files that should survive reboot (instead of /tmp).
5226
5227        - guestfish, guestmount -m option allows mount options to be passed
5228          through to the underlying filesystem.
5229
5230        - mkfs-opts allows filesystem features to be specified.
5231
5232        - More intelligent handling of mountpoints, allowing mkmountpoint, mount
5233          and umount-all commands to work together properly.
5234
5235        - Trace messages are prefixed with a distinct string, allowing them to
5236          be easily 'grepped' out from debug output.
5237
5238        - guestfs_launch (guestfish 'run' command) now produces progress
5239          messages (a guestfish progress bar) if it takes longer than 5
5240          seconds to run.
5241
5242        - Several long-running commands where we are unable to estimate time
5243          to completion generate "pulse mode" progress events.  Progress bar
5244          in guestfish has been updated to display these.
5245
5246        - Publish new example code in: C, Perl, Python, OCaml, Ruby.
5247
5248        - New virt-dhcp-address example program.
5249
5250        - The Java and Ruby bindings have been improved greatly.
5251
5252        - Perl includes a way to get the errno of the last error.
5253
5254        - Python bindings now compatible with rpyc (thanks Erez Shinan).
5255
5256        - Transifex is now being used to manage translations.
5257          http://www.transifex.net/projects/p/libguestfs/
5258
5259        - Inspection now supports Red Hat Desktop, Slackware distributions.
5260
5261        - Inspection no longer fails for Windows guests that have two or
5262          more disks.
5263
5264        - Inspection can now tell the difference between Windows 2008 Server
5265          and Windows 7.
5266
5267        - Inspection can detect 32 bit applications installed in 64 bit
5268          Windows, running on the WOW64 emulator.
5269
5270        - A series of protocol fixes has fixed the old bug RHBZ#576879
5271          which used to cause errors during the upload command to lose
5272          protocol synchronization.
5273
5274        - New logo!
5275
5276   Security
5277         [none]
5278
5279   New APIs
5280         first-private, get-attach-method, inspect-get-drive-mappings,
5281         inspect-get-product-variant,
5282         inspect-get-windows-current-control-set, next-private, resize2fs-M,
5283         set-attach-method.
5284
5285   Internals
5286        - The 'HACKING' file is obsolete.  The contents have been moved into
5287          a section of the guestfs(3) manual page.
5288
5289        - libguestfs-test-tool simplified.  It no longer needs the static
5290          binary or tries to construct an ISO.
5291
5292        - rpcgen-generated files are compiled with -fno-strict-aliasing
5293          which should be safer (thanks Matt Booth).
5294
5295        - virt-resize was rewritten in OCaml.
5296
5297        - guestfish and other tools tested with valgrind; some memory leaks
5298          were fixed.
5299
5300   Bugs fixed
5301        - 502533 Updated Polish translation of libguestfs
5302        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
5303        - 599503 document that mkmountpoint and umount-all cannot be mixed
5304        - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
5305        - 664558 RFE: Allow to set log callback in Ruby bindings
5306        - 665358 Punjabi Translation Completed (pa_IN)
5307        - 666577 libguestfs: unknown filesystem /dev/fd0
5308        - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
5309        - 668112 virt-filesystems command fails on guest with corrupt filesystem label
5310        - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
5311        - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
5312        - 674130 Inspection code fails for Windows guest with two disks
5313        - 682756 libguestfs trace segfaults when list-filesystems returns error
5314        - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
5315        - 690819 mkfs fails creating a filesystem on a disk device when using a disk with 'ide' interface
5316        - 691389 Extended attributes don't work over guestmount (FUSE)
5317        - 691724 virt-inspector reports unknown filesystem /dev/vda1
5318        - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
5319        - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter
5320

Release notes for libguestfs 1.8

5322       These release notes only cover the differences from the previous
5323       stable/dev branch split (1.6.0).  For detailed changelogs, please see
5324       the git repository, or the ChangeLog file distributed in the tarball.
5325
5326   New features
5327        - Support and packages for Debian and Ubuntu.
5328
5329        - Daily builds from git repository on Debian and Ubuntu to reduce risk
5330          of regressions.
5331
5332        - Port to ArchLinux 'pacman' (thanks Thomas S Hatch).
5333
5334        - The following tools have been rewritten in C (originally in Perl):
5335
5336            . virt-cat
5337            . virt-df
5338            . virt-inspector
5339            . virt-ls
5340            . virt-rescue
5341
5342        - Some C tools support encrypted guests automatically.  This is
5343          supported in: guestfish, guestmount, virt-cat, virt-inspector,
5344          virt-ls.
5345
5346        - New tool virt-filesystems (in C) which is a replacement for
5347          virt-list-filesystems and virt-list-partitions, and has a superset
5348          of the functionality of those tools.
5349
5350        - guestfish, guestmount and the C tools use unified command line option
5351          parsing, so they support many common options such as '-a disk.img',
5352          '-d libvirt-domain', '-x', '-v'.  The old command line option
5353          parsing is preserved for compatibility in scripts etc.
5354
5355        - guestfish no longer has any dependencies on Perl
5356
5357        - New man pages containing programming examples: guestfs-examples(3) (C/C++),
5358          guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).
5359
5360        - Trace mode prints return values from API functions.
5361
5362        - virt-inspector can list applications installed in Windows guests, along
5363          with a great deal of information about those applications.
5364
5365        - Add support for inspecting: Linux Mint, Mandriva, FreeBSD.
5366
5367        - guestfish --rw option (with no effect currently) to make potentially
5368          dangerous write access explicit.
5369
5370        - guestfish --listen --csh for compatibility with csh, tcsh (thanks
5371          Eric Blake).
5372
5373        - The first upstream version that introduced each API function is now
5374          documented in guestfs(3).
5375
5376        - guestfs_last_errno allows you to retrieve the errno from the
5377          daemon, correctly translated to the local operating system.
5378
5379        - Functions can now have optional parameters.
5380
5381        - Progress bars and progress notifications can now happen for upload
5382          commands.
5383
5384        - Appliance builder more careful about not leaving temporary files
5385          around in /tmp.
5386
5387        - getfattr/setfattr commands added to virt-rescue.
5388
5389        - ROADMAP file covers roadmap and goals for future releases.
5390
5391   Security
5392        - New SECURITY section in guestfs(3) API documentation.
5393
5394        - virt-inspector no longer runs any guest commands.
5395
5396        - Inspection code is more careful about avoiding very large files
5397          from guests which might previously have caused a denial of service.
5398
5399        - FUSE calls into guestmount are now traced when using guestmount -x.
5400
5401   New APIs
5402        - add-domain
5403        - add-drive-opts
5404        - getxattr
5405        - inspect-get-hostname
5406        - inspect-get-package-format
5407        - inspect-get-package-management
5408        - inspect-get-roots
5409        - inspect-list-applications
5410        - lgetxattr
5411        - mkfs-opts
5412
5413   Internals
5414        - C programs now only link precisely with the libraries that they use.
5415
5416        - PCRE, libmagic, hivex and libvirt libraries are now completely
5417          optional for building.
5418
5419        - Multiple memory leaks and file descriptor leaks fixed.
5420
5421        - Add a POD wrapper to unify generation of man pages and HTML files
5422          across all programs.
5423
5424        - Source includes phony images of Fedora, Debian, Ubuntu and
5425          Windows guests.
5426
5427        - Ruby bindings have 'make install' rule.
5428
5429        - <guestfs.h> is now a single file.
5430
5431        - <guestfs.h> does not require XDR headers.
5432
5433        - ocaml xml-light library is no longer required to build (thanks
5434          Maxim Koltsov).
5435
5436        - ./configure --disable-[...] for each language binding (thanks
5437          Maxim Koltsov).
5438
5439        - Old ocaml-viewer program removed (use guestfs-browser instead).
5440
5441        - New C API test type 'InitScratchFS' makes the tests run a little
5442          more quickly.
5443
5444        - Excluded packages in the appliance are now listed in a separate
5445          file appliance/excludelist.in, and can be customized per-distro.
5446
5447   Bugs fixed
5448        - 663407 readlink and readlinklist returns /sysroot/ in some paths
5449        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
5450        - 657499 checksum: wrong check sum type causes umount to fail
5451        - 655554 Whole disk paths are not made canonical by virt-inspector
5452        - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
5453        - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution
5454

RELEASE NOTES FOR LIBGUESTFS 1.6

5456       These release notes only cover the differences from the previous
5457       stable/dev branch split (1.4.0).  For detailed changelogs, please see
5458       the git repository, or the ChangeLog file distributed in the tarball.
5459
5460   New features
5461        - Use a new method for creating and caching the appliance.  This
5462          greatly improves the performance of libguestfs, often by a factor
5463          of x 4 to x 5.
5464
5465        - Support for guest inspection (like virt-inspector) via the ordinary
5466          API and all language bindings.  'guestfish -i' option is as a side-
5467          effect much quicker.
5468
5469        - virt-inspector and core inspection API can now detect guests running:
5470          Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
5471          Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.
5472
5473        - Support for LUKS whole-disk encryption in guests.
5474
5475        - PHP bindings.
5476
5477        - Progress messages (and progress bars in guestfish and virt-resize)
5478          for certain long-running operations.
5479
5480        - virt-df is now much more efficient.  Use '--one-per-guest' to restore
5481          the old per-guest isolation behaviour.
5482
5483        - guestfish 'copy-in' and 'copy-out' commands for copying files and
5484          directories recursively in and out of the guest.
5485
5486        - guestfish 'hexedit' command for doing binary edits to devices and
5487          files.
5488
5489        - Change guestfish -i syntax to allow commands to be specified on the
5490          command line (retaining backwards compatibility).
5491
5492        - guestfish '-d <domain>' for adding disks from libvirt domains.
5493
5494        - guestfish '-N' option supports several new prepared disk image types:
5495                lvfs : disk with LV formatted with filesystem
5496                  lv : disk with LV
5497            bootroot : boot+root
5498          bootrootlv : boot and root on LV
5499
5500        - guestfish 'more' and 'edit' commands now work with arbitrary files.
5501
5502        - guestfish '--echo-keys' option allows you to echo keys/passphrases
5503          while typing them.
5504
5505        - guestmount now supports -a / -d / -i options, like guestfish.
5506
5507        - Use virtio-serial for communications with the appliance.  This
5508          also has a major performance benefit.
5509
5510        - virt-edit '-b' option to create a backup of edited files.
5511
5512        - virt-edit '-e' option for non-interactive edits to files.
5513
5514        - Ability to capture core dumps from the appliance (thanks Matthew Booth).
5515
5516        - virt-rescue now shuts down cleanly (thanks Matthew Booth).
5517
5518        - virt-rescue now has a --network option to enable network access.
5519
5520        - virt-resize can now handle guests which use GPT partition table format.
5521
5522        - virt-resize has better support for shrinking guests.
5523
5524        - virt-resize supports qcow2-format guests.
5525
5526        - $TMPDIR can be used to override almost all temporary directory usage.
5527
5528        - OCaml users can use an alternate OO-style of coding, eg. g#launch ()
5529
5530        - The API supports calls which take optional parameters, eg.
5531            $g->add_drive_opts ("disk", readonly => 1);
5532
5533        - Trace output now escapes and shortens large strings (thanks
5534          Matthew Booth).
5535
5536        - Autosync is now on by default, resulting in more reliable behaviour
5537          when the handle is closed.
5538
5539        - virt-df --uuid option allows you to follow a domain across migration
5540          and renaming.
5541
5542        - Translations of manual pages.
5543
5544   Security
5545        - CVE-2010-3851 libguestfs: missing disk format specifier when adding a disk
5546          https://www.redhat.com/archives/libguestfs/2010-October/msg00036.html
5547          This is comprehensively fixed in this release, and the fix will be
5548          backported to the other stable branches after more testing.
5549
5550        - virt-inspector no longer relies on untrusted guest code to list
5551          applications in some guests.
5552
5553   New APIs
5554         download-offset, file-architecture, findfs-label, findfs-uuid,
5555         inspect-os, inspect-get-arch, inspect-get-distro,
5556         inspect-get-filesystems, inspect-get-major-version,
5557         inspect-get-minor-version, inspect-get-mountpoints,
5558         inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
5559         is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
5560         luks-close, luks-format, luks-format-cipher, luks-kill-slot,
5561         luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
5562         lvm-set-filter, part-to-dev, pread-device, pwrite-device,
5563         upload-offset
5564
5565   Internals
5566        - Use size_t for loop iterators.
5567        - Refactor the library code into separate files.
5568        - Refactor the generator code into separate files.
5569        - Generate guestfish commands.
5570        - guestfish & guestmount options processing is unified.
5571        - Protocol changes:
5572            error message size increased to 64K
5573            send errno to library
5574        - Add 'make bindist' to make a binary distribution.
5575        - Cleaner behaviour under valgrind.
5576        - More testing of the guestfish command line options and libvirt
5577          integration.
5578        - The Perl inspection code is no longer used by any of the tools.
5579
5580   Bugs fixed
5581        - 646822 libguestfs trace mode should not print long binary strings
5582        - 646821 virt-df should have --uuid option
5583        - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
5584        - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
5585        - 642934 No way to specify disk format when adding a disk to libguestfs
5586        - 642933 guestfs_list_filesystems should be used in all possible places
5587        - 642932 guestmount options should match guestfish options
5588        - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
5589        - 642929 C inspection code should ignore /dev/fd* in /etc/fstab
5590        - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
5591        - 640961 Document that grub-install might be needed for old Linux guests after virt-resize
5592        - 639986 virt-df --csv does not properly quote " in libvirt domain names
5593        - 639405 Interrupted cached appliance creation leaves libguestfs unusable
5594        - 638901 Appliance filename should not contain repository name
5595        - 638899 /dev/mapper paths should not be returned from C inspection APIs
5596        - 636918 Updates to Spanish translation
5597        - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
5598        - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
5599        - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
5600        - 633766 virt-resize --shrink fails
5601        - 633357 Updates to Spanish translation
5602        - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
5603        - 629593 Dutch translation added
5604        - 627556 Updates to Spanish translations of libguestfs
5605        - 626843 Updates to Spanish translations
5606        - 619793 [RFE] Need a way to determine if a particular block device is a logical volume
5607        - 618556 virt-rescue return none zero value when exit
5608        - 617200 mount operation failed and hung on some images which running in read-only mode
5609        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
5610        - 599503 document that mkmountpoint and umount-all cannot be mixed
5611        - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
5612        - 502533 Updated Polish translation of libguestfs
5613

RELEASE NOTES FOR LIBGUESTFS 1.4

5615       These release notes only cover the differences from the previous
5616       stable/dev branch split (1.2.0).  For detailed changelogs, please see
5617       the git repository, or the ChangeLog file distributed in the tarball.
5618
5619   New features
5620        - guestfish lets you choose a prepared disk image, eg:
5621            guestfish -N fs:ext4
5622
5623        - Add write support to guestmount (FUSE) module.
5624
5625        - virt-resize can now resize the content of partitions and logical
5626          volumes in the guest, and we have better support for shrinking guests.
5627
5628        - Bash tab-completion script for guestfish.
5629
5630        - Add ZFS support to virt-rescue.
5631
5632        - New tool 'virt-make-fs' for creating filesystems with content.
5633
5634        - Allow suffixes on any guestfish number parameter, eg. "1M".
5635
5636        - guestfish 'man' command opens the manual page.
5637
5638        - guestfish supports a "heredoc" syntax for uploading files:
5639            upload -<<_end_ /foo
5640            content
5641            _end_
5642
5643        - Some guestfish commands now print their output in octal or hex
5644          where appropriate (RHBZ#583242).
5645
5646        - Allow dash prefix on guestfish command line.  This ignores any
5647          error from the second command:                   (RHBZ#578407)
5648            guestfish -- cmd1 : -cmd2 : cmd3
5649
5650        - guestfish -h / help command now returns an error for non-existent
5651          commands (RHBZ#597145).
5652
5653        - New 'supported' command in guestfish to list optional groups of
5654          commands which are supported by the daemon / configuration.
5655
5656        - virt-inspector and guestfish -i now work for filenames which
5657          contain spaces (RHBZ#507810).
5658
5659        - Change the protocol to use link-local addresses, to avoid
5660          conflicting with any address that the host might be using
5661          (RHBZ#588763).
5662
5663        - libguestfs now sets the correct time and timezone on filesystem
5664          modifications.
5665
5666        - Sort the domains into alphabetical order in virt-df.
5667
5668        - Make mkfs-b command work for FAT and NTFS by mapping the blocksize
5669          parameter to the cluster size (RHBZ#599464).
5670
5671        - Add version numbers to Perl modules (RHBZ#521674).
5672
5673        - Localization now works for all the libguestfs tools (RHBZ#559963).
5674
5675        - Tools now support filesystem-on-image VMs (RHBZ#590167).
5676
5677        - virt-list-partitions has a '-t' option to show the total size of disks.
5678
5679        - Include extra Augeas lenses in the supermin appliance (Matthew Booth).
5680
5681        - Add error and close callbacks.
5682
5683        - Add explicit close method in the Perl API.
5684
5685        - Multiple fixes for RHEL 5 compatibility.
5686
5687        - Multiple fixes for Debian/Ubuntu compatibility.
5688
5689        - Multiple revisions to improve the documentation.
5690
5691   Security
5692        - Fix a potential DoS in virt-inspector and virt-v2v if a specially
5693          crafted disk image contained a char device in place of one of the
5694          configuration files that we read under /etc (RHBZ#582484).
5695
5696   New APIs
5697        - aug-clear - clear Augeas path
5698        - available-all-groups - return a list of all optional groups
5699        - base64-in - upload base64-encoded data to file
5700        - base64-out - download file and encode as base64
5701        - checksum-device - compute checksums on the contents of a device
5702        - checksums-out - compute checksums of multiple files in a directory
5703        - debug-upload - upload a file to the appliance
5704        - fallocate64 - preallocate a file in the guest filesystem
5705        - fill-pattern - fill a file with a repeating pattern of bytes
5706        - get-umask - get the current umask
5707        - lvresize-free - expand an LV to fill free space
5708        - ntfsresize - resize an NTFS filesystem
5709        - ntfsresize-size - resize an NTFS filesystem (with size)
5710        - part-del - delete a partition
5711        - part-get-bootable - get the bootable flag of a partition
5712        - part-get-mbr-id - get the MBR type byte of a partition
5713        - part-set-mbr-id - set the MBR type byte of a partition
5714        - pvresize-size - resize a physical volume (with size)
5715        - pwrite - write to part of a file
5716        - resize2fs-size - resize an ext2/3/4 filesystem (with size)
5717        - txz-in - unpack compressed tarball to directory (RHBZ#580556)
5718        - txz-out - pack directory into compressed tarball (RHBZ#580556)
5719        - vfs-label - get the filesystem label
5720        - vfs-uuid - get the filesystem UUID
5721        - vgscan - rescan for LVM physical volumes, volume groups and logical volumes
5722        - write - create a new file
5723        - zero-device - write zeroes to an entire device
5724
5725   Internals
5726        - Extend the generator to support testing optional features.
5727        - Stricter checks on input parameters to many calls (RHBZ#501893 RHBZ#501894)
5728        - Extend the protocol to support sending arbitrary 8 bit data buffers.
5729        - Ship 'BUGS' file with releases.  This is a summary of the bugs in
5730          the Red Hat Bugzilla database.
5731        - Ship 'RELEASE-NOTES' file with releases, containing release notes.
5732        - Unify supermin appliance building into one place, in febootstrap 2.7.
5733        - Fix the protocol code to handle the case where both ends send cancel
5734          messages at the same time.
5735
5736   Bugs fixed
5737        - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
5738        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
5739        - 604691 OCaml bindings are not thread safe
5740        - 603870 Updates to Spanish translation
5741        - 602592 [RFE] expose guestfs_close in perl bindings
5742        - 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
5743        - 599464 mkfs-b does not support vfat/ntfs
5744        - 598807 add_cdrom does not work in RHEL 6
5745        - 598309 part-list and several other cmd failed on libguestfs on RHEL5
5746        - 597145 guestfish 'help' command should indicate error in exit status with an unknown command
5747        - 597135 guestfish write-file cmd does not check "size" parameter
5748        - 597118 A warning should be given in the help of mke2journal-L for the length of label
5749        - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
5750        - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
5751        - 596763 Updates to Spanish translation
5752        - 593292 Updates to Spanish translation
5753        - 592883 can not edit files on  images mounted with guestmount cmd
5754        - 592360 Updates to Spanish translation
5755        - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
5756        - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
5757        - 591142 virt-inspector should give an error for unrecognized disk images
5758        - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
5759        - 589039 guestfish read-file cmd will cause daemon hang when read large files
5760        - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
5761        - 588763 libguestfs should use non-public or link-local addresses for appliance network
5762        - 588733 Updates to Spanish translation
5763        - 588651 guestfish 'strings-e' cmd does not give proper error message or hint
5764        - 587484 lvresize can't reduce size of a volumn
5765        - 585961 Updates to Spanish translation
5766        - 585223 ntfsresize should support shrinking filesystems
5767        - 585222 pvresize should support shrinking PVs
5768        - 585221 resize2fs should support shrinking filesystems
5769        - 584038 Updates to Spanish translation
5770        - 583554 [FEAT] mknod-mode command is needed to set mode explicitly
5771        - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
5772        - 582993 guestfish eats words when tab completing case (in)sensitive paths
5773        - 582953 Misleading help information about lvcreate command
5774        - 582948 mknod command doesn't make block, character or FIFO devices
5775        - 582929 mknod doesn't check for invalid mode
5776        - 582901 guestfish chmod/umask commands do not check invalid mode value
5777        - 582899 guestfish:sparse is missed from command autocomplete list
5778        - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
5779        - 582548 [mknod] umask shouldn't take effect when mode is set explicitly
5780        - 582484 some guestfish sub commands can not handle special files properly
5781        - 582252 Updates to Spanish translation
5782        - 581501 Updates to Spanish translation
5783        - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]"
5784        - 580556 request for libguestfs to support .txz tarballs
5785        - 580246 tar-in command hangs if uploading more than available space
5786        - 580016 aug-ls in guestfish does not take augeas variable as argument
5787        - 579664 guestfish doesn't report error when there is not enough space for image allocation
5788        - 579608 multiple commands in guestfish can not work for symbol links
5789        - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
5790        - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
5791        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
5792        - 559963 libguestfs Perl programs do set locale, but still localization doesn't work
5793        - 521674 Perl modules are unversioned, but should carry version numbers
5794        - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
5795        - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
5796        - 502533 Updated Polish translation of libguestfs
5797        - 501894 Some String parameters should be OptString
5798        - 501893 String parameters should be checked for != NULL
5799        - 501889 write-file does not support strings containing ASCII NUL
5800        - 484986 grub-install fails on virtio disk
5801

RELEASE NOTES FOR HISTORICAL VERSIONS OF LIBGUESTFS

5803       Before 2010 libguestfs did not have official release notes or a
5804       formalized version numbering system.  However these are links to
5805       historically significant versions.
5806
5807       2009-11-10 (1.0.78)
5808           https://www.redhat.com/archives/libguestfs/2009-November/msg00095.html
5809
5810       2009-09-13 (1.0.67)
5811           https://www.redhat.com/archives/libguestfs/2009-August/msg00281.html
5812
5813       2009-07-23 (1.0.64)
5814           https://www.redhat.com/archives/libguestfs/2009-July/msg00059.html
5815
5816       2009-07-14 (1.0.59)
5817           https://www.redhat.com/archives/libguestfs/2009-July/msg00023.html
5818
5819       2009-04-01 (the initial announcement)
5820           http://rwmj.wordpress.com/2009/04/01/libguestfs-access-and-modify-virtual-machine-disk-images/
5821

SEE ALSO

5823       guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
5824       guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
5825       http://libguestfs.org/
5826

AUTHOR

5828       Richard W.M. Jones
5829
5831       Copyright (C) 2009-2018 Red Hat Inc.
5832

LICENSE

5834       This program is free software; you can redistribute it and/or modify it
5835       under the terms of the GNU General Public License as published by the
5836       Free Software Foundation; either version 2 of the License, or (at your
5837       option) any later version.
5838
5839       This program is distributed in the hope that it will be useful, but
5840       WITHOUT ANY WARRANTY; without even the implied warranty of
5841       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
5842       General Public License for more details.
5843
5844       You should have received a copy of the GNU General Public License along
5845       with this program; if not, write to the Free Software Foundation, Inc.,
5846       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
5847

BUGS

5849       To get a list of bugs against libguestfs, use this link:
5850       https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
5851
5852       To report a new bug against libguestfs, use this link:
5853       https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
5854
5855       When reporting a bug, please supply:
5856
5857       ·   The version of libguestfs.
5858
5859       ·   Where you got libguestfs (eg. which Linux distro, compiled from
5860           source, etc)
5861
5862       ·   Describe the bug accurately and give a way to reproduce it.
5863
5864       ·   Run libguestfs-test-tool(1) and paste the complete, unedited output
5865           into the bug report.
5866
5867
5868
5869libguestfs-1.38.2                 2018-05-15          guestfs-release-notes(1)
Impressum