[libvirt] [PATCH] ESX: Fix DISPATCH_FREE generation code to free all extended objects
by Ata E Husain Bohra
Python code generator "generate_source" section that handles
code generation to "free" inherited objects needs to generate
DISPATCH_FREE calls for all extended_by objects.
---
src/esx/esx_vi_generator.py | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/src/esx/esx_vi_generator.py b/src/esx/esx_vi_generator.py
index af4e7e8..7a7cf76 100755
--- a/src/esx/esx_vi_generator.py
+++ b/src/esx/esx_vi_generator.py
@@ -4,6 +4,7 @@
# esx_vi_generator.py: generates most of the SOAP type mapping code
#
# Copyright (C) 2010-2012 Matthias Bolte <matthias.bolte(a)googlemail.com>
+# Copyright (C) 2013 Ata E Husain Bohra <ata.husain(a)hotmail.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -785,9 +786,7 @@ class Object(Type):
source += "ESX_VI__TEMPLATE__DYNAMIC_FREE(%s,\n" % self.name
source += "{\n"
- for extended_by in self.extended_by:
- source += " ESX_VI__TEMPLATE__DISPATCH__FREE(%s)\n" \
- % extended_by
+ source += recurse_dispatch(self, "ESX_VI__TEMPLATE__DISPATCH__FREE")
source += "},\n"
source += "{\n"
@@ -1285,6 +1284,22 @@ class ManagedObject(Type):
+def recurse_dispatch(object, text):
+
+ source = ""
+
+ if object.extended_by is None:
+ return source
+
+ for extended_by in object.extended_by:
+ source += " %s(%s)\n" % (text, extended_by)
+ child = objects_by_name[extended_by]
+ source += recurse_dispatch(child, text)
+
+ return source
+
+
+
class Enum(Type):
FEATURE__ANY_TYPE = (1 << 1)
FEATURE__SERIALIZE = (1 << 2)
--
1.7.9.5
11 years, 6 months
[libvirt] [PATCH 2/2] Make detect_scsi_host_caps a function on all architectures
by Guido Günther
In the non linux case some callers like gather_scsi_host_caps needed the
return code of -1 while others like update_caps needed an emtpy
statement (to avoid a "statement without effect" warning). This is much
simpler solved by using a function instead of a define.
---
src/node_device/node_device_driver.h | 11 +----------
src/node_device/node_device_linux_sysfs.c | 10 +++++++++-
2 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h
index b6c6f18..9e97b7d 100644
--- a/src/node_device/node_device_driver.h
+++ b/src/node_device/node_device_driver.h
@@ -51,16 +51,7 @@ void nodeDeviceUnlock(virNodeDeviceDriverStatePtr driver);
int nodedevRegister(void);
-# ifdef __linux__
-
-# define detect_scsi_host_caps(d) detect_scsi_host_caps_linux(d)
-int detect_scsi_host_caps_linux(union _virNodeDevCapData *d);
-
-# else /* __linux__ */
-
-# define detect_scsi_host_caps(d) (-1)
-
-# endif /* __linux__ */
+int detect_scsi_host_caps(union _virNodeDevCapData *d);
int nodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags);
int nodeListDevices(virConnectPtr conn, const char *cap, char **const names,
diff --git a/src/node_device/node_device_linux_sysfs.c b/src/node_device/node_device_linux_sysfs.c
index 71c7172..5228a01 100644
--- a/src/node_device/node_device_linux_sysfs.c
+++ b/src/node_device/node_device_linux_sysfs.c
@@ -39,7 +39,7 @@
#ifdef __linux__
int
-detect_scsi_host_caps_linux(union _virNodeDevCapData *d)
+detect_scsi_host_caps(union _virNodeDevCapData *d)
{
char *max_vports = NULL;
char *vports = NULL;
@@ -128,4 +128,12 @@ cleanup:
return ret;
}
+#else
+
+int
+detect_scsi_host_caps(union _virNodeDevCapData *d ATTRIBUTE_UNUSED)
+{
+ return -1;
+}
+
#endif /* __linux__ */
--
1.7.10.4
11 years, 6 months
[libvirt] [PATCH] qemu: fix stupid typos in VFIO cgroup setup/teardown
by Laine Stump
I must have looked at this a couple dozen times before I noticed it
had "!=" instead of "==". Not doing this setup prevented qemu from
doing anything with the vfio group device.
---
Pushed under trivial rule.
src/qemu/qemu_cgroup.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 4819cfe..9c45b76 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -237,7 +237,7 @@ qemuSetupHostdevCGroup(virDomainObjPtr vm,
switch (dev->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
if (dev->source.subsys.u.pci.backend
- != VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
+ == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
int rc;
pci = virPCIDeviceNew(dev->source.subsys.u.pci.addr.domain,
@@ -323,7 +323,7 @@ qemuTeardownHostdevCgroup(virDomainObjPtr vm,
switch (dev->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
if (dev->source.subsys.u.pci.backend
- != VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
+ == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
int rc;
pci = virPCIDeviceNew(dev->source.subsys.u.pci.addr.domain,
--
1.7.11.7
11 years, 6 months
[libvirt] [PATCH] Add docs about cgroups layout and usage
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Describe the new cgroups layout, how to customize placement
of guests and what virsh commands are used to access the
parameters.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/cgroups.html.in | 285 +++++++++++++++++++++++++++++++++++++++++++++++++++
docs/sitemap.html.in | 4 +
2 files changed, 289 insertions(+)
create mode 100644 docs/cgroups.html.in
diff --git a/docs/cgroups.html.in b/docs/cgroups.html.in
new file mode 100644
index 0000000..3be0672
--- /dev/null
+++ b/docs/cgroups.html.in
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
+ <h1>Control Groups Resource Management</h1>
+
+ <ul id="toc"></ul>
+
+ <p>
+ The QEMU and LXC drivers make use of the Linux "Control Groups" facility
+ for applying resource management to their virtual machines & containers.
+ </p>
+
+ <h2><a name="requiredControllers">Required controllers</a></h2>
+
+ <p>
+ The control groups filesystem supports multiple "controllers". By default
+ the init system (such as systemd) should mount all controllers compiled
+ into the kernel at <code>/sys/fs/cgroup/$CONTROLLER-NAME</code>. Libvirt
+ will never attempt to mount any controllers itself, merely detect where
+ they are mounted.
+ </p>
+
+ <p>
+ The QEMU driver is capable of using the <code>cpuset</code>,
+ <code>cpu</code>, <code>memory</code>, <code>blkio</code> and
+ <code>devices</code> controllers. None of them are compulsory.
+ If any controller is not mounted, the resource management APIs
+ which use it will cease to operate. It is possible to explicitly
+ turn off use of a controller, even when mounted, via the
+ <code>/etc/libvirt/qemu.conf</code> configuration file.
+ </p>
+
+ <p>
+ The LXC driver is capable of using the <code>cpuset</code>,
+ <code>cpu</code>, <code>cpuset</code>, <code>freezer</code>,
+ <code>memory</code>, <code>blkio</code> and <code>devices</code>
+ controllers. The <code>cpuset</code>, <code>devices</code>
+ and <code>memory</code> controllers are compulsory. Without
+ them mounted, no containers can be started. If any of the
+ other controllers are not mounted, the resource management APIs
+ which use them will cease to operate.
+ </p>
+
+ <h2><a name="currentLayout">Current cgroups layout</a></h2>
+
+ <p>
+ As of libvirt 1.0.5 or later, the cgroups layout created by libvirt has been
+ simplified, in order to facilitate the setup of resource control policies by
+ administrators / management applications. The layout is based on the concepts of
+ "partitions" and "consumers". Each virtual machine or container is a consumer,
+ and has a corresponding cgroup named <code>$VMNAME.libvirt-{qemu,lxc}</code>.
+ Each consumer is associated with exactly one partition, which also have a
+ corresponding cgroup usually named <code>$PARTNAME.partition</code>. The
+ exceptions to this naming rule are the three top level default partitions,
+ named <code>/system</code> (for system services), <code>/user</code> (for
+ user login sessions) and <code>/machine</code> (for virtual machines and
+ containers). By default every consumer will of course be associated with
+ the <code>/machine</code> partition. This leads to a hierarchy that looks
+ like
+ </p>
+
+ <pre>
+$ROOT
+ |
+ +- system
+ | |
+ | +- libvirtd.service
+ |
+ +- machine
+ |
+ +- vm1.libvirt-qemu
+ | |
+ | +- emulator
+ | +- vcpu0
+ | +- vcpu1
+ |
+ +- vm2.libvirt-qemu
+ | |
+ | +- emulator
+ | +- vcpu0
+ | +- vcpu1
+ |
+ +- vm3.libvirt-qemu
+ | |
+ | +- emulator
+ | +- vcpu0
+ | +- vcpu1
+ |
+ +- container1.libvirt-lxc
+ |
+ +- container2.libvirt-lxc
+ |
+ +- container3.libvirt-lxc
+ </pre>
+
+ <p>
+ The default cgroups layout ensures that, when there is contention for
+ CPU time, it is shared equally between system services, user sessions
+ and virtual machines / containers. This prevents virtual machines from
+ locking the administrator out of the host, or impacting execution of
+ system services. ConverselyWhen there is no contention from
+ system services / user sessions, it is possible for virtual machines
+ to fully utilize the host CPUs.
+ </p>
+
+ <h2><a name="customPartiton">Using custom partitions</a></h2>
+
+ <p>
+ If there is a need to apply resource constraints to groups of
+ virtual machines or containers, then the single default
+ partition <code>/machine</code> may not be sufficiently
+ flexible. The administrator may wish to sub-divide the
+ default partition, for example into "testing" and "production"
+ partitions, and then assign each guest to a specific
+ sub-partition. This is achieved via a small element addition
+ to the guest domain XML config, just below the main <code>domain</code>
+ element
+ </p>
+
+ <pre>
+ ...
+ <resource>
+ <partition>/machine/production</partition>
+ </resource>
+ ...
+ </pre>
+
+ <p>
+ Libvirt will not auto-create the cgroups directory to back
+ this partition. In the future, libvirt / virsh will provide
+ APIs / commands to create custom partitions, but currently
+ this is left as an exercise for the administrator. For
+ example, given the XML config above, the admin would need
+ to create a cgroup named '/machine/production.partition'
+ </p>
+
+ <pre>
+# cd /sys/fs/cgroup
+# for i in blkio cpu,cpuacct cpuset devices freezer memory net_cls perf_event
+ do
+ mkdir $i/machine/production.partition
+ done
+# for i in cpuset.cpus cpuset.mems
+ do
+ cat cpuset/machine/$i > cpuset/machine/production.partition/$i
+ done
+</pre>
+
+ <p>
+ <strong>Note:</strong> the cgroups directory created as a ".partition"
+ suffix, but the XML config does not require this suffix.
+ </p>
+
+ <p>
+ <strong>Note:</strong> the ability to place guests in custom
+ partitions is only available with libvirt >= 1.0.5, using
+ the new cgroup layout. The legacy cgroups layout described
+ later did not support customization per guest.
+ </p>
+
+ <h2><a name="resourceAPIs">Resource management APIs/commands</a></h2>
+
+ <p>
+ Since libvirt aims to provide an API which is portable across
+ hypervisors, the concept of cgroups is not exposed directly
+ in the API or XML configuration. It is considered to be an
+ internal implementation detail. Instead libvirt provides a
+ set of APIs for applying resource controls, which are then
+ mapped to corresponding cgroup tunables
+ </p>
+
+ <h3>Scheduler tuning</h3>
+
+ <p>
+ Parameters from the "cpu" controller are exposed via the
+ <code>schedinfo</code> command in virsh.
+ </p>
+
+ <pre>
+# virsh schedinfo demo
+Scheduler : posix
+cpu_shares : 1024
+vcpu_period : 100000
+vcpu_quota : -1
+emulator_period: 100000
+emulator_quota : -1</pre>
+
+
+ <h3>Block I/O tuning</h3>
+
+ <p>
+ Parameters from the "blkio" controller are exposed via the
+ <code>bkliotune</code> command in virsh.
+ </p>
+
+
+ <pre>
+# virsh blkiotune demo
+weight : 500
+device_weight : </pre>
+
+ <h3>Memory tuning</h3>
+
+ <p>
+ Parameters from the "memory" controller are exposed via the
+ <code>memtune</code> command in virsh.
+ </p>
+
+ <pre>
+# virsh memtune demo
+hard_limit : 580192
+soft_limit : unlimited
+swap_hard_limit: unlimited
+ </pre>
+
+ <h3>Network tuning</h3>
+
+ <p>
+ The <code>net_cls</code> is not currently used. Instead traffic
+ filter policies are set directly against individual virtual
+ network interfaces.
+ </p>
+
+ <h2><a name="legacyLayout">Legacy cgroups layout</a></h2>
+
+ <p>
+ Prior to libvirt 1.0.5, the cgroups layout created by libvirt was different
+ from that described above, and did not allow for administrator customization.
+ Libvirt used a fixed, 3-level hiearchy <code>libvirt/{qemu,lxc}/$VMNAME</code>
+ which was rooted at the point in the hiearchy where libvirtd itself was
+ located. So if libvirtd was placed at <code>/system/libvirtd.service</code>
+ by systemd, the groups for each virtual machine / container would be located
+ at <code>/system/libvirtd.service/libvirt/{qemu,lxc}/$VMNAME</code>. In addition
+ to this, the QEMU drivers further child groups for each vCPU thread and the
+ emulator thread(s). This leads to a hiearchy that looked like
+ </p>
+
+
+ <pre>
+$ROOT
+ |
+ +- system
+ |
+ +- libvirtd.service
+ |
+ +- libvirt
+ |
+ +- qemu
+ | |
+ | +- vm1
+ | | |
+ | | +- emulator
+ | | +- vcpu0
+ | | +- vcpu1
+ | |
+ | +- vm2
+ | | |
+ | | +- emulator
+ | | +- vcpu0
+ | | +- vcpu1
+ | |
+ | +- vm3
+ | |
+ | +- emulator
+ | +- vcpu0
+ | +- vcpu1
+ |
+ +- lxc
+ |
+ +- container1
+ |
+ +- container2
+ |
+ +- container3
+ </pre>
+
+ <p>
+ Although current releases are much improved, historically the use of deep
+ hiearchies has had a significant negative impact on the kernel scalability.
+ The legacy libvirt cgroups layout highlighted these problems, to the detriment
+ of the performance of virtual machines and containers.
+ </p>
+ </body>
+</html>
diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index 619e4a1..cb7cc5b 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -89,6 +89,10 @@
<span>Ensuring exclusive guest access to disks</span>
</li>
<li>
+ <a href="cgroups.html">CGroups</a>
+ <span>Control groups integration</span>
+ </li>
+ <li>
<a href="hooks.html">Hooks</a>
<span>Hooks for system specific management</span>
</li>
--
1.8.1.4
11 years, 6 months
[libvirt] [sandbox PATCH] allow to use a templated unit in virt-sandbox
by Michael Scherer
This permit to create a templated unit inside the sandbox,
using the sandbox name as a variable and so running the same
unit with a different configuration without too much hassle.
For example, someone could have several different configuration of
website in /etc/nginx/websites.d/ and have each of them started in
a different sandbox, with a sample templated unit using the sandbox
name as a option to read the proper configuration file directly.
---
bin/virt-sandbox-service | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index 2096be1..0d89b54 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -345,6 +345,10 @@ class GenericContainer(Container):
def set_command(self, command):
self.config.set_command(command)
+
+def is_template_unit(unit):
+ return '@' in unit
+
class SystemdContainer(Container):
IGNORE_DIRS = [ "/var/run/", "/etc/logrotate.d/", "/etc/pam.d" ]
DEFAULT_DIRS = [ "/etc", "/var" ]
@@ -624,14 +628,22 @@ WantedBy=%(TARGET)s
source = "%s%s" % ( self.dest, d)
self.add_bind_mount(source, d)
+ def get_expanded_unit_template(self, unit):
+ return unit.replace('@', '@' + self.name)
+
def create_container_unit(self, src, dest, unit):
- fd = open(dest + "/" + unit, "w")
- fd.write(""".include %s
+ if is_template_unit(unit):
+ expanded_unit_name = self.get_expanded_unit_template(unit)
+ os.symlink(src, dest + "/" + expanded_unit_name)
+ shutil.copy(src, dest + "/" + unit)
+ else:
+ fd = open(dest + "/" + unit, "w")
+ fd.write(""".include %s
[Service]
PrivateTmp=false
PrivateNetwork=false
""" % src )
- fd.close()
+ fd.close()
def gen_content(self):
if self.copy:
@@ -677,6 +689,8 @@ PrivateNetwork=false
for i, src in self.unit_file_list:
self.create_container_unit(src, self.dest + unitdir, i)
+ if is_template_unit(i):
+ i = self.get_expanded_unit_template(i)
os.symlink("../" + i, self.dest + tgtdir + "/" + i)
tgtfile = unitdir + "/multi-user.target"
--
1.8.2.1
11 years, 6 months
[libvirt] libvirt 'xdr_u_int64_t' undeclared error
by appzer0
Hello list,
I don't know if I should file a bug so I'm asking here: I got problems
building libvirt with obsolete headers from glibc + libtirpc headers.
I met the "'xdr_u_int64_t' undeclared" error as it seems XDR_CFLAGS are
never taken into account, no matter I "export" them, tweaks CFLAGS or
add -I/usr/include/tirpc flags.
Building on x86_64, libvirt 1.0.4 and 1.0.5 have the same behaviour here.
Header is present:
$ grep xdr_u_int64_t $(find /usr/include) 2>/dev/null
/usr/include/tirpc/rpc/xdr.h:extern bool_t xdr_u_int64_t(XDR *,
u_int64_t *);
Here is the log. Please notice the empty "xdr:" line in the configure's
summary :
---
+ CFLAGS='-O2 -fPIC -pipe'
+ CXXFLAGS='-O2 -fPIC -pipe'
+ LDFLAGS=-I/usr/include/tirpc
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
--libdir=/usr/lib64 --libexecdir=/usr/lib64/libvirt --mandir=/usr/man
--infodir=/usr/info --docdir=/usr/doc/libvirt-1.0.5
--with-init-script=systemd --with-interface --with-storage-lvm
--with-udev --build=x86_64-0-linux-gnu
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-0-linux-gnu
checking host system type... x86_64-0-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking whether gcc and cc understand -c and -o together... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for gcc option to accept ISO C99... -std=gnu99
checking for gcc -std=gnu99 option to accept ISO Standard C... (cached)
-std=gnu99
configure: autobuild project... libvirt
configure: autobuild revision... 1.0.5
configure: autobuild hostname... poopy
configure: autobuild timestamp... 20130503T072146Z
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking features.h usability... yes
checking features.h presence... yes
checking for features.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for sys/stat.h... (cached) yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking stdio_ext.h usability... yes
checking stdio_ext.h presence... yes
checking for stdio_ext.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking xlocale.h usability... yes
checking xlocale.h presence... yes
checking for xlocale.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking pty.h usability... yes
checking pty.h presence... yes
checking for pty.h... yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking for inttypes.h... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking spawn.h usability... yes
checking spawn.h presence... yes
checking for spawn.h... yes
checking whether the preprocessor supports include_next... yes
checking whether system header files limit the line length... no
checking whether <sys/socket.h> is self-contained... yes
checking for shutdown... yes
checking whether <sys/socket.h> defines the SHUT_* macros... yes
checking for struct sockaddr_storage... yes
checking for sa_family_t... yes
checking for struct sockaddr_storage.ss_family... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for C/C++ restrict keyword... __restrict
checking whether <wchar.h> uses 'inline' correctly... yes
checking for btowc... yes
checking for canonicalize_file_name... yes
checking for getcwd... yes
checking for readlink... yes
checking for realpath... yes
checking for readlinkat... yes
checking for chown... yes
checking for fchown... yes
checking for _set_invalid_parameter_handler... no
checking for fcntl... yes
checking for symlink... yes
checking for ffs... yes
checking for ffsl... yes
checking for isblank... yes
checking for iswctype... yes
checking for mbsrtowcs... yes
checking for mempcpy... yes
checking for wmemchr... yes
checking for wmemcpy... yes
checking for wmempcpy... yes
checking for fpurge... no
checking for __fpurge... yes
checking for __freading... yes
checking for fsync... yes
checking for getdelim... yes
checking for getdtablesize... yes
checking for __fsetlocking... yes
checking for tcgetattr... yes
checking for tcsetattr... yes
checking for gettimeofday... yes
checking for lstat... yes
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mprotect... yes
checking for mkostemp... yes
checking for mkostemps... yes
checking for nl_langinfo... yes
checking for recvmsg... yes
checking for sendmsg... yes
checking for strerror_r... yes
checking for __xpg_strerror_r... yes
checking for pipe... yes
checking for pipe2... yes
checking for posix_openpt... yes
checking for pthread_sigmask... no
checking for wcscoll... yes
checking for secure_getenv... no
checking for setenv... yes
checking for sigaction... yes
checking for sigaltstack... yes
checking for siginterrupt... yes
checking for sleep... yes
checking for snprintf... yes
checking for strdup... yes
checking for catgets... yes
checking for strndup... yes
checking for strptime... yes
checking for localtime_r... yes
checking for timegm... yes
checking for usleep... yes
checking for vasnprintf... no
checking for wcrtomb... yes
checking for iswcntrl... yes
checking for getegid... yes
checking for ftruncate... yes
checking for newlocale... yes
checking for getgrouplist... yes
checking for socketpair... yes
checking for posix_spawn... yes
checking for ptsname_r... yes
checking for shutdown... (cached) yes
checking for wctob... yes
checking for cfmakeraw... yes
checking for geteuid... yes
checking for getgid... yes
checking for getgrnam_r... yes
checking for getmntent_r... yes
checking for getpwuid_r... yes
checking for getuid... yes
checking for initgroups... yes
checking for kill... yes
checking for mmap... yes
checking for posix_fallocate... yes
checking for posix_memalign... yes
checking for prlimit... yes
checking for regexec... yes
checking for sched_getaffinity... yes
checking for setns... yes
checking for setrlimit... yes
checking for nl_langinfo and CODESET... yes
checking for a traditional french locale... fr_FR
checking whether malloc, realloc, calloc are POSIX compliant... yes
checking whether // is distinct from /... no
checking whether realpath works... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether chown dereferences symlinks... yes
checking whether chown honors trailing slash... yes
checking whether chown always updates ctime... yes
checking for unsigned long long int... yes
checking whether byte ordering is bigendian... no
checking if environ is properly declared... yes
checking for complete errno.h... yes
checking for working fcntl.h... yes
checking for pid_t... yes
checking for mode_t... yes
checking whether fdatasync is declared... yes
checking for mbstate_t... yes
checking whether stdin defaults to large file offsets... yes
checking whether fseeko is declared... yes
checking for fseeko... yes
checking whether fflush works on input streams... no
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking whether ftello is declared... yes
checking for ftello... yes
checking whether ftello works... yes
checking for library containing gethostbyname... none required
checking for gethostbyname... yes
checking for library containing getservbyname... none required
checking for getservbyname... yes
checking for library containing inet_ntop... none required
checking whether inet_ntop is declared... yes
checking for IPv4 sockets... yes
checking for IPv6 sockets... yes
checking whether getcwd (NULL, 0) allocates memory for result... yes
checking for getcwd with POSIX signature... yes
checking whether getdelim is declared... yes
checking whether getline is declared... yes
checking whether getpass is declared... yes
checking whether fflush_unlocked is declared... yes
checking whether flockfile is declared... yes
checking whether fputs_unlocked is declared... yes
checking whether funlockfile is declared... yes
checking whether putc_unlocked is declared... yes
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking whether ldexp() can be used without linking with libm... yes
checking whether getc_unlocked is declared... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking for wchar_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking whether imported symbols can be declared weak... yes
checking for pthread.h... (cached) yes
checking for pthread_kill in -lpthread... yes
checking for pthread_rwlock_t... yes
checking for multithread API to use... posix
checking for inline... inline
checking whether lstat correctly handles trailing slash... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for long long int... yes
checking for a traditional japanese locale... ja_JP
checking for a transitional chinese locale... none
checking for a french Unicode locale... fr_FR.UTF-8
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking whether alarm is declared... yes
checking whether C symbols are prefixed with underscore at the linker
level... no
checking for promoted mode_t type... mode_t
checking for library containing forkpty... -lutil
checking whether strerror(0) succeeds... yes
checking for strerror_r with POSIX signature... no
checking whether __xpg_strerror_r works... yes
checking whether strerror_r is declared... yes
checking for external symbol _system_configuration... no
checking for library containing setsockopt... none needed
checking whether imported symbols can be declared weak... yes
checking for pthread.h... (cached) yes
checking for pthread_kill in -lpthread... (cached) yes
checking for multithread API to use... posix
checking for sigset_t... yes
checking for SIGPIPE... yes
checking whether <sys/select.h> is self-contained... yes
checking whether setenv is declared... yes
checking search.h usability... yes
checking search.h presence... yes
checking for search.h... yes
checking for tsearch... yes
checking whether snprintf returns a byte count as in C99... yes
checking whether snprintf is declared... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking whether stdint.h conforms to C99... yes
checking whether strdup is declared... yes
checking whether strndup is declared... yes
checking whether strnlen is declared... yes
checking for struct tm.tm_gmtoff... yes
checking whether strtok_r is declared... yes
checking for struct timespec in <time.h>... yes
checking whether ttyname_r is declared... yes
checking for wint_t... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking where to find the exponent in a 'double'... word 1 bit 20
checking for snprintf... (cached) yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... (cached) yes
checking for wcrtomb... (cached) yes
checking whether _snprintf is declared... no
checking whether vsnprintf is declared... yes
checking whether strerror_r is declared... (cached) yes
checking for strerror_r... (cached) yes
checking whether strerror_r returns char *... yes
checking for sig_atomic_t... yes
checking whether ungetc works on arbitrary bytes... yes
checking type of array argument to getgroups... gid_t
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking where to find the exponent in a 'float'... word 0 bit 23
checking whether long double and double are the same... no
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking whether posix_spawn works... yes
checking whether posix_spawnattr_setschedpolicy is supported... yes
checking whether posix_spawnattr_setschedparam is supported... yes
checking whether unsetenv is declared... yes
checking for alloca as a compiler built-in... yes
checking whether btowc(0) is correct... yes
checking whether btowc(EOF) is correct... yes
checking byteswap.h usability... yes
checking byteswap.h presence... yes
checking for byteswap.h... yes
checking for library containing clock_gettime... -lrt
checking for clock_gettime... yes
checking for clock_settime... yes
checking whether // is distinct from /... (cached) no
checking whether dup2 works... yes
checking for library containing backtrace_symbols_fd... none required
checking whether fflush works on input streams... (cached) no
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check
checking for library containing fdatasync... none required
checking whether fflush works on input streams... (cached) no
checking whether conversion from 'int' to 'long double' works... yes
checking for working POSIX fnmatch... yes
checking whether fpurge is declared... no
checking for fseeko... (cached) yes
checking whether fflush works on input streams... (cached) no
checking for _fseeki64... no
checking for ftello... (cached) yes
checking whether ftello works... (cached) yes
checking whether __func__ is available... yes
configure: checking how to do getaddrinfo, freeaddrinfo and getnameinfo
checking for library containing getaddrinfo... none required
checking for getaddrinfo... yes
checking whether gai_strerror is declared... yes
checking whether gai_strerrorA is declared... no
checking for gai_strerror with POSIX signature... yes
checking for struct sockaddr.sa_len... no
checking whether getaddrinfo is declared... yes
checking whether freeaddrinfo is declared... yes
checking whether getnameinfo is declared... yes
checking for struct addrinfo... yes
checking for working getdelim function... yes
checking for gethostname... yes
checking for HOST_NAME_MAX... yes
checking for getline... yes
checking for working getline function... yes
checking for getpass... yes
checking whether gettimeofday clobbers localtime buffer... no
checking for gettimeofday with POSIX signature... almost
checking for library containing gethostbyname... (cached) none required
checking for gethostbyname... (cached) yes
checking for library containing inet_ntop... (cached) none required
checking whether inet_ntop is declared... (cached) yes
checking for library containing inet_pton... none required
checking whether inet_pton is declared... yes
checking for ioctl... yes
checking for ioctl with POSIX signature... no
checking whether langinfo.h defines CODESET... yes
checking whether langinfo.h defines T_FMT_AMPM... yes
checking whether langinfo.h defines ERA... yes
checking whether langinfo.h defines YESEXPR... yes
checking whether locale.h conforms to POSIX:2001... yes
checking whether locale.h defines locale_t... yes
checking whether struct lconv is properly defined... yes
checking whether lseek detects pipes... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... (cached) yes
checking whether mbrtowc handles incomplete characters... yes
checking whether mbrtowc works as well as mbtowc... guessing yes
checking whether mbrtowc handles a NULL pwc argument... yes
checking whether mbrtowc handles a NULL string argument... yes
checking whether mbrtowc has a correct return value... yes
checking whether mbrtowc returns 0 when parsing a NUL character...
guessing yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether mbsrtowcs works... yes
checking for working mktime... yes
checking for __mktime_internal... no
checking whether <net/if.h> is self-contained... yes
checking whether <netinet/in.h> is self-contained... yes
checking whether YESEXPR works... yes
checking whether open recognizes a trailing slash... yes
checking whether openpty is declared... yes
checking for const-safe openpty signature... yes
checking for struct msghdr.msg_accrights... no
checking whether perror matches strerror... yes
checking for sys/pstat.h... no
checking for sys/sysmp.h... no
checking for sys/sysinfo.h... yes
checking for machine/hal_sysinfo.h... no
checking for sys/table.h... no
checking for sys/param.h... (cached) yes
checking for sys/systemcfg.h... no
checking for sys/sysctl.h... yes
checking for pstat_getstatic... no
checking for pstat_getdynamic... no
checking for sysmp... no
checking for getsysinfo... no
checking for sysctl... yes
checking for table... no
checking for poll... yes
checking for a shell that conforms to POSIX... /bin/sh
checking for pthread_t... yes
checking for pthread_spinlock_t... yes
checking for library containing pthread_create and pthread_join... -lpthread
checking for pthread_sigmask in -lpthread... yes
checking whether pthread_sigmask returns error numbers... yes
checking whether pthread_sigmask unblocks signals correctly... guessing yes
checking for raise... yes
checking for sigprocmask... yes
checking for random.h... no
checking for struct random_data... yes
checking for random_r... yes
checking for rawmemchr... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking for working re_compile_pattern... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking whether isblank is declared... yes
checking for __secure_getenv... yes
checking whether select supports a 0 argument... yes
checking whether select detects invalid fds... yes
checking for library containing getservbyname... (cached) none required
checking for getservbyname... (cached) yes
checking whether setenv validates arguments... yes
checking for struct sigaction.sa_sigaction... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... yes
checking for sigprocmask... (cached) yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking whether sleep is declared... yes
checking for working sleep... yes
checking for snprintf... (cached) yes
checking whether snprintf respects a size of 1... yes
checking whether printf supports POSIX/XSI format strings with
positions... yes
checking for library containing setsockopt... (cached) none needed
checking for socklen_t... yes
checking for ssize_t... yes
checking whether stat handles trailing slashes on directories... yes
checking whether stat handles trailing slashes on files... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... no
checking for working stdalign.h... yes
checking for va_copy... yes
checking whether NULL can be used in arbitrary expressions... (cached) yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking whether strncasecmp is declared... yes
checking for strchrnul... yes
checking whether strchrnul works... yes
checking for working strerror function... yes
checking for working strndup... yes
checking for working strnlen... yes
checking for strsep... yes
checking for strtok_r... yes
checking whether strtok_r works... yes
checking whether <sys/ioctl.h> declares ioctl... yes
checking whether <sys/select.h> is self-contained... (cached) yes
checking whether <sys/socket.h> is self-contained... (cached) yes
checking for shutdown... (cached) yes
checking whether <sys/socket.h> defines the SHUT_* macros... (cached) yes
checking for struct sockaddr_storage... (cached) yes
checking for sa_family_t... (cached) yes
checking for struct sockaddr_storage.ss_family... (cached) yes
checking for nlink_t... (cached) yes
checking for struct utsname... yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking for ttyname_r... yes
checking whether ttyname_r is compatible with its POSIX signature... yes
checking whether ttyname_r works with small buffers... yes
checking for uname... yes
checking for useconds_t... yes
checking whether usleep allows large arguments... yes
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking for vsnprintf... yes
checking whether snprintf respects a size of 1... (cached) yes
checking whether printf supports POSIX/XSI format strings with
positions... (cached) yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether wcrtomb return value is correct... yes
checking whether iswcntrl works... yes
checking for towlower... yes
checking for wctype_t... yes
checking for wctrans_t... yes
checking for stdint.h... (cached) yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional french locale... (cached) fr_FR
checking for a turkish Unicode locale... tr_TR.UTF-8
checking for error_at_line... yes
checking whether fdopen sets errno... yes
checking for getgroups... yes
checking for working getgroups... yes
checking whether getgroups handles negative values... yes
checking for getpagesize... yes
checking whether getpagesize is declared... yes
checking for grantpt... yes
checking whether byte ordering is bigendian... (cached) no
checking whether byte ordering is bigendian... (cached) no
checking whether INT32_MAX < INTMAX_MAX... yes
checking whether INT64_MAX == LONG_MAX... yes
checking whether UINT32_MAX < UINTMAX_MAX... yes
checking whether UINT64_MAX == ULONG_MAX... yes
checking whether isnan(double) can be used without linking with libm... yes
checking where to find the exponent in a 'double'... (cached) word 1 bit 20
checking whether isnan(float) can be used without linking with libm... yes
checking whether isnan(float) works... yes
checking where to find the exponent in a 'float'... (cached) word 0 bit 23
checking whether isnan(long double) can be used without linking with
libm... yes
checking whether isnanl works... no
checking where to find the exponent in a 'long double'... word 2 bit 0
checking where to find the exponent in a 'long double'... (cached) word
2 bit 0
checking for setlocale... yes
checking for uselocale... yes
checking whether NAN macro works... yes
checking whether HUGE_VAL works... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking for library containing if_nameindex... none required
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking whether posix_spawn_file_actions_addclose works... yes
checking whether posix_spawn_file_actions_adddup2 works... yes
checking whether posix_spawn_file_actions_addopen works... yes
checking whether program_invocation_name is declared... yes
checking whether program_invocation_short_name is declared... yes
checking for ptsname... yes
checking whether ptsname sets errno on failure... yes
checking whether ptsname_r has the same signature as in glibc... yes
checking for putenv compatible with GNU and SVID... yes
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for signbit macro... yes
checking for signbit compiler built-ins... yes
checking for posix_spawnattr_t... yes
checking for posix_spawn_file_actions_t... yes
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking whether symlink handles trailing slash correctly... yes
checking for pthread_atfork... yes
checking for unlockpt... yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... yes
checking for waitid... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking whether wctob works... yes
checking whether wctob is declared... yes
checking for uid_t in sys/types.h... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc -std=gnu99... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-0-linux-gnu file names to
x86_64-0-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-0-linux-gnu file names to toolchain
format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... (cached) ranlib
checking command to parse /usr/bin/nm -B output from gcc -std=gnu99
object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc -std=gnu99 supports -fno-rtti -fno-exceptions... no
checking for gcc -std=gnu99 option to produce PIC... -fPIC -DPIC
checking if gcc -std=gnu99 PIC flag -fPIC -DPIC works... yes
checking if gcc -std=gnu99 static flag -static works... yes
checking if gcc -std=gnu99 supports -c -o file.o... yes
checking if gcc -std=gnu99 supports -c -o file.o... (cached) yes
checking whether the gcc -std=gnu99 linker (/usr/bin/ld -m elf_x86_64)
supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for ld used by gcc -std=gnu99... (cached) /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
checking for how to mark DSO non-deletable at runtime... -Wl,-z -Wl,nodelete
checking for how to set DSO symbol versions... -Wl,--version-script=
checking whether gcc -Wformat allows NULL strings... yes
checking whether pragma GCC diagnostic push works... yes
checking whether GCC -Wlogical-op gives bogus warnings... no
checking whether -Wno-missing-field-initializers is supported... yes
checking whether -Wno-missing-field-initializers is needed... no
checking whether -Wuninitialized is supported... yes
checking whether C compiler handles -W... yes
checking whether C compiler handles -Waddress... yes
checking whether C compiler handles -Wall... yes
checking whether C compiler handles -Warray-bounds... yes
checking whether C compiler handles -Wattributes... yes
checking whether C compiler handles -Wbad-function-cast... yes
checking whether C compiler handles -Wbuiltin-macro-redefined... yes
checking whether C compiler handles -Wcast-align... yes
checking whether C compiler handles -Wchar-subscripts... yes
checking whether C compiler handles -Wclobbered... yes
checking whether C compiler handles -Wcomment... yes
checking whether C compiler handles -Wcomments... yes
checking whether C compiler handles -Wcoverage-mismatch... yes
checking whether C compiler handles -Wcpp... yes
checking whether C compiler handles -Wdeprecated-declarations... yes
checking whether C compiler handles -Wdisabled-optimization... yes
checking whether C compiler handles -Wdiv-by-zero... yes
checking whether C compiler handles -Wdouble-promotion... yes
checking whether C compiler handles -Wempty-body... yes
checking whether C compiler handles -Wendif-labels... yes
checking whether C compiler handles -Wextra... yes
checking whether C compiler handles -Wformat-contains-nul... yes
checking whether C compiler handles -Wformat-extra-args... yes
checking whether C compiler handles -Wformat-security... yes
checking whether C compiler handles -Wformat-y2k... yes
checking whether C compiler handles -Wformat-zero-length... yes
checking whether C compiler handles -Wformat=2... yes
checking whether C compiler handles -Wfree-nonheap-object... yes
checking whether C compiler handles -Wignored-qualifiers... yes
checking whether C compiler handles -Wimplicit... yes
checking whether C compiler handles -Wimplicit-function-declaration... yes
checking whether C compiler handles -Wimplicit-int... yes
checking whether C compiler handles -Winit-self... yes
checking whether C compiler handles -Winline... yes
checking whether C compiler handles -Wint-to-pointer-cast... yes
checking whether C compiler handles -Winvalid-memory-model... yes
checking whether C compiler handles -Winvalid-pch... yes
checking whether C compiler handles -Wjump-misses-init... yes
checking whether C compiler handles -Wlogical-op... yes
checking whether C compiler handles -Wmain... yes
checking whether C compiler handles -Wmaybe-uninitialized... yes
checking whether C compiler handles -Wmissing-braces... yes
checking whether C compiler handles -Wmissing-declarations... yes
checking whether C compiler handles -Wmissing-field-initializers... yes
checking whether C compiler handles -Wmissing-format-attribute... yes
checking whether C compiler handles -Wmissing-include-dirs... yes
checking whether C compiler handles -Wmissing-noreturn... yes
checking whether C compiler handles -Wmissing-parameter-type... yes
checking whether C compiler handles -Wmissing-prototypes... yes
checking whether C compiler handles -Wmudflap... yes
checking whether C compiler handles -Wmultichar... yes
checking whether C compiler handles -Wnarrowing... yes
checking whether C compiler handles -Wnested-externs... yes
checking whether C compiler handles -Wnonnull... yes
checking whether C compiler handles -Wnormalized=nfc... yes
checking whether C compiler handles -Wold-style-declaration... yes
checking whether C compiler handles -Wold-style-definition... yes
checking whether C compiler handles -Woverflow... yes
checking whether C compiler handles -Woverride-init... yes
checking whether C compiler handles -Wpacked-bitfield-compat... yes
checking whether C compiler handles -Wparentheses... yes
checking whether C compiler handles -Wpointer-arith... yes
checking whether C compiler handles -Wpointer-sign... yes
checking whether C compiler handles -Wpointer-to-int-cast... yes
checking whether C compiler handles -Wpragmas... yes
checking whether C compiler handles -Wreturn-type... yes
checking whether C compiler handles -Wsequence-point... yes
checking whether C compiler handles -Wshadow... yes
checking whether C compiler handles -Wsizeof-pointer-memaccess... no
checking whether C compiler handles -Wstrict-aliasing... yes
checking whether C compiler handles -Wstrict-prototypes... yes
checking whether C compiler handles -Wsuggest-attribute=const... yes
checking whether C compiler handles -Wsuggest-attribute=format... no
checking whether C compiler handles -Wsuggest-attribute=noreturn... yes
checking whether C compiler handles -Wsuggest-attribute=pure... yes
checking whether C compiler handles -Wswitch... yes
checking whether C compiler handles -Wsync-nand... yes
checking whether C compiler handles -Wtrampolines... yes
checking whether C compiler handles -Wtrigraphs... yes
checking whether C compiler handles -Wtype-limits... yes
checking whether C compiler handles -Wuninitialized... yes
checking whether C compiler handles -Wunknown-pragmas... yes
checking whether C compiler handles -Wunused... yes
checking whether C compiler handles -Wunused-but-set-parameter... yes
checking whether C compiler handles -Wunused-but-set-variable... yes
checking whether C compiler handles -Wunused-function... yes
checking whether C compiler handles -Wunused-label... yes
checking whether C compiler handles -Wunused-local-typedefs... yes
checking whether C compiler handles -Wunused-parameter... yes
checking whether C compiler handles -Wunused-result... yes
checking whether C compiler handles -Wunused-value... yes
checking whether C compiler handles -Wunused-variable... yes
checking whether C compiler handles -Wvarargs... no
checking whether C compiler handles -Wvariadic-macros... yes
checking whether C compiler handles -Wvector-operation-performance... yes
checking whether C compiler handles -Wvolatile-register-var... yes
checking whether C compiler handles -Wwrite-strings... yes
checking whether C compiler handles -Wno-sign-compare... yes
checking whether C compiler handles -Wjump-misses-init... (cached) yes
checking whether C compiler handles -Wno-format-nonliteral... yes
checking whether C compiler handles -Wframe-larger-than=4096... yes
checking whether C compiler handles -fstack-protector-all... yes
checking whether C compiler handles --param=ssp-buffer-size=4... yes
checking whether C compiler handles -fexceptions... yes
checking whether C compiler handles -fasynchronous-unwind-tables... yes
checking whether C compiler handles -fdiagnostics-show-option... yes
checking whether C compiler handles -funit-at-a-time... yes
checking whether C compiler handles -fipa-pure-const... yes
checking whether C compiler handles -Wno-suggest-attribute=pure... yes
checking whether C compiler handles -Wno-suggest-attribute=const... yes
checking whether C compiler handles -Wno-redundant-decls... yes
checking whether C compiler handles -fPIE -DPIE... yes
checking for how to force completely read-only GOT table... -Wl,-z
-Wl,relro -Wl,-z -Wl,now
checking for aa_change_profile in -lapparmor... no
checking for getxattr in -lattr... yes
checking attr/xattr.h usability... yes
checking attr/xattr.h presence... yes
checking for attr/xattr.h... yes
checking for audit_encode_nv_string in -laudit... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for AVAHI... yes
checking for BLKID... yes
checking for capng_updatev in -lcap-ng... yes
checking for cap-ng.h... (cached) yes
checking for CURL... yes
checking for DBUS... yes
checking for dbus_watch_get_unix_fd... yes
checking for FUSE... yes
checking for HAL... no
checking for NETCF... no
checking for numa_available in -lnuma... no
checking for OPENWSMAN... no
checking for PCIACCESS... yes
checking for sanlock_init in -lsanlock_client... no
checking for sasl_client_init in -lsasl2... yes
checking for sasl/sasl.h... (cached) yes
checking for fgetfilecon_raw in -lselinux... no
checking for SSH2... yes
checking for UDEV... yes
checking for yajl_parse_complete in -lyajl... no
checking for yajl_tree_parse in -lyajl... yes
checking for yajl/yajl_common.h... (cached) yes
checking for CPUID instruction... yes
checking size of long... 8
checking for pthread_mutexattr_init... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking paths.h usability... yes
checking paths.h presence... yes
checking for paths.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking mntent.h usability... yes
checking mntent.h presence... yes
checking for mntent.h... yes
checking net/ethernet.h usability... yes
checking net/ethernet.h presence... yes
checking for net/ethernet.h... yes
checking linux/magic.h usability... yes
checking linux/magic.h presence... yes
checking for linux/magic.h... yes
checking for sys/un.h... (cached) yes
checking sys/syscall.h usability... yes
checking sys/syscall.h presence... yes
checking for sys/syscall.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking libtasn1.h usability... yes
checking libtasn1.h presence... yes
checking for libtasn1.h... yes
checking sys/ucred.h usability... no
checking sys/ucred.h presence... no
checking for sys/ucred.h... no
checking sys/mount.h usability... yes
checking sys/mount.h presence... yes
checking for sys/mount.h... yes
checking whether htole64 is declared... yes
checking for atomic ops implementation... gcc
checking for struct ifreq... yes
checking for gettext in -lintl... no
checking for rpcgen... /usr/bin/rpcgen
checking for xmllint... /usr/bin/xmllint
checking for xmlcatalog... /usr/bin/xmlcatalog
checking for xsltproc... /usr/bin/xsltproc
checking for augparse... /usr/bin/augparse
checking for dnsmasq... dnsmasq
checking for radvd... radvd
checking for brctl... brctl
checking for tc... /sbin/tc
checking for udevadm... /sbin/udevadm
checking for udevsettle... no
checking for modprobe... /sbin/modprobe
checking for ovs-vsctl... ovs-vsctl
checking for scrub... scrub
checking for init script flavor... systemd
checking for whether to install sysctl config... yes
checking for ip... /usr/sbin/ip
checking for iptables... /usr/sbin/iptables
checking for ip6tables... /usr/sbin/ip6tables
checking for ebtables... /sbin/ebtables
checking for xdrmem_create in -lportablexdr... no
checking for library containing xdrmem_create... -ltirpc
checking for xdr_u_int64_t... yes
checking where to find <rpc/rpc.h>... none
checking for dlfcn.h... (cached) yes
checking for library containing dlopen... -ldl
checking for xen_vm_start in -lxenserver... no
checking for libxl_ctx_alloc in -lxenlight... no
checking for xs_read in -lxenstore... no
checking linux/kvm.h usability... yes
checking linux/kvm.h presence... yes
checking for linux/kvm.h... yes
checking for shell that supports <> redirection... /bin/sh
checking for linux/param.h... yes
checking for linux/sockios.h... yes
checking for linux/if_bridge.h... yes
checking for linux/if_tun.h... yes
checking for pkg-config... (cached) /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBXML... yes
checking for struct _xmlURI.query_raw... yes
checking for GNUTLS... yes
checking for pkcheck... /usr/bin/pkcheck
checking for dtrace... no
checking for numad... no
checking libpcap pcap-config >= 1.0.0 ... yes
checking sys/inotify.h usability... yes
checking sys/inotify.h presence... yes
checking for sys/inotify.h... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking for readline in -lreadline... yes
checking for mntent.h... (cached) yes
checking for mount... /usr/bin/mount
checking for umount... /usr/bin/umount
checking for mkfs... /sbin/mkfs
checking for showmount... /sbin/showmount
checking for pvcreate... /sbin/pvcreate
checking for vgcreate... /sbin/vgcreate
checking for lvcreate... /sbin/lvcreate
checking for pvremove... /sbin/pvremove
checking for vgremove... /sbin/vgremove
checking for lvremove... /sbin/lvremove
checking for lvchange... /sbin/lvchange
checking for vgchange... /sbin/vgchange
checking for vgscan... /sbin/vgscan
checking for pvs... /sbin/pvs
checking for vgs... /sbin/vgs
checking for lvs... /sbin/lvs
checking for iscsiadm... no
checking rbd/librbd.h usability... no
checking rbd/librbd.h presence... no
checking for rbd/librbd.h... no
checking for collie... no
checking for parted... /sbin/parted
checking for dmsetup... /sbin/dmsetup
checking for LIBPARTED... yes
checking for DEVMAPPER... yes
checking libdevmapper.h usability... yes
checking libdevmapper.h presence... yes
checking for libdevmapper.h... yes
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory...
${prefix}/lib64/python2.7/site-packages
checking for python extension module directory...
${exec_prefix}/lib64/python2.7/site-packages
checking for perl... /usr/bin/perl
checking Whether to build test suite by default... no
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for CFPreferencesCopyAppValue... (cached) no
checking for CFLocaleCopyCurrent... (cached) no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking whether to compile with macvtap support... yes
checking whether MACVLAN_MODE_PASSTHRU is declared... yes
checking whether to compile with virtual port support... yes
checking for LIBNL... yes
checking for LIBNL_ROUTE3... yes
checking for struct ifreq.ifr_newname... yes
checking for struct ifreq.ifr_ifindex... yes
checking for struct ifreq.ifr_index... no
checking whether this build is done by a static analysis tool... no
configure: creating ./config.status
config.status: creating run
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating include/Makefile
config.status: creating docs/Makefile
config.status: creating docs/schemas/Makefile
config.status: creating gnulib/lib/Makefile
config.status: creating gnulib/tests/Makefile
config.status: creating libvirt.pc
config.status: creating libvirt.spec
config.status: creating mingw-libvirt.spec
config.status: creating po/Makefile.in
config.status: creating include/libvirt/Makefile
config.status: creating include/libvirt/libvirt.h
config.status: creating python/Makefile
config.status: creating python/tests/Makefile
config.status: creating daemon/Makefile
config.status: creating tools/Makefile
config.status: creating tests/Makefile
config.status: creating examples/apparmor/Makefile
config.status: creating examples/domain-events/events-c/Makefile
config.status: creating examples/domsuspend/Makefile
config.status: creating examples/dominfo/Makefile
config.status: creating examples/openauth/Makefile
config.status: creating examples/python/Makefile
config.status: creating examples/hellolibvirt/Makefile
config.status: creating examples/systemtap/Makefile
config.status: creating examples/xml/nwfilter/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
configure:
configure: Configuration summary
configure: =====================
configure:
configure: Drivers
configure:
configure: Xen: no
configure: QEMU: yes
configure: UML: yes
configure: OpenVZ: yes
configure: VMware: yes
configure: VBox: yes
configure: XenAPI: no
configure: xenlight: no
configure: LXC: yes
configure: PHYP: yes
configure: ESX: yes
configure: Hyper-V: no
configure: Parallels: yes
configure: Test: yes
configure: Remote: yes
configure: Network: yes
configure: Libvirtd: yes
configure: Interface: yes
configure: macvtap: yes
configure: virtport: yes
configure:
configure: Storage Drivers
configure:
configure: Dir: yes
configure: FS: yes
configure: NetFS: yes
configure: LVM: yes
configure: iSCSI: no
configure: SCSI: yes
configure: mpath: yes
configure: Disk: yes
configure: RBD: no
configure: Sheepdog: no
configure:
configure: Security Drivers
configure:
configure: SELinux: no ()
configure: AppArmor: no
configure:
configure: Driver Loadable Modules
configure:
configure: dlopen: -export-dynamic -ldl
configure:
configure: Libraries
configure:
configure: apparmor: no
configure: attr: yes (CFLAGS='' LIBS='-lattr')
configure: audit: no
configure: avahi: yes (CFLAGS='-D_REENTRANT ' LIBS='-lavahi-common
-lavahi-client ')
configure: blkid: yes (CFLAGS='-I/usr/include/blkid
-I/usr/include/uuid ' LIBS='-lblkid ')
configure: capng: yes (CFLAGS='' LIBS='-lcap-ng')
configure: curl: yes (CFLAGS='-DCURL_DISABLE_TYPECHECK '
LIBS='-lcurl ')
configure: dbus: yes (CFLAGS='-I/usr/include/dbus-1.0
-I/usr/lib64/dbus-1.0/include ' LIBS='-ldbus-1 ')
configure: fuse: yes (CFLAGS='-D_FILE_OFFSET_BITS=64
-I/usr/include/fuse ' LIBS='-lfuse -pthread ')
configure: hal: no
configure: netcf: no
configure: numactl: no
configure: openwsman: no
configure: pciaccess: yes (CFLAGS='' LIBS='-lpciaccess ')
configure: sanlock: no
configure: sasl: yes (CFLAGS='' LIBS='-lsasl2')
configure: selinux: no
configure: ssh2: yes (CFLAGS='' LIBS='-lssh2 ')
configure: udev: yes (CFLAGS='' LIBS='-ludev ')
configure: yajl: yes (CFLAGS='' LIBS='-lyajl')
configure: libxml: -I/usr/include/libxml2 -lxml2
configure: dlopen: -ldl
configure: openwsman: no
configure: gnutls: -I/usr/include/p11-kit-1 -lgnutls -lgcrypt
configure: firewalld: yes
configure: polkit: /usr/bin/pkcheck (version 1)
configure: xen: no
configure: xenapi: no
configure: xenlight: no
configure: pcap: -I/usr/include -L/usr/lib64 -Wl,-rpath,/usr/lib64
-lpcap
configure: nl: -I/usr/include/libnl3 -I/usr/include/libnl3
-lnl-3 -lnl-route-3 -lnl-3
configure: mscom: no
configure: xdr:
configure: rbd: no
configure:
configure: Test suite
configure:
configure: Coverage: no
configure: Alloc OOM: no
configure:
configure: Miscellaneous
configure:
configure: Debug: yes
configure: Use -Werror: no
configure: Warning Flags: -W -Waddress -Wall -Warray-bounds
-Wattributes -Wbad-function-cast -Wbuiltin-macro-redefined -Wcast-align
-Wchar-subscripts -Wclobbered -Wcomment -Wcomments -Wcoverage-mismatch
-Wcpp -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero
-Wdouble-promotion -Wempty-body -Wendif-labels -Wextra
-Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k
-Wformat-zero-length -Wformat=2 -Wfree-nonheap-object
-Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration
-Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast
-Winvalid-memory-model -Winvalid-pch -Wjump-misses-init -Wlogical-op
-Wmain -Wmaybe-uninitialized -Wmissing-braces -Wmissing-declarations
-Wmissing-field-initializers -Wmissing-format-attribute
-Wmissing-include-dirs -Wmissing-noreturn -Wmissing-parameter-type
-Wmissing-prototypes -Wmudflap -Wmultichar -Wnarrowing -Wnested-externs
-Wnonnull -Wnormalized=nfc -Wold-style-declaration
-Wold-style-definition -Woverflow -Woverride-init
-Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign
-Wpointer-to-int-cast -Wpragmas -Wreturn-type -Wsequence-point -Wshadow
-Wstrict-aliasing -Wstrict-prototypes -Wsuggest-attribute=const
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wswitch
-Wsync-nand -Wtrampolines -Wtrigraphs -Wtype-limits -Wuninitialized
-Wunknown-pragmas -Wunused -Wunused-but-set-parameter
-Wunused-but-set-variable -Wunused-function -Wunused-label
-Wunused-local-typedefs -Wunused-parameter -Wunused-result
-Wunused-value -Wunused-variable -Wvariadic-macros
-Wvector-operation-performance -Wvolatile-register-var -Wwrite-strings
-Wno-sign-compare -Wjump-misses-init -Wno-format-nonliteral
-Wframe-larger-than=4096 -fstack-protector-all --param=ssp-buffer-size=4
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option
-funit-at-a-time -fipa-pure-const -Wno-suggest-attribute=pure
-Wno-suggest-attribute=const
configure: Readline: yes
configure: Python: yes
configure: DTrace: no
configure: numad: no
configure: XML Catalog: /etc/xml/catalog
configure: Init script: systemd
configure: Char device locks: /var/lock
configure:
configure: Privileges
configure:
configure: QEMU: root:root
configure:
+ make -j5 EXAMPLE_DIR=/usr/doc/libvirt-1.0.5/examples
HTML_DIR=/usr/doc/libvirt-1.0.5
make all-recursive
make[1]: Entering directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
Making all in gnulib/lib
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
GEN alloca.h
GEN c++defs.h
GEN warn-on-use.h
GEN arg-nonnull.h
GEN configmake.h
GEN unused-parameter.h
GEN sys/types.h
GEN sys/wait.h
GEN sys/uio.h
GEN termios.h
GEN time.h
GEN unistd.h
GEN wchar.h
GEN wctype.h
GEN arpa/inet.h
GEN fcntl.h
GEN langinfo.h
GEN locale.h
GEN netdb.h
GEN poll.h
GEN pty.h
GEN signal.h
GEN stdio.h
GEN stdlib.h
GEN string.h
GEN strings.h
GEN sys/ioctl.h
GEN sys/select.h
GEN sys/socket.h
GEN sys/stat.h
GEN sys/utsname.h
GEN sys/time.h
make all-am
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
CC allocator.lo
CC areadlink.lo
CC base64.lo
CC binary-io.lo
CC bitrotate.lo
CC c-ctype.lo
CC c-strcasecmp.lo
CC c-strncasecmp.lo
CC c-strcasestr.lo
CC careadlinkat.lo
CC cloexec.lo
CC count-one-bits.lo
CC md5.lo
CC sha256.lo
CC dirname-lgpl.lo
CC basename-lgpl.lo
CC stripslash.lo
CC fd-hook.lo
CC freading.lo
CC localcharset.lo
CC lock.lo
CC malloca.lo
CC nonblocking.lo
CC passfd.lo
CC physmem.lo
CC pipe2.lo
CC sig-handler.lo
CC sockets.lo
CC stat-time.lo
CC strnlen1.lo
CC sys_socket.lo
CC tempname.lo
CC threadlib.lo
CC unistd.lo
CC wctype-h.lo
CC xsize.lo
CC asnprintf.lo
CC fclose.lo
CC fcntl.lo
CC fflush.lo
CC fpurge.lo
CC fseek.lo
CC fseeko.lo
CC ioctl.lo
CC mktime.lo
CC printf-args.lo
CC printf-parse.lo
CC regex.lo
CC secure_getenv.lo
CC strerror_r.lo
CC vasnprintf.lo
GEN charset.alias
GEN ref-add.sed
GEN ref-del.sed
CCLD libgnu.la
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
Making all in include
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
Making all in libvirt
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
Making all in src
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
GEN libvirt.syms
GEN libvirt_qemu.def
GEN libvirt_lxc.def
GEN locking/qemu-lockd.conf
GEN virtlockd.service
GEN virtlockd.socket
GEN libvirt.def
make all-am
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
CC libvirt_util_la-viralloc.lo
CC libvirt_util_la-virarch.lo
CC libvirt_util_la-viratomic.lo
CC libvirt_util_la-viraudit.lo
CC libvirt_util_la-virauth.lo
CC libvirt_util_la-virauthconfig.lo
CC libvirt_util_la-virbitmap.lo
CC libvirt_util_la-virbuffer.lo
CC libvirt_util_la-vircgroup.lo
CC libvirt_util_la-vircommand.lo
CC libvirt_util_la-virconf.lo
CC libvirt_util_la-virdbus.lo
CC libvirt_util_la-virdnsmasq.lo
CC libvirt_util_la-virebtables.lo
CC libvirt_util_la-virerror.lo
CC libvirt_util_la-virevent.lo
CC libvirt_util_la-vireventpoll.lo
CC libvirt_util_la-virfile.lo
CC libvirt_util_la-virhash.lo
CC libvirt_util_la-virhashcode.lo
CC libvirt_util_la-virhook.lo
CC libvirt_util_la-viridentity.lo
CC libvirt_util_la-virinitctl.lo
CC libvirt_util_la-viriptables.lo
CC libvirt_util_la-virjson.lo
CC libvirt_util_la-virkeycode.lo
CC libvirt_util_la-virlockspace.lo
CC libvirt_util_la-virkeyfile.lo
CC libvirt_util_la-virlog.lo
CC libvirt_util_la-virmacaddr.lo
CC libvirt_util_la-virnetdev.lo
CC libvirt_util_la-virnetdevbandwidth.lo
CC libvirt_util_la-virnetdevbridge.lo
CC libvirt_util_la-virnetdevmacvlan.lo
CC libvirt_util_la-virnetdevopenvswitch.lo
CC libvirt_util_la-virnetdevtap.lo
CC libvirt_util_la-virnetdevveth.lo
CC libvirt_util_la-virnetdevvlan.lo
CC libvirt_util_la-virnetdevvportprofile.lo
CC libvirt_util_la-virnetlink.lo
CC libvirt_util_la-virnodesuspend.lo
CC libvirt_util_la-virnuma.lo
CC libvirt_util_la-virobject.lo
CC libvirt_util_la-virpci.lo
CC libvirt_util_la-virpidfile.lo
CC libvirt_util_la-virportallocator.lo
CC libvirt_util_la-virprocess.lo
CC libvirt_util_la-virrandom.lo
CC libvirt_util_la-virsexpr.lo
CC libvirt_util_la-virsocketaddr.lo
CC libvirt_util_la-virstatslinux.lo
CC libvirt_util_la-virstoragefile.lo
CC libvirt_util_la-virstring.lo
CC libvirt_util_la-virthread.lo
CC libvirt_util_la-virsysinfo.lo
CC libvirt_util_la-virthreadpool.lo
CC libvirt_util_la-virtime.lo
CC libvirt_util_la-virtpm.lo
CC libvirt_util_la-virtypedparam.lo
CC libvirt_util_la-virusb.lo
CC libvirt_util_la-viruri.lo
CC libvirt_util_la-virutil.lo
CC libvirt_util_la-viruuid.lo
CC libvirt_util_la-virxml.lo
CC libvirt_conf_la-netdev_bandwidth_conf.lo
CC libvirt_conf_la-netdev_vport_profile_conf.lo
CC libvirt_conf_la-netdev_vlan_conf.lo
CC libvirt_conf_la-capabilities.lo
CC libvirt_conf_la-domain_conf.lo
CC libvirt_conf_la-domain_audit.lo
CC libvirt_conf_la-domain_nwfilter.lo
CC libvirt_conf_la-snapshot_conf.lo
CC libvirt_conf_la-domain_event.lo
CC libvirt_conf_la-network_conf.lo
CC libvirt_conf_la-nwfilter_params.lo
CC libvirt_conf_la-nwfilter_ipaddrmap.lo
CC libvirt_conf_la-nwfilter_conf.lo
CC libvirt_conf_la-node_device_conf.lo
CC libvirt_conf_la-storage_conf.lo
CC libvirt_conf_la-storage_encryption_conf.lo
CC libvirt_conf_la-interface_conf.lo
CC libvirt_conf_la-secret_conf.lo
CC libvirt_conf_la-cpu_conf.lo
CC libvirt_conf_la-virchrdev.lo
CC libvirt_conf_la-device_conf.lo
CC libvirt_cpu_la-cpu.lo
CC libvirt_cpu_la-cpu_generic.lo
CC libvirt_cpu_la-cpu_x86.lo
CC libvirt_cpu_la-cpu_s390.lo
CC libvirt_cpu_la-cpu_arm.lo
CC libvirt_cpu_la-cpu_map.lo
CC libvirt_cpu_la-cpu_powerpc.lo
CC libvirt_vmx_la-vmx.lo
CC libvirt_driver_la-driver.lo
CC libvirt_driver_la-datatypes.lo
CC libvirt_driver_la-fdstream.lo
CC libvirt_driver_la-nodeinfo.lo
CC libvirt_driver_la-libvirt.lo
CC libvirt_driver_la-lock_manager.lo
CC libvirt_driver_la-lock_driver_nop.lo
CC libvirt_driver_la-domain_lock.lo
CC libvirt_driver_test_la-test_driver.lo
CC libvirt_driver_remote_la-remote_driver.lo
CC libvirt_driver_remote_la-remote_protocol.lo
./remote/remote_protocol.c: In function 'xdr_remote_vcpu_info':
./remote/remote_protocol.c:257:10: warning: implicit declaration of
function 'xdr_u_int64_t' [-Wimplicit-function-declaration]
./remote/remote_protocol.c:257:10: warning: nested extern declaration of
'xdr_u_int64_t' [-Wnested-externs]
./remote/remote_protocol.c: In function
'xdr_remote_node_get_cells_free_memory_ret':
./remote/remote_protocol.c:623:48: error: 'xdr_u_int64_t' undeclared
(first use in this function)
./remote/remote_protocol.c:623:48: note: each undeclared identifier is
reported only once for each function it appears in
make[3]: *** [libvirt_driver_remote_la-remote_protocol.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
make: *** [all] Erreur 2
---
Thanks!
appzer0
11 years, 6 months
[libvirt] [PATCH] Fix multiple formatting problems in HTML docs
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The rule generating the HTML docs passing the --html flag
to xsltproc. This makes it use the legacy HTML parser, which
either ignores or tries to fix all sorts of broken XML tags.
There's no reason why we should be writing broken XML in
the first place, so removing --html and adding the XHTML
doctype to all files forces us to create good XML.
This adds the XHTML doc type and fixes many, many XML tag
problems it exposes.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/404.html.in | 5 +++--
docs/Makefile.am | 6 +++---
docs/api.html.in | 5 +++--
docs/api_extension.html.in | 4 +++-
docs/apps.html.in | 5 ++++-
docs/archdomain.html.in | 4 +++-
docs/architecture.html.in | 5 +++--
docs/archnetwork.html.in | 5 +++--
docs/archnode.html.in | 4 +++-
docs/archstorage.html.in | 4 +++-
docs/auth.html.in | 5 +++--
docs/bindings.html.in | 5 +++--
docs/bugs.html.in | 5 +++--
docs/compiling.html.in | 5 +++--
docs/contact.html.in | 5 +++--
docs/csharp.html.in | 5 +++--
docs/deployment.html.in | 4 +++-
docs/devguide.html.in | 5 +++--
docs/docs.html.in | 4 +++-
docs/downloads.html.in | 5 +++--
docs/drivers.html.in | 4 +++-
docs/drvesx.html.in | 5 ++++-
docs/drvhyperv.html.in | 5 ++++-
docs/drvlxc.html.in | 4 +++-
docs/drvopenvz.html.in | 4 +++-
docs/drvparallels.html.in | 5 ++++-
docs/drvphyp.html.in | 5 ++++-
docs/drvqemu.html.in | 7 +++++--
docs/drvremote.html.in | 4 +++-
docs/drvtest.html.in | 4 +++-
docs/drvuml.html.in | 4 +++-
docs/drvvbox.html.in | 4 +++-
docs/drvvmware.html.in | 4 +++-
docs/drvxen.html.in | 4 +++-
docs/errors.html.in | 5 +++--
docs/firewall.html.in | 5 +++--
docs/format.html.in | 3 ++-
docs/formatcaps.html.in | 4 +++-
docs/formatdomain.html.in | 15 ++++++++++++---
docs/formatnetwork.html.in | 4 +++-
docs/formatnode.html.in | 4 +++-
docs/formatnwfilter.html.in | 16 +++++++++-------
docs/formatsecret.html.in | 4 +++-
docs/formatsnapshot.html.in | 4 +++-
docs/formatstorage.html.in | 4 +++-
docs/formatstorageencryption.html.in | 4 +++-
docs/goals.html.in | 5 +++--
docs/hacking.html.in | 4 +++-
docs/hooks.html.in | 5 +++--
docs/index.html.in | 5 +++--
docs/internals.html.in | 4 +++-
docs/internals/command.html.in | 4 +++-
docs/internals/locking.html.in | 4 +++-
docs/internals/rpc.html.in | 5 ++++-
docs/intro.html.in | 5 +++--
docs/java.html.in | 5 +++--
docs/locking.html.in | 5 +++--
docs/logging.html.in | 5 +++--
docs/migration.html.in | 14 ++++++++------
docs/news.html.in | 5 +++--
docs/pending.html.in | 4 +++-
docs/php.html.in | 5 +++--
docs/python.html.in | 5 +++--
docs/relatedlinks.html.in | 4 +++-
docs/remote.html.in | 5 +++--
docs/sitemap.html.in | 4 +++-
docs/storage.html.in | 5 +++--
docs/testapi.html.in | 7 ++++---
docs/testsuites.html.in | 7 +++++--
docs/testtck.html.in | 7 ++++---
docs/uri.html.in | 5 +++--
docs/virshcmdref.html.in | 5 +++--
docs/windows.html.in | 5 +++--
73 files changed, 250 insertions(+), 123 deletions(-)
diff --git a/docs/404.html.in b/docs/404.html.in
index 6021ad0..5b771bb 100644
--- a/docs/404.html.in
+++ b/docs/404.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>404 page not found</h1>
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 137756b..b4855d1 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -171,7 +171,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
echo "Generating $@"; \
$(MKDIR_P) internals; \
name=`echo $@ | sed -e 's/.tmp//'`; \
- $(XSLTPROC) --stringparam pagename $$name --nonet --html \
+ $(XSLTPROC) --stringparam pagename $$name --nonet \
$(top_srcdir)/docs/subsite.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
@@ -179,7 +179,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
@if [ -x $(XSLTPROC) ] ; then \
echo "Generating $@"; \
name=`echo $@ | sed -e 's/.tmp//'`; \
- $(XSLTPROC) --stringparam pagename $$name --nonet --html \
+ $(XSLTPROC) --stringparam pagename $$name --nonet \
$(top_srcdir)/docs/site.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
@@ -196,7 +196,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
%.php.tmp: %.php.in site.xsl page.xsl sitemap.html.in
@if [ -x $(XSLTPROC) ] ; then \
echo "Generating $@"; \
- $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet --html \
+ $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \
$(top_srcdir)/docs/site.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
diff --git a/docs/api.html.in b/docs/api.html.in
index 12dfaee..f77e9db 100644
--- a/docs/api.html.in
+++ b/docs/api.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>The libvirt API concepts</h1>
diff --git a/docs/api_extension.html.in b/docs/api_extension.html.in
index 83c488c..6718625 100644
--- a/docs/api_extension.html.in
+++ b/docs/api_extension.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Implementing a new API in Libvirt</h1>
diff --git a/docs/apps.html.in b/docs/apps.html.in
index 76020d8..9fdfddb 100644
--- a/docs/apps.html.in
+++ b/docs/apps.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Applications using <strong>libvirt</strong></h1>
@@ -340,6 +342,7 @@
<li>Shows you Systems Inventory (based on Facter) and
provides real time information about hosts status based on
Puppet reports.</li>
+ </ul>
</dd>
</dl>
diff --git a/docs/archdomain.html.in b/docs/archdomain.html.in
index 294fecb..50843a0 100644
--- a/docs/archdomain.html.in
+++ b/docs/archdomain.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Domain management architecture</h1>
</body>
diff --git a/docs/architecture.html.in b/docs/architecture.html.in
index d846396..5d3d441 100644
--- a/docs/architecture.html.in
+++ b/docs/architecture.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >libvirt architecture</h1>
diff --git a/docs/archnetwork.html.in b/docs/archnetwork.html.in
index c7ca4ca..5ff330c 100644
--- a/docs/archnetwork.html.in
+++ b/docs/archnetwork.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network management architecture</h1>
diff --git a/docs/archnode.html.in b/docs/archnode.html.in
index b3d50dd..ab446dc 100644
--- a/docs/archnode.html.in
+++ b/docs/archnode.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Node device management architecture</h1>
</body>
diff --git a/docs/archstorage.html.in b/docs/archstorage.html.in
index 059f0b7..fb74f18 100644
--- a/docs/archstorage.html.in
+++ b/docs/archstorage.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage management architecture</h1>
diff --git a/docs/auth.html.in b/docs/auth.html.in
index 1bd02f2..e5703c7 100644
--- a/docs/auth.html.in
+++ b/docs/auth.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Authentication & access control</h1>
<p>
diff --git a/docs/bindings.html.in b/docs/bindings.html.in
index 74b3e2c..13b7d71 100644
--- a/docs/bindings.html.in
+++ b/docs/bindings.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Bindings for other languages</h1>
diff --git a/docs/bugs.html.in b/docs/bugs.html.in
index 7436a71..3d79b32 100644
--- a/docs/bugs.html.in
+++ b/docs/bugs.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Bug reporting</h1>
diff --git a/docs/compiling.html.in b/docs/compiling.html.in
index 0bfb298..66d2925 100644
--- a/docs/compiling.html.in
+++ b/docs/compiling.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1><a name="installation">libvirt Installation</a></h1>
diff --git a/docs/contact.html.in b/docs/contact.html.in
index 1f5103c..e34de67 100644
--- a/docs/contact.html.in
+++ b/docs/contact.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Contacting the development team</h1>
diff --git a/docs/csharp.html.in b/docs/csharp.html.in
index 62da6a8..4c35c87 100644
--- a/docs/csharp.html.in
+++ b/docs/csharp.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>C# API bindings</h1>
diff --git a/docs/deployment.html.in b/docs/deployment.html.in
index 8ef383b..d7d38ba 100644
--- a/docs/deployment.html.in
+++ b/docs/deployment.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Deployment</h1>
diff --git a/docs/devguide.html.in b/docs/devguide.html.in
index ba499db..122fe24 100644
--- a/docs/devguide.html.in
+++ b/docs/devguide.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt Application Development Guide</h1>
diff --git a/docs/docs.html.in b/docs/docs.html.in
index 970a79a..d4887db 100644
--- a/docs/docs.html.in
+++ b/docs/docs.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Documentation</h1>
</body>
diff --git a/docs/downloads.html.in b/docs/downloads.html.in
index 64a16c9..83b8751 100644
--- a/docs/downloads.html.in
+++ b/docs/downloads.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Downloads</h1>
diff --git a/docs/drivers.html.in b/docs/drivers.html.in
index 3d79ed5..7aa44f3 100644
--- a/docs/drivers.html.in
+++ b/docs/drivers.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Internal drivers</h1>
diff --git a/docs/drvesx.html.in b/docs/drvesx.html.in
index 11df124..0816baf 100644
--- a/docs/drvesx.html.in
+++ b/docs/drvesx.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>VMware ESX hypervisor driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvhyperv.html.in b/docs/drvhyperv.html.in
index 7f0accd..7acf86f 100644
--- a/docs/drvhyperv.html.in
+++ b/docs/drvhyperv.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>Microsoft Hyper-V hypervisor driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index c817a9b..beff214 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>LXC container driver</h1>
<p>
diff --git a/docs/drvopenvz.html.in b/docs/drvopenvz.html.in
index a8f9f28..e2e72e7 100644
--- a/docs/drvopenvz.html.in
+++ b/docs/drvopenvz.html.in
@@ -1,4 +1,6 @@
-<html> <!-- -*- html -*- -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>OpenVZ container driver</h1>
diff --git a/docs/drvparallels.html.in b/docs/drvparallels.html.in
index 0a86451..927cc40 100644
--- a/docs/drvparallels.html.in
+++ b/docs/drvparallels.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>Parallels Cloud Server driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvphyp.html.in b/docs/drvphyp.html.in
index 50e26b2..bb1f69e 100644
--- a/docs/drvphyp.html.in
+++ b/docs/drvphyp.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>IBM PowerVM hypervisor driver (phyp)</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvqemu.html.in b/docs/drvqemu.html.in
index df99377..3a5c4df 100644
--- a/docs/drvqemu.html.in
+++ b/docs/drvqemu.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>KVM/QEMU hypervisor driver</h1>
@@ -17,6 +19,7 @@
<li>
The <a href="http://www.linux-kvm.org/">KVM</a> Linux
hypervisor
+ </li>
<li>
The <a href="http://wiki.qemu.org/Index.html">QEMU</a> emulator
</li>
@@ -569,7 +572,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
pair recorded in the attributes <code>name</code>
and optional <code>value</code>.</dd>
</dl>
-
+ </p>
<p>Example:</p><pre>
<domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>QEmu-fedora-i686</name>
diff --git a/docs/drvremote.html.in b/docs/drvremote.html.in
index c66526f..c967324 100644
--- a/docs/drvremote.html.in
+++ b/docs/drvremote.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Remote management driver</h1>
</body>
diff --git a/docs/drvtest.html.in b/docs/drvtest.html.in
index 44bc289..ba5fc99 100644
--- a/docs/drvtest.html.in
+++ b/docs/drvtest.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Test "mock" driver</h1>
diff --git a/docs/drvuml.html.in b/docs/drvuml.html.in
index 19b76ab..fe7769d 100644
--- a/docs/drvuml.html.in
+++ b/docs/drvuml.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>User Mode Linux driver</h1>
diff --git a/docs/drvvbox.html.in b/docs/drvvbox.html.in
index db82d2a..d59da57 100644
--- a/docs/drvvbox.html.in
+++ b/docs/drvvbox.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>VirtualBox hypervisor driver</h1>
<p>
diff --git a/docs/drvvmware.html.in b/docs/drvvmware.html.in
index b82f6a3..9ee0ebd 100644
--- a/docs/drvvmware.html.in
+++ b/docs/drvvmware.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>VMware Workstation / Player hypervisors driver</h1>
<p>
diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in
index 06bd911..649ba42 100644
--- a/docs/drvxen.html.in
+++ b/docs/drvxen.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Xen hypervisor driver</h1>
diff --git a/docs/errors.html.in b/docs/errors.html.in
index cbd6e4b..df9aa7c 100644
--- a/docs/errors.html.in
+++ b/docs/errors.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Handling of errors</h1>
<p>The main goals of libvirt when it comes to error handling are:</p>
diff --git a/docs/firewall.html.in b/docs/firewall.html.in
index a9af704..42642bc 100644
--- a/docs/firewall.html.in
+++ b/docs/firewall.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Firewall and network filtering in libvirt</h1>
<p>There are three pieces of libvirt functionality which do network
diff --git a/docs/format.html.in b/docs/format.html.in
index 1306108..9cb8eee 100644
--- a/docs/format.html.in
+++ b/docs/format.html.in
@@ -1,4 +1,5 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >XML Format</h1>
diff --git a/docs/formatcaps.html.in b/docs/formatcaps.html.in
index 9d42426..d060a5b 100644
--- a/docs/formatcaps.html.in
+++ b/docs/formatcaps.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Driver capabilities XML format</h1>
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 768b54c..8b3bffa 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Domain XML format</h1>
@@ -182,6 +184,7 @@
again in case the boot fails (according to BIOS). The value is
in milliseconds with maximum of <code>65535</code> and special
value <code>-1</code> disables the reboot.
+ </dd>
</dl>
<h4><a name="elementsOSBootloader">Host bootloader</a></h4>
@@ -641,6 +644,7 @@
how to tune the performance of a NUMA host via controlling NUMA policy
for domain process. NB, only supported by QEMU driver.
<span class='since'>Since 0.9.3</span>
+ </dd>
<dt><code>memory</code></dt>
<dd>
The optional <code>memory</code> element specifies how to allocate memory
@@ -1588,6 +1592,7 @@
<dd>The optional <code>write_iops_sec</code> element is the
write I/O operations per second.</dd>
</dl>
+ </dd>
<dt><code>driver</code></dt>
<dd>
The optional driver element allows specifying further details
@@ -1847,11 +1852,13 @@
OS. For Linux this would be the value returned by the
BLKSSZGET ioctl and describes the smallest units for disk
I/O.
+ </dd>
<dt><code>physical_block_size</code></dt>
<dd>The physical block size the disk will report to the guest
OS. For Linux this would be the value returned by the
BLKPBSZGET ioctl and describes the disk's hardware sector
size which can be relevant for the alignment of disk data.
+ </dd>
</dl>
</dd>
</dl>
@@ -2092,6 +2099,7 @@
additional attributes: <code>bus</code> (a 2-digit bus
number), and <code>slot</code> attribute (a 2-digit slot
within the bus). <span class="since">Since 0.8.8.</span>
+ </dd>
<dt><code>type='usb'</code></dt>
<dd>USB addresses have the following additional
attributes: <code>bus</code> (a hex value between 0 and 0xfff,
@@ -2367,6 +2375,7 @@
<a href="#elementsOSBIOS">BIOS bootloader</a> section.
<span class="since">Since 0.8.8</span> for PCI devices,
<span class="since">Since 1.0.1</span> for USB devices.
+ </dd>
<dt><code>rom</code></dt>
<dd>The <code>rom</code> element is used to change how a PCI
device's ROM is presented to the guest. The optional <code>bar</code>
@@ -4030,7 +4039,7 @@ qemu-kvm -net nic,model=? /dev/null
usually care about the source path since it's libvirt who talks to
the guest agent. In case users want to utilize this feature, they should
leave <code><source></code> element out.
-
+ </dd>
<dt><code>spicevmc</code></dt>
<dd>Paravirtualized SPICE channel. The domain must also have a
SPICE server as a <a href="#elementsGraphics">graphics
@@ -4589,7 +4598,7 @@ qemu-kvm -net nic,model=? /dev/null
TPM device. The following types are supported:
</p>
<ul>
- <li>'passthrough' — use the host's TPM device.
+ <li>'passthrough' — use the host's TPM device.</li>
</ul>
</dd>
<dt><code>backend type='passthrough'</code></dt>
diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in
index b188896..d72bd0a 100644
--- a/docs/formatnetwork.html.in
+++ b/docs/formatnetwork.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network XML format</h1>
diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
index 5712bcf..11654e5 100644
--- a/docs/formatnode.html.in
+++ b/docs/formatnode.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Node devices XML format</h1>
diff --git a/docs/formatnwfilter.html.in b/docs/formatnwfilter.html.in
index 78c3b82..5e1c6bb 100644
--- a/docs/formatnwfilter.html.in
+++ b/docs/formatnwfilter.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network Filters</h1>
@@ -113,7 +115,7 @@
<p>
Filtering rules are organized in filter chains. These chains can be
thought of as having a tree structure with packet
- filtering rules as entries in individual chains (branches). <br>
+ filtering rules as entries in individual chains (branches). <br/>
Packets start their filter evaluation in the <code>root</code> chain
and can then continue their evaluation in other chains, return from
those chains back into the <code>root</code> chain or be
@@ -227,7 +229,7 @@
<p>
A chain with a lower priority value is accessed before one with a
higher value.
- <br><br>
+ <br/>
<span class="since">Since 0.9.8</span> the above listed chains
can be assigned custom priorities by writing a value in the
range [-1000, 1000] into the priority (XML) attribute in the filter
@@ -370,7 +372,7 @@
<p>
Further, the notation of $VARIABLE is short-hand for $VARIABLE[@0]. The
former notation always assumes the iterator with Id '0'.
- <p>
+ </p>
<h3><a name="nwfelemsRulesAdvIPAddrDetection">Automatic IP address detection</a></h3>
<p>
@@ -394,7 +396,7 @@
When a VM is migrated to another host or resumed after a suspend operation,
the first packet sent by the VM will again determine the IP address it can
use on a particular interface.
- <br/><br>
+ <br/>
A value of <code>dhcp</code> specifies that libvirt should only honor DHCP
server-assigned addresses with valid leases. This method supports the detection
and usage of multiple IP address per interface.
@@ -567,7 +569,7 @@
(matching the rule passes this filter, but returns control to
the calling filter for further
analysis) <span class="since">(since 0.9.7)</span>,
- or <code>continue<code> (matching the rule goes on to the next
+ or <code>continue</code> (matching the rule goes on to the next
rule for further analysis) <span class="since">(since
0.9.7)</span>.
</li>
@@ -585,7 +587,7 @@
<span class="since">Since 0.9.8</span> this has been extended to cover
the range of -1000 to 1000. If this attribute is not
provided, priority 500 will automatically be assigned.
- <br>
+ <br/>
Note that filtering rules in the <code>root</code> chain are sorted
with filters connected to the <code>root</code> chain following
their priorities. This allows to interleave filtering rules with
diff --git a/docs/formatsecret.html.in b/docs/formatsecret.html.in
index c3c4a25..f816b50 100644
--- a/docs/formatsecret.html.in
+++ b/docs/formatsecret.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Secret XML format</h1>
diff --git a/docs/formatsnapshot.html.in b/docs/formatsnapshot.html.in
index 2e830f8..76689cb 100644
--- a/docs/formatsnapshot.html.in
+++ b/docs/formatsnapshot.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Snapshot XML format</h1>
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index eba3647..9c3be67 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage pool and volume XML format</h1>
diff --git a/docs/formatstorageencryption.html.in b/docs/formatstorageencryption.html.in
index 9557a22..2b22237 100644
--- a/docs/formatstorageencryption.html.in
+++ b/docs/formatstorageencryption.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage volume encryption XML format</h1>
diff --git a/docs/goals.html.in b/docs/goals.html.in
index a17115e..60b6c44 100644
--- a/docs/goals.html.in
+++ b/docs/goals.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Terminology and goals</h1>
<p>To avoid ambiguity about the terms used, here are the definitions
diff --git a/docs/hacking.html.in b/docs/hacking.html.in
index 99933d1..64cdcc2 100644
--- a/docs/hacking.html.in
+++ b/docs/hacking.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Contributor guidelines</h1>
diff --git a/docs/hooks.html.in b/docs/hooks.html.in
index 3b070e7..f0f692b 100644
--- a/docs/hooks.html.in
+++ b/docs/hooks.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Hooks for specific system management</h1>
diff --git a/docs/index.html.in b/docs/index.html.in
index 038986d..772cbfb 100644
--- a/docs/index.html.in
+++ b/docs/index.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>The virtualization API</h1>
diff --git a/docs/internals.html.in b/docs/internals.html.in
index 90143ef..398d02e 100644
--- a/docs/internals.html.in
+++ b/docs/internals.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt internals</h1>
diff --git a/docs/internals/command.html.in b/docs/internals/command.html.in
index 7bb9aa3..d63151e 100644
--- a/docs/internals/command.html.in
+++ b/docs/internals/command.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Spawning processes / commands from libvirt drivers</h1>
diff --git a/docs/internals/locking.html.in b/docs/internals/locking.html.in
index c50e68f..0317c78 100644
--- a/docs/internals/locking.html.in
+++ b/docs/internals/locking.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Resource Lock Manager</h1>
diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in
index 91e8449..40fb59d 100644
--- a/docs/internals/rpc.html.in
+++ b/docs/internals/rpc.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt RPC infrastructure</h1>
@@ -152,6 +154,7 @@
<li>continue: for streams this indicates that further data packets
will be following</li>
</ol>
+ </dd>
</dl>
<h3><a href="protocolpayload">Packet payload</a></h3>
diff --git a/docs/intro.html.in b/docs/intro.html.in
index a661ca3..6736f2a 100644
--- a/docs/intro.html.in
+++ b/docs/intro.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Architecture</h1>
<p>Libvirt is a C toolkit manage the virtualization capabilities
diff --git a/docs/java.html.in b/docs/java.html.in
index 41f2630..b5812ba 100644
--- a/docs/java.html.in
+++ b/docs/java.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Java API bindings</h1>
diff --git a/docs/locking.html.in b/docs/locking.html.in
index 19dd6a3..8e1e72c 100644
--- a/docs/locking.html.in
+++ b/docs/locking.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Virtual machine disk locking</h1>
diff --git a/docs/logging.html.in b/docs/logging.html.in
index a95f7bc..86e178c 100644
--- a/docs/logging.html.in
+++ b/docs/logging.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Logging in the library and the daemon</h1>
<p>Libvirt includes logging facilities starting from version 0.6.0,
diff --git a/docs/migration.html.in b/docs/migration.html.in
index aecef41..2ea0969 100644
--- a/docs/migration.html.in
+++ b/docs/migration.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Guest migration</h1>
@@ -30,7 +32,7 @@
</p>
<p>
- <img class="diagram" src="migration-native.png" alt="Migration native path">
+ <img class="diagram" src="migration-native.png" alt="Migration native path"/>
</p>
<h3><a name="transporttunnel">libvirt tunnelled transport</a></h3>
@@ -48,7 +50,7 @@
</p>
<p>
- <img class="diagram" src="migration-tunnel.png" alt="Migration tunnel path">
+ <img class="diagram" src="migration-tunnel.png" alt="Migration tunnel path"/>
</p>
<h2><a name="flow">Communication control paths/flows</a></h2>
@@ -75,7 +77,7 @@
</p>
<p>
- <img class="diagram" src="migration-managed-direct.png" alt="Migration direct, managed">
+ <img class="diagram" src="migration-managed-direct.png" alt="Migration direct, managed"/>
</p>
@@ -97,7 +99,7 @@
</p>
<p>
- <img class="diagram" src="migration-managed-p2p.png" alt="Migration peer-to-peer">
+ <img class="diagram" src="migration-managed-p2p.png" alt="Migration peer-to-peer"/>
</p>
@@ -113,7 +115,7 @@
</p>
<p>
- <img class="diagram" src="migration-unmanaged-direct.png" alt="Migration direct, unmanaged">
+ <img class="diagram" src="migration-unmanaged-direct.png" alt="Migration direct, unmanaged"/>
</p>
diff --git a/docs/news.html.in b/docs/news.html.in
index 44a1b09..b77cf1d 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
diff --git a/docs/pending.html.in b/docs/pending.html.in
index f2978bf..d9d2eae 100644
--- a/docs/pending.html.in
+++ b/docs/pending.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Pending patches needing review</h1>
<p> A list of pending patches needing review upstream is available
diff --git a/docs/php.html.in b/docs/php.html.in
index 5283e67..d9a3c1b 100644
--- a/docs/php.html.in
+++ b/docs/php.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>PHP API bindings</h1>
diff --git a/docs/python.html.in b/docs/python.html.in
index e7538a4..3033337 100644
--- a/docs/python.html.in
+++ b/docs/python.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Python API bindings</h1>
diff --git a/docs/relatedlinks.html.in b/docs/relatedlinks.html.in
index 9e96f66..b376ced 100644
--- a/docs/relatedlinks.html.in
+++ b/docs/relatedlinks.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Related links</h1>
diff --git a/docs/remote.html.in b/docs/remote.html.in
index fc6af82..25ae30e 100644
--- a/docs/remote.html.in
+++ b/docs/remote.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Remote support</h1>
<p>
diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index afabf2d..619e4a1 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Sitemap</h1>
diff --git a/docs/storage.html.in b/docs/storage.html.in
index 649e23b..1181444 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Storage Management</h1>
<p>
diff --git a/docs/testapi.html.in b/docs/testapi.html.in
index 9b6161d..cf23271 100644
--- a/docs/testapi.html.in
+++ b/docs/testapi.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt-test-API: Python based test suite </h1>
<p>Libvirt-test-API is a powerful test tool designed to complement
@@ -24,7 +25,7 @@
<ul>
<li> A <a href="http://libvirt.org/sources/libvirt-test-API/Libvirt-test-API.pdf">documentation PDF</a>
file describing the test suite and how to write test cases
- and test scenarios.
+ and test scenarios.</li>
</ul>
<p> Libvirt-test-API is maintained using
<a href="http://libvirt.org/git/?p=libvirt-test-API.git">a GIT
diff --git a/docs/testsuites.html.in b/docs/testsuites.html.in
index 4441d94..9a382cf 100644
--- a/docs/testsuites.html.in
+++ b/docs/testsuites.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Test suites</h1>
<p>There is a few test suites available to developers for testing
@@ -24,6 +25,7 @@
in Fedora distributions, but best is probably to get
the <a href="http://libvirt.org/git/?p=libvirt-tck.git">version
from GIT</a>.
+ </li>
<li>the <a href="testapi.html">libvirt-test-API</a> is also a functional
test suite, but implemented using the
<a href="python.html">Python bindings</a>
@@ -32,6 +34,7 @@
or directly get
the <a href="http://libvirt.org/git/?p=libvirt-test-API.git">version
from GIT</a>.
+ </li>
</ul>
</body>
</html>
diff --git a/docs/testtck.html.in b/docs/testtck.html.in
index c0e7008..dff46d0 100644
--- a/docs/testtck.html.in
+++ b/docs/testtck.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt TCK : Technology Compatibility Kit</h1>
<p>The libvirt TCK provides a framework for performing testing
@@ -26,7 +27,7 @@
<ul>
<li> The initial
<a href="http://www.redhat.com/archives/libvir-list/2009-April/msg00176.html">mail
- from Daniel Berrange</a> presenting the project.
+ from Daniel Berrange</a> presenting the project.</li>
<li> The <a href="http://fedoraproject.org/wiki/Features/VirtTCK">page
describing VirtTCK</a> the inclusion of libvirt-TCK as a
Fedora Feature.</li>
diff --git a/docs/uri.html.in b/docs/uri.html.in
index 97a1cdb..73c3e88 100644
--- a/docs/uri.html.in
+++ b/docs/uri.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Connection URIs</h1>
diff --git a/docs/virshcmdref.html.in b/docs/virshcmdref.html.in
index 4845312..5503ca0 100644
--- a/docs/virshcmdref.html.in
+++ b/docs/virshcmdref.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Virsh Command Reference</h1>
diff --git a/docs/windows.html.in b/docs/windows.html.in
index 8e0af7c..89dfdb1 100644
--- a/docs/windows.html.in
+++ b/docs/windows.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Windows support</h1>
--
1.8.2.1
11 years, 6 months
[libvirt] [PATCH] Ignore 'uri' parameter in lockd driver
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
A 'uri' parameter was added for the benefit of sanlock. This
causes a warning in the lockd driver though
2013-05-03 13:20:35.347+0000: 28403: error : virLockManagerLockDaemonNew:482 : internal error Unexpected parameter uri for object
Ignore this parameter, since lockd does not require it and it
is harmless if not used.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/locking/lock_driver_lockd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index 4d0cd74..8077105 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -476,6 +476,8 @@ static int virLockManagerLockDaemonNew(virLockManagerPtr lock,
priv->id = params[i].value.i;
} else if (STREQ(params[i].key, "pid")) {
priv->pid = params[i].value.i;
+ } else if (STREQ(params[i].key, "uri")) {
+ /* ignored */
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected parameter %s for object"),
--
1.8.1.4
11 years, 6 months
[libvirt] [PATCHv2] network: fix network driver startup for qemu:///session
by Laine Stump
This should resolve https://bugzilla.redhat.com/show_bug.cgi?id=958907
Recent new addition of code to read/write active network state to the
NETWORK_STATE_DIR in the network driver broke startup for
qemu:///session. The network driver had several state file paths
hardcoded to /var, which could never possibly work in session mode.
This patch modifies *all* state files to use a variable string that is
set differently according to whether or not we're running
privileged. (It turns out that logDir was never used, so it's been
completely eliminated.)
There are very definitely other problems preventing dnsmasq and radvd
from running in non-privileged mode, but it's more consistent to have
the directories used by them be determined in the same fashion.
NB: I've noted before that the network driver is storing its state
(including dnsmasq and radvd state) in /var/lib, while qemu stores its
state in /var/run. It would probably have been better if the two
matched, but it's been this way for a long time, and changing it would
break running installations during an upgrade, so it's best to just
leave it as it is.
---
Changes since V1:
* change user directory names as outlined by danpb.
* eliminate the "base" string which caused so much bad code, and
otherwise simplify the logic
* get rid of logDir, since it's never used.
* eliminage the *_DIR #defines, since they're now each only used once,
and they just serve to obscure what's being done.
src/network/bridge_driver.c | 182 +++++++++++++++++++++++++-------------------
1 file changed, 102 insertions(+), 80 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index e828997..543b098 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -1,4 +1,3 @@
-
/*
* bridge_driver.c: core driver methods for managing network
*
@@ -67,12 +66,6 @@
#include "virfile.h"
#include "virstring.h"
-#define NETWORK_PID_DIR LOCALSTATEDIR "/run/libvirt/network"
-#define NETWORK_STATE_DIR LOCALSTATEDIR "/lib/libvirt/network"
-
-#define DNSMASQ_STATE_DIR LOCALSTATEDIR "/lib/libvirt/dnsmasq"
-#define RADVD_STATE_DIR LOCALSTATEDIR "/lib/libvirt/radvd"
-
#define VIR_FROM_THIS VIR_FROM_NETWORK
/* Main driver state */
@@ -84,7 +77,10 @@ struct network_driver {
iptablesContext *iptables;
char *networkConfigDir;
char *networkAutostartDir;
- char *logDir;
+ char *stateDir;
+ char *pidDir;
+ char *dnsmasqStateDir;
+ char *radvdStateDir;
dnsmasqCapsPtr dnsmasqCaps;
};
@@ -133,8 +129,8 @@ networkDnsmasqLeaseFileNameDefault(const char *netname)
{
char *leasefile;
- ignore_value(virAsprintf(&leasefile, DNSMASQ_STATE_DIR "/%s.leases",
- netname));
+ ignore_value(virAsprintf(&leasefile, "%s/%s.leases",
+ driverState->dnsmasqStateDir, netname));
return leasefile;
}
@@ -146,8 +142,8 @@ networkDnsmasqConfigFileName(const char *netname)
{
char *conffile;
- ignore_value(virAsprintf(&conffile, DNSMASQ_STATE_DIR "/%s.conf",
- netname));
+ ignore_value(virAsprintf(&conffile, "%s/%s.conf",
+ driverState->dnsmasqStateDir, netname));
return conffile;
}
@@ -166,8 +162,8 @@ networkRadvdConfigFileName(const char *netname)
{
char *configfile;
- ignore_value(virAsprintf(&configfile, RADVD_STATE_DIR "/%s-radvd.conf",
- netname));
+ ignore_value(virAsprintf(&configfile, "%s/%s-radvd.conf",
+ driverState->radvdStateDir, netname));
return configfile;
}
@@ -187,8 +183,10 @@ networkRemoveInactive(struct network_driver *driver,
int ret = -1;
/* remove the (possibly) existing dnsmasq and radvd files */
- if (!(dctx = dnsmasqContextNew(def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
if (!(leasefile = networkDnsmasqLeaseFileName(def->name)))
goto cleanup;
@@ -202,7 +200,8 @@ networkRemoveInactive(struct network_driver *driver,
if (!(configfile = networkDnsmasqConfigFileName(def->name)))
goto no_memory;
- if (!(statusfile = virNetworkConfigFile(NETWORK_STATE_DIR, def->name)))
+ if (!(statusfile
+ = virNetworkConfigFile(driverState->stateDir, def->name)))
goto no_memory;
/* dnsmasq */
@@ -212,7 +211,7 @@ networkRemoveInactive(struct network_driver *driver,
/* radvd */
unlink(radvdconfigfile);
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
/* remove status file */
unlink(statusfile);
@@ -279,7 +278,7 @@ networkFindActiveConfigs(struct network_driver *driver)
if (obj->def->ips && (obj->def->nips > 0)) {
char *radvdpidbase;
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, obj->def->name,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, obj->def->name,
&obj->dnsmasqPid,
dnsmasqCapsGetBinaryPath(driver->dnsmasqCaps)));
@@ -287,7 +286,7 @@ networkFindActiveConfigs(struct network_driver *driver)
virReportOOMError();
goto cleanup;
}
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, radvdpidbase,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, radvdpidbase,
&obj->radvdPid, RADVD));
VIR_FREE(radvdpidbase);
}
@@ -359,7 +358,9 @@ networkStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
{
- char *base = NULL;
+ int ret = -1;
+ char *configdir = NULL;
+ char *rundir = NULL;
#ifdef HAVE_FIREWALLD
DBusConnection *sysbus = NULL;
#endif
@@ -373,43 +374,53 @@ networkStateInitialize(bool privileged,
}
networkDriverLock(driverState);
+ /* Configuration paths one of
+ * ~/.libvirt/... (old style session/unprivileged)
+ * ~/.config/libvirt/... (new XDG session/unprivileged)
+ * /etc/libvirt/... && /var/(run|lib)/libvirt/... (system/privileged).
+ *
+ * NB: The qemu driver puts its domain state in /var/run, and I
+ * think the network driver should have used /var/run too (instead
+ * of /var/lib), but it's been this way for a long time, and we
+ * probably should change it now.
+ */
if (privileged) {
- if (virAsprintf(&driverState->logDir,
- "%s/log/libvirt/qemu", LOCALSTATEDIR) == -1)
- goto out_of_memory;
-
- if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL)
+ if (!(driverState->networkConfigDir
+ = strdup(SYSCONFDIR "/libvirt/qemu/networks")) ||
+ !(driverState->networkAutostartDir
+ = strdup(SYSCONFDIR "/libvirt/qemu/networks/autostart")) ||
+ !(driverState->stateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/network")) ||
+ !(driverState->pidDir
+ = strdup(LOCALSTATEDIR "/run/libvirt/network")) ||
+ !(driverState->dnsmasqStateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/dnsmasq")) ||
+ !(driverState->radvdStateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/radvd"))) {
goto out_of_memory;
+ }
} else {
- char *userdir = virGetUserCacheDirectory();
-
- if (!userdir)
+ configdir = virGetUserConfigDirectory();
+ rundir = virGetUserRuntimeDirectory();
+ if (!(configdir && rundir))
goto error;
- if (virAsprintf(&driverState->logDir,
- "%s/qemu/log", userdir) == -1) {
- VIR_FREE(userdir);
+ if ((virAsprintf(&driverState->networkConfigDir,
+ "%s/qemu/networks", configdir) < 0) ||
+ (virAsprintf(&driverState->networkAutostartDir,
+ "%s/qemu/networks/autostart", configdir) < 0) ||
+ (virAsprintf(&driverState->stateDir,
+ "%s/network/lib", rundir) < 0) ||
+ (virAsprintf(&driverState->pidDir,
+ "%s/network/run", rundir) < 0) ||
+ (virAsprintf(&driverState->dnsmasqStateDir,
+ "%s/dnsmasq/lib", rundir) < 0) ||
+ (virAsprintf(&driverState->radvdStateDir,
+ "%s/radvd/lib", rundir) < 0)) {
goto out_of_memory;
}
- VIR_FREE(userdir);
-
- base = virGetUserConfigDirectory();
- if (!base)
- goto error;
}
- /* Configuration paths are either ~/.libvirt/qemu/... (session) or
- * /etc/libvirt/qemu/... (system).
- */
- if (virAsprintf(&driverState->networkConfigDir, "%s/qemu/networks", base) == -1)
- goto out_of_memory;
-
- if (virAsprintf(&driverState->networkAutostartDir, "%s/qemu/networks/autostart",
- base) == -1)
- goto out_of_memory;
-
- VIR_FREE(base);
-
if (!(driverState->iptables = iptablesContextNew())) {
goto out_of_memory;
}
@@ -418,7 +429,7 @@ networkStateInitialize(bool privileged,
driverState->dnsmasqCaps = dnsmasqCapsNewFromBinary(DNSMASQ);
if (virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR) < 0)
+ driverState->stateDir) < 0)
goto error;
if (virNetworkLoadAllConfigs(&driverState->networks,
@@ -459,18 +470,19 @@ networkStateInitialize(bool privileged,
}
#endif
- return 0;
+ ret = 0;
+cleanup:
+ VIR_FREE(configdir);
+ VIR_FREE(rundir);
+ return ret;
out_of_memory:
virReportOOMError();
-
error:
if (driverState)
networkDriverUnlock(driverState);
-
- VIR_FREE(base);
networkStateCleanup();
- return -1;
+ goto cleanup;
}
/**
@@ -486,7 +498,7 @@ networkStateReload(void) {
networkDriverLock(driverState);
virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR);
+ driverState->stateDir);
virNetworkLoadAllConfigs(&driverState->networks,
driverState->networkConfigDir,
driverState->networkAutostartDir);
@@ -513,9 +525,12 @@ networkStateCleanup(void) {
/* free inactive networks */
virNetworkObjListFree(&driverState->networks);
- VIR_FREE(driverState->logDir);
VIR_FREE(driverState->networkConfigDir);
VIR_FREE(driverState->networkAutostartDir);
+ VIR_FREE(driverState->stateDir);
+ VIR_FREE(driverState->pidDir);
+ VIR_FREE(driverState->dnsmasqStateDir);
+ VIR_FREE(driverState->radvdStateDir);
if (driverState->iptables)
iptablesContextFree(driverState->iptables);
@@ -1057,32 +1072,33 @@ networkStartDhcpDaemon(struct network_driver *driver,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(NETWORK_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->stateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_STATE_DIR);
+ driverState->stateDir);
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, network->def->name))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir,
+ network->def->name))) {
virReportOOMError();
goto cleanup;
}
- if (virFileMakePath(DNSMASQ_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->dnsmasqStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- DNSMASQ_STATE_DIR);
+ driverState->dnsmasqStateDir);
goto cleanup;
}
- dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR);
+ dctx = dnsmasqContextNew(network->def->name, driverState->dnsmasqStateDir);
if (dctx == NULL)
goto cleanup;
@@ -1110,7 +1126,7 @@ networkStartDhcpDaemon(struct network_driver *driver,
* pid
*/
- ret = virPidFileRead(NETWORK_PID_DIR, network->def->name,
+ ret = virPidFileRead(driverState->pidDir, network->def->name,
&network->dnsmasqPid);
if (ret < 0)
goto cleanup;
@@ -1147,8 +1163,10 @@ networkRefreshDhcpDaemon(struct network_driver *driver,
return networkStartDhcpDaemon(driver, network);
VIR_INFO("Refreshing dnsmasq for network %s", network->def->bridge);
- if (!(dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(network->def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
/* Look for first IPv4 address that has dhcp defined.
* We only support dhcp-host config on one IPv4 subnetwork
@@ -1372,16 +1390,16 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(RADVD_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->radvdStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- RADVD_STATE_DIR);
+ driverState->radvdStateDir);
goto cleanup;
}
@@ -1390,7 +1408,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
virReportOOMError();
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, radvdpidbase))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir, radvdpidbase))) {
virReportOOMError();
goto cleanup;
}
@@ -1418,7 +1436,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
- if (virPidFileRead(NETWORK_PID_DIR, radvdpidbase, &network->radvdPid) < 0)
+ if (virPidFileRead(driverState->pidDir, radvdpidbase, &network->radvdPid) < 0)
goto cleanup;
ret = 0;
@@ -1445,7 +1463,7 @@ networkRefreshRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -1485,7 +1503,7 @@ networkRestartRadvd(struct network_driver *driver,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -2575,7 +2593,7 @@ static int networkShutdownNetworkVirtual(struct network_driver *driver,
if (!(radvdpidbase = networkRadvdPidfileBasename(network->def->name))) {
virReportOOMError();
} else {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
}
@@ -2676,7 +2694,8 @@ networkStartNetwork(struct network_driver *driver,
/* Persist the live configuration now that anything autogenerated
* is setup.
*/
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0) {
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto error;
}
@@ -2706,7 +2725,8 @@ static int networkShutdownNetwork(struct network_driver *driver,
if (!virNetworkObjIsActive(network))
return 0;
- stateFile = virNetworkConfigFile(NETWORK_STATE_DIR, network->def->name);
+ stateFile = virNetworkConfigFile(driverState->stateDir,
+ network->def->name);
if (!stateFile)
return -1;
@@ -3371,8 +3391,10 @@ networkUpdate(virNetworkPtr net,
}
/* save current network state to disk */
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0)
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto cleanup;
+ }
}
ret = 0;
cleanup:
@@ -4705,7 +4727,7 @@ networkPlugBandwidth(virNetworkObjPtr net,
/* update sum of 'floor'-s of attached NICs */
net->floor_sum += ifaceBand->in->floor;
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
ignore_value(virBitmapClearBit(net->class_id, class_id));
net->floor_sum -= ifaceBand->in->floor;
iface->data.network.actual->class_id = 0;
@@ -4751,7 +4773,7 @@ networkUnplugBandwidth(virNetworkObjPtr net,
ignore_value(virBitmapClearBit(net->class_id,
iface->data.network.actual->class_id));
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
net->floor_sum += ifaceBand->in->floor;
ignore_value(virBitmapSetBit(net->class_id,
iface->data.network.actual->class_id));
--
1.7.11.7
11 years, 6 months