3 hours agoPost-release version bump to 1.3.5 master
John Ferlan [Sun, 1 May 2016 12:28:34 +0000]
Post-release version bump to 1.3.5

13 hours agoRelease of libvirt-1.3.4 v1.3.4
Daniel Veillard [Sun, 1 May 2016 01:50:21 +0000]
Release of libvirt-1.3.4

* docs/ update for release
* po/*.po* : regenerated

25 hours agoFix minor typos in messages
Yuri Chornoivan [Fri, 29 Apr 2016 18:22:36 +0000]
Fix minor typos in messages

Signed-off-by: Yuri Chornoivan <>

46 hours agoRevert "qemu domain allow to set ip address, peer address and route"
Laine Stump [Fri, 29 Apr 2016 15:32:09 +0000]
Revert "qemu domain allow to set ip address, peer address and route"

This reverts commit 6e244c659fb004503fd2a94319dae8fa6fecf045, which
added support to qemu for the "peer" attribute in domain interface <ip>

It's being removed temporarily for the release of libvirt 1.3.4
because the feature doesn't work, and there are concerns that it may
need to be modified in an externally visible manner which could create
backward compatibility problems.

   tests/qemuxml2argvmock.c - a mock of virNetDevSetOnline() was added
   which may be assumed by other tests added since the original commit,
   so it isn't being reverted.

46 hours agoRevert "lxc domain allow to set peer address"
Laine Stump [Fri, 29 Apr 2016 15:35:08 +0000]
Revert "lxc domain allow to set peer address"

This reverts commit afee47d07c521b4bb10a12e253a29363d16ab8f0, which
added support to lxc for the "peer" attribute in domain interface <ip>

It's being removed temporarily for the release of libvirt 1.3.4
because the feature doesn't work, and there are concerns that it may
need to be modified in an externally visible manner which could create
backward compatibility problems.

46 hours agoRevert "libvirt domain xml allow to set peer address"
Laine Stump [Fri, 29 Apr 2016 15:36:38 +0000]
Revert "libvirt domain xml allow to set peer address"

This reverts commit 690969af9ccdf9b2012b97af0462bae8e312c9c9, which
added the domain config parts to support a "peer" attribute in domain
interface <ip> elements.

It's being removed temporarily for the release of libvirt 1.3.4
because the feature doesn't work, and there are concerns that it may
need to be modified in an externally visible manner which could create
backward compatibility problems.

2 days agorpc: Don't leak fd via CreateXMLWithFiles
Ben Gray [Sat, 23 Apr 2016 22:38:21 +0000]
rpc: Don't leak fd via CreateXMLWithFiles

FD passing APIs like CreateXMLWithFiles or OpenGraphicsFD will leak
file descriptors. The user passes in an fd, which is dup()'d in
virNetClientProgramCall. The new fd is what is transfered to the
server virNetClientIOWriteMessage.

Once all the fds have been written though, the parent msg->fds list
is immediately free'd, so the individual fds are never closed.

This closes each FD as its send to the server, so all fds have been
closed by the time msg->fds is free'd.

2 days agovz: fix disk enumeration v1.3.4-rc2
Mikhail Feoktistov [Wed, 27 Apr 2016 15:37:27 +0000]
vz: fix disk enumeration

If we want to delete all disks for container or vm
we should make a loop from 0 to NumberOfDisks and always
use zero index in PrlVmCfg_GetHardDisk to get disk handle.
When we delete first disk after that numbers of other disks
will be changed, start from 0 to NumberOfDisks-1.
That's why we should always use zero index.

2 days agovirsh: Fix support for 64 migration options
Nikolay Shirokovskiy [Wed, 20 Apr 2016 13:51:43 +0000]
virsh: Fix support for 64 migration options

Add ULL suffix to all related operands of << or shift will give
all zeros instead of correct mask.

Signed-off-by: Nikolay Shirokovskiy <>

3 days agoqemu: Regenerate VNC socket paths
Martin Kletzander [Tue, 26 Apr 2016 12:27:16 +0000]
qemu: Regenerate VNC socket paths

Similarly to what commit 714080791778 did with some internal paths,
clear vnc socket paths that were generated by us.  Having such path in
the definition can cause trouble when restoring the domain.  The path is
generated to the per-domain directory that contains the domain ID.
However, that ID will be different upon restoration, so qemu won't be
able to create that socket because the directory will not be prepared.

To be able to migrate to older libvirt, skip formatting the socket path
in migratable XML if it was autogenerated.  And mark it as autogenerated
if it already exists and we're parsing live XML.

Best viewed with '-C'.


Signed-off-by: Martin Kletzander <>

3 days agoqemu: Error out if setting vcpu count would lead to invalid config
Peter Krempa [Wed, 27 Apr 2016 14:39:41 +0000]
qemu: Error out if setting vcpu count would lead to invalid config

When the domain definition describes a machine with NUMA, setting the
maximum vCPU count via the API might lead to an invalid config.

Add a check that will forbid this until we add more advanced cpu config


3 days agoqemu: conf: Set default logging approach in virQEMUDriverConfigNew
Peter Krempa [Wed, 27 Apr 2016 10:58:13 +0000]
qemu: conf: Set default logging approach in virQEMUDriverConfigNew

Instead of setting the default qemu stdio logging approach in
virQEMUDriverConfigLoadFile set it in virQEMUDriverConfigNew so that
it's properly set even when the config is not present.


4 days agoShorten domain name for automatic coredump
Martin Kletzander [Tue, 26 Apr 2016 07:44:18 +0000]
Shorten domain name for automatic coredump

If the domain name is long enough, the timestamp can prolong the
filename for automatic coredump to more than the filesystem's limit.
Simply shorten it like we do in other places.  The timestamp helps with
the unification, but having the ID in the name won't hurt.


Signed-off-by: Martin Kletzander <>

4 days agoUnify domain name shortening
Martin Kletzander [Tue, 26 Apr 2016 06:43:40 +0000]
Unify domain name shortening

Add virDomainObjGetShortName() and use it.  For now that's used in one
place, but we should expose it so that future patches can use it.

Signed-off-by: Martin Kletzander <>

4 days agoqemu: Unref cfg in qemuDomainDefPostParse
Martin Kletzander [Tue, 26 Apr 2016 12:38:14 +0000]
qemu: Unref cfg in qemuDomainDefPostParse

Introduced by commit 15ad2ecf114d.

Signed-off-by: Martin Kletzander <>

4 days agoconf: Drop restrictions on rng backend path v1.3.4-rc1
Cole Robinson [Wed, 13 Apr 2016 19:09:30 +0000]
conf: Drop restrictions on rng backend path

Currently we only allow /dev/random and /dev/hwrng as host input
for <rng><backend model='random'/> device. This was added after
various upstream discussions in commit 4932ef45

However this restriction has generated quite a few complaints over
the years, so a new discussion was initiated:

Several people suggested removing the restriction, and nobody really
spoke up to defend it. So this patch drops the path restriction

4 days agoremote: Don't reject remote polkit if client lacks support
Cole Robinson [Thu, 14 Apr 2016 18:58:40 +0000]
remote: Don't reject remote polkit if client lacks support

If you compile a client --without-polkit, and connect to a URI that needs
polkit auth, the connection will fail with:

$ ./tools/virsh --connect qemu+ssh://crobinso@machine/system
error: failed to connect to the hypervisor
error: authentication failed: unsupported authentication type 2

This is because the client side portion of the polkit handling is
compiled out. However, nothing polkit specific is actually required
of the client.

Fix that error by unconditionally compiling the basic polkit client

4 days agospec: Use proper indentation
Andrea Bolognani [Tue, 26 Apr 2016 15:37:16 +0000]
spec: Use proper indentation

Commit 1d4400082a02 added some code that was not indented properly
and broke syntax-check. Fix it.

5 days agospec: If installing default network, restart libvirtd
Cole Robinson [Thu, 16 Apr 2015 19:42:05 +0000]
spec: If installing default network, restart libvirtd

If libvirt-daemon-config-network is installed while libvirtd is already
running, the daemon doesn't notice the network. Users then have to
manually restart libvirtd (or reboot) to pick up the network.

Instead let's trigger a daemon restart when the package is first installed.
Then the default network is available immediately if libvirtd was already

5 days agoschema: Allow space character in disk vendor/product
Cole Robinson [Fri, 15 Apr 2016 17:21:27 +0000]
schema: Allow space character in disk vendor/product

The hex range already tried to allow for it, but it wasn't using
the correct XML hex syntax. Fix it, and test it

5 days agomaint: Ignore all intermediate and generated man pages
Andrea Bolognani [Mon, 25 Apr 2016 15:45:14 +0000]
maint: Ignore all intermediate and generated man pages

Since commit 9b77ce63f1d7 we create a .in file while building all
man pages, including those in the tools/ directory; update the
ignore patterns to take this change into account.

The new ignore patterns are generic enough that we can get rid of
a few existing ones as well.

5 days agoapibuild: Fix method call
Andrea Bolognani [Mon, 25 Apr 2016 12:30:14 +0000]
apibuild: Fix method call

5 days agoapibuild: Introduce app class
Andrea Bolognani [Mon, 25 Apr 2016 12:26:50 +0000]
apibuild: Introduce app class

All top-level functions have been moved to this class.

On top of that, the app.warning() method has been defined,
so that calls to it - already present in rebuild() - can
actually succeed.

5 days agoapibuild: Add index.warning() method
Andrea Bolognani [Mon, 25 Apr 2016 12:23:04 +0000]
apibuild: Add index.warning() method

This method is used in eg. index.merge(), but is not defined
anywhere. The implementation has been copied from docBuilder.

5 days agodocs: Pass relative paths to
Andrea Bolognani [Mon, 25 Apr 2016 11:40:04 +0000]
docs: Pass relative paths to

Since commit d195cffa2e1b, both $(srcdir) and $(abs_builddir)
are passed to the script; however, since the
former is a relative path and the latter an absolute one, the
script might not be able to detect whether they point to the
same location.

Pass both as relative paths to avoid the issue.

5 days agosecret: Change virSecretDef variable names
John Ferlan [Tue, 8 Mar 2016 16:34:56 +0000]
secret: Change virSecretDef variable names

Change 'ephemeral' to 'isephemeral' and 'private' to 'isprivate' since
both are bools.

5 days agosecret: Introduce virSecretObjGetValue and virSecretObjGetValueSize
John Ferlan [Tue, 8 Mar 2016 00:40:58 +0000]
secret: Introduce virSecretObjGetValue and virSecretObjGetValueSize

Introduce the final accessor's to _virSecretObject data and move the
structure from virsecretobj.h to virsecretobj.c

The virSecretObjSetValue logic will handle setting both the secret
value and the value_size. Some slight adjustments to the error path
over what was in secretSetValue were made.

Additionally, a slight logic change in secretGetValue where we'll
check for the internalFlags and error out before checking for
and erroring out for a NULL secret->value. That way, it won't be
obvious to anyone that the secret value wasn't set rather they'll
just know they cannot get the secret value since it's private.

5 days agosecret: Introduce virSecretObj{Get|Set}Def
John Ferlan [Tue, 8 Mar 2016 00:22:04 +0000]
secret: Introduce virSecretObj{Get|Set}Def

Introduce fetch and set accessor to the secretObj->def field for usage
by the driver to avoid the driver needing to know the format of virSecretObj

5 days agosecret: Introduce virSecretObjSave{Config|Data}
John Ferlan [Fri, 18 Mar 2016 14:17:25 +0000]
secret: Introduce virSecretObjSave{Config|Data}

Move and rename the secretRewriteFile, secretSaveDef, and secretSaveValue
from secret_driver to virsecretobj

Need to make some slight adjustments since the secretSave* functions
called secretEnsureDirectory, but otherwise mostly just a move of code.

5 days agosecret: Introduce virSecretObjDelete{Config|Data}
John Ferlan [Mon, 7 Mar 2016 23:06:57 +0000]
secret: Introduce virSecretObjDelete{Config|Data}

Move and rename secretDeleteSaved from secret_driver into virsecretobj and
split it up into two parts since there is error path code that looks to
just delete the secret data file

5 days agosecret: Move and rename secretLoadAllConfigs
John Ferlan [Wed, 2 Mar 2016 18:10:54 +0000]
secret: Move and rename secretLoadAllConfigs

Move to secret_conf.c and rename to virSecretLoadAllConfigs. Also includes
moving/renaming the supporting virSecretLoad, virSecretLoadValue, and

5 days agosecret: Use the hashed virSecretObjList
John Ferlan [Thu, 25 Feb 2016 11:30:39 +0000]
secret: Use the hashed virSecretObjList

This patch replaces most of the guts of secret_driver.c with recently
added secret_conf.c APIs in order manage secret lists and objects
using the hashed virSecretObjList* lookup API's.

5 days agosecret: Introduce virSecretObjListGetUUIDs
John Ferlan [Sun, 28 Feb 2016 15:56:17 +0000]
secret: Introduce virSecretObjListGetUUIDs

Add function to return counted listed of uuids to from the hashed secrets
object list. This will replace the guts of secretConnectListSecrets.

5 days agosecret: Introduce virSecretObjListExport
John Ferlan [Mon, 29 Feb 2016 11:52:00 +0000]
secret: Introduce virSecretObjListExport

Add function to return a "match" filtered list of secret objects. This
function replaces the guts of secretConnectListAllSecrets.

Need to also move and make global virSecretUsageIDForDef since it'll
be used by both secret_driver.c and secret_conf.c

5 days agosecret: Introduce virSecretObjListNumOfSecrets
John Ferlan [Sun, 28 Feb 2016 14:34:21 +0000]
secret: Introduce virSecretObjListNumOfSecrets

Add function to count the hashed secret obj list with filters. This
will replace the guts of secret_driver's secretConnectNumOfSecrets.

5 days agosecret: Introduce virSecretObjListAdd* and virSecretObjListRemove
John Ferlan [Tue, 19 Apr 2016 20:05:38 +0000]
secret: Introduce virSecretObjListAdd* and virSecretObjListRemove

Add the functions to add/remove elements from the hashed secret obj list.
These will replace secret_driver functions secretAssignDef and secretObjRemove.

The virSecretObjListAddLocked will perform the necessary lookups and
decide whether to replace an existing hash entry or create a new one.
This includes setting up the configPath and base64Path as well as being
able to support the caller's need to restore from a previous definition
in case something goes wrong in the caller.

5 days agosecret: Introduce virSecretUsageIDForDef
John Ferlan [Tue, 19 Apr 2016 19:20:20 +0000]
secret: Introduce virSecretUsageIDForDef

Move the driver specific secretUsageIDForDef into secret_conf.c. It could
be more of a general purpose API.

5 days agosecret: Introduce virSecretObjListFindBy{UUID|Usage} support
John Ferlan [Tue, 19 Apr 2016 19:13:00 +0000]
secret: Introduce virSecretObjListFindBy{UUID|Usage} support

New API's including unlocked and Locked versions in order to be able
to use in either manner.

Support for searching hash object lists instead of linked lists will
replace existing secret_driver functions secretFindByUUID and

5 days agosecret: Create virsecretobj.c and virsecretconf.h
John Ferlan [Sat, 27 Feb 2016 11:49:12 +0000]
secret: Create virsecretobj.c and virsecretconf.h

Move virSecretObj from secret_driver.c to virsecretobj.h

To support being able to create a hashed secrets list, move the
virSecretObj to virsecretobj.h so that the code can at least find
the definition.

This should be a temporary situation while the virsecretobj.c code
is patched in order to support a hashed secret object while still
having the linked list support in secret_driver.c. Eventually, the
goal is to move the virSecretObj into virsecretobj.c, although it
is notable that the existing model from which virSecretObj was
derived has virDomainObj in src/conf/domain_conf.h and virNetworkObj
in src/conf/network_conf.h, so virSecretObj wouldn't be unique if
it were to remain in virsecretobj.h  Still adding accessors to fetch
and store hashed object data will be the end goal.

Add definitions and infrastucture in virsecretobj.c to create and
handle a hashed virSecretObj and virSecretObjList including the class,
object, lock setup, and disposal API's. Nothing will call these yet.

This infrastructure will replace the forward linked list logic
within the secret_driver, eventually.

5 days agowireshark: Fix distcheck
Michal Privoznik [Thu, 21 Apr 2016 05:33:01 +0000]
wireshark: Fix distcheck

Our distcheck is broken. Well, it works but only by pure chance.
When wireshark plugin is enabled, we try to query which path
should the plugin be installed into. Firstly, we try to ask
pkg-config as some releases of wireshark already sets
corresponding variable in their pkg-config files. However, if we
obtained no value from there we try to construct the path on our
own. Based on our observations it usually is:
Now, the problem is in the way we are deciding whether we have
obtained the plugin directory from pkg-config or not. Simply
said, we are checking wrong variable. The variable we are
checking has never been set, thus in our test is empty and
therefore we will always construct the plugin dir path on our
own, regardless of its presence in the pkg-config file.
To make things worse, after fixing this problem, VPATH build was
broken as it now tried to install plugin into correct directory.
Yes, this is problem, because --prefix was not honoured and
everything but the plugin was installed into given prefix. I've
managed to resolve this issue by replacing plugin dir prefix with
our own. So when doing regular installation (our prefix ==
wireshark prefix), nothing changes. When doing VPATH build &
installation plugin is installed into correctly prefixed dir.

Signed-off-by: Michal Privoznik <>

5 days agotools: Introduce install-nss targets
Michal Privoznik [Wed, 20 Apr 2016 08:14:23 +0000]
tools: Introduce install-nss targets

We do have something similar for installing init system files.
Basically I'm trying to avoid the following warning produced by

tools/ warning: uninstall-local was already defined in condition TRUE, which includes condition WITH_BSD_NSS ...
tools/ ... 'uninstall-local' previously defined here

Signed-off-by: Michal Privoznik <>

5 days agoMakefile: Enable distuninstallcheck again
Michal Privoznik [Wed, 20 Apr 2016 07:27:06 +0000]
Makefile: Enable distuninstallcheck again

This target has been disabled historically for whatever reason.
Now that we do uninstall properly enable the test again.

Signed-off-by: Michal Privoznik <>

5 days agoqemuProcessCreatePretendCmd: Rework FIPS handling
Michal Privoznik [Mon, 25 Apr 2016 05:47:59 +0000]
qemuProcessCreatePretendCmd: Rework FIPS handling

This function - in contrast with qemuBuildCommandLine - merely
constructs our internal command representation of a domain. This
is then later compared against expected output. Or, this function
is used also in virConnectDomainXMLToNative(). But due to a copy
paste error this function, just like its image - has @forceFips
argument that if enabled forces FIPS, otherwise mimics FIPS state
in the host. If FIPS is enabled or forced the generated command
line is different to state in which FIPS is disabled. Problem is,
while this could be desired in the virConnectDomainXMLToNative()
case, this is undesirable in the test suite as it will produce
unpredicted results.
Solution to this is to rename argument to @enableFips to
specifically tell whether we expect command line to be build in
either of fashions and make virConnectDomainXMLToNative()
implementation fetch FIPS state and pass it to

Signed-off-by: Michal Privoznik <>

6 days agoqemu: fix error log in qemuAssignPCIAddresses()
Laine Stump [Tue, 19 Apr 2016 16:53:02 +0000]
qemu: fix error log in qemuAssignPCIAddresses()

This error message was too specific, based on the incorrect assumption
that any error was cause by auto-added bridges:

  failed to create PCI bridge on bus 2: too many devices
  with fixed addresses

In practice you can't know if a bridge with an index <= the bus it's
connecting to was added automatically, or if it was a mistake in
explicit config, and the auto-add problem is going to be dealt with in
a different way in an upcoming patch. The new message is this:

  PCI Controller at index 1 (0x01) has "
  bus='0x02', but bus must be <= index

(note that index is given in both decimal and hex because it is
formatted as decimal in the XML, but bus is formatted as hex, and
displaying the hex value of index makes it easier to see the problem
when index > 9 (which will often be the case with PCIe, since most
controllers only have a single port, not 32 slots as with standard


6 days agoman: Fix links
Andrea Bolognani [Wed, 13 Apr 2016 17:46:06 +0000]
man: Fix links

Use L<> instead of C<> for URLs and man pages.

6 days agoman: Fix SYNOPSIS section
Andrea Bolognani [Wed, 13 Apr 2016 17:57:37 +0000]
man: Fix SYNOPSIS section

Format the text properly.

6 days agoman: Fix NAME section
Andrea Bolognani [Wed, 13 Apr 2016 17:34:01 +0000]
man: Fix NAME section

podchecker(1) complained about these, eg.

  *** WARNING: Verbatim paragraph in NAME section at line 3 in
               file tools/virt-host-validate.pod

6 days agobuild: Always ship virt-login-shell.conf
Andrea Bolognani [Wed, 13 Apr 2016 17:24:51 +0000]
build: Always ship virt-login-shell.conf

No need to special-case this one: we can add it to EXTRA_DIST so
that it will be shipped in any case, and if WITH_LOGIN_SHELL
happens to be enabled we mark it for installation as well.

6 days agobuild: Replace variables in man pages
Andrea Bolognani [Wed, 13 Apr 2016 16:52:12 +0000]
build: Replace variables in man pages

We can't use eg. @sysconfdir@ directly in the .pod file, because
pod2man(1) will interpret that as a variable name and format it

Instead, we use eg. SYSCONFDIR and use a subsequent sed(1) call
to turn it into the expected @sysconfdir@.

6 days agobuild: Ensure intermediate files are cleaned up properly
Andrea Bolognani [Wed, 13 Apr 2016 15:12:24 +0000]
build: Ensure intermediate files are cleaned up properly

All $(MANINFILES) should be deleted on distclean.

6 days agobuild: Group files
Andrea Bolognani [Wed, 13 Apr 2016 15:09:14 +0000]
build: Group files

Define $(PODFILES) and $(MANINFILES) so that adding a new man
page only requires changes in a few, well defined spots.

6 days agobuild: Never ship man pages
Andrea Bolognani [Tue, 12 Apr 2016 20:05:15 +0000]
build: Never ship man pages

The generated man pages may contain information that depend on
the build configuration, so they should not be shipped but
rather always built on the user's machine.

6 days agobuild: Standardize on .pod -> -> .x
Andrea Bolognani [Tue, 12 Apr 2016 20:28:27 +0000]
build: Standardize on .pod -> -> .x

After this commit, all man pages are generated using the same two

  1. Process a source $command.pod file with pod2man(1) to obtain
     a valid man page in $command.$

  2. Process $command.$ with sed(1) to obtain the final
     man page in $command.$section

6 days agobuild: Perform post-processing on all man pages
Andrea Bolognani [Tue, 12 Apr 2016 20:15:45 +0000]
build: Perform post-processing on all man pages

Man pages in daemon/ and src/ are being already subjected to this
post-processing step: make it so those in tools/ are as well.

6 days agobuild: Build man pages in $(builddir)
Andrea Bolognani [Tue, 12 Apr 2016 19:32:21 +0000]
build: Build man pages in $(builddir)

No file should be created inside $(srcdir) during build.

6 days agobuild: Extract pod from source files
Andrea Bolognani [Tue, 12 Apr 2016 18:32:33 +0000]
build: Extract pod from source files

Instead of embedding the pod information inside the respective
source files, store them in separate files.

This allows us to reduce the number of custom build rules as
most of the information can be inferred for the file name;
moreover, text editors are more likely to use proper syntax
highlighting for standalone pod files.

6 days agobuild: Ship virt-admin.pod
Andrea Bolognani [Tue, 12 Apr 2016 19:35:52 +0000]
build: Ship virt-admin.pod

This is the source file for the virt-admin(1) manual page, so
it should be shipped.

6 days agovirsh: host: Use bitmap size in bytes rather than bit count
Peter Krempa [Mon, 25 Apr 2016 08:38:01 +0000]
virsh: host: Use bitmap size in bytes rather than bit count


6 days agoqemu: Fix off-by-one error in block I/O throttle messages
Martin Kletzander [Mon, 25 Apr 2016 09:54:56 +0000]
qemu: Fix off-by-one error in block I/O throttle messages

QEMU_BLOCK_IOTUNE_MAX is the maximum inclusively, so let's modify the
message so it makes sense.

Signed-off-by: Martin Kletzander <>

6 days agodocs: Fix some formatting oddities
Andrea Bolognani [Fri, 22 Apr 2016 11:51:50 +0000]
docs: Fix some formatting oddities

When describing attributes and elements, we mostly stick to
a certain pattern; however, there are a few cases when the
information is not presented in the usual way.

Since there doesn't seem to be any reason not to follow the
tried and true formula, rework those bits to fit the rest of
the documentation.

6 days agosyntax-check: Enforce <code> inside <dt> elements
Andrea Bolognani [Fri, 22 Apr 2016 09:12:10 +0000]
syntax-check: Enforce <code> inside <dt> elements

Commit 61b070cf20b5 cleaned up a number of cases where the <dt>
element was used to document symbols, but the symbol itself was
not inside a <code> element.

To make sure we don't end up having to clean up again a few
months from now, introduce a syntax-check rule that can spot
such mistakes.

All existing exceptions are marked as such, with either file
or line granularity depending on the case.

6 days agodocs: apibuild: Fix VPATH build
Peter Krempa [Fri, 22 Apr 2016 14:14:26 +0000]
docs: apibuild: Fix VPATH build

libvirt-common.h is generated into builddir/include/libvirt.
only operated on srcdir/inlcude/libvirt. With VPATH build
srcdir/docs/libvirt-libvirt-common.html would not get generated and make
RPM failed.

7 days agotests: consistently source in scripts
Cole Robinson [Thu, 21 Apr 2016 17:50:18 +0000]
tests: consistently source in scripts

This unifies the test scripts to all use the similar pattern added for
schematests in ace4aecd. This gives the following

- Enables running all tests from outside of tests/ dir
- Drops redundant abs_* definitions, which are set by
- Drops unnecessary srcdir variable which was only used for sourcing

Behavior changes:

- srcdir can no longer be overwritten, but I don't know why anyone would
    really need to...
- Script VERBOSE setting no longer prints commands executed by
    if anyone cares I suggest handling this in which already
    has other verbose style handling

7 days agovbox: VIR_WARN if we don't support the API version
Cole Robinson [Fri, 22 Apr 2016 21:53:08 +0000]
vbox: VIR_WARN if we don't support the API version

We presently don't give any indication if the VirtualBox version
isn't in our support whitelist.

7 days agotests: remove 'reconnect' and 'statstest'
Cole Robinson [Thu, 21 Apr 2016 17:50:19 +0000]
tests: remove 'reconnect' and 'statstest'

These old tests expect to run against a real xen connection via
xend running on the host. Our intentions for the test suite are
that it doesn't require interacting with any specific host resources,
so these don't really belong here.

8 days agodocs: remove *other* reference to igmp for IPv6
Laine Stump [Fri, 22 Apr 2016 16:38:09 +0000]
docs: remove *other* reference to igmp for IPv6

This finishes the job started by commit 81f3839f8 - removing the
erroneous reference to nonexistent "igmp-ipv6" protocol.

9 days agodocs: Add bold style for <dt><code> elements
John Ferlan [Thu, 21 Apr 2016 11:54:30 +0000]
docs: Add bold style for <dt><code> elements

Add bolding for <dt><code> elements to make them "stick out" on the
page rather that just a stream of text where the elements only differ
by slightly different font style.

9 days agodocs: Use <code> inside <dt> for symbols
Andrea Bolognani [Thu, 21 Apr 2016 13:23:56 +0000]
docs: Use <code> inside <dt> for symbols

Most of the time, the <dt> tag is used when providing
documentation for a symbol; enclose symbols in <code> tags to
style them appropriately.

9 days agodocs: apibuild: Fix for python 2.6
Peter Krempa [Fri, 22 Apr 2016 08:08:56 +0000]
docs: apibuild: Fix for python 2.6

Ancient python didn't like the new list added in 99283874. Convert it to
a dict.

9 days agoqemu: Limit maximum block device I/O tune values
Martin Kletzander [Wed, 20 Apr 2016 14:14:02 +0000]
qemu: Limit maximum block device I/O tune values

The values are currently limited to LLONG_MAX which causes some
problems.  QEMU conveniently changed their maximum to 1e15 (1 PB) which
is enough for some time and we need to adapt to that so that we don't
throw "Unknown error" messages.  Strictly limiting these values actually
fixes some corner case values (off-by-one checks in QEMU probably).

Since values out of the new specified range do not overflow anything,
change the type of error as well.


Signed-off-by: Martin Kletzander <>

9 days agotests: rename test_conf -> virconftest
Cole Robinson [Thu, 21 Apr 2016 15:36:05 +0000]
tests: rename test_conf -> virconftest

And confdata to virconfdata, since 'conf' can mean a few different
things in libvirt

9 days agotests: consistently name virsh tests with 'virsh-' prefix
Cole Robinson [Thu, 21 Apr 2016 15:30:55 +0000]
tests: consistently name virsh tests with 'virsh-' prefix

9 days agotests: build: Remove duplicate libvirtd test list
Cole Robinson [Thu, 21 Apr 2016 15:24:21 +0000]
tests: build: Remove duplicate libvirtd test list

Store the test list in libvirtd_test_scripts, and use it where
appropriate. This also fixes the fact that we didn't ship
virsh-uriprecedence when libvirtd build is disabled.

9 days agovirconf: Handle conf file without ending newline
Cole Robinson [Thu, 21 Apr 2016 00:25:31 +0000]
virconf: Handle conf file without ending newline

$ echo -n 'log_level=1' > ~/.config/libvirt/libvirtd.conf
$ libvirtd --timeout=10
2014-10-10 10:30:56.394+0000: 6626: info : libvirt version:, package: 1.fc20 (Fedora Project, 2014-09-08-17:50:42,
2014-10-10 10:30:56.394+0000: 6626: error : main:1261 : Can't load config file: configuration file syntax error: /home/rjones/.config/libvirt/libvirtd.conf:1: expecting a value: /home/rjones/.config/libvirt/libvirtd.conf

Rather than try to fix this in the depths of the parser, just catch
the case when a config file doesn't end in a newline, and manually
append a newline to the content before parsing

9 days agodocs: remove reference to non-existent "igmp-ipv6" protocol
Laine Stump [Thu, 21 Apr 2016 18:32:51 +0000]
docs: remove reference to non-existent "igmp-ipv6" protocol

IGMP is used on IPv4 networks tp setup multicast group memberships. On
IPv6, this job is done by Multicast Listener Discovery (MLD), which
uses ICMPv6 packets rather than its own IP protocol number like IGMP.

The nwfilter documentation lists "igmp-ipv6" as one of the possible
protocols, but this is ignored (and stripped from the xml). This patch
removes that erroneous reference.


9 days agonetwork: fix DHCPv6 on networks with prefix != 64
Laine Stump [Thu, 21 Apr 2016 18:03:18 +0000]
network: fix DHCPv6 on networks with prefix != 64

According to the dnsmasq manpage, the netmask for IPv4 address ranges
will be auto-deteremined from the interface dnsmasq is listening on,
but it can't do this for IPv6 for some reason - it instead assumes a
network prefix of 64 for all IPv6 address ranges. If this is
incorrect, dnsmasq will refuse to give out an address to clients,
instead logging this message:

 dnsmasq-dhcp[2380]: no address range available for DHCPv6 request via virbr0

The solution is for libvirt to add ",$prefix" to all IPv6 dhcp-range
arguments when building the dnsmasq.conf file.


10 days agoconf: disk: extract validation of startup policy
Peter Krempa [Wed, 20 Apr 2016 15:26:23 +0000]
conf: disk: extract validation of startup policy

10 days agoconf: disk: Extract checking of removable status
Peter Krempa [Wed, 20 Apr 2016 15:19:04 +0000]
conf: disk: Extract checking of removable status

10 days agoconf: disk: Move validation of disk bus vs disk type
Peter Krempa [Wed, 20 Apr 2016 15:11:52 +0000]
conf: disk: Move validation of disk bus vs disk type

10 days agoconf: disk: extract sgio/rawio validation
Peter Krempa [Wed, 20 Apr 2016 14:52:46 +0000]
conf: disk: extract sgio/rawio validation

10 days agoconf: disk: Don't bother setting removable state to 0 by default
Peter Krempa [Wed, 20 Apr 2016 14:40:48 +0000]
conf: disk: Don't bother setting removable state to 0 by default

10 days agoconf: disk: Initialize closed device tray state to 0
Peter Krempa [Wed, 20 Apr 2016 14:39:44 +0000]
conf: disk: Initialize closed device tray state to 0

Additionally avoid initializing it after being calloced.

10 days agoconf: disk: Extract disk type and device right away
Peter Krempa [Wed, 20 Apr 2016 14:35:26 +0000]
conf: disk: Extract disk type and device right away

Additionally switch to using a common temp variable for the xml

10 days agoconf: disk: Remove custom single-use temporary variables
Peter Krempa [Wed, 20 Apr 2016 14:16:22 +0000]
conf: disk: Remove custom single-use temporary variables

Use a single temporary variable instead shortening the code.

10 days agoconf: disk: Mark VIR_DOMAIN_DISK_IO_DEFAULT as 0 and simplify parsing
Peter Krempa [Wed, 20 Apr 2016 13:50:04 +0000]
conf: disk: Mark VIR_DOMAIN_DISK_IO_DEFAULT as 0 and simplify parsing

10 days agoconf: disk: Sanitize parsing of disk format
Peter Krempa [Wed, 20 Apr 2016 13:36:05 +0000]
conf: disk: Sanitize parsing of disk format

10 days agoconf: disk: Avoid temporary variable when parsing driver name
Peter Krempa [Wed, 20 Apr 2016 13:08:52 +0000]
conf: disk: Avoid temporary variable when parsing driver name

10 days agoconf: disk: Split out parsing of disk <driver> element
Peter Krempa [Wed, 20 Apr 2016 12:41:27 +0000]
conf: disk: Split out parsing of disk <driver> element

10 days agoconf: disk: Extract verification of disk config
Peter Krempa [Wed, 20 Apr 2016 13:01:44 +0000]
conf: disk: Extract verification of disk config

Rather than checking individual fields in dubious places extract them to
a central point.

10 days agobuild: Fix default network generation on FreeBSD
Andrea Bolognani [Thu, 21 Apr 2016 10:01:27 +0000]
build: Fix default network generation on FreeBSD

FreeBSD's sed(1) doesn't support using "\n" to insert a newline,
so the installed default.xml file ends up containing a literal
"n" between tags; to work around this problem, add a tr(1)
invocation as suggested by the sed FAQ[1].

[1] (4.1 c)

10 days agodaemonStreamHandleRead: Rework to follow our coding pattern
Michal Privoznik [Fri, 8 Apr 2016 14:56:28 +0000]
daemonStreamHandleRead: Rework to follow our coding pattern

Usually, we have this 'if() goto cleanup;' pattern in our new
code. It is going to be useful here too. Thing is, there was a
memleak. If there has been an error in
virNetServerProgramSendStreamError() or
virNetServerProgramSendStreamData() created message was never

Signed-off-by: Michal Privoznik <>

10 days agovirNet{Client,Server}*Stream: Update comment
Michal Privoznik [Mon, 4 Apr 2016 14:44:27 +0000]
virNet{Client,Server}*Stream: Update comment

After 434de30da545aea137 the status values are prefixed VIR_NET_
rather than REMOTE_.

Signed-off-by: Michal Privoznik <>

10 days agodaemon stream: Remove useless empty lines from header file
Michal Privoznik [Mon, 4 Apr 2016 11:01:17 +0000]
daemon stream: Remove useless empty lines from header file

Signed-off-by: Michal Privoznik <>

10 days agodaemon stream: Convert @tx in daemonClientStream to bool
Michal Privoznik [Mon, 4 Apr 2016 10:49:48 +0000]
daemon stream: Convert @tx in daemonClientStream to bool

This structure item is used as pure boolean. There's no need to
hold whole integer for it.

Signed-off-by: Michal Privoznik <>

10 days agodaemon stream: Prefer bool over unsigned int var:1
Michal Privoznik [Mon, 4 Apr 2016 10:46:19 +0000]
daemon stream: Prefer bool over unsigned int var:1

There is no need for doing that since we have a bool type.

Signed-off-by: Michal Privoznik <>

10 days agodaemonClientStream: Use unsigned int to store stream @serial
Michal Privoznik [Tue, 29 Mar 2016 15:33:14 +0000]
daemonClientStream: Use unsigned int to store stream @serial

The stream serial number is the serial number of the RPC call
that initiated a data transfer. And as such can never be
negative. Moreover, when looking up internal state for a stream,
the serial numbers are compared. But hey, the serial number in
message header is unsigned too!

Signed-off-by: Michal Privoznik <>

10 days agoinclude: common: Fix function formatting
Peter Krempa [Thu, 21 Apr 2016 12:49:18 +0000]
include: common: Fix function formatting

10 days agoapi: Generate docs for libvirt-common.h
Peter Krempa [Thu, 21 Apr 2016 12:35:29 +0000]
api: Generate docs for libvirt-common.h

Since commit f5d9c5d00cfc0c moved the virTypedParam stuff into
libvirt-common we did not generate any docs for them and neither did we
populate them into libvirt-api.xml. This broke the sanity check in
libvirt python. Fix it by generating docs for libvirt-common.h too.

10 days agoapibuild: Allow completely skipping certain macros
Peter Krempa [Thu, 21 Apr 2016 12:31:23 +0000]
apibuild: Allow completely skipping certain macros

Some macros don't make sense to be documented at all. Add infrastructure
to the web/api generator and add VIR_DEPRECATED and VIR_EXPORT_VAR as
macros we should not document.

10 days agoinclude: common: Fix file header for
Peter Krempa [Thu, 21 Apr 2016 12:27:24 +0000]
include: common: Fix file header for

Our docs/web generator would take the complete license text and put it
into the description of the file, since it depends on position of the
"Author:" line. Move the author line to the top and remove the spurious
emacs comment.