1guestfs-release-notes(1) Virtualization Support guestfs-release-notes(1)
2
3
4
6 guestfs-release-notes - libguestfs Release Notes
7
9 These release notes only cover the differences from the previous
10 stable/dev branch split (1.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
5828 Richard W.M. Jones
5829
5831 Copyright (C) 2009-2018 Red Hat Inc.
5832
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
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)