[libvirt] [PATCH] Add test for the nodemask double free crash
by Ján Tomko
Commit ef5d51d fixed a crash for numatune with auto placement and
nodeset specified:
<numatune>
<memory mode='preferred' placement='auto' nodeset='0'/>
</numatune>
---
...qemuxml2argv-numatune-auto-nodeset-invalid.args | 4 +++
.../qemuxml2argv-numatune-auto-nodeset-invalid.xml | 31 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
3 files changed, 36 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.args b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.args
new file mode 100644
index 0000000..1b440d9
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.args
@@ -0,0 +1,4 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu -S -M pc -m 214 -smp 2 -nographic \
+-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
+-hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.xml b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.xml
new file mode 100644
index 0000000..d2315b4
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-nodeset-invalid.xml
@@ -0,0 +1,31 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static' cpuset='0-1'>2</vcpu>
+ <numatune>
+ <memory mode='preferred' placement='auto' nodeset="0-5,^4"/>
+ </numatune>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu>
+ <topology sockets='2' cores='1' threads='1'/>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='ide' index='0'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 15d3095..fdf1d31 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -910,6 +910,7 @@ mymain(void)
DO_TEST("blkiotune-device", QEMU_CAPS_NAME);
DO_TEST("cputune", QEMU_CAPS_NAME);
DO_TEST("numatune-memory", NONE);
+ DO_TEST("numatune-auto-nodeset-invalid", NONE);
DO_TEST("numad", NONE);
DO_TEST("numad-auto-vcpu-static-numatune", NONE);
DO_TEST("numad-auto-memory-vcpu-cpuset", NONE);
--
1.8.1.5
11 years, 2 months
[libvirt] Help needed in simulating libvirt
by Arun Viswanath
Hi All,
I'm need to simulate libvirt API's say to mock the libvirt API
responses. (Actually I need to simulate qemu API's response). Because of my
project needs I need to write this simulated libvirt server in Java. I
believe the simulated libvirt can be written as java RPC which should
capable to receive the client RPC request calls and by dispatcher we can
dispatch to the simulated java functions. I searched for .x file to be used
for generating server stubs but unfortunately .x files like
"remote_protocol.x", "virnetprotocol.x", "qemu_protocol.x" and
"lxc_monitor_protocol.x" are not containing any procedure for libvirt API's
that exposed. Please let me know which files will have these exposed
procedures and how can I use it in java,
Also I'm not sure how to implement the ssl layer support for the
libvirt server in java. I need to write a java server in such a way that
python client should capable to create a connection with uri
"qemu+tls://systemip:port?no_tty=1". Also with the created connection
object it should able to call the libvirt API's like getCapabilities, etc.
Any help and ideas on this will be really helpful.
Thanks in Advance,
Arun V
11 years, 2 months
[libvirt] [PATCH libvirt-python 00/17] RFC: Split the python binding out
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
This patch series demonstrates the minimum possible changes required
to split the python binding out into a separate GIT repository.
These patches do not apply to current GIT. Instead you have to first
create a new git repo, initializing based on the history of the
python/ subdirectory.
Assuming your current checkout of libvirt is in a directory 'libvirt',
then
$ git clone libvirt libvirt-python
$ cd libvirt-python
$ git filter-branch --subdirectory-filter python --tag-name-filter cat -- --all
$ git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
$ git reflog expire --expire=now --all
$ git gc --prune=now
You should now have a repo that's a couple of MB in size, showing only the
files from python/ dir, in the root.
The tags have been re-written to show content from the python/ directory.
One problem I've not yet solved is tag signatures. Many of the original
vN.N.N tags are signed by Daniel Veillard, and the CVE-XXXXXXX ones
signed by Eric Blake.
Obviously when re-writing the tags those signatures are now invalid.
I can't find a way to get 'git filter-branch' to prompt me to sign the
new tags it is creating, and AFAIK, you can't sign an existing tag without
deleting and re-creating it ?
Anyway, with the repo as above, you can now apply the 17 patches from
this series onto that
The build system uses python distutils instead of autoconf/automake.
It still uses the code generator as before though, pulling the XML
files from /usr/share/libvirt/api (or whever you installed libvirt,
as indicated by pkg-config)
I created a simple autobuild.sh to do an end-to-end build, including
the RPM generation. Or you can just do
python setup.py build ('make' equiv)
python setup.py test ('make check' equiv)
python setup.py rpm ('make rpm' equiv)
python setup.py clean ('make clean' equiv)
Historically libvirt python only worked with the exact matching libvirt
binary. Before releasing this, I think we need to make it possible to
compile libvirt-python against any recent-ish libvirt version.
This shouldn't actually be too hard - the generator will take care of
most of it. All we need do is fix up the -override.c files to make
use of version checks to hide APIs not present in older libvirt.
The RPM is designed to be drop in compatible/identical to/with the
existing libvirt-python RPM, so users should notice no difference
in any way when upgrading.
If you don't want to try the filter-branch steps yourself, you can
clone this complete series + repo from
http://fedorapeople.org/cgit/berrange/public_git/libvirt-python-split.git/
Notice how the history is intact right back to the first commit of the
python bindings.
Daniel P. Berrange (17):
Update generator for new code layout
Remove <config.h> from source files
Remove obsolete Makefile.am
Remote compiler annotation attributes
Fix potential use of uninitialized value in virDomainGetVcpuPinInfo
Remove use of VIR_FREE from code
Remove use of VIR_ALLOC_N
Import STREQ macro from libvirt
Add decl of MIN macro
Update header file includes
Import gnulib's xalloc_oversized macro
Import gnulib's ignore_value macro
Remove use of virStrcpyStatic
Remove use of VIR_FORCE_CLOSE
Add build/ to python module path for sanitytest.py
Add execute permission for sanitytest.py
Setup distutils buld system
.gitignore | 4 +
AUTHORS.in | 12 +
COPYING | 339 ++++++++++++++++++++++++
COPYING.LESSER | 502 ++++++++++++++++++++++++++++++++++++
MANIFEST.in | 25 ++
Makefile.am | 172 -------------
NEWS | 9 +
autobuild.sh | 25 ++
generator.py | 69 ++---
libvirt-lxc-override.c | 14 +-
libvirt-override.c | 664 +++++++++++++++++++++++++-----------------------
libvirt-python.spec.in | 34 +++
libvirt-qemu-override.c | 11 +-
sanitytest.py | 4 +
setup.py | 294 +++++++++++++++++++++
typewrappers.c | 8 +-
16 files changed, 1629 insertions(+), 557 deletions(-)
create mode 100644 .gitignore
create mode 100644 AUTHORS.in
create mode 100644 COPYING
create mode 100644 COPYING.LESSER
create mode 100644 MANIFEST.in
delete mode 100644 Makefile.am
create mode 100644 NEWS
create mode 100755 autobuild.sh
create mode 100644 libvirt-python.spec.in
mode change 100644 => 100755 sanitytest.py
create mode 100644 setup.py
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH v2 0/5] add new API virConnectGetCPUModelNames
by Giuseppe Scrivano
This series adds a new API "virConnectGetCPUModelNames" that allows to
retrieve the list of CPU models known by the hypervisor for a specific
architecture.
This new function is mainly needed by virt-manager to not read
directly the cpu_map.xml file (it could also be different when
accessing a remote daemon).
*v2 main changes
- set a hard limit for the number of CPU models that is possible to
fetch from a remote server.
- Use VIR_EXPAND_N instead of VIR_REALLOC_N.
- s|1.1.2|1.1.3|
Giuseppe Scrivano (5):
cpu_models: add new public API
cpu_models: implement the remote protocol
cpu_models: add the support for qemu
cpu_models: add the support for the test protocol
cpu_models: add Python bindings
daemon/remote.c | 47 ++++++++++++++++++++++++++++++
include/libvirt/libvirt.h.in | 18 ++++++++++++
python/generator.py | 1 +
python/libvirt-override-api.xml | 7 +++++
python/libvirt-override.c | 56 ++++++++++++++++++++++++++++++++++++
python/libvirt-override.py | 11 +++++++
src/cpu/cpu.c | 64 +++++++++++++++++++++++++++++++++++++++++
src/cpu/cpu.h | 3 ++
src/driver.h | 7 +++++
src/libvirt.c | 47 ++++++++++++++++++++++++++++++
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 5 ++++
src/qemu/qemu_driver.c | 14 +++++++++
src/remote/remote_driver.c | 59 +++++++++++++++++++++++++++++++++++++
src/remote/remote_protocol.x | 20 ++++++++++++-
src/remote_protocol-structs | 11 +++++++
src/test/test_driver.c | 16 +++++++++++
tools/virsh-host.c | 48 +++++++++++++++++++++++++++++++
tools/virsh.pod | 5 ++++
19 files changed, 439 insertions(+), 1 deletion(-)
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH 1/2] LXC: umount the temporary filesystem
by Gao feng
The devpts, dev and fuse filesystems are mounted temporarily.
there is no need to export them to container.
Signed-off-by: Gao feng <gaofeng(a)cn.fujitsu.com>
---
src/lxc/lxc_container.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 9c04d06..0ab4ab7 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -1486,6 +1486,7 @@ static int lxcContainerSetupPivotRoot(virDomainDefPtr vmDef,
int ret = -1;
char *sec_mount_options;
char *stateDir = NULL;
+ char *tmp = NULL;
VIR_DEBUG("Setup pivot root");
@@ -1522,6 +1523,26 @@ static int lxcContainerSetupPivotRoot(virDomainDefPtr vmDef,
goto cleanup;
#endif
+ /* These filesystems are created by libvirt temporarily, they
+ * shouldn't appear in container. */
+ if (STREQ(root->src, "/")) {
+ if (virAsprintf(&tmp, "%s/%s.dev", stateDir, vmDef->name) < 0 ||
+ lxcContainerUnmountSubtree(tmp, false) < 0)
+ goto cleanup;
+
+ VIR_FREE(tmp);
+ if (virAsprintf(&tmp, "%s/%s.devpts", stateDir, vmDef->name) < 0 ||
+ lxcContainerUnmountSubtree(tmp, false) < 0)
+ goto cleanup;
+
+#if WITH_FUSE
+ VIR_FREE(tmp);
+ if (virAsprintf(&tmp, "%s/%s.fuse", stateDir, vmDef->name) < 0 ||
+ lxcContainerUnmountSubtree(tmp, false) < 0)
+ goto cleanup;
+#endif
+ }
+
/* If we have the root source being '/', then we need to
* get rid of any existing stuff under /proc, /sys & /tmp.
* We need new namespace aware versions of those. We must
@@ -1571,6 +1592,7 @@ cleanup:
VIR_FREE(stateDir);
virCgroupFree(&cgroup);
VIR_FREE(sec_mount_options);
+ VIR_FREE(tmp);
return ret;
}
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH] virBitmapFree: Change the function to a macro
by Liuji (Jeremy)
The parameter of virBitmapFree function is just a pointer, not a pointer of pointer.
The second VIR_FREE on virBitmapFree only assign NULL to the formal parameter.
After calling the virBitmapFree function, the actual parameter are still not NULL.
There are many code segment don't assign NULL to the formal parameter after calling
the virBitmapFree function. This will bring potential risks.
A problem scenario:
1) The XML of VM contain the below segment:
<numatune>
<memory mode='preferred' placement='auto' nodeset='0'/>
</numatune>
2)virsh create the VM
3)In the virDomainDefParseXML funtion:
/* Ignore 'nodeset' if 'placement' is 'auto' finally */
if (placement_mode == VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_AUTO) {
virBitmapFree(def->numatune.memory.nodemask);
def->numatune.memory.nodemask = NULL;
}
4)Then, virsh destroy the VM. In the virDomainDefFree funtion, it also call the
virBitmapFree function to free the nodemask:
virBitmapFree(def->numatune.memory.nodemask);
But after this call, the value of def->numatune.memory.nodemask is still not NULL.
This will generate an exception.
>From d2b69b130bca89df85005d395c6d45d8df0b74f1 Mon Sep 17 00:00:00 2001
From: "Liuji (Jeremy)" <jeremy.liu(a)huawei.com>
Date: Fri, 6 Sep 2013 04:49:30 -0400
Subject: [PATCH] virBitmapFree: Change the function to a macro
The parameter of virBitmapFree function is just a pointer, not a pointer of pointer.
The second VIR_FREE on virBitmapFree only assign NULL to the formal parameter.
After calling the virBitmapFree function, the actual parameter are still not NULL.
There are many code segment don't assign NULL to the formal parameter after calling
the virBitmapFree function. This will bring potential risks.
Signed-off-by: Liuji (Jeremy) <jeremy.liu(a)huawei.com>
---
src/util/virbitmap.c | 21 ---------------------
src/util/virbitmap.h | 21 ++++++++++++++++-----
2 files changed, 16 insertions(+), 26 deletions(-)
diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c
index 7e1cd02..cde502f 100644
--- a/src/util/virbitmap.c
+++ b/src/util/virbitmap.c
@@ -40,13 +40,6 @@
#define VIR_FROM_THIS VIR_FROM_NONE
-struct _virBitmap {
- size_t max_bit;
- size_t map_len;
- unsigned long *map;
-};
-
-
#define VIR_BITMAP_BITS_PER_UNIT ((int) sizeof(unsigned long) * CHAR_BIT)
#define VIR_BITMAP_UNIT_OFFSET(b) ((b) / VIR_BITMAP_BITS_PER_UNIT)
#define VIR_BITMAP_BIT_OFFSET(b) ((b) % VIR_BITMAP_BITS_PER_UNIT)
@@ -88,20 +81,6 @@ virBitmapPtr virBitmapNew(size_t size)
return bitmap;
}
-/**
- * virBitmapFree:
- * @bitmap: previously allocated bitmap
- *
- * Free @bitmap previously allocated by virBitmapNew.
- */
-void virBitmapFree(virBitmapPtr bitmap)
-{
- if (bitmap) {
- VIR_FREE(bitmap->map);
- VIR_FREE(bitmap);
- }
-}
-
int virBitmapCopy(virBitmapPtr dst, virBitmapPtr src)
{
diff --git a/src/util/virbitmap.h b/src/util/virbitmap.h
index b682523..9b93b88 100644
--- a/src/util/virbitmap.h
+++ b/src/util/virbitmap.h
@@ -28,6 +28,22 @@
# include <sys/types.h>
+struct _virBitmap {
+ size_t max_bit;
+ size_t map_len;
+ unsigned long *map;
+};
+
+/*
+ * Free previously allocated bitmap
+ */
+#define virBitmapFree(bitmap) \
+ do { \
+ if (bitmap) { \
+ VIR_FREE((bitmap)->map); \
+ VIR_FREE(bitmap); \
+ } \
+ } while (0);
typedef struct _virBitmap virBitmap;
typedef virBitmap *virBitmapPtr;
@@ -38,11 +54,6 @@ typedef virBitmap *virBitmapPtr;
virBitmapPtr virBitmapNew(size_t size) ATTRIBUTE_RETURN_CHECK;
/*
- * Free previously allocated bitmap
- */
-void virBitmapFree(virBitmapPtr bitmap);
-
-/*
* Copy all bits from @src to @dst. The bitmap sizes
* must be the same
*/
--
1.8.1.4
11 years, 2 months
[libvirt] [PATCH] Update docs about user namespace for LXC
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Mention that user namespace can be enabled using the UID/GID
mapping schema.
Fix typo in link anchor for container args in domain XML docs.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/drvlxc.html.in | 14 +++++---------
docs/formatdomain.html.in | 2 +-
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index 640968f..1e6aa1d 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -40,15 +40,11 @@ primary "host" OS environment, the libvirt LXC driver requires that
certain kernel namespaces are compiled in. Libvirt currently requires
the 'mount', 'ipc', 'pid', and 'uts' namespaces to be available. If
separate network interfaces are desired, then the 'net' namespace is
-required. In the near future, the 'user' namespace will optionally be
-supported.
-</p>
-
-<p>
-<strong>NOTE: In the absence of support for the 'user' namespace,
-processes inside containers cannot be securely isolated from host
-process without the use of a mandatory access control technology
-such as SELinux or AppArmor.</strong>
+required. If the guest configuration declares a
+<a href="formatdomain.html#elementsOSContainer">UID or GID mapping</a>,
+the 'user' namespace will be enabled to apply these. <strong>A suitably
+configured UID/GID mapping is a pre-requisite to making containers
+secure, in the absence of sVirt confinement.</strong>
</p>
<h2><a name="init">Default container setup</a></h2>
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index f8bfe0b..971b059 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -263,7 +263,7 @@
<span class="since">Since 1.0.4</span></dd>
</dl>
- <h4><a name="eleemntsOSContainer">Container boot</a></h4>
+ <h4><a name="elementsOSContainer">Container boot</a></h4>
<p>
When booting a domain using container based virtualization, instead
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH] Add some notes about security considerations when using LXC
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Describe some of the issues to be aware of when configuring LXC
guests with security isolation as a goal.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/drvlxc.html.in | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index 1e6aa1d..dd2e93c 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -168,6 +168,99 @@ Further block or character devices will be made available to containers
depending on their configuration.
</p>
+<h2><a name="security">Security considerations</a></h2>
+
+<p>
+The libvirt LXC driver is fairly flexible in how it can be configured,
+and as such does not enforce a requirement for strict security
+separation between a container and the host. This allows it to be used
+in scenarios where only resource control capabilities are important,
+and resource sharing is desired. Applications wishing to ensure secure
+isolation between a container and the host must ensure that they are
+writing a suitable configuration
+</p>
+
+<h3><a name="securenetworking">Network isolation</a></h3>
+
+<p>
+If the guest configuration does not list any network interfaces,
+the <code>network</code> namespace will not be activated, and thus
+the container will see all the host's network interfaces. This will
+allow apps in the container to bind to/connect from TCP/UDP addresses
+and ports from the host OS. It also allows applications to access
+UNIX domain sockets associated with the host OS.
+</p>
+
+<p>
+It should be noted that <code>systemd</code> has a UNIX domain socket
+hich is used for communication by <code>systemctl</code>. Thus, with a
+container that shares the host's network namespace, it will be possible
+for a user in the container to invoke operations on <code>systemd</code>
+in the same way it could if outside the container. In particular this
+would allow <code>root</code> in the container to do anything including
+shutting down the host OS. If this is not desired, then applications
+should either specify the UID/GID mapping in the configuration to enable
+user namespaces, or should set the <code><privnet/></code> flag
+in the <code><features>....</features></code> element.
+</p>
+
+
+<h3><a name="securefs">Filesystem isolation</a></h3>
+
+<p>
+If the guest confuguration does not list any filesystems, then
+the container will be setup with a root filesystem that matches
+the host's root filesystem. As noted earlier, only a few locations
+such as <code>/dev</code>, <code>/proc</code> and <code>/sys</code>
+will be altered. This means that, in the absence of restrictions
+from sVirt, a process running as user/group N:M inside the container
+will be able to access alnmost exactly the same files as a process
+running as user/group N:M in the host.
+</p>
+
+<p>
+There are multiple options for restricting this. It is possible to
+simply map the existing root filesystem through to the container in
+read-only mode. Alternatively a completely separate root filesystem
+can be configured for the guest. In both cases, further sub-mounts
+can be applied to customize the content that is made visible. Note
+that in the absence of sVirt controls, it is still possible for the
+root user in a container to unmount any sub-mounts applied. The user
+namespace feature can also be used to restrict access to files based
+on the UID/GID mappings.
+</p>
+
+<h3><a name="secureusers">User and group isolation</a></h3>
+
+<p>
+If the guest configuration does not list any ID mapping, then the
+user and group IDs used inside the container will match those used
+outside the container. In addition, the capabilities associated with
+a process in the container will infer the same privileges they would
+for a process in the host. This has obvious implications for security,
+since a root user inside the container will be able to access any
+file owned by root that is visible to the container, and perform more
+or less any privileged kernel operation. In the absence of additional
+protection from sVirt, this means that the root user inside a container
+is effectively as powerful as the root user in the host. There is no
+security isolation of the root user.
+</p>
+
+<p>
+The ID mapping facility was introduced to allow for stricter control
+over the privileges of users inside the container. It allows apps to
+define rules such as "user ID 0 in the container maps to user ID 1000
+in the host". In addition the privileges associated with capabilities
+are somewhat reduced so that they can not be used to escape from the
+container environment. A full description of user namespaces is outside
+the scope of this document, however LWN has
+<a href="https://lwn.net/Articles/532593/">a good writeup on the topic</a>.
+From the libvirt POV, the key thing to remember is that defining an
+ID mapping for users and groups in the container XML configuration
+causes libvirt to activate the user namespace feature.
+</p>
+
+
<h2><a name="activation">Systemd Socket Activation Integration</a></h2>
<p>
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH] docs, comments: minor typo fixes
by Oskari Saarenmaa
Signed-off-by: Oskari Saarenmaa <os(a)ohmu.fi>
---
84 files changed, 97 insertions(+), 97 deletions(-)
diff --git a/ChangeLog-old b/ChangeLog-old
index b5d44d5..e07b11c 100644
--- a/ChangeLog-old
+++ b/ChangeLog-old
@@ -5504,7 +5504,7 @@ Tue Nov 11 15:51:42 GMT 2008 Daniel P. Berrange <berrange(a)redhat.com>
Mon Nov 10 12:05:42 GMT 2008 Daniel P. Berrange <berrange(a)redhat.com>
- * src/openvz_conf.c: Read filesytem template name from config
+ * src/openvz_conf.c: Read filesystem template name from config
files. Increase buffer size when parsing vzctl version number
Thu Nov 6 20:45:42 CET 2008 Jim Meyering <meyering(a)redhat.com>
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index f8bfe0b..d656836 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -254,7 +254,7 @@
to the (optional) ramdisk image in the host OS.</dd>
<dt><code>cmdline</code></dt>
<dd>The contents of this element specify arguments to be passed to
- the kernel (or installer) at boottime. This is often used to
+ the kernel (or installer) at boot time. This is often used to
specify an alternate primary console (eg serial port), or the
installation media source / kickstart file</dd>
<dt><code>dtb</code></dt>
@@ -426,7 +426,7 @@
process and virtual CPUs can be specified separately by
<code>cputune</code>. If attribute <code>emulatorpin</code>
of <code>cputune</code> is specified, <code>cpuset</code>
- specified by <code>vcpu</code> here will be ingored; Similarly,
+ specified by <code>vcpu</code> here will be ignored; Similarly,
For virtual CPUs which has <code>vcpupin</code> specified,
<code>cpuset</code> specified by <code>cpuset</code> here
will be ignored; For virtual CPUs which doesn't have
@@ -1235,7 +1235,7 @@
</tr>
<tr>
<td>relaxed</td>
- <td>Relax contstraints on timers</td>
+ <td>Relax constraints on timers</td>
<td> on, off</td>
<td><span class="since">1.0.0 (QEMU only)</span></td>
</tr>
@@ -1358,7 +1358,7 @@
<dd>
<p>
The <code>tickpolicy</code> attribute determines what
- happens whens QEMU misses a deadline for injecting a
+ happens when QEMU misses a deadline for injecting a
tick to the guest:
</p>
<dl>
@@ -2268,7 +2268,7 @@
<dt><code>readonly</code></dt>
<dd>
- Enables exporting filesytem as a readonly mount for guest, by
+ Enables exporting filesystem as a readonly mount for guest, by
default read-write access is given (currently only works for
QEMU/KVM driver).
</dd>
@@ -2385,7 +2385,7 @@
<h4><a name="elementsControllers">Controllers</a></h4>
<p>
- Depending on the guest architecture, some device busses can
+ Depending on the guest architecture, some device buses can
appear more than once, with a group of virtual devices tied to a
virtual controller. Normally, libvirt can automatically infer such
controllers without requiring explicit XML markup, but sometimes
@@ -3773,7 +3773,7 @@ qemu-kvm -net nic,model=? /dev/null
<span class="since">Since 1.1.0.</span> This uses the optional
<code>nativeMode</code> attribute on the <code><tag></code>
element: <code>nativeMode</code> may be set to 'tagged' or
- 'untagged'. The id atribute of the element sets the native vlan.
+ 'untagged'. The id attribute of the element sets the native vlan.
</p>
<h5><a name="elementLink">Modifying virtual link state</a></h5>
@@ -4134,7 +4134,7 @@ qemu-kvm -net nic,model=? /dev/null
"9216", and <code>heads</code> with value "1". By default, the first
video device in domain xml is the primary one, but the optional
attribute <code>primary</code> (<span class="since">since 1.0.2</span>)
- with value 'yes' can be used to mark the primary in cases of mutiple
+ with value 'yes' can be used to mark the primary in cases of multiple
video device. The non-primary must be type of "qxl". The optional
attribute <code>ram</code> (<span class="since">since
1.0.2</span>) is allowed for "qxl" type only and specifies
diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in
index 36c381a..63600b3 100644
--- a/docs/formatnetwork.html.in
+++ b/docs/formatnetwork.html.in
@@ -478,7 +478,7 @@
<span class="since">Since 1.1.0</span>. This uses the optional
<code>nativeMode</code> attribute on the <code><tag></code>
element: <code>nativeMode</code> may be set to 'tagged' or
- 'untagged'. The id atribute of the element sets the native vlan.
+ 'untagged'. The id attribute of the element sets the native vlan.
</p>
<p>
<code><vlan></code> elements can also be specified in
@@ -591,7 +591,7 @@
This particular route would *not* be preferred if there was
another existing rout on the system with the same address and
prefix but with a lower value for the metric. If there is a
- route in the host system configuration that should be overriden
+ route in the host system configuration that should be overridden
by a route in a virtual network whenever the virtual network is
running, the configuration for the system-defined route should
be modified to have a higher metric, and the route on the
diff --git a/docs/news.html.in b/docs/news.html.in
index 6a07eb0..8a6d5bd 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -13327,7 +13327,7 @@ and check the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a>
<h3>0.1.5: Sep 5 2006</h3>
<ul>
<li>Support for new hypercalls change in Xen changeset 86d26e6ec89b</li>
- <li>bug fixes: virParseUUID() was wrong, netwoking for paravirt guestsi
+ <li>bug fixes: virParseUUID() was wrong, networking for paravirt guestsi
(Daniel Berrange), virsh on non-existent domains (Daniel Berrange),
string cast bug when handling error in python (Pete Vetere), HTTP
500 xend error code handling (Pete Vetere and Daniel Berrange)</li>
diff --git a/po/af.po b/po/af.po
index 84878d6..746bc0e 100644
--- a/po/af.po
+++ b/po/af.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/am.po b/po/am.po
index be63bff..499bff6 100644
--- a/po/am.po
+++ b/po/am.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/ar.po b/po/ar.po
index 0de95c9..f7e75ba 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/as.po b/po/as.po
index fc7944a..66fdd51 100644
--- a/po/as.po
+++ b/po/as.po
@@ -21030,7 +21030,7 @@ msgstr "মেটাডাতাৰ দৈৰ্ঘ্য সীমাৰ বা
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' ত মিটাডাটা অসম্পূৰ্ণ"
#: src/test/test_driver.c:2064
diff --git a/po/be.po b/po/be.po
index 681acf7..3f2b73b 100644
--- a/po/be.po
+++ b/po/be.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/bg.po b/po/bg.po
index a3ad765..279be33 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -20623,7 +20623,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/bn.po b/po/bn.po
index 88a67ac..60ac095 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 5172b20..e718f0b 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -20783,7 +20783,7 @@ msgstr "মিটা-ডাটার দৈর্ঘ্য সীমা বহ
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s'-র মধ্যে উপস্থিত মিটাডাটা অসম্পূর্ণ"
#: src/test/test_driver.c:2064
diff --git a/po/bo.po b/po/bo.po
index 32e6ac4..abcf64b 100644
--- a/po/bo.po
+++ b/po/bo.po
@@ -20592,7 +20592,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/bs.po b/po/bs.po
index b7397dd..1390462 100644
--- a/po/bs.po
+++ b/po/bs.po
@@ -20620,7 +20620,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/ca.po b/po/ca.po
index f7e771d..a6bc3ab 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -20675,7 +20675,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/cs.po b/po/cs.po
index d8b1159..af9d566 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -20714,7 +20714,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/cy.po b/po/cy.po
index db7d71b..fa07a81 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/da.po b/po/da.po
index 993411b..48c555e 100644
--- a/po/da.po
+++ b/po/da.po
@@ -20623,7 +20623,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/de.po b/po/de.po
index 2433aef..c0e9d17 100644
--- a/po/de.po
+++ b/po/de.po
@@ -16933,7 +16933,7 @@ msgstr "getunnelte Offline-Migration ist nicht sinnvoll"
#: src/qemu/qemu_migration.c:2109 src/qemu/qemu_migration.c:2407
msgid "domain disappeared"
-msgstr "Doamin ist verschwunden"
+msgstr "Domain ist verschwunden"
#: src/qemu/qemu_migration.c:2321 src/qemu/qemu_migration.c:3400
msgid "cannot create pipe for tunnelled migration"
@@ -21623,7 +21623,7 @@ msgstr "Metadaten-Länge außerhalb des Bereichs"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "Unvollständige Metadaten in '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/el.po b/po/el.po
index 1e1803d..71ec4ca 100644
--- a/po/el.po
+++ b/po/el.po
@@ -20709,7 +20709,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/en_GB.po b/po/en_GB.po
index 2e4d418..3c66182 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -20622,7 +20622,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/es.po b/po/es.po
index f189277..f9972c8 100644
--- a/po/es.po
+++ b/po/es.po
@@ -21694,7 +21694,7 @@ msgstr "la longitud de los metadatos está fuera de rango"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "metadatos incompletos en '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/et.po b/po/et.po
index 5f9c18c..39e766e 100644
--- a/po/et.po
+++ b/po/et.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/eu_ES.po b/po/eu_ES.po
index 703bfed..ecbfc45 100644
--- a/po/eu_ES.po
+++ b/po/eu_ES.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/fa.po b/po/fa.po
index 1d56043..c8d24d2 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/fi.po b/po/fi.po
index b81d916..1db6ccd 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -20622,7 +20622,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/fr.po b/po/fr.po
index f164fd1..ad9d22b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -20672,7 +20672,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/gl.po b/po/gl.po
index 4cc8c36..7d09fab 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/gu.po b/po/gu.po
index 1304ee9..4332c8a 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -20945,7 +20945,7 @@ msgstr "સીમા ની બહાર મેટાડેટા ની લં
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' માં અપૂરતુ મેટાડેટા"
#: src/test/test_driver.c:2064
diff --git a/po/he.po b/po/he.po
index 1bcc34b..1614684 100644
--- a/po/he.po
+++ b/po/he.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/hi.po b/po/hi.po
index d966d2b..2e952bd 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -20902,7 +20902,7 @@ msgstr "मेटाडेटा की लंबाई परिसर से
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' में अपूर्ण मेटाडेटा"
#: src/test/test_driver.c:2064
diff --git a/po/hr.po b/po/hr.po
index e74c8e1..46b83bb 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -20623,7 +20623,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/hu.po b/po/hu.po
index bfba878..02289d3 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -20622,7 +20622,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/hy.po b/po/hy.po
index 79d4dd9..ab2e2b3 100644
--- a/po/hy.po
+++ b/po/hy.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/id.po b/po/id.po
index 6f1854a..b7948b2 100644
--- a/po/id.po
+++ b/po/id.po
@@ -20622,7 +20622,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/is.po b/po/is.po
index baef4c6..8bbcec3 100644
--- a/po/is.po
+++ b/po/is.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/it.po b/po/it.po
index d2469c4..271da4e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -20819,7 +20819,7 @@ msgstr "lunghezza dei metadata fuori dalla gamma"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "metadata incompleti in '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/ja.po b/po/ja.po
index 7457281..9cd07af 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -21449,7 +21449,7 @@ msgstr "メタデータの長さは範囲外です"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' にあるメタ情報が不完全です"
#: src/test/test_driver.c:2064
diff --git a/po/ka.po b/po/ka.po
index 0c04465..ecfbbf4 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/kn.po b/po/kn.po
index ae343b0..1b5c86a 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -20910,7 +20910,7 @@ msgstr "ಮೆಟಾಡಾಟಾದ ಗಾತ್ರವು ವ್ಯಾಪ್ತ
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' ನಲ್ಲಿ ಅಪೂರ್ಣವಾದ ಮೆಟಾಡಾಟಾ"
#: src/test/test_driver.c:2064
diff --git a/po/ko.po b/po/ko.po
index 8de0d48..583c149 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -20701,7 +20701,7 @@ msgstr "메타데이터 길이가 범위를 벗어남"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s'안에 완전하지 않은 메타데이터"
#: src/test/test_driver.c:2064
diff --git a/po/ku.po b/po/ku.po
index 422ff15..0bf4cc3 100644
--- a/po/ku.po
+++ b/po/ku.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/libvirt.pot b/po/libvirt.pot
index 8c81c40..b900df6 100644
--- a/po/libvirt.pot
+++ b/po/libvirt.pot
@@ -20592,7 +20592,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/lo.po b/po/lo.po
index 93f5e42..1e04889 100644
--- a/po/lo.po
+++ b/po/lo.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/lt.po b/po/lt.po
index a9902d5..24d9f83 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/lv.po b/po/lv.po
index e83d44c..2a68e75 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/mk.po b/po/mk.po
index 3273217..166fa24 100644
--- a/po/mk.po
+++ b/po/mk.po
@@ -20623,7 +20623,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/ml.po b/po/ml.po
index 8fd9d70..d337f5a 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -21159,7 +21159,7 @@ msgstr "മെറ്റാഡേറ്റായുടെ വ്യാപ്ത
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s'-ല് പൂര്ത്തിയാകാത്ത മെറ്റഡേറ്റാ"
#: src/test/test_driver.c:2064
diff --git a/po/mr.po b/po/mr.po
index 0b2eae6..d1775a5 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -20873,7 +20873,7 @@ msgstr "मेटाडेटा"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' अंतर्गत अपूर्ण मेटाडेटा आढळले"
#: src/test/test_driver.c:2064
diff --git a/po/ms.po b/po/ms.po
index d8b067e..2df16a7 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -20605,7 +20605,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/my.po b/po/my.po
index a4545ba..0abf143 100644
--- a/po/my.po
+++ b/po/my.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/nb.po b/po/nb.po
index 60e7c41..109fc30 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/nl.po b/po/nl.po
index c230958..4c6dc81 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -20860,7 +20860,7 @@ msgstr "lengte van metadata buiten de reeks"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "onvolledige metadata in '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/nn.po b/po/nn.po
index 8989f9b..fa5fc97 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/nso.po b/po/nso.po
index 16246fe..229d76f 100644
--- a/po/nso.po
+++ b/po/nso.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/or.po b/po/or.po
index 934c21e..a8c95f2 100644
--- a/po/or.po
+++ b/po/or.po
@@ -20663,7 +20663,7 @@ msgstr "ଅଧିତଥ୍ୟ ଲମ୍ବର ସୀମା ବାହାରେ"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' ରେ ଅସମ୍ପୂର୍ଣ୍ଣ ଅଧିତଥ୍ୟ"
#: src/test/test_driver.c:2064
diff --git a/po/pa.po b/po/pa.po
index 6345a0f..3eb002b 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -20706,7 +20706,7 @@ msgstr "ਮੈਟਾਡਾਟਾ ਦੀ ਲੰਬਾਈ ਰੇਂਜ ਤੋਂ
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' ਅਧੂਰਾ ਮੈਟਾਡਾਟਾ"
#: src/test/test_driver.c:2064
diff --git a/po/pl.po b/po/pl.po
index 65ad1f0..72f2e50 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -21042,7 +21042,7 @@ msgstr "długość metadanych jest spoza zakresu"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "niepełne metadane w \"%s\""
#: src/test/test_driver.c:2064
diff --git a/po/pt.po b/po/pt.po
index 4d22356..3bf93b7 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -20622,7 +20622,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 6b5448e..32c7d06 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -21529,7 +21529,7 @@ msgstr "comprimento dos meta dados fora do intervalo"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "meta dados incompletos em \"%s\""
#: src/test/test_driver.c:2064
diff --git a/po/ro.po b/po/ro.po
index c3f5a77..14e1f07 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/ru.po b/po/ru.po
index d757aad..88f5ec7 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -20835,7 +20835,7 @@ msgstr "длина метаданных выходит за пределы ди
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "незавершенные метаданные в «%s»"
#: src/test/test_driver.c:2064
diff --git a/po/si.po b/po/si.po
index e216364..078e059 100644
--- a/po/si.po
+++ b/po/si.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sk.po b/po/sk.po
index 98ac256..cb126fd 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sl.po b/po/sl.po
index d4a9325..ea0877d 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -20619,7 +20619,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sq.po b/po/sq.po
index b1f6a04..e661560 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sr.po b/po/sr.po
index a26576c..8d50483 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -20682,7 +20682,7 @@ msgstr "дужина мета податка је ван опсега"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sr(a)latin.po b/po/sr(a)latin.po
index 3cfaacb..d2904b8 100644
--- a/po/sr(a)latin.po
+++ b/po/sr(a)latin.po
@@ -20683,7 +20683,7 @@ msgstr "dužina meta podatka je van opsega"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/sv.po b/po/sv.po
index f239425..55ff394 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -20772,7 +20772,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/ta.po b/po/ta.po
index 5f6ae0e..ca41fe8 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -21240,7 +21240,7 @@ msgstr "மெட்டா தரவின் எண்ணிக்கை அத
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s'ல் முடியாத மெட்டாதரவு"
#: src/test/test_driver.c:2064
diff --git a/po/te.po b/po/te.po
index 4c87855..7b05c7f 100644
--- a/po/te.po
+++ b/po/te.po
@@ -20818,7 +20818,7 @@ msgstr "మెటాడాటా యొక్క పొడవు స్థాయ
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s'నందు అంసపూర్తి మెటాడాటా"
#: src/test/test_driver.c:2064
diff --git a/po/th.po b/po/th.po
index fb56621..c3a1e90 100644
--- a/po/th.po
+++ b/po/th.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/tr.po b/po/tr.po
index 154278f..122da0e 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/uk.po b/po/uk.po
index 5ea7984..c97d740 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -21894,7 +21894,7 @@ msgstr "довжина метаданих не належить діапазон
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "неповні метадані у «%s»"
#: src/test/test_driver.c:2064
diff --git a/po/ur.po b/po/ur.po
index 403bcee..5390817 100644
--- a/po/ur.po
+++ b/po/ur.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/vi.po b/po/vi.po
index ef6a165..01b94da 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -20833,7 +20833,7 @@ msgstr "độ dài dữ liệu meta vượt miền"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "dữ liệu meta không hoàn thiện trong '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/vi_VN.po b/po/vi_VN.po
index 66f5946..d2e69a0 100644
--- a/po/vi_VN.po
+++ b/po/vi_VN.po
@@ -20834,7 +20834,7 @@ msgstr "độ dài dữ liệu meta vượt miền"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "dữ liệu meta không hoàn thiện trong '%s'"
#: src/test/test_driver.c:2064
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 28d1411..22c2d6d 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -20697,7 +20697,7 @@ msgstr "元数据长度超出范围"
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr "'%s' 中不完整的元数据"
#: src/test/test_driver.c:2064
@@ -24508,7 +24508,7 @@ msgstr "指定未知驱动程序路径 '%s' (尝试:vbox:///session)"
#: src/vbox/vbox_driver.c:182 src/vbox/vbox_tmpl.c:1034
#, c-format
msgid "unknown driver path '%s' specified (try vbox:///system)"
-msgstr "指定未知驱动程序路径 '%s' (尝试:vbox:///systme)"
+msgstr "指定未知驱动程序路径 '%s' (尝试:vbox:///system)"
#: src/vbox/vbox_driver.c:188
msgid "unable to initialize VirtualBox driver API"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 0edb5b8..d9099b2 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -20625,7 +20625,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/po/zu.po b/po/zu.po
index 3266988..2b0f598 100644
--- a/po/zu.po
+++ b/po/zu.po
@@ -20618,7 +20618,7 @@ msgstr ""
#: src/test/test_driver.c:1992
#, c-format
-msgid "incomplete metdata in '%s'"
+msgid "incomplete metadata in '%s'"
msgstr ""
#: src/test/test_driver.c:2064
diff --git a/python/generator.py b/python/generator.py
index fb321c6..a91dde8 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -510,11 +510,11 @@ skip_function = (
'virStreamRecv', # overridden in libvirt-override-virStream.py
'virStreamSend', # overridden in libvirt-override-virStream.py
- 'virConnectUnregisterCloseCallback', # overriden in virConnect.py
- 'virConnectRegisterCloseCallback', # overriden in virConnect.py
+ 'virConnectUnregisterCloseCallback', # overridden in virConnect.py
+ 'virConnectRegisterCloseCallback', # overridden in virConnect.py
- 'virDomainCreateXMLWithFiles', # overriden in virConnect.py
- 'virDomainCreateWithFiles', # overriden in virDomain.py
+ 'virDomainCreateXMLWithFiles', # overridden in virConnect.py
+ 'virDomainCreateWithFiles', # overridden in virDomain.py
# 'Ref' functions have no use for bindings users.
"virConnectRef",
diff --git a/src/libvirt.c b/src/libvirt.c
index 07a3fd5..665b30b 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -9058,7 +9058,7 @@ error:
* Define a domain, but does not start it.
* This definition is persistent, until explicitly undefined with
* virDomainUndefine(). A previous definition for this domain would be
- * overriden if it already exists.
+ * overridden if it already exists.
*
* Some hypervisors may prevent this operation if there is a current
* block copy operation on a transient domain with the same id as the
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index c225618..f9eee44 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -1989,7 +1989,7 @@ testDomainRestoreFlags(virConnectPtr conn,
goto cleanup;
if (saferead(fd, xml, len) != len) {
virReportSystemError(errno,
- _("incomplete metdata in '%s'"), path);
+ _("incomplete metadata in '%s'"), path);
goto cleanup;
}
xml[len] = '\0';
diff --git a/src/util/virpci.c b/src/util/virpci.c
index be50b4f..92927aa 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -670,7 +670,7 @@ virPCIDeviceIsParent(virPCIDevicePtr dev, virPCIDevicePtr check, void *data)
goto cleanup;
}
- /* otherwise, SRIOV allows VFs to be on different busses then their PFs.
+ /* otherwise, SRIOV allows VFs to be on different buses than their PFs.
* In this case, what we need to do is look for the "best" match; i.e.
* the most restrictive match that still satisfies all of the conditions.
*/
--
1.8.3.1
11 years, 2 months
[libvirt] [PATCH 0/2] fix configure to require yajl if qemu is new enough
by Eric Blake
After yet another debug session on IRC about failure to use qemu
because yajl-devel wasn't installed, I came up with these patches.
The first is just preparation (no change to generated code); and
with the second, I validated that uninstalling yajl-devel and then
trying to configure once again gives me the desired:
checking for yajl_tree_parse in -lyajl... no
configure: error: You must install the libyajl library & headers to compile libvirt
[I can't claim build-breaker or trivial rule for either of these
patches, but as I am also the autoconf guru around here, I won't
be surprised if the extent of other's reviews is "yep, I installed
it and it did what you said"...]
And yes, I tested on RHEL 5 that it still works with autoconf 2.59.
Eric Blake (2):
build: avoid obsolete AC_HELP_STRING
build: fix regression in requiring yajl for new enough qemu
configure.ac | 221 +++++++++++++++++++++++++++++++++++-----------------
m4/virt-apparmor.m4 | 4 +-
m4/virt-lib.m4 | 12 +--
m4/virt-selinux.m4 | 3 +-
4 files changed, 158 insertions(+), 82 deletions(-)
--
1.8.3.1
11 years, 2 months