1guestfs-release-notes-1.38(1)Virtualization Supportguestfs-release-notes-1.38(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 guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
541 guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
542 http://libguestfs.org/
543
545 Richard W.M. Jones
546
548 Copyright (C) 2009-2023 Red Hat Inc.
549
551 This program is free software; you can redistribute it and/or modify it
552 under the terms of the GNU General Public License as published by the
553 Free Software Foundation; either version 2 of the License, or (at your
554 option) any later version.
555
556 This program is distributed in the hope that it will be useful, but
557 WITHOUT ANY WARRANTY; without even the implied warranty of
558 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
559 General Public License for more details.
560
561 You should have received a copy of the GNU General Public License along
562 with this program; if not, write to the Free Software Foundation, Inc.,
563 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
564
566 To get a list of bugs against libguestfs, use this link:
567 https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
568
569 To report a new bug against libguestfs, use this link:
570 https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
571
572 When reporting a bug, please supply:
573
574 • The version of libguestfs.
575
576 • Where you got libguestfs (eg. which Linux distro, compiled from
577 source, etc)
578
579 • Describe the bug accurately and give a way to reproduce it.
580
581 • Run libguestfs-test-tool(1) and paste the complete, unedited output
582 into the bug report.
583
584
585
586libguestfs-1.51.9 2023-12-09 guestfs-release-notes-1.38(1)