diff --git a/BUGS b/BUGS
index c579a5da3..d1f9e20d6 100644
--- a/BUGS
+++ b/BUGS
@@ -53,18 +53,12 @@ Bugs in NEW or ASSIGNED state are open and waiting for someone to fix.
737261 NEW https://bugzilla.redhat.com/show_bug.cgi?id=737261
libguestfs grub-install API needs grub1
-744795 NEW https://bugzilla.redhat.com/show_bug.cgi?id=744795
- guestmount --live is not usable
-
745576 NEW https://bugzilla.redhat.com/show_bug.cgi?id=745576
libguestfs (or qemu?) hangs if sparse file runs out of disk space
745606 NEW https://bugzilla.redhat.com/show_bug.cgi?id=745606
libguestfs: error: part_list: could not parse row from output of parted print command
-747290 NEW https://bugzilla.redhat.com/show_bug.cgi?id=747290
- libguestfs ignores in libvirt XML
-
563450 NEW https://bugzilla.redhat.com/show_bug.cgi?id=563450
list-devices returns devices of different types out of order
diff --git a/configure.ac b/configure.ac
index c2343b627..8d10cf09e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
# freeform string.
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [13])
-m4_define([libguestfs_release], [25])
+m4_define([libguestfs_release], [26])
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 30c0ef62b..af3b832a5 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: 2011-10-26 14:08+0200\n"
+"POT-Creation-Date: 2011-10-26 21:10+0200\n"
"PO-Revision-Date: 2011-10-19 15:46+0000\n"
"Last-Translator: rjones \n"
"Language-Team: Japanese \n"
@@ -896,21 +896,21 @@ msgstr ""
#: ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235
#: ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243
#: ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20
-#: ../fish/guestfish-actions.pod:395 ../fish/guestfish-actions.pod:403
-#: ../fish/guestfish-actions.pod:410 ../fish/guestfish-actions.pod:417
-#: ../fish/guestfish-actions.pod:1216 ../fish/guestfish-actions.pod:1220
-#: ../fish/guestfish-actions.pod:1224 ../fish/guestfish-actions.pod:1228
-#: ../fish/guestfish-actions.pod:1236 ../fish/guestfish-actions.pod:1240
-#: ../fish/guestfish-actions.pod:1244 ../fish/guestfish-actions.pod:1254
-#: ../fish/guestfish-actions.pod:1258 ../fish/guestfish-actions.pod:1262
-#: ../fish/guestfish-actions.pod:1352 ../fish/guestfish-actions.pod:1356
-#: ../fish/guestfish-actions.pod:1361 ../fish/guestfish-actions.pod:1366
-#: ../fish/guestfish-actions.pod:1408 ../fish/guestfish-actions.pod:1412
-#: ../fish/guestfish-actions.pod:1417 ../fish/guestfish-actions.pod:1673
-#: ../fish/guestfish-actions.pod:1680 ../fish/guestfish-actions.pod:1687
-#: ../fish/guestfish-actions.pod:2090 ../fish/guestfish-actions.pod:2096
-#: ../fish/guestfish-actions.pod:2104 ../fish/guestfish-actions.pod:2111
-#: ../fish/guestfish-actions.pod:2118 ../fish/guestfish.pod:445
+#: ../fish/guestfish-actions.pod:441 ../fish/guestfish-actions.pod:449
+#: ../fish/guestfish-actions.pod:456 ../fish/guestfish-actions.pod:463
+#: ../fish/guestfish-actions.pod:1262 ../fish/guestfish-actions.pod:1266
+#: ../fish/guestfish-actions.pod:1270 ../fish/guestfish-actions.pod:1274
+#: ../fish/guestfish-actions.pod:1282 ../fish/guestfish-actions.pod:1286
+#: ../fish/guestfish-actions.pod:1290 ../fish/guestfish-actions.pod:1300
+#: ../fish/guestfish-actions.pod:1304 ../fish/guestfish-actions.pod:1308
+#: ../fish/guestfish-actions.pod:1398 ../fish/guestfish-actions.pod:1402
+#: ../fish/guestfish-actions.pod:1407 ../fish/guestfish-actions.pod:1412
+#: ../fish/guestfish-actions.pod:1454 ../fish/guestfish-actions.pod:1458
+#: ../fish/guestfish-actions.pod:1463 ../fish/guestfish-actions.pod:1719
+#: ../fish/guestfish-actions.pod:1726 ../fish/guestfish-actions.pod:1733
+#: ../fish/guestfish-actions.pod:2136 ../fish/guestfish-actions.pod:2142
+#: ../fish/guestfish-actions.pod:2150 ../fish/guestfish-actions.pod:2157
+#: ../fish/guestfish-actions.pod:2164 ../fish/guestfish.pod:445
#: ../fish/guestfish.pod:449 ../fish/guestfish.pod:453
#: ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:393
#: ../inspector/virt-inspector.pod:397 ../resize/virt-resize.pod:359
@@ -920,21 +920,21 @@ msgstr ""
#: ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54
#: ../sparsify/virt-sparsify.pod:58 ../sparsify/virt-sparsify.pod:64
#: ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29
-#: ../src/guestfs-actions.pod:594 ../src/guestfs-actions.pod:602
-#: ../src/guestfs-actions.pod:609 ../src/guestfs-actions.pod:616
-#: ../src/guestfs-actions.pod:2024 ../src/guestfs-actions.pod:2028
-#: ../src/guestfs-actions.pod:2032 ../src/guestfs-actions.pod:2036
-#: ../src/guestfs-actions.pod:2044 ../src/guestfs-actions.pod:2048
-#: ../src/guestfs-actions.pod:2052 ../src/guestfs-actions.pod:2062
-#: ../src/guestfs-actions.pod:2066 ../src/guestfs-actions.pod:2070
-#: ../src/guestfs-actions.pod:2208 ../src/guestfs-actions.pod:2212
-#: ../src/guestfs-actions.pod:2217 ../src/guestfs-actions.pod:2222
-#: ../src/guestfs-actions.pod:2283 ../src/guestfs-actions.pod:2287
-#: ../src/guestfs-actions.pod:2292 ../src/guestfs-actions.pod:2707
-#: ../src/guestfs-actions.pod:2714 ../src/guestfs-actions.pod:2721
-#: ../src/guestfs-actions.pod:3266 ../src/guestfs-actions.pod:3272
-#: ../src/guestfs-actions.pod:3280 ../src/guestfs-actions.pod:3287
-#: ../src/guestfs-actions.pod:3294 ../src/guestfs.pod:403
+#: ../src/guestfs-actions.pod:641 ../src/guestfs-actions.pod:649
+#: ../src/guestfs-actions.pod:656 ../src/guestfs-actions.pod:663
+#: ../src/guestfs-actions.pod:2071 ../src/guestfs-actions.pod:2075
+#: ../src/guestfs-actions.pod:2079 ../src/guestfs-actions.pod:2083
+#: ../src/guestfs-actions.pod:2091 ../src/guestfs-actions.pod:2095
+#: ../src/guestfs-actions.pod:2099 ../src/guestfs-actions.pod:2109
+#: ../src/guestfs-actions.pod:2113 ../src/guestfs-actions.pod:2117
+#: ../src/guestfs-actions.pod:2255 ../src/guestfs-actions.pod:2259
+#: ../src/guestfs-actions.pod:2264 ../src/guestfs-actions.pod:2269
+#: ../src/guestfs-actions.pod:2330 ../src/guestfs-actions.pod:2334
+#: ../src/guestfs-actions.pod:2339 ../src/guestfs-actions.pod:2754
+#: ../src/guestfs-actions.pod:2761 ../src/guestfs-actions.pod:2768
+#: ../src/guestfs-actions.pod:3313 ../src/guestfs-actions.pod:3319
+#: ../src/guestfs-actions.pod:3327 ../src/guestfs-actions.pod:3334
+#: ../src/guestfs-actions.pod:3341 ../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:1109 ../src/guestfs.pod:1113
@@ -2608,7 +2608,7 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../cat/virt-ls.pod:181 ../fish/guestfish-actions.pod:4349
+#: ../cat/virt-ls.pod:181 ../fish/guestfish-actions.pod:4395
msgid "path"
msgstr ""
@@ -5182,10 +5182,10 @@ msgstr ""
#. type: textblock
#: ../examples/guestfs-recipes.pod:128 ../fish/guestfish-actions.pod:9
-#: ../fish/guestfish-actions.pod:1404 ../fish/guestfish-actions.pod:1669
-#: ../fish/guestfish-actions.pod:2086 ../src/guestfs-actions.pod:18
-#: ../src/guestfs-actions.pod:2279 ../src/guestfs-actions.pod:2703
-#: ../src/guestfs-actions.pod:3262 ../src/guestfs.pod:1685
+#: ../fish/guestfish-actions.pod:1450 ../fish/guestfish-actions.pod:1715
+#: ../fish/guestfish-actions.pod:2132 ../src/guestfs-actions.pod:18
+#: ../src/guestfs-actions.pod:2326 ../src/guestfs-actions.pod:2750
+#: ../src/guestfs-actions.pod:3309 ../src/guestfs.pod:1685
#: ../tools/virt-win-reg.pl:717
msgid "Notes:"
msgstr ""
@@ -5780,32 +5780,32 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:28 ../fish/guestfish-actions.pod:168
-#: ../fish/guestfish-actions.pod:182
+#: ../fish/guestfish-actions.pod:28 ../fish/guestfish-actions.pod:214
+#: ../fish/guestfish-actions.pod:228
msgid ""
"I In new code, use the L call "
"instead."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:31 ../fish/guestfish-actions.pod:171
-#: ../fish/guestfish-actions.pod:185 ../fish/guestfish-actions.pod:895
-#: ../fish/guestfish-actions.pod:930 ../fish/guestfish-actions.pod:1103
-#: ../fish/guestfish-actions.pod:1463 ../fish/guestfish-actions.pod:1477
-#: ../fish/guestfish-actions.pod:3247 ../fish/guestfish-actions.pod:3558
-#: ../fish/guestfish-actions.pod:3606 ../fish/guestfish-actions.pod:4533
-#: ../fish/guestfish-actions.pod:4556 ../fish/guestfish-actions.pod:4578
-#: ../fish/guestfish-actions.pod:4616 ../fish/guestfish-actions.pod:5265
-#: ../fish/guestfish-actions.pod:5371 ../src/guestfs-actions.pod:10
-#: ../src/guestfs-actions.pod:258 ../src/guestfs-actions.pod:279
-#: ../src/guestfs-actions.pod:1525 ../src/guestfs-actions.pod:1582
-#: ../src/guestfs-actions.pod:1865 ../src/guestfs-actions.pod:2364
-#: ../src/guestfs-actions.pod:2385 ../src/guestfs-actions.pod:5030
-#: ../src/guestfs-actions.pod:5552 ../src/guestfs-actions.pod:5652
-#: ../src/guestfs-actions.pod:6952 ../src/guestfs-actions.pod:6996
-#: ../src/guestfs-actions.pod:7030 ../src/guestfs-actions.pod:7093
-#: ../src/guestfs-actions.pod:8025 ../src/guestfs-actions.pod:8134
-#: ../src/guestfs-actions.pod:8317
+#: ../fish/guestfish-actions.pod:31 ../fish/guestfish-actions.pod:217
+#: ../fish/guestfish-actions.pod:231 ../fish/guestfish-actions.pod:941
+#: ../fish/guestfish-actions.pod:976 ../fish/guestfish-actions.pod:1149
+#: ../fish/guestfish-actions.pod:1509 ../fish/guestfish-actions.pod:1523
+#: ../fish/guestfish-actions.pod:3293 ../fish/guestfish-actions.pod:3604
+#: ../fish/guestfish-actions.pod:3652 ../fish/guestfish-actions.pod:4579
+#: ../fish/guestfish-actions.pod:4602 ../fish/guestfish-actions.pod:4624
+#: ../fish/guestfish-actions.pod:4662 ../fish/guestfish-actions.pod:5311
+#: ../fish/guestfish-actions.pod:5417 ../src/guestfs-actions.pod:10
+#: ../src/guestfs-actions.pod:305 ../src/guestfs-actions.pod:326
+#: ../src/guestfs-actions.pod:1572 ../src/guestfs-actions.pod:1629
+#: ../src/guestfs-actions.pod:1912 ../src/guestfs-actions.pod:2411
+#: ../src/guestfs-actions.pod:2432 ../src/guestfs-actions.pod:5077
+#: ../src/guestfs-actions.pod:5599 ../src/guestfs-actions.pod:5699
+#: ../src/guestfs-actions.pod:6999 ../src/guestfs-actions.pod:7043
+#: ../src/guestfs-actions.pod:7077 ../src/guestfs-actions.pod:7140
+#: ../src/guestfs-actions.pod:8072 ../src/guestfs-actions.pod:8181
+#: ../src/guestfs-actions.pod:8364
msgid ""
"Deprecated functions will not be removed from the API, but the fact that "
"they are deprecated indicates that there are problems with correct use of "
@@ -5826,7 +5826,7 @@ msgstr ""
#: ../fish/guestfish-actions.pod:39
#, no-wrap
msgid ""
-" add-domain dom [libvirturi:..] [readonly:..] [iface:..] [live:..] [allowuuid:..]\n"
+" add-domain dom [libvirturi:..] [readonly:..] [iface:..] [live:..] [allowuuid:..] [readonlydisk:..]\n"
"\n"
msgstr ""
@@ -5839,14 +5839,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:46 ../src/guestfs-actions.pod:64
+#: ../fish/guestfish-actions.pod:46 ../src/guestfs-actions.pod:65
msgid ""
"The number of disks added is returned. This operation is atomic: if an "
"error is returned, then no disks are added."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:49 ../src/guestfs-actions.pod:67
+#: ../fish/guestfish-actions.pod:49 ../src/guestfs-actions.pod:68
msgid ""
"This function does some minimal checks to make sure the libvirt domain is "
"not running (unless C is true). In a future version we will try "
@@ -5854,7 +5854,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:53 ../src/guestfs-actions.pod:71
+#: ../fish/guestfish-actions.pod:53 ../src/guestfs-actions.pod:72
msgid ""
"Disks must be accessible locally. This often means that adding disks from a "
"remote libvirt connection (see L) will fail "
@@ -5862,7 +5862,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:58 ../src/guestfs-actions.pod:76
+#: ../fish/guestfish-actions.pod:58 ../src/guestfs-actions.pod:77
msgid ""
"The optional C parameter sets the libvirt URI (see L). If this is not set then we connect to the default "
@@ -5871,7 +5871,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:64 ../src/guestfs-actions.pod:82
+#: ../fish/guestfish-actions.pod:64 ../src/guestfs-actions.pod:83
msgid ""
"The optional C flag controls whether this call will try to connect to "
"a running virtual machine C process if it sees a suitable "
@@ -5881,7 +5881,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:71 ../src/guestfs-actions.pod:89
+#: ../fish/guestfish-actions.pod:71 ../src/guestfs-actions.pod:90
msgid ""
"If the C flag is true (default is false) then a UUID I be "
"passed instead of the domain name. The C string is treated as a UUID "
@@ -5890,31 +5890,108 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:76
+#: ../fish/guestfish-actions.pod:76 ../src/guestfs-actions.pod:95
+msgid ""
+"The optional C parameter controls what we do for disks which "
+"are marked Ereadonly/E in the libvirt XML. Possible values are:"
+msgstr ""
+
+#. type: =item
+#: ../fish/guestfish-actions.pod:82 ../src/guestfs-actions.pod:101
+msgid "readonlydisk = \"error\""
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:84 ../fish/guestfish-actions.pod:95
+#: ../fish/guestfish-actions.pod:106 ../src/guestfs-actions.pod:103
+#: ../src/guestfs-actions.pod:114 ../src/guestfs-actions.pod:125
+msgid "If C is false:"
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:86 ../src/guestfs-actions.pod:105
+msgid ""
+"The whole call is aborted with an error if any disk with the Ereadonly/"
+"E flag is found."
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:89 ../fish/guestfish-actions.pod:100
+#: ../fish/guestfish-actions.pod:110 ../src/guestfs-actions.pod:108
+#: ../src/guestfs-actions.pod:119 ../src/guestfs-actions.pod:129
+msgid "If C is true:"
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:91 ../fish/guestfish-actions.pod:102
+#: ../fish/guestfish-actions.pod:112 ../src/guestfs-actions.pod:110
+#: ../src/guestfs-actions.pod:121 ../src/guestfs-actions.pod:131
+msgid "Disks with the Ereadonly/E flag are added read-only."
+msgstr ""
+
+#. type: =item
+#: ../fish/guestfish-actions.pod:93 ../src/guestfs-actions.pod:112
+msgid "readonlydisk = \"read\""
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:97 ../src/guestfs-actions.pod:116
+msgid ""
+"Disks with the Ereadonly/E flag are added read-only. Other disks "
+"are added read/write."
+msgstr ""
+
+#. type: =item
+#: ../fish/guestfish-actions.pod:104 ../src/guestfs-actions.pod:123
+msgid "readonlydisk = \"write\" (default)"
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:108 ../src/guestfs-actions.pod:127
+msgid "Disks with the Ereadonly/E flag are added read/write."
+msgstr ""
+
+#. type: =item
+#: ../fish/guestfish-actions.pod:114 ../src/guestfs-actions.pod:133
+msgid "readonlydisk = \"ignore\""
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:116 ../src/guestfs-actions.pod:135
+msgid "If C is true or false:"
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:118 ../src/guestfs-actions.pod:137
+msgid "Disks with the Ereadonly/E flag are skipped."
+msgstr ""
+
+#. type: textblock
+#: ../fish/guestfish-actions.pod:122
msgid ""
"The other optional parameters are passed directly through to L."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:79 ../fish/guestfish-actions.pod:148
-#: ../fish/guestfish-actions.pod:578 ../fish/guestfish-actions.pod:789
-#: ../fish/guestfish-actions.pod:810 ../fish/guestfish-actions.pod:848
-#: ../fish/guestfish-actions.pod:857 ../fish/guestfish-actions.pod:866
-#: ../fish/guestfish-actions.pod:880 ../fish/guestfish-actions.pod:2125
-#: ../fish/guestfish-actions.pod:3296 ../fish/guestfish-actions.pod:3459
-#: ../fish/guestfish-actions.pod:3594
+#: ../fish/guestfish-actions.pod:125 ../fish/guestfish-actions.pod:194
+#: ../fish/guestfish-actions.pod:624 ../fish/guestfish-actions.pod:835
+#: ../fish/guestfish-actions.pod:856 ../fish/guestfish-actions.pod:894
+#: ../fish/guestfish-actions.pod:903 ../fish/guestfish-actions.pod:912
+#: ../fish/guestfish-actions.pod:926 ../fish/guestfish-actions.pod:2171
+#: ../fish/guestfish-actions.pod:3342 ../fish/guestfish-actions.pod:3505
+#: ../fish/guestfish-actions.pod:3640
msgid ""
"This command has one or more optional arguments. See L."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:81
+#: ../fish/guestfish-actions.pod:127
msgid "add-drive"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:83
+#: ../fish/guestfish-actions.pod:129
#, no-wrap
msgid ""
" add-drive filename\n"
@@ -5922,7 +5999,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:85
+#: ../fish/guestfish-actions.pod:131
msgid ""
"This function is the equivalent of calling L with no "
"optional parameters, so the disk is added writable, with the format being "
@@ -5930,7 +6007,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:89
+#: ../fish/guestfish-actions.pod:135
msgid ""
"Automatic detection of the format opens you up to a potential security hole "
"when dealing with untrusted raw-format images. See CVE-2010-3851 and "
@@ -5940,17 +6017,17 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:96
+#: ../fish/guestfish-actions.pod:142
msgid "add-drive-opts"
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:98
+#: ../fish/guestfish-actions.pod:144
msgid "add"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:100
+#: ../fish/guestfish-actions.pod:146
#, no-wrap
msgid ""
" add-drive-opts filename [readonly:..] [format:..] [iface:..] [name:..]\n"
@@ -5958,7 +6035,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:102 ../src/guestfs-actions.pod:161
+#: ../fish/guestfish-actions.pod:148 ../src/guestfs-actions.pod:208
msgid ""
"This function adds a virtual machine disk image C to libguestfs. "
"The first time you call this function, the disk appears as C, the "
@@ -5966,7 +6043,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:107 ../src/guestfs-actions.pod:166
+#: ../fish/guestfish-actions.pod:153 ../src/guestfs-actions.pod:213
msgid ""
"You don't necessarily need to be root when using libguestfs. However you "
"obviously do need sufficient permissions to access the filename for whatever "
@@ -5975,23 +6052,23 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:113 ../src/guestfs-actions.pod:172
+#: ../fish/guestfish-actions.pod:159 ../src/guestfs-actions.pod:219
msgid "This call checks that C exists."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:115 ../fish/guestfish-actions.pod:3258
-#: ../src/guestfs-actions.pod:174 ../src/guestfs-actions.pod:5067
+#: ../fish/guestfish-actions.pod:161 ../fish/guestfish-actions.pod:3304
+#: ../src/guestfs-actions.pod:221 ../src/guestfs-actions.pod:5114
msgid "The optional arguments are:"
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:119 ../src/guestfs-actions.pod:178
+#: ../fish/guestfish-actions.pod:165 ../src/guestfs-actions.pod:225
msgid "C"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:121 ../src/guestfs-actions.pod:180
+#: ../fish/guestfish-actions.pod:167 ../src/guestfs-actions.pod:227
msgid ""
"If true then the image is treated as read-only. Writes are still allowed, "
"but they are stored in a temporary snapshot overlay which is discarded at "
@@ -5999,12 +6076,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:125 ../src/guestfs-actions.pod:184
+#: ../fish/guestfish-actions.pod:171 ../src/guestfs-actions.pod:231
msgid "C"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:127
+#: ../fish/guestfish-actions.pod:173
msgid ""
"This forces the image format. If you omit this (or use L or L"
"add-drive-ro>) then the format is automatically detected. Possible formats "
@@ -6012,7 +6089,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:131 ../src/guestfs-actions.pod:190
+#: ../fish/guestfish-actions.pod:177 ../src/guestfs-actions.pod:237
msgid ""
"Automatic detection of the format opens you up to a potential security hole "
"when dealing with untrusted raw-format images. See CVE-2010-3851 and "
@@ -6020,41 +6097,41 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:136 ../src/guestfs-actions.pod:195
+#: ../fish/guestfish-actions.pod:182 ../src/guestfs-actions.pod:242
msgid "C"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:138
+#: ../fish/guestfish-actions.pod:184
msgid ""
"This rarely-used option lets you emulate the behaviour of the deprecated L"
"add-drive-with-if> call (q.v.)"
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:141 ../src/guestfs-actions.pod:200
+#: ../fish/guestfish-actions.pod:187 ../src/guestfs-actions.pod:247
msgid "C"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:143 ../src/guestfs-actions.pod:202
+#: ../fish/guestfish-actions.pod:189 ../src/guestfs-actions.pod:249
msgid ""
"The name the drive had in the original guest, e.g. /dev/sdb. This is used as "
"a hint to the guest inspection process if it is available."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:150
+#: ../fish/guestfish-actions.pod:196
msgid "add-drive-ro"
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:152
+#: ../fish/guestfish-actions.pod:198
msgid "add-ro"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:154
+#: ../fish/guestfish-actions.pod:200
#, no-wrap
msgid ""
" add-drive-ro filename\n"
@@ -6062,7 +6139,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:156
+#: ../fish/guestfish-actions.pod:202
msgid ""
"This function is the equivalent of calling L with the "
"optional parameter C set to 1, so the disk "
@@ -6070,12 +6147,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:161
+#: ../fish/guestfish-actions.pod:207
msgid "add-drive-ro-with-if"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:163
+#: ../fish/guestfish-actions.pod:209
#, no-wrap
msgid ""
" add-drive-ro-with-if filename iface\n"
@@ -6083,19 +6160,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:165
+#: ../fish/guestfish-actions.pod:211
msgid ""
"This is the same as L but it allows you to specify the QEMU "
"interface emulation to use at run time."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:175
+#: ../fish/guestfish-actions.pod:221
msgid "add-drive-with-if"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:177
+#: ../fish/guestfish-actions.pod:223
#, no-wrap
msgid ""
" add-drive-with-if filename iface\n"
@@ -6103,19 +6180,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:179
+#: ../fish/guestfish-actions.pod:225
msgid ""
"This is the same as L but it allows you to specify the QEMU "
"interface emulation to use at run time."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:189
+#: ../fish/guestfish-actions.pod:235
msgid "aug-clear"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:191
+#: ../fish/guestfish-actions.pod:237
#, no-wrap
msgid ""
" aug-clear augpath\n"
@@ -6123,19 +6200,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:193 ../src/guestfs-actions.pod:296
+#: ../fish/guestfish-actions.pod:239 ../src/guestfs-actions.pod:343
msgid ""
"Set the value associated with C to C. This is the same as the "
"L C command."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:196
+#: ../fish/guestfish-actions.pod:242
msgid "aug-close"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:198
+#: ../fish/guestfish-actions.pod:244
#, no-wrap
msgid ""
" aug-close\n"
@@ -6143,7 +6220,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:200
+#: ../fish/guestfish-actions.pod:246
msgid ""
"Close the current Augeas handle and free up any resources used by it. After "
"calling this, you have to call L again before you can use any "
@@ -6151,12 +6228,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:205
+#: ../fish/guestfish-actions.pod:251
msgid "aug-defnode"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:207
+#: ../fish/guestfish-actions.pod:253
#, no-wrap
msgid ""
" aug-defnode name expr val\n"
@@ -6164,13 +6241,13 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:209 ../src/guestfs-actions.pod:325
+#: ../fish/guestfish-actions.pod:255 ../src/guestfs-actions.pod:372
msgid ""
"Defines a variable C whose value is the result of evaluating C."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:212
+#: ../fish/guestfish-actions.pod:258
msgid ""
"If C evaluates to an empty nodeset, a node is created, equivalent to "
"calling L C, C. C will be the nodeset "
@@ -6178,19 +6255,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:216 ../src/guestfs-actions.pod:332
+#: ../fish/guestfish-actions.pod:262 ../src/guestfs-actions.pod:379
msgid ""
"On success this returns a pair containing the number of nodes in the "
"nodeset, and a boolean flag if a node was created."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:220
+#: ../fish/guestfish-actions.pod:266
msgid "aug-defvar"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:222
+#: ../fish/guestfish-actions.pod:268
#, no-wrap
msgid ""
" aug-defvar name expr\n"
@@ -6198,26 +6275,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:224 ../src/guestfs-actions.pod:349
+#: ../fish/guestfish-actions.pod:270 ../src/guestfs-actions.pod:396
msgid ""
"Defines an Augeas variable C whose value is the result of evaluating "
"C. If C is NULL, then C is undefined."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:228 ../src/guestfs-actions.pod:353
+#: ../fish/guestfish-actions.pod:274 ../src/guestfs-actions.pod:400
msgid ""
"On success this returns the number of nodes in C, or C<0> if C "
"evaluates to something which is not a nodeset."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:231
+#: ../fish/guestfish-actions.pod:277
msgid "aug-get"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:233
+#: ../fish/guestfish-actions.pod:279
#, no-wrap
msgid ""
" aug-get augpath\n"
@@ -6225,19 +6302,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:235 ../src/guestfs-actions.pod:366
+#: ../fish/guestfish-actions.pod:281 ../src/guestfs-actions.pod:413
msgid ""
"Look up the value associated with C. If C matches exactly one "
"node, the C is returned."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:238
+#: ../fish/guestfish-actions.pod:284
msgid "aug-init"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:240
+#: ../fish/guestfish-actions.pod:286
#, no-wrap
msgid ""
" aug-init root flags\n"
@@ -6245,7 +6322,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:242 ../src/guestfs-actions.pod:381
+#: ../fish/guestfish-actions.pod:288 ../src/guestfs-actions.pod:428
msgid ""
"Create a new Augeas handle for editing configuration files. If there was "
"any previous Augeas handle associated with this guestfs session, then it is "
@@ -6253,57 +6330,57 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:246
+#: ../fish/guestfish-actions.pod:292
msgid "You must call this before using any other L commands."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:249 ../src/guestfs-actions.pod:388
+#: ../fish/guestfish-actions.pod:295 ../src/guestfs-actions.pod:435
msgid ""
"C is the filesystem root. C must not be NULL, use C> instead."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:252 ../src/guestfs-actions.pod:391
+#: ../fish/guestfish-actions.pod:298 ../src/guestfs-actions.pod:438
msgid ""
"The flags are the same as the flags defined in Eaugeas.hE, the "
"logical I of the following integers:"
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:258 ../src/guestfs-actions.pod:397
+#: ../fish/guestfish-actions.pod:304 ../src/guestfs-actions.pod:444
msgid "C = 1"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:260 ../src/guestfs-actions.pod:399
+#: ../fish/guestfish-actions.pod:306 ../src/guestfs-actions.pod:446
msgid "Keep the original file with a C<.augsave> extension."
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:262 ../src/guestfs-actions.pod:401
+#: ../fish/guestfish-actions.pod:308 ../src/guestfs-actions.pod:448
msgid "C = 2"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:264 ../src/guestfs-actions.pod:403
+#: ../fish/guestfish-actions.pod:310 ../src/guestfs-actions.pod:450
msgid ""
"Save changes into a file with extension C<.augnew>, and do not overwrite "
"original. Overrides C."
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:267 ../src/guestfs-actions.pod:406
+#: ../fish/guestfish-actions.pod:313 ../src/guestfs-actions.pod:453
msgid "C = 4"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:269 ../src/guestfs-actions.pod:408
+#: ../fish/guestfish-actions.pod:315 ../src/guestfs-actions.pod:455
msgid "Typecheck lenses."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:271
+#: ../fish/guestfish-actions.pod:317
msgid ""
"This option is only useful when debugging Augeas lenses. Use of this option "
"may require additional memory for the libguestfs appliance. You may need to "
@@ -6311,52 +6388,52 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:276 ../src/guestfs-actions.pod:415
+#: ../fish/guestfish-actions.pod:322 ../src/guestfs-actions.pod:462
msgid "C = 8"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:278 ../src/guestfs-actions.pod:417
+#: ../fish/guestfish-actions.pod:324 ../src/guestfs-actions.pod:464
msgid "Do not use standard load path for modules."
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:280 ../src/guestfs-actions.pod:419
+#: ../fish/guestfish-actions.pod:326 ../src/guestfs-actions.pod:466
msgid "C = 16"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:282 ../src/guestfs-actions.pod:421
+#: ../fish/guestfish-actions.pod:328 ../src/guestfs-actions.pod:468
msgid "Make save a no-op, just record what would have been changed."
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:284 ../src/guestfs-actions.pod:423
+#: ../fish/guestfish-actions.pod:330 ../src/guestfs-actions.pod:470
msgid "C = 32"
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:286
+#: ../fish/guestfish-actions.pod:332
msgid "Do not load the tree in L."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:290
+#: ../fish/guestfish-actions.pod:336
msgid "To close the handle, you can call L."
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:292 ../src/guestfs-actions.pod:431
+#: ../fish/guestfish-actions.pod:338 ../src/guestfs-actions.pod:478
msgid "To find out more about Augeas, see L."
msgstr ""
#. type: =head2
-#: ../fish/guestfish-actions.pod:294
+#: ../fish/guestfish-actions.pod:340
msgid "aug-insert"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish-actions.pod:296
+#: ../fish/guestfish-actions.pod:342
#, no-wrap
msgid ""
" aug-insert augpath label true|false\n"
@@ -6364,26 +6441,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish-actions.pod:298 ../src/guestfs-actions.pod:445
+#: ../fish/guestfish-actions.pod:344 ../src/guestfs-actions.pod:492
msgid ""
"Create a new sibling C