1guestfs-release-notes-1.20(1)Virtualization Supportguestfs-release-notes-1.20(1)
2
3
4

NAME

6       guestfs-release-notes - libguestfs Release Notes
7

RELEASE NOTES FOR LIBGUESTFS 1.20

9       These release notes only cover the differences from the previous
10       stable/dev branch split (1.18.0).  For detailed changelogs, please see
11       the git repository, or the ChangeLog file distributed in the tarball.
12
13   New features
14       libvirt and sVirt (SELinux confinement)
15
16       You can optionally use libvirt to launch and manage the backend
17       appliance by:
18
19       •   setting "LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]"
20
21       •   using "./configure --with-default-attach-method=libvirt[:URI]"
22
23       •   or calling the API method "guestfs_set_attach_method"
24
25       SVirt (SELinux confinement) is used to secure the libguestfs appliance,
26       if the libvirt backend is selected.
27
28       virtio-scsi, larger number of drives, hotplugging
29
30       Virtio-scsi is now used by default, if it is available.  This greatly
31       increases the number of drives that can be added to a single libguestfs
32       handle (up to 255).
33
34       You can now hotplug drives (add and remove drives after launch).
35
36       Libguestfs can now handle > 25 disks, in all APIs, tools and tests.
37
38       You can label drives when adding them, then refer to them by label
39       (/dev/disk/guestfs/LABEL) instead of having to use device names
40       (/dev/sda).
41
42       new library features
43
44       POSIX Access Control Lists (ACLs) and Linux filesystem capabilities can
45       now be read and written through the API.
46
47       Windows Dynamic Disks are now supported.  The metadata can only be read
48       (volumes cannot be modified or created).  However the data/filesystems
49       in the volumes themselves can be mounted, read and written (Matthew
50       Booth).
51
52       Hivex (Windows Registry editing) is now directly supported through the
53       API, making reading or editing the Windows Registry much more
54       efficient.
55
56       Several libguestfs APIs were reimplemented so they no longer have any
57       limits on output.  The reimplemented APIs are: "guestfs_cat",
58       "guestfs_find", "guestfs_read_file", "guestfs_read_lines",
59       "guestfs_write", "guestfs_write_append", "guestfs_lstatlist",
60       "guestfs_lxattrlist", "guestfs_readlinklist", "guestfs_ls".
61
62       virt tools
63
64       "guestfish touch 'win:c:\new_file'" now works as expected.
65
66       "guestfish" has a new --network option, which enables the user network
67       in libguestfs.
68
69       You can set "GUESTFISH_PS1" to use fancy prompts in "guestfish".
70
71       "rsync", "ssh", "less" and "lrzip" commands are now available in virt-
72       rescue.  In addition, "rsync" can be used through the API for doing
73       incremental copies.
74
75       "virt-sparsify" uses qcow2 v3 for increased efficiency.
76
77       "virt-sysprep" enhancements:
78
79       •   generate new UUIDs for PVs and VGs
80
81       •   remove the local machine ID (Wanlong Gao)
82
83       •   remove ABRT data (Wanlong Gao)
84
85       •   remove puppet keys and log files (Wanlong Gao)
86
87       •   remove process accounting files (Wanlong Gao)
88
89       •   new --firstboot parameter allowing firstboot scripts for
90           customizing guests
91
92       •   remove HOSTNAME field from "ifcfg-eth*" files (Wanlong Gao)
93
94       •   miscellaneous improvements for SuSE (Olaf Hering)
95
96       •   remove man pages cache (Wanlong Gao)
97
98       •   remove crash data generated by kexec-tools (Wanlong Gao)
99
100       "virt-make-fs" can now create virtual floppy disks (VFDs).
101
102       "guestmount" has a --pid-file option, which can be used to avoid a race
103       condition between unmounting the filesystem and using the underlying
104       disk image.
105
106       language bindings
107
108       Full-featured Lua bindings have been added in this release (thanks to
109       Jerome Vuarand for many suggestions).
110
111       In Ruby, optional arguments hash is optional.
112
113       In Python, optional arguments now don't use special "sentinel" values,
114       so any integer can be passed as an optional argument.
115
116       Erlang bindings now come with examples and tests.
117
118       Erlang bindings now handle 64 bit integer parameters correctly.
119
120       The automated 'bindtests' now test for 64 bit cleanliness in parameter
121       passing.  Several bugs in the bindings were found and fixed as a
122       result.
123
124       Better handling of blocking and non-blocking functions should make
125       libguestfs calls more efficient.
126
127       inspection
128
129       Windows guests with unlimited-sized Registries are now supported.  By
130       adding the hivex API to the libguestfs API, it is much more efficient
131       and easier to inspect and modify the Windows Registry in guests.
132
133       Better support for SuSE guests (Olaf Hering).
134
135       Return the architecture of installed applications (John Eckersberg).
136
137       Windows 8 is now supported.
138
139       Fedora 18 is now supported.
140
141       Inspection of ISOs/CDs/DVDs can now use the libosinfo database.
142
143       ports
144
145       Libguestfs without the appliance can be compiled on Mac OS X (Masami
146       HIRATA).
147
148       RHEL 5 is now explicitly supported through the 'oldlinux' branch in
149       upstream git.
150
151       PowerPC 64 bit is now supported.  Also libguestfs has been examined for
152       endianness bugs and these have been fixed.
153
154       daemon
155
156       A man page for the daemon (guestfsd(8)) is included.
157
158   Security
159       guestfish history file
160
161       The $HOME/.guestfish history file is now created with 0600 permissions
162       (instead of 0644 before) so it is no longer world readable.
163
164       CVE-2012-2690
165
166       Old versions of both "virt-edit" and the "guestfish" "edit" command
167       created a new file containing the changes but did not set the
168       permissions, etc of the new file to match the old one.  The result of
169       this was that if you edited a security sensitive file such as
170       /etc/shadow then it would be left world-readable after the edit.
171
172       This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥
173       1.16.
174
175       For further information, see
176       https://bugzilla.redhat.com/show_bug.cgi?id=788642
177
178   New APIs
179        acl-delete-def-file
180        acl-get-file
181        acl-set-file
182        canonical-device-name
183        cap-get-file
184        cap-set-file
185        create-flags
186        device-index
187        disk-has-backing-file
188        disk-format
189        disk-virtual-size
190        filesystem-available
191        fill-dir
192        fstrim
193        get-cachedir
194        get-libvirt-requested-credentials
195        get-libvirt-requested-credential-prompt
196        get-libvirt-requested-credential-challenge
197        get-libvirt-requested-credential-defresult
198        get-tmpdir
199        hivex-close
200        hivex-commit
201        hivex-node-add-child
202        hivex-node-children
203        hivex-node-delete-child
204        hivex-node-get-child
205        hivex-node-get-value
206        hivex-node-name
207        hivex-node-parent
208        hivex-node-set-value
209        hivex-node-values
210        hivex-open
211        hivex-root
212        hivex-value-key
213        hivex-value-type
214        hivex-value-utf8
215        hivex-value-value
216        inspect-list-applications2 (John Eckersberg)
217        list-ldm-volumes
218        list-ldm-partitions
219        ldmtool-create-all
220        ldmtool-diskgroup-disks
221        ldmtool-diskgroup-name
222        ldmtool-diskgroup-volumes
223        ldmtool-remove-all
224        ldmtool-scan
225        ldmtool-scan-devices
226        ldmtool-volume-hint
227        ldmtool-volume-partitions
228        ldmtool-volume-type
229        ls0
230        max-disks
231        mke2fs (Wanlong Gao)
232        mklost-and-found
233        mkswap [added label and uuid optional arguments]
234        mktemp (Wanlong Gao)
235        nr-devices
236        parse-environment
237        parse-environment-list
238        rm-f
239        rsync
240        rsync-in
241        rsync-out
242        set-cachedir
243        set-libvirt-supported-credentials
244        set-libvirt-requested-credential
245        set-tmpdir
246        shutdown [backported to 1.16 and 1.18]
247        tar-in [added compress flag]
248        tar-out [added compress, numericowner, excludes flags]
249        umount [added force and lazy optional arguments]
250        utsname
251        xfs-admin (Wanlong Gao)
252        xfs-growfs (Wanlong Gao)
253        xfs-info (Wanlong Gao)
254        xfs-repair (Wanlong Gao)
255
256       In the C API only:
257
258        guestfs_push_error_handler
259        guestfs_pop_error_handler
260
261   Internals
262       qemu ≥ 1.1 is required (≥ 1.2 preferred).
263
264       febootstrap ≥ 3.20 is required.
265
266       libvirt is optional, but if you want to use the new libvirt backend for
267       launching the appliance then libvirt ≥ 0.10.2 would be required.
268
269       Coverity has been run over the complete codebase, and many issues fixed
270       (thanks Ondrej Vasik, Kamil Dudka).
271
272       Functions which previously had no optargs can now be converted to ones
273       with optargs, making extending the API much more flexible.  Source and
274       binary backwards compatibility is preserved for users of the API.
275
276       The way that libguestfs APIs and structures are represented in the
277       generator has changed to use an OCaml struct instead of a tuple.  This
278       makes generator descriptions more flexible and easier to understand.
279       For details see commits 39d1a7db and eb185eef.
280
281       Separation of the library code into more files:
282
283       •   Launch backends are now located in separate files eg.
284           src/launch-appliance.c, "src/launch-libvirt.c".
285
286       •   Generated action code is now split over several src/action*.c
287           files, for faster compilation.
288
289       •   The huge src/guestfs.c file is now split into smaller logical
290           units.
291
292       POD (documentation) is now generated using a rewritten Perl program
293       instead of pod2* + shell scripts.
294
295       Man pages now contain stable dates (Hilko Bengen).
296
297       Skipped tests now exit with code 77, so they appear as "SKIP:" in "make
298       check" output.
299
300       The parallel mount-local test has been rewritten in C (RHBZ#838081).
301
302       Ruby 1.8.5 is now supported (though Ruby ≥ 1.9 is preferred).
303
304       Perl bindings can be disabled via "./configure --disable-perl" (Wulf C.
305       Krueger).  Note that Perl is still required in order to build
306       libguestfs.
307
308       Java bindings are now enabled/disabled using "./configure --with-java"
309       or "./configure --without-java" (Wulf C. Krueger).
310
311       New configure options "./configure --enable-code-profiling" and
312       "./configure --enable-code-coverage".
313
314       Multiple fixes to use of 64 bit integers in language bindings.
315
316       The appliance backend now uses sgabios instead of vgabios (Dan
317       Berrange).
318
319       The "./run" script now sets enough environment variables that you can
320       run OCaml, Python, Ruby, Java, GJS, Erlang, Lua programs.
321
322       "./run --test" flag for running tests with minimal output.  It also
323       prints the time taken to run each test.
324
325       The "./run" script now builds up paths cumulatively, meaning that you
326       can use "./run" twice, or use the libguestfs and libvirt "./run"
327       scripts together.
328
329       You can extract a list of external commands required by the daemon,
330       making building the appliance on certain distros easier (Olaf Hering).
331
332       The "virt-rescue" command is now tested during "make check".
333
334       The generator now removes unused generated files.  This helps when
335       going back and forth with git rebase, git bisect, etc.
336
337       Tests now run in a separate toplevel "tmp/" directory in the source.
338       This allows the directory to be labelled for SELinux (sVirt), and also
339       makes it easier to clean up.
340
341       "make syntax-check" now works to a greater extent, and many problems in
342       the main code that were found by syntax-check have been fixed (thanks
343       Jim Meyering).
344
345       Emacs mode (-*- foo -*-) has been added to generated files.
346
347       Progress bar output is now sent to /dev/tty so it doesn't end up in the
348       regular output of the program.  virt-resize and virt-sparsify now
349       suppress progress bars if stdout is not a tty.
350
351       There is now a "./configure --without-libvirt" option.  This is useful
352       for testing that the code still compiles without libvirt.
353
354       There is now an internal mini-library for running commands.  This
355       allows us to redirect errors from external commands into events.
356
357       Code for handling temporary directories and the appliance cache was
358       completely overhauled.
359
360       Code for temporarily ignoring/disabling errors now looks like this:
361
362        guestfs_push_error_handler (g, NULL, NULL);
363        guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */
364        guestfs_pop_error_handler (g);
365
366       The "tests/extra" directory has gone.  The "extra tests" are now split
367       into separately runnable targets, such as "make check-valgrind".  Use
368       "make help" to get a summary of the targets.
369
370       The "lpj" option is passed to the appliance kernel when using TCG.
371       This should improve clock stability (thanks Marcelo Tosatti, Olaf
372       Hering).
373
374   Bugs fixed
375       https://bugzilla.redhat.com/882417
376           libguestfs tools fail with odd error messages if TMPDIR is not an
377           absolute path
378
379       https://bugzilla.redhat.com/882299
380           Windows 8 guest disks can't be mounted: "The NTFS partition is in
381           an unsafe state. Please resume and shutdown Windows fully (no
382           hibernation or fast restarting), or mount the volume read-only with
383           the 'ro' mount option."
384
385       https://bugzilla.redhat.com/881953
386           libguestfs: migration to /etc/hostname, /etc/vconsole.conf,
387           /etc/locale.conf
388
389       https://bugzilla.redhat.com/880801
390           virt-df with two -a options displays incorrect disk image name
391
392       https://bugzilla.redhat.com/879416
393           libguestfs-test-tool pauses when you use --help option
394
395       https://bugzilla.redhat.com/876579
396           mke2fs API does not apply block device naming translation to
397           journaldevice optarg
398
399       https://bugzilla.redhat.com/860235
400           SELinux policy ought to allow qemu to write to
401           unconfined_u:object_r:user_tmp_t:s0
402
403       https://bugzilla.redhat.com/859949
404           RFE: inspect-list-applications does not return the architecture of
405           RPM packages
406
407       https://bugzilla.redhat.com/859885
408           inspect-list-applications does not list all installed RPM packages
409           with same name and different versions
410
411       https://bugzilla.redhat.com/859876
412           guestfish printed paths are not canonicalized
413
414       https://bugzilla.redhat.com/859875
415           Progress bar output should go to tty(?) stderr(?)
416
417       https://bugzilla.redhat.com/858696
418           virt-sysprep reports Guestfs.Error("read_lines: fopen:
419           /etc/sysconfig/network: No such file or directory") on some Fedora
420           guests
421
422       https://bugzilla.redhat.com/858128
423           libguestfs fail to list devices added by add-drive-ro-with-if twice
424
425       https://bugzilla.redhat.com/858126
426           virt-inspector fail to work with some windows guests
427
428       https://bugzilla.redhat.com/853762
429           virt-sparsify should use a more robust method to detect the input
430           format
431
432       https://bugzilla.redhat.com/853393
433           libvirt doesn't label console, serial sockets
434
435       https://bugzilla.redhat.com/853159
436           virt-rescue in Fedora 18 is completely broken
437
438       https://bugzilla.redhat.com/852394
439           libguestfs inspection limits registries to 100 MiB
440
441       https://bugzilla.redhat.com/852194
442           virt-sparsify --compress fails if output is raw format
443
444       https://bugzilla.redhat.com/847881
445           RFE: allow extra arguments (like --exclude) to tar-out
446
447       https://bugzilla.redhat.com/847880
448           tar-out should allow (or force) --numeric-owner
449
450       https://bugzilla.redhat.com/845522
451           guestfish "copy-out / localdir" command fails with "No such file or
452           directory"
453
454       https://bugzilla.redhat.com/845488
455           Long filenames on NTFS cause tar-out, copy-out etc to fail with
456           error "Cannot open: File name too long"
457
458       https://bugzilla.redhat.com/842307
459           RFE: Need help designing and implementing selinux policy for
460           libguestfs/sVirt
461
462       https://bugzilla.redhat.com/840572
463           virt-make-fs / tar-in should support vfat properly
464
465       https://bugzilla.redhat.com/840115
466           guestfish touch problem - case_sensitive_path API expects the file
467           to exist
468
469       https://bugzilla.redhat.com/836710
470           Data loss when writing to qcow2-format disk files
471
472       https://bugzilla.redhat.com/834712
473           lvresize, lvresize-free fail unnecessarily if you don't change the
474           size of the LV: "New size (nn extents) matches existing size (nn
475           extents)"
476
477       https://bugzilla.redhat.com/824716
478           compress-device-out didn't support bzip2
479
480       https://bugzilla.redhat.com/824043
481           guestfish unrecognized mount option gives confusing error message
482
483       https://bugzilla.redhat.com/823887
484           Filenames containing Chinese characters can't be created on vfat
485           filesystems
486
487       https://bugzilla.redhat.com/823885
488           virt-make-fs cannot create vfat filesystem containing filesystems
489           with Chinese characters
490
491       https://bugzilla.redhat.com/823883
492           virt-make-fs -t fat fails with an obscure error message
493
494       https://bugzilla.redhat.com/823821
495           Inspection fails when /etc/HOSTNAME is empty
496
497       https://bugzilla.redhat.com/801117
498           libguestfs cannot get icon for Windows 8
499
500       https://bugzilla.redhat.com/798979
501           Ubuntu install CDs from oneiric onwards are not recognized: "multi-
502           boot operating systems are not supported"
503
504       https://bugzilla.redhat.com/782167
505           libguestfs doesn't recognize Windows Dynamic disks in some
506           configurations, eg. spanned
507
508       https://bugzilla.redhat.com/713678
509           Not all febootstrap messages are redirected to log callbacks
510
511       https://bugzilla.redhat.com/627675
512           libguestfs inspector code cannot handle /dev/disk/by-id/* paths
513
514       https://bugzilla.redhat.com/602997
515           part-get-bootable gives wrong result with an unordered part layout
516

SEE ALSO

518       guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
519       guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
520       http://libguestfs.org/
521

AUTHOR

523       Richard W.M. Jones
524
526       Copyright (C) 2009-2020 Red Hat Inc.
527

LICENSE

529       This program is free software; you can redistribute it and/or modify it
530       under the terms of the GNU General Public License as published by the
531       Free Software Foundation; either version 2 of the License, or (at your
532       option) any later version.
533
534       This program is distributed in the hope that it will be useful, but
535       WITHOUT ANY WARRANTY; without even the implied warranty of
536       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
537       General Public License for more details.
538
539       You should have received a copy of the GNU General Public License along
540       with this program; if not, write to the Free Software Foundation, Inc.,
541       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
542

BUGS

544       To get a list of bugs against libguestfs, use this link:
545       https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
546
547       To report a new bug against libguestfs, use this link:
548       https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
549
550       When reporting a bug, please supply:
551
552       •   The version of libguestfs.
553
554       •   Where you got libguestfs (eg. which Linux distro, compiled from
555           source, etc)
556
557       •   Describe the bug accurately and give a way to reproduce it.
558
559       •   Run libguestfs-test-tool(1) and paste the complete, unedited output
560           into the bug report.
561
562
563
564libguestfs-1.46.0                 2021-09-23     guestfs-release-notes-1.20(1)
Impressum