NOTE: This file is automatically generated from "update-bugs.sh".
-Last updated: 2011-04-09 22:25:42
+Last updated: 2011-04-12 20:14:20
This contains a local list of the bugs that are open against
libguestfs. Bugs are tracked in the Red Hat Bugzilla database
685009 NEW https://bugzilla.redhat.com/show_bug.cgi?id=685009
Got error when expanding ntfs filesystem
-688978 NEW https://bugzilla.redhat.com/show_bug.cgi?id=688978
- guestfish: double free or corruption if TMPDIR points to a non-existent directory
-
691659 NEW https://bugzilla.redhat.com/show_bug.cgi?id=691659
libguestfs fails to run under JRuby 1.6.0
693306 NEW https://bugzilla.redhat.com/show_bug.cgi?id=693306
sfdisk's python interface only accepts lists of type 'list' for the lines parameter
-501884 NEW https://bugzilla.redhat.com/show_bug.cgi?id=501884
- virt-inspector still configured, even if there are missing deps
-
-501886 NEW https://bugzilla.redhat.com/show_bug.cgi?id=501886
- exec: chroot not found
-
507278 NEW https://bugzilla.redhat.com/show_bug.cgi?id=507278
libguestfs fails to build on Fedora sparc64
-547479 NEW https://bugzilla.redhat.com/show_bug.cgi?id=547479
- NTFS partitions sometimes fail to mount if mounted read/write
-
554829 NEW https://bugzilla.redhat.com/show_bug.cgi?id=554829
SELinux handling could be done better.
555803 NEW https://bugzilla.redhat.com/show_bug.cgi?id=555803
- virt-tar error: tgz_out error in chunked encoding
+ guestfs_tgz_out does not detect failure of tar command
572337 NEW https://bugzilla.redhat.com/show_bug.cgi?id=572337
libguestfs should support gptsync
604041 NEW https://bugzilla.redhat.com/show_bug.cgi?id=604041
guestmount absolute symlinks don't work
-617436 NEW https://bugzilla.redhat.com/show_bug.cgi?id=617436
- guestfish: fails to tilde expand '~' when the $HOME env is unset
-
619345 NEW https://bugzilla.redhat.com/show_bug.cgi?id=619345
RFE: Enable coredump capture in the appliance
-624035 NEW https://bugzilla.redhat.com/show_bug.cgi?id=624035
- guestfish "upload /file foo" command hangs or gives a protocol error
-
624334 NEW https://bugzilla.redhat.com/show_bug.cgi?id=624334
blockdev-setbsz succeeds, but does not affect blockdev-getbsz
637251 NEW https://bugzilla.redhat.com/show_bug.cgi?id=637251
virt-inspector fails to recognize data-only NTFS disk image
-637252 NEW https://bugzilla.redhat.com/show_bug.cgi?id=637252
- virt-resize has no 32-bit support
-
642821 NEW https://bugzilla.redhat.com/show_bug.cgi?id=642821
virt-resize falls over on a disk image with a logical swap partition
627835 ASSIGNED https://bugzilla.redhat.com/show_bug.cgi?id=627835
libguestfs protocol loses synchronization if you 'upload' before mounting disks
-502074 ASSIGNED https://bugzilla.redhat.com/show_bug.cgi?id=502074
- running commands segfault randomly, with 32 bit host and guest, when host is a Xen or VMWare guest
+695138 ASSIGNED https://bugzilla.redhat.com/show_bug.cgi?id=695138
+ Remove dependency on gfs2-utils
539746 ASSIGNED https://bugzilla.redhat.com/show_bug.cgi?id=539746
launch fails when run inside a Xen guest, when no non-PV kernels are installed
# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
-m4_define([libguestfs_minor], [9])
-m4_define([libguestfs_release], [18])
+m4_define([libguestfs_minor], [11])
+m4_define([libguestfs_release], [0])
# extra can be any string
m4_define([libguestfs_extra], [])
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2011-04-09 18:35+0200\n"
+"POT-Creation-Date: 2011-04-12 20:14+0200\n"
"PO-Revision-Date: 2010-09-02 14:46+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#. type: =item
#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398
#: ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411
-#: ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1088
-#: ../src/guestfs.pod:1092 ../src/guestfs.pod:1096 ../src/guestfs.pod:1101
-#: ../src/guestfs.pod:1109 ../src/guestfs.pod:1128 ../src/guestfs.pod:1136
-#: ../src/guestfs.pod:1158 ../src/guestfs.pod:1162 ../src/guestfs.pod:1166
-#: ../src/guestfs.pod:1170 ../src/guestfs.pod:1174 ../src/guestfs.pod:1178
-#: ../src/guestfs.pod:1660 ../src/guestfs.pod:1665 ../src/guestfs.pod:1669
-#: ../src/guestfs.pod:1770 ../src/guestfs.pod:1775 ../src/guestfs.pod:1779
-#: ../src/guestfs.pod:1789 ../src/guestfs.pod:2023 ../src/guestfs.pod:2028
-#: ../src/guestfs.pod:2034 ../src/guestfs.pod:2042 ../src/guestfs.pod:2396
-#: ../src/guestfs.pod:2402 ../src/guestfs.pod:2407 ../src/guestfs.pod:2413
-#: ../src/guestfs.pod:2878 ../src/guestfs.pod:2882 ../src/guestfs.pod:2886
-#: ../src/guestfs.pod:2890 ../src/guestfs-actions.pod:15
+#: ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1087
+#: ../src/guestfs.pod:1091 ../src/guestfs.pod:1095 ../src/guestfs.pod:1100
+#: ../src/guestfs.pod:1108 ../src/guestfs.pod:1127 ../src/guestfs.pod:1135
+#: ../src/guestfs.pod:1157 ../src/guestfs.pod:1161 ../src/guestfs.pod:1165
+#: ../src/guestfs.pod:1169 ../src/guestfs.pod:1173 ../src/guestfs.pod:1177
+#: ../src/guestfs.pod:1659 ../src/guestfs.pod:1664 ../src/guestfs.pod:1668
+#: ../src/guestfs.pod:1769 ../src/guestfs.pod:1774 ../src/guestfs.pod:1778
+#: ../src/guestfs.pod:1788 ../src/guestfs.pod:2022 ../src/guestfs.pod:2027
+#: ../src/guestfs.pod:2033 ../src/guestfs.pod:2041 ../src/guestfs.pod:2395
+#: ../src/guestfs.pod:2401 ../src/guestfs.pod:2406 ../src/guestfs.pod:2412
+#: ../src/guestfs.pod:2877 ../src/guestfs.pod:2881 ../src/guestfs.pod:2885
+#: ../src/guestfs.pod:2889 ../src/guestfs-actions.pod:15
#: ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:577
#: ../src/guestfs-actions.pod:585 ../src/guestfs-actions.pod:592
#: ../src/guestfs-actions.pod:599 ../src/guestfs-actions.pod:1600
# type: =item
#. type: =item
-#: ../src/guestfs.pod:469 ../src/guestfs.pod:1281 ../src/guestfs.pod:1412
-#: ../src/guestfs.pod:2441
+#: ../src/guestfs.pod:469 ../src/guestfs.pod:1280 ../src/guestfs.pod:1411
+#: ../src/guestfs.pod:2440
msgid "1."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:475 ../src/guestfs.pod:1285 ../src/guestfs.pod:1416
-#: ../src/guestfs.pod:2466
+#: ../src/guestfs.pod:475 ../src/guestfs.pod:1284 ../src/guestfs.pod:1415
+#: ../src/guestfs.pod:2465
msgid "2."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:486 ../src/guestfs.pod:1422
+#: ../src/guestfs.pod:486 ../src/guestfs.pod:1421
msgid "3."
msgstr ""
"might be referred to as C</WINDOWS/System32>."
msgstr ""
-# type: textblock
#. type: textblock
#: ../src/guestfs.pod:644
msgid ""
-"Drive letter mappings are outside the scope of libguestfs. You have to use "
-"libguestfs to read the appropriate Windows Registry and configuration files, "
-"to determine yourself how drives are mapped (see also L<hivex(3)> and L<virt-"
-"inspector(1)>)."
+"Drive letter mappings can be found using inspection (see L</INSPECTION> and "
+"L</guestfs_inspect_get_drive_mappings>)"
msgstr ""
-# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:649
+#: ../src/guestfs.pod:647
msgid ""
-"Replacing backslash characters with forward slash characters is also outside "
-"the scope of libguestfs, but something that you can easily do."
+"Dealing with separator characters (backslash vs forward slash) is outside "
+"the scope of libguestfs, but usually a simple character replacement will "
+"work."
msgstr ""
-# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:652
+#: ../src/guestfs.pod:651
msgid ""
-"Where we can help is in resolving the case insensitivity of paths. For "
-"this, call L</guestfs_case_sensitive_path>."
+"To resolve the case insensitivity of paths, call L</"
+"guestfs_case_sensitive_path>."
msgstr ""
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:655
+#: ../src/guestfs.pod:654
msgid "ACCESSING THE WINDOWS REGISTRY"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:657
+#: ../src/guestfs.pod:656
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:664
msgid "SYMLINKS ON NTFS-3G FILESYSTEMS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:667
+#: ../src/guestfs.pod:666
msgid ""
"Ntfs-3g tries to rewrite \"Junction Points\" and NTFS \"symbolic links\" to "
"provide something which looks like a Linux symlink. The way it tries to do "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:671
+#: ../src/guestfs.pod:670
msgid ""
"L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-"
"symbolic-links/>"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:673
+#: ../src/guestfs.pod:672
msgid ""
"The essential problem is that ntfs-3g simply does not have enough "
"information to do a correct job. NTFS links can contain drive letters and "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:680
+#: ../src/guestfs.pod:679
msgid ""
"Instead if you encounter a symbolic link on an ntfs-3g filesystem, use L</"
"guestfs_lgetxattr> to read the C<system.ntfs_reparse_data> extended "
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:685
+#: ../src/guestfs.pod:684
msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:687
+#: ../src/guestfs.pod:686
msgid ""
"There are other useful extended attributes that can be read from ntfs-3g "
"filesystems (using L</guestfs_getxattr>). See:"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:690
+#: ../src/guestfs.pod:689
msgid ""
"L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>"
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:691
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:694
+#: ../src/guestfs.pod:693
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:697
+#: ../src/guestfs.pod:696
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_add_drive_ro(g,file)> is C<$g-E<gt>add_drive_ro($file)> "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:703
+#: ../src/guestfs.pod:702
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:706
+#: ../src/guestfs.pod:705
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
# type: =item
#. type: =item
-#: ../src/guestfs.pod:712
+#: ../src/guestfs.pod:711
msgid "B<C++>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:714
+#: ../src/guestfs.pod:713
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:718
+#: ../src/guestfs.pod:717
msgid "B<C#>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:719
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:723
+#: ../src/guestfs.pod:722
msgid "B<Haskell>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:725
+#: ../src/guestfs.pod:724
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
# type: =item
#. type: =item
-#: ../src/guestfs.pod:729
+#: ../src/guestfs.pod:728
msgid "B<Java>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:731
+#: ../src/guestfs.pod:730
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:733
msgid "B<OCaml>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:736
+#: ../src/guestfs.pod:735
msgid "See L<guestfs-ocaml(3)>."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:738
+#: ../src/guestfs.pod:737
msgid "B<Perl>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:740
+#: ../src/guestfs.pod:739
msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:742
+#: ../src/guestfs.pod:741
msgid "B<PHP>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:744
+#: ../src/guestfs.pod:743
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:747
+#: ../src/guestfs.pod:746
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:749
+#: ../src/guestfs.pod:748
msgid "B<Python>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:751
+#: ../src/guestfs.pod:750
msgid "See L<guestfs-python(3)>."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:753
+#: ../src/guestfs.pod:752
msgid "B<Ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:755
+#: ../src/guestfs.pod:754
msgid "See L<guestfs-ruby(3)>."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:757
+#: ../src/guestfs.pod:756
msgid "B<shell scripts>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:759
+#: ../src/guestfs.pod:758
msgid "See L<guestfish(1)>."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:762
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:765
+#: ../src/guestfs.pod:764
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:769
+#: ../src/guestfs.pod:768
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
# type: =item
#. type: =item
-#: ../src/guestfs.pod:777
+#: ../src/guestfs.pod:776
msgid "Autosync / forgetting to sync."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:779
+#: ../src/guestfs.pod:778
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:783
+#: ../src/guestfs.pod:782
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:785
+#: ../src/guestfs.pod:784
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> q.v.)"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:789
+#: ../src/guestfs.pod:788
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:793
+#: ../src/guestfs.pod:792
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:797
+#: ../src/guestfs.pod:796
msgid ""
"Update: Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:800
+#: ../src/guestfs.pod:799
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:802
+#: ../src/guestfs.pod:801
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:806
+#: ../src/guestfs.pod:805
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:809
+#: ../src/guestfs.pod:808
msgid "Read-only should be the default."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:811
+#: ../src/guestfs.pod:810
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:814
+#: ../src/guestfs.pod:813
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:816
+#: ../src/guestfs.pod:815
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use L</"
# type: =item
#. type: =item
-#: ../src/guestfs.pod:820
+#: ../src/guestfs.pod:819
msgid "guestfish command line is hard to use."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:822
+#: ../src/guestfs.pod:821
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
# type: =item
#. type: =item
-#: ../src/guestfs.pod:829
+#: ../src/guestfs.pod:828
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:831
+#: ../src/guestfs.pod:830
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:838
+#: ../src/guestfs.pod:837
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:839
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:841
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:847
+#: ../src/guestfs.pod:846
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:850
+#: ../src/guestfs.pod:849
msgid "Ambiguity between devices and paths"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:852
+#: ../src/guestfs.pod:851
msgid ""
"There is a subtle ambiguity in the API between a device name (eg. C</dev/"
"sdb2>) and a similar pathname. A file might just happen to be called "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:856
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:862
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:869
+#: ../src/guestfs.pod:868
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:871
+#: ../src/guestfs.pod:870
msgid "which would allow you to pass arguments like:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:873
+#: ../src/guestfs.pod:872
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:878
+#: ../src/guestfs.pod:877
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:882
msgid "PROTOCOL LIMITS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:884
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:893
+#: ../src/guestfs.pod:892
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:899
+#: ../src/guestfs.pod:898
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:903
+#: ../src/guestfs.pod:902
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:906
+#: ../src/guestfs.pod:905
msgid "KEYS AND PASSPHRASES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:908
+#: ../src/guestfs.pod:907
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:911
+#: ../src/guestfs.pod:910
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:916
+#: ../src/guestfs.pod:915
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
# type: =head1
#. type: =head2
-#: ../src/guestfs.pod:921
+#: ../src/guestfs.pod:920
msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:922
msgid ""
"All high-level libguestfs actions are synchronous. If you want to use "
"libguestfs asynchronously then you must create a thread."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:926
+#: ../src/guestfs.pod:925
msgid ""
"Only use the handle from a single thread. Either use the handle exclusively "
"from one thread, or provide your own mutex so that two threads cannot issue "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:930
+#: ../src/guestfs.pod:929
msgid ""
"See the graphical program guestfs-browser for one possible architecture for "
"multithreaded programs using libvirt and libguestfs."
# type: =head1
#. type: =head2
-#: ../src/guestfs.pod:933
+#: ../src/guestfs.pod:932
msgid "PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:935
+#: ../src/guestfs.pod:934
msgid ""
"Libguestfs needs a supermin appliance, which it finds by looking along an "
"internal path."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:938
+#: ../src/guestfs.pod:937
msgid ""
"By default it looks for these in the directory C<$libdir/guestfs> (eg. C</"
"usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:941
+#: ../src/guestfs.pod:940
msgid ""
"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
"to change the directories that libguestfs will search in. The value is a "
# type: =head1
#. type: =head2
-#: ../src/guestfs.pod:948
+#: ../src/guestfs.pod:947
msgid "QEMU WRAPPERS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:950
+#: ../src/guestfs.pod:949
msgid ""
"If you want to compile your own qemu, run qemu from a non-standard location, "
"or pass extra arguments to qemu, then you can write a shell-script wrapper "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:954
+#: ../src/guestfs.pod:953
msgid ""
"There is one important rule to remember: you I<must C<exec qemu>> as the "
"last command in the shell script (so that qemu replaces the shell and "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:959
+#: ../src/guestfs.pod:958
msgid ""
"Here is an example of a wrapper, where I have built my own copy of qemu from "
"source:"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:962
+#: ../src/guestfs.pod:961
#, no-wrap
msgid ""
" #!/bin/sh -\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:966
+#: ../src/guestfs.pod:965
msgid ""
"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:970
+#: ../src/guestfs.pod:969
#, no-wrap
msgid ""
" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:971
msgid ""
"Note that libguestfs also calls qemu with the -help and -version options in "
"order to determine features."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:975
+#: ../src/guestfs.pod:974
msgid "ATTACHING TO RUNNING DAEMONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:977
+#: ../src/guestfs.pod:976
msgid ""
"I<Note (1):> This is B<highly experimental> and has a tendency to eat "
"babies. Use with caution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:980
+#: ../src/guestfs.pod:979
msgid ""
"I<Note (2):> This section explains how to attach to a running daemon from a "
"low level perspective. For most users, simply using virt tools such as "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:984
+#: ../src/guestfs.pod:983
msgid "Using guestfs_set_attach_method"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:986
+#: ../src/guestfs.pod:985
msgid ""
"By calling L</guestfs_set_attach_method> you can change how the library "
"connects to the C<guestfsd> daemon in L</guestfs_launch> (read L</"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:990
+#: ../src/guestfs.pod:989
msgid ""
"The normal attach method is C<appliance>, where a small appliance is created "
"containing the daemon, and then the library connects to this."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:993
+#: ../src/guestfs.pod:992
msgid ""
"Setting attach method to C<unix:I<path>> (where I<path> is the path of a "
"Unix domain socket) causes L</guestfs_launch> to connect to an existing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:997
+#: ../src/guestfs.pod:996
msgid ""
"The normal use for this is to connect to a running virtual machine that "
"contains a C<guestfsd> daemon, and send commands so you can read and write "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1001
+#: ../src/guestfs.pod:1000
msgid "Using guestfs_add_domain with live flag"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1003
+#: ../src/guestfs.pod:1002
msgid ""
"L</guestfs_add_domain> provides some help for getting the correct attach "
"method. If you pass the C<live> option to this function, then (if the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1009
+#: ../src/guestfs.pod:1008
#, no-wrap
msgid ""
" <domain>\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1020
msgid ""
"L</guestfs_add_domain> extracts C</path/to/socket> and sets the attach "
"method to C<unix:/path/to/socket>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1024
+#: ../src/guestfs.pod:1023
msgid ""
"Some of the libguestfs tools (including guestfish) support a I<--live> "
"option which is passed through to L</guestfs_add_domain> thus allowing you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1028
+#: ../src/guestfs.pod:1027
msgid ""
"The virtual machine needs to have been set up beforehand so that it has the "
"virtio-serial channel and so that guestfsd is running inside it."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1032
+#: ../src/guestfs.pod:1031
msgid "ABI GUARANTEE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1033
msgid ""
"We guarantee the libguestfs ABI (binary interface), for public, high-level "
"actions as outlined in this section. Although we will deprecate some "
# type: =head1
#. type: =head2
-#: ../src/guestfs.pod:1040
+#: ../src/guestfs.pod:1039
msgid "BLOCK DEVICE NAMING"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1042
+#: ../src/guestfs.pod:1041
msgid ""
"In the kernel there is now quite a profusion of schemata for naming block "
"devices (in this context, by I<block device> I mean a physical or virtual "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1054
+#: ../src/guestfs.pod:1053
msgid ""
"As discussed above, libguestfs uses a qemu appliance running an embedded "
"Linux kernel to access block devices. We can run a variety of appliances "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1057
msgid ""
"This causes a problem for libguestfs because many API calls use device or "
"partition names. Working scripts and the recipe (example) scripts that we "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1063
+#: ../src/guestfs.pod:1062
msgid ""
"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
"Internally C</dev/sd*> names are translated, if necessary, to other names as "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1069
+#: ../src/guestfs.pod:1068
msgid ""
"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
"L</guestfs_list_partitions> and similar calls return the true names of the "
# type: =head2
#. type: =head3
-#: ../src/guestfs.pod:1074
+#: ../src/guestfs.pod:1073
msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1076
+#: ../src/guestfs.pod:1075
msgid ""
"Usually this translation is transparent. However in some (very rare) cases "
"you may need to know the exact algorithm. Such cases include where you use "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1082
+#: ../src/guestfs.pod:1081
msgid ""
"The algorithm is applied only to I<parameters> which are known to be either "
"device or partition names. Return values from functions such as L</"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1090
+#: ../src/guestfs.pod:1089
msgid "Is the string a parameter which is a device or partition name?"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1094
+#: ../src/guestfs.pod:1093
msgid "Does the string begin with C</dev/sd>?"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1098
+#: ../src/guestfs.pod:1097
msgid ""
"Does the named device exist? If so, we use that device. However if I<not> "
"then we continue with this algorithm."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1103
+#: ../src/guestfs.pod:1102
msgid "Replace initial C</dev/sd> string with C</dev/hd>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1105
+#: ../src/guestfs.pod:1104
msgid "For example, change C</dev/sda2> to C</dev/hda2>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1107
+#: ../src/guestfs.pod:1106
msgid "If that named device exists, use it. If not, continue."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1111
+#: ../src/guestfs.pod:1110
msgid "Replace initial C</dev/sd> string with C</dev/vd>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1113
+#: ../src/guestfs.pod:1112
msgid "If that named device exists, use it. If not, return an error."
msgstr ""
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:1117
+#: ../src/guestfs.pod:1116
msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1119
+#: ../src/guestfs.pod:1118
msgid ""
"Although the standard naming scheme and automatic translation is useful for "
"simple programs and guestfish scripts, for larger programs it is best not to "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1123
+#: ../src/guestfs.pod:1122
msgid ""
"Where possible for maximum future portability programs using libguestfs "
"should use these future-proof techniques:"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1130
+#: ../src/guestfs.pod:1129
msgid ""
"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
"device names, and then use those names directly."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1133
+#: ../src/guestfs.pod:1132
msgid ""
"Since those device names exist by definition, they will never be translated."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1138
+#: ../src/guestfs.pod:1137
msgid ""
"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
"filesystem labels."
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1143
+#: ../src/guestfs.pod:1142
msgid "SECURITY"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1145
+#: ../src/guestfs.pod:1144
msgid ""
"This section discusses security implications of using libguestfs, "
"particularly with untrusted or malicious guests or disk images."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1148
+#: ../src/guestfs.pod:1147
msgid "GENERAL SECURITY CONSIDERATIONS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1150
+#: ../src/guestfs.pod:1149
msgid ""
"Be careful with any files or data that you download from a guest (by "
"\"download\" we mean not just the L</guestfs_download> command but any "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1160
+#: ../src/guestfs.pod:1159
msgid "the data (file etc) not being present"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1164
+#: ../src/guestfs.pod:1163
msgid "being present but empty"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1168
+#: ../src/guestfs.pod:1167
msgid "being much larger than normal"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1172
+#: ../src/guestfs.pod:1171
msgid "containing arbitrary 8 bit data"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1176
+#: ../src/guestfs.pod:1175
msgid "being in an unexpected character encoding"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1180
+#: ../src/guestfs.pod:1179
msgid "containing homoglyphs."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1184
+#: ../src/guestfs.pod:1183
msgid "SECURITY OF MOUNTING FILESYSTEMS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1186
+#: ../src/guestfs.pod:1185
msgid ""
"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
"(VFS) module can sometimes be escalated into exploits by deliberately "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1199
+#: ../src/guestfs.pod:1198
msgid ""
"That explains why you should never mount a filesystem from an untrusted "
"guest on your host kernel. How about libguestfs? We run a Linux kernel "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1210
+#: ../src/guestfs.pod:1209
msgid ""
"In any case callers can reduce the attack surface by forcing the filesystem "
"type when mounting (use L</guestfs_mount_vfs>)."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1213
+#: ../src/guestfs.pod:1212
msgid "PROTOCOL SECURITY"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1215
+#: ../src/guestfs.pod:1214
msgid ""
"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
"defined upper message size. However a program that uses libguestfs must "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1221
+#: ../src/guestfs.pod:1220
msgid "INSPECTION SECURITY"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1223
+#: ../src/guestfs.pod:1222
msgid ""
"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
"directly from the guest, and these could contain any 8 bit data. Callers "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1229
+#: ../src/guestfs.pod:1228
msgid ""
"Guest configuration may be altered in unusual ways by the administrator of "
"the virtual machine, and may not reflect reality (particularly for untrusted "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1237
+#: ../src/guestfs.pod:1236
msgid ""
"The inspection API parses guest configuration using two external libraries: "
"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1243
+#: ../src/guestfs.pod:1242
msgid "RUNNING UNTRUSTED GUEST COMMANDS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1245
+#: ../src/guestfs.pod:1244
msgid ""
"Be very cautious about running commands from the guest. By running a "
"command in the guest, you are giving CPU time to a binary that you do not "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1251
+#: ../src/guestfs.pod:1250
msgid "CVE-2010-3851"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1253
+#: ../src/guestfs.pod:1252
msgid "https://bugzilla.redhat.com/642934"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1255
+#: ../src/guestfs.pod:1254
msgid ""
"This security bug concerns the automatic disk format detection that qemu "
"does on disk images."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1258
+#: ../src/guestfs.pod:1257
msgid ""
"A raw disk image is just the raw bytes, there is no header. Other disk "
"images like qcow2 contain a special header. Qemu deals with this by looking "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1263
+#: ../src/guestfs.pod:1262
msgid ""
"This allows a guest which has been given a raw disk image to write some "
"other header. At next boot (or when the disk image is accessed by "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1268
+#: ../src/guestfs.pod:1267
msgid ""
"This in itself would not be a problem, but qcow2 offers many features, one "
"of which is to allow a disk image to refer to another image (called the "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1276
+#: ../src/guestfs.pod:1275
msgid ""
"In libguestfs this is rather hard to exploit except under two circumstances:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1283
+#: ../src/guestfs.pod:1282
msgid "You have enabled the network or have opened the disk in write mode."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1287
+#: ../src/guestfs.pod:1286
msgid ""
"You are also running untrusted code from the guest (see L</RUNNING "
"COMMANDS>)."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1292
+#: ../src/guestfs.pod:1291
msgid ""
"The way to avoid this is to specify the expected disk format when adding "
"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1297
+#: ../src/guestfs.pod:1296
msgid ""
"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
"format is fetched from libvirt and passed through."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1300
+#: ../src/guestfs.pod:1299
msgid ""
"For libguestfs tools, use the I<--format> command line parameter as "
"appropriate."
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1303
+#: ../src/guestfs.pod:1302
msgid "CONNECTION MANAGEMENT"
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1305
+#: ../src/guestfs.pod:1304
msgid "guestfs_h *"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1307
+#: ../src/guestfs.pod:1306
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1311
+#: ../src/guestfs.pod:1310
msgid ""
"For information on using multiple handles and threads, see the section L</"
"MULTIPLE HANDLES AND MULTIPLE THREADS> below."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1314
+#: ../src/guestfs.pod:1313
msgid "guestfs_create"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1316
+#: ../src/guestfs.pod:1315
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1317
msgid "Create a connection handle."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1320
+#: ../src/guestfs.pod:1319
msgid ""
"You have to call L</guestfs_add_drive_opts> (or one of the equivalent calls) "
"on the handle at least once."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1323
+#: ../src/guestfs.pod:1322
msgid ""
"This function returns a non-NULL pointer to a handle on success or NULL on "
"error."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1326
+#: ../src/guestfs.pod:1325
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1328
+#: ../src/guestfs.pod:1327
msgid ""
"You may also want to configure error handling for the handle. See L</ERROR "
"HANDLING> section below."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1331
+#: ../src/guestfs.pod:1330
msgid "guestfs_close"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1333
+#: ../src/guestfs.pod:1332
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1335
+#: ../src/guestfs.pod:1334
msgid "This closes the connection handle and frees up all resources used."
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1337
+#: ../src/guestfs.pod:1336
msgid "ERROR HANDLING"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1339
+#: ../src/guestfs.pod:1338
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1341
msgid ""
"Additional information is available for errors: an error message string and "
"optionally an error number (errno) if the thing that failed was a system "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1346
+#: ../src/guestfs.pod:1345
msgid ""
"You can get at the additional information about the last error on the handle "
"by calling L</guestfs_last_error>, L</guestfs_last_errno>, and/or by setting "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1351
+#: ../src/guestfs.pod:1350
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1355
+#: ../src/guestfs.pod:1354
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1358
+#: ../src/guestfs.pod:1357
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1361
+#: ../src/guestfs.pod:1360
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1364
+#: ../src/guestfs.pod:1363
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1366
+#: ../src/guestfs.pod:1365
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1370
+#: ../src/guestfs.pod:1369
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1378
+#: ../src/guestfs.pod:1377
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using L</"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1382
+#: ../src/guestfs.pod:1381
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1388
+#: ../src/guestfs.pod:1387
msgid "guestfs_last_error"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1390
+#: ../src/guestfs.pod:1389
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1392
+#: ../src/guestfs.pod:1391
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1396
+#: ../src/guestfs.pod:1395
msgid ""
"The lifetime of the returned string is until the next error occurs, or L</"
"guestfs_close> is called."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1399
+#: ../src/guestfs.pod:1398
msgid "guestfs_last_errno"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1401
+#: ../src/guestfs.pod:1400
#, no-wrap
msgid ""
" int guestfs_last_errno (guestfs_h *g);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1403
+#: ../src/guestfs.pod:1402
msgid "This returns the last error number (errno) that happened on C<g>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1405
+#: ../src/guestfs.pod:1404
msgid "If successful, an errno integer not equal to zero is returned."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1406
msgid ""
"If no error, this returns 0. This call can return 0 in three situations:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1414
+#: ../src/guestfs.pod:1413
msgid "There has not been any error on the handle."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1418
+#: ../src/guestfs.pod:1417
msgid ""
"There has been an error but the errno was meaningless. This corresponds to "
"the case where the error did not come from a failed system call, but for "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1424
+#: ../src/guestfs.pod:1423
msgid ""
"There was an error from a failed system call, but for some reason the errno "
"was not captured and returned. This usually indicates a bug in libguestfs."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1430
+#: ../src/guestfs.pod:1429
msgid ""
"Libguestfs tries to convert the errno from inside the applicance into a "
"corresponding errno for the caller (not entirely trivial: the appliance "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1437
msgid "guestfs_set_error_handler"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1440
+#: ../src/guestfs.pod:1439
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1447
+#: ../src/guestfs.pod:1446
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1451
+#: ../src/guestfs.pod:1450
msgid ""
"C<errno> is not passed to the callback. To get that the callback must call "
"L</guestfs_last_errno>."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1454
+#: ../src/guestfs.pod:1453
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1458
+#: ../src/guestfs.pod:1457
msgid "The default handler prints messages on C<stderr>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1460
+#: ../src/guestfs.pod:1459
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1462
+#: ../src/guestfs.pod:1461
msgid "guestfs_get_error_handler"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1464
+#: ../src/guestfs.pod:1463
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1467
+#: ../src/guestfs.pod:1466
msgid "Returns the current error handler callback."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1469
+#: ../src/guestfs.pod:1468
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1471
+#: ../src/guestfs.pod:1470
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1475
+#: ../src/guestfs.pod:1474
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1478
+#: ../src/guestfs.pod:1477
msgid "The default is to call L<abort(3)>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1480
+#: ../src/guestfs.pod:1479
msgid ""
"You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1483
+#: ../src/guestfs.pod:1482
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1485
+#: ../src/guestfs.pod:1484
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1487
+#: ../src/guestfs.pod:1486
msgid "This returns the current out of memory handler."
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1489
+#: ../src/guestfs.pod:1488
msgid "API CALLS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1491 ../fish/guestfish.pod:1003
+#: ../src/guestfs.pod:1490 ../fish/guestfish.pod:1008
msgid "@ACTIONS@"
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1493
+#: ../src/guestfs.pod:1492
msgid "STRUCTURES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1495
+#: ../src/guestfs.pod:1494
msgid "@STRUCTS@"
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1497
+#: ../src/guestfs.pod:1496
msgid "AVAILABILITY"
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1499
+#: ../src/guestfs.pod:1498
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1501
+#: ../src/guestfs.pod:1500
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1506
+#: ../src/guestfs.pod:1505
msgid "@AVAILABILITY@"
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1508
+#: ../src/guestfs.pod:1507
msgid "GUESTFISH supported COMMAND"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1510
+#: ../src/guestfs.pod:1509
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1515
+#: ../src/guestfs.pod:1514
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1517
+#: ../src/guestfs.pod:1516
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1520
+#: ../src/guestfs.pod:1519
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1522
+#: ../src/guestfs.pod:1521
msgid "if L</guestfs_dd> is available."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1524
+#: ../src/guestfs.pod:1523
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1529
+#: ../src/guestfs.pod:1528
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1531
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1535
+#: ../src/guestfs.pod:1534
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1537
+#: ../src/guestfs.pod:1536
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1544
+#: ../src/guestfs.pod:1543
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1548
+#: ../src/guestfs.pod:1547
#, no-wrap
msgid ""
" #include <stdio.h>\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1554
+#: ../src/guestfs.pod:1553
#, no-wrap
msgid ""
" main ()\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1560
+#: ../src/guestfs.pod:1559
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1569
+#: ../src/guestfs.pod:1568
#, no-wrap
msgid ""
" if (!has_function)\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1582
+#: ../src/guestfs.pod:1581
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1587
+#: ../src/guestfs.pod:1586
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1589
+#: ../src/guestfs.pod:1588
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1590
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1596
+#: ../src/guestfs.pod:1595
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1598
+#: ../src/guestfs.pod:1597
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1601
+#: ../src/guestfs.pod:1600
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1603
+#: ../src/guestfs.pod:1602
msgid "With a single optional argument:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1605
+#: ../src/guestfs.pod:1604
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1609
+#: ../src/guestfs.pod:1608
msgid "With two:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1611
+#: ../src/guestfs.pod:1610
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1616
+#: ../src/guestfs.pod:1615
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1619
+#: ../src/guestfs.pod:1618
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1621
+#: ../src/guestfs.pod:1620
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1625
+#: ../src/guestfs.pod:1624
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1628
+#: ../src/guestfs.pod:1627
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1630
+#: ../src/guestfs.pod:1629
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1636
+#: ../src/guestfs.pod:1635
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1645
+#: ../src/guestfs.pod:1644
msgid "You could call it like this:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1647
+#: ../src/guestfs.pod:1646
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1654
+#: ../src/guestfs.pod:1653
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1656 ../src/guestfs-actions.pod:11
+#: ../src/guestfs.pod:1655 ../src/guestfs-actions.pod:11
#: ../src/guestfs-actions.pod:1855 ../fish/guestfish-actions.pod:9
#: ../fish/guestfish-actions.pod:1260 ../tools/virt-win-reg.pl:532
msgid "Notes:"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1662
+#: ../src/guestfs.pod:1661
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1667
+#: ../src/guestfs.pod:1666
msgid "You do not need to fill in all fields of the structure."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1671
+#: ../src/guestfs.pod:1670
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1676
+#: ../src/guestfs.pod:1675
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1678
+#: ../src/guestfs.pod:1677
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1682
+#: ../src/guestfs.pod:1681
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:1684
+#: ../src/guestfs.pod:1683
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1686
+#: ../src/guestfs.pod:1685
msgid ""
"B<Note:> This section documents the generic event mechanism introduced in "
"libguestfs 1.10, which you should use in new code if possible. The old "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1694
+#: ../src/guestfs.pod:1693
msgid ""
"Handles generate events when certain things happen, such as log messages "
"being generated, progress messages during long-running operations, or the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1702
+#: ../src/guestfs.pod:1701
msgid ""
"In the current implementation, events are only generated synchronously: that "
"means that events (and hence callbacks) can only happen while you are in the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1707
+#: ../src/guestfs.pod:1706
msgid ""
"Events may contain a payload, usually nothing (void), an array of 64 bit "
"unsigned integers, or a message buffer. Payloads are discussed later on."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1710
msgid "CLASSES OF EVENTS"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1715
+#: ../src/guestfs.pod:1714
msgid "GUESTFS_EVENT_CLOSE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1718
+#: ../src/guestfs.pod:1717
msgid ""
"The callback function will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1721
+#: ../src/guestfs.pod:1720
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1728
+#: ../src/guestfs.pod:1727
msgid ""
"If no callback is registered: the handle is closed without any callback "
"being invoked."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1731
+#: ../src/guestfs.pod:1730
msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1734
+#: ../src/guestfs.pod:1733
msgid ""
"The callback function will be called when the child process quits, either "
"asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1738 ../src/guestfs.pod:1747
+#: ../src/guestfs.pod:1737 ../src/guestfs.pod:1746
msgid "If no callback is registered: the event is ignored."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1740
+#: ../src/guestfs.pod:1739
msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1743
+#: ../src/guestfs.pod:1742
msgid ""
"The callback function will be called when the child process becomes ready "
"first time after it has been launched. (This corresponds to a transition "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1749
+#: ../src/guestfs.pod:1748
msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1752
+#: ../src/guestfs.pod:1751
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1758
+#: ../src/guestfs.pod:1757
msgid ""
"The callback receives in the payload four unsigned 64 bit numbers which are "
"(in order): C<proc_nr>, C<serial>, C<position>, C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1761
+#: ../src/guestfs.pod:1760
msgid ""
"The units of C<total> are not defined, although for some operations C<total> "
"may relate in some way to the amount of data to be transferred (eg. in bytes "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1766
+#: ../src/guestfs.pod:1765
msgid "The only defined and stable parts of the API are:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1771
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1777
+#: ../src/guestfs.pod:1776
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1781
+#: ../src/guestfs.pod:1780
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total> (I<unless> the call "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1785
+#: ../src/guestfs.pod:1784
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1791
+#: ../src/guestfs.pod:1790
msgid ""
"For some calls we are unable to estimate the progress of the call, but we "
"can still generate progress messages to indicate activity. This is known as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1796
+#: ../src/guestfs.pod:1795
msgid ""
"For these calls, zero or more progress messages are generated with "
"C<position = 0> and C<total = 1>, followed by a final message with "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1800
+#: ../src/guestfs.pod:1799
msgid ""
"As noted above, if the call fails with an error then the final message may "
"not be generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1805
+#: ../src/guestfs.pod:1804
msgid ""
"The callback also receives the procedure number (C<proc_nr>) and serial "
"number (C<serial>) of the call. These are only useful for debugging "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1811
+#: ../src/guestfs.pod:1810
msgid "If no callback is registered: progress messages are discarded."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1813
+#: ../src/guestfs.pod:1812
msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1816
+#: ../src/guestfs.pod:1815
msgid ""
"The callback function is called whenever a log message is generated by qemu, "
"the appliance kernel, guestfsd (daemon), or utility programs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1818
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set before launch (L</"
"guestfs_launch>) then additional debug messages are generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1822 ../src/guestfs.pod:1836
+#: ../src/guestfs.pod:1821 ../src/guestfs.pod:1835
msgid ""
"If no callback is registered: the messages are discarded unless the verbose "
"flag is set in which case they are sent to stderr. You can override the "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1827
+#: ../src/guestfs.pod:1826
msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1830
+#: ../src/guestfs.pod:1829
msgid ""
"The callback function is called whenever a log message is generated by the "
"library part of libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1833
+#: ../src/guestfs.pod:1832
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set then additional debug "
"messages are generated."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1841
+#: ../src/guestfs.pod:1840
msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1844
+#: ../src/guestfs.pod:1843
msgid ""
"The callback function is called whenever a trace message is generated. This "
"only applies if the trace flag (L</guestfs_set_trace>) is set."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1847
+#: ../src/guestfs.pod:1846
msgid ""
"If no callback is registered: the messages are sent to stderr. You can "
"override the printing of trace messages to stderr by setting up a callback."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1853
+#: ../src/guestfs.pod:1852
msgid "guestfs_set_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1855
+#: ../src/guestfs.pod:1854
#, no-wrap
msgid ""
" int guestfs_set_event_callback (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1861
+#: ../src/guestfs.pod:1860
msgid ""
"This function registers a callback (C<cb>) for all event classes in the "
"C<event_bitmask>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1864
+#: ../src/guestfs.pod:1863
msgid ""
"For example, to register for all log message events, you could call this "
"function with the bitmask C<GUESTFS_EVENT_APPLIANCE|GUESTFS_EVENT_LIBRARY>. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1870
+#: ../src/guestfs.pod:1869
msgid "C<flags> should always be passed as 0."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1872
+#: ../src/guestfs.pod:1871
msgid ""
"C<opaque> is an opaque pointer which is passed to the callback. You can use "
"it for any purpose."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1875
+#: ../src/guestfs.pod:1874
msgid ""
"The return value is the event handle (an integer) which you can use to "
"delete the callback (see below)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1878
+#: ../src/guestfs.pod:1877
msgid ""
"If there is an error, this function returns C<-1>, and sets the error in the "
"handle in the usual way (see L</guestfs_last_error> etc.)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1881
+#: ../src/guestfs.pod:1880
msgid ""
"Callbacks remain in effect until they are deleted, or until the handle is "
"closed."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1884
+#: ../src/guestfs.pod:1883
msgid ""
"In the case where multiple callbacks are registered for a particular event "
"class, all of the callbacks are called. The order in which multiple "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1888
+#: ../src/guestfs.pod:1887
msgid "guestfs_delete_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1890
+#: ../src/guestfs.pod:1889
#, no-wrap
msgid ""
" void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1892
+#: ../src/guestfs.pod:1891
msgid ""
"Delete a callback that was previously registered. C<event_handle> should be "
"the integer that was returned by a previous call to "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1896
+#: ../src/guestfs.pod:1895
msgid "guestfs_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1898
+#: ../src/guestfs.pod:1897
#, no-wrap
msgid ""
" typedef void (*guestfs_event_callback) (\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1907
+#: ../src/guestfs.pod:1906
msgid ""
"This is the type of the event callback function that you have to provide."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1910
+#: ../src/guestfs.pod:1909
msgid ""
"The basic parameters are: the handle (C<g>), the opaque user pointer "
"(C<opaque>), the event class (eg. C<GUESTFS_EVENT_PROGRESS>), the event "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1914
+#: ../src/guestfs.pod:1913
msgid ""
"The remaining parameters contain the event payload (if any). Each event may "
"contain a payload, which usually relates to the event class, but for future "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1919
+#: ../src/guestfs.pod:1918
msgid ""
"C<buf> and C<buf_len> contain a message buffer (if C<buf_len == 0>, then "
"there is no message buffer). Note that this message buffer can contain "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1923
+#: ../src/guestfs.pod:1922
msgid ""
"C<array> and C<array_len> is an array of 64 bit unsigned integers. At the "
"moment this is only used for progress messages."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1926
+#: ../src/guestfs.pod:1925
msgid "EXAMPLE: CAPTURING LOG MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1928
+#: ../src/guestfs.pod:1927
msgid ""
"One motivation for the generic event API was to allow GUI programs to "
"capture debug and other messages. In libguestfs E<le> 1.8 these were sent "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1932
+#: ../src/guestfs.pod:1931
msgid ""
"Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, "
"C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1937
+#: ../src/guestfs.pod:1936
msgid ""
"Programs have to set up a callback to capture the classes of events of "
"interest:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1940
+#: ../src/guestfs.pod:1939
#, no-wrap
msgid ""
" int eh =\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1950
+#: ../src/guestfs.pod:1949
msgid ""
"The callback can then direct messages to the appropriate place. In this "
"example, messages are directed to syslog:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1953
+#: ../src/guestfs.pod:1952
#, no-wrap
msgid ""
" static void\n"
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:1968
+#: ../src/guestfs.pod:1967
msgid "PRIVATE DATA AREA"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1970
+#: ../src/guestfs.pod:1969
msgid ""
"You can attach named pieces of private data to the libguestfs handle, fetch "
"them by name, and walk over them, for the lifetime of the handle. This is "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1975
+#: ../src/guestfs.pod:1974
msgid "To attach a named piece of data, use the following call:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1977
+#: ../src/guestfs.pod:1976
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1979
+#: ../src/guestfs.pod:1978
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same name is "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1983
+#: ../src/guestfs.pod:1982
msgid ""
"You can use any C<key> you want, but names beginning with an underscore "
"character are reserved for internal libguestfs purposes (for implementing "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1988
+#: ../src/guestfs.pod:1987
msgid "To retrieve the pointer, use:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:1990
+#: ../src/guestfs.pod:1989
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:1992
+#: ../src/guestfs.pod:1991
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1996
+#: ../src/guestfs.pod:1995
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2003
+#: ../src/guestfs.pod:2002
msgid "To walk over all entries, use these two functions:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2005
+#: ../src/guestfs.pod:2004
#, no-wrap
msgid ""
" void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2007
+#: ../src/guestfs.pod:2006
#, no-wrap
msgid ""
" void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2009
+#: ../src/guestfs.pod:2008
msgid ""
"C<guestfs_first_private> returns the first key, pointer pair (\"first\" does "
"not have any particular meaning -- keys are not returned in any defined "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2015
+#: ../src/guestfs.pod:2014
msgid ""
"C<guestfs_next_private> returns the next key, pointer pair. The return "
"value of this function is also C<NULL> is there are no further entries to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2019
+#: ../src/guestfs.pod:2018
msgid "Notes about walking over entries:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2025
+#: ../src/guestfs.pod:2024
msgid ""
"You must not call C<guestfs_set_private> while walking over the entries."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2030
+#: ../src/guestfs.pod:2029
msgid ""
"The handle maintains an internal iterator which is reset when you call "
"C<guestfs_first_private>. This internal iterator is invalidated when you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2036
+#: ../src/guestfs.pod:2035
msgid "If you have set the data pointer associated with a key to C<NULL>, ie:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2038
+#: ../src/guestfs.pod:2037
#, no-wrap
msgid ""
" guestfs_set_private (g, key, NULL);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2040
+#: ../src/guestfs.pod:2039
msgid "then that C<key> is not returned when walking."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2044
+#: ../src/guestfs.pod:2043
msgid ""
"C<*key_rtn> is only valid until the next call to C<guestfs_first_private>, "
"C<guestfs_next_private> or C<guestfs_set_private>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2050
+#: ../src/guestfs.pod:2049
msgid ""
"The following example code shows how to print all keys and data pointers "
"that are associated with the handle C<g>:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2053
+#: ../src/guestfs.pod:2052
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2061
+#: ../src/guestfs.pod:2060
msgid ""
"More commonly you are only interested in keys that begin with an application-"
"specific prefix C<foo_>. Modify the loop like so:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2064
+#: ../src/guestfs.pod:2063
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2073
+#: ../src/guestfs.pod:2072
msgid ""
"If you need to modify keys while walking, then you have to jump back to the "
"beginning of the loop. For example, to delete all keys prefixed with "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2077
+#: ../src/guestfs.pod:2076
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2093
+#: ../src/guestfs.pod:2092
msgid ""
"Note that the above loop is guaranteed to terminate because the keys are "
"being deleted, but other manipulations of keys within the loop might not "
# type: =end
#. type: =end
-#: ../src/guestfs.pod:2098 ../src/guestfs.pod:2103
+#: ../src/guestfs.pod:2097 ../src/guestfs.pod:2102
msgid "html"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2100
+#: ../src/guestfs.pod:2099
msgid ""
"<!-- old anchor for the next section --> <a name="
"\"state_machine_and_low_level_event_api\"/>"
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2105
+#: ../src/guestfs.pod:2104
msgid "ARCHITECTURE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2107
+#: ../src/guestfs.pod:2106
msgid ""
"Internally, libguestfs is implemented by running an appliance (a special "
"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2111
+#: ../src/guestfs.pod:2110
#, no-wrap
msgid ""
" ___________________\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2131
+#: ../src/guestfs.pod:2130
msgid ""
"The library, linked to the main program, creates the child process and hence "
"the appliance in the L</guestfs_launch> function."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2134
+#: ../src/guestfs.pod:2133
msgid ""
"Inside the appliance is a Linux kernel and a complete stack of userspace "
"tools (such as LVM and ext2 programs) and a small controlling daemon called "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2143
+#: ../src/guestfs.pod:2142
msgid ""
"A common misunderstanding is that the appliance \"is\" the virtual machine. "
"Although the disk image you are attached to might also be used by some "
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2150
+#: ../src/guestfs.pod:2149
msgid "STATE MACHINE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2152
+#: ../src/guestfs.pod:2151
msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2154
+#: ../src/guestfs.pod:2153
#, no-wrap
msgid ""
" |\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2176
+#: ../src/guestfs.pod:2175
msgid ""
"The normal transitions are (1) CONFIG (when the handle is created, but there "
"is no child process), (2) LAUNCHING (when the child process is booting up), "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2181
+#: ../src/guestfs.pod:2180
msgid ""
"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
"asynchronously at any time (eg. due to some internal error), and that causes "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2185
+#: ../src/guestfs.pod:2184
msgid ""
"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
"issued when in the CONFIG state."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2188
+#: ../src/guestfs.pod:2187
msgid ""
"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
"L</guestfs_launch> blocks until the child process is READY to accept "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2194
+#: ../src/guestfs.pod:2193
msgid ""
"API actions such as L</guestfs_mount> can only be issued when in the READY "
"state. These API calls block waiting for the command to be carried out (ie. "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2200
+#: ../src/guestfs.pod:2199
msgid ""
"Finally, the child process sends asynchronous messages back to the main "
"program, such as kernel log messages. You can register a callback to "
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2204
+#: ../src/guestfs.pod:2203
msgid "INTERNALS"
msgstr ""
# type: =head2
#. type: =head2
-#: ../src/guestfs.pod:2206
+#: ../src/guestfs.pod:2205
msgid "COMMUNICATION PROTOCOL"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2208
+#: ../src/guestfs.pod:2207
msgid ""
"Don't rely on using this protocol directly. This section documents how it "
"currently works, but it may change at any time."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2211
+#: ../src/guestfs.pod:2210
msgid ""
"The protocol used to talk between the library and the daemon running inside "
"the qemu virtual machine is a simple RPC mechanism built on top of XDR (RFC "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2215
+#: ../src/guestfs.pod:2214
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2218
+#: ../src/guestfs.pod:2217
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:2225
+#: ../src/guestfs.pod:2224
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2227
+#: ../src/guestfs.pod:2226
msgid "For ordinary functions, the request message is:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2229
+#: ../src/guestfs.pod:2228
#, no-wrap
msgid ""
" total length (header + arguments,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2234
+#: ../src/guestfs.pod:2233
msgid ""
"The total length field allows the daemon to allocate a fixed size buffer "
"into which it slurps the rest of the message. As a result, the total length "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2240
+#: ../src/guestfs.pod:2239
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2243
+#: ../src/guestfs.pod:2242
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2247
+#: ../src/guestfs.pod:2246
msgid ""
"For functions that take optional arguments, the optional arguments are "
"encoded in the C<guestfs_I<foo>_args> structure in the same way as ordinary "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2255
+#: ../src/guestfs.pod:2254
msgid "The reply message for ordinary functions is:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2257
+#: ../src/guestfs.pod:2256
#, no-wrap
msgid ""
" total length (header + ret,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2262
+#: ../src/guestfs.pod:2261
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2265
+#: ../src/guestfs.pod:2264
msgid ""
"As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2268
+#: ../src/guestfs.pod:2267
msgid ""
"In the case of an error, a flag is set in the header, and the reply message "
"is slightly changed:"
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2271
+#: ../src/guestfs.pod:2270
#, no-wrap
msgid ""
" total length (header + error,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2276
+#: ../src/guestfs.pod:2275
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:2279
+#: ../src/guestfs.pod:2278
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2281
+#: ../src/guestfs.pod:2280
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2285
+#: ../src/guestfs.pod:2284
#, no-wrap
msgid ""
" total length (header + arguments,\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2293
+#: ../src/guestfs.pod:2292
msgid "The \"sequence of chunks\" is:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2295
+#: ../src/guestfs.pod:2294
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2303
+#: ../src/guestfs.pod:2302
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2307
+#: ../src/guestfs.pod:2306
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2312
+#: ../src/guestfs.pod:2311
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2318
+#: ../src/guestfs.pod:2317
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2327
+#: ../src/guestfs.pod:2326
msgid ""
"This protocol allows the transfer of arbitrary sized files (no 32 bit "
"limit), and also files where the size is not known in advance (eg. from "
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:2333
+#: ../src/guestfs.pod:2332
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2335
+#: ../src/guestfs.pod:2334
msgid ""
"The protocol for FileOut parameters is exactly the same as for FileIn "
"parameters, but with the roles of daemon and library reversed."
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2338
+#: ../src/guestfs.pod:2337
#, no-wrap
msgid ""
" total length (header + ret,\n"
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:2346
+#: ../src/guestfs.pod:2345
msgid "INITIAL MESSAGE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2348
+#: ../src/guestfs.pod:2347
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
"which indicates that the guest and daemon is alive. This is what L</"
# type: =head3
#. type: =head3
-#: ../src/guestfs.pod:2352
+#: ../src/guestfs.pod:2351
msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2354
+#: ../src/guestfs.pod:2353
msgid ""
"The daemon may send progress notification messages at any time. These are "
"distinguished by the normal length word being replaced by "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2358
+#: ../src/guestfs.pod:2357
msgid ""
"The library turns them into progress callbacks (see L</"
"GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards them "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2362
+#: ../src/guestfs.pod:2361
msgid ""
"The daemon self-limits the frequency of progress messages it sends (see "
"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2366
+#: ../src/guestfs.pod:2365
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2368
+#: ../src/guestfs.pod:2367
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2373
+#: ../src/guestfs.pod:2372
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2384
+#: ../src/guestfs.pod:2383
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2386
+#: ../src/guestfs.pod:2385
msgid ""
"As time passes we cherry pick fixes from the development branch and backport "
"those into the stable branch, the effect being that the stable branch should "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2392
+#: ../src/guestfs.pod:2391
msgid "Our criteria for backporting changes are:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2398
+#: ../src/guestfs.pod:2397
msgid ""
"Documentation changes which don't affect any code are backported unless the "
"documentation refers to a future feature which is not in stable."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2404
+#: ../src/guestfs.pod:2403
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2409
+#: ../src/guestfs.pod:2408
msgid ""
"Simple rearrangements of code which shouldn't affect how it works get "
"backported. This is so that the code in the two branches doesn't get too "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2415
+#: ../src/guestfs.pod:2414
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2421
+#: ../src/guestfs.pod:2420
msgid ""
"A new stable branch starts when we think the new features in development are "
"substantial and compelling enough over the current stable branch to warrant "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2429
+#: ../src/guestfs.pod:2428
msgid "EXTENDING LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2431
+#: ../src/guestfs.pod:2430
msgid "ADDING A NEW API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2433
+#: ../src/guestfs.pod:2432
msgid ""
"Large amounts of boilerplate code in libguestfs (RPC, bindings, "
"documentation) are generated, and this makes it easy to extend the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2437
+#: ../src/guestfs.pod:2436
msgid "To add a new API action there are two changes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2443
+#: ../src/guestfs.pod:2442
msgid ""
"You need to add a description of the call (name, parameters, return type, "
"tests, documentation) to C<generator/generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2446
+#: ../src/guestfs.pod:2445
msgid ""
"There are two sorts of API action, depending on whether the call goes "
"through to the daemon in the appliance, or is serviced entirely by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2454
+#: ../src/guestfs.pod:2453
msgid ""
"Most new actions are of the first type, and get added to the "
"C<daemon_functions> list. Each function has a unique procedure number used "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2460
+#: ../src/guestfs.pod:2459
msgid ""
"For library-only actions of the second type, add to the "
"C<non_daemon_functions> list. Since these functions are serviced by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2468
+#: ../src/guestfs.pod:2467
msgid "Implement the action (in C):"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2470
+#: ../src/guestfs.pod:2469
msgid ""
"For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the "
"C<daemon/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2473
+#: ../src/guestfs.pod:2472
msgid ""
"For library actions, implement the function C<guestfs__E<lt>nameE<gt>> "
"(note: double underscore) in the C<src/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2476
+#: ../src/guestfs.pod:2475
msgid "In either case, use another function as an example of what to do."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2480
+#: ../src/guestfs.pod:2479
msgid "After making these changes, use C<make> to compile."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2482
+#: ../src/guestfs.pod:2481
msgid ""
"Note that you don't need to implement the RPC, language bindings, manual "
"pages or anything else. It's all automatically generated from the OCaml "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2486
+#: ../src/guestfs.pod:2485
msgid "ADDING TESTS FOR AN API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2488
+#: ../src/guestfs.pod:2487
msgid ""
"You can supply zero or as many tests as you want per API call. The tests "
"can either be added as part of the API description (C<generator/"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2494
+#: ../src/guestfs.pod:2493
msgid ""
"The following describes the test environment used when you add an API test "
"in C<generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2497
+#: ../src/guestfs.pod:2496
msgid "The test environment has 4 block devices:"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2501
+#: ../src/guestfs.pod:2500
msgid "C</dev/sda> 500MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2503
+#: ../src/guestfs.pod:2502
msgid "General block device for testing."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2505
+#: ../src/guestfs.pod:2504
msgid "C</dev/sdb> 50MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2507
+#: ../src/guestfs.pod:2506
msgid ""
"C</dev/sdb1> is an ext2 filesystem used for testing filesystem write "
"operations."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2510
+#: ../src/guestfs.pod:2509
msgid "C</dev/sdc> 10MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2512
+#: ../src/guestfs.pod:2511
msgid "Used in a few tests where two block devices are needed."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2514
+#: ../src/guestfs.pod:2513
msgid "C</dev/sdd>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2516
+#: ../src/guestfs.pod:2515
msgid "ISO with fixed content (see C<images/test.iso>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2520
+#: ../src/guestfs.pod:2519
msgid ""
"To be able to run the tests in a reasonable amount of time, the libguestfs "
"appliance and block devices are reused between tests. So don't try testing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2524
+#: ../src/guestfs.pod:2523
msgid ""
"Each test starts with an initial scenario, selected using one of the "
"C<Init*> expressions, described in C<generator/generator_types.ml>. These "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2530
+#: ../src/guestfs.pod:2529
msgid ""
"You can add a prerequisite clause to any individual test. This is a run-"
"time check, which, if it fails, causes the test to be skipped. Useful if "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2536
+#: ../src/guestfs.pod:2535
msgid ""
"In addition, packagers can skip individual tests by setting environment "
"variables before running C<make check>."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2539
+#: ../src/guestfs.pod:2538
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>_<NUM>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2541
+#: ../src/guestfs.pod:2540
msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2543
+#: ../src/guestfs.pod:2542
msgid "or:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2545
+#: ../src/guestfs.pod:2544
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2547
+#: ../src/guestfs.pod:2546
msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2549
+#: ../src/guestfs.pod:2548
msgid "Packagers can run only certain tests by setting for example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2551
+#: ../src/guestfs.pod:2550
#, no-wrap
msgid ""
" TEST_ONLY=\"vfs_type zerofree\"\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2553
+#: ../src/guestfs.pod:2552
msgid ""
"See C<capitests/tests.c> for more details of how these environment variables "
"work."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2556
+#: ../src/guestfs.pod:2555
msgid "DEBUGGING NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2558
+#: ../src/guestfs.pod:2557
msgid "Test new actions work before submitting them."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2560
+#: ../src/guestfs.pod:2559
msgid "You can use guestfish to try out new commands."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2562
+#: ../src/guestfs.pod:2561
msgid ""
"Debugging the daemon is a problem because it runs inside a minimal "
"environment. However you can fprintf messages in the daemon to stderr, and "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2566
+#: ../src/guestfs.pod:2565
msgid "FORMATTING CODE AND OTHER CONVENTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2568
+#: ../src/guestfs.pod:2567
msgid ""
"Our C source code generally adheres to some basic code-formatting "
"conventions. The existing code base is not totally consistent on this "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2574
+#: ../src/guestfs.pod:2573
msgid ""
"If you use Emacs, add the following to one of one of your start-up files (e."
"g., ~/.emacs), to help ensure that you get indentation right:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2577
+#: ../src/guestfs.pod:2576
#, no-wrap
msgid ""
" ;;; In libguestfs, indent with spaces everywhere (not TABs).\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2587
+#: ../src/guestfs.pod:2586
#, no-wrap
msgid ""
" ;;; When editing C sources in libguestfs, use this style.\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2599
+#: ../src/guestfs.pod:2598
msgid "Enable warnings when compiling (and fix any problems this finds):"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2602
+#: ../src/guestfs.pod:2601
#, no-wrap
msgid ""
" ./configure --enable-gcc-warnings\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2604
+#: ../src/guestfs.pod:2603
msgid "Useful targets are:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2606
+#: ../src/guestfs.pod:2605
#, no-wrap
msgid ""
" make syntax-check # checks the syntax of the C code\n"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2609
+#: ../src/guestfs.pod:2608
msgid "DAEMON CUSTOM PRINTF FORMATTERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2611
+#: ../src/guestfs.pod:2610
msgid ""
"In the daemon code we have created custom printf formatters C<%Q> and C<%R>, "
"which are used to do shell quoting."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2616
+#: ../src/guestfs.pod:2615
msgid "%Q"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2618
+#: ../src/guestfs.pod:2617
msgid ""
"Simple shell quoted string. Any spaces or other shell characters are "
"escaped for you."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2621
+#: ../src/guestfs.pod:2620
msgid "%R"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2623
+#: ../src/guestfs.pod:2622
msgid ""
"Same as C<%Q> except the string is treated as a path which is prefixed by "
"the sysroot."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2628 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
+#: ../src/guestfs.pod:2627 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
msgid "For example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2630
+#: ../src/guestfs.pod:2629
#, no-wrap
msgid ""
" asprintf (&cmd, \"cat %R\", path);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2632
+#: ../src/guestfs.pod:2631
msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2634
+#: ../src/guestfs.pod:2633
msgid ""
"I<Note:> Do I<not> use these when you are passing parameters to the C<command"
"{,r,v,rv}()> functions. These parameters do NOT need to be quoted because "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2640
+#: ../src/guestfs.pod:2639
msgid "SUBMITTING YOUR NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2642
+#: ../src/guestfs.pod:2641
msgid ""
"Submit patches to the mailing list: L<http://www.redhat.com/mailman/listinfo/"
"libguestfs> and CC to L<rjones@redhat.com>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2646
+#: ../src/guestfs.pod:2645
msgid "INTERNATIONALIZATION (I18N) SUPPORT"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2648
+#: ../src/guestfs.pod:2647
msgid "We support i18n (gettext anyhow) in the library."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2650
+#: ../src/guestfs.pod:2649
msgid ""
"However many messages come from the daemon, and we don't translate those at "
"the moment. One reason is that the appliance generally has all locale files "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2656
+#: ../src/guestfs.pod:2655
msgid ""
"Debugging messages are never translated, since they are intended for the "
"programmers."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2659
+#: ../src/guestfs.pod:2658
msgid "SOURCE CODE SUBDIRECTORIES"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2663 ../src/guestfs-actions.pod:5806
+#: ../src/guestfs.pod:2662 ../src/guestfs-actions.pod:5806
#: ../fish/guestfish-actions.pod:3900
msgid "C<appliance>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2665
+#: ../src/guestfs.pod:2664
msgid "The libguestfs appliance, build scripts and so on."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2667
+#: ../src/guestfs.pod:2666
msgid "C<capitests>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2669
+#: ../src/guestfs.pod:2668
msgid "Automated tests of the C API."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2671
+#: ../src/guestfs.pod:2670
msgid "C<cat>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2673
+#: ../src/guestfs.pod:2672
msgid ""
"The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and "
"documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2676
+#: ../src/guestfs.pod:2675
msgid "C<contrib>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2678
+#: ../src/guestfs.pod:2677
msgid "Outside contributions, experimental parts."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2680
+#: ../src/guestfs.pod:2679
msgid "C<daemon>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2682
+#: ../src/guestfs.pod:2681
msgid ""
"The daemon that runs inside the libguestfs appliance and carries out actions."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2685
+#: ../src/guestfs.pod:2684
msgid "C<df>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2687
+#: ../src/guestfs.pod:2686
msgid "L<virt-df(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2689
+#: ../src/guestfs.pod:2688
msgid "C<examples>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2691
+#: ../src/guestfs.pod:2690
msgid "C API example code."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2693
+#: ../src/guestfs.pod:2692
msgid "C<fish>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2695
+#: ../src/guestfs.pod:2694
msgid ""
"L<guestfish(1)>, the command-line shell, and various shell scripts built on "
"top such as L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-tar-in(1)>, "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2699
+#: ../src/guestfs.pod:2698
msgid "C<fuse>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2701
+#: ../src/guestfs.pod:2700
msgid ""
"L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2703
+#: ../src/guestfs.pod:2702
msgid "C<generator>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2705
+#: ../src/guestfs.pod:2704
msgid ""
"The crucially important generator, used to automatically generate large "
"amounts of boilerplate C code for things like RPC and bindings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2708
+#: ../src/guestfs.pod:2707
msgid "C<images>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2710
+#: ../src/guestfs.pod:2709
msgid "Files used by the test suite."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2712
+#: ../src/guestfs.pod:2711
msgid "Some \"phony\" guest images which we test against."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2714
+#: ../src/guestfs.pod:2713
msgid "C<inspector>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2716
+#: ../src/guestfs.pod:2715
msgid "L<virt-inspector(1)>, the virtual machine image inspector."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2718
+#: ../src/guestfs.pod:2717
msgid "C<logo>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2720
+#: ../src/guestfs.pod:2719
msgid "Logo used on the website. The fish is called Arthur by the way."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2722
+#: ../src/guestfs.pod:2721
msgid "C<m4>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2724
+#: ../src/guestfs.pod:2723
msgid "M4 macros used by autoconf."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2726
+#: ../src/guestfs.pod:2725
msgid "C<po>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2728
+#: ../src/guestfs.pod:2727
msgid "Translations of simple gettext strings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2730
+#: ../src/guestfs.pod:2729
msgid "C<po-docs>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2732
+#: ../src/guestfs.pod:2731
msgid ""
"The build infrastructure and PO files for translations of manpages and POD "
"files. Eventually this will be combined with the C<po> directory, but that "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2736
+#: ../src/guestfs.pod:2735
msgid "C<regressions>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2738
+#: ../src/guestfs.pod:2737
msgid "Regression tests."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2740
+#: ../src/guestfs.pod:2739
msgid "C<rescue>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2742
+#: ../src/guestfs.pod:2741
msgid "L<virt-rescue(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2744
+#: ../src/guestfs.pod:2743
msgid "C<src>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2746
+#: ../src/guestfs.pod:2745
msgid "Source code to the C library."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2748
+#: ../src/guestfs.pod:2747
msgid "C<tools>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2750
+#: ../src/guestfs.pod:2749
msgid "Command line tools written in Perl (L<virt-resize(1)> and many others)."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2752
+#: ../src/guestfs.pod:2751
msgid "C<test-tool>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2754
+#: ../src/guestfs.pod:2753
msgid ""
"Test tool for end users to test if their qemu/kernel combination will work "
"with libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2757
+#: ../src/guestfs.pod:2756
msgid "C<csharp>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2759
+#: ../src/guestfs.pod:2758
msgid "C<haskell>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2761
+#: ../src/guestfs.pod:2760
msgid "C<java>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2763
+#: ../src/guestfs.pod:2762
msgid "C<ocaml>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2765
+#: ../src/guestfs.pod:2764
msgid "C<php>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2767
+#: ../src/guestfs.pod:2766
msgid "C<perl>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2769
+#: ../src/guestfs.pod:2768
msgid "C<python>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2771
+#: ../src/guestfs.pod:2770
msgid "C<ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2773
+#: ../src/guestfs.pod:2772
msgid "Language bindings."
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2777 ../fish/guestfish.pod:1010
+#: ../src/guestfs.pod:2776 ../fish/guestfish.pod:1015
#: ../test-tool/libguestfs-test-tool.pod:82 ../tools/virt-edit.pl:476
msgid "ENVIRONMENT VARIABLES"
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2781 ../fish/guestfish.pod:1036
+#: ../src/guestfs.pod:2780 ../fish/guestfish.pod:1041
msgid "LIBGUESTFS_APPEND"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2783 ../fish/guestfish.pod:1038
+#: ../src/guestfs.pod:2782 ../fish/guestfish.pod:1043
msgid "Pass additional options to the guest kernel."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2785 ../fish/guestfish.pod:1040
+#: ../src/guestfs.pod:2784 ../fish/guestfish.pod:1045
msgid "LIBGUESTFS_DEBUG"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2787
+#: ../src/guestfs.pod:2786
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2790 ../fish/guestfish.pod:1045
+#: ../src/guestfs.pod:2789 ../fish/guestfish.pod:1050
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2792 ../fish/guestfish.pod:1047
+#: ../src/guestfs.pod:2791 ../fish/guestfish.pod:1052
msgid ""
"Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../src/guestfs.pod:2795 ../fish/guestfish.pod:1050
+#: ../src/guestfs.pod:2794 ../fish/guestfish.pod:1055
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2797 ../fish/guestfish.pod:1052
+#: ../src/guestfs.pod:2796 ../fish/guestfish.pod:1057
msgid "LIBGUESTFS_PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2799
+#: ../src/guestfs.pod:2798
msgid ""
"Set the path that libguestfs uses to search for a supermin appliance. See "
"the discussion of paths in section L</PATH> above."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2802 ../fish/guestfish.pod:1057
+#: ../src/guestfs.pod:2801 ../fish/guestfish.pod:1062
msgid "LIBGUESTFS_QEMU"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2804 ../fish/guestfish.pod:1059
+#: ../src/guestfs.pod:2803 ../fish/guestfish.pod:1064
msgid ""
"Set the default qemu binary that libguestfs uses. If not set, then the qemu "
"which was found at compile time by the configure script is used."
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2808
+#: ../src/guestfs.pod:2807
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2810 ../fish/guestfish.pod:1063
+#: ../src/guestfs.pod:2809 ../fish/guestfish.pod:1068
msgid "LIBGUESTFS_TRACE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2812
+#: ../src/guestfs.pod:2811
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
# type: =item
#. type: =item
-#: ../src/guestfs.pod:2815 ../fish/guestfish.pod:1072
+#: ../src/guestfs.pod:2814 ../fish/guestfish.pod:1077
msgid "TMPDIR"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2817 ../fish/guestfish.pod:1074
+#: ../src/guestfs.pod:2816 ../fish/guestfish.pod:1079
msgid ""
"Location of temporary directory, defaults to C</tmp> except for the cached "
"supermin appliance which defaults to C</var/tmp>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2820 ../fish/guestfish.pod:1077
+#: ../src/guestfs.pod:2819 ../fish/guestfish.pod:1082
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2828 ../fish/guestfish.pod:1144
+#: ../src/guestfs.pod:2827 ../fish/guestfish.pod:1149
#: ../test-tool/libguestfs-test-tool.pod:87 ../fuse/guestmount.pod:267
#: ../tools/virt-edit.pl:496 ../tools/virt-win-reg.pl:572
#: ../tools/virt-list-filesystems.pl:189 ../tools/virt-tar.pl:286
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2830
+#: ../src/guestfs.pod:2829
msgid ""
"L<guestfs-examples(3)>, L<guestfs-ocaml(3)>, L<guestfs-python(3)>, L<guestfs-"
"ruby(3)>, L<guestfish(1)>, L<guestmount(1)>, L<virt-cat(1)>, L<virt-copy-in"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2857
+#: ../src/guestfs.pod:2856
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, L<lvm"
"(8)>, L<disktype(1)>."
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2864 ../tools/virt-win-reg.pl:587
+#: ../src/guestfs.pod:2863 ../tools/virt-win-reg.pl:587
#: ../tools/virt-make-fs.pl:553
msgid "BUGS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2866
+#: ../src/guestfs.pod:2865
msgid "To get a list of bugs against libguestfs use this link:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2868
+#: ../src/guestfs.pod:2867
msgid ""
"L<https://bugzilla.redhat.com/buglist.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2870
+#: ../src/guestfs.pod:2869
msgid "To report a new bug against libguestfs use this link:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2872
+#: ../src/guestfs.pod:2871
msgid ""
"L<https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2874
+#: ../src/guestfs.pod:2873
msgid "When reporting a bug, please check:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2880
+#: ../src/guestfs.pod:2879
msgid "That the bug hasn't been reported already."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2884
+#: ../src/guestfs.pod:2883
msgid "That you are testing a recent version."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2888
+#: ../src/guestfs.pod:2887
msgid "Describe the bug accurately, and give a way to reproduce it."
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2892
+#: ../src/guestfs.pod:2891
msgid ""
"Run libguestfs-test-tool and paste the B<complete, unedited> output into the "
"bug report."
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2897 ../fish/guestfish.pod:1167
+#: ../src/guestfs.pod:2896 ../fish/guestfish.pod:1172
#: ../test-tool/libguestfs-test-tool.pod:93 ../fuse/guestmount.pod:278
msgid "AUTHORS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2899 ../fish/guestfish.pod:1169
+#: ../src/guestfs.pod:2898 ../fish/guestfish.pod:1174
#: ../test-tool/libguestfs-test-tool.pod:95 ../fuse/guestmount.pod:280
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
# type: =head1
#. type: =head1
-#: ../src/guestfs.pod:2901 ../fish/guestfish.pod:1171
+#: ../src/guestfs.pod:2900 ../fish/guestfish.pod:1176
#: ../test-tool/libguestfs-test-tool.pod:97 ../fuse/guestmount.pod:282
#: ../tools/virt-edit.pl:514 ../tools/virt-win-reg.pl:602
#: ../tools/virt-list-filesystems.pl:206 ../tools/virt-tar.pl:305
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2903 ../fish/guestfish.pod:1173
+#: ../src/guestfs.pod:2902 ../fish/guestfish.pod:1178
#: ../test-tool/libguestfs-test-tool.pod:99
msgid "Copyright (C) 2009-2011 Red Hat Inc. L<http://libguestfs.org/>"
msgstr ""
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2906
+#: ../src/guestfs.pod:2905
msgid ""
"This library is free software; you can redistribute it and/or modify it "
"under the terms of the GNU Lesser General Public License as published by the "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2911
+#: ../src/guestfs.pod:2910
msgid ""
"This library is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
# type: textblock
#. type: textblock
-#: ../src/guestfs.pod:2916
+#: ../src/guestfs.pod:2915
msgid ""
"You should have received a copy of the GNU Lesser General Public License "
"along with this library; if not, write to the Free Software Foundation, "
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:942
+#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:947
#: ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:63 ../tools/virt-tar.pl:50
msgid "EXAMPLES"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:933
+#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:938
#, no-wrap
msgid ""
" guestfish -N help | less\n"
msgid "WINDOWS PATHS"
msgstr ""
-# type: textblock
#. type: textblock
#: ../fish/guestfish.pod:800
msgid ""
-"If a path is prefixed with C<win:> then you can use Windows-style paths "
-"(with some limitations). The following commands are equivalent:"
+"If a path is prefixed with C<win:> then you can use Windows-style drive "
+"letters and paths (with some limitations). The following commands are "
+"equivalent:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:803
+#: ../fish/guestfish.pod:804
#, no-wrap
msgid ""
" file /WINDOWS/system32/config/system.LOG\n"
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:805
+#: ../fish/guestfish.pod:806
#, no-wrap
msgid ""
-" file win:/windows/system32/config/system.log\n"
+" file win:\\windows\\system32\\config\\system.log\n"
"\n"
msgstr ""
-# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:807
+#: ../fish/guestfish.pod:808
#, no-wrap
msgid ""
-" file win:\\windows\\system32\\config\\system.log\n"
+" file WIN:C:\\Windows\\SYSTEM32\\CONFIG\\SYSTEM.LOG\n"
"\n"
msgstr ""
-# type: verbatim
+#. type: textblock
+#: ../fish/guestfish.pod:810
+msgid ""
+"The parameter is rewritten \"behind the scenes\" by looking up the position "
+"where the drive is mounted, prepending that to the path, changing all "
+"backslash characters to forward slash, then resolving the result using L</"
+"case-sensitive-path>. For example if the E: drive was mounted on C</e> then "
+"the parameter might be rewritten like this:"
+msgstr ""
+
#. type: verbatim
-#: ../fish/guestfish.pod:809
+#: ../fish/guestfish.pod:816
#, no-wrap
msgid ""
-" file WIN:C:\\Windows\\SYSTEM32\\conFIG\\SYSTEM.LOG\n"
+" win:e:\\foo\\bar => /e/FOO/bar\n"
"\n"
msgstr ""
-# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:811
-msgid ""
-"This syntax implicitly calls C<case-sensitive-path> (q.v.) so it also "
-"handles case insensitivity like Windows would. This only works in argument "
-"positions that expect a path."
+#: ../fish/guestfish.pod:818
+msgid "This only works in argument positions that expect a path."
msgstr ""
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:815
+#: ../fish/guestfish.pod:820
msgid "UPLOADING AND DOWNLOADING FILES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:817
+#: ../fish/guestfish.pod:822
msgid ""
"For commands such as C<upload>, C<download>, C<tar-in>, C<tar-out> and "
"others which upload from or download to a local file, you can use the "
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:821
+#: ../fish/guestfish.pod:826
#, no-wrap
msgid ""
" upload - /foo\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:823
+#: ../fish/guestfish.pod:828
msgid ""
"reads stdin and creates from that a file C</foo> in the disk image, and:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:826
+#: ../fish/guestfish.pod:831
#, no-wrap
msgid ""
" tar-out /etc - | tar tf -\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:828
+#: ../fish/guestfish.pod:833
msgid ""
"writes the tarball to stdout and then pipes that into the external \"tar\" "
"command (see L</PIPES>)."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:831
+#: ../fish/guestfish.pod:836
msgid ""
"When using C<-> to read from stdin, the input is read up to the end of "
"stdin. You can also use a special \"heredoc\"-like syntax to read up to "
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:835
+#: ../fish/guestfish.pod:840
#, no-wrap
msgid ""
" upload -<<END /foo\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:841
+#: ../fish/guestfish.pod:846
msgid ""
"Any string of characters can be used instead of C<END>. The end marker must "
"appear on a line of its own, without any preceeding or following characters "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:845
+#: ../fish/guestfish.pod:850
msgid ""
"Note that the C<-E<lt>E<lt>> syntax only applies to parameters used to "
"upload local files (so-called \"FileIn\" parameters in the generator)."
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:848
+#: ../fish/guestfish.pod:853
msgid "EXIT ON ERROR BEHAVIOUR"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:850
+#: ../fish/guestfish.pod:855
msgid ""
"By default, guestfish will ignore any errors when in interactive mode (ie. "
"taking commands from a human over a tty), and will exit on the first error "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:855
+#: ../fish/guestfish.pod:860
msgid ""
"If you prefix a command with a I<-> character, then that command will not "
"cause guestfish to exit, even if that (one) command returns an error."
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:859
+#: ../fish/guestfish.pod:864
msgid "REMOTE CONTROL GUESTFISH OVER A SOCKET"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:861
+#: ../fish/guestfish.pod:866
msgid ""
"Guestfish can be remote-controlled over a socket. This is useful "
"particularly in shell scripts where you want to make several different "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:866
+#: ../fish/guestfish.pod:871
msgid "Start a guestfish server process using:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:868
+#: ../fish/guestfish.pod:873
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:870
+#: ../fish/guestfish.pod:875
msgid "and then send it commands by doing:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:872
+#: ../fish/guestfish.pod:877
#, no-wrap
msgid ""
" guestfish --remote cmd [...]\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:874
+#: ../fish/guestfish.pod:879
msgid "To cause the server to exit, send it the exit command:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:876
+#: ../fish/guestfish.pod:881
#, no-wrap
msgid ""
" guestfish --remote exit\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:878
+#: ../fish/guestfish.pod:883
msgid ""
"Note that the server will normally exit if there is an error in a command. "
"You can change this in the usual way. See section L</EXIT ON ERROR "
# type: =head2
#. type: =head2
-#: ../fish/guestfish.pod:882
+#: ../fish/guestfish.pod:887
msgid "CONTROLLING MULTIPLE GUESTFISH PROCESSES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish.pod:889
msgid ""
"The C<eval> statement sets the environment variable C<$GUESTFISH_PID>, which "
"is how the I<--remote> option knows where to send the commands. You can "
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:888
+#: ../fish/guestfish.pod:893
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
# type: =head2
#. type: =head2
-#: ../fish/guestfish.pod:896
+#: ../fish/guestfish.pod:901
msgid "REMOTE CONTROL AND CSH"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:898
+#: ../fish/guestfish.pod:903
msgid ""
"When using csh-like shells (csh, tcsh etc) you have to add the I<--csh> "
"option:"
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:901
+#: ../fish/guestfish.pod:906
#, no-wrap
msgid ""
" eval \"`guestfish --listen --csh`\"\n"
# type: =head2
#. type: =head2
-#: ../fish/guestfish.pod:903
+#: ../fish/guestfish.pod:908
msgid "REMOTE CONTROL DETAILS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:905
+#: ../fish/guestfish.pod:910
msgid ""
"Remote control happens over a Unix domain socket called C</tmp/.guestfish-"
"$UID/socket-$PID>, where C<$UID> is the effective user ID of the process, "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:909
+#: ../fish/guestfish.pod:914
msgid "Guestfish client and server versions must match exactly."
msgstr ""
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:916
msgid "PREPARED DISK IMAGES"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:913
+#: ../fish/guestfish.pod:918
msgid ""
"Use the I<-N type> or I<--new type> parameter to select one of a set of "
"preformatted disk images that guestfish can make for you to save typing. "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:919
+#: ../fish/guestfish.pod:924
msgid ""
"The new disk is called C<test1.img> for the first I<-N>, C<test2.img> for "
"the second and so on. Existing files in the current directory are "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:923
+#: ../fish/guestfish.pod:928
msgid ""
"The type briefly describes how the disk should be sized, partitioned, how "
"filesystem(s) should be created, and how content should be added. "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:931
+#: ../fish/guestfish.pod:936
msgid "To list the available types and any extra parameters they take, run:"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:935
+#: ../fish/guestfish.pod:940
msgid ""
"Note that the prepared filesystem is not mounted. You would usually have to "
"use the C<mount /dev/sda1 /> command or add the I<-m /dev/sda1> option."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:939
+#: ../fish/guestfish.pod:944
msgid ""
"If any I<-N> or I<--new> options are given, the guest is automatically "
"launched."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:944
+#: ../fish/guestfish.pod:949
msgid "Create a 100MB disk with an ext4-formatted partition:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:946
+#: ../fish/guestfish.pod:951
#, no-wrap
msgid ""
" guestfish -N fs:ext4\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:948
+#: ../fish/guestfish.pod:953
msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:955
#, no-wrap
msgid ""
" guestfish -N fs:vfat:32M -m /dev/sda1\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:952
+#: ../fish/guestfish.pod:957
msgid "Create a blank 200MB disk:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:954
+#: ../fish/guestfish.pod:959
#, no-wrap
msgid ""
" guestfish -N disk:200M\n"
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:956
+#: ../fish/guestfish.pod:961
msgid "PROGRESS BARS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:958
+#: ../fish/guestfish.pod:963
msgid ""
"Some (not all) long-running commands send progress notification messages as "
"they are running. Guestfish turns these messages into progress bars."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:962
+#: ../fish/guestfish.pod:967
msgid ""
"When a command that supports progress bars takes longer than two seconds to "
"run, and if progress bars are enabled, then you will see one appearing below "
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:966
+#: ../fish/guestfish.pod:971
#, no-wrap
msgid ""
" ><fs> copy-size /large-file /another-file 2048M\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:969
+#: ../fish/guestfish.pod:974
msgid ""
"The spinner on the left hand side moves round once for every progress "
"notification received from the backend. This is a (reasonably) golden "
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:976
+#: ../fish/guestfish.pod:981
msgid ""
"Progress bars are enabled by default when guestfish is used interactively. "
"You can enable them even for non-interactive modes using I<--progress-bars>, "
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:981
+#: ../fish/guestfish.pod:986
msgid "GUESTFISH COMMANDS"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:983
+#: ../fish/guestfish.pod:988
msgid ""
"The commands in this section are guestfish convenience commands, in other "
"words, they are not part of the L<guestfs(3)> API."
# type: =head2
#. type: =head2
-#: ../fish/guestfish.pod:986
+#: ../fish/guestfish.pod:991
msgid "help"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:988
+#: ../fish/guestfish.pod:993
#, no-wrap
msgid ""
" help\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:991
+#: ../fish/guestfish.pod:996
msgid "Without any parameter, this provides general help."
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:993
+#: ../fish/guestfish.pod:998
msgid "With a C<cmd> parameter, this displays detailed help for that command."
msgstr ""
# type: =head2
#. type: =head2
-#: ../fish/guestfish.pod:995
+#: ../fish/guestfish.pod:1000
msgid "quit | exit"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:997
+#: ../fish/guestfish.pod:1002
msgid "This exits guestfish. You can also use C<^D> key."
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:999
+#: ../fish/guestfish.pod:1004
msgid "@FISH_COMMANDS@"
msgstr ""
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:1001
+#: ../fish/guestfish.pod:1006
msgid "COMMANDS"
msgstr ""
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:1005 ../test-tool/libguestfs-test-tool.pod:77
+#: ../fish/guestfish.pod:1010 ../test-tool/libguestfs-test-tool.pod:77
msgid "EXIT CODE"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1007
+#: ../fish/guestfish.pod:1012
msgid ""
"guestfish returns 0 if the commands completed without error, or 1 if there "
"was an error."
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1014
+#: ../fish/guestfish.pod:1019
msgid "EDITOR"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1016
+#: ../fish/guestfish.pod:1021
msgid ""
"The C<edit> command uses C<$EDITOR> as the editor. If not set, it uses "
"C<vi>."
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1019
+#: ../fish/guestfish.pod:1024
msgid "GUESTFISH_PID"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1021
+#: ../fish/guestfish.pod:1026
msgid ""
"Used with the I<--remote> option to specify the remote guestfish process to "
"control. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1025
+#: ../fish/guestfish.pod:1030
msgid "HEXEDITOR"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1027
+#: ../fish/guestfish.pod:1032
msgid ""
"The L</hexedit> command uses C<$HEXEDITOR> as the external hex editor. If "
"not specified, the external L<hexedit(1)> program is used."
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1031
+#: ../fish/guestfish.pod:1036
msgid "HOME"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1033
+#: ../fish/guestfish.pod:1038
msgid ""
"If compiled with GNU readline support, various files in the home directory "
"can be used. See L</FILES>."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1042
+#: ../fish/guestfish.pod:1047
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as using the B<-v> option."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1054
+#: ../fish/guestfish.pod:1059
msgid ""
"Set the path that guestfish uses to search for kernel and initrd.img. See "
"the discussion of paths in L<guestfs(3)>."
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1065
+#: ../fish/guestfish.pod:1070
msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
msgstr ""
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1067
+#: ../fish/guestfish.pod:1072
msgid "PAGER"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1069
+#: ../fish/guestfish.pod:1074
msgid ""
"The C<more> command uses C<$PAGER> as the pager. If not set, it uses "
"C<more>."
# type: =head1
#. type: =head1
-#: ../fish/guestfish.pod:1085 ../fuse/guestmount.pod:252
+#: ../fish/guestfish.pod:1090 ../fuse/guestmount.pod:252
msgid "FILES"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1089 ../fuse/guestmount.pod:256
+#: ../fish/guestfish.pod:1094 ../fuse/guestmount.pod:256
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1091 ../fuse/guestmount.pod:258
+#: ../fish/guestfish.pod:1096 ../fuse/guestmount.pod:258
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1093 ../fuse/guestmount.pod:260
+#: ../fish/guestfish.pod:1098 ../fuse/guestmount.pod:260
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1096
+#: ../fish/guestfish.pod:1101
msgid "See L</OPENING DISKS FOR READ AND WRITE>."
msgstr ""
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1098
+#: ../fish/guestfish.pod:1103
msgid "$HOME/.guestfish"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1100
+#: ../fish/guestfish.pod:1105
msgid ""
"If compiled with GNU readline support, then the command history is saved in "
"this file."
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1103
+#: ../fish/guestfish.pod:1108
msgid "$HOME/.inputrc"
msgstr ""
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1105
+#: ../fish/guestfish.pod:1110
msgid "/etc/inputrc"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1107
+#: ../fish/guestfish.pod:1112
msgid ""
"If compiled with GNU readline support, then these files can be used to "
"configure readline. For further information, please see L<readline(3)/"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1111
+#: ../fish/guestfish.pod:1116
msgid "To write rules which only apply to guestfish, use:"
msgstr ""
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:1113
+#: ../fish/guestfish.pod:1118
#, no-wrap
msgid ""
" $if guestfish\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1117
+#: ../fish/guestfish.pod:1122
msgid ""
"Variables that you can set in inputrc that change the behaviour of guestfish "
"in useful ways include:"
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1122
+#: ../fish/guestfish.pod:1127
msgid "completion-ignore-case (default: on)"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1124
+#: ../fish/guestfish.pod:1129
msgid ""
"By default, guestfish will ignore case when tab-completing paths on the "
"disk. Use:"
# type: verbatim
#. type: verbatim
-#: ../fish/guestfish.pod:1127
+#: ../fish/guestfish.pod:1132
#, no-wrap
msgid ""
" set completion-ignore-case off\n"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1129
+#: ../fish/guestfish.pod:1134
msgid "to make guestfish case sensitive."
msgstr ""
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1133
+#: ../fish/guestfish.pod:1138
msgid "test1.img"
msgstr ""
# type: =item
#. type: =item
-#: ../fish/guestfish.pod:1135
+#: ../fish/guestfish.pod:1140
msgid "test2.img (etc)"
msgstr ""
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1137
+#: ../fish/guestfish.pod:1142
msgid ""
"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
"will be created in the file C<test1.img> in the current directory. The "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1146
+#: ../fish/guestfish.pod:1151
msgid ""
"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-copy-in(1)"
">, L<virt-copy-out(1)>, L<virt-df(1)>, L<virt-edit(1)>, L<virt-filesystems(1)"
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1176 ../test-tool/libguestfs-test-tool.pod:102
+#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:102
#: ../fuse/guestmount.pod:287 ../tools/virt-edit.pl:518
#: ../tools/virt-win-reg.pl:606 ../tools/virt-list-filesystems.pl:210
#: ../tools/virt-tar.pl:309 ../tools/virt-make-fs.pl:572
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:107
+#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:107
#: ../fuse/guestmount.pod:292 ../tools/virt-edit.pl:523
#: ../tools/virt-win-reg.pl:611 ../tools/virt-list-filesystems.pl:215
#: ../tools/virt-tar.pl:314 ../tools/virt-make-fs.pl:577
# type: textblock
#. type: textblock
-#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:112
+#: ../fish/guestfish.pod:1191 ../test-tool/libguestfs-test-tool.pod:112
#: ../fuse/guestmount.pod:297 ../tools/virt-edit.pl:528
#: ../tools/virt-win-reg.pl:616 ../tools/virt-list-filesystems.pl:220
#: ../tools/virt-tar.pl:319 ../tools/virt-make-fs.pl:582
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.9.18\n"
+"Project-Id-Version: libguestfs 1.11.0\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2011-04-09 18:35+0200\n"
+"POT-Creation-Date: 2011-04-12 20:14+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1088 ../src/guestfs.pod:1092 ../src/guestfs.pod:1096 ../src/guestfs.pod:1101 ../src/guestfs.pod:1109 ../src/guestfs.pod:1128 ../src/guestfs.pod:1136 ../src/guestfs.pod:1158 ../src/guestfs.pod:1162 ../src/guestfs.pod:1166 ../src/guestfs.pod:1170 ../src/guestfs.pod:1174 ../src/guestfs.pod:1178 ../src/guestfs.pod:1660 ../src/guestfs.pod:1665 ../src/guestfs.pod:1669 ../src/guestfs.pod:1770 ../src/guestfs.pod:1775 ../src/guestfs.pod:1779 ../src/guestfs.pod:1789 ../src/guestfs.pod:2023 ../src/guestfs.pod:2028 ../src/guestfs.pod:2034 ../src/guestfs.pod:2042 ../src/guestfs.pod:2396 ../src/guestfs.pod:2402 ../src/guestfs.pod:2407 ../src/guestfs.pod:2413 ../src/guestfs.pod:2878 ../src/guestfs.pod:2882 ../src/guestfs.pod:2886 ../src/guestfs.pod:2890 ../src/guestfs-actions.pod:15 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:577 ../src/guestfs-actions.pod:585 ../src/guestfs-actions.pod:592 ../src/guestfs-actions.pod:599 ../src/guestfs-actions.pod:1600 ../src/guestfs-actions.pod:1604 ../src/guestfs-actions.pod:1608 ../src/guestfs-actions.pod:1612 ../src/guestfs-actions.pod:1620 ../src/guestfs-actions.pod:1624 ../src/guestfs-actions.pod:1628 ../src/guestfs-actions.pod:1638 ../src/guestfs-actions.pod:1642 ../src/guestfs-actions.pod:1646 ../src/guestfs-actions.pod:1784 ../src/guestfs-actions.pod:1788 ../src/guestfs-actions.pod:1793 ../src/guestfs-actions.pod:1798 ../src/guestfs-actions.pod:1859 ../src/guestfs-actions.pod:1863 ../src/guestfs-actions.pod:1868 ../fish/guestfish.pod:443 ../fish/guestfish.pod:447 ../fish/guestfish.pod:451 ../fish/guestfish.pod:455 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:380 ../fish/guestfish-actions.pod:388 ../fish/guestfish-actions.pod:395 ../fish/guestfish-actions.pod:402 ../fish/guestfish-actions.pod:1072 ../fish/guestfish-actions.pod:1076 ../fish/guestfish-actions.pod:1080 ../fish/guestfish-actions.pod:1084 ../fish/guestfish-actions.pod:1092 ../fish/guestfish-actions.pod:1096 ../fish/guestfish-actions.pod:1100 ../fish/guestfish-actions.pod:1110 ../fish/guestfish-actions.pod:1114 ../fish/guestfish-actions.pod:1118 ../fish/guestfish-actions.pod:1208 ../fish/guestfish-actions.pod:1212 ../fish/guestfish-actions.pod:1217 ../fish/guestfish-actions.pod:1222 ../fish/guestfish-actions.pod:1264 ../fish/guestfish-actions.pod:1268 ../fish/guestfish-actions.pod:1273 ../tools/virt-edit.pl:351 ../tools/virt-edit.pl:356 ../tools/virt-edit.pl:361 ../tools/virt-edit.pl:372 ../tools/virt-edit.pl:376 ../tools/virt-win-reg.pl:536 ../tools/virt-win-reg.pl:542 ../tools/virt-win-reg.pl:548
+#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1087 ../src/guestfs.pod:1091 ../src/guestfs.pod:1095 ../src/guestfs.pod:1100 ../src/guestfs.pod:1108 ../src/guestfs.pod:1127 ../src/guestfs.pod:1135 ../src/guestfs.pod:1157 ../src/guestfs.pod:1161 ../src/guestfs.pod:1165 ../src/guestfs.pod:1169 ../src/guestfs.pod:1173 ../src/guestfs.pod:1177 ../src/guestfs.pod:1659 ../src/guestfs.pod:1664 ../src/guestfs.pod:1668 ../src/guestfs.pod:1769 ../src/guestfs.pod:1774 ../src/guestfs.pod:1778 ../src/guestfs.pod:1788 ../src/guestfs.pod:2022 ../src/guestfs.pod:2027 ../src/guestfs.pod:2033 ../src/guestfs.pod:2041 ../src/guestfs.pod:2395 ../src/guestfs.pod:2401 ../src/guestfs.pod:2406 ../src/guestfs.pod:2412 ../src/guestfs.pod:2877 ../src/guestfs.pod:2881 ../src/guestfs.pod:2885 ../src/guestfs.pod:2889 ../src/guestfs-actions.pod:15 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:577 ../src/guestfs-actions.pod:585 ../src/guestfs-actions.pod:592 ../src/guestfs-actions.pod:599 ../src/guestfs-actions.pod:1600 ../src/guestfs-actions.pod:1604 ../src/guestfs-actions.pod:1608 ../src/guestfs-actions.pod:1612 ../src/guestfs-actions.pod:1620 ../src/guestfs-actions.pod:1624 ../src/guestfs-actions.pod:1628 ../src/guestfs-actions.pod:1638 ../src/guestfs-actions.pod:1642 ../src/guestfs-actions.pod:1646 ../src/guestfs-actions.pod:1784 ../src/guestfs-actions.pod:1788 ../src/guestfs-actions.pod:1793 ../src/guestfs-actions.pod:1798 ../src/guestfs-actions.pod:1859 ../src/guestfs-actions.pod:1863 ../src/guestfs-actions.pod:1868 ../fish/guestfish.pod:443 ../fish/guestfish.pod:447 ../fish/guestfish.pod:451 ../fish/guestfish.pod:455 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:380 ../fish/guestfish-actions.pod:388 ../fish/guestfish-actions.pod:395 ../fish/guestfish-actions.pod:402 ../fish/guestfish-actions.pod:1072 ../fish/guestfish-actions.pod:1076 ../fish/guestfish-actions.pod:1080 ../fish/guestfish-actions.pod:1084 ../fish/guestfish-actions.pod:1092 ../fish/guestfish-actions.pod:1096 ../fish/guestfish-actions.pod:1100 ../fish/guestfish-actions.pod:1110 ../fish/guestfish-actions.pod:1114 ../fish/guestfish-actions.pod:1118 ../fish/guestfish-actions.pod:1208 ../fish/guestfish-actions.pod:1212 ../fish/guestfish-actions.pod:1217 ../fish/guestfish-actions.pod:1222 ../fish/guestfish-actions.pod:1264 ../fish/guestfish-actions.pod:1268 ../fish/guestfish-actions.pod:1273 ../tools/virt-edit.pl:351 ../tools/virt-edit.pl:356 ../tools/virt-edit.pl:361 ../tools/virt-edit.pl:372 ../tools/virt-edit.pl:376 ../tools/virt-win-reg.pl:536 ../tools/virt-win-reg.pl:542 ../tools/virt-win-reg.pl:548
msgid "*"
msgstr ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:469 ../src/guestfs.pod:1281 ../src/guestfs.pod:1412 ../src/guestfs.pod:2441
+#: ../src/guestfs.pod:469 ../src/guestfs.pod:1280 ../src/guestfs.pod:1411 ../src/guestfs.pod:2440
msgid "1."
msgstr ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:475 ../src/guestfs.pod:1285 ../src/guestfs.pod:1416 ../src/guestfs.pod:2466
+#: ../src/guestfs.pod:475 ../src/guestfs.pod:1284 ../src/guestfs.pod:1415 ../src/guestfs.pod:2465
msgid "2."
msgstr ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:486 ../src/guestfs.pod:1422
+#: ../src/guestfs.pod:486 ../src/guestfs.pod:1421
msgid "3."
msgstr ""
#. type: textblock
#: ../src/guestfs.pod:644
msgid ""
-"Drive letter mappings are outside the scope of libguestfs. You have to use "
-"libguestfs to read the appropriate Windows Registry and configuration files, "
-"to determine yourself how drives are mapped (see also L<hivex(3)> and "
-"L<virt-inspector(1)>)."
+"Drive letter mappings can be found using inspection (see L</INSPECTION> and "
+"L</guestfs_inspect_get_drive_mappings>)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:649
+#: ../src/guestfs.pod:647
msgid ""
-"Replacing backslash characters with forward slash characters is also outside "
-"the scope of libguestfs, but something that you can easily do."
+"Dealing with separator characters (backslash vs forward slash) is outside "
+"the scope of libguestfs, but usually a simple character replacement will "
+"work."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:652
+#: ../src/guestfs.pod:651
msgid ""
-"Where we can help is in resolving the case insensitivity of paths. For "
-"this, call L</guestfs_case_sensitive_path>."
+"To resolve the case insensitivity of paths, call "
+"L</guestfs_case_sensitive_path>."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:655
+#: ../src/guestfs.pod:654
msgid "ACCESSING THE WINDOWS REGISTRY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:657
+#: ../src/guestfs.pod:656
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:664
msgid "SYMLINKS ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:667
+#: ../src/guestfs.pod:666
msgid ""
"Ntfs-3g tries to rewrite \"Junction Points\" and NTFS \"symbolic links\" to "
"provide something which looks like a Linux symlink. The way it tries to do "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:671
+#: ../src/guestfs.pod:670
msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:673
+#: ../src/guestfs.pod:672
msgid ""
"The essential problem is that ntfs-3g simply does not have enough "
"information to do a correct job. NTFS links can contain drive letters and "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:680
+#: ../src/guestfs.pod:679
msgid ""
"Instead if you encounter a symbolic link on an ntfs-3g filesystem, use "
"L</guestfs_lgetxattr> to read the C<system.ntfs_reparse_data> extended "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:685
+#: ../src/guestfs.pod:684
msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:687
+#: ../src/guestfs.pod:686
msgid ""
"There are other useful extended attributes that can be read from ntfs-3g "
"filesystems (using L</guestfs_getxattr>). See:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:690
+#: ../src/guestfs.pod:689
msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:691
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:694
+#: ../src/guestfs.pod:693
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:697
+#: ../src/guestfs.pod:696
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_add_drive_ro(g,file)> is C<$g-E<gt>add_drive_ro($file)> "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:703
+#: ../src/guestfs.pod:702
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:706
+#: ../src/guestfs.pod:705
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:712
+#: ../src/guestfs.pod:711
msgid "B<C++>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:714
+#: ../src/guestfs.pod:713
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:718
+#: ../src/guestfs.pod:717
msgid "B<C#>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:719
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:723
+#: ../src/guestfs.pod:722
msgid "B<Haskell>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:725
+#: ../src/guestfs.pod:724
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:729
+#: ../src/guestfs.pod:728
msgid "B<Java>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:731
+#: ../src/guestfs.pod:730
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:733
msgid "B<OCaml>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:736
+#: ../src/guestfs.pod:735
msgid "See L<guestfs-ocaml(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:738
+#: ../src/guestfs.pod:737
msgid "B<Perl>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:740
+#: ../src/guestfs.pod:739
msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:742
+#: ../src/guestfs.pod:741
msgid "B<PHP>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:744
+#: ../src/guestfs.pod:743
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:747
+#: ../src/guestfs.pod:746
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:749
+#: ../src/guestfs.pod:748
msgid "B<Python>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:751
+#: ../src/guestfs.pod:750
msgid "See L<guestfs-python(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:753
+#: ../src/guestfs.pod:752
msgid "B<Ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:755
+#: ../src/guestfs.pod:754
msgid "See L<guestfs-ruby(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:757
+#: ../src/guestfs.pod:756
msgid "B<shell scripts>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:759
+#: ../src/guestfs.pod:758
msgid "See L<guestfish(1)>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:762
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:765
+#: ../src/guestfs.pod:764
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:769
+#: ../src/guestfs.pod:768
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:777
+#: ../src/guestfs.pod:776
msgid "Autosync / forgetting to sync."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:779
+#: ../src/guestfs.pod:778
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:783
+#: ../src/guestfs.pod:782
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:785
+#: ../src/guestfs.pod:784
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:789
+#: ../src/guestfs.pod:788
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:793
+#: ../src/guestfs.pod:792
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:797
+#: ../src/guestfs.pod:796
msgid ""
"Update: Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:800
+#: ../src/guestfs.pod:799
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:802
+#: ../src/guestfs.pod:801
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:806
+#: ../src/guestfs.pod:805
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:809
+#: ../src/guestfs.pod:808
msgid "Read-only should be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:811
+#: ../src/guestfs.pod:810
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:814
+#: ../src/guestfs.pod:813
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:816
+#: ../src/guestfs.pod:815
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:820
+#: ../src/guestfs.pod:819
msgid "guestfish command line is hard to use."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:822
+#: ../src/guestfs.pod:821
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:829
+#: ../src/guestfs.pod:828
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:831
+#: ../src/guestfs.pod:830
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:838
+#: ../src/guestfs.pod:837
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:839
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:841
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:847
+#: ../src/guestfs.pod:846
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:850
+#: ../src/guestfs.pod:849
msgid "Ambiguity between devices and paths"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:852
+#: ../src/guestfs.pod:851
msgid ""
"There is a subtle ambiguity in the API between a device name "
"(eg. C</dev/sdb2>) and a similar pathname. A file might just happen to be "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:856
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:862
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:869
+#: ../src/guestfs.pod:868
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:871
+#: ../src/guestfs.pod:870
msgid "which would allow you to pass arguments like:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:873
+#: ../src/guestfs.pod:872
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:878
+#: ../src/guestfs.pod:877
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:882
msgid "PROTOCOL LIMITS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:884
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:893
+#: ../src/guestfs.pod:892
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:899
+#: ../src/guestfs.pod:898
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:903
+#: ../src/guestfs.pod:902
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:906
+#: ../src/guestfs.pod:905
msgid "KEYS AND PASSPHRASES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:908
+#: ../src/guestfs.pod:907
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:911
+#: ../src/guestfs.pod:910
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:916
+#: ../src/guestfs.pod:915
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:921
+#: ../src/guestfs.pod:920
msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:922
msgid ""
"All high-level libguestfs actions are synchronous. If you want to use "
"libguestfs asynchronously then you must create a thread."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:926
+#: ../src/guestfs.pod:925
msgid ""
"Only use the handle from a single thread. Either use the handle exclusively "
"from one thread, or provide your own mutex so that two threads cannot issue "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:930
+#: ../src/guestfs.pod:929
msgid ""
"See the graphical program guestfs-browser for one possible architecture for "
"multithreaded programs using libvirt and libguestfs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:933
+#: ../src/guestfs.pod:932
msgid "PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:935
+#: ../src/guestfs.pod:934
msgid ""
"Libguestfs needs a supermin appliance, which it finds by looking along an "
"internal path."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:938
+#: ../src/guestfs.pod:937
msgid ""
"By default it looks for these in the directory C<$libdir/guestfs> "
"(eg. C</usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:941
+#: ../src/guestfs.pod:940
msgid ""
"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
"to change the directories that libguestfs will search in. The value is a "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:948
+#: ../src/guestfs.pod:947
msgid "QEMU WRAPPERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:950
+#: ../src/guestfs.pod:949
msgid ""
"If you want to compile your own qemu, run qemu from a non-standard location, "
"or pass extra arguments to qemu, then you can write a shell-script wrapper "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:954
+#: ../src/guestfs.pod:953
msgid ""
"There is one important rule to remember: you I<must C<exec qemu>> as the "
"last command in the shell script (so that qemu replaces the shell and "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:959
+#: ../src/guestfs.pod:958
msgid ""
"Here is an example of a wrapper, where I have built my own copy of qemu from "
"source:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:962
+#: ../src/guestfs.pod:961
#, no-wrap
msgid ""
" #!/bin/sh -\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:966
+#: ../src/guestfs.pod:965
msgid ""
"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:970
+#: ../src/guestfs.pod:969
#, no-wrap
msgid ""
" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:971
msgid ""
"Note that libguestfs also calls qemu with the -help and -version options in "
"order to determine features."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:975
+#: ../src/guestfs.pod:974
msgid "ATTACHING TO RUNNING DAEMONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:977
+#: ../src/guestfs.pod:976
msgid ""
"I<Note (1):> This is B<highly experimental> and has a tendency to eat "
"babies. Use with caution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:980
+#: ../src/guestfs.pod:979
msgid ""
"I<Note (2):> This section explains how to attach to a running daemon from a "
"low level perspective. For most users, simply using virt tools such as "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:984
+#: ../src/guestfs.pod:983
msgid "Using guestfs_set_attach_method"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:986
+#: ../src/guestfs.pod:985
msgid ""
"By calling L</guestfs_set_attach_method> you can change how the library "
"connects to the C<guestfsd> daemon in L</guestfs_launch> (read "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:990
+#: ../src/guestfs.pod:989
msgid ""
"The normal attach method is C<appliance>, where a small appliance is created "
"containing the daemon, and then the library connects to this."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:993
+#: ../src/guestfs.pod:992
msgid ""
"Setting attach method to C<unix:I<path>> (where I<path> is the path of a "
"Unix domain socket) causes L</guestfs_launch> to connect to an existing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:997
+#: ../src/guestfs.pod:996
msgid ""
"The normal use for this is to connect to a running virtual machine that "
"contains a C<guestfsd> daemon, and send commands so you can read and write "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1001
+#: ../src/guestfs.pod:1000
msgid "Using guestfs_add_domain with live flag"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1003
+#: ../src/guestfs.pod:1002
msgid ""
"L</guestfs_add_domain> provides some help for getting the correct attach "
"method. If you pass the C<live> option to this function, then (if the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1009
+#: ../src/guestfs.pod:1008
#, no-wrap
msgid ""
" <domain>\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1020
msgid ""
"L</guestfs_add_domain> extracts C</path/to/socket> and sets the attach "
"method to C<unix:/path/to/socket>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1024
+#: ../src/guestfs.pod:1023
msgid ""
"Some of the libguestfs tools (including guestfish) support a I<--live> "
"option which is passed through to L</guestfs_add_domain> thus allowing you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1028
+#: ../src/guestfs.pod:1027
msgid ""
"The virtual machine needs to have been set up beforehand so that it has the "
"virtio-serial channel and so that guestfsd is running inside it."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1032
+#: ../src/guestfs.pod:1031
msgid "ABI GUARANTEE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1033
msgid ""
"We guarantee the libguestfs ABI (binary interface), for public, high-level "
"actions as outlined in this section. Although we will deprecate some "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1040
+#: ../src/guestfs.pod:1039
msgid "BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1042
+#: ../src/guestfs.pod:1041
msgid ""
"In the kernel there is now quite a profusion of schemata for naming block "
"devices (in this context, by I<block device> I mean a physical or virtual "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1054
+#: ../src/guestfs.pod:1053
msgid ""
"As discussed above, libguestfs uses a qemu appliance running an embedded "
"Linux kernel to access block devices. We can run a variety of appliances "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1057
msgid ""
"This causes a problem for libguestfs because many API calls use device or "
"partition names. Working scripts and the recipe (example) scripts that we "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1063
+#: ../src/guestfs.pod:1062
msgid ""
"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
"Internally C</dev/sd*> names are translated, if necessary, to other names as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1069
+#: ../src/guestfs.pod:1068
msgid ""
"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
"L</guestfs_list_partitions> and similar calls return the true names of the "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1074
+#: ../src/guestfs.pod:1073
msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1076
+#: ../src/guestfs.pod:1075
msgid ""
"Usually this translation is transparent. However in some (very rare) cases "
"you may need to know the exact algorithm. Such cases include where you use "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1082
+#: ../src/guestfs.pod:1081
msgid ""
"The algorithm is applied only to I<parameters> which are known to be either "
"device or partition names. Return values from functions such as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1090
+#: ../src/guestfs.pod:1089
msgid "Is the string a parameter which is a device or partition name?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1094
+#: ../src/guestfs.pod:1093
msgid "Does the string begin with C</dev/sd>?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1098
+#: ../src/guestfs.pod:1097
msgid ""
"Does the named device exist? If so, we use that device. However if I<not> "
"then we continue with this algorithm."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1103
+#: ../src/guestfs.pod:1102
msgid "Replace initial C</dev/sd> string with C</dev/hd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1105
+#: ../src/guestfs.pod:1104
msgid "For example, change C</dev/sda2> to C</dev/hda2>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1107
+#: ../src/guestfs.pod:1106
msgid "If that named device exists, use it. If not, continue."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1111
+#: ../src/guestfs.pod:1110
msgid "Replace initial C</dev/sd> string with C</dev/vd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1113
+#: ../src/guestfs.pod:1112
msgid "If that named device exists, use it. If not, return an error."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1117
+#: ../src/guestfs.pod:1116
msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1119
+#: ../src/guestfs.pod:1118
msgid ""
"Although the standard naming scheme and automatic translation is useful for "
"simple programs and guestfish scripts, for larger programs it is best not to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1123
+#: ../src/guestfs.pod:1122
msgid ""
"Where possible for maximum future portability programs using libguestfs "
"should use these future-proof techniques:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1130
+#: ../src/guestfs.pod:1129
msgid ""
"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
"device names, and then use those names directly."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1133
+#: ../src/guestfs.pod:1132
msgid "Since those device names exist by definition, they will never be translated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1138
+#: ../src/guestfs.pod:1137
msgid ""
"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
"filesystem labels."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1143
+#: ../src/guestfs.pod:1142
msgid "SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1145
+#: ../src/guestfs.pod:1144
msgid ""
"This section discusses security implications of using libguestfs, "
"particularly with untrusted or malicious guests or disk images."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1148
+#: ../src/guestfs.pod:1147
msgid "GENERAL SECURITY CONSIDERATIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1150
+#: ../src/guestfs.pod:1149
msgid ""
"Be careful with any files or data that you download from a guest (by "
"\"download\" we mean not just the L</guestfs_download> command but any "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1160
+#: ../src/guestfs.pod:1159
msgid "the data (file etc) not being present"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1164
+#: ../src/guestfs.pod:1163
msgid "being present but empty"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1168
+#: ../src/guestfs.pod:1167
msgid "being much larger than normal"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1172
+#: ../src/guestfs.pod:1171
msgid "containing arbitrary 8 bit data"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1176
+#: ../src/guestfs.pod:1175
msgid "being in an unexpected character encoding"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1180
+#: ../src/guestfs.pod:1179
msgid "containing homoglyphs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1184
+#: ../src/guestfs.pod:1183
msgid "SECURITY OF MOUNTING FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1186
+#: ../src/guestfs.pod:1185
msgid ""
"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
"(VFS) module can sometimes be escalated into exploits by deliberately "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1199
+#: ../src/guestfs.pod:1198
msgid ""
"That explains why you should never mount a filesystem from an untrusted "
"guest on your host kernel. How about libguestfs? We run a Linux kernel "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1210
+#: ../src/guestfs.pod:1209
msgid ""
"In any case callers can reduce the attack surface by forcing the filesystem "
"type when mounting (use L</guestfs_mount_vfs>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1213
+#: ../src/guestfs.pod:1212
msgid "PROTOCOL SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1215
+#: ../src/guestfs.pod:1214
msgid ""
"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
"defined upper message size. However a program that uses libguestfs must "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1221
+#: ../src/guestfs.pod:1220
msgid "INSPECTION SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1223
+#: ../src/guestfs.pod:1222
msgid ""
"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
"directly from the guest, and these could contain any 8 bit data. Callers "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1229
+#: ../src/guestfs.pod:1228
msgid ""
"Guest configuration may be altered in unusual ways by the administrator of "
"the virtual machine, and may not reflect reality (particularly for untrusted "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1237
+#: ../src/guestfs.pod:1236
msgid ""
"The inspection API parses guest configuration using two external libraries: "
"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1243
+#: ../src/guestfs.pod:1242
msgid "RUNNING UNTRUSTED GUEST COMMANDS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1245
+#: ../src/guestfs.pod:1244
msgid ""
"Be very cautious about running commands from the guest. By running a "
"command in the guest, you are giving CPU time to a binary that you do not "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1251
+#: ../src/guestfs.pod:1250
msgid "CVE-2010-3851"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1253
+#: ../src/guestfs.pod:1252
msgid "https://bugzilla.redhat.com/642934"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1255
+#: ../src/guestfs.pod:1254
msgid ""
"This security bug concerns the automatic disk format detection that qemu "
"does on disk images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1258
+#: ../src/guestfs.pod:1257
msgid ""
"A raw disk image is just the raw bytes, there is no header. Other disk "
"images like qcow2 contain a special header. Qemu deals with this by looking "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1263
+#: ../src/guestfs.pod:1262
msgid ""
"This allows a guest which has been given a raw disk image to write some "
"other header. At next boot (or when the disk image is accessed by "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1268
+#: ../src/guestfs.pod:1267
msgid ""
"This in itself would not be a problem, but qcow2 offers many features, one "
"of which is to allow a disk image to refer to another image (called the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1276
+#: ../src/guestfs.pod:1275
msgid "In libguestfs this is rather hard to exploit except under two circumstances:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1283
+#: ../src/guestfs.pod:1282
msgid "You have enabled the network or have opened the disk in write mode."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1287
+#: ../src/guestfs.pod:1286
msgid ""
"You are also running untrusted code from the guest (see L</RUNNING "
"COMMANDS>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1292
+#: ../src/guestfs.pod:1291
msgid ""
"The way to avoid this is to specify the expected disk format when adding "
"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1297
+#: ../src/guestfs.pod:1296
msgid ""
"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
"format is fetched from libvirt and passed through."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1300
+#: ../src/guestfs.pod:1299
msgid ""
"For libguestfs tools, use the I<--format> command line parameter as "
"appropriate."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1303
+#: ../src/guestfs.pod:1302
msgid "CONNECTION MANAGEMENT"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1305
+#: ../src/guestfs.pod:1304
msgid "guestfs_h *"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1307
+#: ../src/guestfs.pod:1306
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1311
+#: ../src/guestfs.pod:1310
msgid ""
"For information on using multiple handles and threads, see the section "
"L</MULTIPLE HANDLES AND MULTIPLE THREADS> below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1314
+#: ../src/guestfs.pod:1313
msgid "guestfs_create"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1316
+#: ../src/guestfs.pod:1315
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1317
msgid "Create a connection handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1320
+#: ../src/guestfs.pod:1319
msgid ""
"You have to call L</guestfs_add_drive_opts> (or one of the equivalent calls) "
"on the handle at least once."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1323
+#: ../src/guestfs.pod:1322
msgid ""
"This function returns a non-NULL pointer to a handle on success or NULL on "
"error."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1326
+#: ../src/guestfs.pod:1325
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1328
+#: ../src/guestfs.pod:1327
msgid ""
"You may also want to configure error handling for the handle. See L</ERROR "
"HANDLING> section below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1331
+#: ../src/guestfs.pod:1330
msgid "guestfs_close"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1333
+#: ../src/guestfs.pod:1332
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1335
+#: ../src/guestfs.pod:1334
msgid "This closes the connection handle and frees up all resources used."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1337
+#: ../src/guestfs.pod:1336
msgid "ERROR HANDLING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1339
+#: ../src/guestfs.pod:1338
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1341
msgid ""
"Additional information is available for errors: an error message string and "
"optionally an error number (errno) if the thing that failed was a system "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1346
+#: ../src/guestfs.pod:1345
msgid ""
"You can get at the additional information about the last error on the handle "
"by calling L</guestfs_last_error>, L</guestfs_last_errno>, and/or by setting "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1351
+#: ../src/guestfs.pod:1350
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1355
+#: ../src/guestfs.pod:1354
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1358
+#: ../src/guestfs.pod:1357
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1361
+#: ../src/guestfs.pod:1360
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1364
+#: ../src/guestfs.pod:1363
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1366
+#: ../src/guestfs.pod:1365
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1370
+#: ../src/guestfs.pod:1369
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1378
+#: ../src/guestfs.pod:1377
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1382
+#: ../src/guestfs.pod:1381
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1388
+#: ../src/guestfs.pod:1387
msgid "guestfs_last_error"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1390
+#: ../src/guestfs.pod:1389
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1392
+#: ../src/guestfs.pod:1391
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1396
+#: ../src/guestfs.pod:1395
msgid ""
"The lifetime of the returned string is until the next error occurs, or "
"L</guestfs_close> is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1399
+#: ../src/guestfs.pod:1398
msgid "guestfs_last_errno"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1401
+#: ../src/guestfs.pod:1400
#, no-wrap
msgid ""
" int guestfs_last_errno (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1403
+#: ../src/guestfs.pod:1402
msgid "This returns the last error number (errno) that happened on C<g>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1405
+#: ../src/guestfs.pod:1404
msgid "If successful, an errno integer not equal to zero is returned."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1406
msgid "If no error, this returns 0. This call can return 0 in three situations:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1414
+#: ../src/guestfs.pod:1413
msgid "There has not been any error on the handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1418
+#: ../src/guestfs.pod:1417
msgid ""
"There has been an error but the errno was meaningless. This corresponds to "
"the case where the error did not come from a failed system call, but for "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1424
+#: ../src/guestfs.pod:1423
msgid ""
"There was an error from a failed system call, but for some reason the errno "
"was not captured and returned. This usually indicates a bug in libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1430
+#: ../src/guestfs.pod:1429
msgid ""
"Libguestfs tries to convert the errno from inside the applicance into a "
"corresponding errno for the caller (not entirely trivial: the appliance "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1437
msgid "guestfs_set_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1440
+#: ../src/guestfs.pod:1439
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1447
+#: ../src/guestfs.pod:1446
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1451
+#: ../src/guestfs.pod:1450
msgid ""
"C<errno> is not passed to the callback. To get that the callback must call "
"L</guestfs_last_errno>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1454
+#: ../src/guestfs.pod:1453
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1458
+#: ../src/guestfs.pod:1457
msgid "The default handler prints messages on C<stderr>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1460
+#: ../src/guestfs.pod:1459
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1462
+#: ../src/guestfs.pod:1461
msgid "guestfs_get_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1464
+#: ../src/guestfs.pod:1463
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1467
+#: ../src/guestfs.pod:1466
msgid "Returns the current error handler callback."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1469
+#: ../src/guestfs.pod:1468
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1471
+#: ../src/guestfs.pod:1470
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1475
+#: ../src/guestfs.pod:1474
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1478
+#: ../src/guestfs.pod:1477
msgid "The default is to call L<abort(3)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1480
+#: ../src/guestfs.pod:1479
msgid "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1483
+#: ../src/guestfs.pod:1482
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1485
+#: ../src/guestfs.pod:1484
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1487
+#: ../src/guestfs.pod:1486
msgid "This returns the current out of memory handler."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1489
+#: ../src/guestfs.pod:1488
msgid "API CALLS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1491 ../fish/guestfish.pod:1003
+#: ../src/guestfs.pod:1490 ../fish/guestfish.pod:1008
msgid "@ACTIONS@"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1493
+#: ../src/guestfs.pod:1492
msgid "STRUCTURES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1495
+#: ../src/guestfs.pod:1494
msgid "@STRUCTS@"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1497
+#: ../src/guestfs.pod:1496
msgid "AVAILABILITY"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1499
+#: ../src/guestfs.pod:1498
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1501
+#: ../src/guestfs.pod:1500
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1506
+#: ../src/guestfs.pod:1505
msgid "@AVAILABILITY@"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1508
+#: ../src/guestfs.pod:1507
msgid "GUESTFISH supported COMMAND"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1510
+#: ../src/guestfs.pod:1509
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1515
+#: ../src/guestfs.pod:1514
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1517
+#: ../src/guestfs.pod:1516
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1520
+#: ../src/guestfs.pod:1519
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1522
+#: ../src/guestfs.pod:1521
msgid "if L</guestfs_dd> is available."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1524
+#: ../src/guestfs.pod:1523
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1529
+#: ../src/guestfs.pod:1528
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1531
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1535
+#: ../src/guestfs.pod:1534
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1537
+#: ../src/guestfs.pod:1536
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1544
+#: ../src/guestfs.pod:1543
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1548
+#: ../src/guestfs.pod:1547
#, no-wrap
msgid ""
" #include <stdio.h>\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1554
+#: ../src/guestfs.pod:1553
#, no-wrap
msgid ""
" main ()\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1560
+#: ../src/guestfs.pod:1559
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1569
+#: ../src/guestfs.pod:1568
#, no-wrap
msgid ""
" if (!has_function)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1582
+#: ../src/guestfs.pod:1581
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1587
+#: ../src/guestfs.pod:1586
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1589
+#: ../src/guestfs.pod:1588
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1590
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1596
+#: ../src/guestfs.pod:1595
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1598
+#: ../src/guestfs.pod:1597
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1601
+#: ../src/guestfs.pod:1600
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1603
+#: ../src/guestfs.pod:1602
msgid "With a single optional argument:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1605
+#: ../src/guestfs.pod:1604
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1609
+#: ../src/guestfs.pod:1608
msgid "With two:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1611
+#: ../src/guestfs.pod:1610
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1616
+#: ../src/guestfs.pod:1615
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1619
+#: ../src/guestfs.pod:1618
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1621
+#: ../src/guestfs.pod:1620
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1625
+#: ../src/guestfs.pod:1624
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1628
+#: ../src/guestfs.pod:1627
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1630
+#: ../src/guestfs.pod:1629
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1636
+#: ../src/guestfs.pod:1635
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1645
+#: ../src/guestfs.pod:1644
msgid "You could call it like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1647
+#: ../src/guestfs.pod:1646
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1654
+#: ../src/guestfs.pod:1653
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1656 ../src/guestfs-actions.pod:11 ../src/guestfs-actions.pod:1855 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1260 ../tools/virt-win-reg.pl:532
+#: ../src/guestfs.pod:1655 ../src/guestfs-actions.pod:11 ../src/guestfs-actions.pod:1855 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1260 ../tools/virt-win-reg.pl:532
msgid "Notes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1662
+#: ../src/guestfs.pod:1661
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1667
+#: ../src/guestfs.pod:1666
msgid "You do not need to fill in all fields of the structure."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1671
+#: ../src/guestfs.pod:1670
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1676
+#: ../src/guestfs.pod:1675
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1678
+#: ../src/guestfs.pod:1677
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1682
+#: ../src/guestfs.pod:1681
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1684
+#: ../src/guestfs.pod:1683
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1686
+#: ../src/guestfs.pod:1685
msgid ""
"B<Note:> This section documents the generic event mechanism introduced in "
"libguestfs 1.10, which you should use in new code if possible. The old "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1694
+#: ../src/guestfs.pod:1693
msgid ""
"Handles generate events when certain things happen, such as log messages "
"being generated, progress messages during long-running operations, or the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1702
+#: ../src/guestfs.pod:1701
msgid ""
"In the current implementation, events are only generated synchronously: that "
"means that events (and hence callbacks) can only happen while you are in the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1707
+#: ../src/guestfs.pod:1706
msgid ""
"Events may contain a payload, usually nothing (void), an array of 64 bit "
"unsigned integers, or a message buffer. Payloads are discussed later on."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1710
msgid "CLASSES OF EVENTS"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1715
+#: ../src/guestfs.pod:1714
msgid "GUESTFS_EVENT_CLOSE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1718
+#: ../src/guestfs.pod:1717
msgid ""
"The callback function will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1721
+#: ../src/guestfs.pod:1720
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1728
+#: ../src/guestfs.pod:1727
msgid ""
"If no callback is registered: the handle is closed without any callback "
"being invoked."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1731
+#: ../src/guestfs.pod:1730
msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1734
+#: ../src/guestfs.pod:1733
msgid ""
"The callback function will be called when the child process quits, either "
"asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1738 ../src/guestfs.pod:1747
+#: ../src/guestfs.pod:1737 ../src/guestfs.pod:1746
msgid "If no callback is registered: the event is ignored."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1740
+#: ../src/guestfs.pod:1739
msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1743
+#: ../src/guestfs.pod:1742
msgid ""
"The callback function will be called when the child process becomes ready "
"first time after it has been launched. (This corresponds to a transition "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1749
+#: ../src/guestfs.pod:1748
msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1752
+#: ../src/guestfs.pod:1751
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1758
+#: ../src/guestfs.pod:1757
msgid ""
"The callback receives in the payload four unsigned 64 bit numbers which are "
"(in order): C<proc_nr>, C<serial>, C<position>, C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1761
+#: ../src/guestfs.pod:1760
msgid ""
"The units of C<total> are not defined, although for some operations C<total> "
"may relate in some way to the amount of data to be transferred (eg. in bytes "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1766
+#: ../src/guestfs.pod:1765
msgid "The only defined and stable parts of the API are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1771
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1777
+#: ../src/guestfs.pod:1776
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1781
+#: ../src/guestfs.pod:1780
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total> (I<unless> the call "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1785
+#: ../src/guestfs.pod:1784
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1791
+#: ../src/guestfs.pod:1790
msgid ""
"For some calls we are unable to estimate the progress of the call, but we "
"can still generate progress messages to indicate activity. This is known as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1796
+#: ../src/guestfs.pod:1795
msgid ""
"For these calls, zero or more progress messages are generated with "
"C<position = 0> and C<total = 1>, followed by a final message with "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1800
+#: ../src/guestfs.pod:1799
msgid ""
"As noted above, if the call fails with an error then the final message may "
"not be generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1805
+#: ../src/guestfs.pod:1804
msgid ""
"The callback also receives the procedure number (C<proc_nr>) and serial "
"number (C<serial>) of the call. These are only useful for debugging "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1811
+#: ../src/guestfs.pod:1810
msgid "If no callback is registered: progress messages are discarded."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1813
+#: ../src/guestfs.pod:1812
msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1816
+#: ../src/guestfs.pod:1815
msgid ""
"The callback function is called whenever a log message is generated by qemu, "
"the appliance kernel, guestfsd (daemon), or utility programs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1818
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set before launch "
"(L</guestfs_launch>) then additional debug messages are generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1822 ../src/guestfs.pod:1836
+#: ../src/guestfs.pod:1821 ../src/guestfs.pod:1835
msgid ""
"If no callback is registered: the messages are discarded unless the verbose "
"flag is set in which case they are sent to stderr. You can override the "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1827
+#: ../src/guestfs.pod:1826
msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1830
+#: ../src/guestfs.pod:1829
msgid ""
"The callback function is called whenever a log message is generated by the "
"library part of libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1833
+#: ../src/guestfs.pod:1832
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set then additional debug "
"messages are generated."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1841
+#: ../src/guestfs.pod:1840
msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1844
+#: ../src/guestfs.pod:1843
msgid ""
"The callback function is called whenever a trace message is generated. This "
"only applies if the trace flag (L</guestfs_set_trace>) is set."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1847
+#: ../src/guestfs.pod:1846
msgid ""
"If no callback is registered: the messages are sent to stderr. You can "
"override the printing of trace messages to stderr by setting up a callback."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1853
+#: ../src/guestfs.pod:1852
msgid "guestfs_set_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1855
+#: ../src/guestfs.pod:1854
#, no-wrap
msgid ""
" int guestfs_set_event_callback (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1861
+#: ../src/guestfs.pod:1860
msgid ""
"This function registers a callback (C<cb>) for all event classes in the "
"C<event_bitmask>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1864
+#: ../src/guestfs.pod:1863
msgid ""
"For example, to register for all log message events, you could call this "
"function with the bitmask C<GUESTFS_EVENT_APPLIANCE|GUESTFS_EVENT_LIBRARY>. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1870
+#: ../src/guestfs.pod:1869
msgid "C<flags> should always be passed as 0."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1872
+#: ../src/guestfs.pod:1871
msgid ""
"C<opaque> is an opaque pointer which is passed to the callback. You can use "
"it for any purpose."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1875
+#: ../src/guestfs.pod:1874
msgid ""
"The return value is the event handle (an integer) which you can use to "
"delete the callback (see below)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1878
+#: ../src/guestfs.pod:1877
msgid ""
"If there is an error, this function returns C<-1>, and sets the error in the "
"handle in the usual way (see L</guestfs_last_error> etc.)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1881
+#: ../src/guestfs.pod:1880
msgid ""
"Callbacks remain in effect until they are deleted, or until the handle is "
"closed."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1884
+#: ../src/guestfs.pod:1883
msgid ""
"In the case where multiple callbacks are registered for a particular event "
"class, all of the callbacks are called. The order in which multiple "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1888
+#: ../src/guestfs.pod:1887
msgid "guestfs_delete_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1890
+#: ../src/guestfs.pod:1889
#, no-wrap
msgid ""
" void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1892
+#: ../src/guestfs.pod:1891
msgid ""
"Delete a callback that was previously registered. C<event_handle> should be "
"the integer that was returned by a previous call to "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1896
+#: ../src/guestfs.pod:1895
msgid "guestfs_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1898
+#: ../src/guestfs.pod:1897
#, no-wrap
msgid ""
" typedef void (*guestfs_event_callback) (\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1907
+#: ../src/guestfs.pod:1906
msgid "This is the type of the event callback function that you have to provide."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1910
+#: ../src/guestfs.pod:1909
msgid ""
"The basic parameters are: the handle (C<g>), the opaque user pointer "
"(C<opaque>), the event class (eg. C<GUESTFS_EVENT_PROGRESS>), the event "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1914
+#: ../src/guestfs.pod:1913
msgid ""
"The remaining parameters contain the event payload (if any). Each event may "
"contain a payload, which usually relates to the event class, but for future "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1919
+#: ../src/guestfs.pod:1918
msgid ""
"C<buf> and C<buf_len> contain a message buffer (if C<buf_len == 0>, then "
"there is no message buffer). Note that this message buffer can contain "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1923
+#: ../src/guestfs.pod:1922
msgid ""
"C<array> and C<array_len> is an array of 64 bit unsigned integers. At the "
"moment this is only used for progress messages."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1926
+#: ../src/guestfs.pod:1925
msgid "EXAMPLE: CAPTURING LOG MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1928
+#: ../src/guestfs.pod:1927
msgid ""
"One motivation for the generic event API was to allow GUI programs to "
"capture debug and other messages. In libguestfs E<le> 1.8 these were sent "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1932
+#: ../src/guestfs.pod:1931
msgid ""
"Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, "
"C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1937
+#: ../src/guestfs.pod:1936
msgid ""
"Programs have to set up a callback to capture the classes of events of "
"interest:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1940
+#: ../src/guestfs.pod:1939
#, no-wrap
msgid ""
" int eh =\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1950
+#: ../src/guestfs.pod:1949
msgid ""
"The callback can then direct messages to the appropriate place. In this "
"example, messages are directed to syslog:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1953
+#: ../src/guestfs.pod:1952
#, no-wrap
msgid ""
" static void\n"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1968
+#: ../src/guestfs.pod:1967
msgid "PRIVATE DATA AREA"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1970
+#: ../src/guestfs.pod:1969
msgid ""
"You can attach named pieces of private data to the libguestfs handle, fetch "
"them by name, and walk over them, for the lifetime of the handle. This is "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1975
+#: ../src/guestfs.pod:1974
msgid "To attach a named piece of data, use the following call:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1977
+#: ../src/guestfs.pod:1976
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1979
+#: ../src/guestfs.pod:1978
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same name is "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1983
+#: ../src/guestfs.pod:1982
msgid ""
"You can use any C<key> you want, but names beginning with an underscore "
"character are reserved for internal libguestfs purposes (for implementing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1988
+#: ../src/guestfs.pod:1987
msgid "To retrieve the pointer, use:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1990
+#: ../src/guestfs.pod:1989
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1992
+#: ../src/guestfs.pod:1991
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1996
+#: ../src/guestfs.pod:1995
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2003
+#: ../src/guestfs.pod:2002
msgid "To walk over all entries, use these two functions:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2005
+#: ../src/guestfs.pod:2004
#, no-wrap
msgid ""
" void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2007
+#: ../src/guestfs.pod:2006
#, no-wrap
msgid ""
" void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2009
+#: ../src/guestfs.pod:2008
msgid ""
"C<guestfs_first_private> returns the first key, pointer pair (\"first\" does "
"not have any particular meaning -- keys are not returned in any defined "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2015
+#: ../src/guestfs.pod:2014
msgid ""
"C<guestfs_next_private> returns the next key, pointer pair. The return "
"value of this function is also C<NULL> is there are no further entries to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2019
+#: ../src/guestfs.pod:2018
msgid "Notes about walking over entries:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2025
+#: ../src/guestfs.pod:2024
msgid "You must not call C<guestfs_set_private> while walking over the entries."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2030
+#: ../src/guestfs.pod:2029
msgid ""
"The handle maintains an internal iterator which is reset when you call "
"C<guestfs_first_private>. This internal iterator is invalidated when you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2036
+#: ../src/guestfs.pod:2035
msgid "If you have set the data pointer associated with a key to C<NULL>, ie:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2038
+#: ../src/guestfs.pod:2037
#, no-wrap
msgid ""
" guestfs_set_private (g, key, NULL);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2040
+#: ../src/guestfs.pod:2039
msgid "then that C<key> is not returned when walking."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2044
+#: ../src/guestfs.pod:2043
msgid ""
"C<*key_rtn> is only valid until the next call to C<guestfs_first_private>, "
"C<guestfs_next_private> or C<guestfs_set_private>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2050
+#: ../src/guestfs.pod:2049
msgid ""
"The following example code shows how to print all keys and data pointers "
"that are associated with the handle C<g>:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2053
+#: ../src/guestfs.pod:2052
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2061
+#: ../src/guestfs.pod:2060
msgid ""
"More commonly you are only interested in keys that begin with an "
"application-specific prefix C<foo_>. Modify the loop like so:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2064
+#: ../src/guestfs.pod:2063
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2073
+#: ../src/guestfs.pod:2072
msgid ""
"If you need to modify keys while walking, then you have to jump back to the "
"beginning of the loop. For example, to delete all keys prefixed with "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2077
+#: ../src/guestfs.pod:2076
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2093
+#: ../src/guestfs.pod:2092
msgid ""
"Note that the above loop is guaranteed to terminate because the keys are "
"being deleted, but other manipulations of keys within the loop might not "
msgstr ""
#. type: =end
-#: ../src/guestfs.pod:2098 ../src/guestfs.pod:2103
+#: ../src/guestfs.pod:2097 ../src/guestfs.pod:2102
msgid "html"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2100
+#: ../src/guestfs.pod:2099
msgid ""
"<!-- old anchor for the next section --> <a "
"name=\"state_machine_and_low_level_event_api\"/>"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2105
+#: ../src/guestfs.pod:2104
msgid "ARCHITECTURE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2107
+#: ../src/guestfs.pod:2106
msgid ""
"Internally, libguestfs is implemented by running an appliance (a special "
"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2111
+#: ../src/guestfs.pod:2110
#, no-wrap
msgid ""
" ___________________\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2131
+#: ../src/guestfs.pod:2130
msgid ""
"The library, linked to the main program, creates the child process and hence "
"the appliance in the L</guestfs_launch> function."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2134
+#: ../src/guestfs.pod:2133
msgid ""
"Inside the appliance is a Linux kernel and a complete stack of userspace "
"tools (such as LVM and ext2 programs) and a small controlling daemon called "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2143
+#: ../src/guestfs.pod:2142
msgid ""
"A common misunderstanding is that the appliance \"is\" the virtual machine. "
"Although the disk image you are attached to might also be used by some "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2150
+#: ../src/guestfs.pod:2149
msgid "STATE MACHINE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2152
+#: ../src/guestfs.pod:2151
msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2154
+#: ../src/guestfs.pod:2153
#, no-wrap
msgid ""
" |\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2176
+#: ../src/guestfs.pod:2175
msgid ""
"The normal transitions are (1) CONFIG (when the handle is created, but there "
"is no child process), (2) LAUNCHING (when the child process is booting up), "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2181
+#: ../src/guestfs.pod:2180
msgid ""
"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
"asynchronously at any time (eg. due to some internal error), and that causes "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2185
+#: ../src/guestfs.pod:2184
msgid ""
"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
"issued when in the CONFIG state."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2188
+#: ../src/guestfs.pod:2187
msgid ""
"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
"L</guestfs_launch> blocks until the child process is READY to accept "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2194
+#: ../src/guestfs.pod:2193
msgid ""
"API actions such as L</guestfs_mount> can only be issued when in the READY "
"state. These API calls block waiting for the command to be carried out "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2200
+#: ../src/guestfs.pod:2199
msgid ""
"Finally, the child process sends asynchronous messages back to the main "
"program, such as kernel log messages. You can register a callback to "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2204
+#: ../src/guestfs.pod:2203
msgid "INTERNALS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2206
+#: ../src/guestfs.pod:2205
msgid "COMMUNICATION PROTOCOL"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2208
+#: ../src/guestfs.pod:2207
msgid ""
"Don't rely on using this protocol directly. This section documents how it "
"currently works, but it may change at any time."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2211
+#: ../src/guestfs.pod:2210
msgid ""
"The protocol used to talk between the library and the daemon running inside "
"the qemu virtual machine is a simple RPC mechanism built on top of XDR (RFC "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2215
+#: ../src/guestfs.pod:2214
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2218
+#: ../src/guestfs.pod:2217
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2225
+#: ../src/guestfs.pod:2224
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2227
+#: ../src/guestfs.pod:2226
msgid "For ordinary functions, the request message is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2229
+#: ../src/guestfs.pod:2228
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2234
+#: ../src/guestfs.pod:2233
msgid ""
"The total length field allows the daemon to allocate a fixed size buffer "
"into which it slurps the rest of the message. As a result, the total length "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2240
+#: ../src/guestfs.pod:2239
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2243
+#: ../src/guestfs.pod:2242
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2247
+#: ../src/guestfs.pod:2246
msgid ""
"For functions that take optional arguments, the optional arguments are "
"encoded in the C<guestfs_I<foo>_args> structure in the same way as ordinary "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2255
+#: ../src/guestfs.pod:2254
msgid "The reply message for ordinary functions is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2257
+#: ../src/guestfs.pod:2256
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2262
+#: ../src/guestfs.pod:2261
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2265
+#: ../src/guestfs.pod:2264
msgid "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2268
+#: ../src/guestfs.pod:2267
msgid ""
"In the case of an error, a flag is set in the header, and the reply message "
"is slightly changed:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2271
+#: ../src/guestfs.pod:2270
#, no-wrap
msgid ""
" total length (header + error,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2276
+#: ../src/guestfs.pod:2275
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2279
+#: ../src/guestfs.pod:2278
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2281
+#: ../src/guestfs.pod:2280
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2285
+#: ../src/guestfs.pod:2284
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2293
+#: ../src/guestfs.pod:2292
msgid "The \"sequence of chunks\" is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2295
+#: ../src/guestfs.pod:2294
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2303
+#: ../src/guestfs.pod:2302
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2307
+#: ../src/guestfs.pod:2306
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2312
+#: ../src/guestfs.pod:2311
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2318
+#: ../src/guestfs.pod:2317
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2327
+#: ../src/guestfs.pod:2326
msgid ""
"This protocol allows the transfer of arbitrary sized files (no 32 bit "
"limit), and also files where the size is not known in advance (eg. from "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2333
+#: ../src/guestfs.pod:2332
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2335
+#: ../src/guestfs.pod:2334
msgid ""
"The protocol for FileOut parameters is exactly the same as for FileIn "
"parameters, but with the roles of daemon and library reversed."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2338
+#: ../src/guestfs.pod:2337
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2346
+#: ../src/guestfs.pod:2345
msgid "INITIAL MESSAGE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2348
+#: ../src/guestfs.pod:2347
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
"which indicates that the guest and daemon is alive. This is what "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2352
+#: ../src/guestfs.pod:2351
msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2354
+#: ../src/guestfs.pod:2353
msgid ""
"The daemon may send progress notification messages at any time. These are "
"distinguished by the normal length word being replaced by "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2358
+#: ../src/guestfs.pod:2357
msgid ""
"The library turns them into progress callbacks (see "
"L</GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2362
+#: ../src/guestfs.pod:2361
msgid ""
"The daemon self-limits the frequency of progress messages it sends (see "
"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2366
+#: ../src/guestfs.pod:2365
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2368
+#: ../src/guestfs.pod:2367
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2373
+#: ../src/guestfs.pod:2372
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2384
+#: ../src/guestfs.pod:2383
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2386
+#: ../src/guestfs.pod:2385
msgid ""
"As time passes we cherry pick fixes from the development branch and backport "
"those into the stable branch, the effect being that the stable branch should "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2392
+#: ../src/guestfs.pod:2391
msgid "Our criteria for backporting changes are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2398
+#: ../src/guestfs.pod:2397
msgid ""
"Documentation changes which don't affect any code are backported unless the "
"documentation refers to a future feature which is not in stable."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2404
+#: ../src/guestfs.pod:2403
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2409
+#: ../src/guestfs.pod:2408
msgid ""
"Simple rearrangements of code which shouldn't affect how it works get "
"backported. This is so that the code in the two branches doesn't get too "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2415
+#: ../src/guestfs.pod:2414
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2421
+#: ../src/guestfs.pod:2420
msgid ""
"A new stable branch starts when we think the new features in development are "
"substantial and compelling enough over the current stable branch to warrant "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2429
+#: ../src/guestfs.pod:2428
msgid "EXTENDING LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2431
+#: ../src/guestfs.pod:2430
msgid "ADDING A NEW API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2433
+#: ../src/guestfs.pod:2432
msgid ""
"Large amounts of boilerplate code in libguestfs (RPC, bindings, "
"documentation) are generated, and this makes it easy to extend the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2437
+#: ../src/guestfs.pod:2436
msgid "To add a new API action there are two changes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2443
+#: ../src/guestfs.pod:2442
msgid ""
"You need to add a description of the call (name, parameters, return type, "
"tests, documentation) to C<generator/generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2446
+#: ../src/guestfs.pod:2445
msgid ""
"There are two sorts of API action, depending on whether the call goes "
"through to the daemon in the appliance, or is serviced entirely by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2454
+#: ../src/guestfs.pod:2453
msgid ""
"Most new actions are of the first type, and get added to the "
"C<daemon_functions> list. Each function has a unique procedure number used "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2460
+#: ../src/guestfs.pod:2459
msgid ""
"For library-only actions of the second type, add to the "
"C<non_daemon_functions> list. Since these functions are serviced by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2468
+#: ../src/guestfs.pod:2467
msgid "Implement the action (in C):"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2470
+#: ../src/guestfs.pod:2469
msgid ""
"For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the "
"C<daemon/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2473
+#: ../src/guestfs.pod:2472
msgid ""
"For library actions, implement the function C<guestfs__E<lt>nameE<gt>> "
"(note: double underscore) in the C<src/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2476
+#: ../src/guestfs.pod:2475
msgid "In either case, use another function as an example of what to do."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2480
+#: ../src/guestfs.pod:2479
msgid "After making these changes, use C<make> to compile."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2482
+#: ../src/guestfs.pod:2481
msgid ""
"Note that you don't need to implement the RPC, language bindings, manual "
"pages or anything else. It's all automatically generated from the OCaml "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2486
+#: ../src/guestfs.pod:2485
msgid "ADDING TESTS FOR AN API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2488
+#: ../src/guestfs.pod:2487
msgid ""
"You can supply zero or as many tests as you want per API call. The tests "
"can either be added as part of the API description "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2494
+#: ../src/guestfs.pod:2493
msgid ""
"The following describes the test environment used when you add an API test "
"in C<generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2497
+#: ../src/guestfs.pod:2496
msgid "The test environment has 4 block devices:"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2501
+#: ../src/guestfs.pod:2500
msgid "C</dev/sda> 500MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2503
+#: ../src/guestfs.pod:2502
msgid "General block device for testing."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2505
+#: ../src/guestfs.pod:2504
msgid "C</dev/sdb> 50MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2507
+#: ../src/guestfs.pod:2506
msgid ""
"C</dev/sdb1> is an ext2 filesystem used for testing filesystem write "
"operations."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2510
+#: ../src/guestfs.pod:2509
msgid "C</dev/sdc> 10MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2512
+#: ../src/guestfs.pod:2511
msgid "Used in a few tests where two block devices are needed."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2514
+#: ../src/guestfs.pod:2513
msgid "C</dev/sdd>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2516
+#: ../src/guestfs.pod:2515
msgid "ISO with fixed content (see C<images/test.iso>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2520
+#: ../src/guestfs.pod:2519
msgid ""
"To be able to run the tests in a reasonable amount of time, the libguestfs "
"appliance and block devices are reused between tests. So don't try testing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2524
+#: ../src/guestfs.pod:2523
msgid ""
"Each test starts with an initial scenario, selected using one of the "
"C<Init*> expressions, described in C<generator/generator_types.ml>. These "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2530
+#: ../src/guestfs.pod:2529
msgid ""
"You can add a prerequisite clause to any individual test. This is a "
"run-time check, which, if it fails, causes the test to be skipped. Useful "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2536
+#: ../src/guestfs.pod:2535
msgid ""
"In addition, packagers can skip individual tests by setting environment "
"variables before running C<make check>."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2539
+#: ../src/guestfs.pod:2538
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>_<NUM>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2541
+#: ../src/guestfs.pod:2540
msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2543
+#: ../src/guestfs.pod:2542
msgid "or:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2545
+#: ../src/guestfs.pod:2544
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2547
+#: ../src/guestfs.pod:2546
msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2549
+#: ../src/guestfs.pod:2548
msgid "Packagers can run only certain tests by setting for example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2551
+#: ../src/guestfs.pod:2550
#, no-wrap
msgid ""
" TEST_ONLY=\"vfs_type zerofree\"\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2553
+#: ../src/guestfs.pod:2552
msgid ""
"See C<capitests/tests.c> for more details of how these environment variables "
"work."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2556
+#: ../src/guestfs.pod:2555
msgid "DEBUGGING NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2558
+#: ../src/guestfs.pod:2557
msgid "Test new actions work before submitting them."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2560
+#: ../src/guestfs.pod:2559
msgid "You can use guestfish to try out new commands."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2562
+#: ../src/guestfs.pod:2561
msgid ""
"Debugging the daemon is a problem because it runs inside a minimal "
"environment. However you can fprintf messages in the daemon to stderr, and "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2566
+#: ../src/guestfs.pod:2565
msgid "FORMATTING CODE AND OTHER CONVENTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2568
+#: ../src/guestfs.pod:2567
msgid ""
"Our C source code generally adheres to some basic code-formatting "
"conventions. The existing code base is not totally consistent on this "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2574
+#: ../src/guestfs.pod:2573
msgid ""
"If you use Emacs, add the following to one of one of your start-up files "
"(e.g., ~/.emacs), to help ensure that you get indentation right:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2577
+#: ../src/guestfs.pod:2576
#, no-wrap
msgid ""
" ;;; In libguestfs, indent with spaces everywhere (not TABs).\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2587
+#: ../src/guestfs.pod:2586
#, no-wrap
msgid ""
" ;;; When editing C sources in libguestfs, use this style.\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2599
+#: ../src/guestfs.pod:2598
msgid "Enable warnings when compiling (and fix any problems this finds):"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2602
+#: ../src/guestfs.pod:2601
#, no-wrap
msgid ""
" ./configure --enable-gcc-warnings\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2604
+#: ../src/guestfs.pod:2603
msgid "Useful targets are:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2606
+#: ../src/guestfs.pod:2605
#, no-wrap
msgid ""
" make syntax-check # checks the syntax of the C code\n"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2609
+#: ../src/guestfs.pod:2608
msgid "DAEMON CUSTOM PRINTF FORMATTERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2611
+#: ../src/guestfs.pod:2610
msgid ""
"In the daemon code we have created custom printf formatters C<%Q> and C<%R>, "
"which are used to do shell quoting."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2616
+#: ../src/guestfs.pod:2615
msgid "%Q"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2618
+#: ../src/guestfs.pod:2617
msgid ""
"Simple shell quoted string. Any spaces or other shell characters are "
"escaped for you."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2621
+#: ../src/guestfs.pod:2620
msgid "%R"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2623
+#: ../src/guestfs.pod:2622
msgid ""
"Same as C<%Q> except the string is treated as a path which is prefixed by "
"the sysroot."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2628 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
+#: ../src/guestfs.pod:2627 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
msgid "For example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2630
+#: ../src/guestfs.pod:2629
#, no-wrap
msgid ""
" asprintf (&cmd, \"cat %R\", path);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2632
+#: ../src/guestfs.pod:2631
msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2634
+#: ../src/guestfs.pod:2633
msgid ""
"I<Note:> Do I<not> use these when you are passing parameters to the "
"C<command{,r,v,rv}()> functions. These parameters do NOT need to be quoted "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2640
+#: ../src/guestfs.pod:2639
msgid "SUBMITTING YOUR NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2642
+#: ../src/guestfs.pod:2641
msgid ""
"Submit patches to the mailing list: "
"L<http://www.redhat.com/mailman/listinfo/libguestfs> and CC to "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2646
+#: ../src/guestfs.pod:2645
msgid "INTERNATIONALIZATION (I18N) SUPPORT"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2648
+#: ../src/guestfs.pod:2647
msgid "We support i18n (gettext anyhow) in the library."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2650
+#: ../src/guestfs.pod:2649
msgid ""
"However many messages come from the daemon, and we don't translate those at "
"the moment. One reason is that the appliance generally has all locale files "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2656
+#: ../src/guestfs.pod:2655
msgid ""
"Debugging messages are never translated, since they are intended for the "
"programmers."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2659
+#: ../src/guestfs.pod:2658
msgid "SOURCE CODE SUBDIRECTORIES"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2663 ../src/guestfs-actions.pod:5806 ../fish/guestfish-actions.pod:3900
+#: ../src/guestfs.pod:2662 ../src/guestfs-actions.pod:5806 ../fish/guestfish-actions.pod:3900
msgid "C<appliance>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2665
+#: ../src/guestfs.pod:2664
msgid "The libguestfs appliance, build scripts and so on."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2667
+#: ../src/guestfs.pod:2666
msgid "C<capitests>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2669
+#: ../src/guestfs.pod:2668
msgid "Automated tests of the C API."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2671
+#: ../src/guestfs.pod:2670
msgid "C<cat>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2673
+#: ../src/guestfs.pod:2672
msgid ""
"The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and "
"documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2676
+#: ../src/guestfs.pod:2675
msgid "C<contrib>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2678
+#: ../src/guestfs.pod:2677
msgid "Outside contributions, experimental parts."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2680
+#: ../src/guestfs.pod:2679
msgid "C<daemon>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2682
+#: ../src/guestfs.pod:2681
msgid ""
"The daemon that runs inside the libguestfs appliance and carries out "
"actions."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2685
+#: ../src/guestfs.pod:2684
msgid "C<df>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2687
+#: ../src/guestfs.pod:2686
msgid "L<virt-df(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2689
+#: ../src/guestfs.pod:2688
msgid "C<examples>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2691
+#: ../src/guestfs.pod:2690
msgid "C API example code."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2693
+#: ../src/guestfs.pod:2692
msgid "C<fish>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2695
+#: ../src/guestfs.pod:2694
msgid ""
"L<guestfish(1)>, the command-line shell, and various shell scripts built on "
"top such as L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-tar-in(1)>, "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2699
+#: ../src/guestfs.pod:2698
msgid "C<fuse>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2701
+#: ../src/guestfs.pod:2700
msgid "L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2703
+#: ../src/guestfs.pod:2702
msgid "C<generator>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2705
+#: ../src/guestfs.pod:2704
msgid ""
"The crucially important generator, used to automatically generate large "
"amounts of boilerplate C code for things like RPC and bindings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2708
+#: ../src/guestfs.pod:2707
msgid "C<images>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2710
+#: ../src/guestfs.pod:2709
msgid "Files used by the test suite."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2712
+#: ../src/guestfs.pod:2711
msgid "Some \"phony\" guest images which we test against."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2714
+#: ../src/guestfs.pod:2713
msgid "C<inspector>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2716
+#: ../src/guestfs.pod:2715
msgid "L<virt-inspector(1)>, the virtual machine image inspector."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2718
+#: ../src/guestfs.pod:2717
msgid "C<logo>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2720
+#: ../src/guestfs.pod:2719
msgid "Logo used on the website. The fish is called Arthur by the way."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2722
+#: ../src/guestfs.pod:2721
msgid "C<m4>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2724
+#: ../src/guestfs.pod:2723
msgid "M4 macros used by autoconf."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2726
+#: ../src/guestfs.pod:2725
msgid "C<po>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2728
+#: ../src/guestfs.pod:2727
msgid "Translations of simple gettext strings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2730
+#: ../src/guestfs.pod:2729
msgid "C<po-docs>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2732
+#: ../src/guestfs.pod:2731
msgid ""
"The build infrastructure and PO files for translations of manpages and POD "
"files. Eventually this will be combined with the C<po> directory, but that "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2736
+#: ../src/guestfs.pod:2735
msgid "C<regressions>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2738
+#: ../src/guestfs.pod:2737
msgid "Regression tests."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2740
+#: ../src/guestfs.pod:2739
msgid "C<rescue>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2742
+#: ../src/guestfs.pod:2741
msgid "L<virt-rescue(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2744
+#: ../src/guestfs.pod:2743
msgid "C<src>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2746
+#: ../src/guestfs.pod:2745
msgid "Source code to the C library."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2748
+#: ../src/guestfs.pod:2747
msgid "C<tools>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2750
+#: ../src/guestfs.pod:2749
msgid "Command line tools written in Perl (L<virt-resize(1)> and many others)."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2752
+#: ../src/guestfs.pod:2751
msgid "C<test-tool>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2754
+#: ../src/guestfs.pod:2753
msgid ""
"Test tool for end users to test if their qemu/kernel combination will work "
"with libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2757
+#: ../src/guestfs.pod:2756
msgid "C<csharp>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2759
+#: ../src/guestfs.pod:2758
msgid "C<haskell>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2761
+#: ../src/guestfs.pod:2760
msgid "C<java>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2763
+#: ../src/guestfs.pod:2762
msgid "C<ocaml>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2765
+#: ../src/guestfs.pod:2764
msgid "C<php>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2767
+#: ../src/guestfs.pod:2766
msgid "C<perl>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2769
+#: ../src/guestfs.pod:2768
msgid "C<python>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2771
+#: ../src/guestfs.pod:2770
msgid "C<ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2773
+#: ../src/guestfs.pod:2772
msgid "Language bindings."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2777 ../fish/guestfish.pod:1010 ../test-tool/libguestfs-test-tool.pod:82 ../tools/virt-edit.pl:476
+#: ../src/guestfs.pod:2776 ../fish/guestfish.pod:1015 ../test-tool/libguestfs-test-tool.pod:82 ../tools/virt-edit.pl:476
msgid "ENVIRONMENT VARIABLES"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2781 ../fish/guestfish.pod:1036
+#: ../src/guestfs.pod:2780 ../fish/guestfish.pod:1041
msgid "LIBGUESTFS_APPEND"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2783 ../fish/guestfish.pod:1038
+#: ../src/guestfs.pod:2782 ../fish/guestfish.pod:1043
msgid "Pass additional options to the guest kernel."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2785 ../fish/guestfish.pod:1040
+#: ../src/guestfs.pod:2784 ../fish/guestfish.pod:1045
msgid "LIBGUESTFS_DEBUG"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2787
+#: ../src/guestfs.pod:2786
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2790 ../fish/guestfish.pod:1045
+#: ../src/guestfs.pod:2789 ../fish/guestfish.pod:1050
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2792 ../fish/guestfish.pod:1047
+#: ../src/guestfs.pod:2791 ../fish/guestfish.pod:1052
msgid "Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2795 ../fish/guestfish.pod:1050
+#: ../src/guestfs.pod:2794 ../fish/guestfish.pod:1055
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2797 ../fish/guestfish.pod:1052
+#: ../src/guestfs.pod:2796 ../fish/guestfish.pod:1057
msgid "LIBGUESTFS_PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2799
+#: ../src/guestfs.pod:2798
msgid ""
"Set the path that libguestfs uses to search for a supermin appliance. See "
"the discussion of paths in section L</PATH> above."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2802 ../fish/guestfish.pod:1057
+#: ../src/guestfs.pod:2801 ../fish/guestfish.pod:1062
msgid "LIBGUESTFS_QEMU"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2804 ../fish/guestfish.pod:1059
+#: ../src/guestfs.pod:2803 ../fish/guestfish.pod:1064
msgid ""
"Set the default qemu binary that libguestfs uses. If not set, then the qemu "
"which was found at compile time by the configure script is used."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2808
+#: ../src/guestfs.pod:2807
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2810 ../fish/guestfish.pod:1063
+#: ../src/guestfs.pod:2809 ../fish/guestfish.pod:1068
msgid "LIBGUESTFS_TRACE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2812
+#: ../src/guestfs.pod:2811
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2815 ../fish/guestfish.pod:1072
+#: ../src/guestfs.pod:2814 ../fish/guestfish.pod:1077
msgid "TMPDIR"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2817 ../fish/guestfish.pod:1074
+#: ../src/guestfs.pod:2816 ../fish/guestfish.pod:1079
msgid ""
"Location of temporary directory, defaults to C</tmp> except for the cached "
"supermin appliance which defaults to C</var/tmp>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2820 ../fish/guestfish.pod:1077
+#: ../src/guestfs.pod:2819 ../fish/guestfish.pod:1082
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2828 ../fish/guestfish.pod:1144 ../test-tool/libguestfs-test-tool.pod:87 ../fuse/guestmount.pod:267 ../tools/virt-edit.pl:496 ../tools/virt-win-reg.pl:572 ../tools/virt-list-filesystems.pl:189 ../tools/virt-tar.pl:286 ../tools/virt-make-fs.pl:539 ../tools/virt-list-partitions.pl:257
+#: ../src/guestfs.pod:2827 ../fish/guestfish.pod:1149 ../test-tool/libguestfs-test-tool.pod:87 ../fuse/guestmount.pod:267 ../tools/virt-edit.pl:496 ../tools/virt-win-reg.pl:572 ../tools/virt-list-filesystems.pl:189 ../tools/virt-tar.pl:286 ../tools/virt-make-fs.pl:539 ../tools/virt-list-partitions.pl:257
msgid "SEE ALSO"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2830
+#: ../src/guestfs.pod:2829
msgid ""
"L<guestfs-examples(3)>, L<guestfs-ocaml(3)>, L<guestfs-python(3)>, "
"L<guestfs-ruby(3)>, L<guestfish(1)>, L<guestmount(1)>, L<virt-cat(1)>, "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2857
+#: ../src/guestfs.pod:2856
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, "
"L<lvm(8)>, L<disktype(1)>."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2864 ../tools/virt-win-reg.pl:587 ../tools/virt-make-fs.pl:553
+#: ../src/guestfs.pod:2863 ../tools/virt-win-reg.pl:587 ../tools/virt-make-fs.pl:553
msgid "BUGS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2866
+#: ../src/guestfs.pod:2865
msgid "To get a list of bugs against libguestfs use this link:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2868
+#: ../src/guestfs.pod:2867
msgid "L<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2870
+#: ../src/guestfs.pod:2869
msgid "To report a new bug against libguestfs use this link:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2872
+#: ../src/guestfs.pod:2871
msgid "L<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2874
+#: ../src/guestfs.pod:2873
msgid "When reporting a bug, please check:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2880
+#: ../src/guestfs.pod:2879
msgid "That the bug hasn't been reported already."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2884
+#: ../src/guestfs.pod:2883
msgid "That you are testing a recent version."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2888
+#: ../src/guestfs.pod:2887
msgid "Describe the bug accurately, and give a way to reproduce it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2892
+#: ../src/guestfs.pod:2891
msgid ""
"Run libguestfs-test-tool and paste the B<complete, unedited> output into the "
"bug report."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2897 ../fish/guestfish.pod:1167 ../test-tool/libguestfs-test-tool.pod:93 ../fuse/guestmount.pod:278
+#: ../src/guestfs.pod:2896 ../fish/guestfish.pod:1172 ../test-tool/libguestfs-test-tool.pod:93 ../fuse/guestmount.pod:278
msgid "AUTHORS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2899 ../fish/guestfish.pod:1169 ../test-tool/libguestfs-test-tool.pod:95 ../fuse/guestmount.pod:280
+#: ../src/guestfs.pod:2898 ../fish/guestfish.pod:1174 ../test-tool/libguestfs-test-tool.pod:95 ../fuse/guestmount.pod:280
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2901 ../fish/guestfish.pod:1171 ../test-tool/libguestfs-test-tool.pod:97 ../fuse/guestmount.pod:282 ../tools/virt-edit.pl:514 ../tools/virt-win-reg.pl:602 ../tools/virt-list-filesystems.pl:206 ../tools/virt-tar.pl:305 ../tools/virt-make-fs.pl:568 ../tools/virt-list-partitions.pl:273
+#: ../src/guestfs.pod:2900 ../fish/guestfish.pod:1176 ../test-tool/libguestfs-test-tool.pod:97 ../fuse/guestmount.pod:282 ../tools/virt-edit.pl:514 ../tools/virt-win-reg.pl:602 ../tools/virt-list-filesystems.pl:206 ../tools/virt-tar.pl:305 ../tools/virt-make-fs.pl:568 ../tools/virt-list-partitions.pl:273
msgid "COPYRIGHT"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2903 ../fish/guestfish.pod:1173 ../test-tool/libguestfs-test-tool.pod:99
+#: ../src/guestfs.pod:2902 ../fish/guestfish.pod:1178 ../test-tool/libguestfs-test-tool.pod:99
msgid "Copyright (C) 2009-2011 Red Hat Inc. L<http://libguestfs.org/>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2906
+#: ../src/guestfs.pod:2905
msgid ""
"This library is free software; you can redistribute it and/or modify it "
"under the terms of the GNU Lesser General Public License as published by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2911
+#: ../src/guestfs.pod:2910
msgid ""
"This library is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2916
+#: ../src/guestfs.pod:2915
msgid ""
"You should have received a copy of the GNU Lesser General Public License "
"along with this library; if not, write to the Free Software Foundation, "
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:942 ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:63 ../tools/virt-tar.pl:50
+#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:947 ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:63 ../tools/virt-tar.pl:50
msgid "EXAMPLES"
msgstr ""
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:933
+#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:938
#, no-wrap
msgid ""
" guestfish -N help | less\n"
#. type: textblock
#: ../fish/guestfish.pod:800
msgid ""
-"If a path is prefixed with C<win:> then you can use Windows-style paths "
-"(with some limitations). The following commands are equivalent:"
+"If a path is prefixed with C<win:> then you can use Windows-style drive "
+"letters and paths (with some limitations). The following commands are "
+"equivalent:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:803
+#: ../fish/guestfish.pod:804
#, no-wrap
msgid ""
" file /WINDOWS/system32/config/system.LOG\n"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:805
+#: ../fish/guestfish.pod:806
#, no-wrap
msgid ""
-" file win:/windows/system32/config/system.log\n"
+" file win:\\windows\\system32\\config\\system.log\n"
"\n"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:807
+#: ../fish/guestfish.pod:808
#, no-wrap
msgid ""
-" file win:\\windows\\system32\\config\\system.log\n"
+" file WIN:C:\\Windows\\SYSTEM32\\CONFIG\\SYSTEM.LOG\n"
"\n"
msgstr ""
+#. type: textblock
+#: ../fish/guestfish.pod:810
+msgid ""
+"The parameter is rewritten \"behind the scenes\" by looking up the position "
+"where the drive is mounted, prepending that to the path, changing all "
+"backslash characters to forward slash, then resolving the result using "
+"L</case-sensitive-path>. For example if the E: drive was mounted on C</e> "
+"then the parameter might be rewritten like this:"
+msgstr ""
+
#. type: verbatim
-#: ../fish/guestfish.pod:809
+#: ../fish/guestfish.pod:816
#, no-wrap
msgid ""
-" file WIN:C:\\Windows\\SYSTEM32\\conFIG\\SYSTEM.LOG\n"
+" win:e:\\foo\\bar => /e/FOO/bar\n"
"\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:811
-msgid ""
-"This syntax implicitly calls C<case-sensitive-path> (q.v.) so it also "
-"handles case insensitivity like Windows would. This only works in argument "
-"positions that expect a path."
+#: ../fish/guestfish.pod:818
+msgid "This only works in argument positions that expect a path."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:815
+#: ../fish/guestfish.pod:820
msgid "UPLOADING AND DOWNLOADING FILES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:817
+#: ../fish/guestfish.pod:822
msgid ""
"For commands such as C<upload>, C<download>, C<tar-in>, C<tar-out> and "
"others which upload from or download to a local file, you can use the "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:821
+#: ../fish/guestfish.pod:826
#, no-wrap
msgid ""
" upload - /foo\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:823
+#: ../fish/guestfish.pod:828
msgid "reads stdin and creates from that a file C</foo> in the disk image, and:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:826
+#: ../fish/guestfish.pod:831
#, no-wrap
msgid ""
" tar-out /etc - | tar tf -\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:828
+#: ../fish/guestfish.pod:833
msgid ""
"writes the tarball to stdout and then pipes that into the external \"tar\" "
"command (see L</PIPES>)."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:831
+#: ../fish/guestfish.pod:836
msgid ""
"When using C<-> to read from stdin, the input is read up to the end of "
"stdin. You can also use a special \"heredoc\"-like syntax to read up to "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:835
+#: ../fish/guestfish.pod:840
#, no-wrap
msgid ""
" upload -<<END /foo\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:841
+#: ../fish/guestfish.pod:846
msgid ""
"Any string of characters can be used instead of C<END>. The end marker must "
"appear on a line of its own, without any preceeding or following characters "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:845
+#: ../fish/guestfish.pod:850
msgid ""
"Note that the C<-E<lt>E<lt>> syntax only applies to parameters used to "
"upload local files (so-called \"FileIn\" parameters in the generator)."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:848
+#: ../fish/guestfish.pod:853
msgid "EXIT ON ERROR BEHAVIOUR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:850
+#: ../fish/guestfish.pod:855
msgid ""
"By default, guestfish will ignore any errors when in interactive mode "
"(ie. taking commands from a human over a tty), and will exit on the first "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:855
+#: ../fish/guestfish.pod:860
msgid ""
"If you prefix a command with a I<-> character, then that command will not "
"cause guestfish to exit, even if that (one) command returns an error."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:859
+#: ../fish/guestfish.pod:864
msgid "REMOTE CONTROL GUESTFISH OVER A SOCKET"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:861
+#: ../fish/guestfish.pod:866
msgid ""
"Guestfish can be remote-controlled over a socket. This is useful "
"particularly in shell scripts where you want to make several different "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:866
+#: ../fish/guestfish.pod:871
msgid "Start a guestfish server process using:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:868
+#: ../fish/guestfish.pod:873
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:870
+#: ../fish/guestfish.pod:875
msgid "and then send it commands by doing:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:872
+#: ../fish/guestfish.pod:877
#, no-wrap
msgid ""
" guestfish --remote cmd [...]\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:874
+#: ../fish/guestfish.pod:879
msgid "To cause the server to exit, send it the exit command:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:876
+#: ../fish/guestfish.pod:881
#, no-wrap
msgid ""
" guestfish --remote exit\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:878
+#: ../fish/guestfish.pod:883
msgid ""
"Note that the server will normally exit if there is an error in a command. "
"You can change this in the usual way. See section L</EXIT ON ERROR "
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:882
+#: ../fish/guestfish.pod:887
msgid "CONTROLLING MULTIPLE GUESTFISH PROCESSES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish.pod:889
msgid ""
"The C<eval> statement sets the environment variable C<$GUESTFISH_PID>, which "
"is how the I<--remote> option knows where to send the commands. You can "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:888
+#: ../fish/guestfish.pod:893
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:896
+#: ../fish/guestfish.pod:901
msgid "REMOTE CONTROL AND CSH"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:898
+#: ../fish/guestfish.pod:903
msgid ""
"When using csh-like shells (csh, tcsh etc) you have to add the I<--csh> "
"option:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:901
+#: ../fish/guestfish.pod:906
#, no-wrap
msgid ""
" eval \"`guestfish --listen --csh`\"\n"
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:903
+#: ../fish/guestfish.pod:908
msgid "REMOTE CONTROL DETAILS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:905
+#: ../fish/guestfish.pod:910
msgid ""
"Remote control happens over a Unix domain socket called "
"C</tmp/.guestfish-$UID/socket-$PID>, where C<$UID> is the effective user ID "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:909
+#: ../fish/guestfish.pod:914
msgid "Guestfish client and server versions must match exactly."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:916
msgid "PREPARED DISK IMAGES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:913
+#: ../fish/guestfish.pod:918
msgid ""
"Use the I<-N type> or I<--new type> parameter to select one of a set of "
"preformatted disk images that guestfish can make for you to save typing. "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:919
+#: ../fish/guestfish.pod:924
msgid ""
"The new disk is called C<test1.img> for the first I<-N>, C<test2.img> for "
"the second and so on. Existing files in the current directory are "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:923
+#: ../fish/guestfish.pod:928
msgid ""
"The type briefly describes how the disk should be sized, partitioned, how "
"filesystem(s) should be created, and how content should be added. "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:931
+#: ../fish/guestfish.pod:936
msgid "To list the available types and any extra parameters they take, run:"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:935
+#: ../fish/guestfish.pod:940
msgid ""
"Note that the prepared filesystem is not mounted. You would usually have to "
"use the C<mount /dev/sda1 /> command or add the I<-m /dev/sda1> option."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:939
+#: ../fish/guestfish.pod:944
msgid ""
"If any I<-N> or I<--new> options are given, the guest is automatically "
"launched."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:944
+#: ../fish/guestfish.pod:949
msgid "Create a 100MB disk with an ext4-formatted partition:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:946
+#: ../fish/guestfish.pod:951
#, no-wrap
msgid ""
" guestfish -N fs:ext4\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:948
+#: ../fish/guestfish.pod:953
msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:955
#, no-wrap
msgid ""
" guestfish -N fs:vfat:32M -m /dev/sda1\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:952
+#: ../fish/guestfish.pod:957
msgid "Create a blank 200MB disk:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:954
+#: ../fish/guestfish.pod:959
#, no-wrap
msgid ""
" guestfish -N disk:200M\n"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:956
+#: ../fish/guestfish.pod:961
msgid "PROGRESS BARS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:958
+#: ../fish/guestfish.pod:963
msgid ""
"Some (not all) long-running commands send progress notification messages as "
"they are running. Guestfish turns these messages into progress bars."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:962
+#: ../fish/guestfish.pod:967
msgid ""
"When a command that supports progress bars takes longer than two seconds to "
"run, and if progress bars are enabled, then you will see one appearing below "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:966
+#: ../fish/guestfish.pod:971
#, no-wrap
msgid ""
" ><fs> copy-size /large-file /another-file 2048M\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:969
+#: ../fish/guestfish.pod:974
msgid ""
"The spinner on the left hand side moves round once for every progress "
"notification received from the backend. This is a (reasonably) golden "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:976
+#: ../fish/guestfish.pod:981
msgid ""
"Progress bars are enabled by default when guestfish is used interactively. "
"You can enable them even for non-interactive modes using I<--progress-bars>, "
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:981
+#: ../fish/guestfish.pod:986
msgid "GUESTFISH COMMANDS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:983
+#: ../fish/guestfish.pod:988
msgid ""
"The commands in this section are guestfish convenience commands, in other "
"words, they are not part of the L<guestfs(3)> API."
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:986
+#: ../fish/guestfish.pod:991
msgid "help"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:988
+#: ../fish/guestfish.pod:993
#, no-wrap
msgid ""
" help\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:991
+#: ../fish/guestfish.pod:996
msgid "Without any parameter, this provides general help."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:993
+#: ../fish/guestfish.pod:998
msgid "With a C<cmd> parameter, this displays detailed help for that command."
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:995
+#: ../fish/guestfish.pod:1000
msgid "quit | exit"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:997
+#: ../fish/guestfish.pod:1002
msgid "This exits guestfish. You can also use C<^D> key."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:999
+#: ../fish/guestfish.pod:1004
msgid "@FISH_COMMANDS@"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1001
+#: ../fish/guestfish.pod:1006
msgid "COMMANDS"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1005 ../test-tool/libguestfs-test-tool.pod:77
+#: ../fish/guestfish.pod:1010 ../test-tool/libguestfs-test-tool.pod:77
msgid "EXIT CODE"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1007
+#: ../fish/guestfish.pod:1012
msgid ""
"guestfish returns 0 if the commands completed without error, or 1 if there "
"was an error."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1014
+#: ../fish/guestfish.pod:1019
msgid "EDITOR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1016
+#: ../fish/guestfish.pod:1021
msgid ""
"The C<edit> command uses C<$EDITOR> as the editor. If not set, it uses "
"C<vi>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1019
+#: ../fish/guestfish.pod:1024
msgid "GUESTFISH_PID"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1021
+#: ../fish/guestfish.pod:1026
msgid ""
"Used with the I<--remote> option to specify the remote guestfish process to "
"control. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1025
+#: ../fish/guestfish.pod:1030
msgid "HEXEDITOR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1027
+#: ../fish/guestfish.pod:1032
msgid ""
"The L</hexedit> command uses C<$HEXEDITOR> as the external hex editor. If "
"not specified, the external L<hexedit(1)> program is used."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1031
+#: ../fish/guestfish.pod:1036
msgid "HOME"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1033
+#: ../fish/guestfish.pod:1038
msgid ""
"If compiled with GNU readline support, various files in the home directory "
"can be used. See L</FILES>."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1042
+#: ../fish/guestfish.pod:1047
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as using the B<-v> option."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1054
+#: ../fish/guestfish.pod:1059
msgid ""
"Set the path that guestfish uses to search for kernel and initrd.img. See "
"the discussion of paths in L<guestfs(3)>."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1065
+#: ../fish/guestfish.pod:1070
msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1067
+#: ../fish/guestfish.pod:1072
msgid "PAGER"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1069
+#: ../fish/guestfish.pod:1074
msgid ""
"The C<more> command uses C<$PAGER> as the pager. If not set, it uses "
"C<more>."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1085 ../fuse/guestmount.pod:252
+#: ../fish/guestfish.pod:1090 ../fuse/guestmount.pod:252
msgid "FILES"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1089 ../fuse/guestmount.pod:256
+#: ../fish/guestfish.pod:1094 ../fuse/guestmount.pod:256
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1091 ../fuse/guestmount.pod:258
+#: ../fish/guestfish.pod:1096 ../fuse/guestmount.pod:258
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1093 ../fuse/guestmount.pod:260
+#: ../fish/guestfish.pod:1098 ../fuse/guestmount.pod:260
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1096
+#: ../fish/guestfish.pod:1101
msgid "See L</OPENING DISKS FOR READ AND WRITE>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1098
+#: ../fish/guestfish.pod:1103
msgid "$HOME/.guestfish"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1100
+#: ../fish/guestfish.pod:1105
msgid ""
"If compiled with GNU readline support, then the command history is saved in "
"this file."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1103
+#: ../fish/guestfish.pod:1108
msgid "$HOME/.inputrc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1105
+#: ../fish/guestfish.pod:1110
msgid "/etc/inputrc"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1107
+#: ../fish/guestfish.pod:1112
msgid ""
"If compiled with GNU readline support, then these files can be used to "
"configure readline. For further information, please see "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1111
+#: ../fish/guestfish.pod:1116
msgid "To write rules which only apply to guestfish, use:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:1113
+#: ../fish/guestfish.pod:1118
#, no-wrap
msgid ""
" $if guestfish\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1117
+#: ../fish/guestfish.pod:1122
msgid ""
"Variables that you can set in inputrc that change the behaviour of guestfish "
"in useful ways include:"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1122
+#: ../fish/guestfish.pod:1127
msgid "completion-ignore-case (default: on)"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1124
+#: ../fish/guestfish.pod:1129
msgid ""
"By default, guestfish will ignore case when tab-completing paths on the "
"disk. Use:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:1127
+#: ../fish/guestfish.pod:1132
#, no-wrap
msgid ""
" set completion-ignore-case off\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1129
+#: ../fish/guestfish.pod:1134
msgid "to make guestfish case sensitive."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1133
+#: ../fish/guestfish.pod:1138
msgid "test1.img"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1135
+#: ../fish/guestfish.pod:1140
msgid "test2.img (etc)"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1137
+#: ../fish/guestfish.pod:1142
msgid ""
"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
"will be created in the file C<test1.img> in the current directory. The "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1146
+#: ../fish/guestfish.pod:1151
msgid ""
"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, "
"L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-df(1)>, L<virt-edit(1)>, "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1176 ../test-tool/libguestfs-test-tool.pod:102 ../fuse/guestmount.pod:287 ../tools/virt-edit.pl:518 ../tools/virt-win-reg.pl:606 ../tools/virt-list-filesystems.pl:210 ../tools/virt-tar.pl:309 ../tools/virt-make-fs.pl:572 ../tools/virt-list-partitions.pl:277
+#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:102 ../fuse/guestmount.pod:287 ../tools/virt-edit.pl:518 ../tools/virt-win-reg.pl:606 ../tools/virt-list-filesystems.pl:210 ../tools/virt-tar.pl:309 ../tools/virt-make-fs.pl:572 ../tools/virt-list-partitions.pl:277
msgid ""
"This program is free software; you can redistribute it and/or modify it "
"under the terms of the GNU General Public License as published by the Free "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:107 ../fuse/guestmount.pod:292 ../tools/virt-edit.pl:523 ../tools/virt-win-reg.pl:611 ../tools/virt-list-filesystems.pl:215 ../tools/virt-tar.pl:314 ../tools/virt-make-fs.pl:577 ../tools/virt-list-partitions.pl:282
+#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:107 ../fuse/guestmount.pod:292 ../tools/virt-edit.pl:523 ../tools/virt-win-reg.pl:611 ../tools/virt-list-filesystems.pl:215 ../tools/virt-tar.pl:314 ../tools/virt-make-fs.pl:577 ../tools/virt-list-partitions.pl:282
msgid ""
"This program is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:112 ../fuse/guestmount.pod:297 ../tools/virt-edit.pl:528 ../tools/virt-win-reg.pl:616 ../tools/virt-list-filesystems.pl:220 ../tools/virt-tar.pl:319 ../tools/virt-make-fs.pl:582 ../tools/virt-list-partitions.pl:287
+#: ../fish/guestfish.pod:1191 ../test-tool/libguestfs-test-tool.pod:112 ../fuse/guestmount.pod:297 ../tools/virt-edit.pl:528 ../tools/virt-win-reg.pl:616 ../tools/virt-list-filesystems.pl:220 ../tools/virt-tar.pl:319 ../tools/virt-make-fs.pl:582 ../tools/virt-list-partitions.pl:287
msgid ""
"You should have received a copy of the GNU General Public License along with "
"this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2011-04-09 18:35+0200\n"
+"POT-Creation-Date: 2011-04-12 20:14+0200\n"
"PO-Revision-Date: 2011-04-01 15:39+0000\n"
"Last-Translator: yurchor <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
#. type: =item
#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398
#: ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411
-#: ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1088
-#: ../src/guestfs.pod:1092 ../src/guestfs.pod:1096 ../src/guestfs.pod:1101
-#: ../src/guestfs.pod:1109 ../src/guestfs.pod:1128 ../src/guestfs.pod:1136
-#: ../src/guestfs.pod:1158 ../src/guestfs.pod:1162 ../src/guestfs.pod:1166
-#: ../src/guestfs.pod:1170 ../src/guestfs.pod:1174 ../src/guestfs.pod:1178
-#: ../src/guestfs.pod:1660 ../src/guestfs.pod:1665 ../src/guestfs.pod:1669
-#: ../src/guestfs.pod:1770 ../src/guestfs.pod:1775 ../src/guestfs.pod:1779
-#: ../src/guestfs.pod:1789 ../src/guestfs.pod:2023 ../src/guestfs.pod:2028
-#: ../src/guestfs.pod:2034 ../src/guestfs.pod:2042 ../src/guestfs.pod:2396
-#: ../src/guestfs.pod:2402 ../src/guestfs.pod:2407 ../src/guestfs.pod:2413
-#: ../src/guestfs.pod:2878 ../src/guestfs.pod:2882 ../src/guestfs.pod:2886
-#: ../src/guestfs.pod:2890 ../src/guestfs-actions.pod:15
+#: ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1087
+#: ../src/guestfs.pod:1091 ../src/guestfs.pod:1095 ../src/guestfs.pod:1100
+#: ../src/guestfs.pod:1108 ../src/guestfs.pod:1127 ../src/guestfs.pod:1135
+#: ../src/guestfs.pod:1157 ../src/guestfs.pod:1161 ../src/guestfs.pod:1165
+#: ../src/guestfs.pod:1169 ../src/guestfs.pod:1173 ../src/guestfs.pod:1177
+#: ../src/guestfs.pod:1659 ../src/guestfs.pod:1664 ../src/guestfs.pod:1668
+#: ../src/guestfs.pod:1769 ../src/guestfs.pod:1774 ../src/guestfs.pod:1778
+#: ../src/guestfs.pod:1788 ../src/guestfs.pod:2022 ../src/guestfs.pod:2027
+#: ../src/guestfs.pod:2033 ../src/guestfs.pod:2041 ../src/guestfs.pod:2395
+#: ../src/guestfs.pod:2401 ../src/guestfs.pod:2406 ../src/guestfs.pod:2412
+#: ../src/guestfs.pod:2877 ../src/guestfs.pod:2881 ../src/guestfs.pod:2885
+#: ../src/guestfs.pod:2889 ../src/guestfs-actions.pod:15
#: ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:577
#: ../src/guestfs-actions.pod:585 ../src/guestfs-actions.pod:592
#: ../src/guestfs-actions.pod:599 ../src/guestfs-actions.pod:1600
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:469 ../src/guestfs.pod:1281 ../src/guestfs.pod:1412
-#: ../src/guestfs.pod:2441
+#: ../src/guestfs.pod:469 ../src/guestfs.pod:1280 ../src/guestfs.pod:1411
+#: ../src/guestfs.pod:2440
msgid "1."
msgstr ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:475 ../src/guestfs.pod:1285 ../src/guestfs.pod:1416
-#: ../src/guestfs.pod:2466
+#: ../src/guestfs.pod:475 ../src/guestfs.pod:1284 ../src/guestfs.pod:1415
+#: ../src/guestfs.pod:2465
msgid "2."
msgstr ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:486 ../src/guestfs.pod:1422
+#: ../src/guestfs.pod:486 ../src/guestfs.pod:1421
msgid "3."
msgstr ""
#. type: textblock
#: ../src/guestfs.pod:644
msgid ""
-"Drive letter mappings are outside the scope of libguestfs. You have to use "
-"libguestfs to read the appropriate Windows Registry and configuration files, "
-"to determine yourself how drives are mapped (see also L<hivex(3)> and L<virt-"
-"inspector(1)>)."
+"Drive letter mappings can be found using inspection (see L</INSPECTION> and "
+"L</guestfs_inspect_get_drive_mappings>)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:649
+#: ../src/guestfs.pod:647
msgid ""
-"Replacing backslash characters with forward slash characters is also outside "
-"the scope of libguestfs, but something that you can easily do."
+"Dealing with separator characters (backslash vs forward slash) is outside "
+"the scope of libguestfs, but usually a simple character replacement will "
+"work."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:652
+#: ../src/guestfs.pod:651
msgid ""
-"Where we can help is in resolving the case insensitivity of paths. For "
-"this, call L</guestfs_case_sensitive_path>."
+"To resolve the case insensitivity of paths, call L</"
+"guestfs_case_sensitive_path>."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:655
+#: ../src/guestfs.pod:654
msgid "ACCESSING THE WINDOWS REGISTRY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:657
+#: ../src/guestfs.pod:656
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:664
msgid "SYMLINKS ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:667
+#: ../src/guestfs.pod:666
msgid ""
"Ntfs-3g tries to rewrite \"Junction Points\" and NTFS \"symbolic links\" to "
"provide something which looks like a Linux symlink. The way it tries to do "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:671
+#: ../src/guestfs.pod:670
msgid ""
"L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-"
"symbolic-links/>"
"symbolic-links/>"
#. type: textblock
-#: ../src/guestfs.pod:673
+#: ../src/guestfs.pod:672
msgid ""
"The essential problem is that ntfs-3g simply does not have enough "
"information to do a correct job. NTFS links can contain drive letters and "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:680
+#: ../src/guestfs.pod:679
msgid ""
"Instead if you encounter a symbolic link on an ntfs-3g filesystem, use L</"
"guestfs_lgetxattr> to read the C<system.ntfs_reparse_data> extended "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:685
+#: ../src/guestfs.pod:684
msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:687
+#: ../src/guestfs.pod:686
msgid ""
"There are other useful extended attributes that can be read from ntfs-3g "
"filesystems (using L</guestfs_getxattr>). See:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:690
+#: ../src/guestfs.pod:689
msgid ""
"L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>"
msgstr ""
"L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>"
#. type: =head2
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:691
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:694
+#: ../src/guestfs.pod:693
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:697
+#: ../src/guestfs.pod:696
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_add_drive_ro(g,file)> is C<$g-E<gt>add_drive_ro($file)> "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:703
+#: ../src/guestfs.pod:702
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:706
+#: ../src/guestfs.pod:705
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:712
+#: ../src/guestfs.pod:711
msgid "B<C++>"
msgstr "B<C++>"
#. type: textblock
-#: ../src/guestfs.pod:714
+#: ../src/guestfs.pod:713
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:718
+#: ../src/guestfs.pod:717
msgid "B<C#>"
msgstr "B<C#>"
#. type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:719
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:723
+#: ../src/guestfs.pod:722
msgid "B<Haskell>"
msgstr "B<Haskell>"
#. type: textblock
-#: ../src/guestfs.pod:725
+#: ../src/guestfs.pod:724
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:729
+#: ../src/guestfs.pod:728
msgid "B<Java>"
msgstr "B<Java>"
#. type: textblock
-#: ../src/guestfs.pod:731
+#: ../src/guestfs.pod:730
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:733
msgid "B<OCaml>"
msgstr "B<OCaml>"
#. type: textblock
-#: ../src/guestfs.pod:736
+#: ../src/guestfs.pod:735
msgid "See L<guestfs-ocaml(3)>."
msgstr "Див. L<guestfs-ocaml(3)>."
#. type: =item
-#: ../src/guestfs.pod:738
+#: ../src/guestfs.pod:737
msgid "B<Perl>"
msgstr "B<Perl>"
#. type: textblock
-#: ../src/guestfs.pod:740
+#: ../src/guestfs.pod:739
msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>."
msgstr "Див. L<guestfs-perl(3)> та L<Sys::Guestfs(3)>."
#. type: =item
-#: ../src/guestfs.pod:742
+#: ../src/guestfs.pod:741
msgid "B<PHP>"
msgstr "B<PHP>"
#. type: textblock
-#: ../src/guestfs.pod:744
+#: ../src/guestfs.pod:743
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:747
+#: ../src/guestfs.pod:746
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:749
+#: ../src/guestfs.pod:748
msgid "B<Python>"
msgstr "B<Python>"
#. type: textblock
-#: ../src/guestfs.pod:751
+#: ../src/guestfs.pod:750
msgid "See L<guestfs-python(3)>."
msgstr "Див. L<guestfs-python(3)>."
#. type: =item
-#: ../src/guestfs.pod:753
+#: ../src/guestfs.pod:752
msgid "B<Ruby>"
msgstr "B<Ruby>"
#. type: textblock
-#: ../src/guestfs.pod:755
+#: ../src/guestfs.pod:754
msgid "See L<guestfs-ruby(3)>."
msgstr "Див. L<guestfs-ruby(3)>."
#. type: =item
-#: ../src/guestfs.pod:757
+#: ../src/guestfs.pod:756
msgid "B<shell scripts>"
msgstr "B<скрипти оболонки>"
#. type: textblock
-#: ../src/guestfs.pod:759
+#: ../src/guestfs.pod:758
msgid "See L<guestfish(1)>."
msgstr "Див. L<guestfish(1)>."
#. type: =head2
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:762
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:765
+#: ../src/guestfs.pod:764
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:769
+#: ../src/guestfs.pod:768
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:777
+#: ../src/guestfs.pod:776
msgid "Autosync / forgetting to sync."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:779
+#: ../src/guestfs.pod:778
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:783
+#: ../src/guestfs.pod:782
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:785
+#: ../src/guestfs.pod:784
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> q.v.)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:789
+#: ../src/guestfs.pod:788
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:793
+#: ../src/guestfs.pod:792
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:797
+#: ../src/guestfs.pod:796
msgid ""
"Update: Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:800
+#: ../src/guestfs.pod:799
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:802
+#: ../src/guestfs.pod:801
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:806
+#: ../src/guestfs.pod:805
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:809
+#: ../src/guestfs.pod:808
msgid "Read-only should be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:811
+#: ../src/guestfs.pod:810
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:814
+#: ../src/guestfs.pod:813
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:816
+#: ../src/guestfs.pod:815
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use L</"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:820
+#: ../src/guestfs.pod:819
msgid "guestfish command line is hard to use."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:822
+#: ../src/guestfs.pod:821
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:829
+#: ../src/guestfs.pod:828
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:831
+#: ../src/guestfs.pod:830
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:838
+#: ../src/guestfs.pod:837
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:839
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:841
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:847
+#: ../src/guestfs.pod:846
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:850
+#: ../src/guestfs.pod:849
msgid "Ambiguity between devices and paths"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:852
+#: ../src/guestfs.pod:851
msgid ""
"There is a subtle ambiguity in the API between a device name (eg. C</dev/"
"sdb2>) and a similar pathname. A file might just happen to be called "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:856
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:862
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:869
+#: ../src/guestfs.pod:868
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:871
+#: ../src/guestfs.pod:870
msgid "which would allow you to pass arguments like:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:873
+#: ../src/guestfs.pod:872
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:878
+#: ../src/guestfs.pod:877
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:882
msgid "PROTOCOL LIMITS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:884
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:893
+#: ../src/guestfs.pod:892
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:899
+#: ../src/guestfs.pod:898
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:903
+#: ../src/guestfs.pod:902
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:906
+#: ../src/guestfs.pod:905
msgid "KEYS AND PASSPHRASES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:908
+#: ../src/guestfs.pod:907
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:911
+#: ../src/guestfs.pod:910
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:916
+#: ../src/guestfs.pod:915
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:921
+#: ../src/guestfs.pod:920
msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:922
msgid ""
"All high-level libguestfs actions are synchronous. If you want to use "
"libguestfs asynchronously then you must create a thread."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:926
+#: ../src/guestfs.pod:925
msgid ""
"Only use the handle from a single thread. Either use the handle exclusively "
"from one thread, or provide your own mutex so that two threads cannot issue "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:930
+#: ../src/guestfs.pod:929
msgid ""
"See the graphical program guestfs-browser for one possible architecture for "
"multithreaded programs using libvirt and libguestfs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:933
+#: ../src/guestfs.pod:932
msgid "PATH"
msgstr "ШЛЯХ"
#. type: textblock
-#: ../src/guestfs.pod:935
+#: ../src/guestfs.pod:934
msgid ""
"Libguestfs needs a supermin appliance, which it finds by looking along an "
"internal path."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:938
+#: ../src/guestfs.pod:937
msgid ""
"By default it looks for these in the directory C<$libdir/guestfs> (eg. C</"
"usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:941
+#: ../src/guestfs.pod:940
msgid ""
"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
"to change the directories that libguestfs will search in. The value is a "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:948
+#: ../src/guestfs.pod:947
msgid "QEMU WRAPPERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:950
+#: ../src/guestfs.pod:949
msgid ""
"If you want to compile your own qemu, run qemu from a non-standard location, "
"or pass extra arguments to qemu, then you can write a shell-script wrapper "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:954
+#: ../src/guestfs.pod:953
msgid ""
"There is one important rule to remember: you I<must C<exec qemu>> as the "
"last command in the shell script (so that qemu replaces the shell and "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:959
+#: ../src/guestfs.pod:958
msgid ""
"Here is an example of a wrapper, where I have built my own copy of qemu from "
"source:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:962
+#: ../src/guestfs.pod:961
#, no-wrap
msgid ""
" #!/bin/sh -\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:966
+#: ../src/guestfs.pod:965
msgid ""
"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:970
+#: ../src/guestfs.pod:969
#, no-wrap
msgid ""
" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:971
msgid ""
"Note that libguestfs also calls qemu with the -help and -version options in "
"order to determine features."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:975
+#: ../src/guestfs.pod:974
msgid "ATTACHING TO RUNNING DAEMONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:977
+#: ../src/guestfs.pod:976
msgid ""
"I<Note (1):> This is B<highly experimental> and has a tendency to eat "
"babies. Use with caution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:980
+#: ../src/guestfs.pod:979
msgid ""
"I<Note (2):> This section explains how to attach to a running daemon from a "
"low level perspective. For most users, simply using virt tools such as "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:984
+#: ../src/guestfs.pod:983
msgid "Using guestfs_set_attach_method"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:986
+#: ../src/guestfs.pod:985
msgid ""
"By calling L</guestfs_set_attach_method> you can change how the library "
"connects to the C<guestfsd> daemon in L</guestfs_launch> (read L</"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:990
+#: ../src/guestfs.pod:989
msgid ""
"The normal attach method is C<appliance>, where a small appliance is created "
"containing the daemon, and then the library connects to this."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:993
+#: ../src/guestfs.pod:992
msgid ""
"Setting attach method to C<unix:I<path>> (where I<path> is the path of a "
"Unix domain socket) causes L</guestfs_launch> to connect to an existing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:997
+#: ../src/guestfs.pod:996
msgid ""
"The normal use for this is to connect to a running virtual machine that "
"contains a C<guestfsd> daemon, and send commands so you can read and write "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1001
+#: ../src/guestfs.pod:1000
msgid "Using guestfs_add_domain with live flag"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1003
+#: ../src/guestfs.pod:1002
msgid ""
"L</guestfs_add_domain> provides some help for getting the correct attach "
"method. If you pass the C<live> option to this function, then (if the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1009
+#: ../src/guestfs.pod:1008
#, no-wrap
msgid ""
" <domain>\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1020
msgid ""
"L</guestfs_add_domain> extracts C</path/to/socket> and sets the attach "
"method to C<unix:/path/to/socket>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1024
+#: ../src/guestfs.pod:1023
msgid ""
"Some of the libguestfs tools (including guestfish) support a I<--live> "
"option which is passed through to L</guestfs_add_domain> thus allowing you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1028
+#: ../src/guestfs.pod:1027
msgid ""
"The virtual machine needs to have been set up beforehand so that it has the "
"virtio-serial channel and so that guestfsd is running inside it."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1032
+#: ../src/guestfs.pod:1031
msgid "ABI GUARANTEE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1033
msgid ""
"We guarantee the libguestfs ABI (binary interface), for public, high-level "
"actions as outlined in this section. Although we will deprecate some "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1040
+#: ../src/guestfs.pod:1039
msgid "BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1042
+#: ../src/guestfs.pod:1041
msgid ""
"In the kernel there is now quite a profusion of schemata for naming block "
"devices (in this context, by I<block device> I mean a physical or virtual "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1054
+#: ../src/guestfs.pod:1053
msgid ""
"As discussed above, libguestfs uses a qemu appliance running an embedded "
"Linux kernel to access block devices. We can run a variety of appliances "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1057
msgid ""
"This causes a problem for libguestfs because many API calls use device or "
"partition names. Working scripts and the recipe (example) scripts that we "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1063
+#: ../src/guestfs.pod:1062
msgid ""
"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
"Internally C</dev/sd*> names are translated, if necessary, to other names as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1069
+#: ../src/guestfs.pod:1068
msgid ""
"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
"L</guestfs_list_partitions> and similar calls return the true names of the "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1074
+#: ../src/guestfs.pod:1073
msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1076
+#: ../src/guestfs.pod:1075
msgid ""
"Usually this translation is transparent. However in some (very rare) cases "
"you may need to know the exact algorithm. Such cases include where you use "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1082
+#: ../src/guestfs.pod:1081
msgid ""
"The algorithm is applied only to I<parameters> which are known to be either "
"device or partition names. Return values from functions such as L</"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1090
+#: ../src/guestfs.pod:1089
msgid "Is the string a parameter which is a device or partition name?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1094
+#: ../src/guestfs.pod:1093
msgid "Does the string begin with C</dev/sd>?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1098
+#: ../src/guestfs.pod:1097
msgid ""
"Does the named device exist? If so, we use that device. However if I<not> "
"then we continue with this algorithm."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1103
+#: ../src/guestfs.pod:1102
msgid "Replace initial C</dev/sd> string with C</dev/hd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1105
+#: ../src/guestfs.pod:1104
msgid "For example, change C</dev/sda2> to C</dev/hda2>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1107
+#: ../src/guestfs.pod:1106
msgid "If that named device exists, use it. If not, continue."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1111
+#: ../src/guestfs.pod:1110
msgid "Replace initial C</dev/sd> string with C</dev/vd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1113
+#: ../src/guestfs.pod:1112
msgid "If that named device exists, use it. If not, return an error."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1117
+#: ../src/guestfs.pod:1116
msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1119
+#: ../src/guestfs.pod:1118
msgid ""
"Although the standard naming scheme and automatic translation is useful for "
"simple programs and guestfish scripts, for larger programs it is best not to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1123
+#: ../src/guestfs.pod:1122
msgid ""
"Where possible for maximum future portability programs using libguestfs "
"should use these future-proof techniques:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1130
+#: ../src/guestfs.pod:1129
msgid ""
"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
"device names, and then use those names directly."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1133
+#: ../src/guestfs.pod:1132
msgid ""
"Since those device names exist by definition, they will never be translated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1138
+#: ../src/guestfs.pod:1137
msgid ""
"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
"filesystem labels."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1143
+#: ../src/guestfs.pod:1142
msgid "SECURITY"
msgstr "БЕЗПЕКА"
#. type: textblock
-#: ../src/guestfs.pod:1145
+#: ../src/guestfs.pod:1144
msgid ""
"This section discusses security implications of using libguestfs, "
"particularly with untrusted or malicious guests or disk images."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1148
+#: ../src/guestfs.pod:1147
msgid "GENERAL SECURITY CONSIDERATIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1150
+#: ../src/guestfs.pod:1149
msgid ""
"Be careful with any files or data that you download from a guest (by "
"\"download\" we mean not just the L</guestfs_download> command but any "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1160
+#: ../src/guestfs.pod:1159
msgid "the data (file etc) not being present"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1164
+#: ../src/guestfs.pod:1163
msgid "being present but empty"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1168
+#: ../src/guestfs.pod:1167
msgid "being much larger than normal"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1172
+#: ../src/guestfs.pod:1171
msgid "containing arbitrary 8 bit data"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1176
+#: ../src/guestfs.pod:1175
msgid "being in an unexpected character encoding"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1180
+#: ../src/guestfs.pod:1179
msgid "containing homoglyphs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1184
+#: ../src/guestfs.pod:1183
msgid "SECURITY OF MOUNTING FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1186
+#: ../src/guestfs.pod:1185
msgid ""
"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
"(VFS) module can sometimes be escalated into exploits by deliberately "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1199
+#: ../src/guestfs.pod:1198
msgid ""
"That explains why you should never mount a filesystem from an untrusted "
"guest on your host kernel. How about libguestfs? We run a Linux kernel "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1210
+#: ../src/guestfs.pod:1209
msgid ""
"In any case callers can reduce the attack surface by forcing the filesystem "
"type when mounting (use L</guestfs_mount_vfs>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1213
+#: ../src/guestfs.pod:1212
msgid "PROTOCOL SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1215
+#: ../src/guestfs.pod:1214
msgid ""
"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
"defined upper message size. However a program that uses libguestfs must "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1221
+#: ../src/guestfs.pod:1220
msgid "INSPECTION SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1223
+#: ../src/guestfs.pod:1222
msgid ""
"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
"directly from the guest, and these could contain any 8 bit data. Callers "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1229
+#: ../src/guestfs.pod:1228
msgid ""
"Guest configuration may be altered in unusual ways by the administrator of "
"the virtual machine, and may not reflect reality (particularly for untrusted "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1237
+#: ../src/guestfs.pod:1236
msgid ""
"The inspection API parses guest configuration using two external libraries: "
"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1243
+#: ../src/guestfs.pod:1242
msgid "RUNNING UNTRUSTED GUEST COMMANDS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1245
+#: ../src/guestfs.pod:1244
msgid ""
"Be very cautious about running commands from the guest. By running a "
"command in the guest, you are giving CPU time to a binary that you do not "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1251
+#: ../src/guestfs.pod:1250
msgid "CVE-2010-3851"
msgstr "CVE-2010-3851"
#. type: textblock
-#: ../src/guestfs.pod:1253
+#: ../src/guestfs.pod:1252
msgid "https://bugzilla.redhat.com/642934"
msgstr "https://bugzilla.redhat.com/642934"
#. type: textblock
-#: ../src/guestfs.pod:1255
+#: ../src/guestfs.pod:1254
msgid ""
"This security bug concerns the automatic disk format detection that qemu "
"does on disk images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1258
+#: ../src/guestfs.pod:1257
msgid ""
"A raw disk image is just the raw bytes, there is no header. Other disk "
"images like qcow2 contain a special header. Qemu deals with this by looking "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1263
+#: ../src/guestfs.pod:1262
msgid ""
"This allows a guest which has been given a raw disk image to write some "
"other header. At next boot (or when the disk image is accessed by "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1268
+#: ../src/guestfs.pod:1267
msgid ""
"This in itself would not be a problem, but qcow2 offers many features, one "
"of which is to allow a disk image to refer to another image (called the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1276
+#: ../src/guestfs.pod:1275
msgid ""
"In libguestfs this is rather hard to exploit except under two circumstances:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1283
+#: ../src/guestfs.pod:1282
msgid "You have enabled the network or have opened the disk in write mode."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1287
+#: ../src/guestfs.pod:1286
msgid ""
"You are also running untrusted code from the guest (see L</RUNNING "
"COMMANDS>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1292
+#: ../src/guestfs.pod:1291
msgid ""
"The way to avoid this is to specify the expected disk format when adding "
"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1297
+#: ../src/guestfs.pod:1296
msgid ""
"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
"format is fetched from libvirt and passed through."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1300
+#: ../src/guestfs.pod:1299
msgid ""
"For libguestfs tools, use the I<--format> command line parameter as "
"appropriate."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1303
+#: ../src/guestfs.pod:1302
msgid "CONNECTION MANAGEMENT"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1305
+#: ../src/guestfs.pod:1304
msgid "guestfs_h *"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1307
+#: ../src/guestfs.pod:1306
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1311
+#: ../src/guestfs.pod:1310
msgid ""
"For information on using multiple handles and threads, see the section L</"
"MULTIPLE HANDLES AND MULTIPLE THREADS> below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1314
+#: ../src/guestfs.pod:1313
msgid "guestfs_create"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1316
+#: ../src/guestfs.pod:1315
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1317
msgid "Create a connection handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1320
+#: ../src/guestfs.pod:1319
msgid ""
"You have to call L</guestfs_add_drive_opts> (or one of the equivalent calls) "
"on the handle at least once."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1323
+#: ../src/guestfs.pod:1322
msgid ""
"This function returns a non-NULL pointer to a handle on success or NULL on "
"error."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1326
+#: ../src/guestfs.pod:1325
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1328
+#: ../src/guestfs.pod:1327
msgid ""
"You may also want to configure error handling for the handle. See L</ERROR "
"HANDLING> section below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1331
+#: ../src/guestfs.pod:1330
msgid "guestfs_close"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1333
+#: ../src/guestfs.pod:1332
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1335
+#: ../src/guestfs.pod:1334
msgid "This closes the connection handle and frees up all resources used."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1337
+#: ../src/guestfs.pod:1336
msgid "ERROR HANDLING"
msgstr "ОБРОБКА ПОМИЛОК"
#. type: textblock
-#: ../src/guestfs.pod:1339
+#: ../src/guestfs.pod:1338
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1341
msgid ""
"Additional information is available for errors: an error message string and "
"optionally an error number (errno) if the thing that failed was a system "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1346
+#: ../src/guestfs.pod:1345
msgid ""
"You can get at the additional information about the last error on the handle "
"by calling L</guestfs_last_error>, L</guestfs_last_errno>, and/or by setting "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1351
+#: ../src/guestfs.pod:1350
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1355
+#: ../src/guestfs.pod:1354
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1358
+#: ../src/guestfs.pod:1357
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1361
+#: ../src/guestfs.pod:1360
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1364
+#: ../src/guestfs.pod:1363
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1366
+#: ../src/guestfs.pod:1365
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1370
+#: ../src/guestfs.pod:1369
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1378
+#: ../src/guestfs.pod:1377
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using L</"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1382
+#: ../src/guestfs.pod:1381
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1388
+#: ../src/guestfs.pod:1387
msgid "guestfs_last_error"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1390
+#: ../src/guestfs.pod:1389
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1392
+#: ../src/guestfs.pod:1391
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1396
+#: ../src/guestfs.pod:1395
msgid ""
"The lifetime of the returned string is until the next error occurs, or L</"
"guestfs_close> is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1399
+#: ../src/guestfs.pod:1398
msgid "guestfs_last_errno"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1401
+#: ../src/guestfs.pod:1400
#, no-wrap
msgid ""
" int guestfs_last_errno (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1403
+#: ../src/guestfs.pod:1402
msgid "This returns the last error number (errno) that happened on C<g>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1405
+#: ../src/guestfs.pod:1404
msgid "If successful, an errno integer not equal to zero is returned."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1406
msgid ""
"If no error, this returns 0. This call can return 0 in three situations:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1414
+#: ../src/guestfs.pod:1413
msgid "There has not been any error on the handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1418
+#: ../src/guestfs.pod:1417
msgid ""
"There has been an error but the errno was meaningless. This corresponds to "
"the case where the error did not come from a failed system call, but for "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1424
+#: ../src/guestfs.pod:1423
msgid ""
"There was an error from a failed system call, but for some reason the errno "
"was not captured and returned. This usually indicates a bug in libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1430
+#: ../src/guestfs.pod:1429
msgid ""
"Libguestfs tries to convert the errno from inside the applicance into a "
"corresponding errno for the caller (not entirely trivial: the appliance "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1437
msgid "guestfs_set_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1440
+#: ../src/guestfs.pod:1439
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1447
+#: ../src/guestfs.pod:1446
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1451
+#: ../src/guestfs.pod:1450
msgid ""
"C<errno> is not passed to the callback. To get that the callback must call "
"L</guestfs_last_errno>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1454
+#: ../src/guestfs.pod:1453
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1458
+#: ../src/guestfs.pod:1457
msgid "The default handler prints messages on C<stderr>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1460
+#: ../src/guestfs.pod:1459
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1462
+#: ../src/guestfs.pod:1461
msgid "guestfs_get_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1464
+#: ../src/guestfs.pod:1463
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1467
+#: ../src/guestfs.pod:1466
msgid "Returns the current error handler callback."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1469
+#: ../src/guestfs.pod:1468
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1471
+#: ../src/guestfs.pod:1470
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1475
+#: ../src/guestfs.pod:1474
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1478
+#: ../src/guestfs.pod:1477
msgid "The default is to call L<abort(3)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1480
+#: ../src/guestfs.pod:1479
msgid ""
"You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1483
+#: ../src/guestfs.pod:1482
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1485
+#: ../src/guestfs.pod:1484
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1487
+#: ../src/guestfs.pod:1486
msgid "This returns the current out of memory handler."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1489
+#: ../src/guestfs.pod:1488
msgid "API CALLS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1491 ../fish/guestfish.pod:1003
+#: ../src/guestfs.pod:1490 ../fish/guestfish.pod:1008
msgid "@ACTIONS@"
msgstr "@ACTIONS@"
#. type: =head1
-#: ../src/guestfs.pod:1493
+#: ../src/guestfs.pod:1492
msgid "STRUCTURES"
msgstr "СТРУКТУРИ"
#. type: textblock
-#: ../src/guestfs.pod:1495
+#: ../src/guestfs.pod:1494
msgid "@STRUCTS@"
msgstr "@STRUCTS@"
#. type: =head1
-#: ../src/guestfs.pod:1497
+#: ../src/guestfs.pod:1496
msgid "AVAILABILITY"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1499
+#: ../src/guestfs.pod:1498
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1501
+#: ../src/guestfs.pod:1500
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1506
+#: ../src/guestfs.pod:1505
msgid "@AVAILABILITY@"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1508
+#: ../src/guestfs.pod:1507
msgid "GUESTFISH supported COMMAND"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1510
+#: ../src/guestfs.pod:1509
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1515
+#: ../src/guestfs.pod:1514
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1517
+#: ../src/guestfs.pod:1516
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1520
+#: ../src/guestfs.pod:1519
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1522
+#: ../src/guestfs.pod:1521
msgid "if L</guestfs_dd> is available."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1524
+#: ../src/guestfs.pod:1523
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1529
+#: ../src/guestfs.pod:1528
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1531
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1535
+#: ../src/guestfs.pod:1534
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1537
+#: ../src/guestfs.pod:1536
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1544
+#: ../src/guestfs.pod:1543
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1548
+#: ../src/guestfs.pod:1547
#, no-wrap
msgid ""
" #include <stdio.h>\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1554
+#: ../src/guestfs.pod:1553
#, no-wrap
msgid ""
" main ()\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1560
+#: ../src/guestfs.pod:1559
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1569
+#: ../src/guestfs.pod:1568
#, no-wrap
msgid ""
" if (!has_function)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1582
+#: ../src/guestfs.pod:1581
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1587
+#: ../src/guestfs.pod:1586
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1589
+#: ../src/guestfs.pod:1588
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1590
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1596
+#: ../src/guestfs.pod:1595
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1598
+#: ../src/guestfs.pod:1597
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1601
+#: ../src/guestfs.pod:1600
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1603
+#: ../src/guestfs.pod:1602
msgid "With a single optional argument:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1605
+#: ../src/guestfs.pod:1604
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1609
+#: ../src/guestfs.pod:1608
msgid "With two:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1611
+#: ../src/guestfs.pod:1610
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1616
+#: ../src/guestfs.pod:1615
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1619
+#: ../src/guestfs.pod:1618
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1621
+#: ../src/guestfs.pod:1620
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1625
+#: ../src/guestfs.pod:1624
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1628
+#: ../src/guestfs.pod:1627
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1630
+#: ../src/guestfs.pod:1629
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1636
+#: ../src/guestfs.pod:1635
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1645
+#: ../src/guestfs.pod:1644
msgid "You could call it like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1647
+#: ../src/guestfs.pod:1646
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1654
+#: ../src/guestfs.pod:1653
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1656 ../src/guestfs-actions.pod:11
+#: ../src/guestfs.pod:1655 ../src/guestfs-actions.pod:11
#: ../src/guestfs-actions.pod:1855 ../fish/guestfish-actions.pod:9
#: ../fish/guestfish-actions.pod:1260 ../tools/virt-win-reg.pl:532
msgid "Notes:"
msgstr "Нотатки:"
#. type: textblock
-#: ../src/guestfs.pod:1662
+#: ../src/guestfs.pod:1661
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1667
+#: ../src/guestfs.pod:1666
msgid "You do not need to fill in all fields of the structure."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1671
+#: ../src/guestfs.pod:1670
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1676
+#: ../src/guestfs.pod:1675
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1678
+#: ../src/guestfs.pod:1677
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1682
+#: ../src/guestfs.pod:1681
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1684
+#: ../src/guestfs.pod:1683
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1686
+#: ../src/guestfs.pod:1685
msgid ""
"B<Note:> This section documents the generic event mechanism introduced in "
"libguestfs 1.10, which you should use in new code if possible. The old "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1694
+#: ../src/guestfs.pod:1693
msgid ""
"Handles generate events when certain things happen, such as log messages "
"being generated, progress messages during long-running operations, or the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1702
+#: ../src/guestfs.pod:1701
msgid ""
"In the current implementation, events are only generated synchronously: that "
"means that events (and hence callbacks) can only happen while you are in the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1707
+#: ../src/guestfs.pod:1706
msgid ""
"Events may contain a payload, usually nothing (void), an array of 64 bit "
"unsigned integers, or a message buffer. Payloads are discussed later on."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1710
msgid "CLASSES OF EVENTS"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1715
+#: ../src/guestfs.pod:1714
msgid "GUESTFS_EVENT_CLOSE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1718
+#: ../src/guestfs.pod:1717
msgid ""
"The callback function will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1721
+#: ../src/guestfs.pod:1720
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1728
+#: ../src/guestfs.pod:1727
msgid ""
"If no callback is registered: the handle is closed without any callback "
"being invoked."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1731
+#: ../src/guestfs.pod:1730
msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1734
+#: ../src/guestfs.pod:1733
msgid ""
"The callback function will be called when the child process quits, either "
"asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1738 ../src/guestfs.pod:1747
+#: ../src/guestfs.pod:1737 ../src/guestfs.pod:1746
msgid "If no callback is registered: the event is ignored."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1740
+#: ../src/guestfs.pod:1739
msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1743
+#: ../src/guestfs.pod:1742
msgid ""
"The callback function will be called when the child process becomes ready "
"first time after it has been launched. (This corresponds to a transition "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1749
+#: ../src/guestfs.pod:1748
msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1752
+#: ../src/guestfs.pod:1751
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1758
+#: ../src/guestfs.pod:1757
msgid ""
"The callback receives in the payload four unsigned 64 bit numbers which are "
"(in order): C<proc_nr>, C<serial>, C<position>, C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1761
+#: ../src/guestfs.pod:1760
msgid ""
"The units of C<total> are not defined, although for some operations C<total> "
"may relate in some way to the amount of data to be transferred (eg. in bytes "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1766
+#: ../src/guestfs.pod:1765
msgid "The only defined and stable parts of the API are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1771
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1777
+#: ../src/guestfs.pod:1776
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1781
+#: ../src/guestfs.pod:1780
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total> (I<unless> the call "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1785
+#: ../src/guestfs.pod:1784
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1791
+#: ../src/guestfs.pod:1790
msgid ""
"For some calls we are unable to estimate the progress of the call, but we "
"can still generate progress messages to indicate activity. This is known as "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1796
+#: ../src/guestfs.pod:1795
msgid ""
"For these calls, zero or more progress messages are generated with "
"C<position = 0> and C<total = 1>, followed by a final message with "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1800
+#: ../src/guestfs.pod:1799
msgid ""
"As noted above, if the call fails with an error then the final message may "
"not be generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1805
+#: ../src/guestfs.pod:1804
msgid ""
"The callback also receives the procedure number (C<proc_nr>) and serial "
"number (C<serial>) of the call. These are only useful for debugging "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1811
+#: ../src/guestfs.pod:1810
msgid "If no callback is registered: progress messages are discarded."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1813
+#: ../src/guestfs.pod:1812
msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1816
+#: ../src/guestfs.pod:1815
msgid ""
"The callback function is called whenever a log message is generated by qemu, "
"the appliance kernel, guestfsd (daemon), or utility programs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1818
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set before launch (L</"
"guestfs_launch>) then additional debug messages are generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1822 ../src/guestfs.pod:1836
+#: ../src/guestfs.pod:1821 ../src/guestfs.pod:1835
msgid ""
"If no callback is registered: the messages are discarded unless the verbose "
"flag is set in which case they are sent to stderr. You can override the "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1827
+#: ../src/guestfs.pod:1826
msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1830
+#: ../src/guestfs.pod:1829
msgid ""
"The callback function is called whenever a log message is generated by the "
"library part of libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1833
+#: ../src/guestfs.pod:1832
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set then additional debug "
"messages are generated."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1841
+#: ../src/guestfs.pod:1840
msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1844
+#: ../src/guestfs.pod:1843
msgid ""
"The callback function is called whenever a trace message is generated. This "
"only applies if the trace flag (L</guestfs_set_trace>) is set."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1847
+#: ../src/guestfs.pod:1846
msgid ""
"If no callback is registered: the messages are sent to stderr. You can "
"override the printing of trace messages to stderr by setting up a callback."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1853
+#: ../src/guestfs.pod:1852
msgid "guestfs_set_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1855
+#: ../src/guestfs.pod:1854
#, no-wrap
msgid ""
" int guestfs_set_event_callback (guestfs_h *g,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1861
+#: ../src/guestfs.pod:1860
msgid ""
"This function registers a callback (C<cb>) for all event classes in the "
"C<event_bitmask>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1864
+#: ../src/guestfs.pod:1863
msgid ""
"For example, to register for all log message events, you could call this "
"function with the bitmask C<GUESTFS_EVENT_APPLIANCE|GUESTFS_EVENT_LIBRARY>. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1870
+#: ../src/guestfs.pod:1869
msgid "C<flags> should always be passed as 0."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1872
+#: ../src/guestfs.pod:1871
msgid ""
"C<opaque> is an opaque pointer which is passed to the callback. You can use "
"it for any purpose."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1875
+#: ../src/guestfs.pod:1874
msgid ""
"The return value is the event handle (an integer) which you can use to "
"delete the callback (see below)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1878
+#: ../src/guestfs.pod:1877
msgid ""
"If there is an error, this function returns C<-1>, and sets the error in the "
"handle in the usual way (see L</guestfs_last_error> etc.)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1881
+#: ../src/guestfs.pod:1880
msgid ""
"Callbacks remain in effect until they are deleted, or until the handle is "
"closed."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1884
+#: ../src/guestfs.pod:1883
msgid ""
"In the case where multiple callbacks are registered for a particular event "
"class, all of the callbacks are called. The order in which multiple "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1888
+#: ../src/guestfs.pod:1887
msgid "guestfs_delete_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1890
+#: ../src/guestfs.pod:1889
#, no-wrap
msgid ""
" void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1892
+#: ../src/guestfs.pod:1891
msgid ""
"Delete a callback that was previously registered. C<event_handle> should be "
"the integer that was returned by a previous call to "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1896
+#: ../src/guestfs.pod:1895
msgid "guestfs_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1898
+#: ../src/guestfs.pod:1897
#, no-wrap
msgid ""
" typedef void (*guestfs_event_callback) (\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1907
+#: ../src/guestfs.pod:1906
msgid ""
"This is the type of the event callback function that you have to provide."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1910
+#: ../src/guestfs.pod:1909
msgid ""
"The basic parameters are: the handle (C<g>), the opaque user pointer "
"(C<opaque>), the event class (eg. C<GUESTFS_EVENT_PROGRESS>), the event "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1914
+#: ../src/guestfs.pod:1913
msgid ""
"The remaining parameters contain the event payload (if any). Each event may "
"contain a payload, which usually relates to the event class, but for future "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1919
+#: ../src/guestfs.pod:1918
msgid ""
"C<buf> and C<buf_len> contain a message buffer (if C<buf_len == 0>, then "
"there is no message buffer). Note that this message buffer can contain "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1923
+#: ../src/guestfs.pod:1922
msgid ""
"C<array> and C<array_len> is an array of 64 bit unsigned integers. At the "
"moment this is only used for progress messages."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1926
+#: ../src/guestfs.pod:1925
msgid "EXAMPLE: CAPTURING LOG MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1928
+#: ../src/guestfs.pod:1927
msgid ""
"One motivation for the generic event API was to allow GUI programs to "
"capture debug and other messages. In libguestfs E<le> 1.8 these were sent "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1932
+#: ../src/guestfs.pod:1931
msgid ""
"Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, "
"C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1937
+#: ../src/guestfs.pod:1936
msgid ""
"Programs have to set up a callback to capture the classes of events of "
"interest:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1940
+#: ../src/guestfs.pod:1939
#, no-wrap
msgid ""
" int eh =\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1950
+#: ../src/guestfs.pod:1949
msgid ""
"The callback can then direct messages to the appropriate place. In this "
"example, messages are directed to syslog:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1953
+#: ../src/guestfs.pod:1952
#, no-wrap
msgid ""
" static void\n"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1968
+#: ../src/guestfs.pod:1967
msgid "PRIVATE DATA AREA"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1970
+#: ../src/guestfs.pod:1969
msgid ""
"You can attach named pieces of private data to the libguestfs handle, fetch "
"them by name, and walk over them, for the lifetime of the handle. This is "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1975
+#: ../src/guestfs.pod:1974
msgid "To attach a named piece of data, use the following call:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1977
+#: ../src/guestfs.pod:1976
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1979
+#: ../src/guestfs.pod:1978
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same name is "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1983
+#: ../src/guestfs.pod:1982
msgid ""
"You can use any C<key> you want, but names beginning with an underscore "
"character are reserved for internal libguestfs purposes (for implementing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1988
+#: ../src/guestfs.pod:1987
msgid "To retrieve the pointer, use:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1990
+#: ../src/guestfs.pod:1989
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1992
+#: ../src/guestfs.pod:1991
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1996
+#: ../src/guestfs.pod:1995
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2003
+#: ../src/guestfs.pod:2002
msgid "To walk over all entries, use these two functions:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2005
+#: ../src/guestfs.pod:2004
#, no-wrap
msgid ""
" void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2007
+#: ../src/guestfs.pod:2006
#, no-wrap
msgid ""
" void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2009
+#: ../src/guestfs.pod:2008
msgid ""
"C<guestfs_first_private> returns the first key, pointer pair (\"first\" does "
"not have any particular meaning -- keys are not returned in any defined "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2015
+#: ../src/guestfs.pod:2014
msgid ""
"C<guestfs_next_private> returns the next key, pointer pair. The return "
"value of this function is also C<NULL> is there are no further entries to "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2019
+#: ../src/guestfs.pod:2018
msgid "Notes about walking over entries:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2025
+#: ../src/guestfs.pod:2024
msgid ""
"You must not call C<guestfs_set_private> while walking over the entries."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2030
+#: ../src/guestfs.pod:2029
msgid ""
"The handle maintains an internal iterator which is reset when you call "
"C<guestfs_first_private>. This internal iterator is invalidated when you "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2036
+#: ../src/guestfs.pod:2035
msgid "If you have set the data pointer associated with a key to C<NULL>, ie:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2038
+#: ../src/guestfs.pod:2037
#, no-wrap
msgid ""
" guestfs_set_private (g, key, NULL);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2040
+#: ../src/guestfs.pod:2039
msgid "then that C<key> is not returned when walking."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2044
+#: ../src/guestfs.pod:2043
msgid ""
"C<*key_rtn> is only valid until the next call to C<guestfs_first_private>, "
"C<guestfs_next_private> or C<guestfs_set_private>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2050
+#: ../src/guestfs.pod:2049
msgid ""
"The following example code shows how to print all keys and data pointers "
"that are associated with the handle C<g>:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2053
+#: ../src/guestfs.pod:2052
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2061
+#: ../src/guestfs.pod:2060
msgid ""
"More commonly you are only interested in keys that begin with an application-"
"specific prefix C<foo_>. Modify the loop like so:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2064
+#: ../src/guestfs.pod:2063
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2073
+#: ../src/guestfs.pod:2072
msgid ""
"If you need to modify keys while walking, then you have to jump back to the "
"beginning of the loop. For example, to delete all keys prefixed with "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2077
+#: ../src/guestfs.pod:2076
#, no-wrap
msgid ""
" const char *key;\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2093
+#: ../src/guestfs.pod:2092
msgid ""
"Note that the above loop is guaranteed to terminate because the keys are "
"being deleted, but other manipulations of keys within the loop might not "
msgstr ""
#. type: =end
-#: ../src/guestfs.pod:2098 ../src/guestfs.pod:2103
+#: ../src/guestfs.pod:2097 ../src/guestfs.pod:2102
msgid "html"
msgstr "html"
#. type: textblock
-#: ../src/guestfs.pod:2100
+#: ../src/guestfs.pod:2099
msgid ""
"<!-- old anchor for the next section --> <a name="
"\"state_machine_and_low_level_event_api\"/>"
"\"state_machine_and_low_level_event_api\"/>"
#. type: =head1
-#: ../src/guestfs.pod:2105
+#: ../src/guestfs.pod:2104
msgid "ARCHITECTURE"
msgstr "АРХІТЕКТУРА"
#. type: textblock
-#: ../src/guestfs.pod:2107
+#: ../src/guestfs.pod:2106
msgid ""
"Internally, libguestfs is implemented by running an appliance (a special "
"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2111
+#: ../src/guestfs.pod:2110
#, no-wrap
msgid ""
" ___________________\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2131
+#: ../src/guestfs.pod:2130
msgid ""
"The library, linked to the main program, creates the child process and hence "
"the appliance in the L</guestfs_launch> function."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2134
+#: ../src/guestfs.pod:2133
msgid ""
"Inside the appliance is a Linux kernel and a complete stack of userspace "
"tools (such as LVM and ext2 programs) and a small controlling daemon called "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2143
+#: ../src/guestfs.pod:2142
msgid ""
"A common misunderstanding is that the appliance \"is\" the virtual machine. "
"Although the disk image you are attached to might also be used by some "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2150
+#: ../src/guestfs.pod:2149
msgid "STATE MACHINE"
msgstr "СКІНЧЕННИЙ АВТОМАТ"
#. type: textblock
-#: ../src/guestfs.pod:2152
+#: ../src/guestfs.pod:2151
msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2154
+#: ../src/guestfs.pod:2153
#, no-wrap
msgid ""
" |\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2176
+#: ../src/guestfs.pod:2175
msgid ""
"The normal transitions are (1) CONFIG (when the handle is created, but there "
"is no child process), (2) LAUNCHING (when the child process is booting up), "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2181
+#: ../src/guestfs.pod:2180
msgid ""
"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
"asynchronously at any time (eg. due to some internal error), and that causes "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2185
+#: ../src/guestfs.pod:2184
msgid ""
"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
"issued when in the CONFIG state."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2188
+#: ../src/guestfs.pod:2187
msgid ""
"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
"L</guestfs_launch> blocks until the child process is READY to accept "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2194
+#: ../src/guestfs.pod:2193
msgid ""
"API actions such as L</guestfs_mount> can only be issued when in the READY "
"state. These API calls block waiting for the command to be carried out (ie. "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2200
+#: ../src/guestfs.pod:2199
msgid ""
"Finally, the child process sends asynchronous messages back to the main "
"program, such as kernel log messages. You can register a callback to "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2204
+#: ../src/guestfs.pod:2203
msgid "INTERNALS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2206
+#: ../src/guestfs.pod:2205
msgid "COMMUNICATION PROTOCOL"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2208
+#: ../src/guestfs.pod:2207
msgid ""
"Don't rely on using this protocol directly. This section documents how it "
"currently works, but it may change at any time."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2211
+#: ../src/guestfs.pod:2210
msgid ""
"The protocol used to talk between the library and the daemon running inside "
"the qemu virtual machine is a simple RPC mechanism built on top of XDR (RFC "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2215
+#: ../src/guestfs.pod:2214
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2218
+#: ../src/guestfs.pod:2217
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2225
+#: ../src/guestfs.pod:2224
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2227
+#: ../src/guestfs.pod:2226
msgid "For ordinary functions, the request message is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2229
+#: ../src/guestfs.pod:2228
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2234
+#: ../src/guestfs.pod:2233
msgid ""
"The total length field allows the daemon to allocate a fixed size buffer "
"into which it slurps the rest of the message. As a result, the total length "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2240
+#: ../src/guestfs.pod:2239
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2243
+#: ../src/guestfs.pod:2242
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2247
+#: ../src/guestfs.pod:2246
msgid ""
"For functions that take optional arguments, the optional arguments are "
"encoded in the C<guestfs_I<foo>_args> structure in the same way as ordinary "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2255
+#: ../src/guestfs.pod:2254
msgid "The reply message for ordinary functions is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2257
+#: ../src/guestfs.pod:2256
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2262
+#: ../src/guestfs.pod:2261
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2265
+#: ../src/guestfs.pod:2264
msgid ""
"As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2268
+#: ../src/guestfs.pod:2267
msgid ""
"In the case of an error, a flag is set in the header, and the reply message "
"is slightly changed:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2271
+#: ../src/guestfs.pod:2270
#, no-wrap
msgid ""
" total length (header + error,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2276
+#: ../src/guestfs.pod:2275
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2279
+#: ../src/guestfs.pod:2278
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2281
+#: ../src/guestfs.pod:2280
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2285
+#: ../src/guestfs.pod:2284
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2293
+#: ../src/guestfs.pod:2292
msgid "The \"sequence of chunks\" is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2295
+#: ../src/guestfs.pod:2294
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2303
+#: ../src/guestfs.pod:2302
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2307
+#: ../src/guestfs.pod:2306
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2312
+#: ../src/guestfs.pod:2311
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2318
+#: ../src/guestfs.pod:2317
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2327
+#: ../src/guestfs.pod:2326
msgid ""
"This protocol allows the transfer of arbitrary sized files (no 32 bit "
"limit), and also files where the size is not known in advance (eg. from "
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2333
+#: ../src/guestfs.pod:2332
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2335
+#: ../src/guestfs.pod:2334
msgid ""
"The protocol for FileOut parameters is exactly the same as for FileIn "
"parameters, but with the roles of daemon and library reversed."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2338
+#: ../src/guestfs.pod:2337
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2346
+#: ../src/guestfs.pod:2345
msgid "INITIAL MESSAGE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2348
+#: ../src/guestfs.pod:2347
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
"which indicates that the guest and daemon is alive. This is what L</"
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2352
+#: ../src/guestfs.pod:2351
msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2354
+#: ../src/guestfs.pod:2353
msgid ""
"The daemon may send progress notification messages at any time. These are "
"distinguished by the normal length word being replaced by "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2358
+#: ../src/guestfs.pod:2357
msgid ""
"The library turns them into progress callbacks (see L</"
"GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards them "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2362
+#: ../src/guestfs.pod:2361
msgid ""
"The daemon self-limits the frequency of progress messages it sends (see "
"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2366
+#: ../src/guestfs.pod:2365
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2368
+#: ../src/guestfs.pod:2367
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2373
+#: ../src/guestfs.pod:2372
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2384
+#: ../src/guestfs.pod:2383
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2386
+#: ../src/guestfs.pod:2385
msgid ""
"As time passes we cherry pick fixes from the development branch and backport "
"those into the stable branch, the effect being that the stable branch should "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2392
+#: ../src/guestfs.pod:2391
msgid "Our criteria for backporting changes are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2398
+#: ../src/guestfs.pod:2397
msgid ""
"Documentation changes which don't affect any code are backported unless the "
"documentation refers to a future feature which is not in stable."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2404
+#: ../src/guestfs.pod:2403
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2409
+#: ../src/guestfs.pod:2408
msgid ""
"Simple rearrangements of code which shouldn't affect how it works get "
"backported. This is so that the code in the two branches doesn't get too "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2415
+#: ../src/guestfs.pod:2414
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2421
+#: ../src/guestfs.pod:2420
msgid ""
"A new stable branch starts when we think the new features in development are "
"substantial and compelling enough over the current stable branch to warrant "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2429
+#: ../src/guestfs.pod:2428
msgid "EXTENDING LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2431
+#: ../src/guestfs.pod:2430
msgid "ADDING A NEW API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2433
+#: ../src/guestfs.pod:2432
msgid ""
"Large amounts of boilerplate code in libguestfs (RPC, bindings, "
"documentation) are generated, and this makes it easy to extend the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2437
+#: ../src/guestfs.pod:2436
msgid "To add a new API action there are two changes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2443
+#: ../src/guestfs.pod:2442
msgid ""
"You need to add a description of the call (name, parameters, return type, "
"tests, documentation) to C<generator/generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2446
+#: ../src/guestfs.pod:2445
msgid ""
"There are two sorts of API action, depending on whether the call goes "
"through to the daemon in the appliance, or is serviced entirely by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2454
+#: ../src/guestfs.pod:2453
msgid ""
"Most new actions are of the first type, and get added to the "
"C<daemon_functions> list. Each function has a unique procedure number used "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2460
+#: ../src/guestfs.pod:2459
msgid ""
"For library-only actions of the second type, add to the "
"C<non_daemon_functions> list. Since these functions are serviced by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2468
+#: ../src/guestfs.pod:2467
msgid "Implement the action (in C):"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2470
+#: ../src/guestfs.pod:2469
msgid ""
"For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the "
"C<daemon/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2473
+#: ../src/guestfs.pod:2472
msgid ""
"For library actions, implement the function C<guestfs__E<lt>nameE<gt>> "
"(note: double underscore) in the C<src/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2476
+#: ../src/guestfs.pod:2475
msgid "In either case, use another function as an example of what to do."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2480
+#: ../src/guestfs.pod:2479
msgid "After making these changes, use C<make> to compile."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2482
+#: ../src/guestfs.pod:2481
msgid ""
"Note that you don't need to implement the RPC, language bindings, manual "
"pages or anything else. It's all automatically generated from the OCaml "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2486
+#: ../src/guestfs.pod:2485
msgid "ADDING TESTS FOR AN API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2488
+#: ../src/guestfs.pod:2487
msgid ""
"You can supply zero or as many tests as you want per API call. The tests "
"can either be added as part of the API description (C<generator/"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2494
+#: ../src/guestfs.pod:2493
msgid ""
"The following describes the test environment used when you add an API test "
"in C<generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2497
+#: ../src/guestfs.pod:2496
msgid "The test environment has 4 block devices:"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2501
+#: ../src/guestfs.pod:2500
msgid "C</dev/sda> 500MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2503
+#: ../src/guestfs.pod:2502
msgid "General block device for testing."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2505
+#: ../src/guestfs.pod:2504
msgid "C</dev/sdb> 50MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2507
+#: ../src/guestfs.pod:2506
msgid ""
"C</dev/sdb1> is an ext2 filesystem used for testing filesystem write "
"operations."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2510
+#: ../src/guestfs.pod:2509
msgid "C</dev/sdc> 10MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2512
+#: ../src/guestfs.pod:2511
msgid "Used in a few tests where two block devices are needed."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2514
+#: ../src/guestfs.pod:2513
msgid "C</dev/sdd>"
msgstr "C</dev/sdd>"
#. type: textblock
-#: ../src/guestfs.pod:2516
+#: ../src/guestfs.pod:2515
msgid "ISO with fixed content (see C<images/test.iso>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2520
+#: ../src/guestfs.pod:2519
msgid ""
"To be able to run the tests in a reasonable amount of time, the libguestfs "
"appliance and block devices are reused between tests. So don't try testing "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2524
+#: ../src/guestfs.pod:2523
msgid ""
"Each test starts with an initial scenario, selected using one of the "
"C<Init*> expressions, described in C<generator/generator_types.ml>. These "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2530
+#: ../src/guestfs.pod:2529
msgid ""
"You can add a prerequisite clause to any individual test. This is a run-"
"time check, which, if it fails, causes the test to be skipped. Useful if "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2536
+#: ../src/guestfs.pod:2535
msgid ""
"In addition, packagers can skip individual tests by setting environment "
"variables before running C<make check>."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2539
+#: ../src/guestfs.pod:2538
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>_<NUM>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2541
+#: ../src/guestfs.pod:2540
msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2543
+#: ../src/guestfs.pod:2542
msgid "or:"
msgstr "або:"
#. type: verbatim
-#: ../src/guestfs.pod:2545
+#: ../src/guestfs.pod:2544
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>=1\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2547
+#: ../src/guestfs.pod:2546
msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2549
+#: ../src/guestfs.pod:2548
msgid "Packagers can run only certain tests by setting for example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2551
+#: ../src/guestfs.pod:2550
#, no-wrap
msgid ""
" TEST_ONLY=\"vfs_type zerofree\"\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2553
+#: ../src/guestfs.pod:2552
msgid ""
"See C<capitests/tests.c> for more details of how these environment variables "
"work."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2556
+#: ../src/guestfs.pod:2555
msgid "DEBUGGING NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2558
+#: ../src/guestfs.pod:2557
msgid "Test new actions work before submitting them."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2560
+#: ../src/guestfs.pod:2559
msgid "You can use guestfish to try out new commands."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2562
+#: ../src/guestfs.pod:2561
msgid ""
"Debugging the daemon is a problem because it runs inside a minimal "
"environment. However you can fprintf messages in the daemon to stderr, and "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2566
+#: ../src/guestfs.pod:2565
msgid "FORMATTING CODE AND OTHER CONVENTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2568
+#: ../src/guestfs.pod:2567
msgid ""
"Our C source code generally adheres to some basic code-formatting "
"conventions. The existing code base is not totally consistent on this "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2574
+#: ../src/guestfs.pod:2573
msgid ""
"If you use Emacs, add the following to one of one of your start-up files (e."
"g., ~/.emacs), to help ensure that you get indentation right:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2577
+#: ../src/guestfs.pod:2576
#, no-wrap
msgid ""
" ;;; In libguestfs, indent with spaces everywhere (not TABs).\n"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2587
+#: ../src/guestfs.pod:2586
#, no-wrap
msgid ""
" ;;; When editing C sources in libguestfs, use this style.\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2599
+#: ../src/guestfs.pod:2598
msgid "Enable warnings when compiling (and fix any problems this finds):"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2602
+#: ../src/guestfs.pod:2601
#, no-wrap
msgid ""
" ./configure --enable-gcc-warnings\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2604
+#: ../src/guestfs.pod:2603
msgid "Useful targets are:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2606
+#: ../src/guestfs.pod:2605
#, no-wrap
msgid ""
" make syntax-check # checks the syntax of the C code\n"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2609
+#: ../src/guestfs.pod:2608
msgid "DAEMON CUSTOM PRINTF FORMATTERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2611
+#: ../src/guestfs.pod:2610
msgid ""
"In the daemon code we have created custom printf formatters C<%Q> and C<%R>, "
"which are used to do shell quoting."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2616
+#: ../src/guestfs.pod:2615
msgid "%Q"
msgstr "%Q"
#. type: textblock
-#: ../src/guestfs.pod:2618
+#: ../src/guestfs.pod:2617
msgid ""
"Simple shell quoted string. Any spaces or other shell characters are "
"escaped for you."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2621
+#: ../src/guestfs.pod:2620
msgid "%R"
msgstr "%R"
#. type: textblock
-#: ../src/guestfs.pod:2623
+#: ../src/guestfs.pod:2622
msgid ""
"Same as C<%Q> except the string is treated as a path which is prefixed by "
"the sysroot."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2628 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
+#: ../src/guestfs.pod:2627 ../fish/guestfish.pod:240 ../fish/guestfish.pod:613
msgid "For example:"
msgstr "Приклад:"
#. type: verbatim
-#: ../src/guestfs.pod:2630
+#: ../src/guestfs.pod:2629
#, no-wrap
msgid ""
" asprintf (&cmd, \"cat %R\", path);\n"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2632
+#: ../src/guestfs.pod:2631
msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2634
+#: ../src/guestfs.pod:2633
msgid ""
"I<Note:> Do I<not> use these when you are passing parameters to the C<command"
"{,r,v,rv}()> functions. These parameters do NOT need to be quoted because "
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2640
+#: ../src/guestfs.pod:2639
msgid "SUBMITTING YOUR NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2642
+#: ../src/guestfs.pod:2641
msgid ""
"Submit patches to the mailing list: L<http://www.redhat.com/mailman/listinfo/"
"libguestfs> and CC to L<rjones@redhat.com>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2646
+#: ../src/guestfs.pod:2645
msgid "INTERNATIONALIZATION (I18N) SUPPORT"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2648
+#: ../src/guestfs.pod:2647
msgid "We support i18n (gettext anyhow) in the library."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2650
+#: ../src/guestfs.pod:2649
msgid ""
"However many messages come from the daemon, and we don't translate those at "
"the moment. One reason is that the appliance generally has all locale files "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2656
+#: ../src/guestfs.pod:2655
msgid ""
"Debugging messages are never translated, since they are intended for the "
"programmers."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2659
+#: ../src/guestfs.pod:2658
msgid "SOURCE CODE SUBDIRECTORIES"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2663 ../src/guestfs-actions.pod:5806
+#: ../src/guestfs.pod:2662 ../src/guestfs-actions.pod:5806
#: ../fish/guestfish-actions.pod:3900
msgid "C<appliance>"
msgstr "C<appliance>"
#. type: textblock
-#: ../src/guestfs.pod:2665
+#: ../src/guestfs.pod:2664
msgid "The libguestfs appliance, build scripts and so on."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2667
+#: ../src/guestfs.pod:2666
msgid "C<capitests>"
msgstr "C<capitests>"
#. type: textblock
-#: ../src/guestfs.pod:2669
+#: ../src/guestfs.pod:2668
msgid "Automated tests of the C API."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2671
+#: ../src/guestfs.pod:2670
msgid "C<cat>"
msgstr "C<cat>"
#. type: textblock
-#: ../src/guestfs.pod:2673
+#: ../src/guestfs.pod:2672
msgid ""
"The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and "
"documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2676
+#: ../src/guestfs.pod:2675
msgid "C<contrib>"
msgstr "C<contrib>"
#. type: textblock
-#: ../src/guestfs.pod:2678
+#: ../src/guestfs.pod:2677
msgid "Outside contributions, experimental parts."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2680
+#: ../src/guestfs.pod:2679
msgid "C<daemon>"
msgstr "C<daemon>"
#. type: textblock
-#: ../src/guestfs.pod:2682
+#: ../src/guestfs.pod:2681
msgid ""
"The daemon that runs inside the libguestfs appliance and carries out actions."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2685
+#: ../src/guestfs.pod:2684
msgid "C<df>"
msgstr "C<df>"
#. type: textblock
-#: ../src/guestfs.pod:2687
+#: ../src/guestfs.pod:2686
msgid "L<virt-df(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2689
+#: ../src/guestfs.pod:2688
msgid "C<examples>"
msgstr "C<examples>"
#. type: textblock
-#: ../src/guestfs.pod:2691
+#: ../src/guestfs.pod:2690
msgid "C API example code."
msgstr "Код прикладів використання програмного інтерфейсу мовою C."
#. type: =item
-#: ../src/guestfs.pod:2693
+#: ../src/guestfs.pod:2692
msgid "C<fish>"
msgstr "C<fish>"
#. type: textblock
-#: ../src/guestfs.pod:2695
+#: ../src/guestfs.pod:2694
msgid ""
"L<guestfish(1)>, the command-line shell, and various shell scripts built on "
"top such as L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-tar-in(1)>, "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2699
+#: ../src/guestfs.pod:2698
msgid "C<fuse>"
msgstr "C<fuse>"
#. type: textblock
-#: ../src/guestfs.pod:2701
+#: ../src/guestfs.pod:2700
msgid ""
"L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2703
+#: ../src/guestfs.pod:2702
msgid "C<generator>"
msgstr "C<generator>"
#. type: textblock
-#: ../src/guestfs.pod:2705
+#: ../src/guestfs.pod:2704
msgid ""
"The crucially important generator, used to automatically generate large "
"amounts of boilerplate C code for things like RPC and bindings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2708
+#: ../src/guestfs.pod:2707
msgid "C<images>"
msgstr "C<images>"
#. type: textblock
-#: ../src/guestfs.pod:2710
+#: ../src/guestfs.pod:2709
msgid "Files used by the test suite."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2712
+#: ../src/guestfs.pod:2711
msgid "Some \"phony\" guest images which we test against."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2714
+#: ../src/guestfs.pod:2713
msgid "C<inspector>"
msgstr "C<inspector>"
#. type: textblock
-#: ../src/guestfs.pod:2716
+#: ../src/guestfs.pod:2715
msgid "L<virt-inspector(1)>, the virtual machine image inspector."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2718
+#: ../src/guestfs.pod:2717
msgid "C<logo>"
msgstr "C<logo>"
#. type: textblock
-#: ../src/guestfs.pod:2720
+#: ../src/guestfs.pod:2719
msgid "Logo used on the website. The fish is called Arthur by the way."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2722
+#: ../src/guestfs.pod:2721
msgid "C<m4>"
msgstr "C<m4>"
#. type: textblock
-#: ../src/guestfs.pod:2724
+#: ../src/guestfs.pod:2723
msgid "M4 macros used by autoconf."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2726
+#: ../src/guestfs.pod:2725
msgid "C<po>"
msgstr "C<po>"
#. type: textblock
-#: ../src/guestfs.pod:2728
+#: ../src/guestfs.pod:2727
msgid "Translations of simple gettext strings."
msgstr "Переклади простих рядків gettext."
#. type: =item
-#: ../src/guestfs.pod:2730
+#: ../src/guestfs.pod:2729
msgid "C<po-docs>"
msgstr "C<po-docs>"
#. type: textblock
-#: ../src/guestfs.pod:2732
+#: ../src/guestfs.pod:2731
msgid ""
"The build infrastructure and PO files for translations of manpages and POD "
"files. Eventually this will be combined with the C<po> directory, but that "
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2736
+#: ../src/guestfs.pod:2735
msgid "C<regressions>"
msgstr "C<regressions>"
#. type: textblock
-#: ../src/guestfs.pod:2738
+#: ../src/guestfs.pod:2737
msgid "Regression tests."
msgstr "Тести на регресії."
#. type: =item
-#: ../src/guestfs.pod:2740
+#: ../src/guestfs.pod:2739
msgid "C<rescue>"
msgstr "C<rescue>"
#. type: textblock
-#: ../src/guestfs.pod:2742
+#: ../src/guestfs.pod:2741
msgid "L<virt-rescue(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2744
+#: ../src/guestfs.pod:2743
msgid "C<src>"
msgstr "C<src>"
#. type: textblock
-#: ../src/guestfs.pod:2746
+#: ../src/guestfs.pod:2745
msgid "Source code to the C library."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2748
+#: ../src/guestfs.pod:2747
msgid "C<tools>"
msgstr "C<tools>"
#. type: textblock
-#: ../src/guestfs.pod:2750
+#: ../src/guestfs.pod:2749
msgid "Command line tools written in Perl (L<virt-resize(1)> and many others)."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2752
+#: ../src/guestfs.pod:2751
msgid "C<test-tool>"
msgstr "C<test-tool>"
#. type: textblock
-#: ../src/guestfs.pod:2754
+#: ../src/guestfs.pod:2753
msgid ""
"Test tool for end users to test if their qemu/kernel combination will work "
"with libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2757
+#: ../src/guestfs.pod:2756
msgid "C<csharp>"
msgstr "C<csharp>"
#. type: =item
-#: ../src/guestfs.pod:2759
+#: ../src/guestfs.pod:2758
msgid "C<haskell>"
msgstr "C<haskell>"
#. type: =item
-#: ../src/guestfs.pod:2761
+#: ../src/guestfs.pod:2760
msgid "C<java>"
msgstr "C<java>"
#. type: =item
-#: ../src/guestfs.pod:2763
+#: ../src/guestfs.pod:2762
msgid "C<ocaml>"
msgstr "C<ocaml>"
#. type: =item
-#: ../src/guestfs.pod:2765
+#: ../src/guestfs.pod:2764
msgid "C<php>"
msgstr "C<php>"
#. type: =item
-#: ../src/guestfs.pod:2767
+#: ../src/guestfs.pod:2766
msgid "C<perl>"
msgstr "C<perl>"
#. type: =item
-#: ../src/guestfs.pod:2769
+#: ../src/guestfs.pod:2768
msgid "C<python>"
msgstr "C<python>"
#. type: =item
-#: ../src/guestfs.pod:2771
+#: ../src/guestfs.pod:2770
msgid "C<ruby>"
msgstr "C<ruby>"
#. type: textblock
-#: ../src/guestfs.pod:2773
+#: ../src/guestfs.pod:2772
msgid "Language bindings."
msgstr "Прив’язки до мов програмування."
#. type: =head1
-#: ../src/guestfs.pod:2777 ../fish/guestfish.pod:1010
+#: ../src/guestfs.pod:2776 ../fish/guestfish.pod:1015
#: ../test-tool/libguestfs-test-tool.pod:82 ../tools/virt-edit.pl:476
msgid "ENVIRONMENT VARIABLES"
msgstr "ЗМІННІ СЕРЕДОВИЩА"
#. type: =item
-#: ../src/guestfs.pod:2781 ../fish/guestfish.pod:1036
+#: ../src/guestfs.pod:2780 ../fish/guestfish.pod:1041
msgid "LIBGUESTFS_APPEND"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2783 ../fish/guestfish.pod:1038
+#: ../src/guestfs.pod:2782 ../fish/guestfish.pod:1043
msgid "Pass additional options to the guest kernel."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2785 ../fish/guestfish.pod:1040
+#: ../src/guestfs.pod:2784 ../fish/guestfish.pod:1045
msgid "LIBGUESTFS_DEBUG"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2787
+#: ../src/guestfs.pod:2786
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2790 ../fish/guestfish.pod:1045
+#: ../src/guestfs.pod:2789 ../fish/guestfish.pod:1050
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2792 ../fish/guestfish.pod:1047
+#: ../src/guestfs.pod:2791 ../fish/guestfish.pod:1052
msgid ""
"Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2795 ../fish/guestfish.pod:1050
+#: ../src/guestfs.pod:2794 ../fish/guestfish.pod:1055
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2797 ../fish/guestfish.pod:1052
+#: ../src/guestfs.pod:2796 ../fish/guestfish.pod:1057
msgid "LIBGUESTFS_PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2799
+#: ../src/guestfs.pod:2798
msgid ""
"Set the path that libguestfs uses to search for a supermin appliance. See "
"the discussion of paths in section L</PATH> above."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2802 ../fish/guestfish.pod:1057
+#: ../src/guestfs.pod:2801 ../fish/guestfish.pod:1062
msgid "LIBGUESTFS_QEMU"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2804 ../fish/guestfish.pod:1059
+#: ../src/guestfs.pod:2803 ../fish/guestfish.pod:1064
msgid ""
"Set the default qemu binary that libguestfs uses. If not set, then the qemu "
"which was found at compile time by the configure script is used."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2808
+#: ../src/guestfs.pod:2807
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2810 ../fish/guestfish.pod:1063
+#: ../src/guestfs.pod:2809 ../fish/guestfish.pod:1068
msgid "LIBGUESTFS_TRACE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2812
+#: ../src/guestfs.pod:2811
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2815 ../fish/guestfish.pod:1072
+#: ../src/guestfs.pod:2814 ../fish/guestfish.pod:1077
msgid "TMPDIR"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2817 ../fish/guestfish.pod:1074
+#: ../src/guestfs.pod:2816 ../fish/guestfish.pod:1079
msgid ""
"Location of temporary directory, defaults to C</tmp> except for the cached "
"supermin appliance which defaults to C</var/tmp>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2820 ../fish/guestfish.pod:1077
+#: ../src/guestfs.pod:2819 ../fish/guestfish.pod:1082
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2828 ../fish/guestfish.pod:1144
+#: ../src/guestfs.pod:2827 ../fish/guestfish.pod:1149
#: ../test-tool/libguestfs-test-tool.pod:87 ../fuse/guestmount.pod:267
#: ../tools/virt-edit.pl:496 ../tools/virt-win-reg.pl:572
#: ../tools/virt-list-filesystems.pl:189 ../tools/virt-tar.pl:286
msgstr "ТАКОЖ ПЕРЕГЛЯНЬТЕ"
#. type: textblock
-#: ../src/guestfs.pod:2830
+#: ../src/guestfs.pod:2829
msgid ""
"L<guestfs-examples(3)>, L<guestfs-ocaml(3)>, L<guestfs-python(3)>, L<guestfs-"
"ruby(3)>, L<guestfish(1)>, L<guestmount(1)>, L<virt-cat(1)>, L<virt-copy-in"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2857
+#: ../src/guestfs.pod:2856
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, L<lvm"
"(8)>, L<disktype(1)>."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2864 ../tools/virt-win-reg.pl:587
+#: ../src/guestfs.pod:2863 ../tools/virt-win-reg.pl:587
#: ../tools/virt-make-fs.pl:553
msgid "BUGS"
msgstr "ВАДИ"
#. type: textblock
-#: ../src/guestfs.pod:2866
+#: ../src/guestfs.pod:2865
msgid "To get a list of bugs against libguestfs use this link:"
msgstr ""
"Щоб переглянути список відомих вад у libguestfs, скористайтеся таким "
"посиланням:"
#. type: textblock
-#: ../src/guestfs.pod:2868
+#: ../src/guestfs.pod:2867
msgid ""
"L<https://bugzilla.redhat.com/buglist.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
"component=libguestfs&product=Virtualization+Tools>"
#. type: textblock
-#: ../src/guestfs.pod:2870
+#: ../src/guestfs.pod:2869
msgid "To report a new bug against libguestfs use this link:"
msgstr "Для звітування щодо вад у libguestfs скористайтеся цим посиланням:"
#. type: textblock
-#: ../src/guestfs.pod:2872
+#: ../src/guestfs.pod:2871
msgid ""
"L<https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
"component=libguestfs&product=Virtualization+Tools>"
#. type: textblock
-#: ../src/guestfs.pod:2874
+#: ../src/guestfs.pod:2873
msgid "When reporting a bug, please check:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2880
+#: ../src/guestfs.pod:2879
msgid "That the bug hasn't been reported already."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2884
+#: ../src/guestfs.pod:2883
msgid "That you are testing a recent version."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2888
+#: ../src/guestfs.pod:2887
msgid "Describe the bug accurately, and give a way to reproduce it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2892
+#: ../src/guestfs.pod:2891
msgid ""
"Run libguestfs-test-tool and paste the B<complete, unedited> output into the "
"bug report."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2897 ../fish/guestfish.pod:1167
+#: ../src/guestfs.pod:2896 ../fish/guestfish.pod:1172
#: ../test-tool/libguestfs-test-tool.pod:93 ../fuse/guestmount.pod:278
msgid "AUTHORS"
msgstr "АВТОРИ"
#. type: textblock
-#: ../src/guestfs.pod:2899 ../fish/guestfish.pod:1169
+#: ../src/guestfs.pod:2898 ../fish/guestfish.pod:1174
#: ../test-tool/libguestfs-test-tool.pod:95 ../fuse/guestmount.pod:280
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2901 ../fish/guestfish.pod:1171
+#: ../src/guestfs.pod:2900 ../fish/guestfish.pod:1176
#: ../test-tool/libguestfs-test-tool.pod:97 ../fuse/guestmount.pod:282
#: ../tools/virt-edit.pl:514 ../tools/virt-win-reg.pl:602
#: ../tools/virt-list-filesystems.pl:206 ../tools/virt-tar.pl:305
msgstr "АВТОРСЬКІ ПРАВА"
#. type: textblock
-#: ../src/guestfs.pod:2903 ../fish/guestfish.pod:1173
+#: ../src/guestfs.pod:2902 ../fish/guestfish.pod:1178
#: ../test-tool/libguestfs-test-tool.pod:99
msgid "Copyright (C) 2009-2011 Red Hat Inc. L<http://libguestfs.org/>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2906
+#: ../src/guestfs.pod:2905
msgid ""
"This library is free software; you can redistribute it and/or modify it "
"under the terms of the GNU Lesser General Public License as published by the "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2911
+#: ../src/guestfs.pod:2910
msgid ""
"This library is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2916
+#: ../src/guestfs.pod:2915
msgid ""
"You should have received a copy of the GNU Lesser General Public License "
"along with this library; if not, write to the Free Software Foundation, "
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:942
+#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:947
#: ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:63 ../tools/virt-tar.pl:50
msgid "EXAMPLES"
msgstr ""
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:933
+#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:938
#, no-wrap
msgid ""
" guestfish -N help | less\n"
#. type: textblock
#: ../fish/guestfish.pod:800
msgid ""
-"If a path is prefixed with C<win:> then you can use Windows-style paths "
-"(with some limitations). The following commands are equivalent:"
+"If a path is prefixed with C<win:> then you can use Windows-style drive "
+"letters and paths (with some limitations). The following commands are "
+"equivalent:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:803
+#: ../fish/guestfish.pod:804
#, no-wrap
msgid ""
" file /WINDOWS/system32/config/system.LOG\n"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:805
+#: ../fish/guestfish.pod:806
#, no-wrap
msgid ""
-" file win:/windows/system32/config/system.log\n"
+" file win:\\windows\\system32\\config\\system.log\n"
"\n"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:807
+#: ../fish/guestfish.pod:808
#, no-wrap
msgid ""
-" file win:\\windows\\system32\\config\\system.log\n"
+" file WIN:C:\\Windows\\SYSTEM32\\CONFIG\\SYSTEM.LOG\n"
"\n"
msgstr ""
+#. type: textblock
+#: ../fish/guestfish.pod:810
+msgid ""
+"The parameter is rewritten \"behind the scenes\" by looking up the position "
+"where the drive is mounted, prepending that to the path, changing all "
+"backslash characters to forward slash, then resolving the result using L</"
+"case-sensitive-path>. For example if the E: drive was mounted on C</e> then "
+"the parameter might be rewritten like this:"
+msgstr ""
+
#. type: verbatim
-#: ../fish/guestfish.pod:809
+#: ../fish/guestfish.pod:816
#, no-wrap
msgid ""
-" file WIN:C:\\Windows\\SYSTEM32\\conFIG\\SYSTEM.LOG\n"
+" win:e:\\foo\\bar => /e/FOO/bar\n"
"\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:811
-msgid ""
-"This syntax implicitly calls C<case-sensitive-path> (q.v.) so it also "
-"handles case insensitivity like Windows would. This only works in argument "
-"positions that expect a path."
+#: ../fish/guestfish.pod:818
+msgid "This only works in argument positions that expect a path."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:815
+#: ../fish/guestfish.pod:820
msgid "UPLOADING AND DOWNLOADING FILES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:817
+#: ../fish/guestfish.pod:822
msgid ""
"For commands such as C<upload>, C<download>, C<tar-in>, C<tar-out> and "
"others which upload from or download to a local file, you can use the "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:821
+#: ../fish/guestfish.pod:826
#, no-wrap
msgid ""
" upload - /foo\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:823
+#: ../fish/guestfish.pod:828
msgid ""
"reads stdin and creates from that a file C</foo> in the disk image, and:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:826
+#: ../fish/guestfish.pod:831
#, no-wrap
msgid ""
" tar-out /etc - | tar tf -\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:828
+#: ../fish/guestfish.pod:833
msgid ""
"writes the tarball to stdout and then pipes that into the external \"tar\" "
"command (see L</PIPES>)."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:831
+#: ../fish/guestfish.pod:836
msgid ""
"When using C<-> to read from stdin, the input is read up to the end of "
"stdin. You can also use a special \"heredoc\"-like syntax to read up to "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:835
+#: ../fish/guestfish.pod:840
#, no-wrap
msgid ""
" upload -<<END /foo\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:841
+#: ../fish/guestfish.pod:846
msgid ""
"Any string of characters can be used instead of C<END>. The end marker must "
"appear on a line of its own, without any preceeding or following characters "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:845
+#: ../fish/guestfish.pod:850
msgid ""
"Note that the C<-E<lt>E<lt>> syntax only applies to parameters used to "
"upload local files (so-called \"FileIn\" parameters in the generator)."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:848
+#: ../fish/guestfish.pod:853
msgid "EXIT ON ERROR BEHAVIOUR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:850
+#: ../fish/guestfish.pod:855
msgid ""
"By default, guestfish will ignore any errors when in interactive mode (ie. "
"taking commands from a human over a tty), and will exit on the first error "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:855
+#: ../fish/guestfish.pod:860
msgid ""
"If you prefix a command with a I<-> character, then that command will not "
"cause guestfish to exit, even if that (one) command returns an error."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:859
+#: ../fish/guestfish.pod:864
msgid "REMOTE CONTROL GUESTFISH OVER A SOCKET"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:861
+#: ../fish/guestfish.pod:866
msgid ""
"Guestfish can be remote-controlled over a socket. This is useful "
"particularly in shell scripts where you want to make several different "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:866
+#: ../fish/guestfish.pod:871
msgid "Start a guestfish server process using:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:868
+#: ../fish/guestfish.pod:873
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:870
+#: ../fish/guestfish.pod:875
msgid "and then send it commands by doing:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:872
+#: ../fish/guestfish.pod:877
#, no-wrap
msgid ""
" guestfish --remote cmd [...]\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:874
+#: ../fish/guestfish.pod:879
msgid "To cause the server to exit, send it the exit command:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:876
+#: ../fish/guestfish.pod:881
#, no-wrap
msgid ""
" guestfish --remote exit\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:878
+#: ../fish/guestfish.pod:883
msgid ""
"Note that the server will normally exit if there is an error in a command. "
"You can change this in the usual way. See section L</EXIT ON ERROR "
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:882
+#: ../fish/guestfish.pod:887
msgid "CONTROLLING MULTIPLE GUESTFISH PROCESSES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish.pod:889
msgid ""
"The C<eval> statement sets the environment variable C<$GUESTFISH_PID>, which "
"is how the I<--remote> option knows where to send the commands. You can "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:888
+#: ../fish/guestfish.pod:893
#, no-wrap
msgid ""
" eval \"`guestfish --listen`\"\n"
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:896
+#: ../fish/guestfish.pod:901
msgid "REMOTE CONTROL AND CSH"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:898
+#: ../fish/guestfish.pod:903
msgid ""
"When using csh-like shells (csh, tcsh etc) you have to add the I<--csh> "
"option:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:901
+#: ../fish/guestfish.pod:906
#, no-wrap
msgid ""
" eval \"`guestfish --listen --csh`\"\n"
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:903
+#: ../fish/guestfish.pod:908
msgid "REMOTE CONTROL DETAILS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:905
+#: ../fish/guestfish.pod:910
msgid ""
"Remote control happens over a Unix domain socket called C</tmp/.guestfish-"
"$UID/socket-$PID>, where C<$UID> is the effective user ID of the process, "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:909
+#: ../fish/guestfish.pod:914
msgid "Guestfish client and server versions must match exactly."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:916
msgid "PREPARED DISK IMAGES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:913
+#: ../fish/guestfish.pod:918
msgid ""
"Use the I<-N type> or I<--new type> parameter to select one of a set of "
"preformatted disk images that guestfish can make for you to save typing. "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:919
+#: ../fish/guestfish.pod:924
msgid ""
"The new disk is called C<test1.img> for the first I<-N>, C<test2.img> for "
"the second and so on. Existing files in the current directory are "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:923
+#: ../fish/guestfish.pod:928
msgid ""
"The type briefly describes how the disk should be sized, partitioned, how "
"filesystem(s) should be created, and how content should be added. "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:931
+#: ../fish/guestfish.pod:936
msgid "To list the available types and any extra parameters they take, run:"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:935
+#: ../fish/guestfish.pod:940
msgid ""
"Note that the prepared filesystem is not mounted. You would usually have to "
"use the C<mount /dev/sda1 /> command or add the I<-m /dev/sda1> option."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:939
+#: ../fish/guestfish.pod:944
msgid ""
"If any I<-N> or I<--new> options are given, the guest is automatically "
"launched."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:944
+#: ../fish/guestfish.pod:949
msgid "Create a 100MB disk with an ext4-formatted partition:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:946
+#: ../fish/guestfish.pod:951
#, no-wrap
msgid ""
" guestfish -N fs:ext4\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:948
+#: ../fish/guestfish.pod:953
msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:955
#, no-wrap
msgid ""
" guestfish -N fs:vfat:32M -m /dev/sda1\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:952
+#: ../fish/guestfish.pod:957
msgid "Create a blank 200MB disk:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:954
+#: ../fish/guestfish.pod:959
#, no-wrap
msgid ""
" guestfish -N disk:200M\n"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:956
+#: ../fish/guestfish.pod:961
msgid "PROGRESS BARS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:958
+#: ../fish/guestfish.pod:963
msgid ""
"Some (not all) long-running commands send progress notification messages as "
"they are running. Guestfish turns these messages into progress bars."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:962
+#: ../fish/guestfish.pod:967
msgid ""
"When a command that supports progress bars takes longer than two seconds to "
"run, and if progress bars are enabled, then you will see one appearing below "
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:966
+#: ../fish/guestfish.pod:971
#, no-wrap
msgid ""
" ><fs> copy-size /large-file /another-file 2048M\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:969
+#: ../fish/guestfish.pod:974
msgid ""
"The spinner on the left hand side moves round once for every progress "
"notification received from the backend. This is a (reasonably) golden "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:976
+#: ../fish/guestfish.pod:981
msgid ""
"Progress bars are enabled by default when guestfish is used interactively. "
"You can enable them even for non-interactive modes using I<--progress-bars>, "
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:981
+#: ../fish/guestfish.pod:986
msgid "GUESTFISH COMMANDS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:983
+#: ../fish/guestfish.pod:988
msgid ""
"The commands in this section are guestfish convenience commands, in other "
"words, they are not part of the L<guestfs(3)> API."
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:986
+#: ../fish/guestfish.pod:991
msgid "help"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:988
+#: ../fish/guestfish.pod:993
#, no-wrap
msgid ""
" help\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:991
+#: ../fish/guestfish.pod:996
msgid "Without any parameter, this provides general help."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:993
+#: ../fish/guestfish.pod:998
msgid "With a C<cmd> parameter, this displays detailed help for that command."
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:995
+#: ../fish/guestfish.pod:1000
msgid "quit | exit"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:997
+#: ../fish/guestfish.pod:1002
msgid "This exits guestfish. You can also use C<^D> key."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:999
+#: ../fish/guestfish.pod:1004
msgid "@FISH_COMMANDS@"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1001
+#: ../fish/guestfish.pod:1006
msgid "COMMANDS"
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1005 ../test-tool/libguestfs-test-tool.pod:77
+#: ../fish/guestfish.pod:1010 ../test-tool/libguestfs-test-tool.pod:77
msgid "EXIT CODE"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1007
+#: ../fish/guestfish.pod:1012
msgid ""
"guestfish returns 0 if the commands completed without error, or 1 if there "
"was an error."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1014
+#: ../fish/guestfish.pod:1019
msgid "EDITOR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1016
+#: ../fish/guestfish.pod:1021
msgid ""
"The C<edit> command uses C<$EDITOR> as the editor. If not set, it uses "
"C<vi>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1019
+#: ../fish/guestfish.pod:1024
msgid "GUESTFISH_PID"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1021
+#: ../fish/guestfish.pod:1026
msgid ""
"Used with the I<--remote> option to specify the remote guestfish process to "
"control. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1025
+#: ../fish/guestfish.pod:1030
msgid "HEXEDITOR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1027
+#: ../fish/guestfish.pod:1032
msgid ""
"The L</hexedit> command uses C<$HEXEDITOR> as the external hex editor. If "
"not specified, the external L<hexedit(1)> program is used."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1031
+#: ../fish/guestfish.pod:1036
msgid "HOME"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1033
+#: ../fish/guestfish.pod:1038
msgid ""
"If compiled with GNU readline support, various files in the home directory "
"can be used. See L</FILES>."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1042
+#: ../fish/guestfish.pod:1047
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as using the B<-v> option."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1054
+#: ../fish/guestfish.pod:1059
msgid ""
"Set the path that guestfish uses to search for kernel and initrd.img. See "
"the discussion of paths in L<guestfs(3)>."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1065
+#: ../fish/guestfish.pod:1070
msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1067
+#: ../fish/guestfish.pod:1072
msgid "PAGER"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1069
+#: ../fish/guestfish.pod:1074
msgid ""
"The C<more> command uses C<$PAGER> as the pager. If not set, it uses "
"C<more>."
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1085 ../fuse/guestmount.pod:252
+#: ../fish/guestfish.pod:1090 ../fuse/guestmount.pod:252
msgid "FILES"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1089 ../fuse/guestmount.pod:256
+#: ../fish/guestfish.pod:1094 ../fuse/guestmount.pod:256
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1091 ../fuse/guestmount.pod:258
+#: ../fish/guestfish.pod:1096 ../fuse/guestmount.pod:258
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1093 ../fuse/guestmount.pod:260
+#: ../fish/guestfish.pod:1098 ../fuse/guestmount.pod:260
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1096
+#: ../fish/guestfish.pod:1101
msgid "See L</OPENING DISKS FOR READ AND WRITE>."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1098
+#: ../fish/guestfish.pod:1103
msgid "$HOME/.guestfish"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1100
+#: ../fish/guestfish.pod:1105
msgid ""
"If compiled with GNU readline support, then the command history is saved in "
"this file."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1103
+#: ../fish/guestfish.pod:1108
msgid "$HOME/.inputrc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1105
+#: ../fish/guestfish.pod:1110
msgid "/etc/inputrc"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1107
+#: ../fish/guestfish.pod:1112
msgid ""
"If compiled with GNU readline support, then these files can be used to "
"configure readline. For further information, please see L<readline(3)/"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1111
+#: ../fish/guestfish.pod:1116
msgid "To write rules which only apply to guestfish, use:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:1113
+#: ../fish/guestfish.pod:1118
#, no-wrap
msgid ""
" $if guestfish\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1117
+#: ../fish/guestfish.pod:1122
msgid ""
"Variables that you can set in inputrc that change the behaviour of guestfish "
"in useful ways include:"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1122
+#: ../fish/guestfish.pod:1127
msgid "completion-ignore-case (default: on)"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1124
+#: ../fish/guestfish.pod:1129
msgid ""
"By default, guestfish will ignore case when tab-completing paths on the "
"disk. Use:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:1127
+#: ../fish/guestfish.pod:1132
#, no-wrap
msgid ""
" set completion-ignore-case off\n"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1129
+#: ../fish/guestfish.pod:1134
msgid "to make guestfish case sensitive."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1133
+#: ../fish/guestfish.pod:1138
msgid "test1.img"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1135
+#: ../fish/guestfish.pod:1140
msgid "test2.img (etc)"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1137
+#: ../fish/guestfish.pod:1142
msgid ""
"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
"will be created in the file C<test1.img> in the current directory. The "
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1146
+#: ../fish/guestfish.pod:1151
msgid ""
"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-copy-in(1)"
">, L<virt-copy-out(1)>, L<virt-df(1)>, L<virt-edit(1)>, L<virt-filesystems(1)"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1176 ../test-tool/libguestfs-test-tool.pod:102
+#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:102
#: ../fuse/guestmount.pod:287 ../tools/virt-edit.pl:518
#: ../tools/virt-win-reg.pl:606 ../tools/virt-list-filesystems.pl:210
#: ../tools/virt-tar.pl:309 ../tools/virt-make-fs.pl:572
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1181 ../test-tool/libguestfs-test-tool.pod:107
+#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:107
#: ../fuse/guestmount.pod:292 ../tools/virt-edit.pl:523
#: ../tools/virt-win-reg.pl:611 ../tools/virt-list-filesystems.pl:215
#: ../tools/virt-tar.pl:314 ../tools/virt-make-fs.pl:577
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1186 ../test-tool/libguestfs-test-tool.pod:112
+#: ../fish/guestfish.pod:1191 ../test-tool/libguestfs-test-tool.pod:112
#: ../fuse/guestmount.pod:297 ../tools/virt-edit.pl:528
#: ../tools/virt-win-reg.pl:616 ../tools/virt-list-filesystems.pl:220
#: ../tools/virt-tar.pl:319 ../tools/virt-make-fs.pl:582
"Project-Id-Version: libguestfs.master\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Héctor Daniel Cabrera <logan@fedoraproject.org>\n"
"Language-Team: Fedora Spanish <trans-es@lists.fedoraproject.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "Cuota problemática en la cadena \"%s\"\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "no es posible resolver %%SYSTEMROOT%% de Windows"
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "no se pudo analizar el tamaño de arranque"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "no existen datos de inspección: invoque primero a guestfs_inspect_os"
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: no se ha encontrado un dispositivo raíz: sólo invoque esta función con "
"un dispositivo raíz previamente obtenido mediante guestfs_inspect_os"
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "salida inesperada del comando 'du'"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-02 13:45+0530\n"
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
"Language-Team: Gujarati\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "શબ્દમાળા \"%s\" માં દૂર થતો અવતરણચિહ્ન\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "વિશિષ્ટ માપ '%s' નું પદચ્છેદન કરી શકાતુ નથી\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "ફાઇલનો અનિચ્છનીય અંત જ્યારે ડિમન માંથી વાંચી રહ્યા હોય"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs.master.libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-16 12:57+0530\n"
"Last-Translator: Rajesh Ranjan <rranjan@redhat.com>\n"
"Language-Team: Hindi <Red Hat>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "स्ट्रिंग में \"%s\" रवअवे उद्धरण\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "आकार विशिष्टता '%s' विश्लेषित नहीं कर सका\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "डेमॉन से पढ़ने के दौरान फाइल का अप्रत्याशित अंत"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs 1.0.83\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-24 11:56+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: kn-IN <>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" ಎಂಬ ವಾಕ್ಯದಲ್ಲಿ ರನ್ಅವೆ ಕೋಟ್\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "ಗಾತ್ರದ ವಿಶಿಷ್ಟತೆ '%s' ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ \n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "ಡೀಮನ್ನಿಂದ ಓದುವಾಗ ಕಡತದ ಅನಿರೀಕ್ಷಿತ ಅಂತ್ಯವು ಕಂಡುಬಂದಿಲ್ಲ"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.9.18\n"
+"Project-Id-Version: libguestfs 1.11.0\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr ""
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, c-format
msgid "could not parse integer in version number: %s"
msgstr ""
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
msgid "unexpected end of output from db_dump command"
msgstr ""
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs.master.libguestfs.ml\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-02 18:35+0530\n"
"Last-Translator: Ani Peter | അനി പീറ്റര് <apeter@redhat.com>\n"
"Language-Team: Swathanthra Malayalam Computing | സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ് <smc-"
msgid "Runaway quote in string \"%s\"\n"
msgstr "Runaway quote in string \"%s\"\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "വ്യാപ്തിയുടെ വിവരണം '%s' പാഴ്സ് ചെയ്യുവാന് സാധ്യമായില്ല\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "ഡെമണില് നിന്നും വായിക്കുമ്പോള് അപ്രതീക്ഷിതമായി ഫയല് അവസാനിച്ചിരിക്കുന്നു"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: mr\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-03 19:10+0530\n"
"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" अक्षरमाळामध्ये रनअव्हे शब्द आढळले\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "आकार संरचना '%s' वाचणे अशक्य\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "डिमन पासून वाचतेवेळी फाइल अनपेक्षीतपणे समाप्त झाले"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs 1.5.4\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-09-02 15:28+0200\n"
"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
"Language-Team: Fedora\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "Los aanhalingsteken in tekenreeks \"%s\"\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "Kan Windows %%SYSTEMROOT%% niet oplossen"
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, c-format
msgid "could not parse integer in version number: %s"
msgstr ""
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "geen inspectie data: roep eerst guestfs_inspect_os aan"
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: root apparaat niet gevonden: roep deze functie alleen aan met een root "
"apparaat eerder teruggegeven door guestfs_inspect_os"
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "onverwachte output van 'du' commando"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs.master.or\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-02-01 18:17+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "ବାକ୍ୟଖଣ୍ଡ \"%s\" ରେ ପଳାୟନ ଟିପ୍ପଣୀ\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "ଆକାର ବିଶେଷ ଦ୍ରଷ୍ଟବ୍ୟ '%s' କୁ ବିଶ୍ଳେଷଣ କରିପାରିଲା ନାହିଁ\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "ଫାଇଲର ଅପ୍ରତ୍ୟାଶିତ ସମାପ୍ତି ଯେତେବେଳେ ଡେମନରୁ ପଢ଼ୁଅଛି"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs 1.0.81\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-12-23 17:40+0530\n"
"Last-Translator: Jaswinder Singh <j.phulewala@gmail.com>\n"
"Language-Team: PLTG\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "ਸਤਰ \"%s\" ਵਿੱਚ ਗਲਤ ਸ਼ਬਦਾਵਲੀ ਹੈ\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr "<ਘਟਾਇਆ, ਅਸਲੀ ਅਕਾਰ %zu ਬਾਈਟ>"
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr "%s ਦਾ ਅਕਾਰ ਬੇਲੋੜਾ ਹੈ (%<PRIi64> ਬਾਈਟਾਂ)"
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "Windows %%SYSTEMROOT%% ਨੂੰ ਰਿਜ਼ੌਲਵ ਨਹੀਂ ਕਰ ਸਕਦਾ"
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, c-format
msgid "could not parse integer in version number: %s"
msgstr "ਵਰਜਨ ਨੰਬਰ ਵਿੱਚ ਪੂਰਨਅੰਕ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਿਆ: %s"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "ਕੋਈ ਪੜਤਾਲ ਡਾਟਾ ਨਹੀਂ ਹੈ: ਪਹਿਲਾਂ guestfs_inspect_os ਨੂੰ ਕਾਲ ਕਰੋ"
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: ਰੂਟ (root) ਜੰਤਰ ਨਹੀਂ ਲੱਭਿਆ: ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ ਸਿਰਫ ਰੂਟ ਜੰਤਰ ਨਾਲ ਕਾਲ ਕਰੋ ਜੋ ਪਹਿਲਾਂ "
"guestfs_inspect_os ਦੁਆਰਾ ਦਿੱਤਾ ਗਿਆ ਸੀ"
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr "ਇੱਕ Windows ਗਿਸਟ ਨਹੀਂ ਹੈ, ਜਾਂ systemroot ਦਾ ਪਤਾ ਨਹੀਂ ਲਾਇਆ ਜਾ ਸਕਦਾ"
-#: src/inspect.c:2188
+#: src/inspect.c:2191
#, fuzzy
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr "ਇੱਕ Windows ਗਿਸਟ ਨਹੀਂ ਹੈ, ਜਾਂ systemroot ਦਾ ਪਤਾ ਨਹੀਂ ਲਾਇਆ ਜਾ ਸਕਦਾ"
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
msgid "unexpected end of output from db_dump command"
msgstr "db_dump ਕਮਾਂਡ ਤੋਂ ਆਊਟਪੁੱਟ ਦਾ ਅਚਾਨਕ ਅੰਤ"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr "%s: ਫਾਇਲ ਖਾਲੀ ਹੈ"
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-12-21 14:12+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "Cytat ucieczki w ciągu \"%s\"\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr "<skrócone, pierwotny rozmiar %zu bajtów>"
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr "rozmiar %s jest nierozsądnie duży (%<PRIi64> bajtów)"
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "nie można rozwiązać %%SYSTEMROOT%% systemu Windows"
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, c-format
msgid "could not parse integer in version number: %s"
msgstr "nie można przetworzyć liczby całkowitej w numerze wersji: %s"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "brak danych badania: najpierw należy wywołać guestfs_inspect_os"
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: nie odnaleziono urządzenia root: należy wywoływać tę funkcję tylko z "
"urządzeniem root poprzednio zwróconym przez guestfs_inspect_os"
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr "nie jest gościem systemu Windows lub nie można określić systemroot"
-#: src/inspect.c:2188
+#: src/inspect.c:2191
#, fuzzy
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr "nie jest gościem systemu Windows lub nie można określić systemroot"
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
msgid "unexpected end of output from db_dump command"
msgstr "nieoczekiwany koniec wyjścia polecenia db_dump"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr "%s: plik jest pusty"
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs 1.0.81\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-01-29 13:38+0530\n"
"Last-Translator: I. Felix <ifelix@redhat.com>\n"
"Language-Team: ta_IN <kde-i18n-doc@kde.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "Runaway quote in string \"%s\"\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "'%s'க்கான பகுப்பு அளவை குறிப்பிட முடியவில்லை\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "unexpected end of file when reading from daemon"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs.master.libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2010-01-27 20:03+0530\n"
"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
"Language-Team: Telugu <en@li.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" స్ట్రింగునందు రన్యెవే స్ట్రింగ్\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr ""
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, fuzzy, c-format
msgid "could not parse integer in version number: %s"
msgstr "పరిమాణ వివరణలను పార్శ్ చేయలేకపోయింది '%s'\n"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
-#: src/inspect.c:2188
+#: src/inspect.c:2191
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr ""
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
#, fuzzy
msgid "unexpected end of output from db_dump command"
msgstr "డెమోన్నుండి చదువునప్పుడు అనుకోని ఫైలు ముగింపు"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr ""
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-04-09 20:12+0100\n"
+"POT-Creation-Date: 2011-04-12 20:13+0100\n"
"PO-Revision-Date: 2011-03-22 15:28+0000\n"
"Last-Translator: yurchor <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
msgid "Runaway quote in string \"%s\"\n"
msgstr "У рядку «%s» не вистачає лапок\n"
-#: fish/fish.c:1413
+#: fish/fish.c:1451
#, c-format
msgid ""
"%s: to use Windows drive letters, you must inspect the guest (\"-i\" option "
"or run \"inspect-os\" command)\n"
msgstr ""
-#: fish/fish.c:1420
+#: fish/fish.c:1457
#, c-format
msgid "%s: to use Windows drive letters, this must be a Windows guest\n"
msgstr ""
-#: fish/fish.c:1436
+#: fish/fish.c:1471
#, c-format
msgid ""
"%s: drive '%c:' not found. To list available drives do:\n"
" inspect-get-drive-mappings %s\n"
msgstr ""
-#: fish/fish.c:1454
+#: fish/fish.c:1490
#, c-format
msgid ""
-"%s: to access '%c:', mount %s on / first. One way to do this is:\n"
+"%s: to access '%c:', mount %s first. One way to do this is:\n"
" umount-all\n"
" mount %s /\n"
msgstr ""
msgid "<truncated, original size %zu bytes>"
msgstr "<скорочено, початковий розмір — %zu байтів>"
-#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2898 src/inspect.c:2941
-#: src/inspect.c:2991 src/inspect.c:3035
+#: src/inspect.c:489 src/inspect.c:1183 src/inspect.c:2901 src/inspect.c:2944
+#: src/inspect.c:2994 src/inspect.c:3038
#, c-format
msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
msgstr "розмір %s неймовірно великий (%<PRIi64> байтів)"
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "не вдалося визначити %%SYSTEMROOT%% Windows"
-#: src/inspect.c:1911 src/inspect.c:1924
+#: src/inspect.c:1914 src/inspect.c:1927
#, c-format
msgid "could not parse integer in version number: %s"
msgstr "не вдалося обробити ціле число у номері версії: %s"
-#: src/inspect.c:2020
+#: src/inspect.c:2023
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "немає даних для вивчення: спочатку виконайте виклик guestfs_inspect_os"
-#: src/inspect.c:2032
+#: src/inspect.c:2035
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"кореневого пристрою, дані якого раніше було повернуто функцією "
"guestfs_inspect_os"
-#: src/inspect.c:2172
+#: src/inspect.c:2175
msgid "not a Windows guest, or systemroot could not be determined"
msgstr "не є гостьовою системою Windows або не вдалося визначити systemroot"
-#: src/inspect.c:2188
+#: src/inspect.c:2191
#, fuzzy
msgid "not a Windows guest, or CurrentControlSet could not be determined"
msgstr "не є гостьовою системою Windows або не вдалося визначити systemroot"
-#: src/inspect.c:2515 src/inspect.c:2537 src/inspect.c:2562
+#: src/inspect.c:2518 src/inspect.c:2540 src/inspect.c:2565
msgid "unexpected end of output from db_dump command"
msgstr "неочікуване завершення даних, виведених командою db_dump"
-#: src/inspect.c:3000
+#: src/inspect.c:3003
#, c-format
msgid "%s: file is empty"
msgstr "%s: файл порожній"
-#: src/inspect.c:3063
+#: src/inspect.c:3066
msgid ""
"inspection API not available since this version of libguestfs was compiled "
"without PCRE or hivex libraries"