diff options
-rw-r--r-- | BUGS | 8 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | po-docs/ja.po | 1855 | ||||
-rw-r--r-- | po-docs/libguestfs-docs.pot | 1821 | ||||
-rw-r--r-- | po-docs/uk.po | 1859 | ||||
-rw-r--r-- | po/en_GB.po | 2 | ||||
-rw-r--r-- | po/es.po | 2 | ||||
-rw-r--r-- | po/gu.po | 2 | ||||
-rw-r--r-- | po/hi.po | 2 | ||||
-rw-r--r-- | po/kn.po | 2 | ||||
-rw-r--r-- | po/libguestfs.pot | 4 | ||||
-rw-r--r-- | po/ml.po | 2 | ||||
-rw-r--r-- | po/mr.po | 2 | ||||
-rw-r--r-- | po/nl.po | 2 | ||||
-rw-r--r-- | po/or.po | 2 | ||||
-rw-r--r-- | po/pa.po | 2 | ||||
-rw-r--r-- | po/pl.po | 2 | ||||
-rw-r--r-- | po/ta.po | 2 | ||||
-rw-r--r-- | po/te.po | 2 | ||||
-rw-r--r-- | po/uk.po | 2 |
20 files changed, 2750 insertions, 2827 deletions
@@ -1,5 +1,5 @@ NOTE: This file is automatically generated from "update-bugs.sh". -Last updated: 2012-04-24 +Last updated: 2012-05-01 This contains a local list of the bugs that are open against libguestfs. Bugs are tracked in the Red Hat Bugzilla database @@ -110,6 +110,9 @@ Bugs in NEW or ASSIGNED state are open and waiting for someone to fix. 815149 NEW https://bugzilla.redhat.com/show_bug.cgi?id=815149 virt-alignment-scan gives error "part_list: could not parse row from output of parted print command: /dev/vda:4194304B:virtblk:512:512:msdos:Virtio Block Device" +816098 NEW https://bugzilla.redhat.com/show_bug.cgi?id=816098 + virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space + 563450 NEW https://bugzilla.redhat.com/show_bug.cgi?id=563450 list-devices returns devices of different types out of order @@ -149,6 +152,9 @@ Bugs in NEW or ASSIGNED state are open and waiting for someone to fix. 806179 NEW https://bugzilla.redhat.com/show_bug.cgi?id=806179 RFE: support inspection of icon for more Windows guests +816839 NEW https://bugzilla.redhat.com/show_bug.cgi?id=816839 + data overflow error when debug progress -1 + 507278 NEW https://bugzilla.redhat.com/show_bug.cgi?id=507278 libguestfs fails to build on Fedora sparc64 diff --git a/configure.ac b/configure.ac index 0f9cbaa1..ccedc793 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ # freeform string. m4_define([libguestfs_major], [1]) m4_define([libguestfs_minor], [16]) -m4_define([libguestfs_release], [20]) +m4_define([libguestfs_release], [21]) AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/po-docs/ja.po b/po-docs/ja.po index b914e2b8..8822bdf0 100644 --- a/po-docs/ja.po +++ b/po-docs/ja.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: libguestfs\n" "Report-Msgid-Bugs-To: libguestfs@redhat.com\n" -"POT-Creation-Date: 2012-04-24 11:27+0200\n" +"POT-Creation-Date: 2012-05-01 15:29+0200\n" "PO-Revision-Date: 2012-01-23 13:10+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Japanese <trans-ja@lists.fedoraproject.org>\n" @@ -442,7 +442,7 @@ msgstr "" #: ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 #: ../fish/guestfish.pod:673 ../format/virt-format.pod:96 #: ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:161 -#: ../src/guestfs.pod:2885 +#: ../src/guestfs.pod:2866 msgid "For example:" msgstr "" @@ -975,22 +975,22 @@ msgstr "" #: ../src/guestfs-actions.pod:2880 ../src/guestfs-actions.pod:3423 #: ../src/guestfs-actions.pod:3429 ../src/guestfs-actions.pod:3437 #: ../src/guestfs-actions.pod:3444 ../src/guestfs-actions.pod:3451 -#: ../src/guestfs.pod:403 ../src/guestfs.pod:408 ../src/guestfs.pod:413 -#: ../src/guestfs.pod:417 ../src/guestfs.pod:422 ../src/guestfs.pod:426 -#: ../src/guestfs.pod:431 ../src/guestfs.pod:436 ../src/guestfs.pod:1116 -#: ../src/guestfs.pod:1120 ../src/guestfs.pod:1124 ../src/guestfs.pod:1129 -#: ../src/guestfs.pod:1137 ../src/guestfs.pod:1156 ../src/guestfs.pod:1164 -#: ../src/guestfs.pod:1186 ../src/guestfs.pod:1190 ../src/guestfs.pod:1194 -#: ../src/guestfs.pod:1198 ../src/guestfs.pod:1202 ../src/guestfs.pod:1206 -#: ../src/guestfs.pod:1696 ../src/guestfs.pod:1701 ../src/guestfs.pod:1705 -#: ../src/guestfs.pod:1807 ../src/guestfs.pod:1812 ../src/guestfs.pod:1816 -#: ../src/guestfs.pod:1826 ../src/guestfs.pod:2115 ../src/guestfs.pod:2120 -#: ../src/guestfs.pod:2126 ../src/guestfs.pod:2134 ../src/guestfs.pod:2652 -#: ../src/guestfs.pod:2658 ../src/guestfs.pod:2663 ../src/guestfs.pod:2669 -#: ../src/guestfs.pod:3061 ../src/guestfs.pod:3066 ../src/guestfs.pod:3070 -#: ../src/guestfs.pod:3074 ../src/guestfs.pod:3078 ../src/guestfs.pod:3092 -#: ../src/guestfs.pod:3097 ../src/guestfs.pod:3331 ../src/guestfs.pod:3335 -#: ../src/guestfs.pod:3339 ../src/guestfs.pod:3343 +#: ../src/guestfs.pod:384 ../src/guestfs.pod:389 ../src/guestfs.pod:394 +#: ../src/guestfs.pod:398 ../src/guestfs.pod:403 ../src/guestfs.pod:407 +#: ../src/guestfs.pod:412 ../src/guestfs.pod:417 ../src/guestfs.pod:1097 +#: ../src/guestfs.pod:1101 ../src/guestfs.pod:1105 ../src/guestfs.pod:1110 +#: ../src/guestfs.pod:1118 ../src/guestfs.pod:1137 ../src/guestfs.pod:1145 +#: ../src/guestfs.pod:1167 ../src/guestfs.pod:1171 ../src/guestfs.pod:1175 +#: ../src/guestfs.pod:1179 ../src/guestfs.pod:1183 ../src/guestfs.pod:1187 +#: ../src/guestfs.pod:1677 ../src/guestfs.pod:1682 ../src/guestfs.pod:1686 +#: ../src/guestfs.pod:1788 ../src/guestfs.pod:1793 ../src/guestfs.pod:1797 +#: ../src/guestfs.pod:1807 ../src/guestfs.pod:2096 ../src/guestfs.pod:2101 +#: ../src/guestfs.pod:2107 ../src/guestfs.pod:2115 ../src/guestfs.pod:2633 +#: ../src/guestfs.pod:2639 ../src/guestfs.pod:2644 ../src/guestfs.pod:2650 +#: ../src/guestfs.pod:3042 ../src/guestfs.pod:3047 ../src/guestfs.pod:3051 +#: ../src/guestfs.pod:3055 ../src/guestfs.pod:3059 ../src/guestfs.pod:3073 +#: ../src/guestfs.pod:3078 ../src/guestfs.pod:3312 ../src/guestfs.pod:3316 +#: ../src/guestfs.pod:3320 ../src/guestfs.pod:3324 #: ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 #: ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:721 #: ../tools/virt-win-reg.pl:727 ../tools/virt-win-reg.pl:733 @@ -1056,7 +1056,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 #: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325 #: ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 -#: ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3269 +#: ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3250 #: ../test-tool/libguestfs-test-tool.pod:100 #: ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 #: ../tools/virt-make-fs.pl:559 ../tools/virt-tar.pl:296 @@ -1110,7 +1110,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 #: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338 #: ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 -#: ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3354 +#: ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3335 #: ../test-tool/libguestfs-test-tool.pod:110 #: ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 #: ../tools/virt-make-fs.pl:589 ../tools/virt-tar.pl:315 @@ -3702,7 +3702,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1171 +#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1152 msgid "SECURITY" msgstr "" @@ -4588,7 +4588,7 @@ msgstr "" #. type: =head1 #: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 #: ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:257 -#: ../src/guestfs.pod:3208 ../test-tool/libguestfs-test-tool.pod:95 +#: ../src/guestfs.pod:3189 ../test-tool/libguestfs-test-tool.pod:95 msgid "ENVIRONMENT VARIABLES" msgstr "" @@ -4855,7 +4855,7 @@ msgstr "" #: ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 #: ../perl/examples/guestfs-perl.pod:52 #: ../python/examples/guestfs-python.pod:54 -#: ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3350 +#: ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3331 #: ../test-tool/libguestfs-test-tool.pod:106 msgid "AUTHORS" msgstr "" @@ -4869,7 +4869,7 @@ msgstr "" #: ../fuse/guestmount.pod:330 ../java/examples/guestfs-java.pod:60 #: ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 #: ../python/examples/guestfs-python.pod:56 -#: ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3352 +#: ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3333 #: ../test-tool/libguestfs-test-tool.pod:108 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)" msgstr "" @@ -4900,7 +4900,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:102 #: ../perl/examples/guestfs-perl.pod:63 #: ../python/examples/guestfs-python.pod:65 -#: ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3359 +#: ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3340 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 " @@ -4915,7 +4915,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:107 #: ../perl/examples/guestfs-perl.pod:68 #: ../python/examples/guestfs-python.pod:70 -#: ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3364 +#: ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3345 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 " @@ -4930,7 +4930,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:112 #: ../perl/examples/guestfs-perl.pod:73 #: ../python/examples/guestfs-python.pod:75 -#: ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3369 +#: ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3350 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, " @@ -5282,7 +5282,7 @@ msgstr "" #: ../fish/guestfish-actions.pod:1509 ../fish/guestfish-actions.pod:1774 #: ../fish/guestfish-actions.pod:2189 ../src/guestfs-actions.pod:18 #: ../src/guestfs-actions.pod:2438 ../src/guestfs-actions.pod:2862 -#: ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1692 +#: ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1673 #: ../tools/virt-win-reg.pl:717 msgid "Notes:" msgstr "" @@ -5956,7 +5956,7 @@ msgstr "" #. type: textblock #: ../examples/guestfs-testing.pod:54 ../examples/guestfs-testing.pod:161 #: ../examples/guestfs-testing.pod:174 ../examples/guestfs-testing.pod:234 -#: ../src/guestfs.pod:2800 +#: ../src/guestfs.pod:2781 msgid "or:" msgstr "" @@ -6130,7 +6130,7 @@ msgid "Try importing virt-df CSV output into a spreadsheet or database." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3082 +#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3063 msgid "Run:" msgstr "" @@ -6879,7 +6879,7 @@ msgstr "" #. type: =item #: ../fish/guestfish-actions.pod:171 ../src/guestfs-actions.pod:231 -#: ../src/guestfs.pod:2965 +#: ../src/guestfs.pod:2946 msgid "C<format>" msgstr "" @@ -16122,7 +16122,7 @@ msgstr "" #. type: =item #: ../fish/guestfish-actions.pod:4441 ../src/guestfs-actions.pod:6919 -#: ../src/guestfs.pod:2924 +#: ../src/guestfs.pod:2905 msgid "C<appliance>" msgstr "" @@ -19790,7 +19790,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2250 +#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2231 #, no-wrap msgid "" " guestfish -N fs\n" @@ -21264,7 +21264,7 @@ msgid "" msgstr "" #. type: =head2 -#: ../fish/guestfish.pod:825 ../src/guestfs.pod:534 +#: ../fish/guestfish.pod:825 ../src/guestfs.pod:515 msgid "ENCRYPTED DISKS" msgstr "" @@ -21629,7 +21629,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:982 ../src/guestfs.pod:987 +#: ../fish/guestfish.pod:982 ../src/guestfs.pod:968 #, no-wrap msgid "" " #!/bin/bash -\n" @@ -21915,7 +21915,7 @@ msgid "COMMANDS" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1527 +#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1508 msgid "@ACTIONS@" msgstr "" @@ -21939,17 +21939,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3212 +#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3193 msgid "FEBOOTSTRAP_KERNEL" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3214 +#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3195 msgid "FEBOOTSTRAP_MODULES" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3216 +#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3197 msgid "" "These two environment variables allow the kernel that libguestfs uses in the " "appliance to be selected. If C<$FEBOOTSTRAP_KERNEL> is not set, then the " @@ -22007,17 +22007,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3222 +#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3203 msgid "LIBGUESTFS_APPEND" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3224 +#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3205 msgid "Pass additional options to the guest kernel." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3226 +#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3207 msgid "LIBGUESTFS_DEBUG" msgstr "" @@ -22029,18 +22029,18 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3231 +#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3212 msgid "LIBGUESTFS_MEMSIZE" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3233 +#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3214 msgid "" "Set the memory allocated to the qemu process, in megabytes. For example:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3236 +#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3217 #, no-wrap msgid "" " LIBGUESTFS_MEMSIZE=700\n" @@ -22048,7 +22048,7 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3238 +#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3219 msgid "LIBGUESTFS_PATH" msgstr "" @@ -22060,19 +22060,19 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3243 +#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3224 msgid "LIBGUESTFS_QEMU" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3245 +#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3226 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: =item -#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3251 +#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3232 msgid "LIBGUESTFS_TRACE" msgstr "" @@ -22095,19 +22095,19 @@ msgstr "" #. type: =item #: ../fish/guestfish.pod:1196 ../sparsify/virt-sparsify.pod:261 -#: ../src/guestfs.pod:3256 +#: ../src/guestfs.pod:3237 msgid "TMPDIR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3258 +#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3239 msgid "" "Location of temporary directory, defaults to C</tmp> except for the cached " "supermin appliance which defaults to C</var/tmp>." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3261 +#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3242 msgid "" "If libguestfs was compiled to use the supermin appliance then the real " "appliance is cached in this directory, shared between all handles belonging " @@ -22256,7 +22256,7 @@ msgstr "" #. type: textblock #: ../fish/guestfish.pod:1302 ../fuse/guestmount.pod:334 -#: ../src/guestfs.pod:3356 ../test-tool/libguestfs-test-tool.pod:112 +#: ../src/guestfs.pod:3337 ../test-tool/libguestfs-test-tool.pod:112 msgid "Copyright (C) 2009-2012 Red Hat Inc. L<http://libguestfs.org/>" msgstr "" @@ -24887,8 +24887,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 -#: ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:484 -#: ../src/guestfs.pod:1309 ../src/guestfs.pod:1448 ../src/guestfs.pod:2697 +#: ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:465 +#: ../src/guestfs.pod:1290 ../src/guestfs.pod:1429 ../src/guestfs.pod:2678 msgid "1." msgstr "" @@ -24927,8 +24927,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 -#: ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:490 -#: ../src/guestfs.pod:1313 ../src/guestfs.pod:1452 ../src/guestfs.pod:2722 +#: ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:471 +#: ../src/guestfs.pod:1294 ../src/guestfs.pod:1433 ../src/guestfs.pod:2703 msgid "2." msgstr "" @@ -24950,8 +24950,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 -#: ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:501 -#: ../src/guestfs.pod:1458 +#: ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:482 +#: ../src/guestfs.pod:1439 msgid "3." msgstr "" @@ -36672,68 +36672,39 @@ msgstr "" #. type: textblock #: ../src/guestfs.pod:25 msgid "" -"Libguestfs is a library for accessing and modifying guest disk images. " -"Amongst the things this is good for: making batch configuration changes to " -"guests, getting disk used/free statistics (see also: virt-df), migrating " -"between virtualization systems (see also: virt-p2v), performing partial " -"backups, performing partial guest clones, cloning guests and changing " -"registry/UUID/hostname info, and much else besides." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:33 -msgid "" -"Libguestfs uses Linux kernel and qemu code, and can access any type of guest " -"filesystem that Linux and qemu can, including but not limited to: ext2/3/4, " -"btrfs, FAT and NTFS, LVM, many different disk partition schemes, qcow, " -"qcow2, vmdk." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:38 -msgid "" -"Libguestfs provides ways to enumerate guest storage (eg. partitions, LVs, " -"what filesystem is in each LV, etc.). It can also run commands in the " -"context of the guest. Also you can access filesystems over FUSE." +"Libguestfs is a library for accessing and modifying disk images and virtual " +"machines. This manual page documents the C API." msgstr "" #. type: textblock -#: ../src/guestfs.pod:43 +#: ../src/guestfs.pod:28 msgid "" -"Libguestfs is a library that can be linked with C and C++ management " -"programs (or management programs written in OCaml, Perl, Python, Ruby, Java, " -"PHP, Erlang, Haskell or C#). You can also use it from shell scripts or the " -"command line." +"If you are looking for an introduction to libguestfs, see the web site: " +"L<http://libguestfs.org/>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:48 +#: ../src/guestfs.pod:31 msgid "" -"You don't need to be root to use libguestfs, although obviously you do need " -"enough permissions to access the disk images." +"Each virt tool has its own man page (for a full list, go to L</SEE ALSO> at " +"the end of this file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:51 +#: ../src/guestfs.pod:34 msgid "" -"Libguestfs is a large API because it can do many things. For a gentle " -"introduction, please read the L</API OVERVIEW> section next." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:54 -msgid "" -"There are also some example programs in the L<guestfs-examples(3)> manual " -"page." +"For examples of using the API from C, see L<guestfs-examples(3)>. For " +"examples in other languages, see L</USING LIBGUESTFS WITH OTHER PROGRAMMING " +"LANGUAGES> below." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:57 +#: ../src/guestfs.pod:38 msgid "API OVERVIEW" msgstr "" #. type: textblock -#: ../src/guestfs.pod:59 +#: ../src/guestfs.pod:40 msgid "" "This section provides a gentler overview of the libguestfs API. We also try " "to group API calls together, where that may not be obvious from reading " @@ -36741,12 +36712,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:64 +#: ../src/guestfs.pod:45 msgid "HANDLES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:66 +#: ../src/guestfs.pod:47 msgid "" "Before you can use libguestfs calls, you have to create a handle. Then you " "must add at least one disk image to the handle, followed by launching the " @@ -36756,12 +36727,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:73 +#: ../src/guestfs.pod:54 msgid "The general structure of all libguestfs-using programs looks like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:76 +#: ../src/guestfs.pod:57 #, no-wrap msgid "" " guestfs_h *g = guestfs_create ();\n" @@ -36769,7 +36740,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:78 +#: ../src/guestfs.pod:59 #, no-wrap msgid "" " /* Call guestfs_add_drive additional times if there are\n" @@ -36780,7 +36751,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:83 +#: ../src/guestfs.pod:64 #, no-wrap msgid "" " /* Most manipulation calls won't work until you've launched\n" @@ -36792,7 +36763,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:89 +#: ../src/guestfs.pod:70 #, no-wrap msgid "" " /* Now you can examine what partitions, LVs etc are available.\n" @@ -36803,7 +36774,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:94 +#: ../src/guestfs.pod:75 #, no-wrap msgid "" " /* To access a filesystem in the image, you must mount it.\n" @@ -36813,7 +36784,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:98 +#: ../src/guestfs.pod:79 #, no-wrap msgid "" " /* Now you can perform filesystem actions on the guest\n" @@ -36824,7 +36795,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:103 +#: ../src/guestfs.pod:84 #, no-wrap msgid "" " /* This is only needed for libguestfs < 1.5.24. Since then\n" @@ -36836,7 +36807,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:109 +#: ../src/guestfs.pod:90 #, no-wrap msgid "" " /* Close the handle 'g'. */\n" @@ -36845,7 +36816,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:112 +#: ../src/guestfs.pod:93 msgid "" "The code above doesn't include any error checking. In real code you should " "check return values carefully for errors. In general all functions that " @@ -36857,12 +36828,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:121 +#: ../src/guestfs.pod:102 msgid "DISK IMAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:123 +#: ../src/guestfs.pod:104 msgid "" "The image filename (C<\"guest.img\"> in the example above) could be a disk " "image from a virtual machine, a L<dd(1)> copy of a physical hard disk, an " @@ -36872,7 +36843,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:129 +#: ../src/guestfs.pod:110 msgid "" "The call you should use in modern code for adding drives is L</" "guestfs_add_drive_opts>. To add a disk image, allowing writes, and " @@ -36880,7 +36851,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:133 +#: ../src/guestfs.pod:114 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -36890,12 +36861,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:137 +#: ../src/guestfs.pod:118 msgid "You can add a disk read-only using:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:139 +#: ../src/guestfs.pod:120 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -36906,14 +36877,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:144 +#: ../src/guestfs.pod:125 msgid "" "or by calling the older function L</guestfs_add_drive_ro>. In either case " "libguestfs won't modify the file." msgstr "" #. type: textblock -#: ../src/guestfs.pod:147 +#: ../src/guestfs.pod:128 msgid "" "Be extremely cautious if the disk image is in use, eg. if it is being used " "by a virtual machine. Adding it read-write will almost certainly cause disk " @@ -36921,7 +36892,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:151 +#: ../src/guestfs.pod:132 msgid "" "You must add at least one disk image, and you may add multiple disk images. " "In the API, the disk images are usually referred to as C</dev/sda> (for the " @@ -36929,7 +36900,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:156 +#: ../src/guestfs.pod:137 msgid "" "Once L</guestfs_launch> has been called you cannot add any more images. You " "can call L</guestfs_list_devices> to get a list of the device names, in the " @@ -36937,12 +36908,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:161 +#: ../src/guestfs.pod:142 msgid "MOUNTING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:163 +#: ../src/guestfs.pod:144 msgid "" "Before you can read or write files, create directories and so on in a disk " "image that contains filesystems, you have to mount those filesystems using " @@ -36952,7 +36923,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:170 +#: ../src/guestfs.pod:151 #, no-wrap msgid "" " guestfs_mount_options (g, \"\", \"/dev/sda1\", \"/\");\n" @@ -36960,7 +36931,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:172 +#: ../src/guestfs.pod:153 msgid "" "where C</dev/sda1> means literally the first partition (C<1>) of the first " "disk image that we added (C</dev/sda>). If the disk contains Linux LVM2 " @@ -36970,7 +36941,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:178 +#: ../src/guestfs.pod:159 msgid "" "If you are given a disk image and you don't know what it contains then you " "have to find out. Libguestfs can do that too: use L</" @@ -36981,7 +36952,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:186 +#: ../src/guestfs.pod:167 msgid "" "Libguestfs also has a set of APIs for inspection of unknown disk images (see " "L</INSPECTION> below). But you might find it easier to look at higher level " @@ -36989,19 +36960,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:191 +#: ../src/guestfs.pod:172 msgid "" "To mount a filesystem read-only, use L</guestfs_mount_ro>. There are " "several other variations of the C<guestfs_mount_*> call." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:194 +#: ../src/guestfs.pod:175 msgid "FILESYSTEM ACCESS AND MODIFICATION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:196 +#: ../src/guestfs.pod:177 msgid "" "The majority of the libguestfs API consists of fairly low-level calls for " "accessing and modifying the files, directories, symlinks etc on mounted " @@ -37011,21 +36982,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:202 +#: ../src/guestfs.pod:183 msgid "" "Specify filenames as full paths, starting with C<\"/\"> and including the " "mount point." msgstr "" #. type: textblock -#: ../src/guestfs.pod:205 +#: ../src/guestfs.pod:186 msgid "" "For example, if you mounted a filesystem at C<\"/\"> and you want to read " "the file called C<\"etc/passwd\"> then you could do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:208 +#: ../src/guestfs.pod:189 #, no-wrap msgid "" " char *data = guestfs_cat (g, \"/etc/passwd\");\n" @@ -37033,7 +37004,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:210 +#: ../src/guestfs.pod:191 msgid "" "This would return C<data> as a newly allocated buffer containing the full " "content of that file (with some conditions: see also L</DOWNLOADING> below), " @@ -37041,14 +37012,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:214 +#: ../src/guestfs.pod:195 msgid "" "As another example, to create a top-level directory on that filesystem " "called C<\"var\"> you would do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:217 +#: ../src/guestfs.pod:198 #, no-wrap msgid "" " guestfs_mkdir (g, \"/var\");\n" @@ -37056,12 +37027,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:219 +#: ../src/guestfs.pod:200 msgid "To create a symlink you could do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:221 +#: ../src/guestfs.pod:202 #, no-wrap msgid "" " guestfs_ln_s (g, \"/etc/init.d/portmap\",\n" @@ -37070,14 +37041,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:224 +#: ../src/guestfs.pod:205 msgid "" "Libguestfs will reject attempts to use relative paths and there is no " "concept of a current working directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:227 +#: ../src/guestfs.pod:208 msgid "" "Libguestfs can return errors in many situations: for example if the " "filesystem isn't writable, or if a file or directory that you requested " @@ -37087,33 +37058,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:233 +#: ../src/guestfs.pod:214 msgid "" "File writes are affected by the per-handle umask, set by calling L</" "guestfs_umask> and defaulting to 022. See L</UMASK>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:236 +#: ../src/guestfs.pod:217 msgid "PARTITIONING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:238 +#: ../src/guestfs.pod:219 msgid "" "Libguestfs contains API calls to read, create and modify partition tables on " "disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:241 +#: ../src/guestfs.pod:222 msgid "" "In the common case where you want to create a single partition covering the " "whole disk, you should use the L</guestfs_part_disk> call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:245 +#: ../src/guestfs.pod:226 #, no-wrap msgid "" " const char *parttype = \"mbr\";\n" @@ -37124,18 +37095,18 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:250 +#: ../src/guestfs.pod:231 msgid "" "Obviously this effectively wipes anything that was on that disk image before." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:253 +#: ../src/guestfs.pod:234 msgid "LVM2" msgstr "" #. type: textblock -#: ../src/guestfs.pod:255 +#: ../src/guestfs.pod:236 msgid "" "Libguestfs provides access to a large part of the LVM2 API, such as L</" "guestfs_lvcreate> and L</guestfs_vgremove>. It won't make much sense unless " @@ -37144,19 +37115,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:260 +#: ../src/guestfs.pod:241 msgid "" "This author strongly recommends reading the LVM HOWTO, online at L<http://" "tldp.org/HOWTO/LVM-HOWTO/>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:263 +#: ../src/guestfs.pod:244 msgid "DOWNLOADING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:265 +#: ../src/guestfs.pod:246 msgid "" "Use L</guestfs_cat> to download small, text only files. This call is " "limited to files which are less than 2 MB and which cannot contain any ASCII " @@ -37164,7 +37135,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:269 +#: ../src/guestfs.pod:250 msgid "" "L</guestfs_read_file> can be used to read files which contain arbitrary 8 " "bit data, since it returns a (pointer, size) pair. However it is still " @@ -37172,31 +37143,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:273 +#: ../src/guestfs.pod:254 msgid "" "L</guestfs_download> can be used to download any file, with no limits on " "content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:276 +#: ../src/guestfs.pod:257 msgid "" "To download multiple files, see L</guestfs_tar_out> and L</guestfs_tgz_out>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:279 +#: ../src/guestfs.pod:260 msgid "UPLOADING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:281 +#: ../src/guestfs.pod:262 msgid "" "It's often the case that you want to write a file or files to the disk image." msgstr "" #. type: textblock -#: ../src/guestfs.pod:284 +#: ../src/guestfs.pod:265 msgid "" "To write a small file with fixed content, use L</guestfs_write>. To create " "a file of all zeroes, use L</guestfs_truncate_size> (sparse) or L</" @@ -37206,20 +37177,20 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:290 +#: ../src/guestfs.pod:271 msgid "" "To upload a single file, use L</guestfs_upload>. This call has no limits on " "file content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:293 +#: ../src/guestfs.pod:274 msgid "" "To upload multiple files, see L</guestfs_tar_in> and L</guestfs_tgz_in>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:295 +#: ../src/guestfs.pod:276 msgid "" "However the fastest way to upload I<large numbers of arbitrary files> is to " "turn them into a squashfs or CD ISO (see L<mksquashfs(8)> and L<mkisofs(8)" @@ -37233,12 +37204,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:306 +#: ../src/guestfs.pod:287 msgid "COPYING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:308 +#: ../src/guestfs.pod:289 msgid "" "There are various different commands for copying between files and devices " "and in and out of the guest filesystem. These are summarised in the table " @@ -37246,52 +37217,52 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:314 +#: ../src/guestfs.pod:295 msgid "B<file> to B<file>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:316 +#: ../src/guestfs.pod:297 msgid "" "Use L</guestfs_cp> to copy a single file, or L</guestfs_cp_a> to copy " "directories recursively." msgstr "" #. type: textblock -#: ../src/guestfs.pod:319 +#: ../src/guestfs.pod:300 msgid "" "To copy part of a file (offset and size) use L</guestfs_copy_file_to_file>." msgstr "" #. type: =item -#: ../src/guestfs.pod:322 +#: ../src/guestfs.pod:303 msgid "B<file> to B<device>" msgstr "" #. type: =item -#: ../src/guestfs.pod:324 +#: ../src/guestfs.pod:305 msgid "B<device> to B<file>" msgstr "" #. type: =item -#: ../src/guestfs.pod:326 +#: ../src/guestfs.pod:307 msgid "B<device> to B<device>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:328 +#: ../src/guestfs.pod:309 msgid "" "Use L</guestfs_copy_file_to_device>, L</guestfs_copy_device_to_file>, or L</" "guestfs_copy_device_to_device>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:331 +#: ../src/guestfs.pod:312 msgid "Example: duplicate the contents of an LV:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:333 +#: ../src/guestfs.pod:314 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -37302,7 +37273,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:338 +#: ../src/guestfs.pod:319 msgid "" "The destination (C</dev/VG/Copy>) must be at least as large as the source " "(C</dev/VG/Original>). To copy less than the whole source device, use the " @@ -37310,7 +37281,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:342 +#: ../src/guestfs.pod:323 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -37321,32 +37292,32 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:347 +#: ../src/guestfs.pod:328 msgid "B<file on the host> to B<file or device>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:349 +#: ../src/guestfs.pod:330 msgid "Use L</guestfs_upload>. See L</UPLOADING> above." msgstr "" #. type: =item -#: ../src/guestfs.pod:351 +#: ../src/guestfs.pod:332 msgid "B<file or device> to B<file on the host>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:353 +#: ../src/guestfs.pod:334 msgid "Use L</guestfs_download>. See L</DOWNLOADING> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:357 +#: ../src/guestfs.pod:338 msgid "UPLOADING AND DOWNLOADING TO PIPES AND FILE DESCRIPTORS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:359 +#: ../src/guestfs.pod:340 msgid "" "Calls like L</guestfs_upload>, L</guestfs_download>, L</guestfs_tar_in>, L</" "guestfs_tar_out> etc appear to only take filenames as arguments, so it " @@ -37357,12 +37328,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:367 +#: ../src/guestfs.pod:348 msgid "For example, L<virt-cat(1)> writes its output to stdout by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:370 +#: ../src/guestfs.pod:351 #, no-wrap msgid "" " guestfs_download (g, filename, \"/dev/stdout\");\n" @@ -37370,12 +37341,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:372 +#: ../src/guestfs.pod:353 msgid "and you can write tar output to a file descriptor C<fd> by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:374 +#: ../src/guestfs.pod:355 #, no-wrap msgid "" " char devfd[64];\n" @@ -37385,26 +37356,26 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:378 +#: ../src/guestfs.pod:359 msgid "LISTING FILES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:380 +#: ../src/guestfs.pod:361 msgid "" "L</guestfs_ll> is just designed for humans to read (mainly when using the " "L<guestfish(1)>-equivalent command C<ll>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:383 +#: ../src/guestfs.pod:364 msgid "" "L</guestfs_ls> is a quick way to get a list of files in a directory from " "programs, as a flat list of strings." msgstr "" #. type: textblock -#: ../src/guestfs.pod:386 +#: ../src/guestfs.pod:367 msgid "" "L</guestfs_readdir> is a programmatic way to get a list of files in a " "directory, plus additional information about each one. It is more " @@ -37412,18 +37383,18 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:390 +#: ../src/guestfs.pod:371 msgid "" "L</guestfs_find> and L</guestfs_find0> can be used to recursively list files." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:393 +#: ../src/guestfs.pod:374 msgid "RUNNING COMMANDS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:395 +#: ../src/guestfs.pod:376 msgid "" "Although libguestfs is primarily an API for manipulating files inside guest " "images, we also provide some limited facilities for running commands inside " @@ -37431,56 +37402,56 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:399 +#: ../src/guestfs.pod:380 msgid "There are many limitations to this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:405 +#: ../src/guestfs.pod:386 msgid "" "The kernel version that the command runs under will be different from what " "it expects." msgstr "" #. type: textblock -#: ../src/guestfs.pod:410 +#: ../src/guestfs.pod:391 msgid "" "If the command needs to communicate with daemons, then most likely they " "won't be running." msgstr "" #. type: textblock -#: ../src/guestfs.pod:415 +#: ../src/guestfs.pod:396 msgid "The command will be running in limited memory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:419 +#: ../src/guestfs.pod:400 msgid "" "The network may not be available unless you enable it (see L</" "guestfs_set_network>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:424 +#: ../src/guestfs.pod:405 msgid "Only supports Linux guests (not Windows, BSD, etc)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:428 +#: ../src/guestfs.pod:409 msgid "" "Architecture limitations (eg. won't work for a PPC guest on an X86 host)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:433 +#: ../src/guestfs.pod:414 msgid "" "For SELinux guests, you may need to enable SELinux and load policy first. " "See L</SELINUX> in this manpage." msgstr "" #. type: textblock -#: ../src/guestfs.pod:438 +#: ../src/guestfs.pod:419 msgid "" "I<Security:> It is not safe to run commands from untrusted, possibly " "malicious guests. These commands may attempt to exploit your program by " @@ -37492,7 +37463,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:447 +#: ../src/guestfs.pod:428 msgid "" "A secure alternative is to use libguestfs to install a \"firstboot\" script " "(a script which runs when the guest next boots normally), and to have this " @@ -37502,26 +37473,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:455 +#: ../src/guestfs.pod:436 msgid "" "The two main API calls to run commands are L</guestfs_command> and L</" "guestfs_sh> (there are also variations)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:458 +#: ../src/guestfs.pod:439 msgid "" "The difference is that L</guestfs_sh> runs commands using the shell, so any " "shell globs, redirections, etc will work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:461 +#: ../src/guestfs.pod:442 msgid "CONFIGURATION FILES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:463 +#: ../src/guestfs.pod:444 msgid "" "To read and write configuration files in Linux guest filesystems, we " "strongly recommend using Augeas. For example, Augeas understands how to " @@ -37530,7 +37501,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:468 +#: ../src/guestfs.pod:449 msgid "" "The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't " "document Augeas itself here because there is excellent documentation on the " @@ -37538,7 +37509,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:472 +#: ../src/guestfs.pod:453 msgid "" "If you don't want to use Augeas (you fool!) then try calling L</" "guestfs_read_lines> to get the file as a list of lines which you can iterate " @@ -37546,24 +37517,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:476 +#: ../src/guestfs.pod:457 msgid "SELINUX" msgstr "" #. type: textblock -#: ../src/guestfs.pod:478 +#: ../src/guestfs.pod:459 msgid "" "We support SELinux guests. To ensure that labeling happens correctly in " "SELinux guests, you need to enable SELinux and load the guest's policy:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:486 +#: ../src/guestfs.pod:467 msgid "Before launching, do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:488 +#: ../src/guestfs.pod:469 #, no-wrap msgid "" " guestfs_set_selinux (g, 1);\n" @@ -37571,14 +37542,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:492 +#: ../src/guestfs.pod:473 msgid "" "After mounting the guest's filesystem(s), load the policy. This is best " "done by running the L<load_policy(8)> command in the guest itself:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:496 +#: ../src/guestfs.pod:477 #, no-wrap msgid "" " guestfs_sh (g, \"/usr/sbin/load_policy\");\n" @@ -37586,21 +37557,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:498 +#: ../src/guestfs.pod:479 msgid "" "(Older versions of C<load_policy> require you to specify the name of the " "policy file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:503 +#: ../src/guestfs.pod:484 msgid "" "Optionally, set the security context for the API. The correct security " "context to use can only be known by inspecting the guest. As an example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:507 +#: ../src/guestfs.pod:488 #, no-wrap msgid "" " guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n" @@ -37608,24 +37579,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:511 +#: ../src/guestfs.pod:492 msgid "This will work for running commands and editing existing files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:513 +#: ../src/guestfs.pod:494 msgid "" "When new files are created, you may need to label them explicitly, for " "example by running the external command C<restorecon pathname>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:517 +#: ../src/guestfs.pod:498 msgid "UMASK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:519 +#: ../src/guestfs.pod:500 msgid "" "Certain calls are affected by the current file mode creation mask (the " "\"umask\"). In particular ones which create files or directories, such as " @@ -37635,14 +37606,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:525 +#: ../src/guestfs.pod:506 msgid "" "The default umask is C<022>, so files are created with modes such as C<0644> " "and directories with C<0755>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:528 +#: ../src/guestfs.pod:509 msgid "" "There are two ways to avoid being affected by umask. Either set umask to 0 " "(call C<guestfs_umask (g, 0)> early after launching). Or call L</" @@ -37650,12 +37621,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:532 +#: ../src/guestfs.pod:513 msgid "For more information about umask, see L<umask(2)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:536 +#: ../src/guestfs.pod:517 msgid "" "Libguestfs allows you to access Linux guests which have been encrypted using " "whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) " @@ -37664,21 +37635,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:542 +#: ../src/guestfs.pod:523 msgid "" "Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it " "returns the string C<crypto_LUKS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:545 +#: ../src/guestfs.pod:526 msgid "" "Then open these devices by calling L</guestfs_luks_open>. Obviously you " "will require the passphrase!" msgstr "" #. type: textblock -#: ../src/guestfs.pod:548 +#: ../src/guestfs.pod:529 msgid "" "Opening a LUKS device creates a new device mapper device called C</dev/" "mapper/mapname> (where C<mapname> is the string you supply to L</" @@ -37687,7 +37658,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:554 +#: ../src/guestfs.pod:535 msgid "" "LVM volume groups on the device can be made visible by calling L</" "guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical volume" @@ -37695,7 +37666,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:558 +#: ../src/guestfs.pod:539 msgid "" "Use the reverse process to close a LUKS device. Unmount any logical volumes " "on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, " @@ -37705,12 +37676,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:565 +#: ../src/guestfs.pod:546 msgid "INSPECTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:567 +#: ../src/guestfs.pod:548 msgid "" "Libguestfs has APIs for inspecting an unknown disk image to find out if it " "contains operating systems, an install CD or a live CD. (These APIs used to " @@ -37720,14 +37691,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:574 +#: ../src/guestfs.pod:555 msgid "" "Add all disks belonging to the unknown virtual machine and call L</" "guestfs_launch> in the usual way." msgstr "" #. type: textblock -#: ../src/guestfs.pod:577 +#: ../src/guestfs.pod:558 msgid "" "Then call L</guestfs_inspect_os>. This function uses other libguestfs calls " "and certain heuristics, and returns a list of operating systems that were " @@ -37740,7 +37711,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:586 +#: ../src/guestfs.pod:567 msgid "" "For each root, you can then call various C<guestfs_inspect_get_*> functions " "to get additional details about that operating system. For example, call L</" @@ -37749,7 +37720,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:592 +#: ../src/guestfs.pod:573 msgid "" "Un*x-like and Linux-based operating systems usually consist of several " "filesystems which are mounted at boot time (for example, a separate boot " @@ -37760,7 +37731,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:599 +#: ../src/guestfs.pod:580 #, no-wrap msgid "" " /boot => /dev/sda1\n" @@ -37770,21 +37741,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:603 +#: ../src/guestfs.pod:584 msgid "" "The caller can then make calls to L</guestfs_mount_options> to mount the " "filesystems as suggested." msgstr "" #. type: textblock -#: ../src/guestfs.pod:606 +#: ../src/guestfs.pod:587 msgid "" "Be careful to mount filesystems in the right order (eg. C</> before C</" "usr>). Sorting the keys of the hash by length, shortest first, should work." msgstr "" #. type: textblock -#: ../src/guestfs.pod:610 +#: ../src/guestfs.pod:591 msgid "" "Inspection currently only works for some common operating systems. " "Contributors are welcome to send patches for other operating systems that we " @@ -37792,7 +37763,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:614 +#: ../src/guestfs.pod:595 msgid "" "Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> " "for more details. The L</guestfs_inspect_os> function just ignores any " @@ -37800,7 +37771,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:618 +#: ../src/guestfs.pod:599 msgid "" "A note on the implementation: The call L</guestfs_inspect_os> performs " "inspection and caches the results in the guest handle. Subsequent calls to " @@ -37813,19 +37784,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:627 +#: ../src/guestfs.pod:608 msgid "INSPECTING INSTALL DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:629 +#: ../src/guestfs.pod:610 msgid "" "Libguestfs (since 1.9.4) can detect some install disks, install CDs, live " "CDs and more." msgstr "" #. type: textblock -#: ../src/guestfs.pod:632 +#: ../src/guestfs.pod:613 msgid "" "Call L</guestfs_inspect_get_format> to return the format of the operating " "system, which currently can be C<installed> (a regular operating system) or " @@ -37833,7 +37804,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:636 +#: ../src/guestfs.pod:617 msgid "" "Further information is available about the operating system that can be " "installed using the regular inspection APIs like L</" @@ -37841,7 +37812,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:641 +#: ../src/guestfs.pod:622 msgid "" "Some additional information specific to installer disks is also available " "from the L</guestfs_inspect_is_live>, L</guestfs_inspect_is_netinst> and L</" @@ -37849,24 +37820,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:646 +#: ../src/guestfs.pod:627 msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:648 +#: ../src/guestfs.pod:629 msgid "" "Libguestfs can mount NTFS partitions. It does this using the L<http://www." "ntfs-3g.org/> driver." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:651 +#: ../src/guestfs.pod:632 msgid "DRIVE LETTERS AND PATHS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:653 +#: ../src/guestfs.pod:634 msgid "" "DOS and Windows still use drive letters, and the filesystems are always " "treated as case insensitive by Windows itself, and therefore you might find " @@ -37876,14 +37847,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:659 +#: ../src/guestfs.pod:640 msgid "" "Drive letter mappings can be found using inspection (see L</INSPECTION> and " "L</guestfs_inspect_get_drive_mappings>)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:662 +#: ../src/guestfs.pod:643 msgid "" "Dealing with separator characters (backslash vs forward slash) is outside " "the scope of libguestfs, but usually a simple character replacement will " @@ -37891,19 +37862,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:666 +#: ../src/guestfs.pod:647 msgid "" "To resolve the case insensitivity of paths, call L</" "guestfs_case_sensitive_path>." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:669 +#: ../src/guestfs.pod:650 msgid "ACCESSING THE WINDOWS REGISTRY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:671 +#: ../src/guestfs.pod:652 msgid "" "Libguestfs also provides some help for decoding Windows Registry \"hive\" " "files, through the library C<hivex> which is part of the libguestfs project " @@ -37914,12 +37885,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:679 +#: ../src/guestfs.pod:660 msgid "SYMLINKS ON NTFS-3G FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:681 +#: ../src/guestfs.pod:662 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 " @@ -37927,14 +37898,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:685 +#: ../src/guestfs.pod:666 msgid "" "L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-" "symbolic-links/>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:687 +#: ../src/guestfs.pod:668 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 " @@ -37944,7 +37915,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:694 +#: ../src/guestfs.pod:675 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 " @@ -37953,37 +37924,37 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:699 +#: ../src/guestfs.pod:680 msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:701 +#: ../src/guestfs.pod:682 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:704 +#: ../src/guestfs.pod:685 msgid "" "L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:706 +#: ../src/guestfs.pod:687 msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:708 +#: ../src/guestfs.pod:689 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:711 +#: ../src/guestfs.pod:692 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)> " @@ -37993,14 +37964,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:717 +#: ../src/guestfs.pod:698 msgid "" "Error messages are automatically transformed into exceptions if the language " "supports it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:720 +#: ../src/guestfs.pod:701 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 " @@ -38008,58 +37979,58 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:726 +#: ../src/guestfs.pod:707 msgid "B<C++>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:728 +#: ../src/guestfs.pod:709 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:732 +#: ../src/guestfs.pod:713 msgid "B<C#>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:734 +#: ../src/guestfs.pod:715 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:737 +#: ../src/guestfs.pod:718 msgid "B<Erlang>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:739 +#: ../src/guestfs.pod:720 msgid "See L<guestfs-erlang(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:741 +#: ../src/guestfs.pod:722 msgid "B<GObject>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:743 +#: ../src/guestfs.pod:724 msgid "" "Experimental GObject bindings (with GObject Introspection support) are " "available. See the C<gobject> directory in the source." msgstr "" #. type: =item -#: ../src/guestfs.pod:746 +#: ../src/guestfs.pod:727 msgid "B<Haskell>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:748 +#: ../src/guestfs.pod:729 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 " @@ -38067,96 +38038,96 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:752 +#: ../src/guestfs.pod:733 msgid "B<Java>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:754 +#: ../src/guestfs.pod:735 msgid "" "Full documentation is contained in the Javadoc which is distributed with " "libguestfs. For examples, see L<guestfs-java(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:757 +#: ../src/guestfs.pod:738 msgid "B<OCaml>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:759 +#: ../src/guestfs.pod:740 msgid "See L<guestfs-ocaml(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:761 +#: ../src/guestfs.pod:742 msgid "B<Perl>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:763 +#: ../src/guestfs.pod:744 msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:765 +#: ../src/guestfs.pod:746 msgid "B<PHP>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:767 +#: ../src/guestfs.pod:748 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:770 +#: ../src/guestfs.pod:751 msgid "The PHP binding only works correctly on 64 bit machines." msgstr "" #. type: =item -#: ../src/guestfs.pod:772 +#: ../src/guestfs.pod:753 msgid "B<Python>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:774 +#: ../src/guestfs.pod:755 msgid "See L<guestfs-python(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:776 +#: ../src/guestfs.pod:757 msgid "B<Ruby>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:778 +#: ../src/guestfs.pod:759 msgid "See L<guestfs-ruby(3)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:780 +#: ../src/guestfs.pod:761 msgid "For JRuby, use the Java bindings." msgstr "" #. type: =item -#: ../src/guestfs.pod:782 +#: ../src/guestfs.pod:763 msgid "B<shell scripts>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:784 +#: ../src/guestfs.pod:765 msgid "See L<guestfish(1)>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:788 +#: ../src/guestfs.pod:769 msgid "LIBGUESTFS GOTCHAS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:790 +#: ../src/guestfs.pod:771 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 " @@ -38164,7 +38135,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:794 +#: ../src/guestfs.pod:775 msgid "" "Since we developed libguestfs and the associated tools, there are several " "things we would have designed differently, but are now stuck with for " @@ -38173,19 +38144,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:802 +#: ../src/guestfs.pod:783 msgid "Autosync / forgetting to sync." msgstr "" #. type: textblock -#: ../src/guestfs.pod:804 +#: ../src/guestfs.pod:785 msgid "" "I<Update:> Autosync is enabled by default for all API users starting from " "libguestfs 1.5.24. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:807 +#: ../src/guestfs.pod:788 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 " @@ -38193,7 +38164,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:811 +#: ../src/guestfs.pod:792 #, no-wrap msgid "" " guestfs_set_autosync (g, 1);\n" @@ -38201,14 +38172,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:813 +#: ../src/guestfs.pod:794 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:817 +#: ../src/guestfs.pod:798 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 " @@ -38216,7 +38187,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:821 +#: ../src/guestfs.pod:802 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 " @@ -38224,19 +38195,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:825 +#: ../src/guestfs.pod:806 msgid "Mount option C<-o sync> should not be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:827 +#: ../src/guestfs.pod:808 msgid "" "I<Update:> L</guestfs_mount> no longer adds any options starting from " "libguestfs 1.13.16. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:830 +#: ../src/guestfs.pod:811 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 " @@ -38244,31 +38215,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:834 +#: ../src/guestfs.pod:815 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:837 +#: ../src/guestfs.pod:818 msgid "Read-only should be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:839 +#: ../src/guestfs.pod:820 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:842 +#: ../src/guestfs.pod:823 msgid "This would reduce the potential to corrupt live VM images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:844 +#: ../src/guestfs.pod:825 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</" @@ -38276,12 +38247,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:848 +#: ../src/guestfs.pod:829 msgid "guestfish command line is hard to use." msgstr "" #. type: textblock -#: ../src/guestfs.pod:850 +#: ../src/guestfs.pod:831 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 " @@ -38291,12 +38262,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:857 +#: ../src/guestfs.pod:838 msgid "guestfish megabyte modifiers don't work right on all commands" msgstr "" #. type: textblock -#: ../src/guestfs.pod:859 +#: ../src/guestfs.pod:840 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 " @@ -38306,12 +38277,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:866 +#: ../src/guestfs.pod:847 msgid "The most common is L</guestfs_lvcreate>. The guestfish command:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:868 +#: ../src/guestfs.pod:849 #, no-wrap msgid "" " lvcreate LV VG 100M\n" @@ -38319,7 +38290,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:870 +#: ../src/guestfs.pod:851 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 " @@ -38328,19 +38299,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:875 +#: ../src/guestfs.pod:856 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:878 +#: ../src/guestfs.pod:859 msgid "Ambiguity between devices and paths" msgstr "" #. type: textblock -#: ../src/guestfs.pod:880 +#: ../src/guestfs.pod:861 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 " @@ -38348,7 +38319,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:885 +#: ../src/guestfs.pod:866 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>. " @@ -38357,7 +38328,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:891 +#: ../src/guestfs.pod:872 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 " @@ -38367,7 +38338,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:897 +#: ../src/guestfs.pod:878 #, no-wrap msgid "" " type path = Path of string | Device of int | Partition of int * int\n" @@ -38375,12 +38346,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:899 +#: ../src/guestfs.pod:880 msgid "which would allow you to pass arguments like:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:901 +#: ../src/guestfs.pod:882 #, no-wrap msgid "" " Path \"/foo/bar\"\n" @@ -38391,26 +38362,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:906 +#: ../src/guestfs.pod:887 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:911 +#: ../src/guestfs.pod:892 msgid "KEYS AND PASSPHRASES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:913 +#: ../src/guestfs.pod:894 msgid "" "Certain libguestfs calls take a parameter that contains sensitive key " "material, passed in as a C string." msgstr "" #. type: textblock -#: ../src/guestfs.pod:916 +#: ../src/guestfs.pod:897 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 " @@ -38419,7 +38390,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:921 +#: ../src/guestfs.pod:902 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, " @@ -38427,19 +38398,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:926 +#: ../src/guestfs.pod:907 msgid "MULTIPLE HANDLES AND MULTIPLE THREADS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:928 +#: ../src/guestfs.pod:909 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:931 +#: ../src/guestfs.pod:912 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 " @@ -38447,33 +38418,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:935 +#: ../src/guestfs.pod:916 msgid "" "See the graphical program guestfs-browser for one possible architecture for " "multithreaded programs using libvirt and libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:938 +#: ../src/guestfs.pod:919 msgid "PATH" msgstr "" #. type: textblock -#: ../src/guestfs.pod:940 +#: ../src/guestfs.pod:921 msgid "" "Libguestfs needs a supermin appliance, which it finds by looking along an " "internal path." msgstr "" #. type: textblock -#: ../src/guestfs.pod:943 +#: ../src/guestfs.pod:924 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:946 +#: ../src/guestfs.pod:927 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 " @@ -38484,12 +38455,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:953 +#: ../src/guestfs.pod:934 msgid "QEMU WRAPPERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:955 +#: ../src/guestfs.pod:936 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 " @@ -38497,7 +38468,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:959 +#: ../src/guestfs.pod:940 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 " @@ -38506,14 +38477,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:964 +#: ../src/guestfs.pod:945 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:967 +#: ../src/guestfs.pod:948 #, no-wrap msgid "" " #!/bin/sh -\n" @@ -38523,7 +38494,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:971 +#: ../src/guestfs.pod:952 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 " @@ -38531,7 +38502,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:975 +#: ../src/guestfs.pod:956 #, no-wrap msgid "" " LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n" @@ -38539,14 +38510,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:977 +#: ../src/guestfs.pod:958 msgid "" "Note that libguestfs also calls qemu with the -help and -version options in " "order to determine features." msgstr "" #. type: textblock -#: ../src/guestfs.pod:980 +#: ../src/guestfs.pod:961 msgid "" "Wrappers can also be used to edit the options passed to qemu. In the " "following example, the C<-machine ...> option (C<-machine> and the following " @@ -38556,7 +38527,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:989 +#: ../src/guestfs.pod:970 #, no-wrap msgid "" " i=0\n" @@ -38574,7 +38545,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1001 +#: ../src/guestfs.pod:982 #, no-wrap msgid "" " exec qemu-kvm -machine pc,accel=tcg \"${args[@]}\"\n" @@ -38582,19 +38553,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1003 +#: ../src/guestfs.pod:984 msgid "ATTACHING TO RUNNING DAEMONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1005 +#: ../src/guestfs.pod:986 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:1008 +#: ../src/guestfs.pod:989 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 " @@ -38602,12 +38573,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1012 +#: ../src/guestfs.pod:993 msgid "Using guestfs_set_attach_method" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1014 +#: ../src/guestfs.pod:995 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</" @@ -38615,14 +38586,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1018 +#: ../src/guestfs.pod:999 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:1021 +#: ../src/guestfs.pod:1002 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 " @@ -38630,7 +38601,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1025 +#: ../src/guestfs.pod:1006 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 " @@ -38638,12 +38609,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1029 +#: ../src/guestfs.pod:1010 msgid "Using guestfs_add_domain with live flag" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1031 +#: ../src/guestfs.pod:1012 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 " @@ -38652,7 +38623,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1037 +#: ../src/guestfs.pod:1018 #, no-wrap msgid "" " <domain>\n" @@ -38670,14 +38641,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1049 +#: ../src/guestfs.pod:1030 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:1052 +#: ../src/guestfs.pod:1033 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 " @@ -38685,19 +38656,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1056 +#: ../src/guestfs.pod:1037 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:1060 +#: ../src/guestfs.pod:1041 msgid "ABI GUARANTEE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1062 +#: ../src/guestfs.pod:1043 msgid "" "We guarantee the libguestfs ABI (binary interface), for public, high-level " "actions as outlined in this section. Although we will deprecate some " @@ -38707,12 +38678,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1068 +#: ../src/guestfs.pod:1049 msgid "BLOCK DEVICE NAMING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1070 +#: ../src/guestfs.pod:1051 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 " @@ -38726,7 +38697,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1082 +#: ../src/guestfs.pod:1063 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 " @@ -38734,7 +38705,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1086 +#: ../src/guestfs.pod:1067 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 " @@ -38742,7 +38713,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1091 +#: ../src/guestfs.pod:1072 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 " @@ -38751,7 +38722,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1097 +#: ../src/guestfs.pod:1078 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 " @@ -38759,12 +38730,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1102 +#: ../src/guestfs.pod:1083 msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1104 +#: ../src/guestfs.pod:1085 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 " @@ -38773,7 +38744,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1110 +#: ../src/guestfs.pod:1091 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</" @@ -38781,54 +38752,54 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1118 +#: ../src/guestfs.pod:1099 msgid "Is the string a parameter which is a device or partition name?" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1122 +#: ../src/guestfs.pod:1103 msgid "Does the string begin with C</dev/sd>?" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1126 +#: ../src/guestfs.pod:1107 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:1131 +#: ../src/guestfs.pod:1112 msgid "Replace initial C</dev/sd> string with C</dev/hd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1133 +#: ../src/guestfs.pod:1114 msgid "For example, change C</dev/sda2> to C</dev/hda2>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1135 +#: ../src/guestfs.pod:1116 msgid "If that named device exists, use it. If not, continue." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1139 +#: ../src/guestfs.pod:1120 msgid "Replace initial C</dev/sd> string with C</dev/vd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1141 +#: ../src/guestfs.pod:1122 msgid "If that named device exists, use it. If not, return an error." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1145 +#: ../src/guestfs.pod:1126 msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1147 +#: ../src/guestfs.pod:1128 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 " @@ -38836,46 +38807,46 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1151 +#: ../src/guestfs.pod:1132 msgid "" "Where possible for maximum future portability programs using libguestfs " "should use these future-proof techniques:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1158 +#: ../src/guestfs.pod:1139 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:1161 +#: ../src/guestfs.pod:1142 msgid "" "Since those device names exist by definition, they will never be translated." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1166 +#: ../src/guestfs.pod:1147 msgid "" "Use higher level ways to identify filesystems, such as LVM names, UUIDs and " "filesystem labels." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1173 +#: ../src/guestfs.pod:1154 msgid "" "This section discusses security implications of using libguestfs, " "particularly with untrusted or malicious guests or disk images." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1176 +#: ../src/guestfs.pod:1157 msgid "GENERAL SECURITY CONSIDERATIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1178 +#: ../src/guestfs.pod:1159 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 " @@ -38885,42 +38856,42 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1188 +#: ../src/guestfs.pod:1169 msgid "the data (file etc) not being present" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1192 +#: ../src/guestfs.pod:1173 msgid "being present but empty" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1196 +#: ../src/guestfs.pod:1177 msgid "being much larger than normal" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1200 +#: ../src/guestfs.pod:1181 msgid "containing arbitrary 8 bit data" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1204 +#: ../src/guestfs.pod:1185 msgid "being in an unexpected character encoding" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1208 +#: ../src/guestfs.pod:1189 msgid "containing homoglyphs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1212 +#: ../src/guestfs.pod:1193 msgid "SECURITY OF MOUNTING FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1214 +#: ../src/guestfs.pod:1195 msgid "" "When you mount a filesystem under Linux, mistakes in the kernel filesystem " "(VFS) module can sometimes be escalated into exploits by deliberately " @@ -38936,7 +38907,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1227 +#: ../src/guestfs.pod:1208 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 " @@ -38950,19 +38921,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1238 +#: ../src/guestfs.pod:1219 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:1241 +#: ../src/guestfs.pod:1222 msgid "PROTOCOL SECURITY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1243 +#: ../src/guestfs.pod:1224 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 " @@ -38972,12 +38943,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1249 +#: ../src/guestfs.pod:1230 msgid "INSPECTION SECURITY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1251 +#: ../src/guestfs.pod:1232 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 " @@ -38986,7 +38957,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1257 +#: ../src/guestfs.pod:1238 msgid "" "Guest configuration may be altered in unusual ways by the administrator of " "the virtual machine, and may not reflect reality (particularly for untrusted " @@ -38997,7 +38968,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1265 +#: ../src/guestfs.pod:1246 msgid "" "The inspection API parses guest configuration using two external libraries: " "Augeas (Linux configuration) and hivex (Windows Registry). Both are " @@ -39007,12 +38978,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1271 +#: ../src/guestfs.pod:1252 msgid "RUNNING UNTRUSTED GUEST COMMANDS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1273 +#: ../src/guestfs.pod:1254 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 " @@ -39022,24 +38993,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1279 +#: ../src/guestfs.pod:1260 msgid "CVE-2010-3851" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1281 +#: ../src/guestfs.pod:1262 msgid "https://bugzilla.redhat.com/642934" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1283 +#: ../src/guestfs.pod:1264 msgid "" "This security bug concerns the automatic disk format detection that qemu " "does on disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1286 +#: ../src/guestfs.pod:1267 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 " @@ -39048,7 +39019,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1291 +#: ../src/guestfs.pod:1272 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 " @@ -39057,7 +39028,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1296 +#: ../src/guestfs.pod:1277 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 " @@ -39069,25 +39040,25 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1304 +#: ../src/guestfs.pod:1285 msgid "" "In libguestfs this is rather hard to exploit except under two circumstances:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1311 +#: ../src/guestfs.pod:1292 msgid "You have enabled the network or have opened the disk in write mode." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1315 +#: ../src/guestfs.pod:1296 msgid "" "You are also running untrusted code from the guest (see L</RUNNING " "COMMANDS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1320 +#: ../src/guestfs.pod:1301 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 " @@ -39096,31 +39067,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1325 +#: ../src/guestfs.pod:1306 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:1328 +#: ../src/guestfs.pod:1309 msgid "" "For libguestfs tools, use the I<--format> command line parameter as " "appropriate." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1331 +#: ../src/guestfs.pod:1312 msgid "CONNECTION MANAGEMENT" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1333 +#: ../src/guestfs.pod:1314 msgid "guestfs_h *" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1335 +#: ../src/guestfs.pod:1316 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 " @@ -39128,19 +39099,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1339 +#: ../src/guestfs.pod:1320 msgid "" "For information on using multiple handles and threads, see the section L</" "MULTIPLE HANDLES AND MULTIPLE THREADS> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1342 +#: ../src/guestfs.pod:1323 msgid "guestfs_create" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1344 +#: ../src/guestfs.pod:1325 #, no-wrap msgid "" " guestfs_h *guestfs_create (void);\n" @@ -39148,19 +39119,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1346 +#: ../src/guestfs.pod:1327 msgid "Create a connection handle." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1348 +#: ../src/guestfs.pod:1329 msgid "" "On success this returns a non-NULL pointer to a handle. On error it returns " "NULL." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1351 +#: ../src/guestfs.pod:1332 msgid "" "You have to \"configure\" the handle after creating it. This includes " "calling L</guestfs_add_drive_opts> (or one of the equivalent calls) on the " @@ -39168,24 +39139,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1355 +#: ../src/guestfs.pod:1336 msgid "After configuring the handle, you have to call L</guestfs_launch>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1357 +#: ../src/guestfs.pod:1338 msgid "" "You may also want to configure error handling for the handle. See the L</" "ERROR HANDLING> section below." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1360 +#: ../src/guestfs.pod:1341 msgid "guestfs_close" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1362 +#: ../src/guestfs.pod:1343 #, no-wrap msgid "" " void guestfs_close (guestfs_h *g);\n" @@ -39193,12 +39164,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1364 +#: ../src/guestfs.pod:1345 msgid "This closes the connection handle and frees up all resources used." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1366 +#: ../src/guestfs.pod:1347 msgid "" "If autosync was set on the handle and the handle was launched, then this " "implicitly calls various functions to unmount filesystems and sync the " @@ -39206,24 +39177,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1370 +#: ../src/guestfs.pod:1351 msgid "If a close callback was set on the handle, then it is called." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1372 +#: ../src/guestfs.pod:1353 msgid "ERROR HANDLING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1374 +#: ../src/guestfs.pod:1355 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:1377 +#: ../src/guestfs.pod:1358 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 " @@ -39231,7 +39202,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1381 +#: ../src/guestfs.pod:1362 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 " @@ -39239,7 +39210,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1386 +#: ../src/guestfs.pod:1367 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 " @@ -39247,7 +39218,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1390 +#: ../src/guestfs.pod:1371 #, no-wrap msgid "" " if (guestfs_launch (g) == -1)\n" @@ -39256,21 +39227,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1393 +#: ../src/guestfs.pod:1374 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:1396 +#: ../src/guestfs.pod:1377 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:1399 +#: ../src/guestfs.pod:1380 #, no-wrap msgid "" " /* This disables the default behaviour of printing errors\n" @@ -39280,7 +39251,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1403 +#: ../src/guestfs.pod:1384 #, no-wrap msgid "" " if (guestfs_launch (g) == -1) {\n" @@ -39297,7 +39268,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1414 +#: ../src/guestfs.pod:1395 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</" @@ -39305,7 +39276,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1418 +#: ../src/guestfs.pod:1399 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 " @@ -39315,12 +39286,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1424 +#: ../src/guestfs.pod:1405 msgid "guestfs_last_error" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1426 +#: ../src/guestfs.pod:1407 #, no-wrap msgid "" " const char *guestfs_last_error (guestfs_h *g);\n" @@ -39328,26 +39299,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1428 +#: ../src/guestfs.pod:1409 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:1432 +#: ../src/guestfs.pod:1413 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:1435 +#: ../src/guestfs.pod:1416 msgid "guestfs_last_errno" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1437 +#: ../src/guestfs.pod:1418 #, no-wrap msgid "" " int guestfs_last_errno (guestfs_h *g);\n" @@ -39355,28 +39326,28 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1439 +#: ../src/guestfs.pod:1420 msgid "This returns the last error number (errno) that happened on C<g>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1441 +#: ../src/guestfs.pod:1422 msgid "If successful, an errno integer not equal to zero is returned." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1443 +#: ../src/guestfs.pod:1424 msgid "" "If no error, this returns 0. This call can return 0 in three situations:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1450 +#: ../src/guestfs.pod:1431 msgid "There has not been any error on the handle." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1454 +#: ../src/guestfs.pod:1435 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 " @@ -39384,14 +39355,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1460 +#: ../src/guestfs.pod:1441 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:1466 +#: ../src/guestfs.pod:1447 msgid "" "Libguestfs tries to convert the errno from inside the applicance into a " "corresponding errno for the caller (not entirely trivial: the appliance " @@ -39402,12 +39373,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1474 +#: ../src/guestfs.pod:1455 msgid "guestfs_set_error_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1476 +#: ../src/guestfs.pod:1457 #, no-wrap msgid "" " typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n" @@ -39420,7 +39391,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1483 +#: ../src/guestfs.pod:1464 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 " @@ -39428,14 +39399,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1487 +#: ../src/guestfs.pod:1468 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:1490 +#: ../src/guestfs.pod:1471 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 " @@ -39443,22 +39414,22 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1494 +#: ../src/guestfs.pod:1475 msgid "The default handler prints messages on C<stderr>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1496 +#: ../src/guestfs.pod:1477 msgid "If you set C<cb> to C<NULL> then I<no> handler is called." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1498 +#: ../src/guestfs.pod:1479 msgid "guestfs_get_error_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1500 +#: ../src/guestfs.pod:1481 #, no-wrap msgid "" " guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n" @@ -39467,17 +39438,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1503 +#: ../src/guestfs.pod:1484 msgid "Returns the current error handler callback." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1505 +#: ../src/guestfs.pod:1486 msgid "guestfs_set_out_of_memory_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1507 +#: ../src/guestfs.pod:1488 #, no-wrap msgid "" " typedef void (*guestfs_abort_cb) (void);\n" @@ -39487,30 +39458,30 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1511 +#: ../src/guestfs.pod:1492 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:1514 +#: ../src/guestfs.pod:1495 msgid "The default is to call L<abort(3)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1516 +#: ../src/guestfs.pod:1497 msgid "" "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1519 +#: ../src/guestfs.pod:1500 msgid "guestfs_get_out_of_memory_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1521 +#: ../src/guestfs.pod:1502 #, no-wrap msgid "" " guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n" @@ -39518,37 +39489,37 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1523 +#: ../src/guestfs.pod:1504 msgid "This returns the current out of memory handler." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1525 +#: ../src/guestfs.pod:1506 msgid "API CALLS" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1529 +#: ../src/guestfs.pod:1510 msgid "STRUCTURES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1531 +#: ../src/guestfs.pod:1512 msgid "@STRUCTS@" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1533 +#: ../src/guestfs.pod:1514 msgid "AVAILABILITY" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1535 +#: ../src/guestfs.pod:1516 msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1537 +#: ../src/guestfs.pod:1518 msgid "" "Using L</guestfs_available> you can test availability of the following " "groups of functions. This test queries the appliance to see if the " @@ -39556,17 +39527,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1542 +#: ../src/guestfs.pod:1523 msgid "@AVAILABILITY@" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1544 +#: ../src/guestfs.pod:1525 msgid "GUESTFISH supported COMMAND" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1546 +#: ../src/guestfs.pod:1527 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 " @@ -39574,19 +39545,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1551 +#: ../src/guestfs.pod:1532 msgid "SINGLE CALLS AT COMPILE TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1553 +#: ../src/guestfs.pod:1534 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:1556 +#: ../src/guestfs.pod:1537 #, no-wrap msgid "" " #define LIBGUESTFS_HAVE_DD 1\n" @@ -39594,12 +39565,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1558 +#: ../src/guestfs.pod:1539 msgid "if L</guestfs_dd> is available." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1560 +#: ../src/guestfs.pod:1541 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 " @@ -39607,7 +39578,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1565 +#: ../src/guestfs.pod:1546 #, no-wrap msgid "" " AC_CHECK_LIB([guestfs],[guestfs_create])\n" @@ -39616,19 +39587,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1568 +#: ../src/guestfs.pod:1549 msgid "" "which would result in C<HAVE_GUESTFS_DD> being either defined or not defined " "in your program." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1571 +#: ../src/guestfs.pod:1552 msgid "SINGLE CALLS AT RUN TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1573 +#: ../src/guestfs.pod:1554 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 " @@ -39638,7 +39609,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1580 +#: ../src/guestfs.pod:1561 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 " @@ -39646,7 +39617,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1584 +#: ../src/guestfs.pod:1565 #, no-wrap msgid "" " #include <stdio.h>\n" @@ -39658,7 +39629,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1590 +#: ../src/guestfs.pod:1571 #, no-wrap msgid "" " main ()\n" @@ -39670,7 +39641,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1596 +#: ../src/guestfs.pod:1577 #, no-wrap msgid "" " /* Test if the function guestfs_dd is really available. */\n" @@ -39685,7 +39656,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1605 +#: ../src/guestfs.pod:1586 #, no-wrap msgid "" " if (!has_function)\n" @@ -39704,7 +39675,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1618 +#: ../src/guestfs.pod:1599 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 " @@ -39712,7 +39683,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1623 +#: ../src/guestfs.pod:1604 #, no-wrap msgid "" " Requires: libguestfs >= 1.0.80\n" @@ -39720,12 +39691,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1625 +#: ../src/guestfs.pod:1606 msgid "CALLS WITH OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1627 +#: ../src/guestfs.pod:1608 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 " @@ -39733,7 +39704,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1632 +#: ../src/guestfs.pod:1613 #, no-wrap msgid "" " int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n" @@ -39741,14 +39712,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1634 +#: ../src/guestfs.pod:1615 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:1637 +#: ../src/guestfs.pod:1618 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename, -1);\n" @@ -39756,12 +39727,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1639 +#: ../src/guestfs.pod:1620 msgid "With a single optional argument:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1641 +#: ../src/guestfs.pod:1622 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -39771,12 +39742,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1645 +#: ../src/guestfs.pod:1626 msgid "With two:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1647 +#: ../src/guestfs.pod:1628 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -39787,19 +39758,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1652 +#: ../src/guestfs.pod:1633 msgid "" "and so forth. Don't forget the terminating C<-1> otherwise Bad Things will " "happen!" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1655 +#: ../src/guestfs.pod:1636 msgid "USING va_list FOR OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1657 +#: ../src/guestfs.pod:1638 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 " @@ -39807,7 +39778,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1661 +#: ../src/guestfs.pod:1642 #, no-wrap msgid "" " int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n" @@ -39816,12 +39787,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1664 +#: ../src/guestfs.pod:1645 msgid "CONSTRUCTING OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1666 +#: ../src/guestfs.pod:1647 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 " @@ -39831,7 +39802,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1672 +#: ../src/guestfs.pod:1653 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv {\n" @@ -39846,12 +39817,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1681 +#: ../src/guestfs.pod:1662 msgid "You could call it like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1683 +#: ../src/guestfs.pod:1664 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv optargs = {\n" @@ -39864,7 +39835,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1690 +#: ../src/guestfs.pod:1671 #, no-wrap msgid "" " guestfs_add_drive_opts_argv (g, filename, &optargs);\n" @@ -39872,29 +39843,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1698 +#: ../src/guestfs.pod:1679 msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1703 +#: ../src/guestfs.pod:1684 msgid "You do not need to fill in all fields of the structure." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1707 +#: ../src/guestfs.pod:1688 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:1712 +#: ../src/guestfs.pod:1693 msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1714 +#: ../src/guestfs.pod:1695 msgid "" "In other languages, optional arguments are expressed in the way that is " "natural for that language. We refer you to the language-specific " @@ -39902,17 +39873,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1718 +#: ../src/guestfs.pod:1699 msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1720 +#: ../src/guestfs.pod:1701 msgid "SETTING CALLBACKS TO HANDLE EVENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1722 +#: ../src/guestfs.pod:1703 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 " @@ -39924,7 +39895,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1731 +#: ../src/guestfs.pod:1712 msgid "" "Handles generate events when certain things happen, such as log messages " "being generated, progress messages during long-running operations, or the " @@ -39936,7 +39907,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1739 +#: ../src/guestfs.pod:1720 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 " @@ -39945,31 +39916,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1744 +#: ../src/guestfs.pod:1725 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:1748 +#: ../src/guestfs.pod:1729 msgid "CLASSES OF EVENTS" msgstr "" #. type: =item -#: ../src/guestfs.pod:1752 +#: ../src/guestfs.pod:1733 msgid "GUESTFS_EVENT_CLOSE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1755 +#: ../src/guestfs.pod:1736 msgid "" "The callback function will be called while the handle is being closed " "(synchronously from L</guestfs_close>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1758 +#: ../src/guestfs.pod:1739 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 " @@ -39980,19 +39951,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1765 +#: ../src/guestfs.pod:1746 msgid "" "If no callback is registered: the handle is closed without any callback " "being invoked." msgstr "" #. type: =item -#: ../src/guestfs.pod:1768 +#: ../src/guestfs.pod:1749 msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1771 +#: ../src/guestfs.pod:1752 msgid "" "The callback function will be called when the child process quits, either " "asynchronously or if killed by L</guestfs_kill_subprocess>. (This " @@ -40000,17 +39971,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1775 ../src/guestfs.pod:1784 ../src/guestfs.pod:1901 +#: ../src/guestfs.pod:1756 ../src/guestfs.pod:1765 ../src/guestfs.pod:1882 msgid "If no callback is registered: the event is ignored." msgstr "" #. type: =item -#: ../src/guestfs.pod:1777 +#: ../src/guestfs.pod:1758 msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1780 +#: ../src/guestfs.pod:1761 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 " @@ -40018,12 +39989,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1786 +#: ../src/guestfs.pod:1767 msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1789 +#: ../src/guestfs.pod:1770 msgid "" "Some long-running operations can generate progress messages. If this " "callback is registered, then it will be called each time a progress message " @@ -40033,14 +40004,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1795 +#: ../src/guestfs.pod:1776 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:1798 +#: ../src/guestfs.pod:1779 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 " @@ -40048,24 +40019,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1803 +#: ../src/guestfs.pod:1784 msgid "The only defined and stable parts of the API are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1809 +#: ../src/guestfs.pod:1790 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:1814 +#: ../src/guestfs.pod:1795 msgid "0 E<lt>= C<position> E<lt>= C<total>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1818 +#: ../src/guestfs.pod:1799 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 " @@ -40073,7 +40044,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1822 +#: ../src/guestfs.pod:1803 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 " @@ -40081,7 +40052,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1828 +#: ../src/guestfs.pod:1809 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 " @@ -40090,7 +40061,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1833 +#: ../src/guestfs.pod:1814 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 " @@ -40098,14 +40069,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1837 +#: ../src/guestfs.pod:1818 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:1842 +#: ../src/guestfs.pod:1823 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 " @@ -40114,31 +40085,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1848 +#: ../src/guestfs.pod:1829 msgid "If no callback is registered: progress messages are discarded." msgstr "" #. type: =item -#: ../src/guestfs.pod:1850 +#: ../src/guestfs.pod:1831 msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1853 +#: ../src/guestfs.pod:1834 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:1856 +#: ../src/guestfs.pod:1837 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:1859 ../src/guestfs.pod:1873 +#: ../src/guestfs.pod:1840 ../src/guestfs.pod:1854 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 " @@ -40146,63 +40117,63 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1864 +#: ../src/guestfs.pod:1845 msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1867 +#: ../src/guestfs.pod:1848 msgid "" "The callback function is called whenever a log message is generated by the " "library part of libguestfs." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1870 +#: ../src/guestfs.pod:1851 msgid "" "If the verbose flag (L</guestfs_set_verbose>) is set then additional debug " "messages are generated." msgstr "" #. type: =item -#: ../src/guestfs.pod:1878 +#: ../src/guestfs.pod:1859 msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1881 +#: ../src/guestfs.pod:1862 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:1884 +#: ../src/guestfs.pod:1865 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: =item -#: ../src/guestfs.pod:1888 +#: ../src/guestfs.pod:1869 msgid "GUESTFS_EVENT_ENTER (payload type: function name)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1891 +#: ../src/guestfs.pod:1872 msgid "" "The callback function is called whenever a libguestfs function is entered." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1894 +#: ../src/guestfs.pod:1875 msgid "" "The payload is a string which contains the name of the function that we are " "entering (not including C<guestfs_> prefix)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1897 +#: ../src/guestfs.pod:1878 msgid "" "Note that libguestfs functions can call themselves, so you may see many " "events from a single call. A few libguestfs functions do not generate this " @@ -40210,12 +40181,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1905 +#: ../src/guestfs.pod:1886 msgid "guestfs_set_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1907 +#: ../src/guestfs.pod:1888 #, no-wrap msgid "" " int guestfs_set_event_callback (guestfs_h *g,\n" @@ -40227,14 +40198,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1913 +#: ../src/guestfs.pod:1894 msgid "" "This function registers a callback (C<cb>) for all event classes in the " "C<event_bitmask>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1916 +#: ../src/guestfs.pod:1897 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>. " @@ -40243,40 +40214,40 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1922 +#: ../src/guestfs.pod:1903 msgid "C<flags> should always be passed as 0." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1924 +#: ../src/guestfs.pod:1905 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:1927 +#: ../src/guestfs.pod:1908 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:1930 +#: ../src/guestfs.pod:1911 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:1933 +#: ../src/guestfs.pod:1914 msgid "" "Callbacks remain in effect until they are deleted, or until the handle is " "closed." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1936 +#: ../src/guestfs.pod:1917 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 " @@ -40284,12 +40255,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1940 +#: ../src/guestfs.pod:1921 msgid "guestfs_delete_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1942 +#: ../src/guestfs.pod:1923 #, no-wrap msgid "" " void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n" @@ -40297,7 +40268,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1944 +#: ../src/guestfs.pod:1925 msgid "" "Delete a callback that was previously registered. C<event_handle> should be " "the integer that was returned by a previous call to " @@ -40305,12 +40276,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1948 +#: ../src/guestfs.pod:1929 msgid "guestfs_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1950 +#: ../src/guestfs.pod:1931 #, no-wrap msgid "" " typedef void (*guestfs_event_callback) (\n" @@ -40325,13 +40296,13 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1959 +#: ../src/guestfs.pod:1940 msgid "" "This is the type of the event callback function that you have to provide." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1962 +#: ../src/guestfs.pod:1943 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 " @@ -40339,7 +40310,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1966 +#: ../src/guestfs.pod:1947 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 " @@ -40348,7 +40319,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1971 +#: ../src/guestfs.pod:1952 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 " @@ -40356,19 +40327,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1975 +#: ../src/guestfs.pod:1956 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:1978 +#: ../src/guestfs.pod:1959 msgid "EXAMPLE: CAPTURING LOG MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1980 +#: ../src/guestfs.pod:1961 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 " @@ -40376,7 +40347,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1984 +#: ../src/guestfs.pod:1965 msgid "" "Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, " "C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error " @@ -40384,14 +40355,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1989 +#: ../src/guestfs.pod:1970 msgid "" "Programs have to set up a callback to capture the classes of events of " "interest:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1992 +#: ../src/guestfs.pod:1973 #, no-wrap msgid "" " int eh =\n" @@ -40407,14 +40378,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2002 +#: ../src/guestfs.pod:1983 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:2005 +#: ../src/guestfs.pod:1986 #, no-wrap msgid "" " static void\n" @@ -40435,12 +40406,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2020 +#: ../src/guestfs.pod:2001 msgid "CANCELLING LONG TRANSFERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2022 +#: ../src/guestfs.pod:2003 msgid "" "Some operations can be cancelled by the caller while they are in progress. " "Currently only operations that involve uploading or downloading data can be " @@ -40449,12 +40420,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2027 +#: ../src/guestfs.pod:2008 msgid "guestfs_user_cancel" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2029 +#: ../src/guestfs.pod:2010 #, no-wrap msgid "" " void guestfs_user_cancel (guestfs_h *g);\n" @@ -40462,13 +40433,13 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2031 +#: ../src/guestfs.pod:2012 msgid "" "C<guestfs_user_cancel> cancels the current upload or download operation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2034 +#: ../src/guestfs.pod:2015 msgid "" "Unlike most other libguestfs calls, this function is signal safe and thread " "safe. You can call it from a signal handler or from another thread, without " @@ -40476,7 +40447,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2038 +#: ../src/guestfs.pod:2019 msgid "" "The transfer that was in progress (if there is one) will stop shortly " "afterwards, and will return an error. The errno (see L</" @@ -40485,7 +40456,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2044 +#: ../src/guestfs.pod:2025 msgid "" "No cleanup is performed: for example, if a file was being uploaded then " "after cancellation there may be a partially uploaded file. It is the " @@ -40493,12 +40464,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2048 +#: ../src/guestfs.pod:2029 msgid "There are two common places that you might call C<guestfs_user_cancel>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2050 +#: ../src/guestfs.pod:2031 msgid "" "In an interactive text-based program, you might call it from a C<SIGINT> " "signal handler so that pressing C<^C> cancels the current operation. (You " @@ -40507,19 +40478,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2055 +#: ../src/guestfs.pod:2036 msgid "" "In a graphical program, when the main thread is displaying a progress bar " "with a cancel button, wire up the cancel button to call this function." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2059 +#: ../src/guestfs.pod:2040 msgid "PRIVATE DATA AREA" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2061 +#: ../src/guestfs.pod:2042 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 " @@ -40527,12 +40498,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2066 +#: ../src/guestfs.pod:2047 msgid "To attach a named piece of data, use the following call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2068 +#: ../src/guestfs.pod:2049 #, no-wrap msgid "" " void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n" @@ -40540,7 +40511,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2070 +#: ../src/guestfs.pod:2051 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 key is " @@ -40548,7 +40519,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2074 +#: ../src/guestfs.pod:2055 msgid "" "You can use any C<key> you want, but your key should I<not> start with an " "underscore character. Keys beginning with an underscore character are " @@ -40558,12 +40529,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2080 +#: ../src/guestfs.pod:2061 msgid "To retrieve the pointer, use:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2082 +#: ../src/guestfs.pod:2063 #, no-wrap msgid "" " void *guestfs_get_private (guestfs_h *g, const char *key);\n" @@ -40571,7 +40542,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2084 +#: ../src/guestfs.pod:2065 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 " @@ -40579,7 +40550,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2088 +#: ../src/guestfs.pod:2069 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 " @@ -40590,12 +40561,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2095 +#: ../src/guestfs.pod:2076 msgid "To walk over all entries, use these two functions:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2097 +#: ../src/guestfs.pod:2078 #, no-wrap msgid "" " void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n" @@ -40603,7 +40574,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2099 +#: ../src/guestfs.pod:2080 #, no-wrap msgid "" " void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n" @@ -40611,7 +40582,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2101 +#: ../src/guestfs.pod:2082 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 " @@ -40621,7 +40592,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2107 +#: ../src/guestfs.pod:2088 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 " @@ -40629,18 +40600,18 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2111 +#: ../src/guestfs.pod:2092 msgid "Notes about walking over entries:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2117 +#: ../src/guestfs.pod:2098 msgid "" "You must not call C<guestfs_set_private> while walking over the entries." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2122 +#: ../src/guestfs.pod:2103 msgid "" "The handle maintains an internal iterator which is reset when you call " "C<guestfs_first_private>. This internal iterator is invalidated when you " @@ -40648,12 +40619,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2128 +#: ../src/guestfs.pod:2109 msgid "If you have set the data pointer associated with a key to C<NULL>, ie:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2130 +#: ../src/guestfs.pod:2111 #, no-wrap msgid "" " guestfs_set_private (g, key, NULL);\n" @@ -40661,26 +40632,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2132 +#: ../src/guestfs.pod:2113 msgid "then that C<key> is not returned when walking." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2136 +#: ../src/guestfs.pod:2117 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:2142 +#: ../src/guestfs.pod:2123 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:2145 +#: ../src/guestfs.pod:2126 #, no-wrap msgid "" " const char *key;\n" @@ -40694,14 +40665,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2153 +#: ../src/guestfs.pod:2134 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:2156 +#: ../src/guestfs.pod:2137 #, no-wrap msgid "" " const char *key;\n" @@ -40716,7 +40687,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2165 +#: ../src/guestfs.pod:2146 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 " @@ -40724,7 +40695,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2169 +#: ../src/guestfs.pod:2150 #, no-wrap msgid "" " const char *key;\n" @@ -40746,7 +40717,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2185 +#: ../src/guestfs.pod:2166 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 " @@ -40755,12 +40726,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2190 +#: ../src/guestfs.pod:2171 msgid "SYSTEMTAP" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2192 +#: ../src/guestfs.pod:2173 msgid "" "The libguestfs C library can be probed using systemtap or DTrace. This is " "true of any library, not just libguestfs. However libguestfs also contains " @@ -40768,12 +40739,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2196 +#: ../src/guestfs.pod:2177 msgid "You can list all the static markers by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2198 +#: ../src/guestfs.pod:2179 #, no-wrap msgid "" " stap -l 'process(\"/usr/lib*/libguestfs.so.0\")\n" @@ -40782,26 +40753,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2201 +#: ../src/guestfs.pod:2182 msgid "" "B<Note:> These static markers are I<not> part of the stable API and may " "change in future versions." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2204 +#: ../src/guestfs.pod:2185 msgid "SYSTEMTAP SCRIPT EXAMPLE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2206 +#: ../src/guestfs.pod:2187 msgid "" "This script contains examples of displaying both the static markers and some " "ordinary C entry points:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2209 +#: ../src/guestfs.pod:2190 #, no-wrap msgid "" " global last;\n" @@ -40809,7 +40780,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2211 +#: ../src/guestfs.pod:2192 #, no-wrap msgid "" " function display_time () {\n" @@ -40822,7 +40793,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2218 +#: ../src/guestfs.pod:2199 #, no-wrap msgid "" " printf (\"%d (+%d):\", now, delta);\n" @@ -40831,7 +40802,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2221 +#: ../src/guestfs.pod:2202 #, no-wrap msgid "" " probe begin {\n" @@ -40842,7 +40813,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2226 +#: ../src/guestfs.pod:2207 #, no-wrap msgid "" " /* Display all calls to static markers. */\n" @@ -40855,7 +40826,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2233 +#: ../src/guestfs.pod:2214 #, no-wrap msgid "" " /* Display all calls to guestfs_mkfs* functions. */\n" @@ -40868,7 +40839,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2240 +#: ../src/guestfs.pod:2221 msgid "" "The script above can be saved to C<test.stap> and run using the L<stap(1)> " "program. Note that you either have to be root, or you have to add yourself " @@ -40877,7 +40848,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2245 +#: ../src/guestfs.pod:2226 #, no-wrap msgid "" " # stap /tmp/test.stap\n" @@ -40886,17 +40857,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2248 +#: ../src/guestfs.pod:2229 msgid "In another terminal, run a guestfish command such as this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2252 +#: ../src/guestfs.pod:2233 msgid "In the first terminal, stap trace output similar to this is shown:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2254 +#: ../src/guestfs.pod:2235 #, no-wrap msgid "" " 1318248056692655 (+0):\tlaunch_start\n" @@ -40909,24 +40880,24 @@ msgid "" msgstr "" #. type: =end -#: ../src/guestfs.pod:2261 ../src/guestfs.pod:2266 +#: ../src/guestfs.pod:2242 ../src/guestfs.pod:2247 msgid "html" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2263 +#: ../src/guestfs.pod:2244 msgid "" "<!-- old anchor for the next section --> <a name=" "\"state_machine_and_low_level_event_api\"/>" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2268 +#: ../src/guestfs.pod:2249 msgid "ARCHITECTURE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2270 +#: ../src/guestfs.pod:2251 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 " @@ -40934,7 +40905,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2274 +#: ../src/guestfs.pod:2255 #, no-wrap msgid "" " ___________________\n" @@ -40960,14 +40931,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2294 +#: ../src/guestfs.pod:2275 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:2297 +#: ../src/guestfs.pod:2278 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 " @@ -40979,7 +40950,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2306 +#: ../src/guestfs.pod:2287 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 " @@ -40990,17 +40961,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2313 +#: ../src/guestfs.pod:2294 msgid "STATE MACHINE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2315 +#: ../src/guestfs.pod:2296 msgid "libguestfs uses a state machine to model the child process:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2317 +#: ../src/guestfs.pod:2298 #, no-wrap msgid "" " |\n" @@ -41028,7 +40999,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2339 +#: ../src/guestfs.pod:2320 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), " @@ -41037,7 +41008,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2344 +#: ../src/guestfs.pod:2325 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 " @@ -41045,14 +41016,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2348 +#: ../src/guestfs.pod:2329 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:2351 +#: ../src/guestfs.pod:2332 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 " @@ -41061,7 +41032,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2357 +#: ../src/guestfs.pod:2338 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. " @@ -41071,7 +41042,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2363 +#: ../src/guestfs.pod:2344 msgid "" "Finally, the child process sends asynchronous messages back to the main " "program, such as kernel log messages. You can register a callback to " @@ -41079,17 +41050,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2367 +#: ../src/guestfs.pod:2348 msgid "INTERNALS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2369 +#: ../src/guestfs.pod:2350 msgid "APPLIANCE BOOT PROCESS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2371 +#: ../src/guestfs.pod:2352 msgid "" "This process has evolved and continues to evolve. The description here " "corresponds only to the current version of libguestfs and is provided for " @@ -41097,55 +41068,55 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2375 +#: ../src/guestfs.pod:2356 msgid "" "In order to follow the stages involved below, enable libguestfs debugging " "(set the environment variable C<LIBGUESTFS_DEBUG=1>)." msgstr "" #. type: =item -#: ../src/guestfs.pod:2380 +#: ../src/guestfs.pod:2361 msgid "Create the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2382 +#: ../src/guestfs.pod:2363 msgid "" "C<febootstrap-supermin-helper> is invoked to create the kernel, a small " "initrd and the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2385 +#: ../src/guestfs.pod:2366 msgid "" "The appliance is cached in C</var/tmp/.guestfs-E<lt>UIDE<gt>> (or in another " "directory if C<TMPDIR> is set)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2388 +#: ../src/guestfs.pod:2369 msgid "" "For a complete description of how the appliance is created and cached, read " "the L<febootstrap(8)> and L<febootstrap-supermin-helper(8)> man pages." msgstr "" #. type: =item -#: ../src/guestfs.pod:2392 +#: ../src/guestfs.pod:2373 msgid "Start qemu and boot the kernel" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2394 +#: ../src/guestfs.pod:2375 msgid "qemu is invoked to boot the kernel." msgstr "" #. type: =item -#: ../src/guestfs.pod:2396 +#: ../src/guestfs.pod:2377 msgid "Run the initrd" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2398 +#: ../src/guestfs.pod:2379 msgid "" "C<febootstrap-supermin-helper> builds a small initrd. The initrd is not the " "appliance. The purpose of the initrd is to load enough kernel modules in " @@ -41153,21 +41124,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2402 +#: ../src/guestfs.pod:2383 msgid "" "The initrd is a cpio archive called C</var/tmp/.guestfs-E<lt>UIDE<gt>/" "initrd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2405 +#: ../src/guestfs.pod:2386 msgid "" "When the initrd has started you will see messages showing that kernel " "modules are being loaded, similar to this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2408 +#: ../src/guestfs.pod:2389 #, no-wrap msgid "" " febootstrap: ext2 mini initrd starting up\n" @@ -41178,12 +41149,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2413 +#: ../src/guestfs.pod:2394 msgid "Find and mount the appliance device" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2415 +#: ../src/guestfs.pod:2396 msgid "" "The appliance is a sparse file containing an ext2 filesystem which contains " "a familiar (although reduced in size) Linux operating system. It would " @@ -41191,33 +41162,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2419 +#: ../src/guestfs.pod:2400 msgid "" "The regular disks being inspected by libguestfs are the first devices " "exposed by qemu (eg. as C</dev/vda>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2422 +#: ../src/guestfs.pod:2403 msgid "" "The last disk added to qemu is the appliance itself (eg. C</dev/vdb> if " "there was only one regular disk)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2425 +#: ../src/guestfs.pod:2406 msgid "" "Thus the final job of the initrd is to locate the appliance disk, mount it, " "and switch root into the appliance, and run C</init> from the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2429 +#: ../src/guestfs.pod:2410 msgid "If this works successfully you will see messages such as:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2431 +#: ../src/guestfs.pod:2412 #, no-wrap msgid "" " febootstrap: picked /sys/block/vdb/dev as root device\n" @@ -41229,19 +41200,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2437 +#: ../src/guestfs.pod:2418 msgid "" "Note that C<Starting /init script ...> indicates that the appliance's init " "script is now running." msgstr "" #. type: =item -#: ../src/guestfs.pod:2440 +#: ../src/guestfs.pod:2421 msgid "Initialize the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2442 +#: ../src/guestfs.pod:2423 msgid "" "The appliance itself now initializes itself. This involves starting certain " "processes like C<udev>, possibly printing some debug information, and " @@ -41249,19 +41220,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2446 +#: ../src/guestfs.pod:2427 msgid "The daemon" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2448 +#: ../src/guestfs.pod:2429 msgid "" "Finally the daemon (C<guestfsd>) runs inside the appliance. If it runs you " "should see:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2451 +#: ../src/guestfs.pod:2432 #, no-wrap msgid "" " verbose daemon enabled\n" @@ -41269,14 +41240,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2453 +#: ../src/guestfs.pod:2434 msgid "" "The daemon expects to see a named virtio-serial port exposed by qemu and " "connected on the other end to the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2456 +#: ../src/guestfs.pod:2437 msgid "" "The daemon connects to this port (and hence to the library) and sends a four " "byte message C<GUESTFS_LAUNCH_FLAG>, which initiates the communication " @@ -41284,19 +41255,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2462 +#: ../src/guestfs.pod:2443 msgid "COMMUNICATION PROTOCOL" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2464 +#: ../src/guestfs.pod:2445 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:2467 +#: ../src/guestfs.pod:2448 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 " @@ -41304,14 +41275,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2471 +#: ../src/guestfs.pod:2452 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:2474 +#: ../src/guestfs.pod:2455 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 " @@ -41321,17 +41292,17 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2481 +#: ../src/guestfs.pod:2462 msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2483 +#: ../src/guestfs.pod:2464 msgid "For ordinary functions, the request message is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2485 +#: ../src/guestfs.pod:2466 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -41342,7 +41313,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2490 +#: ../src/guestfs.pod:2471 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 " @@ -41351,21 +41322,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2496 +#: ../src/guestfs.pod:2477 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:2499 +#: ../src/guestfs.pod:2480 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:2503 +#: ../src/guestfs.pod:2484 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 " @@ -41377,12 +41348,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2511 +#: ../src/guestfs.pod:2492 msgid "The reply message for ordinary functions is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2513 +#: ../src/guestfs.pod:2494 #, no-wrap msgid "" " total length (header + ret,\n" @@ -41393,27 +41364,27 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2518 +#: ../src/guestfs.pod:2499 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:2521 +#: ../src/guestfs.pod:2502 msgid "" "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2524 +#: ../src/guestfs.pod:2505 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:2527 +#: ../src/guestfs.pod:2508 #, no-wrap msgid "" " total length (header + error,\n" @@ -41424,19 +41395,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2532 +#: ../src/guestfs.pod:2513 msgid "" "The C<guestfs_message_error> structure contains the error message as a " "string." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2535 +#: ../src/guestfs.pod:2516 msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2537 +#: ../src/guestfs.pod:2518 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 " @@ -41444,7 +41415,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2541 +#: ../src/guestfs.pod:2522 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -41458,12 +41429,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2549 +#: ../src/guestfs.pod:2530 msgid "The \"sequence of chunks\" is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2551 +#: ../src/guestfs.pod:2532 #, no-wrap msgid "" " length of chunk (not including length word itself)\n" @@ -41477,7 +41448,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2559 +#: ../src/guestfs.pod:2540 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 " @@ -41485,7 +41456,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2563 +#: ../src/guestfs.pod:2544 msgid "" "At time of writing there are no functions that have more than one FileIn " "parameter. However this is (theoretically) supported, by sending the " @@ -41494,7 +41465,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2568 +#: ../src/guestfs.pod:2549 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 " @@ -41503,7 +41474,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2574 +#: ../src/guestfs.pod:2555 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 " @@ -41515,7 +41486,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2583 +#: ../src/guestfs.pod:2564 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 " @@ -41525,19 +41496,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2589 +#: ../src/guestfs.pod:2570 msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2591 +#: ../src/guestfs.pod:2572 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:2594 +#: ../src/guestfs.pod:2575 #, no-wrap msgid "" " total length (header + ret,\n" @@ -41551,12 +41522,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2602 +#: ../src/guestfs.pod:2583 msgid "INITIAL MESSAGE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2604 +#: ../src/guestfs.pod:2585 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</" @@ -41564,12 +41535,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2608 +#: ../src/guestfs.pod:2589 msgid "PROGRESS NOTIFICATION MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2610 +#: ../src/guestfs.pod:2591 msgid "" "The daemon may send progress notification messages at any time. These are " "distinguished by the normal length word being replaced by " @@ -41577,7 +41548,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2614 +#: ../src/guestfs.pod:2595 msgid "" "The library turns them into progress callbacks (see L</" "GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards them " @@ -41585,7 +41556,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2618 +#: ../src/guestfs.pod:2599 msgid "" "The daemon self-limits the frequency of progress messages it sends (see " "C<daemon/proto.c:notify_progress>). Not all calls generate progress " @@ -41593,12 +41564,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2622 +#: ../src/guestfs.pod:2603 msgid "LIBGUESTFS VERSION NUMBERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2624 +#: ../src/guestfs.pod:2605 msgid "" "Since April 2010, libguestfs has started to make separate development and " "stable releases, along with corresponding branches in our git repository. " @@ -41606,7 +41577,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2629 +#: ../src/guestfs.pod:2610 #, no-wrap msgid "" " even numbers for stable: 1.2.x, 1.4.x, ...\n" @@ -41623,12 +41594,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2640 +#: ../src/guestfs.pod:2621 msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2642 +#: ../src/guestfs.pod:2623 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 " @@ -41638,26 +41609,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2648 +#: ../src/guestfs.pod:2629 msgid "Our criteria for backporting changes are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2654 +#: ../src/guestfs.pod:2635 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:2660 +#: ../src/guestfs.pod:2641 msgid "" "Bug fixes which are not controversial, fix obvious problems, and have been " "well tested are backported." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2665 +#: ../src/guestfs.pod:2646 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 " @@ -41665,7 +41636,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2671 +#: ../src/guestfs.pod:2652 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 " @@ -41673,7 +41644,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2677 +#: ../src/guestfs.pod:2658 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 " @@ -41684,17 +41655,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2685 +#: ../src/guestfs.pod:2666 msgid "EXTENDING LIBGUESTFS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2687 +#: ../src/guestfs.pod:2668 msgid "ADDING A NEW API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2689 +#: ../src/guestfs.pod:2670 msgid "" "Large amounts of boilerplate code in libguestfs (RPC, bindings, " "documentation) are generated, and this makes it easy to extend the " @@ -41702,19 +41673,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2693 +#: ../src/guestfs.pod:2674 msgid "To add a new API action there are two changes:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2699 +#: ../src/guestfs.pod:2680 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:2702 +#: ../src/guestfs.pod:2683 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 " @@ -41725,7 +41696,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2710 +#: ../src/guestfs.pod:2691 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 " @@ -41735,7 +41706,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2716 +#: ../src/guestfs.pod:2697 msgid "" "For library-only actions of the second type, add to the " "C<non_daemon_functions> list. Since these functions are serviced by the " @@ -41745,36 +41716,36 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2724 +#: ../src/guestfs.pod:2705 msgid "Implement the action (in C):" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2726 +#: ../src/guestfs.pod:2707 msgid "" "For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the " "C<daemon/> directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2729 +#: ../src/guestfs.pod:2710 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:2732 +#: ../src/guestfs.pod:2713 msgid "In either case, use another function as an example of what to do." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2736 +#: ../src/guestfs.pod:2717 msgid "After making these changes, use C<make> to compile." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2738 +#: ../src/guestfs.pod:2719 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 " @@ -41782,12 +41753,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2742 +#: ../src/guestfs.pod:2723 msgid "ADDING TESTS FOR AN API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2744 +#: ../src/guestfs.pod:2725 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/" @@ -41797,61 +41768,61 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2751 +#: ../src/guestfs.pod:2732 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:2754 +#: ../src/guestfs.pod:2735 msgid "The test environment has 4 block devices:" msgstr "" #. type: =item -#: ../src/guestfs.pod:2758 +#: ../src/guestfs.pod:2739 msgid "C</dev/sda> 500MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2760 +#: ../src/guestfs.pod:2741 msgid "General block device for testing." msgstr "" #. type: =item -#: ../src/guestfs.pod:2762 +#: ../src/guestfs.pod:2743 msgid "C</dev/sdb> 50MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2764 +#: ../src/guestfs.pod:2745 msgid "" "C</dev/sdb1> is an ext2 filesystem used for testing filesystem write " "operations." msgstr "" #. type: =item -#: ../src/guestfs.pod:2767 +#: ../src/guestfs.pod:2748 msgid "C</dev/sdc> 10MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2769 +#: ../src/guestfs.pod:2750 msgid "Used in a few tests where two block devices are needed." msgstr "" #. type: =item -#: ../src/guestfs.pod:2771 +#: ../src/guestfs.pod:2752 msgid "C</dev/sdd>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2773 +#: ../src/guestfs.pod:2754 msgid "ISO with fixed content (see C<images/test.iso>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2777 +#: ../src/guestfs.pod:2758 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 " @@ -41859,7 +41830,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2781 +#: ../src/guestfs.pod:2762 msgid "" "Each test starts with an initial scenario, selected using one of the " "C<Init*> expressions, described in C<generator/generator_types.ml>. These " @@ -41869,7 +41840,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2787 +#: ../src/guestfs.pod:2768 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 " @@ -41879,14 +41850,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2793 +#: ../src/guestfs.pod:2774 msgid "" "In addition, packagers can skip individual tests by setting environment " "variables before running C<make check>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2796 +#: ../src/guestfs.pod:2777 #, no-wrap msgid "" " SKIP_TEST_<CMD>_<NUM>=1\n" @@ -41894,12 +41865,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2798 +#: ../src/guestfs.pod:2779 msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2802 +#: ../src/guestfs.pod:2783 #, no-wrap msgid "" " SKIP_TEST_<CMD>=1\n" @@ -41907,17 +41878,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2804 +#: ../src/guestfs.pod:2785 msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2806 +#: ../src/guestfs.pod:2787 msgid "Packagers can run only certain tests by setting for example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2808 +#: ../src/guestfs.pod:2789 #, no-wrap msgid "" " TEST_ONLY=\"vfs_type zerofree\"\n" @@ -41925,29 +41896,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2810 +#: ../src/guestfs.pod:2791 msgid "" "See C<tests/c-api/tests.c> for more details of how these environment " "variables work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2813 +#: ../src/guestfs.pod:2794 msgid "DEBUGGING NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2815 +#: ../src/guestfs.pod:2796 msgid "Test new actions work before submitting them." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2817 +#: ../src/guestfs.pod:2798 msgid "You can use guestfish to try out new commands." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2819 +#: ../src/guestfs.pod:2800 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 " @@ -41955,12 +41926,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2823 +#: ../src/guestfs.pod:2804 msgid "FORMATTING CODE AND OTHER CONVENTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2825 +#: ../src/guestfs.pod:2806 msgid "" "Our C source code generally adheres to some basic code-formatting " "conventions. The existing code base is not totally consistent on this " @@ -41970,14 +41941,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2831 +#: ../src/guestfs.pod:2812 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:2834 +#: ../src/guestfs.pod:2815 #, no-wrap msgid "" " ;;; In libguestfs, indent with spaces everywhere (not TABs).\n" @@ -41993,7 +41964,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2844 +#: ../src/guestfs.pod:2825 #, no-wrap msgid "" " ;;; When editing C sources in libguestfs, use this style.\n" @@ -42011,12 +41982,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2856 +#: ../src/guestfs.pod:2837 msgid "Enable warnings when compiling (and fix any problems this finds):" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2859 +#: ../src/guestfs.pod:2840 #, no-wrap msgid "" " ./configure --enable-gcc-warnings\n" @@ -42024,12 +41995,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2861 +#: ../src/guestfs.pod:2842 msgid "Useful targets are:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2863 +#: ../src/guestfs.pod:2844 #, no-wrap msgid "" " make syntax-check # checks the syntax of the C code\n" @@ -42038,43 +42009,43 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2866 +#: ../src/guestfs.pod:2847 msgid "DAEMON CUSTOM PRINTF FORMATTERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2868 +#: ../src/guestfs.pod:2849 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:2873 +#: ../src/guestfs.pod:2854 msgid "%Q" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2875 +#: ../src/guestfs.pod:2856 msgid "" "Simple shell quoted string. Any spaces or other shell characters are " "escaped for you." msgstr "" #. type: =item -#: ../src/guestfs.pod:2878 +#: ../src/guestfs.pod:2859 msgid "%R" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2880 +#: ../src/guestfs.pod:2861 msgid "" "Same as C<%Q> except the string is treated as a path which is prefixed by " "the sysroot." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2887 +#: ../src/guestfs.pod:2868 #, no-wrap msgid "" " asprintf (&cmd, \"cat %R\", path);\n" @@ -42082,12 +42053,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2889 +#: ../src/guestfs.pod:2870 msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2891 +#: ../src/guestfs.pod:2872 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 " @@ -42096,29 +42067,29 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2897 +#: ../src/guestfs.pod:2878 msgid "SUBMITTING YOUR NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2899 +#: ../src/guestfs.pod:2880 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:2903 +#: ../src/guestfs.pod:2884 msgid "INTERNATIONALIZATION (I18N) SUPPORT" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2905 +#: ../src/guestfs.pod:2886 msgid "We support i18n (gettext anyhow) in the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2907 +#: ../src/guestfs.pod:2888 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 " @@ -42127,114 +42098,114 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2913 +#: ../src/guestfs.pod:2894 msgid "" "Debugging messages are never translated, since they are intended for the " "programmers." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2916 +#: ../src/guestfs.pod:2897 msgid "SOURCE CODE SUBDIRECTORIES" msgstr "" #. type: =item -#: ../src/guestfs.pod:2920 +#: ../src/guestfs.pod:2901 msgid "C<align>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2922 +#: ../src/guestfs.pod:2903 msgid "L<virt-alignment-scan(1)> command and documentation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2926 +#: ../src/guestfs.pod:2907 msgid "The libguestfs appliance, build scripts and so on." msgstr "" #. type: =item -#: ../src/guestfs.pod:2928 +#: ../src/guestfs.pod:2909 msgid "C<cat>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2930 +#: ../src/guestfs.pod:2911 msgid "" "The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and " "documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2933 +#: ../src/guestfs.pod:2914 msgid "C<clone>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2935 +#: ../src/guestfs.pod:2916 msgid "" "Tools for cloning virtual machines. Currently contains L<virt-sysprep(1)> " "command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2938 +#: ../src/guestfs.pod:2919 msgid "C<contrib>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2940 +#: ../src/guestfs.pod:2921 msgid "Outside contributions, experimental parts." msgstr "" #. type: =item -#: ../src/guestfs.pod:2942 +#: ../src/guestfs.pod:2923 msgid "C<daemon>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2944 +#: ../src/guestfs.pod:2925 msgid "" "The daemon that runs inside the libguestfs appliance and carries out actions." msgstr "" #. type: =item -#: ../src/guestfs.pod:2947 +#: ../src/guestfs.pod:2928 msgid "C<df>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2949 +#: ../src/guestfs.pod:2930 msgid "L<virt-df(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2951 +#: ../src/guestfs.pod:2932 msgid "C<edit>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2953 +#: ../src/guestfs.pod:2934 msgid "L<virt-edit(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2955 +#: ../src/guestfs.pod:2936 msgid "C<examples>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2957 +#: ../src/guestfs.pod:2938 msgid "C API example code." msgstr "" #. type: =item -#: ../src/guestfs.pod:2959 +#: ../src/guestfs.pod:2940 msgid "C<fish>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2961 +#: ../src/guestfs.pod:2942 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)>, " @@ -42242,80 +42213,80 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2967 +#: ../src/guestfs.pod:2948 msgid "L<virt-format(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2969 +#: ../src/guestfs.pod:2950 msgid "C<fuse>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2971 +#: ../src/guestfs.pod:2952 msgid "" "L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:2973 +#: ../src/guestfs.pod:2954 msgid "C<generator>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2975 +#: ../src/guestfs.pod:2956 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:2978 +#: ../src/guestfs.pod:2959 msgid "C<inspector>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2980 +#: ../src/guestfs.pod:2961 msgid "L<virt-inspector(1)>, the virtual machine image inspector." msgstr "" #. type: =item -#: ../src/guestfs.pod:2982 +#: ../src/guestfs.pod:2963 msgid "C<logo>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2984 +#: ../src/guestfs.pod:2965 msgid "Logo used on the website. The fish is called Arthur by the way." msgstr "" #. type: =item -#: ../src/guestfs.pod:2986 +#: ../src/guestfs.pod:2967 msgid "C<m4>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2988 +#: ../src/guestfs.pod:2969 msgid "M4 macros used by autoconf." msgstr "" #. type: =item -#: ../src/guestfs.pod:2990 +#: ../src/guestfs.pod:2971 msgid "C<po>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2992 +#: ../src/guestfs.pod:2973 msgid "Translations of simple gettext strings." msgstr "" #. type: =item -#: ../src/guestfs.pod:2994 +#: ../src/guestfs.pod:2975 msgid "C<po-docs>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2996 +#: ../src/guestfs.pod:2977 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 " @@ -42323,140 +42294,140 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:3000 +#: ../src/guestfs.pod:2981 msgid "C<rescue>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3002 +#: ../src/guestfs.pod:2983 msgid "L<virt-rescue(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3004 +#: ../src/guestfs.pod:2985 msgid "C<resize>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3006 +#: ../src/guestfs.pod:2987 msgid "L<virt-resize(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3008 +#: ../src/guestfs.pod:2989 msgid "C<sparsify>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3010 +#: ../src/guestfs.pod:2991 msgid "L<virt-sparsify(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3012 +#: ../src/guestfs.pod:2993 msgid "C<src>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3014 +#: ../src/guestfs.pod:2995 msgid "Source code to the C library." msgstr "" #. type: =item -#: ../src/guestfs.pod:3016 +#: ../src/guestfs.pod:2997 msgid "C<test-tool>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3018 +#: ../src/guestfs.pod:2999 msgid "" "Test tool for end users to test if their qemu/kernel combination will work " "with libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:3021 +#: ../src/guestfs.pod:3002 msgid "C<tests>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3023 +#: ../src/guestfs.pod:3004 msgid "Tests." msgstr "" #. type: =item -#: ../src/guestfs.pod:3025 +#: ../src/guestfs.pod:3006 msgid "C<tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3027 +#: ../src/guestfs.pod:3008 msgid "" "Command line tools written in Perl (L<virt-win-reg(1)> and many others)." msgstr "" #. type: =item -#: ../src/guestfs.pod:3029 +#: ../src/guestfs.pod:3010 msgid "C<csharp>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3031 +#: ../src/guestfs.pod:3012 msgid "C<erlang>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3033 +#: ../src/guestfs.pod:3014 msgid "C<gobject>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3035 +#: ../src/guestfs.pod:3016 msgid "C<haskell>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3037 +#: ../src/guestfs.pod:3018 msgid "C<java>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3039 +#: ../src/guestfs.pod:3020 msgid "C<ocaml>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3041 +#: ../src/guestfs.pod:3022 msgid "C<php>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3043 +#: ../src/guestfs.pod:3024 msgid "C<perl>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3045 +#: ../src/guestfs.pod:3026 msgid "C<python>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3047 +#: ../src/guestfs.pod:3028 msgid "C<ruby>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3049 +#: ../src/guestfs.pod:3030 msgid "Language bindings." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3053 +#: ../src/guestfs.pod:3034 msgid "MAKING A STABLE RELEASE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3055 +#: ../src/guestfs.pod:3036 msgid "" "When we make a stable release, there are several steps documented here. See " "L</LIBGUESTFS VERSION NUMBERS> for general information about the stable " @@ -42464,33 +42435,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3063 +#: ../src/guestfs.pod:3044 msgid "" "Check C<make && make check> works on at least Fedora, Debian and Ubuntu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3068 +#: ../src/guestfs.pod:3049 msgid "Finalize RELEASE-NOTES." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3072 +#: ../src/guestfs.pod:3053 msgid "Update ROADMAP." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3076 +#: ../src/guestfs.pod:3057 msgid "Run C<src/api-support/update-from-tarballs.sh>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3080 +#: ../src/guestfs.pod:3061 msgid "Push and pull from Transifex." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3084 +#: ../src/guestfs.pod:3065 #, no-wrap msgid "" " tx push -s\n" @@ -42498,12 +42469,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3086 +#: ../src/guestfs.pod:3067 msgid "to push the latest POT files to Transifex. Then run:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3088 +#: ../src/guestfs.pod:3069 #, no-wrap msgid "" " ./tx-pull.sh\n" @@ -42511,24 +42482,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3090 +#: ../src/guestfs.pod:3071 msgid "which is a wrapper to pull the latest translated C<*.po> files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3094 +#: ../src/guestfs.pod:3075 msgid "" "Create new stable and development directories under L<http://libguestfs.org/" "download>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3099 +#: ../src/guestfs.pod:3080 msgid "Create the branch in git:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3101 +#: ../src/guestfs.pod:3082 #, no-wrap msgid "" " git tag -a 1.XX.0 -m \"Version 1.XX.0 (stable)\"\n" @@ -42539,17 +42510,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:3108 +#: ../src/guestfs.pod:3089 msgid "LIMITS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3110 +#: ../src/guestfs.pod:3091 msgid "PROTOCOL LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3112 +#: ../src/guestfs.pod:3093 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 " @@ -42560,7 +42531,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3120 +#: ../src/guestfs.pod:3101 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 " @@ -42569,7 +42540,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3126 +#: ../src/guestfs.pod:3107 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> " @@ -42577,24 +42548,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3130 +#: ../src/guestfs.pod:3111 msgid "" "You might also consider mounting the disk image using our FUSE filesystem " "support (L<guestmount(1)>)." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3133 +#: ../src/guestfs.pod:3114 msgid "MAXIMUM NUMBER OF DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3135 +#: ../src/guestfs.pod:3116 msgid "When using virtio disks (the default) the current limit is B<25> disks." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3138 +#: ../src/guestfs.pod:3119 msgid "" "Virtio itself consumes 1 virtual PCI slot per disk, and PCI is limited to 31 " "slots. However febootstrap only understands disks with names C</dev/vda> " @@ -42603,14 +42574,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3143 +#: ../src/guestfs.pod:3124 msgid "" "We are working to substantially raise this limit in future versions but it " "requires complex changes to qemu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3146 +#: ../src/guestfs.pod:3127 msgid "" "In future versions of libguestfs it should also be possible to \"hot plug\" " "disks (add and remove disks after calling L</guestfs_launch>). This also " @@ -42618,41 +42589,41 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3150 +#: ../src/guestfs.pod:3131 msgid "MAXIMUM NUMBER OF PARTITIONS PER DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3152 +#: ../src/guestfs.pod:3133 msgid "Virtio limits the maximum number of partitions per disk to B<15>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3154 +#: ../src/guestfs.pod:3135 msgid "" "This is because it reserves 4 bits for the minor device number (thus C</dev/" "vda>, and C</dev/vda1> through C</dev/vda15>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3157 +#: ../src/guestfs.pod:3138 msgid "" "If you attach a disk with more than 15 partitions, the extra partitions are " "ignored by libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3160 +#: ../src/guestfs.pod:3141 msgid "MAXIMUM SIZE OF A DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3162 +#: ../src/guestfs.pod:3143 msgid "Probably the limit is between 2**63-1 and 2**64-1 bytes." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3164 +#: ../src/guestfs.pod:3145 msgid "" "We have tested block devices up to 1 exabyte (2**60 or " "1,152,921,504,606,846,976 bytes) using sparse files backed by an XFS host " @@ -42660,7 +42631,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3168 +#: ../src/guestfs.pod:3149 msgid "" "Although libguestfs probably does not impose any limit, the underlying host " "storage will. If you store disk images on a host ext4 filesystem, then the " @@ -42670,19 +42641,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3174 +#: ../src/guestfs.pod:3155 msgid "" "For the hugest disk image files, we recommend using XFS on the host for " "storage." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3177 +#: ../src/guestfs.pod:3158 msgid "MAXIMUM SIZE OF A PARTITION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3179 +#: ../src/guestfs.pod:3160 msgid "" "The MBR (ie. classic MS-DOS) partitioning scheme uses 32 bit sector " "numbers. Assuming a 512 byte sector size, this means that MBR cannot " @@ -42690,7 +42661,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3183 +#: ../src/guestfs.pod:3164 msgid "" "It is recommended that you use GPT partitions on disks which are larger than " "this size. GPT uses 64 bit sector numbers and so can address partitions " @@ -42698,12 +42669,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3188 +#: ../src/guestfs.pod:3169 msgid "MAXIMUM SIZE OF A FILESYSTEM, FILES, DIRECTORIES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3190 +#: ../src/guestfs.pod:3171 msgid "" "This depends on the filesystem type. libguestfs itself does not impose any " "known limit. Consult Wikipedia or the filesystem documentation to find out " @@ -42711,12 +42682,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3194 +#: ../src/guestfs.pod:3175 msgid "MAXIMUM UPLOAD AND DOWNLOAD" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3196 +#: ../src/guestfs.pod:3177 msgid "" "The API functions L</guestfs_upload>, L</guestfs_download>, L</" "guestfs_tar_in>, L</guestfs_tar_out> and the like allow unlimited sized " @@ -42724,12 +42695,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3200 +#: ../src/guestfs.pod:3181 msgid "INSPECTION LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3202 +#: ../src/guestfs.pod:3183 msgid "" "The inspection code has several arbitrary limits on things like the size of " "Windows Registry hive it will read, and the length of product name. These " @@ -42739,33 +42710,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3228 +#: ../src/guestfs.pod:3209 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: textblock -#: ../src/guestfs.pod:3240 +#: ../src/guestfs.pod:3221 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: textblock -#: ../src/guestfs.pod:3249 +#: ../src/guestfs.pod:3230 msgid "See also L</QEMU WRAPPERS> above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3253 +#: ../src/guestfs.pod:3234 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: textblock -#: ../src/guestfs.pod:3271 +#: ../src/guestfs.pod:3252 msgid "" "L<guestfs-examples(3)>, L<guestfs-erlang(3)>, L<guestfs-java(3)>, L<guestfs-" "ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, L<guestfs-ruby(3)>, " @@ -42781,64 +42752,64 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3310 +#: ../src/guestfs.pod:3291 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:3317 ../tools/virt-make-fs.pl:574 +#: ../src/guestfs.pod:3298 ../tools/virt-make-fs.pl:574 #: ../tools/virt-win-reg.pl:772 msgid "BUGS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3319 +#: ../src/guestfs.pod:3300 msgid "To get a list of bugs against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3321 +#: ../src/guestfs.pod:3302 msgid "" "L<https://bugzilla.redhat.com/buglist.cgi?" "component=libguestfs&product=Virtualization+Tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3323 +#: ../src/guestfs.pod:3304 msgid "To report a new bug against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3325 +#: ../src/guestfs.pod:3306 msgid "" "L<https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3327 +#: ../src/guestfs.pod:3308 msgid "When reporting a bug, please check:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3333 +#: ../src/guestfs.pod:3314 msgid "That the bug hasn't been reported already." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3337 +#: ../src/guestfs.pod:3318 msgid "That you are testing a recent version." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3341 +#: ../src/guestfs.pod:3322 msgid "Describe the bug accurately, and give a way to reproduce it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3345 +#: ../src/guestfs.pod:3326 msgid "" "Run libguestfs-test-tool and paste the B<complete, unedited> output into the " "bug report." diff --git a/po-docs/libguestfs-docs.pot b/po-docs/libguestfs-docs.pot index 8dda9c5e..950e252c 100644 --- a/po-docs/libguestfs-docs.pot +++ b/po-docs/libguestfs-docs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: libguestfs 1.16.20\n" +"Project-Id-Version: libguestfs 1.16.21\n" "Report-Msgid-Bugs-To: libguestfs@redhat.com\n" -"POT-Creation-Date: 2012-04-24 11:27+0200\n" +"POT-Creation-Date: 2012-05-01 15:29+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" @@ -309,7 +309,7 @@ msgid "" msgstr "" #. type: textblock -#: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../format/virt-format.pod:96 ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:161 ../src/guestfs.pod:2885 +#: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../format/virt-format.pod:96 ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:161 ../src/guestfs.pod:2866 msgid "For example:" msgstr "" @@ -697,7 +697,7 @@ msgid "This program returns:" msgstr "" #. type: =item -#: ../align/virt-alignment-scan.pod:324 ../align/virt-alignment-scan.pod:330 ../align/virt-alignment-scan.pod:336 ../align/virt-alignment-scan.pod:343 ../cat/virt-cat.pod:177 ../cat/virt-cat.pod:182 ../cat/virt-cat.pod:187 ../cat/virt-cat.pod:198 ../cat/virt-cat.pod:202 ../clone/virt-sysprep.pod:283 ../clone/virt-sysprep.pod:287 ../clone/virt-sysprep.pod:291 ../clone/virt-sysprep.pod:295 ../clone/virt-sysprep.pod:310 ../clone/virt-sysprep.pod:314 ../clone/virt-sysprep.pod:318 ../clone/virt-sysprep.pod:322 ../clone/virt-sysprep.pod:326 ../clone/virt-sysprep.pod:362 ../clone/virt-sysprep.pod:384 ../clone/virt-sysprep.pod:388 ../df/virt-df.pod:148 ../df/virt-df.pod:154 ../edit/virt-edit.pod:266 ../edit/virt-edit.pod:271 ../edit/virt-edit.pod:276 ../edit/virt-edit.pod:287 ../edit/virt-edit.pod:291 ../examples/guestfs-recipes.pod:98 ../examples/guestfs-recipes.pod:102 ../examples/guestfs-recipes.pod:106 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:137 ../examples/guestfs-recipes.pod:227 ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235 ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243 ../examples/guestfs-testing.pod:110 ../examples/guestfs-testing.pod:114 ../examples/guestfs-testing.pod:118 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:441 ../fish/guestfish-actions.pod:449 ../fish/guestfish-actions.pod:456 ../fish/guestfish-actions.pod:463 ../fish/guestfish-actions.pod:1321 ../fish/guestfish-actions.pod:1325 ../fish/guestfish-actions.pod:1329 ../fish/guestfish-actions.pod:1333 ../fish/guestfish-actions.pod:1341 ../fish/guestfish-actions.pod:1345 ../fish/guestfish-actions.pod:1349 ../fish/guestfish-actions.pod:1359 ../fish/guestfish-actions.pod:1363 ../fish/guestfish-actions.pod:1367 ../fish/guestfish-actions.pod:1457 ../fish/guestfish-actions.pod:1461 ../fish/guestfish-actions.pod:1466 ../fish/guestfish-actions.pod:1471 ../fish/guestfish-actions.pod:1513 ../fish/guestfish-actions.pod:1517 ../fish/guestfish-actions.pod:1522 ../fish/guestfish-actions.pod:1778 ../fish/guestfish-actions.pod:1785 ../fish/guestfish-actions.pod:1792 ../fish/guestfish-actions.pod:2193 ../fish/guestfish-actions.pod:2199 ../fish/guestfish-actions.pod:2207 ../fish/guestfish-actions.pod:2214 ../fish/guestfish-actions.pod:2221 ../fish/guestfish.pod:445 ../fish/guestfish.pod:449 ../fish/guestfish.pod:453 ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:514 ../inspector/virt-inspector.pod:518 ../resize/virt-resize.pod:365 ../resize/virt-resize.pod:369 ../resize/virt-resize.pod:378 ../resize/virt-resize.pod:384 ../sparsify/virt-sparsify.pod:32 ../sparsify/virt-sparsify.pod:39 ../sparsify/virt-sparsify.pod:43 ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54 ../sparsify/virt-sparsify.pod:59 ../sparsify/virt-sparsify.pod:65 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:641 ../src/guestfs-actions.pod:649 ../src/guestfs-actions.pod:656 ../src/guestfs-actions.pod:663 ../src/guestfs-actions.pod:2183 ../src/guestfs-actions.pod:2187 ../src/guestfs-actions.pod:2191 ../src/guestfs-actions.pod:2195 ../src/guestfs-actions.pod:2203 ../src/guestfs-actions.pod:2207 ../src/guestfs-actions.pod:2211 ../src/guestfs-actions.pod:2221 ../src/guestfs-actions.pod:2225 ../src/guestfs-actions.pod:2229 ../src/guestfs-actions.pod:2367 ../src/guestfs-actions.pod:2371 ../src/guestfs-actions.pod:2376 ../src/guestfs-actions.pod:2381 ../src/guestfs-actions.pod:2442 ../src/guestfs-actions.pod:2446 ../src/guestfs-actions.pod:2451 ../src/guestfs-actions.pod:2866 ../src/guestfs-actions.pod:2873 ../src/guestfs-actions.pod:2880 ../src/guestfs-actions.pod:3423 ../src/guestfs-actions.pod:3429 ../src/guestfs-actions.pod:3437 ../src/guestfs-actions.pod:3444 ../src/guestfs-actions.pod:3451 ../src/guestfs.pod:403 ../src/guestfs.pod:408 ../src/guestfs.pod:413 ../src/guestfs.pod:417 ../src/guestfs.pod:422 ../src/guestfs.pod:426 ../src/guestfs.pod:431 ../src/guestfs.pod:436 ../src/guestfs.pod:1116 ../src/guestfs.pod:1120 ../src/guestfs.pod:1124 ../src/guestfs.pod:1129 ../src/guestfs.pod:1137 ../src/guestfs.pod:1156 ../src/guestfs.pod:1164 ../src/guestfs.pod:1186 ../src/guestfs.pod:1190 ../src/guestfs.pod:1194 ../src/guestfs.pod:1198 ../src/guestfs.pod:1202 ../src/guestfs.pod:1206 ../src/guestfs.pod:1696 ../src/guestfs.pod:1701 ../src/guestfs.pod:1705 ../src/guestfs.pod:1807 ../src/guestfs.pod:1812 ../src/guestfs.pod:1816 ../src/guestfs.pod:1826 ../src/guestfs.pod:2115 ../src/guestfs.pod:2120 ../src/guestfs.pod:2126 ../src/guestfs.pod:2134 ../src/guestfs.pod:2652 ../src/guestfs.pod:2658 ../src/guestfs.pod:2663 ../src/guestfs.pod:2669 ../src/guestfs.pod:3061 ../src/guestfs.pod:3066 ../src/guestfs.pod:3070 ../src/guestfs.pod:3074 ../src/guestfs.pod:3078 ../src/guestfs.pod:3092 ../src/guestfs.pod:3097 ../src/guestfs.pod:3331 ../src/guestfs.pod:3335 ../src/guestfs.pod:3339 ../src/guestfs.pod:3343 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:721 ../tools/virt-win-reg.pl:727 ../tools/virt-win-reg.pl:733 +#: ../align/virt-alignment-scan.pod:324 ../align/virt-alignment-scan.pod:330 ../align/virt-alignment-scan.pod:336 ../align/virt-alignment-scan.pod:343 ../cat/virt-cat.pod:177 ../cat/virt-cat.pod:182 ../cat/virt-cat.pod:187 ../cat/virt-cat.pod:198 ../cat/virt-cat.pod:202 ../clone/virt-sysprep.pod:283 ../clone/virt-sysprep.pod:287 ../clone/virt-sysprep.pod:291 ../clone/virt-sysprep.pod:295 ../clone/virt-sysprep.pod:310 ../clone/virt-sysprep.pod:314 ../clone/virt-sysprep.pod:318 ../clone/virt-sysprep.pod:322 ../clone/virt-sysprep.pod:326 ../clone/virt-sysprep.pod:362 ../clone/virt-sysprep.pod:384 ../clone/virt-sysprep.pod:388 ../df/virt-df.pod:148 ../df/virt-df.pod:154 ../edit/virt-edit.pod:266 ../edit/virt-edit.pod:271 ../edit/virt-edit.pod:276 ../edit/virt-edit.pod:287 ../edit/virt-edit.pod:291 ../examples/guestfs-recipes.pod:98 ../examples/guestfs-recipes.pod:102 ../examples/guestfs-recipes.pod:106 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:137 ../examples/guestfs-recipes.pod:227 ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235 ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243 ../examples/guestfs-testing.pod:110 ../examples/guestfs-testing.pod:114 ../examples/guestfs-testing.pod:118 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:441 ../fish/guestfish-actions.pod:449 ../fish/guestfish-actions.pod:456 ../fish/guestfish-actions.pod:463 ../fish/guestfish-actions.pod:1321 ../fish/guestfish-actions.pod:1325 ../fish/guestfish-actions.pod:1329 ../fish/guestfish-actions.pod:1333 ../fish/guestfish-actions.pod:1341 ../fish/guestfish-actions.pod:1345 ../fish/guestfish-actions.pod:1349 ../fish/guestfish-actions.pod:1359 ../fish/guestfish-actions.pod:1363 ../fish/guestfish-actions.pod:1367 ../fish/guestfish-actions.pod:1457 ../fish/guestfish-actions.pod:1461 ../fish/guestfish-actions.pod:1466 ../fish/guestfish-actions.pod:1471 ../fish/guestfish-actions.pod:1513 ../fish/guestfish-actions.pod:1517 ../fish/guestfish-actions.pod:1522 ../fish/guestfish-actions.pod:1778 ../fish/guestfish-actions.pod:1785 ../fish/guestfish-actions.pod:1792 ../fish/guestfish-actions.pod:2193 ../fish/guestfish-actions.pod:2199 ../fish/guestfish-actions.pod:2207 ../fish/guestfish-actions.pod:2214 ../fish/guestfish-actions.pod:2221 ../fish/guestfish.pod:445 ../fish/guestfish.pod:449 ../fish/guestfish.pod:453 ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:514 ../inspector/virt-inspector.pod:518 ../resize/virt-resize.pod:365 ../resize/virt-resize.pod:369 ../resize/virt-resize.pod:378 ../resize/virt-resize.pod:384 ../sparsify/virt-sparsify.pod:32 ../sparsify/virt-sparsify.pod:39 ../sparsify/virt-sparsify.pod:43 ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54 ../sparsify/virt-sparsify.pod:59 ../sparsify/virt-sparsify.pod:65 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:641 ../src/guestfs-actions.pod:649 ../src/guestfs-actions.pod:656 ../src/guestfs-actions.pod:663 ../src/guestfs-actions.pod:2183 ../src/guestfs-actions.pod:2187 ../src/guestfs-actions.pod:2191 ../src/guestfs-actions.pod:2195 ../src/guestfs-actions.pod:2203 ../src/guestfs-actions.pod:2207 ../src/guestfs-actions.pod:2211 ../src/guestfs-actions.pod:2221 ../src/guestfs-actions.pod:2225 ../src/guestfs-actions.pod:2229 ../src/guestfs-actions.pod:2367 ../src/guestfs-actions.pod:2371 ../src/guestfs-actions.pod:2376 ../src/guestfs-actions.pod:2381 ../src/guestfs-actions.pod:2442 ../src/guestfs-actions.pod:2446 ../src/guestfs-actions.pod:2451 ../src/guestfs-actions.pod:2866 ../src/guestfs-actions.pod:2873 ../src/guestfs-actions.pod:2880 ../src/guestfs-actions.pod:3423 ../src/guestfs-actions.pod:3429 ../src/guestfs-actions.pod:3437 ../src/guestfs-actions.pod:3444 ../src/guestfs-actions.pod:3451 ../src/guestfs.pod:384 ../src/guestfs.pod:389 ../src/guestfs.pod:394 ../src/guestfs.pod:398 ../src/guestfs.pod:403 ../src/guestfs.pod:407 ../src/guestfs.pod:412 ../src/guestfs.pod:417 ../src/guestfs.pod:1097 ../src/guestfs.pod:1101 ../src/guestfs.pod:1105 ../src/guestfs.pod:1110 ../src/guestfs.pod:1118 ../src/guestfs.pod:1137 ../src/guestfs.pod:1145 ../src/guestfs.pod:1167 ../src/guestfs.pod:1171 ../src/guestfs.pod:1175 ../src/guestfs.pod:1179 ../src/guestfs.pod:1183 ../src/guestfs.pod:1187 ../src/guestfs.pod:1677 ../src/guestfs.pod:1682 ../src/guestfs.pod:1686 ../src/guestfs.pod:1788 ../src/guestfs.pod:1793 ../src/guestfs.pod:1797 ../src/guestfs.pod:1807 ../src/guestfs.pod:2096 ../src/guestfs.pod:2101 ../src/guestfs.pod:2107 ../src/guestfs.pod:2115 ../src/guestfs.pod:2633 ../src/guestfs.pod:2639 ../src/guestfs.pod:2644 ../src/guestfs.pod:2650 ../src/guestfs.pod:3042 ../src/guestfs.pod:3047 ../src/guestfs.pod:3051 ../src/guestfs.pod:3055 ../src/guestfs.pod:3059 ../src/guestfs.pod:3073 ../src/guestfs.pod:3078 ../src/guestfs.pod:3312 ../src/guestfs.pod:3316 ../src/guestfs.pod:3320 ../src/guestfs.pod:3324 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:721 ../tools/virt-win-reg.pl:727 ../tools/virt-win-reg.pl:733 msgid "*" msgstr "" @@ -746,7 +746,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../align/virt-alignment-scan.pod:352 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:385 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:486 ../df/virt-df.pod:253 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../examples/guestfs-testing.pod:291 ../fish/guestfish.pod:1268 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../format/virt-format.pod:177 ../fuse/guestmount.pod:317 ../inspector/virt-inspector.pod:501 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325 ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3269 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 ../tools/virt-make-fs.pl:559 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:757 +#: ../align/virt-alignment-scan.pod:352 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:385 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:486 ../df/virt-df.pod:253 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../examples/guestfs-testing.pod:291 ../fish/guestfish.pod:1268 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../format/virt-format.pod:177 ../fuse/guestmount.pod:317 ../inspector/virt-inspector.pod:501 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325 ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3250 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 ../tools/virt-make-fs.pl:559 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:757 msgid "SEE ALSO" msgstr "" @@ -768,7 +768,7 @@ msgid "Richard W.M. Jones L<http://people.redhat.com/~rjones/>" msgstr "" #. type: =head1 -#: ../align/virt-alignment-scan.pod:365 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:505 ../df/virt-df.pod:265 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../examples/guestfs-testing.pod:302 ../fish/guestfish.pod:1300 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../format/virt-format.pod:191 ../fuse/guestmount.pod:332 ../inspector/virt-inspector.pod:524 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338 ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3354 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 ../tools/virt-make-fs.pl:589 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:787 +#: ../align/virt-alignment-scan.pod:365 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:505 ../df/virt-df.pod:265 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../examples/guestfs-testing.pod:302 ../fish/guestfish.pod:1300 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../format/virt-format.pod:191 ../fuse/guestmount.pod:332 ../inspector/virt-inspector.pod:524 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338 ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3335 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 ../tools/virt-make-fs.pl:589 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:787 msgid "COPYRIGHT" msgstr "" @@ -3273,7 +3273,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1171 +#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1152 msgid "SECURITY" msgstr "" @@ -4149,7 +4149,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:257 ../src/guestfs.pod:3208 ../test-tool/libguestfs-test-tool.pod:95 +#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:257 ../src/guestfs.pod:3189 ../test-tool/libguestfs-test-tool.pod:95 msgid "ENVIRONMENT VARIABLES" msgstr "" @@ -4392,12 +4392,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-recipes.pod:397 ../examples/guestfs-testing.pod:298 ../fish/guestfish.pod:1296 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:328 ../inspector/virt-inspector.pod:510 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:52 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3350 ../test-tool/libguestfs-test-tool.pod:106 +#: ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-recipes.pod:397 ../examples/guestfs-testing.pod:298 ../fish/guestfish.pod:1296 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:328 ../inspector/virt-inspector.pod:510 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:52 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3331 ../test-tool/libguestfs-test-tool.pod:106 msgid "AUTHORS" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-recipes.pod:399 ../examples/guestfs-testing.pod:300 ../fish/guestfish.pod:1298 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:330 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3352 ../test-tool/libguestfs-test-tool.pod:108 +#: ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-recipes.pod:399 ../examples/guestfs-testing.pod:300 ../fish/guestfish.pod:1298 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:330 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3333 ../test-tool/libguestfs-test-tool.pod:108 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)" msgstr "" @@ -4414,7 +4414,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:121 ../examples/guestfs-examples.pod:56 ../examples/guestfs-recipes.pod:408 ../examples/guestfs-testing.pod:306 ../java/examples/guestfs-java.pod:69 ../ocaml/examples/guestfs-ocaml.pod:102 ../perl/examples/guestfs-perl.pod:63 ../python/examples/guestfs-python.pod:65 ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3359 +#: ../erlang/examples/guestfs-erlang.pod:121 ../examples/guestfs-examples.pod:56 ../examples/guestfs-recipes.pod:408 ../examples/guestfs-testing.pod:306 ../java/examples/guestfs-java.pod:69 ../ocaml/examples/guestfs-ocaml.pod:102 ../perl/examples/guestfs-perl.pod:63 ../python/examples/guestfs-python.pod:65 ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3340 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 " @@ -4423,7 +4423,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:126 ../examples/guestfs-examples.pod:61 ../examples/guestfs-recipes.pod:413 ../examples/guestfs-testing.pod:311 ../java/examples/guestfs-java.pod:74 ../ocaml/examples/guestfs-ocaml.pod:107 ../perl/examples/guestfs-perl.pod:68 ../python/examples/guestfs-python.pod:70 ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3364 +#: ../erlang/examples/guestfs-erlang.pod:126 ../examples/guestfs-examples.pod:61 ../examples/guestfs-recipes.pod:413 ../examples/guestfs-testing.pod:311 ../java/examples/guestfs-java.pod:74 ../ocaml/examples/guestfs-ocaml.pod:107 ../perl/examples/guestfs-perl.pod:68 ../python/examples/guestfs-python.pod:70 ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3345 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 " @@ -4432,7 +4432,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:131 ../examples/guestfs-examples.pod:66 ../examples/guestfs-recipes.pod:418 ../examples/guestfs-testing.pod:316 ../java/examples/guestfs-java.pod:79 ../ocaml/examples/guestfs-ocaml.pod:112 ../perl/examples/guestfs-perl.pod:73 ../python/examples/guestfs-python.pod:75 ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3369 +#: ../erlang/examples/guestfs-erlang.pod:131 ../examples/guestfs-examples.pod:66 ../examples/guestfs-recipes.pod:418 ../examples/guestfs-testing.pod:316 ../java/examples/guestfs-java.pod:79 ../ocaml/examples/guestfs-ocaml.pod:112 ../perl/examples/guestfs-perl.pod:73 ../python/examples/guestfs-python.pod:75 ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3350 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, " @@ -4767,7 +4767,7 @@ msgid "" msgstr "" #. type: textblock -#: ../examples/guestfs-recipes.pod:128 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1509 ../fish/guestfish-actions.pod:1774 ../fish/guestfish-actions.pod:2189 ../src/guestfs-actions.pod:18 ../src/guestfs-actions.pod:2438 ../src/guestfs-actions.pod:2862 ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1692 ../tools/virt-win-reg.pl:717 +#: ../examples/guestfs-recipes.pod:128 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1509 ../fish/guestfish-actions.pod:1774 ../fish/guestfish-actions.pod:2189 ../src/guestfs-actions.pod:18 ../src/guestfs-actions.pod:2438 ../src/guestfs-actions.pod:2862 ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1673 ../tools/virt-win-reg.pl:717 msgid "Notes:" msgstr "" @@ -5420,7 +5420,7 @@ msgid "" msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:54 ../examples/guestfs-testing.pod:161 ../examples/guestfs-testing.pod:174 ../examples/guestfs-testing.pod:234 ../src/guestfs.pod:2800 +#: ../examples/guestfs-testing.pod:54 ../examples/guestfs-testing.pod:161 ../examples/guestfs-testing.pod:174 ../examples/guestfs-testing.pod:234 ../src/guestfs.pod:2781 msgid "or:" msgstr "" @@ -5594,7 +5594,7 @@ msgid "Try importing virt-df CSV output into a spreadsheet or database." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3082 +#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3063 msgid "Run:" msgstr "" @@ -6314,7 +6314,7 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish-actions.pod:171 ../src/guestfs-actions.pod:231 ../src/guestfs.pod:2965 +#: ../fish/guestfish-actions.pod:171 ../src/guestfs-actions.pod:231 ../src/guestfs.pod:2946 msgid "C<format>" msgstr "" @@ -15425,7 +15425,7 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish-actions.pod:4441 ../src/guestfs-actions.pod:6919 ../src/guestfs.pod:2924 +#: ../fish/guestfish-actions.pod:4441 ../src/guestfs-actions.pod:6919 ../src/guestfs.pod:2905 msgid "C<appliance>" msgstr "" @@ -19078,7 +19078,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2250 +#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2231 #, no-wrap msgid "" " guestfish -N fs\n" @@ -20545,7 +20545,7 @@ msgid "" msgstr "" #. type: =head2 -#: ../fish/guestfish.pod:825 ../src/guestfs.pod:534 +#: ../fish/guestfish.pod:825 ../src/guestfs.pod:515 msgid "ENCRYPTED DISKS" msgstr "" @@ -20909,7 +20909,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:982 ../src/guestfs.pod:987 +#: ../fish/guestfish.pod:982 ../src/guestfs.pod:968 #, no-wrap msgid "" " #!/bin/bash -\n" @@ -21195,7 +21195,7 @@ msgid "COMMANDS" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1527 +#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1508 msgid "@ACTIONS@" msgstr "" @@ -21219,17 +21219,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3212 +#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3193 msgid "FEBOOTSTRAP_KERNEL" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3214 +#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3195 msgid "FEBOOTSTRAP_MODULES" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3216 +#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3197 msgid "" "These two environment variables allow the kernel that libguestfs uses in the " "appliance to be selected. If C<$FEBOOTSTRAP_KERNEL> is not set, then the " @@ -21287,17 +21287,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3222 +#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3203 msgid "LIBGUESTFS_APPEND" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3224 +#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3205 msgid "Pass additional options to the guest kernel." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3226 +#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3207 msgid "LIBGUESTFS_DEBUG" msgstr "" @@ -21309,17 +21309,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3231 +#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3212 msgid "LIBGUESTFS_MEMSIZE" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3233 +#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3214 msgid "Set the memory allocated to the qemu process, in megabytes. For example:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3236 +#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3217 #, no-wrap msgid "" " LIBGUESTFS_MEMSIZE=700\n" @@ -21327,7 +21327,7 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3238 +#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3219 msgid "LIBGUESTFS_PATH" msgstr "" @@ -21339,19 +21339,19 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3243 +#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3224 msgid "LIBGUESTFS_QEMU" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3245 +#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3226 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: =item -#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3251 +#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3232 msgid "LIBGUESTFS_TRACE" msgstr "" @@ -21373,19 +21373,19 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1196 ../sparsify/virt-sparsify.pod:261 ../src/guestfs.pod:3256 +#: ../fish/guestfish.pod:1196 ../sparsify/virt-sparsify.pod:261 ../src/guestfs.pod:3237 msgid "TMPDIR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3258 +#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3239 msgid "" "Location of temporary directory, defaults to C</tmp> except for the cached " "supermin appliance which defaults to C</var/tmp>." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3261 +#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3242 msgid "" "If libguestfs was compiled to use the supermin appliance then the real " "appliance is cached in this directory, shared between all handles belonging " @@ -21530,7 +21530,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1302 ../fuse/guestmount.pod:334 ../src/guestfs.pod:3356 ../test-tool/libguestfs-test-tool.pod:112 +#: ../fish/guestfish.pod:1302 ../fuse/guestmount.pod:334 ../src/guestfs.pod:3337 ../test-tool/libguestfs-test-tool.pod:112 msgid "Copyright (C) 2009-2012 Red Hat Inc. L<http://libguestfs.org/>" msgstr "" @@ -24142,7 +24142,7 @@ msgid "" msgstr "" #. type: =item -#: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:484 ../src/guestfs.pod:1309 ../src/guestfs.pod:1448 ../src/guestfs.pod:2697 +#: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:465 ../src/guestfs.pod:1290 ../src/guestfs.pod:1429 ../src/guestfs.pod:2678 msgid "1." msgstr "" @@ -24180,7 +24180,7 @@ msgid "" msgstr "" #. type: =item -#: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:490 ../src/guestfs.pod:1313 ../src/guestfs.pod:1452 ../src/guestfs.pod:2722 +#: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:471 ../src/guestfs.pod:1294 ../src/guestfs.pod:1433 ../src/guestfs.pod:2703 msgid "2." msgstr "" @@ -24201,7 +24201,7 @@ msgid "" msgstr "" #. type: =item -#: ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:501 ../src/guestfs.pod:1458 +#: ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:482 ../src/guestfs.pod:1439 msgid "3." msgstr "" @@ -35588,68 +35588,39 @@ msgstr "" #. type: textblock #: ../src/guestfs.pod:25 msgid "" -"Libguestfs is a library for accessing and modifying guest disk images. " -"Amongst the things this is good for: making batch configuration changes to " -"guests, getting disk used/free statistics (see also: virt-df), migrating " -"between virtualization systems (see also: virt-p2v), performing partial " -"backups, performing partial guest clones, cloning guests and changing " -"registry/UUID/hostname info, and much else besides." +"Libguestfs is a library for accessing and modifying disk images and virtual " +"machines. This manual page documents the C API." msgstr "" #. type: textblock -#: ../src/guestfs.pod:33 +#: ../src/guestfs.pod:28 msgid "" -"Libguestfs uses Linux kernel and qemu code, and can access any type of guest " -"filesystem that Linux and qemu can, including but not limited to: ext2/3/4, " -"btrfs, FAT and NTFS, LVM, many different disk partition schemes, qcow, " -"qcow2, vmdk." +"If you are looking for an introduction to libguestfs, see the web site: " +"L<http://libguestfs.org/>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:38 -msgid "" -"Libguestfs provides ways to enumerate guest storage (eg. partitions, LVs, " -"what filesystem is in each LV, etc.). It can also run commands in the " -"context of the guest. Also you can access filesystems over FUSE." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:43 +#: ../src/guestfs.pod:31 msgid "" -"Libguestfs is a library that can be linked with C and C++ management " -"programs (or management programs written in OCaml, Perl, Python, Ruby, Java, " -"PHP, Erlang, Haskell or C#). You can also use it from shell scripts or the " -"command line." +"Each virt tool has its own man page (for a full list, go to L</SEE ALSO> at " +"the end of this file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:48 -msgid "" -"You don't need to be root to use libguestfs, although obviously you do need " -"enough permissions to access the disk images." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:51 -msgid "" -"Libguestfs is a large API because it can do many things. For a gentle " -"introduction, please read the L</API OVERVIEW> section next." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:54 +#: ../src/guestfs.pod:34 msgid "" -"There are also some example programs in the L<guestfs-examples(3)> manual " -"page." +"For examples of using the API from C, see L<guestfs-examples(3)>. For " +"examples in other languages, see L</USING LIBGUESTFS WITH OTHER PROGRAMMING " +"LANGUAGES> below." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:57 +#: ../src/guestfs.pod:38 msgid "API OVERVIEW" msgstr "" #. type: textblock -#: ../src/guestfs.pod:59 +#: ../src/guestfs.pod:40 msgid "" "This section provides a gentler overview of the libguestfs API. We also try " "to group API calls together, where that may not be obvious from reading " @@ -35657,12 +35628,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:64 +#: ../src/guestfs.pod:45 msgid "HANDLES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:66 +#: ../src/guestfs.pod:47 msgid "" "Before you can use libguestfs calls, you have to create a handle. Then you " "must add at least one disk image to the handle, followed by launching the " @@ -35672,12 +35643,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:73 +#: ../src/guestfs.pod:54 msgid "The general structure of all libguestfs-using programs looks like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:76 +#: ../src/guestfs.pod:57 #, no-wrap msgid "" " guestfs_h *g = guestfs_create ();\n" @@ -35685,7 +35656,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:78 +#: ../src/guestfs.pod:59 #, no-wrap msgid "" " /* Call guestfs_add_drive additional times if there are\n" @@ -35696,7 +35667,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:83 +#: ../src/guestfs.pod:64 #, no-wrap msgid "" " /* Most manipulation calls won't work until you've launched\n" @@ -35708,7 +35679,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:89 +#: ../src/guestfs.pod:70 #, no-wrap msgid "" " /* Now you can examine what partitions, LVs etc are available.\n" @@ -35719,7 +35690,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:94 +#: ../src/guestfs.pod:75 #, no-wrap msgid "" " /* To access a filesystem in the image, you must mount it.\n" @@ -35729,7 +35700,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:98 +#: ../src/guestfs.pod:79 #, no-wrap msgid "" " /* Now you can perform filesystem actions on the guest\n" @@ -35740,7 +35711,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:103 +#: ../src/guestfs.pod:84 #, no-wrap msgid "" " /* This is only needed for libguestfs < 1.5.24. Since then\n" @@ -35752,7 +35723,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:109 +#: ../src/guestfs.pod:90 #, no-wrap msgid "" " /* Close the handle 'g'. */\n" @@ -35761,7 +35732,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:112 +#: ../src/guestfs.pod:93 msgid "" "The code above doesn't include any error checking. In real code you should " "check return values carefully for errors. In general all functions that " @@ -35773,12 +35744,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:121 +#: ../src/guestfs.pod:102 msgid "DISK IMAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:123 +#: ../src/guestfs.pod:104 msgid "" "The image filename (C<\"guest.img\"> in the example above) could be a disk " "image from a virtual machine, a L<dd(1)> copy of a physical hard disk, an " @@ -35788,7 +35759,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:129 +#: ../src/guestfs.pod:110 msgid "" "The call you should use in modern code for adding drives is " "L</guestfs_add_drive_opts>. To add a disk image, allowing writes, and " @@ -35796,7 +35767,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:133 +#: ../src/guestfs.pod:114 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -35806,12 +35777,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:137 +#: ../src/guestfs.pod:118 msgid "You can add a disk read-only using:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:139 +#: ../src/guestfs.pod:120 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -35822,14 +35793,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:144 +#: ../src/guestfs.pod:125 msgid "" "or by calling the older function L</guestfs_add_drive_ro>. In either case " "libguestfs won't modify the file." msgstr "" #. type: textblock -#: ../src/guestfs.pod:147 +#: ../src/guestfs.pod:128 msgid "" "Be extremely cautious if the disk image is in use, eg. if it is being used " "by a virtual machine. Adding it read-write will almost certainly cause disk " @@ -35837,7 +35808,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:151 +#: ../src/guestfs.pod:132 msgid "" "You must add at least one disk image, and you may add multiple disk images. " "In the API, the disk images are usually referred to as C</dev/sda> (for the " @@ -35845,7 +35816,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:156 +#: ../src/guestfs.pod:137 msgid "" "Once L</guestfs_launch> has been called you cannot add any more images. You " "can call L</guestfs_list_devices> to get a list of the device names, in the " @@ -35853,12 +35824,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:161 +#: ../src/guestfs.pod:142 msgid "MOUNTING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:163 +#: ../src/guestfs.pod:144 msgid "" "Before you can read or write files, create directories and so on in a disk " "image that contains filesystems, you have to mount those filesystems using " @@ -35868,7 +35839,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:170 +#: ../src/guestfs.pod:151 #, no-wrap msgid "" " guestfs_mount_options (g, \"\", \"/dev/sda1\", \"/\");\n" @@ -35876,7 +35847,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:172 +#: ../src/guestfs.pod:153 msgid "" "where C</dev/sda1> means literally the first partition (C<1>) of the first " "disk image that we added (C</dev/sda>). If the disk contains Linux LVM2 " @@ -35886,7 +35857,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:178 +#: ../src/guestfs.pod:159 msgid "" "If you are given a disk image and you don't know what it contains then you " "have to find out. Libguestfs can do that too: use " @@ -35897,7 +35868,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:186 +#: ../src/guestfs.pod:167 msgid "" "Libguestfs also has a set of APIs for inspection of unknown disk images (see " "L</INSPECTION> below). But you might find it easier to look at higher level " @@ -35905,19 +35876,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:191 +#: ../src/guestfs.pod:172 msgid "" "To mount a filesystem read-only, use L</guestfs_mount_ro>. There are " "several other variations of the C<guestfs_mount_*> call." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:194 +#: ../src/guestfs.pod:175 msgid "FILESYSTEM ACCESS AND MODIFICATION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:196 +#: ../src/guestfs.pod:177 msgid "" "The majority of the libguestfs API consists of fairly low-level calls for " "accessing and modifying the files, directories, symlinks etc on mounted " @@ -35927,21 +35898,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:202 +#: ../src/guestfs.pod:183 msgid "" "Specify filenames as full paths, starting with C<\"/\"> and including the " "mount point." msgstr "" #. type: textblock -#: ../src/guestfs.pod:205 +#: ../src/guestfs.pod:186 msgid "" "For example, if you mounted a filesystem at C<\"/\"> and you want to read " "the file called C<\"etc/passwd\"> then you could do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:208 +#: ../src/guestfs.pod:189 #, no-wrap msgid "" " char *data = guestfs_cat (g, \"/etc/passwd\");\n" @@ -35949,7 +35920,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:210 +#: ../src/guestfs.pod:191 msgid "" "This would return C<data> as a newly allocated buffer containing the full " "content of that file (with some conditions: see also L</DOWNLOADING> below), " @@ -35957,14 +35928,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:214 +#: ../src/guestfs.pod:195 msgid "" "As another example, to create a top-level directory on that filesystem " "called C<\"var\"> you would do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:217 +#: ../src/guestfs.pod:198 #, no-wrap msgid "" " guestfs_mkdir (g, \"/var\");\n" @@ -35972,12 +35943,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:219 +#: ../src/guestfs.pod:200 msgid "To create a symlink you could do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:221 +#: ../src/guestfs.pod:202 #, no-wrap msgid "" " guestfs_ln_s (g, \"/etc/init.d/portmap\",\n" @@ -35986,14 +35957,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:224 +#: ../src/guestfs.pod:205 msgid "" "Libguestfs will reject attempts to use relative paths and there is no " "concept of a current working directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:227 +#: ../src/guestfs.pod:208 msgid "" "Libguestfs can return errors in many situations: for example if the " "filesystem isn't writable, or if a file or directory that you requested " @@ -36003,33 +35974,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:233 +#: ../src/guestfs.pod:214 msgid "" "File writes are affected by the per-handle umask, set by calling " "L</guestfs_umask> and defaulting to 022. See L</UMASK>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:236 +#: ../src/guestfs.pod:217 msgid "PARTITIONING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:238 +#: ../src/guestfs.pod:219 msgid "" "Libguestfs contains API calls to read, create and modify partition tables on " "disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:241 +#: ../src/guestfs.pod:222 msgid "" "In the common case where you want to create a single partition covering the " "whole disk, you should use the L</guestfs_part_disk> call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:245 +#: ../src/guestfs.pod:226 #, no-wrap msgid "" " const char *parttype = \"mbr\";\n" @@ -36040,19 +36011,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:250 +#: ../src/guestfs.pod:231 msgid "" "Obviously this effectively wipes anything that was on that disk image " "before." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:253 +#: ../src/guestfs.pod:234 msgid "LVM2" msgstr "" #. type: textblock -#: ../src/guestfs.pod:255 +#: ../src/guestfs.pod:236 msgid "" "Libguestfs provides access to a large part of the LVM2 API, such as " "L</guestfs_lvcreate> and L</guestfs_vgremove>. It won't make much sense " @@ -36061,19 +36032,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:260 +#: ../src/guestfs.pod:241 msgid "" "This author strongly recommends reading the LVM HOWTO, online at " "L<http://tldp.org/HOWTO/LVM-HOWTO/>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:263 +#: ../src/guestfs.pod:244 msgid "DOWNLOADING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:265 +#: ../src/guestfs.pod:246 msgid "" "Use L</guestfs_cat> to download small, text only files. This call is " "limited to files which are less than 2 MB and which cannot contain any ASCII " @@ -36081,7 +36052,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:269 +#: ../src/guestfs.pod:250 msgid "" "L</guestfs_read_file> can be used to read files which contain arbitrary 8 " "bit data, since it returns a (pointer, size) pair. However it is still " @@ -36089,31 +36060,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:273 +#: ../src/guestfs.pod:254 msgid "" "L</guestfs_download> can be used to download any file, with no limits on " "content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:276 +#: ../src/guestfs.pod:257 msgid "To download multiple files, see L</guestfs_tar_out> and L</guestfs_tgz_out>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:279 +#: ../src/guestfs.pod:260 msgid "UPLOADING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:281 +#: ../src/guestfs.pod:262 msgid "" "It's often the case that you want to write a file or files to the disk " "image." msgstr "" #. type: textblock -#: ../src/guestfs.pod:284 +#: ../src/guestfs.pod:265 msgid "" "To write a small file with fixed content, use L</guestfs_write>. To create " "a file of all zeroes, use L</guestfs_truncate_size> (sparse) or " @@ -36123,19 +36094,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:290 +#: ../src/guestfs.pod:271 msgid "" "To upload a single file, use L</guestfs_upload>. This call has no limits on " "file content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:293 +#: ../src/guestfs.pod:274 msgid "To upload multiple files, see L</guestfs_tar_in> and L</guestfs_tgz_in>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:295 +#: ../src/guestfs.pod:276 msgid "" "However the fastest way to upload I<large numbers of arbitrary files> is to " "turn them into a squashfs or CD ISO (see L<mksquashfs(8)> and " @@ -36149,12 +36120,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:306 +#: ../src/guestfs.pod:287 msgid "COPYING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:308 +#: ../src/guestfs.pod:289 msgid "" "There are various different commands for copying between files and devices " "and in and out of the guest filesystem. These are summarised in the table " @@ -36162,51 +36133,51 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:314 +#: ../src/guestfs.pod:295 msgid "B<file> to B<file>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:316 +#: ../src/guestfs.pod:297 msgid "" "Use L</guestfs_cp> to copy a single file, or L</guestfs_cp_a> to copy " "directories recursively." msgstr "" #. type: textblock -#: ../src/guestfs.pod:319 +#: ../src/guestfs.pod:300 msgid "To copy part of a file (offset and size) use L</guestfs_copy_file_to_file>." msgstr "" #. type: =item -#: ../src/guestfs.pod:322 +#: ../src/guestfs.pod:303 msgid "B<file> to B<device>" msgstr "" #. type: =item -#: ../src/guestfs.pod:324 +#: ../src/guestfs.pod:305 msgid "B<device> to B<file>" msgstr "" #. type: =item -#: ../src/guestfs.pod:326 +#: ../src/guestfs.pod:307 msgid "B<device> to B<device>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:328 +#: ../src/guestfs.pod:309 msgid "" "Use L</guestfs_copy_file_to_device>, L</guestfs_copy_device_to_file>, or " "L</guestfs_copy_device_to_device>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:331 +#: ../src/guestfs.pod:312 msgid "Example: duplicate the contents of an LV:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:333 +#: ../src/guestfs.pod:314 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -36217,7 +36188,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:338 +#: ../src/guestfs.pod:319 msgid "" "The destination (C</dev/VG/Copy>) must be at least as large as the source " "(C</dev/VG/Original>). To copy less than the whole source device, use the " @@ -36225,7 +36196,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:342 +#: ../src/guestfs.pod:323 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -36236,32 +36207,32 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:347 +#: ../src/guestfs.pod:328 msgid "B<file on the host> to B<file or device>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:349 +#: ../src/guestfs.pod:330 msgid "Use L</guestfs_upload>. See L</UPLOADING> above." msgstr "" #. type: =item -#: ../src/guestfs.pod:351 +#: ../src/guestfs.pod:332 msgid "B<file or device> to B<file on the host>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:353 +#: ../src/guestfs.pod:334 msgid "Use L</guestfs_download>. See L</DOWNLOADING> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:357 +#: ../src/guestfs.pod:338 msgid "UPLOADING AND DOWNLOADING TO PIPES AND FILE DESCRIPTORS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:359 +#: ../src/guestfs.pod:340 msgid "" "Calls like L</guestfs_upload>, L</guestfs_download>, L</guestfs_tar_in>, " "L</guestfs_tar_out> etc appear to only take filenames as arguments, so it " @@ -36272,12 +36243,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:367 +#: ../src/guestfs.pod:348 msgid "For example, L<virt-cat(1)> writes its output to stdout by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:370 +#: ../src/guestfs.pod:351 #, no-wrap msgid "" " guestfs_download (g, filename, \"/dev/stdout\");\n" @@ -36285,12 +36256,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:372 +#: ../src/guestfs.pod:353 msgid "and you can write tar output to a file descriptor C<fd> by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:374 +#: ../src/guestfs.pod:355 #, no-wrap msgid "" " char devfd[64];\n" @@ -36300,26 +36271,26 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:378 +#: ../src/guestfs.pod:359 msgid "LISTING FILES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:380 +#: ../src/guestfs.pod:361 msgid "" "L</guestfs_ll> is just designed for humans to read (mainly when using the " "L<guestfish(1)>-equivalent command C<ll>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:383 +#: ../src/guestfs.pod:364 msgid "" "L</guestfs_ls> is a quick way to get a list of files in a directory from " "programs, as a flat list of strings." msgstr "" #. type: textblock -#: ../src/guestfs.pod:386 +#: ../src/guestfs.pod:367 msgid "" "L</guestfs_readdir> is a programmatic way to get a list of files in a " "directory, plus additional information about each one. It is more " @@ -36327,19 +36298,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:390 +#: ../src/guestfs.pod:371 msgid "" "L</guestfs_find> and L</guestfs_find0> can be used to recursively list " "files." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:393 +#: ../src/guestfs.pod:374 msgid "RUNNING COMMANDS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:395 +#: ../src/guestfs.pod:376 msgid "" "Although libguestfs is primarily an API for manipulating files inside guest " "images, we also provide some limited facilities for running commands inside " @@ -36347,55 +36318,55 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:399 +#: ../src/guestfs.pod:380 msgid "There are many limitations to this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:405 +#: ../src/guestfs.pod:386 msgid "" "The kernel version that the command runs under will be different from what " "it expects." msgstr "" #. type: textblock -#: ../src/guestfs.pod:410 +#: ../src/guestfs.pod:391 msgid "" "If the command needs to communicate with daemons, then most likely they " "won't be running." msgstr "" #. type: textblock -#: ../src/guestfs.pod:415 +#: ../src/guestfs.pod:396 msgid "The command will be running in limited memory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:419 +#: ../src/guestfs.pod:400 msgid "" "The network may not be available unless you enable it (see " "L</guestfs_set_network>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:424 +#: ../src/guestfs.pod:405 msgid "Only supports Linux guests (not Windows, BSD, etc)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:428 +#: ../src/guestfs.pod:409 msgid "Architecture limitations (eg. won't work for a PPC guest on an X86 host)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:433 +#: ../src/guestfs.pod:414 msgid "" "For SELinux guests, you may need to enable SELinux and load policy first. " "See L</SELINUX> in this manpage." msgstr "" #. type: textblock -#: ../src/guestfs.pod:438 +#: ../src/guestfs.pod:419 msgid "" "I<Security:> It is not safe to run commands from untrusted, possibly " "malicious guests. These commands may attempt to exploit your program by " @@ -36407,7 +36378,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:447 +#: ../src/guestfs.pod:428 msgid "" "A secure alternative is to use libguestfs to install a \"firstboot\" script " "(a script which runs when the guest next boots normally), and to have this " @@ -36417,26 +36388,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:455 +#: ../src/guestfs.pod:436 msgid "" "The two main API calls to run commands are L</guestfs_command> and " "L</guestfs_sh> (there are also variations)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:458 +#: ../src/guestfs.pod:439 msgid "" "The difference is that L</guestfs_sh> runs commands using the shell, so any " "shell globs, redirections, etc will work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:461 +#: ../src/guestfs.pod:442 msgid "CONFIGURATION FILES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:463 +#: ../src/guestfs.pod:444 msgid "" "To read and write configuration files in Linux guest filesystems, we " "strongly recommend using Augeas. For example, Augeas understands how to " @@ -36445,7 +36416,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:468 +#: ../src/guestfs.pod:449 msgid "" "The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't " "document Augeas itself here because there is excellent documentation on the " @@ -36453,7 +36424,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:472 +#: ../src/guestfs.pod:453 msgid "" "If you don't want to use Augeas (you fool!) then try calling " "L</guestfs_read_lines> to get the file as a list of lines which you can " @@ -36461,24 +36432,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:476 +#: ../src/guestfs.pod:457 msgid "SELINUX" msgstr "" #. type: textblock -#: ../src/guestfs.pod:478 +#: ../src/guestfs.pod:459 msgid "" "We support SELinux guests. To ensure that labeling happens correctly in " "SELinux guests, you need to enable SELinux and load the guest's policy:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:486 +#: ../src/guestfs.pod:467 msgid "Before launching, do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:488 +#: ../src/guestfs.pod:469 #, no-wrap msgid "" " guestfs_set_selinux (g, 1);\n" @@ -36486,14 +36457,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:492 +#: ../src/guestfs.pod:473 msgid "" "After mounting the guest's filesystem(s), load the policy. This is best " "done by running the L<load_policy(8)> command in the guest itself:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:496 +#: ../src/guestfs.pod:477 #, no-wrap msgid "" " guestfs_sh (g, \"/usr/sbin/load_policy\");\n" @@ -36501,21 +36472,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:498 +#: ../src/guestfs.pod:479 msgid "" "(Older versions of C<load_policy> require you to specify the name of the " "policy file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:503 +#: ../src/guestfs.pod:484 msgid "" "Optionally, set the security context for the API. The correct security " "context to use can only be known by inspecting the guest. As an example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:507 +#: ../src/guestfs.pod:488 #, no-wrap msgid "" " guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n" @@ -36523,24 +36494,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:511 +#: ../src/guestfs.pod:492 msgid "This will work for running commands and editing existing files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:513 +#: ../src/guestfs.pod:494 msgid "" "When new files are created, you may need to label them explicitly, for " "example by running the external command C<restorecon pathname>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:517 +#: ../src/guestfs.pod:498 msgid "UMASK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:519 +#: ../src/guestfs.pod:500 msgid "" "Certain calls are affected by the current file mode creation mask (the " "\"umask\"). In particular ones which create files or directories, such as " @@ -36550,14 +36521,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:525 +#: ../src/guestfs.pod:506 msgid "" "The default umask is C<022>, so files are created with modes such as C<0644> " "and directories with C<0755>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:528 +#: ../src/guestfs.pod:509 msgid "" "There are two ways to avoid being affected by umask. Either set umask to 0 " "(call C<guestfs_umask (g, 0)> early after launching). Or call " @@ -36565,12 +36536,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:532 +#: ../src/guestfs.pod:513 msgid "For more information about umask, see L<umask(2)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:536 +#: ../src/guestfs.pod:517 msgid "" "Libguestfs allows you to access Linux guests which have been encrypted using " "whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) " @@ -36579,21 +36550,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:542 +#: ../src/guestfs.pod:523 msgid "" "Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it " "returns the string C<crypto_LUKS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:545 +#: ../src/guestfs.pod:526 msgid "" "Then open these devices by calling L</guestfs_luks_open>. Obviously you " "will require the passphrase!" msgstr "" #. type: textblock -#: ../src/guestfs.pod:548 +#: ../src/guestfs.pod:529 msgid "" "Opening a LUKS device creates a new device mapper device called " "C</dev/mapper/mapname> (where C<mapname> is the string you supply to " @@ -36602,7 +36573,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:554 +#: ../src/guestfs.pod:535 msgid "" "LVM volume groups on the device can be made visible by calling " "L</guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical " @@ -36610,7 +36581,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:558 +#: ../src/guestfs.pod:539 msgid "" "Use the reverse process to close a LUKS device. Unmount any logical volumes " "on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, " @@ -36620,12 +36591,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:565 +#: ../src/guestfs.pod:546 msgid "INSPECTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:567 +#: ../src/guestfs.pod:548 msgid "" "Libguestfs has APIs for inspecting an unknown disk image to find out if it " "contains operating systems, an install CD or a live CD. (These APIs used to " @@ -36635,14 +36606,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:574 +#: ../src/guestfs.pod:555 msgid "" "Add all disks belonging to the unknown virtual machine and call " "L</guestfs_launch> in the usual way." msgstr "" #. type: textblock -#: ../src/guestfs.pod:577 +#: ../src/guestfs.pod:558 msgid "" "Then call L</guestfs_inspect_os>. This function uses other libguestfs calls " "and certain heuristics, and returns a list of operating systems that were " @@ -36655,7 +36626,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:586 +#: ../src/guestfs.pod:567 msgid "" "For each root, you can then call various C<guestfs_inspect_get_*> functions " "to get additional details about that operating system. For example, call " @@ -36664,7 +36635,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:592 +#: ../src/guestfs.pod:573 msgid "" "Un*x-like and Linux-based operating systems usually consist of several " "filesystems which are mounted at boot time (for example, a separate boot " @@ -36675,7 +36646,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:599 +#: ../src/guestfs.pod:580 #, no-wrap msgid "" " /boot => /dev/sda1\n" @@ -36685,14 +36656,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:603 +#: ../src/guestfs.pod:584 msgid "" "The caller can then make calls to L</guestfs_mount_options> to mount the " "filesystems as suggested." msgstr "" #. type: textblock -#: ../src/guestfs.pod:606 +#: ../src/guestfs.pod:587 msgid "" "Be careful to mount filesystems in the right order (eg. C</> before " "C</usr>). Sorting the keys of the hash by length, shortest first, should " @@ -36700,7 +36671,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:610 +#: ../src/guestfs.pod:591 msgid "" "Inspection currently only works for some common operating systems. " "Contributors are welcome to send patches for other operating systems that we " @@ -36708,7 +36679,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:614 +#: ../src/guestfs.pod:595 msgid "" "Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> " "for more details. The L</guestfs_inspect_os> function just ignores any " @@ -36716,7 +36687,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:618 +#: ../src/guestfs.pod:599 msgid "" "A note on the implementation: The call L</guestfs_inspect_os> performs " "inspection and caches the results in the guest handle. Subsequent calls to " @@ -36729,19 +36700,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:627 +#: ../src/guestfs.pod:608 msgid "INSPECTING INSTALL DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:629 +#: ../src/guestfs.pod:610 msgid "" "Libguestfs (since 1.9.4) can detect some install disks, install CDs, live " "CDs and more." msgstr "" #. type: textblock -#: ../src/guestfs.pod:632 +#: ../src/guestfs.pod:613 msgid "" "Call L</guestfs_inspect_get_format> to return the format of the operating " "system, which currently can be C<installed> (a regular operating system) or " @@ -36749,7 +36720,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:636 +#: ../src/guestfs.pod:617 msgid "" "Further information is available about the operating system that can be " "installed using the regular inspection APIs like " @@ -36758,7 +36729,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:641 +#: ../src/guestfs.pod:622 msgid "" "Some additional information specific to installer disks is also available " "from the L</guestfs_inspect_is_live>, L</guestfs_inspect_is_netinst> and " @@ -36766,24 +36737,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:646 +#: ../src/guestfs.pod:627 msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:648 +#: ../src/guestfs.pod:629 msgid "" "Libguestfs can mount NTFS partitions. It does this using the " "L<http://www.ntfs-3g.org/> driver." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:651 +#: ../src/guestfs.pod:632 msgid "DRIVE LETTERS AND PATHS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:653 +#: ../src/guestfs.pod:634 msgid "" "DOS and Windows still use drive letters, and the filesystems are always " "treated as case insensitive by Windows itself, and therefore you might find " @@ -36793,14 +36764,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:659 +#: ../src/guestfs.pod:640 msgid "" "Drive letter mappings can be found using inspection (see L</INSPECTION> and " "L</guestfs_inspect_get_drive_mappings>)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:662 +#: ../src/guestfs.pod:643 msgid "" "Dealing with separator characters (backslash vs forward slash) is outside " "the scope of libguestfs, but usually a simple character replacement will " @@ -36808,19 +36779,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:666 +#: ../src/guestfs.pod:647 msgid "" "To resolve the case insensitivity of paths, call " "L</guestfs_case_sensitive_path>." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:669 +#: ../src/guestfs.pod:650 msgid "ACCESSING THE WINDOWS REGISTRY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:671 +#: ../src/guestfs.pod:652 msgid "" "Libguestfs also provides some help for decoding Windows Registry \"hive\" " "files, through the library C<hivex> which is part of the libguestfs project " @@ -36831,12 +36802,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:679 +#: ../src/guestfs.pod:660 msgid "SYMLINKS ON NTFS-3G FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:681 +#: ../src/guestfs.pod:662 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 " @@ -36844,12 +36815,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:685 +#: ../src/guestfs.pod:666 msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:687 +#: ../src/guestfs.pod:668 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 " @@ -36859,7 +36830,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:694 +#: ../src/guestfs.pod:675 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 " @@ -36868,36 +36839,36 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:699 +#: ../src/guestfs.pod:680 msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:701 +#: ../src/guestfs.pod:682 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:704 +#: ../src/guestfs.pod:685 msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:706 +#: ../src/guestfs.pod:687 msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:708 +#: ../src/guestfs.pod:689 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:711 +#: ../src/guestfs.pod:692 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)> " @@ -36907,14 +36878,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:717 +#: ../src/guestfs.pod:698 msgid "" "Error messages are automatically transformed into exceptions if the language " "supports it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:720 +#: ../src/guestfs.pod:701 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 " @@ -36922,58 +36893,58 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:726 +#: ../src/guestfs.pod:707 msgid "B<C++>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:728 +#: ../src/guestfs.pod:709 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:732 +#: ../src/guestfs.pod:713 msgid "B<C#>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:734 +#: ../src/guestfs.pod:715 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:737 +#: ../src/guestfs.pod:718 msgid "B<Erlang>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:739 +#: ../src/guestfs.pod:720 msgid "See L<guestfs-erlang(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:741 +#: ../src/guestfs.pod:722 msgid "B<GObject>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:743 +#: ../src/guestfs.pod:724 msgid "" "Experimental GObject bindings (with GObject Introspection support) are " "available. See the C<gobject> directory in the source." msgstr "" #. type: =item -#: ../src/guestfs.pod:746 +#: ../src/guestfs.pod:727 msgid "B<Haskell>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:748 +#: ../src/guestfs.pod:729 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 " @@ -36981,96 +36952,96 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:752 +#: ../src/guestfs.pod:733 msgid "B<Java>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:754 +#: ../src/guestfs.pod:735 msgid "" "Full documentation is contained in the Javadoc which is distributed with " "libguestfs. For examples, see L<guestfs-java(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:757 +#: ../src/guestfs.pod:738 msgid "B<OCaml>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:759 +#: ../src/guestfs.pod:740 msgid "See L<guestfs-ocaml(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:761 +#: ../src/guestfs.pod:742 msgid "B<Perl>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:763 +#: ../src/guestfs.pod:744 msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:765 +#: ../src/guestfs.pod:746 msgid "B<PHP>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:767 +#: ../src/guestfs.pod:748 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:770 +#: ../src/guestfs.pod:751 msgid "The PHP binding only works correctly on 64 bit machines." msgstr "" #. type: =item -#: ../src/guestfs.pod:772 +#: ../src/guestfs.pod:753 msgid "B<Python>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:774 +#: ../src/guestfs.pod:755 msgid "See L<guestfs-python(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:776 +#: ../src/guestfs.pod:757 msgid "B<Ruby>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:778 +#: ../src/guestfs.pod:759 msgid "See L<guestfs-ruby(3)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:780 +#: ../src/guestfs.pod:761 msgid "For JRuby, use the Java bindings." msgstr "" #. type: =item -#: ../src/guestfs.pod:782 +#: ../src/guestfs.pod:763 msgid "B<shell scripts>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:784 +#: ../src/guestfs.pod:765 msgid "See L<guestfish(1)>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:788 +#: ../src/guestfs.pod:769 msgid "LIBGUESTFS GOTCHAS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:790 +#: ../src/guestfs.pod:771 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 " @@ -37078,7 +37049,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:794 +#: ../src/guestfs.pod:775 msgid "" "Since we developed libguestfs and the associated tools, there are several " "things we would have designed differently, but are now stuck with for " @@ -37087,19 +37058,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:802 +#: ../src/guestfs.pod:783 msgid "Autosync / forgetting to sync." msgstr "" #. type: textblock -#: ../src/guestfs.pod:804 +#: ../src/guestfs.pod:785 msgid "" "I<Update:> Autosync is enabled by default for all API users starting from " "libguestfs 1.5.24. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:807 +#: ../src/guestfs.pod:788 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 " @@ -37107,7 +37078,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:811 +#: ../src/guestfs.pod:792 #, no-wrap msgid "" " guestfs_set_autosync (g, 1);\n" @@ -37115,7 +37086,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:813 +#: ../src/guestfs.pod:794 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> " @@ -37123,7 +37094,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:817 +#: ../src/guestfs.pod:798 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 " @@ -37131,7 +37102,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:821 +#: ../src/guestfs.pod:802 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 " @@ -37139,19 +37110,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:825 +#: ../src/guestfs.pod:806 msgid "Mount option C<-o sync> should not be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:827 +#: ../src/guestfs.pod:808 msgid "" "I<Update:> L</guestfs_mount> no longer adds any options starting from " "libguestfs 1.13.16. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:830 +#: ../src/guestfs.pod:811 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 " @@ -37159,31 +37130,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:834 +#: ../src/guestfs.pod:815 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:837 +#: ../src/guestfs.pod:818 msgid "Read-only should be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:839 +#: ../src/guestfs.pod:820 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:842 +#: ../src/guestfs.pod:823 msgid "This would reduce the potential to corrupt live VM images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:844 +#: ../src/guestfs.pod:825 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 " @@ -37191,12 +37162,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:848 +#: ../src/guestfs.pod:829 msgid "guestfish command line is hard to use." msgstr "" #. type: textblock -#: ../src/guestfs.pod:850 +#: ../src/guestfs.pod:831 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 " @@ -37206,12 +37177,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:857 +#: ../src/guestfs.pod:838 msgid "guestfish megabyte modifiers don't work right on all commands" msgstr "" #. type: textblock -#: ../src/guestfs.pod:859 +#: ../src/guestfs.pod:840 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 " @@ -37221,12 +37192,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:866 +#: ../src/guestfs.pod:847 msgid "The most common is L</guestfs_lvcreate>. The guestfish command:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:868 +#: ../src/guestfs.pod:849 #, no-wrap msgid "" " lvcreate LV VG 100M\n" @@ -37234,7 +37205,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:870 +#: ../src/guestfs.pod:851 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 " @@ -37243,19 +37214,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:875 +#: ../src/guestfs.pod:856 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:878 +#: ../src/guestfs.pod:859 msgid "Ambiguity between devices and paths" msgstr "" #. type: textblock -#: ../src/guestfs.pod:880 +#: ../src/guestfs.pod:861 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 " @@ -37263,7 +37234,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:885 +#: ../src/guestfs.pod:866 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>. " @@ -37272,7 +37243,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:891 +#: ../src/guestfs.pod:872 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 " @@ -37282,7 +37253,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:897 +#: ../src/guestfs.pod:878 #, no-wrap msgid "" " type path = Path of string | Device of int | Partition of int * int\n" @@ -37290,12 +37261,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:899 +#: ../src/guestfs.pod:880 msgid "which would allow you to pass arguments like:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:901 +#: ../src/guestfs.pod:882 #, no-wrap msgid "" " Path \"/foo/bar\"\n" @@ -37306,26 +37277,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:906 +#: ../src/guestfs.pod:887 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:911 +#: ../src/guestfs.pod:892 msgid "KEYS AND PASSPHRASES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:913 +#: ../src/guestfs.pod:894 msgid "" "Certain libguestfs calls take a parameter that contains sensitive key " "material, passed in as a C string." msgstr "" #. type: textblock -#: ../src/guestfs.pod:916 +#: ../src/guestfs.pod:897 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 " @@ -37334,7 +37305,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:921 +#: ../src/guestfs.pod:902 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, " @@ -37342,19 +37313,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:926 +#: ../src/guestfs.pod:907 msgid "MULTIPLE HANDLES AND MULTIPLE THREADS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:928 +#: ../src/guestfs.pod:909 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:931 +#: ../src/guestfs.pod:912 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 " @@ -37362,33 +37333,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:935 +#: ../src/guestfs.pod:916 msgid "" "See the graphical program guestfs-browser for one possible architecture for " "multithreaded programs using libvirt and libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:938 +#: ../src/guestfs.pod:919 msgid "PATH" msgstr "" #. type: textblock -#: ../src/guestfs.pod:940 +#: ../src/guestfs.pod:921 msgid "" "Libguestfs needs a supermin appliance, which it finds by looking along an " "internal path." msgstr "" #. type: textblock -#: ../src/guestfs.pod:943 +#: ../src/guestfs.pod:924 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:946 +#: ../src/guestfs.pod:927 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 " @@ -37399,12 +37370,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:953 +#: ../src/guestfs.pod:934 msgid "QEMU WRAPPERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:955 +#: ../src/guestfs.pod:936 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 " @@ -37412,7 +37383,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:959 +#: ../src/guestfs.pod:940 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 " @@ -37421,14 +37392,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:964 +#: ../src/guestfs.pod:945 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:967 +#: ../src/guestfs.pod:948 #, no-wrap msgid "" " #!/bin/sh -\n" @@ -37439,7 +37410,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:971 +#: ../src/guestfs.pod:952 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 " @@ -37447,7 +37418,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:975 +#: ../src/guestfs.pod:956 #, no-wrap msgid "" " LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n" @@ -37455,14 +37426,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:977 +#: ../src/guestfs.pod:958 msgid "" "Note that libguestfs also calls qemu with the -help and -version options in " "order to determine features." msgstr "" #. type: textblock -#: ../src/guestfs.pod:980 +#: ../src/guestfs.pod:961 msgid "" "Wrappers can also be used to edit the options passed to qemu. In the " "following example, the C<-machine ...> option (C<-machine> and the following " @@ -37472,7 +37443,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:989 +#: ../src/guestfs.pod:970 #, no-wrap msgid "" " i=0\n" @@ -37490,7 +37461,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1001 +#: ../src/guestfs.pod:982 #, no-wrap msgid "" " exec qemu-kvm -machine pc,accel=tcg \"${args[@]}\"\n" @@ -37498,19 +37469,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1003 +#: ../src/guestfs.pod:984 msgid "ATTACHING TO RUNNING DAEMONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1005 +#: ../src/guestfs.pod:986 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:1008 +#: ../src/guestfs.pod:989 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 " @@ -37518,12 +37489,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1012 +#: ../src/guestfs.pod:993 msgid "Using guestfs_set_attach_method" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1014 +#: ../src/guestfs.pod:995 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 " @@ -37531,14 +37502,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1018 +#: ../src/guestfs.pod:999 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:1021 +#: ../src/guestfs.pod:1002 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 " @@ -37546,7 +37517,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1025 +#: ../src/guestfs.pod:1006 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 " @@ -37554,12 +37525,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1029 +#: ../src/guestfs.pod:1010 msgid "Using guestfs_add_domain with live flag" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1031 +#: ../src/guestfs.pod:1012 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 " @@ -37568,7 +37539,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1037 +#: ../src/guestfs.pod:1018 #, no-wrap msgid "" " <domain>\n" @@ -37586,14 +37557,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1049 +#: ../src/guestfs.pod:1030 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:1052 +#: ../src/guestfs.pod:1033 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 " @@ -37601,19 +37572,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1056 +#: ../src/guestfs.pod:1037 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:1060 +#: ../src/guestfs.pod:1041 msgid "ABI GUARANTEE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1062 +#: ../src/guestfs.pod:1043 msgid "" "We guarantee the libguestfs ABI (binary interface), for public, high-level " "actions as outlined in this section. Although we will deprecate some " @@ -37623,12 +37594,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1068 +#: ../src/guestfs.pod:1049 msgid "BLOCK DEVICE NAMING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1070 +#: ../src/guestfs.pod:1051 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 " @@ -37643,7 +37614,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1082 +#: ../src/guestfs.pod:1063 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 " @@ -37651,7 +37622,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1086 +#: ../src/guestfs.pod:1067 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 " @@ -37659,7 +37630,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1091 +#: ../src/guestfs.pod:1072 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 " @@ -37668,7 +37639,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1097 +#: ../src/guestfs.pod:1078 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 " @@ -37676,12 +37647,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1102 +#: ../src/guestfs.pod:1083 msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1104 +#: ../src/guestfs.pod:1085 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 " @@ -37691,7 +37662,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1110 +#: ../src/guestfs.pod:1091 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 " @@ -37699,54 +37670,54 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1118 +#: ../src/guestfs.pod:1099 msgid "Is the string a parameter which is a device or partition name?" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1122 +#: ../src/guestfs.pod:1103 msgid "Does the string begin with C</dev/sd>?" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1126 +#: ../src/guestfs.pod:1107 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:1131 +#: ../src/guestfs.pod:1112 msgid "Replace initial C</dev/sd> string with C</dev/hd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1133 +#: ../src/guestfs.pod:1114 msgid "For example, change C</dev/sda2> to C</dev/hda2>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1135 +#: ../src/guestfs.pod:1116 msgid "If that named device exists, use it. If not, continue." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1139 +#: ../src/guestfs.pod:1120 msgid "Replace initial C</dev/sd> string with C</dev/vd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1141 +#: ../src/guestfs.pod:1122 msgid "If that named device exists, use it. If not, return an error." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1145 +#: ../src/guestfs.pod:1126 msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1147 +#: ../src/guestfs.pod:1128 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 " @@ -37754,45 +37725,45 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1151 +#: ../src/guestfs.pod:1132 msgid "" "Where possible for maximum future portability programs using libguestfs " "should use these future-proof techniques:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1158 +#: ../src/guestfs.pod:1139 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:1161 +#: ../src/guestfs.pod:1142 msgid "Since those device names exist by definition, they will never be translated." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1166 +#: ../src/guestfs.pod:1147 msgid "" "Use higher level ways to identify filesystems, such as LVM names, UUIDs and " "filesystem labels." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1173 +#: ../src/guestfs.pod:1154 msgid "" "This section discusses security implications of using libguestfs, " "particularly with untrusted or malicious guests or disk images." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1176 +#: ../src/guestfs.pod:1157 msgid "GENERAL SECURITY CONSIDERATIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1178 +#: ../src/guestfs.pod:1159 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 " @@ -37802,42 +37773,42 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1188 +#: ../src/guestfs.pod:1169 msgid "the data (file etc) not being present" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1192 +#: ../src/guestfs.pod:1173 msgid "being present but empty" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1196 +#: ../src/guestfs.pod:1177 msgid "being much larger than normal" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1200 +#: ../src/guestfs.pod:1181 msgid "containing arbitrary 8 bit data" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1204 +#: ../src/guestfs.pod:1185 msgid "being in an unexpected character encoding" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1208 +#: ../src/guestfs.pod:1189 msgid "containing homoglyphs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1212 +#: ../src/guestfs.pod:1193 msgid "SECURITY OF MOUNTING FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1214 +#: ../src/guestfs.pod:1195 msgid "" "When you mount a filesystem under Linux, mistakes in the kernel filesystem " "(VFS) module can sometimes be escalated into exploits by deliberately " @@ -37853,7 +37824,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1227 +#: ../src/guestfs.pod:1208 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 " @@ -37867,19 +37838,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1238 +#: ../src/guestfs.pod:1219 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:1241 +#: ../src/guestfs.pod:1222 msgid "PROTOCOL SECURITY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1243 +#: ../src/guestfs.pod:1224 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 " @@ -37889,12 +37860,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1249 +#: ../src/guestfs.pod:1230 msgid "INSPECTION SECURITY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1251 +#: ../src/guestfs.pod:1232 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 " @@ -37903,7 +37874,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1257 +#: ../src/guestfs.pod:1238 msgid "" "Guest configuration may be altered in unusual ways by the administrator of " "the virtual machine, and may not reflect reality (particularly for untrusted " @@ -37914,7 +37885,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1265 +#: ../src/guestfs.pod:1246 msgid "" "The inspection API parses guest configuration using two external libraries: " "Augeas (Linux configuration) and hivex (Windows Registry). Both are " @@ -37924,12 +37895,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1271 +#: ../src/guestfs.pod:1252 msgid "RUNNING UNTRUSTED GUEST COMMANDS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1273 +#: ../src/guestfs.pod:1254 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 " @@ -37939,24 +37910,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1279 +#: ../src/guestfs.pod:1260 msgid "CVE-2010-3851" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1281 +#: ../src/guestfs.pod:1262 msgid "https://bugzilla.redhat.com/642934" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1283 +#: ../src/guestfs.pod:1264 msgid "" "This security bug concerns the automatic disk format detection that qemu " "does on disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1286 +#: ../src/guestfs.pod:1267 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 " @@ -37965,7 +37936,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1291 +#: ../src/guestfs.pod:1272 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 " @@ -37974,7 +37945,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1296 +#: ../src/guestfs.pod:1277 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 " @@ -37986,24 +37957,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1304 +#: ../src/guestfs.pod:1285 msgid "In libguestfs this is rather hard to exploit except under two circumstances:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1311 +#: ../src/guestfs.pod:1292 msgid "You have enabled the network or have opened the disk in write mode." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1315 +#: ../src/guestfs.pod:1296 msgid "" "You are also running untrusted code from the guest (see L</RUNNING " "COMMANDS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1320 +#: ../src/guestfs.pod:1301 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 " @@ -38012,31 +37983,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1325 +#: ../src/guestfs.pod:1306 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:1328 +#: ../src/guestfs.pod:1309 msgid "" "For libguestfs tools, use the I<--format> command line parameter as " "appropriate." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1331 +#: ../src/guestfs.pod:1312 msgid "CONNECTION MANAGEMENT" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1333 +#: ../src/guestfs.pod:1314 msgid "guestfs_h *" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1335 +#: ../src/guestfs.pod:1316 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 " @@ -38044,19 +38015,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1339 +#: ../src/guestfs.pod:1320 msgid "" "For information on using multiple handles and threads, see the section " "L</MULTIPLE HANDLES AND MULTIPLE THREADS> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1342 +#: ../src/guestfs.pod:1323 msgid "guestfs_create" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1344 +#: ../src/guestfs.pod:1325 #, no-wrap msgid "" " guestfs_h *guestfs_create (void);\n" @@ -38064,19 +38035,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1346 +#: ../src/guestfs.pod:1327 msgid "Create a connection handle." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1348 +#: ../src/guestfs.pod:1329 msgid "" "On success this returns a non-NULL pointer to a handle. On error it returns " "NULL." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1351 +#: ../src/guestfs.pod:1332 msgid "" "You have to \"configure\" the handle after creating it. This includes " "calling L</guestfs_add_drive_opts> (or one of the equivalent calls) on the " @@ -38084,24 +38055,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1355 +#: ../src/guestfs.pod:1336 msgid "After configuring the handle, you have to call L</guestfs_launch>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1357 +#: ../src/guestfs.pod:1338 msgid "" "You may also want to configure error handling for the handle. See the " "L</ERROR HANDLING> section below." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1360 +#: ../src/guestfs.pod:1341 msgid "guestfs_close" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1362 +#: ../src/guestfs.pod:1343 #, no-wrap msgid "" " void guestfs_close (guestfs_h *g);\n" @@ -38109,12 +38080,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1364 +#: ../src/guestfs.pod:1345 msgid "This closes the connection handle and frees up all resources used." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1366 +#: ../src/guestfs.pod:1347 msgid "" "If autosync was set on the handle and the handle was launched, then this " "implicitly calls various functions to unmount filesystems and sync the " @@ -38122,24 +38093,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1370 +#: ../src/guestfs.pod:1351 msgid "If a close callback was set on the handle, then it is called." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1372 +#: ../src/guestfs.pod:1353 msgid "ERROR HANDLING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1374 +#: ../src/guestfs.pod:1355 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:1377 +#: ../src/guestfs.pod:1358 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 " @@ -38147,7 +38118,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1381 +#: ../src/guestfs.pod:1362 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 " @@ -38155,7 +38126,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1386 +#: ../src/guestfs.pod:1367 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 " @@ -38163,7 +38134,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1390 +#: ../src/guestfs.pod:1371 #, no-wrap msgid "" " if (guestfs_launch (g) == -1)\n" @@ -38172,21 +38143,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1393 +#: ../src/guestfs.pod:1374 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:1396 +#: ../src/guestfs.pod:1377 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:1399 +#: ../src/guestfs.pod:1380 #, no-wrap msgid "" " /* This disables the default behaviour of printing errors\n" @@ -38196,7 +38167,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1403 +#: ../src/guestfs.pod:1384 #, no-wrap msgid "" " if (guestfs_launch (g) == -1) {\n" @@ -38213,7 +38184,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1414 +#: ../src/guestfs.pod:1395 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 " @@ -38221,7 +38192,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1418 +#: ../src/guestfs.pod:1399 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 " @@ -38231,12 +38202,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1424 +#: ../src/guestfs.pod:1405 msgid "guestfs_last_error" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1426 +#: ../src/guestfs.pod:1407 #, no-wrap msgid "" " const char *guestfs_last_error (guestfs_h *g);\n" @@ -38244,26 +38215,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1428 +#: ../src/guestfs.pod:1409 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:1432 +#: ../src/guestfs.pod:1413 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:1435 +#: ../src/guestfs.pod:1416 msgid "guestfs_last_errno" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1437 +#: ../src/guestfs.pod:1418 #, no-wrap msgid "" " int guestfs_last_errno (guestfs_h *g);\n" @@ -38271,27 +38242,27 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1439 +#: ../src/guestfs.pod:1420 msgid "This returns the last error number (errno) that happened on C<g>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1441 +#: ../src/guestfs.pod:1422 msgid "If successful, an errno integer not equal to zero is returned." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1443 +#: ../src/guestfs.pod:1424 msgid "If no error, this returns 0. This call can return 0 in three situations:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1450 +#: ../src/guestfs.pod:1431 msgid "There has not been any error on the handle." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1454 +#: ../src/guestfs.pod:1435 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 " @@ -38299,14 +38270,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1460 +#: ../src/guestfs.pod:1441 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:1466 +#: ../src/guestfs.pod:1447 msgid "" "Libguestfs tries to convert the errno from inside the applicance into a " "corresponding errno for the caller (not entirely trivial: the appliance " @@ -38317,12 +38288,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1474 +#: ../src/guestfs.pod:1455 msgid "guestfs_set_error_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1476 +#: ../src/guestfs.pod:1457 #, no-wrap msgid "" " typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n" @@ -38335,7 +38306,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1483 +#: ../src/guestfs.pod:1464 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 " @@ -38343,14 +38314,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1487 +#: ../src/guestfs.pod:1468 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:1490 +#: ../src/guestfs.pod:1471 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 " @@ -38358,22 +38329,22 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1494 +#: ../src/guestfs.pod:1475 msgid "The default handler prints messages on C<stderr>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1496 +#: ../src/guestfs.pod:1477 msgid "If you set C<cb> to C<NULL> then I<no> handler is called." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1498 +#: ../src/guestfs.pod:1479 msgid "guestfs_get_error_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1500 +#: ../src/guestfs.pod:1481 #, no-wrap msgid "" " guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n" @@ -38382,17 +38353,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1503 +#: ../src/guestfs.pod:1484 msgid "Returns the current error handler callback." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1505 +#: ../src/guestfs.pod:1486 msgid "guestfs_set_out_of_memory_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1507 +#: ../src/guestfs.pod:1488 #, no-wrap msgid "" " typedef void (*guestfs_abort_cb) (void);\n" @@ -38402,29 +38373,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1511 +#: ../src/guestfs.pod:1492 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:1514 +#: ../src/guestfs.pod:1495 msgid "The default is to call L<abort(3)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1516 +#: ../src/guestfs.pod:1497 msgid "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1519 +#: ../src/guestfs.pod:1500 msgid "guestfs_get_out_of_memory_handler" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1521 +#: ../src/guestfs.pod:1502 #, no-wrap msgid "" " guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n" @@ -38432,37 +38403,37 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1523 +#: ../src/guestfs.pod:1504 msgid "This returns the current out of memory handler." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1525 +#: ../src/guestfs.pod:1506 msgid "API CALLS" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1529 +#: ../src/guestfs.pod:1510 msgid "STRUCTURES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1531 +#: ../src/guestfs.pod:1512 msgid "@STRUCTS@" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1533 +#: ../src/guestfs.pod:1514 msgid "AVAILABILITY" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1535 +#: ../src/guestfs.pod:1516 msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1537 +#: ../src/guestfs.pod:1518 msgid "" "Using L</guestfs_available> you can test availability of the following " "groups of functions. This test queries the appliance to see if the " @@ -38470,17 +38441,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1542 +#: ../src/guestfs.pod:1523 msgid "@AVAILABILITY@" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1544 +#: ../src/guestfs.pod:1525 msgid "GUESTFISH supported COMMAND" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1546 +#: ../src/guestfs.pod:1527 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 " @@ -38488,19 +38459,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1551 +#: ../src/guestfs.pod:1532 msgid "SINGLE CALLS AT COMPILE TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1553 +#: ../src/guestfs.pod:1534 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:1556 +#: ../src/guestfs.pod:1537 #, no-wrap msgid "" " #define LIBGUESTFS_HAVE_DD 1\n" @@ -38508,12 +38479,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1558 +#: ../src/guestfs.pod:1539 msgid "if L</guestfs_dd> is available." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1560 +#: ../src/guestfs.pod:1541 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 " @@ -38521,7 +38492,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1565 +#: ../src/guestfs.pod:1546 #, no-wrap msgid "" " AC_CHECK_LIB([guestfs],[guestfs_create])\n" @@ -38530,19 +38501,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1568 +#: ../src/guestfs.pod:1549 msgid "" "which would result in C<HAVE_GUESTFS_DD> being either defined or not defined " "in your program." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1571 +#: ../src/guestfs.pod:1552 msgid "SINGLE CALLS AT RUN TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1573 +#: ../src/guestfs.pod:1554 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 " @@ -38552,7 +38523,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1580 +#: ../src/guestfs.pod:1561 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 " @@ -38560,7 +38531,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1584 +#: ../src/guestfs.pod:1565 #, no-wrap msgid "" " #include <stdio.h>\n" @@ -38572,7 +38543,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1590 +#: ../src/guestfs.pod:1571 #, no-wrap msgid "" " main ()\n" @@ -38584,7 +38555,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1596 +#: ../src/guestfs.pod:1577 #, no-wrap msgid "" " /* Test if the function guestfs_dd is really available. */\n" @@ -38599,7 +38570,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1605 +#: ../src/guestfs.pod:1586 #, no-wrap msgid "" " if (!has_function)\n" @@ -38618,7 +38589,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1618 +#: ../src/guestfs.pod:1599 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 " @@ -38626,7 +38597,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1623 +#: ../src/guestfs.pod:1604 #, no-wrap msgid "" " Requires: libguestfs >= 1.0.80\n" @@ -38634,12 +38605,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1625 +#: ../src/guestfs.pod:1606 msgid "CALLS WITH OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1627 +#: ../src/guestfs.pod:1608 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 " @@ -38647,7 +38618,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1632 +#: ../src/guestfs.pod:1613 #, no-wrap msgid "" " int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n" @@ -38655,14 +38626,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1634 +#: ../src/guestfs.pod:1615 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:1637 +#: ../src/guestfs.pod:1618 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename, -1);\n" @@ -38670,12 +38641,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1639 +#: ../src/guestfs.pod:1620 msgid "With a single optional argument:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1641 +#: ../src/guestfs.pod:1622 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -38685,12 +38656,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1645 +#: ../src/guestfs.pod:1626 msgid "With two:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1647 +#: ../src/guestfs.pod:1628 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -38701,19 +38672,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1652 +#: ../src/guestfs.pod:1633 msgid "" "and so forth. Don't forget the terminating C<-1> otherwise Bad Things will " "happen!" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1655 +#: ../src/guestfs.pod:1636 msgid "USING va_list FOR OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1657 +#: ../src/guestfs.pod:1638 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 " @@ -38721,7 +38692,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1661 +#: ../src/guestfs.pod:1642 #, no-wrap msgid "" " int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n" @@ -38730,12 +38701,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1664 +#: ../src/guestfs.pod:1645 msgid "CONSTRUCTING OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1666 +#: ../src/guestfs.pod:1647 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 " @@ -38745,7 +38716,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1672 +#: ../src/guestfs.pod:1653 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv {\n" @@ -38760,12 +38731,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1681 +#: ../src/guestfs.pod:1662 msgid "You could call it like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1683 +#: ../src/guestfs.pod:1664 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv optargs = {\n" @@ -38778,7 +38749,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1690 +#: ../src/guestfs.pod:1671 #, no-wrap msgid "" " guestfs_add_drive_opts_argv (g, filename, &optargs);\n" @@ -38786,29 +38757,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1698 +#: ../src/guestfs.pod:1679 msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1703 +#: ../src/guestfs.pod:1684 msgid "You do not need to fill in all fields of the structure." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1707 +#: ../src/guestfs.pod:1688 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:1712 +#: ../src/guestfs.pod:1693 msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1714 +#: ../src/guestfs.pod:1695 msgid "" "In other languages, optional arguments are expressed in the way that is " "natural for that language. We refer you to the language-specific " @@ -38816,17 +38787,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1718 +#: ../src/guestfs.pod:1699 msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1720 +#: ../src/guestfs.pod:1701 msgid "SETTING CALLBACKS TO HANDLE EVENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1722 +#: ../src/guestfs.pod:1703 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 " @@ -38838,7 +38809,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1731 +#: ../src/guestfs.pod:1712 msgid "" "Handles generate events when certain things happen, such as log messages " "being generated, progress messages during long-running operations, or the " @@ -38850,7 +38821,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1739 +#: ../src/guestfs.pod:1720 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 " @@ -38859,31 +38830,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1744 +#: ../src/guestfs.pod:1725 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:1748 +#: ../src/guestfs.pod:1729 msgid "CLASSES OF EVENTS" msgstr "" #. type: =item -#: ../src/guestfs.pod:1752 +#: ../src/guestfs.pod:1733 msgid "GUESTFS_EVENT_CLOSE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1755 +#: ../src/guestfs.pod:1736 msgid "" "The callback function will be called while the handle is being closed " "(synchronously from L</guestfs_close>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1758 +#: ../src/guestfs.pod:1739 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 " @@ -38894,19 +38865,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1765 +#: ../src/guestfs.pod:1746 msgid "" "If no callback is registered: the handle is closed without any callback " "being invoked." msgstr "" #. type: =item -#: ../src/guestfs.pod:1768 +#: ../src/guestfs.pod:1749 msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1771 +#: ../src/guestfs.pod:1752 msgid "" "The callback function will be called when the child process quits, either " "asynchronously or if killed by L</guestfs_kill_subprocess>. (This " @@ -38914,17 +38885,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1775 ../src/guestfs.pod:1784 ../src/guestfs.pod:1901 +#: ../src/guestfs.pod:1756 ../src/guestfs.pod:1765 ../src/guestfs.pod:1882 msgid "If no callback is registered: the event is ignored." msgstr "" #. type: =item -#: ../src/guestfs.pod:1777 +#: ../src/guestfs.pod:1758 msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1780 +#: ../src/guestfs.pod:1761 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 " @@ -38932,12 +38903,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1786 +#: ../src/guestfs.pod:1767 msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1789 +#: ../src/guestfs.pod:1770 msgid "" "Some long-running operations can generate progress messages. If this " "callback is registered, then it will be called each time a progress message " @@ -38947,14 +38918,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1795 +#: ../src/guestfs.pod:1776 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:1798 +#: ../src/guestfs.pod:1779 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 " @@ -38963,24 +38934,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1803 +#: ../src/guestfs.pod:1784 msgid "The only defined and stable parts of the API are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1809 +#: ../src/guestfs.pod:1790 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:1814 +#: ../src/guestfs.pod:1795 msgid "0 E<lt>= C<position> E<lt>= C<total>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1818 +#: ../src/guestfs.pod:1799 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 " @@ -38988,7 +38959,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1822 +#: ../src/guestfs.pod:1803 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 " @@ -38996,7 +38967,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1828 +#: ../src/guestfs.pod:1809 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 " @@ -39005,7 +38976,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1833 +#: ../src/guestfs.pod:1814 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 " @@ -39013,14 +38984,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1837 +#: ../src/guestfs.pod:1818 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:1842 +#: ../src/guestfs.pod:1823 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 " @@ -39029,31 +39000,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1848 +#: ../src/guestfs.pod:1829 msgid "If no callback is registered: progress messages are discarded." msgstr "" #. type: =item -#: ../src/guestfs.pod:1850 +#: ../src/guestfs.pod:1831 msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1853 +#: ../src/guestfs.pod:1834 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:1856 +#: ../src/guestfs.pod:1837 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:1859 ../src/guestfs.pod:1873 +#: ../src/guestfs.pod:1840 ../src/guestfs.pod:1854 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 " @@ -39061,62 +39032,62 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1864 +#: ../src/guestfs.pod:1845 msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1867 +#: ../src/guestfs.pod:1848 msgid "" "The callback function is called whenever a log message is generated by the " "library part of libguestfs." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1870 +#: ../src/guestfs.pod:1851 msgid "" "If the verbose flag (L</guestfs_set_verbose>) is set then additional debug " "messages are generated." msgstr "" #. type: =item -#: ../src/guestfs.pod:1878 +#: ../src/guestfs.pod:1859 msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1881 +#: ../src/guestfs.pod:1862 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:1884 +#: ../src/guestfs.pod:1865 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: =item -#: ../src/guestfs.pod:1888 +#: ../src/guestfs.pod:1869 msgid "GUESTFS_EVENT_ENTER (payload type: function name)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1891 +#: ../src/guestfs.pod:1872 msgid "The callback function is called whenever a libguestfs function is entered." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1894 +#: ../src/guestfs.pod:1875 msgid "" "The payload is a string which contains the name of the function that we are " "entering (not including C<guestfs_> prefix)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1897 +#: ../src/guestfs.pod:1878 msgid "" "Note that libguestfs functions can call themselves, so you may see many " "events from a single call. A few libguestfs functions do not generate this " @@ -39124,12 +39095,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1905 +#: ../src/guestfs.pod:1886 msgid "guestfs_set_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1907 +#: ../src/guestfs.pod:1888 #, no-wrap msgid "" " int guestfs_set_event_callback (guestfs_h *g,\n" @@ -39141,14 +39112,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1913 +#: ../src/guestfs.pod:1894 msgid "" "This function registers a callback (C<cb>) for all event classes in the " "C<event_bitmask>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1916 +#: ../src/guestfs.pod:1897 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>. " @@ -39157,40 +39128,40 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1922 +#: ../src/guestfs.pod:1903 msgid "C<flags> should always be passed as 0." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1924 +#: ../src/guestfs.pod:1905 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:1927 +#: ../src/guestfs.pod:1908 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:1930 +#: ../src/guestfs.pod:1911 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:1933 +#: ../src/guestfs.pod:1914 msgid "" "Callbacks remain in effect until they are deleted, or until the handle is " "closed." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1936 +#: ../src/guestfs.pod:1917 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 " @@ -39198,12 +39169,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1940 +#: ../src/guestfs.pod:1921 msgid "guestfs_delete_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1942 +#: ../src/guestfs.pod:1923 #, no-wrap msgid "" " void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n" @@ -39211,7 +39182,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1944 +#: ../src/guestfs.pod:1925 msgid "" "Delete a callback that was previously registered. C<event_handle> should be " "the integer that was returned by a previous call to " @@ -39219,12 +39190,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1948 +#: ../src/guestfs.pod:1929 msgid "guestfs_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1950 +#: ../src/guestfs.pod:1931 #, no-wrap msgid "" " typedef void (*guestfs_event_callback) (\n" @@ -39239,12 +39210,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1959 +#: ../src/guestfs.pod:1940 msgid "This is the type of the event callback function that you have to provide." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1962 +#: ../src/guestfs.pod:1943 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 " @@ -39252,7 +39223,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1966 +#: ../src/guestfs.pod:1947 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 " @@ -39261,7 +39232,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1971 +#: ../src/guestfs.pod:1952 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 " @@ -39269,19 +39240,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1975 +#: ../src/guestfs.pod:1956 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:1978 +#: ../src/guestfs.pod:1959 msgid "EXAMPLE: CAPTURING LOG MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1980 +#: ../src/guestfs.pod:1961 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 " @@ -39289,7 +39260,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1984 +#: ../src/guestfs.pod:1965 msgid "" "Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, " "C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error " @@ -39297,14 +39268,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1989 +#: ../src/guestfs.pod:1970 msgid "" "Programs have to set up a callback to capture the classes of events of " "interest:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1992 +#: ../src/guestfs.pod:1973 #, no-wrap msgid "" " int eh =\n" @@ -39320,14 +39291,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2002 +#: ../src/guestfs.pod:1983 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:2005 +#: ../src/guestfs.pod:1986 #, no-wrap msgid "" " static void\n" @@ -39348,12 +39319,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2020 +#: ../src/guestfs.pod:2001 msgid "CANCELLING LONG TRANSFERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2022 +#: ../src/guestfs.pod:2003 msgid "" "Some operations can be cancelled by the caller while they are in progress. " "Currently only operations that involve uploading or downloading data can be " @@ -39362,12 +39333,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2027 +#: ../src/guestfs.pod:2008 msgid "guestfs_user_cancel" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2029 +#: ../src/guestfs.pod:2010 #, no-wrap msgid "" " void guestfs_user_cancel (guestfs_h *g);\n" @@ -39375,12 +39346,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2031 +#: ../src/guestfs.pod:2012 msgid "C<guestfs_user_cancel> cancels the current upload or download operation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2034 +#: ../src/guestfs.pod:2015 msgid "" "Unlike most other libguestfs calls, this function is signal safe and thread " "safe. You can call it from a signal handler or from another thread, without " @@ -39388,7 +39359,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2038 +#: ../src/guestfs.pod:2019 msgid "" "The transfer that was in progress (if there is one) will stop shortly " "afterwards, and will return an error. The errno (see " @@ -39397,7 +39368,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2044 +#: ../src/guestfs.pod:2025 msgid "" "No cleanup is performed: for example, if a file was being uploaded then " "after cancellation there may be a partially uploaded file. It is the " @@ -39405,12 +39376,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2048 +#: ../src/guestfs.pod:2029 msgid "There are two common places that you might call C<guestfs_user_cancel>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2050 +#: ../src/guestfs.pod:2031 msgid "" "In an interactive text-based program, you might call it from a C<SIGINT> " "signal handler so that pressing C<^C> cancels the current operation. (You " @@ -39419,19 +39390,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2055 +#: ../src/guestfs.pod:2036 msgid "" "In a graphical program, when the main thread is displaying a progress bar " "with a cancel button, wire up the cancel button to call this function." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2059 +#: ../src/guestfs.pod:2040 msgid "PRIVATE DATA AREA" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2061 +#: ../src/guestfs.pod:2042 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 " @@ -39439,12 +39410,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2066 +#: ../src/guestfs.pod:2047 msgid "To attach a named piece of data, use the following call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2068 +#: ../src/guestfs.pod:2049 #, no-wrap msgid "" " void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n" @@ -39452,7 +39423,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2070 +#: ../src/guestfs.pod:2051 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 key is " @@ -39460,7 +39431,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2074 +#: ../src/guestfs.pod:2055 msgid "" "You can use any C<key> you want, but your key should I<not> start with an " "underscore character. Keys beginning with an underscore character are " @@ -39470,12 +39441,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2080 +#: ../src/guestfs.pod:2061 msgid "To retrieve the pointer, use:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2082 +#: ../src/guestfs.pod:2063 #, no-wrap msgid "" " void *guestfs_get_private (guestfs_h *g, const char *key);\n" @@ -39483,7 +39454,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2084 +#: ../src/guestfs.pod:2065 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 " @@ -39491,7 +39462,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2088 +#: ../src/guestfs.pod:2069 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 " @@ -39502,12 +39473,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2095 +#: ../src/guestfs.pod:2076 msgid "To walk over all entries, use these two functions:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2097 +#: ../src/guestfs.pod:2078 #, no-wrap msgid "" " void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n" @@ -39515,7 +39486,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2099 +#: ../src/guestfs.pod:2080 #, no-wrap msgid "" " void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n" @@ -39523,7 +39494,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2101 +#: ../src/guestfs.pod:2082 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 " @@ -39533,7 +39504,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2107 +#: ../src/guestfs.pod:2088 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 " @@ -39541,17 +39512,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2111 +#: ../src/guestfs.pod:2092 msgid "Notes about walking over entries:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2117 +#: ../src/guestfs.pod:2098 msgid "You must not call C<guestfs_set_private> while walking over the entries." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2122 +#: ../src/guestfs.pod:2103 msgid "" "The handle maintains an internal iterator which is reset when you call " "C<guestfs_first_private>. This internal iterator is invalidated when you " @@ -39559,12 +39530,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2128 +#: ../src/guestfs.pod:2109 msgid "If you have set the data pointer associated with a key to C<NULL>, ie:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2130 +#: ../src/guestfs.pod:2111 #, no-wrap msgid "" " guestfs_set_private (g, key, NULL);\n" @@ -39572,26 +39543,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2132 +#: ../src/guestfs.pod:2113 msgid "then that C<key> is not returned when walking." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2136 +#: ../src/guestfs.pod:2117 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:2142 +#: ../src/guestfs.pod:2123 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:2145 +#: ../src/guestfs.pod:2126 #, no-wrap msgid "" " const char *key;\n" @@ -39605,14 +39576,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2153 +#: ../src/guestfs.pod:2134 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:2156 +#: ../src/guestfs.pod:2137 #, no-wrap msgid "" " const char *key;\n" @@ -39627,7 +39598,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2165 +#: ../src/guestfs.pod:2146 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 " @@ -39635,7 +39606,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2169 +#: ../src/guestfs.pod:2150 #, no-wrap msgid "" " const char *key;\n" @@ -39657,7 +39628,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2185 +#: ../src/guestfs.pod:2166 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 " @@ -39666,12 +39637,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2190 +#: ../src/guestfs.pod:2171 msgid "SYSTEMTAP" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2192 +#: ../src/guestfs.pod:2173 msgid "" "The libguestfs C library can be probed using systemtap or DTrace. This is " "true of any library, not just libguestfs. However libguestfs also contains " @@ -39679,12 +39650,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2196 +#: ../src/guestfs.pod:2177 msgid "You can list all the static markers by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2198 +#: ../src/guestfs.pod:2179 #, no-wrap msgid "" " stap -l 'process(\"/usr/lib*/libguestfs.so.0\")\n" @@ -39693,26 +39664,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2201 +#: ../src/guestfs.pod:2182 msgid "" "B<Note:> These static markers are I<not> part of the stable API and may " "change in future versions." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2204 +#: ../src/guestfs.pod:2185 msgid "SYSTEMTAP SCRIPT EXAMPLE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2206 +#: ../src/guestfs.pod:2187 msgid "" "This script contains examples of displaying both the static markers and some " "ordinary C entry points:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2209 +#: ../src/guestfs.pod:2190 #, no-wrap msgid "" " global last;\n" @@ -39720,7 +39691,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2211 +#: ../src/guestfs.pod:2192 #, no-wrap msgid "" " function display_time () {\n" @@ -39733,7 +39704,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2218 +#: ../src/guestfs.pod:2199 #, no-wrap msgid "" " printf (\"%d (+%d):\", now, delta);\n" @@ -39742,7 +39713,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2221 +#: ../src/guestfs.pod:2202 #, no-wrap msgid "" " probe begin {\n" @@ -39753,7 +39724,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2226 +#: ../src/guestfs.pod:2207 #, no-wrap msgid "" " /* Display all calls to static markers. */\n" @@ -39766,7 +39737,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2233 +#: ../src/guestfs.pod:2214 #, no-wrap msgid "" " /* Display all calls to guestfs_mkfs* functions. */\n" @@ -39779,7 +39750,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2240 +#: ../src/guestfs.pod:2221 msgid "" "The script above can be saved to C<test.stap> and run using the L<stap(1)> " "program. Note that you either have to be root, or you have to add yourself " @@ -39788,7 +39759,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2245 +#: ../src/guestfs.pod:2226 #, no-wrap msgid "" " # stap /tmp/test.stap\n" @@ -39797,17 +39768,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2248 +#: ../src/guestfs.pod:2229 msgid "In another terminal, run a guestfish command such as this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2252 +#: ../src/guestfs.pod:2233 msgid "In the first terminal, stap trace output similar to this is shown:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2254 +#: ../src/guestfs.pod:2235 #, no-wrap msgid "" " 1318248056692655 (+0):\tlaunch_start\n" @@ -39821,24 +39792,24 @@ msgid "" msgstr "" #. type: =end -#: ../src/guestfs.pod:2261 ../src/guestfs.pod:2266 +#: ../src/guestfs.pod:2242 ../src/guestfs.pod:2247 msgid "html" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2263 +#: ../src/guestfs.pod:2244 msgid "" "<!-- old anchor for the next section --> <a " "name=\"state_machine_and_low_level_event_api\"/>" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2268 +#: ../src/guestfs.pod:2249 msgid "ARCHITECTURE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2270 +#: ../src/guestfs.pod:2251 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 " @@ -39846,7 +39817,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2274 +#: ../src/guestfs.pod:2255 #, no-wrap msgid "" " ___________________\n" @@ -39872,14 +39843,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2294 +#: ../src/guestfs.pod:2275 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:2297 +#: ../src/guestfs.pod:2278 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 " @@ -39891,7 +39862,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2306 +#: ../src/guestfs.pod:2287 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 " @@ -39902,17 +39873,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2313 +#: ../src/guestfs.pod:2294 msgid "STATE MACHINE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2315 +#: ../src/guestfs.pod:2296 msgid "libguestfs uses a state machine to model the child process:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2317 +#: ../src/guestfs.pod:2298 #, no-wrap msgid "" " |\n" @@ -39940,7 +39911,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2339 +#: ../src/guestfs.pod:2320 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), " @@ -39949,7 +39920,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2344 +#: ../src/guestfs.pod:2325 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 " @@ -39957,14 +39928,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2348 +#: ../src/guestfs.pod:2329 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:2351 +#: ../src/guestfs.pod:2332 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 " @@ -39973,7 +39944,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2357 +#: ../src/guestfs.pod:2338 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 " @@ -39983,7 +39954,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2363 +#: ../src/guestfs.pod:2344 msgid "" "Finally, the child process sends asynchronous messages back to the main " "program, such as kernel log messages. You can register a callback to " @@ -39991,17 +39962,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2367 +#: ../src/guestfs.pod:2348 msgid "INTERNALS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2369 +#: ../src/guestfs.pod:2350 msgid "APPLIANCE BOOT PROCESS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2371 +#: ../src/guestfs.pod:2352 msgid "" "This process has evolved and continues to evolve. The description here " "corresponds only to the current version of libguestfs and is provided for " @@ -40009,55 +39980,55 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2375 +#: ../src/guestfs.pod:2356 msgid "" "In order to follow the stages involved below, enable libguestfs debugging " "(set the environment variable C<LIBGUESTFS_DEBUG=1>)." msgstr "" #. type: =item -#: ../src/guestfs.pod:2380 +#: ../src/guestfs.pod:2361 msgid "Create the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2382 +#: ../src/guestfs.pod:2363 msgid "" "C<febootstrap-supermin-helper> is invoked to create the kernel, a small " "initrd and the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2385 +#: ../src/guestfs.pod:2366 msgid "" "The appliance is cached in C</var/tmp/.guestfs-E<lt>UIDE<gt>> (or in another " "directory if C<TMPDIR> is set)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2388 +#: ../src/guestfs.pod:2369 msgid "" "For a complete description of how the appliance is created and cached, read " "the L<febootstrap(8)> and L<febootstrap-supermin-helper(8)> man pages." msgstr "" #. type: =item -#: ../src/guestfs.pod:2392 +#: ../src/guestfs.pod:2373 msgid "Start qemu and boot the kernel" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2394 +#: ../src/guestfs.pod:2375 msgid "qemu is invoked to boot the kernel." msgstr "" #. type: =item -#: ../src/guestfs.pod:2396 +#: ../src/guestfs.pod:2377 msgid "Run the initrd" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2398 +#: ../src/guestfs.pod:2379 msgid "" "C<febootstrap-supermin-helper> builds a small initrd. The initrd is not the " "appliance. The purpose of the initrd is to load enough kernel modules in " @@ -40065,21 +40036,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2402 +#: ../src/guestfs.pod:2383 msgid "" "The initrd is a cpio archive called " "C</var/tmp/.guestfs-E<lt>UIDE<gt>/initrd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2405 +#: ../src/guestfs.pod:2386 msgid "" "When the initrd has started you will see messages showing that kernel " "modules are being loaded, similar to this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2408 +#: ../src/guestfs.pod:2389 #, no-wrap msgid "" " febootstrap: ext2 mini initrd starting up\n" @@ -40090,12 +40061,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2413 +#: ../src/guestfs.pod:2394 msgid "Find and mount the appliance device" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2415 +#: ../src/guestfs.pod:2396 msgid "" "The appliance is a sparse file containing an ext2 filesystem which contains " "a familiar (although reduced in size) Linux operating system. It would " @@ -40103,33 +40074,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2419 +#: ../src/guestfs.pod:2400 msgid "" "The regular disks being inspected by libguestfs are the first devices " "exposed by qemu (eg. as C</dev/vda>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2422 +#: ../src/guestfs.pod:2403 msgid "" "The last disk added to qemu is the appliance itself (eg. C</dev/vdb> if " "there was only one regular disk)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2425 +#: ../src/guestfs.pod:2406 msgid "" "Thus the final job of the initrd is to locate the appliance disk, mount it, " "and switch root into the appliance, and run C</init> from the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2429 +#: ../src/guestfs.pod:2410 msgid "If this works successfully you will see messages such as:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2431 +#: ../src/guestfs.pod:2412 #, no-wrap msgid "" " febootstrap: picked /sys/block/vdb/dev as root device\n" @@ -40141,19 +40112,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2437 +#: ../src/guestfs.pod:2418 msgid "" "Note that C<Starting /init script ...> indicates that the appliance's init " "script is now running." msgstr "" #. type: =item -#: ../src/guestfs.pod:2440 +#: ../src/guestfs.pod:2421 msgid "Initialize the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2442 +#: ../src/guestfs.pod:2423 msgid "" "The appliance itself now initializes itself. This involves starting certain " "processes like C<udev>, possibly printing some debug information, and " @@ -40161,19 +40132,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2446 +#: ../src/guestfs.pod:2427 msgid "The daemon" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2448 +#: ../src/guestfs.pod:2429 msgid "" "Finally the daemon (C<guestfsd>) runs inside the appliance. If it runs you " "should see:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2451 +#: ../src/guestfs.pod:2432 #, no-wrap msgid "" " verbose daemon enabled\n" @@ -40181,14 +40152,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2453 +#: ../src/guestfs.pod:2434 msgid "" "The daemon expects to see a named virtio-serial port exposed by qemu and " "connected on the other end to the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2456 +#: ../src/guestfs.pod:2437 msgid "" "The daemon connects to this port (and hence to the library) and sends a four " "byte message C<GUESTFS_LAUNCH_FLAG>, which initiates the communication " @@ -40196,19 +40167,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2462 +#: ../src/guestfs.pod:2443 msgid "COMMUNICATION PROTOCOL" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2464 +#: ../src/guestfs.pod:2445 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:2467 +#: ../src/guestfs.pod:2448 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 " @@ -40216,14 +40187,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2471 +#: ../src/guestfs.pod:2452 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:2474 +#: ../src/guestfs.pod:2455 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 " @@ -40233,17 +40204,17 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2481 +#: ../src/guestfs.pod:2462 msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2483 +#: ../src/guestfs.pod:2464 msgid "For ordinary functions, the request message is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2485 +#: ../src/guestfs.pod:2466 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -40254,7 +40225,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2490 +#: ../src/guestfs.pod:2471 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 " @@ -40263,21 +40234,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2496 +#: ../src/guestfs.pod:2477 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:2499 +#: ../src/guestfs.pod:2480 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:2503 +#: ../src/guestfs.pod:2484 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 " @@ -40289,12 +40260,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2511 +#: ../src/guestfs.pod:2492 msgid "The reply message for ordinary functions is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2513 +#: ../src/guestfs.pod:2494 #, no-wrap msgid "" " total length (header + ret,\n" @@ -40305,26 +40276,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2518 +#: ../src/guestfs.pod:2499 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:2521 +#: ../src/guestfs.pod:2502 msgid "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2524 +#: ../src/guestfs.pod:2505 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:2527 +#: ../src/guestfs.pod:2508 #, no-wrap msgid "" " total length (header + error,\n" @@ -40335,19 +40306,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2532 +#: ../src/guestfs.pod:2513 msgid "" "The C<guestfs_message_error> structure contains the error message as a " "string." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2535 +#: ../src/guestfs.pod:2516 msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2537 +#: ../src/guestfs.pod:2518 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 " @@ -40355,7 +40326,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2541 +#: ../src/guestfs.pod:2522 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -40369,12 +40340,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2549 +#: ../src/guestfs.pod:2530 msgid "The \"sequence of chunks\" is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2551 +#: ../src/guestfs.pod:2532 #, no-wrap msgid "" " length of chunk (not including length word itself)\n" @@ -40388,7 +40359,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2559 +#: ../src/guestfs.pod:2540 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 " @@ -40396,7 +40367,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2563 +#: ../src/guestfs.pod:2544 msgid "" "At time of writing there are no functions that have more than one FileIn " "parameter. However this is (theoretically) supported, by sending the " @@ -40405,7 +40376,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2568 +#: ../src/guestfs.pod:2549 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 " @@ -40414,7 +40385,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2574 +#: ../src/guestfs.pod:2555 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 " @@ -40426,7 +40397,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2583 +#: ../src/guestfs.pod:2564 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 " @@ -40436,19 +40407,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2589 +#: ../src/guestfs.pod:2570 msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2591 +#: ../src/guestfs.pod:2572 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:2594 +#: ../src/guestfs.pod:2575 #, no-wrap msgid "" " total length (header + ret,\n" @@ -40462,12 +40433,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2602 +#: ../src/guestfs.pod:2583 msgid "INITIAL MESSAGE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2604 +#: ../src/guestfs.pod:2585 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 " @@ -40475,12 +40446,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2608 +#: ../src/guestfs.pod:2589 msgid "PROGRESS NOTIFICATION MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2610 +#: ../src/guestfs.pod:2591 msgid "" "The daemon may send progress notification messages at any time. These are " "distinguished by the normal length word being replaced by " @@ -40488,7 +40459,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2614 +#: ../src/guestfs.pod:2595 msgid "" "The library turns them into progress callbacks (see " "L</GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards " @@ -40496,7 +40467,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2618 +#: ../src/guestfs.pod:2599 msgid "" "The daemon self-limits the frequency of progress messages it sends (see " "C<daemon/proto.c:notify_progress>). Not all calls generate progress " @@ -40504,12 +40475,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2622 +#: ../src/guestfs.pod:2603 msgid "LIBGUESTFS VERSION NUMBERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2624 +#: ../src/guestfs.pod:2605 msgid "" "Since April 2010, libguestfs has started to make separate development and " "stable releases, along with corresponding branches in our git repository. " @@ -40517,7 +40488,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2629 +#: ../src/guestfs.pod:2610 #, no-wrap msgid "" " even numbers for stable: 1.2.x, 1.4.x, ...\n" @@ -40534,12 +40505,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2640 +#: ../src/guestfs.pod:2621 msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2642 +#: ../src/guestfs.pod:2623 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 " @@ -40549,26 +40520,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2648 +#: ../src/guestfs.pod:2629 msgid "Our criteria for backporting changes are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2654 +#: ../src/guestfs.pod:2635 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:2660 +#: ../src/guestfs.pod:2641 msgid "" "Bug fixes which are not controversial, fix obvious problems, and have been " "well tested are backported." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2665 +#: ../src/guestfs.pod:2646 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 " @@ -40576,7 +40547,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2671 +#: ../src/guestfs.pod:2652 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 " @@ -40584,7 +40555,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2677 +#: ../src/guestfs.pod:2658 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 " @@ -40595,17 +40566,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2685 +#: ../src/guestfs.pod:2666 msgid "EXTENDING LIBGUESTFS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2687 +#: ../src/guestfs.pod:2668 msgid "ADDING A NEW API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2689 +#: ../src/guestfs.pod:2670 msgid "" "Large amounts of boilerplate code in libguestfs (RPC, bindings, " "documentation) are generated, and this makes it easy to extend the " @@ -40613,19 +40584,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2693 +#: ../src/guestfs.pod:2674 msgid "To add a new API action there are two changes:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2699 +#: ../src/guestfs.pod:2680 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:2702 +#: ../src/guestfs.pod:2683 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 " @@ -40636,7 +40607,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2710 +#: ../src/guestfs.pod:2691 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 " @@ -40646,7 +40617,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2716 +#: ../src/guestfs.pod:2697 msgid "" "For library-only actions of the second type, add to the " "C<non_daemon_functions> list. Since these functions are serviced by the " @@ -40656,36 +40627,36 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2724 +#: ../src/guestfs.pod:2705 msgid "Implement the action (in C):" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2726 +#: ../src/guestfs.pod:2707 msgid "" "For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the " "C<daemon/> directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2729 +#: ../src/guestfs.pod:2710 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:2732 +#: ../src/guestfs.pod:2713 msgid "In either case, use another function as an example of what to do." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2736 +#: ../src/guestfs.pod:2717 msgid "After making these changes, use C<make> to compile." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2738 +#: ../src/guestfs.pod:2719 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 " @@ -40693,12 +40664,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2742 +#: ../src/guestfs.pod:2723 msgid "ADDING TESTS FOR AN API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2744 +#: ../src/guestfs.pod:2725 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 " @@ -40708,61 +40679,61 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2751 +#: ../src/guestfs.pod:2732 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:2754 +#: ../src/guestfs.pod:2735 msgid "The test environment has 4 block devices:" msgstr "" #. type: =item -#: ../src/guestfs.pod:2758 +#: ../src/guestfs.pod:2739 msgid "C</dev/sda> 500MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2760 +#: ../src/guestfs.pod:2741 msgid "General block device for testing." msgstr "" #. type: =item -#: ../src/guestfs.pod:2762 +#: ../src/guestfs.pod:2743 msgid "C</dev/sdb> 50MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2764 +#: ../src/guestfs.pod:2745 msgid "" "C</dev/sdb1> is an ext2 filesystem used for testing filesystem write " "operations." msgstr "" #. type: =item -#: ../src/guestfs.pod:2767 +#: ../src/guestfs.pod:2748 msgid "C</dev/sdc> 10MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2769 +#: ../src/guestfs.pod:2750 msgid "Used in a few tests where two block devices are needed." msgstr "" #. type: =item -#: ../src/guestfs.pod:2771 +#: ../src/guestfs.pod:2752 msgid "C</dev/sdd>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2773 +#: ../src/guestfs.pod:2754 msgid "ISO with fixed content (see C<images/test.iso>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2777 +#: ../src/guestfs.pod:2758 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 " @@ -40770,7 +40741,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2781 +#: ../src/guestfs.pod:2762 msgid "" "Each test starts with an initial scenario, selected using one of the " "C<Init*> expressions, described in C<generator/generator_types.ml>. These " @@ -40780,7 +40751,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2787 +#: ../src/guestfs.pod:2768 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 " @@ -40790,14 +40761,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2793 +#: ../src/guestfs.pod:2774 msgid "" "In addition, packagers can skip individual tests by setting environment " "variables before running C<make check>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2796 +#: ../src/guestfs.pod:2777 #, no-wrap msgid "" " SKIP_TEST_<CMD>_<NUM>=1\n" @@ -40805,12 +40776,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2798 +#: ../src/guestfs.pod:2779 msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2802 +#: ../src/guestfs.pod:2783 #, no-wrap msgid "" " SKIP_TEST_<CMD>=1\n" @@ -40818,17 +40789,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2804 +#: ../src/guestfs.pod:2785 msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2806 +#: ../src/guestfs.pod:2787 msgid "Packagers can run only certain tests by setting for example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2808 +#: ../src/guestfs.pod:2789 #, no-wrap msgid "" " TEST_ONLY=\"vfs_type zerofree\"\n" @@ -40836,29 +40807,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2810 +#: ../src/guestfs.pod:2791 msgid "" "See C<tests/c-api/tests.c> for more details of how these environment " "variables work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2813 +#: ../src/guestfs.pod:2794 msgid "DEBUGGING NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2815 +#: ../src/guestfs.pod:2796 msgid "Test new actions work before submitting them." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2817 +#: ../src/guestfs.pod:2798 msgid "You can use guestfish to try out new commands." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2819 +#: ../src/guestfs.pod:2800 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 " @@ -40866,12 +40837,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2823 +#: ../src/guestfs.pod:2804 msgid "FORMATTING CODE AND OTHER CONVENTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2825 +#: ../src/guestfs.pod:2806 msgid "" "Our C source code generally adheres to some basic code-formatting " "conventions. The existing code base is not totally consistent on this " @@ -40881,14 +40852,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2831 +#: ../src/guestfs.pod:2812 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:2834 +#: ../src/guestfs.pod:2815 #, no-wrap msgid "" " ;;; In libguestfs, indent with spaces everywhere (not TABs).\n" @@ -40904,7 +40875,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2844 +#: ../src/guestfs.pod:2825 #, no-wrap msgid "" " ;;; When editing C sources in libguestfs, use this style.\n" @@ -40922,12 +40893,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2856 +#: ../src/guestfs.pod:2837 msgid "Enable warnings when compiling (and fix any problems this finds):" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2859 +#: ../src/guestfs.pod:2840 #, no-wrap msgid "" " ./configure --enable-gcc-warnings\n" @@ -40935,12 +40906,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2861 +#: ../src/guestfs.pod:2842 msgid "Useful targets are:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2863 +#: ../src/guestfs.pod:2844 #, no-wrap msgid "" " make syntax-check # checks the syntax of the C code\n" @@ -40949,43 +40920,43 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2866 +#: ../src/guestfs.pod:2847 msgid "DAEMON CUSTOM PRINTF FORMATTERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2868 +#: ../src/guestfs.pod:2849 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:2873 +#: ../src/guestfs.pod:2854 msgid "%Q" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2875 +#: ../src/guestfs.pod:2856 msgid "" "Simple shell quoted string. Any spaces or other shell characters are " "escaped for you." msgstr "" #. type: =item -#: ../src/guestfs.pod:2878 +#: ../src/guestfs.pod:2859 msgid "%R" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2880 +#: ../src/guestfs.pod:2861 msgid "" "Same as C<%Q> except the string is treated as a path which is prefixed by " "the sysroot." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2887 +#: ../src/guestfs.pod:2868 #, no-wrap msgid "" " asprintf (&cmd, \"cat %R\", path);\n" @@ -40993,12 +40964,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2889 +#: ../src/guestfs.pod:2870 msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2891 +#: ../src/guestfs.pod:2872 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 " @@ -41007,12 +40978,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2897 +#: ../src/guestfs.pod:2878 msgid "SUBMITTING YOUR NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2899 +#: ../src/guestfs.pod:2880 msgid "" "Submit patches to the mailing list: " "L<http://www.redhat.com/mailman/listinfo/libguestfs> and CC to " @@ -41020,17 +40991,17 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2903 +#: ../src/guestfs.pod:2884 msgid "INTERNATIONALIZATION (I18N) SUPPORT" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2905 +#: ../src/guestfs.pod:2886 msgid "We support i18n (gettext anyhow) in the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2907 +#: ../src/guestfs.pod:2888 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 " @@ -41039,115 +41010,115 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2913 +#: ../src/guestfs.pod:2894 msgid "" "Debugging messages are never translated, since they are intended for the " "programmers." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2916 +#: ../src/guestfs.pod:2897 msgid "SOURCE CODE SUBDIRECTORIES" msgstr "" #. type: =item -#: ../src/guestfs.pod:2920 +#: ../src/guestfs.pod:2901 msgid "C<align>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2922 +#: ../src/guestfs.pod:2903 msgid "L<virt-alignment-scan(1)> command and documentation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2926 +#: ../src/guestfs.pod:2907 msgid "The libguestfs appliance, build scripts and so on." msgstr "" #. type: =item -#: ../src/guestfs.pod:2928 +#: ../src/guestfs.pod:2909 msgid "C<cat>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2930 +#: ../src/guestfs.pod:2911 msgid "" "The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and " "documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2933 +#: ../src/guestfs.pod:2914 msgid "C<clone>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2935 +#: ../src/guestfs.pod:2916 msgid "" "Tools for cloning virtual machines. Currently contains L<virt-sysprep(1)> " "command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2938 +#: ../src/guestfs.pod:2919 msgid "C<contrib>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2940 +#: ../src/guestfs.pod:2921 msgid "Outside contributions, experimental parts." msgstr "" #. type: =item -#: ../src/guestfs.pod:2942 +#: ../src/guestfs.pod:2923 msgid "C<daemon>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2944 +#: ../src/guestfs.pod:2925 msgid "" "The daemon that runs inside the libguestfs appliance and carries out " "actions." msgstr "" #. type: =item -#: ../src/guestfs.pod:2947 +#: ../src/guestfs.pod:2928 msgid "C<df>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2949 +#: ../src/guestfs.pod:2930 msgid "L<virt-df(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2951 +#: ../src/guestfs.pod:2932 msgid "C<edit>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2953 +#: ../src/guestfs.pod:2934 msgid "L<virt-edit(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2955 +#: ../src/guestfs.pod:2936 msgid "C<examples>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2957 +#: ../src/guestfs.pod:2938 msgid "C API example code." msgstr "" #. type: =item -#: ../src/guestfs.pod:2959 +#: ../src/guestfs.pod:2940 msgid "C<fish>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2961 +#: ../src/guestfs.pod:2942 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)>, " @@ -41155,79 +41126,79 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2967 +#: ../src/guestfs.pod:2948 msgid "L<virt-format(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2969 +#: ../src/guestfs.pod:2950 msgid "C<fuse>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2971 +#: ../src/guestfs.pod:2952 msgid "L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:2973 +#: ../src/guestfs.pod:2954 msgid "C<generator>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2975 +#: ../src/guestfs.pod:2956 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:2978 +#: ../src/guestfs.pod:2959 msgid "C<inspector>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2980 +#: ../src/guestfs.pod:2961 msgid "L<virt-inspector(1)>, the virtual machine image inspector." msgstr "" #. type: =item -#: ../src/guestfs.pod:2982 +#: ../src/guestfs.pod:2963 msgid "C<logo>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2984 +#: ../src/guestfs.pod:2965 msgid "Logo used on the website. The fish is called Arthur by the way." msgstr "" #. type: =item -#: ../src/guestfs.pod:2986 +#: ../src/guestfs.pod:2967 msgid "C<m4>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2988 +#: ../src/guestfs.pod:2969 msgid "M4 macros used by autoconf." msgstr "" #. type: =item -#: ../src/guestfs.pod:2990 +#: ../src/guestfs.pod:2971 msgid "C<po>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2992 +#: ../src/guestfs.pod:2973 msgid "Translations of simple gettext strings." msgstr "" #. type: =item -#: ../src/guestfs.pod:2994 +#: ../src/guestfs.pod:2975 msgid "C<po-docs>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2996 +#: ../src/guestfs.pod:2977 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 " @@ -41235,139 +41206,139 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:3000 +#: ../src/guestfs.pod:2981 msgid "C<rescue>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3002 +#: ../src/guestfs.pod:2983 msgid "L<virt-rescue(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3004 +#: ../src/guestfs.pod:2985 msgid "C<resize>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3006 +#: ../src/guestfs.pod:2987 msgid "L<virt-resize(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3008 +#: ../src/guestfs.pod:2989 msgid "C<sparsify>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3010 +#: ../src/guestfs.pod:2991 msgid "L<virt-sparsify(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3012 +#: ../src/guestfs.pod:2993 msgid "C<src>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3014 +#: ../src/guestfs.pod:2995 msgid "Source code to the C library." msgstr "" #. type: =item -#: ../src/guestfs.pod:3016 +#: ../src/guestfs.pod:2997 msgid "C<test-tool>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3018 +#: ../src/guestfs.pod:2999 msgid "" "Test tool for end users to test if their qemu/kernel combination will work " "with libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:3021 +#: ../src/guestfs.pod:3002 msgid "C<tests>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3023 +#: ../src/guestfs.pod:3004 msgid "Tests." msgstr "" #. type: =item -#: ../src/guestfs.pod:3025 +#: ../src/guestfs.pod:3006 msgid "C<tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3027 +#: ../src/guestfs.pod:3008 msgid "Command line tools written in Perl (L<virt-win-reg(1)> and many others)." msgstr "" #. type: =item -#: ../src/guestfs.pod:3029 +#: ../src/guestfs.pod:3010 msgid "C<csharp>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3031 +#: ../src/guestfs.pod:3012 msgid "C<erlang>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3033 +#: ../src/guestfs.pod:3014 msgid "C<gobject>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3035 +#: ../src/guestfs.pod:3016 msgid "C<haskell>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3037 +#: ../src/guestfs.pod:3018 msgid "C<java>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3039 +#: ../src/guestfs.pod:3020 msgid "C<ocaml>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3041 +#: ../src/guestfs.pod:3022 msgid "C<php>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3043 +#: ../src/guestfs.pod:3024 msgid "C<perl>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3045 +#: ../src/guestfs.pod:3026 msgid "C<python>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3047 +#: ../src/guestfs.pod:3028 msgid "C<ruby>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3049 +#: ../src/guestfs.pod:3030 msgid "Language bindings." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3053 +#: ../src/guestfs.pod:3034 msgid "MAKING A STABLE RELEASE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3055 +#: ../src/guestfs.pod:3036 msgid "" "When we make a stable release, there are several steps documented here. See " "L</LIBGUESTFS VERSION NUMBERS> for general information about the stable " @@ -41375,32 +41346,32 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3063 +#: ../src/guestfs.pod:3044 msgid "Check C<make && make check> works on at least Fedora, Debian and Ubuntu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3068 +#: ../src/guestfs.pod:3049 msgid "Finalize RELEASE-NOTES." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3072 +#: ../src/guestfs.pod:3053 msgid "Update ROADMAP." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3076 +#: ../src/guestfs.pod:3057 msgid "Run C<src/api-support/update-from-tarballs.sh>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3080 +#: ../src/guestfs.pod:3061 msgid "Push and pull from Transifex." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3084 +#: ../src/guestfs.pod:3065 #, no-wrap msgid "" " tx push -s\n" @@ -41408,12 +41379,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3086 +#: ../src/guestfs.pod:3067 msgid "to push the latest POT files to Transifex. Then run:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3088 +#: ../src/guestfs.pod:3069 #, no-wrap msgid "" " ./tx-pull.sh\n" @@ -41421,24 +41392,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3090 +#: ../src/guestfs.pod:3071 msgid "which is a wrapper to pull the latest translated C<*.po> files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3094 +#: ../src/guestfs.pod:3075 msgid "" "Create new stable and development directories under " "L<http://libguestfs.org/download>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3099 +#: ../src/guestfs.pod:3080 msgid "Create the branch in git:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:3101 +#: ../src/guestfs.pod:3082 #, no-wrap msgid "" " git tag -a 1.XX.0 -m \"Version 1.XX.0 (stable)\"\n" @@ -41449,17 +41420,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:3108 +#: ../src/guestfs.pod:3089 msgid "LIMITS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3110 +#: ../src/guestfs.pod:3091 msgid "PROTOCOL LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3112 +#: ../src/guestfs.pod:3093 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 " @@ -41470,7 +41441,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3120 +#: ../src/guestfs.pod:3101 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 " @@ -41479,7 +41450,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3126 +#: ../src/guestfs.pod:3107 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> " @@ -41487,24 +41458,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3130 +#: ../src/guestfs.pod:3111 msgid "" "You might also consider mounting the disk image using our FUSE filesystem " "support (L<guestmount(1)>)." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3133 +#: ../src/guestfs.pod:3114 msgid "MAXIMUM NUMBER OF DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3135 +#: ../src/guestfs.pod:3116 msgid "When using virtio disks (the default) the current limit is B<25> disks." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3138 +#: ../src/guestfs.pod:3119 msgid "" "Virtio itself consumes 1 virtual PCI slot per disk, and PCI is limited to 31 " "slots. However febootstrap only understands disks with names C</dev/vda> " @@ -41513,14 +41484,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3143 +#: ../src/guestfs.pod:3124 msgid "" "We are working to substantially raise this limit in future versions but it " "requires complex changes to qemu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3146 +#: ../src/guestfs.pod:3127 msgid "" "In future versions of libguestfs it should also be possible to \"hot plug\" " "disks (add and remove disks after calling L</guestfs_launch>). This also " @@ -41528,41 +41499,41 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3150 +#: ../src/guestfs.pod:3131 msgid "MAXIMUM NUMBER OF PARTITIONS PER DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3152 +#: ../src/guestfs.pod:3133 msgid "Virtio limits the maximum number of partitions per disk to B<15>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3154 +#: ../src/guestfs.pod:3135 msgid "" "This is because it reserves 4 bits for the minor device number (thus " "C</dev/vda>, and C</dev/vda1> through C</dev/vda15>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3157 +#: ../src/guestfs.pod:3138 msgid "" "If you attach a disk with more than 15 partitions, the extra partitions are " "ignored by libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3160 +#: ../src/guestfs.pod:3141 msgid "MAXIMUM SIZE OF A DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3162 +#: ../src/guestfs.pod:3143 msgid "Probably the limit is between 2**63-1 and 2**64-1 bytes." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3164 +#: ../src/guestfs.pod:3145 msgid "" "We have tested block devices up to 1 exabyte (2**60 or " "1,152,921,504,606,846,976 bytes) using sparse files backed by an XFS host " @@ -41570,7 +41541,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3168 +#: ../src/guestfs.pod:3149 msgid "" "Although libguestfs probably does not impose any limit, the underlying host " "storage will. If you store disk images on a host ext4 filesystem, then the " @@ -41580,19 +41551,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3174 +#: ../src/guestfs.pod:3155 msgid "" "For the hugest disk image files, we recommend using XFS on the host for " "storage." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3177 +#: ../src/guestfs.pod:3158 msgid "MAXIMUM SIZE OF A PARTITION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3179 +#: ../src/guestfs.pod:3160 msgid "" "The MBR (ie. classic MS-DOS) partitioning scheme uses 32 bit sector " "numbers. Assuming a 512 byte sector size, this means that MBR cannot " @@ -41600,7 +41571,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3183 +#: ../src/guestfs.pod:3164 msgid "" "It is recommended that you use GPT partitions on disks which are larger than " "this size. GPT uses 64 bit sector numbers and so can address partitions " @@ -41608,12 +41579,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3188 +#: ../src/guestfs.pod:3169 msgid "MAXIMUM SIZE OF A FILESYSTEM, FILES, DIRECTORIES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3190 +#: ../src/guestfs.pod:3171 msgid "" "This depends on the filesystem type. libguestfs itself does not impose any " "known limit. Consult Wikipedia or the filesystem documentation to find out " @@ -41621,12 +41592,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3194 +#: ../src/guestfs.pod:3175 msgid "MAXIMUM UPLOAD AND DOWNLOAD" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3196 +#: ../src/guestfs.pod:3177 msgid "" "The API functions L</guestfs_upload>, L</guestfs_download>, " "L</guestfs_tar_in>, L</guestfs_tar_out> and the like allow unlimited sized " @@ -41634,12 +41605,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3200 +#: ../src/guestfs.pod:3181 msgid "INSPECTION LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3202 +#: ../src/guestfs.pod:3183 msgid "" "The inspection code has several arbitrary limits on things like the size of " "Windows Registry hive it will read, and the length of product name. These " @@ -41649,33 +41620,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3228 +#: ../src/guestfs.pod:3209 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: textblock -#: ../src/guestfs.pod:3240 +#: ../src/guestfs.pod:3221 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: textblock -#: ../src/guestfs.pod:3249 +#: ../src/guestfs.pod:3230 msgid "See also L</QEMU WRAPPERS> above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3253 +#: ../src/guestfs.pod:3234 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: textblock -#: ../src/guestfs.pod:3271 +#: ../src/guestfs.pod:3252 msgid "" "L<guestfs-examples(3)>, L<guestfs-erlang(3)>, L<guestfs-java(3)>, " "L<guestfs-ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, " @@ -41692,59 +41663,59 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3310 +#: ../src/guestfs.pod:3291 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:3317 ../tools/virt-make-fs.pl:574 ../tools/virt-win-reg.pl:772 +#: ../src/guestfs.pod:3298 ../tools/virt-make-fs.pl:574 ../tools/virt-win-reg.pl:772 msgid "BUGS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3319 +#: ../src/guestfs.pod:3300 msgid "To get a list of bugs against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3321 +#: ../src/guestfs.pod:3302 msgid "L<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3323 +#: ../src/guestfs.pod:3304 msgid "To report a new bug against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3325 +#: ../src/guestfs.pod:3306 msgid "L<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3327 +#: ../src/guestfs.pod:3308 msgid "When reporting a bug, please check:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3333 +#: ../src/guestfs.pod:3314 msgid "That the bug hasn't been reported already." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3337 +#: ../src/guestfs.pod:3318 msgid "That you are testing a recent version." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3341 +#: ../src/guestfs.pod:3322 msgid "Describe the bug accurately, and give a way to reproduce it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3345 +#: ../src/guestfs.pod:3326 msgid "" "Run libguestfs-test-tool and paste the B<complete, unedited> output into the " "bug report." diff --git a/po-docs/uk.po b/po-docs/uk.po index ebcb80d8..6d9f2087 100644 --- a/po-docs/uk.po +++ b/po-docs/uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libguestfs\n" "Report-Msgid-Bugs-To: libguestfs@redhat.com\n" -"POT-Creation-Date: 2012-04-24 11:27+0200\n" +"POT-Creation-Date: 2012-05-01 15:29+0200\n" "PO-Revision-Date: 2012-01-23 13:10+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" @@ -464,7 +464,7 @@ msgstr "" #: ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 #: ../fish/guestfish.pod:673 ../format/virt-format.pod:96 #: ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:161 -#: ../src/guestfs.pod:2885 +#: ../src/guestfs.pod:2866 msgid "For example:" msgstr "Приклад:" @@ -1010,22 +1010,22 @@ msgstr "Ця програма повертає:" #: ../src/guestfs-actions.pod:2880 ../src/guestfs-actions.pod:3423 #: ../src/guestfs-actions.pod:3429 ../src/guestfs-actions.pod:3437 #: ../src/guestfs-actions.pod:3444 ../src/guestfs-actions.pod:3451 -#: ../src/guestfs.pod:403 ../src/guestfs.pod:408 ../src/guestfs.pod:413 -#: ../src/guestfs.pod:417 ../src/guestfs.pod:422 ../src/guestfs.pod:426 -#: ../src/guestfs.pod:431 ../src/guestfs.pod:436 ../src/guestfs.pod:1116 -#: ../src/guestfs.pod:1120 ../src/guestfs.pod:1124 ../src/guestfs.pod:1129 -#: ../src/guestfs.pod:1137 ../src/guestfs.pod:1156 ../src/guestfs.pod:1164 -#: ../src/guestfs.pod:1186 ../src/guestfs.pod:1190 ../src/guestfs.pod:1194 -#: ../src/guestfs.pod:1198 ../src/guestfs.pod:1202 ../src/guestfs.pod:1206 -#: ../src/guestfs.pod:1696 ../src/guestfs.pod:1701 ../src/guestfs.pod:1705 -#: ../src/guestfs.pod:1807 ../src/guestfs.pod:1812 ../src/guestfs.pod:1816 -#: ../src/guestfs.pod:1826 ../src/guestfs.pod:2115 ../src/guestfs.pod:2120 -#: ../src/guestfs.pod:2126 ../src/guestfs.pod:2134 ../src/guestfs.pod:2652 -#: ../src/guestfs.pod:2658 ../src/guestfs.pod:2663 ../src/guestfs.pod:2669 -#: ../src/guestfs.pod:3061 ../src/guestfs.pod:3066 ../src/guestfs.pod:3070 -#: ../src/guestfs.pod:3074 ../src/guestfs.pod:3078 ../src/guestfs.pod:3092 -#: ../src/guestfs.pod:3097 ../src/guestfs.pod:3331 ../src/guestfs.pod:3335 -#: ../src/guestfs.pod:3339 ../src/guestfs.pod:3343 +#: ../src/guestfs.pod:384 ../src/guestfs.pod:389 ../src/guestfs.pod:394 +#: ../src/guestfs.pod:398 ../src/guestfs.pod:403 ../src/guestfs.pod:407 +#: ../src/guestfs.pod:412 ../src/guestfs.pod:417 ../src/guestfs.pod:1097 +#: ../src/guestfs.pod:1101 ../src/guestfs.pod:1105 ../src/guestfs.pod:1110 +#: ../src/guestfs.pod:1118 ../src/guestfs.pod:1137 ../src/guestfs.pod:1145 +#: ../src/guestfs.pod:1167 ../src/guestfs.pod:1171 ../src/guestfs.pod:1175 +#: ../src/guestfs.pod:1179 ../src/guestfs.pod:1183 ../src/guestfs.pod:1187 +#: ../src/guestfs.pod:1677 ../src/guestfs.pod:1682 ../src/guestfs.pod:1686 +#: ../src/guestfs.pod:1788 ../src/guestfs.pod:1793 ../src/guestfs.pod:1797 +#: ../src/guestfs.pod:1807 ../src/guestfs.pod:2096 ../src/guestfs.pod:2101 +#: ../src/guestfs.pod:2107 ../src/guestfs.pod:2115 ../src/guestfs.pod:2633 +#: ../src/guestfs.pod:2639 ../src/guestfs.pod:2644 ../src/guestfs.pod:2650 +#: ../src/guestfs.pod:3042 ../src/guestfs.pod:3047 ../src/guestfs.pod:3051 +#: ../src/guestfs.pod:3055 ../src/guestfs.pod:3059 ../src/guestfs.pod:3073 +#: ../src/guestfs.pod:3078 ../src/guestfs.pod:3312 ../src/guestfs.pod:3316 +#: ../src/guestfs.pod:3320 ../src/guestfs.pod:3324 #: ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 #: ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:721 #: ../tools/virt-win-reg.pl:727 ../tools/virt-win-reg.pl:733 @@ -1091,7 +1091,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 #: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325 #: ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 -#: ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3269 +#: ../sparsify/virt-sparsify.pod:284 ../src/guestfs.pod:3250 #: ../test-tool/libguestfs-test-tool.pod:100 #: ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 #: ../tools/virt-make-fs.pl:559 ../tools/virt-tar.pl:296 @@ -1147,7 +1147,7 @@ msgstr "Richard W.M. Jones L<http://people.redhat.com/~rjones/>" #: ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 #: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338 #: ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 -#: ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3354 +#: ../sparsify/virt-sparsify.pod:301 ../src/guestfs.pod:3335 #: ../test-tool/libguestfs-test-tool.pod:110 #: ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 #: ../tools/virt-make-fs.pl:589 ../tools/virt-tar.pl:315 @@ -3858,7 +3858,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1171 +#: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1152 msgid "SECURITY" msgstr "БЕЗПЕКА" @@ -4757,7 +4757,7 @@ msgstr "" #. type: =head1 #: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 #: ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:257 -#: ../src/guestfs.pod:3208 ../test-tool/libguestfs-test-tool.pod:95 +#: ../src/guestfs.pod:3189 ../test-tool/libguestfs-test-tool.pod:95 msgid "ENVIRONMENT VARIABLES" msgstr "ЗМІННІ СЕРЕДОВИЩА" @@ -5027,7 +5027,7 @@ msgstr "" #: ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 #: ../perl/examples/guestfs-perl.pod:52 #: ../python/examples/guestfs-python.pod:54 -#: ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3350 +#: ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3331 #: ../test-tool/libguestfs-test-tool.pod:106 msgid "AUTHORS" msgstr "АВТОРИ" @@ -5041,7 +5041,7 @@ msgstr "АВТОРИ" #: ../fuse/guestmount.pod:330 ../java/examples/guestfs-java.pod:60 #: ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 #: ../python/examples/guestfs-python.pod:56 -#: ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3352 +#: ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3333 #: ../test-tool/libguestfs-test-tool.pod:108 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)" msgstr "Richard W.M. Jones (C<rjones at redhat dot com>)" @@ -5072,7 +5072,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:102 #: ../perl/examples/guestfs-perl.pod:63 #: ../python/examples/guestfs-python.pod:65 -#: ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3359 +#: ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3340 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 " @@ -5087,7 +5087,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:107 #: ../perl/examples/guestfs-perl.pod:68 #: ../python/examples/guestfs-python.pod:70 -#: ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3364 +#: ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3345 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 " @@ -5102,7 +5102,7 @@ msgstr "" #: ../ocaml/examples/guestfs-ocaml.pod:112 #: ../perl/examples/guestfs-perl.pod:73 #: ../python/examples/guestfs-python.pod:75 -#: ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3369 +#: ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3350 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, " @@ -5460,7 +5460,7 @@ msgstr "" #: ../fish/guestfish-actions.pod:1509 ../fish/guestfish-actions.pod:1774 #: ../fish/guestfish-actions.pod:2189 ../src/guestfs-actions.pod:18 #: ../src/guestfs-actions.pod:2438 ../src/guestfs-actions.pod:2862 -#: ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1692 +#: ../src/guestfs-actions.pod:3419 ../src/guestfs.pod:1673 #: ../tools/virt-win-reg.pl:717 msgid "Notes:" msgstr "Нотатки:" @@ -6134,7 +6134,7 @@ msgstr "" #. type: textblock #: ../examples/guestfs-testing.pod:54 ../examples/guestfs-testing.pod:161 #: ../examples/guestfs-testing.pod:174 ../examples/guestfs-testing.pod:234 -#: ../src/guestfs.pod:2800 +#: ../src/guestfs.pod:2781 msgid "or:" msgstr "або:" @@ -6308,7 +6308,7 @@ msgid "Try importing virt-df CSV output into a spreadsheet or database." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3082 +#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3063 msgid "Run:" msgstr "Віддайте команду:" @@ -7059,7 +7059,7 @@ msgstr "" #. type: =item #: ../fish/guestfish-actions.pod:171 ../src/guestfs-actions.pod:231 -#: ../src/guestfs.pod:2965 +#: ../src/guestfs.pod:2946 msgid "C<format>" msgstr "C<format>" @@ -16618,7 +16618,7 @@ msgstr "" #. type: =item #: ../fish/guestfish-actions.pod:4441 ../src/guestfs-actions.pod:6919 -#: ../src/guestfs.pod:2924 +#: ../src/guestfs.pod:2905 msgid "C<appliance>" msgstr "C<appliance>" @@ -20437,7 +20437,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2250 +#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2231 #, no-wrap msgid "" " guestfish -N fs\n" @@ -21930,7 +21930,7 @@ msgid "" msgstr "" #. type: =head2 -#: ../fish/guestfish.pod:825 ../src/guestfs.pod:534 +#: ../fish/guestfish.pod:825 ../src/guestfs.pod:515 msgid "ENCRYPTED DISKS" msgstr "ЗАШИФРОВАНІ ДИСКИ" @@ -22295,7 +22295,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:982 ../src/guestfs.pod:987 +#: ../fish/guestfish.pod:982 ../src/guestfs.pod:968 #, no-wrap msgid "" " #!/bin/bash -\n" @@ -22586,7 +22586,7 @@ msgid "COMMANDS" msgstr "КОМАНДИ" #. type: textblock -#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1527 +#: ../fish/guestfish.pod:1112 ../src/guestfs.pod:1508 msgid "@ACTIONS@" msgstr "@ACTIONS@" @@ -22610,17 +22610,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3212 +#: ../fish/guestfish.pod:1128 ../src/guestfs.pod:3193 msgid "FEBOOTSTRAP_KERNEL" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3214 +#: ../fish/guestfish.pod:1130 ../src/guestfs.pod:3195 msgid "FEBOOTSTRAP_MODULES" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3216 +#: ../fish/guestfish.pod:1132 ../src/guestfs.pod:3197 msgid "" "These two environment variables allow the kernel that libguestfs uses in the " "appliance to be selected. If C<$FEBOOTSTRAP_KERNEL> is not set, then the " @@ -22678,17 +22678,17 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3222 +#: ../fish/guestfish.pod:1160 ../src/guestfs.pod:3203 msgid "LIBGUESTFS_APPEND" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3224 +#: ../fish/guestfish.pod:1162 ../src/guestfs.pod:3205 msgid "Pass additional options to the guest kernel." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3226 +#: ../fish/guestfish.pod:1164 ../src/guestfs.pod:3207 msgid "LIBGUESTFS_DEBUG" msgstr "LIBGUESTFS_DEBUG" @@ -22700,18 +22700,18 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3231 +#: ../fish/guestfish.pod:1169 ../src/guestfs.pod:3212 msgid "LIBGUESTFS_MEMSIZE" msgstr "LIBGUESTFS_MEMSIZE" #. type: textblock -#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3233 +#: ../fish/guestfish.pod:1171 ../src/guestfs.pod:3214 msgid "" "Set the memory allocated to the qemu process, in megabytes. For example:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3236 +#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3217 #, no-wrap msgid "" " LIBGUESTFS_MEMSIZE=700\n" @@ -22721,7 +22721,7 @@ msgstr "" "\n" #. type: =item -#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3238 +#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3219 msgid "LIBGUESTFS_PATH" msgstr "" @@ -22733,19 +22733,19 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3243 +#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3224 msgid "LIBGUESTFS_QEMU" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3245 +#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3226 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: =item -#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3251 +#: ../fish/guestfish.pod:1187 ../src/guestfs.pod:3232 msgid "LIBGUESTFS_TRACE" msgstr "" @@ -22768,19 +22768,19 @@ msgstr "" #. type: =item #: ../fish/guestfish.pod:1196 ../sparsify/virt-sparsify.pod:261 -#: ../src/guestfs.pod:3256 +#: ../src/guestfs.pod:3237 msgid "TMPDIR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3258 +#: ../fish/guestfish.pod:1198 ../src/guestfs.pod:3239 msgid "" "Location of temporary directory, defaults to C</tmp> except for the cached " "supermin appliance which defaults to C</var/tmp>." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3261 +#: ../fish/guestfish.pod:1201 ../src/guestfs.pod:3242 msgid "" "If libguestfs was compiled to use the supermin appliance then the real " "appliance is cached in this directory, shared between all handles belonging " @@ -22929,7 +22929,7 @@ msgstr "" #. type: textblock #: ../fish/guestfish.pod:1302 ../fuse/guestmount.pod:334 -#: ../src/guestfs.pod:3356 ../test-tool/libguestfs-test-tool.pod:112 +#: ../src/guestfs.pod:3337 ../test-tool/libguestfs-test-tool.pod:112 msgid "Copyright (C) 2009-2012 Red Hat Inc. L<http://libguestfs.org/>" msgstr "" @@ -25570,8 +25570,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 -#: ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:484 -#: ../src/guestfs.pod:1309 ../src/guestfs.pod:1448 ../src/guestfs.pod:2697 +#: ../sparsify/virt-sparsify.pod:228 ../src/guestfs.pod:465 +#: ../src/guestfs.pod:1290 ../src/guestfs.pod:1429 ../src/guestfs.pod:2678 msgid "1." msgstr "1." @@ -25610,8 +25610,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 -#: ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:490 -#: ../src/guestfs.pod:1313 ../src/guestfs.pod:1452 ../src/guestfs.pod:2722 +#: ../sparsify/virt-sparsify.pod:235 ../src/guestfs.pod:471 +#: ../src/guestfs.pod:1294 ../src/guestfs.pod:1433 ../src/guestfs.pod:2703 msgid "2." msgstr "2." @@ -25633,8 +25633,8 @@ msgstr "" #. type: =item #: ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 -#: ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:501 -#: ../src/guestfs.pod:1458 +#: ../sparsify/virt-sparsify.pod:241 ../src/guestfs.pod:482 +#: ../src/guestfs.pod:1439 msgid "3." msgstr "3." @@ -37977,69 +37977,44 @@ msgstr "" #. type: textblock #: ../src/guestfs.pod:25 +#, fuzzy +#| msgid "guestfs - Library for accessing and modifying virtual machine images" msgid "" -"Libguestfs is a library for accessing and modifying guest disk images. " -"Amongst the things this is good for: making batch configuration changes to " -"guests, getting disk used/free statistics (see also: virt-df), migrating " -"between virtualization systems (see also: virt-p2v), performing partial " -"backups, performing partial guest clones, cloning guests and changing " -"registry/UUID/hostname info, and much else besides." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:33 -msgid "" -"Libguestfs uses Linux kernel and qemu code, and can access any type of guest " -"filesystem that Linux and qemu can, including but not limited to: ext2/3/4, " -"btrfs, FAT and NTFS, LVM, many different disk partition schemes, qcow, " -"qcow2, vmdk." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:38 -msgid "" -"Libguestfs provides ways to enumerate guest storage (eg. partitions, LVs, " -"what filesystem is in each LV, etc.). It can also run commands in the " -"context of the guest. Also you can access filesystems over FUSE." -msgstr "" - -#. type: textblock -#: ../src/guestfs.pod:43 -msgid "" -"Libguestfs is a library that can be linked with C and C++ management " -"programs (or management programs written in OCaml, Perl, Python, Ruby, Java, " -"PHP, Erlang, Haskell or C#). You can also use it from shell scripts or the " -"command line." +"Libguestfs is a library for accessing and modifying disk images and virtual " +"machines. This manual page documents the C API." msgstr "" +"guestfs — бібліотека для доступу та внесення змін до образів віртуальних " +"машин" #. type: textblock -#: ../src/guestfs.pod:48 +#: ../src/guestfs.pod:28 msgid "" -"You don't need to be root to use libguestfs, although obviously you do need " -"enough permissions to access the disk images." +"If you are looking for an introduction to libguestfs, see the web site: " +"L<http://libguestfs.org/>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:51 +#: ../src/guestfs.pod:31 msgid "" -"Libguestfs is a large API because it can do many things. For a gentle " -"introduction, please read the L</API OVERVIEW> section next." +"Each virt tool has its own man page (for a full list, go to L</SEE ALSO> at " +"the end of this file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:54 +#: ../src/guestfs.pod:34 msgid "" -"There are also some example programs in the L<guestfs-examples(3)> manual " -"page." +"For examples of using the API from C, see L<guestfs-examples(3)>. For " +"examples in other languages, see L</USING LIBGUESTFS WITH OTHER PROGRAMMING " +"LANGUAGES> below." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:57 +#: ../src/guestfs.pod:38 msgid "API OVERVIEW" msgstr "ОГЛЯД API" #. type: textblock -#: ../src/guestfs.pod:59 +#: ../src/guestfs.pod:40 msgid "" "This section provides a gentler overview of the libguestfs API. We also try " "to group API calls together, where that may not be obvious from reading " @@ -38047,12 +38022,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:64 +#: ../src/guestfs.pod:45 msgid "HANDLES" msgstr "ОБРОБНИКИ" #. type: textblock -#: ../src/guestfs.pod:66 +#: ../src/guestfs.pod:47 msgid "" "Before you can use libguestfs calls, you have to create a handle. Then you " "must add at least one disk image to the handle, followed by launching the " @@ -38062,12 +38037,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:73 +#: ../src/guestfs.pod:54 msgid "The general structure of all libguestfs-using programs looks like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:76 +#: ../src/guestfs.pod:57 #, no-wrap msgid "" " guestfs_h *g = guestfs_create ();\n" @@ -38077,7 +38052,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:78 +#: ../src/guestfs.pod:59 #, no-wrap msgid "" " /* Call guestfs_add_drive additional times if there are\n" @@ -38088,7 +38063,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:83 +#: ../src/guestfs.pod:64 #, no-wrap msgid "" " /* Most manipulation calls won't work until you've launched\n" @@ -38100,7 +38075,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:89 +#: ../src/guestfs.pod:70 #, no-wrap msgid "" " /* Now you can examine what partitions, LVs etc are available.\n" @@ -38116,7 +38091,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:94 +#: ../src/guestfs.pod:75 #, no-wrap msgid "" " /* To access a filesystem in the image, you must mount it.\n" @@ -38130,7 +38105,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:98 +#: ../src/guestfs.pod:79 #, no-wrap msgid "" " /* Now you can perform filesystem actions on the guest\n" @@ -38146,7 +38121,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:103 +#: ../src/guestfs.pod:84 #, no-wrap msgid "" " /* This is only needed for libguestfs < 1.5.24. Since then\n" @@ -38158,7 +38133,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:109 +#: ../src/guestfs.pod:90 #, no-wrap msgid "" " /* Close the handle 'g'. */\n" @@ -38170,7 +38145,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:112 +#: ../src/guestfs.pod:93 msgid "" "The code above doesn't include any error checking. In real code you should " "check return values carefully for errors. In general all functions that " @@ -38182,12 +38157,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:121 +#: ../src/guestfs.pod:102 msgid "DISK IMAGES" msgstr "ОБРАЗИ ДИСКІВ" #. type: textblock -#: ../src/guestfs.pod:123 +#: ../src/guestfs.pod:104 msgid "" "The image filename (C<\"guest.img\"> in the example above) could be a disk " "image from a virtual machine, a L<dd(1)> copy of a physical hard disk, an " @@ -38197,7 +38172,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:129 +#: ../src/guestfs.pod:110 msgid "" "The call you should use in modern code for adding drives is L</" "guestfs_add_drive_opts>. To add a disk image, allowing writes, and " @@ -38205,7 +38180,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:133 +#: ../src/guestfs.pod:114 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -38219,12 +38194,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:137 +#: ../src/guestfs.pod:118 msgid "You can add a disk read-only using:" msgstr "Ви можете додати диск у режимі лише читання:" #. type: verbatim -#: ../src/guestfs.pod:139 +#: ../src/guestfs.pod:120 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -38240,14 +38215,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:144 +#: ../src/guestfs.pod:125 msgid "" "or by calling the older function L</guestfs_add_drive_ro>. In either case " "libguestfs won't modify the file." msgstr "" #. type: textblock -#: ../src/guestfs.pod:147 +#: ../src/guestfs.pod:128 msgid "" "Be extremely cautious if the disk image is in use, eg. if it is being used " "by a virtual machine. Adding it read-write will almost certainly cause disk " @@ -38255,7 +38230,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:151 +#: ../src/guestfs.pod:132 msgid "" "You must add at least one disk image, and you may add multiple disk images. " "In the API, the disk images are usually referred to as C</dev/sda> (for the " @@ -38263,7 +38238,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:156 +#: ../src/guestfs.pod:137 msgid "" "Once L</guestfs_launch> has been called you cannot add any more images. You " "can call L</guestfs_list_devices> to get a list of the device names, in the " @@ -38271,12 +38246,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:161 +#: ../src/guestfs.pod:142 msgid "MOUNTING" msgstr "МОНТУВАННЯ" #. type: textblock -#: ../src/guestfs.pod:163 +#: ../src/guestfs.pod:144 msgid "" "Before you can read or write files, create directories and so on in a disk " "image that contains filesystems, you have to mount those filesystems using " @@ -38286,7 +38261,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:170 +#: ../src/guestfs.pod:151 #, no-wrap msgid "" " guestfs_mount_options (g, \"\", \"/dev/sda1\", \"/\");\n" @@ -38296,7 +38271,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:172 +#: ../src/guestfs.pod:153 msgid "" "where C</dev/sda1> means literally the first partition (C<1>) of the first " "disk image that we added (C</dev/sda>). If the disk contains Linux LVM2 " @@ -38306,7 +38281,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:178 +#: ../src/guestfs.pod:159 msgid "" "If you are given a disk image and you don't know what it contains then you " "have to find out. Libguestfs can do that too: use L</" @@ -38317,7 +38292,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:186 +#: ../src/guestfs.pod:167 msgid "" "Libguestfs also has a set of APIs for inspection of unknown disk images (see " "L</INSPECTION> below). But you might find it easier to look at higher level " @@ -38325,19 +38300,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:191 +#: ../src/guestfs.pod:172 msgid "" "To mount a filesystem read-only, use L</guestfs_mount_ro>. There are " "several other variations of the C<guestfs_mount_*> call." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:194 +#: ../src/guestfs.pod:175 msgid "FILESYSTEM ACCESS AND MODIFICATION" msgstr "ДОСТУП ТА ВНЕСЕННЯ ЗМІН ДО ФАЙЛОВИХ СИСТЕМ" #. type: textblock -#: ../src/guestfs.pod:196 +#: ../src/guestfs.pod:177 msgid "" "The majority of the libguestfs API consists of fairly low-level calls for " "accessing and modifying the files, directories, symlinks etc on mounted " @@ -38347,7 +38322,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:202 +#: ../src/guestfs.pod:183 msgid "" "Specify filenames as full paths, starting with C<\"/\"> and including the " "mount point." @@ -38356,7 +38331,7 @@ msgstr "" "точкою монтування." #. type: textblock -#: ../src/guestfs.pod:205 +#: ../src/guestfs.pod:186 msgid "" "For example, if you mounted a filesystem at C<\"/\"> and you want to read " "the file called C<\"etc/passwd\"> then you could do:" @@ -38366,7 +38341,7 @@ msgstr "" "таким кодом:" #. type: verbatim -#: ../src/guestfs.pod:208 +#: ../src/guestfs.pod:189 #, no-wrap msgid "" " char *data = guestfs_cat (g, \"/etc/passwd\");\n" @@ -38376,7 +38351,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:210 +#: ../src/guestfs.pod:191 msgid "" "This would return C<data> as a newly allocated buffer containing the full " "content of that file (with some conditions: see also L</DOWNLOADING> below), " @@ -38384,14 +38359,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:214 +#: ../src/guestfs.pod:195 msgid "" "As another example, to create a top-level directory on that filesystem " "called C<\"var\"> you would do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:217 +#: ../src/guestfs.pod:198 #, no-wrap msgid "" " guestfs_mkdir (g, \"/var\");\n" @@ -38401,12 +38376,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:219 +#: ../src/guestfs.pod:200 msgid "To create a symlink you could do:" msgstr "Щоб створити символічне посилання, ви можете скористатися таким кодом:" #. type: verbatim -#: ../src/guestfs.pod:221 +#: ../src/guestfs.pod:202 #, no-wrap msgid "" " guestfs_ln_s (g, \"/etc/init.d/portmap\",\n" @@ -38418,14 +38393,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:224 +#: ../src/guestfs.pod:205 msgid "" "Libguestfs will reject attempts to use relative paths and there is no " "concept of a current working directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:227 +#: ../src/guestfs.pod:208 msgid "" "Libguestfs can return errors in many situations: for example if the " "filesystem isn't writable, or if a file or directory that you requested " @@ -38435,33 +38410,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:233 +#: ../src/guestfs.pod:214 msgid "" "File writes are affected by the per-handle umask, set by calling L</" "guestfs_umask> and defaulting to 022. See L</UMASK>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:236 +#: ../src/guestfs.pod:217 msgid "PARTITIONING" msgstr "ПОДІЛ НА РОЗДІЛИ" #. type: textblock -#: ../src/guestfs.pod:238 +#: ../src/guestfs.pod:219 msgid "" "Libguestfs contains API calls to read, create and modify partition tables on " "disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:241 +#: ../src/guestfs.pod:222 msgid "" "In the common case where you want to create a single partition covering the " "whole disk, you should use the L</guestfs_part_disk> call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:245 +#: ../src/guestfs.pod:226 #, no-wrap msgid "" " const char *parttype = \"mbr\";\n" @@ -38477,18 +38452,18 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:250 +#: ../src/guestfs.pod:231 msgid "" "Obviously this effectively wipes anything that was on that disk image before." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:253 +#: ../src/guestfs.pod:234 msgid "LVM2" msgstr "LVM2" #. type: textblock -#: ../src/guestfs.pod:255 +#: ../src/guestfs.pod:236 msgid "" "Libguestfs provides access to a large part of the LVM2 API, such as L</" "guestfs_lvcreate> and L</guestfs_vgremove>. It won't make much sense unless " @@ -38497,19 +38472,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:260 +#: ../src/guestfs.pod:241 msgid "" "This author strongly recommends reading the LVM HOWTO, online at L<http://" "tldp.org/HOWTO/LVM-HOWTO/>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:263 +#: ../src/guestfs.pod:244 msgid "DOWNLOADING" msgstr "ОТРИМАННЯ ДАНИХ" #. type: textblock -#: ../src/guestfs.pod:265 +#: ../src/guestfs.pod:246 msgid "" "Use L</guestfs_cat> to download small, text only files. This call is " "limited to files which are less than 2 MB and which cannot contain any ASCII " @@ -38517,7 +38492,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:269 +#: ../src/guestfs.pod:250 msgid "" "L</guestfs_read_file> can be used to read files which contain arbitrary 8 " "bit data, since it returns a (pointer, size) pair. However it is still " @@ -38525,31 +38500,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:273 +#: ../src/guestfs.pod:254 msgid "" "L</guestfs_download> can be used to download any file, with no limits on " "content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:276 +#: ../src/guestfs.pod:257 msgid "" "To download multiple files, see L</guestfs_tar_out> and L</guestfs_tgz_out>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:279 +#: ../src/guestfs.pod:260 msgid "UPLOADING" msgstr "ВИВАНТАЖЕННЯ" #. type: textblock -#: ../src/guestfs.pod:281 +#: ../src/guestfs.pod:262 msgid "" "It's often the case that you want to write a file or files to the disk image." msgstr "" #. type: textblock -#: ../src/guestfs.pod:284 +#: ../src/guestfs.pod:265 msgid "" "To write a small file with fixed content, use L</guestfs_write>. To create " "a file of all zeroes, use L</guestfs_truncate_size> (sparse) or L</" @@ -38559,20 +38534,20 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:290 +#: ../src/guestfs.pod:271 msgid "" "To upload a single file, use L</guestfs_upload>. This call has no limits on " "file content or size (even files larger than 4 GB)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:293 +#: ../src/guestfs.pod:274 msgid "" "To upload multiple files, see L</guestfs_tar_in> and L</guestfs_tgz_in>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:295 +#: ../src/guestfs.pod:276 msgid "" "However the fastest way to upload I<large numbers of arbitrary files> is to " "turn them into a squashfs or CD ISO (see L<mksquashfs(8)> and L<mkisofs(8)" @@ -38586,12 +38561,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:306 +#: ../src/guestfs.pod:287 msgid "COPYING" msgstr "КОПІЮВАННЯ" #. type: textblock -#: ../src/guestfs.pod:308 +#: ../src/guestfs.pod:289 msgid "" "There are various different commands for copying between files and devices " "and in and out of the guest filesystem. These are summarised in the table " @@ -38599,52 +38574,52 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:314 +#: ../src/guestfs.pod:295 msgid "B<file> to B<file>" msgstr "B<файл> у B<файл>" #. type: textblock -#: ../src/guestfs.pod:316 +#: ../src/guestfs.pod:297 msgid "" "Use L</guestfs_cp> to copy a single file, or L</guestfs_cp_a> to copy " "directories recursively." msgstr "" #. type: textblock -#: ../src/guestfs.pod:319 +#: ../src/guestfs.pod:300 msgid "" "To copy part of a file (offset and size) use L</guestfs_copy_file_to_file>." msgstr "" #. type: =item -#: ../src/guestfs.pod:322 +#: ../src/guestfs.pod:303 msgid "B<file> to B<device>" msgstr "B<файл> на B<пристрій>" #. type: =item -#: ../src/guestfs.pod:324 +#: ../src/guestfs.pod:305 msgid "B<device> to B<file>" msgstr "B<пристрій> до B<файла>" #. type: =item -#: ../src/guestfs.pod:326 +#: ../src/guestfs.pod:307 msgid "B<device> to B<device>" msgstr "B<пристрій> на B<пристрій>" #. type: textblock -#: ../src/guestfs.pod:328 +#: ../src/guestfs.pod:309 msgid "" "Use L</guestfs_copy_file_to_device>, L</guestfs_copy_device_to_file>, or L</" "guestfs_copy_device_to_device>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:331 +#: ../src/guestfs.pod:312 msgid "Example: duplicate the contents of an LV:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:333 +#: ../src/guestfs.pod:314 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -38655,7 +38630,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:338 +#: ../src/guestfs.pod:319 msgid "" "The destination (C</dev/VG/Copy>) must be at least as large as the source " "(C</dev/VG/Original>). To copy less than the whole source device, use the " @@ -38663,7 +38638,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:342 +#: ../src/guestfs.pod:323 #, no-wrap msgid "" " guestfs_copy_device_to_device (g,\n" @@ -38674,32 +38649,32 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:347 +#: ../src/guestfs.pod:328 msgid "B<file on the host> to B<file or device>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:349 +#: ../src/guestfs.pod:330 msgid "Use L</guestfs_upload>. See L</UPLOADING> above." msgstr "" #. type: =item -#: ../src/guestfs.pod:351 +#: ../src/guestfs.pod:332 msgid "B<file or device> to B<file on the host>" msgstr "B<файл або пристрій> у B<файл на вузлі>" #. type: textblock -#: ../src/guestfs.pod:353 +#: ../src/guestfs.pod:334 msgid "Use L</guestfs_download>. See L</DOWNLOADING> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:357 +#: ../src/guestfs.pod:338 msgid "UPLOADING AND DOWNLOADING TO PIPES AND FILE DESCRIPTORS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:359 +#: ../src/guestfs.pod:340 msgid "" "Calls like L</guestfs_upload>, L</guestfs_download>, L</guestfs_tar_in>, L</" "guestfs_tar_out> etc appear to only take filenames as arguments, so it " @@ -38710,12 +38685,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:367 +#: ../src/guestfs.pod:348 msgid "For example, L<virt-cat(1)> writes its output to stdout by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:370 +#: ../src/guestfs.pod:351 #, no-wrap msgid "" " guestfs_download (g, filename, \"/dev/stdout\");\n" @@ -38725,12 +38700,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:372 +#: ../src/guestfs.pod:353 msgid "and you can write tar output to a file descriptor C<fd> by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:374 +#: ../src/guestfs.pod:355 #, no-wrap msgid "" " char devfd[64];\n" @@ -38744,26 +38719,26 @@ msgstr "" "\n" #. type: =head2 -#: ../src/guestfs.pod:378 +#: ../src/guestfs.pod:359 msgid "LISTING FILES" msgstr "СПИСКИ ФАЙЛІВ" #. type: textblock -#: ../src/guestfs.pod:380 +#: ../src/guestfs.pod:361 msgid "" "L</guestfs_ll> is just designed for humans to read (mainly when using the " "L<guestfish(1)>-equivalent command C<ll>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:383 +#: ../src/guestfs.pod:364 msgid "" "L</guestfs_ls> is a quick way to get a list of files in a directory from " "programs, as a flat list of strings." msgstr "" #. type: textblock -#: ../src/guestfs.pod:386 +#: ../src/guestfs.pod:367 msgid "" "L</guestfs_readdir> is a programmatic way to get a list of files in a " "directory, plus additional information about each one. It is more " @@ -38771,18 +38746,18 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:390 +#: ../src/guestfs.pod:371 msgid "" "L</guestfs_find> and L</guestfs_find0> can be used to recursively list files." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:393 +#: ../src/guestfs.pod:374 msgid "RUNNING COMMANDS" msgstr "ВИКОНАННЯ КОМАНД" #. type: textblock -#: ../src/guestfs.pod:395 +#: ../src/guestfs.pod:376 msgid "" "Although libguestfs is primarily an API for manipulating files inside guest " "images, we also provide some limited facilities for running commands inside " @@ -38790,56 +38765,56 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:399 +#: ../src/guestfs.pod:380 msgid "There are many limitations to this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:405 +#: ../src/guestfs.pod:386 msgid "" "The kernel version that the command runs under will be different from what " "it expects." msgstr "" #. type: textblock -#: ../src/guestfs.pod:410 +#: ../src/guestfs.pod:391 msgid "" "If the command needs to communicate with daemons, then most likely they " "won't be running." msgstr "" #. type: textblock -#: ../src/guestfs.pod:415 +#: ../src/guestfs.pod:396 msgid "The command will be running in limited memory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:419 +#: ../src/guestfs.pod:400 msgid "" "The network may not be available unless you enable it (see L</" "guestfs_set_network>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:424 +#: ../src/guestfs.pod:405 msgid "Only supports Linux guests (not Windows, BSD, etc)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:428 +#: ../src/guestfs.pod:409 msgid "" "Architecture limitations (eg. won't work for a PPC guest on an X86 host)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:433 +#: ../src/guestfs.pod:414 msgid "" "For SELinux guests, you may need to enable SELinux and load policy first. " "See L</SELINUX> in this manpage." msgstr "" #. type: textblock -#: ../src/guestfs.pod:438 +#: ../src/guestfs.pod:419 msgid "" "I<Security:> It is not safe to run commands from untrusted, possibly " "malicious guests. These commands may attempt to exploit your program by " @@ -38851,7 +38826,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:447 +#: ../src/guestfs.pod:428 msgid "" "A secure alternative is to use libguestfs to install a \"firstboot\" script " "(a script which runs when the guest next boots normally), and to have this " @@ -38861,26 +38836,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:455 +#: ../src/guestfs.pod:436 msgid "" "The two main API calls to run commands are L</guestfs_command> and L</" "guestfs_sh> (there are also variations)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:458 +#: ../src/guestfs.pod:439 msgid "" "The difference is that L</guestfs_sh> runs commands using the shell, so any " "shell globs, redirections, etc will work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:461 +#: ../src/guestfs.pod:442 msgid "CONFIGURATION FILES" msgstr "ФАЙЛИ НАЛАШТУВАННЯ" #. type: textblock -#: ../src/guestfs.pod:463 +#: ../src/guestfs.pod:444 msgid "" "To read and write configuration files in Linux guest filesystems, we " "strongly recommend using Augeas. For example, Augeas understands how to " @@ -38889,7 +38864,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:468 +#: ../src/guestfs.pod:449 msgid "" "The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't " "document Augeas itself here because there is excellent documentation on the " @@ -38897,7 +38872,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:472 +#: ../src/guestfs.pod:453 msgid "" "If you don't want to use Augeas (you fool!) then try calling L</" "guestfs_read_lines> to get the file as a list of lines which you can iterate " @@ -38905,24 +38880,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:476 +#: ../src/guestfs.pod:457 msgid "SELINUX" msgstr "SELINUX" #. type: textblock -#: ../src/guestfs.pod:478 +#: ../src/guestfs.pod:459 msgid "" "We support SELinux guests. To ensure that labeling happens correctly in " "SELinux guests, you need to enable SELinux and load the guest's policy:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:486 +#: ../src/guestfs.pod:467 msgid "Before launching, do:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:488 +#: ../src/guestfs.pod:469 #, no-wrap msgid "" " guestfs_set_selinux (g, 1);\n" @@ -38932,14 +38907,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:492 +#: ../src/guestfs.pod:473 msgid "" "After mounting the guest's filesystem(s), load the policy. This is best " "done by running the L<load_policy(8)> command in the guest itself:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:496 +#: ../src/guestfs.pod:477 #, no-wrap msgid "" " guestfs_sh (g, \"/usr/sbin/load_policy\");\n" @@ -38949,21 +38924,21 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:498 +#: ../src/guestfs.pod:479 msgid "" "(Older versions of C<load_policy> require you to specify the name of the " "policy file)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:503 +#: ../src/guestfs.pod:484 msgid "" "Optionally, set the security context for the API. The correct security " "context to use can only be known by inspecting the guest. As an example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:507 +#: ../src/guestfs.pod:488 #, no-wrap msgid "" " guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n" @@ -38973,24 +38948,24 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:511 +#: ../src/guestfs.pod:492 msgid "This will work for running commands and editing existing files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:513 +#: ../src/guestfs.pod:494 msgid "" "When new files are created, you may need to label them explicitly, for " "example by running the external command C<restorecon pathname>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:517 +#: ../src/guestfs.pod:498 msgid "UMASK" msgstr "UMASK" #. type: textblock -#: ../src/guestfs.pod:519 +#: ../src/guestfs.pod:500 msgid "" "Certain calls are affected by the current file mode creation mask (the " "\"umask\"). In particular ones which create files or directories, such as " @@ -39000,14 +38975,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:525 +#: ../src/guestfs.pod:506 msgid "" "The default umask is C<022>, so files are created with modes such as C<0644> " "and directories with C<0755>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:528 +#: ../src/guestfs.pod:509 msgid "" "There are two ways to avoid being affected by umask. Either set umask to 0 " "(call C<guestfs_umask (g, 0)> early after launching). Or call L</" @@ -39015,12 +38990,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:532 +#: ../src/guestfs.pod:513 msgid "For more information about umask, see L<umask(2)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:536 +#: ../src/guestfs.pod:517 msgid "" "Libguestfs allows you to access Linux guests which have been encrypted using " "whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) " @@ -39029,21 +39004,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:542 +#: ../src/guestfs.pod:523 msgid "" "Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it " "returns the string C<crypto_LUKS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:545 +#: ../src/guestfs.pod:526 msgid "" "Then open these devices by calling L</guestfs_luks_open>. Obviously you " "will require the passphrase!" msgstr "" #. type: textblock -#: ../src/guestfs.pod:548 +#: ../src/guestfs.pod:529 msgid "" "Opening a LUKS device creates a new device mapper device called C</dev/" "mapper/mapname> (where C<mapname> is the string you supply to L</" @@ -39052,7 +39027,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:554 +#: ../src/guestfs.pod:535 msgid "" "LVM volume groups on the device can be made visible by calling L</" "guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical volume" @@ -39060,7 +39035,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:558 +#: ../src/guestfs.pod:539 msgid "" "Use the reverse process to close a LUKS device. Unmount any logical volumes " "on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, " @@ -39070,12 +39045,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:565 +#: ../src/guestfs.pod:546 msgid "INSPECTION" msgstr "ПЕРЕВІРКА" #. type: textblock -#: ../src/guestfs.pod:567 +#: ../src/guestfs.pod:548 msgid "" "Libguestfs has APIs for inspecting an unknown disk image to find out if it " "contains operating systems, an install CD or a live CD. (These APIs used to " @@ -39085,14 +39060,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:574 +#: ../src/guestfs.pod:555 msgid "" "Add all disks belonging to the unknown virtual machine and call L</" "guestfs_launch> in the usual way." msgstr "" #. type: textblock -#: ../src/guestfs.pod:577 +#: ../src/guestfs.pod:558 msgid "" "Then call L</guestfs_inspect_os>. This function uses other libguestfs calls " "and certain heuristics, and returns a list of operating systems that were " @@ -39105,7 +39080,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:586 +#: ../src/guestfs.pod:567 msgid "" "For each root, you can then call various C<guestfs_inspect_get_*> functions " "to get additional details about that operating system. For example, call L</" @@ -39114,7 +39089,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:592 +#: ../src/guestfs.pod:573 msgid "" "Un*x-like and Linux-based operating systems usually consist of several " "filesystems which are mounted at boot time (for example, a separate boot " @@ -39125,7 +39100,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:599 +#: ../src/guestfs.pod:580 #, no-wrap msgid "" " /boot => /dev/sda1\n" @@ -39139,21 +39114,21 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:603 +#: ../src/guestfs.pod:584 msgid "" "The caller can then make calls to L</guestfs_mount_options> to mount the " "filesystems as suggested." msgstr "" #. type: textblock -#: ../src/guestfs.pod:606 +#: ../src/guestfs.pod:587 msgid "" "Be careful to mount filesystems in the right order (eg. C</> before C</" "usr>). Sorting the keys of the hash by length, shortest first, should work." msgstr "" #. type: textblock -#: ../src/guestfs.pod:610 +#: ../src/guestfs.pod:591 msgid "" "Inspection currently only works for some common operating systems. " "Contributors are welcome to send patches for other operating systems that we " @@ -39161,7 +39136,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:614 +#: ../src/guestfs.pod:595 msgid "" "Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> " "for more details. The L</guestfs_inspect_os> function just ignores any " @@ -39169,7 +39144,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:618 +#: ../src/guestfs.pod:599 msgid "" "A note on the implementation: The call L</guestfs_inspect_os> performs " "inspection and caches the results in the guest handle. Subsequent calls to " @@ -39182,19 +39157,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:627 +#: ../src/guestfs.pod:608 msgid "INSPECTING INSTALL DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:629 +#: ../src/guestfs.pod:610 msgid "" "Libguestfs (since 1.9.4) can detect some install disks, install CDs, live " "CDs and more." msgstr "" #. type: textblock -#: ../src/guestfs.pod:632 +#: ../src/guestfs.pod:613 msgid "" "Call L</guestfs_inspect_get_format> to return the format of the operating " "system, which currently can be C<installed> (a regular operating system) or " @@ -39202,7 +39177,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:636 +#: ../src/guestfs.pod:617 msgid "" "Further information is available about the operating system that can be " "installed using the regular inspection APIs like L</" @@ -39210,7 +39185,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:641 +#: ../src/guestfs.pod:622 msgid "" "Some additional information specific to installer disks is also available " "from the L</guestfs_inspect_is_live>, L</guestfs_inspect_is_netinst> and L</" @@ -39218,24 +39193,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:646 +#: ../src/guestfs.pod:627 msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:648 +#: ../src/guestfs.pod:629 msgid "" "Libguestfs can mount NTFS partitions. It does this using the L<http://www." "ntfs-3g.org/> driver." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:651 +#: ../src/guestfs.pod:632 msgid "DRIVE LETTERS AND PATHS" msgstr "ЛІТЕРИ ДИСКІВ ТА ШЛЯХИ" #. type: textblock -#: ../src/guestfs.pod:653 +#: ../src/guestfs.pod:634 msgid "" "DOS and Windows still use drive letters, and the filesystems are always " "treated as case insensitive by Windows itself, and therefore you might find " @@ -39245,14 +39220,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:659 +#: ../src/guestfs.pod:640 msgid "" "Drive letter mappings can be found using inspection (see L</INSPECTION> and " "L</guestfs_inspect_get_drive_mappings>)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:662 +#: ../src/guestfs.pod:643 msgid "" "Dealing with separator characters (backslash vs forward slash) is outside " "the scope of libguestfs, but usually a simple character replacement will " @@ -39260,19 +39235,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:666 +#: ../src/guestfs.pod:647 msgid "" "To resolve the case insensitivity of paths, call L</" "guestfs_case_sensitive_path>." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:669 +#: ../src/guestfs.pod:650 msgid "ACCESSING THE WINDOWS REGISTRY" msgstr "ДОСТУП ДО РЕГІСТРУ WINDOWS" #. type: textblock -#: ../src/guestfs.pod:671 +#: ../src/guestfs.pod:652 msgid "" "Libguestfs also provides some help for decoding Windows Registry \"hive\" " "files, through the library C<hivex> which is part of the libguestfs project " @@ -39283,12 +39258,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:679 +#: ../src/guestfs.pod:660 msgid "SYMLINKS ON NTFS-3G FILESYSTEMS" msgstr "СИМВОЛІЧНІ ПОСИЛАННЯ У ФАЙЛОВИХ СИСТЕМАХ NTFS-3G" #. type: textblock -#: ../src/guestfs.pod:681 +#: ../src/guestfs.pod:662 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 " @@ -39296,7 +39271,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:685 +#: ../src/guestfs.pod:666 msgid "" "L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-" "symbolic-links/>" @@ -39305,7 +39280,7 @@ msgstr "" "symbolic-links/>" #. type: textblock -#: ../src/guestfs.pod:687 +#: ../src/guestfs.pod:668 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 " @@ -39315,7 +39290,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:694 +#: ../src/guestfs.pod:675 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 " @@ -39324,38 +39299,38 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:699 +#: ../src/guestfs.pod:680 msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:701 +#: ../src/guestfs.pod:682 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:704 +#: ../src/guestfs.pod:685 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:706 +#: ../src/guestfs.pod:687 msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES" msgstr "ВИКОРИСТАННЯ LIBGUESTFS ЗА ДОПОМОГОЮ ІНШИХ МОВ ПРОГРАМУВАННЯ" #. type: textblock -#: ../src/guestfs.pod:708 +#: ../src/guestfs.pod:689 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:711 +#: ../src/guestfs.pod:692 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)> " @@ -39365,14 +39340,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:717 +#: ../src/guestfs.pod:698 msgid "" "Error messages are automatically transformed into exceptions if the language " "supports it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:720 +#: ../src/guestfs.pod:701 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 " @@ -39380,58 +39355,58 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:726 +#: ../src/guestfs.pod:707 msgid "B<C++>" msgstr "B<C++>" #. type: textblock -#: ../src/guestfs.pod:728 +#: ../src/guestfs.pod:709 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:732 +#: ../src/guestfs.pod:713 msgid "B<C#>" msgstr "B<C#>" #. type: textblock -#: ../src/guestfs.pod:734 +#: ../src/guestfs.pod:715 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:737 +#: ../src/guestfs.pod:718 msgid "B<Erlang>" msgstr "B<Erlang>" #. type: textblock -#: ../src/guestfs.pod:739 +#: ../src/guestfs.pod:720 msgid "See L<guestfs-erlang(3)>." msgstr "Див. L<guestfs-erlang(3)>." #. type: =item -#: ../src/guestfs.pod:741 +#: ../src/guestfs.pod:722 msgid "B<GObject>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:743 +#: ../src/guestfs.pod:724 msgid "" "Experimental GObject bindings (with GObject Introspection support) are " "available. See the C<gobject> directory in the source." msgstr "" #. type: =item -#: ../src/guestfs.pod:746 +#: ../src/guestfs.pod:727 msgid "B<Haskell>" msgstr "B<Haskell>" #. type: textblock -#: ../src/guestfs.pod:748 +#: ../src/guestfs.pod:729 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 " @@ -39439,96 +39414,96 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:752 +#: ../src/guestfs.pod:733 msgid "B<Java>" msgstr "B<Java>" #. type: textblock -#: ../src/guestfs.pod:754 +#: ../src/guestfs.pod:735 msgid "" "Full documentation is contained in the Javadoc which is distributed with " "libguestfs. For examples, see L<guestfs-java(3)>." msgstr "" #. type: =item -#: ../src/guestfs.pod:757 +#: ../src/guestfs.pod:738 msgid "B<OCaml>" msgstr "B<OCaml>" #. type: textblock -#: ../src/guestfs.pod:759 +#: ../src/guestfs.pod:740 msgid "See L<guestfs-ocaml(3)>." msgstr "Див. L<guestfs-ocaml(3)>." #. type: =item -#: ../src/guestfs.pod:761 +#: ../src/guestfs.pod:742 msgid "B<Perl>" msgstr "B<Perl>" #. type: textblock -#: ../src/guestfs.pod:763 +#: ../src/guestfs.pod:744 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:765 +#: ../src/guestfs.pod:746 msgid "B<PHP>" msgstr "B<PHP>" #. type: textblock -#: ../src/guestfs.pod:767 +#: ../src/guestfs.pod:748 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:770 +#: ../src/guestfs.pod:751 msgid "The PHP binding only works correctly on 64 bit machines." msgstr "" #. type: =item -#: ../src/guestfs.pod:772 +#: ../src/guestfs.pod:753 msgid "B<Python>" msgstr "B<Python>" #. type: textblock -#: ../src/guestfs.pod:774 +#: ../src/guestfs.pod:755 msgid "See L<guestfs-python(3)>." msgstr "Див. L<guestfs-python(3)>." #. type: =item -#: ../src/guestfs.pod:776 +#: ../src/guestfs.pod:757 msgid "B<Ruby>" msgstr "B<Ruby>" #. type: textblock -#: ../src/guestfs.pod:778 +#: ../src/guestfs.pod:759 msgid "See L<guestfs-ruby(3)>." msgstr "Див. L<guestfs-ruby(3)>." #. type: textblock -#: ../src/guestfs.pod:780 +#: ../src/guestfs.pod:761 msgid "For JRuby, use the Java bindings." msgstr "" #. type: =item -#: ../src/guestfs.pod:782 +#: ../src/guestfs.pod:763 msgid "B<shell scripts>" msgstr "B<скрипти оболонки>" #. type: textblock -#: ../src/guestfs.pod:784 +#: ../src/guestfs.pod:765 msgid "See L<guestfish(1)>." msgstr "Див. L<guestfish(1)>." #. type: =head2 -#: ../src/guestfs.pod:788 +#: ../src/guestfs.pod:769 msgid "LIBGUESTFS GOTCHAS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:790 +#: ../src/guestfs.pod:771 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 " @@ -39536,7 +39511,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:794 +#: ../src/guestfs.pod:775 msgid "" "Since we developed libguestfs and the associated tools, there are several " "things we would have designed differently, but are now stuck with for " @@ -39545,19 +39520,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:802 +#: ../src/guestfs.pod:783 msgid "Autosync / forgetting to sync." msgstr "" #. type: textblock -#: ../src/guestfs.pod:804 +#: ../src/guestfs.pod:785 msgid "" "I<Update:> Autosync is enabled by default for all API users starting from " "libguestfs 1.5.24. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:807 +#: ../src/guestfs.pod:788 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 " @@ -39565,7 +39540,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:811 +#: ../src/guestfs.pod:792 #, no-wrap msgid "" " guestfs_set_autosync (g, 1);\n" @@ -39575,14 +39550,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:813 +#: ../src/guestfs.pod:794 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:817 +#: ../src/guestfs.pod:798 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 " @@ -39590,7 +39565,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:821 +#: ../src/guestfs.pod:802 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 " @@ -39598,19 +39573,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:825 +#: ../src/guestfs.pod:806 msgid "Mount option C<-o sync> should not be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:827 +#: ../src/guestfs.pod:808 msgid "" "I<Update:> L</guestfs_mount> no longer adds any options starting from " "libguestfs 1.13.16. This section only applies to older versions." msgstr "" #. type: textblock -#: ../src/guestfs.pod:830 +#: ../src/guestfs.pod:811 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 " @@ -39618,31 +39593,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:834 +#: ../src/guestfs.pod:815 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:837 +#: ../src/guestfs.pod:818 msgid "Read-only should be the default." msgstr "" #. type: textblock -#: ../src/guestfs.pod:839 +#: ../src/guestfs.pod:820 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:842 +#: ../src/guestfs.pod:823 msgid "This would reduce the potential to corrupt live VM images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:844 +#: ../src/guestfs.pod:825 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</" @@ -39650,12 +39625,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:848 +#: ../src/guestfs.pod:829 msgid "guestfish command line is hard to use." msgstr "" #. type: textblock -#: ../src/guestfs.pod:850 +#: ../src/guestfs.pod:831 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 " @@ -39665,12 +39640,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:857 +#: ../src/guestfs.pod:838 msgid "guestfish megabyte modifiers don't work right on all commands" msgstr "" #. type: textblock -#: ../src/guestfs.pod:859 +#: ../src/guestfs.pod:840 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 " @@ -39680,12 +39655,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:866 +#: ../src/guestfs.pod:847 msgid "The most common is L</guestfs_lvcreate>. The guestfish command:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:868 +#: ../src/guestfs.pod:849 #, no-wrap msgid "" " lvcreate LV VG 100M\n" @@ -39695,7 +39670,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:870 +#: ../src/guestfs.pod:851 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 " @@ -39704,19 +39679,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:875 +#: ../src/guestfs.pod:856 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:878 +#: ../src/guestfs.pod:859 msgid "Ambiguity between devices and paths" msgstr "" #. type: textblock -#: ../src/guestfs.pod:880 +#: ../src/guestfs.pod:861 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 " @@ -39724,7 +39699,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:885 +#: ../src/guestfs.pod:866 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>. " @@ -39733,7 +39708,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:891 +#: ../src/guestfs.pod:872 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 " @@ -39743,7 +39718,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:897 +#: ../src/guestfs.pod:878 #, no-wrap msgid "" " type path = Path of string | Device of int | Partition of int * int\n" @@ -39751,12 +39726,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:899 +#: ../src/guestfs.pod:880 msgid "which would allow you to pass arguments like:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:901 +#: ../src/guestfs.pod:882 #, no-wrap msgid "" " Path \"/foo/bar\"\n" @@ -39767,26 +39742,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:906 +#: ../src/guestfs.pod:887 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:911 +#: ../src/guestfs.pod:892 msgid "KEYS AND PASSPHRASES" msgstr "КЛЮЧІ І ПАРОЛІ" #. type: textblock -#: ../src/guestfs.pod:913 +#: ../src/guestfs.pod:894 msgid "" "Certain libguestfs calls take a parameter that contains sensitive key " "material, passed in as a C string." msgstr "" #. type: textblock -#: ../src/guestfs.pod:916 +#: ../src/guestfs.pod:897 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 " @@ -39795,7 +39770,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:921 +#: ../src/guestfs.pod:902 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, " @@ -39803,19 +39778,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:926 +#: ../src/guestfs.pod:907 msgid "MULTIPLE HANDLES AND MULTIPLE THREADS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:928 +#: ../src/guestfs.pod:909 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:931 +#: ../src/guestfs.pod:912 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 " @@ -39823,33 +39798,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:935 +#: ../src/guestfs.pod:916 msgid "" "See the graphical program guestfs-browser for one possible architecture for " "multithreaded programs using libvirt and libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:938 +#: ../src/guestfs.pod:919 msgid "PATH" msgstr "ШЛЯХ" #. type: textblock -#: ../src/guestfs.pod:940 +#: ../src/guestfs.pod:921 msgid "" "Libguestfs needs a supermin appliance, which it finds by looking along an " "internal path." msgstr "" #. type: textblock -#: ../src/guestfs.pod:943 +#: ../src/guestfs.pod:924 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:946 +#: ../src/guestfs.pod:927 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 " @@ -39860,12 +39835,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:953 +#: ../src/guestfs.pod:934 msgid "QEMU WRAPPERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:955 +#: ../src/guestfs.pod:936 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 " @@ -39873,7 +39848,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:959 +#: ../src/guestfs.pod:940 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 " @@ -39882,14 +39857,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:964 +#: ../src/guestfs.pod:945 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:967 +#: ../src/guestfs.pod:948 #, no-wrap msgid "" " #!/bin/sh -\n" @@ -39903,7 +39878,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:971 +#: ../src/guestfs.pod:952 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 " @@ -39911,7 +39886,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:975 +#: ../src/guestfs.pod:956 #, no-wrap msgid "" " LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n" @@ -39921,14 +39896,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:977 +#: ../src/guestfs.pod:958 msgid "" "Note that libguestfs also calls qemu with the -help and -version options in " "order to determine features." msgstr "" #. type: textblock -#: ../src/guestfs.pod:980 +#: ../src/guestfs.pod:961 msgid "" "Wrappers can also be used to edit the options passed to qemu. In the " "following example, the C<-machine ...> option (C<-machine> and the following " @@ -39938,7 +39913,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:989 +#: ../src/guestfs.pod:970 #, no-wrap msgid "" " i=0\n" @@ -39956,7 +39931,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1001 +#: ../src/guestfs.pod:982 #, no-wrap msgid "" " exec qemu-kvm -machine pc,accel=tcg \"${args[@]}\"\n" @@ -39964,19 +39939,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1003 +#: ../src/guestfs.pod:984 msgid "ATTACHING TO RUNNING DAEMONS" msgstr "ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ" #. type: textblock -#: ../src/guestfs.pod:1005 +#: ../src/guestfs.pod:986 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:1008 +#: ../src/guestfs.pod:989 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 " @@ -39984,12 +39959,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1012 +#: ../src/guestfs.pod:993 msgid "Using guestfs_set_attach_method" msgstr "За допомогою guestfs_set_attach_method" #. type: textblock -#: ../src/guestfs.pod:1014 +#: ../src/guestfs.pod:995 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</" @@ -39997,14 +39972,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1018 +#: ../src/guestfs.pod:999 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:1021 +#: ../src/guestfs.pod:1002 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 " @@ -40012,7 +39987,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1025 +#: ../src/guestfs.pod:1006 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 " @@ -40020,12 +39995,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1029 +#: ../src/guestfs.pod:1010 msgid "Using guestfs_add_domain with live flag" msgstr "За допомогою guestfs_add_domain з прапорцем live" #. type: textblock -#: ../src/guestfs.pod:1031 +#: ../src/guestfs.pod:1012 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 " @@ -40034,7 +40009,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1037 +#: ../src/guestfs.pod:1018 #, no-wrap msgid "" " <domain>\n" @@ -40064,14 +40039,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1049 +#: ../src/guestfs.pod:1030 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:1052 +#: ../src/guestfs.pod:1033 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 " @@ -40079,19 +40054,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1056 +#: ../src/guestfs.pod:1037 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:1060 +#: ../src/guestfs.pod:1041 msgid "ABI GUARANTEE" msgstr "ГАРАНТІЯ ЩОДО ABI" #. type: textblock -#: ../src/guestfs.pod:1062 +#: ../src/guestfs.pod:1043 msgid "" "We guarantee the libguestfs ABI (binary interface), for public, high-level " "actions as outlined in this section. Although we will deprecate some " @@ -40101,12 +40076,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1068 +#: ../src/guestfs.pod:1049 msgid "BLOCK DEVICE NAMING" msgstr "ІМЕНУВАННЯ БЛОКОВИХ ПРИСТРОЇВ" #. type: textblock -#: ../src/guestfs.pod:1070 +#: ../src/guestfs.pod:1051 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 " @@ -40120,7 +40095,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1082 +#: ../src/guestfs.pod:1063 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 " @@ -40128,7 +40103,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1086 +#: ../src/guestfs.pod:1067 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 " @@ -40136,7 +40111,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1091 +#: ../src/guestfs.pod:1072 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 " @@ -40145,7 +40120,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1097 +#: ../src/guestfs.pod:1078 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 " @@ -40153,12 +40128,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1102 +#: ../src/guestfs.pod:1083 msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1104 +#: ../src/guestfs.pod:1085 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 " @@ -40167,7 +40142,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1110 +#: ../src/guestfs.pod:1091 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</" @@ -40175,54 +40150,54 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1118 +#: ../src/guestfs.pod:1099 msgid "Is the string a parameter which is a device or partition name?" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1122 +#: ../src/guestfs.pod:1103 msgid "Does the string begin with C</dev/sd>?" msgstr "Чи починається рядок з C</dev/sd>?" #. type: textblock -#: ../src/guestfs.pod:1126 +#: ../src/guestfs.pod:1107 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:1131 +#: ../src/guestfs.pod:1112 msgid "Replace initial C</dev/sd> string with C</dev/hd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1133 +#: ../src/guestfs.pod:1114 msgid "For example, change C</dev/sda2> to C</dev/hda2>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1135 +#: ../src/guestfs.pod:1116 msgid "If that named device exists, use it. If not, continue." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1139 +#: ../src/guestfs.pod:1120 msgid "Replace initial C</dev/sd> string with C</dev/vd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1141 +#: ../src/guestfs.pod:1122 msgid "If that named device exists, use it. If not, return an error." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1145 +#: ../src/guestfs.pod:1126 msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1147 +#: ../src/guestfs.pod:1128 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 " @@ -40230,46 +40205,46 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1151 +#: ../src/guestfs.pod:1132 msgid "" "Where possible for maximum future portability programs using libguestfs " "should use these future-proof techniques:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1158 +#: ../src/guestfs.pod:1139 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:1161 +#: ../src/guestfs.pod:1142 msgid "" "Since those device names exist by definition, they will never be translated." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1166 +#: ../src/guestfs.pod:1147 msgid "" "Use higher level ways to identify filesystems, such as LVM names, UUIDs and " "filesystem labels." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1173 +#: ../src/guestfs.pod:1154 msgid "" "This section discusses security implications of using libguestfs, " "particularly with untrusted or malicious guests or disk images." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1176 +#: ../src/guestfs.pod:1157 msgid "GENERAL SECURITY CONSIDERATIONS" msgstr "ЗАГАЛЬНІ ЗАУВАЖЕННЯ ЩОДО ЗАХИСТУ" #. type: textblock -#: ../src/guestfs.pod:1178 +#: ../src/guestfs.pod:1159 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 " @@ -40279,42 +40254,42 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1188 +#: ../src/guestfs.pod:1169 msgid "the data (file etc) not being present" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1192 +#: ../src/guestfs.pod:1173 msgid "being present but empty" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1196 +#: ../src/guestfs.pod:1177 msgid "being much larger than normal" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1200 +#: ../src/guestfs.pod:1181 msgid "containing arbitrary 8 bit data" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1204 +#: ../src/guestfs.pod:1185 msgid "being in an unexpected character encoding" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1208 +#: ../src/guestfs.pod:1189 msgid "containing homoglyphs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1212 +#: ../src/guestfs.pod:1193 msgid "SECURITY OF MOUNTING FILESYSTEMS" msgstr "ЗАХИСТ ФАЙЛОВИХ СИСТЕМ МОНТУВАННЯ" #. type: textblock -#: ../src/guestfs.pod:1214 +#: ../src/guestfs.pod:1195 msgid "" "When you mount a filesystem under Linux, mistakes in the kernel filesystem " "(VFS) module can sometimes be escalated into exploits by deliberately " @@ -40330,7 +40305,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1227 +#: ../src/guestfs.pod:1208 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 " @@ -40344,19 +40319,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1238 +#: ../src/guestfs.pod:1219 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:1241 +#: ../src/guestfs.pod:1222 msgid "PROTOCOL SECURITY" msgstr "ЗАХИСТ ПРОТОКОЛУ" #. type: textblock -#: ../src/guestfs.pod:1243 +#: ../src/guestfs.pod:1224 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 " @@ -40366,12 +40341,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1249 +#: ../src/guestfs.pod:1230 msgid "INSPECTION SECURITY" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1251 +#: ../src/guestfs.pod:1232 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 " @@ -40380,7 +40355,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1257 +#: ../src/guestfs.pod:1238 msgid "" "Guest configuration may be altered in unusual ways by the administrator of " "the virtual machine, and may not reflect reality (particularly for untrusted " @@ -40391,7 +40366,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1265 +#: ../src/guestfs.pod:1246 msgid "" "The inspection API parses guest configuration using two external libraries: " "Augeas (Linux configuration) and hivex (Windows Registry). Both are " @@ -40401,12 +40376,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1271 +#: ../src/guestfs.pod:1252 msgid "RUNNING UNTRUSTED GUEST COMMANDS" msgstr "ЗАПУСК НЕЗАХИЩЕНИХ КОМАНД ГОСТЬОВОЇ СИСТЕМИ" #. type: textblock -#: ../src/guestfs.pod:1273 +#: ../src/guestfs.pod:1254 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 " @@ -40416,24 +40391,24 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1279 +#: ../src/guestfs.pod:1260 msgid "CVE-2010-3851" msgstr "CVE-2010-3851" #. type: textblock -#: ../src/guestfs.pod:1281 +#: ../src/guestfs.pod:1262 msgid "https://bugzilla.redhat.com/642934" msgstr "https://bugzilla.redhat.com/642934" #. type: textblock -#: ../src/guestfs.pod:1283 +#: ../src/guestfs.pod:1264 msgid "" "This security bug concerns the automatic disk format detection that qemu " "does on disk images." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1286 +#: ../src/guestfs.pod:1267 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 " @@ -40442,7 +40417,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1291 +#: ../src/guestfs.pod:1272 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 " @@ -40451,7 +40426,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1296 +#: ../src/guestfs.pod:1277 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 " @@ -40463,25 +40438,25 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1304 +#: ../src/guestfs.pod:1285 msgid "" "In libguestfs this is rather hard to exploit except under two circumstances:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1311 +#: ../src/guestfs.pod:1292 msgid "You have enabled the network or have opened the disk in write mode." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1315 +#: ../src/guestfs.pod:1296 msgid "" "You are also running untrusted code from the guest (see L</RUNNING " "COMMANDS>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1320 +#: ../src/guestfs.pod:1301 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 " @@ -40490,31 +40465,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1325 +#: ../src/guestfs.pod:1306 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:1328 +#: ../src/guestfs.pod:1309 msgid "" "For libguestfs tools, use the I<--format> command line parameter as " "appropriate." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1331 +#: ../src/guestfs.pod:1312 msgid "CONNECTION MANAGEMENT" msgstr "КЕРУВАННЯ З’ЄДНАННЯМ" #. type: =head2 -#: ../src/guestfs.pod:1333 +#: ../src/guestfs.pod:1314 msgid "guestfs_h *" msgstr "guestfs_h *" #. type: textblock -#: ../src/guestfs.pod:1335 +#: ../src/guestfs.pod:1316 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 " @@ -40522,19 +40497,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1339 +#: ../src/guestfs.pod:1320 msgid "" "For information on using multiple handles and threads, see the section L</" "MULTIPLE HANDLES AND MULTIPLE THREADS> above." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1342 +#: ../src/guestfs.pod:1323 msgid "guestfs_create" msgstr "guestfs_create" #. type: verbatim -#: ../src/guestfs.pod:1344 +#: ../src/guestfs.pod:1325 #, no-wrap msgid "" " guestfs_h *guestfs_create (void);\n" @@ -40544,19 +40519,19 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1346 +#: ../src/guestfs.pod:1327 msgid "Create a connection handle." msgstr "Створити дескриптор з’єднання." #. type: textblock -#: ../src/guestfs.pod:1348 +#: ../src/guestfs.pod:1329 msgid "" "On success this returns a non-NULL pointer to a handle. On error it returns " "NULL." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1351 +#: ../src/guestfs.pod:1332 msgid "" "You have to \"configure\" the handle after creating it. This includes " "calling L</guestfs_add_drive_opts> (or one of the equivalent calls) on the " @@ -40564,24 +40539,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1355 +#: ../src/guestfs.pod:1336 msgid "After configuring the handle, you have to call L</guestfs_launch>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1357 +#: ../src/guestfs.pod:1338 msgid "" "You may also want to configure error handling for the handle. See the L</" "ERROR HANDLING> section below." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1360 +#: ../src/guestfs.pod:1341 msgid "guestfs_close" msgstr "guestfs_close" #. type: verbatim -#: ../src/guestfs.pod:1362 +#: ../src/guestfs.pod:1343 #, no-wrap msgid "" " void guestfs_close (guestfs_h *g);\n" @@ -40591,12 +40566,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1364 +#: ../src/guestfs.pod:1345 msgid "This closes the connection handle and frees up all resources used." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1366 +#: ../src/guestfs.pod:1347 msgid "" "If autosync was set on the handle and the handle was launched, then this " "implicitly calls various functions to unmount filesystems and sync the " @@ -40604,24 +40579,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1370 +#: ../src/guestfs.pod:1351 msgid "If a close callback was set on the handle, then it is called." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1372 +#: ../src/guestfs.pod:1353 msgid "ERROR HANDLING" msgstr "ОБРОБКА ПОМИЛОК" #. type: textblock -#: ../src/guestfs.pod:1374 +#: ../src/guestfs.pod:1355 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:1377 +#: ../src/guestfs.pod:1358 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 " @@ -40629,7 +40604,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1381 +#: ../src/guestfs.pod:1362 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 " @@ -40637,7 +40612,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1386 +#: ../src/guestfs.pod:1367 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 " @@ -40645,7 +40620,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1390 +#: ../src/guestfs.pod:1371 #, no-wrap msgid "" " if (guestfs_launch (g) == -1)\n" @@ -40657,21 +40632,21 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1393 +#: ../src/guestfs.pod:1374 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:1396 +#: ../src/guestfs.pod:1377 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:1399 +#: ../src/guestfs.pod:1380 #, no-wrap msgid "" " /* This disables the default behaviour of printing errors\n" @@ -40681,7 +40656,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1403 +#: ../src/guestfs.pod:1384 #, no-wrap msgid "" " if (guestfs_launch (g) == -1) {\n" @@ -40698,7 +40673,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1414 +#: ../src/guestfs.pod:1395 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</" @@ -40706,7 +40681,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1418 +#: ../src/guestfs.pod:1399 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 " @@ -40716,12 +40691,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1424 +#: ../src/guestfs.pod:1405 msgid "guestfs_last_error" msgstr "guestfs_last_error" #. type: verbatim -#: ../src/guestfs.pod:1426 +#: ../src/guestfs.pod:1407 #, no-wrap msgid "" " const char *guestfs_last_error (guestfs_h *g);\n" @@ -40731,26 +40706,26 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1428 +#: ../src/guestfs.pod:1409 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:1432 +#: ../src/guestfs.pod:1413 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:1435 +#: ../src/guestfs.pod:1416 msgid "guestfs_last_errno" msgstr "guestfs_last_errno" #. type: verbatim -#: ../src/guestfs.pod:1437 +#: ../src/guestfs.pod:1418 #, no-wrap msgid "" " int guestfs_last_errno (guestfs_h *g);\n" @@ -40760,28 +40735,28 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1439 +#: ../src/guestfs.pod:1420 msgid "This returns the last error number (errno) that happened on C<g>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1441 +#: ../src/guestfs.pod:1422 msgid "If successful, an errno integer not equal to zero is returned." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1443 +#: ../src/guestfs.pod:1424 msgid "" "If no error, this returns 0. This call can return 0 in three situations:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1450 +#: ../src/guestfs.pod:1431 msgid "There has not been any error on the handle." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1454 +#: ../src/guestfs.pod:1435 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 " @@ -40789,14 +40764,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1460 +#: ../src/guestfs.pod:1441 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:1466 +#: ../src/guestfs.pod:1447 msgid "" "Libguestfs tries to convert the errno from inside the applicance into a " "corresponding errno for the caller (not entirely trivial: the appliance " @@ -40807,12 +40782,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1474 +#: ../src/guestfs.pod:1455 msgid "guestfs_set_error_handler" msgstr "guestfs_set_error_handler" #. type: verbatim -#: ../src/guestfs.pod:1476 +#: ../src/guestfs.pod:1457 #, no-wrap msgid "" " typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n" @@ -40832,7 +40807,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1483 +#: ../src/guestfs.pod:1464 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 " @@ -40840,14 +40815,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1487 +#: ../src/guestfs.pod:1468 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:1490 +#: ../src/guestfs.pod:1471 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 " @@ -40855,22 +40830,22 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1494 +#: ../src/guestfs.pod:1475 msgid "The default handler prints messages on C<stderr>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1496 +#: ../src/guestfs.pod:1477 msgid "If you set C<cb> to C<NULL> then I<no> handler is called." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1498 +#: ../src/guestfs.pod:1479 msgid "guestfs_get_error_handler" msgstr "guestfs_get_error_handler" #. type: verbatim -#: ../src/guestfs.pod:1500 +#: ../src/guestfs.pod:1481 #, no-wrap msgid "" " guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n" @@ -40882,17 +40857,17 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1503 +#: ../src/guestfs.pod:1484 msgid "Returns the current error handler callback." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1505 +#: ../src/guestfs.pod:1486 msgid "guestfs_set_out_of_memory_handler" msgstr "guestfs_set_out_of_memory_handler" #. type: verbatim -#: ../src/guestfs.pod:1507 +#: ../src/guestfs.pod:1488 #, no-wrap msgid "" " typedef void (*guestfs_abort_cb) (void);\n" @@ -40902,30 +40877,30 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1511 +#: ../src/guestfs.pod:1492 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:1514 +#: ../src/guestfs.pod:1495 msgid "The default is to call L<abort(3)>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1516 +#: ../src/guestfs.pod:1497 msgid "" "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1519 +#: ../src/guestfs.pod:1500 msgid "guestfs_get_out_of_memory_handler" msgstr "guestfs_get_out_of_memory_handler" #. type: verbatim -#: ../src/guestfs.pod:1521 +#: ../src/guestfs.pod:1502 #, no-wrap msgid "" " guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n" @@ -40935,37 +40910,37 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1523 +#: ../src/guestfs.pod:1504 msgid "This returns the current out of memory handler." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1525 +#: ../src/guestfs.pod:1506 msgid "API CALLS" msgstr "ВИКЛИКИ API" #. type: =head1 -#: ../src/guestfs.pod:1529 +#: ../src/guestfs.pod:1510 msgid "STRUCTURES" msgstr "СТРУКТУРИ" #. type: textblock -#: ../src/guestfs.pod:1531 +#: ../src/guestfs.pod:1512 msgid "@STRUCTS@" msgstr "@STRUCTS@" #. type: =head1 -#: ../src/guestfs.pod:1533 +#: ../src/guestfs.pod:1514 msgid "AVAILABILITY" msgstr "ДОСТУПНІСТЬ" #. type: =head2 -#: ../src/guestfs.pod:1535 +#: ../src/guestfs.pod:1516 msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE" msgstr "ГРУПИ ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ У ОБРАЗІ ОСНОВНОЇ СИСТЕМИ" #. type: textblock -#: ../src/guestfs.pod:1537 +#: ../src/guestfs.pod:1518 msgid "" "Using L</guestfs_available> you can test availability of the following " "groups of functions. This test queries the appliance to see if the " @@ -40973,17 +40948,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1542 +#: ../src/guestfs.pod:1523 msgid "@AVAILABILITY@" msgstr "@AVAILABILITY@" #. type: =head2 -#: ../src/guestfs.pod:1544 +#: ../src/guestfs.pod:1525 msgid "GUESTFISH supported COMMAND" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1546 +#: ../src/guestfs.pod:1527 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 " @@ -40991,19 +40966,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1551 +#: ../src/guestfs.pod:1532 msgid "SINGLE CALLS AT COMPILE TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1553 +#: ../src/guestfs.pod:1534 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:1556 +#: ../src/guestfs.pod:1537 #, no-wrap msgid "" " #define LIBGUESTFS_HAVE_DD 1\n" @@ -41013,12 +40988,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1558 +#: ../src/guestfs.pod:1539 msgid "if L</guestfs_dd> is available." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1560 +#: ../src/guestfs.pod:1541 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 " @@ -41026,7 +41001,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1565 +#: ../src/guestfs.pod:1546 #, no-wrap msgid "" " AC_CHECK_LIB([guestfs],[guestfs_create])\n" @@ -41038,19 +41013,19 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1568 +#: ../src/guestfs.pod:1549 msgid "" "which would result in C<HAVE_GUESTFS_DD> being either defined or not defined " "in your program." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1571 +#: ../src/guestfs.pod:1552 msgid "SINGLE CALLS AT RUN TIME" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1573 +#: ../src/guestfs.pod:1554 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 " @@ -41060,7 +41035,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1580 +#: ../src/guestfs.pod:1561 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 " @@ -41068,7 +41043,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1584 +#: ../src/guestfs.pod:1565 #, no-wrap msgid "" " #include <stdio.h>\n" @@ -41086,7 +41061,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:1590 +#: ../src/guestfs.pod:1571 #, no-wrap msgid "" " main ()\n" @@ -41104,7 +41079,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:1596 +#: ../src/guestfs.pod:1577 #, no-wrap msgid "" " /* Test if the function guestfs_dd is really available. */\n" @@ -41119,7 +41094,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1605 +#: ../src/guestfs.pod:1586 #, no-wrap msgid "" " if (!has_function)\n" @@ -41138,7 +41113,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1618 +#: ../src/guestfs.pod:1599 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 " @@ -41146,7 +41121,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1623 +#: ../src/guestfs.pod:1604 #, no-wrap msgid "" " Requires: libguestfs >= 1.0.80\n" @@ -41154,12 +41129,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:1625 +#: ../src/guestfs.pod:1606 msgid "CALLS WITH OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1627 +#: ../src/guestfs.pod:1608 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 " @@ -41167,7 +41142,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1632 +#: ../src/guestfs.pod:1613 #, no-wrap msgid "" " int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n" @@ -41177,14 +41152,14 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1634 +#: ../src/guestfs.pod:1615 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:1637 +#: ../src/guestfs.pod:1618 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename, -1);\n" @@ -41194,12 +41169,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1639 +#: ../src/guestfs.pod:1620 msgid "With a single optional argument:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1641 +#: ../src/guestfs.pod:1622 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -41213,12 +41188,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1645 +#: ../src/guestfs.pod:1626 msgid "With two:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1647 +#: ../src/guestfs.pod:1628 #, no-wrap msgid "" " guestfs_add_drive_opts (g, filename,\n" @@ -41234,19 +41209,19 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1652 +#: ../src/guestfs.pod:1633 msgid "" "and so forth. Don't forget the terminating C<-1> otherwise Bad Things will " "happen!" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1655 +#: ../src/guestfs.pod:1636 msgid "USING va_list FOR OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1657 +#: ../src/guestfs.pod:1638 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 " @@ -41254,7 +41229,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1661 +#: ../src/guestfs.pod:1642 #, no-wrap msgid "" " int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n" @@ -41266,12 +41241,12 @@ msgstr "" "\n" #. type: =head2 -#: ../src/guestfs.pod:1664 +#: ../src/guestfs.pod:1645 msgid "CONSTRUCTING OPTIONAL ARGUMENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1666 +#: ../src/guestfs.pod:1647 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 " @@ -41281,7 +41256,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1672 +#: ../src/guestfs.pod:1653 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv {\n" @@ -41305,12 +41280,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1681 +#: ../src/guestfs.pod:1662 msgid "You could call it like this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1683 +#: ../src/guestfs.pod:1664 #, no-wrap msgid "" " struct guestfs_add_drive_opts_argv optargs = {\n" @@ -41330,7 +41305,7 @@ msgstr "" " \n" #. type: verbatim -#: ../src/guestfs.pod:1690 +#: ../src/guestfs.pod:1671 #, no-wrap msgid "" " guestfs_add_drive_opts_argv (g, filename, &optargs);\n" @@ -41340,29 +41315,29 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:1698 +#: ../src/guestfs.pod:1679 msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1703 +#: ../src/guestfs.pod:1684 msgid "You do not need to fill in all fields of the structure." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1707 +#: ../src/guestfs.pod:1688 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:1712 +#: ../src/guestfs.pod:1693 msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1714 +#: ../src/guestfs.pod:1695 msgid "" "In other languages, optional arguments are expressed in the way that is " "natural for that language. We refer you to the language-specific " @@ -41370,17 +41345,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1718 +#: ../src/guestfs.pod:1699 msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:1720 +#: ../src/guestfs.pod:1701 msgid "SETTING CALLBACKS TO HANDLE EVENTS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1722 +#: ../src/guestfs.pod:1703 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 " @@ -41392,7 +41367,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1731 +#: ../src/guestfs.pod:1712 msgid "" "Handles generate events when certain things happen, such as log messages " "being generated, progress messages during long-running operations, or the " @@ -41404,7 +41379,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1739 +#: ../src/guestfs.pod:1720 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 " @@ -41413,31 +41388,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1744 +#: ../src/guestfs.pod:1725 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:1748 +#: ../src/guestfs.pod:1729 msgid "CLASSES OF EVENTS" msgstr "" #. type: =item -#: ../src/guestfs.pod:1752 +#: ../src/guestfs.pod:1733 msgid "GUESTFS_EVENT_CLOSE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1755 +#: ../src/guestfs.pod:1736 msgid "" "The callback function will be called while the handle is being closed " "(synchronously from L</guestfs_close>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1758 +#: ../src/guestfs.pod:1739 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 " @@ -41448,19 +41423,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1765 +#: ../src/guestfs.pod:1746 msgid "" "If no callback is registered: the handle is closed without any callback " "being invoked." msgstr "" #. type: =item -#: ../src/guestfs.pod:1768 +#: ../src/guestfs.pod:1749 msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1771 +#: ../src/guestfs.pod:1752 msgid "" "The callback function will be called when the child process quits, either " "asynchronously or if killed by L</guestfs_kill_subprocess>. (This " @@ -41468,17 +41443,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1775 ../src/guestfs.pod:1784 ../src/guestfs.pod:1901 +#: ../src/guestfs.pod:1756 ../src/guestfs.pod:1765 ../src/guestfs.pod:1882 msgid "If no callback is registered: the event is ignored." msgstr "" #. type: =item -#: ../src/guestfs.pod:1777 +#: ../src/guestfs.pod:1758 msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1780 +#: ../src/guestfs.pod:1761 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 " @@ -41486,12 +41461,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1786 +#: ../src/guestfs.pod:1767 msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1789 +#: ../src/guestfs.pod:1770 msgid "" "Some long-running operations can generate progress messages. If this " "callback is registered, then it will be called each time a progress message " @@ -41501,14 +41476,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1795 +#: ../src/guestfs.pod:1776 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:1798 +#: ../src/guestfs.pod:1779 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 " @@ -41516,24 +41491,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1803 +#: ../src/guestfs.pod:1784 msgid "The only defined and stable parts of the API are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1809 +#: ../src/guestfs.pod:1790 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:1814 +#: ../src/guestfs.pod:1795 msgid "0 E<lt>= C<position> E<lt>= C<total>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1818 +#: ../src/guestfs.pod:1799 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 " @@ -41541,7 +41516,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1822 +#: ../src/guestfs.pod:1803 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 " @@ -41549,7 +41524,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1828 +#: ../src/guestfs.pod:1809 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 " @@ -41558,7 +41533,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1833 +#: ../src/guestfs.pod:1814 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 " @@ -41566,14 +41541,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1837 +#: ../src/guestfs.pod:1818 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:1842 +#: ../src/guestfs.pod:1823 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 " @@ -41582,31 +41557,31 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1848 +#: ../src/guestfs.pod:1829 msgid "If no callback is registered: progress messages are discarded." msgstr "" #. type: =item -#: ../src/guestfs.pod:1850 +#: ../src/guestfs.pod:1831 msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1853 +#: ../src/guestfs.pod:1834 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:1856 +#: ../src/guestfs.pod:1837 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:1859 ../src/guestfs.pod:1873 +#: ../src/guestfs.pod:1840 ../src/guestfs.pod:1854 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 " @@ -41614,63 +41589,63 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:1864 +#: ../src/guestfs.pod:1845 msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1867 +#: ../src/guestfs.pod:1848 msgid "" "The callback function is called whenever a log message is generated by the " "library part of libguestfs." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1870 +#: ../src/guestfs.pod:1851 msgid "" "If the verbose flag (L</guestfs_set_verbose>) is set then additional debug " "messages are generated." msgstr "" #. type: =item -#: ../src/guestfs.pod:1878 +#: ../src/guestfs.pod:1859 msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1881 +#: ../src/guestfs.pod:1862 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:1884 +#: ../src/guestfs.pod:1865 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: =item -#: ../src/guestfs.pod:1888 +#: ../src/guestfs.pod:1869 msgid "GUESTFS_EVENT_ENTER (payload type: function name)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1891 +#: ../src/guestfs.pod:1872 msgid "" "The callback function is called whenever a libguestfs function is entered." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1894 +#: ../src/guestfs.pod:1875 msgid "" "The payload is a string which contains the name of the function that we are " "entering (not including C<guestfs_> prefix)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1897 +#: ../src/guestfs.pod:1878 msgid "" "Note that libguestfs functions can call themselves, so you may see many " "events from a single call. A few libguestfs functions do not generate this " @@ -41678,12 +41653,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1905 +#: ../src/guestfs.pod:1886 msgid "guestfs_set_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1907 +#: ../src/guestfs.pod:1888 #, no-wrap msgid "" " int guestfs_set_event_callback (guestfs_h *g,\n" @@ -41695,14 +41670,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1913 +#: ../src/guestfs.pod:1894 msgid "" "This function registers a callback (C<cb>) for all event classes in the " "C<event_bitmask>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1916 +#: ../src/guestfs.pod:1897 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>. " @@ -41711,40 +41686,40 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1922 +#: ../src/guestfs.pod:1903 msgid "C<flags> should always be passed as 0." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1924 +#: ../src/guestfs.pod:1905 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:1927 +#: ../src/guestfs.pod:1908 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:1930 +#: ../src/guestfs.pod:1911 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:1933 +#: ../src/guestfs.pod:1914 msgid "" "Callbacks remain in effect until they are deleted, or until the handle is " "closed." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1936 +#: ../src/guestfs.pod:1917 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 " @@ -41752,12 +41727,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1940 +#: ../src/guestfs.pod:1921 msgid "guestfs_delete_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1942 +#: ../src/guestfs.pod:1923 #, no-wrap msgid "" " void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n" @@ -41765,7 +41740,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1944 +#: ../src/guestfs.pod:1925 msgid "" "Delete a callback that was previously registered. C<event_handle> should be " "the integer that was returned by a previous call to " @@ -41773,12 +41748,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:1948 +#: ../src/guestfs.pod:1929 msgid "guestfs_event_callback" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1950 +#: ../src/guestfs.pod:1931 #, no-wrap msgid "" " typedef void (*guestfs_event_callback) (\n" @@ -41793,13 +41768,13 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1959 +#: ../src/guestfs.pod:1940 msgid "" "This is the type of the event callback function that you have to provide." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1962 +#: ../src/guestfs.pod:1943 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 " @@ -41807,7 +41782,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1966 +#: ../src/guestfs.pod:1947 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 " @@ -41816,7 +41791,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1971 +#: ../src/guestfs.pod:1952 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 " @@ -41824,19 +41799,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1975 +#: ../src/guestfs.pod:1956 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:1978 +#: ../src/guestfs.pod:1959 msgid "EXAMPLE: CAPTURING LOG MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1980 +#: ../src/guestfs.pod:1961 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 " @@ -41844,7 +41819,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1984 +#: ../src/guestfs.pod:1965 msgid "" "Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, " "C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error " @@ -41852,14 +41827,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1989 +#: ../src/guestfs.pod:1970 msgid "" "Programs have to set up a callback to capture the classes of events of " "interest:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:1992 +#: ../src/guestfs.pod:1973 #, no-wrap msgid "" " int eh =\n" @@ -41875,14 +41850,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2002 +#: ../src/guestfs.pod:1983 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:2005 +#: ../src/guestfs.pod:1986 #, no-wrap msgid "" " static void\n" @@ -41903,12 +41878,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2020 +#: ../src/guestfs.pod:2001 msgid "CANCELLING LONG TRANSFERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2022 +#: ../src/guestfs.pod:2003 msgid "" "Some operations can be cancelled by the caller while they are in progress. " "Currently only operations that involve uploading or downloading data can be " @@ -41917,12 +41892,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2027 +#: ../src/guestfs.pod:2008 msgid "guestfs_user_cancel" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2029 +#: ../src/guestfs.pod:2010 #, no-wrap msgid "" " void guestfs_user_cancel (guestfs_h *g);\n" @@ -41930,13 +41905,13 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2031 +#: ../src/guestfs.pod:2012 msgid "" "C<guestfs_user_cancel> cancels the current upload or download operation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2034 +#: ../src/guestfs.pod:2015 msgid "" "Unlike most other libguestfs calls, this function is signal safe and thread " "safe. You can call it from a signal handler or from another thread, without " @@ -41944,7 +41919,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2038 +#: ../src/guestfs.pod:2019 msgid "" "The transfer that was in progress (if there is one) will stop shortly " "afterwards, and will return an error. The errno (see L</" @@ -41953,7 +41928,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2044 +#: ../src/guestfs.pod:2025 msgid "" "No cleanup is performed: for example, if a file was being uploaded then " "after cancellation there may be a partially uploaded file. It is the " @@ -41961,12 +41936,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2048 +#: ../src/guestfs.pod:2029 msgid "There are two common places that you might call C<guestfs_user_cancel>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2050 +#: ../src/guestfs.pod:2031 msgid "" "In an interactive text-based program, you might call it from a C<SIGINT> " "signal handler so that pressing C<^C> cancels the current operation. (You " @@ -41975,19 +41950,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2055 +#: ../src/guestfs.pod:2036 msgid "" "In a graphical program, when the main thread is displaying a progress bar " "with a cancel button, wire up the cancel button to call this function." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2059 +#: ../src/guestfs.pod:2040 msgid "PRIVATE DATA AREA" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2061 +#: ../src/guestfs.pod:2042 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 " @@ -41995,12 +41970,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2066 +#: ../src/guestfs.pod:2047 msgid "To attach a named piece of data, use the following call:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2068 +#: ../src/guestfs.pod:2049 #, no-wrap msgid "" " void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n" @@ -42010,7 +41985,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:2070 +#: ../src/guestfs.pod:2051 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 key is " @@ -42018,7 +41993,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2074 +#: ../src/guestfs.pod:2055 msgid "" "You can use any C<key> you want, but your key should I<not> start with an " "underscore character. Keys beginning with an underscore character are " @@ -42028,12 +42003,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2080 +#: ../src/guestfs.pod:2061 msgid "To retrieve the pointer, use:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2082 +#: ../src/guestfs.pod:2063 #, no-wrap msgid "" " void *guestfs_get_private (guestfs_h *g, const char *key);\n" @@ -42043,7 +42018,7 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:2084 +#: ../src/guestfs.pod:2065 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 " @@ -42051,7 +42026,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2088 +#: ../src/guestfs.pod:2069 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 " @@ -42062,12 +42037,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2095 +#: ../src/guestfs.pod:2076 msgid "To walk over all entries, use these two functions:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2097 +#: ../src/guestfs.pod:2078 #, no-wrap msgid "" " void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n" @@ -42075,7 +42050,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2099 +#: ../src/guestfs.pod:2080 #, no-wrap msgid "" " void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n" @@ -42083,7 +42058,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2101 +#: ../src/guestfs.pod:2082 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 " @@ -42093,7 +42068,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2107 +#: ../src/guestfs.pod:2088 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 " @@ -42101,18 +42076,18 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2111 +#: ../src/guestfs.pod:2092 msgid "Notes about walking over entries:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2117 +#: ../src/guestfs.pod:2098 msgid "" "You must not call C<guestfs_set_private> while walking over the entries." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2122 +#: ../src/guestfs.pod:2103 msgid "" "The handle maintains an internal iterator which is reset when you call " "C<guestfs_first_private>. This internal iterator is invalidated when you " @@ -42120,12 +42095,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2128 +#: ../src/guestfs.pod:2109 msgid "If you have set the data pointer associated with a key to C<NULL>, ie:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2130 +#: ../src/guestfs.pod:2111 #, no-wrap msgid "" " guestfs_set_private (g, key, NULL);\n" @@ -42133,26 +42108,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2132 +#: ../src/guestfs.pod:2113 msgid "then that C<key> is not returned when walking." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2136 +#: ../src/guestfs.pod:2117 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:2142 +#: ../src/guestfs.pod:2123 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:2145 +#: ../src/guestfs.pod:2126 #, no-wrap msgid "" " const char *key;\n" @@ -42166,14 +42141,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2153 +#: ../src/guestfs.pod:2134 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:2156 +#: ../src/guestfs.pod:2137 #, no-wrap msgid "" " const char *key;\n" @@ -42188,7 +42163,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2165 +#: ../src/guestfs.pod:2146 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 " @@ -42196,7 +42171,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2169 +#: ../src/guestfs.pod:2150 #, no-wrap msgid "" " const char *key;\n" @@ -42218,7 +42193,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2185 +#: ../src/guestfs.pod:2166 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 " @@ -42227,12 +42202,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2190 +#: ../src/guestfs.pod:2171 msgid "SYSTEMTAP" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2192 +#: ../src/guestfs.pod:2173 msgid "" "The libguestfs C library can be probed using systemtap or DTrace. This is " "true of any library, not just libguestfs. However libguestfs also contains " @@ -42240,12 +42215,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2196 +#: ../src/guestfs.pod:2177 msgid "You can list all the static markers by doing:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2198 +#: ../src/guestfs.pod:2179 #, no-wrap msgid "" " stap -l 'process(\"/usr/lib*/libguestfs.so.0\")\n" @@ -42254,26 +42229,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2201 +#: ../src/guestfs.pod:2182 msgid "" "B<Note:> These static markers are I<not> part of the stable API and may " "change in future versions." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2204 +#: ../src/guestfs.pod:2185 msgid "SYSTEMTAP SCRIPT EXAMPLE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2206 +#: ../src/guestfs.pod:2187 msgid "" "This script contains examples of displaying both the static markers and some " "ordinary C entry points:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2209 +#: ../src/guestfs.pod:2190 #, no-wrap msgid "" " global last;\n" @@ -42281,7 +42256,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2211 +#: ../src/guestfs.pod:2192 #, no-wrap msgid "" " function display_time () {\n" @@ -42294,7 +42269,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2218 +#: ../src/guestfs.pod:2199 #, no-wrap msgid "" " printf (\"%d (+%d):\", now, delta);\n" @@ -42303,7 +42278,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2221 +#: ../src/guestfs.pod:2202 #, no-wrap msgid "" " probe begin {\n" @@ -42314,7 +42289,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2226 +#: ../src/guestfs.pod:2207 #, no-wrap msgid "" " /* Display all calls to static markers. */\n" @@ -42327,7 +42302,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2233 +#: ../src/guestfs.pod:2214 #, no-wrap msgid "" " /* Display all calls to guestfs_mkfs* functions. */\n" @@ -42340,7 +42315,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2240 +#: ../src/guestfs.pod:2221 msgid "" "The script above can be saved to C<test.stap> and run using the L<stap(1)> " "program. Note that you either have to be root, or you have to add yourself " @@ -42349,7 +42324,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2245 +#: ../src/guestfs.pod:2226 #, no-wrap msgid "" " # stap /tmp/test.stap\n" @@ -42358,17 +42333,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2248 +#: ../src/guestfs.pod:2229 msgid "In another terminal, run a guestfish command such as this:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2252 +#: ../src/guestfs.pod:2233 msgid "In the first terminal, stap trace output similar to this is shown:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2254 +#: ../src/guestfs.pod:2235 #, no-wrap msgid "" " 1318248056692655 (+0):\tlaunch_start\n" @@ -42381,12 +42356,12 @@ msgid "" msgstr "" #. type: =end -#: ../src/guestfs.pod:2261 ../src/guestfs.pod:2266 +#: ../src/guestfs.pod:2242 ../src/guestfs.pod:2247 msgid "html" msgstr "html" #. type: textblock -#: ../src/guestfs.pod:2263 +#: ../src/guestfs.pod:2244 msgid "" "<!-- old anchor for the next section --> <a name=" "\"state_machine_and_low_level_event_api\"/>" @@ -42395,12 +42370,12 @@ msgstr "" "\"state_machine_and_low_level_event_api\"/>" #. type: =head1 -#: ../src/guestfs.pod:2268 +#: ../src/guestfs.pod:2249 msgid "ARCHITECTURE" msgstr "АРХІТЕКТУРА" #. type: textblock -#: ../src/guestfs.pod:2270 +#: ../src/guestfs.pod:2251 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 " @@ -42408,7 +42383,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2274 +#: ../src/guestfs.pod:2255 #, no-wrap msgid "" " ___________________\n" @@ -42434,14 +42409,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2294 +#: ../src/guestfs.pod:2275 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:2297 +#: ../src/guestfs.pod:2278 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 " @@ -42453,7 +42428,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2306 +#: ../src/guestfs.pod:2287 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 " @@ -42464,17 +42439,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2313 +#: ../src/guestfs.pod:2294 msgid "STATE MACHINE" msgstr "СКІНЧЕННИЙ АВТОМАТ" #. type: textblock -#: ../src/guestfs.pod:2315 +#: ../src/guestfs.pod:2296 msgid "libguestfs uses a state machine to model the child process:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2317 +#: ../src/guestfs.pod:2298 #, no-wrap msgid "" " |\n" @@ -42502,7 +42477,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2339 +#: ../src/guestfs.pod:2320 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), " @@ -42511,7 +42486,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2344 +#: ../src/guestfs.pod:2325 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 " @@ -42519,14 +42494,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2348 +#: ../src/guestfs.pod:2329 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:2351 +#: ../src/guestfs.pod:2332 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 " @@ -42535,7 +42510,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2357 +#: ../src/guestfs.pod:2338 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. " @@ -42545,7 +42520,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2363 +#: ../src/guestfs.pod:2344 msgid "" "Finally, the child process sends asynchronous messages back to the main " "program, such as kernel log messages. You can register a callback to " @@ -42553,17 +42528,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2367 +#: ../src/guestfs.pod:2348 msgid "INTERNALS" msgstr "ВНУТРІШНІ ПРИНЦИПИ РОБОТИ" #. type: =head2 -#: ../src/guestfs.pod:2369 +#: ../src/guestfs.pod:2350 msgid "APPLIANCE BOOT PROCESS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2371 +#: ../src/guestfs.pod:2352 msgid "" "This process has evolved and continues to evolve. The description here " "corresponds only to the current version of libguestfs and is provided for " @@ -42571,55 +42546,55 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2375 +#: ../src/guestfs.pod:2356 msgid "" "In order to follow the stages involved below, enable libguestfs debugging " "(set the environment variable C<LIBGUESTFS_DEBUG=1>)." msgstr "" #. type: =item -#: ../src/guestfs.pod:2380 +#: ../src/guestfs.pod:2361 msgid "Create the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2382 +#: ../src/guestfs.pod:2363 msgid "" "C<febootstrap-supermin-helper> is invoked to create the kernel, a small " "initrd and the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2385 +#: ../src/guestfs.pod:2366 msgid "" "The appliance is cached in C</var/tmp/.guestfs-E<lt>UIDE<gt>> (or in another " "directory if C<TMPDIR> is set)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2388 +#: ../src/guestfs.pod:2369 msgid "" "For a complete description of how the appliance is created and cached, read " "the L<febootstrap(8)> and L<febootstrap-supermin-helper(8)> man pages." msgstr "" #. type: =item -#: ../src/guestfs.pod:2392 +#: ../src/guestfs.pod:2373 msgid "Start qemu and boot the kernel" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2394 +#: ../src/guestfs.pod:2375 msgid "qemu is invoked to boot the kernel." msgstr "" #. type: =item -#: ../src/guestfs.pod:2396 +#: ../src/guestfs.pod:2377 msgid "Run the initrd" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2398 +#: ../src/guestfs.pod:2379 msgid "" "C<febootstrap-supermin-helper> builds a small initrd. The initrd is not the " "appliance. The purpose of the initrd is to load enough kernel modules in " @@ -42627,21 +42602,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2402 +#: ../src/guestfs.pod:2383 msgid "" "The initrd is a cpio archive called C</var/tmp/.guestfs-E<lt>UIDE<gt>/" "initrd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2405 +#: ../src/guestfs.pod:2386 msgid "" "When the initrd has started you will see messages showing that kernel " "modules are being loaded, similar to this:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2408 +#: ../src/guestfs.pod:2389 #, no-wrap msgid "" " febootstrap: ext2 mini initrd starting up\n" @@ -42652,12 +42627,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2413 +#: ../src/guestfs.pod:2394 msgid "Find and mount the appliance device" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2415 +#: ../src/guestfs.pod:2396 msgid "" "The appliance is a sparse file containing an ext2 filesystem which contains " "a familiar (although reduced in size) Linux operating system. It would " @@ -42665,33 +42640,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2419 +#: ../src/guestfs.pod:2400 msgid "" "The regular disks being inspected by libguestfs are the first devices " "exposed by qemu (eg. as C</dev/vda>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2422 +#: ../src/guestfs.pod:2403 msgid "" "The last disk added to qemu is the appliance itself (eg. C</dev/vdb> if " "there was only one regular disk)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2425 +#: ../src/guestfs.pod:2406 msgid "" "Thus the final job of the initrd is to locate the appliance disk, mount it, " "and switch root into the appliance, and run C</init> from the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2429 +#: ../src/guestfs.pod:2410 msgid "If this works successfully you will see messages such as:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2431 +#: ../src/guestfs.pod:2412 #, no-wrap msgid "" " febootstrap: picked /sys/block/vdb/dev as root device\n" @@ -42703,19 +42678,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2437 +#: ../src/guestfs.pod:2418 msgid "" "Note that C<Starting /init script ...> indicates that the appliance's init " "script is now running." msgstr "" #. type: =item -#: ../src/guestfs.pod:2440 +#: ../src/guestfs.pod:2421 msgid "Initialize the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2442 +#: ../src/guestfs.pod:2423 msgid "" "The appliance itself now initializes itself. This involves starting certain " "processes like C<udev>, possibly printing some debug information, and " @@ -42723,19 +42698,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2446 +#: ../src/guestfs.pod:2427 msgid "The daemon" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2448 +#: ../src/guestfs.pod:2429 msgid "" "Finally the daemon (C<guestfsd>) runs inside the appliance. If it runs you " "should see:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2451 +#: ../src/guestfs.pod:2432 #, no-wrap msgid "" " verbose daemon enabled\n" @@ -42743,14 +42718,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2453 +#: ../src/guestfs.pod:2434 msgid "" "The daemon expects to see a named virtio-serial port exposed by qemu and " "connected on the other end to the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2456 +#: ../src/guestfs.pod:2437 msgid "" "The daemon connects to this port (and hence to the library) and sends a four " "byte message C<GUESTFS_LAUNCH_FLAG>, which initiates the communication " @@ -42758,19 +42733,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2462 +#: ../src/guestfs.pod:2443 msgid "COMMUNICATION PROTOCOL" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2464 +#: ../src/guestfs.pod:2445 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:2467 +#: ../src/guestfs.pod:2448 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 " @@ -42778,14 +42753,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2471 +#: ../src/guestfs.pod:2452 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:2474 +#: ../src/guestfs.pod:2455 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 " @@ -42795,17 +42770,17 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2481 +#: ../src/guestfs.pod:2462 msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2483 +#: ../src/guestfs.pod:2464 msgid "For ordinary functions, the request message is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2485 +#: ../src/guestfs.pod:2466 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -42816,7 +42791,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2490 +#: ../src/guestfs.pod:2471 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 " @@ -42825,21 +42800,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2496 +#: ../src/guestfs.pod:2477 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:2499 +#: ../src/guestfs.pod:2480 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:2503 +#: ../src/guestfs.pod:2484 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 " @@ -42851,12 +42826,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2511 +#: ../src/guestfs.pod:2492 msgid "The reply message for ordinary functions is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2513 +#: ../src/guestfs.pod:2494 #, no-wrap msgid "" " total length (header + ret,\n" @@ -42867,27 +42842,27 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2518 +#: ../src/guestfs.pod:2499 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:2521 +#: ../src/guestfs.pod:2502 msgid "" "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2524 +#: ../src/guestfs.pod:2505 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:2527 +#: ../src/guestfs.pod:2508 #, no-wrap msgid "" " total length (header + error,\n" @@ -42898,19 +42873,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2532 +#: ../src/guestfs.pod:2513 msgid "" "The C<guestfs_message_error> structure contains the error message as a " "string." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2535 +#: ../src/guestfs.pod:2516 msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2537 +#: ../src/guestfs.pod:2518 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 " @@ -42918,7 +42893,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2541 +#: ../src/guestfs.pod:2522 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -42932,12 +42907,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2549 +#: ../src/guestfs.pod:2530 msgid "The \"sequence of chunks\" is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2551 +#: ../src/guestfs.pod:2532 #, no-wrap msgid "" " length of chunk (not including length word itself)\n" @@ -42951,7 +42926,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2559 +#: ../src/guestfs.pod:2540 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 " @@ -42959,7 +42934,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2563 +#: ../src/guestfs.pod:2544 msgid "" "At time of writing there are no functions that have more than one FileIn " "parameter. However this is (theoretically) supported, by sending the " @@ -42968,7 +42943,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2568 +#: ../src/guestfs.pod:2549 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 " @@ -42977,7 +42952,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2574 +#: ../src/guestfs.pod:2555 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 " @@ -42989,7 +42964,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2583 +#: ../src/guestfs.pod:2564 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 " @@ -42999,19 +42974,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2589 +#: ../src/guestfs.pod:2570 msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2591 +#: ../src/guestfs.pod:2572 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:2594 +#: ../src/guestfs.pod:2575 #, no-wrap msgid "" " total length (header + ret,\n" @@ -43025,12 +43000,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2602 +#: ../src/guestfs.pod:2583 msgid "INITIAL MESSAGE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2604 +#: ../src/guestfs.pod:2585 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</" @@ -43038,12 +43013,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2608 +#: ../src/guestfs.pod:2589 msgid "PROGRESS NOTIFICATION MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2610 +#: ../src/guestfs.pod:2591 msgid "" "The daemon may send progress notification messages at any time. These are " "distinguished by the normal length word being replaced by " @@ -43051,7 +43026,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2614 +#: ../src/guestfs.pod:2595 msgid "" "The library turns them into progress callbacks (see L</" "GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards them " @@ -43059,7 +43034,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2618 +#: ../src/guestfs.pod:2599 msgid "" "The daemon self-limits the frequency of progress messages it sends (see " "C<daemon/proto.c:notify_progress>). Not all calls generate progress " @@ -43067,12 +43042,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2622 +#: ../src/guestfs.pod:2603 msgid "LIBGUESTFS VERSION NUMBERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2624 +#: ../src/guestfs.pod:2605 msgid "" "Since April 2010, libguestfs has started to make separate development and " "stable releases, along with corresponding branches in our git repository. " @@ -43080,7 +43055,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2629 +#: ../src/guestfs.pod:2610 #, no-wrap msgid "" " even numbers for stable: 1.2.x, 1.4.x, ...\n" @@ -43097,12 +43072,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2640 +#: ../src/guestfs.pod:2621 msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2642 +#: ../src/guestfs.pod:2623 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 " @@ -43112,26 +43087,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2648 +#: ../src/guestfs.pod:2629 msgid "Our criteria for backporting changes are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2654 +#: ../src/guestfs.pod:2635 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:2660 +#: ../src/guestfs.pod:2641 msgid "" "Bug fixes which are not controversial, fix obvious problems, and have been " "well tested are backported." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2665 +#: ../src/guestfs.pod:2646 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 " @@ -43139,7 +43114,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2671 +#: ../src/guestfs.pod:2652 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 " @@ -43147,7 +43122,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2677 +#: ../src/guestfs.pod:2658 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 " @@ -43158,17 +43133,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2685 +#: ../src/guestfs.pod:2666 msgid "EXTENDING LIBGUESTFS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2687 +#: ../src/guestfs.pod:2668 msgid "ADDING A NEW API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2689 +#: ../src/guestfs.pod:2670 msgid "" "Large amounts of boilerplate code in libguestfs (RPC, bindings, " "documentation) are generated, and this makes it easy to extend the " @@ -43176,19 +43151,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2693 +#: ../src/guestfs.pod:2674 msgid "To add a new API action there are two changes:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2699 +#: ../src/guestfs.pod:2680 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:2702 +#: ../src/guestfs.pod:2683 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 " @@ -43199,7 +43174,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2710 +#: ../src/guestfs.pod:2691 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 " @@ -43209,7 +43184,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2716 +#: ../src/guestfs.pod:2697 msgid "" "For library-only actions of the second type, add to the " "C<non_daemon_functions> list. Since these functions are serviced by the " @@ -43219,36 +43194,36 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2724 +#: ../src/guestfs.pod:2705 msgid "Implement the action (in C):" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2726 +#: ../src/guestfs.pod:2707 msgid "" "For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the " "C<daemon/> directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2729 +#: ../src/guestfs.pod:2710 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:2732 +#: ../src/guestfs.pod:2713 msgid "In either case, use another function as an example of what to do." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2736 +#: ../src/guestfs.pod:2717 msgid "After making these changes, use C<make> to compile." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2738 +#: ../src/guestfs.pod:2719 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 " @@ -43256,12 +43231,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2742 +#: ../src/guestfs.pod:2723 msgid "ADDING TESTS FOR AN API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2744 +#: ../src/guestfs.pod:2725 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/" @@ -43271,61 +43246,61 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2751 +#: ../src/guestfs.pod:2732 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:2754 +#: ../src/guestfs.pod:2735 msgid "The test environment has 4 block devices:" msgstr "" #. type: =item -#: ../src/guestfs.pod:2758 +#: ../src/guestfs.pod:2739 msgid "C</dev/sda> 500MB" msgstr "C</dev/sda> 500 МБ" #. type: textblock -#: ../src/guestfs.pod:2760 +#: ../src/guestfs.pod:2741 msgid "General block device for testing." msgstr "" #. type: =item -#: ../src/guestfs.pod:2762 +#: ../src/guestfs.pod:2743 msgid "C</dev/sdb> 50MB" msgstr "C</dev/sdb> 50 МБ" #. type: textblock -#: ../src/guestfs.pod:2764 +#: ../src/guestfs.pod:2745 msgid "" "C</dev/sdb1> is an ext2 filesystem used for testing filesystem write " "operations." msgstr "" #. type: =item -#: ../src/guestfs.pod:2767 +#: ../src/guestfs.pod:2748 msgid "C</dev/sdc> 10MB" msgstr "C</dev/sdc> 10 МБ" #. type: textblock -#: ../src/guestfs.pod:2769 +#: ../src/guestfs.pod:2750 msgid "Used in a few tests where two block devices are needed." msgstr "" #. type: =item -#: ../src/guestfs.pod:2771 +#: ../src/guestfs.pod:2752 msgid "C</dev/sdd>" msgstr "C</dev/sdd>" #. type: textblock -#: ../src/guestfs.pod:2773 +#: ../src/guestfs.pod:2754 msgid "ISO with fixed content (see C<images/test.iso>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2777 +#: ../src/guestfs.pod:2758 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 " @@ -43333,7 +43308,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2781 +#: ../src/guestfs.pod:2762 msgid "" "Each test starts with an initial scenario, selected using one of the " "C<Init*> expressions, described in C<generator/generator_types.ml>. These " @@ -43343,7 +43318,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2787 +#: ../src/guestfs.pod:2768 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 " @@ -43353,14 +43328,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2793 +#: ../src/guestfs.pod:2774 msgid "" "In addition, packagers can skip individual tests by setting environment " "variables before running C<make check>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2796 +#: ../src/guestfs.pod:2777 #, no-wrap msgid "" " SKIP_TEST_<CMD>_<NUM>=1\n" @@ -43368,12 +43343,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2798 +#: ../src/guestfs.pod:2779 msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2802 +#: ../src/guestfs.pod:2783 #, no-wrap msgid "" " SKIP_TEST_<CMD>=1\n" @@ -43381,17 +43356,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2804 +#: ../src/guestfs.pod:2785 msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2806 +#: ../src/guestfs.pod:2787 msgid "Packagers can run only certain tests by setting for example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2808 +#: ../src/guestfs.pod:2789 #, no-wrap msgid "" " TEST_ONLY=\"vfs_type zerofree\"\n" @@ -43399,29 +43374,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2810 +#: ../src/guestfs.pod:2791 msgid "" "See C<tests/c-api/tests.c> for more details of how these environment " "variables work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2813 +#: ../src/guestfs.pod:2794 msgid "DEBUGGING NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2815 +#: ../src/guestfs.pod:2796 msgid "Test new actions work before submitting them." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2817 +#: ../src/guestfs.pod:2798 msgid "You can use guestfish to try out new commands." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2819 +#: ../src/guestfs.pod:2800 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 " @@ -43429,12 +43404,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2823 +#: ../src/guestfs.pod:2804 msgid "FORMATTING CODE AND OTHER CONVENTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2825 +#: ../src/guestfs.pod:2806 msgid "" "Our C source code generally adheres to some basic code-formatting " "conventions. The existing code base is not totally consistent on this " @@ -43444,14 +43419,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2831 +#: ../src/guestfs.pod:2812 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:2834 +#: ../src/guestfs.pod:2815 #, no-wrap msgid "" " ;;; In libguestfs, indent with spaces everywhere (not TABs).\n" @@ -43467,7 +43442,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2844 +#: ../src/guestfs.pod:2825 #, no-wrap msgid "" " ;;; When editing C sources in libguestfs, use this style.\n" @@ -43485,12 +43460,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2856 +#: ../src/guestfs.pod:2837 msgid "Enable warnings when compiling (and fix any problems this finds):" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2859 +#: ../src/guestfs.pod:2840 #, no-wrap msgid "" " ./configure --enable-gcc-warnings\n" @@ -43500,12 +43475,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:2861 +#: ../src/guestfs.pod:2842 msgid "Useful targets are:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2863 +#: ../src/guestfs.pod:2844 #, no-wrap msgid "" " make syntax-check # checks the syntax of the C code\n" @@ -43514,43 +43489,43 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2866 +#: ../src/guestfs.pod:2847 msgid "DAEMON CUSTOM PRINTF FORMATTERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2868 +#: ../src/guestfs.pod:2849 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:2873 +#: ../src/guestfs.pod:2854 msgid "%Q" msgstr "%Q" #. type: textblock -#: ../src/guestfs.pod:2875 +#: ../src/guestfs.pod:2856 msgid "" "Simple shell quoted string. Any spaces or other shell characters are " "escaped for you." msgstr "" #. type: =item -#: ../src/guestfs.pod:2878 +#: ../src/guestfs.pod:2859 msgid "%R" msgstr "%R" #. type: textblock -#: ../src/guestfs.pod:2880 +#: ../src/guestfs.pod:2861 msgid "" "Same as C<%Q> except the string is treated as a path which is prefixed by " "the sysroot." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2887 +#: ../src/guestfs.pod:2868 #, no-wrap msgid "" " asprintf (&cmd, \"cat %R\", path);\n" @@ -43560,12 +43535,12 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:2889 +#: ../src/guestfs.pod:2870 msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2891 +#: ../src/guestfs.pod:2872 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 " @@ -43574,29 +43549,29 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2897 +#: ../src/guestfs.pod:2878 msgid "SUBMITTING YOUR NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2899 +#: ../src/guestfs.pod:2880 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:2903 +#: ../src/guestfs.pod:2884 msgid "INTERNATIONALIZATION (I18N) SUPPORT" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2905 +#: ../src/guestfs.pod:2886 msgid "We support i18n (gettext anyhow) in the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2907 +#: ../src/guestfs.pod:2888 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 " @@ -43605,114 +43580,114 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2913 +#: ../src/guestfs.pod:2894 msgid "" "Debugging messages are never translated, since they are intended for the " "programmers." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2916 +#: ../src/guestfs.pod:2897 msgid "SOURCE CODE SUBDIRECTORIES" msgstr "" #. type: =item -#: ../src/guestfs.pod:2920 +#: ../src/guestfs.pod:2901 msgid "C<align>" msgstr "C<align>" #. type: textblock -#: ../src/guestfs.pod:2922 +#: ../src/guestfs.pod:2903 msgid "L<virt-alignment-scan(1)> command and documentation." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2926 +#: ../src/guestfs.pod:2907 msgid "The libguestfs appliance, build scripts and so on." msgstr "" #. type: =item -#: ../src/guestfs.pod:2928 +#: ../src/guestfs.pod:2909 msgid "C<cat>" msgstr "C<cat>" #. type: textblock -#: ../src/guestfs.pod:2930 +#: ../src/guestfs.pod:2911 msgid "" "The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and " "documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2933 +#: ../src/guestfs.pod:2914 msgid "C<clone>" msgstr "C<clone>" #. type: textblock -#: ../src/guestfs.pod:2935 +#: ../src/guestfs.pod:2916 msgid "" "Tools for cloning virtual machines. Currently contains L<virt-sysprep(1)> " "command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2938 +#: ../src/guestfs.pod:2919 msgid "C<contrib>" msgstr "C<contrib>" #. type: textblock -#: ../src/guestfs.pod:2940 +#: ../src/guestfs.pod:2921 msgid "Outside contributions, experimental parts." msgstr "" #. type: =item -#: ../src/guestfs.pod:2942 +#: ../src/guestfs.pod:2923 msgid "C<daemon>" msgstr "C<daemon>" #. type: textblock -#: ../src/guestfs.pod:2944 +#: ../src/guestfs.pod:2925 msgid "" "The daemon that runs inside the libguestfs appliance and carries out actions." msgstr "" #. type: =item -#: ../src/guestfs.pod:2947 +#: ../src/guestfs.pod:2928 msgid "C<df>" msgstr "C<df>" #. type: textblock -#: ../src/guestfs.pod:2949 +#: ../src/guestfs.pod:2930 msgid "L<virt-df(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2951 +#: ../src/guestfs.pod:2932 msgid "C<edit>" msgstr "C<edit>" #. type: textblock -#: ../src/guestfs.pod:2953 +#: ../src/guestfs.pod:2934 msgid "L<virt-edit(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2955 +#: ../src/guestfs.pod:2936 msgid "C<examples>" msgstr "C<examples>" #. type: textblock -#: ../src/guestfs.pod:2957 +#: ../src/guestfs.pod:2938 msgid "C API example code." msgstr "Код прикладів використання програмного інтерфейсу мовою C." #. type: =item -#: ../src/guestfs.pod:2959 +#: ../src/guestfs.pod:2940 msgid "C<fish>" msgstr "C<fish>" #. type: textblock -#: ../src/guestfs.pod:2961 +#: ../src/guestfs.pod:2942 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)>, " @@ -43720,80 +43695,80 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2967 +#: ../src/guestfs.pod:2948 msgid "L<virt-format(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2969 +#: ../src/guestfs.pod:2950 msgid "C<fuse>" msgstr "C<fuse>" #. type: textblock -#: ../src/guestfs.pod:2971 +#: ../src/guestfs.pod:2952 msgid "" "L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:2973 +#: ../src/guestfs.pod:2954 msgid "C<generator>" msgstr "C<generator>" #. type: textblock -#: ../src/guestfs.pod:2975 +#: ../src/guestfs.pod:2956 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:2978 +#: ../src/guestfs.pod:2959 msgid "C<inspector>" msgstr "C<inspector>" #. type: textblock -#: ../src/guestfs.pod:2980 +#: ../src/guestfs.pod:2961 msgid "L<virt-inspector(1)>, the virtual machine image inspector." msgstr "" #. type: =item -#: ../src/guestfs.pod:2982 +#: ../src/guestfs.pod:2963 msgid "C<logo>" msgstr "C<logo>" #. type: textblock -#: ../src/guestfs.pod:2984 +#: ../src/guestfs.pod:2965 msgid "Logo used on the website. The fish is called Arthur by the way." msgstr "" #. type: =item -#: ../src/guestfs.pod:2986 +#: ../src/guestfs.pod:2967 msgid "C<m4>" msgstr "C<m4>" #. type: textblock -#: ../src/guestfs.pod:2988 +#: ../src/guestfs.pod:2969 msgid "M4 macros used by autoconf." msgstr "" #. type: =item -#: ../src/guestfs.pod:2990 +#: ../src/guestfs.pod:2971 msgid "C<po>" msgstr "C<po>" #. type: textblock -#: ../src/guestfs.pod:2992 +#: ../src/guestfs.pod:2973 msgid "Translations of simple gettext strings." msgstr "Переклади простих рядків gettext." #. type: =item -#: ../src/guestfs.pod:2994 +#: ../src/guestfs.pod:2975 msgid "C<po-docs>" msgstr "C<po-docs>" #. type: textblock -#: ../src/guestfs.pod:2996 +#: ../src/guestfs.pod:2977 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 " @@ -43801,140 +43776,140 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:3000 +#: ../src/guestfs.pod:2981 msgid "C<rescue>" msgstr "C<rescue>" #. type: textblock -#: ../src/guestfs.pod:3002 +#: ../src/guestfs.pod:2983 msgid "L<virt-rescue(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3004 +#: ../src/guestfs.pod:2985 msgid "C<resize>" msgstr "C<resize>" #. type: textblock -#: ../src/guestfs.pod:3006 +#: ../src/guestfs.pod:2987 msgid "L<virt-resize(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3008 +#: ../src/guestfs.pod:2989 msgid "C<sparsify>" msgstr "C<sparsify>" #. type: textblock -#: ../src/guestfs.pod:3010 +#: ../src/guestfs.pod:2991 msgid "L<virt-sparsify(1)> command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3012 +#: ../src/guestfs.pod:2993 msgid "C<src>" msgstr "C<src>" #. type: textblock -#: ../src/guestfs.pod:3014 +#: ../src/guestfs.pod:2995 msgid "Source code to the C library." msgstr "" #. type: =item -#: ../src/guestfs.pod:3016 +#: ../src/guestfs.pod:2997 msgid "C<test-tool>" msgstr "C<test-tool>" #. type: textblock -#: ../src/guestfs.pod:3018 +#: ../src/guestfs.pod:2999 msgid "" "Test tool for end users to test if their qemu/kernel combination will work " "with libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:3021 +#: ../src/guestfs.pod:3002 msgid "C<tests>" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3023 +#: ../src/guestfs.pod:3004 msgid "Tests." msgstr "" #. type: =item -#: ../src/guestfs.pod:3025 +#: ../src/guestfs.pod:3006 msgid "C<tools>" msgstr "C<tools>" #. type: textblock -#: ../src/guestfs.pod:3027 +#: ../src/guestfs.pod:3008 msgid "" "Command line tools written in Perl (L<virt-win-reg(1)> and many others)." msgstr "" #. type: =item -#: ../src/guestfs.pod:3029 +#: ../src/guestfs.pod:3010 msgid "C<csharp>" msgstr "C<csharp>" #. type: =item -#: ../src/guestfs.pod:3031 +#: ../src/guestfs.pod:3012 msgid "C<erlang>" msgstr "C<erlang>" #. type: =item -#: ../src/guestfs.pod:3033 +#: ../src/guestfs.pod:3014 msgid "C<gobject>" msgstr "" #. type: =item -#: ../src/guestfs.pod:3035 +#: ../src/guestfs.pod:3016 msgid "C<haskell>" msgstr "C<haskell>" #. type: =item -#: ../src/guestfs.pod:3037 +#: ../src/guestfs.pod:3018 msgid "C<java>" msgstr "C<java>" #. type: =item -#: ../src/guestfs.pod:3039 +#: ../src/guestfs.pod:3020 msgid "C<ocaml>" msgstr "C<ocaml>" #. type: =item -#: ../src/guestfs.pod:3041 +#: ../src/guestfs.pod:3022 msgid "C<php>" msgstr "C<php>" #. type: =item -#: ../src/guestfs.pod:3043 +#: ../src/guestfs.pod:3024 msgid "C<perl>" msgstr "C<perl>" #. type: =item -#: ../src/guestfs.pod:3045 +#: ../src/guestfs.pod:3026 msgid "C<python>" msgstr "C<python>" #. type: =item -#: ../src/guestfs.pod:3047 +#: ../src/guestfs.pod:3028 msgid "C<ruby>" msgstr "C<ruby>" #. type: textblock -#: ../src/guestfs.pod:3049 +#: ../src/guestfs.pod:3030 msgid "Language bindings." msgstr "Прив’язки до мов програмування." #. type: =head2 -#: ../src/guestfs.pod:3053 +#: ../src/guestfs.pod:3034 msgid "MAKING A STABLE RELEASE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3055 +#: ../src/guestfs.pod:3036 msgid "" "When we make a stable release, there are several steps documented here. See " "L</LIBGUESTFS VERSION NUMBERS> for general information about the stable " @@ -43942,33 +43917,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3063 +#: ../src/guestfs.pod:3044 msgid "" "Check C<make && make check> works on at least Fedora, Debian and Ubuntu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3068 +#: ../src/guestfs.pod:3049 msgid "Finalize RELEASE-NOTES." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3072 +#: ../src/guestfs.pod:3053 msgid "Update ROADMAP." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3076 +#: ../src/guestfs.pod:3057 msgid "Run C<src/api-support/update-from-tarballs.sh>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3080 +#: ../src/guestfs.pod:3061 msgid "Push and pull from Transifex." msgstr "Передавання даних на Transifex та отримання даних з Transifex." #. type: verbatim -#: ../src/guestfs.pod:3084 +#: ../src/guestfs.pod:3065 #, no-wrap msgid "" " tx push -s\n" @@ -43978,13 +43953,13 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:3086 +#: ../src/guestfs.pod:3067 msgid "to push the latest POT files to Transifex. Then run:" msgstr "" "щоб надіслати найсвіжіші файли POT на Transifex. Потім віддайте команду:" #. type: verbatim -#: ../src/guestfs.pod:3088 +#: ../src/guestfs.pod:3069 #, no-wrap msgid "" " ./tx-pull.sh\n" @@ -43994,24 +43969,24 @@ msgstr "" "\n" #. type: textblock -#: ../src/guestfs.pod:3090 +#: ../src/guestfs.pod:3071 msgid "which is a wrapper to pull the latest translated C<*.po> files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3094 +#: ../src/guestfs.pod:3075 msgid "" "Create new stable and development directories under L<http://libguestfs.org/" "download>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3099 +#: ../src/guestfs.pod:3080 msgid "Create the branch in git:" msgstr "Створення гілки у git:" #. type: verbatim -#: ../src/guestfs.pod:3101 +#: ../src/guestfs.pod:3082 #, no-wrap msgid "" " git tag -a 1.XX.0 -m \"Version 1.XX.0 (stable)\"\n" @@ -44027,17 +44002,17 @@ msgstr "" "\n" #. type: =head1 -#: ../src/guestfs.pod:3108 +#: ../src/guestfs.pod:3089 msgid "LIMITS" msgstr "ОБМЕЖЕННЯ" #. type: =head2 -#: ../src/guestfs.pod:3110 +#: ../src/guestfs.pod:3091 msgid "PROTOCOL LIMITS" msgstr "ОБМЕЖЕННЯ ПРОТОКОЛУ" #. type: textblock -#: ../src/guestfs.pod:3112 +#: ../src/guestfs.pod:3093 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 " @@ -44048,7 +44023,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3120 +#: ../src/guestfs.pod:3101 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 " @@ -44057,7 +44032,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3126 +#: ../src/guestfs.pod:3107 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> " @@ -44065,24 +44040,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3130 +#: ../src/guestfs.pod:3111 msgid "" "You might also consider mounting the disk image using our FUSE filesystem " "support (L<guestmount(1)>)." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3133 +#: ../src/guestfs.pod:3114 msgid "MAXIMUM NUMBER OF DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3135 +#: ../src/guestfs.pod:3116 msgid "When using virtio disks (the default) the current limit is B<25> disks." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3138 +#: ../src/guestfs.pod:3119 msgid "" "Virtio itself consumes 1 virtual PCI slot per disk, and PCI is limited to 31 " "slots. However febootstrap only understands disks with names C</dev/vda> " @@ -44091,14 +44066,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3143 +#: ../src/guestfs.pod:3124 msgid "" "We are working to substantially raise this limit in future versions but it " "requires complex changes to qemu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3146 +#: ../src/guestfs.pod:3127 msgid "" "In future versions of libguestfs it should also be possible to \"hot plug\" " "disks (add and remove disks after calling L</guestfs_launch>). This also " @@ -44106,41 +44081,41 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3150 +#: ../src/guestfs.pod:3131 msgid "MAXIMUM NUMBER OF PARTITIONS PER DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3152 +#: ../src/guestfs.pod:3133 msgid "Virtio limits the maximum number of partitions per disk to B<15>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3154 +#: ../src/guestfs.pod:3135 msgid "" "This is because it reserves 4 bits for the minor device number (thus C</dev/" "vda>, and C</dev/vda1> through C</dev/vda15>)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3157 +#: ../src/guestfs.pod:3138 msgid "" "If you attach a disk with more than 15 partitions, the extra partitions are " "ignored by libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3160 +#: ../src/guestfs.pod:3141 msgid "MAXIMUM SIZE OF A DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3162 +#: ../src/guestfs.pod:3143 msgid "Probably the limit is between 2**63-1 and 2**64-1 bytes." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3164 +#: ../src/guestfs.pod:3145 msgid "" "We have tested block devices up to 1 exabyte (2**60 or " "1,152,921,504,606,846,976 bytes) using sparse files backed by an XFS host " @@ -44148,7 +44123,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3168 +#: ../src/guestfs.pod:3149 msgid "" "Although libguestfs probably does not impose any limit, the underlying host " "storage will. If you store disk images on a host ext4 filesystem, then the " @@ -44158,19 +44133,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3174 +#: ../src/guestfs.pod:3155 msgid "" "For the hugest disk image files, we recommend using XFS on the host for " "storage." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3177 +#: ../src/guestfs.pod:3158 msgid "MAXIMUM SIZE OF A PARTITION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3179 +#: ../src/guestfs.pod:3160 msgid "" "The MBR (ie. classic MS-DOS) partitioning scheme uses 32 bit sector " "numbers. Assuming a 512 byte sector size, this means that MBR cannot " @@ -44178,7 +44153,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3183 +#: ../src/guestfs.pod:3164 msgid "" "It is recommended that you use GPT partitions on disks which are larger than " "this size. GPT uses 64 bit sector numbers and so can address partitions " @@ -44186,12 +44161,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3188 +#: ../src/guestfs.pod:3169 msgid "MAXIMUM SIZE OF A FILESYSTEM, FILES, DIRECTORIES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3190 +#: ../src/guestfs.pod:3171 msgid "" "This depends on the filesystem type. libguestfs itself does not impose any " "known limit. Consult Wikipedia or the filesystem documentation to find out " @@ -44199,12 +44174,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3194 +#: ../src/guestfs.pod:3175 msgid "MAXIMUM UPLOAD AND DOWNLOAD" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3196 +#: ../src/guestfs.pod:3177 msgid "" "The API functions L</guestfs_upload>, L</guestfs_download>, L</" "guestfs_tar_in>, L</guestfs_tar_out> and the like allow unlimited sized " @@ -44212,12 +44187,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3200 +#: ../src/guestfs.pod:3181 msgid "INSPECTION LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3202 +#: ../src/guestfs.pod:3183 msgid "" "The inspection code has several arbitrary limits on things like the size of " "Windows Registry hive it will read, and the length of product name. These " @@ -44227,33 +44202,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3228 +#: ../src/guestfs.pod:3209 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: textblock -#: ../src/guestfs.pod:3240 +#: ../src/guestfs.pod:3221 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: textblock -#: ../src/guestfs.pod:3249 +#: ../src/guestfs.pod:3230 msgid "See also L</QEMU WRAPPERS> above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3253 +#: ../src/guestfs.pod:3234 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: textblock -#: ../src/guestfs.pod:3271 +#: ../src/guestfs.pod:3252 msgid "" "L<guestfs-examples(3)>, L<guestfs-erlang(3)>, L<guestfs-java(3)>, L<guestfs-" "ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, L<guestfs-ruby(3)>, " @@ -44269,27 +44244,27 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3310 +#: ../src/guestfs.pod:3291 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:3317 ../tools/virt-make-fs.pl:574 +#: ../src/guestfs.pod:3298 ../tools/virt-make-fs.pl:574 #: ../tools/virt-win-reg.pl:772 msgid "BUGS" msgstr "ВАДИ" #. type: textblock -#: ../src/guestfs.pod:3319 +#: ../src/guestfs.pod:3300 msgid "To get a list of bugs against libguestfs use this link:" msgstr "" "Щоб переглянути список відомих вад у libguestfs, скористайтеся таким " "посиланням:" #. type: textblock -#: ../src/guestfs.pod:3321 +#: ../src/guestfs.pod:3302 msgid "" "L<https://bugzilla.redhat.com/buglist.cgi?" "component=libguestfs&product=Virtualization+Tools>" @@ -44298,12 +44273,12 @@ msgstr "" "component=libguestfs&product=Virtualization+Tools>" #. type: textblock -#: ../src/guestfs.pod:3323 +#: ../src/guestfs.pod:3304 msgid "To report a new bug against libguestfs use this link:" msgstr "Для звітування щодо вад у libguestfs скористайтеся цим посиланням:" #. type: textblock -#: ../src/guestfs.pod:3325 +#: ../src/guestfs.pod:3306 msgid "" "L<https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools>" @@ -44312,27 +44287,27 @@ msgstr "" "component=libguestfs&product=Virtualization+Tools>" #. type: textblock -#: ../src/guestfs.pod:3327 +#: ../src/guestfs.pod:3308 msgid "When reporting a bug, please check:" msgstr "Під час створення повідомлення щодо вади вам слід переконатися:" #. type: textblock -#: ../src/guestfs.pod:3333 +#: ../src/guestfs.pod:3314 msgid "That the bug hasn't been reported already." msgstr "Що про ваду вже не повідомлено кимось іншим." #. type: textblock -#: ../src/guestfs.pod:3337 +#: ../src/guestfs.pod:3318 msgid "That you are testing a recent version." msgstr "Що ви користуєтеся найсвіжішою версією." #. type: textblock -#: ../src/guestfs.pod:3341 +#: ../src/guestfs.pod:3322 msgid "Describe the bug accurately, and give a way to reproduce it." msgstr "Що ви точно описали ваду та способи її відтворення." #. type: textblock -#: ../src/guestfs.pod:3345 +#: ../src/guestfs.pod:3326 msgid "" "Run libguestfs-test-tool and paste the B<complete, unedited> output into the " "bug report." diff --git a/po/en_GB.po b/po/en_GB.po index 64cb60e1..12f2f596 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: English (United Kingdom) (http://www.transifex.net/projects/p/" @@ -11,7 +11,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Spanish (Castilian) <trans-es@lists.fedoraproject.org>\n" @@ -10,7 +10,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Gujarati <trans-gu@lists.fedoraproject.org>\n" @@ -10,7 +10,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/team/" diff --git a/po/libguestfs.pot b/po/libguestfs.pot index b9620019..9f6e347b 100644 --- a/po/libguestfs.pot +++ b/po/libguestfs.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: libguestfs 1.16.20\n" +"Project-Id-Version: libguestfs 1.16.21\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" -"POT-Creation-Date: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+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" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Malayalam <discuss@lists.smc.org.in>\n" @@ -10,7 +10,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Marathi (http://www.transifex.net/projects/p/fedora/team/" @@ -11,7 +11,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/team/nl/)\n" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Oriya (http://www.transifex.net/projects/p/fedora/team/or/)\n" @@ -10,7 +10,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Panjabi (Punjabi) <punjabi-users@lists.sf.net>\n" @@ -10,7 +10,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Polish (http://www.transifex.net/projects/p/fedora/team/pl/)\n" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Tamil <tamil-users@lists.fedoraproject.org>\n" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Telugu (http://www.transifex.net/projects/p/fedora/team/te/)\n" @@ -9,7 +9,7 @@ msgstr "" "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: 2012-04-24 11:26+0100\n" +"POT-Creation-Date: 2012-05-01 15:29+0100\n" "PO-Revision-Date: 2012-01-23 13:09+0000\n" "Last-Translator: rjones <rjones@redhat.com>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" |