forked from libguestfs/libguestfs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
guestfs-release-notes.txt
1948 lines (1322 loc) · 71.9 KB
/
guestfs-release-notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
NAME
guestfs-release-notes - libguestfs Release Notes
RELEASE NOTES FOR LIBGUESTFS 1.20
These release notes only cover the differences from the previous
stable/dev branch split (1.18.0). For detailed changelogs, please see
the git repository, or the ChangeLog file distributed in the tarball.
New features
libvirt and sVirt (SELinux confinement)
You can optionally use libvirt to launch and manage the backend
appliance by:
* setting LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]
* using ./configure --with-default-attach-method=libvirt[:URI]
* or calling the API method guestfs_set_attach_method
SVirt (SELinux confinement) is used to secure the libguestfs appliance,
if the libvirt backend is selected.
virtio-scsi, larger number of drives, hotplugging
Virtio-scsi is now used by default, if it is available. This greatly
increases the number of drives that can be added to a single libguestfs
handle (up to 255).
You can now hotplug drives (add and remove drives after launch).
Libguestfs can now handle > 25 disks, in all APIs, tools and tests.
You can label drives when adding them, then refer to them by label
(/dev/disk/guestfs/LABEL) instead of having to use device names
(/dev/sda).
new library features
POSIX Access Control Lists (ACLs) and Linux filesystem capabilities can
now be read and written through the API.
Windows Dynamic Disks are now supported. The metadata can only be read
(volumes cannot be modified or created). However the data/filesystems
in the volumes themselves can be mounted, read and written (Matthew
Booth).
Hivex (Windows Registry editing) is now directly supported through the
API, making reading or editing the Windows Registry much more
efficient.
Several libguestfs APIs were reimplemented so they no longer have any
limits on output. The reimplemented APIs are: guestfs_cat,
guestfs_find, guestfs_read_file, guestfs_read_lines, guestfs_write,
guestfs_write_append, guestfs_lstatlist, guestfs_lxattrlist,
guestfs_readlinklist, guestfs_ls.
virt tools
guestfish touch 'win:c:\new_file' now works as expected.
guestfish has a new --network option, which enables the user network in
libguestfs.
You can set GUESTFISH_PS1 to use fancy prompts in guestfish.
rsync, ssh, less and lrzip commands are now available in virt-rescue.
In addition, rsync can be used through the API for doing incremental
copies.
virt-sparsify uses qcow2 v3 for increased efficiency.
virt-sysprep enhancements:
* generate new UUIDs for PVs and VGs
* remove the local machine ID (Wanlong Gao)
* remove ABRT data (Wanlong Gao)
* remove puppet keys and log files (Wanlong Gao)
* remove process accounting files (Wanlong Gao)
* new --firstboot parameter allowing firstboot scripts for
customizing guests
* remove HOSTNAME field from ifcfg-eth* files (Wanlong Gao)
* miscellaneous improvements for SuSE (Olaf Hering)
* remove man pages cache (Wanlong Gao)
* remove crash data generated by kexec-tools (Wanlong Gao)
virt-make-fs can now create virtual floppy disks (VFDs).
guestmount has a --pid-file option, which can be used to avoid a race
condition between unmounting the filesystem and using the underlying
disk image.
language bindings
Full-featured Lua bindings have been added in this release (thanks to
Jerome Vuarand for many suggestions).
In Ruby, optional arguments hash is optional.
In Python, optional arguments now don't use special "sentinel" values,
so any integer can be passed as an optional argument.
Erlang bindings now come with examples and tests.
Erlang bindings now handle 64 bit integer parameters correctly.
The automated 'bindtests' now test for 64 bit cleanliness in parameter
passing. Several bugs in the bindings were found and fixed as a result.
Better handling of blocking and non-blocking functions should make
libguestfs calls more efficient.
inspection
Windows guests with unlimited-sized Registries are now supported. By
adding the hivex API to the libguestfs API, it is much more efficient
and easier to inspect and modify the Windows Registry in guests.
Better support for SuSE guests (Olaf Hering).
Return the architecture of installed applications (John Eckersberg).
Windows 8 is now supported.
Fedora 18 is now supported.
Inspection of ISOs/CDs/DVDs can now use the libosinfo database.
ports
Libguestfs without the appliance can be compiled on Mac OS X (Masami
HIRATA).
RHEL 5 is now explicitly supported through the 'oldlinux' branch in
upstream git.
PowerPC 64 bit is now supported. Also libguestfs has been examined for
endianness bugs and these have been fixed.
daemon
A man page for the daemon (guestfsd(8)) is included.
Security
guestfish history file
The $HOME/.guestfish history file is now created with 0600 permissions
(instead of 0644 before) so it is no longer world readable.
CVE-2012-2690
Old versions of both virt-edit and the guestfish edit command created a
new file containing the changes but did not set the permissions, etc of
the new file to match the old one. The result of this was that if you
edited a security sensitive file such as /etc/shadow then it would be
left world-readable after the edit.
This issue was assigned CVE-2012-2690, and is fixed in libguestfs ≥
1.16.
For further information, see
https://bugzilla.redhat.com/show_bug.cgi?id=788642
New APIs
acl-delete-def-file
acl-get-file
acl-set-file
canonical-device-name
cap-get-file
cap-set-file
create-flags
device-index
disk-has-backing-file
disk-format
disk-virtual-size
filesystem-available
fill-dir
fstrim
get-cachedir
get-libvirt-requested-credentials
get-libvirt-requested-credential-prompt
get-libvirt-requested-credential-challenge
get-libvirt-requested-credential-defresult
get-tmpdir
hivex-close
hivex-commit
hivex-node-add-child
hivex-node-children
hivex-node-delete-child
hivex-node-get-child
hivex-node-get-value
hivex-node-name
hivex-node-parent
hivex-node-set-value
hivex-node-values
hivex-open
hivex-root
hivex-value-key
hivex-value-type
hivex-value-utf8
hivex-value-value
inspect-list-applications2 (John Eckersberg)
list-ldm-volumes
list-ldm-partitions
ldmtool-create-all
ldmtool-diskgroup-disks
ldmtool-diskgroup-name
ldmtool-diskgroup-volumes
ldmtool-remove-all
ldmtool-scan
ldmtool-scan-devices
ldmtool-volume-hint
ldmtool-volume-partitions
ldmtool-volume-type
ls0
max-disks
mke2fs (Wanlong Gao)
mklost-and-found
mkswap [added label and uuid optional arguments]
mktemp (Wanlong Gao)
nr-devices
parse-environment
parse-environment-list
rm-f
rsync
rsync-in
rsync-out
set-cachedir
set-libvirt-supported-credentials
set-libvirt-requested-credential
set-tmpdir
shutdown [backported to 1.16 and 1.18]
tar-in [added compress flag]
tar-out [added compress, numericowner, excludes flags]
umount [added force and lazy optional arguments]
utsname
xfs-admin (Wanlong Gao)
xfs-growfs (Wanlong Gao)
xfs-info (Wanlong Gao)
xfs-repair (Wanlong Gao)
In the C API only:
guestfs_push_error_handler
guestfs_pop_error_handler
Internals
qemu ≥ 1.1 is required (≥ 1.2 preferred).
febootstrap ≥ 3.20 is required.
libvirt is optional, but if you want to use the new libvirt backend for
launching the appliance then libvirt ≥ 0.10.2 would be required.
Coverity has been run over the complete codebase, and many issues fixed
(thanks Ondrej Vasik, Kamil Dudka).
Functions which previously had no optargs can now be converted to ones
with optargs, making extending the API much more flexible. Source and
binary backwards compatibility is preserved for users of the API.
The way that libguestfs APIs and structures are represented in the
generator has changed to use an OCaml struct instead of a tuple. This
makes generator descriptions more flexible and easier to understand.
For details see commits 39d1a7db and eb185eef.
Separation of the library code into more files:
* Launch backends are now located in separate files eg.
src/launch-appliance.c, src/launch-libvirt.c.
* Generated action code is now split over several src/action*.c
files, for faster compilation.
* The huge src/guestfs.c file is now split into smaller logical
units.
POD (documentation) is now generated using a rewritten Perl program
instead of pod2* + shell scripts.
Man pages now contain stable dates (Hilko Bengen).
Skipped tests now exit with code 77, so they appear as SKIP: in make
check output.
The parallel mount-local test has been rewritten in C (RHBZ#838081).
Ruby 1.8.5 is now supported (though Ruby ≥ 1.9 is preferred).
Perl bindings can be disabled via ./configure --disable-perl (Wulf C.
Krueger). Note that Perl is still required in order to build
libguestfs.
Java bindings are now enabled/disabled using ./configure --with-java or
./configure --without-java (Wulf C. Krueger).
New configure options ./configure --enable-code-profiling and
./configure --enable-code-coverage.
Multiple fixes to use of 64 bit integers in language bindings.
The appliance backend now uses sgabios instead of vgabios (Dan
Berrange).
The ./run script now sets enough environment variables that you can run
OCaml, Python, Ruby, Java, GJS, Erlang, Lua programs.
./run --test flag for running tests with minimal output. It also prints
the time taken to run each test.
The ./run script now builds up paths cumulatively, meaning that you can
use ./run twice, or use the libguestfs and libvirt ./run scripts
together.
You can extract a list of external commands required by the daemon,
making building the appliance on certain distros easier (Olaf Hering).
The virt-rescue command is now tested during make check.
The generator now removes unused generated files. This helps when going
back and forth with git rebase, git bisect, etc.
Tests now run in a separate toplevel tmp/ directory in the source. This
allows the directory to be labelled for SELinux (sVirt), and also makes
it easier to clean up.
make syntax-check now works to a greater extent, and many problems in
the main code that were found by syntax-check have been fixed (thanks
Jim Meyering).
Emacs mode (-*- foo -*-) has been added to generated files.
Progress bar output is now sent to /dev/tty so it doesn't end up in the
regular output of the program. virt-resize and virt-sparsify now
suppress progress bars if stdout is not a tty.
There is now a ./configure --without-libvirt option. This is useful for
testing that the code still compiles without libvirt.
There is now an internal mini-library for running commands. This allows
us to redirect errors from external commands into events.
Code for handling temporary directories and the appliance cache was
completely overhauled.
Code for temporarily ignoring/disabling errors now looks like this:
guestfs_push_error_handler (g, NULL, NULL);
guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */
guestfs_pop_error_handler (g);
The tests/extra directory has gone. The "extra tests" are now split
into separately runnable targets, such as make check-valgrind. Use make
help to get a summary of the targets.
The lpj option is passed to the appliance kernel when using TCG. This
should improve clock stability (thanks Marcelo Tosatti, Olaf Hering).
Bugs fixed
https://bugzilla.redhat.com/882417
libguestfs tools fail with odd error messages if TMPDIR is not an
absolute path
https://bugzilla.redhat.com/882299
Windows 8 guest disks can't be mounted: "The NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no
hibernation or fast restarting), or mount the volume read-only with
the 'ro' mount option."
https://bugzilla.redhat.com/881953
libguestfs: migration to /etc/hostname, /etc/vconsole.conf,
/etc/locale.conf
https://bugzilla.redhat.com/880801
virt-df with two -a options displays incorrect disk image name
https://bugzilla.redhat.com/879416
libguestfs-test-tool pauses when you use --help option
https://bugzilla.redhat.com/876579
mke2fs API does not apply block device naming translation to
journaldevice optarg
https://bugzilla.redhat.com/860235
SELinux policy ought to allow qemu to write to
unconfined_u:object_r:user_tmp_t:s0
https://bugzilla.redhat.com/859949
RFE: inspect-list-applications does not return the architecture of
RPM packages
https://bugzilla.redhat.com/859885
inspect-list-applications does not list all installed RPM packages
with same name and different versions
https://bugzilla.redhat.com/859876
guestfish printed paths are not canonicalized
https://bugzilla.redhat.com/859875
Progress bar output should go to tty(?) stderr(?)
https://bugzilla.redhat.com/858696
virt-sysprep reports Guestfs.Error("read_lines: fopen:
/etc/sysconfig/network: No such file or directory") on some Fedora
guests
https://bugzilla.redhat.com/858128
libguestfs fail to list devices added by add-drive-ro-with-if twice
https://bugzilla.redhat.com/858126
virt-inspector fail to work with some windows guests
https://bugzilla.redhat.com/853762
virt-sparsify should use a more robust method to detect the input
format
https://bugzilla.redhat.com/853393
libvirt doesn't label console, serial sockets
https://bugzilla.redhat.com/853159
virt-rescue in Fedora 18 is completely broken
https://bugzilla.redhat.com/852394
libguestfs inspection limits registries to 100 MiB
https://bugzilla.redhat.com/852194
virt-sparsify --compress fails if output is raw format
https://bugzilla.redhat.com/847881
RFE: allow extra arguments (like --exclude) to tar-out
https://bugzilla.redhat.com/847880
tar-out should allow (or force) --numeric-owner
https://bugzilla.redhat.com/845522
guestfish "copy-out / localdir" command fails with "No such file or
directory"
https://bugzilla.redhat.com/845488
Long filenames on NTFS cause tar-out, copy-out etc to fail with error
"Cannot open: File name too long"
https://bugzilla.redhat.com/842307
RFE: Need help designing and implementing selinux policy for
libguestfs/sVirt
https://bugzilla.redhat.com/840572
virt-make-fs / tar-in should support vfat properly
https://bugzilla.redhat.com/840115
guestfish touch problem - case_sensitive_path API expects the file to
exist
https://bugzilla.redhat.com/836710
Data loss when writing to qcow2-format disk files
https://bugzilla.redhat.com/834712
lvresize, lvresize-free fail unnecessarily if you don't change the
size of the LV: "New size (nn extents) matches existing size (nn
extents)"
https://bugzilla.redhat.com/824716
compress-device-out didn't support bzip2
https://bugzilla.redhat.com/824043
guestfish unrecognized mount option gives confusing error message
https://bugzilla.redhat.com/823887
Filenames containing Chinese characters can't be created on vfat
filesystems
https://bugzilla.redhat.com/823885
virt-make-fs cannot create vfat filesystem containing filesystems
with chinese characters
https://bugzilla.redhat.com/823883
virt-make-fs -t fat fails with an obscure error message
https://bugzilla.redhat.com/823821
Inspection fails when /etc/HOSTNAME is empty
https://bugzilla.redhat.com/801117
libguestfs cannot get icon for Windows 8
https://bugzilla.redhat.com/798979
Ubuntu install CDs from oneiric onwards are not recognized:
"multi-boot operating systems are not supported"
https://bugzilla.redhat.com/782167
libguestfs doesn't recognize Windows Dynamic disks in some
configurations, eg. spanned
https://bugzilla.redhat.com/713678
Not all febootstrap messages are redirected to log callbacks
https://bugzilla.redhat.com/627675
libguestfs inspector code cannot handle /dev/disk/by-id/* paths
https://bugzilla.redhat.com/602997
part-get-bootable gives wrong result with an unordered part layout
RELEASE NOTES FOR LIBGUESTFS 1.18
These release notes only cover the differences from the previous
stable/dev branch split (1.16.0). For detailed changelogs, please see
the git repository, or the ChangeLog file distributed in the tarball.
New features
virt tools
- virt-sysprep has been rewritten and expanded (thanks Wanlong Gao)
http://libguestfs.org/virt-sysprep.1.html
- virt-sparsify --zero is a new option that zeroes the named
partition or filesystem
- virt-sparsify can now safely sparsify Linux swap partitions
- virt-sparsify fixed so it cleans up after ^C
http://libguestfs.org/virt-sparsify.1.html
- a new tool 'libguestfs-make-fixed-appliance' is provided to build
fixed appliances that can be copied to other machines that don't
have febootstrap support
http://libguestfs.org/libguestfs-make-fixed-appliance.1.html
- virt-filesystems now displays the parents (containers) of MD
devices and volume groups
- virt-alignment-scan, run with no args, displays alignment information
for all libvirt domains
- virt-df and virt-alignment-scan will display information from all
guests even when a disk is inaccessible
- virt-rescue new --scratch option to make scratch disks
https://rwmj.wordpress.com/2012/04/26/virt-rescue-scratch/#content
- virt-make-fs can now be used to create btrfs
- virt-edit preserves permissions, UID, GID and SELinux context
when editing files
- guestfish passes the close event over stdout and remote correctly
- guestfish new '--pipe-error' option lets you detect errors in pipe
commands
- guestfish globs now expand device names
- comma and colon characters in filenames now handled correctly by
all virt tools
inspection
- added support for Fedora 17+
- added support for FreeDOS
- added support for Buildroot and Cirros
- inspection is now compatible with Windows guests that have been
sysprepped (thanks Grant Williamson).
API
- broad support for btrfs added, including adding multiple devices,
fsck, snapshots (thanks Wanlong Gao)
- the new 'mount-local' API brings FUSE support directly into the
core libguestfs API
https://rwmj.wordpress.com/2012/05/14/tip-using-mount-local-api-from-c/#content
- new man page: guestfs-performance(1), which contains performance
tuning tips
http://libguestfs.org/guestfs-performance.1.html
- new man page: guestfs-faq(1), Frequently Asked Questions
http://libguestfs.org/guestfs-faq.1.html
- ENOTSUP (from guestfs_last_errno) is now returned for APIs that
are not supported
examples
- 'copy_over' example showing how to copy between two handles
- 'display_icon' program displays the icon associated with a guest
- 'mount_local.c' example shows how to use the mount-local API
Security
(no security problems were found or fixed in this release)
New APIs
btrfs-device-add: Add devices to a btrfs filesystem.
btrfs-device-delete: Remove devices from a btrfs filesystem.
btrfs-filesystem-sync: Sync a btrfs filesystem.
btrfs-filesystem-balance: Balance a btrfs filesystem.
btrfs-fsck: Check btrfs filesystem.
btrfs-set-seeding: Enable or disable seeding.
btrfs-subvolume-create: Create a btrfs snapshot.
btrfs-subvolume-delete: Delete a btrfs snapshot.
btrfs-subvolume-list: List btrfs snapshots and subvolumes.
btrfs-subvolume-set-default: Set default btrfs subvolume.
btrfs-subvolume-snapshot: Create a writable btrfs snapshot.
get-e2attrs: List ext2 file attributes of a file.
get-e2generation: Get ext2 file generation of a file.
isoinfo, isoinfo-device: Get information from the header of ISO files.
llz: List files with SELinux information.
lvcreate-free: Create an LVM logical volume in % remaining free space.
md-stat: Return underlying devices from an MD device.
mkfs-brtfs: Make btrfs filesystem, with all tunables.
mount-local, mount-local-run, umount-local: FUSE support in the API.
ntfsclone-in, ntfsclone-out: Save, restore NTFS from backup.
ntfsfix: Fix common errors and force Windows to check NTFS.
set-e2attrs: Set or clear ext2 file attributes of a file.
set-e2generation: Set ext2 file generation of a file.
set-label: Unified interface for setting filesystem label.
vgmeta: Get volume group metadata.
wipefs: Wipe filesystem signatures from a device.
zero-free-space: Zero free space in a filesystem.
Internals
- The debian/ subdirectory has been removed. We recommend you use
the official Debian packages made by Hilko Bengen.
http://people.debian.org/~bengen/libguestfs/
http://packages.debian.org/search?keywords=libguestfs
- O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file
descriptors that the library opens.
- posix_fadvise is called when sequentially reading or writing large
files.
- close all file descriptors and remove all signal handlers in the
recovery process
- multiple gcc warnings and Coverity bugs have been fixed; many
strict-overflow bugs have also been fixed
- use ./configure --enable-valgrind-daemon to use valgrind on the
daemon; many errors have been fixed
- use ./configure --with-qemu-options to pass extra options to qemu
- the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF)
- the <guestfs.h> header file works with C++ and we have a regression
test for this
- multiple APIs which should only be called in the CONFIG state now
give an error if they are not
- .gitignore fixed to use absolute paths
- gobject bindings have been expanded, including mapping libguestfs
events to gobject signals (thanks Matt Booth)
- gobject documentation is generated properly (thanks Matt Booth)
- gobject header files now live in a subdirectory
- CompareWithString test in the generator now works
- FUInt32, FUInt64 struct field types now use the correct XDR type
- OCaml tests are now run on bytecode and native code.
- java -Xlint:all is used, and all warnings have been fixed
- bmptopng, wrestool (etc) missing or failure no longer prints
warning messages
- ruby: Use RbConfig instead of Config.
- PYTHONPATH is set by the ./run script.
- appliance building is now thread-safe.
- appliance now uses 'ip' instead of 'ifconfig' and 'netstat'
commands
- several fixes to make parallel builds work properly
- guestfish --listen now cleans up properly
- the BUSY state has been removed
- gettextize has been removed, replaced by a simple Makefile.am
- gettext support now covers virt-resize, virt-sparsify and virt-sysprep
- better support for the arm architecture
Bugs fixed
- 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
- 816839 data overflow error when debug progress -1
- 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
- 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
- 811650 guestfs_last_error not set when qemu fails early during launch
- 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
- 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
- 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
- 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
- 807905 mkfs blocksize option breaks when creating btrfs
- 805070 virt-filesystems should show 'parents' of LV and RAID devices
- 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
- 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
- 803533 guestfish: write error
- 802389 event handlers for 'close' event doesn't work in remote mode
- 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
- 801640 [RFE] the error reported by resize2fs-M need to be more clear
- 801298 Possible null dereference and resource leaks
- 801273 Document for set-pgroup need to be updated
- 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
- 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
- 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
- 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
- 789960 guestfsd crash when try to mount non-exist disk
- 789504 virt-df (other tools?) should not give up if a guest disk is missing
- 788641 virt-edit doesn't preserve file permissions
- 786215 libguestfs inspection does not recognize FreeDOS operating system
- 786188 libguestfs inspection does not recognize FreeDOS install CD
- 785668 aug-defnode: daemon crash
- 784647 Libguestfs uses deprecated net-tools
- 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
- 755729 Error message for resize2fs-M needs tweaking
- 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
- 679737 libguestfs: improve error message when zerofree is not available in the appliance
- 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand
RELEASE NOTES FOR LIBGUESTFS 1.16
These release notes only cover the differences from the previous
stable/dev branch split (1.14.0). For detailed changelogs, please see
the git repository, or the ChangeLog file distributed in the tarball.
New features
libguestfs
- allow XFS filesystems to be created over an existing filesystem
(Wanlong Gao)
- the (unspecified) default alignment for part-disk has been
changed to 64K for better support of high-end network-attached
storage
- new guestfs-testing(1) man page
- list-filesystems returns MD devices containing filesystems
(Matthew Booth)
- support for GCC >= 4.7 (Jim Meyering)
- check user does not add the same drive twice (Wanlong Gao).
language bindings
- Experimental GObject bindings, with support for GObject
Introspection. You can now use libguestfs from Javascript.
Please note these are not stable and final in this release.
(Matthew Booth).
- support for Ruby >= 1.9
- Ruby bindings can be disabled individually (Hilko Bengen)
- support for Python 2.6, 3.x (Richard Jones, Hilko Bengen)
- support for PHP >= 5.4
- new %guestfs_introspection hash is available in Perl bindings so
you can query which optional arguments are available
inspection
- guests with MD devices can be inspected (Matthew Booth)
- support for GNU/Hurd guests
guestfish
- libguestfs events (such as progress bar events and log messages) can
be trapped and processed by user-defined shell scripts.
- MD devices are tab-completed (Matthew Booth)
virt tools
- New tool virt-format for erasing and making blank disks
- virt-sparsify new --compress and -o options to allow for compressed
and different format output
- virt-sparsify can now detect and sparsify .vdi files
- virt-sysprep no longer requires xmlstarlet; a new virt-inspector --xpath
option has been added to replace this functionality
- virt-rescue has a new --suggest option which suggests mount commands
for the guest
- virt-resize no longer requires OCaml pcre library
libguestfs live
- daemon will no longer try to edit your live /etc/lvm configuration
- fix a potential security problem with predictable /tmp names (Steve Kemp)
Security
CVE-2011-4127, RHBZ#757071
Mitigate possible privilege escalation via SG_IO ioctl
For more information, see: https://github.com/libguestfs/libguestfs/commit/9a5f784d511a8f00a8386f316eab41fe660430db
New APIs
blkid: print all attributes of a device known to blkid (Wanlong Gao)
e2fsck: access to more features of e2fsck (Wanlong Gao)
list-md-devices: list of Linux MD devices (Matthew Booth)
md-create: create an MD device
md-detail: returns metadata for an MD device (Matthew Booth)
md-stop: stop an MD device (Wanlong Gao)
tune2fs: allow ext2/3/4 filesystems to be tuned
Internals
Git hosting has moved to http://github.com/libguestfs
The various test directories have been rearranged logically, and now
all appear under 'tests/'.
There is a 'make extra-tests' rule which runs ordinary tests and
additional tests, using valgrind to check for memory problems.
Multiple memory leaks and other problems found by valgrind and fixed.
Support for optional arguments in the generator has been rewritten
to provide more features and safety (Matthew Booth).
With gcc -fvisibility=hidden is used for internal symbols, avoiding
call indirection via the PLT.
RHashtable functions can be tested in the generator.
ADD_ARG macro in daemon allows arg lists to be constructed without
risk of stack smashing.
Fix generation of OCaml functions that have more than 10 arguments.
psmisc has been added to the appliance, allowing use of 'fuser',
'killall' and 'pstree' for debugging.
bindtests now cover RBufferOut and optional arguments (Matthew Booth).
Bugs fixed
- 769680 temporary directories created during appliance builds are not cleaned up on error
- 761460 guestfs_utimens hangs on named pipes
- 761451 guestfs_utimens cannot set times on a directory
- 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory
- 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
- 760000 libguestfs fails to compile with Ruby >= 1.9
- 755729 Error message for resize2fs-M needs tweaking
- 750889 Python code incompatible with Python v3.
- 596761 Ctrl-\ causes guestfish to abort
RELEASE NOTES FOR LIBGUESTFS 1.14
These release notes only cover the differences from the previous
stable/dev branch split (1.12.0). For detailed changelogs, please see
the git repository, or the ChangeLog file distributed in the tarball.
New features
Erlang bindings.
virt-alignment-scan is a new tool to check the alignment of
partitions within virtual machines or disk images.
virt-sparsify is a new tool to make virtual machine disk images
sparse.
virt-sysprep is a new tool to make cloning guests from a template
simpler.
guestfish
- New commands setenv, unsetenv, to set environment variables.
- The input file and line number is printed in error messages.
- guestfish progress bars are now a "mini-library" used by other
tools too.
guestmount
- the --live option (for access to live VMs) now works.
virt-cat
- virt-cat can now handle Windows paths and drive letters (RHBZ#693359).
virt-filesystems
- the MBR partition type byte is displayed in --long output.
virt-make-fs
- virt-make-fs now sets the MBR partition type byte correctly,
improving compatibility with Windows (RHBZ#746295).
virt-resize
- virt-resize can now work with guests using extended and logical
partitions, in particular Ubuntu guests.
- virt-resize can now align the first partition of Windows guests,
improving performance. The new virt-resize --align-first option
controls this behaviour.
- The virt-resize --machine-readable flag makes it possible to use
virt-resize from other programs.
- Partitions are now aligned to 128 sectors (usually 64K) by
default. This improves efficiency on high-end storage. The new
virt-resize --alignment option allows the alignment to be
adjusted.
virt-win-reg
- The syntax for deleting registry keys and values is documented
in the man page (RHBZ#737944).
library