1guestfs-release-notes-1.26(1)Virtualization Supportguestfs-release-notes-1.26(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.24.0). For detailed changelogs, please see
11 the git repository, or the ChangeLog file distributed in the tarball.
12
13 New features
14 Tools
15
16 virt-customize(1) is a new tool for customizing virtual machine disk
17 images. It lets you install packages, edit configuration files, run
18 scripts, set passwords and so on. virt-builder(1) and virt-sysprep(1)
19 use virt-customize, and command line options across all these tools are
20 now identical.
21
22 virt-diff(1) is a new tool for showing the differences between the
23 filesystems of two virtual machines. It is mainly useful when showing
24 what files have been changed between snapshots.
25
26 virt-builder(1) has been greatly enhanced. There are many more ways to
27 customize the virtual machine. It can pull templates from multiple
28 repositories. A parallelized internal xzcat implementation speeds up
29 template decompression. Virt-builder uses an optimizing planner to
30 choose the fastest way to build the VM. It is now easier to use virt-
31 builder from other programs. Internationalization support has been
32 added to metadata. More efficient SELinux relabelling of files. Can
33 build guests for multiple architectures. Error messages have been
34 improved. (Pino Toscano)
35
36 virt-sparsify(1) has a new --in-place option. This sparsifies an image
37 in place (without copying it) and is also much faster. (Lots of help
38 provided by Paolo Bonzini)
39
40 virt-sysprep(1) can delete and scrub files under user control. You can
41 lock user accounts or set random passwords on accounts. Can remove
42 more log files. Can unsubscribe a guest from Red Hat Subscription
43 Manager. New flexible way to enable and disable operations. (Wanlong
44 Gao, Pino Toscano)
45
46 virt-win-reg(1) allows you to use URIs to specify remote disk images.
47
48 virt-format(1) can now pass the extra space that it recovers back to
49 the host.
50
51 guestfish(1) has additional environment variables to give fine control
52 over the "><fs>" prompt. Guestfish reads its (rarely used)
53 configuration file in a different order now so that local settings
54 override global settings. (Pino Toscano)
55
56 virt-make-fs(1) was rewritten in C, but is unchanged in terms of
57 functionality and command line usage.
58
59 Language bindings
60
61 The OCaml bindings have a new "Guestfs.Errno" module, used to check the
62 error number returned by "Guestfs.last_errno".
63
64 PHP tests now work. (Pino Toscano)
65
66 Inspection
67
68 Inspection can recognize Debian live images.
69
70 Architectures
71
72 ARMv7 (32 bit) now supports KVM acceleration.
73
74 Aarch64 (ARM 64 bit) is supported, but the appliance part does not work
75 yet.
76
77 PPC64 support has been fixed and enhanced.
78
79 Security
80 Denial of service when inspecting disk images with corrupt btrfs
81 volumes
82 It was possible to crash libguestfs (and programs that use
83 libguestfs as a library) by presenting a disk image containing a
84 corrupt btrfs volume.
85
86 This was caused by a NULL pointer dereference causing a denial of
87 service, and is not thought to be exploitable any further.
88
89 See commit d70ceb4cbea165c960710576efac5a5716055486 for the fix.
90 This fix is included in libguestfs stable branches ≥ 1.26.0,
91 ≥ 1.24.6 and ≥ 1.22.8, and also in RHEL ≥ 7.0. Earlier versions of
92 libguestfs are not vulnerable.
93
94 Better generation of random root passwords and random seeds
95 When generating random root passwords and random seeds, two bugs
96 were fixed which are possibly security related. Firstly we no
97 longer read excessive bytes from /dev/urandom (most of which were
98 just thrown away). Secondly we changed the code to avoid modulo
99 bias. These issues were not thought to be exploitable. (Both
100 changes suggested by Edwin Török)
101
102 API
103 GUID parameters are now validated when they are passed to API calls,
104 whereas previously you could have passed any string. (Pino Toscano)
105
106 New APIs
107
108 "guestfs_add_drive_opts": new "discard" parameter
109 The new "discard" parameter allows fine-grained control over
110 discard/trim support for a particular disk. This allows the host
111 file to become more sparse (or thin-provisioned) when you delete
112 files or issue the "guestfs_fstrim" API call.
113
114 "guestfs_add_domain": new parameters: "cachemode", "discard"
115 These parameters are passed through when adding the domain's disks.
116
117 "guestfs_blkdiscard"
118 Discard all blocks on a guestfs device. Combined with the
119 "discard" parameter above, this makes the host file sparse.
120
121 "guestfs_blkdiscardzeroes"
122 Test if discarded blocks read back as zeroes.
123
124 "guestfs_compare_*"
125 "guestfs_copy_*"
126 For each struct returned through the API, libguestfs now generates
127 "guestfs_compare_*" and "guestfs_copy_*" functions to allow you to
128 compare and copy structs.
129
130 "guestfs_copy_attributes"
131 Copy attributes (like permissions, xattrs, ownership) from one file
132 to another. (Pino Toscano)
133
134 "guestfs_disk_create"
135 A flexible API for creating empty disk images from scratch. This
136 avoids the need to call out to external programs like qemu-img(1).
137
138 "guestfs_get_backend_settings"
139 "guestfs_set_backend_settings"
140 Per-backend settings (can also be set via the environment variable
141 "LIBGUESTFS_BACKEND_SETTINGS"). The main use for this is forcing
142 TCG mode in the qemu-based backends, for example:
143
144 export LIBGUESTFS_BACKEND=direct
145 export LIBGUESTFS_BACKEND_SETTINGS=force_tcg
146
147 "guestfs_part_get_name"
148 Get the label or name of a partition (for GPT disk images).
149
150 Build changes
151 The following extra packages are required to build libguestfs 1.26:
152
153 supermin ≥ 5
154 Supermin version 5 is required to build this version of libguestfs.
155
156 flex, bison
157 Virt-builder now uses a real parser to parse its metadata file, so
158 these tools are required.
159
160 xz This is now a required build dependency, where previously it was
161 (in theory) optional.
162
163 Internals
164 PO message extraction rewritten to be more robust. (Pino Toscano)
165
166 "podwrapper" gives an error if the --insert or --verbatim argument
167 pattern is not found.
168
169 Libguestfs now passes the qemu -enable-fips option to enable FIPS, if
170 qemu supports it.
171
172 "./configure --without-qemu" can be used if you don't want to specify a
173 default hypervisor.
174
175 Copy-on-write [COW] overlays, used for example for read-only drives,
176 are now created through an internal backend API
177 (".create_cow_overlay").
178
179 Libvirt backend uses some funky C macros to generate XML. These are
180 simpler and safer.
181
182 The ChangeLog file format has changed. It is now just the same as "git
183 log", instead of using a custom format.
184
185 Appliance start-up has changed:
186
187 • The libguestfs appliance now initializes LVM the same way as it is
188 done on physical machines.
189
190 • The libguestfs appliance does not write an empty string to
191 /proc/sys/kernel/hotplug when starting up.
192
193 Note that you must configure your kernel to have
194 "CONFIG_UEVENT_HELPER_PATH=""" otherwise you will get strange LVM
195 errors (this applies as much to any Linux machine, not just
196 libguestfs). (Peter Rajnoha)
197
198 Libguestfs can now be built on arches that have ocamlc(1) but not
199 ocamlopt(1). (Hilko Bengen, Olaf Hering)
200
201 You cannot use "./configure --disable-daemon --enable-appliance". It
202 made no sense anyway. Now it is expressly forbidden by the configure
203 script.
204
205 The packagelist file uses "m4" for macro expansion instead of "cpp".
206
207 Bugs fixed
208 https://bugzilla.redhat.com/1073906
209 java bindings inspect_list_applications2 throws
210 java.lang.ArrayIndexOutOfBoundsException:
211
212 https://bugzilla.redhat.com/1063374
213 [RFE] enable subscription manager clean or unregister operation to
214 sysprep
215
216 https://bugzilla.redhat.com/1060404
217 virt-resize does not preserve GPT partition names
218
219 https://bugzilla.redhat.com/1057504
220 mount-local should give a clearer error if root is not mounted
221
222 https://bugzilla.redhat.com/1056290
223 virt-sparsify overwrites block devices if used as output files
224
225 https://bugzilla.redhat.com/1055452
226 libguestfs: error: invalid backend: appliance
227
228 https://bugzilla.redhat.com/1054761
229 guestfs_pvs prints "unknown device" if a physical volume is missing
230
231 https://bugzilla.redhat.com/1053847
232 Recommended default clock/timer settings
233
234 https://bugzilla.redhat.com/1046509
235 ruby-libguestfs throws "expecting 0 or 1 arguments" on
236 Guestfs::Guestfs.new
237
238 https://bugzilla.redhat.com/1045450
239 Cannot inspect cirros 0.3.1 disk image fully
240
241 https://bugzilla.redhat.com/1045033
242 LIBVIRT_DEFAULT_URI=qemu:///system breaks libguestfs
243
244 https://bugzilla.redhat.com/1044585
245 virt-builder network (eg. --install) doesn't work if resolv.conf
246 sets nameserver 127.0.0.1
247
248 https://bugzilla.redhat.com/1044014
249 When SSSD is installed, libvirt configuration requires
250 authentication, but not clear to user
251
252 https://bugzilla.redhat.com/1039995
253 virt-make-fs fails making fat/vfat whole disk: Device partition
254 expected, not making filesystem on entire device '/dev/sda' (use -I
255 to override)
256
257 https://bugzilla.redhat.com/1039540
258 virt-sysprep to delete more logfiles
259
260 https://bugzilla.redhat.com/1033207
261 RFE: libguestfs inspection does not recognize Free4NAS live CD
262
263 https://bugzilla.redhat.com/1028660
264 RFE: virt-sysprep/virt-builder should have an option to lock a user
265 account
266
267 https://bugzilla.redhat.com/1026688
268 libguestfs fails examining libvirt guest with ceph drives: rbd:
269 image name must begin with a '/'
270
271 https://bugzilla.redhat.com/1022431
272 virt-builder fails if $HOME/.cache doesn't exist
273
274 https://bugzilla.redhat.com/1022184
275 libguestfs: do not use versioned jar file
276
277 https://bugzilla.redhat.com/1020806
278 All libguestfs LVM operations fail on Debian/Ubuntu
279
280 https://bugzilla.redhat.com/1008417
281 Need update helpout of part-set-gpt-type
282
283 https://bugzilla.redhat.com/953907
284 virt-sysprep does not correctly set the hostname on Debian/Ubuntu
285
286 https://bugzilla.redhat.com/923355
287 guestfish prints literal "\n" in error messages
288
289 https://bugzilla.redhat.com/660687
290 guestmount: "touch" command fails: touch: setting times of
291 `timestamp': Invalid argument
292
293 https://bugzilla.redhat.com/593511
294 [RFE] function to get partition name
295
296 https://bugzilla.redhat.com/563450
297 list-devices returns devices of different types out of order
298
300 guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
301 guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
302 http://libguestfs.org/
303
305 Richard W.M. Jones
306
308 Copyright (C) 2009-2023 Red Hat Inc.
309
311 This program is free software; you can redistribute it and/or modify it
312 under the terms of the GNU General Public License as published by the
313 Free Software Foundation; either version 2 of the License, or (at your
314 option) any later version.
315
316 This program is distributed in the hope that it will be useful, but
317 WITHOUT ANY WARRANTY; without even the implied warranty of
318 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
319 General Public License for more details.
320
321 You should have received a copy of the GNU General Public License along
322 with this program; if not, write to the Free Software Foundation, Inc.,
323 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
324
326 To get a list of bugs against libguestfs, use this link:
327 https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
328
329 To report a new bug against libguestfs, use this link:
330 https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
331
332 When reporting a bug, please supply:
333
334 • The version of libguestfs.
335
336 • Where you got libguestfs (eg. which Linux distro, compiled from
337 source, etc)
338
339 • Describe the bug accurately and give a way to reproduce it.
340
341 • Run libguestfs-test-tool(1) and paste the complete, unedited output
342 into the bug report.
343
344
345
346libguestfs-1.51.9 2023-12-09 guestfs-release-notes-1.26(1)